diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index a2330ff92..bb16fbc84 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -24,7 +24,7 @@ If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. mac/linux/windows]
- - Version [e.g. 1.3.9]
+ - Version [e.g. 1.4.0]
**Additional context**
Add any other context about the problem here.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9536399a0..ebe6bfa2d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.10.0)
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version")
-project(Griddly VERSION 1.3.9)
+project(Griddly VERSION 1.4.0)
set(BINARY ${CMAKE_PROJECT_NAME})
@@ -133,12 +133,12 @@ if(WASM)
file(GLOB_RECURSE JIDDLY_SOURCES "js/bindings/*.cpp")
- add_executable(jiddly ${JIDDLY_SOURCES} )
- target_link_libraries(jiddly PRIVATE ${BINARY} yaml-cpp glm)
+ add_executable(griddlyjs ${JIDDLY_SOURCES} )
+ target_link_libraries(griddlyjs PRIVATE ${BINARY} yaml-cpp glm)
# These properties specify what kind of Emscripten build to perform and are assigned to our 'a-simple-triangle' executable target.
set_target_properties(
- jiddly
+ griddlyjs
PROPERTIES
LINK_FLAGS
"-lembind -fexceptions -s ENVIRONMENT=web -s ALLOW_MEMORY_GROWTH=1 -sNO_DISABLE_EXCEPTION_THROWING -sASYNCIFY -sMODULARIZE=1"
diff --git a/README.md b/README.md
index a14fa588d..90dc0a47a 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-#
![Griddly Bear](resources/images/gvgai/oryx/bear2.png) Griddly ![Griddly Bear](resources/images/gvgai/oryx/bear2.png)
+#
[![Discord Chat](https://img.shields.io/discord/728222413397164142.svg)](https://discord.gg/xuR8Dsv)
diff --git a/bindings/python.cpp b/bindings/python.cpp
index 07c6fd88f..a1341ebbf 100644
--- a/bindings/python.cpp
+++ b/bindings/python.cpp
@@ -12,7 +12,7 @@ namespace griddly {
PYBIND11_MODULE(python_griddly, m) {
m.doc() = "Griddly python bindings";
- m.attr("version") = "1.3.9";
+ m.attr("version") = "1.4.0";
#ifndef NDEBUG
spdlog::set_level(spdlog::level::debug);
diff --git a/docs/_static/custom.css b/docs/_static/custom.css
index aae786a78..99d3539d0 100644
--- a/docs/_static/custom.css
+++ b/docs/_static/custom.css
@@ -20,4 +20,12 @@
.embedded-video {
text-align: center;
-}
\ No newline at end of file
+}
+
+.level-gallery img {
+ max-height: 200px !important;
+ width: auto !important;
+ max-width: 200px !important;
+ height: auto !important;
+}
+
diff --git a/docs/conf.py b/docs/conf.py
index 16d830b03..cf3b621d6 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -22,7 +22,7 @@
author = 'Chris Bamford'
# The full version, including alpha/beta/rc tags
-release = '1.3.9'
+release = '1.4.0'
# -- General configuration ---------------------------------------------------
diff --git a/docs/games/Bait/img/Bait-level-Block2D-0.png b/docs/games/Bait/img/Bait-level-Block2D-0.png
index d784fd97e..af95ef5f8 100644
Binary files a/docs/games/Bait/img/Bait-level-Block2D-0.png and b/docs/games/Bait/img/Bait-level-Block2D-0.png differ
diff --git a/docs/games/Bait/img/Bait-level-Block2D-1.png b/docs/games/Bait/img/Bait-level-Block2D-1.png
index 7a791ad8d..69a5e700f 100644
Binary files a/docs/games/Bait/img/Bait-level-Block2D-1.png and b/docs/games/Bait/img/Bait-level-Block2D-1.png differ
diff --git a/docs/games/Bait/img/Bait-level-Block2D-2.png b/docs/games/Bait/img/Bait-level-Block2D-2.png
index 7c8e897b6..0ba22d932 100644
Binary files a/docs/games/Bait/img/Bait-level-Block2D-2.png and b/docs/games/Bait/img/Bait-level-Block2D-2.png differ
diff --git a/docs/games/Bait/img/Bait-level-Block2D-3.png b/docs/games/Bait/img/Bait-level-Block2D-3.png
index aa6b2ec8d..6c9f04b37 100644
Binary files a/docs/games/Bait/img/Bait-level-Block2D-3.png and b/docs/games/Bait/img/Bait-level-Block2D-3.png differ
diff --git a/docs/games/Bait/img/Bait-level-Block2D-4.png b/docs/games/Bait/img/Bait-level-Block2D-4.png
index efb1b3b17..f9ed98d26 100644
Binary files a/docs/games/Bait/img/Bait-level-Block2D-4.png and b/docs/games/Bait/img/Bait-level-Block2D-4.png differ
diff --git a/docs/games/Bait/img/Bait-level-Vector-0.png b/docs/games/Bait/img/Bait-level-Vector-0.png
index c0b1323be..080179f91 100644
Binary files a/docs/games/Bait/img/Bait-level-Vector-0.png and b/docs/games/Bait/img/Bait-level-Vector-0.png differ
diff --git a/docs/games/Bait/img/Bait-level-Vector-1.png b/docs/games/Bait/img/Bait-level-Vector-1.png
index 3c530b09c..6cbedd7f3 100644
Binary files a/docs/games/Bait/img/Bait-level-Vector-1.png and b/docs/games/Bait/img/Bait-level-Vector-1.png differ
diff --git a/docs/games/Bait/img/Bait-level-Vector-2.png b/docs/games/Bait/img/Bait-level-Vector-2.png
index a85c94c6e..32d4513a4 100644
Binary files a/docs/games/Bait/img/Bait-level-Vector-2.png and b/docs/games/Bait/img/Bait-level-Vector-2.png differ
diff --git a/docs/games/Bait/img/Bait-level-Vector-3.png b/docs/games/Bait/img/Bait-level-Vector-3.png
index 8b3d31509..ea27a7232 100644
Binary files a/docs/games/Bait/img/Bait-level-Vector-3.png and b/docs/games/Bait/img/Bait-level-Vector-3.png differ
diff --git a/docs/games/Bait/img/Bait-level-Vector-4.png b/docs/games/Bait/img/Bait-level-Vector-4.png
index e1eadc174..cbebb4efd 100644
Binary files a/docs/games/Bait/img/Bait-level-Vector-4.png and b/docs/games/Bait/img/Bait-level-Vector-4.png differ
diff --git a/docs/games/Bait/img/Bait-tile-avatar-Vector.png b/docs/games/Bait/img/Bait-tile-avatar-Vector.png
index 6985a0878..3fb1db731 100644
Binary files a/docs/games/Bait/img/Bait-tile-avatar-Vector.png and b/docs/games/Bait/img/Bait-tile-avatar-Vector.png differ
diff --git a/docs/games/Bait/img/Bait-tile-box-Block2D.png b/docs/games/Bait/img/Bait-tile-box-Block2D.png
index 5556781fb..2cee22959 100644
Binary files a/docs/games/Bait/img/Bait-tile-box-Block2D.png and b/docs/games/Bait/img/Bait-tile-box-Block2D.png differ
diff --git a/docs/games/Bait/img/Bait-tile-box-Vector.png b/docs/games/Bait/img/Bait-tile-box-Vector.png
index 1460b3271..6985a0878 100644
Binary files a/docs/games/Bait/img/Bait-tile-box-Vector.png and b/docs/games/Bait/img/Bait-tile-box-Vector.png differ
diff --git a/docs/games/Bait/img/Bait-tile-goal-Vector.png b/docs/games/Bait/img/Bait-tile-goal-Vector.png
index a5cdcff22..e7623ec6f 100644
Binary files a/docs/games/Bait/img/Bait-tile-goal-Vector.png and b/docs/games/Bait/img/Bait-tile-goal-Vector.png differ
diff --git a/docs/games/Bait/img/Bait-tile-hole-Vector.png b/docs/games/Bait/img/Bait-tile-hole-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Bait/img/Bait-tile-hole-Vector.png and b/docs/games/Bait/img/Bait-tile-hole-Vector.png differ
diff --git a/docs/games/Bait/img/Bait-tile-key-Block2D.png b/docs/games/Bait/img/Bait-tile-key-Block2D.png
index f3a371b8a..009ae95f9 100644
Binary files a/docs/games/Bait/img/Bait-tile-key-Block2D.png and b/docs/games/Bait/img/Bait-tile-key-Block2D.png differ
diff --git a/docs/games/Bait/img/Bait-tile-key-Vector.png b/docs/games/Bait/img/Bait-tile-key-Vector.png
index 77a281909..bbb0c9965 100644
Binary files a/docs/games/Bait/img/Bait-tile-key-Vector.png and b/docs/games/Bait/img/Bait-tile-key-Vector.png differ
diff --git a/docs/games/Bait/img/Bait-tile-mushroom-Vector.png b/docs/games/Bait/img/Bait-tile-mushroom-Vector.png
index f5ac61ae0..a5cdcff22 100644
Binary files a/docs/games/Bait/img/Bait-tile-mushroom-Vector.png and b/docs/games/Bait/img/Bait-tile-mushroom-Vector.png differ
diff --git a/docs/games/Bait/img/Bait-tile-wall-Block2D.png b/docs/games/Bait/img/Bait-tile-wall-Block2D.png
index 2940576bf..354d34021 100644
Binary files a/docs/games/Bait/img/Bait-tile-wall-Block2D.png and b/docs/games/Bait/img/Bait-tile-wall-Block2D.png differ
diff --git a/docs/games/Bait/img/Bait-tile-wall-Vector.png b/docs/games/Bait/img/Bait-tile-wall-Vector.png
index 0dea1ddca..c699d613a 100644
Binary files a/docs/games/Bait/img/Bait-tile-wall-Vector.png and b/docs/games/Bait/img/Bait-tile-wall-Vector.png differ
diff --git a/docs/games/Bait/index.rst b/docs/games/Bait/index.rst
index 353254850..6b81ce4c9 100644
--- a/docs/games/Bait/index.rst
+++ b/docs/games/Bait/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-0.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-0.png
index d784fd97e..af95ef5f8 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-0.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-0.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-1.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-1.png
index 7a791ad8d..69a5e700f 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-1.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-1.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-2.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-2.png
index 7c8e897b6..0ba22d932 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-2.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-2.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-3.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-3.png
index aa6b2ec8d..6c9f04b37 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-3.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-3.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-4.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-4.png
index efb1b3b17..f9ed98d26 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-4.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Block2D-4.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-0.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-0.png
index c0b1323be..080179f91 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-0.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-0.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-1.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-1.png
index 3c530b09c..6cbedd7f3 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-1.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-1.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-2.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-2.png
index a85c94c6e..32d4513a4 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-2.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-2.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-3.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-3.png
index 8b3d31509..ea27a7232 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-3.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-3.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-4.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-4.png
index e1eadc174..cbebb4efd 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-4.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-level-Vector-4.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-avatar-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-avatar-Vector.png
index 6985a0878..3fb1db731 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-avatar-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-avatar-Vector.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Block2D.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Block2D.png
index 5556781fb..2cee22959 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Block2D.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Block2D.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Vector.png
index 1460b3271..6985a0878 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-box-Vector.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-goal-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-goal-Vector.png
index a5cdcff22..e7623ec6f 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-goal-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-goal-Vector.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-hole-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-hole-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-hole-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-hole-Vector.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Block2D.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Block2D.png
index f3a371b8a..009ae95f9 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Block2D.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Block2D.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Vector.png
index 77a281909..bbb0c9965 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-key-Vector.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-mushroom-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-mushroom-Vector.png
index f5ac61ae0..a5cdcff22 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-mushroom-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-mushroom-Vector.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Block2D.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Block2D.png
index 2940576bf..354d34021 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Block2D.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Block2D.png differ
diff --git a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Vector.png b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Vector.png
index 0dea1ddca..c699d613a 100644
Binary files a/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Vector.png and b/docs/games/Bait_With_Keys/img/Bait_With_Keys-tile-wall-Vector.png differ
diff --git a/docs/games/Bait_With_Keys/index.rst b/docs/games/Bait_With_Keys/index.rst
index c51093865..993382610 100644
--- a/docs/games/Bait_With_Keys/index.rst
+++ b/docs/games/Bait_With_Keys/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-0.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-0.png
index a598b7af7..83e7e34bf 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-0.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-0.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-1.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-1.png
index 2d70394f6..450f29787 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-1.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-1.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-2.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-2.png
index ed437d837..a7ac9076b 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-2.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-2.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-3.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-3.png
index 1d28bce65..0fd7caa26 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-3.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-3.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-4.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-4.png
index f9a62ddf2..1e5bfb4ae 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-4.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-4.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-5.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-5.png
index 4931ffb98..364ee0367 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-5.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-5.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-6.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-6.png
index 02cf0157d..5bce1477e 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-6.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-6.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-7.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-7.png
index ed437d837..a7ac9076b 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-7.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-7.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-8.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-8.png
index e2675478a..cc825c258 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-8.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-8.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-9.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-9.png
index de21d75c1..1e0fda094 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-9.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Block2D-9.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-0.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-0.png
index 163d98539..d2856442e 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-0.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-0.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-1.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-1.png
index 821ce42f3..dd5ab3c71 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-1.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-1.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-2.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-2.png
index 687bdfbf6..fbda95f52 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-2.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-2.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-3.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-3.png
index 79269be2c..a485f8ff4 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-3.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-3.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-4.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-4.png
index af634c717..86c45c7bd 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-4.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-4.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-5.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-5.png
index 150ebed02..c331a49a7 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-5.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-5.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-6.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-6.png
index 79de5a154..07aa502ed 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-6.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-6.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-7.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-7.png
index 687bdfbf6..fbda95f52 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-7.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-7.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-8.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-8.png
index e4ff8bad3..2cc70fd07 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-8.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-8.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-9.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-9.png
index 854da06e3..348d4d4a6 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-9.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-level-Vector-9.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-butterfly-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-butterfly-Vector.png
index c23edfdd3..a2f51f612 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-butterfly-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-butterfly-Vector.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-catcher-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-catcher-Vector.png
index c0ac27968..c23edfdd3 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-catcher-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-catcher-Vector.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-cocoon-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-cocoon-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-cocoon-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-cocoon-Vector.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-spider-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-spider-Vector.png
index 5423baded..c0ac27968 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-spider-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-spider-Vector.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Block2D.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Block2D.png
index 99a0dd88a..4ff6f5785 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Block2D.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Block2D.png differ
diff --git a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Vector.png b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Vector.png
index 758055b8f..7d7ba957a 100644
Binary files a/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Vector.png and b/docs/games/Butterflies_and_Spiders/img/Butterflies_and_Spiders-tile-wall-Vector.png differ
diff --git a/docs/games/Butterflies_and_Spiders/index.rst b/docs/games/Butterflies_and_Spiders/index.rst
index 3cd5f2f04..649bd4659 100644
--- a/docs/games/Butterflies_and_Spiders/index.rst
+++ b/docs/games/Butterflies_and_Spiders/index.rst
@@ -19,6 +19,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-0.png b/docs/games/Clusters/img/Clusters-level-Block2D-0.png
index 1dfd15e40..716016102 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-0.png and b/docs/games/Clusters/img/Clusters-level-Block2D-0.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-1.png b/docs/games/Clusters/img/Clusters-level-Block2D-1.png
index 3d0ad655b..902bb2a53 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-1.png and b/docs/games/Clusters/img/Clusters-level-Block2D-1.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-2.png b/docs/games/Clusters/img/Clusters-level-Block2D-2.png
index bf5f97d45..3b1143c4e 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-2.png and b/docs/games/Clusters/img/Clusters-level-Block2D-2.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-3.png b/docs/games/Clusters/img/Clusters-level-Block2D-3.png
index c6b8d4153..5fa9434c1 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-3.png and b/docs/games/Clusters/img/Clusters-level-Block2D-3.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Block2D-4.png b/docs/games/Clusters/img/Clusters-level-Block2D-4.png
index f6b701fd4..451342bd8 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Block2D-4.png and b/docs/games/Clusters/img/Clusters-level-Block2D-4.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Vector-0.png b/docs/games/Clusters/img/Clusters-level-Vector-0.png
index 4e2f284be..47914b365 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Vector-0.png and b/docs/games/Clusters/img/Clusters-level-Vector-0.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Vector-1.png b/docs/games/Clusters/img/Clusters-level-Vector-1.png
index bfee64909..7a73f6b26 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Vector-1.png and b/docs/games/Clusters/img/Clusters-level-Vector-1.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Vector-2.png b/docs/games/Clusters/img/Clusters-level-Vector-2.png
index d7f38bd91..ca4ef2390 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Vector-2.png and b/docs/games/Clusters/img/Clusters-level-Vector-2.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Vector-3.png b/docs/games/Clusters/img/Clusters-level-Vector-3.png
index 0a42e1db6..063409d0d 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Vector-3.png and b/docs/games/Clusters/img/Clusters-level-Vector-3.png differ
diff --git a/docs/games/Clusters/img/Clusters-level-Vector-4.png b/docs/games/Clusters/img/Clusters-level-Vector-4.png
index c41ea274d..c440322b4 100644
Binary files a/docs/games/Clusters/img/Clusters-level-Vector-4.png and b/docs/games/Clusters/img/Clusters-level-Vector-4.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-avatar-Vector.png b/docs/games/Clusters/img/Clusters-tile-avatar-Vector.png
index 449dbd771..bc5c2b3ee 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-avatar-Vector.png and b/docs/games/Clusters/img/Clusters-tile-avatar-Vector.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-blue_block-Vector.png b/docs/games/Clusters/img/Clusters-tile-blue_block-Vector.png
index cddd4d04e..449dbd771 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-blue_block-Vector.png and b/docs/games/Clusters/img/Clusters-tile-blue_block-Vector.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-blue_box-Block2D.png b/docs/games/Clusters/img/Clusters-tile-blue_box-Block2D.png
index 04c0f1ab7..02cfa53bd 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-blue_box-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-blue_box-Block2D.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-blue_box-Vector.png b/docs/games/Clusters/img/Clusters-tile-blue_box-Vector.png
index 1ea637a7b..a3febd5dd 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-blue_box-Vector.png and b/docs/games/Clusters/img/Clusters-tile-blue_box-Vector.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-green_block-Vector.png b/docs/games/Clusters/img/Clusters-tile-green_block-Vector.png
index bc5c2b3ee..1ea637a7b 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-green_block-Vector.png and b/docs/games/Clusters/img/Clusters-tile-green_block-Vector.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-green_box-Block2D.png b/docs/games/Clusters/img/Clusters-tile-green_box-Block2D.png
index e7ce880ab..462b72f1e 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-green_box-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-green_box-Block2D.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-green_box-Vector.png b/docs/games/Clusters/img/Clusters-tile-green_box-Vector.png
index bdb0ce86a..1ea637a7b 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-green_box-Vector.png and b/docs/games/Clusters/img/Clusters-tile-green_box-Vector.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-red_block-Vector.png b/docs/games/Clusters/img/Clusters-tile-red_block-Vector.png
index c59c09c03..cddd4d04e 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-red_block-Vector.png and b/docs/games/Clusters/img/Clusters-tile-red_block-Vector.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-red_box-Block2D.png b/docs/games/Clusters/img/Clusters-tile-red_box-Block2D.png
index 70e7a6cfc..e97e205e3 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-red_box-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-red_box-Block2D.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-red_box-Vector.png b/docs/games/Clusters/img/Clusters-tile-red_box-Vector.png
index 1843eaae9..a3febd5dd 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-red_box-Vector.png and b/docs/games/Clusters/img/Clusters-tile-red_box-Vector.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-spike-Block2D.png b/docs/games/Clusters/img/Clusters-tile-spike-Block2D.png
index b19a62955..4e0852ee5 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-spike-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-spike-Block2D.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-spike-Vector.png b/docs/games/Clusters/img/Clusters-tile-spike-Vector.png
index 8722650d1..449dbd771 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-spike-Vector.png and b/docs/games/Clusters/img/Clusters-tile-spike-Vector.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-wall-Block2D.png b/docs/games/Clusters/img/Clusters-tile-wall-Block2D.png
index 2940576bf..354d34021 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-wall-Block2D.png and b/docs/games/Clusters/img/Clusters-tile-wall-Block2D.png differ
diff --git a/docs/games/Clusters/img/Clusters-tile-wall-Vector.png b/docs/games/Clusters/img/Clusters-tile-wall-Vector.png
index 91397096b..bc5c2b3ee 100644
Binary files a/docs/games/Clusters/img/Clusters-tile-wall-Vector.png and b/docs/games/Clusters/img/Clusters-tile-wall-Vector.png differ
diff --git a/docs/games/Clusters/index.rst b/docs/games/Clusters/index.rst
index be2fa8ef5..1b2a5dcfd 100644
--- a/docs/games/Clusters/index.rst
+++ b/docs/games/Clusters/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-0.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-0.png
index e08f72af0..4482602f6 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-0.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-0.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-1.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-1.png
index e08f72af0..4482602f6 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-1.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-1.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-2.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-2.png
index 7e5bd5734..273048305 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-2.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-2.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-3.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-3.png
index 927ca05a0..d8d385146 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-3.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-3.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-4.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-4.png
index 965458aba..e8731ad45 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-4.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-4.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-5.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-5.png
index 63ecb598f..abb456247 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-5.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Block2D-5.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-2.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-2.png
index 573d02fe3..f3464f673 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-2.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-2.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-3.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-3.png
index 4472f05d5..f7584150b 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-3.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-3.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-4.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-4.png
index bf84e2527..130fff973 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-4.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-4.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-5.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-5.png
index b97ca4ff6..16500dd79 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-5.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Sprite2D-5.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-0.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-0.png
index a6b8fdf37..71fd39ba1 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-0.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-0.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-1.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-1.png
index a6b8fdf37..71fd39ba1 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-1.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-1.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-2.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-2.png
index 11e729c64..e05782f3b 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-2.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-2.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-3.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-3.png
index 5eb4ce51a..c01d45924 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-3.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-3.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-4.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-4.png
index 91312faad..e665e8c01 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-4.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-4.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-5.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-5.png
index 1e02b03d6..c801bb6a0 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-5.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-level-Vector-5.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Block2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Block2D.png
index e163562b3..e1720c195 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Block2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Block2D.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Vector.png
index 3b1230202..0efac0d90 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-avatar-Vector.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-boiling_water-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-boiling_water-Vector.png
index 81269459b..3b1230202 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-boiling_water-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-boiling_water-Vector.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Block2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Block2D.png
index 40a6d056a..a50ac3590 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Block2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Block2D.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Sprite2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Sprite2D.png
index af95f3e10..c0761c930 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Sprite2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Sprite2D.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Vector.png
index b777829b0..34f07f038 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-key-Vector.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Block2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Block2D.png
index a284f9eb9..48d905a59 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Block2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Block2D.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Vector.png
index 0efac0d90..3f6bf0a16 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-lock-Vector.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-raw_pasta-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-raw_pasta-Vector.png
index fd002494a..34f07f038 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-raw_pasta-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-raw_pasta-Vector.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tomato-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tomato-Vector.png
index 55f2af5df..81269459b 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tomato-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tomato-Vector.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tuna-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tuna-Vector.png
index e786c582e..b777829b0 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tuna-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-tuna-Vector.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Block2D.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Block2D.png
index 40a6d056a..a50ac3590 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Block2D.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Block2D.png differ
diff --git a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Vector.png b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Vector.png
index 40f1980b9..3b1230202 100644
Binary files a/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Vector.png and b/docs/games/Cook_Me_Pasta/img/Cook_Me_Pasta-tile-wall-Vector.png differ
diff --git a/docs/games/Cook_Me_Pasta/index.rst b/docs/games/Cook_Me_Pasta/index.rst
index 96d597248..88610e7cb 100644
--- a/docs/games/Cook_Me_Pasta/index.rst
+++ b/docs/games/Cook_Me_Pasta/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-0.png b/docs/games/Doggo/img/Doggo-level-Block2D-0.png
index 7fd941612..a7c0f7c1a 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-0.png and b/docs/games/Doggo/img/Doggo-level-Block2D-0.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-1.png b/docs/games/Doggo/img/Doggo-level-Block2D-1.png
index 8208d25ff..b83a0c714 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-1.png and b/docs/games/Doggo/img/Doggo-level-Block2D-1.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-2.png b/docs/games/Doggo/img/Doggo-level-Block2D-2.png
index d60d0000e..ba61b0f5d 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-2.png and b/docs/games/Doggo/img/Doggo-level-Block2D-2.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-3.png b/docs/games/Doggo/img/Doggo-level-Block2D-3.png
index 5d51ab5d6..436893b11 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-3.png and b/docs/games/Doggo/img/Doggo-level-Block2D-3.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Block2D-4.png b/docs/games/Doggo/img/Doggo-level-Block2D-4.png
index 3fff66993..f3c643116 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Block2D-4.png and b/docs/games/Doggo/img/Doggo-level-Block2D-4.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Vector-0.png b/docs/games/Doggo/img/Doggo-level-Vector-0.png
index 94663168a..3cfffad54 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Vector-0.png and b/docs/games/Doggo/img/Doggo-level-Vector-0.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Vector-1.png b/docs/games/Doggo/img/Doggo-level-Vector-1.png
index c1445507a..6c998fec7 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Vector-1.png and b/docs/games/Doggo/img/Doggo-level-Vector-1.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Vector-2.png b/docs/games/Doggo/img/Doggo-level-Vector-2.png
index c3e8d66d5..04cde3c5f 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Vector-2.png and b/docs/games/Doggo/img/Doggo-level-Vector-2.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Vector-3.png b/docs/games/Doggo/img/Doggo-level-Vector-3.png
index c88e29cc3..f2b554467 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Vector-3.png and b/docs/games/Doggo/img/Doggo-level-Vector-3.png differ
diff --git a/docs/games/Doggo/img/Doggo-level-Vector-4.png b/docs/games/Doggo/img/Doggo-level-Vector-4.png
index 1554df2eb..b448d44d4 100644
Binary files a/docs/games/Doggo/img/Doggo-level-Vector-4.png and b/docs/games/Doggo/img/Doggo-level-Vector-4.png differ
diff --git a/docs/games/Doggo/img/Doggo-tile-doggo-Vector.png b/docs/games/Doggo/img/Doggo-tile-doggo-Vector.png
index 1460b3271..a5cdcff22 100644
Binary files a/docs/games/Doggo/img/Doggo-tile-doggo-Vector.png and b/docs/games/Doggo/img/Doggo-tile-doggo-Vector.png differ
diff --git a/docs/games/Doggo/img/Doggo-tile-stick-Vector.png b/docs/games/Doggo/img/Doggo-tile-stick-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Doggo/img/Doggo-tile-stick-Vector.png and b/docs/games/Doggo/img/Doggo-tile-stick-Vector.png differ
diff --git a/docs/games/Doggo/img/Doggo-tile-wall-Block2D.png b/docs/games/Doggo/img/Doggo-tile-wall-Block2D.png
index 672268aa4..b98b77ffc 100644
Binary files a/docs/games/Doggo/img/Doggo-tile-wall-Block2D.png and b/docs/games/Doggo/img/Doggo-tile-wall-Block2D.png differ
diff --git a/docs/games/Doggo/img/Doggo-tile-wall-Vector.png b/docs/games/Doggo/img/Doggo-tile-wall-Vector.png
index f5ac61ae0..6985a0878 100644
Binary files a/docs/games/Doggo/img/Doggo-tile-wall-Vector.png and b/docs/games/Doggo/img/Doggo-tile-wall-Vector.png differ
diff --git a/docs/games/Doggo/index.rst b/docs/games/Doggo/index.rst
index ffa6f745c..7af01cd0a 100644
--- a/docs/games/Doggo/index.rst
+++ b/docs/games/Doggo/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-0.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-0.png
index f82ef56a5..7a92c16b5 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-0.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-0.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-1.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-1.png
index 537c7251c..c76d316c2 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-1.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-1.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-2.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-2.png
index 97e24a7f6..2022c131f 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-2.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-2.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-3.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-3.png
index 58fae4039..442e15e0c 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-3.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-3.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-4.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-4.png
index 83c51ba9b..ebd513251 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-4.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Block2D-4.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-0.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-0.png
index bfc4d4a07..ae51995da 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-0.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-0.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-1.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-1.png
index b6308dd3b..936b7275e 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-1.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-1.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-2.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-2.png
index 2cab92ce9..f5c956e6d 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-2.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-2.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-3.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-3.png
index 82588811d..9f5d17d1c 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-3.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-3.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-4.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-4.png
index 020c2cdf7..a5307d5f9 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-4.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-level-Vector-4.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Block2D.png
index 2161e673f..9ecb00099 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Block2D.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Vector.png
index 449dbd771..bc5c2b3ee 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-bookshelf-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Block2D.png
index 9ee6aa806..2e1cd0025 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Block2D.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Vector.png
index cddd4d04e..449dbd771 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-chair-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-coffin_bed-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-coffin_bed-Vector.png
index 1ea637a7b..a3febd5dd 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-coffin_bed-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-coffin_bed-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Block2D.png
index ed53dc4fb..48d075036 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Block2D.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Vector.png
index a3febd5dd..cddd4d04e 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-doggo-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Block2D.png
index 93283aabd..b41e5a08d 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Block2D.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Vector.png
index bc5c2b3ee..1ea637a7b 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-door-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-drunk_dwarf-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-drunk_dwarf-Vector.png
index bdb0ce86a..1ea637a7b 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-drunk_dwarf-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-drunk_dwarf-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-key-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-key-Vector.png
index c59c09c03..cddd4d04e 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-key-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-key-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Block2D.png
index d2ea5b82c..5a476fd9a 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Block2D.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Vector.png
index 8722650d1..449dbd771 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-table-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Block2D.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Block2D.png
index 672268aa4..b98b77ffc 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Block2D.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Block2D.png differ
diff --git a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Vector.png b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Vector.png
index 91397096b..bc5c2b3ee 100644
Binary files a/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Vector.png and b/docs/games/Drunk_Dwarf/img/Drunk_Dwarf-tile-wall-Vector.png differ
diff --git a/docs/games/Drunk_Dwarf/index.rst b/docs/games/Drunk_Dwarf/index.rst
index 6e755064c..da95cdbe7 100644
--- a/docs/games/Drunk_Dwarf/index.rst
+++ b/docs/games/Drunk_Dwarf/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Eyeball/img/Eyeball-level-Block2D-0.png b/docs/games/Eyeball/img/Eyeball-level-Block2D-0.png
index d3977baee..6c7d7b179 100644
Binary files a/docs/games/Eyeball/img/Eyeball-level-Block2D-0.png and b/docs/games/Eyeball/img/Eyeball-level-Block2D-0.png differ
diff --git a/docs/games/Eyeball/img/Eyeball-level-Vector-0.png b/docs/games/Eyeball/img/Eyeball-level-Vector-0.png
index 5ea949592..8e82d41ca 100644
Binary files a/docs/games/Eyeball/img/Eyeball-level-Vector-0.png and b/docs/games/Eyeball/img/Eyeball-level-Vector-0.png differ
diff --git a/docs/games/Eyeball/img/Eyeball-tile-eye_drops-Vector.png b/docs/games/Eyeball/img/Eyeball-tile-eye_drops-Vector.png
index 1460b3271..a5cdcff22 100644
Binary files a/docs/games/Eyeball/img/Eyeball-tile-eye_drops-Vector.png and b/docs/games/Eyeball/img/Eyeball-tile-eye_drops-Vector.png differ
diff --git a/docs/games/Eyeball/img/Eyeball-tile-eyeball-Vector.png b/docs/games/Eyeball/img/Eyeball-tile-eyeball-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Eyeball/img/Eyeball-tile-eyeball-Vector.png and b/docs/games/Eyeball/img/Eyeball-tile-eyeball-Vector.png differ
diff --git a/docs/games/Eyeball/img/Eyeball-tile-wall-Block2D.png b/docs/games/Eyeball/img/Eyeball-tile-wall-Block2D.png
index 672268aa4..b98b77ffc 100644
Binary files a/docs/games/Eyeball/img/Eyeball-tile-wall-Block2D.png and b/docs/games/Eyeball/img/Eyeball-tile-wall-Block2D.png differ
diff --git a/docs/games/Eyeball/img/Eyeball-tile-wall-Vector.png b/docs/games/Eyeball/img/Eyeball-tile-wall-Vector.png
index f5ac61ae0..6985a0878 100644
Binary files a/docs/games/Eyeball/img/Eyeball-tile-wall-Vector.png and b/docs/games/Eyeball/img/Eyeball-tile-wall-Vector.png differ
diff --git a/docs/games/Eyeball/index.rst b/docs/games/Eyeball/index.rst
index 7a77db94d..b4a373d24 100644
--- a/docs/games/Eyeball/index.rst
+++ b/docs/games/Eyeball/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Foragers/img/Foragers-level-Block2D-0.png b/docs/games/Foragers/img/Foragers-level-Block2D-0.png
index 7ab884e6a..ed96886a6 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Block2D-0.png and b/docs/games/Foragers/img/Foragers-level-Block2D-0.png differ
diff --git a/docs/games/Foragers/img/Foragers-level-Block2D-1.png b/docs/games/Foragers/img/Foragers-level-Block2D-1.png
index d83c5f302..96a26c5c5 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Block2D-1.png and b/docs/games/Foragers/img/Foragers-level-Block2D-1.png differ
diff --git a/docs/games/Foragers/img/Foragers-level-Block2D-2.png b/docs/games/Foragers/img/Foragers-level-Block2D-2.png
index fd555c11a..f2a91a0c5 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Block2D-2.png and b/docs/games/Foragers/img/Foragers-level-Block2D-2.png differ
diff --git a/docs/games/Foragers/img/Foragers-level-Sprite2D-0.png b/docs/games/Foragers/img/Foragers-level-Sprite2D-0.png
index 35abd40d7..5061a126d 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Sprite2D-0.png and b/docs/games/Foragers/img/Foragers-level-Sprite2D-0.png differ
diff --git a/docs/games/Foragers/img/Foragers-level-Sprite2D-1.png b/docs/games/Foragers/img/Foragers-level-Sprite2D-1.png
index 52ae70f77..b35999a85 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Sprite2D-1.png and b/docs/games/Foragers/img/Foragers-level-Sprite2D-1.png differ
diff --git a/docs/games/Foragers/img/Foragers-level-Sprite2D-2.png b/docs/games/Foragers/img/Foragers-level-Sprite2D-2.png
index 730209ea3..3e700aff3 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Sprite2D-2.png and b/docs/games/Foragers/img/Foragers-level-Sprite2D-2.png differ
diff --git a/docs/games/Foragers/img/Foragers-level-Vector-0.png b/docs/games/Foragers/img/Foragers-level-Vector-0.png
index f431b9807..c6515f31c 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Vector-0.png and b/docs/games/Foragers/img/Foragers-level-Vector-0.png differ
diff --git a/docs/games/Foragers/img/Foragers-level-Vector-1.png b/docs/games/Foragers/img/Foragers-level-Vector-1.png
index aba5717a9..8e6d79841 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Vector-1.png and b/docs/games/Foragers/img/Foragers-level-Vector-1.png differ
diff --git a/docs/games/Foragers/img/Foragers-level-Vector-2.png b/docs/games/Foragers/img/Foragers-level-Vector-2.png
index 359ac483a..f527a1267 100644
Binary files a/docs/games/Foragers/img/Foragers-level-Vector-2.png and b/docs/games/Foragers/img/Foragers-level-Vector-2.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-fixed_wall-Block2D.png b/docs/games/Foragers/img/Foragers-tile-fixed_wall-Block2D.png
index aa52694a3..47c9cdd28 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-fixed_wall-Block2D.png and b/docs/games/Foragers/img/Foragers-tile-fixed_wall-Block2D.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-fixed_wall-Vector.png b/docs/games/Foragers/img/Foragers-tile-fixed_wall-Vector.png
index c23edfdd3..a2f51f612 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-fixed_wall-Vector.png and b/docs/games/Foragers/img/Foragers-tile-fixed_wall-Vector.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-harvester-Block2D.png b/docs/games/Foragers/img/Foragers-tile-harvester-Block2D.png
index e07839abf..d5ec97831 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-harvester-Block2D.png and b/docs/games/Foragers/img/Foragers-tile-harvester-Block2D.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-harvester-Vector.png b/docs/games/Foragers/img/Foragers-tile-harvester-Vector.png
index c0ac27968..c23edfdd3 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-harvester-Vector.png and b/docs/games/Foragers/img/Foragers-tile-harvester-Vector.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-potion1-Sprite2D.png b/docs/games/Foragers/img/Foragers-tile-potion1-Sprite2D.png
index 624648871..e4ff05412 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-potion1-Sprite2D.png and b/docs/games/Foragers/img/Foragers-tile-potion1-Sprite2D.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-potion1-Vector.png b/docs/games/Foragers/img/Foragers-tile-potion1-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-potion1-Vector.png and b/docs/games/Foragers/img/Foragers-tile-potion1-Vector.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-potion2-Sprite2D.png b/docs/games/Foragers/img/Foragers-tile-potion2-Sprite2D.png
index 8ae9af01f..352bfdbd0 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-potion2-Sprite2D.png and b/docs/games/Foragers/img/Foragers-tile-potion2-Sprite2D.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-potion2-Vector.png b/docs/games/Foragers/img/Foragers-tile-potion2-Vector.png
index 5423baded..c0ac27968 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-potion2-Vector.png and b/docs/games/Foragers/img/Foragers-tile-potion2-Vector.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-potion3-Block2D.png b/docs/games/Foragers/img/Foragers-tile-potion3-Block2D.png
index 5ba6187a2..04e75e4fb 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-potion3-Block2D.png and b/docs/games/Foragers/img/Foragers-tile-potion3-Block2D.png differ
diff --git a/docs/games/Foragers/img/Foragers-tile-potion3-Vector.png b/docs/games/Foragers/img/Foragers-tile-potion3-Vector.png
index 758055b8f..7d7ba957a 100644
Binary files a/docs/games/Foragers/img/Foragers-tile-potion3-Vector.png and b/docs/games/Foragers/img/Foragers-tile-potion3-Vector.png differ
diff --git a/docs/games/Foragers/index.rst b/docs/games/Foragers/index.rst
index 105effdbb..0ef10f8c7 100644
--- a/docs/games/Foragers/index.rst
+++ b/docs/games/Foragers/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-0.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-0.png
new file mode 100644
index 000000000..858823222
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-0.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-1.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-1.png
new file mode 100644
index 000000000..1d4f6110a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-1.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-10.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-10.png
new file mode 100644
index 000000000..ec3652084
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-10.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-100.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-100.png
new file mode 100644
index 000000000..593624a34
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-100.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-11.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-11.png
new file mode 100644
index 000000000..eba3cdb84
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-11.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-12.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-12.png
new file mode 100644
index 000000000..74843a7d0
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-12.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-13.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-13.png
new file mode 100644
index 000000000..4dd03c036
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-13.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-14.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-14.png
new file mode 100644
index 000000000..62124e5ca
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-14.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-15.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-15.png
new file mode 100644
index 000000000..31cf89524
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-15.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-16.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-16.png
new file mode 100644
index 000000000..67cb74863
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-16.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-17.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-17.png
new file mode 100644
index 000000000..1b96c47a3
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-17.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-18.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-18.png
new file mode 100644
index 000000000..239fef035
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-18.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-19.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-19.png
new file mode 100644
index 000000000..d0cb981b0
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-19.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-2.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-2.png
new file mode 100644
index 000000000..6f3379056
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-2.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-20.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-20.png
new file mode 100644
index 000000000..71fdfd612
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-20.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-21.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-21.png
new file mode 100644
index 000000000..5ce9a5ea2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-21.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-22.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-22.png
new file mode 100644
index 000000000..f81a62d8a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-22.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-23.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-23.png
new file mode 100644
index 000000000..26712f94e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-23.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-24.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-24.png
new file mode 100644
index 000000000..06f503cbe
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-24.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-25.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-25.png
new file mode 100644
index 000000000..35bc75f5d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-25.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-26.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-26.png
new file mode 100644
index 000000000..077100839
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-26.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-27.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-27.png
new file mode 100644
index 000000000..7d3c1030e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-27.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-28.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-28.png
new file mode 100644
index 000000000..e893cde32
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-28.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-29.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-29.png
new file mode 100644
index 000000000..ba5ed73c8
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-29.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-3.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-3.png
new file mode 100644
index 000000000..04d98e7d2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-3.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-30.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-30.png
new file mode 100644
index 000000000..6e8e4f3ac
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-30.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-31.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-31.png
new file mode 100644
index 000000000..682544026
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-31.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-32.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-32.png
new file mode 100644
index 000000000..ec1354151
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-32.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-33.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-33.png
new file mode 100644
index 000000000..32a08461f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-33.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-34.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-34.png
new file mode 100644
index 000000000..43728ebeb
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-34.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-35.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-35.png
new file mode 100644
index 000000000..d9369ac53
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-35.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-36.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-36.png
new file mode 100644
index 000000000..a13968b87
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-36.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-37.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-37.png
new file mode 100644
index 000000000..c67230f3d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-37.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-38.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-38.png
new file mode 100644
index 000000000..1ecd3418a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-38.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-39.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-39.png
new file mode 100644
index 000000000..4d20b069d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-39.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-4.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-4.png
new file mode 100644
index 000000000..357422ae5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-4.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-40.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-40.png
new file mode 100644
index 000000000..55553f2f4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-40.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-41.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-41.png
new file mode 100644
index 000000000..a0558ebca
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-41.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-42.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-42.png
new file mode 100644
index 000000000..87587120d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-42.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-43.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-43.png
new file mode 100644
index 000000000..1da03431d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-43.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-44.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-44.png
new file mode 100644
index 000000000..a37ea1826
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-44.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-45.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-45.png
new file mode 100644
index 000000000..9491a4df3
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-45.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-46.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-46.png
new file mode 100644
index 000000000..88b4ccf8b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-46.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-47.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-47.png
new file mode 100644
index 000000000..779e97cab
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-47.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-48.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-48.png
new file mode 100644
index 000000000..d152a54c2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-48.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-49.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-49.png
new file mode 100644
index 000000000..a82e6d7c1
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-49.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-5.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-5.png
new file mode 100644
index 000000000..7d510f9c4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-5.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-50.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-50.png
new file mode 100644
index 000000000..d152a54c2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-50.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-51.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-51.png
new file mode 100644
index 000000000..72d393801
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-51.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-52.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-52.png
new file mode 100644
index 000000000..18e12aad4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-52.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-53.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-53.png
new file mode 100644
index 000000000..2c81fa146
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-53.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-54.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-54.png
new file mode 100644
index 000000000..efeae1e1b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-54.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-55.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-55.png
new file mode 100644
index 000000000..6f363dd57
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-55.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-56.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-56.png
new file mode 100644
index 000000000..5aaee9de3
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-56.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-57.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-57.png
new file mode 100644
index 000000000..2d58a4b7e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-57.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-58.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-58.png
new file mode 100644
index 000000000..7b17b15c4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-58.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-59.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-59.png
new file mode 100644
index 000000000..0cade361e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-59.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-6.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-6.png
new file mode 100644
index 000000000..c6ce78902
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-6.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-60.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-60.png
new file mode 100644
index 000000000..65f55b5d7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-60.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-61.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-61.png
new file mode 100644
index 000000000..c403f1482
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-61.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-62.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-62.png
new file mode 100644
index 000000000..3959357b0
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-62.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-63.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-63.png
new file mode 100644
index 000000000..9bf293fa8
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-63.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-64.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-64.png
new file mode 100644
index 000000000..a335297fa
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-64.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-65.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-65.png
new file mode 100644
index 000000000..cad09e343
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-65.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-66.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-66.png
new file mode 100644
index 000000000..85a6e501c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-66.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-67.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-67.png
new file mode 100644
index 000000000..f599b2e96
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-67.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-68.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-68.png
new file mode 100644
index 000000000..0e877ca1d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-68.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-69.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-69.png
new file mode 100644
index 000000000..2c0ea76fc
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-69.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-7.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-7.png
new file mode 100644
index 000000000..c6ce78902
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-7.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-70.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-70.png
new file mode 100644
index 000000000..7b0fcddac
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-70.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-71.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-71.png
new file mode 100644
index 000000000..74293e574
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-71.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-72.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-72.png
new file mode 100644
index 000000000..e3c101bdc
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-72.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-73.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-73.png
new file mode 100644
index 000000000..5d0381b36
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-73.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-74.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-74.png
new file mode 100644
index 000000000..f0744dd12
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-74.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-75.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-75.png
new file mode 100644
index 000000000..548a1ab65
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-75.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-76.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-76.png
new file mode 100644
index 000000000..1b4389f6f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-76.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-77.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-77.png
new file mode 100644
index 000000000..4228a88b2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-77.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-78.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-78.png
new file mode 100644
index 000000000..9b448579b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-78.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-79.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-79.png
new file mode 100644
index 000000000..e2c327192
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-79.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-8.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-8.png
new file mode 100644
index 000000000..aa1b4eaff
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-8.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-80.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-80.png
new file mode 100644
index 000000000..b187a1c8d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-80.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-81.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-81.png
new file mode 100644
index 000000000..975a55041
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-81.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-82.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-82.png
new file mode 100644
index 000000000..f355c62b2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-82.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-83.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-83.png
new file mode 100644
index 000000000..dd0b5d5d8
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-83.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-84.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-84.png
new file mode 100644
index 000000000..0e784d6d8
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-84.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-85.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-85.png
new file mode 100644
index 000000000..480582783
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-85.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-86.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-86.png
new file mode 100644
index 000000000..40365f974
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-86.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-87.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-87.png
new file mode 100644
index 000000000..527059eb9
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-87.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-88.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-88.png
new file mode 100644
index 000000000..7560d3c70
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-88.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-89.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-89.png
new file mode 100644
index 000000000..523b32994
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-89.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-9.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-9.png
new file mode 100644
index 000000000..ec3652084
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-9.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-90.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-90.png
new file mode 100644
index 000000000..1011658c9
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-90.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-91.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-91.png
new file mode 100644
index 000000000..a4d01acda
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-91.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-92.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-92.png
new file mode 100644
index 000000000..5b526fd1c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-92.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-93.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-93.png
new file mode 100644
index 000000000..95c1cc8ad
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-93.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-94.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-94.png
new file mode 100644
index 000000000..e69e8a407
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-94.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-95.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-95.png
new file mode 100644
index 000000000..c774311af
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-95.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-96.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-96.png
new file mode 100644
index 000000000..bcabfcd24
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-96.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-97.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-97.png
new file mode 100644
index 000000000..7a265116b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-97.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-98.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-98.png
new file mode 100644
index 000000000..140c3252b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-98.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-99.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-99.png
new file mode 100644
index 000000000..d13463c61
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-GlobalSprite2D-99.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-0.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-0.png
new file mode 100644
index 000000000..b0643d1ef
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-0.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-1.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-1.png
new file mode 100644
index 000000000..cd2564fc6
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-1.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-10.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-10.png
new file mode 100644
index 000000000..4f25ccc65
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-10.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-100.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-100.png
new file mode 100644
index 000000000..f5ae4713a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-100.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-11.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-11.png
new file mode 100644
index 000000000..2cc3ff8c5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-11.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-12.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-12.png
new file mode 100644
index 000000000..8ce36c506
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-12.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-13.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-13.png
new file mode 100644
index 000000000..a1d24a45e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-13.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-14.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-14.png
new file mode 100644
index 000000000..6bf8d6b31
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-14.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-15.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-15.png
new file mode 100644
index 000000000..cba07a088
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-15.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-16.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-16.png
new file mode 100644
index 000000000..ee3902f16
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-16.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-17.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-17.png
new file mode 100644
index 000000000..614d85101
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-17.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-18.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-18.png
new file mode 100644
index 000000000..d39372a08
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-18.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-19.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-19.png
new file mode 100644
index 000000000..381552d8e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-19.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-2.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-2.png
new file mode 100644
index 000000000..3db038ab8
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-2.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-20.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-20.png
new file mode 100644
index 000000000..094add00e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-20.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-21.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-21.png
new file mode 100644
index 000000000..51fb315f7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-21.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-22.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-22.png
new file mode 100644
index 000000000..bb4e1c166
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-22.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-23.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-23.png
new file mode 100644
index 000000000..7dba54221
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-23.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-24.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-24.png
new file mode 100644
index 000000000..9c95b9bc6
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-24.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-25.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-25.png
new file mode 100644
index 000000000..22dfbc414
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-25.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-26.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-26.png
new file mode 100644
index 000000000..ebb17e675
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-26.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-27.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-27.png
new file mode 100644
index 000000000..b75eaf14f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-27.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-28.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-28.png
new file mode 100644
index 000000000..dd9e06549
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-28.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-29.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-29.png
new file mode 100644
index 000000000..c90c685eb
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-29.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-3.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-3.png
new file mode 100644
index 000000000..6cf3c062e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-3.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-30.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-30.png
new file mode 100644
index 000000000..932c47469
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-30.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-31.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-31.png
new file mode 100644
index 000000000..a5a0ad153
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-31.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-32.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-32.png
new file mode 100644
index 000000000..256fef1d4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-32.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-33.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-33.png
new file mode 100644
index 000000000..0213e0a71
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-33.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-34.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-34.png
new file mode 100644
index 000000000..ce661b671
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-34.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-35.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-35.png
new file mode 100644
index 000000000..41b89ca76
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-35.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-36.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-36.png
new file mode 100644
index 000000000..d966ad509
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-36.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-37.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-37.png
new file mode 100644
index 000000000..d06d2bdee
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-37.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-38.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-38.png
new file mode 100644
index 000000000..28a152071
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-38.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-39.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-39.png
new file mode 100644
index 000000000..a1c7966c7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-39.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-4.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-4.png
new file mode 100644
index 000000000..bf2a7798d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-4.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-40.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-40.png
new file mode 100644
index 000000000..e2e964330
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-40.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-41.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-41.png
new file mode 100644
index 000000000..248bdcb5b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-41.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-42.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-42.png
new file mode 100644
index 000000000..8c6d872ca
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-42.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-43.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-43.png
new file mode 100644
index 000000000..16e4d4499
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-43.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-44.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-44.png
new file mode 100644
index 000000000..438b7b676
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-44.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-45.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-45.png
new file mode 100644
index 000000000..af3e85c7b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-45.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-46.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-46.png
new file mode 100644
index 000000000..607c65374
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-46.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-47.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-47.png
new file mode 100644
index 000000000..48b78c51f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-47.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-48.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-48.png
new file mode 100644
index 000000000..dc165d81d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-48.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-49.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-49.png
new file mode 100644
index 000000000..bf711481a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-49.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-5.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-5.png
new file mode 100644
index 000000000..ae3567e1b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-5.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-50.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-50.png
new file mode 100644
index 000000000..dc165d81d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-50.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-51.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-51.png
new file mode 100644
index 000000000..a5a2e930b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-51.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-52.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-52.png
new file mode 100644
index 000000000..777179bc2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-52.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-53.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-53.png
new file mode 100644
index 000000000..53862d638
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-53.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-54.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-54.png
new file mode 100644
index 000000000..dc6c9ace4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-54.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-55.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-55.png
new file mode 100644
index 000000000..c96c7d879
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-55.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-56.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-56.png
new file mode 100644
index 000000000..e5104dda4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-56.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-57.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-57.png
new file mode 100644
index 000000000..538ec5f14
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-57.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-58.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-58.png
new file mode 100644
index 000000000..0edd897d8
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-58.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-59.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-59.png
new file mode 100644
index 000000000..0b7f1e8b7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-59.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-6.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-6.png
new file mode 100644
index 000000000..24517d637
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-6.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-60.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-60.png
new file mode 100644
index 000000000..0914cbbfb
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-60.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-61.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-61.png
new file mode 100644
index 000000000..1e0e2ff61
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-61.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-62.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-62.png
new file mode 100644
index 000000000..cb2788569
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-62.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-63.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-63.png
new file mode 100644
index 000000000..349232b97
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-63.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-64.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-64.png
new file mode 100644
index 000000000..b9e7310ff
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-64.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-65.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-65.png
new file mode 100644
index 000000000..c56a3cef4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-65.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-66.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-66.png
new file mode 100644
index 000000000..bfca5cb4c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-66.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-67.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-67.png
new file mode 100644
index 000000000..62f235ff9
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-67.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-68.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-68.png
new file mode 100644
index 000000000..e1bab2b96
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-68.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-69.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-69.png
new file mode 100644
index 000000000..ad0fb73da
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-69.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-7.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-7.png
new file mode 100644
index 000000000..24517d637
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-7.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-70.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-70.png
new file mode 100644
index 000000000..5f38d73fd
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-70.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-71.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-71.png
new file mode 100644
index 000000000..4bc339015
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-71.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-72.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-72.png
new file mode 100644
index 000000000..5f7fc1c84
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-72.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-73.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-73.png
new file mode 100644
index 000000000..278c8342e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-73.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-74.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-74.png
new file mode 100644
index 000000000..098015d65
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-74.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-75.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-75.png
new file mode 100644
index 000000000..bf2fadb66
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-75.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-76.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-76.png
new file mode 100644
index 000000000..d7d1f1478
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-76.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-77.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-77.png
new file mode 100644
index 000000000..3aceaf195
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-77.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-78.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-78.png
new file mode 100644
index 000000000..bb68e2f1f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-78.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-79.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-79.png
new file mode 100644
index 000000000..90d7172f9
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-79.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-8.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-8.png
new file mode 100644
index 000000000..691e780fc
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-8.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-80.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-80.png
new file mode 100644
index 000000000..5dbaada46
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-80.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-81.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-81.png
new file mode 100644
index 000000000..805273cb4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-81.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-82.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-82.png
new file mode 100644
index 000000000..281049a33
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-82.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-83.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-83.png
new file mode 100644
index 000000000..e0d05677c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-83.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-84.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-84.png
new file mode 100644
index 000000000..2204a0523
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-84.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-85.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-85.png
new file mode 100644
index 000000000..36fd12407
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-85.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-86.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-86.png
new file mode 100644
index 000000000..414351ec4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-86.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-87.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-87.png
new file mode 100644
index 000000000..dd99659a5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-87.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-88.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-88.png
new file mode 100644
index 000000000..0f4e85b77
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-88.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-89.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-89.png
new file mode 100644
index 000000000..6a17c2651
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-89.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-9.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-9.png
new file mode 100644
index 000000000..4f25ccc65
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-9.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-90.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-90.png
new file mode 100644
index 000000000..4cf617195
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-90.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-91.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-91.png
new file mode 100644
index 000000000..2cb9abbd9
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-91.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-92.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-92.png
new file mode 100644
index 000000000..c78eef8a7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-92.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-93.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-93.png
new file mode 100644
index 000000000..bdbd10082
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-93.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-94.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-94.png
new file mode 100644
index 000000000..a4b743d3f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-94.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-95.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-95.png
new file mode 100644
index 000000000..eb587a09f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-95.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-96.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-96.png
new file mode 100644
index 000000000..300e6f4a3
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-96.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-97.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-97.png
new file mode 100644
index 000000000..22f6938a1
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-97.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-98.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-98.png
new file mode 100644
index 000000000..234d6e933
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-98.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-99.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-99.png
new file mode 100644
index 000000000..e79fcf81e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-PlayerSprite2D-99.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-0.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-0.png
new file mode 100644
index 000000000..4167d6604
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-0.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-1.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-1.png
new file mode 100644
index 000000000..19cbf78d7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-1.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-10.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-10.png
new file mode 100644
index 000000000..e191ccd61
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-10.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-100.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-100.png
new file mode 100644
index 000000000..fbf93573a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-100.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-11.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-11.png
new file mode 100644
index 000000000..69daca2fb
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-11.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-12.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-12.png
new file mode 100644
index 000000000..2b3b9b100
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-12.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-13.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-13.png
new file mode 100644
index 000000000..f46628862
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-13.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-14.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-14.png
new file mode 100644
index 000000000..1798ae4f3
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-14.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-15.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-15.png
new file mode 100644
index 000000000..a09feaf8e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-15.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-16.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-16.png
new file mode 100644
index 000000000..caf22cd45
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-16.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-17.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-17.png
new file mode 100644
index 000000000..c1e7845ff
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-17.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-18.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-18.png
new file mode 100644
index 000000000..85d0ed215
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-18.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-19.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-19.png
new file mode 100644
index 000000000..833fcfd3f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-19.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-2.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-2.png
new file mode 100644
index 000000000..97380e895
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-2.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-20.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-20.png
new file mode 100644
index 000000000..4535e8718
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-20.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-21.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-21.png
new file mode 100644
index 000000000..8319f1935
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-21.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-22.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-22.png
new file mode 100644
index 000000000..cda8ba9a5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-22.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-23.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-23.png
new file mode 100644
index 000000000..3781d80b7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-23.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-24.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-24.png
new file mode 100644
index 000000000..dd9380e08
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-24.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-25.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-25.png
new file mode 100644
index 000000000..ebe1427d7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-25.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-26.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-26.png
new file mode 100644
index 000000000..d92931d05
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-26.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-27.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-27.png
new file mode 100644
index 000000000..4922e176c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-27.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-28.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-28.png
new file mode 100644
index 000000000..fdc0565ad
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-28.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-29.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-29.png
new file mode 100644
index 000000000..5bb96521d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-29.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-3.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-3.png
new file mode 100644
index 000000000..e404e9358
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-3.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-30.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-30.png
new file mode 100644
index 000000000..478ed3a30
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-30.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-31.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-31.png
new file mode 100644
index 000000000..23d4a5f96
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-31.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-32.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-32.png
new file mode 100644
index 000000000..ef036eb86
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-32.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-33.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-33.png
new file mode 100644
index 000000000..faf3bd57e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-33.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-34.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-34.png
new file mode 100644
index 000000000..71094f8ea
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-34.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-35.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-35.png
new file mode 100644
index 000000000..3b22d54fd
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-35.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-36.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-36.png
new file mode 100644
index 000000000..f56d5a0fe
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-36.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-37.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-37.png
new file mode 100644
index 000000000..d5ea5ffd1
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-37.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-38.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-38.png
new file mode 100644
index 000000000..8a2c4c9b4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-38.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-39.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-39.png
new file mode 100644
index 000000000..2b508c8d4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-39.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-4.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-4.png
new file mode 100644
index 000000000..8a38b9932
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-4.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-40.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-40.png
new file mode 100644
index 000000000..4bde2d0c6
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-40.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-41.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-41.png
new file mode 100644
index 000000000..f1103a62e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-41.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-42.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-42.png
new file mode 100644
index 000000000..e1580e922
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-42.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-43.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-43.png
new file mode 100644
index 000000000..e301ec957
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-43.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-44.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-44.png
new file mode 100644
index 000000000..038830ad5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-44.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-45.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-45.png
new file mode 100644
index 000000000..41d903c51
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-45.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-46.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-46.png
new file mode 100644
index 000000000..b52e16d46
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-46.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-47.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-47.png
new file mode 100644
index 000000000..54c49765c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-47.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-48.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-48.png
new file mode 100644
index 000000000..e37db3f29
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-48.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-49.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-49.png
new file mode 100644
index 000000000..619bffaf0
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-49.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-5.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-5.png
new file mode 100644
index 000000000..c5a4dc740
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-5.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-50.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-50.png
new file mode 100644
index 000000000..e37db3f29
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-50.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-51.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-51.png
new file mode 100644
index 000000000..5870c88e5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-51.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-52.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-52.png
new file mode 100644
index 000000000..669e18f71
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-52.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-53.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-53.png
new file mode 100644
index 000000000..00dc0d8d6
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-53.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-54.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-54.png
new file mode 100644
index 000000000..845288409
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-54.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-55.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-55.png
new file mode 100644
index 000000000..3ec6d54fe
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-55.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-56.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-56.png
new file mode 100644
index 000000000..0d2a2d41f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-56.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-57.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-57.png
new file mode 100644
index 000000000..0f6421639
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-57.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-58.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-58.png
new file mode 100644
index 000000000..0f6421639
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-58.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-59.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-59.png
new file mode 100644
index 000000000..0f6421639
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-59.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-6.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-6.png
new file mode 100644
index 000000000..977947152
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-6.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-60.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-60.png
new file mode 100644
index 000000000..43b923048
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-60.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-61.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-61.png
new file mode 100644
index 000000000..062df6804
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-61.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-62.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-62.png
new file mode 100644
index 000000000..a9c606e80
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-62.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-63.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-63.png
new file mode 100644
index 000000000..1fb967716
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-63.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-64.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-64.png
new file mode 100644
index 000000000..f33507d3c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-64.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-65.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-65.png
new file mode 100644
index 000000000..c3315b62a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-65.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-66.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-66.png
new file mode 100644
index 000000000..39844add4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-66.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-67.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-67.png
new file mode 100644
index 000000000..83936af5e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-67.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-68.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-68.png
new file mode 100644
index 000000000..4a2bb51be
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-68.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-69.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-69.png
new file mode 100644
index 000000000..335e9219f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-69.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-7.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-7.png
new file mode 100644
index 000000000..977947152
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-7.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-70.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-70.png
new file mode 100644
index 000000000..300e5ca49
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-70.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-71.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-71.png
new file mode 100644
index 000000000..1f9af1544
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-71.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-72.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-72.png
new file mode 100644
index 000000000..f6c0e38d2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-72.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-73.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-73.png
new file mode 100644
index 000000000..9d79a8c37
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-73.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-74.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-74.png
new file mode 100644
index 000000000..c1e53f011
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-74.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-75.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-75.png
new file mode 100644
index 000000000..474b5e540
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-75.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-76.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-76.png
new file mode 100644
index 000000000..db54bb081
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-76.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-77.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-77.png
new file mode 100644
index 000000000..d24dae51e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-77.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-78.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-78.png
new file mode 100644
index 000000000..add654f58
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-78.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-79.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-79.png
new file mode 100644
index 000000000..5097ed893
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-79.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-8.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-8.png
new file mode 100644
index 000000000..d4f6da32f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-8.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-80.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-80.png
new file mode 100644
index 000000000..fed59828d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-80.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-81.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-81.png
new file mode 100644
index 000000000..0fc906bd5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-81.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-82.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-82.png
new file mode 100644
index 000000000..5403e8983
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-82.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-83.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-83.png
new file mode 100644
index 000000000..acfbdca43
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-83.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-84.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-84.png
new file mode 100644
index 000000000..127db9490
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-84.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-85.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-85.png
new file mode 100644
index 000000000..61b3abf0c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-85.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-86.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-86.png
new file mode 100644
index 000000000..7ca5a0a60
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-86.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-87.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-87.png
new file mode 100644
index 000000000..336016865
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-87.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-88.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-88.png
new file mode 100644
index 000000000..88ea5201d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-88.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-89.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-89.png
new file mode 100644
index 000000000..17afcc420
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-89.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-9.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-9.png
new file mode 100644
index 000000000..e191ccd61
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-9.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-90.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-90.png
new file mode 100644
index 000000000..cc47c1394
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-90.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-91.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-91.png
new file mode 100644
index 000000000..ee2ffab4b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-91.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-92.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-92.png
new file mode 100644
index 000000000..77da83209
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-92.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-93.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-93.png
new file mode 100644
index 000000000..f5468082d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-93.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-94.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-94.png
new file mode 100644
index 000000000..d000ed0b1
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-94.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-95.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-95.png
new file mode 100644
index 000000000..389ed8533
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-95.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-96.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-96.png
new file mode 100644
index 000000000..a861b8329
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-96.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-97.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-97.png
new file mode 100644
index 000000000..73e76d574
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-97.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-98.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-98.png
new file mode 100644
index 000000000..86eaec616
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-98.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-99.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-99.png
new file mode 100644
index 000000000..676c5fab2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-level-Vector-99.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-GlobalSprite2D.png
new file mode 100644
index 000000000..2a09fd0fb
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-PlayerSprite2D.png
new file mode 100644
index 000000000..215c13a28
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-Vector.png
new file mode 100644
index 000000000..6985a0878
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-arrow-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-GlobalSprite2D.png
new file mode 100644
index 000000000..e6e1ffd7d
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-PlayerSprite2D.png
new file mode 100644
index 000000000..c06e1e1f2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-Vector.png
new file mode 100644
index 000000000..07da2f420
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-coal-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-GlobalSprite2D.png
new file mode 100644
index 000000000..b27dc40a2
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-PlayerSprite2D.png
new file mode 100644
index 000000000..b3ca07e9b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-Vector.png
new file mode 100644
index 000000000..159d22611
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-cow-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-GlobalSprite2D.png
new file mode 100644
index 000000000..c01175c6f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-PlayerSprite2D.png
new file mode 100644
index 000000000..418bdce2b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-Vector.png
new file mode 100644
index 000000000..64c6678a1
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-diamond-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-GlobalSprite2D.png
new file mode 100644
index 000000000..96b06d188
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-PlayerSprite2D.png
new file mode 100644
index 000000000..008de5d06
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-Vector.png
new file mode 100644
index 000000000..3220f5d4c
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-fence-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-GlobalSprite2D.png
new file mode 100644
index 000000000..2ddd663f3
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-PlayerSprite2D.png
new file mode 100644
index 000000000..9e8b72493
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-Vector.png
new file mode 100644
index 000000000..0c0e39f29
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-furnace-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-GlobalSprite2D.png
new file mode 100644
index 000000000..5365188d0
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-PlayerSprite2D.png
new file mode 100644
index 000000000..4fcdf644b
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-Vector.png
new file mode 100644
index 000000000..9455fc977
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-grass-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-GlobalSprite2D.png
new file mode 100644
index 000000000..815a3f4ba
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-PlayerSprite2D.png
new file mode 100644
index 000000000..629d8171f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-Vector.png
new file mode 100644
index 000000000..aba8e1da6
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-iron-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-GlobalSprite2D.png
new file mode 100644
index 000000000..383cbbe99
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-PlayerSprite2D.png
new file mode 100644
index 000000000..ca68c8881
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-Vector.png
new file mode 100644
index 000000000..57ee46ae4
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-lava-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-GlobalSprite2D.png
new file mode 100644
index 000000000..4dc4524c9
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-PlayerSprite2D.png
new file mode 100644
index 000000000..697d9c822
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-Vector.png
new file mode 100644
index 000000000..024c4355e
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-path-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-GlobalSprite2D.png
new file mode 100644
index 000000000..5880c6100
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-PlayerSprite2D.png
new file mode 100644
index 000000000..83ef16eb6
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-Vector.png
new file mode 100644
index 000000000..f4420decc
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-plant-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-GlobalSprite2D.png
new file mode 100644
index 000000000..11bfe97ce
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-PlayerSprite2D.png
new file mode 100644
index 000000000..6aaa264a8
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-Vector.png
new file mode 100644
index 000000000..4eff5faf5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-player-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-GlobalSprite2D.png
new file mode 100644
index 000000000..6c81cb4d5
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-PlayerSprite2D.png
new file mode 100644
index 000000000..8a4e95e38
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-Vector.png
new file mode 100644
index 000000000..1d4ac1708
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-sand-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-GlobalSprite2D.png
new file mode 100644
index 000000000..55477fb85
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-PlayerSprite2D.png
new file mode 100644
index 000000000..96b42bd2a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-Vector.png
new file mode 100644
index 000000000..a5cdcff22
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-skeleton-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-GlobalSprite2D.png
new file mode 100644
index 000000000..4d0fe39e7
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-PlayerSprite2D.png
new file mode 100644
index 000000000..b52e42d12
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-Vector.png
new file mode 100644
index 000000000..b5f035a56
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-stone-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-GlobalSprite2D.png
new file mode 100644
index 000000000..e7a0f0659
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-PlayerSprite2D.png
new file mode 100644
index 000000000..486fc8791
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-Vector.png
new file mode 100644
index 000000000..3da1e74c0
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-table-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-GlobalSprite2D.png
new file mode 100644
index 000000000..81624795a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-PlayerSprite2D.png
new file mode 100644
index 000000000..139265a04
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-Vector.png
new file mode 100644
index 000000000..c699d613a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-tree-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-GlobalSprite2D.png
new file mode 100644
index 000000000..fe429c72f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-PlayerSprite2D.png
new file mode 100644
index 000000000..0bfc93d4f
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-Vector.png
new file mode 100644
index 000000000..10e705a25
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-water-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-GlobalSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-GlobalSprite2D.png
new file mode 100644
index 000000000..ae9869c96
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-GlobalSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-PlayerSprite2D.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-PlayerSprite2D.png
new file mode 100644
index 000000000..53ffe6316
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-PlayerSprite2D.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-Vector.png b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-Vector.png
new file mode 100644
index 000000000..5754a534a
Binary files /dev/null and b/docs/games/Grafter_Escape_Rooms/img/Grafter_Escape_Rooms-tile-zombie-Vector.png differ
diff --git a/docs/games/Grafter_Escape_Rooms/index.rst b/docs/games/Grafter_Escape_Rooms/index.rst
new file mode 100644
index 000000000..1fe8477bf
--- /dev/null
+++ b/docs/games/Grafter_Escape_Rooms/index.rst
@@ -0,0 +1,7138 @@
+.. _doc_grafter_escape_rooms:
+
+Grafter Escape Rooms
+====================
+
+.. code-block::
+
+ Single-Player/Grafter/escape-rooms.yaml
+
+Description
+-------------
+
+100 human designed escape rooms using the mechanics of the Crafter environment.
+
+Levels
+---------
+
+.. list-table:: Levels
+ :class: level-gallery
+ :header-rows: 1
+
+ * -
+ - Vector
+ - GlobalSprite2D
+ - PlayerSprite2D
+ * - .. list-table::
+
+ * - Level ID
+ - 0
+ * - Size
+ - 10x11
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-0.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-0.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-0.png
+ * - .. list-table::
+
+ * - Level ID
+ - 1
+ * - Size
+ - 10x11
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-1.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-1.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-1.png
+ * - .. list-table::
+
+ * - Level ID
+ - 2
+ * - Size
+ - 15x3
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-2.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-2.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-2.png
+ * - .. list-table::
+
+ * - Level ID
+ - 3
+ * - Size
+ - 16x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-3.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-3.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-3.png
+ * - .. list-table::
+
+ * - Level ID
+ - 4
+ * - Size
+ - 16x11
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-4.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-4.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-4.png
+ * - .. list-table::
+
+ * - Level ID
+ - 5
+ * - Size
+ - 16x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-5.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-5.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-5.png
+ * - .. list-table::
+
+ * - Level ID
+ - 6
+ * - Size
+ - 5x8
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-6.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-6.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-6.png
+ * - .. list-table::
+
+ * - Level ID
+ - 7
+ * - Size
+ - 5x8
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-7.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-7.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-7.png
+ * - .. list-table::
+
+ * - Level ID
+ - 8
+ * - Size
+ - 5x8
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-8.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-8.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-8.png
+ * - .. list-table::
+
+ * - Level ID
+ - 9
+ * - Size
+ - 5x8
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-9.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-9.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-9.png
+ * - .. list-table::
+
+ * - Level ID
+ - 10
+ * - Size
+ - 5x8
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-10.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-10.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-10.png
+ * - .. list-table::
+
+ * - Level ID
+ - 11
+ * - Size
+ - 5x7
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-11.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-11.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-11.png
+ * - .. list-table::
+
+ * - Level ID
+ - 12
+ * - Size
+ - 5x7
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-12.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-12.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-12.png
+ * - .. list-table::
+
+ * - Level ID
+ - 13
+ * - Size
+ - 5x7
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-13.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-13.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-13.png
+ * - .. list-table::
+
+ * - Level ID
+ - 14
+ * - Size
+ - 14x9
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-14.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-14.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-14.png
+ * - .. list-table::
+
+ * - Level ID
+ - 15
+ * - Size
+ - 14x9
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-15.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-15.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-15.png
+ * - .. list-table::
+
+ * - Level ID
+ - 16
+ * - Size
+ - 14x9
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-16.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-16.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-16.png
+ * - .. list-table::
+
+ * - Level ID
+ - 17
+ * - Size
+ - 5x7
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-17.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-17.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-17.png
+ * - .. list-table::
+
+ * - Level ID
+ - 18
+ * - Size
+ - 5x7
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-18.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-18.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-18.png
+ * - .. list-table::
+
+ * - Level ID
+ - 19
+ * - Size
+ - 5x7
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-19.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-19.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-19.png
+ * - .. list-table::
+
+ * - Level ID
+ - 20
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-20.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-20.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-20.png
+ * - .. list-table::
+
+ * - Level ID
+ - 21
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-21.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-21.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-21.png
+ * - .. list-table::
+
+ * - Level ID
+ - 22
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-22.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-22.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-22.png
+ * - .. list-table::
+
+ * - Level ID
+ - 23
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-23.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-23.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-23.png
+ * - .. list-table::
+
+ * - Level ID
+ - 24
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-24.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-24.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-24.png
+ * - .. list-table::
+
+ * - Level ID
+ - 25
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-25.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-25.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-25.png
+ * - .. list-table::
+
+ * - Level ID
+ - 26
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-26.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-26.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-26.png
+ * - .. list-table::
+
+ * - Level ID
+ - 27
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-27.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-27.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-27.png
+ * - .. list-table::
+
+ * - Level ID
+ - 28
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-28.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-28.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-28.png
+ * - .. list-table::
+
+ * - Level ID
+ - 29
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-29.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-29.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-29.png
+ * - .. list-table::
+
+ * - Level ID
+ - 30
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-30.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-30.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-30.png
+ * - .. list-table::
+
+ * - Level ID
+ - 31
+ * - Size
+ - 22x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-31.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-31.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-31.png
+ * - .. list-table::
+
+ * - Level ID
+ - 32
+ * - Size
+ - 25x17
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-32.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-32.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-32.png
+ * - .. list-table::
+
+ * - Level ID
+ - 33
+ * - Size
+ - 12x9
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-33.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-33.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-33.png
+ * - .. list-table::
+
+ * - Level ID
+ - 34
+ * - Size
+ - 13x11
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-34.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-34.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-34.png
+ * - .. list-table::
+
+ * - Level ID
+ - 35
+ * - Size
+ - 13x11
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-35.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-35.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-35.png
+ * - .. list-table::
+
+ * - Level ID
+ - 36
+ * - Size
+ - 19x11
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-36.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-36.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-36.png
+ * - .. list-table::
+
+ * - Level ID
+ - 37
+ * - Size
+ - 19x17
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-37.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-37.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-37.png
+ * - .. list-table::
+
+ * - Level ID
+ - 38
+ * - Size
+ - 19x14
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-38.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-38.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-38.png
+ * - .. list-table::
+
+ * - Level ID
+ - 39
+ * - Size
+ - 7x9
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-39.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-39.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-39.png
+ * - .. list-table::
+
+ * - Level ID
+ - 40
+ * - Size
+ - 12x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-40.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-40.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-40.png
+ * - .. list-table::
+
+ * - Level ID
+ - 41
+ * - Size
+ - 12x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-41.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-41.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-41.png
+ * - .. list-table::
+
+ * - Level ID
+ - 42
+ * - Size
+ - 12x16
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-42.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-42.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-42.png
+ * - .. list-table::
+
+ * - Level ID
+ - 43
+ * - Size
+ - 16x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-43.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-43.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-43.png
+ * - .. list-table::
+
+ * - Level ID
+ - 44
+ * - Size
+ - 16x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-44.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-44.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-44.png
+ * - .. list-table::
+
+ * - Level ID
+ - 45
+ * - Size
+ - 16x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-45.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-45.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-45.png
+ * - .. list-table::
+
+ * - Level ID
+ - 46
+ * - Size
+ - 16x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-46.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-46.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-46.png
+ * - .. list-table::
+
+ * - Level ID
+ - 47
+ * - Size
+ - 13x22
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-47.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-47.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-47.png
+ * - .. list-table::
+
+ * - Level ID
+ - 48
+ * - Size
+ - 13x22
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-48.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-48.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-48.png
+ * - .. list-table::
+
+ * - Level ID
+ - 49
+ * - Size
+ - 13x22
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-49.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-49.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-49.png
+ * - .. list-table::
+
+ * - Level ID
+ - 50
+ * - Size
+ - 13x22
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-50.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-50.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-50.png
+ * - .. list-table::
+
+ * - Level ID
+ - 51
+ * - Size
+ - 26x22
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-51.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-51.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-51.png
+ * - .. list-table::
+
+ * - Level ID
+ - 52
+ * - Size
+ - 13x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-52.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-52.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-52.png
+ * - .. list-table::
+
+ * - Level ID
+ - 53
+ * - Size
+ - 13x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-53.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-53.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-53.png
+ * - .. list-table::
+
+ * - Level ID
+ - 54
+ * - Size
+ - 13x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-54.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-54.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-54.png
+ * - .. list-table::
+
+ * - Level ID
+ - 55
+ * - Size
+ - 13x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-55.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-55.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-55.png
+ * - .. list-table::
+
+ * - Level ID
+ - 56
+ * - Size
+ - 13x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-56.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-56.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-56.png
+ * - .. list-table::
+
+ * - Level ID
+ - 57
+ * - Size
+ - 13x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-57.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-57.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-57.png
+ * - .. list-table::
+
+ * - Level ID
+ - 58
+ * - Size
+ - 13x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-58.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-58.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-58.png
+ * - .. list-table::
+
+ * - Level ID
+ - 59
+ * - Size
+ - 13x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-59.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-59.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-59.png
+ * - .. list-table::
+
+ * - Level ID
+ - 60
+ * - Size
+ - 4x8
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-60.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-60.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-60.png
+ * - .. list-table::
+
+ * - Level ID
+ - 61
+ * - Size
+ - 4x13
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-61.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-61.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-61.png
+ * - .. list-table::
+
+ * - Level ID
+ - 62
+ * - Size
+ - 4x23
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-62.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-62.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-62.png
+ * - .. list-table::
+
+ * - Level ID
+ - 63
+ * - Size
+ - 5x23
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-63.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-63.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-63.png
+ * - .. list-table::
+
+ * - Level ID
+ - 64
+ * - Size
+ - 39x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-64.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-64.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-64.png
+ * - .. list-table::
+
+ * - Level ID
+ - 65
+ * - Size
+ - 39x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-65.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-65.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-65.png
+ * - .. list-table::
+
+ * - Level ID
+ - 66
+ * - Size
+ - 39x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-66.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-66.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-66.png
+ * - .. list-table::
+
+ * - Level ID
+ - 67
+ * - Size
+ - 39x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-67.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-67.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-67.png
+ * - .. list-table::
+
+ * - Level ID
+ - 68
+ * - Size
+ - 39x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-68.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-68.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-68.png
+ * - .. list-table::
+
+ * - Level ID
+ - 69
+ * - Size
+ - 39x15
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-69.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-69.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-69.png
+ * - .. list-table::
+
+ * - Level ID
+ - 70
+ * - Size
+ - 16x19
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-70.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-70.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-70.png
+ * - .. list-table::
+
+ * - Level ID
+ - 71
+ * - Size
+ - 16x19
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-71.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-71.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-71.png
+ * - .. list-table::
+
+ * - Level ID
+ - 72
+ * - Size
+ - 16x19
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-72.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-72.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-72.png
+ * - .. list-table::
+
+ * - Level ID
+ - 73
+ * - Size
+ - 16x19
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-73.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-73.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-73.png
+ * - .. list-table::
+
+ * - Level ID
+ - 74
+ * - Size
+ - 16x19
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-74.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-74.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-74.png
+ * - .. list-table::
+
+ * - Level ID
+ - 75
+ * - Size
+ - 21x13
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-75.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-75.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-75.png
+ * - .. list-table::
+
+ * - Level ID
+ - 76
+ * - Size
+ - 21x13
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-76.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-76.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-76.png
+ * - .. list-table::
+
+ * - Level ID
+ - 77
+ * - Size
+ - 21x13
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-77.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-77.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-77.png
+ * - .. list-table::
+
+ * - Level ID
+ - 78
+ * - Size
+ - 21x13
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-78.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-78.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-78.png
+ * - .. list-table::
+
+ * - Level ID
+ - 79
+ * - Size
+ - 25x24
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-79.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-79.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-79.png
+ * - .. list-table::
+
+ * - Level ID
+ - 80
+ * - Size
+ - 25x24
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-80.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-80.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-80.png
+ * - .. list-table::
+
+ * - Level ID
+ - 81
+ * - Size
+ - 27x26
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-81.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-81.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-81.png
+ * - .. list-table::
+
+ * - Level ID
+ - 82
+ * - Size
+ - 27x26
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-82.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-82.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-82.png
+ * - .. list-table::
+
+ * - Level ID
+ - 83
+ * - Size
+ - 29x17
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-83.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-83.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-83.png
+ * - .. list-table::
+
+ * - Level ID
+ - 84
+ * - Size
+ - 29x17
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-84.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-84.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-84.png
+ * - .. list-table::
+
+ * - Level ID
+ - 85
+ * - Size
+ - 29x17
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-85.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-85.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-85.png
+ * - .. list-table::
+
+ * - Level ID
+ - 86
+ * - Size
+ - 21x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-86.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-86.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-86.png
+ * - .. list-table::
+
+ * - Level ID
+ - 87
+ * - Size
+ - 21x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-87.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-87.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-87.png
+ * - .. list-table::
+
+ * - Level ID
+ - 88
+ * - Size
+ - 21x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-88.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-88.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-88.png
+ * - .. list-table::
+
+ * - Level ID
+ - 89
+ * - Size
+ - 21x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-89.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-89.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-89.png
+ * - .. list-table::
+
+ * - Level ID
+ - 90
+ * - Size
+ - 21x10
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-90.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-90.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-90.png
+ * - .. list-table::
+
+ * - Level ID
+ - 91
+ * - Size
+ - 21x34
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-91.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-91.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-91.png
+ * - .. list-table::
+
+ * - Level ID
+ - 92
+ * - Size
+ - 23x37
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-92.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-92.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-92.png
+ * - .. list-table::
+
+ * - Level ID
+ - 93
+ * - Size
+ - 23x37
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-93.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-93.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-93.png
+ * - .. list-table::
+
+ * - Level ID
+ - 94
+ * - Size
+ - 23x37
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-94.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-94.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-94.png
+ * - .. list-table::
+
+ * - Level ID
+ - 95
+ * - Size
+ - 23x37
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-95.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-95.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-95.png
+ * - .. list-table::
+
+ * - Level ID
+ - 96
+ * - Size
+ - 4x26
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-96.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-96.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-96.png
+ * - .. list-table::
+
+ * - Level ID
+ - 97
+ * - Size
+ - 4x26
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-97.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-97.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-97.png
+ * - .. list-table::
+
+ * - Level ID
+ - 98
+ * - Size
+ - 4x26
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-98.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-98.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-98.png
+ * - .. list-table::
+
+ * - Level ID
+ - 99
+ * - Size
+ - 4x26
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-99.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-99.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-99.png
+ * - .. list-table::
+
+ * - Level ID
+ - 100
+ * - Size
+ - 19x12
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-Vector-100.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-GlobalSprite2D-100.png
+ - .. thumbnail:: img/Grafter_Escape_Rooms-level-PlayerSprite2D-100.png
+
+Code Example
+------------
+
+The most basic way to create a Griddly Gym Environment. Defaults to level 0 and SPRITE_2D rendering.
+
+.. code-block:: python
+
+
+ import gym
+ import griddly
+
+ if __name__ == '__main__':
+
+ env = gym.make('GDY-Grafter-Escape-Rooms-v0')
+ env.reset()
+
+ # Replace with your own control algorithm!
+ for s in range(1000):
+ obs, reward, done, info = env.step(env.action_space.sample())
+ env.render() # Renders the environment from the perspective of a single player
+
+ env.render(observer='global') # Renders the entire environment
+
+ if done:
+ env.reset()
+
+
+Objects
+-------
+
+.. list-table:: Tiles
+ :header-rows: 2
+
+ * - Name ->
+ - player
+ - water
+ - grass
+ - stone
+ - path
+ - sand
+ - tree
+ - plant
+ - lava
+ - coal
+ - iron
+ - diamond
+ - table
+ - furnace
+ - fence
+ - arrow
+ - zombie
+ - skeleton
+ - cow
+ * - Map Char ->
+ - `p`
+ - `W`
+ - `G`
+ - `s`
+ - `P`
+ - `S`
+ - `T`
+ - `+`
+ - `L`
+ - `c`
+ - `i`
+ - `d`
+ - `t`
+ - `f`
+ - `}`
+ - `a`
+ - `!`
+ - `@`
+ - `#`
+ * - Vector
+ - .. image:: img/Grafter_Escape_Rooms-tile-player-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-water-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-grass-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-stone-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-path-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-sand-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-tree-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-plant-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-lava-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-coal-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-iron-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-diamond-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-table-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-furnace-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-fence-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-arrow-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-zombie-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-skeleton-Vector.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-cow-Vector.png
+ * - GlobalSprite2D
+ - .. image:: img/Grafter_Escape_Rooms-tile-player-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-water-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-grass-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-stone-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-path-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-sand-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-tree-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-plant-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-lava-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-coal-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-iron-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-diamond-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-table-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-furnace-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-fence-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-arrow-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-zombie-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-skeleton-GlobalSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-cow-GlobalSprite2D.png
+ * - PlayerSprite2D
+ - .. image:: img/Grafter_Escape_Rooms-tile-player-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-water-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-grass-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-stone-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-path-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-sand-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-tree-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-plant-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-lava-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-coal-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-iron-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-diamond-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-table-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-furnace-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-fence-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-arrow-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-zombie-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-skeleton-PlayerSprite2D.png
+ - .. image:: img/Grafter_Escape_Rooms-tile-cow-PlayerSprite2D.png
+
+
+Actions
+-------
+
+cow_random_movement
+^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+ * - 2
+ -
+ * - 3
+ -
+ * - 4
+ -
+
+
+zombie_chase_proximity_trigger_on
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+act_attack_cooldown
+^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+
+
+near_table_off
+^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+zombie_chase_proximity_trigger_off
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+update_player_stats
+^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+
+
+arrow_projectile
+^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ - Left
+ * - 2
+ - Up
+ * - 3
+ - Right
+ * - 4
+ - Down
+
+
+near_furnace_off
+^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+set_arrow_direction
+^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+
+
+reload_arrow
+^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+
+
+near_table_on
+^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+init_player
+^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+
+
+near_furnace_on
+^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+skeleton_fire_proximity_trigger
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+move
+^^^^
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ - Move Left
+ * - 2
+ - Move Up
+ * - 3
+ - Move Right
+ * - 4
+ - Move Down
+
+
+zombie_chase_player
+^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ - Left
+ * - 2
+ - Up
+ * - 3
+ - Right
+ * - 4
+ - Down
+
+
+do
+^^
+
+:Relative: The actions are calculated relative to the object being controlled.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ - Interact with an object
+
+
+place
+^^^^^
+
+:Relative: The actions are calculated relative to the object being controlled.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ - Place a stone
+ * - 2
+ - Place a table
+ * - 3
+ - Place a furnace
+
+
+skeleton_random_movement
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+ * - 2
+ -
+ * - 3
+ -
+ * - 4
+ -
+
+
+skeleton_chase_player
+^^^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+ * - 2
+ -
+ * - 3
+ -
+ * - 4
+ -
+
+
+make
+^^^^
+
+:Relative: The actions are calculated relative to the object being controlled.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ - Make a wood pickaxe
+ * - 2
+ - Make a stone pickaxe
+ * - 3
+ - Make an iron pickaxe
+
+
+skeleton_chase_proximity_trigger_off
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+skeleton_chase_proximity_trigger_on
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+
+
+zombie_random_movement
+^^^^^^^^^^^^^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ - Left
+ * - 2
+ - Up
+ * - 3
+ - Right
+ * - 4
+ - Down
+
+
+fire_arrow
+^^^^^^^^^^
+
+:Internal: This action can only be called from other actions, not by the player.
+
+.. list-table::
+ :header-rows: 1
+
+ * - Action Id
+ - Mapping
+ * - 1
+ -
+ * - 2
+ -
+ * - 3
+ -
+ * - 4
+ -
+
+
+YAML
+----
+
+.. code-block:: YAML
+
+ Version: '0.1'
+ Environment:
+ Name: Grafter Escape Rooms
+ Description: >-
+ 100 human designed escape rooms using the mechanics of the Crafter
+ environment.
+ Observers:
+ Entity:
+ IncludeMasks: true
+ IncludePlayerId:
+ - player
+ IncludeRotation:
+ - player
+ GlobalVariableMapping:
+ - inv_wood_pickaxe
+ - inv_stone_pickaxe
+ - inv_iron_pickaxe
+ - inv_stone
+ - inv_coal
+ - inv_wood
+ - inv_iron
+ - health
+ Vector:
+ IncludeRotation: true
+ GlobalVariableMapping:
+ - inv_wood_pickaxe
+ - inv_stone_pickaxe
+ - inv_iron_pickaxe
+ - inv_stone
+ - inv_coal
+ - inv_wood
+ - inv_iron
+ - health
+ GlobalSprite2D:
+ Type: SPRITE_2D
+ TileSize: 24
+ RotateAvatarImage: false
+ HighlightPlayers: false
+ PlayerSprite2D:
+ Type: SPRITE_2D
+ TileSize: 8
+ RotateAvatarImage: false
+ Termination:
+ Win:
+ - eq:
+ - ach_eat_plant
+ - 1
+ End:
+ - or:
+ - eq:
+ - _steps
+ - 500
+ - eq:
+ - player_count
+ - 0
+ Player:
+ Count: 1
+ AvatarObject: player
+ Observer:
+ TrackAvatar: true
+ Width: 9
+ Height: 7
+ OffsetY: -1
+ Variables:
+ - Name: ach_collect_coal
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_diamond
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_drink
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_iron
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_sapling
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_stone
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_wood
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_defeat_skeleton
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_defeat_zombie
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_defeat_player
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_eat_cow
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_eat_plant
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_iron_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_iron_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_stone_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_stone_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_wood_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_wood_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_place_furnace
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_place_plant
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_place_stone
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_place_table
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_wake_up
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_wood_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_stone_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_iron_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_wood_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_stone_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_iron_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_fence
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_sapling
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_stone
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_coal
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_iron
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_diamond
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_wood
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_food
+ InitialValue: 9
+ PerPlayer: true
+ - Name: inv_drink
+ InitialValue: 9
+ PerPlayer: true
+ - Name: inv_energy
+ InitialValue: 9
+ PerPlayer: true
+ - Name: health
+ InitialValue: 9
+ PerPlayer: true
+ - Name: near_table
+ InitialValue: 0
+ PerPlayer: true
+ - Name: near_furnace
+ InitialValue: 0
+ PerPlayer: true
+ - Name: damage
+ InitialValue: 1
+ PerPlayer: true
+ - Name: is_sleeping
+ InitialValue: 0
+ PerPlayer: true
+ - Name: fatigue
+ InitialValue: 0
+ PerPlayer: true
+ - Name: recover
+ InitialValue: 0
+ PerPlayer: true
+ - Name: hunger
+ InitialValue: 0
+ PerPlayer: true
+ - Name: thirst
+ InitialValue: 0
+ PerPlayer: true
+ - Name: player_done
+ InitialValue: 0
+ PerPlayer: true
+ - Name: player_count
+ InitialValue: 0
+ Levels:
+ - |
+ s s s s s s s s s s
+ s S S S S S S S S s
+ s S s s s s s s s s
+ s S s p/S S S S s +/S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S S S s s S S S s
+ s s s s s s s s s s
+ - |
+ s s s s s s s s s s
+ s S S S S S S S +/S s
+ s S s s s s s s s s
+ s S s p/S S S S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S S S s s S S S s
+ s s s s s s s s s s
+ - |
+ G G G G G G G G G G G G T +/G G
+ G . . . . . . . . . . . . . G
+ p/G G G G G G G G G G G G G G G
+ - |
+ . G G G G G G G G G G G G G T +/G
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . p/G . . . . . . . . . . . . . .
+ - |
+ . . . . . . . . . . . . . t . .
+ . T G G G G G G G G G T G G s/G +/G
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . T . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . p/G . . . . . . . . . . . . . .
+ - |
+ . T G G G G G G G G G T G G s/G +/G
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . T . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ t G . . . . . . . . . . . . . .
+ . p/G . . . . . . . . . . . . . .
+ - |
+ G G +/G G G
+ G W s/P W G
+ W G p/G G W
+ W G t/T G W
+ W G T G W
+ G W W W G
+ G G G G G
+ G G G G G
+ - |
+ G G +/G G G
+ G W s/P W G
+ W G p/G G W
+ W G t/T G W
+ W G T G W
+ G W W W G
+ G G G G G
+ G G G G G
+ - |
+ G G +/G G G
+ G W s/P W G
+ W G p/G G W
+ W G G G W
+ W T T T W
+ G W W W G
+ G G G G G
+ G G G G G
+ - |
+ G G +/G G G
+ G W W W G
+ W G p/G G W
+ W G G G W
+ W T T T W
+ G W s/P W G
+ G G G G G
+ G G G G G
+ - |
+ G G +/G G G
+ G W W W G
+ W G p/G G W
+ W G G G W
+ W T T T W
+ G W s/P W G
+ G G G G G
+ G G G G G
+ - |
+ T G G i/G +/G
+ T G G i/G i/G
+ G G G G G
+ G G p/G G G
+ G G G G G
+ t/G G G G s/G
+ G G G G G
+ - |
+ T T G i/G +/G
+ T T G i/G i/G
+ G G G G G
+ G G p/G G G
+ G G G G G
+ G G G G G
+ s G G G G
+ - |
+ G T G i/G +/G
+ G G G i/G i/G
+ G G G G T
+ G G p/G G G
+ G G G G s/G
+ G G G G G
+ T G G T G
+ - |
+ G p/G G G G G G G G G G G G G
+ G G G G G G L L L G G G G G
+ G G G G G L L L L L G G G G
+ G G G G L L L L L L L G G G
+ L L L L L L L L L L L L G G
+ G G G G L L L L L L L G G G
+ G G G G G L L L L L G G G G
+ G +/G G G G G L L L G G G G G
+ G G G G G G G G G G G G G G
+ - |
+ G p/G G G G G G G G G G G G G
+ G G G G G G L L L G G G G G
+ G G G G G L L L L L G G G G
+ G G G G L L L L L L L G G G
+ L L L L L L L L L L L L G G
+ G G G G L L L L L L L G G G
+ G G G G G L L L L L G G G G
+ G +/G G G G G L L L G G G #/G G
+ G G G G G G G G G G G G G G
+ - |
+ G p/G G G G T G G G G G G G G
+ G G G T T G L L L G G T G G
+ G G T T G L L L L L G G T G
+ G G G G L L L L L L L G T G
+ L L L L L L L L L L L L G G
+ G G G G L L L L L L L G G G
+ G G G G G L L L L L G G G G
+ G +/G G G G G L L L G G G #/G G
+ G G G G G G G G G G G G G G
+ - |
+ G T P d/G +/G
+ G G P d/G d/G
+ G G P P P
+ G G p/G G T
+ c G S G s/G
+ i S S S t/G
+ T S S S f/G
+ - |
+ T T P d/G +/G
+ T G P d/G d/G
+ G G P P P
+ G G p/G G T
+ c G S G s/G
+ i S S S S
+ T S S S f/G
+ - |
+ T T P d/G +/G
+ T G P d/G d/G
+ G G P P P
+ G G p/G G T
+ c G S G s/G
+ i S S s/S s/S
+ T S S s/S s/S
+ - >
+ s s s s s s s s s s s s s s s s s s s
+ s s s
+
+ s p/P P s P P P P P s P P P P P s P P P
+ P P s
+
+ s P P s P P P P P s P P P P P s P P P
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P P P P s P P P P P s P P P P P s
+ P P s
+
+ s P P P P P s P P P P P s P P P P P s
+ P +/P s
+
+ s s s s s s s s s s s s s s s s s s s
+ s s s
+ - >
+ s s s s s s s s s s s s s s s s s s s
+ s s s
+
+ s p/P P s P P T P P s P P T P P s P P T
+ P P s
+
+ s P P s P P T P P s P P T P P s P P T
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P T P P s P P P P P s P P P P P s
+ P P s
+
+ s P P T P P s P P P P P s P P P P P s
+ P +/P s
+
+ s s s s s s s s s s s s s s s s s s s
+ s s s
+ - >
+ # s s s s s s s s s s s s s s s s s
+ s s s s
+
+ s p/P P s P P T P P s P P T P P s P P
+ T P P s
+
+ s P P s #/P P T P P s P P T P P s P P
+ T P P s
+
+ s P P s P P s P P s P #/P s P P s P #/P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P #/P s P P
+ s P #/P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P #/P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P T P P s P P T P P s P P T P P
+ s P P s
+
+ s P P T P P s P P T P P s P P T P P
+ s P +/P s
+
+ s s s s s s s s s s s s s s s s s s
+ s s s s
+ - >
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P
+ s/P P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P
+ s/P P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P #/P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i #/P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P #/P i P P
+ i P @/P i
+
+ i P P i P P i P P i P P i P P i #/P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P
+ i P P i
+
+ i P P s/P #/P P i P P s/P P P i P P s/P P P
+ i P +/P i
+
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P
+ s/P P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P
+ s/P P #/P i
+
+ i P P i P P i P P i P P i P P i P #/P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P #/P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P #/P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P #/P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i #/P P i P P i P P i P P i P P
+ i P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P
+ i P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P
+ i P +/P i
+
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+ - >
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+
+ i p/G G i S S s/P P P i S S s/P P P i S S
+ s/P P P i
+
+ i G T i S S s/P P P i S S s/P P P i S S
+ s/P P #/P i
+
+ i G G i S S i P P i S S i P P i S #/S
+ i P P i
+
+ i G G i S S i P P i S S i P P i S S
+ i P P i
+
+ i G G i S S i P P i S S i P #/P i S S
+ i P P i
+
+ i G G i S S i G G i S S i G G i S S
+ i G G i
+
+ i T G i S S i G G i S #/S i G G i S S
+ i G G i
+
+ i G G i S S i G G i S S i G G i S S
+ i G G i
+
+ i G G i S S i P #/P i S S i P P i S S
+ i P P i
+
+ i G G i S S i P P i S S i P P i S S
+ i P P i
+
+ i G G i #/S S i P P i S S i P P i S S
+ i P P i
+
+ i G G s/P S S i P P s/P S S i P P s/P S S
+ i P P i
+
+ i G T s/P S S i P P s/P S S i P P s/P S S
+ i P +/P i
+
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+ - >
+ i i i i i i i i i i i i d d d d d d d
+ d d d
+
+ i p/G G i S S s/P P P i S T i/P P P d S S s/P
+ P P d
+
+ i G T i S S s/P P P i S S d/P P P d S S s/P
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i G G i S S d G G d S S d
+ G G d
+
+ i T G i S S i G G i S S d G G d S S d
+ G G d
+
+ i G G i S S i G G i S S d G G d S S d
+ G G d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G s/P S S i P P s/P S S d P P s/P S S d
+ P P d
+
+ i G T s/P S S i P P s/P S S d P P s/P S S d
+ P +/P d
+
+ i i i i i i i i i i i i d d d d d d d
+ d d d
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ W W i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i W W i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i W W i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i W W i W W i P P i P P i W W i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ W W i
+
+ i P P i P P i P P i P P i P P i P P i
+ W W i
+
+ i P P i P P i P P i W W i P P i P P i
+ P P i
+
+ i P P i P P i P P i W W i W W i P P i
+ P P i
+
+ i P P i W W i W W i P P i W W i P P i
+ P P i
+
+ i P P i W W i W W i P P i P P i W W i
+ P P i
+
+ i P P i P P i P P i P P i P P i W W i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P T i P P s/P P P i P P s/P W W i P P s/P
+ P P i
+
+ i P P i P P i P P i P P i W W i P P i
+ W W i
+
+ i P P i W W i P P i P P i W W i W W i
+ W W i
+
+ i P P i W W i P P i W W i W W i W W i
+ W W i
+
+ i P P i W W i P P i W W i W W i W W i
+ W W i
+
+ i P P i W W i W W i W W i W W i W W i
+ W W i
+
+ i P P i W W i W W i W W i P P i W W i
+ W W i
+
+ i P P i P P i W W i W W i P P i W W i
+ W W i
+
+ i P P i P P i W W i P P i P P i P P i
+ P P i
+
+ i P P i P P i W W i P P i P P i P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i W W s/P
+ W W i
+
+ i P T i P P s/P P P i P P s/P S S i W W s/P
+ W W i
+
+ i P P i P P i P P i P P i S S i W W i
+ W W i
+
+ i P P i S S i P P i P P i S S i W W i
+ W W i
+
+ i P P i S S i P P i S S i S S i W W i
+ W W i
+
+ i P P i S S i P P i S S i S S i W W i
+ W W i
+
+ i P P i S S i S S i S S i S S i W W i
+ W W i
+
+ i P P i S S i S S i S S i P P i W W i
+ W W i
+
+ i P P i P P i S S i S S i P P i W W i
+ W W i
+
+ i P P i P P i S S i P P i P P i W W i
+ W W i
+
+ i P P i P P i S S i P P i P P i W W i
+ W W i
+
+ i P P s/P P P i P P s/P P P i P P s/P W W i
+ W W i
+
+ i P P s/P P P i P P s/P P P i P P s/P W W i
+ W +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ . . . . . . . . . . . . W . . . . . .
+ . . . . . .
+
+ . . . . . . . . . W W W W . . . . . W
+ W W W . . .
+
+ . . . . . . . . . . . . W . . . . . W
+ . . . . . .
+
+ . . . . . . . . . . . . W . . . . . W
+ . . . . . W
+
+ . +/G W W W W W W W W W W W W W W W W W
+ W W . W W W
+
+ . i/G . . . . . . . . . . . . . . . . .
+ . W . W . .
+
+ . s/G W W W W W W W W W W . . . . . . .
+ . W W W . .
+
+ . p/G . . . . W . . . . W . . . . . . .
+ . W . . . .
+
+ . G . . . . W . . . . W . . . . . . .
+ . W . . . .
+
+ T G . . . . W . . . . W . . . . . . .
+ . W . . . .
+
+ . t . . . . W . . . . W . . . . W . .
+ . W . W . .
+
+ . . . . . . . . W W W W . . . . W . .
+ . W W W . .
+
+ . . . . . . . . . . . W . . . . W . .
+ . W . . . .
+
+ . . . . . . . . . . . W W W W W W W W
+ W W . . . .
+
+ . . . . . . . . . . . . . . . . . . .
+ W . . . . .
+
+ . . . . . . . . . . . . . . . . . . .
+ W . . . . .
+
+ . . . . . . . . . . . . . . . . . . .
+ W . . . . .
+ - |
+ . . . . . . . . . . . .
+ . . . . . . . . . . . .
+ . +/G W W W W W W W W W W
+ . i/G . . . . . . . . . W
+ . s/G W W W W W W W W W W
+ . p/G . . . . . . . . . .
+ . G . . . . . . . . . .
+ T G . . . . . . . . . .
+ . t . . . . . . . . . .
+ - |
+ . . . . . W W W W . . . .
+ . . . . . W . . W . . . .
+ . . . . . W . . W . . . .
+ . . . . . W . . W . . . .
+ . +/G W W W W . . W W W W W
+ . i/G . . . . . . . . . . W
+ . G s/P W W W . . W W W W W
+ . p/G . . . W . . W . . . .
+ . G . . . W . . W . . . .
+ T G . . . W . . W . . . .
+ . t . . . W W W W . . . .
+ - |
+ . . . . . G G #/G G . . . .
+ . . . . . W . . W . . . .
+ . . . . . W . . W . . . .
+ . . . . . W . . W . . . .
+ . +/G W W W W . . W W W W W
+ . i/G . . . . . . . . . . W
+ . G s/P W W W . . W W W W W
+ . p/G . . . W . . W . . . .
+ . G . . . W . . W . . . .
+ T G . . . W . . W . . . .
+ . t . . . P P #/P P . . . .
+ - |
+ . . . . . W W W W W W W W . . . . . .
+ . . . . . W . . . . . . W . . . . . .
+ . . . . . W . . . . . . W . . . . . .
+ . . . . . W . . . . . . W W W W W W T
+ . +/G i/P W W W . . . . . . W . . . . . .
+ . d . . . . . . . . . . W . . . . . .
+ . G s/P W W W . . W W W W W . . . . . .
+ . p/G . . . W . . W . . . . . . . . . .
+ . G . . . W . . W . . . . . . . . . .
+ T G . . . W . . W . . . . . . . . . .
+ . t . . . W W W W . . . . . . . . . .
+ - |
+ . . . . . W W W W W W W W . . . . . .
+ . . . . . W . . . . . . W . . . . . .
+ . . . . . W . . . . . . W . . . . . .
+ . . . c . W . . . . . . W W W W W W T
+ . +/G d/P W W W . . . . . . W . . . . . .
+ . . . . . . . . . . . . W . . . . . .
+ . G s/P W W W . . W W W W W . . . . . .
+ . p/G . . . W . . W . . . W . . . . . .
+ . G . . . W . . W . . . W . . . . . .
+ T G i . . W . . W . . . W . . . . . .
+ . t f . . W W W W . . . W . . . . . .
+ . T . . . . . . . . . . W . . . . . .
+ . W . . . . . . . . . . W . . . . . .
+ . W W W W W W W . . . . W . . . . . .
+ . . . . . . . W . . . . W . . . . . .
+ . . . . . . . W . . . . W . . . . . .
+ . . . . . . . W W W W W W . . . . . .
+ - |
+ . . . . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . . . . .
+ +/G d/P W W W W W W W W W W W W W W W W T
+ . . . . . . . . . . . . W . . . . . .
+ . . . . . . . . . . . . W . . . . . .
+ . G s/P W W W W W W W W W W . . . . . .
+ . p/G . . . . . W . . . . W . . . . . .
+ . G . . . . . W . . . . W . . . . . .
+ T G i . . . . W . . . . W . . . . . .
+ . t f . . . . W . . . . W . . . . . .
+ . T . . . . . c . . . . W . . . . . .
+ . W . . . . . . . . . . W . . . . . .
+ . W W W W W W W W W W W W . . . . . .
+ - |
+ L L L L L L L
+ L L L L L L L
+ L L L +/G W L L
+ L L L i/G W L L
+ L L L s/G W L L
+ L L T p/G L L L
+ L L L t/G L L L
+ L L L L L L L
+ L L L L L L L
+ - |
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L +/G W W W W W W L L
+ L L L i/G L L L L L W L L
+ L L L s/G W W W W W W L L
+ L L T p/G L L L L L L L L
+ L L L t/G L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L +/G W W W L L L L L
+ L L L i/G L L W L L L L L
+ L L L s/G W W W L L L L L
+ L L T p/G L L L L L L L L
+ L L L t/G L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L W W W W W W W L L
+ L L L W L L L L L W L L
+ L L L W L L L L L W L L
+ L L L W L L L L L W L L
+ L L L +/G L L W W W W L L
+ L L L i/G L L W L L L L L
+ L L L s/G W W W L L L L L
+ L L T p/G L L L L L L L L
+ L L L t/G L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ - |
+ s s s s s s s s s s s s s s s s
+ s G G +/G G G G G G G G G G G G s
+ s G G G G G G G G G G G G G G s
+ s G G G G G G G G G G G G G G s
+ s s s T s s s s T s s s T s s s
+ s G G G G s G G G G s G G G G s
+ s G #/G #/G G s G G G G s G #/G #/G G s
+ s G G G G s G G G G s G G G G s
+ s G #/G #/G G s G G G G s G #/G #/G G s
+ s G G G G s G G G G s G G G G s
+ s s T s s s s T s s s s s T s s
+ s G G G G G G G G G G G G G G s
+ s/G G G G G G G G G G G G G G G s
+ s G G G G G G p/G G G G G G G G s
+ s s s s s s s s s s s s s s s s
+ - |
+ s s s s s s s s s s s s s s s s
+ s G G +/G G G G G G G G G G G G s
+ s G G G G G G G G G G G G G G s
+ s G G G G G G G G G G G G G G s
+ s s s T s s s s T s s s T s s s
+ s S S S S s G G G G s P P P P s
+ s S #/S #/S S s G G G G s P #/P #/P P s
+ s S S S S s G #/G G G s P P P P s
+ s S #/S #/S S s G G G G s P #/P #/P P s
+ s S S S S s G G G G s P P P P s
+ s s T s s s s T s s s s s T s s
+ s G G G G G G G G G G G G G G s
+ s/G G G G G G G G G G G G G G G s
+ s G G G G G G p/G G G G G G G G s
+ s s s s s s s s s s s s s s s s
+ - |
+ s s s s s s s s s s s s s s s s
+ s P P +/P P P P P P P P P P P P s
+ s P P P P P P P P P P P P P P s
+ s P P P P P P P P P P P P P P s
+ s s s T s s s s T s s s T s s s
+ s S S S S s S S S S s G G G G s
+ s S #/S #/S S s S S S S s G #/G #/G G s
+ s S S S S s S S S S s G G G G s
+ s S #/S #/S S s S S S S s G #/G #/G G s
+ s S S S S s S S S S s G G G G s
+ s s T s s s s T s s s s s T s s
+ s S S S S S S S S S S S S S S s
+ s/G S S S S S S S S S S S S S S s
+ s S S S S S S p/S S S S S S S S s
+ s s s s s s s s s s s s s s s s
+ - |
+ i i i i i i i i i i i i i i i i
+ i P P P P P P P P P P P P P P i
+ i P P P P P P P P P P P P P +/P i
+ i P P P P P P P P P P P P P P i
+ i i i s i i i i s i i i s i i i
+ i S S S S i S S S S i G G G G i
+ i S #/S #/S S i S S S S i G #/G #/G G i
+ i S S S S i S S S S i G G G G i
+ i S #/S #/S S i S S S S i G #/G #/G G i
+ i S S S S i S S S S i G G G G i
+ i i s i i i i s i i i i i s i i
+ i G G G G G G G T G G G G G G i
+ i/G G G G G G G G G G G G G G G i
+ i T G G G G G p/G G G G G G G T i
+ i i i i i i i i i i i i i i i i
+ - |
+ L L L L L L L L L L L L L
+ L L L L L L L L L L +/G L L
+ L L L L L L L L L L W L L
+ L L L L L W W W W W W L L
+ L L L L L W L L L L L L L
+ L L L L L W L L L L L L L
+ L L L L L W W W W W W W L
+ L L L L L L L L L L L W L
+ L L L L L L L L L L L W L
+ L L W W W W W W W W W W L
+ L L W L L L L L L L L L L
+ L L W L L L L L L L L L L
+ L L W W W W W W W W W L L
+ L L L L L L L L L L W L L
+ L L L L L L L L L L W L L
+ L L L L L L W W W W W L L
+ L L L L L L W L L L L L L
+ L L L L L L W L L L L L L
+ L L L L L L s/W L L L L L L
+ L L L G G G p/G G T t/G L L L
+ L L L L L L L L L L L L L
+ L L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L L
+ L L L L L L L L L L +/G L L
+ L L L L L L L L L L W L L
+ L L L L L W W W W W W P #/P
+ L L L L L W L L L L L L L
+ L L L L L W L L L L L L L
+ L L #/P P P W W W W W W W L
+ L L L L L L L L L L L W L
+ L L L L L L L L L L L W L
+ L L W W W W W W W W W W L
+ L L W L L L L L L L L L L
+ L L W L L L #/P L L L L L L
+ L L W W W L P L W W W L L
+ L L L L W W W W W L W L L
+ L L L L L L L L L L W L L
+ L L L L L L W W W W W L L
+ L L L L L L W L L L L L L
+ L L L L L L W P #/P L L L L
+ L L L L L L s/W L L L L L L
+ L L L G G G p/G G T t/G L L L
+ L L L L L L L L L L L L L
+ L L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L L
+ L L L L L L L L L L +/G L L
+ L L L L L L L L L L W L L
+ L L L L L W W W W W W P #/P
+ L L L L L W L L L L L L L
+ L L L L L W L L L L L L L
+ L L #/P P P W W W W W W W L
+ L L L L L L L L L L L W L
+ L L L L L L L L L L L W L
+ L L W W W W W W W W W W L
+ L L W L L L L L L L L L L
+ L L W L L L #/P L L L L L L
+ L L W W W L P L W W W L L
+ L L L L W W W W W L W L L
+ L L L L L L L L L L W L L
+ L L L L L L W W W W W L L
+ L L L L L L W L L L L L L
+ L L L L L L W P #/P L L L L
+ L L L L L L s/W L L L L L L
+ L L L G G G p/G G T t/G L L L
+ L L L L L L L L L L L L L
+ L L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L L
+ L L L L L L L L L L +/G L L
+ L L L L L L L L L L W L L
+ L L L L L W W W W W W P #/P
+ L L L L L W L L L L L L L
+ L L L L L W L L L L L L L
+ L L #/P P P W W W W W W W L
+ L L L L L L L L L L L W L
+ L L L L L L L L L L L W L
+ L L W W W W W W W W W W L
+ L L W L L L L L L L L L L
+ L L W L L L #/P L L L L L L
+ L L W W W L P L W W W L L
+ L L L L W W W W W L W L L
+ L L L L L L L L L L W L L
+ L L L L L L W W W W W L L
+ L L L L L L W L L L L L L
+ L L L L L L W P #/P L L L L
+ L L L L L L s/W L L L L L L
+ L L L G G G p/G G T t/G L L L
+ L L L L L L L L L L L L L
+ L L L L L L L L L L L L L
+ - >
+ . . L L L L L L L L L L L L L d/L L L
+ L L L L L L L L
+
+ . . L L L L L L L L L L G G G T G G
+ G G i/G s/G G G L L
+
+ . . L L L L L L L L L L W L L d/L L L
+ L L L L L W L L
+
+ . . L L L L L W W W W W W P #/P d/L W W
+ W W W W W W L L
+
+ . . L L L L L W L L L L L L d/L d/L W d/L
+ d/L d/L d/L d/L d/L d/L d/L d/L
+
+ . . L L L L L W L L L L L L d/L L W L
+ L W W W W W L L
+
+ . . L L #/P P P W W W W W W W d/L L W L
+ L W d/L d/L d/L W L L
+
+ . . L L L L L L L L L L L W d/L L W L
+ L W d/L L L W L L
+
+ . . L L L L L L L L d/L L L W d/L L W L
+ L W d/L L L W L L
+
+ . . L L W W W W W W W W W W d/L L W L
+ L W d/L L L W L L
+
+ . . L L W L L L L L L L L L d/L L W L
+ L W d/L L L W L L
+
+ . . L L W L L L #/P L L L L L d/L L W L
+ L W d/L L L W L L
+
+ . . L L W W W L P L W W W L d/L L W L
+ L W d/L L L W L L
+
+ . . L L L L W W W W W L W L d/L L W L
+ L W d/L L L W L L
+
+ . . L L L L L L L L L L W L d/L L W L
+ L W d/L L L W L L
+
+ . . L L L L L L W W W W W L d/L L W L
+ L W d/L L W W L L
+
+ . . L L L L L L W L L L L L d/L L W L
+ L W d/L L W L L L
+
+ . . L L L L L L W P #/P L d/L d/L d/L L W L
+ L W d/L L W L L L
+
+ . . L L L L L L s/W L L L d/L W W W W L
+ L W d/L L W L L L
+
+ . . L L L G G t/G p/G G T G d/L W d/L d/L d/L d/L
+ W W d/L L +/G L L L
+
+ . . L L L L L L L L L L d/L W W W W W
+ W L d/L L L L L L
+
+ . . L L L L L L L L L L d/L L L L L L
+ L L d/L L L L L L
+ - |
+ G G G G G G G G G G G G G
+ G . . . . . . . . . . . G
+ G . G G G G G G G G G . G
+ G . G . . . . . . . G . G
+ G . G . G G G G G . G . G
+ G . G . G . . . G . G . G
+ G . G . G . +/G . G . G . G
+ G . G . G . G . G . G . G
+ G . G . G G G . G . G . G
+ G . G . . . . . G . G . G
+ G . G G G G G G G . G . G
+ G . . . . . . . . . G . G
+ G G G G G G G G G G G . G
+ . . . . . . . . . . . . G
+ p/G G G G G G G G G G G G G
+ - |
+ T G G G G G G G G G G G T
+ G . . . . . . . . . . . G
+ G . T G G G G G G G T . G
+ G . G . . . . . . . G . G
+ G . G . T G G G T . G . G
+ G . G . G . . . G . G . G
+ G . G . G . +/G . G . G . G
+ G . G . G . G . G . G . G
+ G . G . T G T . G . G . G
+ G . G . . . . . G . G . G
+ G . T G G G G G T . G . G
+ G . . . . . . . . . G . G
+ T G G G G G G G G G T . G
+ . . . . . . . . . . . . G
+ p/G G G G G G G G G G G G T
+ - |
+ T T G G G G G G G G G T T
+ T . . . . . . . . . . . T
+ G . T T G G G G G T T . G
+ G . T . . . . . . . T . G
+ G . G . T T G T T . G . G
+ G . G . T . . . T . G . G
+ G . G . G . +/G . G . G . G
+ G . G . T . T . G . G . G
+ G . G . T T T . G . G . G
+ G . T . . . . . T . G . G
+ G . T T G G G T T . G . G
+ T . . . . . . . . . T . G
+ T T G G G G G G G T T . G
+ . . . . . . . . . . . . T
+ p/G G G G G G G G G G G T T
+ - |
+ T T T T G G G G G T T T T
+ T . . . . . . . . . . . T
+ T . T T T T G T T T T . T
+ T . T . . . . . . . T . T
+ G . T . T T T T T . T . G
+ G . T . T . . . T . T . G
+ G . G . T . +/G . T . G . G
+ G . G . T . T . T . G . G
+ G . T . T T T . T . G . G
+ T . T . . . . . T . T . G
+ T . T T T T T T T . T . G
+ T . . . . . . . . . T . T
+ T T T T G G G T T T T . T
+ . . . . . . . . . . . . T
+ p/G G G G G G G G G T T T T
+ - |
+ P P P P P P P P P P P P P
+ P . . . . . . . . . . . P
+ P . P P P P P P P P P . P
+ P . P . . . . . . . P . P
+ P . P . P P P P P . P . P
+ P . P . P . . . P . P . P
+ P . P . P . +/G . P . P . P
+ P . P . P . P . P . P . P
+ P . P . P P P . P . P . P
+ P . P . . . . . P . P . P
+ P . P P P P P P P . P . P
+ P . . . . . . . . . P . P
+ P P P P P P P P P P P . P
+ . . . . . . . . . . . . P
+ p/P P P P P P P P P P P P P
+ - |
+ s/P P P P P P P P P P P P s/P
+ P . . . . . . . . . . . P
+ P . s/P P P P P P P P s/P . P
+ P . P . . . . . . . P . P
+ P . P . s/P P P P s/P . P . P
+ P . P . P . . . P . P . P
+ P . P . P . +/G . P . P . P
+ P . P . P . P . P . P . P
+ P . P . s/P P s/P . P . P . P
+ P . P . . . . . P . P . P
+ P . s/P P P P P P s/P . P . P
+ P . . . . . . . . . P . P
+ s/P P P P P P P P P P s/P . P
+ . . . . . . . . . . . . P
+ p/P T T T P P P P P P P P s/P
+ - |
+ s/P s/P P P P P P P P P P s/P s/P
+ s/P . . . . . . . . . . . s/P
+ P . s/P s/P P P P P P s/P s/P . P
+ P . s/P . . . . . . . s/P . P
+ P . P . s/P s/P P s/P s/P . P . P
+ P . P . s/P . . . s/P . P . P
+ P . P . P . +/G . P . P . P
+ P . P . s/P . s/P . P . P . P
+ P . P . s/P s/P s/P . P . P . P
+ P . s/P . . . . . s/P . P . P
+ P . s/P s/P P P P s/P s/P . P . P
+ s/P . . . . . . . . . s/P . P
+ s/P s/P P P P P P P P s/P s/P . P
+ . . . . . . . . . . . . s/P
+ p/P T T T P P P P P P P s/P s/P
+ - |
+ s/P s/P s/P s/P P P P P P s/P s/P s/P s/P
+ s/P . . . . . . . . . . . s/P
+ s/P . s/P s/P P P P s/P s/P s/P s/P . s/P
+ s/P . s/P . . . . . . . s/P . s/P
+ P . P . s/P s/P s/P s/P s/P . s/P . P
+ P . P . s/P . . . s/P . s/P . P
+ P . P . s/P . +/G . s/P . P . P
+ P . s/P . s/P . s/P . s/P . P . P
+ P . s/P . s/P s/P s/P . s/P . P . P
+ s/P . s/P . . . . . s/P . s/P . P
+ s/P . s/P s/P s/P s/P s/P s/P s/P . s/P . P
+ s/P . . . . . . . . . s/P . s/P
+ s/P s/P s/P s/P P P P s/P s/P s/P s/P . s/P
+ . . . . . . . . . . . . s/P
+ p/P T T T P P P P P s/P s/P s/P s/P
+ - |
+ . +/G . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . p/P . .
+ . T . .
+ . t/G . .
+ - |
+ . +/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . p/P . .
+ . T . .
+ . t/G . .
+ - |
+ . +/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . p/P . .
+ . T . .
+ . G . .
+ . t . .
+ - |
+ s s s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . p/P . .
+ s . T . .
+ s . t/G . .
+ s . +/G . .
+ s s s . .
+ - >
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ +/G
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W s/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W p/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+ - >
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W i/P
+ +/G
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W i/P
+ i/P
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W T W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W s/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W p/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+ - >
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W S
+ c/G
+
+ W W W W W W W W W W W W W W T W W W W
+ W W W W W W W W W W W W W W W W W W S
+ S
+
+ W W W W S S S W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W S f/S S W W W W W W W W W W d/W
+ d/W d/W W W W W W W W W W W W W W W W W W
+ W W
+
+ W W W W S S S W W W W W W W W W W d/W
+ +/G d/W W W W W W W W W W W W W W W W W W
+ W W
+
+ W W W W W W W W W W W W W W W W W d/W
+ d/G d/W W W W W W W W W W W W W W W W W W
+ W W
+
+ W W W W W W W W W W T W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W s/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W p/G
+ W W W W W W W W W W S S S W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W S i/S S W W W W T W
+ W
+
+ W W W W W W T W W W W W W W W W W W G
+ W W W W W W W W W W S S S W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+ - >
+ W W W W W W W W W P L L L L L L L L P
+ W W W W W W W W P P L L L P P W W W W
+ +/G
+
+ W W W W W W W P P P L L L L L L L L P
+ W W W W W W W P P L L L L L L P W W W
+ W
+
+ W W W W W W P P L L L L L L L L L P P
+ W W W W W W P P L L L L L L L P W W W
+ W
+
+ W W W W W P P L L L L L L L L L P P W
+ W W W W W P P L L L L L L L L P W W W
+ W
+
+ W W W P P L L L L L L L L L P P W W W
+ W W W W W P L L L L L L L L L P W W W
+ W
+
+ W W P P L L L L L L L L L L P W W W G
+ W W W W P L L L L L L L L L L P W W W
+ W
+
+ P P P L L L L L L L L L L P P W W W G
+ W W W P P L L L L L L L L L L L P W W
+ W
+
+ L L L L L L L L L L L L P P W W W W s/G
+ W W W P L L L L L L L L L L L L P W W
+ W
+
+ L L L L L L L L L L P P W W W W W W G
+ W W W P P L L L L L L L L L L L P W W
+ W
+
+ L L L L L L L L L P P W W W W W W W p/G
+ W W W W P L L L L L L L L L L L P P W
+ W
+
+ L L L L L L L P P P P W W W W W W W G
+ W W W W P P L L L L L L L L L L P P W
+ W
+
+ L L L L L P P P W W W W W W W W W W G
+ W W W W W P L L L L L L L L L L P W W
+ W
+
+ L L L P P P P W W W W W W W W W W W T
+ W W W W W W P L L L L L L L L P W W W
+ W
+
+ P P P P W W W W W W W W W W W W W W T
+ W W W W W W P P L L L L L L P W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W P L L L L P P W W W W
+ W
+ - >
+ W W W W W W W W W W W W W P P L L L L
+ L L L P P P P W W W W W W W W W W W i/P
+ +/G
+
+ W W W W W W W W W W W W P P L L L L L
+ L L L L L L P P W W W W W W W W W W i/P
+ i/P
+
+ W W W W W W W W W W W P P L L L L L L
+ L L L L L L L P P W W W W W W W W W W
+ W
+
+ W W W W W W W W W W P P L L L L L P P
+ P P P P P L L L L P W W W W W W W W W
+ W
+
+ W W W W W W W W W P L L L L L P P P W
+ W W W W P P L L L L P W W W W W W W W
+ W
+
+ W W W W W W W W P P L L L P P P W W G
+ W W W W W W P P L L P P W W W W W W W
+ W
+
+ W W W W T W W P L L L L P P W W W W G
+ W W W W W W W P P L L P P W W W W W W
+ W
+
+ W W W W W W P P L L L P P W W W W W s/G
+ W W W W W W W W P L L L P W W W W W W
+ W
+
+ W W W W W P P L L L P P W W W W W W G
+ W W W W W W W W P P L L L P W W W W W
+ W
+
+ W W W W P P L L L L P P W W W W W W p/G
+ W W W W W W W W W P L L L P P W W W W
+ W
+
+ W W W W P L L L L P P W W W W W W W G
+ W W W W W W W W W P L L L L P P W W W
+ W
+
+ W W W P L L L L L P P W W W W W W W G
+ W W W W W W W W W P P L L L L P W W W
+ W
+
+ W W P P L L L L P W W W W W W W W W T
+ W W W W W W W W W W P P L L L P P W W
+ W
+
+ W P P L L L L P P W W W W W W W W W T
+ W W W W W W W W W W W P L L L L L P W
+ W
+
+ W P L L L L L P W W W W W W W W W W T
+ W W W W W W W W W W W P L L L L L P W
+ W
+ - >
+ W W W W W W W W W W W W W P P W L L P
+ P W W W W W W W W W P L L P W W W W S
+ c/G
+
+ W W W W W W W W W P P W W P T W L P P
+ W W W W W W W W W P P L L P W W W W S
+ S
+
+ W W W W S S S W P P L P P W L L P P W
+ W W W W W W W W P P L L L P W W W W W
+ W
+
+ W W W W S f/S S P P L L L L L L P W d/W
+ d/W d/W W W W W W W P P L L P P W W W W W
+ W W
+
+ W W W W S S S P L L L P P P P P W d/W
+ +/G d/W W W W W W P P L L L P P P W P P P
+ W W
+
+ W W W W W W W P L L W W P W W W W d/W
+ d/G d/W W W W W P P L L L L L L P W P L L
+ P P
+
+ W W W W W P P P L W T W P W W W W W G
+ W W W W P P L L S S S S L P P P L L L
+ P
+
+ W W W P P L L L L W W P P W W W W W s/G
+ W W W P P L L S S W W S S L L L L L L
+ P
+
+ W W W P L L L L L P P P W W W W W W G
+ W W P P L L S G S W W W W S L L P P P
+ L
+
+ W W P P L S S S L P P W W W W W W W p/G
+ W W P L L S G G S W S S S S L L P W W
+ P
+
+ W P P L S W W S S L L P W W W W W W G
+ W P P L S G G S S W S i/S S S L L P T W
+ P
+
+ W P L S S W T W W S L P P W W W W W G
+ W P L S S G S S W W S S S S L L P W P
+ L
+
+ W P L L S W W W S S L L P W W W W W T
+ P P L S G G S W W W W W W S L L P P P
+ L
+
+ W P L L S S S S S L L P P W W W W W T
+ L L S G G S S W W W W W W S S L L L L
+ L
+
+ W P P L L L L L L P P P W W W W W W T
+ L L S G G S W W W W W W W S S S L L L
+ L
+ - |
+ G G G G G G G G G G G G G G G G
+ G s s s s s s s P s s s s s s G
+ G s +/G i/G G G G G G G G G i/G +/G s G
+ G s i/G s s s s s P s s s s i/G s G
+ G s G s P P P P P P P P s G s G
+ G s G s P P P P P P P P s G s G
+ G s G s P P P P p/P P P P P G s G
+ G s G P P P P P P P P P s G s G
+ G s G s P P P P P P P P s G s G
+ G s G s P P P P P P P P s G s G
+ G s i/G s s s s s P s s s s i/G s G
+ G s +/G i/G G G G G G G G G i/G +/G s G
+ G s s s s s s s s s s s s s s G
+ G G G G G G G G G G G G G G G G
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G +/G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ - |
+ G G G G G G G G G G G G G G G G
+ G i i i i i i i i/P i i i i i i G
+ G i +/G i/G G G G G G G G G i/G +/G i G
+ G i i/G s s s s s T s s s s i/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P p/P P P P T G i G
+ G i G T P P P P P P P P s G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G s G
+ G i i/G s s s s s T s s s s i/G i G
+ G i +/G i/G G G G G G G G G i/G +/G i G
+ G i i i i i i i i i i i i i i G
+ G G G G G G G G G G G G G G G G
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G +/G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ - |
+ G G G G G G G G G G G G G G G G
+ G i i i i i i i i/P i i i i i i G
+ G i +/G i/G G G G G #/G G G G i/G +/G i G
+ G i i/G s s s s s T s s s s i/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G i G
+ G i #/G s P P P P p/P P P P T G i G
+ G i G T P P P P P P P P s #/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G s G
+ G i i/G s s s s s T s s s s i/G i G
+ G i +/G i/G G G G #/G G G G G i/G +/G i G
+ G i i i i i i i i i i i i i i G
+ G G G G G G G G G G G G G G G G
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G +/G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ - |
+ G G G G G G G G G G G G G G G G
+ G i i i i i i i i/P i i i i i i G
+ G i +/G i/G G G G G #/G G G G i/G +/G i G
+ G i i/G s s s s s T s s s s i/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G i G
+ G i #/G s P P P P p/P P P P T G i G
+ G i G T P P P P P P P P s #/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G s G
+ G i i/G s s s s s T s s s s i/G i G
+ G i +/G i/G G G G #/G G G G G i/G +/G i G
+ G i i i i i i i i i i i i i i G
+ G G G G G G G G G G G G G G G G
+ . . . . . . L L S L L . . . . .
+ . . . . . . L L S L L . . . . .
+ . . . . . . L L S L L . . . . .
+ . . . . . . L L +/G L L . . . . .
+ . . . . . . L L L L L . . . . .
+ - |
+ G G G G G G G G G G G G G G G G
+ G L L L L L L L L L L L L L L G
+ G L +/G i/G G G G G #/G G G G i/G +/G L G
+ G L i/G s s s s s T s s s s i/G L G
+ G L G s P P P P P P P P s G L G
+ G L G s P P P P P P P P s G L G
+ G L #/G s P P P P p/P P P P T G L G
+ G L G T P P P P P P P P s #/G L G
+ G L G s P P P P P P P P s G L G
+ G L G s P P P P P P P P s G s G
+ G L . s s s s s T s s s s i/G L G
+ G L +/G i/G G G G #/G G G G G i/G +/G L G
+ G L L L L L L L L L L L L L L G
+ G G G G G G G G G G G G G G G G
+ . . . . . . L L L L L . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G L L L G . . . . .
+ . . . . . . G L +/G L G . . . . .
+ . . . . . . G L L L G . . . . .
+ - >
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ W L W L W L W L W L +/G +/G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W s/G s/G L W L W L W L
+ W L
+
+ W L W L W L W G G G G G G G G L W L W
+ L W
+
+ L W L W L W L G G G G p/G G G G W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W T t/G L W L W L W L
+ W L
+ - >
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L +/G G G G G G G G G G G G G G G G G G
+ +/G L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W s/G s/G L W L W L W L
+ W L
+
+ W L W L W L W T G G G G G G T L W L W
+ L W
+
+ L W L W L W L G G G G p/G G G G W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W T G L W L W L W L
+ W L
+ - >
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ d/W d/L d/W L W L W L W L W L W L W L W L d/W
+ d/L d/W
+
+ d/L +/G d/G G G G G G G G G G G G G G G G d/G
+ +/G d/L
+
+ d/W L d/W L W L W L W L G G W L W L W L d/W
+ d/L d/W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W s/G s/G L W L W L W L
+ W L
+
+ W L W L W L W T G G G G G G T L W L W
+ L W
+
+ L W L W L W L G G G G p/G G G G W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W T G L W L W L W L
+ W L
+ - >
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ . . . L W L W L W L W L W L W L W L .
+ d/G .
+
+ . +/G . G G G G G G G G G G G G G G T .
+ +/G .
+
+ . . . L W L W L W L G G W L W L W L .
+ . .
+
+ L W L W L W L W L W G G L W L W L W L
+ i/G L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W L s/G L W L W L W L
+ W L
+
+ W L W L W L W G G G G G G G G L W L W
+ L W
+
+ L c/G L W L W L T G G G p/G G G T W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W t f/G L W L W L W L
+ W L
+ - >
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G T G
+
+ G G T G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G +/G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G s/G p/G G G G G G . . . . . . . . . G G
+ G G G G T G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+ - >
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G s G
+
+ G G T G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G +/G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G p/G G G G G G . . . . . . . . . G G
+ G G G G t/T G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+ - >
+ L L L L L L L L L L . . . . . . . L L
+ L L L L L L L L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G s G L
+
+ L G G T G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L L L L L L L L L G
+ G G G G G G G L
+
+ L G G G G G G G G G G G G G G G G G G
+ G G G G G G G L
+
+ L L L L L L L L G L L L L L L L L L G
+ L L L L L L L L
+
+ . . . . . . . L G L W W W W W W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W G G G W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W G G G W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W G +/G G W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W G G G W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W W W W W W L G
+ L . . . . . . .
+
+ L L L L L L L L G L L L L L L L L L G
+ L L L L L L L L
+
+ L G G G G G G G G G G G G G G G G G G
+ G G G G G G G L
+
+ L G G G G G G G G L L L L L L L L L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G p/G G G G G G L . . . . . . . L G
+ G G G G G t/T G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L L L L L L L L L L . . . . . . . L L
+ L L L L L L L L
+ - >
+ L L L L L L L L L L . . . . . . . L L
+ L L L L L L L L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G s G L
+
+ L G G T G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L d/L d/L d/L d/L d/L d/L d/L L G
+ G G G G G G G L
+
+ L G G G G G G G G G G G G G G G G G G
+ G G G G G G G L
+
+ L L L L L L L L G d/L d/L d/L d/L d/L d/L d/L d/L d/L
+ G L L L L L L L L
+
+ . . . . . . . d/L G d/L W W W W W W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G d/L W W G G G W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G d/L W W G G G W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G d/L W W G +/G G W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G d/L W W G G G W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G L W W W W W W W d/L
+ G d/L . . . . . . .
+
+ L L L L L L L L G L d/L d/L d/L d/L d/L d/L d/L d/L
+ G L L L L L L L L
+
+ L G G G G G G G G G G G G G G G G G G
+ G G G G G G G L
+
+ L G G G G G G G G L d/L d/L d/L d/L d/L d/L d/L L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G p/G G G G G G L . . . . . . . L G
+ G G G G G t/T G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L L L L L L L L L L . . . . . . . L L
+ L L L L L L L L
+ - >
+ . . G G G . G G G . G G G . G G G . G
+ G G . G G G . G G G
+
+ . G G . G . G . G . G . G . G . G . G
+ . G . G . G . G . G
+
+ G G . . G . G . G G G . G G G . G G G
+ . G G G . G G G . G
+
+ G . . . G . G . . . . . . . . . . . .
+ . . . . . . . . . G
+
+ G G G . G . G G G G G G G G G G G G G
+ G G G G G G G G . G
+
+ . . G . G . . . . . . . . . . . . . .
+ . . . . . . . G . G
+
+ G G G . G . G G G . G G G . G G G . G
+ G G . G G G . G . G
+
+ G . . . G . G . G . G . G . G . G . G
+ . G . G . G . G . G
+
+ G G G . G . G . G . G . G . G . G . G
+ . G . G . G . G . G
+
+ . . G . +/G . p/G . G G G . G G G . G G G
+ . G G G . G G G . G
+
+ G G G . . . . . . . . . . . . . . . .
+ . . . . . . . . . G
+
+ G . . . . . G G G G G G G G G G G G G
+ G G G G G G G G G G
+
+ G G G . . . G . . . . . . . . . . . .
+ . . . . . . . . . .
+
+ . . G . . . G . G G G . G G G . G G G
+ . G G G . G G G G G
+
+ G G G . . . G G G . G G G . G G G . G
+ G G . G G G . . . G
+
+ G . . . . . . . . . . . . . . . . . .
+ . . . . . . . . . G
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G G G G G
+ - >
+ . . P S G . P G G . G G G . G G G . G
+ G G . G G G . G G G
+
+ . P S . G . P . S . S . S . S . S . S
+ . S . S . S . S . S
+
+ G S . . G . P . G G G . G G G . G G G
+ . G G G . G G G . G
+
+ G . . . G . P . . . . . . . . . . . .
+ . . . . . . . . . S
+
+ P S G . G . P P P P P P P P P P P P P
+ P P P P P P P P . G
+
+ . . G . G . . . . . . . . . . . . . .
+ . . . . . . . P . S
+
+ G S P . G . S S S . S S S . S S S . S
+ S S . S S S . P . G
+
+ G . . . G . G . G . G . G . G . G . G
+ . G . G . G . P . S
+
+ P S G . G . G . G . G . G . G . G . G
+ . G . G . G . P . G
+
+ . . G . +/G . p/G . S S S . S S S . S S S
+ . S S S . S S S . S
+
+ G S P . . . . . . . . . . . . . . . .
+ . . . . . . . . . G
+
+ G . . . . . S G S G S G S G S G S G S
+ G S G S G S G S G S
+
+ P S G . . . G . . . . . . . . . . . .
+ . . . . . . . . . .
+
+ . . G . . . S . G S G . G S G . G S G
+ . G S G . G S P P P
+
+ G S P . . . G S G . G S G . G S G . G
+ S G . G S G . . . P
+
+ G . . . . . . . . . . . . . . . . . .
+ . . . . . . . . . P
+
+ P P P P P P P P P P P P P P P P P P P
+ P P P P P P P P P P
+ - >
+ L L P S G L P G G L G G G L G G G L G
+ G G L G G G L G G G
+
+ L P S L G L P L S L S L S L S L S L S
+ L S L S L S L S L S
+
+ G S L L G L P L G G G L G G G L G G G
+ L G G G L G G G L G
+
+ G L L L G L P L L L L L L L L L L L L
+ L L L L L L L L L S
+
+ P S G L G L P P P P P P P P P P P P P
+ P P P P P P P P L G
+
+ L L G L G L L L L L L L L L L L L L L
+ L L L L L L L P L S
+
+ G S P L G L S S S L S S S L S S S L S
+ S S L S S S L P L G
+
+ G L L L G L G L G L G L G L G L G L G
+ L G L G L G L P L S
+
+ P S G L G L G L G L G L G L G L G L G
+ L G L G L G L P L G
+
+ L L G L +/G L p/G L S S S L S S S L S S S
+ L S S S L S S S L S
+
+ G S P L L L L L L L L L L L L L L L L
+ L L L L L L L L L G
+
+ G L L L L L S G S G S G S G S G S G S
+ G S G S G S G S G S
+
+ P S G L L L G L L L L L L L L L L L L
+ L L L L L L L L L L
+
+ L L G L L L S L G S G L G S G L G S G
+ L G S G L G S P P P
+
+ G S P L L L G S G L G S G L G S G L G
+ S G L G S G L L L P
+
+ G L L L L L L L L L L L L L L L L L L
+ L L L L L L L L L P
+
+ P P P P P P P P P P P P P P P P P P P
+ P P P P P P P P P P
+ - >
+ G G G . G G G . G G G . G G G . G G G
+ . +/G
+
+ G . G . G . G . G . G . G . G . G . G
+ . G
+
+ G . G G G . G G G . G G G . G G G . G
+ G G
+
+ G . . . . . . . . . . . . . . . . . .
+ . .
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ . . . . . . . . . . . . . . . . . . .
+ . G
+
+ G G G . G G G . G G G . G G G . G G G
+ . G
+
+ G . G . G . G . G . G . G . G . G . G
+ . G
+
+ G . G . G . G . G . G . G . G . G . G
+ . G
+
+ p/G . G G G . G G G . G G G . G G G . G
+ G G
+ - >
+ G G G L G G G L G G G L G G G L G G G
+ L +/G
+
+ G L G L G L G L G L G L G L G L G L G
+ L G
+
+ G L G G G L G G G L G G G L G G G L G
+ G G
+
+ G L L L L L L L L L L L L L L L L L L
+ L L
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ L L L L L L L L L L L L L L L L L L L
+ L G
+
+ G G G L G G G L G G G L G G G L G G G
+ L G
+
+ G L G L G L G L G L G L G L G L G L G
+ L G
+
+ G L G L G L G L G L G L G L G L G L G
+ L G
+
+ p/G L G G G L G G G L G G G L G G G L G
+ G G
+ - >
+ G G G W G G G W G G G W G G G W G G G
+ W +/G
+
+ G W G W G W G W G W G W G W G W G W G
+ W G
+
+ G W G G G W G G G W G G G W G G G W G
+ G G
+
+ G W W W W W W W W W W W W W W W W W W
+ W W
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ W W W W W W W W W W W W W W W W W W W
+ W G
+
+ G G G W G G G W G G G W G G G W G G G
+ W G
+
+ G W G W G W G W G W G W G W G W G W G
+ W G
+
+ G W G W G W G W G W G W G W G W G W G
+ W G
+
+ p/G W G G G W G G G W G G G W G G G W G
+ G G
+ - >
+ G G G s/W G G G s/W G G G s/W G G G s/W G G
+ G s/W +/G
+
+ G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W
+ G s/W G
+
+ G s/W G G G s/W G G G s/W G G G s/W G G G s/W G
+ G G
+
+ G s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W
+ s/W s/W s/W
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ s s s s s s s s s s s s s s s s s s s
+ s G
+
+ G G G s/W G G G s G G G s G G G s/W G G G
+ s/W G
+
+ G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W
+ G s/W G
+
+ G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W
+ G s/W G
+
+ p/G s/W G G G s/W G G G s/W G G G s/W G G G s/W G
+ G G
+ - >
+ G G G d/W G G G d/W G G G d/W G G G d/W G G
+ G d/W +/G
+
+ G d/W G d/W G d/W G d/W G d/W G d/W G d/W G d/W G d/W
+ G d/W G
+
+ G d/W G G G d/W G G G d/W G G G d/W G G G d/W G
+ G G
+
+ G d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W
+ d/W d/W d/W
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ i i i i i i i i i i i i i i i i i i i
+ i G
+
+ G G G i/W G G G i G G G i G G G i/W G G G
+ i/W G
+
+ G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W
+ G i/W G
+
+ G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W
+ G i/W G
+
+ p/G i/W G G G i/W G G G i/W G G G i/W G G G i/W G
+ G G
+ - >
+ . . . . . . . . . . . . . . . . G G G
+ G G
+
+ . . . . . . . . . . . . . . . G G G G
+ G G
+
+ . . . . . . . . . . . . . G G G G G G
+ G +/G
+
+ . . . . . . . . . . . G G G G G G . .
+ . .
+
+ . . . . . . . . . . G G G G G . . . .
+ . .
+
+ . . . . . . . . . G G G G . . . . . .
+ . .
+
+ . . . . . . . . G G G G . . . . . . .
+ . .
+
+ . . . . . . . G G G G . . . . . . . .
+ . .
+
+ . . . . . . G G G . . . . . . . . . .
+ . .
+
+ . . . . G G G . . . . . . . . . . . .
+ . .
+
+ . . . G G G G . . . . . . . . . . . .
+ . .
+
+ . . . G G . . . . . . . . . . . . . .
+ . .
+
+ . . . G . . . . . . . . . . . . . . .
+ . .
+
+ . . G G . . . . . . . . . . . . . . .
+ . .
+
+ . G G G . . . . . . . . . . . . . . .
+ . .
+
+ G G G G G . . . . . . . . . . . . . .
+ . .
+
+ G G G G G G . . . . . . . . . . . . .
+ . .
+
+ . G G G G . . . . . . . . . . . . . .
+ . .
+
+ . G G G G . . . . . . . . . . . . . .
+ . .
+
+ . . . G . . . . . . . . . . . . . . .
+ . .
+
+ . . . G . . . . . . . . . . . . . . .
+ . .
+
+ . . . G G . . . . . . . . . . . . . .
+ . .
+
+ . . . G G . . . . . . . . . . . . . .
+ . .
+
+ . . . G G G . . . . . . . . . . . . .
+ . .
+
+ . . . . G G G . . . . . . . . . . . .
+ . .
+
+ . . . . . G G G . . . . . . . . . . .
+ . .
+
+ . . . . . . . G G . . . . . . . . . .
+ . .
+
+ . . . . . . . . G G G . . . . . . . .
+ . .
+
+ . . . . . . . . . G G . . . . . . . .
+ . .
+
+ . . . . . . . . . . G G G . . . . . .
+ . .
+
+ . . . . . . . . . . . G G G . . . . .
+ . .
+
+ . . . . . . . . . . . . . G G G . . .
+ . .
+
+ . . . . . . . . . . . . . . . G G G .
+ . .
+
+ . . . . . . . . . . . . . . . . . G p/G
+ . .
+ - >
+ W W W W W W W W W W W W W W W W S S G
+ G G G G
+
+ W W W W W W W W W W W W W W W S S G G
+ G G G G
+
+ W W W W W W W W W W W W W S S S G G G
+ G G G +/G
+
+ W W W W W W W W W W W S S S G G G G G
+ S S S S
+
+ W W W W W W W W W W S S S G G G G S S
+ S S S W
+
+ W W W W W W W W W S S S G G G S S S S
+ W W W W
+
+ W W W W W W W S S S S G G G S S S S W
+ W W W W
+
+ W W W W W W S S S G G G S S S S S S W
+ W W W W
+
+ W W W W W S S S G G G S S S S S W W W
+ W W W W
+
+ W W W W S S S G G S S S S S W W W W W
+ W W W W
+
+ W W W W S S G G G S S S S W W W W W W
+ W W W W
+
+ W W W S S G G S S S S W W W W W W W W
+ W W W W
+
+ W W W S S G S S S S S W W W W W W W W
+ W W W W
+
+ W W S S G G S S S S S S W W W W W W W
+ W W W W
+
+ W W S G G G S S S S S S W W W W W W W
+ W W W W
+
+ W W S G G G G S S S S W W W W W W W W
+ W W W W
+
+ W S S G G G G G S S S W W W W W W W W
+ W W W W
+
+ W S S G G G G S S S S W W W W W W W W
+ W W W W
+
+ W S S G G G G S S S S W W W W W W W W
+ W W W W
+
+ W S S S S G S S S S S W W W W W W W W
+ W W W W
+
+ W W S S S G S S S S S S W W W W W W W
+ W W W W
+
+ W W W S S G G S S S S S W W W W W W W
+ W W W W
+
+ W W W S S G G S S S S S S W W W W W W
+ W W W W
+
+ W W W S S G G G S S S S S W W W W W W
+ W W W W
+
+ W W W S S S G G G S S S S S W W W W W
+ W W W W
+
+ W W W W S S S G G G S S S S S W W W W
+ W W W W
+
+ W W W W W S S S S G G S S S S S W W W
+ W W W W
+
+ W W W W W W S S S S G G S S S S S W W
+ W W W W
+
+ W W W W W W W W S S S G G G S S S S W
+ W W W W
+
+ W W W W W W W W W W S S G G G S S S S
+ S W W W
+
+ W W W W W W W W W W W W S S G G S S S
+ S S W W
+
+ W W W W W W W W W W W W W S S G G G S
+ S S S W
+
+ W W W W W W W W W W W W W W W S S G G
+ G S S W
+
+ W W W W W W W W W W W W W W W W W S S
+ G p/G S W
+
+ W W W W W W W W W W W W W W W W W W S
+ S S S W
+
+ W W W W W W W W W W W W W W W W W W S
+ S S S W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W
+ - >
+ W W W W W W W W W W W W W W W W S S
+ G G G G G
+
+ W W W W W W W W W W W W W W W S S G
+ G G G G G
+
+ W W W W W W W W W W W W W S S S G #/G
+ G G G G +/G
+
+ W W W W W W W W W W W S S S G G G G
+ G S S S S
+
+ W W W W W W W W W W S S S G G G G S
+ S S S S W
+
+ W W W W W W W W W S S S G G G S S S
+ S W W W W
+
+ W W W W W W W S S S S #/G G G S S S S
+ W W W W W
+
+ W W W W W W S S S G G G S S S S S S
+ W W W W W
+
+ W W W W W S S S G G G S S S S S W W
+ W W W W W
+
+ W W W W S S S #/G G S S S S S W W W W
+ W W W W W
+
+ W W W W S S G G G S S S S W W W W W
+ W W W W W
+
+ W W W S S G G S S S S W W W W W W W
+ W W W W W
+
+ W W W S S G S S S S S W W W W W W W
+ W W W W W
+
+ W W S S G G S S S S S S W W W W W W
+ W W W W W
+
+ W W S G #/G G S S S S S S W W W W W W
+ W W W W W
+
+ W W S G G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S G G G G G S S S W W W W W W W
+ W W W W W
+
+ W S S G G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S G #/G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S S S G S S S S S W W W W W W W
+ W W W W W
+
+ W W S S S G S S S S S S W W W W W W
+ W W W W W
+
+ W W W S S G #/G S S S S S W W W W W W
+ W W W W W
+
+ W W W S S G G S S S S S S W W W W W
+ W W W W W
+
+ W W W S S G G G S S S S S W W W W W
+ W W W W W
+
+ W W W S S S G G G S S S S S W W W W
+ W W W W W
+
+ W W W W S S S G #/G G S S S S S W W W
+ W W W W W
+
+ W W W W W S S S S G G S S S S S W W
+ W W W W W
+
+ W W W W W W S S S S G G S S S S S W
+ W W W W W
+
+ W W W W W W W W S S S G G #/G S S S S
+ W W W W W
+
+ W W W W W W W W W W S S G G G S S S
+ S S W W W
+
+ W W W W W W W W W W W W S S G G S S
+ S S S W W
+
+ W W W W W W W W W W W W W S S G G G
+ S S S S W
+
+ W W W W W W W W W W W W W W W S S G
+ G G S S W
+
+ W W W W W W W W W W W W W W W W W S
+ S G p/G S W
+
+ W W W W W W W W W W W W W W W W W W
+ S S S S W
+
+ W W W W W W W W W W W W W W W W W W
+ S S S S W
+
+ W W W W W W W W W W W W W W W W W W
+ W W W W W
+ - >
+ W W W W W W W W W W W W W W W W S S
+ G G G G G
+
+ W W W W W W W W W W W W W W W S S G
+ G G G G G
+
+ W W W W W W W W W W W W W S S S G #/G
+ G G G G +/G
+
+ W W W W W W W W W W W S S S G G G G
+ G S S S S
+
+ W W W W W W W W W W S S S G #/G G G S
+ S S S S W
+
+ W W W W W W W W W S S S G G G S S S
+ S W W W W
+
+ W W W W W W W S S S S #/G G G S S S S
+ W W W W W
+
+ W W W W W W S S S G G G S S S S #/S S
+ W W W W W
+
+ W W W W W S S S G G G S S S S S W W
+ W W W W W
+
+ W W W W S S S #/G G S S S S S W W W W
+ W W W W W
+
+ W W W W S S G G G S #/S #/S S W W W W W
+ W W W W W
+
+ W W W S S G G S S S S W W W W W W W
+ W W W W W
+
+ W W W S S G S S #/S S S W W W W W W W
+ W W W W W
+
+ W W S S G G S S S S S S W W W W W W
+ W W W W W
+
+ W W S G #/G G S S S S S S W W W W W W
+ W W W W W
+
+ W W S G G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S G G G G G S S S W W W W W W W
+ W W W W W
+
+ W S S G G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S G #/G G G S #/S S S W W W W W W W
+ W W W W W
+
+ W S S S S G S S S S S W W W W W W W
+ W W W W W
+
+ W W S S S G S S S S S S W W W W W W
+ W W W W W
+
+ W W W S S G #/G S S #/S S S W W W W W W
+ W W W W W
+
+ W W W S S G G S S S S S S W W W W W
+ W W W W W
+
+ W W W S S G G G S S S #/S S W W W W W
+ W W W W W
+
+ W W W S S S G G G S S S S S W W W W
+ W W W W W
+
+ W W W W S S S G #/G G S S S S S W W W
+ W W W W W
+
+ W W W W W S S S S G G S #/S S S S W W
+ W W W W W
+
+ W W W W W W S S S S G G S S S S S W
+ W W W W W
+
+ W W W W W W W W S S S G G #/G S S S S
+ W W W W W
+
+ W W W W W W W W W W S S G G G S S S
+ S S W W W
+
+ W W W W W W W W W W W W S S G G S S
+ S S T W W
+
+ W W W W W W W W W W W W W S S G G G
+ S S T s/S W
+
+ W W W W W W W W W W W W W W W S S G
+ G G T s/S W
+
+ W W W W W W W W W W W W W W W W W S
+ S G p/G s/S W
+
+ W W W W W W W W W W W W W W W W W W
+ S S t/S s/S W
+
+ W W W W W W W W W W W W W W W W W W
+ s/S s/S s/S s/S W
+
+ W W W W W W W W W W W W W W W W W W
+ W W W W W
+ - >
+ W W W W W W W W W W W W W W W W S S G
+ G G G G
+
+ W W W W W W W W W W W W W W W S L L L
+ G G s/G G
+
+ W W W W W W W W W W W W W S S S L T L
+ G G s/G G
+
+ W W W W W W W W W W W S S S G G L L L
+ S S S S
+
+ W W W W W W s/W W W W S S S G G G G S S
+ S S S W
+
+ W W W W W W W W W S S S G G G S S S S
+ W W W W
+
+ W W W W W W W S S S S G G G S S S S W
+ W W W W
+
+ W W W W W W S S S G T G S S S S S S W
+ W W W W
+
+ W W W W W S S S G G G S S S S S W W W
+ W W W W
+
+ W W W W S S S G G S S S S S W W W W W
+ W W W W
+
+ W W W W S S G G G S S S S W W W W W W
+ W W W W
+
+ W W W S S G G S S S S W W W W W W W W
+ W W W W
+
+ W W W S S G S S S S S W W W W W W W W
+ W W W W
+
+ W W S S G G S S S S S S W W W W W W W
+ W W W W
+
+ W W S G G G S S S S L L L W W W W W W
+ W W W W
+
+ W W S G G G G S S S S s/W L W W W W W W
+ W W W W
+
+ W S S G G G G G S S L L L W W W W W W
+ W W W W
+
+ W S S G G G G S S S S W W W W W W W W
+ W W W W
+
+ W S S G G T G S S S S W W W W W W W W
+ W W W W
+
+ W S S S S G S S S S S W W W W W W W W
+ W W W W
+
+ W W S S S G S S S S S S W W W W W W W
+ W W W W
+
+ W W W S S G G S S S S S W W W W W W W
+ W W W W
+
+ W W W S S G G S S S S S S W W W W W W
+ W W W W
+
+ W L L L S G G G S S S S S W W W W W W
+ W W W W
+
+ s/W L c/W S S S G G G S S S S S W W W W W
+ W W W W
+
+ W L L L S S S G G T S S S S S W W W W
+ W W W W
+
+ W W W W W S S S S G G S S S S S W W W
+ W W W W
+
+ W W W W W W S S S S G G S S S S S W W
+ W W W W
+
+ W W W W W W W W S S S G G G S S S S W
+ W W W W
+
+ W W W W W W W W W W S S G G G S S S S
+ i/S W W W
+
+ W W W W W W W W W W W W S S G G S S S
+ S S W W
+
+ W W W W W W W W W W W W W S S G T G S
+ S S S W
+
+ W W W W W W W W W W W W W W W S S G G
+ G S S W
+
+ W W W W W W W W W W W W W W W W W S S
+ G p/G S W
+
+ W W W W W W W W W W W W W W W W W W S
+ d/S d/S d/S W
+
+ W W W W W W W W W W W W W W W W W W S
+ d/S +/S d/P W
+
+ W W W W W W W W W W W W W W W W W W W
+ d/P d/P d/P W
+ - |
+ . W p/G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ W W G W
+ W G G W
+ W G W W
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W +/G W .
+ - |
+ . L p/G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ L L G W
+ L G G W
+ L G W W
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L +/G W .
+ - |
+ . W p/G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ W W G L
+ W G G L
+ W G L L
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W +/G L .
+ - |
+ . L p/G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ L L G L
+ L G G L
+ L G L L
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L +/G L .
+ - |
+ . p/G . . . G G G . . . . G d/G G . . . .
+ . G . . G . . . G . . G . W . G . . .
+ . G . . G . . . G W W G L L . G . . .
+ W G L L G . . . G . . G . L . G . . .
+ . G . . G . . . G . . G . W . G . . .
+ . G . . G . . . G . . G . L . G . . .
+ d G . . G . W . G . . G . L . G . . .
+ . G . W G L L . G . . G . W . G . . .
+ . G . . d/G . L . G . . G . W . G . . W
+ t G T . G W L L G . . G . G G G W W L
+ T G T . G . . . G . . G . . . G . . L
+ . s/G . . . G G G . . . . G d/G G . . . +/G
+ Actions:
+ - Name: init_player
+ InputMapping:
+ Internal: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Behaviours:
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - incr: player_count
+ - Name: update_player_stats
+ InputMapping:
+ Internal: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Behaviours:
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - exec:
+ Action: update_player_stats
+ ActionId: 1
+ Delay: 1
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - sub:
+ - fatigue
+ - 1
+ OnFalse:
+ - add:
+ - fatigue
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - fatigue
+ - -10
+ OnTrue:
+ - set:
+ - fatigue
+ - 0
+ - add:
+ - inv_energy
+ - 1
+ - if:
+ Conditions:
+ gte:
+ - inv_energy
+ - 9
+ OnTrue:
+ - set:
+ - is_sleeping
+ - 0
+ - if:
+ Conditions:
+ lt:
+ - ach_wake_up
+ - 1
+ OnTrue:
+ - set:
+ - ach_wake_up
+ - 1
+ - reward: 1
+ - set_tile: 0
+ - if:
+ Conditions:
+ and:
+ - gt:
+ - inv_energy
+ - 0
+ - gt:
+ - fatigue
+ - 30
+ OnTrue:
+ - set:
+ - fatigue
+ - 0
+ - sub:
+ - inv_energy
+ - 1
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - add:
+ - hunger
+ - 1
+ OnFalse:
+ - add:
+ - hunger
+ - 2
+ - if:
+ Conditions:
+ and:
+ - gt:
+ - inv_food
+ - 0
+ - gt:
+ - hunger
+ - 50
+ OnTrue:
+ - set:
+ - hunger
+ - 0
+ - sub:
+ - inv_food
+ - 1
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - add:
+ - thirst
+ - 1
+ OnFalse:
+ - add:
+ - thirst
+ - 2
+ - if:
+ Conditions:
+ and:
+ - gt:
+ - inv_drink
+ - 0
+ - gt:
+ - thirst
+ - 30
+ OnTrue:
+ - set:
+ - thirst
+ - 0
+ - sub:
+ - inv_drink
+ - 1
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ and:
+ - gt:
+ - inv_food
+ - 0
+ - gt:
+ - inv_drink
+ - 0
+ - or:
+ - gt:
+ - inv_energy
+ - 0
+ - eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - add:
+ - recover
+ - 4
+ OnFalse:
+ - add:
+ - recover
+ - 2
+ OnFalse:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - sub:
+ - recover
+ - 1
+ OnFalse:
+ - sub:
+ - recover
+ - 2
+ - if:
+ Conditions:
+ gt:
+ - recover
+ - 50
+ OnTrue:
+ - set:
+ - recover
+ - 0
+ - if:
+ Conditions:
+ lt:
+ - health
+ - 9
+ OnTrue:
+ - add:
+ - health
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - recover
+ - -30
+ OnTrue:
+ - set:
+ - recover
+ - 0
+ - sub:
+ - health
+ - 1
+ - if:
+ Conditions:
+ lte:
+ - health
+ - 0
+ OnTrue:
+ - set:
+ - player_done
+ - 1
+ - decr: player_count
+ - remove: true
+ - Name: move
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ Description: Move Left
+ MetaData:
+ image_idx: 1
+ '2':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ Description: Move Up
+ MetaData:
+ image_idx: 2
+ '3':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ Description: Move Right
+ MetaData:
+ image_idx: 3
+ '4':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ Description: Move Down
+ MetaData:
+ image_idx: 4
+ Behaviours:
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Commands:
+ - set:
+ - health
+ - 0
+ - remove: true
+ - set:
+ - player_done
+ - 1
+ - decr: player_count
+ Dst:
+ Object:
+ - lava
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Commands:
+ - mov: _dest
+ - rot: _dir
+ - set_tile: meta.image_idx
+ Dst:
+ Object:
+ - grass
+ - path
+ - sand
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Commands:
+ - rot: _dir
+ - set_tile: meta.image_idx
+ Dst:
+ Object:
+ - cow
+ - water
+ - stone
+ - plant
+ - tree
+ - player
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Name: do
+ InputMapping:
+ Relative: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - -1
+ Description: Interact with an object
+ Behaviours:
+ - Src:
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - dst.ripe
+ - 1
+ Object: player
+ Commands:
+ - add:
+ - inv_food
+ - 4
+ - if:
+ Conditions:
+ lt:
+ - ach_eat_plant
+ - 1
+ OnTrue:
+ - set:
+ - ach_eat_plant
+ - 1
+ - reward: 10
+ - if:
+ Conditions:
+ gt:
+ - inv_food
+ - 9
+ OnTrue:
+ - set:
+ - inv_food
+ - 9
+ Dst:
+ Object: plant
+ Commands:
+ - set:
+ - ripe
+ - 0
+ - set_tile: 0
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Commands:
+ - add:
+ - inv_fence
+ - 1
+ Dst:
+ Object: fence
+ Commands:
+ - remove: true
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Dst:
+ Object: zombie
+ Commands:
+ - sub:
+ - dst.health
+ - src.damage
+ - if:
+ Conditions:
+ lte:
+ - dst.health
+ - 0
+ OnTrue:
+ - remove: true
+ - if:
+ Conditions:
+ lt:
+ - src.ach_defeat_zombie
+ - 1
+ OnTrue:
+ - set:
+ - src.ach_defeat_zombie
+ - 1
+ - reward: 1
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Dst:
+ Object: skeleton
+ Commands:
+ - sub:
+ - dst.health
+ - src.damage
+ - if:
+ Conditions:
+ lte:
+ - dst.health
+ - 0
+ OnTrue:
+ - remove: true
+ - if:
+ Conditions:
+ lt:
+ - src.ach_defeat_skeleton
+ - 1
+ OnTrue:
+ - set:
+ - src.ach_defeat_skeleton
+ - 1
+ - reward: 1
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Dst:
+ Object: cow
+ Commands:
+ - sub:
+ - dst.health
+ - src.damage
+ - if:
+ Conditions:
+ lte:
+ - dst.health
+ - 0
+ OnTrue:
+ - remove: true
+ - add:
+ - src.inv_food
+ - 6
+ - if:
+ Conditions:
+ gt:
+ - src.inv_food
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_food
+ - 9
+ - if:
+ Conditions:
+ lt:
+ - src.ach_eat_cow
+ - 1
+ OnTrue:
+ - set:
+ - src.ach_eat_cow
+ - 1
+ - reward: 1
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Dst:
+ Object: player
+ Commands:
+ - sub:
+ - dst.health
+ - src.damage
+ - if:
+ Conditions:
+ lte:
+ - dst.health
+ - 0
+ OnTrue:
+ - set:
+ - dst.player_done
+ - 1
+ - decr: player_count
+ - remove: true
+ - add:
+ - src.inv_food
+ - dst.inv_food
+ - add:
+ - src.inv_drink
+ - dst.inv_drink
+ - add:
+ - src.inv_wood
+ - dst.inv_wood
+ - add:
+ - src.inv_coal
+ - dst.inv_coal
+ - add:
+ - src.inv_iron
+ - dst.inv_iron
+ - if:
+ Conditions:
+ gt:
+ - src.inv_food
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_food
+ - 9
+ - if:
+ Conditions:
+ gt:
+ - src.inv_drink
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_drink
+ - 9
+ - if:
+ Conditions:
+ gt:
+ - src.inv_wood
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_wood
+ - 9
+ - if:
+ Conditions:
+ gt:
+ - src.inv_coal
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_coal
+ - 9
+ - if:
+ Conditions:
+ gt:
+ - src.inv_iron
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_iron
+ - 9
+ - if:
+ Conditions:
+ lt:
+ - src.ach_defeat_player
+ - 1
+ OnTrue:
+ - set:
+ - src.ach_defeat_player
+ - 1
+ - reward: 1
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - lt:
+ - inv_wood
+ - 9
+ Commands:
+ - add:
+ - inv_wood
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_wood
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_wood
+ - 1
+ - reward: 1
+ Dst:
+ Object: tree
+ Commands:
+ - remove: true
+ - spawn: grass
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - inv_wood_pickaxe
+ - 1
+ - lt:
+ - inv_stone
+ - 9
+ Commands:
+ - add:
+ - inv_stone
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_stone
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_stone
+ - 1
+ - reward: 1
+ Dst:
+ Object: stone
+ Commands:
+ - remove: true
+ - spawn: path
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - inv_wood_pickaxe
+ - 1
+ - lt:
+ - inv_coal
+ - 9
+ Commands:
+ - add:
+ - inv_coal
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_coal
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_coal
+ - 1
+ - reward: 1
+ Dst:
+ Object: coal
+ Commands:
+ - remove: true
+ - spawn: path
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - inv_stone_pickaxe
+ - 1
+ - lt:
+ - inv_iron
+ - 9
+ Commands:
+ - add:
+ - inv_iron
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_iron
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_iron
+ - 1
+ - reward: 1
+ Dst:
+ Object: iron
+ Commands:
+ - remove: true
+ - spawn: path
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - inv_iron_pickaxe
+ - 1
+ - lt:
+ - inv_diamond
+ - 9
+ Commands:
+ - add:
+ - inv_diamond
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_diamond
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_diamond
+ - 1
+ - reward: 1
+ Dst:
+ Object: diamond
+ Commands:
+ - remove: true
+ - spawn: path
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - lt:
+ - inv_drink
+ - 9
+ Commands:
+ - add:
+ - inv_drink
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_drink
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_drink
+ - 1
+ - reward: 1
+ Dst:
+ Object: water
+ - Name: place
+ InputMapping:
+ Relative: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - -1
+ Description: Place a stone
+ MetaData:
+ action_id: 1
+ '2':
+ VectorToDest:
+ - 0
+ - -1
+ Description: Place a table
+ MetaData:
+ action_id: 2
+ '3':
+ VectorToDest:
+ - 0
+ - -1
+ Description: Place a furnace
+ MetaData:
+ action_id: 3
+ Behaviours:
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 1
+ - gte:
+ - inv_stone
+ - 1
+ Commands:
+ - sub:
+ - inv_stone
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_place_stone
+ - 1
+ OnTrue:
+ - set:
+ - ach_place_stone
+ - 1
+ - reward: 1
+ Dst:
+ Object:
+ - grass
+ - sand
+ - path
+ - water
+ - lava
+ Commands:
+ - remove: true
+ - spawn: stone
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 2
+ - gte:
+ - inv_wood
+ - 2
+ Commands:
+ - sub:
+ - inv_wood
+ - 2
+ - if:
+ Conditions:
+ lt:
+ - ach_place_table
+ - 1
+ OnTrue:
+ - set:
+ - ach_place_table
+ - 1
+ - reward: 1
+ Dst:
+ Object:
+ - grass
+ - sand
+ - path
+ Commands:
+ - spawn: table
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 3
+ - gte:
+ - inv_stone
+ - 4
+ Commands:
+ - sub:
+ - inv_stone
+ - 4
+ - if:
+ Conditions:
+ lt:
+ - ach_place_furnace
+ - 1
+ OnTrue:
+ - set:
+ - ach_place_furnace
+ - 1
+ - reward: 1
+ Dst:
+ Object:
+ - grass
+ - sand
+ - path
+ Commands:
+ - spawn: furnace
+ - Name: make
+ InputMapping:
+ Relative: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Description: Make a wood pickaxe
+ MetaData:
+ action_id: 1
+ '2':
+ VectorToDest:
+ - 0
+ - 0
+ Description: Make a stone pickaxe
+ MetaData:
+ action_id: 2
+ '3':
+ VectorToDest:
+ - 0
+ - 0
+ Description: Make an iron pickaxe
+ MetaData:
+ action_id: 3
+ Behaviours:
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 1
+ - gte:
+ - inv_wood
+ - 1
+ - lt:
+ - inv_wood_pickaxe
+ - 1
+ - eq:
+ - near_table
+ - 1
+ Commands:
+ - decr: inv_wood
+ - if:
+ Conditions:
+ lt:
+ - ach_make_wood_pickaxe
+ - 1
+ OnTrue:
+ - set:
+ - ach_make_wood_pickaxe
+ - 1
+ - reward: 1
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - inv_wood_pickaxe
+ - 1
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 2
+ - gte:
+ - inv_wood
+ - 1
+ - gte:
+ - inv_stone
+ - 1
+ - eq:
+ - near_table
+ - 1
+ - lt:
+ - inv_stone_pickaxe
+ - 1
+ Commands:
+ - decr: inv_stone
+ - decr: inv_wood
+ - if:
+ Conditions:
+ lt:
+ - ach_make_stone_pickaxe
+ - 1
+ OnTrue:
+ - set:
+ - ach_make_stone_pickaxe
+ - 1
+ - reward: 1
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - inv_stone_pickaxe
+ - 1
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 3
+ - gte:
+ - inv_wood
+ - 1
+ - gte:
+ - inv_iron
+ - 1
+ - gte:
+ - inv_coal
+ - 1
+ - eq:
+ - near_furnace
+ - 1
+ - eq:
+ - near_table
+ - 1
+ - lt:
+ - inv_iron_pickaxe
+ - 1
+ Commands:
+ - decr: inv_coal
+ - decr: inv_wood
+ - decr: inv_iron
+ - if:
+ Conditions:
+ lt:
+ - ach_make_iron_pickaxe
+ - 1
+ OnTrue:
+ - set:
+ - ach_make_iron_pickaxe
+ - 1
+ - reward: 1
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - inv_iron_pickaxe
+ - 1
+ - Name: near_table_on
+ Trigger:
+ Type: RANGE_BOX_AREA
+ Range: 1
+ Behaviours:
+ - Src:
+ Object: table
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - near_table
+ - 1
+ - Name: near_table_off
+ Trigger:
+ Type: RANGE_BOX_BOUNDARY
+ Range: 2
+ Behaviours:
+ - Src:
+ Object: table
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - near_table
+ - 0
+ - Name: near_furnace_on
+ Trigger:
+ Type: RANGE_BOX_AREA
+ Range: 1
+ Behaviours:
+ - Src:
+ Object: furnace
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - near_furnace
+ - 1
+ - Name: near_furnace_off
+ Trigger:
+ Type: RANGE_BOX_BOUNDARY
+ Range: 2
+ Behaviours:
+ - Src:
+ Object: furnace
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - near_furnace
+ - 0
+ - Name: act_attack_cooldown
+ InputMapping:
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: zombie
+ Commands:
+ - set:
+ - attack_cooldown
+ - 0
+ Dst:
+ Object: zombie
+ - Name: skeleton_random_movement
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ '2':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ '3':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ '4':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Preconditions:
+ - eq:
+ - is_chasing
+ - 0
+ Commands:
+ - mov: _dest
+ - rot: _dir
+ - exec:
+ Action: skeleton_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object:
+ - path
+ - Src:
+ Object: skeleton
+ Preconditions:
+ - eq:
+ - is_chasing
+ - 0
+ Commands:
+ - exec:
+ Action: skeleton_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object:
+ - _boundary
+ - _empty
+ - grass
+ - sand
+ - cow
+ - water
+ - stone
+ - plant
+ - tree
+ - player
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Name: skeleton_chase_player
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ '2':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ '3':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ '4':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ - mov: _dest
+ - rot: _dir
+ Dst:
+ Object: path
+ - Src:
+ Object: skeleton
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ Dst:
+ Object:
+ - _boundary
+ - cow
+ - player
+ - arrow
+ - water
+ - grass
+ - sand
+ - stone
+ - plant
+ - skeleton
+ - zombie
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Name: skeleton_chase_proximity_trigger_off
+ Trigger:
+ Range: 9
+ Type: RANGE_BOX_BOUNDARY
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Preconditions:
+ - eq:
+ - src.is_chasing
+ - 1
+ Commands:
+ - set:
+ - src.is_chasing
+ - 0
+ - exec:
+ Action: skeleton_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object: player
+ - Name: skeleton_chase_proximity_trigger_on
+ Trigger:
+ Range: 8
+ Type: RANGE_BOX_AREA
+ InputMapping:
+ Internal: true
+ Probability: 0.3
+ Behaviours:
+ - Src:
+ Preconditions:
+ - eq:
+ - src.chase_cooldown
+ - 0
+ Object: skeleton
+ Commands:
+ - set:
+ - src.is_chasing
+ - 1
+ - set:
+ - src.chase_cooldown
+ - 1
+ - exec:
+ Action: skeleton_chase_player
+ Delay: 3
+ Search:
+ ImpassableObjects:
+ - water
+ - cow
+ - stone
+ - tree
+ - zombie
+ - skeleton
+ - plant
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ TargetObjectName: player
+ Dst:
+ Object: player
+ - Name: arrow_projectile
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: arrow
+ Commands:
+ - mov: _dest
+ - exec:
+ Action: arrow_projectile
+ Delay: 1
+ Dst:
+ Object:
+ - water
+ - path
+ - grass
+ - sand
+ - lava
+ - Src:
+ Object: arrow
+ Commands:
+ - remove: true
+ Dst:
+ Object:
+ - _boundary
+ - _empty
+ - arrow
+ - tree
+ - stone
+ - plant
+ - coal
+ - iron
+ - diamond
+ - Src:
+ Object: arrow
+ Commands:
+ - remove: true
+ Dst:
+ Object:
+ - cow
+ - zombie
+ - skeleton
+ Commands:
+ - sub:
+ - health
+ - 2
+ - if:
+ Conditions:
+ lte:
+ - health
+ - 0
+ OnTrue:
+ - remove: true
+ - Src:
+ Object: arrow
+ Commands:
+ - remove: true
+ Dst:
+ Object: player
+ Commands:
+ - sub:
+ - health
+ - 2
+ - if:
+ Conditions:
+ lte:
+ - health
+ - 0
+ OnTrue:
+ - set:
+ - dst.player_done
+ - 1
+ - decr: player_count
+ - remove: true
+ - Src:
+ Object: arrow
+ Commands:
+ - remove: true
+ Dst:
+ Object:
+ - table
+ - furnace
+ Commands:
+ - remove: true
+ - Name: set_arrow_direction
+ InputMapping:
+ Internal: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Behaviours:
+ - Src:
+ Object: arrow
+ Commands:
+ - set_tile: meta.image_idx
+ Dst:
+ Object:
+ - water
+ - path
+ - grass
+ - sand
+ - arrow
+ - lava
+ - Name: fire_arrow
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ MetaData:
+ image_idx: 0
+ '2':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ MetaData:
+ image_idx: 1
+ '3':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ MetaData:
+ image_idx: 2
+ '4':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ MetaData:
+ image_idx: 3
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Dst:
+ Object:
+ - water
+ - path
+ - grass
+ - sand
+ - lava
+ Commands:
+ - spawn: arrow
+ - Name: reload_arrow
+ InputMapping:
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Commands:
+ - set:
+ - src.reload_cooldown
+ - 0
+ Dst:
+ Object: skeleton
+ - Name: skeleton_fire_proximity_trigger
+ Probability: 0.5
+ Trigger:
+ Range: 5
+ Type: RANGE_BOX_AREA
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Preconditions:
+ - eq:
+ - src.reload_cooldown
+ - 0
+ Object: skeleton
+ Commands:
+ - set:
+ - src.reload_cooldown
+ - 1
+ - exec:
+ Action: reload_arrow
+ Delay: 4
+ ActionId: 1
+ - if:
+ Conditions:
+ eq:
+ - src._dx
+ - 1
+ OnTrue:
+ - exec:
+ Action: fire_arrow
+ Delay: 1
+ ActionId: 2
+ - if:
+ Conditions:
+ eq:
+ - src._dx
+ - -1
+ OnTrue:
+ - exec:
+ Action: fire_arrow
+ Delay: 1
+ ActionId: 4
+ - if:
+ Conditions:
+ eq:
+ - src._dy
+ - 1
+ OnTrue:
+ - exec:
+ Action: fire_arrow
+ Delay: 1
+ ActionId: 3
+ - if:
+ Conditions:
+ eq:
+ - src._dy
+ - -1
+ OnTrue:
+ - exec:
+ Action: fire_arrow
+ Delay: 1
+ ActionId: 1
+ Dst:
+ Object: player
+ - Name: zombie_random_movement
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: zombie
+ Preconditions:
+ - eq:
+ - src.is_chasing
+ - 0
+ Commands:
+ - mov: _dest
+ - exec:
+ Action: zombie_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object:
+ - grass
+ - path
+ - sand
+ - Src:
+ Object: zombie
+ Preconditions:
+ - eq:
+ - src.is_chasing
+ - 0
+ Commands:
+ - exec:
+ Action: zombie_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object:
+ - _boundary
+ - _empty
+ - cow
+ - water
+ - tree
+ - stone
+ - plant
+ - player
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Name: zombie_chase_player
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: zombie
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ - mov: _dest
+ Dst:
+ Object:
+ - grass
+ - path
+ - sand
+ - Src:
+ Object: zombie
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ Dst:
+ Object:
+ - _boundary
+ - cow
+ - water
+ - stone
+ - plant
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Src:
+ Object: zombie
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ - if:
+ Conditions:
+ eq:
+ - src.attack_cooldown
+ - 0
+ OnTrue:
+ - set:
+ - src.attack_cooldown
+ - 1
+ - exec:
+ Action: act_attack_cooldown
+ Delay: 5
+ ActionId: 1
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ eq:
+ - src.attack_cooldown
+ - 0
+ OnTrue:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - sub:
+ - health
+ - 7
+ OnFalse:
+ - sub:
+ - health
+ - 2
+ - if:
+ Conditions:
+ lte:
+ - health
+ - 0
+ OnTrue:
+ - set:
+ - dst.player_done
+ - 1
+ - decr: player_count
+ - remove: true
+ - Name: zombie_chase_proximity_trigger_off
+ Trigger:
+ Range: 9
+ Type: RANGE_BOX_BOUNDARY
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: zombie
+ Preconditions:
+ - eq:
+ - src.is_chasing
+ - 1
+ Commands:
+ - set:
+ - src.is_chasing
+ - 0
+ - exec:
+ Action: zombie_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object: player
+ - Name: zombie_chase_proximity_trigger_on
+ Trigger:
+ Range: 8
+ Type: RANGE_BOX_AREA
+ InputMapping:
+ Internal: true
+ Probability: 0.9
+ Behaviours:
+ - Src:
+ Preconditions:
+ - eq:
+ - src.chase_cooldown
+ - 0
+ Object: zombie
+ Commands:
+ - set:
+ - src.is_chasing
+ - 1
+ - set:
+ - src.chase_cooldown
+ - 1
+ - exec:
+ Action: zombie_chase_player
+ Delay: 2
+ Search:
+ ImpassableObjects:
+ - water
+ - cow
+ - stone
+ - tree
+ - zombie
+ - skeleton
+ - plant
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ TargetObjectName: player
+ Dst:
+ Object: player
+ - Name: cow_random_movement
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ MetaData:
+ change_image: 1
+ image_idx: 1
+ '2':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ MetaData:
+ change_image: 0
+ '3':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ MetaData:
+ change_image: 1
+ image_idx: 0
+ '4':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ MetaData:
+ change_image: 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: cow
+ Commands:
+ - mov: _dest
+ - exec:
+ Action: cow_random_movement
+ Delay: 1
+ Randomize: true
+ - eq:
+ Arguments:
+ - meta.change_image
+ - 1
+ Commands:
+ - set_tile: meta.image_idx
+ Dst:
+ Object:
+ - grass
+ - path
+ - sand
+ - Src:
+ Object: cow
+ Commands:
+ - exec:
+ Action: cow_random_movement
+ Delay: 5
+ Randomize: true
+ Dst:
+ Object:
+ - _boundary
+ - _empty
+ - cow
+ - water
+ - stone
+ - tree
+ - plant
+ - player
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ Objects:
+ - Name: player
+ MapCharacter: p
+ InitialActions:
+ - Action: init_player
+ ActionId: 1
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/player.png
+ - Image: sprite2d/player-left.png
+ - Image: sprite2d/player-up.png
+ - Image: sprite2d/player-right.png
+ - Image: sprite2d/player-down.png
+ - Image: sprite2d/player-sleep.png
+ PlayerSprite2D:
+ - Image: sprite2d/player.png
+ - Image: sprite2d/player-left.png
+ - Image: sprite2d/player-up.png
+ - Image: sprite2d/player-right.png
+ - Image: sprite2d/player-down.png
+ - Image: sprite2d/player-sleep.png
+ - Name: water
+ MapCharacter: W
+ Z: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/water.png
+ PlayerSprite2D:
+ - Image: sprite2d/water.png
+ - Name: grass
+ MapCharacter: G
+ Z: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/grass.png
+ PlayerSprite2D:
+ - Image: sprite2d/grass.png
+ - Name: stone
+ MapCharacter: s
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/stone.png
+ PlayerSprite2D:
+ - Image: sprite2d/stone.png
+ - Name: path
+ Z: 1
+ MapCharacter: P
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/path.png
+ PlayerSprite2D:
+ - Image: sprite2d/path.png
+ - Name: sand
+ Z: 1
+ MapCharacter: S
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/sand.png
+ PlayerSprite2D:
+ - Image: sprite2d/sand.png
+ - Name: tree
+ Z: 1
+ MapCharacter: T
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/tree.png
+ PlayerSprite2D:
+ - Image: sprite2d/tree.png
+ - Name: plant
+ MapCharacter: +
+ Z: 2
+ Variables:
+ - Name: ripe
+ InitialValue: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/plant-ripe.png
+ - Image: sprite2d/plant.png
+ PlayerSprite2D:
+ - Image: sprite2d/plant-ripe.png
+ - Image: sprite2d/plant.png
+ - Name: lava
+ MapCharacter: L
+ Z: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/lava.png
+ PlayerSprite2D:
+ - Image: sprite2d/lava.png
+ - Name: coal
+ MapCharacter: c
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/coal.png
+ PlayerSprite2D:
+ - Image: sprite2d/coal.png
+ - Name: iron
+ MapCharacter: i
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/iron.png
+ PlayerSprite2D:
+ - Image: sprite2d/iron.png
+ - Name: diamond
+ MapCharacter: d
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/diamond.png
+ PlayerSprite2D:
+ - Image: sprite2d/diamond.png
+ - Name: table
+ MapCharacter: t
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/table.png
+ PlayerSprite2D:
+ - Image: sprite2d/table.png
+ - Name: furnace
+ MapCharacter: f
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/furnace.png
+ PlayerSprite2D:
+ - Image: sprite2d/furnace.png
+ - Name: fence
+ MapCharacter: '}'
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/fence.png
+ PlayerSprite2D:
+ - Image: sprite2d/fence.png
+ - Name: arrow
+ Z: 2
+ MapCharacter: a
+ InitialActions:
+ - Action: arrow_projectile
+ Delay: 1
+ - Action: set_arrow_direction
+ ActionId: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/arrow-up.png
+ - Image: sprite2d/arrow-right.png
+ - Image: sprite2d/arrow-down.png
+ - Image: sprite2d/arrow-left.png
+ PlayerSprite2D:
+ - Image: sprite2d/arrow-up.png
+ - Image: sprite2d/arrow-right.png
+ - Image: sprite2d/arrow-down.png
+ - Image: sprite2d/arrow-left.png
+ - Name: zombie
+ Z: 2
+ InitialActions:
+ - Action: zombie_random_movement
+ Randomize: true
+ Variables:
+ - Name: health
+ InitialValue: 5
+ - Name: is_chasing
+ InitialValue: 0
+ - Name: chase_cooldown
+ InitialValue: 0
+ - Name: attack_cooldown
+ InitialValue: 0
+ MapCharacter: '!'
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/zombie.png
+ PlayerSprite2D:
+ - Image: sprite2d/zombie.png
+ - Name: skeleton
+ Z: 2
+ MapCharacter: '@'
+ InitialActions:
+ - Action: skeleton_random_movement
+ Randomize: true
+ Variables:
+ - Name: health
+ InitialValue: 3
+ - Name: is_chasing
+ InitialValue: 0
+ - Name: chase_cooldown
+ InitialValue: 0
+ - Name: reload_cooldown
+ InitialValue: 0
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/skeleton.png
+ PlayerSprite2D:
+ - Image: sprite2d/skeleton.png
+ - Name: cow
+ InitialActions:
+ - Action: cow_random_movement
+ Randomize: true
+ Variables:
+ - Name: health
+ InitialValue: 3
+ Z: 2
+ MapCharacter: '#'
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/cow-left.png
+ - Image: sprite2d/cow-right.png
+ PlayerSprite2D:
+ - Image: sprite2d/cow-left.png
+ - Image: sprite2d/cow-right.png
+ - Name: health
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/health.png
+ PlayerSprite2D:
+ - Image: sprite2d/health.png
+ - Name: food
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/food.png
+ PlayerSprite2D:
+ - Image: sprite2d/food.png
+ - Name: drink
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/drink.png
+ PlayerSprite2D:
+ - Image: sprite2d/drink.png
+ - Name: energy
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/energy.png
+ PlayerSprite2D:
+ - Image: sprite2d/energy.png
+ - Name: '1'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/1.png
+ PlayerSprite2D:
+ - Image: sprite2d/1.png
+ - Name: '2'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/2.png
+ PlayerSprite2D:
+ - Image: sprite2d/2.png
+ - Name: '3'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/3.png
+ PlayerSprite2D:
+ - Image: sprite2d/3.png
+ - Name: '4'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/4.png
+ PlayerSprite2D:
+ - Image: sprite2d/4.png
+ - Name: '5'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/5.png
+ PlayerSprite2D:
+ - Image: sprite2d/5.png
+ - Name: '6'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/6.png
+ PlayerSprite2D:
+ - Image: sprite2d/6.png
+ - Name: '7'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/7.png
+ PlayerSprite2D:
+ - Image: sprite2d/7.png
+ - Name: '8'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/8.png
+ PlayerSprite2D:
+ - Image: sprite2d/8.png
+ - Name: '9'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/9.png
+ PlayerSprite2D:
+ - Image: sprite2d/9.png
+ - Name: log
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/log.png
+ PlayerSprite2D:
+ - Image: sprite2d/log.png
+ - Name: wood_pickaxe
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/wood_pickaxe.png
+ PlayerSprite2D:
+ - Image: sprite2d/wood_pickaxe.png
+ - Name: stone_pickaxe
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/stone_pickaxe.png
+ PlayerSprite2D:
+ - Image: sprite2d/stone_pickaxe.png
+ - Name: iron_pickaxe
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/iron_pickaxe.png
+ PlayerSprite2D:
+ - Image: sprite2d/iron_pickaxe.png
+ - Name: wood_sword
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/wood_sword.png
+ PlayerSprite2D:
+ - Image: sprite2d/wood_sword.png
+ - Name: stone_sword
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/stone_sword.png
+ PlayerSprite2D:
+ - Image: sprite2d/stone_sword.png
+ - Name: iron_sword
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/iron_sword.png
+ PlayerSprite2D:
+ - Image: sprite2d/iron_sword.png
+
+
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-0.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-0.png
index 64b417038..8a66061b4 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-0.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-0.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-1.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-1.png
index 7d3797a7b..f6c8fd1c2 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-1.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-1.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-2.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-2.png
index 831e8ca47..022abc3f2 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-2.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-2.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-3.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-3.png
index d8f6785b7..ea47bfb85 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-3.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Block2D-3.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-0.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-0.png
index acaff02b9..5ca7db4c5 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-0.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-0.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-1.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-1.png
index 154d9e2cf..2f2c88437 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-1.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-1.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-2.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-2.png
index 38c068baf..3a5550e10 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-2.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-2.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-3.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-3.png
index bda33ba00..906779827 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-3.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Isometric-3.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-0.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-0.png
index b6de172d8..602d0bd52 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-0.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-0.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-1.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-1.png
index 76c271a84..220660af7 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-1.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-1.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-2.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-2.png
index 5379833e8..4fff1f186 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-2.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-2.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-3.png b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-3.png
index 16ddef747..5b639489e 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-3.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-level-Vector-3.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Block2D.png
index 9fef99efc..8ffb30184 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Block2D.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Vector.png
index 0dea1ddca..10e705a25 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks-Vector.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Block2D.png
index 0fde702dc..e631e5de9 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Block2D.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Vector.png
index 0dea1ddca..a8e7f44c7 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-barracks_disabled-Vector.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Block2D.png
index 4444ad56b..38b13a096 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Block2D.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Vector.png
index 0dea1ddca..4eff5faf5 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-base-Vector.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Block2D.png
index cba4d3b7b..d4c8ee3a5 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Block2D.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Vector.png
index 0dea1ddca..3220f5d4c 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-combat-Vector.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Block2D.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Block2D.png
index aa52694a3..47c9cdd28 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Block2D.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Block2D.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Vector.png
index e7623ec6f..1460b3271 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-fixed_wall-Vector.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-minerals-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-minerals-Vector.png
index 5137506e1..57ee46ae4 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-minerals-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-minerals-Vector.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-movable_wall-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-movable_wall-Vector.png
index 3fb1db731..159d22611 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-movable_wall-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-movable_wall-Vector.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-ranged-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-ranged-Vector.png
index 0dea1ddca..f76f390fd 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-ranged-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-ranged-Vector.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Isometric.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Isometric.png
index 58ffffafc..225640b30 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Isometric.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Isometric.png differ
diff --git a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Vector.png b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Vector.png
index 0dea1ddca..e63992f30 100644
Binary files a/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Vector.png and b/docs/games/GriddlyRTS/img/GriddlyRTS-tile-worker-Vector.png differ
diff --git a/docs/games/GriddlyRTS/index.rst b/docs/games/GriddlyRTS/index.rst
index 6b9235dba..24e979088 100644
--- a/docs/games/GriddlyRTS/index.rst
+++ b/docs/games/GriddlyRTS/index.rst
@@ -16,13 +16,14 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
- Vector
+ - Isometric
- Sprite2D
- Block2D
- - Isometric
* - .. list-table::
* - Level ID
@@ -30,9 +31,9 @@ Levels
* - Size
- 16x16
- .. thumbnail:: img/GriddlyRTS-level-Vector-0.png
+ - .. thumbnail:: img/GriddlyRTS-level-Isometric-0.png
- .. thumbnail:: img/GriddlyRTS-level-Sprite2D-0.png
- .. thumbnail:: img/GriddlyRTS-level-Block2D-0.png
- - .. thumbnail:: img/GriddlyRTS-level-Isometric-0.png
* - .. list-table::
* - Level ID
@@ -40,9 +41,9 @@ Levels
* - Size
- 30x30
- .. thumbnail:: img/GriddlyRTS-level-Vector-1.png
+ - .. thumbnail:: img/GriddlyRTS-level-Isometric-1.png
- .. thumbnail:: img/GriddlyRTS-level-Sprite2D-1.png
- .. thumbnail:: img/GriddlyRTS-level-Block2D-1.png
- - .. thumbnail:: img/GriddlyRTS-level-Isometric-1.png
* - .. list-table::
* - Level ID
@@ -50,9 +51,9 @@ Levels
* - Size
- 30x30
- .. thumbnail:: img/GriddlyRTS-level-Vector-2.png
+ - .. thumbnail:: img/GriddlyRTS-level-Isometric-2.png
- .. thumbnail:: img/GriddlyRTS-level-Sprite2D-2.png
- .. thumbnail:: img/GriddlyRTS-level-Block2D-2.png
- - .. thumbnail:: img/GriddlyRTS-level-Isometric-2.png
* - .. list-table::
* - Level ID
@@ -60,9 +61,9 @@ Levels
* - Size
- 57x58
- .. thumbnail:: img/GriddlyRTS-level-Vector-3.png
+ - .. thumbnail:: img/GriddlyRTS-level-Isometric-3.png
- .. thumbnail:: img/GriddlyRTS-level-Sprite2D-3.png
- .. thumbnail:: img/GriddlyRTS-level-Block2D-3.png
- - .. thumbnail:: img/GriddlyRTS-level-Isometric-3.png
Code Example
------------
@@ -130,6 +131,16 @@ Objects
- .. image:: img/GriddlyRTS-tile-base-Vector.png
- .. image:: img/GriddlyRTS-tile-barracks_disabled-Vector.png
- .. image:: img/GriddlyRTS-tile-barracks-Vector.png
+ * - Isometric
+ - .. image:: img/GriddlyRTS-tile-minerals-Isometric.png
+ - .. image:: img/GriddlyRTS-tile-worker-Isometric.png
+ - .. image:: img/GriddlyRTS-tile-ranged-Isometric.png
+ - .. image:: img/GriddlyRTS-tile-combat-Isometric.png
+ - .. image:: img/GriddlyRTS-tile-fixed_wall-Isometric.png
+ - .. image:: img/GriddlyRTS-tile-movable_wall-Isometric.png
+ - .. image:: img/GriddlyRTS-tile-base-Isometric.png
+ - .. image:: img/GriddlyRTS-tile-barracks_disabled-Isometric.png
+ - .. image:: img/GriddlyRTS-tile-barracks-Isometric.png
* - Sprite2D
- .. image:: img/GriddlyRTS-tile-minerals-Sprite2D.png
- .. image:: img/GriddlyRTS-tile-worker-Sprite2D.png
@@ -150,16 +161,6 @@ Objects
- .. image:: img/GriddlyRTS-tile-base-Block2D.png
- .. image:: img/GriddlyRTS-tile-barracks_disabled-Block2D.png
- .. image:: img/GriddlyRTS-tile-barracks-Block2D.png
- * - Isometric
- - .. image:: img/GriddlyRTS-tile-minerals-Isometric.png
- - .. image:: img/GriddlyRTS-tile-worker-Isometric.png
- - .. image:: img/GriddlyRTS-tile-ranged-Isometric.png
- - .. image:: img/GriddlyRTS-tile-combat-Isometric.png
- - .. image:: img/GriddlyRTS-tile-fixed_wall-Isometric.png
- - .. image:: img/GriddlyRTS-tile-movable_wall-Isometric.png
- - .. image:: img/GriddlyRTS-tile-base-Isometric.png
- - .. image:: img/GriddlyRTS-tile-barracks_disabled-Isometric.png
- - .. image:: img/GriddlyRTS-tile-barracks-Isometric.png
Actions
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-0.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-0.png
index 8ed67f957..8092ef46c 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-0.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-0.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-1.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-1.png
index 8492baef3..b00123d3d 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-1.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Block2D-1.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-0.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-0.png
index 1d55b694c..34abecfcd 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-0.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-0.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-1.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-1.png
index ba2eb78fa..5785c55fb 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-1.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Isometric-1.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-0.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-0.png
index cd0d6d644..dbe925e01 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-0.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-0.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-1.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-1.png
index 6cfc86c0e..1d701a0a7 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-1.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-level-Vector-1.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Isometric.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Isometric.png
index 40f3e3ada..408c2735b 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Isometric.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Isometric.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Vector.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Vector.png
index a9977b2ea..f76f390fd 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Vector.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-healer-Vector.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Isometric.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Isometric.png
index e717258f7..fd78293bd 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Isometric.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Isometric.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Vector.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Vector.png
index fe01dce2a..3220f5d4c 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Vector.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-hole-Vector.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Block2D.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Block2D.png
index a2187eadf..799df081e 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Block2D.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Block2D.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Isometric.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Isometric.png
index 5e4de9341..1badedbff 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Isometric.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Isometric.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Vector.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Vector.png
index c0ac27968..3220f5d4c 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Vector.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-mountain-Vector.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Block2D.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Block2D.png
index cba4d3b7b..d4c8ee3a5 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Block2D.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Block2D.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Isometric.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Isometric.png
index 14dcc567e..20516e806 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Isometric.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Isometric.png differ
diff --git a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Vector.png b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Vector.png
index a9977b2ea..f76f390fd 100644
Binary files a/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Vector.png and b/docs/games/Heal_Or_Die/img/Heal_Or_Die-tile-warrior-Vector.png differ
diff --git a/docs/games/Heal_Or_Die/index.rst b/docs/games/Heal_Or_Die/index.rst
index 9ff33dc15..7bd4c7fd5 100644
--- a/docs/games/Heal_Or_Die/index.rst
+++ b/docs/games/Heal_Or_Die/index.rst
@@ -19,13 +19,14 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
- Vector
+ - Isometric
- Sprite2D
- Block2D
- - Isometric
* - .. list-table::
* - Level ID
@@ -33,9 +34,9 @@ Levels
* - Size
- 25x10
- .. thumbnail:: img/Heal_Or_Die-level-Vector-0.png
+ - .. thumbnail:: img/Heal_Or_Die-level-Isometric-0.png
- .. thumbnail:: img/Heal_Or_Die-level-Sprite2D-0.png
- .. thumbnail:: img/Heal_Or_Die-level-Block2D-0.png
- - .. thumbnail:: img/Heal_Or_Die-level-Isometric-0.png
* - .. list-table::
* - Level ID
@@ -43,9 +44,9 @@ Levels
* - Size
- 25x19
- .. thumbnail:: img/Heal_Or_Die-level-Vector-1.png
+ - .. thumbnail:: img/Heal_Or_Die-level-Isometric-1.png
- .. thumbnail:: img/Heal_Or_Die-level-Sprite2D-1.png
- .. thumbnail:: img/Heal_Or_Die-level-Block2D-1.png
- - .. thumbnail:: img/Heal_Or_Die-level-Isometric-1.png
Code Example
------------
@@ -98,6 +99,11 @@ Objects
- .. image:: img/Heal_Or_Die-tile-hole-Vector.png
- .. image:: img/Heal_Or_Die-tile-healer-Vector.png
- .. image:: img/Heal_Or_Die-tile-warrior-Vector.png
+ * - Isometric
+ - .. image:: img/Heal_Or_Die-tile-mountain-Isometric.png
+ - .. image:: img/Heal_Or_Die-tile-hole-Isometric.png
+ - .. image:: img/Heal_Or_Die-tile-healer-Isometric.png
+ - .. image:: img/Heal_Or_Die-tile-warrior-Isometric.png
* - Sprite2D
- .. image:: img/Heal_Or_Die-tile-mountain-Sprite2D.png
- .. image:: img/Heal_Or_Die-tile-hole-Sprite2D.png
@@ -108,11 +114,6 @@ Objects
- .. image:: img/Heal_Or_Die-tile-hole-Block2D.png
- .. image:: img/Heal_Or_Die-tile-healer-Block2D.png
- .. image:: img/Heal_Or_Die-tile-warrior-Block2D.png
- * - Isometric
- - .. image:: img/Heal_Or_Die-tile-mountain-Isometric.png
- - .. image:: img/Heal_Or_Die-tile-hole-Isometric.png
- - .. image:: img/Heal_Or_Die-tile-healer-Isometric.png
- - .. image:: img/Heal_Or_Die-tile-warrior-Isometric.png
Actions
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-level-Block2D-0.png b/docs/games/Kill_The_King/img/Kill_The_King-level-Block2D-0.png
index 6c2817aaa..8b19509d0 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-level-Block2D-0.png and b/docs/games/Kill_The_King/img/Kill_The_King-level-Block2D-0.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-level-Isometric-0.png b/docs/games/Kill_The_King/img/Kill_The_King-level-Isometric-0.png
index 720b431ba..654378d2d 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-level-Isometric-0.png and b/docs/games/Kill_The_King/img/Kill_The_King-level-Isometric-0.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-level-Vector-0.png b/docs/games/Kill_The_King/img/Kill_The_King-level-Vector-0.png
index 36db75b96..3bdc4774f 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-level-Vector-0.png and b/docs/games/Kill_The_King/img/Kill_The_King-level-Vector-0.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Block2D.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Block2D.png
index c68181295..3b7662732 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Block2D.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Block2D.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Isometric.png
index f6d15b694..e18564c2d 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Isometric.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Vector.png
index 5f7dd9cd6..b300bb8b3 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-archer-Vector.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Isometric.png
index d5245edf6..00bbdfc64 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Isometric.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Vector.png
index 81269459b..619e42feb 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-forest-Vector.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Block2D.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Block2D.png
index 2dc23607d..e64b9328f 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Block2D.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Block2D.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Isometric.png
index 40f3e3ada..408c2735b 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Isometric.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Vector.png
index 5f7dd9cd6..c0ac27968 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-healer-Vector.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Isometric.png
index e717258f7..fd78293bd 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Isometric.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Vector.png
index 34f07f038..fe01dce2a 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-hole-Vector.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Isometric.png
index 635809f28..0a7621eab 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Isometric.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Vector.png
index 5f7dd9cd6..fe01dce2a 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-king-Vector.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Block2D.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Block2D.png
index a2187eadf..799df081e 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Block2D.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Block2D.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Isometric.png
index 5e4de9341..1badedbff 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Isometric.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Vector.png
index 0efac0d90..c0ac27968 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-mountain-Vector.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Block2D.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Block2D.png
index c5692d38a..d1d57e4c5 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Block2D.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Block2D.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Isometric.png
index 14dcc567e..20516e806 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Isometric.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Vector.png
index 5f7dd9cd6..619e42feb 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-warrior-Vector.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Isometric.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Isometric.png
index 64f362f6f..4f68717f6 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Isometric.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Isometric.png differ
diff --git a/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Vector.png b/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Vector.png
index fd002494a..b300bb8b3 100644
Binary files a/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Vector.png and b/docs/games/Kill_The_King/img/Kill_The_King-tile-water-Vector.png differ
diff --git a/docs/games/Kill_The_King/index.rst b/docs/games/Kill_The_King/index.rst
index b7ccdac45..eac6e53ce 100644
--- a/docs/games/Kill_The_King/index.rst
+++ b/docs/games/Kill_The_King/index.rst
@@ -18,13 +18,14 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
- Vector
+ - Isometric
- Sprite2D
- Block2D
- - Isometric
* - .. list-table::
* - Level ID
@@ -32,9 +33,9 @@ Levels
* - Size
- 32x17
- .. thumbnail:: img/Kill_The_King-level-Vector-0.png
+ - .. thumbnail:: img/Kill_The_King-level-Isometric-0.png
- .. thumbnail:: img/Kill_The_King-level-Sprite2D-0.png
- .. thumbnail:: img/Kill_The_King-level-Block2D-0.png
- - .. thumbnail:: img/Kill_The_King-level-Isometric-0.png
Code Example
------------
@@ -99,6 +100,15 @@ Objects
- .. image:: img/Kill_The_King-tile-warrior-Vector.png
- .. image:: img/Kill_The_King-tile-archer-Vector.png
- .. image:: img/Kill_The_King-tile-king-Vector.png
+ * - Isometric
+ - .. image:: img/Kill_The_King-tile-mountain-Isometric.png
+ - .. image:: img/Kill_The_King-tile-water-Isometric.png
+ - .. image:: img/Kill_The_King-tile-forest-Isometric.png
+ - .. image:: img/Kill_The_King-tile-hole-Isometric.png
+ - .. image:: img/Kill_The_King-tile-healer-Isometric.png
+ - .. image:: img/Kill_The_King-tile-warrior-Isometric.png
+ - .. image:: img/Kill_The_King-tile-archer-Isometric.png
+ - .. image:: img/Kill_The_King-tile-king-Isometric.png
* - Sprite2D
- .. image:: img/Kill_The_King-tile-mountain-Sprite2D.png
- .. image:: img/Kill_The_King-tile-water-Sprite2D.png
@@ -117,15 +127,6 @@ Objects
- .. image:: img/Kill_The_King-tile-warrior-Block2D.png
- .. image:: img/Kill_The_King-tile-archer-Block2D.png
- .. image:: img/Kill_The_King-tile-king-Block2D.png
- * - Isometric
- - .. image:: img/Kill_The_King-tile-mountain-Isometric.png
- - .. image:: img/Kill_The_King-tile-water-Isometric.png
- - .. image:: img/Kill_The_King-tile-forest-Isometric.png
- - .. image:: img/Kill_The_King-tile-hole-Isometric.png
- - .. image:: img/Kill_The_King-tile-healer-Isometric.png
- - .. image:: img/Kill_The_King-tile-warrior-Isometric.png
- - .. image:: img/Kill_The_King-tile-archer-Isometric.png
- - .. image:: img/Kill_The_King-tile-king-Isometric.png
Actions
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-0.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-0.png
index b2f1ffd66..8380bddc8 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-0.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-0.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-1.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-1.png
index 17e87a597..1d5e6f611 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-1.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-1.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-2.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-2.png
index 96f2a2457..656773a0c 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-2.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-2.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-3.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-3.png
index 714acbcd0..fb16a30e6 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-3.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-3.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-4.png b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-4.png
index 0de7cdb45..0f3477629 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Block2D-4.png and b/docs/games/Labyrinth/img/Labyrinth-level-Block2D-4.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-0.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-0.png
index 3bcdbce0f..5ec4378f3 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-0.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-0.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-1.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-1.png
index 24d5ab3c2..59f7849a4 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-1.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-1.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-2.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-2.png
index c6a15f591..93b9dd548 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-2.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-2.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-3.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-3.png
index bc65ebce3..69b1610bd 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-3.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-3.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-level-Vector-4.png b/docs/games/Labyrinth/img/Labyrinth-level-Vector-4.png
index 9069320cd..c108c3efc 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-level-Vector-4.png and b/docs/games/Labyrinth/img/Labyrinth-level-Vector-4.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Block2D.png b/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Block2D.png
index cca586511..532f4fbf9 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Block2D.png and b/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Block2D.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Vector.png b/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Vector.png
index 3220f5d4c..f76f390fd 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Vector.png and b/docs/games/Labyrinth/img/Labyrinth-tile-avatar-Vector.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-exit-Block2D.png b/docs/games/Labyrinth/img/Labyrinth-tile-exit-Block2D.png
index b42cb7cf8..473b1a1cd 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-exit-Block2D.png and b/docs/games/Labyrinth/img/Labyrinth-tile-exit-Block2D.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-exit-Vector.png b/docs/games/Labyrinth/img/Labyrinth-tile-exit-Vector.png
index f76f390fd..3220f5d4c 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-exit-Vector.png and b/docs/games/Labyrinth/img/Labyrinth-tile-exit-Vector.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-trap-Vector.png b/docs/games/Labyrinth/img/Labyrinth-tile-trap-Vector.png
index dabd04345..3220f5d4c 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-trap-Vector.png and b/docs/games/Labyrinth/img/Labyrinth-tile-trap-Vector.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-wall-Block2D.png b/docs/games/Labyrinth/img/Labyrinth-tile-wall-Block2D.png
index 2940576bf..354d34021 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-wall-Block2D.png and b/docs/games/Labyrinth/img/Labyrinth-tile-wall-Block2D.png differ
diff --git a/docs/games/Labyrinth/img/Labyrinth-tile-wall-Vector.png b/docs/games/Labyrinth/img/Labyrinth-tile-wall-Vector.png
index a3bc67813..f76f390fd 100644
Binary files a/docs/games/Labyrinth/img/Labyrinth-tile-wall-Vector.png and b/docs/games/Labyrinth/img/Labyrinth-tile-wall-Vector.png differ
diff --git a/docs/games/Labyrinth/index.rst b/docs/games/Labyrinth/index.rst
index 54c99a42f..6f9dd363b 100644
--- a/docs/games/Labyrinth/index.rst
+++ b/docs/games/Labyrinth/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-0.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-0.png
index d784fd97e..af95ef5f8 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-0.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-0.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-1.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-1.png
index 7a791ad8d..69a5e700f 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-1.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-1.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-2.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-2.png
index 7c8e897b6..0ba22d932 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-2.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-2.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-3.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-3.png
index aa6b2ec8d..6c9f04b37 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-3.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-3.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-4.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-4.png
index efb1b3b17..f9ed98d26 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-4.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Block2D-4.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-0.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-0.png
index c0b1323be..080179f91 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-0.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-0.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-1.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-1.png
index 3c530b09c..6cbedd7f3 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-1.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-1.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-2.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-2.png
index a85c94c6e..32d4513a4 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-2.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-2.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-3.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-3.png
index 8b3d31509..ea27a7232 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-3.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-3.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-4.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-4.png
index e1eadc174..cbebb4efd 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-4.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-level-Vector-4.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-avatar-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-avatar-Vector.png
index 6985a0878..3fb1db731 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-avatar-Vector.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Block2D.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Block2D.png
index 5556781fb..2cee22959 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Block2D.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Vector.png
index 1460b3271..6985a0878 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-box-Vector.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-goal-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-goal-Vector.png
index a5cdcff22..e7623ec6f 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-goal-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-goal-Vector.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-hole-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-hole-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-hole-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-hole-Vector.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Block2D.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Block2D.png
index f3a371b8a..009ae95f9 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Block2D.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Vector.png
index 77a281909..bbb0c9965 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-key-Vector.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-mushroom-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-mushroom-Vector.png
index f5ac61ae0..a5cdcff22 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-mushroom-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-mushroom-Vector.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Block2D.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Block2D.png
index 2940576bf..354d34021 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Vector.png b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Vector.png
index 0dea1ddca..c699d613a 100644
Binary files a/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Vector.png and b/docs/games/Partially_Observable_Bait/img/Partially_Observable_Bait-tile-wall-Vector.png differ
diff --git a/docs/games/Partially_Observable_Bait/index.rst b/docs/games/Partially_Observable_Bait/index.rst
index 614c5a64d..275b932b2 100644
--- a/docs/games/Partially_Observable_Bait/index.rst
+++ b/docs/games/Partially_Observable_Bait/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-0.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-0.png
index 1dfd15e40..716016102 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-0.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-0.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-1.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-1.png
index 3d0ad655b..902bb2a53 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-1.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-1.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-2.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-2.png
index bf5f97d45..3b1143c4e 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-2.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-2.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-3.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-3.png
index c6b8d4153..5fa9434c1 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-3.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-3.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-4.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-4.png
index f6b701fd4..451342bd8 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-4.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Block2D-4.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-0.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-0.png
index 4e2f284be..47914b365 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-0.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-0.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-1.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-1.png
index bfee64909..7a73f6b26 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-1.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-1.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-2.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-2.png
index d7f38bd91..ca4ef2390 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-2.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-2.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-3.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-3.png
index 0a42e1db6..063409d0d 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-3.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-3.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-4.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-4.png
index c41ea274d..c440322b4 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-4.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-level-Vector-4.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-avatar-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-avatar-Vector.png
index 449dbd771..bc5c2b3ee 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-avatar-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_block-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_block-Vector.png
index cddd4d04e..449dbd771 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_block-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_block-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Block2D.png
index 04c0f1ab7..02cfa53bd 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Vector.png
index 1ea637a7b..a3febd5dd 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-blue_box-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_block-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_block-Vector.png
index bc5c2b3ee..1ea637a7b 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_block-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_block-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Block2D.png
index e7ce880ab..462b72f1e 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Vector.png
index bdb0ce86a..1ea637a7b 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-green_box-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_block-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_block-Vector.png
index c59c09c03..cddd4d04e 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_block-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_block-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Block2D.png
index 70e7a6cfc..e97e205e3 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Vector.png
index 1843eaae9..a3febd5dd 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-red_box-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Block2D.png
index b19a62955..4e0852ee5 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Vector.png
index 8722650d1..449dbd771 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-spike-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Block2D.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Block2D.png
index 2940576bf..354d34021 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Vector.png b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Vector.png
index 91397096b..bc5c2b3ee 100644
Binary files a/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Vector.png and b/docs/games/Partially_Observable_Clusters/img/Partially_Observable_Clusters-tile-wall-Vector.png differ
diff --git a/docs/games/Partially_Observable_Clusters/index.rst b/docs/games/Partially_Observable_Clusters/index.rst
index 5b9769442..99c44dd0f 100644
--- a/docs/games/Partially_Observable_Clusters/index.rst
+++ b/docs/games/Partially_Observable_Clusters/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-0.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-0.png
index e08f72af0..4482602f6 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-0.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-0.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-1.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-1.png
index e08f72af0..4482602f6 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-1.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-1.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-2.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-2.png
index 7e5bd5734..273048305 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-2.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-2.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-3.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-3.png
index 927ca05a0..d8d385146 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-3.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-3.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-4.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-4.png
index 965458aba..e8731ad45 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-4.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-4.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-5.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-5.png
index 63ecb598f..abb456247 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-5.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Block2D-5.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-2.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-2.png
index 573d02fe3..f3464f673 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-2.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-2.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-3.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-3.png
index 4472f05d5..f7584150b 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-3.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-3.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-4.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-4.png
index bf84e2527..130fff973 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-4.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-4.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-5.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-5.png
index b97ca4ff6..16500dd79 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-5.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Sprite2D-5.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-0.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-0.png
index a6b8fdf37..71fd39ba1 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-0.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-0.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-1.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-1.png
index a6b8fdf37..71fd39ba1 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-1.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-1.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-2.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-2.png
index 11e729c64..e05782f3b 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-2.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-2.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-3.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-3.png
index 5eb4ce51a..c01d45924 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-3.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-3.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-4.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-4.png
index 91312faad..e665e8c01 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-4.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-4.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-5.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-5.png
index 1e02b03d6..c801bb6a0 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-5.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-level-Vector-5.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Block2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Block2D.png
index e163562b3..e1720c195 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Block2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Vector.png
index 3b1230202..0efac0d90 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-avatar-Vector.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-boiling_water-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-boiling_water-Vector.png
index 81269459b..3b1230202 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-boiling_water-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-boiling_water-Vector.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Block2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Block2D.png
index 40a6d056a..a50ac3590 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Block2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Sprite2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Sprite2D.png
index af95f3e10..c0761c930 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Sprite2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Sprite2D.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Vector.png
index b777829b0..34f07f038 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-key-Vector.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Block2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Block2D.png
index a284f9eb9..48d905a59 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Block2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Vector.png
index 0efac0d90..3f6bf0a16 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-lock-Vector.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-raw_pasta-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-raw_pasta-Vector.png
index fd002494a..34f07f038 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-raw_pasta-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-raw_pasta-Vector.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tomato-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tomato-Vector.png
index 55f2af5df..81269459b 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tomato-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tomato-Vector.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tuna-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tuna-Vector.png
index e786c582e..b777829b0 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tuna-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-tuna-Vector.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Block2D.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Block2D.png
index 40a6d056a..a50ac3590 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Vector.png b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Vector.png
index 40f1980b9..3b1230202 100644
Binary files a/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Vector.png and b/docs/games/Partially_Observable_Cook_Me_Pasta/img/Partially_Observable_Cook_Me_Pasta-tile-wall-Vector.png differ
diff --git a/docs/games/Partially_Observable_Cook_Me_Pasta/index.rst b/docs/games/Partially_Observable_Cook_Me_Pasta/index.rst
index eb20eb4f3..5037c5fc2 100644
--- a/docs/games/Partially_Observable_Cook_Me_Pasta/index.rst
+++ b/docs/games/Partially_Observable_Cook_Me_Pasta/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-0.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-0.png
index b2f1ffd66..8380bddc8 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-0.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-0.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-1.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-1.png
index 17e87a597..1d5e6f611 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-1.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-1.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-2.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-2.png
index 96f2a2457..656773a0c 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-2.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-2.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-3.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-3.png
index 714acbcd0..fb16a30e6 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-3.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-3.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-4.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-4.png
index 0de7cdb45..0f3477629 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-4.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Block2D-4.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-0.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-0.png
index 3bcdbce0f..5ec4378f3 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-0.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-0.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-1.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-1.png
index 24d5ab3c2..59f7849a4 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-1.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-1.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-2.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-2.png
index c6a15f591..93b9dd548 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-2.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-2.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-3.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-3.png
index bc65ebce3..69b1610bd 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-3.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-3.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-4.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-4.png
index 9069320cd..c108c3efc 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-4.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-level-Vector-4.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Block2D.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Block2D.png
index cca586511..532f4fbf9 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Block2D.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Vector.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Vector.png
index 3220f5d4c..f76f390fd 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-avatar-Vector.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Block2D.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Block2D.png
index b42cb7cf8..473b1a1cd 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Block2D.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Vector.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Vector.png
index f76f390fd..3220f5d4c 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Vector.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-exit-Vector.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-trap-Vector.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-trap-Vector.png
index dabd04345..3220f5d4c 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-trap-Vector.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-trap-Vector.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Block2D.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Block2D.png
index 2940576bf..354d34021 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Vector.png b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Vector.png
index a3bc67813..f76f390fd 100644
Binary files a/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Vector.png and b/docs/games/Partially_Observable_Labyrinth/img/Partially_Observable_Labyrinth-tile-wall-Vector.png differ
diff --git a/docs/games/Partially_Observable_Labyrinth/index.rst b/docs/games/Partially_Observable_Labyrinth/index.rst
index 2d3595a65..537dbd4c0 100644
--- a/docs/games/Partially_Observable_Labyrinth/index.rst
+++ b/docs/games/Partially_Observable_Labyrinth/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-0.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-0.png
index f1920a6d3..019d20387 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-0.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-0.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-1.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-1.png
index 388cd092a..f013ba23c 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-1.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-1.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-2.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-2.png
index 82c4a75ec..9d84d3c39 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-2.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-2.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-3.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-3.png
index eed9eeff1..0a68bff6f 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-3.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-3.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-4.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-4.png
index f614306f5..3db821a1a 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-4.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Block2D-4.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-0.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-0.png
index a1f41222b..0531d598e 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-0.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-0.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-1.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-1.png
index b33f80707..80eeaf3e0 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-1.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-1.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-2.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-2.png
index 4b4225dba..fac62472c 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-2.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-2.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-3.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-3.png
index 44a85eb72..54653ce1d 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-3.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-3.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-4.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-4.png
index d1f74b9fc..256f8d1b0 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-4.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-level-Vector-4.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-avatar-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-avatar-Vector.png
index c23edfdd3..a2f51f612 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-avatar-Vector.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box-Vector.png
index c0ac27968..c23edfdd3 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box-Vector.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box_in_place-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box_in_place-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box_in_place-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-box_in_place-Vector.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Block2D.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Block2D.png
index f28dea013..acb0afe66 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Block2D.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Vector.png
index 5423baded..c0ac27968 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-hole-Vector.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Block2D.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Block2D.png
index 7857e4834..c22b087ef 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Vector.png b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Vector.png
index 758055b8f..7d7ba957a 100644
Binary files a/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Vector.png and b/docs/games/Partially_Observable_Sokoban_-_2/img/Partially_Observable_Sokoban_-_2-tile-wall-Vector.png differ
diff --git a/docs/games/Partially_Observable_Sokoban_-_2/index.rst b/docs/games/Partially_Observable_Sokoban_-_2/index.rst
index a742eaa19..ee5526016 100644
--- a/docs/games/Partially_Observable_Sokoban_-_2/index.rst
+++ b/docs/games/Partially_Observable_Sokoban_-_2/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-0.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-0.png
index 28cf74c32..b9bf1c074 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-0.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-0.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-1.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-1.png
index 181beae50..8ec9869db 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-1.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-1.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-2.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-2.png
index e4f783913..452e2dc5f 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-2.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Block2D-2.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-0.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-0.png
index 01f93dcbc..335547d1c 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-0.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-0.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-1.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-1.png
index efbc6ecc2..ae3e181e3 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-1.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-1.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-2.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-2.png
index d20cd254a..94fb66b95 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-2.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Sprite2D-2.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-0.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-0.png
index bf776148e..26ac6edec 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-0.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-0.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-1.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-1.png
index 8fe477152..73f936452 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-1.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-1.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-2.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-2.png
index ca953ba04..4b60d7e22 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-2.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-level-Vector-2.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-attack_fire-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-attack_fire-Vector.png
index d8a72ac84..95e86ee99 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-attack_fire-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-attack_fire-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Block2D.png
index 53aef6fc7..f10c9a4f3 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Vector.png
index 3b74da918..d8a72ac84 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-avatar-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Block2D.png
index 89b715e3a..070c76dae 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Vector.png
index 95e86ee99..3b74da918 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-goal-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Block2D.png
index 75b9fb4e2..29fdd4dae 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Sprite2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Sprite2D.png
index e976c2768..cb457e470 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Sprite2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Sprite2D.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Vector.png
index 09f573db4..3b74da918 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-key-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Block2D.png
index b19a62955..4e0852ee5 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Vector.png
index 37ac5d892..d8a72ac84 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-spider-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Block2D.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Block2D.png
index 672268aa4..b98b77ffc 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Block2D.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Vector.png b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Vector.png
index 0ae910660..95e86ee99 100644
Binary files a/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Vector.png and b/docs/games/Partially_Observable_Zelda/img/Partially_Observable_Zelda-tile-wall-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zelda/index.rst b/docs/games/Partially_Observable_Zelda/index.rst
index dc17d81c8..a7fe18422 100644
--- a/docs/games/Partially_Observable_Zelda/index.rst
+++ b/docs/games/Partially_Observable_Zelda/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-0.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-0.png
index a341956e0..ae885fd46 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-0.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-0.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-1.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-1.png
index 6f85411af..5a7e01c5b 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-1.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-1.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-2.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-2.png
index fa81b8f26..c9ccbffea 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-2.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-2.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-3.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-3.png
index 197934e4f..e9df241fd 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-3.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-3.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-4.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-4.png
index 6e75c09fb..393c8afa0 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-4.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Block2D-4.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-0.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-0.png
index f7c62b08c..aaf26adfc 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-0.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-0.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-1.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-1.png
index e5e5be48b..aaf26adfc 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-1.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-1.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-2.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-2.png
index 6513bccde..aaf26adfc 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-2.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-2.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-3.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-3.png
index c0023cbc6..6ee534694 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-3.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-3.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-4.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-4.png
index 9f4354789..aaf26adfc 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-4.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-level-Vector-4.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-avatar-Vector.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-avatar-Vector.png
index 3220f5d4c..f76f390fd 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-avatar-Vector.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-avatar-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Block2D.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Block2D.png
index 286da7396..fae52bb5a 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Block2D.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Block2D.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Vector.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Vector.png
index f76f390fd..3220f5d4c 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Vector.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-ground-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-rock-Vector.png b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-rock-Vector.png
index dabd04345..3220f5d4c 100644
Binary files a/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-rock-Vector.png and b/docs/games/Partially_Observable_Zen_Puzzle/img/Partially_Observable_Zen_Puzzle-tile-rock-Vector.png differ
diff --git a/docs/games/Partially_Observable_Zen_Puzzle/index.rst b/docs/games/Partially_Observable_Zen_Puzzle/index.rst
index f9a3f1941..5fa138000 100644
--- a/docs/games/Partially_Observable_Zen_Puzzle/index.rst
+++ b/docs/games/Partially_Observable_Zen_Puzzle/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Push_Mania/img/Push_Mania-level-Isometric-0.png b/docs/games/Push_Mania/img/Push_Mania-level-Isometric-0.png
index baf7f3675..5f0b8c1db 100644
Binary files a/docs/games/Push_Mania/img/Push_Mania-level-Isometric-0.png and b/docs/games/Push_Mania/img/Push_Mania-level-Isometric-0.png differ
diff --git a/docs/games/Push_Mania/img/Push_Mania-level-Isometric-1.png b/docs/games/Push_Mania/img/Push_Mania-level-Isometric-1.png
index 44d364f3e..6b1d74837 100644
Binary files a/docs/games/Push_Mania/img/Push_Mania-level-Isometric-1.png and b/docs/games/Push_Mania/img/Push_Mania-level-Isometric-1.png differ
diff --git a/docs/games/Push_Mania/img/Push_Mania-level-Vector-0.png b/docs/games/Push_Mania/img/Push_Mania-level-Vector-0.png
index b3b0ec901..680dff641 100644
Binary files a/docs/games/Push_Mania/img/Push_Mania-level-Vector-0.png and b/docs/games/Push_Mania/img/Push_Mania-level-Vector-0.png differ
diff --git a/docs/games/Push_Mania/img/Push_Mania-level-Vector-1.png b/docs/games/Push_Mania/img/Push_Mania-level-Vector-1.png
index d06c74247..3291673e6 100644
Binary files a/docs/games/Push_Mania/img/Push_Mania-level-Vector-1.png and b/docs/games/Push_Mania/img/Push_Mania-level-Vector-1.png differ
diff --git a/docs/games/Push_Mania/img/Push_Mania-tile-hole-Isometric.png b/docs/games/Push_Mania/img/Push_Mania-tile-hole-Isometric.png
index 690d59f63..c65272e2e 100644
Binary files a/docs/games/Push_Mania/img/Push_Mania-tile-hole-Isometric.png and b/docs/games/Push_Mania/img/Push_Mania-tile-hole-Isometric.png differ
diff --git a/docs/games/Push_Mania/img/Push_Mania-tile-hole-Vector.png b/docs/games/Push_Mania/img/Push_Mania-tile-hole-Vector.png
index d8a72ac84..c0ac27968 100644
Binary files a/docs/games/Push_Mania/img/Push_Mania-tile-hole-Vector.png and b/docs/games/Push_Mania/img/Push_Mania-tile-hole-Vector.png differ
diff --git a/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Isometric.png b/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Isometric.png
index 40f3e3ada..408c2735b 100644
Binary files a/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Isometric.png and b/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Isometric.png differ
diff --git a/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Vector.png b/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Vector.png
index 0ae910660..c0ac27968 100644
Binary files a/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Vector.png and b/docs/games/Push_Mania/img/Push_Mania-tile-pusher-Vector.png differ
diff --git a/docs/games/Push_Mania/index.rst b/docs/games/Push_Mania/index.rst
index ca58e4d99..d3b30c22c 100644
--- a/docs/games/Push_Mania/index.rst
+++ b/docs/games/Push_Mania/index.rst
@@ -18,13 +18,14 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
- Vector
+ - Isometric
- Sprite2D
- Block2D
- - Isometric
* - .. list-table::
* - Level ID
@@ -32,9 +33,9 @@ Levels
* - Size
- 10x11
- .. thumbnail:: img/Push_Mania-level-Vector-0.png
+ - .. thumbnail:: img/Push_Mania-level-Isometric-0.png
- .. thumbnail:: img/Push_Mania-level-Sprite2D-0.png
- .. thumbnail:: img/Push_Mania-level-Block2D-0.png
- - .. thumbnail:: img/Push_Mania-level-Isometric-0.png
* - .. list-table::
* - Level ID
@@ -42,9 +43,9 @@ Levels
* - Size
- 25x11
- .. thumbnail:: img/Push_Mania-level-Vector-1.png
+ - .. thumbnail:: img/Push_Mania-level-Isometric-1.png
- .. thumbnail:: img/Push_Mania-level-Sprite2D-1.png
- .. thumbnail:: img/Push_Mania-level-Block2D-1.png
- - .. thumbnail:: img/Push_Mania-level-Isometric-1.png
Code Example
------------
@@ -91,15 +92,15 @@ Objects
* - Vector
- .. image:: img/Push_Mania-tile-hole-Vector.png
- .. image:: img/Push_Mania-tile-pusher-Vector.png
+ * - Isometric
+ - .. image:: img/Push_Mania-tile-hole-Isometric.png
+ - .. image:: img/Push_Mania-tile-pusher-Isometric.png
* - Sprite2D
- .. image:: img/Push_Mania-tile-hole-Sprite2D.png
- .. image:: img/Push_Mania-tile-pusher-Sprite2D.png
* - Block2D
- .. image:: img/Push_Mania-tile-hole-Block2D.png
- .. image:: img/Push_Mania-tile-pusher-Block2D.png
- * - Isometric
- - .. image:: img/Push_Mania-tile-hole-Isometric.png
- - .. image:: img/Push_Mania-tile-pusher-Isometric.png
Actions
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-0.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-0.png
index a598b7af7..83e7e34bf 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-0.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-0.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-1.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-1.png
index 2d70394f6..450f29787 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-1.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-1.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-2.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-2.png
index ed437d837..a7ac9076b 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-2.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-2.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-3.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-3.png
index 1d28bce65..0fd7caa26 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-3.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-3.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-4.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-4.png
index f9a62ddf2..1e5bfb4ae 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-4.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-4.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-5.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-5.png
index 4931ffb98..364ee0367 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-5.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-5.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-6.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-6.png
index 02cf0157d..5bce1477e 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-6.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-6.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-7.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-7.png
index ed437d837..a7ac9076b 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-7.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-7.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-8.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-8.png
index e2675478a..cc825c258 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-8.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-8.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-9.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-9.png
index de21d75c1..1e0fda094 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-9.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Block2D-9.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-0.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-0.png
index 163d98539..d2856442e 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-0.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-0.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-1.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-1.png
index 821ce42f3..dd5ab3c71 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-1.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-1.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-2.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-2.png
index 687bdfbf6..fbda95f52 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-2.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-2.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-3.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-3.png
index 79269be2c..a485f8ff4 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-3.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-3.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-4.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-4.png
index af634c717..86c45c7bd 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-4.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-4.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-5.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-5.png
index 150ebed02..c331a49a7 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-5.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-5.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-6.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-6.png
index 79de5a154..07aa502ed 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-6.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-6.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-7.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-7.png
index 687bdfbf6..fbda95f52 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-7.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-7.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-8.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-8.png
index e4ff8bad3..2cc70fd07 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-8.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-8.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-9.png b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-9.png
index 854da06e3..348d4d4a6 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-9.png and b/docs/games/Random_butterflies/img/Random_butterflies-level-Vector-9.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-butterfly-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-butterfly-Vector.png
index c23edfdd3..a2f51f612 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-butterfly-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-butterfly-Vector.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-catcher-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-catcher-Vector.png
index c0ac27968..c23edfdd3 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-catcher-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-catcher-Vector.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-cocoon-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-cocoon-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-cocoon-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-cocoon-Vector.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-spider-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-spider-Vector.png
index 5423baded..c0ac27968 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-spider-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-spider-Vector.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Block2D.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Block2D.png
index 99a0dd88a..4ff6f5785 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Block2D.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Block2D.png differ
diff --git a/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Vector.png b/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Vector.png
index 758055b8f..7d7ba957a 100644
Binary files a/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Vector.png and b/docs/games/Random_butterflies/img/Random_butterflies-tile-wall-Vector.png differ
diff --git a/docs/games/Random_butterflies/index.rst b/docs/games/Random_butterflies/index.rst
index c81279df9..ee207d513 100644
--- a/docs/games/Random_butterflies/index.rst
+++ b/docs/games/Random_butterflies/index.rst
@@ -20,6 +20,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-0.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-0.png
index 687d77a6b..99b5f4839 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-0.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-0.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-1.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-1.png
index 18bdc2fc1..5e2617ef5 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-1.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-1.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-2.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-2.png
index 33f46b06e..2d8c88ebd 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-2.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-2.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-3.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-3.png
index 1e90418cf..99b066699 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-3.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Block2D-3.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-0.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-0.png
index f48f7ca79..901a89e32 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-0.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-0.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-1.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-1.png
index f16f72812..fb218e5e8 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-1.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-1.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-2.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-2.png
index 1aa85fd51..05c08aa16 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-2.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-2.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-3.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-3.png
index 82f376a2e..7529784a7 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-3.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-level-Vector-3.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Block2D.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Block2D.png
index aa52694a3..47c9cdd28 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Block2D.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Block2D.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Vector.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Vector.png
index e3112deb3..a5cdcff22 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Vector.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-fixed_wall-Vector.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-moveable_wall-Vector.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-moveable_wall-Vector.png
index fcb8b23fd..1460b3271 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-moveable_wall-Vector.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-moveable_wall-Vector.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Block2D.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Block2D.png
index bc5ae02a3..755575c32 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Block2D.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Block2D.png differ
diff --git a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Vector.png b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Vector.png
index 29635546f..6985a0878 100644
Binary files a/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Vector.png and b/docs/games/Robot_Tag_12v12/img/Robot_Tag_12v12-tile-tagger-Vector.png differ
diff --git a/docs/games/Robot_Tag_12v12/index.rst b/docs/games/Robot_Tag_12v12/index.rst
index e43db658c..3c8629a94 100644
--- a/docs/games/Robot_Tag_12v12/index.rst
+++ b/docs/games/Robot_Tag_12v12/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-0.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-0.png
index 4818e5b25..b07081a9c 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-0.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-0.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-1.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-1.png
index 546a7e047..3e6708e09 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-1.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-1.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-2.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-2.png
index ecdab7509..8f4d8ba76 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-2.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-2.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-3.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-3.png
index 5c6ad944b..a7228553f 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-3.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Block2D-3.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-0.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-0.png
index 54f90fd8a..102180827 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-0.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-0.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-1.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-1.png
index 1fc7ead47..af1cb40a5 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-1.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-1.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-2.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-2.png
index e6840279a..96930fef3 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-2.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-2.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-3.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-3.png
index fbbbabcb1..8908bbb92 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-3.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-level-Vector-3.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Block2D.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Block2D.png
index aa52694a3..47c9cdd28 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Block2D.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Block2D.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Vector.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Vector.png
index 449dbd771..a5cdcff22 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Vector.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-fixed_wall-Vector.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-moveable_wall-Vector.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-moveable_wall-Vector.png
index cddd4d04e..1460b3271 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-moveable_wall-Vector.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-moveable_wall-Vector.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Block2D.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Block2D.png
index bc5ae02a3..755575c32 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Block2D.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Block2D.png differ
diff --git a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Vector.png b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Vector.png
index 1ea637a7b..6985a0878 100644
Binary files a/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Vector.png and b/docs/games/Robot_Tag_4v4/img/Robot_Tag_4v4-tile-tagger-Vector.png differ
diff --git a/docs/games/Robot_Tag_4v4/index.rst b/docs/games/Robot_Tag_4v4/index.rst
index d1e27ffd0..1c9272309 100644
--- a/docs/games/Robot_Tag_4v4/index.rst
+++ b/docs/games/Robot_Tag_4v4/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-0.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-0.png
index 4bfaaa557..e12a98f0d 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-0.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-0.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-1.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-1.png
index 6940686c5..119d581d1 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-1.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-1.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-2.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-2.png
index 731801e42..77a96189f 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-2.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-2.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-3.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-3.png
index 717ec6ebb..8e32dbff8 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-3.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Block2D-3.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-0.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-0.png
index b3d9e1cb5..a31334671 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-0.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-0.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-1.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-1.png
index b45e6dc25..8d9b693d7 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-1.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-1.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-2.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-2.png
index 5de617ffd..483956ab0 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-2.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-2.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-3.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-3.png
index 0974dc4fe..459dd19aa 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-3.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-level-Vector-3.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Block2D.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Block2D.png
index aa52694a3..47c9cdd28 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Block2D.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Block2D.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Vector.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Vector.png
index dc863080f..a5cdcff22 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Vector.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-fixed_wall-Vector.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-moveable_wall-Vector.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-moveable_wall-Vector.png
index 0aa5dff5a..1460b3271 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-moveable_wall-Vector.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-moveable_wall-Vector.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Block2D.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Block2D.png
index d55d4b872..7532c63f4 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Block2D.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Block2D.png differ
diff --git a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Vector.png b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Vector.png
index 3220f5d4c..6985a0878 100644
Binary files a/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Vector.png and b/docs/games/Robot_Tag_8v8/img/Robot_Tag_8v8-tile-tagger-Vector.png differ
diff --git a/docs/games/Robot_Tag_8v8/index.rst b/docs/games/Robot_Tag_8v8/index.rst
index 1bd2ba026..f288f8d51 100644
--- a/docs/games/Robot_Tag_8v8/index.rst
+++ b/docs/games/Robot_Tag_8v8/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-0.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-0.png
index 7af682ee3..a7b51c2ab 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-0.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-0.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-1.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-1.png
index b84270919..f067ac6d0 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-1.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-1.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-2.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-2.png
index 22376e49c..a19dc4c4b 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-2.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-2.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-3.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-3.png
index 0f54cdd05..b473462d5 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-3.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-3.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-4.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-4.png
index c7eaddc38..036fa4b89 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-4.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-4.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Block2D-5.png b/docs/games/Sokoban/img/Sokoban-level-Block2D-5.png
index 0d57bd652..9286f4bf7 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Block2D-5.png and b/docs/games/Sokoban/img/Sokoban-level-Block2D-5.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-0.png b/docs/games/Sokoban/img/Sokoban-level-Vector-0.png
index f68d61f4c..fd1cffbce 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-0.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-0.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-1.png b/docs/games/Sokoban/img/Sokoban-level-Vector-1.png
index d0656aaa7..3862ef370 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-1.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-1.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-2.png b/docs/games/Sokoban/img/Sokoban-level-Vector-2.png
index 695447e43..5f01eb97e 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-2.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-2.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-3.png b/docs/games/Sokoban/img/Sokoban-level-Vector-3.png
index 7ae087741..860d3dca0 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-3.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-3.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-4.png b/docs/games/Sokoban/img/Sokoban-level-Vector-4.png
index a4ea29316..38c9bd182 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-4.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-4.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-level-Vector-5.png b/docs/games/Sokoban/img/Sokoban-level-Vector-5.png
index 25a8bacc6..8aa3a53c8 100644
Binary files a/docs/games/Sokoban/img/Sokoban-level-Vector-5.png and b/docs/games/Sokoban/img/Sokoban-level-Vector-5.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-tile-avatar-Vector.png b/docs/games/Sokoban/img/Sokoban-tile-avatar-Vector.png
index 3220f5d4c..f76f390fd 100644
Binary files a/docs/games/Sokoban/img/Sokoban-tile-avatar-Vector.png and b/docs/games/Sokoban/img/Sokoban-tile-avatar-Vector.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-tile-box-Vector.png b/docs/games/Sokoban/img/Sokoban-tile-box-Vector.png
index f76f390fd..3220f5d4c 100644
Binary files a/docs/games/Sokoban/img/Sokoban-tile-box-Vector.png and b/docs/games/Sokoban/img/Sokoban-tile-box-Vector.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-tile-hole-Vector.png b/docs/games/Sokoban/img/Sokoban-tile-hole-Vector.png
index dabd04345..3220f5d4c 100644
Binary files a/docs/games/Sokoban/img/Sokoban-tile-hole-Vector.png and b/docs/games/Sokoban/img/Sokoban-tile-hole-Vector.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-tile-wall-Block2D.png b/docs/games/Sokoban/img/Sokoban-tile-wall-Block2D.png
index 7857e4834..c22b087ef 100644
Binary files a/docs/games/Sokoban/img/Sokoban-tile-wall-Block2D.png and b/docs/games/Sokoban/img/Sokoban-tile-wall-Block2D.png differ
diff --git a/docs/games/Sokoban/img/Sokoban-tile-wall-Vector.png b/docs/games/Sokoban/img/Sokoban-tile-wall-Vector.png
index a3bc67813..f76f390fd 100644
Binary files a/docs/games/Sokoban/img/Sokoban-tile-wall-Vector.png and b/docs/games/Sokoban/img/Sokoban-tile-wall-Vector.png differ
diff --git a/docs/games/Sokoban/index.rst b/docs/games/Sokoban/index.rst
index b8bc8bf78..e634888f0 100644
--- a/docs/games/Sokoban/index.rst
+++ b/docs/games/Sokoban/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-0.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-0.png
index f1920a6d3..019d20387 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-0.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-0.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-1.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-1.png
index 388cd092a..f013ba23c 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-1.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-1.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-2.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-2.png
index 82c4a75ec..9d84d3c39 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-2.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-2.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-3.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-3.png
index eed9eeff1..0a68bff6f 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-3.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-3.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-4.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-4.png
index f614306f5..3db821a1a 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-4.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Block2D-4.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-0.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-0.png
index a1f41222b..0531d598e 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-0.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-0.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-1.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-1.png
index b33f80707..80eeaf3e0 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-1.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-1.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-2.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-2.png
index 4b4225dba..fac62472c 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-2.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-2.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-3.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-3.png
index 44a85eb72..54653ce1d 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-3.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-3.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-4.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-4.png
index d1f74b9fc..256f8d1b0 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-4.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-level-Vector-4.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-avatar-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-avatar-Vector.png
index c23edfdd3..a2f51f612 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-avatar-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-avatar-Vector.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box-Vector.png
index c0ac27968..c23edfdd3 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box-Vector.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box_in_place-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box_in_place-Vector.png
index 50a43e1f7..1460b3271 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box_in_place-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-box_in_place-Vector.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Block2D.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Block2D.png
index f28dea013..acb0afe66 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Block2D.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Block2D.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Vector.png
index 5423baded..c0ac27968 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-hole-Vector.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Block2D.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Block2D.png
index 7857e4834..c22b087ef 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Block2D.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Block2D.png differ
diff --git a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Vector.png b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Vector.png
index 758055b8f..7d7ba957a 100644
Binary files a/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Vector.png and b/docs/games/Sokoban_-_2/img/Sokoban_-_2-tile-wall-Vector.png differ
diff --git a/docs/games/Sokoban_-_2/index.rst b/docs/games/Sokoban_-_2/index.rst
index 71db5e3cb..0b70df9f0 100644
--- a/docs/games/Sokoban_-_2/index.rst
+++ b/docs/games/Sokoban_-_2/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-level-Block2D-0.png b/docs/games/Spider_Nest/img/Spider_Nest-level-Block2D-0.png
index 00d0551cf..e2310a92d 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-level-Block2D-0.png and b/docs/games/Spider_Nest/img/Spider_Nest-level-Block2D-0.png differ
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-level-Vector-0.png b/docs/games/Spider_Nest/img/Spider_Nest-level-Vector-0.png
index 31641e434..7f15a06fb 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-level-Vector-0.png and b/docs/games/Spider_Nest/img/Spider_Nest-level-Vector-0.png differ
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-gem-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-gem-Vector.png
index d8a72ac84..95e86ee99 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-gem-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-gem-Vector.png differ
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-gnome-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-gnome-Vector.png
index 3b74da918..d8a72ac84 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-gnome-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-gnome-Vector.png differ
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-lava-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-lava-Vector.png
index 95e86ee99..3b74da918 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-lava-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-lava-Vector.png differ
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-nest-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-nest-Vector.png
index 09f573db4..3b74da918 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-nest-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-nest-Vector.png differ
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-spider-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-spider-Vector.png
index 37ac5d892..d8a72ac84 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-spider-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-spider-Vector.png differ
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Block2D.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Block2D.png
index 672268aa4..b98b77ffc 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Block2D.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Block2D.png differ
diff --git a/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Vector.png b/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Vector.png
index 0ae910660..95e86ee99 100644
Binary files a/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Vector.png and b/docs/games/Spider_Nest/img/Spider_Nest-tile-wall-Vector.png differ
diff --git a/docs/games/Spider_Nest/index.rst b/docs/games/Spider_Nest/index.rst
index 4cc1aa89b..c7e9e1337 100644
--- a/docs/games/Spider_Nest/index.rst
+++ b/docs/games/Spider_Nest/index.rst
@@ -16,13 +16,14 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
- Vector
+ - Isometric
- Sprite2D
- Block2D
- - Isometric
* - .. list-table::
* - Level ID
@@ -30,9 +31,9 @@ Levels
* - Size
- 36x33
- .. thumbnail:: img/Spider_Nest-level-Vector-0.png
+ - .. thumbnail:: img/Spider_Nest-level-Isometric-0.png
- .. thumbnail:: img/Spider_Nest-level-Sprite2D-0.png
- .. thumbnail:: img/Spider_Nest-level-Block2D-0.png
- - .. thumbnail:: img/Spider_Nest-level-Isometric-0.png
Code Example
------------
@@ -88,6 +89,13 @@ Objects
- .. image:: img/Spider_Nest-tile-gnome-Vector.png
- .. image:: img/Spider_Nest-tile-nest-Vector.png
- .. image:: img/Spider_Nest-tile-lava-Vector.png
+ * - Isometric
+ - .. image:: img/Spider_Nest-tile-wall-Isometric.png
+ - .. image:: img/Spider_Nest-tile-spider-Isometric.png
+ - .. image:: img/Spider_Nest-tile-gem-Isometric.png
+ - .. image:: img/Spider_Nest-tile-gnome-Isometric.png
+ - .. image:: img/Spider_Nest-tile-nest-Isometric.png
+ - .. image:: img/Spider_Nest-tile-lava-Isometric.png
* - Sprite2D
- .. image:: img/Spider_Nest-tile-wall-Sprite2D.png
- .. image:: img/Spider_Nest-tile-spider-Sprite2D.png
@@ -102,13 +110,6 @@ Objects
- .. image:: img/Spider_Nest-tile-gnome-Block2D.png
- .. image:: img/Spider_Nest-tile-nest-Block2D.png
- .. image:: img/Spider_Nest-tile-lava-Block2D.png
- * - Isometric
- - .. image:: img/Spider_Nest-tile-wall-Isometric.png
- - .. image:: img/Spider_Nest-tile-spider-Isometric.png
- - .. image:: img/Spider_Nest-tile-gem-Isometric.png
- - .. image:: img/Spider_Nest-tile-gnome-Isometric.png
- - .. image:: img/Spider_Nest-tile-nest-Isometric.png
- - .. image:: img/Spider_Nest-tile-lava-Isometric.png
Actions
diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-0.png b/docs/games/Spiders/img/Spiders-level-Block2D-0.png
index 8f0b53cbe..d9a20199e 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-0.png and b/docs/games/Spiders/img/Spiders-level-Block2D-0.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-1.png b/docs/games/Spiders/img/Spiders-level-Block2D-1.png
index d5f7a69ca..830038514 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-1.png and b/docs/games/Spiders/img/Spiders-level-Block2D-1.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-2.png b/docs/games/Spiders/img/Spiders-level-Block2D-2.png
index ce840fa6c..77a6ca6de 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-2.png and b/docs/games/Spiders/img/Spiders-level-Block2D-2.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-3.png b/docs/games/Spiders/img/Spiders-level-Block2D-3.png
index fc8b68e78..551778572 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-3.png and b/docs/games/Spiders/img/Spiders-level-Block2D-3.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Block2D-4.png b/docs/games/Spiders/img/Spiders-level-Block2D-4.png
index 5c66b32f9..12cd02326 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Block2D-4.png and b/docs/games/Spiders/img/Spiders-level-Block2D-4.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Vector-0.png b/docs/games/Spiders/img/Spiders-level-Vector-0.png
index c5b4a2228..4d251183f 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Vector-0.png and b/docs/games/Spiders/img/Spiders-level-Vector-0.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Vector-1.png b/docs/games/Spiders/img/Spiders-level-Vector-1.png
index d0fbb18e4..76ebf9f3d 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Vector-1.png and b/docs/games/Spiders/img/Spiders-level-Vector-1.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Vector-2.png b/docs/games/Spiders/img/Spiders-level-Vector-2.png
index 45b6de417..31aa9e2fd 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Vector-2.png and b/docs/games/Spiders/img/Spiders-level-Vector-2.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Vector-3.png b/docs/games/Spiders/img/Spiders-level-Vector-3.png
index 678d32abe..e4fd847b1 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Vector-3.png and b/docs/games/Spiders/img/Spiders-level-Vector-3.png differ
diff --git a/docs/games/Spiders/img/Spiders-level-Vector-4.png b/docs/games/Spiders/img/Spiders-level-Vector-4.png
index 1958a5ffb..a98f2bf65 100644
Binary files a/docs/games/Spiders/img/Spiders-level-Vector-4.png and b/docs/games/Spiders/img/Spiders-level-Vector-4.png differ
diff --git a/docs/games/Spiders/img/Spiders-tile-gem-Vector.png b/docs/games/Spiders/img/Spiders-tile-gem-Vector.png
index 3220f5d4c..f76f390fd 100644
Binary files a/docs/games/Spiders/img/Spiders-tile-gem-Vector.png and b/docs/games/Spiders/img/Spiders-tile-gem-Vector.png differ
diff --git a/docs/games/Spiders/img/Spiders-tile-gnome-Vector.png b/docs/games/Spiders/img/Spiders-tile-gnome-Vector.png
index f76f390fd..3220f5d4c 100644
Binary files a/docs/games/Spiders/img/Spiders-tile-gnome-Vector.png and b/docs/games/Spiders/img/Spiders-tile-gnome-Vector.png differ
diff --git a/docs/games/Spiders/img/Spiders-tile-spider-Vector.png b/docs/games/Spiders/img/Spiders-tile-spider-Vector.png
index dabd04345..3220f5d4c 100644
Binary files a/docs/games/Spiders/img/Spiders-tile-spider-Vector.png and b/docs/games/Spiders/img/Spiders-tile-spider-Vector.png differ
diff --git a/docs/games/Spiders/img/Spiders-tile-wall-Block2D.png b/docs/games/Spiders/img/Spiders-tile-wall-Block2D.png
index 672268aa4..b98b77ffc 100644
Binary files a/docs/games/Spiders/img/Spiders-tile-wall-Block2D.png and b/docs/games/Spiders/img/Spiders-tile-wall-Block2D.png differ
diff --git a/docs/games/Spiders/img/Spiders-tile-wall-Vector.png b/docs/games/Spiders/img/Spiders-tile-wall-Vector.png
index a3bc67813..f76f390fd 100644
Binary files a/docs/games/Spiders/img/Spiders-tile-wall-Vector.png and b/docs/games/Spiders/img/Spiders-tile-wall-Vector.png differ
diff --git a/docs/games/Spiders/index.rst b/docs/games/Spiders/index.rst
index 744741eb6..fe89ce022 100644
--- a/docs/games/Spiders/index.rst
+++ b/docs/games/Spiders/index.rst
@@ -16,13 +16,14 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
- Vector
+ - Isometric
- Sprite2D
- Block2D
- - Isometric
* - .. list-table::
* - Level ID
@@ -30,9 +31,9 @@ Levels
* - Size
- 6x6
- .. thumbnail:: img/Spiders-level-Vector-0.png
+ - .. thumbnail:: img/Spiders-level-Isometric-0.png
- .. thumbnail:: img/Spiders-level-Sprite2D-0.png
- .. thumbnail:: img/Spiders-level-Block2D-0.png
- - .. thumbnail:: img/Spiders-level-Isometric-0.png
* - .. list-table::
* - Level ID
@@ -40,9 +41,9 @@ Levels
* - Size
- 7x7
- .. thumbnail:: img/Spiders-level-Vector-1.png
+ - .. thumbnail:: img/Spiders-level-Isometric-1.png
- .. thumbnail:: img/Spiders-level-Sprite2D-1.png
- .. thumbnail:: img/Spiders-level-Block2D-1.png
- - .. thumbnail:: img/Spiders-level-Isometric-1.png
* - .. list-table::
* - Level ID
@@ -50,9 +51,9 @@ Levels
* - Size
- 8x8
- .. thumbnail:: img/Spiders-level-Vector-2.png
+ - .. thumbnail:: img/Spiders-level-Isometric-2.png
- .. thumbnail:: img/Spiders-level-Sprite2D-2.png
- .. thumbnail:: img/Spiders-level-Block2D-2.png
- - .. thumbnail:: img/Spiders-level-Isometric-2.png
* - .. list-table::
* - Level ID
@@ -60,9 +61,9 @@ Levels
* - Size
- 10x10
- .. thumbnail:: img/Spiders-level-Vector-3.png
+ - .. thumbnail:: img/Spiders-level-Isometric-3.png
- .. thumbnail:: img/Spiders-level-Sprite2D-3.png
- .. thumbnail:: img/Spiders-level-Block2D-3.png
- - .. thumbnail:: img/Spiders-level-Isometric-3.png
* - .. list-table::
* - Level ID
@@ -70,9 +71,9 @@ Levels
* - Size
- 19x18
- .. thumbnail:: img/Spiders-level-Vector-4.png
+ - .. thumbnail:: img/Spiders-level-Isometric-4.png
- .. thumbnail:: img/Spiders-level-Sprite2D-4.png
- .. thumbnail:: img/Spiders-level-Block2D-4.png
- - .. thumbnail:: img/Spiders-level-Isometric-4.png
Code Example
------------
@@ -122,6 +123,11 @@ Objects
- .. image:: img/Spiders-tile-spider-Vector.png
- .. image:: img/Spiders-tile-gem-Vector.png
- .. image:: img/Spiders-tile-gnome-Vector.png
+ * - Isometric
+ - .. image:: img/Spiders-tile-wall-Isometric.png
+ - .. image:: img/Spiders-tile-spider-Isometric.png
+ - .. image:: img/Spiders-tile-gem-Isometric.png
+ - .. image:: img/Spiders-tile-gnome-Isometric.png
* - Sprite2D
- .. image:: img/Spiders-tile-wall-Sprite2D.png
- .. image:: img/Spiders-tile-spider-Sprite2D.png
@@ -132,11 +138,6 @@ Objects
- .. image:: img/Spiders-tile-spider-Block2D.png
- .. image:: img/Spiders-tile-gem-Block2D.png
- .. image:: img/Spiders-tile-gnome-Block2D.png
- * - Isometric
- - .. image:: img/Spiders-tile-wall-Isometric.png
- - .. image:: img/Spiders-tile-spider-Isometric.png
- - .. image:: img/Spiders-tile-gem-Isometric.png
- - .. image:: img/Spiders-tile-gnome-Isometric.png
Actions
diff --git a/docs/games/Zelda/img/Zelda-level-Block2D-0.png b/docs/games/Zelda/img/Zelda-level-Block2D-0.png
index 28cf74c32..b9bf1c074 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Block2D-0.png and b/docs/games/Zelda/img/Zelda-level-Block2D-0.png differ
diff --git a/docs/games/Zelda/img/Zelda-level-Block2D-1.png b/docs/games/Zelda/img/Zelda-level-Block2D-1.png
index a0ae9c439..c61d78843 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Block2D-1.png and b/docs/games/Zelda/img/Zelda-level-Block2D-1.png differ
diff --git a/docs/games/Zelda/img/Zelda-level-Block2D-2.png b/docs/games/Zelda/img/Zelda-level-Block2D-2.png
index e4f783913..452e2dc5f 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Block2D-2.png and b/docs/games/Zelda/img/Zelda-level-Block2D-2.png differ
diff --git a/docs/games/Zelda/img/Zelda-level-Sprite2D-0.png b/docs/games/Zelda/img/Zelda-level-Sprite2D-0.png
index 01f93dcbc..335547d1c 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Sprite2D-0.png and b/docs/games/Zelda/img/Zelda-level-Sprite2D-0.png differ
diff --git a/docs/games/Zelda/img/Zelda-level-Sprite2D-1.png b/docs/games/Zelda/img/Zelda-level-Sprite2D-1.png
index 291c16462..ea6ee5738 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Sprite2D-1.png and b/docs/games/Zelda/img/Zelda-level-Sprite2D-1.png differ
diff --git a/docs/games/Zelda/img/Zelda-level-Sprite2D-2.png b/docs/games/Zelda/img/Zelda-level-Sprite2D-2.png
index d20cd254a..94fb66b95 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Sprite2D-2.png and b/docs/games/Zelda/img/Zelda-level-Sprite2D-2.png differ
diff --git a/docs/games/Zelda/img/Zelda-level-Vector-0.png b/docs/games/Zelda/img/Zelda-level-Vector-0.png
index bf776148e..26ac6edec 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Vector-0.png and b/docs/games/Zelda/img/Zelda-level-Vector-0.png differ
diff --git a/docs/games/Zelda/img/Zelda-level-Vector-1.png b/docs/games/Zelda/img/Zelda-level-Vector-1.png
index 4b2d31da4..299f5387c 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Vector-1.png and b/docs/games/Zelda/img/Zelda-level-Vector-1.png differ
diff --git a/docs/games/Zelda/img/Zelda-level-Vector-2.png b/docs/games/Zelda/img/Zelda-level-Vector-2.png
index ca953ba04..4b60d7e22 100644
Binary files a/docs/games/Zelda/img/Zelda-level-Vector-2.png and b/docs/games/Zelda/img/Zelda-level-Vector-2.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-attack_fire-Vector.png b/docs/games/Zelda/img/Zelda-tile-attack_fire-Vector.png
index d8a72ac84..95e86ee99 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-attack_fire-Vector.png and b/docs/games/Zelda/img/Zelda-tile-attack_fire-Vector.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-avatar-Block2D.png b/docs/games/Zelda/img/Zelda-tile-avatar-Block2D.png
index 53aef6fc7..f10c9a4f3 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-avatar-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-avatar-Block2D.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-avatar-Vector.png b/docs/games/Zelda/img/Zelda-tile-avatar-Vector.png
index 3b74da918..d8a72ac84 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-avatar-Vector.png and b/docs/games/Zelda/img/Zelda-tile-avatar-Vector.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-goal-Block2D.png b/docs/games/Zelda/img/Zelda-tile-goal-Block2D.png
index 89b715e3a..070c76dae 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-goal-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-goal-Block2D.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-goal-Vector.png b/docs/games/Zelda/img/Zelda-tile-goal-Vector.png
index 95e86ee99..3b74da918 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-goal-Vector.png and b/docs/games/Zelda/img/Zelda-tile-goal-Vector.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-key-Block2D.png b/docs/games/Zelda/img/Zelda-tile-key-Block2D.png
index 75b9fb4e2..29fdd4dae 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-key-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-key-Block2D.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-key-Sprite2D.png b/docs/games/Zelda/img/Zelda-tile-key-Sprite2D.png
index e976c2768..cb457e470 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-key-Sprite2D.png and b/docs/games/Zelda/img/Zelda-tile-key-Sprite2D.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-key-Vector.png b/docs/games/Zelda/img/Zelda-tile-key-Vector.png
index 09f573db4..3b74da918 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-key-Vector.png and b/docs/games/Zelda/img/Zelda-tile-key-Vector.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-spider-Block2D.png b/docs/games/Zelda/img/Zelda-tile-spider-Block2D.png
index b19a62955..4e0852ee5 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-spider-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-spider-Block2D.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-spider-Vector.png b/docs/games/Zelda/img/Zelda-tile-spider-Vector.png
index 37ac5d892..d8a72ac84 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-spider-Vector.png and b/docs/games/Zelda/img/Zelda-tile-spider-Vector.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-wall-Block2D.png b/docs/games/Zelda/img/Zelda-tile-wall-Block2D.png
index 672268aa4..b98b77ffc 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-wall-Block2D.png and b/docs/games/Zelda/img/Zelda-tile-wall-Block2D.png differ
diff --git a/docs/games/Zelda/img/Zelda-tile-wall-Vector.png b/docs/games/Zelda/img/Zelda-tile-wall-Vector.png
index 0ae910660..95e86ee99 100644
Binary files a/docs/games/Zelda/img/Zelda-tile-wall-Vector.png and b/docs/games/Zelda/img/Zelda-tile-wall-Vector.png differ
diff --git a/docs/games/Zelda/index.rst b/docs/games/Zelda/index.rst
index a66346330..370157c2f 100644
--- a/docs/games/Zelda/index.rst
+++ b/docs/games/Zelda/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-0.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-0.png
index 28cf74c32..b9bf1c074 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-0.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-0.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-1.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-1.png
index a0ae9c439..c61d78843 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-1.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-1.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-2.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-2.png
index 9b5d56fa8..cd6181ee8 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-2.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Block2D-2.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-0.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-0.png
index 01f93dcbc..335547d1c 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-0.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-0.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-1.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-1.png
index 291c16462..ea6ee5738 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-1.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-1.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-2.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-2.png
index 3389a9f3e..a6c5544d1 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-2.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Sprite2D-2.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-0.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-0.png
index bf776148e..26ac6edec 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-0.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-0.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-1.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-1.png
index 4b2d31da4..299f5387c 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-1.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-1.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-2.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-2.png
index 4e2cfa314..d07933b5f 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-2.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-level-Vector-2.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-attack_fire-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-attack_fire-Vector.png
index d8a72ac84..95e86ee99 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-attack_fire-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-attack_fire-Vector.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Block2D.png
index 53aef6fc7..f10c9a4f3 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Block2D.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Vector.png
index 3b74da918..d8a72ac84 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-avatar-Vector.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Block2D.png
index 89b715e3a..070c76dae 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Block2D.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Vector.png
index 95e86ee99..3b74da918 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-goal-Vector.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Block2D.png
index 75b9fb4e2..29fdd4dae 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Block2D.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Sprite2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Sprite2D.png
index e976c2768..cb457e470 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Sprite2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Sprite2D.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Vector.png
index 09f573db4..3b74da918 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-key-Vector.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Block2D.png
index b19a62955..4e0852ee5 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Block2D.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Vector.png
index 37ac5d892..d8a72ac84 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-spider-Vector.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Block2D.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Block2D.png
index 672268aa4..b98b77ffc 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Block2D.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Block2D.png differ
diff --git a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Vector.png b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Vector.png
index 0ae910660..95e86ee99 100644
Binary files a/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Vector.png and b/docs/games/Zelda_Sequential/img/Zelda_Sequential-tile-wall-Vector.png differ
diff --git a/docs/games/Zelda_Sequential/index.rst b/docs/games/Zelda_Sequential/index.rst
index 7b657224f..d99726bb2 100644
--- a/docs/games/Zelda_Sequential/index.rst
+++ b/docs/games/Zelda_Sequential/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-0.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-0.png
index a341956e0..ae885fd46 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-0.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-0.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-1.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-1.png
index 6f85411af..5a7e01c5b 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-1.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-1.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-2.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-2.png
index fa81b8f26..c9ccbffea 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-2.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-2.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-3.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-3.png
index 197934e4f..e9df241fd 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-3.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-3.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-4.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-4.png
index 6e75c09fb..393c8afa0 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-4.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Block2D-4.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-0.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-0.png
index f7c62b08c..aaf26adfc 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-0.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-0.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-1.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-1.png
index e5e5be48b..aaf26adfc 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-1.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-1.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-2.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-2.png
index 6513bccde..aaf26adfc 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-2.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-2.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-3.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-3.png
index c0023cbc6..6ee534694 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-3.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-3.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-4.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-4.png
index 9f4354789..aaf26adfc 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-4.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-level-Vector-4.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-avatar-Vector.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-avatar-Vector.png
index 3220f5d4c..f76f390fd 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-avatar-Vector.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-avatar-Vector.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Block2D.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Block2D.png
index 286da7396..fae52bb5a 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Block2D.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Block2D.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Vector.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Vector.png
index f76f390fd..3220f5d4c 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Vector.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-ground-Vector.png differ
diff --git a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-rock-Vector.png b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-rock-Vector.png
index dabd04345..3220f5d4c 100644
Binary files a/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-rock-Vector.png and b/docs/games/Zen_Puzzle/img/Zen_Puzzle-tile-rock-Vector.png differ
diff --git a/docs/games/Zen_Puzzle/index.rst b/docs/games/Zen_Puzzle/index.rst
index a851f357f..058ec0360 100644
--- a/docs/games/Zen_Puzzle/index.rst
+++ b/docs/games/Zen_Puzzle/index.rst
@@ -16,6 +16,7 @@ Levels
---------
.. list-table:: Levels
+ :class: level-gallery
:header-rows: 1
* -
diff --git a/docs/games/img/Cook_Me_Pasta-taster.png b/docs/games/img/Cook_Me_Pasta-taster.png
index b97ca4ff6..16500dd79 100644
Binary files a/docs/games/img/Cook_Me_Pasta-taster.png and b/docs/games/img/Cook_Me_Pasta-taster.png differ
diff --git a/docs/games/img/Foragers-taster.png b/docs/games/img/Foragers-taster.png
index 730209ea3..3e700aff3 100644
Binary files a/docs/games/img/Foragers-taster.png and b/docs/games/img/Foragers-taster.png differ
diff --git a/docs/games/img/Grafter_Escape_Rooms-taster.png b/docs/games/img/Grafter_Escape_Rooms-taster.png
new file mode 100644
index 000000000..fbf93573a
Binary files /dev/null and b/docs/games/img/Grafter_Escape_Rooms-taster.png differ
diff --git a/docs/games/img/GriddlyRTS-taster.png b/docs/games/img/GriddlyRTS-taster.png
index bda33ba00..906779827 100644
Binary files a/docs/games/img/GriddlyRTS-taster.png and b/docs/games/img/GriddlyRTS-taster.png differ
diff --git a/docs/games/img/Heal_Or_Die-taster.png b/docs/games/img/Heal_Or_Die-taster.png
index ba2eb78fa..5785c55fb 100644
Binary files a/docs/games/img/Heal_Or_Die-taster.png and b/docs/games/img/Heal_Or_Die-taster.png differ
diff --git a/docs/games/img/Kill_The_King-taster.png b/docs/games/img/Kill_The_King-taster.png
index 720b431ba..654378d2d 100644
Binary files a/docs/games/img/Kill_The_King-taster.png and b/docs/games/img/Kill_The_King-taster.png differ
diff --git a/docs/games/img/Partially_Observable_Cook_Me_Pasta-taster.png b/docs/games/img/Partially_Observable_Cook_Me_Pasta-taster.png
index b97ca4ff6..16500dd79 100644
Binary files a/docs/games/img/Partially_Observable_Cook_Me_Pasta-taster.png and b/docs/games/img/Partially_Observable_Cook_Me_Pasta-taster.png differ
diff --git a/docs/games/img/Partially_Observable_Zelda-taster.png b/docs/games/img/Partially_Observable_Zelda-taster.png
index d20cd254a..94fb66b95 100644
Binary files a/docs/games/img/Partially_Observable_Zelda-taster.png and b/docs/games/img/Partially_Observable_Zelda-taster.png differ
diff --git a/docs/games/img/Push_Mania-taster.png b/docs/games/img/Push_Mania-taster.png
index 44d364f3e..6b1d74837 100644
Binary files a/docs/games/img/Push_Mania-taster.png and b/docs/games/img/Push_Mania-taster.png differ
diff --git a/docs/games/img/Zelda-taster.png b/docs/games/img/Zelda-taster.png
index d20cd254a..94fb66b95 100644
Binary files a/docs/games/img/Zelda-taster.png and b/docs/games/img/Zelda-taster.png differ
diff --git a/docs/games/img/Zelda_Sequential-taster.png b/docs/games/img/Zelda_Sequential-taster.png
index 3389a9f3e..a6c5544d1 100644
Binary files a/docs/games/img/Zelda_Sequential-taster.png and b/docs/games/img/Zelda_Sequential-taster.png differ
diff --git a/docs/games/index.rst b/docs/games/index.rst
index 833c11fa1..9ec80b6f9 100644
--- a/docs/games/index.rst
+++ b/docs/games/index.rst
@@ -1,59 +1,5 @@
.. _doc_games:
-***
-RTS
-***
-
-.. toctree::
- :hidden:
-
- GriddlyRTS/index
- Push_Mania/index
- Heal_Or_Die/index
- Kill_The_King/index
-
-.. list-table::
- :class: game-gallery
-
- * - **GriddlyRTS**
-
- .. image:: img/GriddlyRTS-taster.png
- :target: GriddlyRTS/index.html
- :width: 200
-
- An RTS Game. There's aliens and stuff.
- - **Push Mania**
-
- .. image:: img/Push_Mania-taster.png
- :target: Push_Mania/index.html
- :width: 200
-
- Game environment ported from https://github.com/GAIGResearch/Stratega.
- You must push all your opponents pieces into the holes.
-
- - **Heal Or Die**
-
- .. image:: img/Heal_Or_Die-taster.png
- :target: Heal_Or_Die/index.html
- :width: 200
-
- Game environment ported from https://github.com/GAIGResearch/Stratega.
- You have units that heal and units that perform close combat.
- Additionally, on every turn, the health of your units decreases. Win the game by killing your opponents pieces first.
-
- * - **Kill The King**
-
- .. image:: img/Kill_The_King-taster.png
- :target: Kill_The_King/index.html
- :width: 200
-
- Game environment ported from https://github.com/GAIGResearch/Stratega.
- Both you and your opponent must protect the king from being killed.
-
- -
- -
-
-
*************
Single-Player
*************
@@ -61,118 +7,143 @@ Single-Player
.. toctree::
:hidden:
- Drunk_Dwarf/index
Spiders/index
- Doggo/index
Eyeball/index
- Zen_Puzzle/index
- Partially_Observable_Zelda/index
- Bait/index
- Labyrinth/index
- Partially_Observable_Cook_Me_Pasta/index
- Partially_Observable_Bait/index
+ Drunk_Dwarf/index
+ Doggo/index
+ Butterflies_and_Spiders/index
Partially_Observable_Sokoban_-_2/index
- Sokoban/index
- Random_butterflies/index
- Bait_With_Keys/index
- Clusters/index
+ Labyrinth/index
+ Bait/index
Partially_Observable_Zen_Puzzle/index
- Sokoban_-_2/index
- Zelda/index
- Partially_Observable_Clusters/index
+ Partially_Observable_Cook_Me_Pasta/index
Spider_Nest/index
Partially_Observable_Labyrinth/index
+ Sokoban_-_2/index
+ Partially_Observable_Clusters/index
+ Bait_With_Keys/index
+ Random_butterflies/index
Cook_Me_Pasta/index
- Butterflies_and_Spiders/index
+ Partially_Observable_Bait/index
Zelda_Sequential/index
+ Partially_Observable_Zelda/index
+ Sokoban/index
+ Zelda/index
+ Clusters/index
+ Zen_Puzzle/index
+ Grafter_Escape_Rooms/index
.. list-table::
:class: game-gallery
- * - **Drunk Dwarf**
-
- .. image:: img/Drunk_Dwarf-taster.png
- :target: Drunk_Dwarf/index.html
- :width: 200
-
- A port of the games provided in the https://github.com/maximecb/gym-minigrid environment, but you're a drunk dwarf trying find your keys that you've dropped to get to your bed (which is a coffin?? Wierd.).
- - **Spiders**
+ * - **Spiders**
.. image:: img/Spiders-taster.png
:target: Spiders/index.html
:width: 200
A port of the games provided in the https://github.com/maximecb/gym-minigrid Dynamic obstacles environment, but you're a gnome avoiding ghosts to get to a gem.
- - **Doggo**
+ - **Eyeball**
+
+ .. image:: img/Eyeball-taster.png
+ :target: Eyeball/index.html
+ :width: 200
+
+ A port of the games provided in the https://github.com/maximecb/gym-minigrid 4 Rooms environment, but you're a giant eye looking for it's eyedrops because everything is yellow and it hurts to look at.
+ - **Drunk Dwarf**
+
+ .. image:: img/Drunk_Dwarf-taster.png
+ :target: Drunk_Dwarf/index.html
+ :width: 200
+
+ A port of the games provided in the https://github.com/maximecb/gym-minigrid environment, but you're a drunk dwarf trying find your keys that you've dropped to get to your bed (which is a coffin?? Wierd.).
+ * - **Doggo**
.. image:: img/Doggo-taster.png
:target: Doggo/index.html
:width: 200
A port of the games provided in the https://github.com/maximecb/gym-minigrid Empty environment, but you're a doggo fetching a stick.
- * - **Eyeball**
+ - **Butterflies and Spiders**
- .. image:: img/Eyeball-taster.png
- :target: Eyeball/index.html
+ .. image:: img/Butterflies_and_Spiders-taster.png
+ :target: Butterflies_and_Spiders/index.html
:width: 200
- A port of the games provided in the https://github.com/maximecb/gym-minigrid 4 Rooms environment, but you're a giant eye looking for it's eyedrops because everything is yellow and it hurts to look at.
- - **Zen Puzzle**
+ You want to catch all of the butterflies while also avoiding the spiders. Butterflies spawn slowly from cocoons.
+ The butterflies are also eaten by the spiders so you need to be fast to collect them.
+ You win the level as soon as there are no butterflies on the screen.
- .. image:: img/Zen_Puzzle-taster.png
- :target: Zen_Puzzle/index.html
+ - **Partially Observable Sokoban - 2**
+
+ .. image:: img/Partially_Observable_Sokoban_-_2-taster.png
+ :target: Partially_Observable_Sokoban_-_2/index.html
:width: 200
- Set all the tiles in the level to the same color, but you cannot move over a tile more than once! (Not even sure why this is zen its super frustrating)
- - **Partially Observable Zelda**
+ Push the boxes onto the marked spaces, once a box has moved onto a space, it cannot be moved
+ * - **Labyrinth**
- .. image:: img/Partially_Observable_Zelda-taster.png
- :target: Partially_Observable_Zelda/index.html
+ .. image:: img/Labyrinth-taster.png
+ :target: Labyrinth/index.html
:width: 200
- A port of the GVGAI game "Zelda", but partially observable. Pick up keys to reach doors and avoid enemies.
- * - **Bait**
+ Its a maze, find your way out. Watch out for spikey things.
+ - **Bait**
.. image:: img/Bait-taster.png
:target: Bait/index.html
:width: 200
Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key.
- - **Labyrinth**
+ - **Partially Observable Zen Puzzle**
- .. image:: img/Labyrinth-taster.png
- :target: Labyrinth/index.html
+ .. image:: img/Partially_Observable_Zen_Puzzle-taster.png
+ :target: Partially_Observable_Zen_Puzzle/index.html
:width: 200
- Its a maze, find your way out. Watch out for spikey things.
- - **Partially Observable Cook Me Pasta**
+ Set all the tiles in the level to the same color, but you cannot move over a tile more than once! (Not even sure why this is zen its super frustrating)
+ * - **Partially Observable Cook Me Pasta**
.. image:: img/Partially_Observable_Cook_Me_Pasta-taster.png
:target: Partially_Observable_Cook_Me_Pasta/index.html
:width: 200
Help the chef create the meal, but make sure the ingredients are put together in the right order.
- * - **Partially Observable Bait**
+ - **Spider Nest**
- .. image:: img/Partially_Observable_Bait-taster.png
- :target: Partially_Observable_Bait/index.html
+ .. image:: img/Spider_Nest-taster.png
+ :target: Spider_Nest/index.html
:width: 200
- Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key.
- - **Partially Observable Sokoban - 2**
+ A port of the games provided in the https://github.com/maximecb/gym-minigrid Dynamic obstacles environment, but you're a gnome avoiding ghosts to get to a gem.
+ - **Partially Observable Labyrinth**
- .. image:: img/Partially_Observable_Sokoban_-_2-taster.png
- :target: Partially_Observable_Sokoban_-_2/index.html
+ .. image:: img/Partially_Observable_Labyrinth-taster.png
+ :target: Partially_Observable_Labyrinth/index.html
+ :width: 200
+
+ Its a maze, find your way out. Watch out for spikey things. In this version the observation space for the player is partial.
+ * - **Sokoban - 2**
+
+ .. image:: img/Sokoban_-_2-taster.png
+ :target: Sokoban_-_2/index.html
:width: 200
Push the boxes onto the marked spaces, once a box has moved onto a space, it cannot be moved
- - **Sokoban**
+ - **Partially Observable Clusters**
- .. image:: img/Sokoban-taster.png
- :target: Sokoban/index.html
+ .. image:: img/Partially_Observable_Clusters-taster.png
+ :target: Partially_Observable_Clusters/index.html
:width: 200
- Push the boxes into holes.
+ Cluster the coloured objects together by pushing them against the static coloured blocks.
+ - **Bait With Keys**
+
+ .. image:: img/Bait_With_Keys-taster.png
+ :target: Bait_With_Keys/index.html
+ :width: 200
+
+ Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key. (This environment is the same as the normal Bait environment, but if the avatar has the key, it is visible)
* - **Random butterflies**
.. image:: img/Random_butterflies-taster.png
@@ -184,86 +155,125 @@ Single-Player
You win the level as soon as there are no butterflies left.
The player also only has partial observability.
- - **Bait With Keys**
+ - **Cook Me Pasta**
- .. image:: img/Bait_With_Keys-taster.png
- :target: Bait_With_Keys/index.html
+ .. image:: img/Cook_Me_Pasta-taster.png
+ :target: Cook_Me_Pasta/index.html
:width: 200
- Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key. (This environment is the same as the normal Bait environment, but if the avatar has the key, it is visible)
- - **Clusters**
+ Help the chef create the meal, but make sure the ingredients are put together in the right order.
+ - **Partially Observable Bait**
- .. image:: img/Clusters-taster.png
- :target: Clusters/index.html
+ .. image:: img/Partially_Observable_Bait-taster.png
+ :target: Partially_Observable_Bait/index.html
:width: 200
- Cluster the coloured objects together by pushing them against the static coloured blocks.
- * - **Partially Observable Zen Puzzle**
+ Get the key and unlock the door. Fill in the holes in the floor with blocks to get to the key.
+ * - **Zelda Sequential**
- .. image:: img/Partially_Observable_Zen_Puzzle-taster.png
- :target: Partially_Observable_Zen_Puzzle/index.html
+ .. image:: img/Zelda_Sequential-taster.png
+ :target: Zelda_Sequential/index.html
:width: 200
- Set all the tiles in the level to the same color, but you cannot move over a tile more than once! (Not even sure why this is zen its super frustrating)
- - **Sokoban - 2**
+ A port of the GVGAI game "Zelda". Pick up keys to reach doors in the correct order and avoid enemies. For example, previously you could go -- key -> door -> door. But now you would need to go -- key -> door --> key --> door.
+ - **Partially Observable Zelda**
- .. image:: img/Sokoban_-_2-taster.png
- :target: Sokoban_-_2/index.html
+ .. image:: img/Partially_Observable_Zelda-taster.png
+ :target: Partially_Observable_Zelda/index.html
:width: 200
- Push the boxes onto the marked spaces, once a box has moved onto a space, it cannot be moved
- - **Zelda**
+ A port of the GVGAI game "Zelda", but partially observable. Pick up keys to reach doors and avoid enemies.
+ - **Sokoban**
+
+ .. image:: img/Sokoban-taster.png
+ :target: Sokoban/index.html
+ :width: 200
+
+ Push the boxes into holes.
+ * - **Zelda**
.. image:: img/Zelda-taster.png
:target: Zelda/index.html
:width: 200
A port of the GVGAI game "Zelda". Pick up keys to reach doors and avoid enemies.
- * - **Partially Observable Clusters**
+ - **Clusters**
- .. image:: img/Partially_Observable_Clusters-taster.png
- :target: Partially_Observable_Clusters/index.html
+ .. image:: img/Clusters-taster.png
+ :target: Clusters/index.html
:width: 200
Cluster the coloured objects together by pushing them against the static coloured blocks.
- - **Spider Nest**
+ - **Zen Puzzle**
- .. image:: img/Spider_Nest-taster.png
- :target: Spider_Nest/index.html
+ .. image:: img/Zen_Puzzle-taster.png
+ :target: Zen_Puzzle/index.html
:width: 200
- A port of the games provided in the https://github.com/maximecb/gym-minigrid Dynamic obstacles environment, but you're a gnome avoiding ghosts to get to a gem.
- - **Partially Observable Labyrinth**
+ Set all the tiles in the level to the same color, but you cannot move over a tile more than once! (Not even sure why this is zen its super frustrating)
+ * - **Grafter Escape Rooms**
- .. image:: img/Partially_Observable_Labyrinth-taster.png
- :target: Partially_Observable_Labyrinth/index.html
+ .. image:: img/Grafter_Escape_Rooms-taster.png
+ :target: Grafter_Escape_Rooms/index.html
:width: 200
- Its a maze, find your way out. Watch out for spikey things. In this version the observation space for the player is partial.
- * - **Cook Me Pasta**
+ 100 human designed escape rooms using the mechanics of the Crafter environment.
+ -
+ -
- .. image:: img/Cook_Me_Pasta-taster.png
- :target: Cook_Me_Pasta/index.html
+
+***
+RTS
+***
+
+.. toctree::
+ :hidden:
+
+ GriddlyRTS/index
+ Push_Mania/index
+ Kill_The_King/index
+ Heal_Or_Die/index
+
+.. list-table::
+ :class: game-gallery
+
+ * - **GriddlyRTS**
+
+ .. image:: img/GriddlyRTS-taster.png
+ :target: GriddlyRTS/index.html
:width: 200
- Help the chef create the meal, but make sure the ingredients are put together in the right order.
- - **Butterflies and Spiders**
+ An RTS Game. There's aliens and stuff.
+ - **Push Mania**
- .. image:: img/Butterflies_and_Spiders-taster.png
- :target: Butterflies_and_Spiders/index.html
+ .. image:: img/Push_Mania-taster.png
+ :target: Push_Mania/index.html
:width: 200
- You want to catch all of the butterflies while also avoiding the spiders. Butterflies spawn slowly from cocoons.
- The butterflies are also eaten by the spiders so you need to be fast to collect them.
- You win the level as soon as there are no butterflies on the screen.
+ Game environment ported from https://github.com/GAIGResearch/Stratega.
+ You must push all your opponents pieces into the holes.
- - **Zelda Sequential**
+ - **Kill The King**
- .. image:: img/Zelda_Sequential-taster.png
- :target: Zelda_Sequential/index.html
+ .. image:: img/Kill_The_King-taster.png
+ :target: Kill_The_King/index.html
:width: 200
- A port of the GVGAI game "Zelda". Pick up keys to reach doors in the correct order and avoid enemies. For example, previously you could go -- key -> door -> door. But now you would need to go -- key -> door --> key --> door.
+ Game environment ported from https://github.com/GAIGResearch/Stratega.
+ Both you and your opponent must protect the king from being killed.
+
+ * - **Heal Or Die**
+
+ .. image:: img/Heal_Or_Die-taster.png
+ :target: Heal_Or_Die/index.html
+ :width: 200
+
+ Game environment ported from https://github.com/GAIGResearch/Stratega.
+ You have units that heal and units that perform close combat.
+ Additionally, on every turn, the health of your units decreases. Win the game by killing your opponents pieces first.
+
+ -
+ -
***********
@@ -273,21 +283,21 @@ Multi-Agent
.. toctree::
:hidden:
- Foragers/index
+ Robot_Tag_12v12/index
Robot_Tag_8v8/index
+ Foragers/index
Robot_Tag_4v4/index
- Robot_Tag_12v12/index
.. list-table::
:class: game-gallery
- * - **Foragers**
+ * - **Robot Tag 12v12**
- .. image:: img/Foragers-taster.png
- :target: Foragers/index.html
+ .. image:: img/Robot_Tag_12v12-taster.png
+ :target: Robot_Tag_12v12/index.html
:width: 200
- A very simple multi-agent game. Agents must collect the coloured potions
+ Robots start randomly as "tagged" or not, robots can "tag" other robots. Any robot that is "tagged" 3 times dies.
- **Robot Tag 8v8**
.. image:: img/Robot_Tag_8v8-taster.png
@@ -295,17 +305,17 @@ Multi-Agent
:width: 200
Robots start randomly as "tagged" or not, robots can "tag" other robots. Any robot that is "tagged" 3 times dies.
- - **Robot Tag 4v4**
+ - **Foragers**
- .. image:: img/Robot_Tag_4v4-taster.png
- :target: Robot_Tag_4v4/index.html
+ .. image:: img/Foragers-taster.png
+ :target: Foragers/index.html
:width: 200
- Robots start randomly as "tagged" or not, robots can "tag" other robots. Any robot that is "tagged" 3 times dies.
- * - **Robot Tag 12v12**
+ A very simple multi-agent game. Agents must collect the coloured potions
+ * - **Robot Tag 4v4**
- .. image:: img/Robot_Tag_12v12-taster.png
- :target: Robot_Tag_12v12/index.html
+ .. image:: img/Robot_Tag_4v4-taster.png
+ :target: Robot_Tag_4v4/index.html
:width: 200
Robots start randomly as "tagged" or not, robots can "tag" other robots. Any robot that is "tagged" 3 times dies.
diff --git a/docs/tutorials/GDY/actions.rst b/docs/tutorials/GDY/actions.rst
index a4cde633c..eb22f6850 100644
--- a/docs/tutorials/GDY/actions.rst
+++ b/docs/tutorials/GDY/actions.rst
@@ -17,7 +17,7 @@ Lets look at a few examples to make these ideas more concrete!
Step 1 - Movement
*****************
-We are building the game "Sokoban" so we will first define that our ``avatar`` object which we defined before can move around in empty space. To do that we can define our "move" action as follows:
+We are building the game "Sokoban" so we will first define that the ``avatar`` object can move around in empty space. To do that we can define a "move" action as follows:
.. code-block:: YAML
@@ -34,11 +34,12 @@ We are building the game "Sokoban" so we will first define that our ``avatar`` o
Object: _empty
We have named the above action "move" and defined a single behaviour. The behaviour object contains the ``Src`` key with the ``Object`` value ``avatar`` meaning that we are defing what happens if the ``avatar`` object performs the "move" action.
-We also define the ``Dst`` key with the ``Object`` value ``_empty``. The ``_empty`` keyword is a special keyword that the behaviour only applies when the action is perfomed on a space that has no objects present.
+We also define the ``Dst`` key with the ``Object`` value ``_empty``. The ``_empty`` keyword is a special object that refers to "empty space". This action therefore is only executed when the ``avatar`` performs an action on an ``_empty`` space.
-Finally we have ``Commands`` object in the ``Src`` key. The ``Commands`` object contains a list of instructions that will happen to the ``Src`` object if this action is executed. The command we have here is `mov: _dest` which tells the environment to move the object to the destination of the action. The `_dest` keyword is another special keyword used in actions which contains the location of the destination of the action.
+Finally we have ``Commands`` object in the ``Src`` key. The ``Commands`` object contains a list of instructions that will be executed by the ``Src`` object. The command we have here is `mov: _dest` which tells the environment to move the object to the destination of the action.
+The `_dest` keyword is another special keyword used in actions which contains the location of the destination of the action.
-For more information about possible commands that can be run on either the ``Src`` or ``Dst`` objects go `here <#/properties/Actions/items/properties/Behaviours/definitions/behaviourDefinitionCommandList>`_
+For more information about possible commands that can be run on either the ``Src`` or ``Dst`` objects you can refer to the schema docs `here <#/properties/Actions/items/properties/Behaviours/definitions/behaviourDefinitionCommandList>`_
**********************
Step 2 - Pushing boxes
@@ -68,9 +69,12 @@ To define that we want ``box`` objects to move when the ``avatar`` object moves
Here we are actually defining two behaviours. The first behaviour is similar to the one in the previous example. We define that the ``box`` object has the mechanic allowing it to move into empty space.
-The second behaviour we define allows the ``avatar`` object to interact with the ``box`` object. The ``mov`` command tells ``avatar`` it can move in the same way it would just moving into empty space. The ``box`` object however now needs to be moved in the same direction as the ``avatar``. This can be achieved by applying the same "move" action again, but on the destination object. ``cascade: _dest`` re-applies the same action on the destination object, which will move the ``box``!
+The second behaviour we define allows the ``avatar`` object to interact with the ``box`` object. The ``mov: _dest`` command tells ``avatar`` to move to the destination location when the action is executed.
+The ``box`` object also needs to be moved in the same direction as the ``avatar``.
+This can be achieved by applying the same "move" action again, but on the destination object.
+``cascade: _dest`` re-applies (or cascades) the same action on the destination object, which will move the ``box``!
-.. note:: We have only allowed the ``box`` object to "move" into empty space. If the ``_dest`` location is not empty, i.e. it contains a ``wall`` object or a ``hole`` object, the command will not be executed. This will stop the previous action also, stopping the ``avatar`` from moving also.
+.. note:: We have only allowed the ``box`` object to "move" into empty space. If the ``_dest`` location is not empty, i.e. it contains a ``wall`` object or a ``hole`` object, the command will not be executed. This will stop also the ``avatar`` from moving.
**********************************
Step 3 - Pushing a box into a hole
diff --git a/docs/tutorials/GDY/environment.rst b/docs/tutorials/GDY/environment.rst
index 38c103cd2..72d7d8140 100644
--- a/docs/tutorials/GDY/environment.rst
+++ b/docs/tutorials/GDY/environment.rst
@@ -4,7 +4,7 @@
Environment
###########
-The Environment object contains the definition of how the game will be controlled by the player, the conditions underwhich the game ends, and the levels that are contained in the game.
+The ``Environment`` configuration contains the definition of how the game will be controlled by the player, the conditions underwhich the game ends, the configurations of observers and the levels that are contained in the game.
*****************************
Step 1 - Player Configuration
@@ -24,7 +24,7 @@ Step 2 - Termination Conditions
Termination conditions are the rules which decide when the game episodes are complete, and whether the agent wins or loses.
-Rules can be defined seperately for ``Win`` and ``Lose``. In Sokoban, we just have a win condition where the player wins if all of the boxes have fallen into the holes. This is how it is defined in GDY.
+Rules can be defined seperately for ``Win`` and ``Lose``. In Sokoban, the player "wins" by pushing all of the boxes into holes. This is how it is defined in GDY.
.. code-block:: YAML
@@ -32,13 +32,13 @@ Rules can be defined seperately for ``Win`` and ``Lose``. In Sokoban, we just ha
Win:
- eq: [box:count, 0]
-We define here that the agent wins in the case that the number of ``box`` objects in the environment reaches 0. The ``:count`` option can be appended to any object name to return the number of any of the objects.
+We define here that the agent wins in the case that the number of ``box`` objects in the environment reaches 0. The ``:count`` attribute can be appended to any object name to return the number of those objects.
***************
Step 3 - Levels
***************
-In our Sokoban game we are going to define two levels. The layout of each level is defined by a level string which is made up of the ``MapCharacter`` characters that were defined in the :ref:`Objects
` section of this tutorial.
+In our Sokoban game we are going to define two levels. The layout of each level is defined by a level string which is made up of ``MapCharacter`` characters that are defined in the :ref:`Objects ` section of this tutorial.
the dot ``.`` character means that the space in the map in unoccupied.
@@ -70,18 +70,19 @@ the two defined levels will look like this when rendered:
********************************************
-Step 4 - Name, TileSize and Background Image
+Step 4 - TileSize and Background Image
********************************************
-- code-block:: YAML
- Name: sokoban
- TileSize: 24
- BackgroundTile: images/gvgai/newset/floor2.png
+ Observers:
+ Sprite2D:
+ TileSize: 24
+ BackgroundTile: gvgai/newset/floor2.png
+ Block2D:
+ TileSize: 24
-Here we specify the size of the tiles in pixels ``TileSize``. Also if we want to use an image for the background when there are no objects present we can supply a ``BackgroundTile`` image. The ``BackgroundTile`` is ignored any Observers except from ``Sprite2D``.
-
-Additionally every environment must have a unique ``Name`` to differentiate it from other environments.
+Here we specify the size of the tiles in pixels ``TileSize`` for both the Sprite2D and Block2D observers. Also if we want to use an image for the background when there are no objects present we can supply a ``BackgroundTile`` image.
***********************
Putting it all together
@@ -93,8 +94,12 @@ The environment definition with all the parts described looks like this:
Environment:
Name: sokoban
- TileSize: 24
- BackgroundTile: images/gvgai/newset/floor2.png
+ Observers:
+ Sprite2D:
+ TileSize: 24
+ BackgroundTile: gvgai/newset/floor2.png
+ Block2D:
+ TileSize: 24
Player:
AvatarObject: avatar
Termination:
diff --git a/docs/tutorials/GDY/gym.rst b/docs/tutorials/GDY/gym.rst
index 04f4d12d9..5df1c202a 100644
--- a/docs/tutorials/GDY/gym.rst
+++ b/docs/tutorials/GDY/gym.rst
@@ -12,7 +12,7 @@ Step 1 - Imports
To play games with the keyboard using the gym interface, the ``play`` function can be used to wrap a gym environment
-The only griddly import thats required is the ``GymWrapperFactory``, this is used to create gym wrappers for any Griddly environments
+The only griddly import that is required is the ``GymWrapperFactory``, this is used to create gym wrappers for any Griddly environments
.. code-block:: python
diff --git a/docs/tutorials/GDY/index.rst b/docs/tutorials/GDY/index.rst
index 9d9f7f331..a10db985c 100644
--- a/docs/tutorials/GDY/index.rst
+++ b/docs/tutorials/GDY/index.rst
@@ -4,13 +4,9 @@
GDY Tutorial - Making Sokoban
#############################
-.. note:: It's recommended to follow the short :ref:`GDY Schema tutorial ` which will help validate any issues with GDY files as they are being created.
+This tutorial will take you through building the game Sokoban using Griddly's Game Description Yaml (GDY).
-This tutorial will take you through building a simple game with GDY. At the end of this tutorial you will have recreated the Sokoban game in Griddly.
-
-The tutorial comes in three main stages which represent each of the three main configuration stages, ``Enviroment``, ``Actions`` and ``Objects``.
-
-The top level of GDY files always look like this:
+The tutorial comes in three stages covering the main areas of the GDY configuration file ``Enviroment``, ``Actions`` and ``Objects``.
.. code-block::
@@ -21,6 +17,7 @@ The top level of GDY files always look like this:
Objects: ...
+Choose from the following options to learn how to configure each section:
:ref:`Enviroment ` - Define how the player (or players) interact with the environment and design the levels.
@@ -28,7 +25,7 @@ The top level of GDY files always look like this:
:ref:`Objects ` - Define all the objects that might exist and how they will be rendered on screen.
-Afterwards the environment can be loaded by Griddy and used in other projects. In this tutorial the environment will be loaded into an OpenAI gym wrapper and can be played with using your keyboard.
+Finally you can load the game in python and play it:
--> :ref:`How to play the tutorial game `
diff --git a/docs/tutorials/GDY/objects.rst b/docs/tutorials/GDY/objects.rst
index ebf88123f..8de6fe323 100644
--- a/docs/tutorials/GDY/objects.rst
+++ b/docs/tutorials/GDY/objects.rst
@@ -143,25 +143,25 @@ The completed ``Object`` section of our GDY file looks like this:
- Name: wall
MapCharacter: w
Observers:
- Sprite2D:
- TilingMode: WALL_16
- Image:
- - images/gvgai/oryx/wall3_0.png
- - images/gvgai/oryx/wall3_1.png
- - images/gvgai/oryx/wall3_2.png
- - images/gvgai/oryx/wall3_3.png
- - images/gvgai/oryx/wall3_4.png
- - images/gvgai/oryx/wall3_5.png
- - images/gvgai/oryx/wall3_6.png
- - images/gvgai/oryx/wall3_7.png
- - images/gvgai/oryx/wall3_8.png
- - images/gvgai/oryx/wall3_9.png
- - images/gvgai/oryx/wall3_10.png
- - images/gvgai/oryx/wall3_11.png
- - images/gvgai/oryx/wall3_12.png
- - images/gvgai/oryx/wall3_13.png
- - images/gvgai/oryx/wall3_14.png
- - images/gvgai/oryx/wall3_15.png
+ Sprite2D:
+ TilingMode: WALL_16
+ Image:
+ - images/gvgai/oryx/wall3_0.png
+ - images/gvgai/oryx/wall3_1.png
+ - images/gvgai/oryx/wall3_2.png
+ - images/gvgai/oryx/wall3_3.png
+ - images/gvgai/oryx/wall3_4.png
+ - images/gvgai/oryx/wall3_5.png
+ - images/gvgai/oryx/wall3_6.png
+ - images/gvgai/oryx/wall3_7.png
+ - images/gvgai/oryx/wall3_8.png
+ - images/gvgai/oryx/wall3_9.png
+ - images/gvgai/oryx/wall3_10.png
+ - images/gvgai/oryx/wall3_11.png
+ - images/gvgai/oryx/wall3_12.png
+ - images/gvgai/oryx/wall3_13.png
+ - images/gvgai/oryx/wall3_14.png
+ - images/gvgai/oryx/wall3_15.png
- Name: hole
Z: 1
diff --git a/js/README.md b/js/README.md
new file mode 100644
index 000000000..4360ab3ee
--- /dev/null
+++ b/js/README.md
@@ -0,0 +1,58 @@
+# Griddly JS
+
+GriddlyJS is built using React and Web Assembly
+
+## Building From Source (including web-assembly)
+
+### Install Emscripten SDK
+
+To compile the web-assembly module for Griddly, you first need to [install emscripten](https://emscripten.org/docs/getting_started/downloads.html).
+
+Emscripten is a compiler toolchain for building web-assembly modules.
+
+
+### Configure and Build
+
+Choose Release/Debug for the build type and run the following command:
+
+```shell
+./configure.sh && ./build.sh [Release/Debug]
+```
+
+Once this is done, you can follow the instructions to Install Dependencies and Run Locally
+
+## Building Webapp Only
+
+GriddlyJS includes a pre-built web-assembly module for the current version of Griddly.
+
+If you just want to run the web-app locally then run the following commands which sync the resource directories
+
+```
+configure.sh
+```
+
+## Installing Dependencies
+
+### Node Package Manager
+
+As GriddlyJS is a web project, you must have NPM installed. The easiest way to do this is to [install NVM](https://github.com/nvm-sh/nvm#installing-and-updating) and choose a stable version.
+
+```
+nvm install lts/gallium && nvm use lts/gallium
+```
+
+
+### Install node packages
+
+```shell
+npm install
+```
+
+## Running Locally
+
+to run locally you can just run the following command in the `griddlyjs-app` folder:
+
+```shell
+npm start
+```
+
diff --git a/js/bindings/Jiddly.cpp b/js/bindings/GriddlyJS.cpp
similarity index 74%
rename from js/bindings/Jiddly.cpp
rename to js/bindings/GriddlyJS.cpp
index 16ad12ab9..5a6c271ca 100644
--- a/js/bindings/Jiddly.cpp
+++ b/js/bindings/GriddlyJS.cpp
@@ -1,4 +1,4 @@
-#include "Jiddly.hpp"
+#include "GriddlyJS.hpp"
#include
@@ -8,21 +8,21 @@
#include "../../src/Griddly/Core/GDY/Objects/ObjectGenerator.hpp"
#include "../../src/Griddly/Core/GDY/TerminationGenerator.hpp"
-Jiddly::Jiddly() {
+GriddlyJS::GriddlyJS() {
#ifndef NDEBUG
spdlog::set_level(spdlog::level::debug);
#else
spdlog::set_level(spdlog::level::info);
#endif
- spdlog::debug("Jiddly module loaded!");
+ spdlog::debug("GriddlyJS module loaded!");
}
-std::shared_ptr Jiddly::loadString(std::string levelString) {
+std::shared_ptr GriddlyJS::loadString(std::string levelString) {
auto objectGenerator = std::make_shared(griddly::ObjectGenerator());
auto terminationGenerator = std::make_shared(griddly::TerminationGenerator());
auto gdyFactory = std::make_shared(griddly::GDYFactory(objectGenerator, terminationGenerator));
std::istringstream s(levelString);
gdyFactory->parseFromStream(s);
- return std::make_shared(JiddlyGDYWrapper(gdyFactory));
+ return std::make_shared(GriddlyJSGDYWrapper(gdyFactory));
}
\ No newline at end of file
diff --git a/js/bindings/GriddlyJS.hpp b/js/bindings/GriddlyJS.hpp
new file mode 100644
index 000000000..f48ed4fbd
--- /dev/null
+++ b/js/bindings/GriddlyJS.hpp
@@ -0,0 +1,91 @@
+#include
+#include
+
+#include "../../src/Griddly/Core/Grid.hpp"
+#include "GriddlyJSGDYWrapper.hpp"
+
+namespace e = emscripten;
+
+class GriddlyJS {
+ public:
+ GriddlyJS();
+ std::shared_ptr loadString(std::string levelString);
+};
+
+template
+e::class_> register_unordered_map(const char* name) {
+ typedef std::unordered_map MapType;
+
+ size_t (MapType::*size)() const = &MapType::size;
+ return e::class_(name)
+ .template constructor<>()
+ .function("size", size)
+ .function("get", e::internal::MapAccess::get)
+ .function("set", e::internal::MapAccess::set)
+ .function("keys", e::internal::MapAccess::keys);
+}
+
+EMSCRIPTEN_BINDINGS(GriddlyJS) {
+ // Classes
+ e::class_("GriddlyJS")
+ .constructor()
+ .function("loadString", &GriddlyJS::loadString);
+
+ e::class_("GriddlyJSGDYWrapper")
+ .smart_ptr>("GriddlyJSGDYWrapper")
+ .function("setMaxSteps", &GriddlyJSGDYWrapper::setMaxSteps)
+ .function("getPlayerCount", &GriddlyJSGDYWrapper::getPlayerCount)
+ .function("getAvatarObject", &GriddlyJSGDYWrapper::getAvatarObject)
+ .function("getExternalActionNames", &GriddlyJSGDYWrapper::getExternalActionNames)
+ .function("getLevelCount", &GriddlyJSGDYWrapper::getLevelCount)
+ .function("getObserverType", &GriddlyJSGDYWrapper::getObserverType)
+ .function("getActionInputMappings", &GriddlyJSGDYWrapper::getActionInputMappings)
+ .function("createGame", &GriddlyJSGDYWrapper::createGame);
+
+ e::class_("GriddlyJSGameWrapper")
+ .smart_ptr>("GriddlyJSGameWrapper")
+ .function("getActionTypeId", &GriddlyJSGameWrapper::getActionTypeId)
+ .function("init", &GriddlyJSGameWrapper::init)
+ .function("release", &GriddlyJSGameWrapper::release)
+ .function("registerPlayer", &GriddlyJSGameWrapper::registerPlayer)
+ .function("loadLevel", &GriddlyJSGameWrapper::loadLevel)
+ .function("loadLevelString", &GriddlyJSGameWrapper::loadLevelString)
+ .function("reset", &GriddlyJSGameWrapper::reset)
+ .function("getGlobalObservationDescription", &GriddlyJSGameWrapper::getGlobalObservationDescription)
+ .function("observe", &GriddlyJSGameWrapper::observe)
+ .function("stepParallel", &GriddlyJSGameWrapper::stepParallel)
+ .function("getWidth", &GriddlyJSGameWrapper::getWidth)
+ .function("getHeight", &GriddlyJSGameWrapper::getHeight)
+ .function("getState", &GriddlyJSGameWrapper::getState)
+ .function("getGlobalVariableNames", &GriddlyJSGameWrapper::getGlobalVariableNames)
+ .function("getObjectVariableMap", &GriddlyJSGameWrapper::getObjectVariableMap)
+ .function("getGlobalVariables", &GriddlyJSGameWrapper::getGlobalVariables)
+ .function("getObjectNames", &GriddlyJSGameWrapper::getObjectNames)
+ .function("getObjectVariableNames", &GriddlyJSGameWrapper::getObjectVariableNames)
+ .function("seedRandomGenerator", &GriddlyJSGameWrapper::seedRandomGenerator);
+
+ e::class_("GriddlyJSPlayerWrapper")
+ .smart_ptr>("GriddlyJSPlayerWrapper")
+ .function("getObservationDescription", &GriddlyJSPlayerWrapper::getObservationDescription)
+ .function("observe", &GriddlyJSPlayerWrapper::observe);
+
+ // Types
+ e::value_object("glm::ivec2")
+ .field("x", &glm::ivec2::x)
+ .field("y", &glm::ivec2::y);
+
+ e::value_object("glm::vec2")
+ .field("x", &glm::vec2::x)
+ .field("y", &glm::vec2::y);
+
+ e::register_vector("IntVector");
+ e::register_vector("UInt32Vector");
+ e::register_vector("UInt8Vector");
+ e::register_vector("StringVector");
+
+ e::enum_("ObserverType")
+ .value("VECTOR", griddly::ObserverType::VECTOR)
+ .value("ASCII", griddly::ObserverType::ASCII)
+ .value("ENTITY", griddly::ObserverType::ENTITY)
+ .value("NONE", griddly::ObserverType::NONE);
+}
diff --git a/js/bindings/JiddlyGDYWrapper.cpp b/js/bindings/GriddlyJSGDYWrapper.cpp
similarity index 72%
rename from js/bindings/JiddlyGDYWrapper.cpp
rename to js/bindings/GriddlyJSGDYWrapper.cpp
index 4ca418545..8a7be6cb8 100644
--- a/js/bindings/JiddlyGDYWrapper.cpp
+++ b/js/bindings/GriddlyJSGDYWrapper.cpp
@@ -1,22 +1,22 @@
-#include "JiddlyGDYWrapper.hpp"
+#include "GriddlyJSGDYWrapper.hpp"
-JiddlyGDYWrapper::JiddlyGDYWrapper(std::shared_ptr gdyFactory)
+GriddlyJSGDYWrapper::GriddlyJSGDYWrapper(std::shared_ptr gdyFactory)
: gdyFactory_(gdyFactory) {
}
-void JiddlyGDYWrapper::setMaxSteps(uint32_t maxSteps) {
+void GriddlyJSGDYWrapper::setMaxSteps(uint32_t maxSteps) {
gdyFactory_->setMaxSteps(maxSteps);
}
-uint32_t JiddlyGDYWrapper::getPlayerCount() const {
+uint32_t GriddlyJSGDYWrapper::getPlayerCount() const {
return gdyFactory_->getPlayerCount();
}
-std::string JiddlyGDYWrapper::getAvatarObject() const {
+std::string GriddlyJSGDYWrapper::getAvatarObject() const {
return gdyFactory_->getAvatarObject();
}
-e::val JiddlyGDYWrapper::getExternalActionNames() const {
+e::val GriddlyJSGDYWrapper::getExternalActionNames() const {
e::val js_actionNames = e::val::array();
for (const auto& actionName : gdyFactory_->getExternalActionNames()) {
js_actionNames.call("push", actionName);
@@ -24,15 +24,15 @@ e::val JiddlyGDYWrapper::getExternalActionNames() const {
return js_actionNames;
}
-uint32_t JiddlyGDYWrapper::getLevelCount() const {
+uint32_t GriddlyJSGDYWrapper::getLevelCount() const {
return gdyFactory_->getLevelCount();
}
-griddly::ObserverType& JiddlyGDYWrapper::getObserverType(std::string observerName) {
+griddly::ObserverType& GriddlyJSGDYWrapper::getObserverType(std::string observerName) {
return gdyFactory_->getNamedObserverType(observerName);
}
-e::val JiddlyGDYWrapper::getActionInputMappings() const {
+e::val GriddlyJSGDYWrapper::getActionInputMappings() const {
const auto& actionInputsDefinitions = gdyFactory_->getActionInputsDefinitions();
e::val js_actionInputsDefinitions = e::val::object();
for (auto actionInputDefinitionPair : actionInputsDefinitions) {
@@ -69,6 +69,6 @@ e::val JiddlyGDYWrapper::getActionInputMappings() const {
return js_actionInputsDefinitions;
}
-std::shared_ptr JiddlyGDYWrapper::createGame(std::string globalObserverName) {
- return std::make_shared(JiddlyGameWrapper(globalObserverName, gdyFactory_));
+std::shared_ptr GriddlyJSGDYWrapper::createGame(std::string globalObserverName) {
+ return std::make_shared(GriddlyJSGameWrapper(globalObserverName, gdyFactory_));
}
diff --git a/js/bindings/JiddlyGDYWrapper.hpp b/js/bindings/GriddlyJSGDYWrapper.hpp
similarity index 70%
rename from js/bindings/JiddlyGDYWrapper.hpp
rename to js/bindings/GriddlyJSGDYWrapper.hpp
index c581803a8..d5cdeb898 100644
--- a/js/bindings/JiddlyGDYWrapper.hpp
+++ b/js/bindings/GriddlyJSGDYWrapper.hpp
@@ -4,13 +4,13 @@
#include
#include "../../src/Griddly/Core/GDY/GDYFactory.hpp"
-#include "JiddlyGameWrapper.hpp"
+#include "GriddlyJSGameWrapper.hpp"
namespace e = emscripten;
-class JiddlyGDYWrapper {
+class GriddlyJSGDYWrapper {
public:
- JiddlyGDYWrapper(std::shared_ptr gdyFactory);
+ GriddlyJSGDYWrapper(std::shared_ptr gdyFactory);
void setMaxSteps(uint32_t maxSteps);
@@ -26,7 +26,7 @@ class JiddlyGDYWrapper {
e::val getActionInputMappings() const;
- std::shared_ptr createGame(std::string globalObserverName);
+ std::shared_ptr createGame(std::string globalObserverName);
private:
const std::shared_ptr gdyFactory_;
diff --git a/js/bindings/JiddlyGameWrapper.cpp b/js/bindings/GriddlyJSGameWrapper.cpp
similarity index 76%
rename from js/bindings/JiddlyGameWrapper.cpp
rename to js/bindings/GriddlyJSGameWrapper.cpp
index 4913594cd..b04a34ce4 100644
--- a/js/bindings/JiddlyGameWrapper.cpp
+++ b/js/bindings/GriddlyJSGameWrapper.cpp
@@ -1,34 +1,34 @@
-#include "JiddlyGameWrapper.hpp"
+#include "GriddlyJSGameWrapper.hpp"
#include
#include
-#include "JiddlyWrapperCommon.cpp"
+#include "GriddlyJSWrapperCommon.cpp"
namespace e = emscripten;
-JiddlyGameWrapper::JiddlyGameWrapper(std::string globalObserverName, std::shared_ptr gdyFactory) : gdyFactory_(gdyFactory) {
+GriddlyJSGameWrapper::GriddlyJSGameWrapper(std::string globalObserverName, std::shared_ptr gdyFactory) : gdyFactory_(gdyFactory) {
std::shared_ptr grid = std::make_shared(griddly::Grid());
gameProcess_ = std::make_shared(griddly::TurnBasedGameProcess(globalObserverName, gdyFactory, grid));
spdlog::debug("Created game process wrapper");
}
-std::shared_ptr JiddlyGameWrapper::unwrapped() {
+std::shared_ptr GriddlyJSGameWrapper::unwrapped() {
return gameProcess_;
}
-std::shared_ptr JiddlyGameWrapper::registerPlayer(std::string playerName, std::string observerName) {
+std::shared_ptr GriddlyJSGameWrapper::registerPlayer(std::string playerName, std::string observerName) {
auto nextPlayerId = ++playerCount_;
auto observer = gdyFactory_->createObserver(gameProcess_->getGrid(), observerName, gdyFactory_->getPlayerCount(), nextPlayerId);
- auto player = std::make_shared(JiddlyPlayerWrapper(nextPlayerId, playerName, observer, gdyFactory_, gameProcess_));
+ auto player = std::make_shared(GriddlyJSPlayerWrapper(nextPlayerId, playerName, observer, gdyFactory_, gameProcess_));
players_.push_back(player);
gameProcess_->addPlayer(player->unwrapped());
return player;
}
-const uint32_t JiddlyGameWrapper::getActionTypeId(std::string actionName) const {
+const uint32_t GriddlyJSGameWrapper::getActionTypeId(std::string actionName) const {
auto actionNames = gdyFactory_->getExternalActionNames();
for (int i = 0; i < actionNames.size(); i++) {
if (actionNames[i] == actionName) {
@@ -38,35 +38,35 @@ const uint32_t JiddlyGameWrapper::getActionTypeId(std::string actionName) const
throw std::runtime_error("unregistered action");
}
-void JiddlyGameWrapper::init() {
+void GriddlyJSGameWrapper::init() {
gameProcess_->init(false);
}
-void JiddlyGameWrapper::release() {
+void GriddlyJSGameWrapper::release() {
gameProcess_->release();
}
-void JiddlyGameWrapper::loadLevel(uint32_t levelId) {
+void GriddlyJSGameWrapper::loadLevel(uint32_t levelId) {
gameProcess_->setLevel(levelId);
}
-void JiddlyGameWrapper::loadLevelString(std::string levelString) {
+void GriddlyJSGameWrapper::loadLevelString(std::string levelString) {
gameProcess_->setLevel(levelString);
}
-void JiddlyGameWrapper::reset() {
+void GriddlyJSGameWrapper::reset() {
gameProcess_->reset();
}
-e::val JiddlyGameWrapper::getGlobalObservationDescription() const {
+e::val GriddlyJSGameWrapper::getGlobalObservationDescription() const {
return wrapObservationDescription(gameProcess_->getObserver());
}
-e::val JiddlyGameWrapper::observe() {
+e::val GriddlyJSGameWrapper::observe() {
return wrapObservation(gameProcess_->getObserver());
}
-e::val JiddlyGameWrapper::stepParallel(e::val stepArray) {
+e::val GriddlyJSGameWrapper::stepParallel(e::val stepArray) {
const auto& externalActionNames = gdyFactory_->getExternalActionNames();
auto playerSize = stepArray["length"].as();
@@ -77,7 +77,7 @@ e::val JiddlyGameWrapper::stepParallel(e::val stepArray) {
throw std::invalid_argument(error);
}
- std::vector playerRewards{};
+ e::val playerRewards = e::val::array();
bool terminated = false;
e::val info = e::val::object();
@@ -127,26 +127,27 @@ e::val JiddlyGameWrapper::stepParallel(e::val stepArray) {
}
for (int p = 0; p < playerSize; p++) {
- playerRewards.push_back(gameProcess_->getAccumulatedRewards(p + 1));
+ playerRewards.call("push", gameProcess_->getAccumulatedRewards(p + 1));
}
auto js_result = e::val::object();
js_result.set("terminated", terminated);
js_result.set("info", info);
+ js_result.set("reward", playerRewards);
return js_result;
}
-uint32_t JiddlyGameWrapper::getWidth() const {
+uint32_t GriddlyJSGameWrapper::getWidth() const {
return gameProcess_->getGrid()->getWidth();
}
-uint32_t JiddlyGameWrapper::getHeight() const {
+uint32_t GriddlyJSGameWrapper::getHeight() const {
return gameProcess_->getGrid()->getHeight();
}
-e::val JiddlyGameWrapper::getState() const {
+e::val GriddlyJSGameWrapper::getState() const {
e::val js_state = e::val::object();
auto state = gameProcess_->getState();
@@ -189,7 +190,7 @@ e::val JiddlyGameWrapper::getState() const {
return js_state;
}
-std::vector JiddlyGameWrapper::getGlobalVariableNames() const {
+std::vector GriddlyJSGameWrapper::getGlobalVariableNames() const {
std::vector globalVariableNames;
auto globalVariables = gameProcess_->getGrid()->getGlobalVariables();
@@ -199,7 +200,7 @@ std::vector JiddlyGameWrapper::getGlobalVariableNames() const {
return globalVariableNames;
}
-e::val JiddlyGameWrapper::getObjectVariableMap() const {
+e::val GriddlyJSGameWrapper::getObjectVariableMap() const {
auto test2 = e::val::object();
auto test = e::val::object();
test2.set("x", 5);
@@ -209,7 +210,7 @@ e::val JiddlyGameWrapper::getObjectVariableMap() const {
return test;
}
-e::val JiddlyGameWrapper::getGlobalVariables(std::vector variables) {
+e::val GriddlyJSGameWrapper::getGlobalVariables(std::vector variables) {
e::val js_globalVariables = e::val::object();
auto globalVariables = gameProcess_->getGrid()->getGlobalVariables();
@@ -227,14 +228,14 @@ e::val JiddlyGameWrapper::getGlobalVariables(std::vector variables)
return js_globalVariables;
}
-std::vector JiddlyGameWrapper::getObjectNames() {
+std::vector GriddlyJSGameWrapper::getObjectNames() {
return gameProcess_->getGrid()->getObjectNames();
}
-std::vector JiddlyGameWrapper::getObjectVariableNames() {
+std::vector GriddlyJSGameWrapper::getObjectVariableNames() {
return gameProcess_->getGrid()->getAllObjectVariableNames();
}
-void JiddlyGameWrapper::seedRandomGenerator(uint32_t seed) {
+void GriddlyJSGameWrapper::seedRandomGenerator(uint32_t seed) {
gameProcess_->seedRandomGenerator(seed);
}
\ No newline at end of file
diff --git a/js/bindings/JiddlyGameWrapper.hpp b/js/bindings/GriddlyJSGameWrapper.hpp
similarity index 77%
rename from js/bindings/JiddlyGameWrapper.hpp
rename to js/bindings/GriddlyJSGameWrapper.hpp
index 68f2c42b4..6298c040b 100644
--- a/js/bindings/JiddlyGameWrapper.hpp
+++ b/js/bindings/GriddlyJSGameWrapper.hpp
@@ -5,17 +5,17 @@
#include
#include "../../src/Griddly/Core/TurnBasedGameProcess.hpp"
-#include "JiddlyPlayerWrapper.hpp"
+#include "GriddlyJSPlayerWrapper.hpp"
namespace e = emscripten;
-class JiddlyGameWrapper {
+class GriddlyJSGameWrapper {
public:
- JiddlyGameWrapper(std::string globalObserverName, std::shared_ptr gdyFactory);
+ GriddlyJSGameWrapper(std::string globalObserverName, std::shared_ptr gdyFactory);
std::shared_ptr unwrapped();
- std::shared_ptr registerPlayer(std::string playerName, std::string observerName);
+ std::shared_ptr registerPlayer(std::string playerName, std::string observerName);
const uint32_t getActionTypeId(std::string actionName) const;
@@ -57,5 +57,5 @@ class JiddlyGameWrapper {
std::shared_ptr gameProcess_;
const std::shared_ptr gdyFactory_;
uint32_t playerCount_ = 0;
- std::vector> players_;
+ std::vector> players_;
};
\ No newline at end of file
diff --git a/js/bindings/JiddlyPlayerWrapper.cpp b/js/bindings/GriddlyJSPlayerWrapper.cpp
similarity index 77%
rename from js/bindings/JiddlyPlayerWrapper.cpp
rename to js/bindings/GriddlyJSPlayerWrapper.cpp
index 3bd85bafd..dea2af787 100644
--- a/js/bindings/JiddlyPlayerWrapper.cpp
+++ b/js/bindings/GriddlyJSPlayerWrapper.cpp
@@ -1,14 +1,23 @@
-#include "JiddlyPlayerWrapper.hpp"
+#include "GriddlyJSPlayerWrapper.hpp"
+#include "GriddlyJSWrapperCommon.cpp"
-JiddlyPlayerWrapper::JiddlyPlayerWrapper(int playerId, std::string playerName, std::shared_ptr observer, std::shared_ptr gdyFactory, std::shared_ptr gameProcess)
+GriddlyJSPlayerWrapper::GriddlyJSPlayerWrapper(int playerId, std::string playerName, std::shared_ptr observer, std::shared_ptr gdyFactory, std::shared_ptr gameProcess)
: player_(std::make_shared(griddly::Player(playerId, playerName, observer, gameProcess))), gdyFactory_(gdyFactory), gameProcess_(gameProcess) {
}
-std::shared_ptr JiddlyPlayerWrapper::unwrapped() {
+std::shared_ptr GriddlyJSPlayerWrapper::unwrapped() {
return player_;
}
-e::val JiddlyPlayerWrapper::stepSingle(std::string actionName, std::vector actionArray, bool updateTicks) {
+e::val GriddlyJSPlayerWrapper::getObservationDescription() const {
+ return wrapObservationDescription(player_->getObserver());
+}
+
+e::val GriddlyJSPlayerWrapper::observe() {
+ return wrapObservation(player_->getObserver());
+}
+
+e::val GriddlyJSPlayerWrapper::stepSingle(std::string actionName, std::vector actionArray, bool updateTicks) {
if (gameProcess_ != nullptr && !gameProcess_->isInitialized()) {
throw std::invalid_argument("Cannot send player commands when game has not been initialized.");
}
@@ -31,7 +40,7 @@ e::val JiddlyPlayerWrapper::stepSingle(std::string actionName, std::vector JiddlyPlayerWrapper::buildAction(std::string actionName, std::vector actionArray) {
+std::shared_ptr GriddlyJSPlayerWrapper::buildAction(std::string actionName, std::vector actionArray) {
const auto& actionInputsDefinition = gdyFactory_->findActionInputsDefinition(actionName);
auto playerAvatar = player_->getAvatar();
auto playerId = player_->getId();
diff --git a/js/bindings/JiddlyPlayerWrapper.hpp b/js/bindings/GriddlyJSPlayerWrapper.hpp
similarity index 74%
rename from js/bindings/JiddlyPlayerWrapper.hpp
rename to js/bindings/GriddlyJSPlayerWrapper.hpp
index ea3922ba0..05ad891b7 100644
--- a/js/bindings/JiddlyPlayerWrapper.hpp
+++ b/js/bindings/GriddlyJSPlayerWrapper.hpp
@@ -12,11 +12,13 @@
namespace e = emscripten;
-class JiddlyPlayerWrapper {
+class GriddlyJSPlayerWrapper {
public:
- JiddlyPlayerWrapper(int playerId, std::string playerName, std::shared_ptr observer, std::shared_ptr gdyFactory, std::shared_ptr gameProcess);
+ GriddlyJSPlayerWrapper(int playerId, std::string playerName, std::shared_ptr observer, std::shared_ptr gdyFactory, std::shared_ptr gameProcess);
std::shared_ptr unwrapped();
+ e::val getObservationDescription() const;
+ e::val observe();
e::val stepSingle(std::string actionName, std::vector actionArray, bool updateTicks);
diff --git a/js/bindings/JiddlyWrapperCommon.cpp b/js/bindings/GriddlyJSWrapperCommon.cpp
similarity index 93%
rename from js/bindings/JiddlyWrapperCommon.cpp
rename to js/bindings/GriddlyJSWrapperCommon.cpp
index c0a9c8d34..b69d38264 100644
--- a/js/bindings/JiddlyWrapperCommon.cpp
+++ b/js/bindings/GriddlyJSWrapperCommon.cpp
@@ -119,7 +119,14 @@ inline e::val wrapObservationDescription(std::shared_ptr obse
auto entityObserver = std::dynamic_pointer_cast(observer);
observationDescription.set("Features", entityObserver->getEntityFeatures());
} else {
- observationDescription.set("Shape", std::dynamic_pointer_cast(observer)->getShape());
+
+ const auto& shape = std::dynamic_pointer_cast(observer)->getShape();
+
+ e::val shapeVals = e::val::array();
+ for (int i = 0; i < shape.size(); i++) {
+ shapeVals.call("push", shape[i]);
+ }
+ observationDescription.set("Shape", shapeVals);
}
return observationDescription;
diff --git a/js/bindings/Jiddly.hpp b/js/bindings/Jiddly.hpp
deleted file mode 100644
index 137758580..000000000
--- a/js/bindings/Jiddly.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#include
-#include
-
-#include "../../src/Griddly/Core/Grid.hpp"
-#include "JiddlyGDYWrapper.hpp"
-
-namespace e = emscripten;
-
-class Jiddly {
- public:
- Jiddly();
- std::shared_ptr loadString(std::string levelString);
-};
-
-template
-e::class_> register_unordered_map(const char* name) {
- typedef std::unordered_map MapType;
-
- size_t (MapType::*size)() const = &MapType::size;
- return e::class_(name)
- .template constructor<>()
- .function("size", size)
- .function("get", e::internal::MapAccess::get)
- .function("set", e::internal::MapAccess::set)
- .function("keys", e::internal::MapAccess::keys);
-}
-
-EMSCRIPTEN_BINDINGS(Jiddly) {
- // Classes
- e::class_("Jiddly")
- .constructor()
- .function("loadString", &Jiddly::loadString);
-
- e::class_("JiddlyGDYWrapper")
- .smart_ptr>("JiddlyGDYWrapper")
- .function("setMaxSteps", &JiddlyGDYWrapper::setMaxSteps)
- .function("getPlayerCount", &JiddlyGDYWrapper::getPlayerCount)
- .function("getAvatarObject", &JiddlyGDYWrapper::getAvatarObject)
- .function("getExternalActionNames", &JiddlyGDYWrapper::getExternalActionNames)
- .function("getLevelCount", &JiddlyGDYWrapper::getLevelCount)
- .function("getObserverType", &JiddlyGDYWrapper::getObserverType)
- .function("getActionInputMappings", &JiddlyGDYWrapper::getActionInputMappings)
- .function("createGame", &JiddlyGDYWrapper::createGame);
-
- e::class_("JiddlyGameWrapper")
- .smart_ptr>("JiddlyGameWrapper")
- .function("getActionTypeId", &JiddlyGameWrapper::getActionTypeId)
- .function("init", &JiddlyGameWrapper::init)
- .function("release", &JiddlyGameWrapper::release)
- .function("registerPlayer", &JiddlyGameWrapper::registerPlayer)
- .function("loadLevel", &JiddlyGameWrapper::loadLevel)
- .function("loadLevelString", &JiddlyGameWrapper::loadLevelString)
- .function("reset", &JiddlyGameWrapper::reset)
- .function("getGlobalObservationDescription", &JiddlyGameWrapper::getGlobalObservationDescription)
- .function("observe", &JiddlyGameWrapper::observe)
- .function("stepParallel", &JiddlyGameWrapper::stepParallel)
- .function("getWidth", &JiddlyGameWrapper::getWidth)
- .function("getHeight", &JiddlyGameWrapper::getHeight)
- .function("getState", &JiddlyGameWrapper::getState)
- .function("getGlobalVariableNames", &JiddlyGameWrapper::getGlobalVariableNames)
- .function("getObjectVariableMap", &JiddlyGameWrapper::getObjectVariableMap)
- .function("getGlobalVariables", &JiddlyGameWrapper::getGlobalVariables)
- .function("getObjectNames", &JiddlyGameWrapper::getObjectNames)
- .function("getObjectVariableNames", &JiddlyGameWrapper::getObjectVariableNames)
- .function("seedRandomGenerator", &JiddlyGameWrapper::seedRandomGenerator);
-
- e::class_("JiddlyPlayerWrapper")
- .smart_ptr>("JiddlyPlayerWrapper");
-
- // Types
- e::value_object("glm::ivec2")
- .field("x", &glm::ivec2::x)
- .field("y", &glm::ivec2::y);
-
- e::value_object("glm::vec2")
- .field("x", &glm::vec2::x)
- .field("y", &glm::vec2::y);
-
- e::register_vector("IntVector");
- e::register_vector("UInt32Vector");
- e::register_vector("UInt8Vector");
- e::register_vector("StringVector");
-
- e::enum_("ObserverType")
- .value("VECTOR", griddly::ObserverType::VECTOR)
- .value("ASCII", griddly::ObserverType::ASCII)
- .value("ENTITY", griddly::ObserverType::ENTITY)
- .value("NONE", griddly::ObserverType::NONE);
-}
diff --git a/js/build.sh b/js/build.sh
index 78dfd57d3..90c550e3f 100755
--- a/js/build.sh
+++ b/js/build.sh
@@ -6,30 +6,13 @@ if [ -z "$1" ]; then
BUILD_TYPE="Debug"
fi
-
-if [ ! -d "../build_wasm" ]; then
- mkdir ../build_wasm
-fi
-
-if [ ! -d "jiddly-app/src/wasm/" ]; then
- mkdir jiddly-app/src/wasm/
-fi
-
-if [ ! -d "jiddly-app/public/js" ]; then
- mkdir jiddly-app/public/js/
-fi
-
-rm jiddly-app/src/wasm/jiddly.js ../bin/jiddly.js
-rm jiddly-app/public/js/jiddly.wasm ../bin/jiddly.wasm
+rm griddlyjs-app/src/wasm/griddlyjs.js ../bin/griddlyjs.js
+rm griddlyjs-app/public/js/griddlyjs.wasm ../bin/griddlyjs.wasm
pushd ../build_wasm
- emcmake cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
+ emcmake cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B .
emmake make
popd
-cp ../$BUILD_TYPE/bin/jiddly.js jiddly-app/src/wasm/jiddly.js
-cp ../$BUILD_TYPE/bin/jiddly.wasm jiddly-app/public/js/jiddly.wasm
-
-cp -R ../resources/games jiddly-app/public/resources/games
-cp -R ../resources/images jiddly-app/public/resources/images
-cp ../resources/gdy-schema.json jiddly-app/public/resources/gdy-schema.json
+cp ../$BUILD_TYPE/bin/griddlyjs.js griddlyjs-app/src/wasm/griddlyjs.js
+cp ../$BUILD_TYPE/bin/griddlyjs.wasm griddlyjs-app/public/js/griddlyjs.wasm
diff --git a/js/configure.sh b/js/configure.sh
new file mode 100755
index 000000000..37b09d5fe
--- /dev/null
+++ b/js/configure.sh
@@ -0,0 +1,27 @@
+if [ ! -d "../build_wasm" ]; then
+ mkdir ../build_wasm
+fi
+
+if [ ! -d "griddlyjs-app/src/wasm/" ]; then
+ mkdir griddlyjs-app/src/wasm/
+fi
+
+if [ ! -d "griddlyjs-app/public/js" ]; then
+ mkdir griddlyjs-app/public/js/
+fi
+
+if [ ! -d "griddlyjs-app/public/resources" ]; then
+ mkdir griddlyjs-app/public/resources/
+fi
+
+if [ ! -d "griddlyjs-app/public/resources/games" ]; then
+ mkdir griddlyjs-app/public/resources/games
+fi
+
+if [ ! -d "griddlyjs-app/public/resources/images" ]; then
+ mkdir griddlyjs-app/public/resources/images
+fi
+
+cp -R ../resources/games/* griddlyjs-app/public/resources/games
+cp -R ../resources/images/* griddlyjs-app/public/resources/images
+cp ../resources/gdy-schema.json griddlyjs-app/public/resources/gdy-schema.json
diff --git a/js/jiddly-app/.eslintrc b/js/griddlyjs-app/.eslintrc
similarity index 100%
rename from js/jiddly-app/.eslintrc
rename to js/griddlyjs-app/.eslintrc
diff --git a/js/jiddly-app/.gitignore b/js/griddlyjs-app/.gitignore
similarity index 100%
rename from js/jiddly-app/.gitignore
rename to js/griddlyjs-app/.gitignore
diff --git a/js/griddlyjs-app/favicon.ico b/js/griddlyjs-app/favicon.ico
new file mode 100644
index 000000000..6db23a410
Binary files /dev/null and b/js/griddlyjs-app/favicon.ico differ
diff --git a/js/jiddly-app/package-lock.json b/js/griddlyjs-app/package-lock.json
similarity index 69%
rename from js/jiddly-app/package-lock.json
rename to js/griddlyjs-app/package-lock.json
index 4046217ee..84fea6278 100644
--- a/js/jiddly-app/package-lock.json
+++ b/js/griddlyjs-app/package-lock.json
@@ -1,19 +1,21 @@
{
- "name": "jiddly-app",
- "version": "1.3.6",
+ "name": "griddlyjs-app",
+ "version": "1.4.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "jiddly-app",
- "version": "1.3.6",
+ "name": "griddlyjs-app",
+ "version": "1.4.0",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.1.1",
+ "@fortawesome/free-brands-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.18",
"@monaco-editor/react": "^4.4.2",
+ "@tensorflow/tfjs": "^3.18.0",
"@testing-library/jest-dom": "^5.16.3",
- "@testing-library/react": "^12.1.4",
+ "@testing-library/react": "^13.0.1",
"@testing-library/user-event": "^13.5.0",
"bootstrap": "^5.1.3",
"bootswatch": "^5.1.3",
@@ -28,36 +30,19 @@
}
},
"node_modules/@ampproject/remapping": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz",
- "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==",
+ "version": "2.2.0",
+ "license": "Apache-2.0",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.0"
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
"node": ">=6.0.0"
}
},
- "node_modules/@apideck/better-ajv-errors": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz",
- "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==",
- "dependencies": {
- "json-schema": "^0.4.0",
- "jsonpointer": "^5.0.0",
- "leven": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "ajv": ">=8"
- }
- },
"node_modules/@babel/code-frame": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
- "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.16.7"
},
@@ -66,32 +51,30 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz",
- "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==",
+ "version": "7.18.5",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz",
- "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==",
+ "version": "7.18.5",
+ "license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.17.7",
- "@babel/helper-compilation-targets": "^7.17.7",
- "@babel/helper-module-transforms": "^7.17.7",
- "@babel/helpers": "^7.17.8",
- "@babel/parser": "^7.17.8",
+ "@babel/generator": "^7.18.2",
+ "@babel/helper-compilation-targets": "^7.18.2",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helpers": "^7.18.2",
+ "@babel/parser": "^7.18.5",
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.17.3",
- "@babel/types": "^7.17.0",
+ "@babel/traverse": "^7.18.5",
+ "@babel/types": "^7.18.4",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.1.2",
+ "json5": "^2.2.1",
"semver": "^6.3.0"
},
"engines": {
@@ -102,18 +85,10 @@
"url": "https://opencollective.com/babel"
}
},
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/eslint-parser": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz",
- "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz",
+ "integrity": "sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==",
"dependencies": {
"eslint-scope": "^5.1.1",
"eslint-visitor-keys": "^2.1.0",
@@ -155,27 +130,30 @@
"node": ">=4.0"
}
},
- "node_modules/@babel/eslint-parser/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/generator": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz",
- "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==",
+ "version": "7.18.2",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.17.0",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
+ "@babel/types": "^7.18.2",
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "jsesc": "^2.5.1"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.1",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/@babel/helper-annotate-as-pure": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz",
@@ -200,13 +178,12 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz",
- "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==",
+ "version": "7.18.2",
+ "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.17.7",
+ "@babel/compat-data": "^7.17.10",
"@babel/helper-validator-option": "^7.16.7",
- "browserslist": "^4.17.5",
+ "browserslist": "^4.20.2",
"semver": "^6.3.0"
},
"engines": {
@@ -216,23 +193,15 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.17.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz",
- "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz",
+ "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
- "@babel/helper-member-expression-to-functions": "^7.16.7",
+ "@babel/helper-function-name": "^7.17.9",
+ "@babel/helper-member-expression-to-functions": "^7.17.7",
"@babel/helper-optimise-call-expression": "^7.16.7",
"@babel/helper-replace-supers": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7"
@@ -245,9 +214,9 @@
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz",
- "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz",
+ "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"regexpu-core": "^5.0.1"
@@ -277,21 +246,9 @@
"@babel/core": "^7.4.0-0"
}
},
- "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/helper-environment-visitor": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
- "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
- "dependencies": {
- "@babel/types": "^7.16.7"
- },
+ "version": "7.18.2",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -308,24 +265,11 @@
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
- "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==",
+ "version": "7.17.9",
+ "license": "MIT",
"dependencies": {
- "@babel/helper-get-function-arity": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/types": "^7.16.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-get-function-arity": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
- "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==",
- "dependencies": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.17.0"
},
"engines": {
"node": ">=6.9.0"
@@ -333,8 +277,7 @@
},
"node_modules/@babel/helper-hoist-variables": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
- "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -355,8 +298,7 @@
},
"node_modules/@babel/helper-module-imports": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
- "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -365,9 +307,8 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz",
- "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==",
+ "version": "7.18.0",
+ "license": "MIT",
"dependencies": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
@@ -375,8 +316,8 @@
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.17.3",
- "@babel/types": "^7.17.0"
+ "@babel/traverse": "^7.18.0",
+ "@babel/types": "^7.18.0"
},
"engines": {
"node": ">=6.9.0"
@@ -394,9 +335,9 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
- "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz",
+ "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==",
"engines": {
"node": ">=6.9.0"
}
@@ -415,26 +356,25 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz",
- "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz",
+ "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-member-expression-to-functions": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-member-expression-to-functions": "^7.17.7",
"@babel/helper-optimise-call-expression": "^7.16.7",
- "@babel/traverse": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz",
- "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==",
+ "version": "7.18.2",
+ "license": "MIT",
"dependencies": {
- "@babel/types": "^7.17.0"
+ "@babel/types": "^7.18.2"
},
"engines": {
"node": ">=6.9.0"
@@ -453,8 +393,7 @@
},
"node_modules/@babel/helper-split-export-declaration": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
- "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
+ "license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -464,16 +403,14 @@
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
- "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
- "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
@@ -493,22 +430,20 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz",
- "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==",
+ "version": "7.18.2",
+ "license": "MIT",
"dependencies": {
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.17.3",
- "@babel/types": "^7.17.0"
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.16.10",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
- "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
+ "version": "7.17.12",
+ "license": "MIT",
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
@@ -518,10 +453,59 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "license": "MIT"
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/@babel/parser": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz",
- "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==",
+ "version": "7.18.5",
+ "license": "MIT",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -530,11 +514,11 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz",
- "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz",
+ "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -544,13 +528,13 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz",
- "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz",
+ "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
- "@babel/plugin-proposal-optional-chaining": "^7.16.7"
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -560,11 +544,11 @@
}
},
"node_modules/@babel/plugin-proposal-async-generator-functions": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz",
- "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz",
+ "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-remap-async-to-generator": "^7.16.8",
"@babel/plugin-syntax-async-generators": "^7.8.4"
},
@@ -576,12 +560,12 @@
}
},
"node_modules/@babel/plugin-proposal-class-properties": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz",
- "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz",
+ "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -591,12 +575,12 @@
}
},
"node_modules/@babel/plugin-proposal-class-static-block": {
- "version": "7.17.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz",
- "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz",
+ "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.17.6",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-create-class-features-plugin": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
"engines": {
@@ -607,14 +591,15 @@
}
},
"node_modules/@babel/plugin-proposal-decorators": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz",
- "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz",
+ "integrity": "sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.17.6",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-replace-supers": "^7.16.7",
- "@babel/plugin-syntax-decorators": "^7.17.0",
+ "@babel/helper-create-class-features-plugin": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-replace-supers": "^7.18.2",
+ "@babel/helper-split-export-declaration": "^7.16.7",
+ "@babel/plugin-syntax-decorators": "^7.17.12",
"charcodes": "^0.2.0"
},
"engines": {
@@ -640,11 +625,11 @@
}
},
"node_modules/@babel/plugin-proposal-export-namespace-from": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz",
- "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz",
+ "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
},
"engines": {
@@ -655,11 +640,11 @@
}
},
"node_modules/@babel/plugin-proposal-json-strings": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz",
- "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz",
+ "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-json-strings": "^7.8.3"
},
"engines": {
@@ -670,11 +655,11 @@
}
},
"node_modules/@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz",
- "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz",
+ "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
},
"engines": {
@@ -685,11 +670,11 @@
}
},
"node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz",
- "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz",
+ "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
},
"engines": {
@@ -715,15 +700,15 @@
}
},
"node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.17.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz",
- "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz",
+ "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==",
"dependencies": {
- "@babel/compat-data": "^7.17.0",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/compat-data": "^7.17.10",
+ "@babel/helper-compilation-targets": "^7.17.10",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.16.7"
+ "@babel/plugin-transform-parameters": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -748,11 +733,11 @@
}
},
"node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz",
- "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz",
+ "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
},
@@ -764,12 +749,12 @@
}
},
"node_modules/@babel/plugin-proposal-private-methods": {
- "version": "7.16.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz",
- "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz",
+ "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.10",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -779,13 +764,13 @@
}
},
"node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz",
- "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz",
+ "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
"engines": {
@@ -796,12 +781,12 @@
}
},
"node_modules/@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz",
- "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz",
+ "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=4"
@@ -858,11 +843,11 @@
}
},
"node_modules/@babel/plugin-syntax-decorators": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz",
- "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz",
+ "integrity": "sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -894,11 +879,25 @@
}
},
"node_modules/@babel/plugin-syntax-flow": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz",
- "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz",
+ "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz",
+ "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -930,11 +929,11 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
- "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz",
+ "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1038,11 +1037,11 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz",
- "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz",
+ "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1052,11 +1051,11 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz",
- "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz",
+ "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1066,12 +1065,12 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz",
- "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz",
+ "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==",
"dependencies": {
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-remap-async-to-generator": "^7.16.8"
},
"engines": {
@@ -1096,11 +1095,11 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz",
- "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz",
+ "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1110,16 +1109,16 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz",
- "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz",
+ "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-function-name": "^7.17.9",
"@babel/helper-optimise-call-expression": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-replace-supers": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-replace-supers": "^7.18.2",
"@babel/helper-split-export-declaration": "^7.16.7",
"globals": "^11.1.0"
},
@@ -1131,11 +1130,11 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz",
- "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz",
+ "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1145,11 +1144,11 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz",
- "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz",
+ "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1174,11 +1173,11 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz",
- "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz",
+ "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1203,12 +1202,12 @@
}
},
"node_modules/@babel/plugin-transform-flow-strip-types": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz",
- "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz",
+ "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/plugin-syntax-flow": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/plugin-syntax-flow": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1218,11 +1217,11 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz",
- "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==",
+ "version": "7.18.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz",
+ "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1248,11 +1247,11 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz",
- "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz",
+ "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1276,12 +1275,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz",
- "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz",
+ "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
"engines": {
@@ -1292,13 +1291,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz",
- "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz",
+ "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-simple-access": "^7.17.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-simple-access": "^7.18.2",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
"engines": {
@@ -1309,13 +1308,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz",
- "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==",
+ "version": "7.18.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz",
+ "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==",
"dependencies": {
"@babel/helper-hoist-variables": "^7.16.7",
- "@babel/helper-module-transforms": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-identifier": "^7.16.7",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
@@ -1327,12 +1326,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz",
- "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz",
+ "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1342,11 +1341,12 @@
}
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz",
- "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz",
+ "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1356,11 +1356,11 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz",
- "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==",
+ "version": "7.18.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz",
+ "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1385,11 +1385,11 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz",
- "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz",
+ "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1413,11 +1413,11 @@
}
},
"node_modules/@babel/plugin-transform-react-constant-elements": {
- "version": "7.17.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz",
- "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.12.tgz",
+ "integrity": "sha512-maEkX2xs2STuv2Px8QuqxqjhV2LsFobT1elCgyU5704fcyTu9DyD/bJXxD/mrRiVyhpHweOQ00OJ5FKhHq9oEw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1441,15 +1441,15 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.17.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz",
- "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz",
+ "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/plugin-syntax-jsx": "^7.16.7",
- "@babel/types": "^7.17.0"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/plugin-syntax-jsx": "^7.17.12",
+ "@babel/types": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1473,12 +1473,12 @@
}
},
"node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz",
- "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz",
+ "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1488,11 +1488,12 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz",
- "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz",
+ "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==",
"dependencies": {
- "regenerator-transform": "^0.14.2"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "regenerator-transform": "^0.15.0"
},
"engines": {
"node": ">=6.9.0"
@@ -1502,11 +1503,11 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz",
- "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz",
+ "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1516,12 +1517,12 @@
}
},
"node_modules/@babel/plugin-transform-runtime": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz",
- "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==",
+ "version": "7.18.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz",
+ "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==",
"dependencies": {
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"babel-plugin-polyfill-corejs2": "^0.3.0",
"babel-plugin-polyfill-corejs3": "^0.5.0",
"babel-plugin-polyfill-regenerator": "^0.3.0",
@@ -1534,14 +1535,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/plugin-transform-shorthand-properties": {
"version": "7.16.7",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz",
@@ -1557,11 +1550,11 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz",
- "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz",
+ "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
},
"engines": {
@@ -1586,11 +1579,11 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz",
- "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz",
+ "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1600,11 +1593,11 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz",
- "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz",
+ "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1614,13 +1607,13 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz",
- "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz",
+ "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/plugin-syntax-typescript": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/plugin-syntax-typescript": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1659,36 +1652,37 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.16.11",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz",
- "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz",
+ "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==",
"dependencies": {
- "@babel/compat-data": "^7.16.8",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/compat-data": "^7.17.10",
+ "@babel/helper-compilation-targets": "^7.18.2",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-option": "^7.16.7",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7",
- "@babel/plugin-proposal-async-generator-functions": "^7.16.8",
- "@babel/plugin-proposal-class-properties": "^7.16.7",
- "@babel/plugin-proposal-class-static-block": "^7.16.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12",
+ "@babel/plugin-proposal-async-generator-functions": "^7.17.12",
+ "@babel/plugin-proposal-class-properties": "^7.17.12",
+ "@babel/plugin-proposal-class-static-block": "^7.18.0",
"@babel/plugin-proposal-dynamic-import": "^7.16.7",
- "@babel/plugin-proposal-export-namespace-from": "^7.16.7",
- "@babel/plugin-proposal-json-strings": "^7.16.7",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
+ "@babel/plugin-proposal-export-namespace-from": "^7.17.12",
+ "@babel/plugin-proposal-json-strings": "^7.17.12",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12",
"@babel/plugin-proposal-numeric-separator": "^7.16.7",
- "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.18.0",
"@babel/plugin-proposal-optional-catch-binding": "^7.16.7",
- "@babel/plugin-proposal-optional-chaining": "^7.16.7",
- "@babel/plugin-proposal-private-methods": "^7.16.11",
- "@babel/plugin-proposal-private-property-in-object": "^7.16.7",
- "@babel/plugin-proposal-unicode-property-regex": "^7.16.7",
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12",
+ "@babel/plugin-proposal-private-methods": "^7.17.12",
+ "@babel/plugin-proposal-private-property-in-object": "^7.17.12",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.17.12",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.17.12",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -1698,44 +1692,44 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.16.7",
- "@babel/plugin-transform-async-to-generator": "^7.16.8",
+ "@babel/plugin-transform-arrow-functions": "^7.17.12",
+ "@babel/plugin-transform-async-to-generator": "^7.17.12",
"@babel/plugin-transform-block-scoped-functions": "^7.16.7",
- "@babel/plugin-transform-block-scoping": "^7.16.7",
- "@babel/plugin-transform-classes": "^7.16.7",
- "@babel/plugin-transform-computed-properties": "^7.16.7",
- "@babel/plugin-transform-destructuring": "^7.16.7",
+ "@babel/plugin-transform-block-scoping": "^7.17.12",
+ "@babel/plugin-transform-classes": "^7.17.12",
+ "@babel/plugin-transform-computed-properties": "^7.17.12",
+ "@babel/plugin-transform-destructuring": "^7.18.0",
"@babel/plugin-transform-dotall-regex": "^7.16.7",
- "@babel/plugin-transform-duplicate-keys": "^7.16.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.17.12",
"@babel/plugin-transform-exponentiation-operator": "^7.16.7",
- "@babel/plugin-transform-for-of": "^7.16.7",
+ "@babel/plugin-transform-for-of": "^7.18.1",
"@babel/plugin-transform-function-name": "^7.16.7",
- "@babel/plugin-transform-literals": "^7.16.7",
+ "@babel/plugin-transform-literals": "^7.17.12",
"@babel/plugin-transform-member-expression-literals": "^7.16.7",
- "@babel/plugin-transform-modules-amd": "^7.16.7",
- "@babel/plugin-transform-modules-commonjs": "^7.16.8",
- "@babel/plugin-transform-modules-systemjs": "^7.16.7",
- "@babel/plugin-transform-modules-umd": "^7.16.7",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8",
- "@babel/plugin-transform-new-target": "^7.16.7",
+ "@babel/plugin-transform-modules-amd": "^7.18.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.18.2",
+ "@babel/plugin-transform-modules-systemjs": "^7.18.0",
+ "@babel/plugin-transform-modules-umd": "^7.18.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12",
+ "@babel/plugin-transform-new-target": "^7.17.12",
"@babel/plugin-transform-object-super": "^7.16.7",
- "@babel/plugin-transform-parameters": "^7.16.7",
+ "@babel/plugin-transform-parameters": "^7.17.12",
"@babel/plugin-transform-property-literals": "^7.16.7",
- "@babel/plugin-transform-regenerator": "^7.16.7",
- "@babel/plugin-transform-reserved-words": "^7.16.7",
+ "@babel/plugin-transform-regenerator": "^7.18.0",
+ "@babel/plugin-transform-reserved-words": "^7.17.12",
"@babel/plugin-transform-shorthand-properties": "^7.16.7",
- "@babel/plugin-transform-spread": "^7.16.7",
+ "@babel/plugin-transform-spread": "^7.17.12",
"@babel/plugin-transform-sticky-regex": "^7.16.7",
- "@babel/plugin-transform-template-literals": "^7.16.7",
- "@babel/plugin-transform-typeof-symbol": "^7.16.7",
+ "@babel/plugin-transform-template-literals": "^7.18.2",
+ "@babel/plugin-transform-typeof-symbol": "^7.17.12",
"@babel/plugin-transform-unicode-escapes": "^7.16.7",
"@babel/plugin-transform-unicode-regex": "^7.16.7",
"@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.16.8",
+ "@babel/types": "^7.18.2",
"babel-plugin-polyfill-corejs2": "^0.3.0",
"babel-plugin-polyfill-corejs3": "^0.5.0",
"babel-plugin-polyfill-regenerator": "^0.3.0",
- "core-js-compat": "^3.20.2",
+ "core-js-compat": "^3.22.1",
"semver": "^6.3.0"
},
"engines": {
@@ -1745,14 +1739,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/preset-env/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/@babel/preset-modules": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
@@ -1769,14 +1755,14 @@
}
},
"node_modules/@babel/preset-react": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz",
- "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz",
+ "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-option": "^7.16.7",
"@babel/plugin-transform-react-display-name": "^7.16.7",
- "@babel/plugin-transform-react-jsx": "^7.16.7",
+ "@babel/plugin-transform-react-jsx": "^7.17.12",
"@babel/plugin-transform-react-jsx-development": "^7.16.7",
"@babel/plugin-transform-react-pure-annotations": "^7.16.7"
},
@@ -1788,13 +1774,13 @@
}
},
"node_modules/@babel/preset-typescript": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz",
- "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz",
+ "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-option": "^7.16.7",
- "@babel/plugin-transform-typescript": "^7.16.7"
+ "@babel/plugin-transform-typescript": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1804,9 +1790,8 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz",
- "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==",
+ "version": "7.18.3",
+ "license": "MIT",
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
@@ -1815,9 +1800,9 @@
}
},
"node_modules/@babel/runtime-corejs3": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz",
- "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==",
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz",
+ "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==",
"dependencies": {
"core-js-pure": "^3.20.2",
"regenerator-runtime": "^0.13.4"
@@ -1828,8 +1813,7 @@
},
"node_modules/@babel/template": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
- "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
@@ -1840,18 +1824,17 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.17.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz",
- "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==",
+ "version": "7.18.5",
+ "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.17.3",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
+ "@babel/generator": "^7.18.2",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-function-name": "^7.17.9",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
- "@babel/parser": "^7.17.3",
- "@babel/types": "^7.17.0",
+ "@babel/parser": "^7.18.5",
+ "@babel/types": "^7.18.4",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -1860,9 +1843,8 @@
}
},
"node_modules/@babel/types": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
- "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
+ "version": "7.18.4",
+ "license": "MIT",
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
@@ -1881,10 +1863,29 @@
"resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz",
"integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg=="
},
- "node_modules/@csstools/postcss-color-function": {
+ "node_modules/@csstools/postcss-cascade-layers": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz",
- "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.0.3.tgz",
+ "integrity": "sha512-fvXP0+dcllGtRKAjA5n5tBr57xWQalKky09hSiXAZ9qqjHn0sDuQV2Jz0Y5zHRQ6iGrAjJZOf2+xQj3yuXfLwA==",
+ "dependencies": {
+ "@csstools/selector-specificity": "^2.0.0",
+ "postcss-selector-parser": "^6.0.10"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3"
+ }
+ },
+ "node_modules/@csstools/postcss-color-function": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz",
+ "integrity": "sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==",
"dependencies": {
"@csstools/postcss-progressive-custom-properties": "^1.1.0",
"postcss-value-parser": "^4.2.0"
@@ -1892,6 +1893,10 @@
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
@@ -1911,17 +1916,21 @@
}
},
"node_modules/@csstools/postcss-hwb-function": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz",
- "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.1.tgz",
+ "integrity": "sha512-AMZwWyHbbNLBsDADWmoXT9A5yl5dsGEBeJSJRUJt8Y9n8Ziu7Wstt4MC8jtPW7xjcLecyfJwtnUTNSmOzcnWeg==",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
- "postcss": "^8.3"
+ "postcss": "^8.4"
}
},
"node_modules/@csstools/postcss-ic-unit": {
@@ -1940,17 +1949,22 @@
}
},
"node_modules/@csstools/postcss-is-pseudo-class": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz",
- "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.5.tgz",
+ "integrity": "sha512-Ek+UFI4UP2hB9u0N1cJd6KgSF1rL0J3PT4is0oSStuus8+WzbGGPyJNMOKQ0w/tyPjxiCnOI4RdSMZt3nks64g==",
"dependencies": {
- "postcss-selector-parser": "^6.0.9"
+ "@csstools/selector-specificity": "^2.0.0",
+ "postcss-selector-parser": "^6.0.10"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
- "peerDependencies": {
- "postcss": "^8.4"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
}
},
"node_modules/@csstools/postcss-normalize-display-values": {
@@ -1968,9 +1982,9 @@
}
},
"node_modules/@csstools/postcss-oklab-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz",
- "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz",
+ "integrity": "sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==",
"dependencies": {
"@csstools/postcss-progressive-custom-properties": "^1.1.0",
"postcss-value-parser": "^4.2.0"
@@ -1978,6 +1992,10 @@
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
@@ -1996,19 +2014,86 @@
"postcss": "^8.3"
}
},
+ "node_modules/@csstools/postcss-stepped-value-functions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz",
+ "integrity": "sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3"
+ }
+ },
+ "node_modules/@csstools/postcss-trigonometric-functions": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.1.tgz",
+ "integrity": "sha512-G78CY/+GePc6dDCTUbwI6TTFQ5fs3N9POHhI6v0QzteGpf6ylARiJUNz9HrRKi4eVYBNXjae1W2766iUEFxHlw==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-unset-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.1.tgz",
+ "integrity": "sha512-f1G1WGDXEU/RN1TWAxBPQgQudtLnLQPyiWdtypkPC+mVYNKFKH/HYXSxH4MVNqwF8M0eDsoiU7HumJHCg/L/jg==",
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3"
+ }
+ },
+ "node_modules/@csstools/selector-specificity": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz",
+ "integrity": "sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==",
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3",
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
"node_modules/@eslint/eslintrc": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz",
- "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
+ "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.1",
- "globals": "^13.9.0",
+ "espree": "^9.3.2",
+ "globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
},
"engines": {
@@ -2016,9 +2101,9 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -2029,19 +2114,40 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz",
- "integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA==",
"hasInstallScript": true,
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/fontawesome-svg-core": {
"version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz",
- "integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": "6.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@fortawesome/free-brands-svg-icons": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.1.1.tgz",
+ "integrity": "sha512-mFbI/czjBZ+paUtw5NPr2IXjun5KAC8eFqh1hnxowjA4mMZxWz4GCIksq6j9ZSa6Uxj9JhjjDVEd77p2LN2Blg==",
"hasInstallScript": true,
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.1.1"
@@ -2052,9 +2158,8 @@
},
"node_modules/@fortawesome/free-solid-svg-icons": {
"version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.1.tgz",
- "integrity": "sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg==",
"hasInstallScript": true,
+ "license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.1.1"
},
@@ -2064,8 +2169,7 @@
},
"node_modules/@fortawesome/react-fontawesome": {
"version": "0.1.18",
- "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.18.tgz",
- "integrity": "sha512-RwLIB4TZw0M9gvy5u+TusAA0afbwM4JQIimNH/j3ygd6aIvYPQLqXMhC9ErY26J23rDPyDZldIfPq/HpTTJ/tQ==",
+ "license": "MIT",
"dependencies": {
"prop-types": "^15.8.1"
},
@@ -2107,14 +2211,6 @@
"node": ">=8"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
"node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -2183,14 +2279,6 @@
"node": ">=8"
}
},
- "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
@@ -2215,70 +2303,6 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/@jest/console/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/console/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/console/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/console/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/console/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@jest/core": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
@@ -2325,70 +2349,6 @@
}
}
},
- "node_modules/@jest/core/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/core/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/core/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/core/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/core/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/core/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@jest/environment": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
@@ -2475,76 +2435,14 @@
}
}
},
- "node_modules/@jest/reporters/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@jest/reporters/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/reporters/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/reporters/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/reporters/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/reporters/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@jest/reporters/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/@jest/schemas": {
+ "version": "28.0.2",
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "@sinclair/typebox": "^0.23.3"
},
"engines": {
- "node": ">=8"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@jest/source-map": {
@@ -2560,14 +2458,6 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/@jest/source-map/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/@jest/test-result": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
@@ -2621,183 +2511,88 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/@jest/transform/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
"dependencies": {
- "color-convert": "^2.0.1"
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/@jest/transform/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@jest/transform/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/transform/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/transform/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/transform/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@jest/transform/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/types": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
- "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
- "dependencies": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^16.0.0",
- "chalk": "^4.0.0"
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/@jest/types/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.0.7",
+ "license": "MIT",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": ">=6.0.0"
}
},
- "node_modules/@jest/types/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.1",
+ "license": "MIT",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": ">=6.0.0"
}
},
- "node_modules/@jest/types/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@jest/types/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@jest/types/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
}
},
- "node_modules/@jest/types/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
+ "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
},
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz",
- "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.11",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz",
- "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg=="
+ "version": "1.4.13",
+ "license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz",
- "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==",
+ "version": "0.3.13",
+ "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
+ "node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
+ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
+ },
"node_modules/@monaco-editor/loader": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.0.tgz",
- "integrity": "sha512-N3mGq1ktC3zh7WUx3NGO+PSDdNq9Vspk/41rEmRdrCqV9vNbBTRzAOplmUpNQsi+hmTs++ERMBobMERb8Kb+3g==",
+ "version": "1.3.2",
+ "license": "MIT",
"dependencies": {
"state-local": "^1.0.6"
},
@@ -2806,11 +2601,10 @@
}
},
"node_modules/@monaco-editor/react": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.4.2.tgz",
- "integrity": "sha512-QwQKkP5zXK8oA6uMpZcyQqYKQbMFUIE1Z9gPhYajk4qXdt/kGCu3RvO9SGKGlS9MSciCyd3WjEksVMDoyxQk4w==",
+ "version": "4.4.5",
+ "license": "MIT",
"dependencies": {
- "@monaco-editor/loader": "^1.3.0",
+ "@monaco-editor/loader": "^1.3.2",
"prop-types": "^15.7.2"
},
"peerDependencies": {
@@ -2852,9 +2646,9 @@
}
},
"node_modules/@pmmmwh/react-refresh-webpack-plugin": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz",
- "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.7.tgz",
+ "integrity": "sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q==",
"dependencies": {
"ansi-html-community": "^0.0.8",
"common-path-prefix": "^3.0.0",
@@ -2901,26 +2695,34 @@
}
},
"node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"engines": {
"node": ">= 8"
}
},
"node_modules/@popperjs/core": {
"version": "2.11.5",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz",
- "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
+ "node_modules/@react-aria/ssr": {
+ "version": "3.2.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@babel/runtime": "^7.6.2"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
+ }
+ },
"node_modules/@restart/hooks": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.6.tgz",
- "integrity": "sha512-FzpEzy6QeLB3OpUrC9OQD/lWCluQmilLfRGa/DqbB6OmV05AEt/0Lgn3Jf6l27UIJMK0qFmNcps6p8DNLXa6Pw==",
+ "version": "0.4.7",
+ "license": "MIT",
"dependencies": {
"dequal": "^2.0.2"
},
@@ -2930,8 +2732,7 @@
},
"node_modules/@restart/ui": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.2.0.tgz",
- "integrity": "sha512-oIh2t3tG8drZtZ9SlaV5CY6wGsUViHk8ZajjhcI+74IQHyWy+AnxDv8rJR5wVgsgcgrPBUvGNkC1AEdcGNPaLQ==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.13.16",
"@popperjs/core": "^2.10.1",
@@ -2948,17 +2749,6 @@
"react-dom": ">=16.14.0"
}
},
- "node_modules/@restart/ui/node_modules/@react-aria/ssr": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz",
- "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==",
- "dependencies": {
- "@babel/runtime": "^7.6.2"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1"
- }
- },
"node_modules/@rollup/plugin-babel": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
@@ -3034,9 +2824,13 @@
"integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
},
"node_modules/@rushstack/eslint-patch": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz",
- "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg=="
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz",
+ "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw=="
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.23.5",
+ "license": "MIT"
},
"node_modules/@sinonjs/commons": {
"version": "1.8.3",
@@ -3272,100 +3066,143 @@
"url": "https://github.com/sponsors/gregberge"
}
},
- "node_modules/@testing-library/dom": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.12.0.tgz",
- "integrity": "sha512-rBrJk5WjI02X1edtiUcZhgyhgBhiut96r5Jp8J5qktKdcvLcZpKDW8i2hkGMMItxrghjXuQ5AM6aE0imnFawaw==",
+ "node_modules/@tensorflow/tfjs": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.18.0.tgz",
+ "integrity": "sha512-mOzz4jJdgIpqFS7EHndVuxrQnLUDVIKGyTqOPTYps89fZwcOFfTVxi4BHemDNQpqlVE8IaGh9UUxVXpjgPY5+Q==",
"dependencies": {
- "@babel/code-frame": "^7.10.4",
- "@babel/runtime": "^7.12.5",
- "@types/aria-query": "^4.2.0",
- "aria-query": "^5.0.0",
+ "@tensorflow/tfjs-backend-cpu": "3.18.0",
+ "@tensorflow/tfjs-backend-webgl": "3.18.0",
+ "@tensorflow/tfjs-converter": "3.18.0",
+ "@tensorflow/tfjs-core": "3.18.0",
+ "@tensorflow/tfjs-data": "3.18.0",
+ "@tensorflow/tfjs-layers": "3.18.0",
+ "argparse": "^1.0.10",
"chalk": "^4.1.0",
- "dom-accessibility-api": "^0.5.9",
- "lz-string": "^1.4.4",
- "pretty-format": "^27.0.2"
+ "core-js": "3",
+ "regenerator-runtime": "^0.13.5",
+ "yargs": "^16.0.3"
},
- "engines": {
- "node": ">=12"
+ "bin": {
+ "tfjs-custom-module": "dist/tools/custom_module/cli.js"
}
},
- "node_modules/@testing-library/dom/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/@tensorflow/tfjs-backend-cpu": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.18.0.tgz",
+ "integrity": "sha512-LcSqlylzGtpgngcMFIL3q9Q3eVaPRJ7ITZt7ivhzkCj4R5ZsnPa9qM3DCVihkQ77heAwSw4hPTo2jp5C4mJ4Cg==",
"dependencies": {
- "color-convert": "^2.0.1"
+ "@types/seedrandom": "2.4.27",
+ "seedrandom": "2.4.3"
},
"engines": {
- "node": ">=8"
+ "yarn": ">= 1.3.2"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "3.18.0"
}
},
- "node_modules/@testing-library/dom/node_modules/aria-query": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
- "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==",
- "engines": {
- "node": ">=6.0"
- }
+ "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
+ "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q=="
},
- "node_modules/@testing-library/dom/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/@tensorflow/tfjs-backend-webgl": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.18.0.tgz",
+ "integrity": "sha512-3NknSzS1oX2BEBOrpjPMZl823S12RgshQthmIbG6QADHb4bCJA8aM4UjWpw+3bNQnRKbRDQdFbuvj10Un79s2A==",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "@tensorflow/tfjs-backend-cpu": "3.18.0",
+ "@types/offscreencanvas": "~2019.3.0",
+ "@types/seedrandom": "2.4.27",
+ "@types/webgl-ext": "0.0.30",
+ "@types/webgl2": "0.0.6",
+ "seedrandom": "2.4.3"
},
"engines": {
- "node": ">=10"
+ "yarn": ">= 1.3.2"
},
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "3.18.0"
}
},
- "node_modules/@testing-library/dom/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/seedrandom": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
+ "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q=="
+ },
+ "node_modules/@tensorflow/tfjs-converter": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.18.0.tgz",
+ "integrity": "sha512-hpChA+zVNQOVwRnCfqDb1WI9jbEAKA6DuEm4m75Zb3dIlE6VVooDmAaHBhlc++z2q2G1sBzF9A4Bv48SUpN6vA==",
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "3.18.0"
+ }
+ },
+ "node_modules/@tensorflow/tfjs-core": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.18.0.tgz",
+ "integrity": "sha512-gMxisZozqsr5sCKlphF/eVBLg91MjlBiN60tjX8hJAu0WlSn6Gi5k65GNIL+Pq6hrxpvImcfdCmTH/2XJVZ0Mg==",
"dependencies": {
- "color-name": "~1.1.4"
+ "@types/long": "^4.0.1",
+ "@types/offscreencanvas": "~2019.3.0",
+ "@types/seedrandom": "2.4.27",
+ "@types/webgl-ext": "0.0.30",
+ "@webgpu/types": "^0.1.16",
+ "long": "4.0.0",
+ "node-fetch": "~2.6.1",
+ "seedrandom": "2.4.3"
},
"engines": {
- "node": ">=7.0.0"
+ "yarn": ">= 1.3.2"
}
},
- "node_modules/@testing-library/dom/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ "node_modules/@tensorflow/tfjs-core/node_modules/seedrandom": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
+ "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q=="
},
- "node_modules/@testing-library/dom/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
+ "node_modules/@tensorflow/tfjs-data": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.18.0.tgz",
+ "integrity": "sha512-s43vISJh8K/UN2E2zGRhtj/Kyn8dr4ll8EQkapwzm7fGO9afXCnMsTp6rkZq3fFXouCYA2k1B/j7JssIDr50+w==",
+ "dependencies": {
+ "@types/node-fetch": "^2.1.2",
+ "node-fetch": "~2.6.1"
+ },
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "3.18.0",
+ "seedrandom": "~2.4.3"
}
},
- "node_modules/@testing-library/dom/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/@tensorflow/tfjs-layers": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.18.0.tgz",
+ "integrity": "sha512-AV7yDnPlH+RCcq8VPqkX1iyEchObE+e66m0XmJvLj+ncfKHYLa+39ZNroUA+OgB2/cMG6jgq77R4EhZbT6hwJA==",
+ "peerDependencies": {
+ "@tensorflow/tfjs-core": "3.18.0"
+ }
+ },
+ "node_modules/@testing-library/dom": {
+ "version": "8.14.0",
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "@babel/code-frame": "^7.10.4",
+ "@babel/runtime": "^7.12.5",
+ "@types/aria-query": "^4.2.0",
+ "aria-query": "^5.0.0",
+ "chalk": "^4.1.0",
+ "dom-accessibility-api": "^0.5.9",
+ "lz-string": "^1.4.4",
+ "pretty-format": "^27.0.2"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
}
},
"node_modules/@testing-library/jest-dom": {
- "version": "5.16.3",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.3.tgz",
- "integrity": "sha512-u5DfKj4wfSt6akfndfu1eG06jsdyA/IUrlX2n3pyq5UXgXMhXY+NJb8eNK/7pqPWAhCKsCGWDdDO0zKMKAYkEA==",
+ "version": "5.16.4",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.9.2",
"@types/testing-library__jest-dom": "^5.9.1",
@@ -3383,32 +3220,9 @@
"yarn": ">=1"
}
},
- "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@testing-library/jest-dom/node_modules/aria-query": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
- "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==",
- "engines": {
- "node": ">=6.0"
- }
- },
"node_modules/@testing-library/jest-dom/node_modules/chalk": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -3417,62 +3231,26 @@
"node": ">=8"
}
},
- "node_modules/@testing-library/jest-dom/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@testing-library/jest-dom/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/@testing-library/jest-dom/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@testing-library/jest-dom/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@testing-library/react": {
- "version": "12.1.4",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz",
- "integrity": "sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==",
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.0.1.tgz",
+ "integrity": "sha512-zeHx3PohYYp+4bTJwrixQY8zSBZjWUGwYc7OhD1EpWTHS92RleApLoP72NdwaWxOrM1P1Uezt3XvGf6t2XSWPQ==",
"dependencies": {
"@babel/runtime": "^7.12.5",
- "@testing-library/dom": "^8.0.0",
- "@types/react-dom": "*"
+ "@testing-library/dom": "^8.5.0",
+ "@types/react-dom": "^18.0.0"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
- "react": "*",
- "react-dom": "*"
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
}
},
"node_modules/@testing-library/user-event": {
"version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz",
- "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.5"
},
@@ -3502,8 +3280,7 @@
},
"node_modules/@types/aria-query": {
"version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig=="
+ "license": "MIT"
},
"node_modules/@types/babel__core": {
"version": "7.1.19",
@@ -3535,9 +3312,9 @@
}
},
"node_modules/@types/babel__traverse": {
- "version": "7.14.2",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz",
- "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==",
+ "version": "7.17.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz",
+ "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==",
"dependencies": {
"@babel/types": "^7.3.0"
}
@@ -3611,9 +3388,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "4.17.28",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz",
- "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==",
+ "version": "4.17.29",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz",
+ "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==",
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -3634,18 +3411,13 @@
"integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
},
"node_modules/@types/http-proxy": {
- "version": "1.17.8",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz",
- "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==",
+ "version": "1.17.9",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
+ "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
"dependencies": {
"@types/node": "*"
}
},
- "node_modules/@types/invariant": {
- "version": "2.2.35",
- "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz",
- "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg=="
- },
"node_modules/@types/istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@@ -3668,14 +3440,40 @@
}
},
"node_modules/@types/jest": {
- "version": "27.4.1",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz",
- "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==",
+ "version": "28.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "jest-matcher-utils": "^28.0.0",
+ "pretty-format": "^28.0.0"
+ }
+ },
+ "node_modules/@types/jest/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@types/jest/node_modules/pretty-format": {
+ "version": "28.1.1",
+ "license": "MIT",
"dependencies": {
- "jest-matcher-utils": "^27.0.0",
- "pretty-format": "^27.0.0"
+ "@jest/schemas": "^28.0.2",
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
+ "node_modules/@types/jest/node_modules/react-is": {
+ "version": "18.2.0",
+ "license": "MIT"
+ },
"node_modules/@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
@@ -3684,7 +3482,12 @@
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4="
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ },
+ "node_modules/@types/long": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
},
"node_modules/@types/mime": {
"version": "1.3.2",
@@ -3692,9 +3495,22 @@
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
},
"node_modules/@types/node": {
- "version": "17.0.23",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz",
- "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw=="
+ "version": "18.0.0",
+ "license": "MIT"
+ },
+ "node_modules/@types/node-fetch": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
+ "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
+ "dependencies": {
+ "@types/node": "*",
+ "form-data": "^3.0.0"
+ }
+ },
+ "node_modules/@types/offscreencanvas": {
+ "version": "2019.3.0",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz",
+ "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q=="
},
"node_modules/@types/parse-json": {
"version": "4.0.0",
@@ -3702,14 +3518,13 @@
"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
},
"node_modules/@types/prettier": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz",
- "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA=="
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz",
+ "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg=="
},
"node_modules/@types/prop-types": {
- "version": "15.7.4",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
- "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
+ "version": "15.7.5",
+ "license": "MIT"
},
"node_modules/@types/q": {
"version": "1.5.5",
@@ -3727,9 +3542,8 @@
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"node_modules/@types/react": {
- "version": "17.0.43",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz",
- "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==",
+ "version": "17.0.47",
+ "license": "MIT",
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -3737,17 +3551,16 @@
}
},
"node_modules/@types/react-dom": {
- "version": "17.0.14",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz",
- "integrity": "sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==",
+ "version": "18.0.5",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz",
+ "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==",
"dependencies": {
"@types/react": "*"
}
},
"node_modules/@types/react-transition-group": {
"version": "4.4.4",
- "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
- "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==",
+ "license": "MIT",
"dependencies": {
"@types/react": "*"
}
@@ -3761,14 +3574,18 @@
}
},
"node_modules/@types/retry": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz",
- "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g=="
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
},
"node_modules/@types/scheduler": {
"version": "0.16.2",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
- "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ "license": "MIT"
+ },
+ "node_modules/@types/seedrandom": {
+ "version": "2.4.27",
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz",
+ "integrity": "sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ=="
},
"node_modules/@types/serve-index": {
"version": "1.9.1",
@@ -3801,9 +3618,8 @@
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
"node_modules/@types/testing-library__jest-dom": {
- "version": "5.14.3",
- "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz",
- "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==",
+ "version": "5.14.4",
+ "license": "MIT",
"dependencies": {
"@types/jest": "*"
}
@@ -3815,8 +3631,17 @@
},
"node_modules/@types/warning": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI="
+ "license": "MIT"
+ },
+ "node_modules/@types/webgl-ext": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
+ "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg=="
+ },
+ "node_modules/@types/webgl2": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.6.tgz",
+ "integrity": "sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ=="
},
"node_modules/@types/ws": {
"version": "8.5.3",
@@ -3840,18 +3665,18 @@
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz",
- "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==",
- "dependencies": {
- "@typescript-eslint/scope-manager": "5.17.0",
- "@typescript-eslint/type-utils": "5.17.0",
- "@typescript-eslint/utils": "5.17.0",
- "debug": "^4.3.2",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz",
+ "integrity": "sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.29.0",
+ "@typescript-eslint/type-utils": "5.29.0",
+ "@typescript-eslint/utils": "5.29.0",
+ "debug": "^4.3.4",
"functional-red-black-tree": "^1.0.1",
- "ignore": "^5.1.8",
+ "ignore": "^5.2.0",
"regexpp": "^3.2.0",
- "semver": "^7.3.5",
+ "semver": "^7.3.7",
"tsutils": "^3.21.0"
},
"engines": {
@@ -3871,12 +3696,26 @@
}
}
},
- "node_modules/@typescript-eslint/experimental-utils": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz",
- "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==",
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dependencies": {
- "@typescript-eslint/utils": "5.17.0"
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/experimental-utils": {
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.29.0.tgz",
+ "integrity": "sha512-H4fqOVYiH6R15NjtMO2LVBZgzXgzjdPEXYb7x/meg4QbXsptLxdq8YlHK2NZOFKipuInY4sAPY5a6SQ/53s3dw==",
+ "dependencies": {
+ "@typescript-eslint/utils": "5.29.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3890,14 +3729,14 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz",
- "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.29.0.tgz",
+ "integrity": "sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==",
"dependencies": {
- "@typescript-eslint/scope-manager": "5.17.0",
- "@typescript-eslint/types": "5.17.0",
- "@typescript-eslint/typescript-estree": "5.17.0",
- "debug": "^4.3.2"
+ "@typescript-eslint/scope-manager": "5.29.0",
+ "@typescript-eslint/types": "5.29.0",
+ "@typescript-eslint/typescript-estree": "5.29.0",
+ "debug": "^4.3.4"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3916,12 +3755,12 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz",
- "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz",
+ "integrity": "sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==",
"dependencies": {
- "@typescript-eslint/types": "5.17.0",
- "@typescript-eslint/visitor-keys": "5.17.0"
+ "@typescript-eslint/types": "5.29.0",
+ "@typescript-eslint/visitor-keys": "5.29.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3932,12 +3771,12 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz",
- "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.29.0.tgz",
+ "integrity": "sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==",
"dependencies": {
- "@typescript-eslint/utils": "5.17.0",
- "debug": "^4.3.2",
+ "@typescript-eslint/utils": "5.29.0",
+ "debug": "^4.3.4",
"tsutils": "^3.21.0"
},
"engines": {
@@ -3957,9 +3796,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz",
- "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.29.0.tgz",
+ "integrity": "sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg==",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
@@ -3969,16 +3808,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz",
- "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==",
- "dependencies": {
- "@typescript-eslint/types": "5.17.0",
- "@typescript-eslint/visitor-keys": "5.17.0",
- "debug": "^4.3.2",
- "globby": "^11.0.4",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz",
+ "integrity": "sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==",
+ "dependencies": {
+ "@typescript-eslint/types": "5.29.0",
+ "@typescript-eslint/visitor-keys": "5.29.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
"is-glob": "^4.0.3",
- "semver": "^7.3.5",
+ "semver": "^7.3.7",
"tsutils": "^3.21.0"
},
"engines": {
@@ -3994,15 +3833,29 @@
}
}
},
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/@typescript-eslint/utils": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz",
- "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.29.0.tgz",
+ "integrity": "sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==",
"dependencies": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.17.0",
- "@typescript-eslint/types": "5.17.0",
- "@typescript-eslint/typescript-estree": "5.17.0",
+ "@typescript-eslint/scope-manager": "5.29.0",
+ "@typescript-eslint/types": "5.29.0",
+ "@typescript-eslint/typescript-estree": "5.29.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
},
@@ -4038,12 +3891,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz",
- "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz",
+ "integrity": "sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==",
"dependencies": {
- "@typescript-eslint/types": "5.17.0",
- "eslint-visitor-keys": "^3.0.0"
+ "@typescript-eslint/types": "5.29.0",
+ "eslint-visitor-keys": "^3.3.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -4184,6 +4037,11 @@
"@xtuc/long": "4.2.2"
}
},
+ "node_modules/@webgpu/types": {
+ "version": "0.1.20",
+ "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.20.tgz",
+ "integrity": "sha512-MFb5oyxX+A7PWQNjcY3kSCSG2FAHaBo7IJBWtxWFgsS20FtY3D9UY7lYqLZ6avS8fSkdSylIS4qiHzFlQUdXag=="
+ },
"node_modules/@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -4195,9 +4053,9 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
},
"node_modules/abab": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
- "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
},
"node_modules/accepts": {
"version": "1.3.8",
@@ -4212,9 +4070,9 @@
}
},
"node_modules/acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"bin": {
"acorn": "bin/acorn"
},
@@ -4288,11 +4146,11 @@
}
},
"node_modules/address": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
- "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz",
+ "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==",
"engines": {
- "node": ">= 0.12.0"
+ "node": ">= 10.0.0"
}
},
"node_modules/adjust-sourcemap-loader": {
@@ -4318,18 +4176,6 @@
"node": ">= 6.0.0"
}
},
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -4403,17 +4249,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/ansi-html-community": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
@@ -4427,27 +4262,27 @@
},
"node_modules/ansi-regex": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "version": "4.3.0",
+ "license": "MIT",
"dependencies": {
- "color-convert": "^1.9.0"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
"node_modules/anymatch": {
"version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "license": "ISC",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -4457,23 +4292,20 @@
}
},
"node_modules/arg": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz",
- "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA=="
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
},
"node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "version": "1.0.10",
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
},
"node_modules/aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
- "dependencies": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
- },
+ "version": "5.0.0",
+ "license": "Apache-2.0",
"engines": {
"node": ">=6.0"
}
@@ -4484,13 +4316,13 @@
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
},
"node_modules/array-includes": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
- "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
+ "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5",
"get-intrinsic": "^1.1.1",
"is-string": "^1.0.7"
},
@@ -4510,13 +4342,14 @@
}
},
"node_modules/array.prototype.flat": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
- "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
+ "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "es-abstract": "^1.19.2",
+ "es-shim-unscopables": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -4526,13 +4359,32 @@
}
},
"node_modules/array.prototype.flatmap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
- "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz",
+ "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==",
"dependencies": {
- "call-bind": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.2",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.reduce": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz",
+ "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "es-abstract": "^1.19.2",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
},
"engines": {
"node": ">= 0.4"
@@ -4544,25 +4396,21 @@
"node_modules/asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
},
"node_modules/ast-types-flow": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
+ "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
},
"node_modules/async": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
- "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
- "dependencies": {
- "lodash": "^4.17.14"
- }
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
"node_modules/asynckit": {
"version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ "license": "MIT"
},
"node_modules/at-least-node": {
"version": "1.0.0",
@@ -4574,8 +4422,7 @@
},
"node_modules/atob": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "license": "(MIT OR Apache-2.0)",
"bin": {
"atob": "bin/atob.js"
},
@@ -4584,9 +4431,9 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.4",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz",
- "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==",
+ "version": "10.4.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz",
+ "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==",
"funding": [
{
"type": "opencollective",
@@ -4598,8 +4445,8 @@
}
],
"dependencies": {
- "browserslist": "^4.20.2",
- "caniuse-lite": "^1.0.30001317",
+ "browserslist": "^4.20.3",
+ "caniuse-lite": "^1.0.30001335",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -4616,11 +4463,11 @@
}
},
"node_modules/axe-core": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz",
- "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==",
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz",
+ "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==",
"engines": {
- "node": ">=4"
+ "node": ">=12"
}
},
"node_modules/axobject-query": {
@@ -4649,74 +4496,10 @@
"@babel/core": "^7.8.0"
}
},
- "node_modules/babel-jest/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/babel-jest/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/babel-jest/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/babel-jest/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/babel-jest/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-jest/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/babel-loader": {
- "version": "8.2.4",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz",
- "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==",
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
+ "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
"dependencies": {
"find-cache-dir": "^3.3.1",
"loader-utils": "^2.0.0",
@@ -4801,8 +4584,7 @@
},
"node_modules/babel-plugin-named-asset-import": {
"version": "0.3.8",
- "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz",
- "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==",
+ "license": "MIT",
"peerDependencies": {
"@babel/core": "^7.1.0"
}
@@ -4820,14 +4602,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/babel-plugin-polyfill-corejs3": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz",
@@ -4924,7 +4698,7 @@
"node_modules/batch": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
},
"node_modules/bfj": {
"version": "7.0.2",
@@ -4950,8 +4724,7 @@
},
"node_modules/binary-extensions": {
"version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -4962,23 +4735,26 @@
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
"node_modules/body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
"dependencies": {
"bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.8.1",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.9.7",
- "raw-body": "2.4.3",
- "type-is": "~1.6.18"
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/body-parser/node_modules/bytes": {
@@ -4997,33 +4773,41 @@
"ms": "2.0.0"
}
},
+ "node_modules/body-parser/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
- "node_modules/bonjour": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
- "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "node_modules/bonjour-service": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz",
+ "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==",
"dependencies": {
- "array-flatten": "^2.1.0",
- "deep-equal": "^1.0.1",
+ "array-flatten": "^2.1.2",
"dns-equal": "^1.0.0",
- "dns-txt": "^2.0.2",
- "multicast-dns": "^6.0.1",
- "multicast-dns-service-types": "^1.1.0"
+ "fast-deep-equal": "^3.1.3",
+ "multicast-dns": "^7.2.5"
}
},
"node_modules/boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
},
"node_modules/bootstrap": {
"version": "5.1.3",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz",
- "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/bootstrap"
@@ -5034,8 +4818,7 @@
},
"node_modules/bootswatch": {
"version": "5.1.3",
- "resolved": "https://registry.npmjs.org/bootswatch/-/bootswatch-5.1.3.tgz",
- "integrity": "sha512-NmZFN6rOCoXWQ/PkzmD8FFWDe24kocX9OXWHNVaLxVVnpqpAzEbMFsf8bAfKwVtpNXibasZCzv09B5fLieAh2g=="
+ "license": "MIT"
},
"node_modules/brace-expansion": {
"version": "1.1.11",
@@ -5048,8 +4831,7 @@
},
"node_modules/braces": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "license": "MIT",
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -5063,9 +4845,7 @@
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
},
"node_modules/browserslist": {
- "version": "4.20.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz",
- "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==",
+ "version": "4.20.4",
"funding": [
{
"type": "opencollective",
@@ -5076,11 +4856,12 @@
"url": "https://tidelift.com/funding/github/npm/browserslist"
}
],
+ "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001317",
- "electron-to-chromium": "^1.4.84",
+ "caniuse-lite": "^1.0.30001349",
+ "electron-to-chromium": "^1.4.147",
"escalade": "^3.1.1",
- "node-releases": "^2.0.2",
+ "node-releases": "^2.0.5",
"picocolors": "^1.0.0"
},
"bin": {
@@ -5103,15 +4884,10 @@
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
- "node_modules/buffer-indexof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
- "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="
- },
"node_modules/builtin-modules": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz",
- "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"engines": {
"node": ">=6"
},
@@ -5122,7 +4898,7 @@
"node_modules/bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
"engines": {
"node": ">= 0.8"
}
@@ -5156,11 +4932,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/camel-case/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
"node_modules/camelcase": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
@@ -5192,9 +4963,7 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001323",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001323.tgz",
- "integrity": "sha512-e4BF2RlCVELKx8+RmklSEIVub1TWrmdhvA5kEUueummz1XyySW0DVk+3x9HyhU9MuWTa2BhqLgEuEmUwASAdCA==",
+ "version": "1.0.30001358",
"funding": [
{
"type": "opencollective",
@@ -5204,7 +4973,8 @@
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
}
- ]
+ ],
+ "license": "CC-BY-4.0"
},
"node_modules/case-sensitive-paths-webpack-plugin": {
"version": "2.4.0",
@@ -5215,16 +4985,17 @@
}
},
"node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "4.1.2",
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/char-regex": {
@@ -5250,14 +5021,13 @@
},
"node_modules/chokidar": {
"version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"funding": [
{
"type": "individual",
"url": "https://paulmillr.com/funding/"
}
],
+ "license": "MIT",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -5276,8 +5046,7 @@
},
"node_modules/chokidar/node_modules/glob-parent": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -5294,9 +5063,9 @@
}
},
"node_modules/ci-info": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz",
- "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw=="
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz",
+ "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg=="
},
"node_modules/cjs-module-lexer": {
"version": "1.2.2",
@@ -5305,8 +5074,7 @@
},
"node_modules/classnames": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
- "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
+ "license": "MIT"
},
"node_modules/clean-css": {
"version": "5.3.0",
@@ -5319,26 +5087,9 @@
"node": ">= 10.0"
}
},
- "node_modules/clean-css/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/cliui": {
"version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "license": "ISC",
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -5348,7 +5099,7 @@
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"engines": {
"iojs": ">= 1.0.0",
"node": ">= 0.12.0"
@@ -5367,12 +5118,31 @@
"node": ">= 4.0"
}
},
- "node_modules/collect-v8-coverage": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
- "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg=="
+ "node_modules/coa/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "node_modules/color-convert": {
+ "node_modules/coa/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/coa/node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
@@ -5380,38 +5150,75 @@
"color-name": "1.1.3"
}
},
- "node_modules/color-name": {
+ "node_modules/coa/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "node_modules/colord": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz",
- "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ=="
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
- "node_modules/colorette": {
- "version": "2.0.16",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
- "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g=="
+ "node_modules/coa/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
},
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "node_modules/coa/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dependencies": {
- "delayed-stream": "~1.0.0"
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+ "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg=="
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "license": "MIT"
+ },
+ "node_modules/colord": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz",
+ "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ=="
+ },
+ "node_modules/colorette": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
"engines": {
- "node": ">= 10"
+ "node": ">= 12"
}
},
"node_modules/common-path-prefix": {
@@ -5430,7 +5237,7 @@
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
},
"node_modules/compressible": {
"version": "2.0.18",
@@ -5471,12 +5278,12 @@
"node_modules/compression/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/confusing-browser-globals": {
"version": "1.0.11",
@@ -5531,16 +5338,15 @@
},
"node_modules/convert-source-map": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.1"
}
},
"node_modules/cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
"engines": {
"node": ">= 0.6"
}
@@ -5548,24 +5354,23 @@
"node_modules/cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"node_modules/core-js": {
- "version": "3.21.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz",
- "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==",
+ "version": "3.23.2",
"hasInstallScript": true,
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
}
},
"node_modules/core-js-compat": {
- "version": "3.21.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz",
- "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==",
+ "version": "3.23.2",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz",
+ "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==",
"dependencies": {
- "browserslist": "^4.19.1",
+ "browserslist": "^4.20.4",
"semver": "7.0.0"
},
"funding": {
@@ -5582,9 +5387,9 @@
}
},
"node_modules/core-js-pure": {
- "version": "3.21.1",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz",
- "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==",
+ "version": "3.23.2",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.2.tgz",
+ "integrity": "sha512-t6u7H4Ff/yZNk+zqTr74UjCcZ3k8ApBryeLLV4rYQd9aF3gqmjjGjjR44ENfeBMH8VVvSynIjAJ0mUuFhzQtrA==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -5634,8 +5439,7 @@
},
"node_modules/css": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
- "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==",
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.4",
"source-map": "^0.6.1",
@@ -5660,9 +5464,9 @@
}
},
"node_modules/css-declaration-sorter": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz",
- "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz",
+ "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==",
"engines": {
"node": "^10 || ^12 || >=14"
},
@@ -5712,6 +5516,20 @@
"webpack": "^5.0.0"
}
},
+ "node_modules/css-loader/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/css-minimizer-webpack-plugin": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz",
@@ -5798,14 +5616,6 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/css-prefers-color-scheme": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz",
@@ -5821,14 +5631,18 @@
}
},
"node_modules/css-select": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
- "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
"dependencies": {
"boolbase": "^1.0.0",
- "css-what": "^3.2.1",
- "domutils": "^1.7.0",
- "nth-check": "^1.0.2"
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
}
},
"node_modules/css-select-base-adapter": {
@@ -5848,18 +5662,10 @@
"node": ">=8.0.0"
}
},
- "node_modules/css-tree/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/css-what": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
- "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
"engines": {
"node": ">= 6"
},
@@ -5869,21 +5675,16 @@
},
"node_modules/css.escape": {
"version": "1.5.1",
- "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
- "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s="
- },
- "node_modules/css/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
+ "license": "MIT"
},
"node_modules/cssdb": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz",
- "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA=="
+ "version": "6.6.3",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.3.tgz",
+ "integrity": "sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
},
"node_modules/cssesc": {
"version": "3.0.0",
@@ -5897,11 +5698,11 @@
}
},
"node_modules/cssnano": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.6.tgz",
- "integrity": "sha512-A7oX6Vxgpc/VzyKDTLEFpv6M0n06foVSWPAb+Xg0k6ikgSaI04SnGUKOQeBdvrXZCqhp3xdlii0cp+bUCgbCRQ==",
+ "version": "5.1.12",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz",
+ "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==",
"dependencies": {
- "cssnano-preset-default": "^5.2.6",
+ "cssnano-preset-default": "^5.2.12",
"lilconfig": "^2.0.3",
"yaml": "^1.10.2"
},
@@ -5917,35 +5718,35 @@
}
},
"node_modules/cssnano-preset-default": {
- "version": "5.2.6",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.6.tgz",
- "integrity": "sha512-QwnYv/ZuNH0eWOxs3ME7w5uXXdWZKKXVGn1c6P877nPLl7SR8pAQQNe1CKbcPc+qpIbb2cq554Cv3QYG0MxTSQ==",
+ "version": "5.2.12",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz",
+ "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==",
"dependencies": {
- "css-declaration-sorter": "^6.2.2",
+ "css-declaration-sorter": "^6.3.0",
"cssnano-utils": "^3.1.0",
"postcss-calc": "^8.2.3",
"postcss-colormin": "^5.3.0",
- "postcss-convert-values": "^5.1.0",
- "postcss-discard-comments": "^5.1.1",
+ "postcss-convert-values": "^5.1.2",
+ "postcss-discard-comments": "^5.1.2",
"postcss-discard-duplicates": "^5.1.0",
"postcss-discard-empty": "^5.1.1",
"postcss-discard-overridden": "^5.1.0",
- "postcss-merge-longhand": "^5.1.3",
- "postcss-merge-rules": "^5.1.1",
+ "postcss-merge-longhand": "^5.1.6",
+ "postcss-merge-rules": "^5.1.2",
"postcss-minify-font-values": "^5.1.0",
"postcss-minify-gradients": "^5.1.1",
- "postcss-minify-params": "^5.1.2",
- "postcss-minify-selectors": "^5.2.0",
+ "postcss-minify-params": "^5.1.3",
+ "postcss-minify-selectors": "^5.2.1",
"postcss-normalize-charset": "^5.1.0",
"postcss-normalize-display-values": "^5.1.0",
- "postcss-normalize-positions": "^5.1.0",
- "postcss-normalize-repeat-style": "^5.1.0",
+ "postcss-normalize-positions": "^5.1.1",
+ "postcss-normalize-repeat-style": "^5.1.1",
"postcss-normalize-string": "^5.1.0",
"postcss-normalize-timing-functions": "^5.1.0",
"postcss-normalize-unicode": "^5.1.0",
"postcss-normalize-url": "^5.1.0",
"postcss-normalize-whitespace": "^5.1.1",
- "postcss-ordered-values": "^5.1.1",
+ "postcss-ordered-values": "^5.1.3",
"postcss-reduce-initial": "^5.1.0",
"postcss-reduce-transforms": "^5.1.0",
"postcss-svgo": "^5.1.0",
@@ -5997,14 +5798,6 @@
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
},
- "node_modules/csso/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/cssom": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
@@ -6027,9 +5820,8 @@
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
},
"node_modules/csstype": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
- "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw=="
+ "version": "3.1.0",
+ "license": "MIT"
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
@@ -6049,10 +5841,33 @@
"node": ">=10"
}
},
+ "node_modules/data-urls/node_modules/tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/data-urls/node_modules/whatwg-url": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "dependencies": {
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/debug": {
"version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -6072,8 +5887,7 @@
},
"node_modules/decode-uri-component": {
"version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "license": "MIT",
"engines": {
"node": ">=0.10"
}
@@ -6081,23 +5895,7 @@
"node_modules/dedent": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw="
- },
- "node_modules/deep-equal": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
- "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
- "dependencies": {
- "is-arguments": "^1.0.4",
- "is-date-object": "^1.0.1",
- "is-regex": "^1.0.4",
- "object-is": "^1.0.1",
- "object-keys": "^1.1.1",
- "regexp.prototype.flags": "^1.2.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
},
"node_modules/deep-is": {
"version": "0.1.4",
@@ -6132,70 +5930,55 @@
}
},
"node_modules/define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
"dependencies": {
- "object-keys": "^1.0.12"
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
- },
- "node_modules/del": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz",
- "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==",
- "dependencies": {
- "globby": "^11.0.1",
- "graceful-fs": "^4.2.4",
- "is-glob": "^4.0.1",
- "is-path-cwd": "^2.2.0",
- "is-path-inside": "^3.0.2",
- "p-map": "^4.0.0",
- "rimraf": "^3.0.2",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
+ "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
},
"node_modules/delayed-stream": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/dequal": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
- "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
},
"node_modules/detect-newline": {
"version": "3.1.0",
@@ -6237,16 +6020,16 @@
"node_modules/detect-port-alt/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/detective": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
- "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
"dependencies": {
- "acorn-node": "^1.6.1",
+ "acorn-node": "^1.8.2",
"defined": "^1.0.0",
- "minimist": "^1.1.1"
+ "minimist": "^1.2.6"
},
"bin": {
"detective": "bin/detective.js"
@@ -6261,11 +6044,10 @@
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
},
"node_modules/diff-sequences": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
- "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
+ "version": "28.1.1",
+ "license": "MIT",
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/dir-glob": {
@@ -6287,23 +6069,17 @@
"node_modules/dns-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
- "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
+ "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg=="
},
"node_modules/dns-packet": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz",
- "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==",
- "dependencies": {
- "ip": "^1.1.0",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/dns-txt": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
- "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz",
+ "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
"dependencies": {
- "buffer-indexof": "^1.0.0"
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
}
},
"node_modules/doctrine": {
@@ -6318,9 +6094,8 @@
}
},
"node_modules/dom-accessibility-api": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz",
- "integrity": "sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw=="
+ "version": "0.5.14",
+ "license": "MIT"
},
"node_modules/dom-converter": {
"version": "0.2.0",
@@ -6332,26 +6107,29 @@
},
"node_modules/dom-helpers": {
"version": "5.2.1",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
- "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.8.7",
"csstype": "^3.0.2"
}
},
"node_modules/dom-serializer": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
"dependencies": {
"domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
"entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
- "node_modules/dom-serializer/node_modules/domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"funding": [
{
"type": "github",
@@ -6359,11 +6137,6 @@
}
]
},
- "node_modules/domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
- },
"node_modules/domexception": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
@@ -6397,24 +6170,17 @@
"url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
- "node_modules/domhandler/node_modules/domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
"node_modules/domutils": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
- "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
"dependencies": {
- "dom-serializer": "0",
- "domelementtype": "1"
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
}
},
"node_modules/dot-case": {
@@ -6426,11 +6192,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/dot-case/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
"node_modules/dotenv": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
@@ -6452,12 +6213,12 @@
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/ejs": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
- "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
+ "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
"dependencies": {
"jake": "^10.8.5"
},
@@ -6469,9 +6230,8 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.103",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz",
- "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg=="
+ "version": "1.4.164",
+ "license": "ISC"
},
"node_modules/emittery": {
"version": "0.8.1",
@@ -6500,15 +6260,15 @@
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/enhanced-resolve": {
- "version": "5.9.2",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz",
- "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==",
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz",
+ "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==",
"dependencies": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
@@ -6534,38 +6294,41 @@
}
},
"node_modules/error-stack-parser": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz",
- "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
"dependencies": {
- "stackframe": "^1.1.1"
+ "stackframe": "^1.3.4"
}
},
"node_modules/es-abstract": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz",
- "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
+ "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
"dependencies": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.1",
"get-symbol-description": "^1.0.0",
"has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
"has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
"is-callable": "^1.2.4",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.1",
+ "is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
"is-weakref": "^1.0.2",
"object-inspect": "^1.12.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
+ "regexp.prototype.flags": "^1.4.3",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -6574,11 +6337,24 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
+ },
"node_modules/es-module-lexer": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
"integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
},
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
"node_modules/es-to-primitive": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
@@ -6597,8 +6373,7 @@
},
"node_modules/escalade": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
@@ -6606,12 +6381,11 @@
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/escape-string-regexp": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "license": "MIT",
"engines": {
"node": ">=0.8.0"
}
@@ -6640,7 +6414,7 @@
"node_modules/escodegen/node_modules/levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
"dependencies": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
@@ -6668,24 +6442,15 @@
"node_modules/escodegen/node_modules/prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
"engines": {
"node": ">= 0.8.0"
}
},
- "node_modules/escodegen/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "optional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/escodegen/node_modules/type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
"dependencies": {
"prelude-ls": "~1.1.2"
},
@@ -6694,11 +6459,11 @@
}
},
"node_modules/eslint": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz",
- "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz",
+ "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==",
"dependencies": {
- "@eslint/eslintrc": "^1.2.1",
+ "@eslint/eslintrc": "^1.3.0",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
@@ -6709,14 +6474,14 @@
"eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1",
+ "espree": "^9.3.2",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
"functional-red-black-tree": "^1.0.1",
"glob-parent": "^6.0.1",
- "globals": "^13.6.0",
+ "globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
@@ -6725,7 +6490,7 @@
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
"regexpp": "^3.2.0",
@@ -6745,9 +6510,9 @@
}
},
"node_modules/eslint-config-react-app": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz",
- "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz",
+ "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==",
"dependencies": {
"@babel/core": "^7.16.0",
"@babel/eslint-parser": "^7.16.3",
@@ -6811,7 +6576,7 @@
"node_modules/eslint-module-utils/node_modules/find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
"dependencies": {
"locate-path": "^2.0.0"
},
@@ -6822,7 +6587,7 @@
"node_modules/eslint-module-utils/node_modules/locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
"dependencies": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -6845,7 +6610,7 @@
"node_modules/eslint-module-utils/node_modules/p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
"dependencies": {
"p-limit": "^1.1.0"
},
@@ -6856,7 +6621,7 @@
"node_modules/eslint-module-utils/node_modules/p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
"engines": {
"node": ">=4"
}
@@ -6864,7 +6629,7 @@
"node_modules/eslint-module-utils/node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"engines": {
"node": ">=4"
}
@@ -6887,23 +6652,23 @@
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.25.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz",
- "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
+ "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
"dependencies": {
"array-includes": "^3.1.4",
"array.prototype.flat": "^1.2.5",
"debug": "^2.6.9",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.2",
+ "eslint-module-utils": "^2.7.3",
"has": "^1.0.3",
- "is-core-module": "^2.8.0",
+ "is-core-module": "^2.8.1",
"is-glob": "^4.0.3",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"object.values": "^1.1.5",
- "resolve": "^1.20.0",
- "tsconfig-paths": "^3.12.0"
+ "resolve": "^1.22.0",
+ "tsconfig-paths": "^3.14.1"
},
"engines": {
"node": ">=4"
@@ -6934,7 +6699,7 @@
"node_modules/eslint-plugin-import/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/eslint-plugin-jest": {
"version": "25.7.0",
@@ -6984,25 +6749,37 @@
"eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
}
},
+ "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "dependencies": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
"node_modules/eslint-plugin-react": {
- "version": "7.29.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz",
- "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==",
+ "version": "7.30.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz",
+ "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==",
"dependencies": {
- "array-includes": "^3.1.4",
- "array.prototype.flatmap": "^1.2.5",
+ "array-includes": "^3.1.5",
+ "array.prototype.flatmap": "^1.3.0",
"doctrine": "^2.1.0",
"estraverse": "^5.3.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
"object.entries": "^1.1.5",
"object.fromentries": "^2.0.5",
- "object.hasown": "^1.1.0",
+ "object.hasown": "^1.1.1",
"object.values": "^1.1.5",
"prop-types": "^15.8.1",
"resolve": "^2.0.0-next.3",
"semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.6"
+ "string.prototype.matchall": "^4.0.7"
},
"engines": {
"node": ">=4"
@@ -7012,9 +6789,9 @@
}
},
"node_modules/eslint-plugin-react-hooks": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz",
- "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
"engines": {
"node": ">=10"
},
@@ -7034,29 +6811,25 @@
}
},
"node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.3",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
- "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
+ "version": "2.0.0-next.4",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
+ "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
"dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/eslint-plugin-react/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/eslint-plugin-testing-library": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.2.0.tgz",
- "integrity": "sha512-fYFH8lA1hbc1Epr9laNm/+YIR2d+R7WI8sFz9jIRAUfqCf21Nb5BzZwhNeZlu9wKXwDtuf+hUM5QJxG1PuDsTQ==",
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.5.1.tgz",
+ "integrity": "sha512-plLEkkbAKBjPxsLj7x4jNapcHAg2ernkQlKKrN2I8NrQwPISZHyCUNvg5Hv3EDqOQReToQb5bnqXYbkijJPE/g==",
"dependencies": {
"@typescript-eslint/utils": "^5.13.0"
},
@@ -7136,51 +6909,6 @@
"webpack": "^5.0.0"
}
},
- "node_modules/eslint/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/eslint/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/eslint/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
"node_modules/eslint/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -7193,9 +6921,9 @@
}
},
"node_modules/eslint/node_modules/globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -7206,32 +6934,24 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/eslint/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
+ "node": ">=10"
},
- "engines": {
- "node": ">=8"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/espree": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz",
- "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz",
+ "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
"dependencies": {
- "acorn": "^8.7.0",
- "acorn-jsx": "^5.3.1",
+ "acorn": "^8.7.1",
+ "acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -7296,15 +7016,14 @@
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/eventemitter3": {
"version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ "license": "MIT"
},
"node_modules/events": {
"version": "3.3.0",
@@ -7339,7 +7058,7 @@
"node_modules/exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
"engines": {
"node": ">= 0.8.0"
}
@@ -7358,38 +7077,83 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
+ "node_modules/expect/node_modules/diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/expect/node_modules/jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/expect/node_modules/jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/expect/node_modules/jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
"node_modules/express": {
- "version": "4.17.3",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
- "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.19.2",
+ "body-parser": "1.20.0",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.2",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "~1.1.2",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
+ "http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
- "qs": "6.9.7",
+ "qs": "6.10.3",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.17.2",
- "serve-static": "1.14.2",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
"setprototypeof": "1.2.0",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
@@ -7401,7 +7165,7 @@
"node_modules/express/node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
@@ -7414,7 +7178,7 @@
"node_modules/express/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/express/node_modules/safe-buffer": {
"version": "5.2.1",
@@ -7474,7 +7238,7 @@
"node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"node_modules/fastq": {
"version": "1.13.0",
@@ -7534,9 +7298,9 @@
}
},
"node_modules/filelist": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz",
- "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
"dependencies": {
"minimatch": "^5.0.1"
}
@@ -7550,9 +7314,9 @@
}
},
"node_modules/filelist/node_modules/minimatch": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
- "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"dependencies": {
"brace-expansion": "^2.0.1"
},
@@ -7570,8 +7334,7 @@
},
"node_modules/fill-range": {
"version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -7580,16 +7343,16 @@
}
},
"node_modules/finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"unpipe": "~1.0.0"
},
"engines": {
@@ -7607,7 +7370,7 @@
"node_modules/finalhandler/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/find-cache-dir": {
"version": "3.3.2",
@@ -7658,9 +7421,9 @@
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg=="
},
"node_modules/follow-redirects": {
- "version": "1.14.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
- "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
"funding": [
{
"type": "individual",
@@ -7677,9 +7440,9 @@
}
},
"node_modules/fork-ts-checker-webpack-plugin": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz",
- "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz",
+ "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==",
"dependencies": {
"@babel/code-frame": "^7.8.3",
"@types/json-schema": "^7.0.5",
@@ -7714,51 +7477,6 @@
}
}
},
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
"node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
@@ -7788,14 +7506,6 @@
"node": ">=10"
}
},
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
@@ -7813,15 +7523,18 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
"node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": {
@@ -7834,8 +7547,7 @@
},
"node_modules/form-data": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -7868,15 +7580,15 @@
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fs-extra": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz",
- "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -7894,42 +7606,78 @@
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
},
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
+ "node_modules/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/get-caller-file": {
"version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "license": "ISC",
"engines": {
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "has-symbols": "^1.0.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -7975,14 +7723,14 @@
}
},
"node_modules/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
@@ -8046,8 +7794,7 @@
},
"node_modules/globals": {
"version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
@@ -8072,9 +7819,9 @@
}
},
"node_modules/graceful-fs": {
- "version": "4.2.9",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
- "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"node_modules/gzip-size": {
"version": "6.0.0",
@@ -8097,8 +7844,7 @@
},
"node_modules/harmony-reflect": {
"version": "1.6.2",
- "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
- "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="
+ "license": "(Apache-2.0 OR MPL-1.1)"
},
"node_modules/has": {
"version": "1.0.3",
@@ -8112,19 +7858,29 @@
}
},
"node_modules/has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "version": "4.0.0",
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": {
@@ -8171,7 +7927,7 @@
"node_modules/hpack.js": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
"dependencies": {
"inherits": "^2.0.1",
"obuf": "^1.0.0",
@@ -8193,6 +7949,14 @@
"util-deprecate": "~1.0.1"
}
},
+ "node_modules/hpack.js/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"node_modules/html-encoding-sniffer": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
@@ -8234,14 +7998,6 @@
"node": ">=12"
}
},
- "node_modules/html-minifier-terser/node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "engines": {
- "node": ">= 12"
- }
- },
"node_modules/html-webpack-plugin": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
@@ -8282,61 +8038,24 @@
"entities": "^2.0.0"
}
},
- "node_modules/htmlparser2/node_modules/dom-serializer": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/htmlparser2/node_modules/domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/htmlparser2/node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
"node_modules/http-deceiver": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc="
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="
},
"node_modules/http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dependencies": {
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
+ "statuses": "2.0.1",
"toidentifier": "1.0.1"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/http-parser-js": {
@@ -8371,9 +8090,9 @@
}
},
"node_modules/http-proxy-middleware": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz",
- "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
+ "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
"dependencies": {
"@types/http-proxy": "^1.17.8",
"http-proxy": "^1.18.1",
@@ -8394,9 +8113,9 @@
}
},
"node_modules/https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -8414,11 +8133,11 @@
}
},
"node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
},
"engines": {
"node": ">=0.10.0"
@@ -8442,8 +8161,7 @@
},
"node_modules/identity-obj-proxy": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
- "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=",
+ "license": "MIT",
"dependencies": {
"harmony-reflect": "^1.4.6"
},
@@ -8460,18 +8178,17 @@
}
},
"node_modules/immer": {
- "version": "9.0.12",
- "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz",
- "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA==",
+ "version": "9.0.15",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz",
+ "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/immer"
}
},
"node_modules/immutable": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
- "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw=="
+ "version": "4.1.0",
+ "license": "MIT"
},
"node_modules/import-fresh": {
"version": "3.3.0",
@@ -8488,6 +8205,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/import-fresh/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/import-local": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
@@ -8509,15 +8234,14 @@
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"engines": {
"node": ">=0.8.19"
}
},
"node_modules/indent-string": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8525,7 +8249,7 @@
"node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -8533,8 +8257,7 @@
},
"node_modules/inherits": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "license": "ISC"
},
"node_modules/ini": {
"version": "1.3.8",
@@ -8556,17 +8279,11 @@
},
"node_modules/invariant": {
"version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.0.0"
}
},
- "node_modules/ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
- },
"node_modules/ipaddr.js": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
@@ -8575,25 +8292,10 @@
"node": ">= 10"
}
},
- "node_modules/is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
},
"node_modules/is-bigint": {
"version": "1.0.4",
@@ -8608,8 +8310,7 @@
},
"node_modules/is-binary-path": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "license": "MIT",
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -8644,9 +8345,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
- "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
+ "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
"dependencies": {
"has": "^1.0.3"
},
@@ -8684,16 +8385,14 @@
},
"node_modules/is-extglob": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
"engines": {
"node": ">=8"
}
@@ -8708,8 +8407,7 @@
},
"node_modules/is-glob": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -8720,7 +8418,7 @@
"node_modules/is-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
- "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE="
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
},
"node_modules/is-negative-zero": {
"version": "2.0.2",
@@ -8735,16 +8433,15 @@
},
"node_modules/is-number": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/is-number-object": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
- "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -8758,27 +8455,11 @@
"node_modules/is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-plain-obj": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
@@ -8813,7 +8494,7 @@
"node_modules/is-regexp": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
- "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
"engines": {
"node": ">=0.10.0"
}
@@ -8827,9 +8508,12 @@
}
},
"node_modules/is-shared-array-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
- "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -8876,7 +8560,7 @@
"node_modules/is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
"node_modules/is-weakref": {
"version": "1.0.2",
@@ -8903,12 +8587,12 @@
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"node_modules/istanbul-lib-coverage": {
"version": "3.2.0",
@@ -8919,9 +8603,9 @@
}
},
"node_modules/istanbul-lib-instrument": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz",
- "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz",
+ "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==",
"dependencies": {
"@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7",
@@ -8933,14 +8617,6 @@
"node": ">=8"
}
},
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/istanbul-lib-report": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
@@ -8954,25 +8630,6 @@
"node": ">=8"
}
},
- "node_modules/istanbul-lib-report/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/istanbul-lib-source-maps": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
@@ -8986,14 +8643,6 @@
"node": ">=10"
}
},
- "node_modules/istanbul-lib-source-maps/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/istanbul-reports": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz",
@@ -9023,75 +8672,6 @@
"node": ">=10"
}
},
- "node_modules/jake/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jake/node_modules/async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
- },
- "node_modules/jake/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jake/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jake/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jake/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jake/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/jest": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz",
@@ -9158,68 +8738,81 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-circus/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/jest-circus/node_modules/diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-circus/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/jest-circus/node_modules/jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-circus/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
+ "node_modules/jest-circus/node_modules/jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"engines": {
- "node": ">=7.0.0"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-circus/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-circus/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/jest-circus/node_modules/jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
"engines": {
- "node": ">=8"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-circus/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/jest-cli": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
+ "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "@jest/core": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "prompts": "^2.0.1",
+ "yargs": "^16.2.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
},
"engines": {
- "node": ">=8"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
}
},
"node_modules/jest-config": {
@@ -9264,238 +8857,88 @@
}
}
},
- "node_modules/jest-config/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/jest-config/node_modules/jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-config/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/jest-diff": {
+ "version": "28.1.1",
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "chalk": "^4.0.0",
+ "diff-sequences": "^28.1.1",
+ "jest-get-type": "^28.0.2",
+ "pretty-format": "^28.1.1"
},
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
+ }
+ },
+ "node_modules/jest-diff/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/jest-config/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/jest-diff/node_modules/pretty-format": {
+ "version": "28.1.1",
+ "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "@jest/schemas": "^28.0.2",
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
},
"engines": {
- "node": ">=7.0.0"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-config/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-config/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
+ "node_modules/jest-diff/node_modules/react-is": {
+ "version": "18.2.0",
+ "license": "MIT"
},
- "node_modules/jest-config/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/jest-docblock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz",
+ "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "detect-newline": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-diff": {
+ "node_modules/jest-each": {
"version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
- "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz",
+ "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
"dependencies": {
+ "@jest/types": "^27.5.1",
"chalk": "^4.0.0",
- "diff-sequences": "^27.5.1",
"jest-get-type": "^27.5.1",
+ "jest-util": "^27.5.1",
"pretty-format": "^27.5.1"
},
"engines": {
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-diff/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-diff/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-diff/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-diff/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-diff/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-diff/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-docblock": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz",
- "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-each": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz",
- "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
- "dependencies": {
- "@jest/types": "^27.5.1",
- "chalk": "^4.0.0",
- "jest-get-type": "^27.5.1",
- "jest-util": "^27.5.1",
- "pretty-format": "^27.5.1"
- },
+ "node_modules/jest-each/node_modules/jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"engines": {
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-each/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-each/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-each/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-each/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-each/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-each/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/jest-environment-jsdom": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
@@ -9530,11 +8973,10 @@
}
},
"node_modules/jest-get-type": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
- "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
+ "version": "28.0.2",
+ "license": "MIT",
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/jest-haste-map": {
@@ -9589,68 +9031,48 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-jasmine2/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-jasmine2/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "node_modules/jest-jasmine2/node_modules/diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-jasmine2/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/jest-jasmine2/node_modules/jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
"dependencies": {
- "color-name": "~1.1.4"
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
},
"engines": {
- "node": ">=7.0.0"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-jasmine2/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-jasmine2/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/jest-jasmine2/node_modules/jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"engines": {
- "node": ">=8"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-jasmine2/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/jest-jasmine2/node_modules/jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
},
"engines": {
- "node": ">=8"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/jest-leak-detector": {
@@ -9665,83 +9087,53 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-matcher-utils": {
+ "node_modules/jest-leak-detector/node_modules/jest-get-type": {
"version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
- "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^27.5.1",
- "jest-get-type": "^27.5.1",
- "pretty-format": "^27.5.1"
- },
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"engines": {
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-matcher-utils/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/jest-matcher-utils": {
+ "version": "28.1.1",
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "chalk": "^4.0.0",
+ "jest-diff": "^28.1.1",
+ "jest-get-type": "^28.0.2",
+ "pretty-format": "^28.1.1"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-matcher-utils/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "node_modules/jest-matcher-utils/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/jest-matcher-utils/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/jest-matcher-utils/node_modules/pretty-format": {
+ "version": "28.1.1",
+ "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "@jest/schemas": "^28.0.2",
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
},
"engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-matcher-utils/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-matcher-utils/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-matcher-utils/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
+ "node_modules/jest-matcher-utils/node_modules/react-is": {
+ "version": "18.2.0",
+ "license": "MIT"
},
"node_modules/jest-message-util": {
"version": "27.5.1",
@@ -9762,104 +9154,40 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-message-util/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/jest-mock": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
"dependencies": {
- "color-convert": "^2.0.1"
+ "@jest/types": "^27.5.1",
+ "@types/node": "*"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-message-util/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
+ "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
"engines": {
- "node": ">=10"
+ "node": ">=6"
},
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
}
},
- "node_modules/jest-message-util/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
+ "node_modules/jest-regex-util": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
"engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-message-util/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-message-util/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-message-util/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-mock": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
- "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
- "dependencies": {
- "@jest/types": "^27.5.1",
- "@types/node": "*"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-pnp-resolver": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
- "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "jest-resolve": "*"
- },
- "peerDependenciesMeta": {
- "jest-resolve": {
- "optional": true
- }
- }
- },
- "node_modules/jest-regex-util": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
- "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/jest-resolve": {
@@ -9895,70 +9223,6 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-resolve/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-resolve/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-resolve/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-resolve/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-resolve/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-resolve/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/jest-runner": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz",
@@ -9990,70 +9254,6 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-runner/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-runner/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-runner/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-runner/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-runner/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runner/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/jest-runtime": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz",
@@ -10086,78 +9286,6 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-runtime/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-runtime/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-runtime/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-runtime/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-runtime/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runtime/node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-runtime/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/jest-serializer": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
@@ -10202,68 +9330,62 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-snapshot/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/jest-snapshot/node_modules/diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-snapshot/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/jest-snapshot/node_modules/jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-snapshot/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
+ "node_modules/jest-snapshot/node_modules/jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"engines": {
- "node": ">=7.0.0"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-snapshot/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-snapshot/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/jest-snapshot/node_modules/jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
"engines": {
- "node": ">=8"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-snapshot/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/jest-snapshot/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
}
},
"node_modules/jest-util": {
@@ -10282,70 +9404,6 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-util/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-util/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-util/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-util/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-util/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-util/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/jest-validate": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz",
@@ -10362,79 +9420,23 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
- "node_modules/jest-validate/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/jest-validate/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-validate/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-validate/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-validate/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-validate/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
+ "node_modules/jest-validate/node_modules/jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"engines": {
- "node": ">=8"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/jest-watch-typeahead": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz",
- "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz",
+ "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==",
"dependencies": {
"ansi-escapes": "^4.3.1",
"chalk": "^4.0.0",
- "jest-regex-util": "^27.0.0",
- "jest-watcher": "^27.0.0",
+ "jest-regex-util": "^28.0.0",
+ "jest-watcher": "^28.0.0",
"slash": "^4.0.0",
"string-length": "^5.0.1",
"strip-ansi": "^7.0.1"
@@ -10443,354 +9445,314 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"peerDependencies": {
- "jest": "^27.0.0"
+ "jest": "^27.0.0 || ^28.0.0"
}
},
- "node_modules/jest-watch-typeahead/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "engines": {
- "node": ">=12"
+ "node_modules/jest-watch-typeahead/node_modules/@jest/console": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz",
+ "integrity": "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==",
+ "dependencies": {
+ "@jest/types": "^28.1.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^28.1.1",
+ "jest-util": "^28.1.1",
+ "slash": "^3.0.0"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-watch-typeahead/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"engines": {
"node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/jest-watch-typeahead/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz",
+ "integrity": "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
+ "@jest/console": "^28.1.1",
+ "@jest/types": "^28.1.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
},
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/char-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz",
- "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==",
"engines": {
- "node": ">=12.20"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-watch-typeahead/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/jest-watch-typeahead/node_modules/@jest/types": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz",
+ "integrity": "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==",
"dependencies": {
- "color-name": "~1.1.4"
+ "@jest/schemas": "^28.0.2",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
},
"engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-watch-typeahead/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-watch-typeahead/node_modules/slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node_modules/jest-watch-typeahead/node_modules/@types/yargs": {
+ "version": "17.0.10",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz",
+ "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
}
},
- "node_modules/jest-watch-typeahead/node_modules/string-length": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz",
- "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==",
- "dependencies": {
- "char-regex": "^2.0.0",
- "strip-ansi": "^7.0.1"
- },
+ "node_modules/jest-watch-typeahead/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"engines": {
- "node": ">=12.20"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/jest-watch-typeahead/node_modules/strip-ansi": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
- "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
+ "node_modules/jest-watch-typeahead/node_modules/emittery": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz",
+ "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==",
"engines": {
"node": ">=12"
},
"funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/jest-watch-typeahead/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
}
},
- "node_modules/jest-watcher": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz",
- "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
+ "node_modules/jest-watch-typeahead/node_modules/jest-message-util": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz",
+ "integrity": "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==",
"dependencies": {
- "@jest/test-result": "^27.5.1",
- "@jest/types": "^27.5.1",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^28.1.1",
+ "@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
- "jest-util": "^27.5.1",
- "string-length": "^4.0.1"
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^28.1.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-watcher/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"engines": {
"node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/jest-watcher/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": {
+ "version": "28.0.2",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz",
+ "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-watcher/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/jest-watch-typeahead/node_modules/jest-util": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz",
+ "integrity": "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==",
"dependencies": {
- "color-name": "~1.1.4"
+ "@jest/types": "^28.1.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
},
"engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/jest-watcher/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest-watcher/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-watcher/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/jest-watch-typeahead/node_modules/jest-watcher": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz",
+ "integrity": "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "@jest/test-result": "^28.1.1",
+ "@jest/types": "^28.1.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.10.2",
+ "jest-util": "^28.1.1",
+ "string-length": "^4.0.1"
},
"engines": {
- "node": ">=8"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
"dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": ">= 10.13.0"
+ "node": ">=10"
}
},
- "node_modules/jest-worker/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
"engines": {
"node": ">=8"
}
},
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "node_modules/jest-watch-typeahead/node_modules/pretty-format": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz",
+ "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "@jest/schemas": "^28.0.2",
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/jest/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
+ "node_modules/jest-watch-typeahead/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
+ "node_modules/jest-watch-typeahead/node_modules/slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
"engines": {
- "node": ">=8"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/jest/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/jest-watch-typeahead/node_modules/string-length": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz",
+ "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "char-regex": "^2.0.0",
+ "strip-ansi": "^7.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=12.20"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/jest/node_modules/color-convert": {
+ "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz",
+ "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==",
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
+ "node_modules/jest-watch-typeahead/node_modules/strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
"dependencies": {
- "color-name": "~1.1.4"
+ "ansi-regex": "^6.0.1"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
}
},
- "node_modules/jest/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/jest/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
}
},
- "node_modules/jest/node_modules/jest-cli": {
+ "node_modules/jest-watcher": {
"version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
- "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz",
+ "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
"dependencies": {
- "@jest/core": "^27.5.1",
"@jest/test-result": "^27.5.1",
"@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
"chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "import-local": "^3.0.2",
- "jest-config": "^27.5.1",
"jest-util": "^27.5.1",
- "jest-validate": "^27.5.1",
- "prompts": "^2.0.1",
- "yargs": "^16.2.0"
- },
- "bin": {
- "jest": "bin/jest.js"
+ "string-length": "^4.0.1"
},
"engines": {
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
},
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
+ "engines": {
+ "node": ">= 10.13.0"
}
},
- "node_modules/jest/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
"node_modules/js-tokens": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "license": "MIT"
},
"node_modules/js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -10798,6 +9760,10 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/js-yaml/node_modules/argparse": {
+ "version": "2.0.1",
+ "license": "Python-2.0"
+ },
"node_modules/jsdom": {
"version": "16.7.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
@@ -10843,10 +9809,33 @@
}
}
},
+ "node_modules/jsdom/node_modules/tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "dependencies": {
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jsdom/node_modules/whatwg-url": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "dependencies": {
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/jsesc": {
"version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "license": "MIT",
"bin": {
"jsesc": "bin/jsesc"
},
@@ -10854,11 +9843,6 @@
"node": ">=4"
}
},
- "node_modules/json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
- },
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
@@ -10877,12 +9861,11 @@
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
},
"node_modules/json5": {
"version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "license": "MIT",
"bin": {
"json5": "lib/cli.js"
},
@@ -10910,9 +9893,9 @@
}
},
"node_modules/jsx-ast-utils": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz",
- "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz",
+ "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==",
"dependencies": {
"array-includes": "^3.1.4",
"object.assign": "^4.1.2"
@@ -10953,7 +9936,7 @@
"node_modules/language-tags": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
- "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==",
"dependencies": {
"language-subtag-registry": "~0.3.2"
}
@@ -10992,9 +9975,9 @@
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
"node_modules/loader-runner": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
- "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
"engines": {
"node": ">=6.11.5"
}
@@ -11028,18 +10011,17 @@
},
"node_modules/lodash": {
"version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "license": "MIT"
},
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
},
"node_modules/lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
},
"node_modules/lodash.merge": {
"version": "4.6.2",
@@ -11049,17 +10031,21 @@
"node_modules/lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
+ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA=="
},
"node_modules/lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
+ },
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
"node_modules/loose-envify": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -11075,11 +10061,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/lower-case/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -11093,8 +10074,7 @@
},
"node_modules/lz-string": {
"version": "1.4.4",
- "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
- "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=",
+ "license": "WTFPL",
"bin": {
"lz-string": "bin/bin.js"
}
@@ -11121,14 +10101,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/makeerror": {
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
@@ -11145,17 +10117,17 @@
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/memfs": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz",
- "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==",
+ "version": "3.4.6",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.6.tgz",
+ "integrity": "sha512-rH9mjopto6Wkr7RFuH9l9dk3qb2XGOcYKr7xMhaYqfzuJqOqhRrcFvfD7JMuPj6SLmPreh5+6eAuv36NFAU+Mw==",
"dependencies": {
- "fs-monkey": "1.0.3"
+ "fs-monkey": "^1.0.3"
},
"engines": {
"node": ">= 4.0.0"
@@ -11164,7 +10136,7 @@
"node_modules/merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"node_modules/merge-stream": {
"version": "2.0.0",
@@ -11182,7 +10154,7 @@
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"engines": {
"node": ">= 0.6"
}
@@ -11212,16 +10184,14 @@
},
"node_modules/mime-db": {
"version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
@@ -11239,16 +10209,15 @@
},
"node_modules/min-indent": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz",
- "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz",
+ "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==",
"dependencies": {
"schema-utils": "^4.0.0"
},
@@ -11344,32 +10313,31 @@
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/monaco-editor": {
+ "version": "0.33.0",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/ms": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "license": "MIT"
},
"node_modules/multicast-dns": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
- "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
+ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
"dependencies": {
- "dns-packet": "^1.3.1",
+ "dns-packet": "^5.2.2",
"thunky": "^1.0.2"
},
"bin": {
"multicast-dns": "cli.js"
}
},
- "node_modules/multicast-dns-service-types": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
- "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE="
- },
"node_modules/nanoid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz",
- "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -11380,7 +10348,7 @@
"node_modules/natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
},
"node_modules/negotiator": {
"version": "0.6.3",
@@ -11404,10 +10372,24 @@
"tslib": "^2.0.3"
}
},
- "node_modules/no-case/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ "node_modules/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
},
"node_modules/node-forge": {
"version": "1.3.1",
@@ -11420,17 +10402,15 @@
"node_modules/node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs="
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
},
"node_modules/node-releases": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz",
- "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg=="
+ "version": "2.0.5",
+ "license": "MIT"
},
"node_modules/normalize-path": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -11438,7 +10418,7 @@
"node_modules/normalize-range": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"engines": {
"node": ">=0.10.0"
}
@@ -11466,11 +10446,14 @@
}
},
"node_modules/nth-check": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
- "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
"dependencies": {
- "boolbase": "~1.0.0"
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
}
},
"node_modules/nwsapi": {
@@ -11480,39 +10463,23 @@
},
"node_modules/object-assign": {
"version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-hash": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
- "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
"engines": {
"node": ">= 6"
}
},
"node_modules/object-inspect": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
- "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-is": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -11572,13 +10539,14 @@
}
},
"node_modules/object.getownpropertydescriptors": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz",
- "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz",
+ "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==",
"dependencies": {
+ "array.prototype.reduce": "^1.0.4",
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.1"
},
"engines": {
"node": ">= 0.8"
@@ -11588,12 +10556,12 @@
}
},
"node_modules/object.hasown": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
- "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
+ "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
"dependencies": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -11621,9 +10589,9 @@
"integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
},
"node_modules/on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dependencies": {
"ee-first": "1.1.1"
},
@@ -11642,7 +10610,7 @@
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
@@ -11721,26 +10689,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/p-retry": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz",
- "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
"dependencies": {
- "@types/retry": "^0.12.0",
+ "@types/retry": "0.12.0",
"retry": "^0.13.1"
},
"engines": {
@@ -11764,11 +10718,6 @@
"tslib": "^2.0.3"
}
},
- "node_modules/param-case/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -11819,15 +10768,9 @@
"tslib": "^2.0.3"
}
},
- "node_modules/pascal-case/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
"node_modules/path": {
"version": "0.12.7",
- "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
+ "license": "MIT",
"dependencies": {
"process": "^0.11.1",
"util": "^0.10.3"
@@ -11844,7 +10787,7 @@
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"engines": {
"node": ">=0.10.0"
}
@@ -11865,7 +10808,7 @@
"node_modules/path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"node_modules/path-type": {
"version": "4.0.0",
@@ -11878,12 +10821,11 @@
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
},
"node_modules/phaser": {
"version": "3.55.2",
- "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.55.2.tgz",
- "integrity": "sha512-amKXsbb2Ht29dGPKvt1edq3yGGYKtq8373GpJYGKPNPnneYY6MtVTOgjHDuZwtmUyK4v86FugkT3hzW/N4tjxQ==",
+ "license": "MIT",
"dependencies": {
"eventemitter3": "^4.0.7",
"path": "^0.12.7"
@@ -11891,13 +10833,11 @@
},
"node_modules/picocolors": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ "license": "ISC"
},
"node_modules/picomatch": {
"version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
"engines": {
"node": ">=8.6"
},
@@ -11905,6 +10845,14 @@
"url": "https://github.com/sponsors/jonschlinkert"
}
},
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/pirates": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
@@ -12034,36 +10982,15 @@
"node_modules/pkg-up/node_modules/path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"engines": {
"node": ">=4"
}
},
- "node_modules/portfinder": {
- "version": "1.0.28",
- "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
- "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
- "dependencies": {
- "async": "^2.6.2",
- "debug": "^3.1.1",
- "mkdirp": "^0.5.5"
- },
- "engines": {
- "node": ">= 0.12.0"
- }
- },
- "node_modules/portfinder/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
"node_modules/postcss": {
- "version": "8.4.12",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz",
- "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==",
+ "version": "8.4.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"funding": [
{
"type": "opencollective",
@@ -12075,7 +11002,7 @@
}
],
"dependencies": {
- "nanoid": "^3.3.1",
+ "nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@@ -12084,14 +11011,21 @@
}
},
"node_modules/postcss-attribute-case-insensitive": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz",
- "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.1.tgz",
+ "integrity": "sha512-wrt2VndqSLJpyBRNz9OmJcgnhI9MaongeWgapdBuUMu2a/KNJ8SENesG4SdiTnQwGO9b1VKbTWYAfCPeokLqZQ==",
"dependencies": {
- "postcss-selector-parser": "^6.0.2"
+ "postcss-selector-parser": "^6.0.10"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
},
"peerDependencies": {
- "postcss": "^8.0.2"
+ "postcss": "^8.3"
}
},
"node_modules/postcss-browser-comments": {
@@ -12133,43 +11067,55 @@
}
},
"node_modules/postcss-color-functional-notation": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz",
- "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz",
+ "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
},
"node_modules/postcss-color-hex-alpha": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz",
- "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==",
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz",
+ "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
},
"node_modules/postcss-color-rebeccapurple": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz",
- "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.0.tgz",
+ "integrity": "sha512-1jtE5AKnZcKq4pjOrltFHcbEM2/IvtbD1OdhZ/wqds18//bh0UmQkffcCkzDJU+/vGodfIsVQeKn+45CJvX9Bw==",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.3"
}
@@ -12192,10 +11138,11 @@
}
},
"node_modules/postcss-convert-values": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz",
- "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz",
+ "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==",
"dependencies": {
+ "browserslist": "^4.20.3",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -12206,42 +11153,57 @@
}
},
"node_modules/postcss-custom-media": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz",
- "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==",
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz",
+ "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
"engines": {
- "node": ">=10.0.0"
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
},
"peerDependencies": {
- "postcss": "^8.1.0"
+ "postcss": "^8.3"
}
},
"node_modules/postcss-custom-properties": {
- "version": "12.1.5",
- "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz",
- "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==",
+ "version": "12.1.8",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz",
+ "integrity": "sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
},
"node_modules/postcss-custom-selectors": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz",
- "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz",
+ "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==",
"dependencies": {
"postcss-selector-parser": "^6.0.4"
},
"engines": {
- "node": ">=10.0.0"
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
},
"peerDependencies": {
- "postcss": "^8.1.2"
+ "postcss": "^8.3"
}
},
"node_modules/postcss-dir-pseudo-class": {
@@ -12259,9 +11221,9 @@
}
},
"node_modules/postcss-discard-comments": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz",
- "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
+ "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
"engines": {
"node": "^10 || ^12 || >=14.0"
},
@@ -12400,6 +11362,22 @@
"postcss": "^8.4"
}
},
+ "node_modules/postcss-import": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
+ "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
"node_modules/postcss-initial": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
@@ -12427,9 +11405,9 @@
}
},
"node_modules/postcss-lab-function": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz",
- "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz",
+ "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==",
"dependencies": {
"@csstools/postcss-progressive-custom-properties": "^1.1.0",
"postcss-value-parser": "^4.2.0"
@@ -12437,6 +11415,10 @@
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
@@ -12490,6 +11472,20 @@
"webpack": "^5.0.0"
}
},
+ "node_modules/postcss-loader/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/postcss-logical": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz",
@@ -12513,9 +11509,9 @@
}
},
"node_modules/postcss-merge-longhand": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz",
- "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==",
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz",
+ "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==",
"dependencies": {
"postcss-value-parser": "^4.2.0",
"stylehacks": "^5.1.0"
@@ -12528,9 +11524,9 @@
}
},
"node_modules/postcss-merge-rules": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz",
- "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz",
+ "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==",
"dependencies": {
"browserslist": "^4.16.6",
"caniuse-api": "^3.0.0",
@@ -12575,9 +11571,9 @@
}
},
"node_modules/postcss-minify-params": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz",
- "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz",
+ "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==",
"dependencies": {
"browserslist": "^4.16.6",
"cssnano-utils": "^3.1.0",
@@ -12591,9 +11587,9 @@
}
},
"node_modules/postcss-minify-selectors": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz",
- "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
+ "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
"dependencies": {
"postcss-selector-parser": "^6.0.5"
},
@@ -12678,15 +11674,20 @@
}
},
"node_modules/postcss-nesting": {
- "version": "10.1.3",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz",
- "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==",
+ "version": "10.1.8",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.8.tgz",
+ "integrity": "sha512-txdb3/idHYsBbNDFo1PFY0ExCgH5nfWi8G5lO49e6iuU42TydbODTzJgF5UuL5bhgeSlnAtDgfFTDG0Cl1zaSQ==",
"dependencies": {
- "postcss-selector-parser": "^6.0.9"
+ "@csstools/selector-specificity": "^2.0.0",
+ "postcss-selector-parser": "^6.0.10"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
@@ -12734,9 +11735,9 @@
}
},
"node_modules/postcss-normalize-positions": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz",
- "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
+ "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -12748,9 +11749,9 @@
}
},
"node_modules/postcss-normalize-repeat-style": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz",
- "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
+ "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
"dependencies": {
"postcss-value-parser": "^4.2.0"
},
@@ -12852,9 +11853,9 @@
}
},
"node_modules/postcss-ordered-values": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz",
- "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
+ "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
"dependencies": {
"cssnano-utils": "^3.1.0",
"postcss-value-parser": "^4.2.0"
@@ -12900,32 +11901,36 @@
}
},
"node_modules/postcss-preset-env": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz",
- "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==",
+ "version": "7.7.1",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.7.1.tgz",
+ "integrity": "sha512-1sx6+Nl1wMVJzaYLVaz4OAR6JodIN/Z1upmVqLwSPCLT6XyxrEoePgNMHPH08kseLe3z06i9Vfkt/32BYEKDeA==",
"dependencies": {
- "@csstools/postcss-color-function": "^1.0.3",
+ "@csstools/postcss-cascade-layers": "^1.0.2",
+ "@csstools/postcss-color-function": "^1.1.0",
"@csstools/postcss-font-format-keywords": "^1.0.0",
- "@csstools/postcss-hwb-function": "^1.0.0",
+ "@csstools/postcss-hwb-function": "^1.0.1",
"@csstools/postcss-ic-unit": "^1.0.0",
- "@csstools/postcss-is-pseudo-class": "^2.0.1",
+ "@csstools/postcss-is-pseudo-class": "^2.0.4",
"@csstools/postcss-normalize-display-values": "^1.0.0",
- "@csstools/postcss-oklab-function": "^1.0.2",
+ "@csstools/postcss-oklab-function": "^1.1.0",
"@csstools/postcss-progressive-custom-properties": "^1.3.0",
- "autoprefixer": "^10.4.4",
- "browserslist": "^4.20.2",
+ "@csstools/postcss-stepped-value-functions": "^1.0.0",
+ "@csstools/postcss-trigonometric-functions": "^1.0.1",
+ "@csstools/postcss-unset-value": "^1.0.1",
+ "autoprefixer": "^10.4.7",
+ "browserslist": "^4.20.3",
"css-blank-pseudo": "^3.0.3",
"css-has-pseudo": "^3.0.4",
"css-prefers-color-scheme": "^6.0.3",
- "cssdb": "^6.5.0",
- "postcss-attribute-case-insensitive": "^5.0.0",
+ "cssdb": "^6.6.3",
+ "postcss-attribute-case-insensitive": "^5.0.1",
"postcss-clamp": "^4.1.0",
- "postcss-color-functional-notation": "^4.2.2",
+ "postcss-color-functional-notation": "^4.2.3",
"postcss-color-hex-alpha": "^8.0.3",
"postcss-color-rebeccapurple": "^7.0.2",
- "postcss-custom-media": "^8.0.0",
- "postcss-custom-properties": "^12.1.5",
- "postcss-custom-selectors": "^6.0.0",
+ "postcss-custom-media": "^8.0.1",
+ "postcss-custom-properties": "^12.1.7",
+ "postcss-custom-selectors": "^6.0.2",
"postcss-dir-pseudo-class": "^6.0.4",
"postcss-double-position-gradients": "^3.1.1",
"postcss-env-function": "^4.0.6",
@@ -12935,36 +11940,44 @@
"postcss-gap-properties": "^3.0.3",
"postcss-image-set-function": "^4.0.6",
"postcss-initial": "^4.0.1",
- "postcss-lab-function": "^4.1.2",
+ "postcss-lab-function": "^4.2.0",
"postcss-logical": "^5.0.4",
"postcss-media-minmax": "^5.0.0",
- "postcss-nesting": "^10.1.3",
+ "postcss-nesting": "^10.1.7",
"postcss-opacity-percentage": "^1.1.2",
"postcss-overflow-shorthand": "^3.0.3",
"postcss-page-break": "^3.0.4",
"postcss-place": "^7.0.4",
- "postcss-pseudo-class-any-link": "^7.1.1",
+ "postcss-pseudo-class-any-link": "^7.1.4",
"postcss-replace-overflow-wrap": "^4.0.0",
- "postcss-selector-not": "^5.0.0",
+ "postcss-selector-not": "^6.0.0",
"postcss-value-parser": "^4.2.0"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
},
"node_modules/postcss-pseudo-class-any-link": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz",
- "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz",
+ "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==",
"dependencies": {
- "postcss-selector-parser": "^6.0.9"
+ "postcss-selector-parser": "^6.0.10"
},
"engines": {
"node": "^12 || ^14 || >=16"
},
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
"peerDependencies": {
"postcss": "^8.4"
}
@@ -13007,14 +12020,21 @@
}
},
"node_modules/postcss-selector-not": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz",
- "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.0.tgz",
+ "integrity": "sha512-i/HI/VNd3V9e1WOLCwJsf9nePBRXqcGtVibcJ9FsVo0agfDEfsLSlFt94aYjY35wUNcdG0KrvdyjEr7It50wLQ==",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "postcss-selector-parser": "^6.0.10"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
},
"peerDependencies": {
- "postcss": "^8.1.0"
+ "postcss": "^8.3"
}
},
"node_modules/postcss-selector-parser": {
@@ -13044,19 +12064,12 @@
"postcss": "^8.2.15"
}
},
- "node_modules/postcss-svgo/node_modules/css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
+ "node_modules/postcss-svgo/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "engines": {
+ "node": ">= 10"
}
},
"node_modules/postcss-svgo/node_modules/css-tree": {
@@ -13071,78 +12084,11 @@
"node": ">=8.0.0"
}
},
- "node_modules/postcss-svgo/node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/postcss-svgo/node_modules/dom-serializer": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/postcss-svgo/node_modules/domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/postcss-svgo/node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
"node_modules/postcss-svgo/node_modules/mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
},
- "node_modules/postcss-svgo/node_modules/nth-check": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
- "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==",
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/postcss-svgo/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/postcss-svgo/node_modules/svgo": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
@@ -13212,8 +12158,7 @@
},
"node_modules/pretty-format": {
"version": "27.5.1",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
- "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1",
"ansi-styles": "^5.0.0",
@@ -13225,8 +12170,7 @@
},
"node_modules/pretty-format/node_modules/ansi-styles": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -13234,15 +12178,9 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/pretty-format/node_modules/react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
- },
"node_modules/process": {
"version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "license": "MIT",
"engines": {
"node": ">= 0.6.0"
}
@@ -13274,8 +12212,7 @@
},
"node_modules/prop-types": {
"version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -13284,8 +12221,7 @@
},
"node_modules/prop-types-extra": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
- "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==",
+ "license": "MIT",
"dependencies": {
"react-is": "^16.3.2",
"warning": "^4.0.0"
@@ -13294,6 +12230,14 @@
"react": ">=0.14.0"
}
},
+ "node_modules/prop-types-extra/node_modules/react-is": {
+ "version": "16.13.1",
+ "license": "MIT"
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "license": "MIT"
+ },
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -13330,16 +12274,19 @@
"node_modules/q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
- "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
"engines": {
"node": ">=0.6.0",
"teleport": ">=0.2.0"
}
},
"node_modules/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
"engines": {
"node": ">=0.6"
},
@@ -13402,12 +12349,12 @@
}
},
"node_modules/raw-body": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
- "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"dependencies": {
"bytes": "3.1.2",
- "http-errors": "1.8.1",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
@@ -13423,10 +12370,20 @@
"node": ">= 0.8"
}
},
+ "node_modules/raw-body/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/react": {
- "version": "18.0.0",
- "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz",
- "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==",
+ "version": "18.2.0",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
},
@@ -13451,18 +12408,13 @@
}
},
"node_modules/react-bootstrap": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.2.3.tgz",
- "integrity": "sha512-gXsAEBdDUHnOpJ2C+DDQ4mFt7tN6u6qWnTH3tqiE9jUvV6gGY8uHFp0iGBsM+yjrBwmR6bqCBFh8Z82aQj1LSw==",
+ "version": "2.4.0",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.17.2",
"@restart/hooks": "^0.4.6",
"@restart/ui": "^1.2.0",
- "@types/invariant": "^2.2.35",
- "@types/prop-types": "^15.7.4",
- "@types/react": ">=16.14.8",
"@types/react-transition-group": "^4.4.4",
- "@types/warning": "^3.0.0",
"classnames": "^2.3.1",
"dom-helpers": "^5.2.1",
"invariant": "^2.2.4",
@@ -13473,89 +12425,50 @@
"warning": "^4.0.3"
},
"peerDependencies": {
+ "@types/react": ">=16.14.8",
"react": ">=16.14.0",
"react-dom": ">=16.14.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
}
},
"node_modules/react-dev-utils": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz",
- "integrity": "sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==",
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
+ "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
"dependencies": {
"@babel/code-frame": "^7.16.0",
- "address": "^1.1.2",
- "browserslist": "^4.18.1",
- "chalk": "^4.1.2",
- "cross-spawn": "^7.0.3",
- "detect-port-alt": "^1.1.6",
- "escape-string-regexp": "^4.0.0",
- "filesize": "^8.0.6",
- "find-up": "^5.0.0",
- "fork-ts-checker-webpack-plugin": "^6.5.0",
- "global-modules": "^2.0.0",
- "globby": "^11.0.4",
- "gzip-size": "^6.0.0",
- "immer": "^9.0.7",
- "is-root": "^2.1.0",
- "loader-utils": "^3.2.0",
- "open": "^8.4.0",
- "pkg-up": "^3.1.0",
- "prompts": "^2.4.2",
- "react-error-overlay": "^6.0.10",
- "recursive-readdir": "^2.2.2",
- "shell-quote": "^1.7.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/react-dev-utils/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/react-dev-utils/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/react-dev-utils/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
+ "address": "^1.1.2",
+ "browserslist": "^4.18.1",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^7.0.3",
+ "detect-port-alt": "^1.1.6",
+ "escape-string-regexp": "^4.0.0",
+ "filesize": "^8.0.6",
+ "find-up": "^5.0.0",
+ "fork-ts-checker-webpack-plugin": "^6.5.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.0.4",
+ "gzip-size": "^6.0.0",
+ "immer": "^9.0.7",
+ "is-root": "^2.1.0",
+ "loader-utils": "^3.2.0",
+ "open": "^8.4.0",
+ "pkg-up": "^3.1.0",
+ "prompts": "^2.4.2",
+ "react-error-overlay": "^6.0.11",
+ "recursive-readdir": "^2.2.2",
+ "shell-quote": "^1.7.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">=14"
}
},
- "node_modules/react-dev-utils/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
"node_modules/react-dev-utils/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -13567,14 +12480,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/react-dev-utils/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/react-dev-utils/node_modules/loader-utils": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz",
@@ -13583,43 +12488,29 @@
"node": ">= 12.13.0"
}
},
- "node_modules/react-dev-utils/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/react-dom": {
- "version": "18.0.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz",
- "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==",
+ "version": "18.2.0",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0",
- "scheduler": "^0.21.0"
+ "scheduler": "^0.23.0"
},
"peerDependencies": {
- "react": "^18.0.0"
+ "react": "^18.2.0"
}
},
"node_modules/react-error-overlay": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz",
- "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA=="
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
+ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
},
"node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "version": "17.0.2",
+ "license": "MIT"
},
"node_modules/react-lifecycles-compat": {
"version": "3.0.4",
- "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
- "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ "license": "MIT"
},
"node_modules/react-refresh": {
"version": "0.11.0",
@@ -13701,10 +12592,23 @@
}
}
},
+ "node_modules/react-scripts/node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/react-transition-group": {
"version": "4.4.2",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz",
- "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==",
+ "license": "BSD-3-Clause",
"dependencies": {
"@babel/runtime": "^7.5.5",
"dom-helpers": "^5.0.1",
@@ -13716,6 +12620,14 @@
"react-dom": ">=16.6.0"
}
},
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
"node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@@ -13731,8 +12643,7 @@
},
"node_modules/readdirp": {
"version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "license": "MIT",
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -13764,8 +12675,7 @@
},
"node_modules/redent": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "license": "MIT",
"dependencies": {
"indent-string": "^4.0.0",
"strip-indent": "^3.0.0"
@@ -13792,13 +12702,12 @@
},
"node_modules/regenerator-runtime": {
"version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ "license": "MIT"
},
"node_modules/regenerator-transform": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
- "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
+ "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
"dependencies": {
"@babel/runtime": "^7.8.4"
}
@@ -13809,12 +12718,13 @@
"integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q=="
},
"node_modules/regexp.prototype.flags": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz",
- "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==",
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
},
"engines": {
"node": ">= 0.4"
@@ -13869,7 +12779,7 @@
"node_modules/regjsparser/node_modules/jsesc": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
"bin": {
"jsesc": "bin/jsesc"
}
@@ -13877,7 +12787,7 @@
"node_modules/relateurl": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
- "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
"engines": {
"node": ">= 0.10"
}
@@ -13894,84 +12804,9 @@
"strip-ansi": "^6.0.1"
}
},
- "node_modules/renderkid/node_modules/css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/renderkid/node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/renderkid/node_modules/dom-serializer": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/renderkid/node_modules/domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/renderkid/node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/renderkid/node_modules/nth-check": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
- "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==",
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
"node_modules/require-directory": {
"version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -13987,14 +12822,14 @@
"node_modules/requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"node_modules/resolve": {
- "version": "1.22.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
- "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
"dependencies": {
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.9.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -14016,7 +12851,7 @@
"node": ">=8"
}
},
- "node_modules/resolve-cwd/node_modules/resolve-from": {
+ "node_modules/resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
@@ -14024,14 +12859,6 @@
"node": ">=8"
}
},
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/resolve-url-loader": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
@@ -14080,14 +12907,6 @@
"url": "https://opencollective.com/postcss/"
}
},
- "node_modules/resolve-url-loader/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/resolve.exports": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz",
@@ -14128,9 +12947,9 @@
}
},
"node_modules/rollup": {
- "version": "2.70.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz",
- "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==",
+ "version": "2.75.7",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz",
+ "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==",
"bin": {
"rollup": "dist/bin/rollup"
},
@@ -14155,14 +12974,6 @@
"rollup": "^2.0.0"
}
},
- "node_modules/rollup-plugin-terser/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/rollup-plugin-terser/node_modules/jest-worker": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
@@ -14184,17 +12995,6 @@
"randombytes": "^2.1.0"
}
},
- "node_modules/rollup-plugin-terser/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -14219,13 +13019,11 @@
},
"node_modules/safe-buffer": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "license": "MIT"
},
"node_modules/safer-buffer": {
"version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "license": "MIT"
},
"node_modules/sanitize.css": {
"version": "13.0.0",
@@ -14233,9 +13031,8 @@
"integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA=="
},
"node_modules/sass": {
- "version": "1.49.10",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.10.tgz",
- "integrity": "sha512-w37zfWJwKu4I78U4z63u1mmgoncq+v3iOB4yzQMPyAPVHHawaQSnu9C9ysGQnZEhW609jkcLioJcMCqm75JMdg==",
+ "version": "1.52.3",
+ "license": "MIT",
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
@@ -14302,9 +13099,8 @@
}
},
"node_modules/scheduler": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
- "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
+ "version": "0.23.0",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.1.0"
}
@@ -14326,10 +13122,16 @@
"url": "https://opencollective.com/webpack"
}
},
+ "node_modules/seedrandom": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz",
+ "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==",
+ "peer": true
+ },
"node_modules/select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo="
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
},
"node_modules/selfsigned": {
"version": "2.0.1",
@@ -14343,37 +13145,30 @@
}
},
"node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
+ "version": "6.3.0",
+ "license": "ISC",
"bin": {
"semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
}
},
"node_modules/send": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
- "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dependencies": {
"debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "1.8.1",
+ "http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"range-parser": "~1.2.1",
- "statuses": "~1.5.0"
+ "statuses": "2.0.1"
},
"engines": {
"node": ">= 0.8.0"
@@ -14390,7 +13185,7 @@
"node_modules/send/node_modules/debug/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
@@ -14408,7 +13203,7 @@
"node_modules/serve-index": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
"dependencies": {
"accepts": "~1.3.4",
"batch": "0.6.1",
@@ -14430,10 +13225,18 @@
"ms": "2.0.0"
}
},
+ "node_modules/serve-index/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/serve-index/node_modules/http-errors": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
"dependencies": {
"depd": "~1.1.2",
"inherits": "2.0.3",
@@ -14447,27 +13250,35 @@
"node_modules/serve-index/node_modules/inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
},
"node_modules/serve-index/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/serve-index/node_modules/setprototypeof": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
},
+ "node_modules/serve-index/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/serve-static": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
- "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.17.2"
+ "send": "0.18.0"
},
"engines": {
"node": ">= 0.8.0"
@@ -14549,17 +13360,15 @@
"integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
},
"node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "version": "0.6.1",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
@@ -14584,22 +13393,9 @@
"webpack": "^5.0.0"
}
},
- "node_modules/source-map-loader/node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/source-map-resolve": {
"version": "0.6.0",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz",
- "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==",
- "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+ "license": "MIT",
"dependencies": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0"
@@ -14614,14 +13410,6 @@
"source-map": "^0.6.0"
}
},
- "node_modules/source-map-support/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
@@ -14657,13 +13445,13 @@
},
"node_modules/sprintf-js": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ "license": "BSD-3-Clause"
},
"node_modules/stable": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
- "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility"
},
"node_modules/stack-utils": {
"version": "2.0.5",
@@ -14685,31 +13473,49 @@
}
},
"node_modules/stackframe": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz",
- "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg=="
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
},
"node_modules/state-local": {
"version": "1.0.7",
- "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz",
- "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="
+ "license": "MIT"
},
"node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "~5.2.0"
}
},
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/string-length": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
@@ -14729,8 +13535,7 @@
},
"node_modules/string-width": {
"version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -14742,8 +13547,7 @@
},
"node_modules/string-width/node_modules/emoji-regex": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "license": "MIT"
},
"node_modules/string.prototype.matchall": {
"version": "4.0.7",
@@ -14764,24 +13568,26 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -14802,8 +13608,7 @@
},
"node_modules/strip-ansi": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -14812,11 +13617,11 @@
}
},
"node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
"node_modules/strip-comments": {
@@ -14837,8 +13642,7 @@
},
"node_modules/strip-indent": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "license": "MIT",
"dependencies": {
"min-indent": "^1.0.0"
},
@@ -14888,42 +13692,22 @@
}
},
"node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "version": "7.2.0",
+ "license": "MIT",
"dependencies": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
"node_modules/supports-hyperlinks": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
- "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
},
"engines": {
"node": ">=8"
@@ -14972,12 +13756,94 @@
"node": ">=4.0.0"
}
},
- "node_modules/svgo/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "node_modules/svgo/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dependencies": {
- "sprintf-js": "~1.0.2"
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svgo/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svgo/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/svgo/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/svgo/node_modules/css-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "node_modules/svgo/node_modules/css-what": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/svgo/node_modules/dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/svgo/node_modules/domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dependencies": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ },
+ "node_modules/svgo/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
}
},
"node_modules/svgo/node_modules/js-yaml": {
@@ -14992,34 +13858,54 @@
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/svgo/node_modules/nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dependencies": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "node_modules/svgo/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"node_modules/tailwindcss": {
- "version": "3.0.23",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz",
- "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.3.tgz",
+ "integrity": "sha512-PRJNYdSIthrb8hjmAyymEyEN8Yo61TMXpzyFUpxULeeyRn3Y3gpvuw6FlRTKrJvK7thSGKRnhT36VovVx4WeMA==",
"dependencies": {
- "arg": "^5.0.1",
- "chalk": "^4.1.2",
+ "arg": "^5.0.2",
"chokidar": "^3.5.3",
"color-name": "^1.1.4",
- "cosmiconfig": "^7.0.1",
- "detective": "^5.2.0",
+ "detective": "^5.2.1",
"didyoumean": "^1.2.2",
"dlv": "^1.1.3",
"fast-glob": "^3.2.11",
"glob-parent": "^6.0.2",
"is-glob": "^4.0.3",
+ "lilconfig": "^2.0.5",
"normalize-path": "^3.0.0",
- "object-hash": "^2.2.0",
- "postcss": "^8.4.6",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.14",
+ "postcss-import": "^14.1.0",
"postcss-js": "^4.0.0",
- "postcss-load-config": "^3.1.0",
+ "postcss-load-config": "^3.1.4",
"postcss-nested": "5.0.6",
- "postcss-selector-parser": "^6.0.9",
+ "postcss-selector-parser": "^6.0.10",
"postcss-value-parser": "^4.2.0",
"quick-lru": "^5.1.1",
"resolve": "^1.22.0"
@@ -15032,74 +13918,9 @@
"node": ">=12.13.0"
},
"peerDependencies": {
- "autoprefixer": "^10.0.2",
"postcss": "^8.0.9"
}
},
- "node_modules/tailwindcss/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/tailwindcss/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/tailwindcss/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/tailwindcss/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/tailwindcss/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tailwindcss/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/tapable": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
@@ -15160,13 +13981,13 @@
}
},
"node_modules/terser": {
- "version": "5.12.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz",
- "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==",
+ "version": "5.14.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz",
+ "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==",
"dependencies": {
+ "@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0",
- "source-map": "~0.7.2",
"source-map-support": "~0.5.20"
},
"bin": {
@@ -15177,14 +13998,14 @@
}
},
"node_modules/terser-webpack-plugin": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz",
- "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==",
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz",
+ "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==",
"dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.7",
"jest-worker": "^27.4.5",
"schema-utils": "^3.1.1",
"serialize-javascript": "^6.0.0",
- "source-map": "^0.6.1",
"terser": "^5.7.2"
},
"engines": {
@@ -15209,27 +14030,11 @@
}
}
},
- "node_modules/terser-webpack-plugin/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/terser/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
- "node_modules/terser/node_modules/source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
- "engines": {
- "node": ">= 8"
- }
- },
"node_modules/test-exclude": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -15246,7 +14051,7 @@
"node_modules/text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
},
"node_modules/throat": {
"version": "6.0.1",
@@ -15265,16 +14070,14 @@
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/to-regex-range": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -15312,15 +14115,9 @@
}
},
"node_modules/tr46": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
- "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
- "dependencies": {
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=8"
- }
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/tryer": {
"version": "1.0.1",
@@ -15349,10 +14146,18 @@
"json5": "lib/cli.js"
}
},
+ "node_modules/tsconfig-paths/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/tsutils": {
"version": "3.21.0",
@@ -15368,6 +14173,11 @@
"typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
+ "node_modules/tsutils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -15388,9 +14198,9 @@
}
},
"node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"engines": {
"node": ">=10"
},
@@ -15418,14 +14228,27 @@
"is-typedarray": "^1.0.0"
}
},
+ "node_modules/typescript": {
+ "version": "4.7.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
+ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
"node_modules/unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dependencies": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
"which-boxed-primitive": "^1.0.2"
},
"funding": {
@@ -15434,8 +14257,7 @@
},
"node_modules/uncontrollable": {
"version": "7.2.1",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
- "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
+ "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.6.3",
"@types/react": ">=16.9.11",
@@ -15504,7 +14326,7 @@
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"engines": {
"node": ">= 0.8"
}
@@ -15512,7 +14334,7 @@
"node_modules/unquote": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
- "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ="
+ "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
},
"node_modules/upath": {
"version": "1.2.0",
@@ -15533,8 +14355,7 @@
},
"node_modules/util": {
"version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "license": "MIT",
"dependencies": {
"inherits": "2.0.3"
}
@@ -15542,7 +14363,7 @@
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/util.promisify": {
"version": "1.0.1",
@@ -15560,18 +14381,17 @@
},
"node_modules/util/node_modules/inherits": {
"version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "license": "ISC"
},
"node_modules/utila": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
- "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw="
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="
},
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"engines": {
"node": ">= 0.4.0"
}
@@ -15603,9 +14423,9 @@
}
},
"node_modules/v8-to-istanbul/node_modules/source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"engines": {
"node": ">= 8"
}
@@ -15613,7 +14433,7 @@
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"engines": {
"node": ">= 0.8"
}
@@ -15647,16 +14467,15 @@
},
"node_modules/warning": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
- "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.0.0"
}
},
"node_modules/watchpack": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz",
- "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
"dependencies": {
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.1.2"
@@ -15675,8 +14494,7 @@
},
"node_modules/web-vitals": {
"version": "2.1.4",
- "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz",
- "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg=="
+ "license": "Apache-2.0"
},
"node_modules/webidl-conversions": {
"version": "6.1.0",
@@ -15687,9 +14505,9 @@
}
},
"node_modules/webpack": {
- "version": "5.70.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz",
- "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==",
+ "version": "5.73.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz",
+ "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==",
"dependencies": {
"@types/eslint-scope": "^3.7.3",
"@types/estree": "^0.0.51",
@@ -15700,13 +14518,13 @@
"acorn-import-assertions": "^1.7.6",
"browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.9.2",
+ "enhanced-resolve": "^5.9.3",
"es-module-lexer": "^0.9.0",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.2.9",
- "json-parse-better-errors": "^1.0.2",
+ "json-parse-even-better-errors": "^2.3.1",
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
@@ -15733,12 +14551,12 @@
}
},
"node_modules/webpack-dev-middleware": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz",
- "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==",
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
+ "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
"dependencies": {
"colorette": "^2.0.10",
- "memfs": "^3.4.1",
+ "memfs": "^3.4.3",
"mime-types": "^2.1.31",
"range-parser": "^1.2.1",
"schema-utils": "^4.0.0"
@@ -15804,38 +14622,37 @@
}
},
"node_modules/webpack-dev-server": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz",
- "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==",
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz",
+ "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==",
"dependencies": {
"@types/bonjour": "^3.5.9",
"@types/connect-history-api-fallback": "^1.3.5",
"@types/express": "^4.17.13",
"@types/serve-index": "^1.9.1",
+ "@types/serve-static": "^1.13.10",
"@types/sockjs": "^0.3.33",
- "@types/ws": "^8.2.2",
+ "@types/ws": "^8.5.1",
"ansi-html-community": "^0.0.8",
- "bonjour": "^3.5.0",
+ "bonjour-service": "^1.0.11",
"chokidar": "^3.5.3",
"colorette": "^2.0.10",
"compression": "^1.7.4",
"connect-history-api-fallback": "^1.6.0",
"default-gateway": "^6.0.3",
- "del": "^6.0.0",
- "express": "^4.17.1",
+ "express": "^4.17.3",
"graceful-fs": "^4.2.6",
"html-entities": "^2.3.2",
- "http-proxy-middleware": "^2.0.0",
+ "http-proxy-middleware": "^2.0.3",
"ipaddr.js": "^2.0.1",
"open": "^8.0.9",
"p-retry": "^4.5.0",
- "portfinder": "^1.0.28",
+ "rimraf": "^3.0.2",
"schema-utils": "^4.0.0",
- "selfsigned": "^2.0.0",
+ "selfsigned": "^2.0.1",
"serve-index": "^1.9.1",
- "sockjs": "^0.3.21",
+ "sockjs": "^0.3.24",
"spdy": "^4.0.2",
- "strip-ansi": "^7.0.0",
"webpack-dev-middleware": "^5.3.1",
"ws": "^8.4.2"
},
@@ -15880,17 +14697,6 @@
"ajv": "^8.8.2"
}
},
- "node_modules/webpack-dev-server/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
"node_modules/webpack-dev-server/node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
@@ -15914,24 +14720,10 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/webpack-dev-server/node_modules/strip-ansi": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
- "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
"node_modules/webpack-dev-server/node_modules/ws": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
- "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz",
+ "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==",
"engines": {
"node": ">=10.0.0"
},
@@ -15963,14 +14755,6 @@
"webpack": "^4.44.2 || ^5.47.0"
}
},
- "node_modules/webpack-manifest-plugin/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/webpack-manifest-plugin/node_modules/webpack-sources": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz",
@@ -16040,6 +14824,17 @@
"iconv-lite": "0.4.24"
}
},
+ "node_modules/whatwg-encoding/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/whatwg-fetch": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
@@ -16051,18 +14846,19 @@
"integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
},
"node_modules/whatwg-url": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
- "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
- "dependencies": {
- "lodash": "^4.7.0",
- "tr46": "^2.1.0",
- "webidl-conversions": "^6.1.0"
- },
- "engines": {
- "node": ">=10"
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
}
},
+ "node_modules/whatwg-url/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -16101,26 +14897,26 @@
}
},
"node_modules/workbox-background-sync": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz",
- "integrity": "sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.3.tgz",
+ "integrity": "sha512-0DD/V05FAcek6tWv9XYj2w5T/plxhDSpclIcAGjA/b7t/6PdaRkQ7ZgtAX6Q/L7kV7wZ8uYRJUoH11VjNipMZw==",
"dependencies": {
"idb": "^6.1.4",
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/workbox-broadcast-update": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz",
- "integrity": "sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.3.tgz",
+ "integrity": "sha512-4AwCIA5DiDrYhlN+Miv/fp5T3/whNmSL+KqhTwRBTZIL6pvTgE4lVuRzAt1JltmqyMcQ3SEfCdfxczuI4kwFQg==",
"dependencies": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/workbox-build": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.2.tgz",
- "integrity": "sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.3.tgz",
+ "integrity": "sha512-8JNHHS7u13nhwIYCDea9MNXBNPHXCs5KDZPKI/ZNTr3f4sMGoD7hgFGecbyjX1gw4z6e9bMpMsOEJNyH5htA/w==",
"dependencies": {
"@apideck/better-ajv-errors": "^0.3.1",
"@babel/core": "^7.11.1",
@@ -16144,26 +14940,42 @@
"strip-comments": "^2.0.1",
"tempy": "^0.6.0",
"upath": "^1.2.0",
- "workbox-background-sync": "6.5.2",
- "workbox-broadcast-update": "6.5.2",
- "workbox-cacheable-response": "6.5.2",
- "workbox-core": "6.5.2",
- "workbox-expiration": "6.5.2",
- "workbox-google-analytics": "6.5.2",
- "workbox-navigation-preload": "6.5.2",
- "workbox-precaching": "6.5.2",
- "workbox-range-requests": "6.5.2",
- "workbox-recipes": "6.5.2",
- "workbox-routing": "6.5.2",
- "workbox-strategies": "6.5.2",
- "workbox-streams": "6.5.2",
- "workbox-sw": "6.5.2",
- "workbox-window": "6.5.2"
+ "workbox-background-sync": "6.5.3",
+ "workbox-broadcast-update": "6.5.3",
+ "workbox-cacheable-response": "6.5.3",
+ "workbox-core": "6.5.3",
+ "workbox-expiration": "6.5.3",
+ "workbox-google-analytics": "6.5.3",
+ "workbox-navigation-preload": "6.5.3",
+ "workbox-precaching": "6.5.3",
+ "workbox-range-requests": "6.5.3",
+ "workbox-recipes": "6.5.3",
+ "workbox-routing": "6.5.3",
+ "workbox-strategies": "6.5.3",
+ "workbox-streams": "6.5.3",
+ "workbox-sw": "6.5.3",
+ "workbox-window": "6.5.3"
},
"engines": {
"node": ">=10.0.0"
}
},
+ "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.4.tgz",
+ "integrity": "sha512-Ic2d8ZT6HJiSikGVQvSklaFyw1OUv4g8sDOxa0PXSlbmN/3gL5IO1WYY9DOwTDqOFmjWoqG1yaaKnPDqYCE9KA==",
+ "dependencies": {
+ "json-schema": "^0.4.0",
+ "jsonpointer": "^5.0.0",
+ "leven": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "ajv": ">=8"
+ }
+ },
"node_modules/workbox-build/node_modules/ajv": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
@@ -16212,7 +15024,7 @@
"node_modules/workbox-build/node_modules/tr46": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
- "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
"dependencies": {
"punycode": "^2.1.0"
}
@@ -16233,117 +15045,117 @@
}
},
"node_modules/workbox-cacheable-response": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz",
- "integrity": "sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz",
+ "integrity": "sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==",
"dependencies": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/workbox-core": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.2.tgz",
- "integrity": "sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ=="
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.3.tgz",
+ "integrity": "sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q=="
},
"node_modules/workbox-expiration": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.2.tgz",
- "integrity": "sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.3.tgz",
+ "integrity": "sha512-jzYopYR1zD04ZMdlbn/R2Ik6ixiXbi15c9iX5H8CTi6RPDz7uhvMLZPKEndZTpfgmUk8mdmT9Vx/AhbuCl5Sqw==",
"dependencies": {
"idb": "^6.1.4",
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/workbox-google-analytics": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz",
- "integrity": "sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.3.tgz",
+ "integrity": "sha512-3GLCHotz5umoRSb4aNQeTbILETcrTVEozSfLhHSBaegHs1PnqCmN0zbIy2TjTpph2AGXiNwDrWGF0AN+UgDNTw==",
"dependencies": {
- "workbox-background-sync": "6.5.2",
- "workbox-core": "6.5.2",
- "workbox-routing": "6.5.2",
- "workbox-strategies": "6.5.2"
+ "workbox-background-sync": "6.5.3",
+ "workbox-core": "6.5.3",
+ "workbox-routing": "6.5.3",
+ "workbox-strategies": "6.5.3"
}
},
"node_modules/workbox-navigation-preload": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz",
- "integrity": "sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.3.tgz",
+ "integrity": "sha512-bK1gDFTc5iu6lH3UQ07QVo+0ovErhRNGvJJO/1ngknT0UQ702nmOUhoN9qE5mhuQSrnK+cqu7O7xeaJ+Rd9Tmg==",
"dependencies": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/workbox-precaching": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.2.tgz",
- "integrity": "sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.3.tgz",
+ "integrity": "sha512-sjNfgNLSsRX5zcc63H/ar/hCf+T19fRtTqvWh795gdpghWb5xsfEkecXEvZ8biEi1QD7X/ljtHphdaPvXDygMQ==",
"dependencies": {
- "workbox-core": "6.5.2",
- "workbox-routing": "6.5.2",
- "workbox-strategies": "6.5.2"
+ "workbox-core": "6.5.3",
+ "workbox-routing": "6.5.3",
+ "workbox-strategies": "6.5.3"
}
},
"node_modules/workbox-range-requests": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz",
- "integrity": "sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.3.tgz",
+ "integrity": "sha512-pGCP80Bpn/0Q0MQsfETSfmtXsQcu3M2QCJwSFuJ6cDp8s2XmbUXkzbuQhCUzKR86ZH2Vex/VUjb2UaZBGamijA==",
"dependencies": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/workbox-recipes": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.2.tgz",
- "integrity": "sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.3.tgz",
+ "integrity": "sha512-IcgiKYmbGiDvvf3PMSEtmwqxwfQ5zwI7OZPio3GWu4PfehA8jI8JHI3KZj+PCfRiUPZhjQHJ3v1HbNs+SiSkig==",
"dependencies": {
- "workbox-cacheable-response": "6.5.2",
- "workbox-core": "6.5.2",
- "workbox-expiration": "6.5.2",
- "workbox-precaching": "6.5.2",
- "workbox-routing": "6.5.2",
- "workbox-strategies": "6.5.2"
+ "workbox-cacheable-response": "6.5.3",
+ "workbox-core": "6.5.3",
+ "workbox-expiration": "6.5.3",
+ "workbox-precaching": "6.5.3",
+ "workbox-routing": "6.5.3",
+ "workbox-strategies": "6.5.3"
}
},
"node_modules/workbox-routing": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.2.tgz",
- "integrity": "sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.3.tgz",
+ "integrity": "sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==",
"dependencies": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/workbox-strategies": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.2.tgz",
- "integrity": "sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.3.tgz",
+ "integrity": "sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==",
"dependencies": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/workbox-streams": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.2.tgz",
- "integrity": "sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.3.tgz",
+ "integrity": "sha512-vN4Qi8o+b7zj1FDVNZ+PlmAcy1sBoV7SC956uhqYvZ9Sg1fViSbOpydULOssVJ4tOyKRifH/eoi6h99d+sJ33w==",
"dependencies": {
- "workbox-core": "6.5.2",
- "workbox-routing": "6.5.2"
+ "workbox-core": "6.5.3",
+ "workbox-routing": "6.5.3"
}
},
"node_modules/workbox-sw": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.2.tgz",
- "integrity": "sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw=="
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.3.tgz",
+ "integrity": "sha512-BQBzm092w+NqdIEF2yhl32dERt9j9MDGUTa2Eaa+o3YKL4Qqw55W9yQC6f44FdAHdAJrJvp0t+HVrfh8AiGj8A=="
},
"node_modules/workbox-webpack-plugin": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.2.tgz",
- "integrity": "sha512-StrJ7wKp5tZuGVcoKLVjFWlhDy+KT7ZWsKnNcD6F08wA9Cpt6JN+PLIrplcsTHbQpoAV8+xg6RvcG0oc9z+RpQ==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.3.tgz",
+ "integrity": "sha512-Es8Xr02Gi6Kc3zaUwR691ZLy61hz3vhhs5GztcklQ7kl5k2qAusPh0s6LF3wEtlpfs9ZDErnmy5SErwoll7jBA==",
"dependencies": {
"fast-json-stable-stringify": "^2.1.0",
"pretty-bytes": "^5.4.1",
"upath": "^1.2.0",
"webpack-sources": "^1.4.3",
- "workbox-build": "6.5.2"
+ "workbox-build": "6.5.3"
},
"engines": {
"node": ">=10.0.0"
@@ -16352,14 +15164,6 @@
"webpack": "^4.4.0 || ^5.9.0"
}
},
- "node_modules/workbox-webpack-plugin/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/workbox-webpack-plugin/node_modules/webpack-sources": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
@@ -16370,18 +15174,17 @@
}
},
"node_modules/workbox-window": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.2.tgz",
- "integrity": "sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.3.tgz",
+ "integrity": "sha512-GnJbx1kcKXDtoJBVZs/P7ddP0Yt52NNy4nocjBpYPiRhMqTpJCNrSL+fGHZ/i/oP6p/vhE8II0sA6AZGKGnssw==",
"dependencies": {
"@types/trusted-types": "^2.0.2",
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -16394,40 +15197,10 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/wrap-ansi/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/write-file-atomic": {
"version": "3.0.3",
@@ -16441,9 +15214,9 @@
}
},
"node_modules/ws": {
- "version": "7.5.7",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz",
- "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==",
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz",
+ "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==",
"engines": {
"node": ">=8.3.0"
},
@@ -16480,8 +15253,7 @@
},
"node_modules/y18n": {
"version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
"engines": {
"node": ">=10"
}
@@ -16501,8 +15273,7 @@
},
"node_modules/yargs": {
"version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "license": "MIT",
"dependencies": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -16518,8 +15289,7 @@
},
"node_modules/yargs-parser": {
"version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "license": "ISC",
"engines": {
"node": ">=10"
}
@@ -16538,69 +15308,45 @@
},
"dependencies": {
"@ampproject/remapping": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz",
- "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==",
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.0"
- }
- },
- "@apideck/better-ajv-errors": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz",
- "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==",
+ "version": "2.2.0",
"requires": {
- "json-schema": "^0.4.0",
- "jsonpointer": "^5.0.0",
- "leven": "^3.1.0"
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
}
},
"@babel/code-frame": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
- "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
"requires": {
"@babel/highlight": "^7.16.7"
}
},
"@babel/compat-data": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz",
- "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ=="
+ "version": "7.18.5"
},
"@babel/core": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz",
- "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==",
+ "version": "7.18.5",
"requires": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.17.7",
- "@babel/helper-compilation-targets": "^7.17.7",
- "@babel/helper-module-transforms": "^7.17.7",
- "@babel/helpers": "^7.17.8",
- "@babel/parser": "^7.17.8",
+ "@babel/generator": "^7.18.2",
+ "@babel/helper-compilation-targets": "^7.18.2",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helpers": "^7.18.2",
+ "@babel/parser": "^7.18.5",
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.17.3",
- "@babel/types": "^7.17.0",
+ "@babel/traverse": "^7.18.5",
+ "@babel/types": "^7.18.4",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.1.2",
+ "json5": "^2.2.1",
"semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
}
},
"@babel/eslint-parser": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.17.0.tgz",
- "integrity": "sha512-PUEJ7ZBXbRkbq3qqM/jZ2nIuakUBqCYc7Qf52Lj7dlZ6zERnqisdHioL0l4wwQZnmskMeasqUNzLBFKs3nylXA==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz",
+ "integrity": "sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==",
"requires": {
"eslint-scope": "^5.1.1",
"eslint-visitor-keys": "^2.1.0",
@@ -16625,22 +15371,25 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
}
}
},
"@babel/generator": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz",
- "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==",
+ "version": "7.18.2",
"requires": {
- "@babel/types": "^7.17.0",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
+ "@babel/types": "^7.18.2",
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "jsesc": "^2.5.1"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.1",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
}
},
"@babel/helper-annotate-as-pure": {
@@ -16661,41 +15410,32 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz",
- "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==",
+ "version": "7.18.2",
"requires": {
- "@babel/compat-data": "^7.17.7",
+ "@babel/compat-data": "^7.17.10",
"@babel/helper-validator-option": "^7.16.7",
- "browserslist": "^4.17.5",
+ "browserslist": "^4.20.2",
"semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.17.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz",
- "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz",
+ "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
- "@babel/helper-member-expression-to-functions": "^7.16.7",
+ "@babel/helper-function-name": "^7.17.9",
+ "@babel/helper-member-expression-to-functions": "^7.17.7",
"@babel/helper-optimise-call-expression": "^7.16.7",
"@babel/helper-replace-supers": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7"
}
},
"@babel/helper-create-regexp-features-plugin": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz",
- "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz",
+ "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"regexpu-core": "^5.0.1"
@@ -16714,22 +15454,10 @@
"lodash.debounce": "^4.0.8",
"resolve": "^1.14.2",
"semver": "^6.1.2"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
}
},
"@babel/helper-environment-visitor": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz",
- "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==",
- "requires": {
- "@babel/types": "^7.16.7"
- }
+ "version": "7.18.2"
},
"@babel/helper-explode-assignable-expression": {
"version": "7.16.7",
@@ -16740,27 +15468,14 @@
}
},
"@babel/helper-function-name": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz",
- "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==",
+ "version": "7.17.9",
"requires": {
- "@babel/helper-get-function-arity": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/types": "^7.16.7"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz",
- "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==",
- "requires": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.17.0"
}
},
"@babel/helper-hoist-variables": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
- "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
"requires": {
"@babel/types": "^7.16.7"
}
@@ -16775,16 +15490,12 @@
},
"@babel/helper-module-imports": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
- "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-module-transforms": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz",
- "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==",
+ "version": "7.18.0",
"requires": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
@@ -16792,8 +15503,8 @@
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.17.3",
- "@babel/types": "^7.17.0"
+ "@babel/traverse": "^7.18.0",
+ "@babel/types": "^7.18.0"
}
},
"@babel/helper-optimise-call-expression": {
@@ -16805,9 +15516,9 @@
}
},
"@babel/helper-plugin-utils": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz",
- "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA=="
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz",
+ "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA=="
},
"@babel/helper-remap-async-to-generator": {
"version": "7.16.8",
@@ -16820,23 +15531,21 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz",
- "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz",
+ "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==",
"requires": {
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-member-expression-to-functions": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-member-expression-to-functions": "^7.17.7",
"@babel/helper-optimise-call-expression": "^7.16.7",
- "@babel/traverse": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2"
}
},
"@babel/helper-simple-access": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz",
- "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==",
+ "version": "7.18.2",
"requires": {
- "@babel/types": "^7.17.0"
+ "@babel/types": "^7.18.2"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
@@ -16849,21 +15558,15 @@
},
"@babel/helper-split-export-declaration": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
- "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
- "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw=="
+ "version": "7.16.7"
},
"@babel/helper-validator-option": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
- "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ=="
+ "version": "7.16.7"
},
"@babel/helper-wrap-function": {
"version": "7.16.8",
@@ -16877,86 +15580,115 @@
}
},
"@babel/helpers": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz",
- "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==",
+ "version": "7.18.2",
"requires": {
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.17.3",
- "@babel/types": "^7.17.0"
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2"
}
},
"@babel/highlight": {
- "version": "7.16.10",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz",
- "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==",
+ "version": "7.17.12",
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3"
+ },
+ "has-flag": {
+ "version": "3.0.0"
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@babel/parser": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz",
- "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ=="
+ "version": "7.18.5"
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz",
- "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz",
+ "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz",
- "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz",
+ "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
- "@babel/plugin-proposal-optional-chaining": "^7.16.7"
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12"
}
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz",
- "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz",
+ "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-remap-async-to-generator": "^7.16.8",
"@babel/plugin-syntax-async-generators": "^7.8.4"
}
},
"@babel/plugin-proposal-class-properties": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz",
- "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz",
+ "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-proposal-class-static-block": {
- "version": "7.17.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz",
- "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz",
+ "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.17.6",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-create-class-features-plugin": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
}
},
"@babel/plugin-proposal-decorators": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz",
- "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz",
+ "integrity": "sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.17.6",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-replace-supers": "^7.16.7",
- "@babel/plugin-syntax-decorators": "^7.17.0",
+ "@babel/helper-create-class-features-plugin": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-replace-supers": "^7.18.2",
+ "@babel/helper-split-export-declaration": "^7.16.7",
+ "@babel/plugin-syntax-decorators": "^7.17.12",
"charcodes": "^0.2.0"
}
},
@@ -16970,38 +15702,38 @@
}
},
"@babel/plugin-proposal-export-namespace-from": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz",
- "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz",
+ "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
}
},
"@babel/plugin-proposal-json-strings": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz",
- "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz",
+ "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-json-strings": "^7.8.3"
}
},
"@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz",
- "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz",
+ "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
}
},
"@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz",
- "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz",
+ "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
}
},
@@ -17015,15 +15747,15 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.17.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz",
- "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz",
+ "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==",
"requires": {
- "@babel/compat-data": "^7.17.0",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/compat-data": "^7.17.10",
+ "@babel/helper-compilation-targets": "^7.17.10",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.16.7"
+ "@babel/plugin-transform-parameters": "^7.17.12"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
@@ -17036,42 +15768,42 @@
}
},
"@babel/plugin-proposal-optional-chaining": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz",
- "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz",
+ "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
}
},
"@babel/plugin-proposal-private-methods": {
- "version": "7.16.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz",
- "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz",
+ "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.10",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-proposal-private-property-in-object": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz",
- "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz",
+ "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
}
},
"@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz",
- "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz",
+ "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==",
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-syntax-async-generators": {
@@ -17107,11 +15839,11 @@
}
},
"@babel/plugin-syntax-decorators": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz",
- "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz",
+ "integrity": "sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-syntax-dynamic-import": {
@@ -17131,11 +15863,19 @@
}
},
"@babel/plugin-syntax-flow": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz",
- "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.17.12.tgz",
+ "integrity": "sha512-B8QIgBvkIG6G2jgsOHQUist7Sm0EBLDCx8sen072IwqNuzMegZNXrYnSv77cYzA8mLDZAfQYqsLIhimiP1s2HQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
+ }
+ },
+ "@babel/plugin-syntax-import-assertions": {
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz",
+ "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-syntax-import-meta": {
@@ -17155,11 +15895,11 @@
}
},
"@babel/plugin-syntax-jsx": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
- "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz",
+ "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-syntax-logical-assignment-operators": {
@@ -17227,28 +15967,28 @@
}
},
"@babel/plugin-syntax-typescript": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz",
- "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz",
+ "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-arrow-functions": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz",
- "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz",
+ "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-async-to-generator": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz",
- "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz",
+ "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==",
"requires": {
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-remap-async-to-generator": "^7.16.8"
}
},
@@ -17261,42 +16001,42 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz",
- "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz",
+ "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz",
- "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz",
+ "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-function-name": "^7.17.9",
"@babel/helper-optimise-call-expression": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-replace-supers": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-replace-supers": "^7.18.2",
"@babel/helper-split-export-declaration": "^7.16.7",
"globals": "^11.1.0"
}
},
"@babel/plugin-transform-computed-properties": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz",
- "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz",
+ "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz",
- "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz",
+ "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-dotall-regex": {
@@ -17309,11 +16049,11 @@
}
},
"@babel/plugin-transform-duplicate-keys": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz",
- "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz",
+ "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-exponentiation-operator": {
@@ -17326,20 +16066,20 @@
}
},
"@babel/plugin-transform-flow-strip-types": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz",
- "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.17.12.tgz",
+ "integrity": "sha512-g8cSNt+cHCpG/uunPQELdq/TeV3eg1OLJYwxypwHtAWo9+nErH3lQx9CSO2uI9lF74A0mR0t4KoMjs1snSgnTw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/plugin-syntax-flow": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/plugin-syntax-flow": "^7.17.12"
}
},
"@babel/plugin-transform-for-of": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz",
- "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==",
+ "version": "7.18.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz",
+ "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-function-name": {
@@ -17353,11 +16093,11 @@
}
},
"@babel/plugin-transform-literals": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz",
- "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz",
+ "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-member-expression-literals": {
@@ -17369,61 +16109,62 @@
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz",
- "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz",
+ "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==",
"requires": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.17.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz",
- "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz",
+ "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==",
"requires": {
- "@babel/helper-module-transforms": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-simple-access": "^7.17.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-simple-access": "^7.18.2",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz",
- "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==",
+ "version": "7.18.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz",
+ "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==",
"requires": {
"@babel/helper-hoist-variables": "^7.16.7",
- "@babel/helper-module-transforms": "^7.17.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-identifier": "^7.16.7",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-umd": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz",
- "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz",
+ "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==",
"requires": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz",
- "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz",
+ "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==",
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-new-target": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz",
- "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==",
+ "version": "7.18.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz",
+ "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-object-super": {
@@ -17436,11 +16177,11 @@
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz",
- "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz",
+ "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-property-literals": {
@@ -17452,11 +16193,11 @@
}
},
"@babel/plugin-transform-react-constant-elements": {
- "version": "7.17.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz",
- "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.12.tgz",
+ "integrity": "sha512-maEkX2xs2STuv2Px8QuqxqjhV2LsFobT1elCgyU5704fcyTu9DyD/bJXxD/mrRiVyhpHweOQ00OJ5FKhHq9oEw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-react-display-name": {
@@ -17468,15 +16209,15 @@
}
},
"@babel/plugin-transform-react-jsx": {
- "version": "7.17.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz",
- "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz",
+ "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/plugin-syntax-jsx": "^7.16.7",
- "@babel/types": "^7.17.0"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/plugin-syntax-jsx": "^7.17.12",
+ "@babel/types": "^7.17.12"
}
},
"@babel/plugin-transform-react-jsx-development": {
@@ -17488,48 +16229,42 @@
}
},
"@babel/plugin-transform-react-pure-annotations": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz",
- "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz",
+ "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz",
- "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz",
+ "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==",
"requires": {
- "regenerator-transform": "^0.14.2"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "regenerator-transform": "^0.15.0"
}
},
"@babel/plugin-transform-reserved-words": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz",
- "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz",
+ "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.0.tgz",
- "integrity": "sha512-fr7zPWnKXNc1xoHfrIU9mN/4XKX4VLZ45Q+oMhfsYIaHvg7mHgmhfOy/ckRWqDK7XF3QDigRpkh5DKq6+clE8A==",
+ "version": "7.18.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz",
+ "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==",
"requires": {
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"babel-plugin-polyfill-corejs2": "^0.3.0",
"babel-plugin-polyfill-corejs3": "^0.5.0",
"babel-plugin-polyfill-regenerator": "^0.3.0",
"semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
}
},
"@babel/plugin-transform-shorthand-properties": {
@@ -17541,11 +16276,11 @@
}
},
"@babel/plugin-transform-spread": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz",
- "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz",
+ "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
}
},
@@ -17558,29 +16293,29 @@
}
},
"@babel/plugin-transform-template-literals": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz",
- "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz",
+ "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-typeof-symbol": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz",
- "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz",
+ "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-typescript": {
- "version": "7.16.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz",
- "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz",
+ "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/plugin-syntax-typescript": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/plugin-syntax-typescript": "^7.17.12"
}
},
"@babel/plugin-transform-unicode-escapes": {
@@ -17601,36 +16336,37 @@
}
},
"@babel/preset-env": {
- "version": "7.16.11",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz",
- "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz",
+ "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==",
"requires": {
- "@babel/compat-data": "^7.16.8",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/compat-data": "^7.17.10",
+ "@babel/helper-compilation-targets": "^7.18.2",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-option": "^7.16.7",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7",
- "@babel/plugin-proposal-async-generator-functions": "^7.16.8",
- "@babel/plugin-proposal-class-properties": "^7.16.7",
- "@babel/plugin-proposal-class-static-block": "^7.16.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12",
+ "@babel/plugin-proposal-async-generator-functions": "^7.17.12",
+ "@babel/plugin-proposal-class-properties": "^7.17.12",
+ "@babel/plugin-proposal-class-static-block": "^7.18.0",
"@babel/plugin-proposal-dynamic-import": "^7.16.7",
- "@babel/plugin-proposal-export-namespace-from": "^7.16.7",
- "@babel/plugin-proposal-json-strings": "^7.16.7",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
+ "@babel/plugin-proposal-export-namespace-from": "^7.17.12",
+ "@babel/plugin-proposal-json-strings": "^7.17.12",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12",
"@babel/plugin-proposal-numeric-separator": "^7.16.7",
- "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.18.0",
"@babel/plugin-proposal-optional-catch-binding": "^7.16.7",
- "@babel/plugin-proposal-optional-chaining": "^7.16.7",
- "@babel/plugin-proposal-private-methods": "^7.16.11",
- "@babel/plugin-proposal-private-property-in-object": "^7.16.7",
- "@babel/plugin-proposal-unicode-property-regex": "^7.16.7",
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12",
+ "@babel/plugin-proposal-private-methods": "^7.17.12",
+ "@babel/plugin-proposal-private-property-in-object": "^7.17.12",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.17.12",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.17.12",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -17640,52 +16376,45 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.16.7",
- "@babel/plugin-transform-async-to-generator": "^7.16.8",
+ "@babel/plugin-transform-arrow-functions": "^7.17.12",
+ "@babel/plugin-transform-async-to-generator": "^7.17.12",
"@babel/plugin-transform-block-scoped-functions": "^7.16.7",
- "@babel/plugin-transform-block-scoping": "^7.16.7",
- "@babel/plugin-transform-classes": "^7.16.7",
- "@babel/plugin-transform-computed-properties": "^7.16.7",
- "@babel/plugin-transform-destructuring": "^7.16.7",
+ "@babel/plugin-transform-block-scoping": "^7.17.12",
+ "@babel/plugin-transform-classes": "^7.17.12",
+ "@babel/plugin-transform-computed-properties": "^7.17.12",
+ "@babel/plugin-transform-destructuring": "^7.18.0",
"@babel/plugin-transform-dotall-regex": "^7.16.7",
- "@babel/plugin-transform-duplicate-keys": "^7.16.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.17.12",
"@babel/plugin-transform-exponentiation-operator": "^7.16.7",
- "@babel/plugin-transform-for-of": "^7.16.7",
+ "@babel/plugin-transform-for-of": "^7.18.1",
"@babel/plugin-transform-function-name": "^7.16.7",
- "@babel/plugin-transform-literals": "^7.16.7",
+ "@babel/plugin-transform-literals": "^7.17.12",
"@babel/plugin-transform-member-expression-literals": "^7.16.7",
- "@babel/plugin-transform-modules-amd": "^7.16.7",
- "@babel/plugin-transform-modules-commonjs": "^7.16.8",
- "@babel/plugin-transform-modules-systemjs": "^7.16.7",
- "@babel/plugin-transform-modules-umd": "^7.16.7",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8",
- "@babel/plugin-transform-new-target": "^7.16.7",
+ "@babel/plugin-transform-modules-amd": "^7.18.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.18.2",
+ "@babel/plugin-transform-modules-systemjs": "^7.18.0",
+ "@babel/plugin-transform-modules-umd": "^7.18.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12",
+ "@babel/plugin-transform-new-target": "^7.17.12",
"@babel/plugin-transform-object-super": "^7.16.7",
- "@babel/plugin-transform-parameters": "^7.16.7",
+ "@babel/plugin-transform-parameters": "^7.17.12",
"@babel/plugin-transform-property-literals": "^7.16.7",
- "@babel/plugin-transform-regenerator": "^7.16.7",
- "@babel/plugin-transform-reserved-words": "^7.16.7",
+ "@babel/plugin-transform-regenerator": "^7.18.0",
+ "@babel/plugin-transform-reserved-words": "^7.17.12",
"@babel/plugin-transform-shorthand-properties": "^7.16.7",
- "@babel/plugin-transform-spread": "^7.16.7",
+ "@babel/plugin-transform-spread": "^7.17.12",
"@babel/plugin-transform-sticky-regex": "^7.16.7",
- "@babel/plugin-transform-template-literals": "^7.16.7",
- "@babel/plugin-transform-typeof-symbol": "^7.16.7",
+ "@babel/plugin-transform-template-literals": "^7.18.2",
+ "@babel/plugin-transform-typeof-symbol": "^7.17.12",
"@babel/plugin-transform-unicode-escapes": "^7.16.7",
"@babel/plugin-transform-unicode-regex": "^7.16.7",
"@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.16.8",
+ "@babel/types": "^7.18.2",
"babel-plugin-polyfill-corejs2": "^0.3.0",
"babel-plugin-polyfill-corejs3": "^0.5.0",
"babel-plugin-polyfill-regenerator": "^0.3.0",
- "core-js-compat": "^3.20.2",
+ "core-js-compat": "^3.22.1",
"semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
}
},
"@babel/preset-modules": {
@@ -17701,40 +16430,38 @@
}
},
"@babel/preset-react": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz",
- "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz",
+ "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-option": "^7.16.7",
"@babel/plugin-transform-react-display-name": "^7.16.7",
- "@babel/plugin-transform-react-jsx": "^7.16.7",
+ "@babel/plugin-transform-react-jsx": "^7.17.12",
"@babel/plugin-transform-react-jsx-development": "^7.16.7",
"@babel/plugin-transform-react-pure-annotations": "^7.16.7"
}
},
"@babel/preset-typescript": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz",
- "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz",
+ "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-option": "^7.16.7",
- "@babel/plugin-transform-typescript": "^7.16.7"
+ "@babel/plugin-transform-typescript": "^7.17.12"
}
},
"@babel/runtime": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz",
- "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==",
+ "version": "7.18.3",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"@babel/runtime-corejs3": {
- "version": "7.17.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.8.tgz",
- "integrity": "sha512-ZbYSUvoSF6dXZmMl/CYTMOvzIFnbGfv4W3SEHYgMvNsFTeLaF2gkGAF4K2ddmtSK4Emej+0aYcnSC6N5dPCXUQ==",
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz",
+ "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==",
"requires": {
"core-js-pure": "^3.20.2",
"regenerator-runtime": "^0.13.4"
@@ -17742,8 +16469,6 @@
},
"@babel/template": {
"version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
- "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
"requires": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
@@ -17751,26 +16476,22 @@
}
},
"@babel/traverse": {
- "version": "7.17.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz",
- "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==",
+ "version": "7.18.5",
"requires": {
"@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.17.3",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
+ "@babel/generator": "^7.18.2",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-function-name": "^7.17.9",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
- "@babel/parser": "^7.17.3",
- "@babel/types": "^7.17.0",
+ "@babel/parser": "^7.18.5",
+ "@babel/types": "^7.18.4",
"debug": "^4.1.0",
"globals": "^11.1.0"
}
},
"@babel/types": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz",
- "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==",
+ "version": "7.18.4",
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
@@ -17786,10 +16507,19 @@
"resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz",
"integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg=="
},
- "@csstools/postcss-color-function": {
+ "@csstools/postcss-cascade-layers": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz",
- "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.0.3.tgz",
+ "integrity": "sha512-fvXP0+dcllGtRKAjA5n5tBr57xWQalKky09hSiXAZ9qqjHn0sDuQV2Jz0Y5zHRQ6iGrAjJZOf2+xQj3yuXfLwA==",
+ "requires": {
+ "@csstools/selector-specificity": "^2.0.0",
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "@csstools/postcss-color-function": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.0.tgz",
+ "integrity": "sha512-5D5ND/mZWcQoSfYnSPsXtuiFxhzmhxt6pcjrFLJyldj+p0ZN2vvRpYNX+lahFTtMhAYOa2WmkdGINr0yP0CvGA==",
"requires": {
"@csstools/postcss-progressive-custom-properties": "^1.1.0",
"postcss-value-parser": "^4.2.0"
@@ -17804,9 +16534,9 @@
}
},
"@csstools/postcss-hwb-function": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz",
- "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.1.tgz",
+ "integrity": "sha512-AMZwWyHbbNLBsDADWmoXT9A5yl5dsGEBeJSJRUJt8Y9n8Ziu7Wstt4MC8jtPW7xjcLecyfJwtnUTNSmOzcnWeg==",
"requires": {
"postcss-value-parser": "^4.2.0"
}
@@ -17821,11 +16551,12 @@
}
},
"@csstools/postcss-is-pseudo-class": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz",
- "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.5.tgz",
+ "integrity": "sha512-Ek+UFI4UP2hB9u0N1cJd6KgSF1rL0J3PT4is0oSStuus8+WzbGGPyJNMOKQ0w/tyPjxiCnOI4RdSMZt3nks64g==",
"requires": {
- "postcss-selector-parser": "^6.0.9"
+ "@csstools/selector-specificity": "^2.0.0",
+ "postcss-selector-parser": "^6.0.10"
}
},
"@csstools/postcss-normalize-display-values": {
@@ -17837,9 +16568,9 @@
}
},
"@csstools/postcss-oklab-function": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz",
- "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.0.tgz",
+ "integrity": "sha512-e/Q5HopQzmnQgqimG9v3w2IG4VRABsBq3itOcn4bnm+j4enTgQZ0nWsaH/m9GV2otWGQ0nwccYL5vmLKyvP1ww==",
"requires": {
"@csstools/postcss-progressive-custom-properties": "^1.1.0",
"postcss-value-parser": "^4.2.0"
@@ -17853,57 +16584,90 @@
"postcss-value-parser": "^4.2.0"
}
},
+ "@csstools/postcss-stepped-value-functions": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.0.tgz",
+ "integrity": "sha512-q8c4bs1GumAiRenmFjASBcWSLKrbzHzWl6C2HcaAxAXIiL2rUlUWbqQZUjwVG5tied0rld19j/Mm90K3qI26vw==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-trigonometric-functions": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.1.tgz",
+ "integrity": "sha512-G78CY/+GePc6dDCTUbwI6TTFQ5fs3N9POHhI6v0QzteGpf6ylARiJUNz9HrRKi4eVYBNXjae1W2766iUEFxHlw==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "@csstools/postcss-unset-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.1.tgz",
+ "integrity": "sha512-f1G1WGDXEU/RN1TWAxBPQgQudtLnLQPyiWdtypkPC+mVYNKFKH/HYXSxH4MVNqwF8M0eDsoiU7HumJHCg/L/jg==",
+ "requires": {}
+ },
+ "@csstools/selector-specificity": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz",
+ "integrity": "sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==",
+ "requires": {}
+ },
"@eslint/eslintrc": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz",
- "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
+ "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.3.1",
- "globals": "^13.9.0",
+ "espree": "^9.3.2",
+ "globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"strip-json-comments": "^3.1.1"
},
"dependencies": {
"globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"requires": {
"type-fest": "^0.20.2"
}
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
}
}
},
"@fortawesome/fontawesome-common-types": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz",
- "integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA=="
+ "version": "6.1.1"
},
"@fortawesome/fontawesome-svg-core": {
"version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz",
- "integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==",
+ "requires": {
+ "@fortawesome/fontawesome-common-types": "6.1.1"
+ }
+ },
+ "@fortawesome/free-brands-svg-icons": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.1.1.tgz",
+ "integrity": "sha512-mFbI/czjBZ+paUtw5NPr2IXjun5KAC8eFqh1hnxowjA4mMZxWz4GCIksq6j9ZSa6Uxj9JhjjDVEd77p2LN2Blg==",
"requires": {
"@fortawesome/fontawesome-common-types": "6.1.1"
}
},
"@fortawesome/free-solid-svg-icons": {
"version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.1.tgz",
- "integrity": "sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg==",
"requires": {
"@fortawesome/fontawesome-common-types": "6.1.1"
}
},
"@fortawesome/react-fontawesome": {
"version": "0.1.18",
- "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.18.tgz",
- "integrity": "sha512-RwLIB4TZw0M9gvy5u+TusAA0afbwM4JQIimNH/j3ygd6aIvYPQLqXMhC9ErY26J23rDPyDZldIfPq/HpTTJ/tQ==",
"requires": {
"prop-types": "^15.8.1"
}
@@ -17935,14 +16699,6 @@
"resolve-from": "^5.0.0"
},
"dependencies": {
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -17989,11 +16745,6 @@
"requires": {
"p-limit": "^2.2.0"
}
- },
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
}
}
},
@@ -18013,51 +16764,6 @@
"jest-message-util": "^27.5.1",
"jest-util": "^27.5.1",
"slash": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"@jest/core": {
@@ -18093,51 +16799,6 @@
"rimraf": "^3.0.0",
"slash": "^3.0.0",
"strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"@jest/environment": {
@@ -18204,56 +16865,12 @@
"string-length": "^4.0.1",
"terminal-link": "^2.0.0",
"v8-to-istanbul": "^8.1.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ }
+ },
+ "@jest/schemas": {
+ "version": "28.0.2",
+ "requires": {
+ "@sinclair/typebox": "^0.23.3"
}
},
"@jest/source-map": {
@@ -18264,13 +16881,6 @@
"callsites": "^3.0.0",
"graceful-fs": "^4.2.9",
"source-map": "^0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
}
},
"@jest/test-result": {
@@ -18315,56 +16925,6 @@
"slash": "^3.0.0",
"source-map": "^0.6.1",
"write-file-atomic": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"@jest/types": {
@@ -18377,86 +16937,67 @@
"@types/node": "*",
"@types/yargs": "^16.0.0",
"chalk": "^4.0.0"
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.0.7"
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.1"
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
+ "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==",
"requires": {
- "has-flag": "^4.0.0"
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
}
}
}
},
- "@jridgewell/resolve-uri": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz",
- "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew=="
- },
"@jridgewell/sourcemap-codec": {
- "version": "1.4.11",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz",
- "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg=="
+ "version": "1.4.13"
},
"@jridgewell/trace-mapping": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz",
- "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==",
+ "version": "0.3.13",
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
+ "@leichtgewicht/ip-codec": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
+ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
+ },
"@monaco-editor/loader": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.3.0.tgz",
- "integrity": "sha512-N3mGq1ktC3zh7WUx3NGO+PSDdNq9Vspk/41rEmRdrCqV9vNbBTRzAOplmUpNQsi+hmTs++ERMBobMERb8Kb+3g==",
+ "version": "1.3.2",
"requires": {
"state-local": "^1.0.6"
}
},
"@monaco-editor/react": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.4.2.tgz",
- "integrity": "sha512-QwQKkP5zXK8oA6uMpZcyQqYKQbMFUIE1Z9gPhYajk4qXdt/kGCu3RvO9SGKGlS9MSciCyd3WjEksVMDoyxQk4w==",
+ "version": "4.4.5",
"requires": {
- "@monaco-editor/loader": "^1.3.0",
+ "@monaco-editor/loader": "^1.3.2",
"prop-types": "^15.7.2"
}
},
@@ -18484,9 +17025,9 @@
}
},
"@pmmmwh/react-refresh-webpack-plugin": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz",
- "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.7.tgz",
+ "integrity": "sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q==",
"requires": {
"ansi-html-community": "^0.0.8",
"common-path-prefix": "^3.0.0",
@@ -18500,29 +17041,29 @@
},
"dependencies": {
"source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
}
}
},
"@popperjs/core": {
- "version": "2.11.5",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz",
- "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw=="
+ "version": "2.11.5"
+ },
+ "@react-aria/ssr": {
+ "version": "3.2.0",
+ "requires": {
+ "@babel/runtime": "^7.6.2"
+ }
},
"@restart/hooks": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.6.tgz",
- "integrity": "sha512-FzpEzy6QeLB3OpUrC9OQD/lWCluQmilLfRGa/DqbB6OmV05AEt/0Lgn3Jf6l27UIJMK0qFmNcps6p8DNLXa6Pw==",
+ "version": "0.4.7",
"requires": {
"dequal": "^2.0.2"
}
},
"@restart/ui": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.2.0.tgz",
- "integrity": "sha512-oIh2t3tG8drZtZ9SlaV5CY6wGsUViHk8ZajjhcI+74IQHyWy+AnxDv8rJR5wVgsgcgrPBUvGNkC1AEdcGNPaLQ==",
"requires": {
"@babel/runtime": "^7.13.16",
"@popperjs/core": "^2.10.1",
@@ -18533,16 +17074,6 @@
"dom-helpers": "^5.2.0",
"uncontrollable": "^7.2.1",
"warning": "^4.0.3"
- },
- "dependencies": {
- "@react-aria/ssr": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.1.2.tgz",
- "integrity": "sha512-amXY11ImpokvkTMeKRHjsSsG7v1yzzs6yeqArCyBIk60J3Yhgxwx9Cah+Uu/804ATFwqzN22AXIo7SdtIaMP+g==",
- "requires": {
- "@babel/runtime": "^7.6.2"
- }
- }
}
},
"@rollup/plugin-babel": {
@@ -18594,9 +17125,12 @@
}
},
"@rushstack/eslint-patch": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz",
- "integrity": "sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg=="
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz",
+ "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw=="
+ },
+ "@sinclair/typebox": {
+ "version": "0.23.5"
},
"@sinonjs/commons": {
"version": "1.8.3",
@@ -18724,20 +17258,115 @@
"resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz",
"integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==",
"requires": {
- "@babel/core": "^7.12.3",
- "@babel/plugin-transform-react-constant-elements": "^7.12.1",
- "@babel/preset-env": "^7.12.1",
- "@babel/preset-react": "^7.12.5",
- "@svgr/core": "^5.5.0",
- "@svgr/plugin-jsx": "^5.5.0",
- "@svgr/plugin-svgo": "^5.5.0",
- "loader-utils": "^2.0.0"
+ "@babel/core": "^7.12.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.12.1",
+ "@babel/preset-env": "^7.12.1",
+ "@babel/preset-react": "^7.12.5",
+ "@svgr/core": "^5.5.0",
+ "@svgr/plugin-jsx": "^5.5.0",
+ "@svgr/plugin-svgo": "^5.5.0",
+ "loader-utils": "^2.0.0"
+ }
+ },
+ "@tensorflow/tfjs": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.18.0.tgz",
+ "integrity": "sha512-mOzz4jJdgIpqFS7EHndVuxrQnLUDVIKGyTqOPTYps89fZwcOFfTVxi4BHemDNQpqlVE8IaGh9UUxVXpjgPY5+Q==",
+ "requires": {
+ "@tensorflow/tfjs-backend-cpu": "3.18.0",
+ "@tensorflow/tfjs-backend-webgl": "3.18.0",
+ "@tensorflow/tfjs-converter": "3.18.0",
+ "@tensorflow/tfjs-core": "3.18.0",
+ "@tensorflow/tfjs-data": "3.18.0",
+ "@tensorflow/tfjs-layers": "3.18.0",
+ "argparse": "^1.0.10",
+ "chalk": "^4.1.0",
+ "core-js": "3",
+ "regenerator-runtime": "^0.13.5",
+ "yargs": "^16.0.3"
+ }
+ },
+ "@tensorflow/tfjs-backend-cpu": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.18.0.tgz",
+ "integrity": "sha512-LcSqlylzGtpgngcMFIL3q9Q3eVaPRJ7ITZt7ivhzkCj4R5ZsnPa9qM3DCVihkQ77heAwSw4hPTo2jp5C4mJ4Cg==",
+ "requires": {
+ "@types/seedrandom": "2.4.27",
+ "seedrandom": "2.4.3"
+ },
+ "dependencies": {
+ "seedrandom": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
+ "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q=="
+ }
+ }
+ },
+ "@tensorflow/tfjs-backend-webgl": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.18.0.tgz",
+ "integrity": "sha512-3NknSzS1oX2BEBOrpjPMZl823S12RgshQthmIbG6QADHb4bCJA8aM4UjWpw+3bNQnRKbRDQdFbuvj10Un79s2A==",
+ "requires": {
+ "@tensorflow/tfjs-backend-cpu": "3.18.0",
+ "@types/offscreencanvas": "~2019.3.0",
+ "@types/seedrandom": "2.4.27",
+ "@types/webgl-ext": "0.0.30",
+ "@types/webgl2": "0.0.6",
+ "seedrandom": "2.4.3"
+ },
+ "dependencies": {
+ "seedrandom": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
+ "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q=="
+ }
+ }
+ },
+ "@tensorflow/tfjs-converter": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.18.0.tgz",
+ "integrity": "sha512-hpChA+zVNQOVwRnCfqDb1WI9jbEAKA6DuEm4m75Zb3dIlE6VVooDmAaHBhlc++z2q2G1sBzF9A4Bv48SUpN6vA==",
+ "requires": {}
+ },
+ "@tensorflow/tfjs-core": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.18.0.tgz",
+ "integrity": "sha512-gMxisZozqsr5sCKlphF/eVBLg91MjlBiN60tjX8hJAu0WlSn6Gi5k65GNIL+Pq6hrxpvImcfdCmTH/2XJVZ0Mg==",
+ "requires": {
+ "@types/long": "^4.0.1",
+ "@types/offscreencanvas": "~2019.3.0",
+ "@types/seedrandom": "2.4.27",
+ "@types/webgl-ext": "0.0.30",
+ "@webgpu/types": "^0.1.16",
+ "long": "4.0.0",
+ "node-fetch": "~2.6.1",
+ "seedrandom": "2.4.3"
+ },
+ "dependencies": {
+ "seedrandom": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz",
+ "integrity": "sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q=="
+ }
+ }
+ },
+ "@tensorflow/tfjs-data": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.18.0.tgz",
+ "integrity": "sha512-s43vISJh8K/UN2E2zGRhtj/Kyn8dr4ll8EQkapwzm7fGO9afXCnMsTp6rkZq3fFXouCYA2k1B/j7JssIDr50+w==",
+ "requires": {
+ "@types/node-fetch": "^2.1.2",
+ "node-fetch": "~2.6.1"
}
},
+ "@tensorflow/tfjs-layers": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.18.0.tgz",
+ "integrity": "sha512-AV7yDnPlH+RCcq8VPqkX1iyEchObE+e66m0XmJvLj+ncfKHYLa+39ZNroUA+OgB2/cMG6jgq77R4EhZbT6hwJA==",
+ "requires": {}
+ },
"@testing-library/dom": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.12.0.tgz",
- "integrity": "sha512-rBrJk5WjI02X1edtiUcZhgyhgBhiut96r5Jp8J5qktKdcvLcZpKDW8i2hkGMMItxrghjXuQ5AM6aE0imnFawaw==",
+ "version": "8.14.0",
"requires": {
"@babel/code-frame": "^7.10.4",
"@babel/runtime": "^7.12.5",
@@ -18747,62 +17376,10 @@
"dom-accessibility-api": "^0.5.9",
"lz-string": "^1.4.4",
"pretty-format": "^27.0.2"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "aria-query": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
- "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg=="
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"@testing-library/jest-dom": {
- "version": "5.16.3",
- "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.3.tgz",
- "integrity": "sha512-u5DfKj4wfSt6akfndfu1eG06jsdyA/IUrlX2n3pyq5UXgXMhXY+NJb8eNK/7pqPWAhCKsCGWDdDO0zKMKAYkEA==",
+ "version": "5.16.4",
"requires": {
"@babel/runtime": "^7.9.2",
"@types/testing-library__jest-dom": "^5.9.1",
@@ -18815,70 +17392,27 @@
"redent": "^3.0.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "aria-query": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
- "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg=="
- },
"chalk": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
"@testing-library/react": {
- "version": "12.1.4",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.4.tgz",
- "integrity": "sha512-jiPKOm7vyUw311Hn/HlNQ9P8/lHNtArAx0PisXyFixDDvfl8DbD6EUdbshK5eqauvBSvzZd19itqQ9j3nferJA==",
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.0.1.tgz",
+ "integrity": "sha512-zeHx3PohYYp+4bTJwrixQY8zSBZjWUGwYc7OhD1EpWTHS92RleApLoP72NdwaWxOrM1P1Uezt3XvGf6t2XSWPQ==",
"requires": {
"@babel/runtime": "^7.12.5",
- "@testing-library/dom": "^8.0.0",
- "@types/react-dom": "*"
+ "@testing-library/dom": "^8.5.0",
+ "@types/react-dom": "^18.0.0"
}
},
"@testing-library/user-event": {
"version": "13.5.0",
- "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz",
- "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==",
"requires": {
"@babel/runtime": "^7.12.5"
}
@@ -18894,9 +17428,7 @@
"integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="
},
"@types/aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig=="
+ "version": "4.2.2"
},
"@types/babel__core": {
"version": "7.1.19",
@@ -18928,9 +17460,9 @@
}
},
"@types/babel__traverse": {
- "version": "7.14.2",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz",
- "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==",
+ "version": "7.17.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz",
+ "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==",
"requires": {
"@babel/types": "^7.3.0"
}
@@ -19004,9 +17536,9 @@
}
},
"@types/express-serve-static-core": {
- "version": "4.17.28",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz",
- "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==",
+ "version": "4.17.29",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz",
+ "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==",
"requires": {
"@types/node": "*",
"@types/qs": "*",
@@ -19027,18 +17559,13 @@
"integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
},
"@types/http-proxy": {
- "version": "1.17.8",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz",
- "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==",
+ "version": "1.17.9",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
+ "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
"requires": {
"@types/node": "*"
}
},
- "@types/invariant": {
- "version": "2.2.35",
- "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz",
- "integrity": "sha512-DxX1V9P8zdJPYQat1gHyY0xj3efl8gnMVjiM9iCY6y27lj+PoQWkgjt8jDqmovPqULkKVpKRg8J36iQiA+EtEg=="
- },
"@types/istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@@ -19061,12 +17588,27 @@
}
},
"@types/jest": {
- "version": "27.4.1",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz",
- "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==",
+ "version": "28.1.2",
"requires": {
- "jest-matcher-utils": "^27.0.0",
- "pretty-format": "^27.0.0"
+ "jest-matcher-utils": "^28.0.0",
+ "pretty-format": "^28.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "5.2.0"
+ },
+ "pretty-format": {
+ "version": "28.1.1",
+ "requires": {
+ "@jest/schemas": "^28.0.2",
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ }
+ },
+ "react-is": {
+ "version": "18.2.0"
+ }
}
},
"@types/json-schema": {
@@ -19077,7 +17619,12 @@
"@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4="
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
+ },
+ "@types/long": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
+ "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
},
"@types/mime": {
"version": "1.3.2",
@@ -19085,9 +17632,21 @@
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
},
"@types/node": {
- "version": "17.0.23",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz",
- "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw=="
+ "version": "18.0.0"
+ },
+ "@types/node-fetch": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
+ "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
+ "requires": {
+ "@types/node": "*",
+ "form-data": "^3.0.0"
+ }
+ },
+ "@types/offscreencanvas": {
+ "version": "2019.3.0",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz",
+ "integrity": "sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q=="
},
"@types/parse-json": {
"version": "4.0.0",
@@ -19095,14 +17654,12 @@
"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
},
"@types/prettier": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz",
- "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA=="
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz",
+ "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg=="
},
"@types/prop-types": {
- "version": "15.7.4",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
- "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
+ "version": "15.7.5"
},
"@types/q": {
"version": "1.5.5",
@@ -19120,9 +17677,7 @@
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"@types/react": {
- "version": "17.0.43",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.43.tgz",
- "integrity": "sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==",
+ "version": "17.0.47",
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -19130,17 +17685,15 @@
}
},
"@types/react-dom": {
- "version": "17.0.14",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz",
- "integrity": "sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==",
+ "version": "18.0.5",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz",
+ "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==",
"requires": {
"@types/react": "*"
}
},
"@types/react-transition-group": {
"version": "4.4.4",
- "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz",
- "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==",
"requires": {
"@types/react": "*"
}
@@ -19154,14 +17707,17 @@
}
},
"@types/retry": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz",
- "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g=="
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
},
"@types/scheduler": {
- "version": "0.16.2",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
- "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ "version": "0.16.2"
+ },
+ "@types/seedrandom": {
+ "version": "2.4.27",
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.27.tgz",
+ "integrity": "sha512-YvMLqFak/7rt//lPBtEHv3M4sRNA+HGxrhFZ+DQs9K2IkYJbNwVIb8avtJfhDiuaUBX/AW0jnjv48FV8h3u9bQ=="
},
"@types/serve-index": {
"version": "1.9.1",
@@ -19194,9 +17750,7 @@
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
},
"@types/testing-library__jest-dom": {
- "version": "5.14.3",
- "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.3.tgz",
- "integrity": "sha512-oKZe+Mf4ioWlMuzVBaXQ9WDnEm1+umLx0InILg+yvZVBBDmzV5KfZyLrCvadtWcx8+916jLmHafcmqqffl+iIw==",
+ "version": "5.14.4",
"requires": {
"@types/jest": "*"
}
@@ -19207,9 +17761,17 @@
"integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg=="
},
"@types/warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI="
+ "version": "3.0.0"
+ },
+ "@types/webgl-ext": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@types/webgl-ext/-/webgl-ext-0.0.30.tgz",
+ "integrity": "sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg=="
+ },
+ "@types/webgl2": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.6.tgz",
+ "integrity": "sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ=="
},
"@types/ws": {
"version": "8.5.3",
@@ -19233,87 +17795,107 @@
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz",
- "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==",
- "requires": {
- "@typescript-eslint/scope-manager": "5.17.0",
- "@typescript-eslint/type-utils": "5.17.0",
- "@typescript-eslint/utils": "5.17.0",
- "debug": "^4.3.2",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz",
+ "integrity": "sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==",
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.29.0",
+ "@typescript-eslint/type-utils": "5.29.0",
+ "@typescript-eslint/utils": "5.29.0",
+ "debug": "^4.3.4",
"functional-red-black-tree": "^1.0.1",
- "ignore": "^5.1.8",
+ "ignore": "^5.2.0",
"regexpp": "^3.2.0",
- "semver": "^7.3.5",
+ "semver": "^7.3.7",
"tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
}
},
"@typescript-eslint/experimental-utils": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz",
- "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.29.0.tgz",
+ "integrity": "sha512-H4fqOVYiH6R15NjtMO2LVBZgzXgzjdPEXYb7x/meg4QbXsptLxdq8YlHK2NZOFKipuInY4sAPY5a6SQ/53s3dw==",
"requires": {
- "@typescript-eslint/utils": "5.17.0"
+ "@typescript-eslint/utils": "5.29.0"
}
},
"@typescript-eslint/parser": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz",
- "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.29.0.tgz",
+ "integrity": "sha512-ruKWTv+x0OOxbzIw9nW5oWlUopvP/IQDjB5ZqmTglLIoDTctLlAJpAQFpNPJP/ZI7hTT9sARBosEfaKbcFuECw==",
"requires": {
- "@typescript-eslint/scope-manager": "5.17.0",
- "@typescript-eslint/types": "5.17.0",
- "@typescript-eslint/typescript-estree": "5.17.0",
- "debug": "^4.3.2"
+ "@typescript-eslint/scope-manager": "5.29.0",
+ "@typescript-eslint/types": "5.29.0",
+ "@typescript-eslint/typescript-estree": "5.29.0",
+ "debug": "^4.3.4"
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz",
- "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.29.0.tgz",
+ "integrity": "sha512-etbXUT0FygFi2ihcxDZjz21LtC+Eps9V2xVx09zFoN44RRHPrkMflidGMI+2dUs821zR1tDS6Oc9IXxIjOUZwA==",
"requires": {
- "@typescript-eslint/types": "5.17.0",
- "@typescript-eslint/visitor-keys": "5.17.0"
+ "@typescript-eslint/types": "5.29.0",
+ "@typescript-eslint/visitor-keys": "5.29.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz",
- "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.29.0.tgz",
+ "integrity": "sha512-JK6bAaaiJozbox3K220VRfCzLa9n0ib/J+FHIwnaV3Enw/TO267qe0pM1b1QrrEuy6xun374XEAsRlA86JJnyg==",
"requires": {
- "@typescript-eslint/utils": "5.17.0",
- "debug": "^4.3.2",
+ "@typescript-eslint/utils": "5.29.0",
+ "debug": "^4.3.4",
"tsutils": "^3.21.0"
}
},
"@typescript-eslint/types": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz",
- "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw=="
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.29.0.tgz",
+ "integrity": "sha512-X99VbqvAXOMdVyfFmksMy3u8p8yoRGITgU1joBJPzeYa0rhdf5ok9S56/itRoUSh99fiDoMtarSIJXo7H/SnOg=="
},
"@typescript-eslint/typescript-estree": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz",
- "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==",
- "requires": {
- "@typescript-eslint/types": "5.17.0",
- "@typescript-eslint/visitor-keys": "5.17.0",
- "debug": "^4.3.2",
- "globby": "^11.0.4",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.29.0.tgz",
+ "integrity": "sha512-mQvSUJ/JjGBdvo+1LwC+GY2XmSYjK1nAaVw2emp/E61wEVYEyibRHCqm1I1vEKbXCpUKuW4G7u9ZCaZhJbLoNQ==",
+ "requires": {
+ "@typescript-eslint/types": "5.29.0",
+ "@typescript-eslint/visitor-keys": "5.29.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
"is-glob": "^4.0.3",
- "semver": "^7.3.5",
+ "semver": "^7.3.7",
"tsutils": "^3.21.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
}
},
"@typescript-eslint/utils": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz",
- "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.29.0.tgz",
+ "integrity": "sha512-3Eos6uP1nyLOBayc/VUdKZikV90HahXE5Dx9L5YlSd/7ylQPXhLk1BYb29SDgnBnTp+jmSZUU0QxUiyHgW4p7A==",
"requires": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.17.0",
- "@typescript-eslint/types": "5.17.0",
- "@typescript-eslint/typescript-estree": "5.17.0",
+ "@typescript-eslint/scope-manager": "5.29.0",
+ "@typescript-eslint/types": "5.29.0",
+ "@typescript-eslint/typescript-estree": "5.29.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
},
@@ -19335,12 +17917,12 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.17.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz",
- "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==",
+ "version": "5.29.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.29.0.tgz",
+ "integrity": "sha512-Hpb/mCWsjILvikMQoZIE3voc9wtQcS0A9FUw3h8bhr9UxBdtI/tw1ZDZUOXHXLOVMedKCH5NxyzATwnU78bWCQ==",
"requires": {
- "@typescript-eslint/types": "5.17.0",
- "eslint-visitor-keys": "^3.0.0"
+ "@typescript-eslint/types": "5.29.0",
+ "eslint-visitor-keys": "^3.3.0"
}
},
"@webassemblyjs/ast": {
@@ -19474,6 +18056,11 @@
"@xtuc/long": "4.2.2"
}
},
+ "@webgpu/types": {
+ "version": "0.1.20",
+ "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.20.tgz",
+ "integrity": "sha512-MFb5oyxX+A7PWQNjcY3kSCSG2FAHaBo7IJBWtxWFgsS20FtY3D9UY7lYqLZ6avS8fSkdSylIS4qiHzFlQUdXag=="
+ },
"@xtuc/ieee754": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
@@ -19485,9 +18072,9 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
},
"abab": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
- "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
+ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
},
"accepts": {
"version": "1.3.8",
@@ -19499,9 +18086,9 @@
}
},
"acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ=="
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A=="
},
"acorn-globals": {
"version": "6.0.0",
@@ -19554,9 +18141,9 @@
"integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA=="
},
"address": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz",
- "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz",
+ "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig=="
},
"adjust-sourcemap-loader": {
"version": "4.0.0",
@@ -19575,15 +18162,6 @@
"debug": "4"
}
},
- "aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- }
- },
"ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -19633,13 +18211,6 @@
"integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"requires": {
"type-fest": "^0.21.3"
- },
- "dependencies": {
- "type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
- }
}
},
"ansi-html-community": {
@@ -19648,59 +18219,48 @@
"integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw=="
},
"ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ "version": "5.0.1"
},
"ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "version": "4.3.0",
"requires": {
- "color-convert": "^1.9.0"
+ "color-convert": "^2.0.1"
}
},
"anymatch": {
"version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
"arg": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz",
- "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA=="
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
},
"argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "version": "1.0.10",
"requires": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
+ "sprintf-js": "~1.0.2"
}
},
+ "aria-query": {
+ "version": "5.0.0"
+ },
"array-flatten": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
"integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
},
"array-includes": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz",
- "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
+ "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5",
"get-intrinsic": "^1.1.1",
"is-string": "^1.0.7"
}
@@ -19711,47 +18271,56 @@
"integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
},
"array.prototype.flat": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz",
- "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
+ "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "es-abstract": "^1.19.2",
+ "es-shim-unscopables": "^1.0.0"
}
},
"array.prototype.flatmap": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz",
- "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz",
+ "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==",
"requires": {
- "call-bind": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.2",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.reduce": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.4.tgz",
+ "integrity": "sha512-WnM+AjG/DvLRLo4DDl+r+SvCzYtD2Jd9oeBYMcEaI7t3fFrHY9M53/wdLcTvmZNQ70IU6Htj0emFkZ5TS+lrdw==",
+ "requires": {
+ "call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "es-abstract": "^1.19.2",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "is-string": "^1.0.7"
}
},
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
},
"ast-types-flow": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0="
+ "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
},
"async": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
- "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
- "requires": {
- "lodash": "^4.17.14"
- }
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
"asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ "version": "0.4.0"
},
"at-least-node": {
"version": "1.0.0",
@@ -19759,17 +18328,15 @@
"integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
},
"atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ "version": "2.1.2"
},
"autoprefixer": {
- "version": "10.4.4",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz",
- "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==",
+ "version": "10.4.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz",
+ "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==",
"requires": {
- "browserslist": "^4.20.2",
- "caniuse-lite": "^1.0.30001317",
+ "browserslist": "^4.20.3",
+ "caniuse-lite": "^1.0.30001335",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -19777,9 +18344,9 @@
}
},
"axe-core": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz",
- "integrity": "sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw=="
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz",
+ "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA=="
},
"axobject-query": {
"version": "2.2.0",
@@ -19799,57 +18366,12 @@
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"slash": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"babel-loader": {
- "version": "8.2.4",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz",
- "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==",
+ "version": "8.2.5",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
+ "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
"requires": {
"find-cache-dir": "^3.3.1",
"loader-utils": "^2.0.0",
@@ -19912,8 +18434,6 @@
},
"babel-plugin-named-asset-import": {
"version": "0.3.8",
- "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz",
- "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==",
"requires": {}
},
"babel-plugin-polyfill-corejs2": {
@@ -19924,13 +18444,6 @@
"@babel/compat-data": "^7.13.11",
"@babel/helper-define-polyfill-provider": "^0.3.1",
"semver": "^6.1.1"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
}
},
"babel-plugin-polyfill-corejs3": {
@@ -20014,7 +18527,7 @@
"batch": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
},
"bfj": {
"version": "7.0.2",
@@ -20033,9 +18546,7 @@
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
},
"binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ "version": "2.2.0"
},
"bluebird": {
"version": "3.7.2",
@@ -20043,20 +18554,22 @@
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
"body-parser": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
- "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
"requires": {
"bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.8.1",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.9.7",
- "raw-body": "2.4.3",
- "type-is": "~1.6.18"
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
},
"dependencies": {
"bytes": {
@@ -20072,41 +18585,43 @@
"ms": "2.0.0"
}
},
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
- "bonjour": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
- "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
+ "bonjour-service": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz",
+ "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==",
"requires": {
- "array-flatten": "^2.1.0",
- "deep-equal": "^1.0.1",
+ "array-flatten": "^2.1.2",
"dns-equal": "^1.0.0",
- "dns-txt": "^2.0.2",
- "multicast-dns": "^6.0.1",
- "multicast-dns-service-types": "^1.1.0"
+ "fast-deep-equal": "^3.1.3",
+ "multicast-dns": "^7.2.5"
}
},
"boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
},
"bootstrap": {
"version": "5.1.3",
- "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz",
- "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==",
"requires": {}
},
"bootswatch": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/bootswatch/-/bootswatch-5.1.3.tgz",
- "integrity": "sha512-NmZFN6rOCoXWQ/PkzmD8FFWDe24kocX9OXWHNVaLxVVnpqpAzEbMFsf8bAfKwVtpNXibasZCzv09B5fLieAh2g=="
+ "version": "5.1.3"
},
"brace-expansion": {
"version": "1.1.11",
@@ -20119,8 +18634,6 @@
},
"braces": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"requires": {
"fill-range": "^7.0.1"
}
@@ -20131,14 +18644,12 @@
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
},
"browserslist": {
- "version": "4.20.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz",
- "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==",
+ "version": "4.20.4",
"requires": {
- "caniuse-lite": "^1.0.30001317",
- "electron-to-chromium": "^1.4.84",
+ "caniuse-lite": "^1.0.30001349",
+ "electron-to-chromium": "^1.4.147",
"escalade": "^3.1.1",
- "node-releases": "^2.0.2",
+ "node-releases": "^2.0.5",
"picocolors": "^1.0.0"
}
},
@@ -20155,20 +18666,15 @@
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
- "buffer-indexof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
- "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="
- },
"builtin-modules": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz",
- "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA=="
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw=="
},
"bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
},
"call-bind": {
"version": "1.0.2",
@@ -20191,13 +18697,6 @@
"requires": {
"pascal-case": "^3.1.2",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- }
}
},
"camelcase": {
@@ -20222,9 +18721,7 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001323",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001323.tgz",
- "integrity": "sha512-e4BF2RlCVELKx8+RmklSEIVub1TWrmdhvA5kEUueummz1XyySW0DVk+3x9HyhU9MuWTa2BhqLgEuEmUwASAdCA=="
+ "version": "1.0.30001358"
},
"case-sensitive-paths-webpack-plugin": {
"version": "2.4.0",
@@ -20232,13 +18729,10 @@
"integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw=="
},
"chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "4.1.2",
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
"char-regex": {
@@ -20258,8 +18752,6 @@
},
"chokidar": {
"version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -20273,8 +18765,6 @@
"dependencies": {
"glob-parent": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"requires": {
"is-glob": "^4.0.1"
}
@@ -20287,9 +18777,9 @@
"integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg=="
},
"ci-info": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz",
- "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw=="
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz",
+ "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg=="
},
"cjs-module-lexer": {
"version": "1.2.2",
@@ -20297,9 +18787,7 @@
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA=="
},
"classnames": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
- "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
+ "version": "2.3.1"
},
"clean-css": {
"version": "5.3.0",
@@ -20307,24 +18795,10 @@
"integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==",
"requires": {
"source-map": "~0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
}
},
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
- },
"cliui": {
"version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -20334,7 +18808,7 @@
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="
},
"coa": {
"version": "2.0.2",
@@ -20344,6 +18818,52 @@
"@types/q": "^1.5.1",
"chalk": "^2.4.1",
"q": "^1.1.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"collect-v8-coverage": {
@@ -20352,17 +18872,13 @@
"integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg=="
},
"color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "version": "2.0.1",
"requires": {
- "color-name": "1.1.3"
+ "color-name": "~1.1.4"
}
},
"color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ "version": "1.1.4"
},
"colord": {
"version": "2.9.2",
@@ -20370,22 +18886,20 @@
"integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ=="
},
"colorette": {
- "version": "2.0.16",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
- "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g=="
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
},
"combined-stream": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
},
"common-path-prefix": {
"version": "3.0.0",
@@ -20400,7 +18914,7 @@
"commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
},
"compressible": {
"version": "2.0.18",
@@ -20435,14 +18949,14 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"confusing-browser-globals": {
"version": "1.0.11",
@@ -20476,33 +18990,29 @@
},
"convert-source-map": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
"requires": {
"safe-buffer": "~5.1.1"
}
},
"cookie": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
- "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
},
"cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"core-js": {
- "version": "3.21.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz",
- "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig=="
+ "version": "3.23.2"
},
"core-js-compat": {
- "version": "3.21.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz",
- "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==",
+ "version": "3.23.2",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz",
+ "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==",
"requires": {
- "browserslist": "^4.19.1",
+ "browserslist": "^4.20.4",
"semver": "7.0.0"
},
"dependencies": {
@@ -20514,9 +19024,9 @@
}
},
"core-js-pure": {
- "version": "3.21.1",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz",
- "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ=="
+ "version": "3.23.2",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.2.tgz",
+ "integrity": "sha512-t6u7H4Ff/yZNk+zqTr74UjCcZ3k8ApBryeLLV4rYQd9aF3gqmjjGjjR44ENfeBMH8VVvSynIjAJ0mUuFhzQtrA=="
},
"core-util-is": {
"version": "1.0.3",
@@ -20552,19 +19062,10 @@
},
"css": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz",
- "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==",
"requires": {
"inherits": "^2.0.4",
"source-map": "^0.6.1",
"source-map-resolve": "^0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
}
},
"css-blank-pseudo": {
@@ -20576,9 +19077,9 @@
}
},
"css-declaration-sorter": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz",
- "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz",
+ "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==",
"requires": {}
},
"css-has-pseudo": {
@@ -20602,6 +19103,16 @@
"postcss-modules-values": "^4.0.0",
"postcss-value-parser": "^4.2.0",
"semver": "^7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
}
},
"css-minimizer-webpack-plugin": {
@@ -20651,11 +19162,6 @@
"ajv-formats": "^2.1.1",
"ajv-keywords": "^5.0.0"
}
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@@ -20666,14 +19172,15 @@
"requires": {}
},
"css-select": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
- "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
"requires": {
"boolbase": "^1.0.0",
- "css-what": "^3.2.1",
- "domutils": "^1.7.0",
- "nth-check": "^1.0.2"
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
}
},
"css-select-base-adapter": {
@@ -20688,29 +19195,20 @@
"requires": {
"mdn-data": "2.0.4",
"source-map": "^0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
}
},
"css-what": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
- "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ=="
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
},
"css.escape": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz",
- "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s="
+ "version": "1.5.1"
},
"cssdb": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz",
- "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA=="
+ "version": "6.6.3",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.3.tgz",
+ "integrity": "sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA=="
},
"cssesc": {
"version": "3.0.0",
@@ -20718,45 +19216,45 @@
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
},
"cssnano": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.6.tgz",
- "integrity": "sha512-A7oX6Vxgpc/VzyKDTLEFpv6M0n06foVSWPAb+Xg0k6ikgSaI04SnGUKOQeBdvrXZCqhp3xdlii0cp+bUCgbCRQ==",
+ "version": "5.1.12",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz",
+ "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==",
"requires": {
- "cssnano-preset-default": "^5.2.6",
+ "cssnano-preset-default": "^5.2.12",
"lilconfig": "^2.0.3",
"yaml": "^1.10.2"
}
},
"cssnano-preset-default": {
- "version": "5.2.6",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.6.tgz",
- "integrity": "sha512-QwnYv/ZuNH0eWOxs3ME7w5uXXdWZKKXVGn1c6P877nPLl7SR8pAQQNe1CKbcPc+qpIbb2cq554Cv3QYG0MxTSQ==",
+ "version": "5.2.12",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz",
+ "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==",
"requires": {
- "css-declaration-sorter": "^6.2.2",
+ "css-declaration-sorter": "^6.3.0",
"cssnano-utils": "^3.1.0",
"postcss-calc": "^8.2.3",
"postcss-colormin": "^5.3.0",
- "postcss-convert-values": "^5.1.0",
- "postcss-discard-comments": "^5.1.1",
+ "postcss-convert-values": "^5.1.2",
+ "postcss-discard-comments": "^5.1.2",
"postcss-discard-duplicates": "^5.1.0",
"postcss-discard-empty": "^5.1.1",
"postcss-discard-overridden": "^5.1.0",
- "postcss-merge-longhand": "^5.1.3",
- "postcss-merge-rules": "^5.1.1",
+ "postcss-merge-longhand": "^5.1.6",
+ "postcss-merge-rules": "^5.1.2",
"postcss-minify-font-values": "^5.1.0",
"postcss-minify-gradients": "^5.1.1",
- "postcss-minify-params": "^5.1.2",
- "postcss-minify-selectors": "^5.2.0",
+ "postcss-minify-params": "^5.1.3",
+ "postcss-minify-selectors": "^5.2.1",
"postcss-normalize-charset": "^5.1.0",
"postcss-normalize-display-values": "^5.1.0",
- "postcss-normalize-positions": "^5.1.0",
- "postcss-normalize-repeat-style": "^5.1.0",
+ "postcss-normalize-positions": "^5.1.1",
+ "postcss-normalize-repeat-style": "^5.1.1",
"postcss-normalize-string": "^5.1.0",
"postcss-normalize-timing-functions": "^5.1.0",
"postcss-normalize-unicode": "^5.1.0",
"postcss-normalize-url": "^5.1.0",
"postcss-normalize-whitespace": "^5.1.1",
- "postcss-ordered-values": "^5.1.1",
+ "postcss-ordered-values": "^5.1.3",
"postcss-reduce-initial": "^5.1.0",
"postcss-reduce-transforms": "^5.1.0",
"postcss-svgo": "^5.1.0",
@@ -20790,11 +19288,6 @@
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@@ -20819,9 +19312,7 @@
}
},
"csstype": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz",
- "integrity": "sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw=="
+ "version": "3.1.0"
},
"damerau-levenshtein": {
"version": "1.0.8",
@@ -20836,12 +19327,30 @@
"abab": "^2.0.3",
"whatwg-mimetype": "^2.3.0",
"whatwg-url": "^8.0.0"
+ },
+ "dependencies": {
+ "tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "requires": {
+ "punycode": "^2.1.1"
+ }
+ },
+ "whatwg-url": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "requires": {
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ }
+ }
}
},
"debug": {
"version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
@@ -20852,27 +19361,12 @@
"integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
},
"decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+ "version": "0.2.0"
},
"dedent": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw="
- },
- "deep-equal": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
- "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
- "requires": {
- "is-arguments": "^1.0.4",
- "is-date-object": "^1.0.1",
- "is-regex": "^1.0.4",
- "object-is": "^1.0.1",
- "object-keys": "^1.1.1",
- "regexp.prototype.flags": "^1.2.0"
- }
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
},
"deep-is": {
"version": "0.1.4",
@@ -20898,52 +19392,34 @@
"integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="
},
"define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
"requires": {
- "object-keys": "^1.0.12"
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
}
},
"defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
- },
- "del": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz",
- "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==",
- "requires": {
- "globby": "^11.0.1",
- "graceful-fs": "^4.2.4",
- "is-glob": "^4.0.1",
- "is-path-cwd": "^2.2.0",
- "is-path-inside": "^3.0.2",
- "p-map": "^4.0.0",
- "rimraf": "^3.0.2",
- "slash": "^3.0.0"
- }
+ "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ=="
},
"delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ "version": "1.0.0"
},
"depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"dequal": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz",
- "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug=="
+ "version": "2.0.2"
},
"destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"detect-newline": {
"version": "3.1.0",
@@ -20975,18 +19451,18 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"detective": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
- "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
"requires": {
- "acorn-node": "^1.6.1",
+ "acorn-node": "^1.8.2",
"defined": "^1.0.0",
- "minimist": "^1.1.1"
+ "minimist": "^1.2.6"
}
},
"didyoumean": {
@@ -20995,9 +19471,7 @@
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
},
"diff-sequences": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
- "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="
+ "version": "28.1.1"
},
"dir-glob": {
"version": "3.0.1",
@@ -21015,23 +19489,14 @@
"dns-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
- "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
+ "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg=="
},
"dns-packet": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz",
- "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==",
- "requires": {
- "ip": "^1.1.0",
- "safe-buffer": "^5.0.1"
- }
- },
- "dns-txt": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
- "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz",
+ "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
"requires": {
- "buffer-indexof": "^1.0.0"
+ "@leichtgewicht/ip-codec": "^2.0.1"
}
},
"doctrine": {
@@ -21043,9 +19508,7 @@
}
},
"dom-accessibility-api": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.13.tgz",
- "integrity": "sha512-R305kwb5CcMDIpSHUnLyIAp7SrSPBx6F0VfQFB3M75xVMHhXJJIdePYgbPPh1o57vCHNu5QztokWUPsLjWzFqw=="
+ "version": "0.5.14"
},
"dom-converter": {
"version": "0.2.0",
@@ -21057,33 +19520,25 @@
},
"dom-helpers": {
"version": "5.2.1",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
- "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
"requires": {
"@babel/runtime": "^7.8.7",
"csstype": "^3.0.2"
}
},
"dom-serializer": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
- "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
"requires": {
"domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
"entities": "^2.0.0"
- },
- "dependencies": {
- "domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
- }
}
},
"domelementtype": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
- "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
},
"domexception": {
"version": "2.0.1",
@@ -21106,22 +19561,16 @@
"integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
"requires": {
"domelementtype": "^2.2.0"
- },
- "dependencies": {
- "domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
- }
}
},
"domutils": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
- "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
"requires": {
- "dom-serializer": "0",
- "domelementtype": "1"
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
}
},
"dot-case": {
@@ -21131,13 +19580,6 @@
"requires": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- }
}
},
"dotenv": {
@@ -21158,20 +19600,18 @@
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"ejs": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
- "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz",
+ "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==",
"requires": {
"jake": "^10.8.5"
}
},
"electron-to-chromium": {
- "version": "1.4.103",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz",
- "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg=="
+ "version": "1.4.164"
},
"emittery": {
"version": "0.8.1",
@@ -21191,12 +19631,12 @@
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
},
"enhanced-resolve": {
- "version": "5.9.2",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz",
- "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==",
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz",
+ "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==",
"requires": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
@@ -21216,45 +19656,61 @@
}
},
"error-stack-parser": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz",
- "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
"requires": {
- "stackframe": "^1.1.1"
+ "stackframe": "^1.3.4"
}
},
"es-abstract": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz",
- "integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
+ "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
"requires": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.1",
"get-symbol-description": "^1.0.0",
"has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
"has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
"is-callable": "^1.2.4",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.1",
+ "is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
"is-weakref": "^1.0.2",
"object-inspect": "^1.12.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
+ "regexp.prototype.flags": "^1.4.3",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
}
},
+ "es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
+ },
"es-module-lexer": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
"integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
},
+ "es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
"es-to-primitive": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
@@ -21266,19 +19722,15 @@
}
},
"escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ "version": "3.1.1"
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ "version": "1.0.5"
},
"escodegen": {
"version": "2.0.0",
@@ -21295,7 +19747,7 @@
"levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
"requires": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
@@ -21317,18 +19769,12 @@
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "optional": true
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w=="
},
"type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
"requires": {
"prelude-ls": "~1.1.2"
}
@@ -21336,11 +19782,11 @@
}
},
"eslint": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz",
- "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz",
+ "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==",
"requires": {
- "@eslint/eslintrc": "^1.2.1",
+ "@eslint/eslintrc": "^1.3.0",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
@@ -21351,14 +19797,14 @@
"eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
"eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1",
+ "espree": "^9.3.2",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
"file-entry-cache": "^6.0.1",
"functional-red-black-tree": "^1.0.1",
"glob-parent": "^6.0.1",
- "globals": "^13.6.0",
+ "globals": "^13.15.0",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
@@ -21367,7 +19813,7 @@
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
"regexpp": "^3.2.0",
@@ -21377,68 +19823,30 @@
"v8-compile-cache": "^2.0.3"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
},
"globals": {
- "version": "13.13.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
- "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"requires": {
"type-fest": "^0.20.2"
}
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
}
}
},
"eslint-config-react-app": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.0.tgz",
- "integrity": "sha512-xyymoxtIt1EOsSaGag+/jmcywRuieQoA2JbPCjnw9HukFj9/97aGPoZVFioaotzk1K5Qt9sHO5EutZbkrAXS0g==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz",
+ "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==",
"requires": {
"@babel/core": "^7.16.0",
"@babel/eslint-parser": "^7.16.3",
@@ -21495,7 +19903,7 @@
"find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
"requires": {
"locate-path": "^2.0.0"
}
@@ -21503,7 +19911,7 @@
"locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -21520,7 +19928,7 @@
"p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
"requires": {
"p-limit": "^1.1.0"
}
@@ -21528,12 +19936,12 @@
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww=="
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
}
}
},
@@ -21547,23 +19955,23 @@
}
},
"eslint-plugin-import": {
- "version": "2.25.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz",
- "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
+ "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
"requires": {
"array-includes": "^3.1.4",
"array.prototype.flat": "^1.2.5",
"debug": "^2.6.9",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.2",
+ "eslint-module-utils": "^2.7.3",
"has": "^1.0.3",
- "is-core-module": "^2.8.0",
+ "is-core-module": "^2.8.1",
"is-glob": "^4.0.3",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"object.values": "^1.1.5",
- "resolve": "^1.20.0",
- "tsconfig-paths": "^3.12.0"
+ "resolve": "^1.22.0",
+ "tsconfig-paths": "^3.14.1"
},
"dependencies": {
"debug": {
@@ -21585,7 +19993,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
@@ -21614,27 +20022,38 @@
"jsx-ast-utils": "^3.2.1",
"language-tags": "^1.0.5",
"minimatch": "^3.0.4"
+ },
+ "dependencies": {
+ "aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "requires": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ }
+ }
}
},
"eslint-plugin-react": {
- "version": "7.29.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz",
- "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==",
+ "version": "7.30.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz",
+ "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==",
"requires": {
- "array-includes": "^3.1.4",
- "array.prototype.flatmap": "^1.2.5",
+ "array-includes": "^3.1.5",
+ "array.prototype.flatmap": "^1.3.0",
"doctrine": "^2.1.0",
"estraverse": "^5.3.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
"object.entries": "^1.1.5",
"object.fromentries": "^2.0.5",
- "object.hasown": "^1.1.0",
+ "object.hasown": "^1.1.1",
"object.values": "^1.1.5",
"prop-types": "^15.8.1",
"resolve": "^2.0.0-next.3",
"semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.6"
+ "string.prototype.matchall": "^4.0.7"
},
"dependencies": {
"doctrine": {
@@ -21646,31 +20065,27 @@
}
},
"resolve": {
- "version": "2.0.0-next.3",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
- "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
+ "version": "2.0.0-next.4",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
+ "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
"requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
}
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
}
}
},
"eslint-plugin-react-hooks": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz",
- "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
+ "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
"requires": {}
},
"eslint-plugin-testing-library": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.2.0.tgz",
- "integrity": "sha512-fYFH8lA1hbc1Epr9laNm/+YIR2d+R7WI8sFz9jIRAUfqCf21Nb5BzZwhNeZlu9wKXwDtuf+hUM5QJxG1PuDsTQ==",
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.5.1.tgz",
+ "integrity": "sha512-plLEkkbAKBjPxsLj7x4jNapcHAg2ernkQlKKrN2I8NrQwPISZHyCUNvg5Hv3EDqOQReToQb5bnqXYbkijJPE/g==",
"requires": {
"@typescript-eslint/utils": "^5.13.0"
}
@@ -21717,12 +20132,12 @@
}
},
"espree": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz",
- "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz",
+ "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
"requires": {
- "acorn": "^8.7.0",
- "acorn-jsx": "^5.3.1",
+ "acorn": "^8.7.1",
+ "acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^3.3.0"
}
},
@@ -21765,12 +20180,10 @@
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
},
"eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ "version": "4.0.7"
},
"events": {
"version": "3.3.0",
@@ -21796,7 +20209,7 @@
"exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw="
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ=="
},
"expect": {
"version": "27.5.1",
@@ -21807,40 +20220,75 @@
"jest-get-type": "^27.5.1",
"jest-matcher-utils": "^27.5.1",
"jest-message-util": "^27.5.1"
+ },
+ "dependencies": {
+ "diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="
+ },
+ "jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ }
+ },
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
+ },
+ "jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
+ "requires": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ }
+ }
}
},
"express": {
- "version": "4.17.3",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
- "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.19.2",
+ "body-parser": "1.20.0",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.2",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "~1.1.2",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
+ "http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
- "qs": "6.9.7",
+ "qs": "6.10.3",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
- "send": "0.17.2",
- "serve-static": "1.14.2",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
"setprototypeof": "1.2.0",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
@@ -21849,7 +20297,7 @@
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"debug": {
"version": "2.6.9",
@@ -21862,7 +20310,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"safe-buffer": {
"version": "5.2.1",
@@ -21906,7 +20354,7 @@
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"fastq": {
"version": "1.13.0",
@@ -21950,9 +20398,9 @@
}
},
"filelist": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz",
- "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
+ "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
"requires": {
"minimatch": "^5.0.1"
},
@@ -21966,9 +20414,9 @@
}
},
"minimatch": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
- "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz",
+ "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==",
"requires": {
"brace-expansion": "^2.0.1"
}
@@ -21982,23 +20430,21 @@
},
"fill-range": {
"version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"requires": {
"to-regex-range": "^5.0.1"
}
},
"finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"unpipe": "~1.0.0"
},
"dependencies": {
@@ -22013,7 +20459,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
@@ -22051,14 +20497,14 @@
"integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg=="
},
"follow-redirects": {
- "version": "1.14.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
- "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
},
"fork-ts-checker-webpack-plugin": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz",
- "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz",
+ "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==",
"requires": {
"@babel/code-frame": "^7.8.3",
"@types/json-schema": "^7.0.5",
@@ -22075,36 +20521,6 @@
"tapable": "^1.0.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
"cosmiconfig": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
@@ -22128,11 +20544,6 @@
"universalify": "^2.0.0"
}
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
"schema-utils": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
@@ -22143,12 +20554,12 @@
"ajv-keywords": "^3.4.1"
}
},
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"requires": {
- "has-flag": "^4.0.0"
+ "lru-cache": "^6.0.0"
}
},
"tapable": {
@@ -22160,8 +20571,6 @@
},
"form-data": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -22181,12 +20590,12 @@
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
},
"fs-extra": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz",
- "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -22201,36 +20610,54 @@
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
"functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g=="
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
},
"gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+ "version": "1.0.0-beta.2"
},
"get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
+ "version": "2.0.5"
},
"get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "has-symbols": "^1.0.3"
}
},
"get-own-enumerable-property-symbols": {
@@ -22258,14 +20685,14 @@
}
},
"glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
@@ -22312,9 +20739,7 @@
}
},
"globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ "version": "11.12.0"
},
"globby": {
"version": "11.1.0",
@@ -22330,9 +20755,9 @@
}
},
"graceful-fs": {
- "version": "4.2.9",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
- "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"gzip-size": {
"version": "6.0.0",
@@ -22348,9 +20773,7 @@
"integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
},
"harmony-reflect": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz",
- "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="
+ "version": "1.6.2"
},
"has": {
"version": "1.0.3",
@@ -22361,14 +20784,20 @@
}
},
"has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
},
"has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ "version": "4.0.0"
+ },
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
},
"has-symbols": {
"version": "1.0.3",
@@ -22396,7 +20825,7 @@
"hpack.js": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
"requires": {
"inherits": "^2.0.1",
"obuf": "^1.0.0",
@@ -22417,6 +20846,14 @@
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
}
}
},
@@ -22450,13 +20887,6 @@
"param-case": "^3.0.4",
"relateurl": "^0.2.7",
"terser": "^5.10.0"
- },
- "dependencies": {
- "commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
- }
}
},
"html-webpack-plugin": {
@@ -22480,49 +20910,22 @@
"domhandler": "^4.0.0",
"domutils": "^2.5.2",
"entities": "^2.0.0"
- },
- "dependencies": {
- "dom-serializer": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- }
- },
- "domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
- },
- "domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "requires": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- }
- }
}
},
"http-deceiver": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc="
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="
},
"http-errors": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
- "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"requires": {
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
- "statuses": ">= 1.5.0 < 2",
+ "statuses": "2.0.1",
"toidentifier": "1.0.1"
}
},
@@ -22552,9 +20955,9 @@
}
},
"http-proxy-middleware": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz",
- "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
+ "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
"requires": {
"@types/http-proxy": "^1.17.8",
"http-proxy": "^1.18.1",
@@ -22564,9 +20967,9 @@
}
},
"https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"requires": {
"agent-base": "6",
"debug": "4"
@@ -22578,11 +20981,11 @@
"integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
},
"iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"requires": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
}
},
"icss-utils": {
@@ -22598,8 +21001,6 @@
},
"identity-obj-proxy": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
- "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=",
"requires": {
"harmony-reflect": "^1.4.6"
}
@@ -22610,14 +21011,12 @@
"integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ=="
},
"immer": {
- "version": "9.0.12",
- "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.12.tgz",
- "integrity": "sha512-lk7UNmSbAukB5B6dh9fnh5D0bJTOFKxVg2cyJWTYrWRfhLrLMBquONcUs3aFq507hNoIZEDDh8lb8UtOizSMhA=="
+ "version": "9.0.15",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz",
+ "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ=="
},
"immutable": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
- "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw=="
+ "version": "4.1.0"
},
"import-fresh": {
"version": "3.3.0",
@@ -22626,6 +21025,13 @@
"requires": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ }
}
},
"import-local": {
@@ -22640,26 +21046,22 @@
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
},
"indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
+ "version": "4.0.0"
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ "version": "2.0.4"
},
"ini": {
"version": "1.3.8",
@@ -22678,35 +21080,19 @@
},
"invariant": {
"version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"requires": {
"loose-envify": "^1.0.0"
}
},
- "ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
- },
"ipaddr.js": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
"integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng=="
},
- "is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
- },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
},
"is-bigint": {
"version": "1.0.4",
@@ -22718,8 +21104,6 @@
},
"is-binary-path": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"requires": {
"binary-extensions": "^2.0.0"
}
@@ -22739,9 +21123,9 @@
"integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
},
"is-core-module": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
- "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
+ "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
"requires": {
"has": "^1.0.3"
}
@@ -22760,14 +21144,10 @@
"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
},
"is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
+ "version": "2.1.1"
},
"is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ "version": "3.0.0"
},
"is-generator-fn": {
"version": "2.1.0",
@@ -22776,8 +21156,6 @@
},
"is-glob": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"requires": {
"is-extglob": "^2.1.1"
}
@@ -22785,7 +21163,7 @@
"is-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
- "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE="
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
},
"is-negative-zero": {
"version": "2.0.2",
@@ -22793,14 +21171,12 @@
"integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
},
"is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ "version": "7.0.0"
},
"is-number-object": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
- "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"requires": {
"has-tostringtag": "^1.0.0"
}
@@ -22808,17 +21184,7 @@
"is-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
- },
- "is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ=="
- },
- "is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg=="
},
"is-plain-obj": {
"version": "3.0.0",
@@ -22842,7 +21208,7 @@
"is-regexp": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
- "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk="
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA=="
},
"is-root": {
"version": "2.1.0",
@@ -22850,9 +21216,12 @@
"integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg=="
},
"is-shared-array-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz",
- "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
},
"is-stream": {
"version": "2.0.1",
@@ -22878,7 +21247,7 @@
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
"is-weakref": {
"version": "1.0.2",
@@ -22899,12 +21268,12 @@
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"istanbul-lib-coverage": {
"version": "3.2.0",
@@ -22912,22 +21281,15 @@
"integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw=="
},
"istanbul-lib-instrument": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz",
- "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz",
+ "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==",
"requires": {
"@babel/core": "^7.12.3",
"@babel/parser": "^7.14.7",
"@istanbuljs/schema": "^0.1.2",
"istanbul-lib-coverage": "^3.2.0",
"semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
}
},
"istanbul-lib-report": {
@@ -22938,21 +21300,6 @@
"istanbul-lib-coverage": "^3.0.0",
"make-dir": "^3.0.0",
"supports-color": "^7.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"istanbul-lib-source-maps": {
@@ -22963,13 +21310,6 @@
"debug": "^4.1.1",
"istanbul-lib-coverage": "^3.0.0",
"source-map": "^0.6.1"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
}
},
"istanbul-reports": {
@@ -22990,56 +21330,6 @@
"chalk": "^4.0.2",
"filelist": "^1.0.1",
"minimatch": "^3.0.4"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest": {
@@ -23050,70 +21340,6 @@
"@jest/core": "^27.5.1",
"import-local": "^3.0.2",
"jest-cli": "^27.5.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "jest-cli": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
- "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
- "requires": {
- "@jest/core": "^27.5.1",
- "@jest/test-result": "^27.5.1",
- "@jest/types": "^27.5.1",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "import-local": "^3.0.2",
- "jest-config": "^27.5.1",
- "jest-util": "^27.5.1",
- "jest-validate": "^27.5.1",
- "prompts": "^2.0.1",
- "yargs": "^16.2.0"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-changed-files": {
@@ -23152,51 +21378,59 @@
"throat": "^6.0.1"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
+ "diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
"requires": {
- "color-name": "~1.1.4"
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
},
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
"requires": {
- "has-flag": "^4.0.0"
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
}
}
}
},
+ "jest-cli": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
+ "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
+ "requires": {
+ "@jest/core": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "prompts": "^2.0.1",
+ "yargs": "^16.2.0"
+ }
+ },
"jest-config": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz",
@@ -23222,110 +21456,42 @@
"jest-util": "^27.5.1",
"jest-validate": "^27.5.1",
"micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^27.5.1",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
+ "parse-json": "^5.2.0",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
}
}
},
"jest-diff": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
- "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
+ "version": "28.1.1",
"requires": {
"chalk": "^4.0.0",
- "diff-sequences": "^27.5.1",
- "jest-get-type": "^27.5.1",
- "pretty-format": "^27.5.1"
+ "diff-sequences": "^28.1.1",
+ "jest-get-type": "^28.0.2",
+ "pretty-format": "^28.1.1"
},
"dependencies": {
"ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
+ "version": "5.2.0"
},
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "pretty-format": {
+ "version": "28.1.1",
"requires": {
- "color-name": "~1.1.4"
+ "@jest/schemas": "^28.0.2",
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
+ "react-is": {
+ "version": "18.2.0"
}
}
},
@@ -23349,48 +21515,10 @@
"pretty-format": "^27.5.1"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
}
}
},
@@ -23422,9 +21550,7 @@
}
},
"jest-get-type": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
- "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
+ "version": "28.0.2"
},
"jest-haste-map": {
"version": "27.5.1",
@@ -23470,47 +21596,36 @@
"throat": "^6.0.1"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
+ "diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
"requires": {
- "color-name": "~1.1.4"
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
},
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
"requires": {
- "has-flag": "^4.0.0"
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
}
}
}
@@ -23522,61 +21637,38 @@
"requires": {
"jest-get-type": "^27.5.1",
"pretty-format": "^27.5.1"
+ },
+ "dependencies": {
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
+ }
}
},
"jest-matcher-utils": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
- "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
+ "version": "28.1.1",
"requires": {
"chalk": "^4.0.0",
- "jest-diff": "^27.5.1",
- "jest-get-type": "^27.5.1",
- "pretty-format": "^27.5.1"
+ "jest-diff": "^28.1.1",
+ "jest-get-type": "^28.0.2",
+ "pretty-format": "^28.1.1"
},
"dependencies": {
"ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
+ "version": "5.2.0"
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "pretty-format": {
+ "version": "28.1.1",
"requires": {
- "color-name": "~1.1.4"
+ "@jest/schemas": "^28.0.2",
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
+ "react-is": {
+ "version": "18.2.0"
}
}
},
@@ -23594,51 +21686,6 @@
"pretty-format": "^27.5.1",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-mock": {
@@ -23676,51 +21723,6 @@
"resolve": "^1.20.0",
"resolve.exports": "^1.1.0",
"slash": "^3.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-resolve-dependencies": {
@@ -23759,51 +21761,6 @@
"jest-worker": "^27.5.1",
"source-map-support": "^0.5.6",
"throat": "^6.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-runtime": {
@@ -23817,72 +21774,22 @@
"@jest/source-map": "^27.5.1",
"@jest/test-result": "^27.5.1",
"@jest/transform": "^27.5.1",
- "@jest/types": "^27.5.1",
- "chalk": "^4.0.0",
- "cjs-module-lexer": "^1.0.0",
- "collect-v8-coverage": "^1.0.0",
- "execa": "^5.0.0",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^27.5.1",
- "jest-message-util": "^27.5.1",
- "jest-mock": "^27.5.1",
- "jest-regex-util": "^27.5.1",
- "jest-resolve": "^27.5.1",
- "jest-snapshot": "^27.5.1",
- "jest-util": "^27.5.1",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "execa": "^5.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
}
},
"jest-serializer": {
@@ -23923,47 +21830,44 @@
"semver": "^7.3.2"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
+ "diff-sequences": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ=="
},
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "jest-diff": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
"requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "chalk": "^4.0.0",
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
}
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
+ },
+ "jest-matcher-utils": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
"requires": {
- "color-name": "~1.1.4"
+ "chalk": "^4.0.0",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"requires": {
- "has-flag": "^4.0.0"
+ "lru-cache": "^6.0.0"
}
}
}
@@ -23979,51 +21883,6 @@
"ci-info": "^3.2.0",
"graceful-fs": "^4.2.9",
"picomatch": "^2.2.3"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-validate": {
@@ -24039,109 +21898,179 @@
"pretty-format": "^27.5.1"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
+ "jest-get-type": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw=="
}
}
},
"jest-watch-typeahead": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz",
- "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz",
+ "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==",
"requires": {
"ansi-escapes": "^4.3.1",
"chalk": "^4.0.0",
- "jest-regex-util": "^27.0.0",
- "jest-watcher": "^27.0.0",
+ "jest-regex-util": "^28.0.0",
+ "jest-watcher": "^28.0.0",
"slash": "^4.0.0",
"string-length": "^5.0.1",
"strip-ansi": "^7.0.1"
},
"dependencies": {
- "ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
+ "@jest/console": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.1.tgz",
+ "integrity": "sha512-0RiUocPVFEm3WRMOStIHbRWllG6iW6E3/gUPnf4lkrVFyXIIDeCe+vlKeYyFOMhB2EPE6FLFCNADSOOQMaqvyA==",
+ "requires": {
+ "@jest/types": "^28.1.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^28.1.1",
+ "jest-util": "^28.1.1",
+ "slash": "^3.0.0"
+ },
+ "dependencies": {
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ }
+ }
},
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "@jest/test-result": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.1.tgz",
+ "integrity": "sha512-hPmkugBktqL6rRzwWAtp1JtYT4VHwv8OQ+9lE5Gymj6dHzubI/oJHMUpPOt8NrdVWSrz9S7bHjJUmv2ggFoUNQ==",
"requires": {
- "color-convert": "^2.0.1"
+ "@jest/console": "^28.1.1",
+ "@jest/types": "^28.1.1",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
}
},
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "@jest/types": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.1.tgz",
+ "integrity": "sha512-vRXVqSg1VhDnB8bWcmvLzmg0Bt9CRKVgHPXqYwvWMX3TvAjeO+nRuK6+VdTKCtWOvYlmkF/HqNAL/z+N3B53Kw==",
"requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "@jest/schemas": "^28.0.2",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
}
},
- "char-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz",
- "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw=="
+ "@types/yargs": {
+ "version": "17.0.10",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz",
+ "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==",
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
},
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
+ },
+ "emittery": {
+ "version": "0.10.2",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz",
+ "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw=="
+ },
+ "jest-message-util": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.1.tgz",
+ "integrity": "sha512-xoDOOT66fLfmTRiqkoLIU7v42mal/SqwDKvfmfiWAdJMSJiU+ozgluO7KbvoAgiwIrrGZsV7viETjc8GNrA/IQ==",
+ "requires": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^28.1.1",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^28.1.1",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "dependencies": {
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ }
+ }
+ },
+ "jest-regex-util": {
+ "version": "28.0.2",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz",
+ "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw=="
+ },
+ "jest-util": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.1.tgz",
+ "integrity": "sha512-FktOu7ca1DZSyhPAxgxB6hfh2+9zMoJ7aEQA759Z6p45NuO8mWcqujH+UdHlCm/V6JTWwDztM2ITCzU1ijJAfw==",
"requires": {
- "color-name": "~1.1.4"
+ "@jest/types": "^28.1.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ "jest-watcher": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.1.tgz",
+ "integrity": "sha512-RQIpeZ8EIJMxbQrXpJQYIIlubBnB9imEHsxxE41f54ZwcqWLysL/A0ZcdMirf+XsMn3xfphVQVV4EW0/p7i7Ug==",
+ "requires": {
+ "@jest/test-result": "^28.1.1",
+ "@jest/types": "^28.1.1",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.10.2",
+ "jest-util": "^28.1.1",
+ "string-length": "^4.0.1"
+ },
+ "dependencies": {
+ "string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "requires": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ }
+ }
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ "pretty-format": {
+ "version": "28.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.1.tgz",
+ "integrity": "sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==",
+ "requires": {
+ "@jest/schemas": "^28.0.2",
+ "ansi-regex": "^5.0.1",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ }
+ },
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
},
"slash": {
"version": "4.0.0",
@@ -24155,6 +22084,13 @@
"requires": {
"char-regex": "^2.0.0",
"strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "char-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz",
+ "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw=="
+ }
}
},
"strip-ansi": {
@@ -24163,14 +22099,13 @@
"integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
"requires": {
"ansi-regex": "^6.0.1"
- }
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
+ }
}
}
}
@@ -24187,51 +22122,6 @@
"chalk": "^4.0.0",
"jest-util": "^27.5.1",
"string-length": "^4.0.1"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"jest-worker": {
@@ -24244,11 +22134,6 @@
"supports-color": "^8.0.0"
},
"dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
@@ -24260,16 +22145,17 @@
}
},
"js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ "version": "4.0.0"
},
"js-yaml": {
"version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"requires": {
"argparse": "^2.0.1"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "2.0.1"
+ }
}
},
"jsdom": {
@@ -24304,17 +22190,30 @@
"whatwg-url": "^8.5.0",
"ws": "^7.4.6",
"xml-name-validator": "^3.0.0"
+ },
+ "dependencies": {
+ "tr46": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "requires": {
+ "punycode": "^2.1.1"
+ }
+ },
+ "whatwg-url": {
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "requires": {
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
+ }
+ }
}
},
"jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
- },
- "json-parse-better-errors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw=="
+ "version": "2.5.2"
},
"json-parse-even-better-errors": {
"version": "2.3.1",
@@ -24334,12 +22233,10 @@
"json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
},
"json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
+ "version": "2.2.1"
},
"jsonfile": {
"version": "6.1.0",
@@ -24356,9 +22253,9 @@
"integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg=="
},
"jsx-ast-utils": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz",
- "integrity": "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.0.tgz",
+ "integrity": "sha512-XzO9luP6L0xkxwhIJMTJQpZo/eeN60K08jHdexfD569AGxeNug6UketeHXEhROoM8aR7EcUoOQmIhcJQjcuq8Q==",
"requires": {
"array-includes": "^3.1.4",
"object.assign": "^4.1.2"
@@ -24387,7 +22284,7 @@
"language-tags": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
- "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==",
"requires": {
"language-subtag-registry": "~0.3.2"
}
@@ -24417,9 +22314,9 @@
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
"loader-runner": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz",
- "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw=="
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg=="
},
"loader-utils": {
"version": "2.0.2",
@@ -24440,19 +22337,17 @@
}
},
"lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "version": "4.17.21"
},
"lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
},
"lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
},
"lodash.merge": {
"version": "4.6.2",
@@ -24462,17 +22357,20 @@
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
+ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA=="
},
"lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
+ },
+ "long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
"loose-envify": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
@@ -24483,13 +22381,6 @@
"integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
"requires": {
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- }
}
},
"lru-cache": {
@@ -24501,9 +22392,7 @@
}
},
"lz-string": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
- "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY="
+ "version": "1.4.4"
},
"magic-string": {
"version": "0.25.9",
@@ -24519,13 +22408,6 @@
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"requires": {
"semver": "^6.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- }
}
},
"makeerror": {
@@ -24544,20 +22426,20 @@
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
},
"memfs": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz",
- "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==",
+ "version": "3.4.6",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.6.tgz",
+ "integrity": "sha512-rH9mjopto6Wkr7RFuH9l9dk3qb2XGOcYKr7xMhaYqfzuJqOqhRrcFvfD7JMuPj6SLmPreh5+6eAuv36NFAU+Mw==",
"requires": {
- "fs-monkey": "1.0.3"
+ "fs-monkey": "^1.0.3"
}
},
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"merge-stream": {
"version": "2.0.0",
@@ -24572,7 +22454,7 @@
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
},
"micromatch": {
"version": "4.0.5",
@@ -24589,14 +22471,10 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ "version": "1.52.0"
},
"mime-types": {
"version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
"mime-db": "1.52.0"
}
@@ -24607,14 +22485,12 @@
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
},
"min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="
+ "version": "1.0.1"
},
"mini-css-extract-plugin": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz",
- "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz",
+ "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==",
"requires": {
"schema-utils": "^4.0.0"
},
@@ -24682,34 +22558,31 @@
"minimist": "^1.2.6"
}
},
+ "monaco-editor": {
+ "version": "0.33.0",
+ "peer": true
+ },
"ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "version": "2.1.2"
},
"multicast-dns": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
- "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
+ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
"requires": {
- "dns-packet": "^1.3.1",
+ "dns-packet": "^5.2.2",
"thunky": "^1.0.2"
}
},
- "multicast-dns-service-types": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
- "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE="
- },
"nanoid": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.2.tgz",
- "integrity": "sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA=="
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
},
"natural-compare": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
},
"negotiator": {
"version": "0.6.3",
@@ -24728,13 +22601,14 @@
"requires": {
"lower-case": "^2.0.2",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- }
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "requires": {
+ "whatwg-url": "^5.0.0"
}
},
"node-forge": {
@@ -24745,22 +22619,18 @@
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs="
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
},
"node-releases": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz",
- "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg=="
+ "version": "2.0.5"
},
"normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ "version": "3.0.0"
},
"normalize-range": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="
},
"normalize-url": {
"version": "6.1.0",
@@ -24776,11 +22646,11 @@
}
},
"nth-check": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
- "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
"requires": {
- "boolbase": "~1.0.0"
+ "boolbase": "^1.0.0"
}
},
"nwsapi": {
@@ -24789,28 +22659,17 @@
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
},
"object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ "version": "4.1.1"
},
"object-hash": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
- "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
},
"object-inspect": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
- "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
- },
- "object-is": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- }
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
},
"object-keys": {
"version": "1.1.1",
@@ -24849,22 +22708,23 @@
}
},
"object.getownpropertydescriptors": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz",
- "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz",
+ "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==",
"requires": {
+ "array.prototype.reduce": "^1.0.4",
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.1"
}
},
"object.hasown": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz",
- "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
+ "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
"requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"object.values": {
@@ -24883,9 +22743,9 @@
"integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
},
"on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"requires": {
"ee-first": "1.1.1"
}
@@ -24898,7 +22758,7 @@
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"requires": {
"wrappy": "1"
}
@@ -24950,20 +22810,12 @@
"p-limit": "^3.0.2"
}
},
- "p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "requires": {
- "aggregate-error": "^3.0.0"
- }
- },
"p-retry": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz",
- "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
"requires": {
- "@types/retry": "^0.12.0",
+ "@types/retry": "0.12.0",
"retry": "^0.13.1"
}
},
@@ -24979,13 +22831,6 @@
"requires": {
"dot-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- }
}
},
"parent-module": {
@@ -25024,19 +22869,10 @@
"requires": {
"no-case": "^3.0.4",
"tslib": "^2.0.3"
- },
- "dependencies": {
- "tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- }
}
},
"path": {
"version": "0.12.7",
- "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
- "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
"requires": {
"process": "^0.11.1",
"util": "^0.10.3"
@@ -25050,7 +22886,7 @@
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
},
"path-key": {
"version": "3.1.1",
@@ -25065,7 +22901,7 @@
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"path-type": {
"version": "4.0.0",
@@ -25075,26 +22911,25 @@
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
},
"phaser": {
"version": "3.55.2",
- "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.55.2.tgz",
- "integrity": "sha512-amKXsbb2Ht29dGPKvt1edq3yGGYKtq8373GpJYGKPNPnneYY6MtVTOgjHDuZwtmUyK4v86FugkT3hzW/N4tjxQ==",
"requires": {
"eventemitter3": "^4.0.7",
"path": "^0.12.7"
}
},
"picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ "version": "1.0.0"
},
"picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ "version": "2.3.1"
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
},
"pirates": {
"version": "4.0.5",
@@ -25188,46 +23023,26 @@
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
- }
- }
- },
- "portfinder": {
- "version": "1.0.28",
- "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
- "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
- "requires": {
- "async": "^2.6.2",
- "debug": "^3.1.1",
- "mkdirp": "^0.5.5"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "requires": {
- "ms": "^2.1.1"
- }
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
}
}
},
"postcss": {
- "version": "8.4.12",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz",
- "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==",
+ "version": "8.4.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"requires": {
- "nanoid": "^3.3.1",
+ "nanoid": "^3.3.4",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
}
},
"postcss-attribute-case-insensitive": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz",
- "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.1.tgz",
+ "integrity": "sha512-wrt2VndqSLJpyBRNz9OmJcgnhI9MaongeWgapdBuUMu2a/KNJ8SENesG4SdiTnQwGO9b1VKbTWYAfCPeokLqZQ==",
"requires": {
- "postcss-selector-parser": "^6.0.2"
+ "postcss-selector-parser": "^6.0.10"
}
},
"postcss-browser-comments": {
@@ -25254,25 +23069,25 @@
}
},
"postcss-color-functional-notation": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz",
- "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz",
+ "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==",
"requires": {
"postcss-value-parser": "^4.2.0"
}
},
"postcss-color-hex-alpha": {
- "version": "8.0.3",
- "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz",
- "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==",
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz",
+ "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==",
"requires": {
"postcss-value-parser": "^4.2.0"
}
},
"postcss-color-rebeccapurple": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz",
- "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.0.tgz",
+ "integrity": "sha512-1jtE5AKnZcKq4pjOrltFHcbEM2/IvtbD1OdhZ/wqds18//bh0UmQkffcCkzDJU+/vGodfIsVQeKn+45CJvX9Bw==",
"requires": {
"postcss-value-parser": "^4.2.0"
}
@@ -25289,31 +23104,34 @@
}
},
"postcss-convert-values": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz",
- "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz",
+ "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==",
"requires": {
+ "browserslist": "^4.20.3",
"postcss-value-parser": "^4.2.0"
}
},
"postcss-custom-media": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz",
- "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==",
- "requires": {}
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz",
+ "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
},
"postcss-custom-properties": {
- "version": "12.1.5",
- "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.5.tgz",
- "integrity": "sha512-FHbbB/hRo/7cxLGkc2NS7cDRIDN1oFqQnUKBiyh4b/gwk8DD8udvmRDpUhEK836kB8ggUCieHVOvZDnF9XhI3g==",
+ "version": "12.1.8",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz",
+ "integrity": "sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==",
"requires": {
"postcss-value-parser": "^4.2.0"
}
},
"postcss-custom-selectors": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz",
- "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz",
+ "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==",
"requires": {
"postcss-selector-parser": "^6.0.4"
}
@@ -25327,9 +23145,9 @@
}
},
"postcss-discard-comments": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz",
- "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
+ "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
"requires": {}
},
"postcss-discard-duplicates": {
@@ -25409,6 +23227,16 @@
"postcss-value-parser": "^4.2.0"
}
},
+ "postcss-import": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
+ "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
+ "requires": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ }
+ },
"postcss-initial": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
@@ -25424,9 +23252,9 @@
}
},
"postcss-lab-function": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz",
- "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz",
+ "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==",
"requires": {
"@csstools/postcss-progressive-custom-properties": "^1.1.0",
"postcss-value-parser": "^4.2.0"
@@ -25449,6 +23277,16 @@
"cosmiconfig": "^7.0.0",
"klona": "^2.0.5",
"semver": "^7.3.5"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
}
},
"postcss-logical": {
@@ -25464,18 +23302,18 @@
"requires": {}
},
"postcss-merge-longhand": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.3.tgz",
- "integrity": "sha512-lX8GPGvZ0iGP/IboM7HXH5JwkXvXod1Rr8H8ixwiA372hArk0zP4ZcCy4z4Prg/bfNlbbTf0KCOjCF9kKnpP/w==",
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz",
+ "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==",
"requires": {
"postcss-value-parser": "^4.2.0",
"stylehacks": "^5.1.0"
}
},
"postcss-merge-rules": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz",
- "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz",
+ "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==",
"requires": {
"browserslist": "^4.16.6",
"caniuse-api": "^3.0.0",
@@ -25502,9 +23340,9 @@
}
},
"postcss-minify-params": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.2.tgz",
- "integrity": "sha512-aEP+p71S/urY48HWaRHasyx4WHQJyOYaKpQ6eXl8k0kxg66Wt/30VR6/woh8THgcpRbonJD5IeD+CzNhPi1L8g==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz",
+ "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==",
"requires": {
"browserslist": "^4.16.6",
"cssnano-utils": "^3.1.0",
@@ -25512,9 +23350,9 @@
}
},
"postcss-minify-selectors": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz",
- "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
+ "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
"requires": {
"postcss-selector-parser": "^6.0.5"
}
@@ -25560,11 +23398,12 @@
}
},
"postcss-nesting": {
- "version": "10.1.3",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz",
- "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==",
+ "version": "10.1.8",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.8.tgz",
+ "integrity": "sha512-txdb3/idHYsBbNDFo1PFY0ExCgH5nfWi8G5lO49e6iuU42TydbODTzJgF5UuL5bhgeSlnAtDgfFTDG0Cl1zaSQ==",
"requires": {
- "postcss-selector-parser": "^6.0.9"
+ "@csstools/selector-specificity": "^2.0.0",
+ "postcss-selector-parser": "^6.0.10"
}
},
"postcss-normalize": {
@@ -25592,17 +23431,17 @@
}
},
"postcss-normalize-positions": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz",
- "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
+ "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
"requires": {
"postcss-value-parser": "^4.2.0"
}
},
"postcss-normalize-repeat-style": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz",
- "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
+ "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
"requires": {
"postcss-value-parser": "^4.2.0"
}
@@ -25655,9 +23494,9 @@
"integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w=="
},
"postcss-ordered-values": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz",
- "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
+ "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
"requires": {
"cssnano-utils": "^3.1.0",
"postcss-value-parser": "^4.2.0"
@@ -25684,32 +23523,36 @@
}
},
"postcss-preset-env": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.3.tgz",
- "integrity": "sha512-dlPA65g9KuGv7YsmGyCKtFkZKCPLkoVMUE3omOl6yM+qrynVHxFvf0tMuippIrXB/sB/MyhL1FgTIbrO+qMERg==",
+ "version": "7.7.1",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.7.1.tgz",
+ "integrity": "sha512-1sx6+Nl1wMVJzaYLVaz4OAR6JodIN/Z1upmVqLwSPCLT6XyxrEoePgNMHPH08kseLe3z06i9Vfkt/32BYEKDeA==",
"requires": {
- "@csstools/postcss-color-function": "^1.0.3",
+ "@csstools/postcss-cascade-layers": "^1.0.2",
+ "@csstools/postcss-color-function": "^1.1.0",
"@csstools/postcss-font-format-keywords": "^1.0.0",
- "@csstools/postcss-hwb-function": "^1.0.0",
+ "@csstools/postcss-hwb-function": "^1.0.1",
"@csstools/postcss-ic-unit": "^1.0.0",
- "@csstools/postcss-is-pseudo-class": "^2.0.1",
+ "@csstools/postcss-is-pseudo-class": "^2.0.4",
"@csstools/postcss-normalize-display-values": "^1.0.0",
- "@csstools/postcss-oklab-function": "^1.0.2",
+ "@csstools/postcss-oklab-function": "^1.1.0",
"@csstools/postcss-progressive-custom-properties": "^1.3.0",
- "autoprefixer": "^10.4.4",
- "browserslist": "^4.20.2",
+ "@csstools/postcss-stepped-value-functions": "^1.0.0",
+ "@csstools/postcss-trigonometric-functions": "^1.0.1",
+ "@csstools/postcss-unset-value": "^1.0.1",
+ "autoprefixer": "^10.4.7",
+ "browserslist": "^4.20.3",
"css-blank-pseudo": "^3.0.3",
"css-has-pseudo": "^3.0.4",
"css-prefers-color-scheme": "^6.0.3",
- "cssdb": "^6.5.0",
- "postcss-attribute-case-insensitive": "^5.0.0",
+ "cssdb": "^6.6.3",
+ "postcss-attribute-case-insensitive": "^5.0.1",
"postcss-clamp": "^4.1.0",
- "postcss-color-functional-notation": "^4.2.2",
+ "postcss-color-functional-notation": "^4.2.3",
"postcss-color-hex-alpha": "^8.0.3",
"postcss-color-rebeccapurple": "^7.0.2",
- "postcss-custom-media": "^8.0.0",
- "postcss-custom-properties": "^12.1.5",
- "postcss-custom-selectors": "^6.0.0",
+ "postcss-custom-media": "^8.0.1",
+ "postcss-custom-properties": "^12.1.7",
+ "postcss-custom-selectors": "^6.0.2",
"postcss-dir-pseudo-class": "^6.0.4",
"postcss-double-position-gradients": "^3.1.1",
"postcss-env-function": "^4.0.6",
@@ -25719,26 +23562,26 @@
"postcss-gap-properties": "^3.0.3",
"postcss-image-set-function": "^4.0.6",
"postcss-initial": "^4.0.1",
- "postcss-lab-function": "^4.1.2",
+ "postcss-lab-function": "^4.2.0",
"postcss-logical": "^5.0.4",
"postcss-media-minmax": "^5.0.0",
- "postcss-nesting": "^10.1.3",
+ "postcss-nesting": "^10.1.7",
"postcss-opacity-percentage": "^1.1.2",
"postcss-overflow-shorthand": "^3.0.3",
"postcss-page-break": "^3.0.4",
"postcss-place": "^7.0.4",
- "postcss-pseudo-class-any-link": "^7.1.1",
+ "postcss-pseudo-class-any-link": "^7.1.4",
"postcss-replace-overflow-wrap": "^4.0.0",
- "postcss-selector-not": "^5.0.0",
+ "postcss-selector-not": "^6.0.0",
"postcss-value-parser": "^4.2.0"
}
},
"postcss-pseudo-class-any-link": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz",
- "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==",
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz",
+ "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==",
"requires": {
- "postcss-selector-parser": "^6.0.9"
+ "postcss-selector-parser": "^6.0.10"
}
},
"postcss-reduce-initial": {
@@ -25765,11 +23608,11 @@
"requires": {}
},
"postcss-selector-not": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz",
- "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.0.tgz",
+ "integrity": "sha512-i/HI/VNd3V9e1WOLCwJsf9nePBRXqcGtVibcJ9FsVo0agfDEfsLSlFt94aYjY35wUNcdG0KrvdyjEr7It50wLQ==",
"requires": {
- "balanced-match": "^1.0.0"
+ "postcss-selector-parser": "^6.0.10"
}
},
"postcss-selector-parser": {
@@ -25790,17 +23633,10 @@
"svgo": "^2.7.0"
},
"dependencies": {
- "css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "requires": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- }
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
},
"css-tree": {
"version": "1.1.3",
@@ -25811,54 +23647,11 @@
"source-map": "^0.6.1"
}
},
- "css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
- },
- "dom-serializer": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- }
- },
- "domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
- },
- "domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "requires": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- }
- },
"mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
},
- "nth-check": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
- "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==",
- "requires": {
- "boolbase": "^1.0.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
"svgo": {
"version": "2.8.0",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz",
@@ -25909,8 +23702,6 @@
},
"pretty-format": {
"version": "27.5.1",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
- "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
"requires": {
"ansi-regex": "^5.0.1",
"ansi-styles": "^5.0.0",
@@ -25918,21 +23709,12 @@
},
"dependencies": {
"ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="
- },
- "react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
+ "version": "5.2.0"
}
}
},
"process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
+ "version": "0.11.10"
},
"process-nextick-args": {
"version": "2.0.1",
@@ -25958,21 +23740,27 @@
},
"prop-types": {
"version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
"react-is": "^16.13.1"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "16.13.1"
+ }
}
},
"prop-types-extra": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
- "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==",
"requires": {
"react-is": "^16.3.2",
"warning": "^4.0.0"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "16.13.1"
+ }
}
},
"proxy-addr": {
@@ -26004,12 +23792,15 @@
"q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
- "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw=="
},
"qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
},
"queue-microtask": {
"version": "1.2.3",
@@ -26043,12 +23834,12 @@
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
- "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"requires": {
"bytes": "3.1.2",
- "http-errors": "1.8.1",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
@@ -26057,13 +23848,19 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
}
}
},
"react": {
- "version": "18.0.0",
- "resolved": "https://registry.npmjs.org/react/-/react-18.0.0.tgz",
- "integrity": "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==",
+ "version": "18.2.0",
"requires": {
"loose-envify": "^1.1.0"
}
@@ -26082,18 +23879,12 @@
}
},
"react-bootstrap": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.2.3.tgz",
- "integrity": "sha512-gXsAEBdDUHnOpJ2C+DDQ4mFt7tN6u6qWnTH3tqiE9jUvV6gGY8uHFp0iGBsM+yjrBwmR6bqCBFh8Z82aQj1LSw==",
+ "version": "2.4.0",
"requires": {
"@babel/runtime": "^7.17.2",
"@restart/hooks": "^0.4.6",
"@restart/ui": "^1.2.0",
- "@types/invariant": "^2.2.35",
- "@types/prop-types": "^15.7.4",
- "@types/react": ">=16.14.8",
"@types/react-transition-group": "^4.4.4",
- "@types/warning": "^3.0.0",
"classnames": "^2.3.1",
"dom-helpers": "^5.2.1",
"invariant": "^2.2.4",
@@ -26105,9 +23896,9 @@
}
},
"react-dev-utils": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.0.tgz",
- "integrity": "sha512-xBQkitdxozPxt1YZ9O1097EJiVpwHr9FoAuEVURCKV0Av8NBERovJauzP7bo1ThvuhZ4shsQ1AJiu4vQpoT1AQ==",
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
+ "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
"requires": {
"@babel/code-frame": "^7.16.0",
"address": "^1.1.2",
@@ -26128,91 +23919,42 @@
"open": "^8.4.0",
"pkg-up": "^3.1.0",
"prompts": "^2.4.2",
- "react-error-overlay": "^6.0.10",
+ "react-error-overlay": "^6.0.11",
"recursive-readdir": "^2.2.2",
"shell-quote": "^1.7.3",
"strip-ansi": "^6.0.1",
"text-table": "^0.2.0"
},
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
},
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
"loader-utils": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz",
"integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
"react-dom": {
- "version": "18.0.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz",
- "integrity": "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==",
+ "version": "18.2.0",
"requires": {
"loose-envify": "^1.1.0",
- "scheduler": "^0.21.0"
+ "scheduler": "^0.23.0"
}
},
"react-error-overlay": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz",
- "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA=="
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
+ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
},
"react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "version": "17.0.2"
},
"react-lifecycles-compat": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
- "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ "version": "3.0.4"
},
"react-refresh": {
"version": "0.11.0",
@@ -26272,12 +24014,20 @@
"webpack-dev-server": "^4.6.0",
"webpack-manifest-plugin": "^4.0.2",
"workbox-webpack-plugin": "^6.4.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ }
}
},
"react-transition-group": {
"version": "4.4.2",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz",
- "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==",
"requires": {
"@babel/runtime": "^7.5.5",
"dom-helpers": "^5.0.1",
@@ -26285,6 +24035,14 @@
"prop-types": "^15.6.2"
}
},
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "requires": {
+ "pify": "^2.3.0"
+ }
+ },
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
@@ -26297,8 +24055,6 @@
},
"readdirp": {
"version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"requires": {
"picomatch": "^2.2.1"
}
@@ -26323,8 +24079,6 @@
},
"redent": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
"requires": {
"indent-string": "^4.0.0",
"strip-indent": "^3.0.0"
@@ -26344,14 +24098,12 @@
}
},
"regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ "version": "0.13.9"
},
"regenerator-transform": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
- "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
+ "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
"requires": {
"@babel/runtime": "^7.8.4"
}
@@ -26362,12 +24114,13 @@
"integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q=="
},
"regexp.prototype.flags": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz",
- "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==",
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
}
},
"regexpp": {
@@ -26404,14 +24157,14 @@
"jsesc": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA=="
}
}
},
"relateurl": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
- "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog=="
},
"renderkid": {
"version": "3.0.0",
@@ -26423,64 +24176,10 @@
"htmlparser2": "^6.1.0",
"lodash": "^4.17.21",
"strip-ansi": "^6.0.1"
- },
- "dependencies": {
- "css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "requires": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- }
- },
- "css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
- },
- "dom-serializer": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
- "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
- "requires": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- }
- },
- "domelementtype": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
- "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
- },
- "domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "requires": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- }
- },
- "nth-check": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz",
- "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==",
- "requires": {
- "boolbase": "^1.0.0"
- }
- }
}
},
"require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
+ "version": "2.1.1"
},
"require-from-string": {
"version": "2.0.2",
@@ -26490,14 +24189,14 @@
"requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"resolve": {
- "version": "1.22.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
- "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
"requires": {
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.9.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
}
@@ -26508,19 +24207,12 @@
"integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"requires": {
"resolve-from": "^5.0.0"
- },
- "dependencies": {
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
- }
}
},
"resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw=="
},
"resolve-url-loader": {
"version": "4.0.0",
@@ -26547,11 +24239,6 @@
"picocolors": "^0.2.1",
"source-map": "^0.6.1"
}
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
@@ -26579,9 +24266,9 @@
}
},
"rollup": {
- "version": "2.70.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz",
- "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==",
+ "version": "2.75.7",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz",
+ "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==",
"requires": {
"fsevents": "~2.3.2"
}
@@ -26597,11 +24284,6 @@
"terser": "^5.0.0"
},
"dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
"jest-worker": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
@@ -26619,14 +24301,6 @@
"requires": {
"randombytes": "^2.1.0"
}
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
}
}
},
@@ -26639,14 +24313,10 @@
}
},
"safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "version": "5.1.2"
},
"safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "version": "2.1.2"
},
"sanitize.css": {
"version": "13.0.0",
@@ -26654,9 +24324,7 @@
"integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA=="
},
"sass": {
- "version": "1.49.10",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.10.tgz",
- "integrity": "sha512-w37zfWJwKu4I78U4z63u1mmgoncq+v3iOB4yzQMPyAPVHHawaQSnu9C9ysGQnZEhW609jkcLioJcMCqm75JMdg==",
+ "version": "1.52.3",
"requires": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",
@@ -26686,9 +24354,7 @@
}
},
"scheduler": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
- "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
+ "version": "0.23.0",
"requires": {
"loose-envify": "^1.1.0"
}
@@ -26703,10 +24369,16 @@
"ajv-keywords": "^3.5.2"
}
},
+ "seedrandom": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz",
+ "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==",
+ "peer": true
+ },
"select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo="
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
},
"selfsigned": {
"version": "2.0.1",
@@ -26716,32 +24388,27 @@
"node-forge": "^1"
}
},
- "semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
+ "semver": {
+ "version": "6.3.0"
+ },
"send": {
- "version": "0.17.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz",
- "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"requires": {
"debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "1.8.1",
+ "http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"range-parser": "~1.2.1",
- "statuses": "~1.5.0"
+ "statuses": "2.0.1"
},
"dependencies": {
"debug": {
@@ -26755,7 +24422,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
@@ -26777,7 +24444,7 @@
"serve-index": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
+ "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
"requires": {
"accepts": "~1.3.4",
"batch": "0.6.1",
@@ -26796,10 +24463,15 @@
"ms": "2.0.0"
}
},
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
+ },
"http-errors": {
"version": "1.6.3",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
"requires": {
"depd": "~1.1.2",
"inherits": "2.0.3",
@@ -26810,29 +24482,34 @@
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"setprototypeof": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
}
}
},
"serve-static": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz",
- "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.17.2"
+ "send": "0.18.0"
}
},
"setprototypeof": {
@@ -26899,14 +24576,10 @@
"integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw=="
},
"source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ "version": "0.6.1"
},
"source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ "version": "1.0.2"
},
"source-map-loader": {
"version": "3.0.1",
@@ -26916,22 +24589,10 @@
"abab": "^2.0.5",
"iconv-lite": "^0.6.3",
"source-map-js": "^1.0.1"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- }
}
},
"source-map-resolve": {
"version": "0.6.0",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz",
- "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==",
"requires": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0"
@@ -26944,13 +24605,6 @@
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
}
},
"sourcemap-codec": {
@@ -26984,9 +24638,7 @@
}
},
"sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ "version": "1.0.3"
},
"stable": {
"version": "0.1.8",
@@ -27009,26 +24661,31 @@
}
},
"stackframe": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz",
- "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg=="
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw=="
},
"state-local": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz",
- "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="
+ "version": "1.0.7"
},
"statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "~5.2.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
}
},
"string-length": {
@@ -27047,8 +24704,6 @@
},
"string-width": {
"version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -27056,9 +24711,7 @@
},
"dependencies": {
"emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ "version": "8.0.0"
}
}
},
@@ -27078,21 +24731,23 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"stringify-object": {
@@ -27107,16 +24762,14 @@
},
"strip-ansi": {
"version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
}
},
"strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w=="
},
"strip-comments": {
"version": "2.0.1",
@@ -27130,8 +24783,6 @@
},
"strip-indent": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
"requires": {
"min-indent": "^1.0.0"
}
@@ -27157,11 +24808,9 @@
}
},
"supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "version": "7.2.0",
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
}
},
"supports-hyperlinks": {
@@ -27171,21 +24820,6 @@
"requires": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"supports-preserve-symlinks-flag": {
@@ -27218,14 +24852,83 @@
"util.promisify": "~1.0.0"
},
"dependencies": {
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "css-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "css-what": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ=="
+ },
+ "dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ }
+ },
+ "domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
"requires": {
- "sprintf-js": "~1.0.2"
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+ }
}
},
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
"js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
@@ -27234,6 +24937,22 @@
"argparse": "^1.0.7",
"esprima": "^4.0.0"
}
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -27243,76 +24962,32 @@
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"tailwindcss": {
- "version": "3.0.23",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz",
- "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.3.tgz",
+ "integrity": "sha512-PRJNYdSIthrb8hjmAyymEyEN8Yo61TMXpzyFUpxULeeyRn3Y3gpvuw6FlRTKrJvK7thSGKRnhT36VovVx4WeMA==",
"requires": {
- "arg": "^5.0.1",
- "chalk": "^4.1.2",
+ "arg": "^5.0.2",
"chokidar": "^3.5.3",
"color-name": "^1.1.4",
- "cosmiconfig": "^7.0.1",
- "detective": "^5.2.0",
+ "detective": "^5.2.1",
"didyoumean": "^1.2.2",
"dlv": "^1.1.3",
"fast-glob": "^3.2.11",
"glob-parent": "^6.0.2",
"is-glob": "^4.0.3",
+ "lilconfig": "^2.0.5",
"normalize-path": "^3.0.0",
- "object-hash": "^2.2.0",
- "postcss": "^8.4.6",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.14",
+ "postcss-import": "^14.1.0",
"postcss-js": "^4.0.0",
- "postcss-load-config": "^3.1.0",
+ "postcss-load-config": "^3.1.4",
"postcss-nested": "5.0.6",
- "postcss-selector-parser": "^6.0.9",
+ "postcss-selector-parser": "^6.0.10",
"postcss-value-parser": "^4.2.0",
"quick-lru": "^5.1.1",
"resolve": "^1.22.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
}
},
"tapable": {
@@ -27353,13 +25028,13 @@
}
},
"terser": {
- "version": "5.12.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz",
- "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==",
+ "version": "5.14.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz",
+ "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==",
"requires": {
+ "@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0",
- "source-map": "~0.7.2",
"source-map-support": "~0.5.20"
},
"dependencies": {
@@ -27367,31 +25042,19 @@
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
- },
- "source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
}
}
},
"terser-webpack-plugin": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz",
- "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==",
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz",
+ "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==",
"requires": {
+ "@jridgewell/trace-mapping": "^0.3.7",
"jest-worker": "^27.4.5",
"schema-utils": "^3.1.1",
"serialize-javascript": "^6.0.0",
- "source-map": "^0.6.1",
"terser": "^5.7.2"
- },
- "dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- }
}
},
"test-exclude": {
@@ -27407,7 +25070,7 @@
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ="
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
},
"throat": {
"version": "6.0.1",
@@ -27425,14 +25088,10 @@
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
},
"to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
+ "version": "2.0.0"
},
"to-regex-range": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"requires": {
"is-number": "^7.0.0"
}
@@ -27460,12 +25119,9 @@
}
},
"tr46": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
- "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
- "requires": {
- "punycode": "^2.1.1"
- }
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"tryer": {
"version": "1.0.1",
@@ -27490,13 +25146,18 @@
"requires": {
"minimist": "^1.2.0"
}
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA=="
}
}
},
"tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"tsutils": {
"version": "3.21.0",
@@ -27504,6 +25165,13 @@
"integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
"requires": {
"tslib": "^1.8.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ }
}
},
"type-check": {
@@ -27520,9 +25188,9 @@
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
},
"type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
},
"type-is": {
"version": "1.6.18",
@@ -27541,21 +25209,25 @@
"is-typedarray": "^1.0.0"
}
},
+ "typescript": {
+ "version": "4.7.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
+ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
+ "peer": true
+ },
"unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"requires": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
"which-boxed-primitive": "^1.0.2"
}
},
"uncontrollable": {
"version": "7.2.1",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
- "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
"requires": {
"@babel/runtime": "^7.6.3",
"@types/react": ">=16.9.11",
@@ -27603,12 +25275,12 @@
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
},
"unquote": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
- "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ="
+ "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
},
"upath": {
"version": "1.2.0",
@@ -27625,23 +25297,19 @@
},
"util": {
"version": "0.10.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
- "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
"requires": {
"inherits": "2.0.3"
},
"dependencies": {
"inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "version": "2.0.3"
}
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"util.promisify": {
"version": "1.0.1",
@@ -27657,12 +25325,12 @@
"utila": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
- "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw="
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="
},
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
},
"uuid": {
"version": "8.3.2",
@@ -27685,16 +25353,16 @@
},
"dependencies": {
"source-map": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
- "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="
}
}
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
},
"w3c-hr-time": {
"version": "1.0.2",
@@ -27722,16 +25390,14 @@
},
"warning": {
"version": "4.0.3",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
- "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
"requires": {
"loose-envify": "^1.0.0"
}
},
"watchpack": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz",
- "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
"requires": {
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.1.2"
@@ -27746,9 +25412,7 @@
}
},
"web-vitals": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz",
- "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg=="
+ "version": "2.1.4"
},
"webidl-conversions": {
"version": "6.1.0",
@@ -27756,9 +25420,9 @@
"integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w=="
},
"webpack": {
- "version": "5.70.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz",
- "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==",
+ "version": "5.73.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz",
+ "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==",
"requires": {
"@types/eslint-scope": "^3.7.3",
"@types/estree": "^0.0.51",
@@ -27769,13 +25433,13 @@
"acorn-import-assertions": "^1.7.6",
"browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.9.2",
+ "enhanced-resolve": "^5.9.3",
"es-module-lexer": "^0.9.0",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.2.9",
- "json-parse-better-errors": "^1.0.2",
+ "json-parse-even-better-errors": "^2.3.1",
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
@@ -27803,12 +25467,12 @@
}
},
"webpack-dev-middleware": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz",
- "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==",
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
+ "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
"requires": {
"colorette": "^2.0.10",
- "memfs": "^3.4.1",
+ "memfs": "^3.4.3",
"mime-types": "^2.1.31",
"range-parser": "^1.2.1",
"schema-utils": "^4.0.0"
@@ -27852,38 +25516,37 @@
}
},
"webpack-dev-server": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz",
- "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==",
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz",
+ "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==",
"requires": {
"@types/bonjour": "^3.5.9",
"@types/connect-history-api-fallback": "^1.3.5",
"@types/express": "^4.17.13",
"@types/serve-index": "^1.9.1",
+ "@types/serve-static": "^1.13.10",
"@types/sockjs": "^0.3.33",
- "@types/ws": "^8.2.2",
+ "@types/ws": "^8.5.1",
"ansi-html-community": "^0.0.8",
- "bonjour": "^3.5.0",
+ "bonjour-service": "^1.0.11",
"chokidar": "^3.5.3",
"colorette": "^2.0.10",
"compression": "^1.7.4",
"connect-history-api-fallback": "^1.6.0",
"default-gateway": "^6.0.3",
- "del": "^6.0.0",
- "express": "^4.17.1",
+ "express": "^4.17.3",
"graceful-fs": "^4.2.6",
"html-entities": "^2.3.2",
- "http-proxy-middleware": "^2.0.0",
+ "http-proxy-middleware": "^2.0.3",
"ipaddr.js": "^2.0.1",
"open": "^8.0.9",
"p-retry": "^4.5.0",
- "portfinder": "^1.0.28",
+ "rimraf": "^3.0.2",
"schema-utils": "^4.0.0",
- "selfsigned": "^2.0.0",
+ "selfsigned": "^2.0.1",
"serve-index": "^1.9.1",
- "sockjs": "^0.3.21",
+ "sockjs": "^0.3.24",
"spdy": "^4.0.2",
- "strip-ansi": "^7.0.0",
"webpack-dev-middleware": "^5.3.1",
"ws": "^8.4.2"
},
@@ -27907,11 +25570,6 @@
"fast-deep-equal": "^3.1.3"
}
},
- "ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
- },
"json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
@@ -27928,18 +25586,10 @@
"ajv-keywords": "^5.0.0"
}
},
- "strip-ansi": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
- "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
- "requires": {
- "ansi-regex": "^6.0.1"
- }
- },
"ws": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
- "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz",
+ "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==",
"requires": {}
}
}
@@ -27953,11 +25603,6 @@
"webpack-sources": "^2.2.0"
},
"dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
"webpack-sources": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz",
@@ -27995,6 +25640,16 @@
"integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
"requires": {
"iconv-lite": "0.4.24"
+ },
+ "dependencies": {
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ }
}
},
"whatwg-fetch": {
@@ -28008,13 +25663,19 @@
"integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
},
"whatwg-url": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
- "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"requires": {
- "lodash": "^4.7.0",
- "tr46": "^2.1.0",
- "webidl-conversions": "^6.1.0"
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ },
+ "dependencies": {
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ }
}
},
"which": {
@@ -28043,26 +25704,26 @@
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
},
"workbox-background-sync": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz",
- "integrity": "sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.3.tgz",
+ "integrity": "sha512-0DD/V05FAcek6tWv9XYj2w5T/plxhDSpclIcAGjA/b7t/6PdaRkQ7ZgtAX6Q/L7kV7wZ8uYRJUoH11VjNipMZw==",
"requires": {
"idb": "^6.1.4",
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"workbox-broadcast-update": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz",
- "integrity": "sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.3.tgz",
+ "integrity": "sha512-4AwCIA5DiDrYhlN+Miv/fp5T3/whNmSL+KqhTwRBTZIL6pvTgE4lVuRzAt1JltmqyMcQ3SEfCdfxczuI4kwFQg==",
"requires": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"workbox-build": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.2.tgz",
- "integrity": "sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.3.tgz",
+ "integrity": "sha512-8JNHHS7u13nhwIYCDea9MNXBNPHXCs5KDZPKI/ZNTr3f4sMGoD7hgFGecbyjX1gw4z6e9bMpMsOEJNyH5htA/w==",
"requires": {
"@apideck/better-ajv-errors": "^0.3.1",
"@babel/core": "^7.11.1",
@@ -28086,23 +25747,33 @@
"strip-comments": "^2.0.1",
"tempy": "^0.6.0",
"upath": "^1.2.0",
- "workbox-background-sync": "6.5.2",
- "workbox-broadcast-update": "6.5.2",
- "workbox-cacheable-response": "6.5.2",
- "workbox-core": "6.5.2",
- "workbox-expiration": "6.5.2",
- "workbox-google-analytics": "6.5.2",
- "workbox-navigation-preload": "6.5.2",
- "workbox-precaching": "6.5.2",
- "workbox-range-requests": "6.5.2",
- "workbox-recipes": "6.5.2",
- "workbox-routing": "6.5.2",
- "workbox-strategies": "6.5.2",
- "workbox-streams": "6.5.2",
- "workbox-sw": "6.5.2",
- "workbox-window": "6.5.2"
- },
- "dependencies": {
+ "workbox-background-sync": "6.5.3",
+ "workbox-broadcast-update": "6.5.3",
+ "workbox-cacheable-response": "6.5.3",
+ "workbox-core": "6.5.3",
+ "workbox-expiration": "6.5.3",
+ "workbox-google-analytics": "6.5.3",
+ "workbox-navigation-preload": "6.5.3",
+ "workbox-precaching": "6.5.3",
+ "workbox-range-requests": "6.5.3",
+ "workbox-recipes": "6.5.3",
+ "workbox-routing": "6.5.3",
+ "workbox-strategies": "6.5.3",
+ "workbox-streams": "6.5.3",
+ "workbox-sw": "6.5.3",
+ "workbox-window": "6.5.3"
+ },
+ "dependencies": {
+ "@apideck/better-ajv-errors": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.4.tgz",
+ "integrity": "sha512-Ic2d8ZT6HJiSikGVQvSklaFyw1OUv4g8sDOxa0PXSlbmN/3gL5IO1WYY9DOwTDqOFmjWoqG1yaaKnPDqYCE9KA==",
+ "requires": {
+ "json-schema": "^0.4.0",
+ "jsonpointer": "^5.0.0",
+ "leven": "^3.1.0"
+ }
+ },
"ajv": {
"version": "8.11.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
@@ -28141,7 +25812,7 @@
"tr46": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
- "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
"requires": {
"punycode": "^2.1.0"
}
@@ -28164,124 +25835,119 @@
}
},
"workbox-cacheable-response": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz",
- "integrity": "sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz",
+ "integrity": "sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==",
"requires": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"workbox-core": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.2.tgz",
- "integrity": "sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ=="
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.3.tgz",
+ "integrity": "sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q=="
},
"workbox-expiration": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.2.tgz",
- "integrity": "sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.3.tgz",
+ "integrity": "sha512-jzYopYR1zD04ZMdlbn/R2Ik6ixiXbi15c9iX5H8CTi6RPDz7uhvMLZPKEndZTpfgmUk8mdmT9Vx/AhbuCl5Sqw==",
"requires": {
"idb": "^6.1.4",
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"workbox-google-analytics": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz",
- "integrity": "sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.3.tgz",
+ "integrity": "sha512-3GLCHotz5umoRSb4aNQeTbILETcrTVEozSfLhHSBaegHs1PnqCmN0zbIy2TjTpph2AGXiNwDrWGF0AN+UgDNTw==",
"requires": {
- "workbox-background-sync": "6.5.2",
- "workbox-core": "6.5.2",
- "workbox-routing": "6.5.2",
- "workbox-strategies": "6.5.2"
+ "workbox-background-sync": "6.5.3",
+ "workbox-core": "6.5.3",
+ "workbox-routing": "6.5.3",
+ "workbox-strategies": "6.5.3"
}
},
"workbox-navigation-preload": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz",
- "integrity": "sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.3.tgz",
+ "integrity": "sha512-bK1gDFTc5iu6lH3UQ07QVo+0ovErhRNGvJJO/1ngknT0UQ702nmOUhoN9qE5mhuQSrnK+cqu7O7xeaJ+Rd9Tmg==",
"requires": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"workbox-precaching": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.2.tgz",
- "integrity": "sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.3.tgz",
+ "integrity": "sha512-sjNfgNLSsRX5zcc63H/ar/hCf+T19fRtTqvWh795gdpghWb5xsfEkecXEvZ8biEi1QD7X/ljtHphdaPvXDygMQ==",
"requires": {
- "workbox-core": "6.5.2",
- "workbox-routing": "6.5.2",
- "workbox-strategies": "6.5.2"
+ "workbox-core": "6.5.3",
+ "workbox-routing": "6.5.3",
+ "workbox-strategies": "6.5.3"
}
},
"workbox-range-requests": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz",
- "integrity": "sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.3.tgz",
+ "integrity": "sha512-pGCP80Bpn/0Q0MQsfETSfmtXsQcu3M2QCJwSFuJ6cDp8s2XmbUXkzbuQhCUzKR86ZH2Vex/VUjb2UaZBGamijA==",
"requires": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"workbox-recipes": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.2.tgz",
- "integrity": "sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.3.tgz",
+ "integrity": "sha512-IcgiKYmbGiDvvf3PMSEtmwqxwfQ5zwI7OZPio3GWu4PfehA8jI8JHI3KZj+PCfRiUPZhjQHJ3v1HbNs+SiSkig==",
"requires": {
- "workbox-cacheable-response": "6.5.2",
- "workbox-core": "6.5.2",
- "workbox-expiration": "6.5.2",
- "workbox-precaching": "6.5.2",
- "workbox-routing": "6.5.2",
- "workbox-strategies": "6.5.2"
+ "workbox-cacheable-response": "6.5.3",
+ "workbox-core": "6.5.3",
+ "workbox-expiration": "6.5.3",
+ "workbox-precaching": "6.5.3",
+ "workbox-routing": "6.5.3",
+ "workbox-strategies": "6.5.3"
}
},
"workbox-routing": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.2.tgz",
- "integrity": "sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.3.tgz",
+ "integrity": "sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==",
"requires": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"workbox-strategies": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.2.tgz",
- "integrity": "sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.3.tgz",
+ "integrity": "sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==",
"requires": {
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"workbox-streams": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.2.tgz",
- "integrity": "sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.3.tgz",
+ "integrity": "sha512-vN4Qi8o+b7zj1FDVNZ+PlmAcy1sBoV7SC956uhqYvZ9Sg1fViSbOpydULOssVJ4tOyKRifH/eoi6h99d+sJ33w==",
"requires": {
- "workbox-core": "6.5.2",
- "workbox-routing": "6.5.2"
+ "workbox-core": "6.5.3",
+ "workbox-routing": "6.5.3"
}
},
"workbox-sw": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.2.tgz",
- "integrity": "sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw=="
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.3.tgz",
+ "integrity": "sha512-BQBzm092w+NqdIEF2yhl32dERt9j9MDGUTa2Eaa+o3YKL4Qqw55W9yQC6f44FdAHdAJrJvp0t+HVrfh8AiGj8A=="
},
"workbox-webpack-plugin": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.2.tgz",
- "integrity": "sha512-StrJ7wKp5tZuGVcoKLVjFWlhDy+KT7ZWsKnNcD6F08wA9Cpt6JN+PLIrplcsTHbQpoAV8+xg6RvcG0oc9z+RpQ==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.3.tgz",
+ "integrity": "sha512-Es8Xr02Gi6Kc3zaUwR691ZLy61hz3vhhs5GztcklQ7kl5k2qAusPh0s6LF3wEtlpfs9ZDErnmy5SErwoll7jBA==",
"requires": {
"fast-json-stable-stringify": "^2.1.0",
"pretty-bytes": "^5.4.1",
"upath": "^1.2.0",
"webpack-sources": "^1.4.3",
- "workbox-build": "6.5.2"
+ "workbox-build": "6.5.3"
},
"dependencies": {
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
"webpack-sources": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
@@ -28294,51 +25960,26 @@
}
},
"workbox-window": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.2.tgz",
- "integrity": "sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.3.tgz",
+ "integrity": "sha512-GnJbx1kcKXDtoJBVZs/P7ddP0Yt52NNy4nocjBpYPiRhMqTpJCNrSL+fGHZ/i/oP6p/vhE8II0sA6AZGKGnssw==",
"requires": {
"@types/trusted-types": "^2.0.2",
- "workbox-core": "6.5.2"
+ "workbox-core": "6.5.3"
}
},
"wrap-ansi": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- }
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"write-file-atomic": {
"version": "3.0.3",
@@ -28352,9 +25993,9 @@
}
},
"ws": {
- "version": "7.5.7",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz",
- "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==",
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz",
+ "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==",
"requires": {}
},
"xml-name-validator": {
@@ -28373,9 +26014,7 @@
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ "version": "5.0.8"
},
"yallist": {
"version": "4.0.0",
@@ -28389,8 +26028,6 @@
},
"yargs": {
"version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"requires": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -28402,9 +26039,7 @@
}
},
"yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+ "version": "20.2.9"
},
"yocto-queue": {
"version": "0.1.0",
diff --git a/js/jiddly-app/package.json b/js/griddlyjs-app/package.json
similarity index 85%
rename from js/jiddly-app/package.json
rename to js/griddlyjs-app/package.json
index 7104ea641..36f5d732f 100644
--- a/js/jiddly-app/package.json
+++ b/js/griddlyjs-app/package.json
@@ -1,14 +1,16 @@
{
- "name": "jiddly-app",
- "version": "1.3.9",
+ "name": "griddlyjs-app",
+ "version": "1.4.0",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.1.1",
+ "@fortawesome/free-brands-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-fontawesome": "^0.1.18",
"@monaco-editor/react": "^4.4.2",
+ "@tensorflow/tfjs": "^3.18.0",
"@testing-library/jest-dom": "^5.16.3",
- "@testing-library/react": "^12.1.4",
+ "@testing-library/react": "^13.0.1",
"@testing-library/user-event": "^13.5.0",
"bootstrap": "^5.1.3",
"bootswatch": "^5.1.3",
diff --git a/js/jiddly-app/public/.gitignore b/js/griddlyjs-app/public/.gitignore
similarity index 100%
rename from js/jiddly-app/public/.gitignore
rename to js/griddlyjs-app/public/.gitignore
diff --git a/js/griddlyjs-app/public/config/blank_gdy.yaml b/js/griddlyjs-app/public/config/blank_gdy.yaml
new file mode 100644
index 000000000..7d0156049
--- /dev/null
+++ b/js/griddlyjs-app/public/config/blank_gdy.yaml
@@ -0,0 +1,57 @@
+Version: "0.1"
+Environment:
+ Name: Blank
+ Description: >-
+ A template GDY environment where a block can move around and collect green
+ stuff
+ Player:
+ AvatarObject: avatar
+ Termination:
+ Win:
+ - eq:
+ - goal:count
+ - 0
+ Levels:
+ - |
+ . . . . G
+ . . . . .
+ . . . . .
+ . . . . .
+ A . . . .
+Actions:
+ - Name: move
+ Behaviours:
+ - Src:
+ Object: avatar
+ Commands:
+ - mov: _dest
+ Dst:
+ Object: _empty
+ - Src:
+ Object: avatar
+ Commands:
+ - mov: _dest
+ - reward: 1
+ Dst:
+ Object: goal
+ Commands:
+ - remove: true
+Objects:
+ - Name: avatar
+ MapCharacter: A
+ Observers:
+ Block2D:
+ - Shape: circle
+ Color:
+ - 0
+ - 0
+ - 1
+ - Name: goal
+ MapCharacter: G
+ Observers:
+ Block2D:
+ - Shape: circle
+ Color:
+ - 0
+ - 1
+ - 0
\ No newline at end of file
diff --git a/js/griddlyjs-app/public/config/config.json b/js/griddlyjs-app/public/config/config.json
new file mode 100644
index 000000000..0febb501c
--- /dev/null
+++ b/js/griddlyjs-app/public/config/config.json
@@ -0,0 +1,30 @@
+{
+ "defaultProject": {
+ "gdy": "resources/games/Single-Player/Grafter/escape-rooms.yaml",
+ "name": "Grafter Escape Rooms"
+ },
+ "blankTemplate": {
+ "gdy": "config/blank_gdy.yaml"
+ },
+ "templates": {
+ "Grafter Escape Rooms": {
+ "gdy": "resources/games/Single-Player/Grafter/escape-rooms.yaml"
+ },
+ "Sokoban": {
+ "gdy": "resources/games/Single-Player/GVGAI/sokoban.yaml"
+ },
+ "Labyrinth": {
+ "gdy": "resources/games/Single-Player/GVGAI/labyrinth.yaml"
+ },
+ "Doggo": {
+ "gdy": "resources/games/Single-Player/Mini-Grid/minigrid-doggo.yaml"
+ },
+ "Zen Puzzle": {
+ "gdy": "resources/games/Single-Player/GVGAI/zenpuzzle.yaml"
+ },
+ "Spiders": {
+ "gdy": "resources/games/Single-Player/Mini-Grid/minigrid-spiders.yaml"
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/js/griddlyjs-app/public/favicon.ico b/js/griddlyjs-app/public/favicon.ico
new file mode 100644
index 000000000..6db23a410
Binary files /dev/null and b/js/griddlyjs-app/public/favicon.ico differ
diff --git a/js/griddlyjs-app/public/griddlybear192x192.png b/js/griddlyjs-app/public/griddlybear192x192.png
new file mode 100644
index 000000000..91ed820f0
Binary files /dev/null and b/js/griddlyjs-app/public/griddlybear192x192.png differ
diff --git a/js/griddlyjs-app/public/griddlybear512x512.png b/js/griddlyjs-app/public/griddlybear512x512.png
new file mode 100644
index 000000000..600f9875c
Binary files /dev/null and b/js/griddlyjs-app/public/griddlybear512x512.png differ
diff --git a/js/jiddly-app/public/index.html b/js/griddlyjs-app/public/index.html
similarity index 51%
rename from js/jiddly-app/public/index.html
rename to js/griddlyjs-app/public/index.html
index aa069f27c..ecc17318e 100644
--- a/js/jiddly-app/public/index.html
+++ b/js/griddlyjs-app/public/index.html
@@ -1,15 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
- React App
+
+
+
+ GriddlyJS
You need to enable JavaScript to run this app.
diff --git a/js/griddlyjs-app/public/intro/debuggingmechanics.gif b/js/griddlyjs-app/public/intro/debuggingmechanics.gif
new file mode 100644
index 000000000..357b0641f
Binary files /dev/null and b/js/griddlyjs-app/public/intro/debuggingmechanics.gif differ
diff --git a/js/griddlyjs-app/public/intro/debugpolicies.gif b/js/griddlyjs-app/public/intro/debugpolicies.gif
new file mode 100644
index 000000000..591d13f1c
Binary files /dev/null and b/js/griddlyjs-app/public/intro/debugpolicies.gif differ
diff --git a/js/griddlyjs-app/public/intro/intro.gif b/js/griddlyjs-app/public/intro/intro.gif
new file mode 100644
index 000000000..68f589c9f
Binary files /dev/null and b/js/griddlyjs-app/public/intro/intro.gif differ
diff --git a/js/griddlyjs-app/public/intro/leveleditor.gif b/js/griddlyjs-app/public/intro/leveleditor.gif
new file mode 100644
index 000000000..06bd0ec8f
Binary files /dev/null and b/js/griddlyjs-app/public/intro/leveleditor.gif differ
diff --git a/js/griddlyjs-app/public/intro/newproject.gif b/js/griddlyjs-app/public/intro/newproject.gif
new file mode 100644
index 000000000..7b2be3720
Binary files /dev/null and b/js/griddlyjs-app/public/intro/newproject.gif differ
diff --git a/js/griddlyjs-app/public/intro/recordingtrajectories.gif b/js/griddlyjs-app/public/intro/recordingtrajectories.gif
new file mode 100644
index 000000000..c0a083fdc
Binary files /dev/null and b/js/griddlyjs-app/public/intro/recordingtrajectories.gif differ
diff --git a/js/griddlyjs-app/public/js/griddlyjs.wasm b/js/griddlyjs-app/public/js/griddlyjs.wasm
new file mode 100755
index 000000000..054f3c905
Binary files /dev/null and b/js/griddlyjs-app/public/js/griddlyjs.wasm differ
diff --git a/js/griddlyjs-app/public/logo.png b/js/griddlyjs-app/public/logo.png
new file mode 100644
index 000000000..3a6008166
Binary files /dev/null and b/js/griddlyjs-app/public/logo.png differ
diff --git a/js/griddlyjs-app/public/logo1200x630.png b/js/griddlyjs-app/public/logo1200x630.png
new file mode 100644
index 000000000..e80720e3e
Binary files /dev/null and b/js/griddlyjs-app/public/logo1200x630.png differ
diff --git a/js/griddlyjs-app/public/logo800x418.png b/js/griddlyjs-app/public/logo800x418.png
new file mode 100644
index 000000000..ad985d718
Binary files /dev/null and b/js/griddlyjs-app/public/logo800x418.png differ
diff --git a/js/jiddly-app/public/manifest.json b/js/griddlyjs-app/public/manifest.json
similarity index 68%
rename from js/jiddly-app/public/manifest.json
rename to js/griddlyjs-app/public/manifest.json
index 080d6c77a..febb9434e 100644
--- a/js/jiddly-app/public/manifest.json
+++ b/js/griddlyjs-app/public/manifest.json
@@ -1,6 +1,6 @@
{
- "short_name": "React App",
- "name": "Create React App Sample",
+ "short_name": "GriddlyJS",
+ "name": "Griddly JS - A Web-IDE for Reinforcement Learning",
"icons": [
{
"src": "favicon.ico",
@@ -8,12 +8,12 @@
"type": "image/x-icon"
},
{
- "src": "logo192.png",
+ "src": "griddlybear192x192.png",
"type": "image/png",
"sizes": "192x192"
},
{
- "src": "logo512.png",
+ "src": "griddlybear512x512.png",
"type": "image/png",
"sizes": "512x512"
}
diff --git a/js/griddlyjs-app/public/model/Grafter Escape Rooms/group1-shard1of1.bin b/js/griddlyjs-app/public/model/Grafter Escape Rooms/group1-shard1of1.bin
new file mode 100644
index 000000000..f5aa23ba0
Binary files /dev/null and b/js/griddlyjs-app/public/model/Grafter Escape Rooms/group1-shard1of1.bin differ
diff --git a/js/griddlyjs-app/public/model/Grafter Escape Rooms/model.json b/js/griddlyjs-app/public/model/Grafter Escape Rooms/model.json
new file mode 100644
index 000000000..5d9eb581d
--- /dev/null
+++ b/js/griddlyjs-app/public/model/Grafter Escape Rooms/model.json
@@ -0,0 +1 @@
+{"format": "graph-model", "generatedBy": "2.9.1", "convertedBy": "TensorFlow.js Converter v3.18.0", "signature": {"inputs": {"input_0": {"name": "input_0:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "51"}, {"size": "9"}, {"size": "7"}]}}}, "outputs": {"output_0": {"name": "Identity:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "1"}, {"size": "12"}]}}}}, "modelTopology": {"node": [{"name": "PartitionedCall/Const_13", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_46/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_13", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_26", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_47/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_14", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_49/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_14", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_28", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_50/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_11", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_40/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_11", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_22", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_41/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_12", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_43/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split_12", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_24", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_44/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_8", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_29/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_8", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_16", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_30/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_9", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_32/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_9", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_18", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_33/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_6", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_23/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split_6", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}}}, {"name": "unknown_12", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_24/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_7", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_26/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_7", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_14", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_27/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_3", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_12/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_3", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "16"}]}}}}}, {"name": "unknown_6", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}}}, {"name": "PartitionedCall/transpose_13/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_4", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_15/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split_4", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "16"}]}}}}}, {"name": "unknown_8", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_16/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_1", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_6/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "16"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_2", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}}}, {"name": "PartitionedCall/transpose_7/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_2", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_9/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split_2", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "16"}]}}}}}, {"name": "unknown_4", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}}}, {"name": "PartitionedCall/transpose_10/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/onnx_tf_prefix_Transpose_0/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "ConstantFolding/PartitionedCall/onnx_tf_prefix_Div_2_recip", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Const", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/transpose_1/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/split", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "51"}, {"size": "16"}]}}}}}, {"name": "unknown_0", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "16"}]}}}}}, {"name": "PartitionedCall/transpose_2/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2/paddings", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2/constant_values", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_3/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/transpose_4/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Const_5", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_18/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_5", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "16"}, {"size": "32"}]}}}}}, {"name": "unknown_10", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_19/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/PadV2_1/paddings", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}}}, {"name": "PartitionedCall/PadV2_1/constant_values", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_20/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_21/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/Const_10", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_35/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/split_10", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "3"}, {"size": "3"}, {"size": "32"}, {"size": "32"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "unknown_20", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}]}}}}}, {"name": "PartitionedCall/transpose_36/perm", "op": "Const", "attr": {"dtype": {"type": "DT_INT32"}, "value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "PartitionedCall/PadV2_2/paddings", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}, {"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2_2/constant_values", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_37/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_38/perm", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "4"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/Reshape/shape", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_INT32", "tensorShape": {"dim": [{"size": "2"}]}}}, "dtype": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_51", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "64"}, {"size": "256"}]}}}}}, {"name": "PartitionedCall/mul_1", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_52", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "256"}, {"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/mul_3", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "12"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "input_0", "op": "Placeholder", "attr": {"shape": {"shape": {"dim": [{"size": "1"}, {"size": "51"}, {"size": "9"}, {"size": "7"}]}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Transpose_0", "op": "Transpose", "input": ["input_0", "PartitionedCall/onnx_tf_prefix_Transpose_0/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Div_2", "op": "Mul", "input": ["PartitionedCall/onnx_tf_prefix_Transpose_0", "ConstantFolding/PartitionedCall/onnx_tf_prefix_Div_2_recip"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Div_2", "PartitionedCall/Const"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_1", "op": "Transpose", "input": ["PartitionedCall/Pad", "PartitionedCall/transpose_1/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution", "op": "Conv2D", "input": ["PartitionedCall/transpose_1", "PartitionedCall/split"], "device": "/device:CPU:0", "attr": {"use_cudnn_on_gpu": {"b": true}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}}}, {"name": "PartitionedCall/Add", "op": "AddV2", "input": ["PartitionedCall/convolution", "unknown_0"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_2", "op": "Transpose", "input": ["PartitionedCall/Add", "PartitionedCall/transpose_2/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2", "op": "PadV2", "input": ["PartitionedCall/transpose_2", "PartitionedCall/PadV2/paddings", "PartitionedCall/PadV2/constant_values"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_3", "op": "Transpose", "input": ["PartitionedCall/PadV2", "PartitionedCall/transpose_3/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/MaxPool2d", "op": "MaxPool", "input": ["PartitionedCall/transpose_3"], "attr": {"strides": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "T": {"type": "DT_FLOAT"}, "ksize": {"list": {"i": ["1", "3", "3", "1"]}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "PartitionedCall/transpose_4", "op": "Transpose", "input": ["PartitionedCall/MaxPool2d", "PartitionedCall/transpose_4/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_5", "op": "Relu", "input": ["PartitionedCall/transpose_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_1", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_5", "PartitionedCall/Const_1"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_6", "op": "Transpose", "input": ["PartitionedCall/Pad_1", "PartitionedCall/transpose_6/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_1", "op": "Conv2D", "input": ["PartitionedCall/transpose_6", "PartitionedCall/split_1"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "use_cudnn_on_gpu": {"b": true}, "data_format": {"s": "TkhXQw=="}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_1", "op": "AddV2", "input": ["PartitionedCall/convolution_1", "unknown_2"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_7", "op": "Transpose", "input": ["PartitionedCall/Add_1", "PartitionedCall/transpose_7/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_7", "op": "Relu", "input": ["PartitionedCall/transpose_7"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_2", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_7", "PartitionedCall/Const_2"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_9", "op": "Transpose", "input": ["PartitionedCall/Pad_2", "PartitionedCall/transpose_9/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_2", "op": "Conv2D", "input": ["PartitionedCall/transpose_9", "PartitionedCall/split_2"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "padding": {"s": "VkFMSUQ="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}}}, {"name": "PartitionedCall/Add_2", "op": "AddV2", "input": ["PartitionedCall/convolution_2", "unknown_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_10", "op": "Transpose", "input": ["PartitionedCall/Add_2", "PartitionedCall/transpose_10/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_9", "op": "AddV2", "input": ["PartitionedCall/transpose_10", "PartitionedCall/transpose_4"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_10", "op": "Relu", "input": ["PartitionedCall/onnx_tf_prefix_Add_9"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_3", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_10", "PartitionedCall/Const_3"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_12", "op": "Transpose", "input": ["PartitionedCall/Pad_3", "PartitionedCall/transpose_12/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_3", "op": "Conv2D", "input": ["PartitionedCall/transpose_12", "PartitionedCall/split_3"], "device": "/device:CPU:0", "attr": {"explicit_paddings": {"list": {}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_3", "op": "AddV2", "input": ["PartitionedCall/convolution_3", "unknown_6"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_13", "op": "Transpose", "input": ["PartitionedCall/Add_3", "PartitionedCall/transpose_13/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_12", "op": "Relu", "input": ["PartitionedCall/transpose_13"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_4", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_12", "PartitionedCall/Const_4"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_15", "op": "Transpose", "input": ["PartitionedCall/Pad_4", "PartitionedCall/transpose_15/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution_4", "op": "Conv2D", "input": ["PartitionedCall/transpose_15", "PartitionedCall/split_4"], "device": "/device:CPU:0", "attr": {"data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "T": {"type": "DT_FLOAT"}, "padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_4", "op": "AddV2", "input": ["PartitionedCall/convolution_4", "unknown_8"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_16", "op": "Transpose", "input": ["PartitionedCall/Add_4", "PartitionedCall/transpose_16/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_14", "op": "AddV2", "input": ["PartitionedCall/transpose_16", "PartitionedCall/onnx_tf_prefix_Add_9"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_5", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Add_14", "PartitionedCall/Const_5"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_18", "op": "Transpose", "input": ["PartitionedCall/Pad_5", "PartitionedCall/transpose_18/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_5", "op": "Conv2D", "input": ["PartitionedCall/transpose_18", "PartitionedCall/split_5"], "device": "/device:CPU:0", "attr": {"dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_5", "op": "AddV2", "input": ["PartitionedCall/convolution_5", "unknown_10"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_19", "op": "Transpose", "input": ["PartitionedCall/Add_5", "PartitionedCall/transpose_19/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/PadV2_1", "op": "PadV2", "input": ["PartitionedCall/transpose_19", "PartitionedCall/PadV2_1/paddings", "PartitionedCall/PadV2_1/constant_values"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_20", "op": "Transpose", "input": ["PartitionedCall/PadV2_1", "PartitionedCall/transpose_20/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/MaxPool2d_1", "op": "MaxPool", "input": ["PartitionedCall/transpose_20"], "attr": {"ksize": {"list": {"i": ["1", "3", "3", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_21", "op": "Transpose", "input": ["PartitionedCall/MaxPool2d_1", "PartitionedCall/transpose_21/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_17", "op": "Relu", "input": ["PartitionedCall/transpose_21"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_6", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_17", "PartitionedCall/Const_6"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_23", "op": "Transpose", "input": ["PartitionedCall/Pad_6", "PartitionedCall/transpose_23/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_6", "op": "Conv2D", "input": ["PartitionedCall/transpose_23", "PartitionedCall/split_6"], "device": "/device:CPU:0", "attr": {"strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "padding": {"s": "VkFMSUQ="}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}}}, {"name": "PartitionedCall/Add_6", "op": "AddV2", "input": ["PartitionedCall/convolution_6", "unknown_12"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_24", "op": "Transpose", "input": ["PartitionedCall/Add_6", "PartitionedCall/transpose_24/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_19", "op": "Relu", "input": ["PartitionedCall/transpose_24"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_7", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_19", "PartitionedCall/Const_7"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_26", "op": "Transpose", "input": ["PartitionedCall/Pad_7", "PartitionedCall/transpose_26/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_7", "op": "Conv2D", "input": ["PartitionedCall/transpose_26", "PartitionedCall/split_7"], "device": "/device:CPU:0", "attr": {"padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "explicit_paddings": {"list": {}}}}, {"name": "PartitionedCall/Add_7", "op": "AddV2", "input": ["PartitionedCall/convolution_7", "unknown_14"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_27", "op": "Transpose", "input": ["PartitionedCall/Add_7", "PartitionedCall/transpose_27/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_21", "op": "AddV2", "input": ["PartitionedCall/transpose_27", "PartitionedCall/transpose_21"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_22", "op": "Relu", "input": ["PartitionedCall/onnx_tf_prefix_Add_21"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_8", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_22", "PartitionedCall/Const_8"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_29", "op": "Transpose", "input": ["PartitionedCall/Pad_8", "PartitionedCall/transpose_29/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_8", "op": "Conv2D", "input": ["PartitionedCall/transpose_29", "PartitionedCall/split_8"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "padding": {"s": "VkFMSUQ="}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}}}, {"name": "PartitionedCall/Add_8", "op": "AddV2", "input": ["PartitionedCall/convolution_8", "unknown_16"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_30", "op": "Transpose", "input": ["PartitionedCall/Add_8", "PartitionedCall/transpose_30/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_24", "op": "Relu", "input": ["PartitionedCall/transpose_30"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_9", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_24", "PartitionedCall/Const_9"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_32", "op": "Transpose", "input": ["PartitionedCall/Pad_9", "PartitionedCall/transpose_32/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution_9", "op": "Conv2D", "input": ["PartitionedCall/transpose_32", "PartitionedCall/split_9"], "device": "/device:CPU:0", "attr": {"padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "explicit_paddings": {"list": {}}, "use_cudnn_on_gpu": {"b": true}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Add_9", "op": "AddV2", "input": ["PartitionedCall/convolution_9", "unknown_18"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_33", "op": "Transpose", "input": ["PartitionedCall/Add_9", "PartitionedCall/transpose_33/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_26", "op": "AddV2", "input": ["PartitionedCall/transpose_33", "PartitionedCall/onnx_tf_prefix_Add_21"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_10", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Add_26", "PartitionedCall/Const_10"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_35", "op": "Transpose", "input": ["PartitionedCall/Pad_10", "PartitionedCall/transpose_35/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_10", "op": "Conv2D", "input": ["PartitionedCall/transpose_35", "PartitionedCall/split_10"], "device": "/device:CPU:0", "attr": {"padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Add_10", "op": "AddV2", "input": ["PartitionedCall/convolution_10", "unknown_20"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_36", "op": "Transpose", "input": ["PartitionedCall/Add_10", "PartitionedCall/transpose_36/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/PadV2_2", "op": "PadV2", "input": ["PartitionedCall/transpose_36", "PartitionedCall/PadV2_2/paddings", "PartitionedCall/PadV2_2/constant_values"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_37", "op": "Transpose", "input": ["PartitionedCall/PadV2_2", "PartitionedCall/transpose_37/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/MaxPool2d_2", "op": "MaxPool", "input": ["PartitionedCall/transpose_37"], "attr": {"explicit_paddings": {"list": {}}, "T": {"type": "DT_FLOAT"}, "data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "2", "2", "1"]}}, "padding": {"s": "VkFMSUQ="}, "ksize": {"list": {"i": ["1", "3", "3", "1"]}}}}, {"name": "PartitionedCall/transpose_38", "op": "Transpose", "input": ["PartitionedCall/MaxPool2d_2", "PartitionedCall/transpose_38/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_29", "op": "Relu", "input": ["PartitionedCall/transpose_38"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_11", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_29", "PartitionedCall/Const_11"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_40", "op": "Transpose", "input": ["PartitionedCall/Pad_11", "PartitionedCall/transpose_40/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_11", "op": "Conv2D", "input": ["PartitionedCall/transpose_40", "PartitionedCall/split_11"], "device": "/device:CPU:0", "attr": {"data_format": {"s": "TkhXQw=="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "use_cudnn_on_gpu": {"b": true}, "T": {"type": "DT_FLOAT"}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "padding": {"s": "VkFMSUQ="}, "explicit_paddings": {"list": {}}}}, {"name": "PartitionedCall/Add_11", "op": "AddV2", "input": ["PartitionedCall/convolution_11", "unknown_22"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_41", "op": "Transpose", "input": ["PartitionedCall/Add_11", "PartitionedCall/transpose_41/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_31", "op": "Relu", "input": ["PartitionedCall/transpose_41"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_12", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_31", "PartitionedCall/Const_12"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_43", "op": "Transpose", "input": ["PartitionedCall/Pad_12", "PartitionedCall/transpose_43/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution_12", "op": "Conv2D", "input": ["PartitionedCall/transpose_43", "PartitionedCall/split_12"], "device": "/device:CPU:0", "attr": {"padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "explicit_paddings": {"list": {}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}}}, {"name": "PartitionedCall/Add_12", "op": "AddV2", "input": ["PartitionedCall/convolution_12", "unknown_24"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_44", "op": "Transpose", "input": ["PartitionedCall/Add_12", "PartitionedCall/transpose_44/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_33", "op": "AddV2", "input": ["PartitionedCall/transpose_44", "PartitionedCall/transpose_38"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_34", "op": "Relu", "input": ["PartitionedCall/onnx_tf_prefix_Add_33"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_13", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_34", "PartitionedCall/Const_13"], "attr": {"Tpaddings": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_46", "op": "Transpose", "input": ["PartitionedCall/Pad_13", "PartitionedCall/transpose_46/perm"], "attr": {"Tperm": {"type": "DT_INT32"}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/convolution_13", "op": "Conv2D", "input": ["PartitionedCall/transpose_46", "PartitionedCall/split_13"], "device": "/device:CPU:0", "attr": {"use_cudnn_on_gpu": {"b": true}, "padding": {"s": "VkFMSUQ="}, "data_format": {"s": "TkhXQw=="}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "T": {"type": "DT_FLOAT"}, "explicit_paddings": {"list": {}}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}}}, {"name": "PartitionedCall/Add_13", "op": "AddV2", "input": ["PartitionedCall/convolution_13", "unknown_26"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_47", "op": "Transpose", "input": ["PartitionedCall/Add_13", "PartitionedCall/transpose_47/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_36", "op": "Relu", "input": ["PartitionedCall/transpose_47"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Pad_14", "op": "Pad", "input": ["PartitionedCall/onnx_tf_prefix_Relu_36", "PartitionedCall/Const_14"], "attr": {"T": {"type": "DT_FLOAT"}, "Tpaddings": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/transpose_49", "op": "Transpose", "input": ["PartitionedCall/Pad_14", "PartitionedCall/transpose_49/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/convolution_14", "op": "Conv2D", "input": ["PartitionedCall/transpose_49", "PartitionedCall/split_14"], "device": "/device:CPU:0", "attr": {"explicit_paddings": {"list": {}}, "padding": {"s": "VkFMSUQ="}, "strides": {"list": {"i": ["1", "1", "1", "1"]}}, "dilations": {"list": {"i": ["1", "1", "1", "1"]}}, "data_format": {"s": "TkhXQw=="}, "use_cudnn_on_gpu": {"b": true}, "T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Add_14", "op": "AddV2", "input": ["PartitionedCall/convolution_14", "unknown_28"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/transpose_50", "op": "Transpose", "input": ["PartitionedCall/Add_14", "PartitionedCall/transpose_50/perm"], "attr": {"T": {"type": "DT_FLOAT"}, "Tperm": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Add_38", "op": "AddV2", "input": ["PartitionedCall/transpose_50", "PartitionedCall/onnx_tf_prefix_Add_33"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/Reshape", "op": "Reshape", "input": ["PartitionedCall/onnx_tf_prefix_Add_38", "PartitionedCall/Reshape/shape"], "attr": {"T": {"type": "DT_FLOAT"}, "Tshape": {"type": "DT_INT32"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_40", "op": "Relu", "input": ["PartitionedCall/Reshape"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/MatMul", "op": "MatMul", "input": ["PartitionedCall/onnx_tf_prefix_Relu_40", "PartitionedCall/transpose_51"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "transpose_b": {"b": false}, "transpose_a": {"b": false}}}, {"name": "PartitionedCall/add_15", "op": "AddV2", "input": ["PartitionedCall/MatMul", "PartitionedCall/mul_1"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/onnx_tf_prefix_Relu_42", "op": "Relu", "input": ["PartitionedCall/add_15"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "PartitionedCall/MatMul_1", "op": "MatMul", "input": ["PartitionedCall/onnx_tf_prefix_Relu_42", "PartitionedCall/transpose_52"], "device": "/device:CPU:0", "attr": {"transpose_b": {"b": false}, "T": {"type": "DT_FLOAT"}, "transpose_a": {"b": false}}}, {"name": "PartitionedCall/add_16", "op": "AddV2", "input": ["PartitionedCall/MatMul_1", "PartitionedCall/mul_3"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Identity", "op": "Identity", "input": ["PartitionedCall/add_16"], "attr": {"T": {"type": "DT_FLOAT"}}}], "library": {}, "versions": {"producer": 1087}}, "weightsManifest": [{"paths": ["group1-shard1of1.bin"], "weights": [{"name": "PartitionedCall/Const_13", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_46/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_13", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_26", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_47/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_14", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_49/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_14", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_28", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_50/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_11", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_40/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_11", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_22", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_41/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_12", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_43/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_12", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_24", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_44/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_8", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_29/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_8", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_16", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_30/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_9", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_32/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_9", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_18", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_33/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_6", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_23/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_6", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_12", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_24/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_7", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_26/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_7", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_14", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_27/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_3", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_12/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_3", "shape": [3, 3, 16, 16], "dtype": "float32"}, {"name": "unknown_6", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_13/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_4", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_15/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_4", "shape": [3, 3, 16, 16], "dtype": "float32"}, {"name": "unknown_8", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_16/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_1", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_6/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_1", "shape": [3, 3, 16, 16], "dtype": "float32"}, {"name": "unknown_2", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_7/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_2", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_9/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_2", "shape": [3, 3, 16, 16], "dtype": "float32"}, {"name": "unknown_4", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_10/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/onnx_tf_prefix_Transpose_0/perm", "shape": [4], "dtype": "int32"}, {"name": "ConstantFolding/PartitionedCall/onnx_tf_prefix_Div_2_recip", "shape": [], "dtype": "float32"}, {"name": "PartitionedCall/Const", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_1/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split", "shape": [3, 3, 51, 16], "dtype": "float32"}, {"name": "unknown_0", "shape": [16], "dtype": "float32"}, {"name": "PartitionedCall/transpose_2/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/PadV2/paddings", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/PadV2/constant_values", "shape": [], "dtype": "float32"}, {"name": "PartitionedCall/transpose_3/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/transpose_4/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_5", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_18/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_5", "shape": [3, 3, 16, 32], "dtype": "float32"}, {"name": "unknown_10", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_19/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/PadV2_1/paddings", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/PadV2_1/constant_values", "shape": [], "dtype": "float32"}, {"name": "PartitionedCall/transpose_20/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/transpose_21/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Const_10", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_35/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/split_10", "shape": [3, 3, 32, 32], "dtype": "float32"}, {"name": "unknown_20", "shape": [32], "dtype": "float32"}, {"name": "PartitionedCall/transpose_36/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/PadV2_2/paddings", "shape": [4, 2], "dtype": "int32"}, {"name": "PartitionedCall/PadV2_2/constant_values", "shape": [], "dtype": "float32"}, {"name": "PartitionedCall/transpose_37/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/transpose_38/perm", "shape": [4], "dtype": "int32"}, {"name": "PartitionedCall/Reshape/shape", "shape": [2], "dtype": "int32"}, {"name": "PartitionedCall/transpose_51", "shape": [64, 256], "dtype": "float32"}, {"name": "PartitionedCall/mul_1", "shape": [256], "dtype": "float32"}, {"name": "PartitionedCall/transpose_52", "shape": [256, 12], "dtype": "float32"}, {"name": "PartitionedCall/mul_3", "shape": [12], "dtype": "float32"}]}]}
\ No newline at end of file
diff --git a/js/jiddly-app/public/robots.txt b/js/griddlyjs-app/public/robots.txt
similarity index 100%
rename from js/jiddly-app/public/robots.txt
rename to js/griddlyjs-app/public/robots.txt
diff --git a/js/griddlyjs-app/public/trajectories/Grafter Escape Rooms.yaml b/js/griddlyjs-app/public/trajectories/Grafter Escape Rooms.yaml
new file mode 100644
index 000000000..506852390
--- /dev/null
+++ b/js/griddlyjs-app/public/trajectories/Grafter Escape Rooms.yaml
@@ -0,0 +1,26305 @@
+'0':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'1':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'2':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'3':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'4':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'5':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'6':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'7':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'8':
+ steps:
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'9':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 3
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'10':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'11':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 3
+ - 2
+ - - 3
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'12':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 3
+ - 2
+ - - 3
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'13':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 3
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'14':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'15':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'16':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'17':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 3
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'18':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 3
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'19':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 3
+ - - 2
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 3
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 3
+ - 3
+ - - 3
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'20':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'21':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'22':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'23':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'24':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'25':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'26':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'27':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 3
+ - 2
+ - - 3
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'28':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'29':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'30':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'31':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'32':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'33':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'34':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'36':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'37':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 3
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 3
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'38':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'39':
+ steps:
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'40':
+ steps:
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'41':
+ steps:
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'42':
+ steps:
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'43':
+ steps:
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'44':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'45':
+ steps:
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'46':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 3
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'47':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'48':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'49':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'50':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'51':
+ steps:
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'52':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'53':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'54':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'55':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'56':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'57':
+ steps:
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'58':
+ steps:
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'59':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'60':
+ steps:
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'61':
+ steps:
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'62':
+ steps:
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'63':
+ steps:
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'64':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'65':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 3
+ - 1
+ - - 3
+ - 1
+ - - 3
+ - 1
+ - - 3
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'66':
+ steps:
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 3
+ - 2
+ - - 3
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'67':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'68':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'69':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 3
+ - 2
+ - - 3
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 3
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'70':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'71':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'72':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'73':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'74':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'75':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'76':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'77':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'78':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 3
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'79':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'80':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 3
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'81':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'82':
+ steps:
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 3
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'83':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'84':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'85':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'86':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'87':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'88':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'89':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ seed: 100
+'90':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ seed: 100
+'91':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'92':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'93':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'94':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ seed: 100
+'95':
+ steps:
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 2
+ - - 3
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 2
+ - 3
+ - - 2
+ - 2
+ - - 3
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 3
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'96':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'97':
+ steps:
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'98':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'99':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+'100':
+ steps:
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 3
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 1
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 2
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 0
+ - 4
+ - - 0
+ - 3
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 3
+ - - 0
+ - 2
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 2
+ - - 0
+ - 4
+ - - 2
+ - 1
+ - - 1
+ - 1
+ - - 0
+ - 4
+ - - 1
+ - 1
+ seed: 100
+
diff --git a/js/griddlyjs-app/src/App.js b/js/griddlyjs-app/src/App.js
new file mode 100644
index 000000000..114b9ed44
--- /dev/null
+++ b/js/griddlyjs-app/src/App.js
@@ -0,0 +1,1092 @@
+// import logo from './logo.svg';
+import yaml from "js-yaml";
+import React, { Component } from "react";
+import "./App.scss";
+import GriddlyJSCore from "./GriddlyJSCore";
+import Player from "./renderer/level_player/Player";
+import PolicyDebugger from "./renderer/policy_debugger/PolicyDebugger";
+import LevelEditor from "./renderer/level_editor/LevelEditor";
+import {
+ Col,
+ Container,
+ Row,
+ Tabs,
+ Tab,
+ Button,
+ ToastContainer,
+ Toast,
+ OverlayTrigger,
+ Tooltip,
+ Nav,
+ NavDropdown,
+ NavItem,
+ Modal,
+ Form,
+} from "react-bootstrap";
+
+import {
+ faFloppyDisk,
+ faXmarkSquare,
+ faExclamationTriangle,
+ faInfoCircle,
+ faFileCirclePlus,
+ faClone,
+ faTrashCan,
+ faBook,
+} from "@fortawesome/free-solid-svg-icons";
+
+import { faGithub, faDiscord } from "@fortawesome/free-brands-svg-icons";
+
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+
+import GDYEditor from "./GDYEditor";
+import LevelEditorStateHandler from "./LevelEditorStateHandler";
+import EditorHistory from "./EditorHistory";
+import LevelSelector from "./renderer/level_selector/LevelSelector";
+import { hashString } from "./Utils";
+
+import * as tf from "@tensorflow/tfjs";
+import Intro from "./Intro";
+
+class App extends Component {
+ constructor() {
+ super();
+
+ this.state = {
+ levelPlayer: {
+ phaserWidth: 500,
+ phaserHeight: 300,
+ },
+ levelEditor: {
+ phaserWidth: 500,
+ phaserHeight: 300,
+ },
+ policyDebugger: {
+ phaserWidth: 500,
+ phaserHeight: 300,
+ },
+ levelSelector: {
+ phaserWidth: 1000,
+ phaserHeight: 120,
+ },
+ gdyHash: 0,
+ gdyString: "",
+ levelId: 0,
+ rendererName: "",
+ messages: {},
+ selectedLevelId: 0,
+ trajectories: [],
+ projects: {
+ names: [],
+ templates: {},
+ blankTemplate: "",
+ },
+ newProject: {
+ name: "",
+ showModal: false,
+ template: "",
+ },
+ projectName: "",
+ };
+
+ this.griddlyjs = new GriddlyJSCore();
+ this.editorHistory = new EditorHistory(10);
+ this.editorStateHandler = new LevelEditorStateHandler();
+
+ this.newLevelString = `. . .
+. . .
+. . .
+`;
+ }
+
+ loadGDYURL = async (url) => {
+ return fetch(url).then((response) => {
+ return response.text().then((text) => yaml.load(text));
+ });
+ };
+
+ setCurrentLevel = (levelId) => {
+ this.setState((state) => {
+ const levelString = state.gdy.Environment.Levels[levelId];
+
+ try {
+ this.editorStateHandler.loadLevelString(levelString, levelId);
+ } catch (error) {
+ this.displayMessage(
+ "Unable to load level, please edit level string to fix any errors.",
+ "error",
+ error
+ );
+ }
+
+ try {
+ this.griddlyjs.reset(levelString);
+ } catch (error) {
+ this.displayMessage(
+ "Unable to load level, please edit level string to fix any errors.",
+ "error",
+ error
+ );
+ }
+
+ const trajectoryString = yaml.dump(state.trajectories[levelId], {
+ noRefs: true,
+ });
+ return {
+ ...state,
+ selectedLevelId: levelId,
+ levelString: levelString,
+ trajectoryString: trajectoryString,
+ };
+ });
+ };
+
+ setEditorLevelString = (levelString) => {
+ this.setState((state) => {
+ return {
+ ...state,
+ levelString: levelString,
+ };
+ });
+ };
+
+ saveLevelString = (levelString, levelId) => {
+ const gdy = this.state.gdy;
+
+ let savedLevelId;
+
+ // Overwrite a level, or just push a new one
+ if (levelId && levelId >= 0) {
+ gdy.Environment.Levels[levelId] = levelString;
+ savedLevelId = levelId;
+ } else {
+ gdy.Environment.Levels.push(levelString);
+ savedLevelId = gdy.Environment.Levels.length - 1;
+ }
+
+ const gdyString = yaml.dump(gdy, { noRefs: true });
+ this.updateGDY(gdyString, this.state.projectName);
+
+ return savedLevelId;
+ };
+
+ updateLevelString = (levelString) => {
+ const savedLevelId = this.saveLevelString(
+ levelString,
+ this.state.selectedLevelId
+ );
+ this.editorStateHandler.loadLevelString(levelString, this.state.selectedLevelId);
+ this.griddlyjs.reset(levelString);
+ this.setState((state) => {
+ return {
+ ...state,
+ selectedLevelId: savedLevelId,
+ };
+ });
+ };
+
+ updateTrajectoryString = (trajectoryString) => {
+ this.setState((state) => {
+ state.trajectories[state.selectedLevelId] = yaml.load(trajectoryString);
+ this.editorHistory.updateState(state.projectName, {
+ trajectories: state.trajectories,
+ });
+
+ state.trajectoryString = trajectoryString;
+
+ return {
+ ...state,
+ };
+ });
+ };
+
+ playLevel = (levelString) => {
+ this.griddlyjs.reset(levelString);
+ };
+
+ saveNewLevel = () => {
+ const savedLevelId = this.saveLevelString(this.state.levelString);
+ this.editorStateHandler.loadLevelString(this.state.levelString, this.state.selectedLevelId);
+ this.griddlyjs.reset(this.state.levelString);
+ this.setState((state) => {
+ return {
+ ...state,
+ selectedLevelId: savedLevelId,
+ };
+ });
+ };
+
+ saveCurrentLevel = () => {
+ const savedLevelId = this.saveLevelString(
+ this.state.levelString,
+ this.state.selectedLevelId
+ );
+ this.editorStateHandler.loadLevelString(this.state.levelString, this.state.selectedLevelId);
+ this.griddlyjs.reset(this.state.levelString);
+
+ this.setState((state) => {
+ return {
+ ...state,
+ selectedLevelId: savedLevelId,
+ };
+ });
+ };
+
+ newLevel = () => {
+ this.editorStateHandler.loadLevelString(this.newLevelString, -1);
+ this.setKey("level");
+ this.setState((state) => {
+ return {
+ ...state,
+ selectedLevelId: -1,
+ };
+ });
+ };
+
+ deleteLevel = () => {
+ const gdy = this.state.gdy;
+
+ // Remove the level from the gdy
+ gdy.Environment.Levels.splice(this.state.selectedLevelId, 1);
+
+ const gdyString = yaml.dump(gdy, { noRefs: true });
+ this.updateGDY(gdyString, this.state.projectName);
+ this.setCurrentLevel(this.state.selectedLevelId - 1);
+ };
+
+ onTrajectoryComplete = (trajectoryBuffer) => {
+ this.setState((state) => {
+ const trajectories = { ...state.trajectories };
+ trajectories[state.selectedLevelId] = trajectoryBuffer;
+ this.editorHistory.updateState(this.state.projectName, {
+ trajectories,
+ });
+
+ state.trajectoryString = yaml.dump(trajectoryBuffer, { noRefs: true });
+
+ return {
+ ...state,
+ trajectories,
+ };
+ });
+ };
+
+ findCompatibleRenderers = (observers, objects) => {
+ const compatibleRenderers = new Map([
+ [
+ "Sprite2D",
+ {
+ Type: "SPRITE_2D",
+ TileSize: 24,
+ RotateAvatarImage: true,
+ },
+ ],
+ [
+ "Block2D",
+ {
+ Type: "BLOCK_2D",
+ TileSize: 24,
+ RotateAvatarImage: true,
+ },
+ ],
+ ]);
+
+ for (const [rendererName, config] of compatibleRenderers) {
+ if (rendererName in observers) {
+ compatibleRenderers.set(rendererName, {
+ ...config,
+ ...observers[rendererName],
+ });
+ }
+ }
+
+ // Search through observers for custom observer types
+ for (const observerName in observers) {
+ const observer = observers[observerName];
+
+ // Ignore the default observers
+ if (
+ observerName !== "Sprite2D" &&
+ observerName !== "Block2D" &&
+ observerName !== "Entity" &&
+ observerName !== "ASCII" &&
+ observerName !== "Vector"
+ ) {
+ const observerType = observer.Type;
+
+ // Only consider fully observable sprite and block observers
+ if (observerType === "SPRITE_2D" || observerType === "BLOCK_2D") {
+ if (
+ !observer.Width &&
+ !observer.Height &&
+ !observer.OffsetX &&
+ !observer.OffsetY &&
+ !observer.Shader
+ ) {
+ compatibleRenderers.set(observerName, observer);
+ }
+ }
+ }
+ }
+
+ const observersInObjects = new Set();
+
+ // Search through objects for observer names
+ for (const o in objects) {
+ const object = objects[o];
+
+ // Remove any observers that are missing definitions in objects and warn about them
+ for (const observerName in object.Observers) {
+ observersInObjects.add(observerName);
+ }
+ }
+
+ for (const [rendererName, config] of compatibleRenderers) {
+ if (!observersInObjects.has(rendererName)) {
+ compatibleRenderers.delete(rendererName);
+ }
+ }
+
+ return compatibleRenderers;
+ };
+
+ tryLoadModel = async (environmentName) => {
+ return tf
+ .loadGraphModel("./model/" + environmentName + "/model.json")
+ .catch((error) => {
+ console.log("Cannot load model for environment", environmentName);
+ })
+ .then((model) => {
+ this.setState((state) => {
+ return {
+ ...state,
+ model,
+ };
+ });
+ });
+ };
+
+ tryLoadTrajectories = async (environmentName, trajectories) => {
+ return fetch("./trajectories/" + environmentName + ".yaml")
+ .then((response) => {
+ return response.text().then((text) => {
+ if (text.startsWith(" {
+ for (const levelId in trajectories) {
+ if (trajectories[levelId]) {
+ preloadedTrajectories[levelId] = trajectories[levelId];
+ }
+ }
+
+ this.setState((state) => {
+ return {
+ ...state,
+ trajectories: preloadedTrajectories,
+ };
+ });
+ })
+ .catch((error) => {
+ console.log(
+ "Cannot load trajectories for environment",
+ environmentName
+ );
+ this.setState((state) => {
+ return {
+ ...state,
+ trajectories,
+ };
+ });
+ });
+ };
+
+ loadProject = async (editorState, projectName) => {
+ try {
+ const gdy = editorState.gdy;
+
+ const gdyString = yaml.dump(gdy, { noRefs: true });
+
+ const lastLevelId = gdy.Environment.Levels.length - 1;
+
+ this.editorStateHandler.onLevelString = this.setEditorLevelString;
+
+ this.tryLoadModel(projectName);
+
+ this.tryLoadTrajectories(projectName, editorState.trajectories);
+
+ this.refreshProjectList();
+
+ this.setState((state) => {
+ return {
+ ...state,
+ loading: true
+ }
+ });
+
+ setTimeout(() => {
+ try {
+ this.updateGDY(gdyString, projectName);
+ this.setCurrentLevel(lastLevelId);
+ } catch (e) {
+ this.displayMessage("Could not load GDY", "error", e);
+ this.setState((state) => {
+ return {
+ ...state,
+ projectName,
+ gdyHash: hashString(gdyString),
+ gdyString: gdyString,
+ gdy: gdy,
+ editorStateHandler: this.editorStateHandler,
+ selectedLevelId: lastLevelId,
+ };
+ });
+ }
+ }, 100);
+
+
+ } catch (e) {
+ this.displayMessage("Could not load GDY", "error", e);
+ this.setState((state) => {
+ return {
+ ...state,
+ projectName,
+ gdyString: editorState.gdyString,
+ trajectoryString: editorState.trajectoryString,
+ };
+ });
+ }
+ };
+
+ loadRenderers = (gdy) => {
+ const renderers = this.findCompatibleRenderers(
+ gdy.Environment.Observers || {},
+ gdy.Objects
+ );
+
+ if (renderers.size === 0) {
+ this.displayMessage(
+ "This GDY file does not contain any configurations for fully observable Sprite2D or Block2D renderers. We therefore don't know how to render this environment!",
+ "error"
+ );
+ }
+
+ const [rendererName] = renderers.keys();
+ const rendererConfig = renderers.get(rendererName);
+
+ this.setState((state) => {
+ return {
+ ...state,
+ renderers: renderers,
+ rendererName: rendererName,
+ rendererConfig: rendererConfig,
+ };
+ });
+ };
+
+ updateGDY = (gdyString, projectName) => {
+ const gdy = yaml.load(gdyString);
+ this.editorHistory.updateState(projectName, { gdy });
+ try {
+ this.griddlyjs.unloadGDY();
+ this.griddlyjs.loadGDY(gdyString);
+ } catch (e) {
+ this.displayMessage("Unable to load GDY", "error", e);
+ }
+ this.editorStateHandler.loadGDY(gdy);
+
+ this.loadRenderers(gdy);
+
+ this.setState((state) => {
+ return {
+ ...state,
+ projectName,
+ gdyHash: hashString(gdyString),
+ gdyString: gdyString,
+ gdy: gdy,
+ griddlyjs: this.griddlyjs,
+ editorStateHandler: this.editorStateHandler,
+ loading: false
+ };
+ });
+ };
+
+ updatePhaserCanvasSize = () => {
+ this.setState((state) => {
+ const width = Math.max(
+ this.tabPlayerContentElement.offsetWidth,
+ this.tabEditorContentElement.offsetWidth,
+ this.tabDebuggerContentElement
+ ? this.tabDebuggerContentElement.offsetWidth
+ : 0
+ );
+ return {
+ ...state,
+ levelPlayer: {
+ phaserWidth: width,
+ phaserHeight: (6 * window.innerHeight) / 8,
+ },
+ levelEditor: {
+ phaserWidth: width,
+ phaserHeight: (6 * window.innerHeight) / 8,
+ },
+ policyDebugger: {
+ phaserWidth: width,
+ phaserHeight: (6 * window.innerHeight) / 8,
+ },
+ levelSelector: {
+ phaserWidth: (2 * window.innerWidth) / 3,
+ phaserHeight: 150,
+ },
+ };
+ });
+ };
+
+ loadConfig = async () => {
+ return fetch("config/config.json").then((response) => response.json());
+ };
+
+ refreshProjectList = () => {
+ const projectNames = this.editorHistory.getProjectNames();
+
+ this.setState((state) => {
+ const newProjects = { ...this.state.projects, names: projectNames };
+ return {
+ ...state,
+ projects: newProjects,
+ };
+ });
+ };
+
+ setTemplates = (templates, blankTemplate) => {
+ this.setState((state) => {
+ const newProjects = { ...this.state.projects, templates, blankTemplate };
+ return {
+ ...state,
+ projects: newProjects,
+ };
+ });
+ };
+
+ async componentDidMount() {
+ window.addEventListener("resize", this.updatePhaserCanvasSize, false);
+
+ this.updatePhaserCanvasSize();
+ this.refreshProjectList();
+
+ return await this.griddlyjs.init().then(() => {
+ this.loadConfig().then((defaults) => {
+ this.setTemplates(defaults.templates, defaults.blankTemplate);
+ const lastProjectName = this.editorHistory.getLastProject();
+ if (lastProjectName) {
+ const editorState = this.editorHistory.getState(lastProjectName);
+ this.loadProject(editorState, lastProjectName);
+ } else {
+ this.loadGDYURL(defaults.defaultProject.gdy).then((gdy) => {
+ this.loadProject({ gdy }, defaults.defaultProject.name);
+ this.editorHistory.addProjectName(defaults.defaultProject.name);
+ });
+ }
+ });
+ });
+ }
+
+ setCurrentProject = (projectName) => {
+ const editorState = this.editorHistory.getState(projectName);
+ this.loadProject(editorState, projectName);
+ };
+
+ setKey = (k) => {
+ this.setState((state) => {
+ return {
+ ...state,
+ key: k,
+ };
+ });
+
+ this.updatePhaserCanvasSize();
+ };
+
+ displayMessage = (content, type, error) => {
+ if (error) {
+ console.error(error);
+ }
+ this.setState((state) => {
+ const messageHash = hashString(content + type);
+ state.messages[messageHash] = {
+ content,
+ type,
+ };
+
+ return {
+ ...state,
+ };
+ });
+ };
+
+ closeMessage = (messageHash) => {
+ this.setState((state) => {
+ delete state.messages[messageHash];
+ return {
+ ...state,
+ };
+ });
+ };
+
+ createProjectFromTemplate = async (newProject) => {
+ await this.loadGDYURL(newProject.template.gdy).then((gdy) => {
+ this.loadProject({ gdy }, newProject.name);
+ this.editorHistory.addProjectName(newProject.name);
+ });
+ };
+
+ closeNewProjectModal = () => {
+ this.setState((state) => {
+ const newProject = { ...this.state.newProject, showModal: false };
+
+ return {
+ ...state,
+ newProject,
+ };
+ });
+ };
+
+ newProjectModal = (template) => {
+ this.setState((state) => {
+ const newProject = {
+ ...this.state.newProject,
+ showModal: true,
+ template,
+ };
+
+ return {
+ ...state,
+ newProject,
+ };
+ });
+ };
+
+ updateNewProjectName = (name) => {
+ this.setState((state) => {
+ const newProject = {
+ ...this.state.newProject,
+ showModal: true,
+ name,
+ };
+
+ return {
+ ...state,
+ newProject,
+ };
+ });
+ };
+
+ createNewProject = (e) => {
+ e.preventDefault();
+ this.closeNewProjectModal();
+
+ this.createProjectFromTemplate(this.state.newProject);
+ };
+
+ showIntroModal = () => {
+ this.setState((state) => {
+ return {
+ ...state,
+ showIntro: true,
+ };
+ });
+ };
+
+ closeIntroModal = () => {
+ this.setState((state) => {
+ return {
+ ...state,
+ showIntro: false,
+ };
+ });
+ };
+
+ render() {
+ return (
+
+
+
+
+ Loading Project.....
+
+
+
+
+ New Project
+
+
+
+ Name
+ this.updateNewProjectName(e.target.value)}
+ autoFocus
+ />
+
+ Enter a unique name for your project.
+
+
+
+
+
+
+ Cancel
+
+
+ Create...
+
+
+
+
+ {Object.entries(this.state.messages).map(([key, message]) => {
+ let icon;
+ switch (message.type) {
+ case "error":
+ icon = (
+ <>
+
+ Error
+ >
+ );
+ break;
+ case "warning":
+ icon = (
+ <>
+
+ Warning
+ >
+ );
+ break;
+ case "info":
+ icon = (
+ <>
+
+ Info
+ >
+ );
+ break;
+ default:
+ break;
+ }
+ return (
+ {
+ this.closeMessage(key);
+ }}
+ >
+ {icon}
+ {message.content}
+
+ );
+ })}
+
+
+
+
+
+
+
+
+
+
+
+
+ this.newProjectModal(this.state.projects.blankTemplate)
+ }
+ >
+ Blank Project...
+
+ {Object.keys(this.state.projects.templates).length > 0 ? (
+ <>
+
+ Templates
+ {Object.keys(this.state.projects.templates).map((key) => (
+
+ this.newProjectModal(
+ this.state.projects.templates[key]
+ )
+ }
+ >
+ {key}
+
+ ))}
+ >
+ ) : (
+ <>>
+ )}
+
+ {Array.from(this.state.projects.names).length > 0 ? (
+
+ {Array.from(this.state.projects.names).map(
+ (projectName, key) => (
+ this.setCurrentProject(projectName)}
+ >
+ {projectName}
+
+ )
+ )}
+
+ ) : (
+ <>>
+ )}
+
+
+
+
+ {this.state.projectName}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ e.preventDefault();
+ this.setKey(k);
+ }}
+ className="mb-3"
+ transition={false}
+ >
+
+
+
+ {
+ this.tabPlayerContentElement = tabPlayerContentElement;
+ }}
+ >
+
+
+
+
+
+
+
+
+ {
+ this.tabEditorContentElement = tabEditorContentElement;
+ }}
+ >
+
+
+
+
+
+ {this.state.model ? (
+
+
+
+ {
+ this.tabDebuggerContentElement =
+ tabDebuggerContentElement;
+ }}
+ >
+
+
+
+
+
+ ) : (
+ <>>
+ )}
+
+
+
+ this.updateGDY(gdy, this.state.projectName)}
+ updateLevelString={this.updateLevelString}
+ updateTrajectoryString={this.updateTrajectoryString}
+ />
+
+
+
+
+
+ Create a New Level
+ }
+ >
+
+
+
+
+ Save Current Level
+ }
+ >
+
+
+
+
+ Copy Level}
+ >
+
+
+
+
+ Delete Level}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default App;
diff --git a/js/griddlyjs-app/src/App.scss b/js/griddlyjs-app/src/App.scss
new file mode 100644
index 000000000..536f9e19c
--- /dev/null
+++ b/js/griddlyjs-app/src/App.scss
@@ -0,0 +1,63 @@
+@import "~bootswatch/dist/slate/variables";
+@import "~bootstrap/scss/bootstrap";
+@import "~bootswatch/dist/slate/bootswatch";
+
+@font-face {
+ font-family: "Droid Sans Mono";
+ src: url("./fonts/DroidSansMono.ttf");
+}
+
+@font-face {
+ font-family: "Font Awesome Regular";
+ src: url("./fonts/fa-regular-400.ttf") format("truetype"),
+ url("./fonts/fa-regular-400.woff2") format("woff2");
+}
+
+@font-face {
+ font-family: "Font Awesome Solid";
+ src: url("./fonts/fa-solid-900.ttf") format("truetype"),
+ url("./fonts/fa-solid-900.woff2") format("woff2");
+}
+
+.App {
+ text-align: center;
+}
+
+.griddlyjs-ide-container {
+ text-align: center;
+}
+
+.button-panel {
+ text-align: left;
+ min-height: 15px;
+ max-height: 40px;
+}
+
+.header-logo {
+ text-align: left;
+ padding: 10px;
+}
+
+.header-navlinks {
+ text-align: right;
+ padding: 10px;
+
+ .navlink {
+ padding-left: 20px;
+ }
+}
+
+.header-project {
+ font-size: 24;
+ padding: 10px;
+}
+
+.modal-90w {
+ width: 90%;
+ max-width: none!important;
+}
+
+.tutorial-video {
+ text-align: center;
+ margin: 20px;
+}
diff --git a/js/jiddly-app/src/App.test.js b/js/griddlyjs-app/src/App.test.js
similarity index 100%
rename from js/jiddly-app/src/App.test.js
rename to js/griddlyjs-app/src/App.test.js
diff --git a/js/griddlyjs-app/src/EditorHistory.js b/js/griddlyjs-app/src/EditorHistory.js
new file mode 100644
index 000000000..7b7151a5e
--- /dev/null
+++ b/js/griddlyjs-app/src/EditorHistory.js
@@ -0,0 +1,119 @@
+import LZString from "lz-string";
+
+class EditorHistory {
+ constructor(maxHistory) {
+ this.maxHistory = maxHistory;
+ }
+
+ getProjectData(projectName) {
+ let projectDataString = window.localStorage.getItem(projectName);
+
+ let projectData;
+ if (!projectDataString) {
+ projectData = {
+ stateHistory: [
+ this.compressState({
+ gdy: {},
+ trajectories: [],
+ }),
+ ],
+ };
+ } else {
+ projectData = JSON.parse(projectDataString);
+ }
+
+ // TODO: Remove this later
+ if ("history" in projectData) {
+ projectData.stateHistory = [];
+ projectData.history.forEach((gdy) => {
+ projectData.stateHistory.push(
+ this.compressState({
+ gdy,
+ trajectories: [],
+ })
+ );
+ });
+
+ delete projectData["history"];
+ }
+
+ this.setLastProject(projectData);
+
+ return projectData;
+ }
+
+ decompressState(compressedEditorState) {
+ const editorState = {};
+ for (const key in compressedEditorState) {
+ editorState[key] = JSON.parse(
+ LZString.decompress(compressedEditorState[key])
+ );
+ }
+
+ return editorState;
+ }
+
+ compressState(editorState) {
+ const compressedState = {};
+ for (const key in editorState) {
+ compressedState[key] = LZString.compress(
+ JSON.stringify(editorState[key])
+ );
+ }
+ return compressedState;
+ }
+
+ getProjectNames() {
+ if(window.localStorage.getItem("_projectNames")) {
+ this.projectNames = new Set(JSON.parse(window.localStorage.getItem("_projectNames")));
+ } else {
+ this.projectNames = new Set();
+ }
+
+ return this.projectNames;
+ }
+
+ addProjectName(projectName) {
+ this.projectNames.add(projectName);
+ window.localStorage.setItem("_projectNames", JSON.stringify(Array.from(this.projectNames)));
+ }
+
+ getLastProject() {
+ return window.localStorage.getItem("_lastProject");
+ }
+
+ setLastProject(projectName) {
+ window.localStorage.setItem("_lastProject", projectName);
+ }
+
+ updateState(projectName, newState) {
+ const projectData = this.getProjectData(projectName);
+ const prevState = this.decompressState(
+ projectData.stateHistory[projectData.stateHistory.length - 1]
+ );
+
+ const updatedState = {
+ ...prevState,
+ ...newState,
+ };
+
+ projectData.stateHistory.push(this.compressState(updatedState));
+
+ if (projectData.stateHistory.length >= this.maxHistory) {
+ projectData.stateHistory.shift();
+ }
+
+ this.setLastProject(projectName);
+
+ window.localStorage.setItem(projectName, JSON.stringify(projectData));
+ }
+
+ getState(projectName) {
+ const projectData = this.getProjectData(projectName);
+ return this.decompressState(
+ projectData.stateHistory[projectData.stateHistory.length - 1]
+ );
+ }
+}
+
+export default EditorHistory;
diff --git a/js/griddlyjs-app/src/GDYEditor.js b/js/griddlyjs-app/src/GDYEditor.js
new file mode 100644
index 000000000..4a5fa7ed7
--- /dev/null
+++ b/js/griddlyjs-app/src/GDYEditor.js
@@ -0,0 +1,133 @@
+import { React, Component } from "react";
+import Editor from "@monaco-editor/react";
+import { Nav } from "react-bootstrap";
+
+class GDYEditor extends Component {
+ constructor(props) {
+ super(props);
+
+ const editorModels = {
+ GDY: {
+ name: "GDY",
+ language: "yaml",
+ value: this.props.gdyString,
+ },
+ Level: {
+ name: "Level",
+ language: "text",
+ value: this.props.levelString,
+ },
+ Trajectory: {
+ name: "Trajectory",
+ language: "yaml",
+ value: this.props.trajectoryString,
+ },
+ };
+
+ this.state = {
+ fileName: "GDY",
+ editorModels,
+ };
+
+ this.updateGDY = this.props.updateGDY;
+ this.updateLevelString = this.props.updateLevelString;
+ this.updateTrajectoryString = this.props.updateTrajectoryString;
+ }
+
+ static getDerivedStateFromProps(nextProps, prevState) {
+ const editorModels = {
+ GDY: {
+ name: "GDY",
+ language: "yaml",
+ value: nextProps.gdyString,
+ },
+ Level: {
+ name: "Level",
+ language: "text",
+ value: nextProps.levelString,
+ },
+ Trajectory: {
+ name: "Trajectory",
+ language: "yaml",
+ value: nextProps.trajectoryString,
+ },
+ };
+
+ return {
+ ...prevState,
+ editorModels,
+ };
+ }
+
+ handleEditorDidMount = (editor, monaco) => {
+ if (editor) {
+ this.editor = editor;
+
+ this.editor.addCommand(
+ monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS,
+ () => {
+
+ if(this.state.fileName === "GDY") {
+ const updatedGDY = editor.getValue();
+ this.updateGDY(updatedGDY);
+ } else if (this.state.fileName === "Level") {
+ const updatedLevelString = editor.getValue();
+ this.updateLevelString(updatedLevelString);
+ } else if(this.state.fileName === "Trajectory") {
+ const updatedTrajectoryString = editor.getValue();
+ this.updateTrajectoryString(updatedTrajectoryString);
+ }
+ }
+ );
+ }
+ };
+
+ changeModel = (fileName) => {
+ this.setState((state) => {
+ return {
+ ...state,
+ fileName,
+ };
+ });
+ };
+
+ render() {
+ const file = this.state.editorModels[this.state.fileName];
+
+ return (
+ <>
+
+
+ this.changeModel("GDY")}>
+ GDY
+
+
+
+ this.changeModel("Level")}>
+ Level
+
+
+
+ this.changeModel("Trajectory")}
+ >
+ Trajectory
+
+
+
+
+ >
+ );
+ }
+}
+
+export default GDYEditor;
diff --git a/js/griddlyjs-app/src/GriddlyJSCore.js b/js/griddlyjs-app/src/GriddlyJSCore.js
new file mode 100644
index 000000000..8ac01990d
--- /dev/null
+++ b/js/griddlyjs-app/src/GriddlyJSCore.js
@@ -0,0 +1,120 @@
+import Module from "./wasm/griddlyjs.js";
+
+/**
+ * Contains all the code for loading and interfacing with GriddlyJS
+ */
+class GriddlyJSCore {
+ constructor() {
+ this.moduleOverrides = {
+ locateFile: (file, prefix) => {
+ if (file === "griddlyjs.wasm") {
+ const newPath = prefix + "../../js/" + file;
+ console.log("new path:", newPath);
+ return newPath;
+ }
+ },
+ };
+ }
+
+ init = async () => {
+ this.module = await new Module(this.moduleOverrides);
+ this.griddlyjs = new this.module.GriddlyJS();
+ };
+
+ loadGDY = (gdyString) => {
+ this.gdy = this.griddlyjs.loadString(gdyString);
+ this.game = this.gdy.createGame("Vector");
+
+ this.playerCount = this.gdy.getPlayerCount();
+
+ this.players = [];
+
+ for (let p = 0; p < this.playerCount; p++) {
+ const player = this.game.registerPlayer("Player " + p, "Vector");
+ this.players.push(player);
+ }
+
+ this.game.init();
+ this.game.reset();
+ };
+
+ unloadGDY = () => {
+ if (this.game) {
+ this.game.release();
+ this.game.delete();
+ delete this.game;
+ }
+ if(this.gdy) {
+ this.gdy.delete();
+ delete this.gdy;
+ }
+ };
+
+ getPlayerObservations = (playerId) => {
+ return this.players[playerId].observe();
+ };
+
+ getActionInputMappings = () => {
+ return this.gdy.getActionInputMappings();
+ };
+
+ getActionNames = () => {
+ return this.gdy.getExternalActionNames();
+ };
+
+ getGlobalVariables = () => {
+ const globalVariableNames = this.game.getGlobalVariableNames();
+ return this.game.getGlobalVariables(globalVariableNames);
+ };
+
+ getState = () => {
+ return this.game.getState();
+ };
+
+ getHeight = () => {
+ return this.game.getHeight();
+ };
+
+ getWidth = () => {
+ return this.game.getWidth();
+ };
+
+ step = (action) => {
+ const playerActions = [];
+ if (!Array.isArray(action)) {
+ playerActions.push([action]);
+ } else if (!Array.isArray(action[0])) {
+ playerActions.push(action);
+ }
+
+ const actionLength = playerActions[0].length;
+
+ for (let p = 1; p < this.playerCount; p++) {
+ playerActions.push(new Array(actionLength).fill(0));
+ }
+
+ return this.game.stepParallel(playerActions);
+ };
+
+ reset = (levelStringOrId) => {
+ if (levelStringOrId) {
+ this.levelStringOrId = levelStringOrId;
+ if (isNaN(levelStringOrId)) {
+ this.game.loadLevelString(levelStringOrId);
+ } else {
+ this.game.loadLevel(levelStringOrId);
+ }
+ }
+ return this.game.reset();
+ };
+
+ getLevelStringOrId = () => {
+ return this.levelStringOrId;
+ }
+
+ seed = (seed) => {
+ this.game.seedRandomGenerator(seed);
+ }
+}
+
+export default GriddlyJSCore;
diff --git a/js/griddlyjs-app/src/Intro.js b/js/griddlyjs-app/src/Intro.js
new file mode 100644
index 000000000..68f447739
--- /dev/null
+++ b/js/griddlyjs-app/src/Intro.js
@@ -0,0 +1,333 @@
+import React, { Component } from "react";
+import { Alert, Col, Container, Form, Modal, Nav, Row } from "react-bootstrap";
+
+class Intro extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ show: false,
+ slideIdx: 0,
+ doNotShowOnStart: this.doNotShowOnStart()
+ };
+
+
+
+
+ this.slides = [
+ {
+ title: "Introduction",
+ image: "intro/intro.gif",
+ content: (
+
+
Welcome to GriddlyJS
+
+ You can use GriddlyJS to create grid worlds for reinforcement
+ learning.
+
+
+ GriddlyJS helps you to build and test games mechanics, create
+ levels, debug policies and even record human trajectories.
+
+
+ ),
+ },
+ {
+ title: "Managing projects",
+ image: "intro/newproject.gif",
+ content: (
+
+
+
Creating a new Project
+
+
+ You can either create a blank project or start a project from
+ one of the templates provided.
+
+
+ If you choose to create a blank project , a very simple
+ environment with the most basic mechanics is loaded. This a
+ good starting point to understand how environments can be
+ configured using Griddly
+
+
+ For more complex projects, you can choose to start from an
+ existing template.
+
+
+
+
+ Tip: You can also create a blank template and then copy in
+ your own GDY text into the GDY editor.
+
+
+
+
+
Loading an existing project
+
+
+ All of the projects you create are automatically saved in your
+ browser. This includes any new levels trajectories and changes
+ to the GDY that you may have made.
+
+
+ You can select any of your existing projects in the{" "}
+ Open menu located at the top of the page
+
+
+
+
+ ),
+ },
+ {
+ title: "Level Editor",
+ image: "intro/leveleditor.gif",
+ content: (
+
+
+
Editing Levels
+
+
+ Use the level editor tab to paint new levels.
+
+
+ GriddlyJS reads the objects descriptions from the GDY
+ configuration, these objects can then be placed into the level
+ editor grid.
+
+
+ Modify the level text directly also. Press Ctrl+S to save the
+ changes back to the editor.
+
+
+ If you have a BackgroundTile
configured, these
+ will be painted automatically to the bounds of the grid.
+
+
+ There's no limit to the dimensions of levels so you can be as
+ creative as you want!
+
+
+ As soon as you have created or modified your level, you can
+ click play to test the new level.
+
+
+
+
+ Tip: Use left click to paint and right click to remove items.
+
+
+
+
+
Level Selection
+
+
+ Click on the level thumbnails to choose a level to work with.
+
+
+ Create new levels, copy or modify existing levels and delete
+ them with the buttons just above the selection window.
+
+
+
+
+ ),
+ },
+ {
+ title: "Debugging Mechanics",
+ image: "intro/debuggingmechanics.gif",
+ content: (
+
+
+
Making changes to GDY
+
+
+ Change the mechanics of the game by modifying the GDY in the
+ editor. Press Ctrl+S to save changes.
+
+
+
+ Documentation, tutorials and examples of what can be done with
+ GDY can be found
+ here
+
+
+
Testing Mechanics and Debugging
+
+
+ Press P to view the keyboard mapping for the
+ environment.
+
+
+ Press I to view the global variables.
+
+
+ Check that the behaviour of the variables and the actions are
+ what is expected in the environment.
+
+
+
+
+ ),
+ },
+ {
+ title: "Recording Trajectories",
+ image: "intro/recordingtrajectories.gif",
+ content: (
+
+
+
Recording
+
+
+ Click the Record button and then play the game, (the
+ actions mapped to the keyboard can be found by pressing
+ P )
+
+
+
+ Tip: If you make a mistake recording a trajectory you can click
+ the red stop button to halt the recording.
+
+
Playback
+
+
+ Once a trajectory is recorded, a green play button will
+ be enabled. Click this to playback your recorded trajectory
+
+
+
+
+ Tip: Copy the actions from the trajectory text view and load
+ them in python using yaml, you can then pass them to the
+ env.step(...)
function to reproduce the trajectory
+ for methods like behavioural cloning
+
+
+
+ ),
+ },
+ {
+ title: "Debugging Policies",
+ image: "intro/debugpolicies.gif",
+ content: (
+
+
+
Policy Playback
+
+
+ Click the Play button and then play the game, (the
+ actions mapped to the keyboard can be found by pressing
+ P )
+
+
+
+ Debugging policies is an advanced use case and is currently only available in the Grafter Escape Rooms environment.
+ In order to add new policies, you will have to run GriddlyJS locally and add your own ONNX model to the model directory
+
+
+
+ ),
+ },
+ ];
+ }
+
+ doNotShowOnStart = () => {
+ return window.localStorage.getItem("_hideIntro") === "true";
+ };
+
+ setDoNotShowOnStart = (e) => {
+ if(e.target.checked) {
+ window.localStorage.setItem("_hideIntro", "true");
+ } else {
+ window.localStorage.setItem("_hideIntro", "false");
+ }
+ this.setState((state) => {
+ return {
+ ...state,
+ doNotShowOnStart: e.target.checked
+ }
+ });
+ };
+
+ setShow = (show) => {
+ if(!show) {
+ this.props.onClose();
+ }
+ this.setState((state) => {
+ return {
+ ...state,
+ show,
+ };
+ });
+ };
+
+ componentDidMount() {
+ this.setState((state) => {
+ return {
+ ...state,
+ show: !this.doNotShowOnStart(),
+ };
+ });
+ }
+
+ setSlide = (slideIdx) => {
+ this.setState((state) => {
+ return {
+ ...state,
+ slideIdx,
+ };
+ });
+ };
+
+ render() {
+ const currentSlide = this.slides[this.state.slideIdx];
+ return (
+ this.setShow(false)}
+ dialogClassName="modal-90w"
+ >
+
+ GriddlyJS Tutorial - {currentSlide.title}
+
+
+
+
+
+
+ {this.slides.map((slide, key) => {
+ return (
+
+ {slide.title}
+
+ );
+ })}
+
+
+
+
+
+
+
+
+
+
+ {currentSlide.content}
+
+
+
+
+
+ Do not show again on startup.
+
+
+
+
+
+ );
+ }
+}
+
+export default Intro;
diff --git a/js/griddlyjs-app/src/LevelEditorStateHandler.js b/js/griddlyjs-app/src/LevelEditorStateHandler.js
new file mode 100644
index 000000000..2fc944a35
--- /dev/null
+++ b/js/griddlyjs-app/src/LevelEditorStateHandler.js
@@ -0,0 +1,455 @@
+import { hashString, getRandomHash } from "./Utils";
+
+const MR_READ_NORMAL = 0;
+const MR_READ_PLAYERID = 1;
+const MR_READ_INITIAL_ORIENTATION = 2;
+
+class EditorStateHandler {
+ constructor() {
+ this.defaultTileSize = 24;
+ this.minimumObjectChars = 3;
+
+ this.minimumStateWidth = 3;
+ this.minimumStateHeight = 3;
+ }
+
+ loadGDY(gdy) {
+ this.characterToObject = {};
+ this.objectToCharacterAndZ = {};
+
+ this.gdy = gdy;
+ this.characterToObject["."] = "background";
+ this.objectToCharacterAndZ["background"] = { char: ".", z: 10 };
+
+ this.gdy.Objects.forEach((object) => {
+ this.characterToObject[object.MapCharacter] = object.Name;
+ this.objectToCharacterAndZ[object.Name] = {
+ char: object.MapCharacter,
+ z: object.Z || 0,
+ };
+ });
+ }
+
+ getObjectLocationKey = (x, y) => {
+ return `${x},${y}`;
+ };
+
+ resetEditorState(levelId) {
+ this.editorHistory = [];
+
+ this.initialState = {
+ objects: {},
+ gridWidth: 0,
+ gridHeight: 0,
+ minx: Number.MAX_VALUE,
+ miny: Number.MAX_VALUE,
+ maxx: Number.MIN_VALUE,
+ maxy: Number.MIN_VALUE,
+ tileTypeCount: {},
+ levelId: levelId
+ };
+
+ // Just used to create a random id
+ this.objectId = 0;
+
+ // Another simple way to create a unique id for consecutive states so we dont always re-draw unecessarily
+ this.hash = 0;
+
+ this.pushState(this.initialState);
+ }
+
+ loadLevelString(levelString, levelId) {
+ this.resetEditorState(levelId);
+ let mapReaderState = MR_READ_NORMAL;
+
+ const levelStringLength = levelString.length;
+
+ let rowCount = 0;
+ let colCount = 0;
+ let firstColCount = 0;
+
+ let charIdx = 0;
+
+ let currentObjectName = "";
+
+ let currentPlayerIdChars = [];
+ let currentDirection = "NONE";
+
+ let prevChar = "";
+
+ while (charIdx < levelStringLength) {
+ const ch = levelString[charIdx];
+
+ switch (ch) {
+ case "\n":
+ if (mapReaderState === MR_READ_PLAYERID) {
+ this.addTile(
+ colCount,
+ rowCount,
+ currentObjectName,
+ Number(currentPlayerIdChars.join()),
+ currentDirection,
+ false
+ );
+ currentDirection = "NONE";
+ mapReaderState = MR_READ_NORMAL;
+ currentPlayerIdChars = [];
+ colCount++;
+ }
+
+ if (rowCount === 0) {
+ firstColCount = colCount;
+ } else if (firstColCount !== colCount) {
+ throw new Error("Invalid number of characters in map row");
+ }
+ rowCount++;
+ colCount = 0;
+ prevChar = ch;
+ break;
+ case " ":
+ case "\t":
+ if (
+ mapReaderState === MR_READ_PLAYERID ||
+ mapReaderState === MR_READ_INITIAL_ORIENTATION
+ ) {
+ this.addTile(
+ colCount,
+ rowCount,
+ currentObjectName,
+ Number(currentPlayerIdChars.join()),
+ currentDirection,
+ false
+ );
+ mapReaderState = MR_READ_NORMAL;
+ currentDirection = "NONE";
+ currentPlayerIdChars = [];
+ colCount++;
+ }
+ break;
+ case ".": // dots just signify an empty space
+ if (
+ mapReaderState === MR_READ_PLAYERID ||
+ mapReaderState === MR_READ_INITIAL_ORIENTATION
+ ) {
+ this.addTile(
+ colCount,
+ rowCount,
+ currentObjectName,
+ Number(currentPlayerIdChars.join()),
+ currentDirection,
+ false
+ );
+ mapReaderState = MR_READ_NORMAL;
+ currentDirection = "NONE";
+ currentPlayerIdChars = [];
+ colCount++;
+ }
+ // Add the bg tile also
+ this.addTile(
+ colCount,
+ rowCount,
+ "background",
+ 0,
+ "NONE",
+ false
+ );
+
+ colCount++;
+ prevChar = ch;
+ break;
+ case "/":
+ if (
+ mapReaderState === MR_READ_PLAYERID ||
+ mapReaderState === MR_READ_INITIAL_ORIENTATION
+ ) {
+ this.addTile(
+ colCount,
+ rowCount,
+ currentObjectName,
+ Number(currentPlayerIdChars.join()),
+ currentDirection,
+ false
+ );
+ currentPlayerIdChars = [];
+ mapReaderState = MR_READ_NORMAL;
+ currentDirection = "NONE";
+ }
+ prevChar = ch;
+ break;
+ case "[":
+ if (mapReaderState === MR_READ_PLAYERID) {
+ mapReaderState = MR_READ_INITIAL_ORIENTATION;
+ }
+ prevChar = ch;
+ break;
+
+ case "]":
+ if (mapReaderState !== MR_READ_INITIAL_ORIENTATION) {
+ throw new Error(
+ `Invalid closing bracket ']' for initial orientation in map row=${rowCount}`
+ );
+ }
+ prevChar = ch;
+ break;
+ default: {
+ switch (mapReaderState) {
+ case MR_READ_NORMAL:
+ currentObjectName = this.characterToObject[ch];
+ mapReaderState = MR_READ_PLAYERID;
+ break;
+ case MR_READ_PLAYERID:
+ if (!isNaN(ch)) {
+ currentPlayerIdChars.push(ch);
+ } else {
+ this.addTile(
+ colCount,
+ rowCount,
+ currentObjectName,
+ Number(currentPlayerIdChars.join()),
+ currentDirection,
+ false
+ );
+ currentObjectName = this.characterToObject[ch];
+ currentDirection = "NONE";
+ currentPlayerIdChars = [];
+ colCount++;
+ }
+ break;
+ case MR_READ_INITIAL_ORIENTATION:
+ switch (ch) {
+ case "U":
+ currentDirection = "UP";
+ break;
+ case "D":
+ currentDirection = "DOWN";
+ break;
+ case "L":
+ currentDirection = "LEFT";
+ break;
+ case "R":
+ currentDirection = "RIGHT";
+ break;
+ default:
+ throw new Error(
+ `Unknown direction character ${ch} at in map row=${rowCount}`
+ );
+ }
+ break;
+ default:
+ throw new Error(
+ "Unknown state reached when parsing level string"
+ );
+ }
+ prevChar = ch;
+ break;
+ }
+ }
+
+ charIdx++;
+ }
+
+ if (
+ mapReaderState === MR_READ_PLAYERID ||
+ mapReaderState === MR_READ_INITIAL_ORIENTATION
+ ) {
+ this.addTile(
+ colCount,
+ rowCount,
+ currentObjectName,
+ Number(currentPlayerIdChars.join()),
+ currentDirection,
+ false
+ );
+ currentPlayerIdChars = [];
+ currentDirection = "NONE";
+ mapReaderState = MR_READ_NORMAL;
+ }
+
+ if (prevChar !== "\n") {
+ rowCount += 1;
+ }
+
+ // only run the onLevelString at the end of loading the level
+ const newLevelString = this.toLevelString(this.getState());
+ if (this.onLevelString) {
+ this.onLevelString(newLevelString);
+ }
+
+ }
+
+ updateStateSize(state) {
+ state.minx = 0;
+ state.miny = 0;
+ state.maxx = 3;
+ state.maxy = 3;
+
+ for (const objectLocationKey in state.objects) {
+ for (const objectId in state.objects[objectLocationKey]) {
+ const objectInfo = state.objects[objectLocationKey][objectId];
+
+ if (objectInfo.location.x < state.minx) {
+ state.minx = objectInfo.location.x;
+ } else if (objectInfo.location.x > state.maxx) {
+ state.maxx = objectInfo.location.x;
+ }
+
+ if (objectInfo.location.y < state.miny) {
+ state.miny = objectInfo.location.y;
+ } else if (objectInfo.location.y > state.maxy) {
+ state.maxy = objectInfo.location.y;
+ }
+ }
+ }
+
+ state.gridWidth = Math.max(
+ this.minimumStateWidth,
+ state.maxx - state.minx + 1
+ );
+ state.gridHeight = Math.max(
+ this.minimumStateHeight,
+ state.maxy - state.miny + 1
+ );
+ return state;
+ }
+
+ pushState = (state, notify = true) => {
+ // Copy the state and add it to the history
+ const stateCopy = {
+ ...this.updateStateSize(state),
+ };
+
+ const levelString = this.toLevelString(stateCopy);
+
+ const hashedStateCopy = {
+ ...stateCopy,
+ hash: hashString(levelString),
+ };
+
+ this.editorHistory.push(hashedStateCopy);
+
+ const historyLength = this.editorHistory.length;
+
+ if (historyLength >= 20) {
+ this.editorHistory.shift();
+ }
+
+ if (this.onLevelString && notify) {
+ this.onLevelString(levelString);
+ }
+ };
+
+ addTile(x, y, objectName, playerId, orientation, notify = true) {
+ let state = this.getState();
+
+ const charAndZ = this.objectToCharacterAndZ[objectName];
+
+ const objectInfo = {
+ id: getRandomHash(),
+ renderTileId: 0,
+ name: objectName,
+ char: charAndZ.char,
+ playerId,
+ orientation,
+ location: { x, y, z: charAndZ.z },
+ };
+
+ const locationKey = this.getObjectLocationKey(x, y);
+
+ if (!(locationKey in state.objects)) {
+ state.objects[locationKey] = [];
+ } else {
+ // Remove existing object with same z location
+ for (const k in state.objects[locationKey]) {
+ const object = state.objects[locationKey][k];
+
+ if (object.location.z === objectInfo.location.z) {
+ state.tileTypeCount[objectInfo.name]--;
+ state.objects[locationKey].splice(k, 1);
+ }
+ }
+ }
+
+ // Add new object
+ state.objects[locationKey].push(objectInfo);
+
+ // Sort by Z location
+ state.objects[locationKey].sort((a, b) => b.location.z - a.location.z);
+
+ if (!(objectInfo.name in state.tileTypeCount)) {
+ state.tileTypeCount[objectInfo.name] = 0;
+ }
+ state.tileTypeCount[objectInfo.name]++;
+
+ this.pushState(state, notify);
+ }
+
+ removeTile(x, y) {
+ const state = this.getState();
+
+ const locationKey = this.getObjectLocationKey(x, y);
+
+ if (locationKey in state.objects) {
+ const objectInfo = state.objects[locationKey][0];
+ state.tileTypeCount[objectInfo.name]--;
+ state.objects[locationKey].splice(0, 1);
+
+ if (state.objects[locationKey].length === 0) {
+ delete state.objects[locationKey];
+ console.log("removing key");
+ }
+
+ this.pushState(state);
+ }
+ }
+
+ getState() {
+ return { ...this.editorHistory[this.editorHistory.length - 1] };
+ }
+
+ toLevelString(state) {
+ const levelObjectChars = [];
+
+ let maxObjectChars = this.minimumObjectChars;
+
+ for (let y = state.miny; y <= state.maxy; y++) {
+ for (let x = state.minx; x <= state.maxx; x++) {
+ const locationKey = this.getObjectLocationKey(x, y);
+ if (locationKey in state.objects) {
+ const locationChars = [];
+ for (const k in state.objects[locationKey]) {
+ const objectInfo = state.objects[locationKey][k];
+ if(objectInfo.char !== ".") {
+ locationChars.push(objectInfo.char);
+ }
+ }
+ let objectChars;
+ if (locationChars.length === 0) {
+ objectChars = "."
+ } else {
+ objectChars = locationChars.join("/");
+ }
+
+ if (objectChars.length > maxObjectChars) {
+ maxObjectChars = objectChars.length;
+ }
+
+ levelObjectChars.push(objectChars);
+ } else {
+ levelObjectChars.push(".");
+ }
+ }
+ levelObjectChars.push("\n");
+ }
+
+ return levelObjectChars
+ .map((chars) => {
+ if (chars !== "\n") {
+ return chars.padEnd(maxObjectChars + 1);
+ }
+ return chars;
+ })
+ .join("");
+ }
+}
+
+export default EditorStateHandler;
diff --git a/js/griddlyjs-app/src/Utils.js b/js/griddlyjs-app/src/Utils.js
new file mode 100644
index 000000000..61c7d8136
--- /dev/null
+++ b/js/griddlyjs-app/src/Utils.js
@@ -0,0 +1,20 @@
+
+
+module.exports = Object.freeze({
+ hashString: (string) => {
+ let hash = 0,
+ i,
+ chr;
+ if (string.length === 0) return hash;
+ for (i = 0; i < string.length; i++) {
+ chr = string.charCodeAt(i);
+ hash = (hash << 5) - hash + chr;
+ hash |= 0; // Convert to 32bit integer
+ }
+ return hash;
+ },
+
+ getRandomHash: () => {
+ return window.crypto.getRandomValues(new Uint32Array(1))[0];
+ },
+});
diff --git a/js/griddlyjs-app/src/fonts/DroidSansMono.ttf b/js/griddlyjs-app/src/fonts/DroidSansMono.ttf
new file mode 100755
index 000000000..a00707194
Binary files /dev/null and b/js/griddlyjs-app/src/fonts/DroidSansMono.ttf differ
diff --git a/js/griddlyjs-app/src/fonts/fa-regular-400.ttf b/js/griddlyjs-app/src/fonts/fa-regular-400.ttf
new file mode 100644
index 000000000..23e3febe0
Binary files /dev/null and b/js/griddlyjs-app/src/fonts/fa-regular-400.ttf differ
diff --git a/js/griddlyjs-app/src/fonts/fa-regular-400.woff2 b/js/griddlyjs-app/src/fonts/fa-regular-400.woff2
new file mode 100644
index 000000000..80e3b1247
Binary files /dev/null and b/js/griddlyjs-app/src/fonts/fa-regular-400.woff2 differ
diff --git a/js/griddlyjs-app/src/fonts/fa-solid-900.ttf b/js/griddlyjs-app/src/fonts/fa-solid-900.ttf
new file mode 100644
index 000000000..da9082420
Binary files /dev/null and b/js/griddlyjs-app/src/fonts/fa-solid-900.ttf differ
diff --git a/js/griddlyjs-app/src/fonts/fa-solid-900.woff2 b/js/griddlyjs-app/src/fonts/fa-solid-900.woff2
new file mode 100644
index 000000000..360ba1155
Binary files /dev/null and b/js/griddlyjs-app/src/fonts/fa-solid-900.woff2 differ
diff --git a/js/jiddly-app/src/index.js b/js/griddlyjs-app/src/index.js
similarity index 100%
rename from js/jiddly-app/src/index.js
rename to js/griddlyjs-app/src/index.js
diff --git a/js/jiddly-app/src/renderer/scenes/Block2DRenderer.js b/js/griddlyjs-app/src/renderer/Block2DRenderer.js
similarity index 65%
rename from js/jiddly-app/src/renderer/scenes/Block2DRenderer.js
rename to js/griddlyjs-app/src/renderer/Block2DRenderer.js
index eac28bffb..0aea9b219 100644
--- a/js/jiddly-app/src/renderer/scenes/Block2DRenderer.js
+++ b/js/griddlyjs-app/src/renderer/Block2DRenderer.js
@@ -2,12 +2,15 @@ import Phaser from "phaser";
import RendererBase from "./RendererBase";
class Block2DRenderer extends RendererBase {
- constructor(scene, renderConfig, avatarObject) {
- super(scene, renderConfig, avatarObject);
+ constructor(scene, rendererName, renderConfig, avatarObject, centerObjects) {
+ super(scene, rendererName, renderConfig, avatarObject, centerObjects);
this.objectTemplates = {};
}
addObject = (objectName, objectTemplateName, x, y, orientation) => {
+ if (objectName === "background") {
+ return;
+ }
const objectTemplate = this.objectTemplates[objectTemplateName];
const sprite = this.scene.add.sprite(
this.getCenteredX(x),
@@ -28,13 +31,32 @@ class Block2DRenderer extends RendererBase {
)
);
- sprite.setRotation(this.getOrientationAngleRads(orientation));
+ if (this.avatarObject !== objectName) {
+ sprite.setRotation(this.getOrientationAngleRads(orientation));
+ } else if (this.renderConfig.RotateAvatarImage) {
+ sprite.setRotation(this.getOrientationAngleRads(orientation));
+ }
+
sprite.setDepth(objectTemplate.zIdx);
+ if (this.container) {
+ this.container.add(sprite);
+ }
+
return sprite;
};
- updateObject = (sprite, objectName, objectTemplateName, x, y, orientation) => {
+ updateObject = (
+ sprite,
+ objectName,
+ objectTemplateName,
+ x,
+ y,
+ orientation
+ ) => {
+ if (objectName === "background") {
+ return;
+ }
const objectTemplate = this.objectTemplates[objectTemplateName];
sprite.setPosition(this.getCenteredX(x), this.getCenteredY(y));
sprite.setTexture(objectTemplate.id);
@@ -52,26 +74,34 @@ class Block2DRenderer extends RendererBase {
)
);
- sprite.setRotation(this.getOrientationAngleRads(orientation));
- sprite.setScale(objectTemplate.scale);
+ if (this.avatarObject !== objectName) {
+ sprite.setRotation(this.getOrientationAngleRads(orientation));
+ } else if (this.renderConfig.RotateAvatarImage) {
+ sprite.setRotation(this.getOrientationAngleRads(orientation));
+ }
+
sprite.setDepth(objectTemplate.zIdx);
};
loadTemplates = (objects) => {
this.scene.load.baseURL = "resources/images/";
objects.forEach((object) => {
- const block2DConfig = object.Observers.Block2D;
+ const block2DConfig = object.Observers[this.rendererName];
for (let idx = 0; idx < block2DConfig.length; idx++) {
const config = block2DConfig[idx];
+ const color = config.Color || [1, 1, 1];
+
const objectTemplate = {
+ name: object.Name,
+ internal: object.Internal ? true : false,
id: object.Name + idx,
scale: config.Scale || 1.0,
color: {
- r: config.Color[0],
- g: config.Color[1],
- b: config.Color[2],
+ r: color[0],
+ g: color[1],
+ b: color[2],
},
zIdx: object.Z || 0,
};
@@ -96,7 +126,7 @@ class Block2DRenderer extends RendererBase {
case "hexagon":
return "block_shapes/hexagon.png";
default:
- this.displayError("Cannot find image for BLOCK_2D shape " + shape);
+ console.warn("Cannot find image for BLOCK_2D shape " + shape);
return "block_shapes/square.png";
}
};
diff --git a/js/jiddly-app/src/renderer/scenes/LoadingScene.js b/js/griddlyjs-app/src/renderer/LoadingScene.js
similarity index 54%
rename from js/jiddly-app/src/renderer/scenes/LoadingScene.js
rename to js/griddlyjs-app/src/renderer/LoadingScene.js
index bfbe80aec..c8bc9a04c 100644
--- a/js/jiddly-app/src/renderer/scenes/LoadingScene.js
+++ b/js/griddlyjs-app/src/renderer/LoadingScene.js
@@ -1,4 +1,5 @@
import Phaser from "phaser";
+import { COLOR_LOADING_TEXT } from "./ThemeConsts";
class LoadingScene extends Phaser.Scene {
constructor() {
@@ -17,11 +18,26 @@ class LoadingScene extends Phaser.Scene {
this.cameras.main.height / 2,
"Loading Griddly GDY",
{
- font: "32px Arial",
- fill: "#ff0044",
+ fontFamily: "Droid Sans Mono",
+ fontSize: "32px",
+ fill: COLOR_LOADING_TEXT,
align: "center",
}
);
+
+ this.running = this.add.text(0, 0, "\uf70c", {
+ fontFamily: "Font Awesome Solid",
+ fontSize: "32px",
+ fill: COLOR_LOADING_TEXT,
+ align: "center",
+ });
+
+ this.runningSolid = this.add.text(32, 0, "\uf70c", {
+ fontFamily: "Font Awesome Solid",
+ fontSize: "32px",
+ fill: COLOR_LOADING_TEXT,
+ align: "center",
+ });
}
update() {
diff --git a/js/jiddly-app/src/renderer/scenes/RendererBase.js b/js/griddlyjs-app/src/renderer/RendererBase.js
similarity index 58%
rename from js/jiddly-app/src/renderer/scenes/RendererBase.js
rename to js/griddlyjs-app/src/renderer/RendererBase.js
index 8d87a185e..d3db63bf4 100644
--- a/js/jiddly-app/src/renderer/scenes/RendererBase.js
+++ b/js/griddlyjs-app/src/renderer/RendererBase.js
@@ -1,36 +1,53 @@
-
class RendererBase {
- constructor(scene, renderConfig, avatarObject) {
+ constructor(
+ scene,
+ rendererName,
+ renderConfig,
+ avatarObject,
+ centerObjects = true
+ ) {
this.scene = scene;
+ this.rendererName = rendererName;
this.renderConfig = renderConfig;
this.avatarObject = avatarObject;
+ this.centerObjects = centerObjects;
if (!this.scene.imagePaths) {
this.scene.imagePaths = {};
}
}
- init(gridWidth, gridHeight) {
- this.gridHeight = gridHeight;
+ init(gridWidth, gridHeight, container) {
this.gridWidth = gridWidth;
- };
+ this.gridHeight = gridHeight;
+ this.container = container;
+ }
- beginUpdate(objects) {
- // We dont really have to do anything here
- };
+ beginUpdate(objects, state) {}
+
+ recenter(gridWidth, gridHeight) {
+ this.gridWidth = gridWidth;
+ this.gridHeight = gridHeight;
+ }
getCenteredX = (x) => {
- return (
- this.scene.cameras.main.centerX +
- (x - this.gridWidth / 2.0 + 0.5) * this.renderConfig.TileSize
- );
+ const scaledX =
+ (x - this.gridWidth / 2.0 + 0.5) * this.renderConfig.TileSize;
+ if (this.centerObjects) {
+ return scaledX + this.scene.cameras.main.centerX;
+ } else {
+ return scaledX;
+ }
};
getCenteredY = (y) => {
- return (
- this.scene.cameras.main.centerY +
- (y - this.gridHeight / 2.0 + 0.5) * this.renderConfig.TileSize
- );
+ const scaledY =
+ (y - this.gridHeight / 2.0 + 0.5) * this.renderConfig.TileSize;
+ if (this.centerObjects) {
+ return scaledY + this.scene.cameras.main.centerY;
+ } else {
+ return scaledY;
+ }
};
loadImage = (image, imagePath) => {
@@ -46,6 +63,10 @@ class RendererBase {
this.scene.load.image(image, imagePath);
};
+ getTilingImage = (objectTemplate, x, y) => {
+ return objectTemplate.id;
+ };
+
getOrientationAngleRads = (orientation) => {
switch (orientation) {
default:
diff --git a/js/jiddly-app/src/renderer/scenes/Sprite2DRenderer.js b/js/griddlyjs-app/src/renderer/Sprite2DRenderer.js
similarity index 76%
rename from js/jiddly-app/src/renderer/scenes/Sprite2DRenderer.js
rename to js/griddlyjs-app/src/renderer/Sprite2DRenderer.js
index f8314abe2..d17430f10 100644
--- a/js/jiddly-app/src/renderer/scenes/Sprite2DRenderer.js
+++ b/js/griddlyjs-app/src/renderer/Sprite2DRenderer.js
@@ -2,54 +2,74 @@ import Phaser from "phaser";
import RendererBase from "./RendererBase";
class Sprite2DRenderer extends RendererBase {
- constructor(scene, renderConfig, avatarObject) {
- super(scene, renderConfig, avatarObject);
+ constructor(scene, rendererName, renderConfig, avatarObject, centerObjects) {
+ super(scene, rendererName, renderConfig, avatarObject, centerObjects);
this.objectTemplates = {};
this.tileLocations = new Map();
}
- init(gridWidth, gridHeight) {
- super.init(gridWidth, gridHeight);
+ init(gridWidth, gridHeight, container) {
+ super.init(gridWidth, gridHeight, container);
+ this.updateBackgroundTiling({ minx: 0, miny: 0, gridWidth, gridHeight });
+ }
+
+ updateBackgroundTiling = (state) => {
if ("BackgroundTile" in this.renderConfig) {
- const sprite = this.scene.add.tileSprite(
- this.scene.cameras.main.centerX,
- this.scene.cameras.main.centerY,
- gridWidth * this.renderConfig.TileSize,
- gridHeight * this.renderConfig.TileSize,
+ if (this.backgroundSprite) {
+ this.backgroundSprite.destroy();
+ }
+
+ this.backgroundSprite = this.scene.add.tileSprite(
+ this.getCenteredX(state.minx - 0.5),
+ this.getCenteredY(state.miny - 0.5),
+ state.gridWidth * this.renderConfig.TileSize,
+ state.gridHeight * this.renderConfig.TileSize,
"__background__"
);
const backgroundSourceImage =
this.scene.textures.get("__background__").source[0];
- sprite.tileScaleX =
+ this.backgroundSprite.tileScaleX =
this.renderConfig.TileSize / backgroundSourceImage.width;
- sprite.tileScaleY =
+ this.backgroundSprite.tileScaleY =
this.renderConfig.TileSize / backgroundSourceImage.height;
- this.backgroundSprite = sprite;
+ if (this.container) {
+ this.container.add(this.backgroundSprite);
+ }
+
+ this.backgroundSprite.setDepth(-1);
+ this.backgroundSprite.setOrigin(0, 0);
}
- }
+ };
- beginUpdate(objects) {
+ beginUpdate(objects, state) {
super.beginUpdate(objects);
- if (this.backgroundSprite) {
- this.backgroundSprite.setPosition(
- this.scene.cameras.main.centerX,
- this.scene.cameras.main.centerY
- );
- }
this.tileLocations.clear();
+
+ // Recalculate Grid width and height for background tiling
objects.forEach((object) => {
this.tileLocations.set(
this.getObjectLocationKey(object.location.x, object.location.y),
object.name
);
});
+
+ if (state) {
+ this.updateBackgroundTiling(state);
+ } else {
+ this.updateBackgroundTiling({
+ minx: 0,
+ miny: 0,
+ gridWidth: this.gridWidth,
+ gridHeight: this.gridHeight,
+ });
+ }
}
getObjectLocationKey = (x, y) => {
@@ -57,6 +77,9 @@ class Sprite2DRenderer extends RendererBase {
};
addObject = (objectName, objectTemplateName, x, y, orientation) => {
+ if (objectName === "background") {
+ return;
+ }
const objectTemplate = this.objectTemplates[objectTemplateName];
const sprite = this.scene.add.sprite(
@@ -85,10 +108,24 @@ class Sprite2DRenderer extends RendererBase {
}
sprite.setDepth(objectTemplate.zIdx);
+ if (this.container) {
+ this.container.add(sprite);
+ }
+
return sprite;
};
- updateObject = (sprite, objectName, objectTemplateName, x, y, orientation) => {
+ updateObject = (
+ sprite,
+ objectName,
+ objectTemplateName,
+ x,
+ y,
+ orientation
+ ) => {
+ if (!sprite) {
+ return;
+ }
const objectTemplate = this.objectTemplates[objectTemplateName];
sprite.setPosition(this.getCenteredX(x), this.getCenteredY(y));
@@ -123,7 +160,7 @@ class Sprite2DRenderer extends RendererBase {
}
objects.forEach((object) => {
- const sprite2DConfig = object.Observers.Sprite2D;
+ const sprite2DConfig = object.Observers[this.rendererName];
for (let idx = 0; idx < sprite2DConfig.length; idx++) {
const config = sprite2DConfig[idx];
@@ -132,6 +169,7 @@ class Sprite2DRenderer extends RendererBase {
const objectTemplate = {
name: object.Name,
id: object.Name + idx,
+ internal: object.Internal ? true : false,
tilingMode: config.TilingMode || "NONE",
scale: config.Scale || 1.0,
color: config.Color
@@ -153,6 +191,7 @@ class Sprite2DRenderer extends RendererBase {
const objectTemplate = {
name: object.Name,
id: object.Name + idx,
+ internal: object.Internal ? true : false,
tilingMode: "NONE",
scale: config.Scale || 1.0,
color: config.Color
diff --git a/js/griddlyjs-app/src/renderer/ThemeConsts.js b/js/griddlyjs-app/src/renderer/ThemeConsts.js
new file mode 100644
index 000000000..2d440724c
--- /dev/null
+++ b/js/griddlyjs-app/src/renderer/ThemeConsts.js
@@ -0,0 +1,31 @@
+module.exports = Object.freeze({
+ COLOR_SELECT_TILE_TEXT: "#3dc9b0",
+ COLOR_LOADING_TEXT: "#3dc9b0",
+
+ COLOR_SELECT_MOVE_TOOL_TEXT: "#858585",
+ COLOR_SELECT_SELECT_TOOL_TEXT: "#3dc9b0",
+ COLOR_SELECT_PLACE_TOOL_TEXT: "#ce9178",
+
+ COLOR_RECORDING_RECORD_TEXT: "#f14c4c",
+ COLOR_RECORDING_BLINK_TEXT: "#101010",
+ COLOR_RECORDING_PLAY_TEXT: "#3dc9b0",
+ COLOR_RECORDING_STOP_TEXT: "#f14c4c",
+ COLOR_RECORDING_DISABLED_TEXT: "#151515",
+
+ COLOR_POLICY_DEBUG_PLAY_TEXT: "#3dc9b0",
+ COLOR_POLICY_DEBUG_STOP_TEXT: "#f14c4c",
+ COLOR_POLICY_DEBUG_DISABLED_TEXT: "#151515",
+
+ COLOR_LOADING: 0x3dc9b0,
+ COLOR_ERROR: 0xf14c4c,
+ COLOR_SELECT: 0x3dc9b0,
+ COLOR_PLACE: 0xce9178,
+ COLOR_FOREGROUND: 0xd4d4d4,
+ COLOR_PANEL_DARK: 0x1e1e1e,
+ COLOR_PANEL_LIGHT: 0x303030,
+ COLOR_PANEL_LIGHTER: 0x505050,
+
+ COLOR_RECORDING_FLASH: 0xf14c4c,
+
+ COLOR_SELECT_TILE_HIGHLIGHTED: 0xd4d4d4
+});
\ No newline at end of file
diff --git a/js/jiddly-app/src/level_editor/LevelEditor.js b/js/griddlyjs-app/src/renderer/level_editor/LevelEditor.js
similarity index 67%
rename from js/jiddly-app/src/level_editor/LevelEditor.js
rename to js/griddlyjs-app/src/renderer/level_editor/LevelEditor.js
index 09592f02e..cd3521fd5 100644
--- a/js/jiddly-app/src/level_editor/LevelEditor.js
+++ b/js/griddlyjs-app/src/renderer/level_editor/LevelEditor.js
@@ -3,10 +3,9 @@ import Phaser from "phaser";
import EditorScene from "./scenes/EditorScene";
import { Col, Row } from "react-bootstrap";
-import LoadingScene from "./scenes/LoadingScene";
-import EditorState from "./EditorState";
+import LoadingScene from "../LoadingScene";
-class Player extends Component {
+class LevelEditor extends Component {
updateCanvasSize = () => {
this.game.scale.resize(this.props.width, this.props.height);
};
@@ -17,16 +16,11 @@ class Player extends Component {
parent: this.divElement,
backgroundColor: "#000000",
scale: {
- // mode: Phaser.Scale.ScaleModes.RESIZE,
expandParent: false,
},
scene: [LoadingScene, EditorScene],
};
-
-
- this.editorState = new EditorState();
-
this.game = new Phaser.Game(config);
this.updateCanvasSize();
@@ -37,22 +31,20 @@ class Player extends Component {
if (prevProps.gdyHash === 0 && this.props.gdy) {
this.game.scene.remove("LoadingScene");
-
- this.editorState.loadGDY(this.props.gdy);
-
- const levels = this.props.gdy.Environment.Levels;
-
- this.editorState.loadLevelString(levels[this.props.levelId]);
-
this.game.scene.start("EditorScene", {
- editorState: this.editorState,
+ gdy: this.props.gdy,
+ editorStateHandler: this.props.editorStateHandler,
+ rendererConfig: this.props.rendererConfig,
+ rendererName: this.props.rendererName,
+ onDisplayMessage: this.props.onDisplayMessage
});
} else if (prevProps.gdyHash !== this.props.gdyHash) {
-
- this.editorState.loadGDY(this.props.gdy);
-
this.game.scene.getScene("EditorScene").scene.restart({
- editorState: this.editorState,
+ gdy: this.props.gdy,
+ editorStateHandler: this.props.editorStateHandler,
+ rendererConfig: this.props.rendererConfig,
+ rendererName: this.props.rendererName,
+ onDisplayMessage: this.props.onDisplayMessage
});
}
}
@@ -77,4 +69,4 @@ class Player extends Component {
}
}
-export default Player;
+export default LevelEditor;
diff --git a/js/griddlyjs-app/src/renderer/level_editor/scenes/EditorScene.js b/js/griddlyjs-app/src/renderer/level_editor/scenes/EditorScene.js
new file mode 100644
index 000000000..36fc5d997
--- /dev/null
+++ b/js/griddlyjs-app/src/renderer/level_editor/scenes/EditorScene.js
@@ -0,0 +1,672 @@
+import Phaser from "phaser";
+
+import Block2DRenderer from "../../Block2DRenderer";
+import Sprite2DRenderer from "../../Sprite2DRenderer";
+import {
+ COLOR_LOADING_TEXT,
+ COLOR_PANEL_DARK,
+ COLOR_PANEL_LIGHT,
+ COLOR_SELECT_TILE_TEXT,
+ COLOR_SELECT,
+ COLOR_PLACE,
+ COLOR_FOREGROUND,
+ COLOR_SELECT_MOVE_TOOL_TEXT,
+ COLOR_SELECT_SELECT_TOOL_TEXT,
+ COLOR_SELECT_PLACE_TOOL_TEXT,
+ COLOR_SELECT_TILE_HIGHLIGHTED,
+} from "../../ThemeConsts";
+
+const selectTileBoxHeight = 30;
+const selectTileBoxPadding = 3;
+
+const selectToolBoxPadding = 50;
+const selectToolBoxWidth = 35;
+const selectToolBoxHeight = 35;
+
+const selectTileSpriteOffset = 3;
+
+const toolBoxYOffset = 50;
+const tileBoxYOffset = 100;
+
+class EditorScene extends Phaser.Scene {
+ constructor() {
+ super("EditorScene");
+
+ this.editorCenterX = 0;
+ this.editorCenterY = 0;
+
+ this.origDragPoint = null;
+
+ this.editorGridLocation = {
+ x: 0,
+ y: 0,
+ };
+
+ this.selectTileBgMap = {};
+ }
+
+ createTileMenu() {
+ // Make a rectangle on the left and add more rectangles to it
+ this.selectTilePanel = this.add.rectangle(
+ 0,
+ 0,
+ this.cameras.main.width / 5,
+ this.cameras.main.height,
+ COLOR_PANEL_DARK
+ );
+
+ this.selectTilePanel.setOrigin(0, 0);
+ this.selectTilePanel.setDepth(200);
+ this.selectTilePanel.setInteractive();
+ this.selectTilePanel.on("pointerdown", (e) => {
+ e.event.preventDefault();
+ } );
+ this.selectTilePanel.on("pointermove", (e) => {
+ e.event.preventDefault();
+ } );
+
+ const selectToolButtonOffset = this.selectTilePanel.width / 2;
+
+ const moveToolButtonX = selectToolButtonOffset - selectToolBoxPadding;
+ //const selectToolButtonX = selectToolButtonOffset;
+ const placeToolButtonX = selectToolButtonOffset;
+
+ // Move Tool Box
+ this.selectMoveToolBg = this.add.rectangle(
+ moveToolButtonX,
+ toolBoxYOffset,
+ selectToolBoxWidth,
+ selectToolBoxHeight,
+ COLOR_PANEL_LIGHT
+ );
+ this.selectMoveToolBg.setDepth(201);
+ this.selectMoveToolBg.setInteractive();
+ this.selectMoveToolBg.on("pointerdown", () => this.selectTool("move"));
+ this.add
+ .text(moveToolButtonX, toolBoxYOffset, "\uf047", {
+ fontFamily: "Font Awesome Solid",
+ color: COLOR_SELECT_MOVE_TOOL_TEXT,
+ fontSize: "24px",
+ })
+ .setDepth(202)
+ .setOrigin(0.5, 0.5);
+
+ // Select Tool Box
+ // this.selectSelectToolBg = this.add.rectangle(
+ // selectToolButtonX,
+ // toolBoxYOffset,
+ // selectToolBoxWidth,
+ // selectToolBoxHeight,
+ // COLOR_PANEL_LIGHT
+ // );
+ // this.selectSelectToolBg.setDepth(201);
+ // this.selectSelectToolBg.setInteractive();
+ // this.selectSelectToolBg.on("pointerdown", () => this.selectTool("select"));
+ // this.add
+ // .text(selectToolButtonX, toolBoxYOffset, "\uf245", {
+ // fontFamily: "Font Awesome Solid",
+ // color: COLOR_SELECT_SELECT_TOOL_TEXT,
+ // fontSize: "24px",
+ // })
+ // .setDepth(202)
+ // .setOrigin(0.5, 0.5);
+
+ // Place Tool Box
+ this.selectPlaceToolBg = this.add.rectangle(
+ placeToolButtonX,
+ toolBoxYOffset,
+ selectToolBoxWidth,
+ selectToolBoxHeight,
+ COLOR_PANEL_LIGHT
+ );
+ this.selectPlaceToolBg.setDepth(201);
+ this.selectPlaceToolBg.setInteractive();
+ this.selectPlaceToolBg.on("pointerdown", () => this.selectTool("place"));
+ this.add
+ .text(placeToolButtonX, toolBoxYOffset, "\uf1fc", {
+ fontFamily: "Font Awesome Solid",
+ color: COLOR_SELECT_PLACE_TOOL_TEXT,
+ fontSize: "24px",
+ })
+ .setDepth(202)
+ .setOrigin(0.5, 0.5);
+
+ const objectNames = new Set();
+ let o = 0;
+ for (const objectTemplateName in this.grenderer.objectTemplates) {
+ const objectTemplate = this.grenderer.objectTemplates[objectTemplateName];
+
+ // Skip objects that are marked Internal (they are only used in shaders etc...)
+ if(objectTemplate.internal) {
+ continue;
+ }
+
+ if (!objectNames.has(objectTemplate.name)) {
+ objectNames.add(objectTemplate.name);
+
+ const selectTileBg = this.add.rectangle(
+ this.selectTilePanel.x + selectTileBoxPadding,
+ tileBoxYOffset +
+ this.selectTilePanel.y +
+ o * (selectTileBoxPadding * 2 + selectTileBoxHeight),
+ this.selectTilePanel.width - 3 * selectTileBoxPadding,
+ selectTileBoxHeight,
+ COLOR_PANEL_LIGHT
+ );
+ selectTileBg.setOrigin(0, 0);
+ selectTileBg.setDepth(201);
+ selectTileBg.setInteractive();
+ selectTileBg.on("pointerdown", () => this.selectTile(objectTemplate));
+
+ this.selectTileBgMap[objectTemplate.id] = selectTileBg;
+
+ const selectTileTopRight = selectTileBg.getTopRight();
+ const selectTileTopLeft = selectTileBg.getTopLeft();
+
+ // Create a sprite and add it to the list .. if there are multiple tiles we can cycle through them on mouseover
+ const selectTileText = this.add.text(
+ selectTileTopLeft.x + selectTileSpriteOffset,
+ selectTileTopLeft.y + selectTileSpriteOffset,
+ objectTemplate.name,
+ {
+ fontFamily: "Font Awesome Regular",
+ color: COLOR_SELECT_TILE_TEXT,
+ font: "16px",
+ }
+ );
+ selectTileText.setOrigin(0, 0);
+ selectTileText.setDepth(202);
+ const selectTileSprite = this.add.sprite(
+ selectTileTopRight.x -
+ this.renderConfig.TileSize / 2.0 -
+ selectTileSpriteOffset,
+ selectTileTopRight.y +
+ this.renderConfig.TileSize / 2.0 +
+ selectTileSpriteOffset,
+ this.grenderer.getTilingImage(objectTemplate, -1, -1)
+ );
+ selectTileSprite.setOrigin(0.5, 0.5);
+ selectTileSprite.setDisplaySize(
+ this.renderConfig.TileSize * objectTemplate.scale,
+ this.renderConfig.TileSize * objectTemplate.scale
+ );
+ selectTileSprite.setTint(
+ Phaser.Display.Color.GetColor(
+ objectTemplate.color.r * 255,
+ objectTemplate.color.g * 255,
+ objectTemplate.color.b * 255
+ )
+ );
+ selectTileSprite.setDepth(202);
+
+ o++;
+ }
+ }
+ }
+
+ displayError = (message, error) => {
+ this.onDisplayMessage(message, "error", error);
+ };
+
+ init = (data) => {
+ this.gdy = data.gdy;
+
+ this.onDisplayMessage = data.onDisplayMessage;
+ this.editorStateHandler = data.editorStateHandler;
+ this.avatarObject = this.gdy.Environment.Player.AvatarObject;
+ this.renderConfig = data.rendererConfig;
+ this.rendererName = data.rendererName;
+
+ if (this.renderConfig.Type === "BLOCK_2D") {
+ this.grenderer = new Block2DRenderer(
+ this,
+ this.rendererName,
+ this.renderConfig,
+ this.avatarObject
+ );
+ } else if (this.renderConfig.Type === "SPRITE_2D") {
+ this.grenderer = new Sprite2DRenderer(
+ this,
+ this.rendererName,
+ this.renderConfig,
+ this.avatarObject
+ );
+ }
+
+ this.renderData = {
+ objects: {},
+ };
+
+ this.currentTool = "place";
+ };
+
+ updateState = (state) => {
+ const objectList = [];
+
+ for (const objectsAtLocation in state.objects) {
+ for (const object in state.objects[objectsAtLocation]) {
+ objectList.push(state.objects[objectsAtLocation][object]);
+ }
+ }
+
+ const newObjectIds = objectList.map((object) => {
+ return object.id;
+ });
+
+ this.grenderer.beginUpdate(objectList, state);
+
+ objectList.forEach((object) => {
+ const objectTemplateName = object.name + object.renderTileId;
+ if (object.id in this.renderData.objects) {
+ const currentObjectData = this.renderData.objects[object.id];
+ this.grenderer.updateObject(
+ currentObjectData.sprite,
+ object.name,
+ objectTemplateName,
+ object.location.x,
+ object.location.y,
+ object.orientation
+ );
+
+ this.renderData.objects[object.id] = {
+ ...currentObjectData,
+ object,
+ };
+ } else {
+ const sprite = this.grenderer.addObject(
+ object.name,
+ objectTemplateName,
+ object.location.x,
+ object.location.y,
+ object.orientation
+ );
+
+ this.renderData.objects[object.id] = {
+ object,
+ sprite,
+ };
+ }
+ });
+
+ for (const k in this.renderData.objects) {
+ const id = this.renderData.objects[k].object.id;
+ if (!newObjectIds.includes(id)) {
+ if(this.renderData.objects[k].sprite) {
+ this.renderData.objects[k].sprite.destroy();
+ }
+ delete this.renderData.objects[k];
+ }
+ }
+
+ this.editorGridBounds = {
+ origX: this.grenderer.getCenteredX(-3.5),
+ origY: this.grenderer.getCenteredY(-3.5),
+ x: this.grenderer.getCenteredX(state.minx - 3.5),
+ y: this.grenderer.getCenteredY(state.miny - 3.5),
+ width: (state.gridWidth + 6) * this.renderConfig.TileSize,
+ height: (state.gridHeight + 6) * this.renderConfig.TileSize,
+ };
+
+ if (this.grid) {
+ this.grid.destroy();
+ }
+
+ this.grid = this.add.grid(
+ this.editorGridBounds.x,
+ this.editorGridBounds.y,
+ this.editorGridBounds.width,
+ this.editorGridBounds.height,
+ this.renderConfig.TileSize,
+ this.renderConfig.TileSize
+ );
+
+ this.grid.setOutlineStyle(COLOR_FOREGROUND, 0.2);
+ this.grid.setDepth(50);
+ this.grid.setOrigin(0, 0);
+
+ this.grid.setInteractive();
+ this.grid.on("pointermove", (pointer) => {
+ this.mouseMoved(pointer.x, pointer.y);
+ });
+
+ this.editorContainer.add(this.grid);
+
+
+ this.editorContainer.setPosition(
+ this.editorCenterX,
+ this.editorCenterY
+ );
+
+ this.editorContainer.sort("depth");
+ };
+
+ selectTile = (objectTemplate) => {
+ ///if (this.currentTool !== "place") {
+ this.selectTool("place");
+ //}
+ this.selectedTile = objectTemplate;
+
+ if (this.placeTileOverlay) {
+ this.placeTileOverlay.destroy();
+ }
+
+ this.placeTileOverlay = this.add.sprite(
+ this.editorGridLocation.x,
+ this.editorGridLocation.y,
+ this.selectedTile.id
+ );
+ this.placeTileOverlay.on("pointerdown", this.handlePlaceAction);
+ this.editorContainer.add(this.placeTileOverlay);
+
+
+ this.placeTileOverlay.setTexture(
+ this.grenderer.getTilingImage(objectTemplate, -1, -1)
+ );
+
+ this.placeTileOverlay.setDepth(101);
+ this.placeTileOverlay.setAlpha(0.5);
+ this.placeTileOverlay.setOrigin(0.5, 0.5);
+ this.placeTileOverlay.setInteractive();
+ this.placeTileOverlay.setDisplaySize(
+ objectTemplate.scale * this.renderConfig.TileSize,
+ objectTemplate.scale * this.renderConfig.TileSize
+ );
+ this.placeTileOverlay.setTint(
+ Phaser.Display.Color.GetColor(
+ objectTemplate.color.r * 255,
+ objectTemplate.color.g * 255,
+ objectTemplate.color.b * 255
+ )
+ );
+
+ for (const selectTileBgId in this.selectTileBgMap) {
+ const selectTileBg = this.selectTileBgMap[selectTileBgId];
+
+ if (selectTileBgId === objectTemplate.id) {
+ selectTileBg.setStrokeStyle(3, COLOR_SELECT_TILE_HIGHLIGHTED);
+ } else {
+ selectTileBg.setStrokeStyle(0);
+ }
+ }
+ };
+
+ selectTool = (toolName) => {
+ this.currentTool = toolName;
+ switch (this.currentTool) {
+ case "move":
+ this.selectMoveToolBg.setStrokeStyle(3, COLOR_SELECT_TILE_HIGHLIGHTED);
+ //this.selectSelectToolBg.setStrokeStyle(0);
+ this.selectPlaceToolBg.setStrokeStyle(0);
+ this.selectRectangle.setActive(false).setVisible(false);
+ this.placeRectangle.setActive(false).setVisible(false);
+ if (this.placeTileOverlay) {
+ this.placeTileOverlay.destroy();
+ }
+ this.selectedTile = null;
+ for (const selectTileBgId in this.selectTileBgMap) {
+ this.selectTileBgMap[selectTileBgId].setStrokeStyle(0);
+ }
+ break;
+ case "select":
+ this.selectMoveToolBg.setStrokeStyle(0);
+ // this.selectSelectToolBg.setStrokeStyle(
+ // 3,
+ // COLOR_SELECT_TILE_HIGHLIGHTED
+ // );
+ this.selectPlaceToolBg.setStrokeStyle(0);
+ this.selectRectangle.setActive(true).setVisible(true);
+ this.placeRectangle.setActive(false).setVisible(false);
+ if (this.placeTileOverlay) {
+ this.placeTileOverlay.destroy();
+ }
+ this.selectedTile = null;
+ for (const selectTileBgId in this.selectTileBgMap) {
+ this.selectTileBgMap[selectTileBgId].setStrokeStyle(0);
+ }
+ break;
+ case "place":
+ this.selectMoveToolBg.setStrokeStyle(0);
+ //this.selectSelectToolBg.setStrokeStyle(0);
+ this.selectPlaceToolBg.setStrokeStyle(3, COLOR_SELECT_TILE_HIGHLIGHTED);
+ this.selectRectangle.setActive(false).setVisible(false);
+ this.placeRectangle.setVisible(true).setActive(true);
+ if (this.placeTileOverlay) {
+ this.placeTileOverlay.destroy();
+ }
+ break;
+ default:
+ break;
+ }
+ };
+
+ handlePlaceAction = (pointer) => {
+ if (pointer.rightButtonDown()) {
+ this.removeObject();
+ } else {
+ this.placeObject();
+ }
+ };
+
+ removeObject = () => {
+ this.editorStateHandler.removeTile(
+ this.editorGridLocation.relX - 3,
+ this.editorGridLocation.relY - 3
+ );
+ };
+
+ placeObject = () => {
+ if (this.selectedTile) {
+ this.editorStateHandler.addTile(
+ this.editorGridLocation.relX - 3,
+ this.editorGridLocation.relY - 3,
+ this.selectedTile.name,
+ 0,
+ "NONE"
+ );
+ }
+ };
+
+ selectObject = () => {};
+
+ mouseMoved = (x, y) => {
+ const editorX = x - this.editorCenterX;
+ const editorY = y - this.editorCenterY;
+
+ if (
+ editorX >= this.editorGridBounds.x &&
+ editorY >= this.editorGridBounds.y &&
+ editorX < this.editorGridBounds.x + this.editorGridBounds.width &&
+ editorY < this.editorGridBounds.y + this.editorGridBounds.height
+ ) {
+ // Calculate grid location
+ this.editorGridLocation = {
+ relX: Math.floor(
+ (editorX - this.editorGridBounds.origX) / this.renderConfig.TileSize
+ ),
+ relY: Math.floor(
+ (editorY - this.editorGridBounds.origY) / this.renderConfig.TileSize
+ ),
+ x: Math.floor(
+ (editorX - this.editorGridBounds.x) / this.renderConfig.TileSize
+ ),
+ y: Math.floor(
+ (editorY - this.editorGridBounds.y) / this.renderConfig.TileSize
+ ),
+ };
+
+ switch (this.currentTool) {
+ case "move":
+ if (this.input.activePointer.isDown) {
+ if (this.origDragPoint) {
+ // move the camera by the amount the mouse has moved since last update
+ this.editorCenterX +=
+ this.input.activePointer.position.x - this.origDragPoint.x;
+ this.editorCenterY +=
+ this.input.activePointer.position.y - this.origDragPoint.y;
+
+ this.editorContainer.setPosition(
+ this.editorCenterX,
+ this.editorCenterY
+ );
+ } // set new drag origin to current position
+ this.origDragPoint = this.input.activePointer.position.clone();
+ } else {
+ this.origDragPoint = null;
+ }
+ break;
+ case "select":
+ this.selectRectangle.setPosition(
+ this.editorGridBounds.x +
+ this.editorGridLocation.x * this.renderConfig.TileSize,
+ this.editorGridBounds.y +
+ this.editorGridLocation.y * this.renderConfig.TileSize
+ );
+ break;
+ case "place":
+ if (this.input.activePointer.isDown) {
+ this.handlePlaceAction(this.input.activePointer);
+ }
+
+ this.placeRectangle.setPosition(
+ this.editorGridBounds.x +
+ this.editorGridLocation.x * this.renderConfig.TileSize,
+ this.editorGridBounds.y +
+ this.editorGridLocation.y * this.renderConfig.TileSize
+ );
+ if (this.placeTileOverlay) {
+ this.placeTileOverlay.setPosition(
+ this.editorGridBounds.x +
+ this.editorGridLocation.x * this.renderConfig.TileSize + this.renderConfig.TileSize/2.0,
+ this.editorGridBounds.y +
+ this.editorGridLocation.y * this.renderConfig.TileSize + this.renderConfig.TileSize/2.0
+ );
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ };
+
+ configureEditGrid = () => {
+
+
+ this.selectRectangle = this.add.rectangle(
+ 0,
+ 0,
+ this.renderConfig.TileSize,
+ this.renderConfig.TileSize
+ );
+ this.selectRectangle.setStrokeStyle(2, COLOR_SELECT, 0.5);
+ this.selectRectangle.setDepth(100);
+ this.selectRectangle.setOrigin(0, 0);
+ this.selectRectangle.setInteractive();
+ this.selectRectangle.on("pointerdown", () => this.selectObject());
+
+ this.placeRectangle = this.add.rectangle(
+ 0,
+ 0,
+ this.renderConfig.TileSize,
+ this.renderConfig.TileSize
+ );
+ this.placeRectangle.setStrokeStyle(2, COLOR_PLACE, 0.5);
+ this.placeRectangle.setDepth(1000);
+ this.placeRectangle.setOrigin(0, 0);
+ this.placeRectangle.setVisible(false);
+ this.placeRectangle.setInteractive();
+ this.placeRectangle.on("pointerdown", this.handlePlaceAction);
+
+ // this.grid = this.add.grid(
+ // this.editorGridBounds.x,
+ // this.editorGridBounds.y,
+ // this.editorGridBounds.width,
+ // this.editorGridBounds.height,
+ // this.renderConfig.TileSize,
+ // this.renderConfig.TileSize
+ // );
+
+ // this.grid.setOutlineStyle(COLOR_FOREGROUND, 0.2);
+ // this.grid.setDepth(50);
+ // this.grid.setOrigin(0, 0);
+
+ // this.grid.setInteractive();
+ // this.grid.on("pointermove", (pointer) => {
+ // this.mouseMoved(pointer.x, pointer.y);
+ // });
+
+ this.editorContainer.add(this.selectRectangle);
+ this.editorContainer.add(this.placeRectangle);
+ // this.editorContainer.add(this.grid);
+ };
+
+ preload() {
+
+ this.input.mouse.disableContextMenu();
+
+ this.loadingText = this.add.text(
+ this.cameras.main.width / 2,
+ this.cameras.main.height / 2,
+ "Loading Level Editor",
+ {
+ fontFamily: "Droid Sans Mono",
+ fill: COLOR_LOADING_TEXT,
+ align: "center",
+ }
+ );
+
+ this.loadingText.setX(this.cameras.main.width / 2);
+ this.loadingText.setY(this.cameras.main.height / 2);
+ this.loadingText.setOrigin(0.5, 0.5);
+
+ if (this.grenderer) {
+ this.grenderer.loadTemplates(this.gdy.Objects);
+ }
+ }
+
+ create() {
+
+ this.loadingText.destroy();
+ this.loaded = true;
+
+ this.editorContainer = this.add.container(
+ this.editorCenterX,
+ this.editorCenterY
+ );
+
+ if (this.grenderer) {
+ const state = this.editorStateHandler.getState();
+ this.grenderer.init(
+ state.gridWidth,
+ state.gridHeight,
+ this.editorContainer
+ );
+ this.updateState(state);
+ this.configureEditGrid();
+ this.createTileMenu();
+ }
+ }
+
+ update() {
+ if (!this.loaded) {
+ this.loadingText.setX(this.cameras.main.width / 2);
+ this.loadingText.setY(this.cameras.main.height / 2);
+ this.loadingText.setOrigin(0.5, 0.5);
+ } else {
+ if (this.grenderer) {
+ const state = this.editorStateHandler.getState();
+ if (state && this.stateHash !== state.hash) {
+ this.stateHash = state.hash;
+ if(state.hash === 0 || this.levelId !== state.levelId) {
+ this.editorCenterX = 0;
+ this.editorCenterY = 0;
+ this.grenderer.recenter(state.gridWidth, state.gridHeight);
+ }
+ this.levelId = state.levelId;
+ this.updateState(state);
+ }
+ }
+ }
+ }
+}
+
+export default EditorScene;
diff --git a/js/griddlyjs-app/src/renderer/level_player/Player.js b/js/griddlyjs-app/src/renderer/level_player/Player.js
new file mode 100644
index 000000000..c2c1afa66
--- /dev/null
+++ b/js/griddlyjs-app/src/renderer/level_player/Player.js
@@ -0,0 +1,68 @@
+import { React, Component } from "react";
+import Phaser from "phaser";
+
+import HumanPlayerScene from "./scenes/HumanPlayerScene";
+import LoadingScene from "../LoadingScene";
+
+class Player extends Component {
+ updateCanvasSize = () => {
+ this.game.scale.resize(this.props.width, this.props.height);
+ };
+
+ componentDidMount() {
+ const config = {
+ type: Phaser.AUTO,
+ parent: this.divElement,
+ backgroundColor: "#000000",
+ scale: {
+ expandParent: false,
+ },
+ scene: [LoadingScene, HumanPlayerScene],
+ };
+
+ this.game = new Phaser.Game(config);
+
+ this.updateCanvasSize();
+ }
+
+ componentDidUpdate(prevProps) {
+ this.updateCanvasSize();
+
+ if (this.props.griddlyjs) {
+ if (prevProps.gdyHash === 0 && this.props.gdy ) {
+ this.game.scene.remove("LoadingScene");
+ this.game.scene.start("HumanPlayerScene", {
+ gdy: this.props.gdy,
+ rendererConfig: this.props.rendererConfig,
+ rendererName: this.props.rendererName,
+ griddlyjs: this.props.griddlyjs,
+ getTrajectory: () => this.props.trajectory,
+ onDisplayMessage: this.props.onDisplayMessage,
+ onTrajectoryComplete: this.props.onTrajectoryComplete,
+ });
+ } else if (prevProps.gdyHash !== this.props.gdyHash) {
+ this.game.scene.getScene("HumanPlayerScene").scene.restart({
+ gdy: this.props.gdy,
+ rendererConfig: this.props.rendererConfig,
+ rendererName: this.props.rendererName,
+ griddlyjs: this.props.griddlyjs,
+ getTrajectory: () => this.props.trajectory,
+ onDisplayMessage: this.props.onDisplayMessage,
+ onTrajectoryComplete: this.props.onTrajectoryComplete,
+ });
+ }
+ }
+ }
+
+ render() {
+ return (
+ {
+ this.divElement = divElement;
+ }}
+ >
+ );
+ }
+}
+
+export default Player;
diff --git a/js/griddlyjs-app/src/renderer/level_player/scenes/HumanPlayerScene.js b/js/griddlyjs-app/src/renderer/level_player/scenes/HumanPlayerScene.js
new file mode 100644
index 000000000..1cf0d2d8c
--- /dev/null
+++ b/js/griddlyjs-app/src/renderer/level_player/scenes/HumanPlayerScene.js
@@ -0,0 +1,749 @@
+import Phaser from "phaser";
+import Block2DRenderer from "../../Block2DRenderer";
+import Sprite2DRenderer from "../../Sprite2DRenderer";
+import {
+ COLOR_LOADING_TEXT,
+ COLOR_PANEL_DARK,
+ COLOR_PANEL_LIGHT,
+ COLOR_PANEL_LIGHTER,
+ COLOR_RECORDING_RECORD_TEXT,
+ COLOR_RECORDING_BLINK_TEXT,
+ COLOR_RECORDING_PLAY_TEXT,
+ COLOR_RECORDING_STOP_TEXT,
+ COLOR_RECORDING_DISABLED_TEXT,
+} from "../../ThemeConsts";
+
+const trajectoryMenuHeight = 45;
+
+const recordingButtonsOffsetX = 30;
+
+const recordingButtonPaddingY = 5;
+const recordingButtonPaddingX = 5;
+
+const recordingButtonWidth = 35;
+const recordingButtonHeight = 35;
+
+class HumanPlayerScene extends Phaser.Scene {
+ constructor() {
+ super("HumanPlayerScene");
+
+ this.stateHash = 0;
+ this.loaded = false;
+ this.defaultTileSize = 24;
+ this.levelStringOrId = "";
+
+ this.keyboardIntervals = new Map();
+ }
+
+ createTrajectoryMenu = () => {
+ const trajectoryMenu = this.add.rectangle(
+ 0,
+ 0,
+ this.cameras.main.width,
+ trajectoryMenuHeight,
+ COLOR_PANEL_DARK
+ );
+ trajectoryMenu.setOrigin(0, 0);
+
+ const recordingButtonY =
+ recordingButtonPaddingY + recordingButtonHeight / 2;
+ const startRecordingButtonX =
+ recordingButtonsOffsetX + recordingButtonWidth / 2;
+ const playTrajectoryButtonX =
+ recordingButtonsOffsetX +
+ 2 * recordingButtonPaddingX +
+ recordingButtonWidth +
+ recordingButtonWidth / 2;
+ const stopButtonX =
+ this.cameras.main.width - recordingButtonsOffsetX - recordingButtonWidth;
+
+ // Start Recording Button
+ this.startRecordingBg = this.add.rectangle(
+ startRecordingButtonX,
+ recordingButtonY,
+ recordingButtonWidth,
+ recordingButtonHeight,
+ COLOR_PANEL_LIGHT
+ );
+ // this.startRecordingBg.setOrigin(0,0);
+ this.startRecordingBg.setDepth(10);
+ this.startRecordingBg.setInteractive();
+ this.startRecordingBg.on("pointerdown", () => this.beginRecording());
+ this.startRecordingText = this.add
+ .text(startRecordingButtonX, recordingButtonY, "\uf111", {
+ fontFamily: "Font Awesome Solid",
+ color: COLOR_RECORDING_RECORD_TEXT,
+ fontSize: "24px",
+ })
+ .setDepth(11)
+ .setOrigin(0.5, 0.5);
+
+ // Play Trajectory Button
+ this.playTrajectoryBg = this.add.rectangle(
+ playTrajectoryButtonX,
+ recordingButtonY,
+ recordingButtonWidth,
+ recordingButtonHeight,
+ COLOR_PANEL_LIGHT
+ );
+ this.playTrajectoryBg.setDepth(10);
+ this.playTrajectoryBg.setInteractive();
+ this.playTrajectoryBg.on("pointerdown", () => this.beginPlayback());
+ this.playTrajectoryText = this.add
+ .text(playTrajectoryButtonX, recordingButtonY, "\uf04b", {
+ fontFamily: "Font Awesome Solid",
+ color: COLOR_RECORDING_PLAY_TEXT,
+ fontSize: "24px",
+ })
+ .setDepth(11)
+ .setOrigin(0.5, 0.5);
+
+ // Stop Button
+ this.stopBg = this.add.rectangle(
+ stopButtonX,
+ recordingButtonY,
+ recordingButtonWidth,
+ recordingButtonHeight,
+ COLOR_PANEL_LIGHT
+ );
+ this.stopBg.setDepth(10);
+ this.stopBg.setInteractive();
+ this.stopBg.on("pointerdown", () => this.stopRecordingOrPlayback());
+ this.stopText = this.add
+ .text(stopButtonX, recordingButtonY, "\uf04d", {
+ fontFamily: "Font Awesome Solid",
+ color: COLOR_RECORDING_STOP_TEXT,
+ fontSize: "24px",
+ })
+ .setDepth(11)
+ .setOrigin(0.5, 0.5);
+ };
+
+ updateTrajectoryMenu = () => {
+ const hasTrajectories = this.currentTrajectoryBuffer ? true : false;
+ if (this.isRecordingTrajectory) {
+ this.startRecordingBg.setFillStyle(COLOR_PANEL_LIGHTER);
+ this.startRecordingText.setColor(
+ this.blink ? COLOR_RECORDING_RECORD_TEXT : COLOR_RECORDING_BLINK_TEXT
+ );
+
+ this.playTrajectoryText.setColor(COLOR_RECORDING_DISABLED_TEXT);
+ this.playTrajectoryBg.setFillStyle(COLOR_PANEL_DARK);
+
+ this.stopBg.setFillStyle(COLOR_PANEL_LIGHT);
+ this.stopText.setColor(COLOR_RECORDING_STOP_TEXT);
+ } else if (this.isRunningTrajectory) {
+ this.startRecordingBg.setFillStyle(COLOR_PANEL_DARK);
+ this.startRecordingText.setColor(COLOR_RECORDING_DISABLED_TEXT);
+
+ this.playTrajectoryText.setColor(COLOR_RECORDING_PLAY_TEXT);
+ this.playTrajectoryBg.setFillStyle(COLOR_PANEL_LIGHTER);
+
+ this.stopBg.setFillStyle(COLOR_PANEL_LIGHT);
+ this.stopText.setColor(COLOR_RECORDING_STOP_TEXT);
+ } else if (hasTrajectories) {
+ this.startRecordingBg.setFillStyle(COLOR_PANEL_LIGHT);
+ this.startRecordingText.setColor(COLOR_RECORDING_RECORD_TEXT);
+
+ this.playTrajectoryText.setColor(COLOR_RECORDING_PLAY_TEXT);
+ this.playTrajectoryBg.setFillStyle(COLOR_PANEL_LIGHT);
+
+ this.stopBg.setFillStyle(COLOR_PANEL_LIGHT);
+ this.stopText.setColor(COLOR_RECORDING_DISABLED_TEXT);
+ } else {
+ this.startRecordingBg.setFillStyle(COLOR_PANEL_LIGHT);
+ this.startRecordingText.setColor(COLOR_RECORDING_RECORD_TEXT);
+
+ this.playTrajectoryText.setColor(COLOR_RECORDING_DISABLED_TEXT);
+ this.playTrajectoryBg.setFillStyle(COLOR_PANEL_DARK);
+
+ this.stopBg.setFillStyle(COLOR_PANEL_LIGHT);
+ this.stopText.setColor(COLOR_RECORDING_DISABLED_TEXT);
+ }
+ };
+
+ createModals = () => {
+ // Set the modals to invisible
+ this.variableDebugModalActive = false;
+ this.controlsModalActive = false;
+
+ // Get all the global variables
+ this.globalVariableDebugText = this.getGlobalVariableDebugText();
+
+ this.variableDebugModal = this.add.text(
+ this.cameras.main.width / 2,
+ this.cameras.main.height / 5,
+ this.globalVariableDebugText
+ );
+ this.variableDebugModal.setBackgroundColor("#000000AA");
+ this.variableDebugModal.setDepth(100);
+ this.variableDebugModal.setOrigin(0, 0);
+ this.variableDebugModal.setVisible(false);
+ this.variableDebugModal.setFontSize(12);
+
+ const actionDescription = [];
+ const actionNames = this.griddlyjs.getActionNames();
+ actionNames.forEach((actionName) => {
+ actionDescription.push(actionName + ": ");
+ this.keyMap.forEach((actionMapping, key) => {
+ if (actionMapping.actionName === actionName)
+ actionDescription.push(
+ " " + String.fromCharCode(key) + ": " + actionMapping.description
+ );
+ });
+ actionDescription.push("");
+ });
+
+ this.controlsModal = this.add.text(
+ this.cameras.main.width / 2,
+ this.cameras.main.height / 5,
+ [
+ "Name: " + this.gdy.Environment.Name,
+ "Description: " + this.gdy.Environment.Description,
+ "",
+ "Actions:",
+ "",
+ ...actionDescription,
+ ]
+ );
+ this.controlsModal.setWordWrapWidth(this.cameras.main.width / 2);
+ this.controlsModal.setBackgroundColor("#000000AA");
+ this.controlsModal.setDepth(100);
+ this.controlsModal.setOrigin(0.5, 0);
+ this.controlsModal.setVisible(false);
+ };
+
+ createHintsModal = () => {
+ this.hintsModal = this.add.text(
+ this.cameras.main.width / 2,
+ this.cameras.main.height - 20,
+ [
+ "Press 'P' to show action mapping and 'I' to show environment variables.",
+ ]
+ );
+ this.hintsModal.setBackgroundColor("#000000AA");
+ this.hintsModal.setDepth(100);
+ this.hintsModal.setOrigin(0.5, 0);
+ this.hintsModal.setVisible(true);
+ this.hintsModal.setFontSize(10);
+ };
+
+ init = (data) => {
+ try {
+ // Functions to interact with the environment
+ this.griddlyjs = data.griddlyjs;
+
+ // Data about the environment
+ this.gdy = data.gdy;
+ this.onDisplayMessage = data.onDisplayMessage;
+ this.onTrajectoryComplete = data.onTrajectoryComplete;
+ this.getTrajectory = data.getTrajectory;
+
+ this.gridHeight = this.griddlyjs.getHeight();
+ this.gridWidth = this.griddlyjs.getWidth();
+
+ this.avatarObject = this.gdy.Environment.Player.AvatarObject;
+ this.rendererName = data.rendererName;
+ this.renderConfig = data.rendererConfig;
+
+ if (this.renderConfig.Type === "BLOCK_2D") {
+ this.grenderer = new Block2DRenderer(
+ this,
+ this.rendererName,
+ this.renderConfig,
+ this.avatarObject
+ );
+ } else if (this.renderConfig.Type === "SPRITE_2D") {
+ this.grenderer = new Sprite2DRenderer(
+ this,
+ this.rendererName,
+ this.renderConfig,
+ this.avatarObject
+ );
+ }
+ } catch (e) {
+ this.displayError("Cannot load GDY file.", e);
+ }
+
+ this.renderData = {
+ objects: {},
+ };
+ };
+
+ displayError = (message, error) => {
+ this.onDisplayMessage(message, "error", error);
+ };
+
+ displayWarning = (message, error) => {
+ this.onDisplayMessage(message, "warning", error);
+ };
+
+ updateState = (state) => {
+ const newObjectIds = state.objects.map((object) => {
+ return object.id;
+ });
+
+ this.grenderer.recenter(
+ this.griddlyjs.getWidth(),
+ this.griddlyjs.getHeight()
+ );
+
+ this.grenderer.beginUpdate(state.objects);
+
+ state.objects.forEach((object) => {
+ const objectTemplateName = object.name + object.renderTileId;
+ if (object.id in this.renderData.objects) {
+ const currentObjectData = this.renderData.objects[object.id];
+ this.grenderer.updateObject(
+ currentObjectData.sprite,
+ object.name,
+ objectTemplateName,
+ object.location.x,
+ object.location.y,
+ object.orientation
+ );
+
+ this.renderData.objects[object.id] = {
+ ...currentObjectData,
+ object,
+ };
+ } else {
+ const sprite = this.grenderer.addObject(
+ object.name,
+ objectTemplateName,
+ object.location.x,
+ object.location.y,
+ object.orientation
+ );
+
+ this.renderData.objects[object.id] = {
+ object,
+ sprite,
+ };
+ }
+ });
+
+ for (const k in this.renderData.objects) {
+ const id = this.renderData.objects[k].object.id;
+ if (!newObjectIds.includes(id)) {
+ this.renderData.objects[k].sprite.destroy();
+ delete this.renderData.objects[k];
+ }
+ }
+ };
+
+ toMovementKey(vector) {
+ return `${vector.x},${vector.y}`;
+ }
+
+ getGlobalVariableDebugText() {
+ const globalVariables = this.griddlyjs.getGlobalVariables();
+
+ const globalVariableDescription = [];
+ const playerVariableDescription = [];
+ for (const variableName in globalVariables) {
+ const variableData = globalVariables[variableName];
+ if (Object.keys(variableData).length === 1) {
+ // We have a global variable
+ const variableValue = variableData[0];
+ globalVariableDescription.push(variableName + ": " + variableValue);
+ } else {
+ // We have a player variable
+ if (this.griddlyjs.playerCount === 1) {
+ const variableValue = variableData[1];
+ playerVariableDescription.push(variableName + ": " + variableValue);
+ } else {
+ let variableValues = "";
+ for (let p = 0; p < this.griddlyjs.playerCount; p++) {
+ const variableValue = variableData[p + 1];
+ variableValues += "\t" + (p + 1) + ": " + variableValue;
+ }
+
+ playerVariableDescription.push(variableName + ":" + variableValues);
+ }
+ }
+ }
+
+ return [
+ "Global Variables:",
+ ...globalVariableDescription,
+ "",
+ "Player Variables:",
+ ...playerVariableDescription,
+ ];
+ }
+
+ updateModals() {
+ if (this.variableDebugModalActive) {
+ this.variableDebugModal.setText(this.globalVariableDebugText);
+ this.variableDebugModal.setFontFamily("Droid Sans Mono");
+ this.variableDebugModal.setPosition(0, 0);
+ this.variableDebugModal.setWordWrapWidth(this.cameras.main.width / 2);
+ }
+
+ if (this.controlsModalActive) {
+ this.controlsModal.setWordWrapWidth(this.cameras.main.width / 2);
+ this.controlsModal.setFontFamily("Droid Sans Mono");
+ this.controlsModal.setPosition(
+ this.cameras.main.width / 2,
+ this.cameras.main.height / 5
+ );
+ }
+ }
+
+ toggleVariableDebugModal() {
+ this.variableDebugModalActive = !this.variableDebugModalActive;
+ this.variableDebugModal.setVisible(this.variableDebugModalActive);
+ }
+
+ toggleControlsModal() {
+ this.controlsModalActive = !this.controlsModalActive;
+ this.controlsModal.setVisible(this.controlsModalActive);
+ }
+
+ setupKeyboardMapping = () => {
+ const actionInputMappings = this.griddlyjs.getActionInputMappings();
+ const actionNames = this.griddlyjs.getActionNames();
+
+ const actionKeyOrder = [
+ Phaser.Input.Keyboard.KeyCodes.THREE,
+ Phaser.Input.Keyboard.KeyCodes.TWO,
+ Phaser.Input.Keyboard.KeyCodes.ONE,
+ Phaser.Input.Keyboard.KeyCodes.L,
+ Phaser.Input.Keyboard.KeyCodes.O,
+ Phaser.Input.Keyboard.KeyCodes.M,
+ Phaser.Input.Keyboard.KeyCodes.K,
+ Phaser.Input.Keyboard.KeyCodes.N,
+ Phaser.Input.Keyboard.KeyCodes.J,
+ Phaser.Input.Keyboard.KeyCodes.U,
+ Phaser.Input.Keyboard.KeyCodes.B,
+ Phaser.Input.Keyboard.KeyCodes.H,
+ Phaser.Input.Keyboard.KeyCodes.Y,
+ Phaser.Input.Keyboard.KeyCodes.V,
+ Phaser.Input.Keyboard.KeyCodes.G,
+ Phaser.Input.Keyboard.KeyCodes.T,
+ Phaser.Input.Keyboard.KeyCodes.C,
+ Phaser.Input.Keyboard.KeyCodes.F,
+ Phaser.Input.Keyboard.KeyCodes.R,
+ Phaser.Input.Keyboard.KeyCodes.Q,
+ Phaser.Input.Keyboard.KeyCodes.E,
+ ];
+
+ const movementKeySets = [
+ {
+ "0,-1": Phaser.Input.Keyboard.KeyCodes.UP,
+ "-1,0": Phaser.Input.Keyboard.KeyCodes.LEFT,
+ "0,1": Phaser.Input.Keyboard.KeyCodes.DOWN,
+ "1,0": Phaser.Input.Keyboard.KeyCodes.RIGHT,
+ },
+ {
+ "0,-1": Phaser.Input.Keyboard.KeyCodes.W,
+ "-1,0": Phaser.Input.Keyboard.KeyCodes.A,
+ "0,1": Phaser.Input.Keyboard.KeyCodes.S,
+ "1,0": Phaser.Input.Keyboard.KeyCodes.D,
+ },
+ ];
+
+ this.input.keyboard.on("keydown-P", (event) => {
+ this.toggleControlsModal();
+ });
+
+ this.input.keyboard.on("keydown-I", (event) => {
+ this.toggleVariableDebugModal();
+ });
+
+ this.keyMap = new Map();
+
+ actionNames.forEach((actionName, actionTypeId) => {
+ const actionMapping = actionInputMappings[actionName];
+ if (!actionMapping.internal) {
+ const inputMappings = Object.entries(actionMapping.inputMappings);
+ console.log(inputMappings);
+
+ const actionDirections = new Set();
+ inputMappings.forEach((inputMapping) => {
+ // check that all the vectorToDest are different
+ const mapping = inputMapping[1];
+ actionDirections.add(this.toMovementKey(mapping.vectorToDest));
+ });
+
+ const directional = actionDirections.size !== 1;
+
+ if (directional && movementKeySets.length > 0) {
+ // pop movement keys
+ const movementKeys = movementKeySets.pop();
+ inputMappings.forEach((inputMapping) => {
+ const actionId = Number(inputMapping[0]);
+ const mapping = inputMapping[1];
+
+ let key;
+ if (this.toMovementKey(mapping.vectorToDest) in movementKeys) {
+ key = movementKeys[this.toMovementKey(mapping.vectorToDest)];
+ } else if (
+ this.toMovementKey(mapping.orientationVector) in movementKeys
+ ) {
+ key = movementKeys[this.toMovementKey(mapping.orientationVector)];
+ }
+
+ const mappedKey = this.input.keyboard.addKey(key, false);
+ mappedKey.on("down", this.processUserKeydown);
+ mappedKey.on("up", this.processUserKeyup);
+
+ this.keyMap.set(key, {
+ actionName,
+ actionTypeId,
+ actionId,
+ description: mapping.description,
+ });
+ });
+ } else {
+ // We have an action Key
+
+ inputMappings.forEach((inputMapping) => {
+ const key = actionKeyOrder.pop();
+
+ const actionId = Number(inputMapping[0]);
+ const mapping = inputMapping[1];
+
+ const mappedKey = this.input.keyboard.addKey(key, false);
+ mappedKey.on("down", this.processUserKeydown);
+ mappedKey.on("up", this.processUserKeyup);
+
+ this.keyMap.set(key, {
+ actionName,
+ actionTypeId,
+ actionId,
+ description: mapping.description,
+ });
+ });
+ }
+ }
+ });
+
+ // When the mouse leaves the window we stop collecting keys
+ this.input.on(Phaser.Input.Events.POINTER_DOWN_OUTSIDE, () => {
+ this.input.keyboard.enabled = false;
+ });
+
+ // When we click back in the scene we collect keys
+ this.input.on(Phaser.Input.Events.POINTER_DOWN, () => {
+ document.activeElement.blur();
+ this.input.keyboard.enabled = true;
+ });
+ };
+
+ stopRecordingOrPlayback = () => {
+ if (this.isRecordingTrajectory) {
+ this.endRecording();
+ }
+
+ if (this.isRunningTrajectory) {
+ this.endPlayback();
+ }
+ };
+
+ doBlink() {
+ setTimeout(() => {
+ this.blink = !this.blink;
+ if (this.isRecordingTrajectory) {
+ this.doBlink();
+ }
+ }, 500);
+ }
+
+ beginRecording = () => {
+ if (this.isRecordingTrajectory) {
+ this.endRecording();
+ return;
+ }
+ this.resetLevel();
+ this.isRecordingTrajectory = true;
+ this.doBlink();
+ this.currentTrajectoryBuffer = {
+ steps: [],
+ seed: 100,
+ };
+ };
+
+ endRecording = () => {
+ this.isRecordingTrajectory = false;
+ this.onTrajectoryComplete(this.currentTrajectoryBuffer);
+ this.resetLevel();
+ };
+
+ beginPlayback = () => {
+ this.currentTrajectoryBuffer = this.getTrajectory();
+ this.trajectoryActionIdx = 0;
+ this.isRunningTrajectory = true;
+ this.resetLevel();
+ };
+
+ endPlayback = () => {
+ this.trajectoryActionIdx = 0;
+ this.isRunningTrajectory = false;
+ this.resetLevel();
+ };
+
+ resetLevel = (seed = 100) => {
+ this.griddlyjs.seed(seed);
+ this.griddlyjs.reset();
+ this.currentState = this.griddlyjs.getState();
+ };
+
+ processTrajectory = () => {
+ if (this.currentTrajectoryBuffer.steps.length === 0) {
+ this.isRunningTrajectory = false;
+ return;
+ }
+
+ if (!this.cooldown) {
+ this.cooldown = true;
+ setTimeout(() => {
+ this.cooldown = false;
+ }, 20);
+
+ const action =
+ this.currentTrajectoryBuffer.steps[this.trajectoryActionIdx++];
+
+ const stepResult = this.griddlyjs.step(action);
+
+ if (stepResult.reward > 0) {
+ console.log("Reward: ", stepResult.reward);
+ }
+
+ this.currentState = this.griddlyjs.getState();
+
+ if (stepResult.terminated) {
+ this.endPlayback();
+ }
+
+ if (
+ this.trajectoryActionIdx === this.currentTrajectoryBuffer.steps.length
+ ) {
+ this.endPlayback();
+ }
+ }
+ };
+
+ doUserAction = (action) => {
+ const stepResult = this.griddlyjs.step(action);
+ this.globalVariableDebugText = this.getGlobalVariableDebugText();
+
+ if (stepResult.reward > 0) {
+ console.log("Reward: ", stepResult.reward);
+ }
+
+ this.currentState = this.griddlyjs.getState();
+ if (stepResult.terminated) {
+ this.resetLevel();
+ }
+
+ if (this.isRecordingTrajectory) {
+ this.currentTrajectoryBuffer.steps.push(action);
+ if (stepResult.terminated) {
+ this.endRecording();
+ }
+ }
+ };
+
+ processUserKeydown = (event) => {
+ if (!this.isRunningTrajectory) {
+ const actionMapping = this.keyMap.get(event.keyCode);
+
+ const action = [actionMapping.actionTypeId, actionMapping.actionId];
+
+ this.doUserAction(action);
+
+ if (this.keyboardIntervals.has(event.keyCode)) {
+ clearInterval(this.keyboardIntervals.get(event.keyCode));
+ }
+
+ this.keyboardIntervals.set(
+ event.keyCode,
+ setInterval(() => this.doUserAction(action), 100)
+ );
+ }
+ };
+
+ processUserKeyup = (event) => {
+ if (this.keyboardIntervals.has(event.keyCode)) {
+ clearInterval(this.keyboardIntervals.get(event.keyCode));
+ }
+ };
+
+ preload = () => {
+ const envName = this.gdy.Environment.Name;
+
+ this.input.mouse.disableContextMenu();
+
+ this.loadingText = this.add.text(
+ this.cameras.main.width / 2,
+ this.cameras.main.height / 2,
+ "Loading assets for " + envName,
+ {
+ fontFamily: "Droid Sans Mono",
+ font: "32px",
+ fill: COLOR_LOADING_TEXT,
+ align: "center",
+ }
+ );
+
+ this.loadingText.setX(this.cameras.main.width / 2);
+ this.loadingText.setY(this.cameras.main.height / 2);
+ this.loadingText.setOrigin(0.5, 0.5);
+ if (this.grenderer) {
+ this.grenderer.loadTemplates(this.gdy.Objects);
+ }
+ };
+
+ create = () => {
+ console.log("Create");
+
+ this.loadingText.destroy();
+ this.loaded = true;
+
+ if (this.grenderer) {
+ this.mapping = this.setupKeyboardMapping();
+ this.grenderer.init(this.gridWidth, this.gridHeight);
+ this.updateState(this.griddlyjs.getState());
+ this.createModals();
+ this.updateModals();
+ this.createTrajectoryMenu();
+ this.updateTrajectoryMenu();
+ this.createHintsModal();
+ }
+ };
+
+ update = () => {
+ if (!this.loaded) {
+ this.loadingText.setX(this.cameras.main.width / 2);
+ this.loadingText.setY(this.cameras.main.height / 2);
+ this.loadingText.setOrigin(0.5, 0.5);
+ } else {
+ if (this.grenderer) {
+ if (
+ this.currentLevelStringOrId !== this.griddlyjs.getLevelStringOrId()
+ ) {
+ this.stopRecordingOrPlayback();
+ this.currentLevelStringOrId = this.griddlyjs.getLevelStringOrId();
+ this.currentState = this.griddlyjs.getState();
+ this.currentTrajectoryBuffer = this.getTrajectory();
+ }
+
+ if (this.isRunningTrajectory) {
+ this.processTrajectory();
+ }
+
+ if (this.currentState && this.stateHash !== this.currentState.hash) {
+ this.stateHash = this.currentState.hash;
+ this.updateState(this.currentState);
+ }
+
+ this.updateModals();
+ this.updateTrajectoryMenu();
+ }
+ }
+ };
+}
+
+export default HumanPlayerScene;
diff --git a/js/griddlyjs-app/src/renderer/level_selector/LevelSelector.js b/js/griddlyjs-app/src/renderer/level_selector/LevelSelector.js
new file mode 100644
index 000000000..bd682d0f9
--- /dev/null
+++ b/js/griddlyjs-app/src/renderer/level_selector/LevelSelector.js
@@ -0,0 +1,103 @@
+import { React, Component } from "react";
+import EditorStateHandler from "../../LevelEditorStateHandler";
+import Phaser from "phaser";
+
+import { Col, Row } from "react-bootstrap";
+import LoadingScene from "../LoadingScene";
+import PreviewScene from "./scenes/LevelCarouselScene";
+
+class LevelSelector extends Component {
+ updateCanvasSize = () => {
+ this.game.scale.resize(this.props.width, this.props.height);
+ };
+
+ componentDidMount() {
+ const config = {
+ type: Phaser.AUTO,
+ parent: this.divElement,
+ backgroundColor: "#000000",
+ scale: {
+ expandParent: false,
+ },
+ scene: [LoadingScene, PreviewScene],
+ };
+
+ this.game = new Phaser.Game(config);
+
+ this.stateHandlers = new Map();
+
+ this.updateCanvasSize();
+ }
+
+ displayError = (message, error) => {
+ this.props.onDisplayMessage(message, "error", error);
+ };
+
+ displayWarning = (message, error) => {
+ this.props.onDisplayMessage(message, "warning", error);
+ };
+
+ updateStateHandlers() {
+ this.stateHandlers.clear();
+ this.props.gdy.Environment.Levels.forEach((levelString, idx) => {
+ const newStateHandler = new EditorStateHandler();
+ try {
+ newStateHandler.loadGDY(this.props.gdy);
+ newStateHandler.loadLevelString(levelString);
+ } catch (error) {
+ this.displayError("Enable to load level" + idx);
+ }
+ this.stateHandlers.set(idx, newStateHandler);
+ });
+ }
+
+ componentDidUpdate(prevProps) {
+ this.updateCanvasSize();
+
+ if (prevProps.gdyHash === 0 && this.props.gdy) {
+ this.updateStateHandlers();
+
+ this.game.scene.remove("LoadingScene");
+ this.game.scene.start("PreviewScene", {
+ gdy: this.props.gdy,
+ editorStateHandlers: this.stateHandlers,
+ rendererConfig: this.props.rendererConfig,
+ rendererName: this.props.rendererName,
+ onSelectLevel: this.props.onSelectLevel,
+ getSelectedLevelId: () => this.props.selectedLevelId,
+ });
+ } else if (prevProps.gdyHash !== this.props.gdyHash) {
+ this.updateStateHandlers();
+
+ this.game.scene.getScene("PreviewScene").scene.restart({
+ gdy: this.props.gdy,
+ editorStateHandlers: this.stateHandlers,
+ rendererConfig: this.props.rendererConfig,
+ rendererName: this.props.rendererName,
+ onSelectLevel: this.props.onSelectLevel,
+ getSelectedLevelId: () => this.props.selectedLevelId,
+ });
+ }
+ }
+
+ render() {
+ return (
+ <>
+
+
+ {
+ this.divElement = divElement;
+ }}
+ >
+
+
+
+
+
+ >
+ );
+ }
+}
+
+export default LevelSelector;
diff --git a/js/griddlyjs-app/src/renderer/level_selector/scenes/LevelCarouselScene.js b/js/griddlyjs-app/src/renderer/level_selector/scenes/LevelCarouselScene.js
new file mode 100644
index 000000000..00a6c6c62
--- /dev/null
+++ b/js/griddlyjs-app/src/renderer/level_selector/scenes/LevelCarouselScene.js
@@ -0,0 +1,357 @@
+import Phaser from "phaser";
+
+import Block2DRenderer from "../../Block2DRenderer";
+import Sprite2DRenderer from "../../Sprite2DRenderer";
+import {
+ COLOR_LOADING_TEXT,
+ COLOR_PANEL_LIGHT,
+ COLOR_SELECT_TILE_HIGHLIGHTED,
+ COLOR_PANEL_DARK,
+ COLOR_FOREGROUND,
+ COLOR_PANEL_LIGHTER,
+} from "../../ThemeConsts";
+
+const levelContainerHeight = 100;
+const levelContainerWidth = 100;
+
+const levelContainerInternalPadding = 5;
+
+const levelContainerPaddingX = 10;
+const levelContainerPaddingY = 10;
+
+const levelContainerSliderPaddingX = 5;
+const levelContainerSliderPaddingY = 5;
+const levelContainerSliderHeight = 20;
+
+const levelContainerSliderBarHeight = 14;
+const levelContainerSliderBarPaddingX = 3;
+const levelContainerSliderBarPaddingY = 3;
+
+class LevelCarouselScene extends Phaser.Scene {
+ constructor() {
+ super("PreviewScene");
+ }
+
+ init = (data) => {
+ this.gdy = data.gdy;
+
+ this.onDisplayMessage = data.onDisplayMessage;
+ this.editorStateHandlers = data.editorStateHandlers;
+ this.avatarObject = this.gdy.Environment.Player.AvatarObject;
+ this.renderConfig = data.rendererConfig;
+ this.rendererName = data.rendererName;
+ this.getSelectedLevelId = data.getSelectedLevelId;
+ this.selectedLevelId = 0;
+
+ this.onSelectLevel = data.onSelectLevel;
+
+ this.carouselState = {
+ levels: [],
+ };
+
+ for (const [levelId, stateHandler] of this.editorStateHandlers) {
+ const levelState = stateHandler.getState();
+
+ // We want the level to fit in the selection box
+ const scaledTileSize =
+ (levelContainerHeight - levelContainerInternalPadding * 2) /
+ Math.max(levelState.gridWidth, levelState.gridHeight);
+
+ const renderConfig = {
+ ...this.renderConfig,
+ TileSize: scaledTileSize,
+ };
+
+ let grenderer;
+
+ if (this.renderConfig.Type === "BLOCK_2D") {
+ grenderer = new Block2DRenderer(
+ this,
+ this.rendererName,
+ renderConfig,
+ this.avatarObject,
+ false
+ );
+ } else if (this.renderConfig.Type === "SPRITE_2D") {
+ grenderer = new Sprite2DRenderer(
+ this,
+ this.rendererName,
+ renderConfig,
+ this.avatarObject,
+ false
+ );
+ }
+
+ this.carouselState.levels.push({
+ levelId: levelId,
+ state: levelState,
+ grenderer: grenderer,
+ });
+ }
+ };
+
+ updateState = (carouselItem) => {
+ const objectList = [];
+
+ const state = carouselItem.state;
+ const grenderer = carouselItem.grenderer;
+
+ for (const objectsAtLocation in state.objects) {
+ for (const object in state.objects[objectsAtLocation]) {
+ objectList.push(state.objects[objectsAtLocation][object]);
+ }
+ }
+
+ grenderer.beginUpdate(objectList, state);
+
+ objectList.forEach((object) => {
+ const objectTemplateName = object.name + object.renderTileId;
+
+ grenderer.addObject(
+ object.name,
+ objectTemplateName,
+ object.location.x,
+ object.location.y,
+ object.orientation
+ );
+ });
+ };
+
+ preload() {
+ this.input.mouse.disableContextMenu();
+
+ this.loadingText = this.add.text(
+ this.cameras.main.width / 2,
+ this.cameras.main.height / 2,
+ "Loading Levels",
+ {
+ fontFamily: "Droid Sans Mono",
+ fill: COLOR_LOADING_TEXT,
+ align: "center",
+ }
+ );
+
+ this.loadingText.setX(this.cameras.main.width / 2);
+ this.loadingText.setY(this.cameras.main.height / 2);
+ this.loadingText.setOrigin(0.5, 0.5);
+
+ this.carouselState.levels.forEach((carouselItem) => {
+ carouselItem.grenderer.loadTemplates(this.gdy.Objects);
+ });
+ }
+
+ highlightSelectedLevel = (levelId) => {
+ this.carouselState.levels.forEach((carouselItem) => {
+ const selectLevelBg = carouselItem.selectLevelBg;
+ if (levelId === carouselItem.levelId) {
+ selectLevelBg.setStrokeStyle(3, COLOR_SELECT_TILE_HIGHLIGHTED);
+ } else {
+ selectLevelBg.setStrokeStyle(0);
+ }
+ });
+ };
+
+ selectLevel = (levelId) => {
+ this.highlightSelectedLevel(levelId);
+ this.onSelectLevel(levelId);
+ };
+
+ updateCarousel = () => {
+ const selectLevelContainers = [];
+ this.carouselState.levels.forEach((carouselItem, idx) => {
+ const selectLevelX =
+ levelContainerPaddingX +
+ (levelContainerWidth + 2 * levelContainerPaddingX) *
+ carouselItem.levelId;
+
+ const selectLevelContainer = this.add.container(
+ selectLevelX + levelContainerWidth / 2,
+ levelContainerPaddingY + levelContainerHeight / 2
+ );
+ const levelState = carouselItem.state;
+
+ carouselItem.grenderer.init(
+ levelState.gridWidth,
+ levelState.gridHeight,
+ selectLevelContainer
+ );
+
+ this.updateState(carouselItem);
+
+ const selectLevelBg = this.add.rectangle(
+ 0,
+ 0,
+ levelContainerWidth,
+ levelContainerHeight,
+ COLOR_PANEL_DARK
+ );
+
+ selectLevelBg.setDepth(-10);
+ selectLevelBg.setInteractive();
+ selectLevelBg.on("pointerdown", () =>
+ this.selectLevel(carouselItem.levelId)
+ );
+
+ this.carouselState.levels[idx].selectLevelBg = selectLevelBg;
+
+ const levelIdText = this.add.text(
+ -levelContainerWidth/2,
+ -levelContainerHeight/2,
+ ""+idx,
+ {
+ fontFamily: "Droid Sans Mono",
+ fill: COLOR_LOADING_TEXT,
+ align: "center",
+ }
+ );
+ levelIdText.setDepth(10);
+ levelIdText.setOrigin(0,0);
+
+ selectLevelContainer.add(levelIdText);
+ selectLevelContainer.add(selectLevelBg);
+
+ selectLevelContainer.sort("depth");
+ selectLevelContainers.push({
+ origX: selectLevelContainer.x,
+ container: selectLevelContainer,
+ });
+ });
+
+ this.highlightSelectedLevel(this.selectedLevelId);
+
+ // Slider bar for carousel
+ const levelContainerSliderWidth =
+ this.cameras.main.width - 2 * levelContainerSliderPaddingX;
+
+ const sliderBarContainer = this.add.rectangle(
+ levelContainerSliderPaddingX,
+ 2 * levelContainerPaddingY +
+ levelContainerHeight +
+ levelContainerSliderPaddingY,
+ levelContainerSliderWidth,
+ levelContainerSliderHeight,
+ COLOR_PANEL_DARK
+ );
+ sliderBarContainer.setOrigin(0, 0);
+ sliderBarContainer.setInteractive();
+
+ // Calculate width of the slider bar
+ const totalItemsLength =
+ this.carouselState.levels.length *
+ (levelContainerWidth + 2 * levelContainerPaddingX);
+ const sliderBarWidthRatio = levelContainerSliderWidth / totalItemsLength;
+ const sliderBarWidth =
+ sliderBarWidthRatio * levelContainerSliderWidth -
+ 2 * levelContainerSliderBarPaddingX;
+
+ const sliderBarMaxX = levelContainerSliderWidth - sliderBarWidth;
+ const sliderBarMinX =
+ levelContainerSliderBarPaddingX + levelContainerSliderPaddingX;
+
+ const sliderBar = this.add.rectangle(
+ levelContainerSliderBarPaddingX,
+ 2 * levelContainerPaddingY +
+ levelContainerHeight +
+ levelContainerSliderPaddingY +
+ levelContainerSliderBarPaddingX,
+ sliderBarWidth,
+ levelContainerSliderBarHeight,
+ COLOR_PANEL_LIGHT
+ );
+ sliderBar.setOrigin(0, 0);
+ sliderBar.setInteractive();
+
+ const moveSliderToLocation = function (sliderLocation) {
+ sliderBar.setX(
+ Math.min(sliderBarMaxX, Math.max(sliderBarMinX, sliderLocation))
+ );
+
+ const containerXOffset =
+ ((totalItemsLength -
+ (levelContainerSliderWidth - 2 * levelContainerPaddingX)) *
+ (sliderBar.x - sliderBarMinX)) /
+ (levelContainerSliderWidth - sliderBarWidth);
+
+ selectLevelContainers.forEach((levelContainer) => {
+ levelContainer.container.x = levelContainer.origX - containerXOffset;
+ });
+ };
+
+ const sliderLocation =
+ (levelContainerSliderWidth *
+ (this.selectedLevelId *
+ (levelContainerWidth + 2 * levelContainerPaddingX))) /
+ totalItemsLength;
+
+ moveSliderToLocation(sliderLocation);
+
+ // Mouse events
+ sliderBar.on("pointerover", () => {
+ sliderBar.setFillStyle(COLOR_PANEL_LIGHTER);
+ });
+ sliderBar.on("pointerout", () => {
+ sliderBar.setFillStyle(COLOR_PANEL_LIGHT);
+ });
+
+ this.input.on("pointermove", (pointer) => {
+ if (this.draggingSlider) {
+ const sliderLocation = pointer.position.x - sliderBarWidth / 2.0;
+ moveSliderToLocation(sliderLocation);
+ }
+ });
+
+ this.input.on("pointerup", () => {
+ this.draggingSlider = false;
+ });
+
+ this.input.on("wheel", (pointer, dx,dy,dz) => {
+ const sliderLocation = sliderBar.x + dz/2.0;
+ moveSliderToLocation(sliderLocation);
+ });
+
+ sliderBarContainer.on("pointerdown", () => {
+ this.draggingSlider = true;
+ });
+
+ sliderBar.on("pointerdown", () => {
+ this.draggingSlider = true;
+ });
+
+ sliderBarContainer.on("pointerdown", (pointer) => {
+ const sliderLocation = pointer.position.x - sliderBarWidth / 2.0;
+ moveSliderToLocation(sliderLocation);
+ });
+ };
+
+ create() {
+ console.log("Preview Scene - Create");
+
+ this.loadingText.destroy();
+ this.loaded = true;
+
+ this.updateCarousel();
+ }
+
+ update() {
+ if (!this.loaded) {
+ this.loadingText.setX(this.cameras.main.width / 2);
+ this.loadingText.setY(this.cameras.main.height / 2);
+ this.loadingText.setOrigin(0.5, 0.5);
+ } else if(this.selectedLevelId != this.getSelectedLevelId()) {
+ this.selectedLevelId = this.getSelectedLevelId();
+ this.highlightSelectedLevel(this.selectedLevelId);
+ // if (this.grenderer) {
+ // const state = this.editorStateHandler.getState();
+ // if (state && this.stateHash !== state.hash) {
+ // this.stateHash = state.hash;
+ // if(state.hash === 0) {
+ // this.grenderer.recenter(state.gridWidth, state.gridHeight);
+ // }
+ // this.updateState(state);
+ // }
+ // }
+ }
+ }
+}
+
+export default LevelCarouselScene;
diff --git a/js/griddlyjs-app/src/renderer/policy_debugger/PolicyDebugger.js b/js/griddlyjs-app/src/renderer/policy_debugger/PolicyDebugger.js
new file mode 100644
index 000000000..2f0f3f604
--- /dev/null
+++ b/js/griddlyjs-app/src/renderer/policy_debugger/PolicyDebugger.js
@@ -0,0 +1,71 @@
+import { React, Component } from "react";
+import Phaser from "phaser";
+
+import PolicyDebuggerScene from "./scenes/PolicyDebuggerScene";
+import LoadingScene from "../LoadingScene";
+
+class Player extends Component {
+ updateCanvasSize = () => {
+ this.game.scale.resize(this.props.width, this.props.height);
+ };
+
+ componentDidMount() {
+ const config = {
+ type: Phaser.AUTO,
+ parent: this.divElement,
+ backgroundColor: "#000000",
+ scale: {
+ expandParent: false,
+ },
+ scene: [LoadingScene, PolicyDebuggerScene],
+ };
+
+ this.game = new Phaser.Game(config);
+
+ this.gdyHash = 0;
+
+ this.updateCanvasSize();
+ }
+
+ componentDidUpdate(prevProps) {
+ this.updateCanvasSize();
+
+ if (this.props.griddlyjs) {
+ if (this.gdyHash === 0 && this.props.gdy) {
+ this.game.scene.remove("LoadingScene");
+ this.game.scene.start("PolicyDebuggerScene", {
+ gdy: this.props.gdy,
+ rendererConfig: this.props.rendererConfig,
+ rendererName: this.props.rendererName,
+ griddlyjs: this.props.griddlyjs,
+ onDisplayMessage: this.props.onDisplayMessage,
+ onTrajectoryComplete: this.props.onTrajectoryComplete,
+ model: this.props.model,
+ });
+ } else if (this.gdyHash !== this.props.gdyHash) {
+ this.game.scene.getScene("PolicyDebuggerScene").scene.restart({
+ gdy: this.props.gdy,
+ rendererConfig: this.props.rendererConfig,
+ rendererName: this.props.rendererName,
+ griddlyjs: this.props.griddlyjs,
+ onDisplayMessage: this.props.onDisplayMessage,
+ onTrajectoryComplete: this.props.onTrajectoryComplete,
+ model: this.props.model,
+ });
+ }
+ }
+ this.gdyHash = this.props.gdyHash;
+ }
+
+ render() {
+ return (
+ {
+ this.divElement = divElement;
+ }}
+ >
+ );
+ }
+}
+
+export default Player;
diff --git a/js/griddlyjs-app/src/renderer/policy_debugger/scenes/PolicyDebuggerScene.js b/js/griddlyjs-app/src/renderer/policy_debugger/scenes/PolicyDebuggerScene.js
new file mode 100644
index 000000000..3df1f4f3f
--- /dev/null
+++ b/js/griddlyjs-app/src/renderer/policy_debugger/scenes/PolicyDebuggerScene.js
@@ -0,0 +1,478 @@
+import Phaser from "phaser";
+import Block2DRenderer from "../../Block2DRenderer";
+import Sprite2DRenderer from "../../Sprite2DRenderer";
+import {
+ COLOR_LOADING_TEXT,
+ COLOR_PANEL_DARK,
+ COLOR_PANEL_LIGHT,
+ COLOR_PANEL_LIGHTER,
+ COLOR_POLICY_DEBUG_PLAY_TEXT,
+ COLOR_POLICY_DEBUG_STOP_TEXT,
+ COLOR_POLICY_DEBUG_DISABLED_TEXT,
+} from "../../ThemeConsts";
+
+import * as tf from "@tensorflow/tfjs";
+
+const policyMenuHeight = 45;
+
+const debugButtonsOffsetX = 30;
+
+const debugButtonsPaddingY = 5;
+
+const debugButtonWidth = 35;
+const debugButtonHeight = 35;
+
+class PolicyDebuggerScene extends Phaser.Scene {
+ constructor() {
+ super("PolicyDebuggerScene");
+
+ this.stateHash = 0;
+ this.loaded = false;
+ this.defaultTileSize = 24;
+ }
+
+ createPolicyMenu = () => {
+ const policyMenu = this.add.rectangle(
+ 0,
+ 0,
+ this.cameras.main.width,
+ policyMenuHeight,
+ COLOR_PANEL_DARK
+ );
+ policyMenu.setOrigin(0, 0);
+
+ const debugButtonY = debugButtonsPaddingY + debugButtonHeight / 2;
+
+ const playPolicyButtonX = debugButtonsOffsetX + debugButtonWidth / 2;
+ const stopButtonX =
+ this.cameras.main.width - debugButtonsOffsetX - debugButtonWidth;
+
+ // Play Policy Button
+ this.playPolicyBg = this.add.rectangle(
+ playPolicyButtonX,
+ debugButtonY,
+ debugButtonWidth,
+ debugButtonHeight,
+ COLOR_PANEL_LIGHT
+ );
+ this.playPolicyBg.setDepth(10);
+ this.playPolicyBg.setInteractive();
+ this.playPolicyBg.on("pointerdown", () => this.beginPolicy());
+ this.playPolicyText = this.add
+ .text(playPolicyButtonX, debugButtonY, "\uf04b", {
+ fontFamily: "Font Awesome Solid",
+ color: COLOR_POLICY_DEBUG_PLAY_TEXT,
+ fontSize: "24px",
+ })
+ .setDepth(11)
+ .setOrigin(0.5, 0.5);
+
+ // Stop Button
+ this.stopBg = this.add.rectangle(
+ stopButtonX,
+ debugButtonY,
+ debugButtonWidth,
+ debugButtonHeight,
+ COLOR_PANEL_LIGHT
+ );
+ this.stopBg.setDepth(10);
+ this.stopBg.setInteractive();
+ this.stopBg.on("pointerdown", () => this.stopPolicyPlayback());
+ this.stopText = this.add
+ .text(stopButtonX, debugButtonY, "\uf04d", {
+ fontFamily: "Font Awesome Solid",
+ color: COLOR_POLICY_DEBUG_STOP_TEXT,
+ fontSize: "24px",
+ })
+ .setDepth(11)
+ .setOrigin(0.5, 0.5);
+ };
+
+ updatePolicyMenu = () => {
+ if (this.isRunningPolicy) {
+ this.playPolicyText.setColor(COLOR_POLICY_DEBUG_DISABLED_TEXT);
+ this.playPolicyBg.setFillStyle(COLOR_PANEL_LIGHTER);
+
+ this.stopBg.setFillStyle(COLOR_PANEL_LIGHT);
+ this.stopText.setColor(COLOR_POLICY_DEBUG_STOP_TEXT);
+ } else {
+ this.playPolicyText.setColor(COLOR_POLICY_DEBUG_PLAY_TEXT);
+ this.playPolicyBg.setFillStyle(COLOR_PANEL_DARK);
+
+ this.stopBg.setFillStyle(COLOR_PANEL_LIGHT);
+ this.stopText.setColor(COLOR_POLICY_DEBUG_DISABLED_TEXT);
+ }
+ };
+
+ createModals = () => {
+ // Set the modals to invisible
+ this.variableDebugModalActive = false;
+
+ // Get all the global variables
+ this.globalVariableDebugText = this.getGlobalVariableDebugText();
+
+ this.variableDebugModal = this.add.text(
+ this.cameras.main.width / 2,
+ this.cameras.main.height / 5,
+ this.globalVariableDebugText
+ );
+ this.variableDebugModal.setBackgroundColor("#000000AA");
+ this.variableDebugModal.setDepth(100);
+ this.variableDebugModal.setOrigin(0, 0);
+ this.variableDebugModal.setVisible(false);
+ };
+
+ init = (data) => {
+ try {
+ // Functions to interact with the environment
+ this.griddlyjs = data.griddlyjs;
+
+ // Data about the environment
+ this.gdy = data.gdy;
+ this.onDisplayMessage = data.onDisplayMessage;
+ this.onPolicyComplete = data.onPolicyComplete;
+
+ this.gridHeight = this.griddlyjs.getHeight();
+ this.gridWidth = this.griddlyjs.getWidth();
+
+ this.avatarObject = this.gdy.Environment.Player.AvatarObject;
+ this.rendererName = data.rendererName;
+ this.renderConfig = data.rendererConfig;
+
+ if (this.renderConfig.Type === "BLOCK_2D") {
+ this.grenderer = new Block2DRenderer(
+ this,
+ this.rendererName,
+ this.renderConfig,
+ this.avatarObject
+ );
+ } else if (this.renderConfig.Type === "SPRITE_2D") {
+ this.grenderer = new Sprite2DRenderer(
+ this,
+ this.rendererName,
+ this.renderConfig,
+ this.avatarObject
+ );
+ }
+ } catch (e) {
+ this.displayError("Cannot load GDY file.", e);
+ }
+
+ this.renderData = {
+ objects: {},
+ };
+
+ this.player = this.griddlyjs.players[0];
+ this.playerObsSpace = this.player.getObservationDescription();
+
+ this.model = data.model;
+ };
+
+ displayError = (message, error) => {
+ this.onDisplayMessage(message, "error", error);
+ };
+
+ displayWarning = (message, error) => {
+ this.onDisplayMessage(message, "warning", error);
+ };
+
+ updateState = (state) => {
+ const newObjectIds = state.objects.map((object) => {
+ return object.id;
+ });
+
+ this.grenderer.recenter(this.griddlyjs.getWidth(), this.griddlyjs.getHeight());
+
+ this.grenderer.beginUpdate(state.objects);
+
+ state.objects.forEach((object) => {
+ const objectTemplateName = object.name + object.renderTileId;
+ if (object.id in this.renderData.objects) {
+ const currentObjectData = this.renderData.objects[object.id];
+ this.grenderer.updateObject(
+ currentObjectData.sprite,
+ object.name,
+ objectTemplateName,
+ object.location.x,
+ object.location.y,
+ object.orientation
+ );
+
+ this.renderData.objects[object.id] = {
+ ...currentObjectData,
+ object,
+ };
+ } else {
+ const sprite = this.grenderer.addObject(
+ object.name,
+ objectTemplateName,
+ object.location.x,
+ object.location.y,
+ object.orientation
+ );
+
+ this.renderData.objects[object.id] = {
+ object,
+ sprite,
+ };
+ }
+ });
+
+ for (const k in this.renderData.objects) {
+ const id = this.renderData.objects[k].object.id;
+ if (!newObjectIds.includes(id)) {
+ this.renderData.objects[k].sprite.destroy();
+ delete this.renderData.objects[k];
+ }
+ }
+ };
+
+ toMovementKey(vector) {
+ return `${vector.x},${vector.y}`;
+ }
+
+ getGlobalVariableDebugText() {
+ const globalVariables = this.griddlyjs.getGlobalVariables();
+
+ const globalVariableDescription = [];
+ const playerVariableDescription = [];
+ for (const variableName in globalVariables) {
+ const variableData = globalVariables[variableName];
+ if (Object.keys(variableData).length === 1) {
+ // We have a global variable
+ const variableValue = variableData[0];
+ globalVariableDescription.push(variableName + ": " + variableValue);
+ } else {
+ // We have a player variable
+ if (this.griddlyjs.playerCount === 1) {
+ const variableValue = variableData[1];
+ playerVariableDescription.push(variableName + ": " + variableValue);
+ } else {
+ let variableValues = "";
+ for (let p = 0; p < this.griddlyjs.playerCount; p++) {
+ const variableValue = variableData[p + 1];
+ variableValues += "\t" + (p + 1) + ": " + variableValue;
+ }
+
+ playerVariableDescription.push(variableName + ":" + variableValues);
+ }
+ }
+ }
+
+ return [
+ "Global Variables:",
+ ...globalVariableDescription,
+ "",
+ "Player Variables:",
+ ...playerVariableDescription,
+ ];
+ }
+
+ updateModals() {
+ if (this.variableDebugModalActive) {
+ this.variableDebugModal.setText(this.globalVariableDebugText);
+ this.variableDebugModal.setFontFamily("Droid Sans Mono");
+ this.variableDebugModal.setPosition(0, 0);
+ this.variableDebugModal.setWordWrapWidth(this.cameras.main.width / 2);
+ }
+ }
+
+ toggleVariableDebugModal() {
+ this.variableDebugModalActive = !this.variableDebugModalActive;
+ this.variableDebugModal.setVisible(this.variableDebugModalActive);
+ }
+
+ setupFlatActionMap = () => {
+ const actionInputMappings = this.griddlyjs.getActionInputMappings();
+ const actionNames = this.griddlyjs.getActionNames();
+
+ const flatActionMap = [];
+
+ actionNames.forEach((actionName, actionTypeId) => {
+ const actionMapping = actionInputMappings[actionName];
+ if (!actionMapping.internal) {
+ const inputMappings = Object.entries(actionMapping.inputMappings);
+ console.log(inputMappings);
+
+ inputMappings.forEach((inputMapping) => {
+ const actionId = Number(inputMapping[0]);
+
+ flatActionMap.push([actionTypeId, actionId]);
+ });
+ }
+ });
+
+ return flatActionMap;
+ };
+
+ setupKeyboardMapping = () => {
+ this.input.keyboard.on("keydown-I", (event) => {
+ this.toggleVariableDebugModal();
+ });
+
+ // When the mouse leaves the window we stop collecting keys
+ this.input.on(Phaser.Input.Events.POINTER_DOWN_OUTSIDE, () => {
+ this.input.keyboard.enabled = false;
+ });
+
+ // When we click back in the scene we collect keys
+ this.input.on(Phaser.Input.Events.POINTER_DOWN, () => {
+ document.activeElement.blur();
+ this.input.keyboard.enabled = true;
+ });
+ };
+
+ stopPolicyPlayback = () => {
+ if (this.isRunningPolicy) {
+ this.endPolicy();
+ }
+
+ this.resetLevel();
+ };
+
+ beginPolicy = () => {
+ this.PolicyActionIdx = 0;
+ this.isRunningPolicy = true;
+ };
+
+ endPolicy = () => {
+ this.PolicyActionIdx = 0;
+ this.isRunningPolicy = false;
+ };
+
+ resetLevel = () => {
+ this.griddlyjs.reset();
+ };
+
+ processPolicy = () => {
+ if (!this.cooldown) {
+ this.cooldown = true;
+ setTimeout(() => {
+ this.cooldown = false;
+ }, 10);
+
+ try {
+ const shape = this.playerObsSpace.Shape;
+
+ // Generates the actions thanks to the agent's policy model
+ if (this.model != null) {
+ const state = this.player.observe();
+
+ const singletonState = tf.reshape(state, [1, ...shape]);
+
+ const inputs = {
+ input_0: singletonState,
+ };
+
+ // let output = 'main/mul:0'
+ const output = "output_0";
+
+ const logits = this.model.execute(inputs, output).arraySync()[0];
+
+ const action = tf.multinomial(logits, 1).arraySync()[0];
+
+ const stepResult = this.griddlyjs.step(this.flatActionMap[action]);
+
+ if (stepResult.reward > 0) {
+ console.log("Reward: ", stepResult.reward);
+ }
+
+ if (stepResult.terminated) {
+ this.griddlyjs.reset();
+ this.endPolicy();
+ }
+ }
+ } catch (e) {
+ this.onDisplayMessage(
+ "Loaded model is incompatible with the environment.",
+ "error",
+ e
+ );
+ this.stopPolicyPlayback();
+ }
+
+ return this.griddlyjs.getState();
+ }
+ };
+
+ processUserAction = () => {
+ if (!this.cooldown) {
+ this.cooldown = true;
+ setTimeout(() => {
+ this.cooldown = false;
+ }, 100);
+
+ return this.griddlyjs.getState();
+ }
+ };
+
+ preload = async () => {
+ const envName = this.gdy.Environment.Name;
+
+ this.input.mouse.disableContextMenu();
+
+ this.loadingText = this.add.text(
+ this.cameras.main.width / 2,
+ this.cameras.main.height / 2,
+ "Loading assets for " + envName,
+ {
+ fontFamily: "Droid Sans Mono",
+ font: "32px",
+ fill: COLOR_LOADING_TEXT,
+ align: "center",
+ }
+ );
+
+ this.loadingText.setX(this.cameras.main.width / 2);
+ this.loadingText.setY(this.cameras.main.height / 2);
+ this.loadingText.setOrigin(0.5, 0.5);
+ if (this.grenderer) {
+ this.grenderer.loadTemplates(this.gdy.Objects);
+ }
+ };
+
+ create = () => {
+ console.log("Create");
+
+ this.loadingText.destroy();
+ this.loaded = true;
+
+ if (this.grenderer) {
+ this.flatActionMap = this.setupFlatActionMap();
+ this.mapping = this.setupKeyboardMapping();
+ this.grenderer.init(this.gridWidth, this.gridHeight);
+ this.updateState(this.griddlyjs.getState());
+ this.createModals();
+ this.updateModals();
+ this.createPolicyMenu();
+ this.updatePolicyMenu();
+ }
+ };
+
+ update = () => {
+ if (!this.loaded) {
+ this.loadingText.setX(this.cameras.main.width / 2);
+ this.loadingText.setY(this.cameras.main.height / 2);
+ this.loadingText.setOrigin(0.5, 0.5);
+ } else {
+ if (this.grenderer) {
+ let state;
+ if (this.isRunningPolicy) {
+ state = this.processPolicy();
+ } else {
+ state = this.processUserAction();
+ }
+
+ if (state && this.stateHash !== state.hash) {
+ this.stateHash = state.hash;
+ this.updateState(state);
+ }
+
+ this.updateModals();
+ this.updatePolicyMenu();
+ }
+ }
+ };
+}
+
+export default PolicyDebuggerScene;
diff --git a/js/jiddly-app/src/reportWebVitals.js b/js/griddlyjs-app/src/reportWebVitals.js
similarity index 100%
rename from js/jiddly-app/src/reportWebVitals.js
rename to js/griddlyjs-app/src/reportWebVitals.js
diff --git a/js/jiddly-app/src/setupTests.js b/js/griddlyjs-app/src/setupTests.js
similarity index 100%
rename from js/jiddly-app/src/setupTests.js
rename to js/griddlyjs-app/src/setupTests.js
diff --git a/js/griddlyjs-app/src/wasm/griddlyjs.js b/js/griddlyjs-app/src/wasm/griddlyjs.js
new file mode 100644
index 000000000..bfad7812c
--- /dev/null
+++ b/js/griddlyjs-app/src/wasm/griddlyjs.js
@@ -0,0 +1,21 @@
+
+var Module = (() => {
+ var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
+
+ return (
+function(Module) {
+ Module = Module || {};
+
+var Module=typeof Module!="undefined"?Module:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="griddlyjs.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Ma"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Pa"];addOnInit(Module["asm"]["Na"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1}}function CatchInfo(ptr){this.free=function(){_free(this.ptr);this.ptr=0};this.set_base_ptr=function(basePtr){HEAP32[this.ptr>>2]=basePtr};this.get_base_ptr=function(){return HEAP32[this.ptr>>2]};this.set_adjusted_ptr=function(adjustedPtr){HEAP32[this.ptr+4>>2]=adjustedPtr};this.get_adjusted_ptr_addr=function(){return this.ptr+4};this.get_adjusted_ptr=function(){return HEAP32[this.ptr+4>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_exception_info().get_type());if(isPointer){return HEAP32[this.get_base_ptr()>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.get_base_ptr()};this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())};if(ptr===undefined){this.ptr=_malloc(8);this.set_adjusted_ptr(0)}else{this.ptr=ptr}}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var catchInfo=new CatchInfo(ptr);var info=catchInfo.get_exception_info();if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(catchInfo);exception_addRef(info);return catchInfo.get_exception_ptr()}var exceptionLast=0;function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){(function(a1){return dynCall_ii.apply(null,[destructor,a1])})(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var catchInfo=exceptionCaught.pop();exception_decRef(catchInfo.get_exception_info());catchInfo.free();exceptionLast=0}function ___resumeException(catchInfoPtr){var catchInfo=new CatchInfo(catchInfoPtr);var ptr=catchInfo.get_base_ptr();if(!exceptionLast){exceptionLast=ptr}catchInfo.free();throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=(handle=>handle);return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=(handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle});detachFinalizer=(handle=>finalizationRegistry.unregister(handle));return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){return dynCallLegacy(sig,ptr,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){return getDynCaller(signature,rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=(()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)});whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}function callUserCallback(func,synchronous){if(runtimeExited||ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(handleSleepReturnValue=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>Module["_asyncify_start_rewind"](Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(()=>Module["_asyncify_start_unwind"](Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(func=>callUserCallback(func))}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";args1.push("Asyncify");args2.push(Asyncify);invokerFnBody+="function onDone("+(returns?"rv":"")+") {\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_smart_ptr(rawType,rawPointeeType,name,sharingPolicy,getPointeeSignature,rawGetPointee,constructorSignature,rawConstructor,shareSignature,rawShare,destructorSignature,rawDestructor){name=readLatin1String(name);rawGetPointee=embind__requireFunction(getPointeeSignature,rawGetPointee);rawConstructor=embind__requireFunction(constructorSignature,rawConstructor);rawShare=embind__requireFunction(shareSignature,rawShare);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);whenDependentTypesAreResolved([rawType],[rawPointeeType],function(pointeeType){pointeeType=pointeeType[0];var registeredPointer=new RegisteredPointer(name,pointeeType.registeredClass,false,false,true,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor);return[registeredPointer]})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_call(handle,argCount,argTypes,argv){handle=Emval.toValue(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i>2]=Emval.toHandle(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_array(){return Emval.toHandle([])}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_new_object(){return Emval.toHandle({})}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return Emval.toHandle(v)}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[tzname+4>>2]=summerNamePtr}else{HEAP32[tzname>>2]=summerNamePtr;HEAP32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort("")}var _emscripten_get_now;_emscripten_get_now=(()=>performance.now());var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_max(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode,fd_start,fd_end)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,address,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=((stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=(()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)});openRequest.onsuccess=(()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=(()=>{ok++;if(ok+fail==total)finish()});putRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=(()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=(()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()});getRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(path[0]==="/"){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _getTempRet0(){return getTempRet0()}function _llvm_eh_typeid_for(type){return type}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"m":___cxa_allocate_exception,"s":___cxa_begin_catch,"v":___cxa_end_catch,"b":___cxa_find_matching_catch_2,"i":___cxa_find_matching_catch_3,"t":___cxa_find_matching_catch_4,"l":___cxa_free_exception,"aa":___cxa_rethrow,"z":___cxa_throw,"ja":___cxa_uncaught_exceptions,"g":___resumeException,"ia":__embind_finalize_value_object,"fa":__embind_register_bigint,"va":__embind_register_bool,"H":__embind_register_class,"L":__embind_register_class_constructor,"w":__embind_register_class_function,"ua":__embind_register_emval,"La":__embind_register_enum,"Q":__embind_register_enum_value,"Z":__embind_register_float,"D":__embind_register_integer,"B":__embind_register_memory_view,"U":__embind_register_smart_ptr,"Y":__embind_register_std_string,"S":__embind_register_std_wstring,"$":__embind_register_value_object,"wa":__embind_register_value_object_field,"xa":__embind_register_void,"Ca":__emval_as,"Ha":__emval_call,"Aa":__emval_call_method,"Fa":__emval_call_void_method,"Ia":__emval_decref,"Ga":__emval_get_method_caller,"Da":__emval_get_property,"Ja":__emval_incref,"T":__emval_new_array,"E":__emval_new_cstring,"J":__emval_new_object,"Ba":__emval_run_destructors,"Ea":__emval_set_property,"G":__emval_take_value,"qa":__gmtime_js,"ra":__localtime_js,"sa":__tzset_js,"R":_abort,"ka":_clock_gettime,"ta":_emscripten_memcpy_big,"la":_emscripten_resize_heap,"oa":_environ_get,"pa":_environ_sizes_get,"ma":_fd_close,"na":_fd_fdstat_get,"ea":_fd_seek,"X":_fd_write,"a":_getTempRet0,"K":invoke_diii,"za":invoke_diiiii,"ya":invoke_fiff,"V":invoke_fiii,"p":invoke_i,"P":invoke_idiii,"c":invoke_ii,"e":invoke_iii,"k":invoke_iiii,"u":invoke_iiiii,"r":invoke_iiiiii,"A":invoke_iiiiiii,"W":invoke_iiiiiiii,"_":invoke_iiiiiiiii,"O":invoke_iiiiiiiiiiii,"ga":invoke_ijjiii,"da":invoke_j,"ca":invoke_ji,"ba":invoke_jiiii,"n":invoke_v,"h":invoke_vi,"d":invoke_vii,"f":invoke_viii,"j":invoke_viiii,"q":invoke_viiiii,"o":invoke_viiiiii,"x":invoke_viiiiiii,"F":invoke_viiiiiiii,"I":invoke_viiiiiiiii,"C":invoke_viiiiiiiiii,"N":invoke_viiiiiiiiiiiiiii,"y":_llvm_eh_typeid_for,"M":_setTempRet0,"Ka":_strftime,"ha":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["Na"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Oa"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["Qa"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["Ra"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["Sa"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["Ta"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["Ua"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["Va"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["Wa"]).apply(null,arguments)};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return(___cxa_can_catch=Module["___cxa_can_catch"]=Module["asm"]["Xa"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["Ya"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["Za"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["_a"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["$a"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ab"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["bb"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["cb"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["db"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["eb"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["fb"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=function(){return(dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=Module["asm"]["gb"]).apply(null,arguments)};var dynCall_viif=Module["dynCall_viif"]=function(){return(dynCall_viif=Module["dynCall_viif"]=Module["asm"]["hb"]).apply(null,arguments)};var dynCall_fii=Module["dynCall_fii"]=function(){return(dynCall_fii=Module["dynCall_fii"]=Module["asm"]["ib"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["jb"]).apply(null,arguments)};var dynCall_idiii=Module["dynCall_idiii"]=function(){return(dynCall_idiii=Module["dynCall_idiii"]=Module["asm"]["kb"]).apply(null,arguments)};var dynCall_ijjiii=Module["dynCall_ijjiii"]=function(){return(dynCall_ijjiii=Module["dynCall_ijjiii"]=Module["asm"]["lb"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["mb"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["nb"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["ob"]).apply(null,arguments)};var dynCall_diii=Module["dynCall_diii"]=function(){return(dynCall_diii=Module["dynCall_diii"]=Module["asm"]["pb"]).apply(null,arguments)};var dynCall_diiiii=Module["dynCall_diiiii"]=function(){return(dynCall_diiiii=Module["dynCall_diiiii"]=Module["asm"]["qb"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["rb"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["sb"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["tb"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=function(){return(dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=Module["asm"]["ub"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["vb"]).apply(null,arguments)};var dynCall_fiff=Module["dynCall_fiff"]=function(){return(dynCall_fiff=Module["dynCall_fiff"]=Module["asm"]["wb"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["xb"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["yb"]).apply(null,arguments)};var dynCall_j=Module["dynCall_j"]=function(){return(dynCall_j=Module["dynCall_j"]=Module["asm"]["zb"]).apply(null,arguments)};var dynCall_ji=Module["dynCall_ji"]=function(){return(dynCall_ji=Module["dynCall_ji"]=Module["asm"]["Ab"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["Bb"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["Cb"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=Module["asm"]["Db"]).apply(null,arguments)};var dynCall_jiiii=Module["dynCall_jiiii"]=function(){return(dynCall_jiiii=Module["dynCall_jiiii"]=Module["asm"]["Eb"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=Module["asm"]["Fb"]).apply(null,arguments)};var dynCall_fiii=Module["dynCall_fiii"]=function(){return(dynCall_fiii=Module["dynCall_fiii"]=Module["asm"]["Gb"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=Module["asm"]["Hb"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=Module["asm"]["Ib"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["Jb"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["Kb"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["Lb"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["Mb"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Nb"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ob"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Pb"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Qb"]).apply(null,arguments)};function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_idiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_idiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiff(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiff(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ijjiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_ijjiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
+
+
+ return Module.ready
+}
+);
+})();
+if (typeof exports === 'object' && typeof module === 'object')
+ module.exports = Module;
+else if (typeof define === 'function' && define['amd'])
+ define([], function() { return Module; });
+else if (typeof exports === 'object')
+ exports["Module"] = Module;
diff --git a/js/jiddly-app/README.md b/js/jiddly-app/README.md
deleted file mode 100644
index 58beeaccd..000000000
--- a/js/jiddly-app/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# Getting Started with Create React App
-
-This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
-
-## Available Scripts
-
-In the project directory, you can run:
-
-### `npm start`
-
-Runs the app in the development mode.\
-Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
-
-The page will reload when you make changes.\
-You may also see any lint errors in the console.
-
-### `npm test`
-
-Launches the test runner in the interactive watch mode.\
-See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
-
-### `npm run build`
-
-Builds the app for production to the `build` folder.\
-It correctly bundles React in production mode and optimizes the build for the best performance.
-
-The build is minified and the filenames include the hashes.\
-Your app is ready to be deployed!
-
-See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
-
-### `npm run eject`
-
-**Note: this is a one-way operation. Once you `eject`, you can't go back!**
-
-If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
-
-Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
-
-You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
-
-## Learn More
-
-You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
-
-To learn React, check out the [React documentation](https://reactjs.org/).
-
-### Code Splitting
-
-This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
-
-### Analyzing the Bundle Size
-
-This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
-
-### Making a Progressive Web App
-
-This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
-
-### Advanced Configuration
-
-This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
-
-### Deployment
-
-This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
-
-### `npm run build` fails to minify
-
-This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
diff --git a/js/jiddly-app/public/favicon.ico b/js/jiddly-app/public/favicon.ico
deleted file mode 100644
index a11777cc4..000000000
Binary files a/js/jiddly-app/public/favicon.ico and /dev/null differ
diff --git a/js/jiddly-app/public/js/jiddly.wasm b/js/jiddly-app/public/js/jiddly.wasm
deleted file mode 100755
index c903ae2c8..000000000
Binary files a/js/jiddly-app/public/js/jiddly.wasm and /dev/null differ
diff --git a/js/jiddly-app/public/logo192.png b/js/jiddly-app/public/logo192.png
deleted file mode 100644
index fc44b0a37..000000000
Binary files a/js/jiddly-app/public/logo192.png and /dev/null differ
diff --git a/js/jiddly-app/public/logo512.png b/js/jiddly-app/public/logo512.png
deleted file mode 100644
index a4e47a654..000000000
Binary files a/js/jiddly-app/public/logo512.png and /dev/null differ
diff --git a/js/jiddly-app/src/App.js b/js/jiddly-app/src/App.js
deleted file mode 100644
index 377ecb07e..000000000
--- a/js/jiddly-app/src/App.js
+++ /dev/null
@@ -1,178 +0,0 @@
-// import logo from './logo.svg';
-import yaml from "js-yaml";
-import React, { Component } from "react";
-import "./App.scss";
-import JiddlyCore from "./JiddlyCore";
-import Player from "./renderer/Player";
-import LevelEditor from "./level_editor/LevelEditor";
-import { Col, Container, Row, Tabs, Tab } from "react-bootstrap";
-
-import GDYEditor from "./GDYEditor";
-import GDYHistory from "./GDYHistory";
-
-class App extends Component {
- constructor() {
- super();
-
- this.state = {
- phaserWidth: 500,
- phaserHeight: 500,
- gdyHash: 0,
- gdyString: "",
- };
-
- this.jiddly = new JiddlyCore();
-
- this.gdyHistory = new GDYHistory(10);
- }
-
- hashGDYString = (gdyString) => {
- let hash = 0,
- i,
- chr;
- if (gdyString.length === 0) return hash;
- for (i = 0; i < gdyString.length; i++) {
- chr = gdyString.charCodeAt(i);
- hash = (hash << 5) - hash + chr;
- hash |= 0; // Convert to 32bit integer
- }
- return hash;
- };
-
- loadGDYURL = (url) => {
- return fetch(url).then((response) => response.text());
- };
-
- loadGDY = async (yamlString) => {
- const gdyString = yamlString;
- try {
- const gdy = yaml.load(yamlString);
-
- return await this.jiddly.init().then(() => {
- this.jiddly.loadGDY(yamlString);
-
- }).catch(reason => {
- console.log(reason);
- }).finally(() => {
- this.setState((state) => {
- return {
- ...state,
- gdyHash: this.hashGDYString(gdyString),
- gdyString: gdyString,
- gdy: gdy,
- jiddly: this.jiddly,
- };
- });
- });
- } catch (e) {
- console.log(e);
- this.setState((state) => {
- return {
- ...state,
- gdyString: gdyString,
- };
- });
- }
- };
-
- updateGDY = (gdyString) => {
-
- const gdy = yaml.load(gdyString);
- this.gdyHistory.saveGDY(gdy.Environment.Name, gdyString);
-
- this.jiddly.unloadGDY();
- this.jiddly.loadGDY(gdyString);
-
- this.setState((state) => {
- return {
- ...state,
- gdyHash: this.hashGDYString(gdyString),
- gdyString: gdyString,
- gdy: gdy,
- jiddly: this.jiddly,
- };
- });
- };
-
- updatePhaserCanvasSize = () => {
- this.setState((state) => {
- return {
- ...state,
- phaserWidth: this.tabContentElement.offsetWidth,
- phaserHeight: (4 * window.innerHeight) / 5,
- };
- });
- };
-
- async componentDidMount() {
- this.updatePhaserCanvasSize();
-
- window.addEventListener("resize", this.updatePhaserCanvasSize, false);
- const currentGDY = this.gdyHistory.loadGDY("Grafter");
- if (!currentGDY) {
- await this.loadGDYURL(
- "resources/games/Single-Player/GVGAI/sokoban.yaml"
- ).then(this.loadGDY);
- } else {
- await this.loadGDY(currentGDY);
- }
- }
-
- setKey = (k) => {
- this.setState((state) => {
- return {
- ...state,
- key: k,
- };
- });
- };
-
- render() {
- return (
-
-
-
- {
- this.tabContentElement = tabContentElement;
- }}
- >
-
this.setKey(k)}
- className="mb-3"
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
- }
-}
-
-export default App;
diff --git a/js/jiddly-app/src/App.scss b/js/jiddly-app/src/App.scss
deleted file mode 100644
index e7f765d77..000000000
--- a/js/jiddly-app/src/App.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-
-@import "~bootswatch/dist/slate/variables";
-@import "~bootstrap/scss/bootstrap";
-@import "~bootswatch/dist/slate/bootswatch";
-
-.App {
- text-align: center;
-}
-
-
-.jiddly-ide-container {
- text-align: center;
-}
diff --git a/js/jiddly-app/src/GDYEditor.js b/js/jiddly-app/src/GDYEditor.js
deleted file mode 100644
index 6b88f71ce..000000000
--- a/js/jiddly-app/src/GDYEditor.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import { React, Component } from "react";
-import Editor from "@monaco-editor/react";
-
-class GDYEditor extends Component {
- constructor(props) {
- super(props);
-
- this.state = {};
- }
-
- handleEditorDidMount = (editor, monaco) => {
-
- if(editor) {
- this.editor = editor;
-
- this.editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, () => {
- const updatedGDY = editor.getValue();
-
- // Also want to validate the GDY first?
- this.props.updateGDY(updatedGDY);
- });
- }
- };
-
- render() {
- return (
-
- );
- }
-}
-
-export default GDYEditor;
diff --git a/js/jiddly-app/src/GDYHistory.js b/js/jiddly-app/src/GDYHistory.js
deleted file mode 100644
index b7fda89a5..000000000
--- a/js/jiddly-app/src/GDYHistory.js
+++ /dev/null
@@ -1,39 +0,0 @@
-class GDYHistory {
- constructor(maxHistory) {
- this.maxHistory = maxHistory;
- }
-
- saveGDY(envName, gdyString) {
- let envDataString = window.localStorage.getItem(envName);
-
- let envData;
- if (!envDataString) {
- envData = {
- history: [],
- };
- } else {
- envData = JSON.parse(envDataString);
- }
-
- envData.history.push(gdyString);
-
- if (envData.history.length >= this.maxHistory) {
- envData.history.shift();
- }
-
- window.localStorage.setItem(envName, JSON.stringify(envData));
- }
-
- loadGDY(envName) {
- const envDataString = window.localStorage.getItem(envName);
- if (!envDataString) {
- return undefined;
- }
-
- const envData = JSON.parse(envDataString);
-
- return envData.history[envData.history.length-1];
- }
-}
-
-export default GDYHistory;
diff --git a/js/jiddly-app/src/JiddlyCore.js b/js/jiddly-app/src/JiddlyCore.js
deleted file mode 100644
index 551cdea6d..000000000
--- a/js/jiddly-app/src/JiddlyCore.js
+++ /dev/null
@@ -1,114 +0,0 @@
-import Module from "./wasm/jiddly.js";
-
-/**
- * Contains all the code for loading and interfacing with Jiddly
- */
-class JiddlyCore {
- constructor() {
- this.moduleOverrides = {
- locateFile: (file, prefix) => {
- if (file === "jiddly.wasm") {
- const newPath = prefix + "../../js/" + file;
- console.log("new path:", newPath);
- return newPath;
- }
- },
- };
- }
-
- init = async () => {
- try {
- this.module = await new Module(this.moduleOverrides);
- this.jiddly = new this.module.Jiddly();
- } catch (error) {
- console.error(error);
- }
- };
-
- loadGDY = (gdyString) => {
- try {
- this.gdy = this.jiddly.loadString(gdyString);
- this.game = this.gdy.createGame("Vector");
-
- this.playerCount = this.gdy.getPlayerCount();
-
- for (let p = 0; p < this.playerCount; p++) {
- this.game.registerPlayer("Player " + p, "Vector");
- }
-
- this.game.init();
- this.game.reset();
- } catch (e) {
- console.log("Error loading GDY", e);
- }
- };
-
- unloadGDY = () => {
- this.game.release();
- this.gdy.delete();
- this.game.delete();
- };
-
- getPlayerObservations = () => {};
-
- getActionInputMappings = () => {
- return this.gdy.getActionInputMappings();
- };
-
- getActionNames = () => {
- return this.gdy.getExternalActionNames();
- };
-
- getGlobalVariables = () => {
- const globalVariableNames = this.game.getGlobalVariableNames();
- return this.game.getGlobalVariables(globalVariableNames);
- };
-
- getState = () => {
- try {
- return this.game.getState();
- } catch (error) {
- console.error(error);
- }
- };
-
- getHeight = () => {
- return this.game.getHeight();
- };
-
- getWidth = () => {
- return this.game.getWidth();
- };
-
- step = (action) => {
- try {
-
- const playerActions = [];
- if (!Array.isArray(action)) {
- playerActions.push([action]);
- } else if (!Array.isArray(action[0])) {
- playerActions.push(action);
- }
-
- const actionLength = playerActions[0].length;
-
- for(let p=1; p {
- try {
- return this.game.reset();
- } catch (error) {
- console.error(error);
- }
- };
-}
-
-export default JiddlyCore;
diff --git a/js/jiddly-app/src/level_editor/EditorState.js b/js/jiddly-app/src/level_editor/EditorState.js
deleted file mode 100644
index ea9720dab..000000000
--- a/js/jiddly-app/src/level_editor/EditorState.js
+++ /dev/null
@@ -1,111 +0,0 @@
-class EditorState {
- constructor() {
- this.defaultTileSize = 24;
- this.objectTemplates = {};
-
- this.characterToObject = {};
- }
-
- loadTemplates(gdy, rendererName, rendererConfig) {
-
- this.objectTemplates[rendererName] = {};
-
- if (rendererName in rendererConfig && "BackgroundTile" in rendererConfig[rendererName]) {
-
- const objectTemplate = {
- name: "background",
- id: "background",
- tilingMode: "NONE",
- scale: 1.0,
- color: { r: 1, g: 1, b: 1 },
- zIdx: 0,
- images: [rendererConfig[rendererName]["BackgroundTile"]]
- };
-
- this.objectTemplates[rendererName]["background"] = objectTemplate;
- this.characterToObject["."] = "background";
-
- }
-
- gdy.Objects.forEach((object) => {
- const rendererConfig = object.Observers[rendererName];
-
- for (let idx = 0; idx < rendererConfig.length; idx++) {
- const config = rendererConfig[idx];
-
- let images = [];
- if (Array.isArray(config.Image)) {
- images = config.Image;
- } else {
- images.push(config.Image);
- }
-
- const objectTemplate = {
- name: object.Name,
- id: object.Name + idx,
- tilingMode: config.TilingMode || "NONE",
- scale: config.Scale || 1.0,
- color: config.Color
- ? {
- r: config.Color[0],
- g: config.Color[1],
- b: config.Color[2],
- }
- : { r: 1, g: 1, b: 1 },
- zIdx: object.Z || 0,
- images,
- };
-
- this.objectTemplates[rendererName][objectTemplate.id] = objectTemplate;
- this.characterToObject[object.MapCharacter] = objectTemplate.id;
- }
- });
- }
-
- loadRenderers(gdy) {
- const observers = gdy.Environment.Observers;
-
- this.rendererConfigs = [];
-
- for (const rendererName in observers) {
- const rendererConfig = observers[rendererName];
-
- if (!("TileSize" in rendererConfig)) {
- rendererConfig["TileSize"] = this.defaultTileSize;
- }
-
- if (!("Type" in rendererConfig)) {
- if (rendererName === "SPRITE_2D" || rendererName === "Sprite2D") {
- rendererConfig["Type"] = "SPRITE_2D";
- } else if (rendererName === "BLOCK_2D" || rendererName === "Block2D") {
- rendererConfig["Type"] = "BLOCK_2D";
- } else {
- this.displayError(
- "Only Block2D and Sprite2D renderers can be used to view Jiddly environments"
- );
- }
-
- this.loadTemplates(gdy, rendererName, rendererConfig);
-
- this.rendererConfigs[rendererName] = rendererConfig;
- }
- }
- }
-
- loadGDY(gdy) {
- this.loadRenderers(gdy);
- }
-
- loadLevelString(levelString) {
-
-
- }
-
- addTile() {}
-
- removeTile() {}
-
- toLevelString() {}
-}
-
-export default EditorState;
diff --git a/js/jiddly-app/src/level_editor/scenes/EditorScene.js b/js/jiddly-app/src/level_editor/scenes/EditorScene.js
deleted file mode 100644
index 2407df054..000000000
--- a/js/jiddly-app/src/level_editor/scenes/EditorScene.js
+++ /dev/null
@@ -1,276 +0,0 @@
-import Phaser from "phaser";
-
-const COLOR_PRIMARY = 0x4e342e;
-const COLOR_LIGHT = 0x7b5e57;
-const COLOR_DARK = 0x260e04;
-
-class EditorScene extends Phaser.Scene {
- constructor() {
- super("EditorScene");
- }
-
-
-
- loadTemplates = () => {
- this.load.baseURL = "resources/images/";
-
- // this.renderConfig = getRendererConfig("Sprite2D");
-
- // this.objectTemplates
-
- };
-
- createTileMenu() {
- this.print = this.add.text(0, 0, "");
-
- var tabs = this.rexUI.add.tabs({
- x: 0,
- y: 300,
-
- panel: this.rexUI.add.gridTable({
- background: this.rexUI.add.roundRectangle(
- 0,
- 0,
- 20,
- 10,
- 10,
- COLOR_PRIMARY
- ),
-
- table: {
- width: 250,
- height: 400,
-
- cellWidth: 120,
- cellHeight: 60,
- columns: 2,
- mask: {
- padding: 2,
- },
- },
-
- slider: {
- track: this.rexUI.add.rectangle(0, 0, 20, 10, 10, COLOR_DARK),
- thumb: this.rexUI.add.rectangle(0, 0, 0, 0, 9, COLOR_LIGHT),
- },
-
- //scroller: true,
-
- createCellContainerCallback: function (cell) {
- var scene = cell.scene,
- width = cell.width,
- height = cell.height,
- item = cell.item,
- index = cell.index;
- return scene.rexUI.add.label({
- width: width,
- height: height,
-
- background: scene.rexUI.add
- .roundRectangle(0, 0, 20, 20, 0)
- .setStrokeStyle(2, COLOR_DARK),
- icon: scene.rexUI.add.roundRectangle(
- 0,
- 0,
- 20,
- 20,
- 10,
- item.color
- ),
- text: scene.add.text(0, 0, item.id),
-
- space: {
- icon: 10,
- left: 15,
- },
- });
- },
- }),
-
- // leftButtons: [
- // this.createButton(this, 2, "AA"),
- // this.createButton(this, 2, "BB"),
- // this.createButton(this, 2, "CC"),
- // this.createButton(this, 2, "DD"),
- // ],
-
- rightButtons: [this.createButton(this, 0, "+"), this.createButton(this, 0, "-")],
-
- space: {
- leftButtonsOffset: 20,
- rightButtonsOffset: 30,
-
- leftButton: 1,
- },
- })
- .layout();
- //.drawBounds(this.add.graphics(), 0xff0000);
- const items = this.createItems();
- tabs.on(
- "button.click",
- function (button, groupName, index) {
- switch (groupName) {
- case "left":
- // Highlight button
- if (this._prevTypeButton) {
- this._prevTypeButton
- .getElement("background")
- .setFillStyle(COLOR_DARK);
- }
- button.getElement("background").setFillStyle(COLOR_PRIMARY);
- this._prevTypeButton = button;
- if (this._prevSortButton === undefined) {
- return;
- }
- break;
-
- case "right":
- // Highlight button
- if (this._prevSortButton) {
- this._prevSortButton
- .getElement("background")
- .setFillStyle(COLOR_DARK);
- }
- button.getElement("background").setFillStyle(COLOR_PRIMARY);
- this._prevSortButton = button;
- if (this._prevTypeButton === undefined) {
- return;
- }
- break;
- }
-
- // Load items into grid table
- this.getElement("panel").setItems(items).scrollToTop();
- },
- tabs
- );
-
- // Grid table
- tabs
- .getElement("panel")
- .on(
- "cell.click",
- function (cellContainer, cellIndex) {
- this.print.text += cellIndex + ": " + cellContainer.text + "\n";
- },
- this
- )
- .on(
- "cell.over",
- function (cellContainer, cellIndex) {
- cellContainer
- .getElement("background")
- .setStrokeStyle(2, COLOR_LIGHT)
- .setDepth(1);
- },
- this
- )
- .on(
- "cell.out",
- function (cellContainer, cellIndex) {
- cellContainer
- .getElement("background")
- .setStrokeStyle(2, COLOR_DARK)
- .setDepth(0);
- },
- this
- );
-
- tabs.emitButtonClick("left", 0).emitButtonClick("right", 0);
- }
-
- createItems(count) {
- var TYPE = ["AA", "BB", "CC", "DD"];
-
- const items = [];
- // Create a collection
- for (var i = 0; i < count; i++) {
- items.push({
- type: TYPE[i % 4],
- id: i,
- color: 0xffffff,
- });
- }
- return items;
- }
-
- createButton(scene, direction, text) {
- var radius;
- switch (direction) {
- case 0: // Right
- radius = {
- tr: 20,
- br: 20,
- };
- break;
- case 2: // Left
- radius = {
- tl: 20,
- bl: 20,
- };
- break;
- }
- return scene.rexUI.add.label({
- width: 50,
- height: 40,
- background: scene.rexUI.add.roundRectangle(
- 0,
- 0,
- 50,
- 50,
- radius,
- COLOR_DARK
- ),
- text: scene.add.text(0, 0, text, {
- fontSize: "18pt",
- }),
- space: {
- left: 10,
- },
- });
- }
-
- init = (data) => {
-
- this.editorState = data.editorState;
-
- }
-
- preload() {
- console.log("Editor Scene - Preload");
-
- // load object images
- this.load.scenePlugin({
- key: "rexuiplugin",
- url: "https://raw.githubusercontent.com/rexrainbow/phaser3-rex-notes/master/dist/rexuiplugin.min.js",
- sceneKey: "rexUI",
- });
-
- this.loadTemplates(this.editorState.objectTemplates);
- }
-
- create() {
- console.log("Editor Scene - Create");
-
- this.text = this.add.text(
- this.cameras.main.width / 2,
- this.cameras.main.height / 2,
- "Loading Level Editor",
- {
- font: "32px Arial",
- fill: "#ff0044",
- align: "center",
- }
- );
-
- //this.createTileMenu();
- }
-
- update() {
- this.text.setX(this.cameras.main.width / 2);
- this.text.setY(this.cameras.main.height / 2);
- this.text.setOrigin(0.5, 0.5);
- }
-}
-
-export default EditorScene;
diff --git a/js/jiddly-app/src/level_editor/scenes/LoadingScene.js b/js/jiddly-app/src/level_editor/scenes/LoadingScene.js
deleted file mode 100644
index bfbe80aec..000000000
--- a/js/jiddly-app/src/level_editor/scenes/LoadingScene.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import Phaser from "phaser";
-
-class LoadingScene extends Phaser.Scene {
- constructor() {
- super("LoadingScene");
- }
-
- preload() {
- console.log("Loading Scene - Preload");
- }
-
- create() {
- console.log("Loading Scene - Create");
-
- this.text = this.add.text(
- this.cameras.main.width / 2,
- this.cameras.main.height / 2,
- "Loading Griddly GDY",
- {
- font: "32px Arial",
- fill: "#ff0044",
- align: "center",
- }
- );
- }
-
- update() {
- this.text.setX(this.cameras.main.width / 2);
- this.text.setY(this.cameras.main.height / 2);
- this.text.setOrigin(0.5, 0.5);
- }
-}
-
-export default LoadingScene;
diff --git a/js/jiddly-app/src/renderer/Player.js b/js/jiddly-app/src/renderer/Player.js
deleted file mode 100644
index 4758c5101..000000000
--- a/js/jiddly-app/src/renderer/Player.js
+++ /dev/null
@@ -1,59 +0,0 @@
-import { React, Component } from "react";
-import Phaser from "phaser";
-
-import HumanPlayerScene from "./scenes/HumanPlayerScene";
-import LoadingScene from "./scenes/LoadingScene";
-
-class Player extends Component {
-
- updateCanvasSize = () => {
- this.game.scale.resize(this.props.width, this.props.height);
- };
-
- componentDidMount() {
- const config = {
- type: Phaser.AUTO,
- parent: this.divElement,
- backgroundColor: "#000000",
- scale: {
- expandParent: false,
- },
- scene: [LoadingScene, HumanPlayerScene],
- };
-
- this.game = new Phaser.Game(config);
-
- this.updateCanvasSize();
- }
-
- componentDidUpdate(prevProps) {
- this.updateCanvasSize();
-
- if (prevProps.gdyHash === 0 && this.props.gdy) {
- this.game.scene.remove("LoadingScene");
- this.game.scene.start("HumanPlayerScene", {
- gdy: this.props.gdy,
- rendererName: "Sprite2D",
- jiddly: this.props.jiddly,
- });
- } else if (prevProps.gdyHash !== this.props.gdyHash) {
- this.game.scene.getScene("HumanPlayerScene").scene.restart({
- gdy: this.props.gdy,
- rendererName: "Sprite2D",
- jiddly: this.props.jiddly,
- });
- }
- }
-
- render() {
- return (
- {
- this.divElement = divElement;
- }}
- >
- );
- }
-}
-
-export default Player;
diff --git a/js/jiddly-app/src/renderer/scenes/HumanPlayerScene.js b/js/jiddly-app/src/renderer/scenes/HumanPlayerScene.js
deleted file mode 100644
index 330ffc50c..000000000
--- a/js/jiddly-app/src/renderer/scenes/HumanPlayerScene.js
+++ /dev/null
@@ -1,473 +0,0 @@
-import Phaser from "phaser";
-import Block2DRenderer from "./Block2DRenderer";
-import Sprite2DRenderer from "./Sprite2DRenderer";
-
-class HumanPlayerScene extends Phaser.Scene {
- constructor() {
- super("HumanPlayerScene");
-
- this.stateHash = 0;
- this.loaded = false;
- this.defaultTileSize = 24;
- }
-
- getRendererConfig = (rendererName) => {
- let rendererConfig = {};
- const observers = this.gdy.Environment.Observers;
- if (rendererName in observers) {
- rendererConfig = observers[rendererName];
- }
-
- if (!("TileSize" in rendererConfig)) {
- rendererConfig["TileSize"] = this.defaultTileSize;
- }
-
- if (!("Type" in rendererConfig)) {
- if (rendererName === "SPRITE_2D" || rendererName === "Sprite2D") {
- rendererConfig["Type"] = "SPRITE_2D";
- } else if (rendererName === "BLOCK_2D" || rendererName === "Block2D") {
- rendererConfig["Type"] = "BLOCK_2D";
- } else {
- this.displayError(
- "Only Block2D and Sprite2D renderers can be used to view Jiddly environments"
- );
- }
- }
-
- return rendererConfig;
- };
-
- initModals = () => {
- // Set the modals to invisible
- this.variableDebugModalActive = false;
- this.controlsModalActive = false;
-
- // Get all the global variables
-
- this.globalVariableDebugText = this.getGlobalVariableDebugText();
-
- this.variableDebugModal = this.add.text(
- this.cameras.main.width / 2,
- this.cameras.main.height / 5,
- this.globalVariableDebugText
- );
- this.variableDebugModal.setBackgroundColor("#000000AA");
- this.variableDebugModal.setDepth(100);
- this.variableDebugModal.setOrigin(0, 0);
- this.variableDebugModal.setVisible(false);
-
- const actionDescription = [];
- const actionNames = this.jiddly.getActionNames();
- actionNames.forEach((actionName) => {
- actionDescription.push(actionName + ": ");
- this.keyMap.forEach((actionMapping, key) => {
- if (actionMapping.actionName === actionName)
- actionDescription.push(
- " " + String.fromCharCode(key) + ": " + actionMapping.description
- );
- });
- actionDescription.push("");
- });
-
- this.controlsModal = this.add.text(
- this.cameras.main.width / 2,
- this.cameras.main.height / 5,
- [
- "Name: " + this.gdy.Environment.Name,
- "Description: " + this.gdy.Environment.Description,
- "",
- "Actions:",
- "",
- ...actionDescription,
- ]
- );
- this.controlsModal.setWordWrapWidth(this.cameras.main.width / 2);
- this.controlsModal.setBackgroundColor("#000000AA");
- this.controlsModal.setDepth(100);
- this.controlsModal.setOrigin(0.5, 0);
- this.controlsModal.setVisible(false);
- };
-
- init = (data) => {
- try {
- this.data = data;
-
- // Functions to interact with the environment
- this.jiddly = this.data.jiddly;
-
- // Data about the environment
- this.gdy = this.data.gdy;
-
- this.gridHeight = this.jiddly.getHeight();
- this.gridWidth = this.jiddly.getWidth();
-
- this.levelRendererName = this.data.rendererName;
-
- this.renderConfig = this.getRendererConfig(this.levelRendererName);
- this.avatarObject = this.gdy.Environment.Player.AvatarObject;
-
- if (this.renderConfig.Type === "BLOCK_2D") {
- this.levelRenderer = new Block2DRenderer(
- this,
- this.renderConfig,
- this.avatarObject
- );
- } else if (this.renderConfig.Type === "SPRITE_2D") {
- this.levelRenderer = new Sprite2DRenderer(
- this,
- this.renderConfig,
- this.avatarObject
- );
- }
- } catch (e) {
- this.displayError("Cannot load GDY file." + e);
- }
-
- this.renderData = {
- objects: {},
- };
- };
-
- displayError = (error) => {
- console.log("Display Error: ", error);
- };
-
- updateState = (state) => {
- const newObjectIds = state.objects.map((object) => {
- return object.id;
- });
-
- this.levelRenderer.beginUpdate(state.objects);
-
- state.objects.forEach((object) => {
- const objectTemplateName = object.name + object.renderTileId;
- if (object.id in this.renderData.objects) {
- const currentObjectData = this.renderData.objects[object.id];
- this.levelRenderer.updateObject(
- currentObjectData.sprite,
- object.name,
- objectTemplateName,
- object.location.x,
- object.location.y,
- object.orientation
- );
-
- this.renderData.objects[object.id] = {
- ...currentObjectData,
- object,
- };
- } else {
- const sprite = this.levelRenderer.addObject(
- object.name,
- objectTemplateName,
- object.location.x,
- object.location.y,
- object.orientation
- );
-
- this.renderData.objects[object.id] = {
- object,
- sprite,
- };
- }
- });
-
- for (const k in this.renderData.objects) {
- const id = this.renderData.objects[k].object.id;
- if (!newObjectIds.includes(id)) {
- this.renderData.objects[k].sprite.destroy();
- delete this.renderData.objects[k];
- }
- }
- };
-
- toMovementKey(vector) {
- return `${vector.x},${vector.y}`;
- }
-
- getGlobalVariableDebugText() {
- const globalVariables = this.jiddly.getGlobalVariables();
-
- const globalVariableDescription = [];
- const playerVariableDescription = [];
- for (const variableName in globalVariables) {
- const variableData = globalVariables[variableName];
- if (Object.keys(variableData).length === 1) {
- // We have a global variable
- const variableValue = variableData[0];
- globalVariableDescription.push(variableName + ": " + variableValue);
- } else {
- // We have a player variable
- if (this.jiddly.playerCount === 1) {
- const variableValue = variableData[1];
- playerVariableDescription.push(variableName + ": " + variableValue);
- } else {
- let variableValues = "";
- for (let p = 0; p < this.jiddly.playerCount; p++) {
- const variableValue = variableData[p + 1];
- variableValues += "\t" + (p + 1) + ": " + variableValue;
- }
-
- playerVariableDescription.push(variableName + ":" + variableValues);
- }
- }
- }
-
- return [
- "Global Variables:",
- ...globalVariableDescription,
- "",
- "Player Variables:",
- ...playerVariableDescription,
- ];
- }
-
- updateModals() {
- if (this.variableDebugModalActive) {
- this.variableDebugModal.setText(this.globalVariableDebugText);
- this.variableDebugModal.setPosition(0, 0);
- this.variableDebugModal.setWordWrapWidth(this.cameras.main.width / 2);
- }
-
- if (this.controlsModalActive) {
- this.controlsModal.setWordWrapWidth(this.cameras.main.width / 2);
- this.controlsModal.setPosition(
- this.cameras.main.width / 2,
- this.cameras.main.height / 5
- );
- }
- }
-
- toggleVariableDebugModal() {
- this.variableDebugModalActive = !this.variableDebugModalActive;
- this.variableDebugModal.setVisible(this.variableDebugModalActive);
- }
-
- toggleControlsModal() {
- this.controlsModalActive = !this.controlsModalActive;
- this.controlsModal.setVisible(this.controlsModalActive);
- }
-
- setupKeyboardMapping = () => {
- const actionInputMappings = this.jiddly.getActionInputMappings();
- const actionNames = this.jiddly.getActionNames();
-
- const actionKeyOrder = [
- Phaser.Input.Keyboard.KeyCodes.THREE,
- Phaser.Input.Keyboard.KeyCodes.TWO,
- Phaser.Input.Keyboard.KeyCodes.ONE,
- Phaser.Input.Keyboard.KeyCodes.L,
- Phaser.Input.Keyboard.KeyCodes.O,
- Phaser.Input.Keyboard.KeyCodes.M,
- Phaser.Input.Keyboard.KeyCodes.K,
- Phaser.Input.Keyboard.KeyCodes.N,
- Phaser.Input.Keyboard.KeyCodes.J,
- Phaser.Input.Keyboard.KeyCodes.U,
- Phaser.Input.Keyboard.KeyCodes.B,
- Phaser.Input.Keyboard.KeyCodes.H,
- Phaser.Input.Keyboard.KeyCodes.Y,
- Phaser.Input.Keyboard.KeyCodes.V,
- Phaser.Input.Keyboard.KeyCodes.G,
- Phaser.Input.Keyboard.KeyCodes.T,
- Phaser.Input.Keyboard.KeyCodes.C,
- Phaser.Input.Keyboard.KeyCodes.F,
- Phaser.Input.Keyboard.KeyCodes.R,
- Phaser.Input.Keyboard.KeyCodes.Q,
- Phaser.Input.Keyboard.KeyCodes.E,
- ];
-
- const movementKeySets = [
- {
- "0,-1": Phaser.Input.Keyboard.KeyCodes.UP,
- "-1,0": Phaser.Input.Keyboard.KeyCodes.LEFT,
- "0,1": Phaser.Input.Keyboard.KeyCodes.DOWN,
- "1,0": Phaser.Input.Keyboard.KeyCodes.RIGHT,
- },
- {
- "0,-1": Phaser.Input.Keyboard.KeyCodes.W,
- "-1,0": Phaser.Input.Keyboard.KeyCodes.A,
- "0,1": Phaser.Input.Keyboard.KeyCodes.S,
- "1,0": Phaser.Input.Keyboard.KeyCodes.D,
- },
- ];
-
- this.input.keyboard.on("keydown-P", (event) => {
- this.toggleControlsModal();
- });
-
- this.input.keyboard.on("keydown-I", (event) => {
- this.toggleVariableDebugModal();
- });
-
- this.keyMap = new Map();
-
- actionNames.forEach((actionName, actionTypeId) => {
- const actionMapping = actionInputMappings[actionName];
- if (!actionMapping.internal) {
- const inputMappings = Object.entries(actionMapping.inputMappings);
- console.log(inputMappings);
-
- const actionDirections = new Set();
- inputMappings.forEach((inputMapping) => {
- // check that all the vectorToDest are different
- const mapping = inputMapping[1];
- actionDirections.add(this.toMovementKey(mapping.vectorToDest));
- });
-
- const directional = actionDirections.size !== 1;
-
- if (directional) {
- // pop movement keys
- const movementKeys = movementKeySets.pop();
- inputMappings.forEach((inputMapping) => {
- const actionId = Number(inputMapping[0]);
- const mapping = inputMapping[1];
-
- let key;
- if (this.toMovementKey(mapping.vectorToDest) in movementKeys) {
- key = movementKeys[this.toMovementKey(mapping.vectorToDest)];
- } else if (
- this.toMovementKey(mapping.orientationVector) in movementKeys
- ) {
- key = movementKeys[this.toMovementKey(mapping.orientationVector)];
- }
- this.keyMap.set(key, {
- actionName,
- actionTypeId,
- actionId,
- description: mapping.description,
- });
- });
- } else {
- // We have an action Key
-
- inputMappings.forEach((inputMapping) => {
- const key = actionKeyOrder.pop();
-
- const actionId = Number(inputMapping[0]);
- const mapping = inputMapping[1];
-
- this.keyMap.set(key, {
- actionName,
- actionTypeId,
- actionId,
- description: mapping.description,
- });
- });
- }
- }
- });
-
- const allKeys = {};
-
- this.keyMap.forEach((actionMapping, key) => {
- allKeys[key] = key;
- });
-
- this.keyboardMapping = this.input.keyboard.addKeys(allKeys, false);
-
- // When the mouse leaves the window we stop collecting keys
- this.input.on(Phaser.Input.Events.POINTER_DOWN_OUTSIDE, () => {
- this.input.keyboard.enabled = false;
- });
-
- // When we click back in the scene we collect keys
- this.input.on(Phaser.Input.Events.POINTER_DOWN, () => {
- document.activeElement.blur();
- this.input.keyboard.enabled = true;
- });
- };
-
- processUserAction = () => {
- if (!this.cooldown) {
- this.cooldown = true;
- setTimeout(() => {
- this.cooldown = false;
- }, 50);
-
- let action = [];
- this.keyMap.forEach((actionMapping, key) => {
- if (this.keyboardMapping[key].isDown) {
- action.push(actionMapping.actionTypeId);
- action.push(actionMapping.actionId);
- }
- });
-
- if (action.length) {
- console.log("Action: ", action);
- const stepResult = this.jiddly.step(action);
- console.log("Step Result", stepResult);
-
- this.globalVariableDebugText = this.getGlobalVariableDebugText();
-
- if (stepResult.terminated) {
- this.jiddly.reset();
- }
-
- return this.jiddly.getState();
- }
- } else {
- return false;
- }
- };
-
- preload = () => {
- const envName = this.gdy.Environment.Name;
-
- this.loadingText = this.add.text(
- this.cameras.main.width / 2,
- this.cameras.main.height / 2,
- "Loading assets for " + envName,
- {
- font: "32px Arial",
- fill: "#ff0044",
- align: "center",
- }
- );
-
- this.loadingText.setX(this.cameras.main.width / 2);
- this.loadingText.setY(this.cameras.main.height / 2);
- this.loadingText.setOrigin(0.5, 0.5);
- if (this.levelRenderer) {
- this.levelRenderer.loadTemplates(this.gdy.Objects);
- }
- };
-
- create = () => {
- console.log("Create");
-
- this.loadingText.destroy();
- this.loaded = true;
-
- if (this.levelRenderer) {
- this.mapping = this.setupKeyboardMapping();
- this.levelRenderer.init(this.gridWidth, this.gridHeight);
- this.initModals();
- this.updateState(this.jiddly.getState());
- this.updateModals();
- }
- };
-
- update = () => {
- if (!this.loaded) {
- this.loadingText.setX(this.cameras.main.width / 2);
- this.loadingText.setY(this.cameras.main.height / 2);
- this.loadingText.setOrigin(0.5, 0.5);
- } else {
- if (this.levelRenderer) {
- const state = this.processUserAction();
-
- if (state && this.stateHash !== state.hash) {
- this.stateHash = state.hash;
- this.updateState(state);
- }
-
- this.updateModals();
-
-
- }
- }
- };
-}
-
-export default HumanPlayerScene;
diff --git a/js/jiddly-app/src/wasm/jiddly.js b/js/jiddly-app/src/wasm/jiddly.js
deleted file mode 100644
index 856c980a2..000000000
--- a/js/jiddly-app/src/wasm/jiddly.js
+++ /dev/null
@@ -1,21 +0,0 @@
-
-var Module = (() => {
- var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
-
- return (
-function(Module) {
- Module = Module || {};
-
-var Module=typeof Module!="undefined"?Module:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="jiddly.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Na"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Qa"];addOnInit(Module["asm"]["Oa"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1}}function CatchInfo(ptr){this.free=function(){_free(this.ptr);this.ptr=0};this.set_base_ptr=function(basePtr){HEAP32[this.ptr>>2]=basePtr};this.get_base_ptr=function(){return HEAP32[this.ptr>>2]};this.set_adjusted_ptr=function(adjustedPtr){HEAP32[this.ptr+4>>2]=adjustedPtr};this.get_adjusted_ptr_addr=function(){return this.ptr+4};this.get_adjusted_ptr=function(){return HEAP32[this.ptr+4>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_exception_info().get_type());if(isPointer){return HEAP32[this.get_base_ptr()>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.get_base_ptr()};this.get_exception_info=function(){return new ExceptionInfo(this.get_base_ptr())};if(ptr===undefined){this.ptr=_malloc(8);this.set_adjusted_ptr(0)}else{this.ptr=ptr}}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var catchInfo=new CatchInfo(ptr);var info=catchInfo.get_exception_info();if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(catchInfo);exception_addRef(info);return catchInfo.get_exception_ptr()}var exceptionLast=0;function ___cxa_free_exception(ptr){return _free(new ExceptionInfo(ptr).ptr)}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){(function(a1){return dynCall_ii.apply(null,[destructor,a1])})(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var catchInfo=exceptionCaught.pop();exception_decRef(catchInfo.get_exception_info());catchInfo.free();exceptionLast=0}function ___resumeException(catchInfoPtr){var catchInfo=new CatchInfo(catchInfoPtr);var ptr=catchInfo.get_base_ptr();if(!exceptionLast){exceptionLast=ptr}catchInfo.free();throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0|0}var info=new ExceptionInfo(thrown);var thrownType=info.get_type();var catchInfo=new CatchInfo;catchInfo.set_base_ptr(thrown);catchInfo.set_adjusted_ptr(thrown);if(!thrownType){setTempRet0(0);return catchInfo.ptr|0}var typeArray=Array.prototype.slice.call(arguments);for(var i=0;i>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: "'+fieldName+'"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError('type "'+name+'" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError("Cannot register type '"+name+"' twice")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=(handle=>handle);return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=(handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle});detachFinalizer=(handle=>finalizationRegistry.unregister(handle));return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){return dynCallLegacy(sig,ptr,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){return getDynCaller(signature,rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature "+signature+": "+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+": "+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError("Cannot construct "+name+" due to unbound types",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError("Tried to invoke ctor of "+name+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(registeredClass.constructor_body).toString()+") parameters instead!")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=(()=>{throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)});whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise((resolve,reject)=>{Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(handleSleepReturnValue=>{if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(()=>Module["_asyncify_start_rewind"](Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(()=>Module["_asyncify_start_unwind"](Asyncify.currData));if(typeof Browser!="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(func=>callUserCallback(func))}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(wakeUp=>{startAsync().then(wakeUp)})}};function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";args1.push("Asyncify");args2.push(Asyncify);invokerFnBody+="function onDone("+(returns?"rv":"")+") {\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this["fromWireType"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this["fromWireType"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_smart_ptr(rawType,rawPointeeType,name,sharingPolicy,getPointeeSignature,rawGetPointee,constructorSignature,rawConstructor,shareSignature,rawShare,destructorSignature,rawDestructor){name=readLatin1String(name);rawGetPointee=embind__requireFunction(getPointeeSignature,rawGetPointee);rawConstructor=embind__requireFunction(constructorSignature,rawConstructor);rawShare=embind__requireFunction(shareSignature,rawShare);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);whenDependentTypesAreResolved([rawType],[rawPointeeType],function(pointeeType){pointeeType=pointeeType[0];var registeredPointer=new RegisteredPointer(name,pointeeType.registeredClass,false,false,true,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor);return[registeredPointer]})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;ilengthBytesUTF8(value))}else{getLength=(()=>value.length)}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>HEAPU32);shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}function __emval_call(handle,argCount,argTypes,argv){handle=Emval.toValue(handle);var types=__emval_lookupTypes(argCount,argTypes);var args=new Array(argCount);for(var i=0;i>2]=Emval.toHandle(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,__emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var params=["retType"];var args=[retType];var argsList="";for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function __emval_new_array(){return Emval.toHandle([])}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_new_object(){return Emval.toHandle({})}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_set_property(handle,key,value){handle=Emval.toValue(handle);key=Emval.toValue(key);value=Emval.toValue(value);handle[key]=value}function __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return Emval.toHandle(v)}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAP32[tzname+4>>2]=summerNamePtr}else{HEAP32[tzname>>2]=summerNamePtr;HEAP32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort("")}var _emscripten_get_now;_emscripten_get_now=(()=>performance.now());function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_get_heap_max(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=_emscripten_get_heap_max();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode,fd_start,fd_end)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,address,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=((stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=(()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)});openRequest.onsuccess=(()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=(()=>{ok++;if(ok+fail==total)finish()});putRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=(()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=(()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()});getRequest.onerror=(()=>{fail++;if(ok+fail==total)finish()})});transaction.onerror=onerror});openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(path[0]==="/"){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _getTempRet0(){return getTempRet0()}function _llvm_eh_typeid_for(type){return type}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"m":___cxa_allocate_exception,"s":___cxa_begin_catch,"v":___cxa_end_catch,"b":___cxa_find_matching_catch_2,"i":___cxa_find_matching_catch_3,"t":___cxa_find_matching_catch_4,"l":___cxa_free_exception,"aa":___cxa_rethrow,"z":___cxa_throw,"ja":___cxa_uncaught_exceptions,"g":___resumeException,"ia":__embind_finalize_value_object,"fa":__embind_register_bigint,"wa":__embind_register_bool,"H":__embind_register_class,"L":__embind_register_class_constructor,"w":__embind_register_class_function,"va":__embind_register_emval,"Ma":__embind_register_enum,"Q":__embind_register_enum_value,"Z":__embind_register_float,"E":__embind_register_integer,"B":__embind_register_memory_view,"U":__embind_register_smart_ptr,"Y":__embind_register_std_string,"S":__embind_register_std_wstring,"$":__embind_register_value_object,"xa":__embind_register_value_object_field,"ya":__embind_register_void,"qa":__emscripten_date_now,"pa":__emscripten_get_now_is_monotonic,"Da":__emval_as,"Ia":__emval_call,"Ba":__emval_call_method,"Ga":__emval_call_void_method,"Ja":__emval_decref,"Ha":__emval_get_method_caller,"Ea":__emval_get_property,"Ka":__emval_incref,"T":__emval_new_array,"D":__emval_new_cstring,"J":__emval_new_object,"Ca":__emval_run_destructors,"Fa":__emval_set_property,"G":__emval_take_value,"ra":__gmtime_js,"sa":__localtime_js,"ta":__tzset_js,"R":_abort,"ua":_emscripten_memcpy_big,"ka":_emscripten_resize_heap,"na":_environ_get,"oa":_environ_sizes_get,"la":_fd_close,"ma":_fd_fdstat_get,"ea":_fd_seek,"X":_fd_write,"a":_getTempRet0,"K":invoke_diii,"Aa":invoke_diiiii,"za":invoke_fiff,"V":invoke_fiii,"p":invoke_i,"P":invoke_idiii,"d":invoke_ii,"e":invoke_iii,"k":invoke_iiii,"u":invoke_iiiii,"q":invoke_iiiiii,"A":invoke_iiiiiii,"W":invoke_iiiiiiii,"_":invoke_iiiiiiiii,"O":invoke_iiiiiiiiiiii,"ga":invoke_ijjiii,"da":invoke_j,"ca":invoke_ji,"ba":invoke_jiiii,"n":invoke_v,"h":invoke_vi,"c":invoke_vii,"f":invoke_viii,"j":invoke_viiii,"r":invoke_viiiii,"o":invoke_viiiiii,"x":invoke_viiiiiii,"F":invoke_viiiiiiii,"I":invoke_viiiiiiiii,"C":invoke_viiiiiiiiii,"N":invoke_viiiiiiiiiiiiiii,"y":_llvm_eh_typeid_for,"M":_setTempRet0,"La":_strftime,"ha":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["Oa"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Pa"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["Ra"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["Sa"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["Ta"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["Ua"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["Va"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["Wa"]).apply(null,arguments)};var ___cxa_can_catch=Module["___cxa_can_catch"]=function(){return(___cxa_can_catch=Module["___cxa_can_catch"]=Module["asm"]["Xa"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["Ya"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["Za"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["_a"]).apply(null,arguments)};var dynCall_i=Module["dynCall_i"]=function(){return(dynCall_i=Module["dynCall_i"]=Module["asm"]["$a"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ab"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["bb"]).apply(null,arguments)};var dynCall_iii=Module["dynCall_iii"]=function(){return(dynCall_iii=Module["dynCall_iii"]=Module["asm"]["cb"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["db"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["eb"]).apply(null,arguments)};var dynCall_iiiii=Module["dynCall_iiiii"]=function(){return(dynCall_iiiii=Module["dynCall_iiiii"]=Module["asm"]["fb"]).apply(null,arguments)};var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=function(){return(dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=Module["asm"]["gb"]).apply(null,arguments)};var dynCall_viif=Module["dynCall_viif"]=function(){return(dynCall_viif=Module["dynCall_viif"]=Module["asm"]["hb"]).apply(null,arguments)};var dynCall_fii=Module["dynCall_fii"]=function(){return(dynCall_fii=Module["dynCall_fii"]=Module["asm"]["ib"]).apply(null,arguments)};var dynCall_viiiiii=Module["dynCall_viiiiii"]=function(){return(dynCall_viiiiii=Module["dynCall_viiiiii"]=Module["asm"]["jb"]).apply(null,arguments)};var dynCall_idiii=Module["dynCall_idiii"]=function(){return(dynCall_idiii=Module["dynCall_idiii"]=Module["asm"]["kb"]).apply(null,arguments)};var dynCall_ijjiii=Module["dynCall_ijjiii"]=function(){return(dynCall_ijjiii=Module["dynCall_ijjiii"]=Module["asm"]["lb"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["mb"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["nb"]).apply(null,arguments)};var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=function(){return(dynCall_iiiiiii=Module["dynCall_iiiiiii"]=Module["asm"]["ob"]).apply(null,arguments)};var dynCall_diii=Module["dynCall_diii"]=function(){return(dynCall_diii=Module["dynCall_diii"]=Module["asm"]["pb"]).apply(null,arguments)};var dynCall_diiiii=Module["dynCall_diiiii"]=function(){return(dynCall_diiiii=Module["dynCall_diiiii"]=Module["asm"]["qb"]).apply(null,arguments)};var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=function(){return(dynCall_viiiiiii=Module["dynCall_viiiiiii"]=Module["asm"]["rb"]).apply(null,arguments)};var dynCall_iiiiii=Module["dynCall_iiiiii"]=function(){return(dynCall_iiiiii=Module["dynCall_iiiiii"]=Module["asm"]["sb"]).apply(null,arguments)};var dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=function(){return(dynCall_viiiiiiii=Module["dynCall_viiiiiiii"]=Module["asm"]["tb"]).apply(null,arguments)};var dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=function(){return(dynCall_viiiiiiiii=Module["dynCall_viiiiiiiii"]=Module["asm"]["ub"]).apply(null,arguments)};var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=function(){return(dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=Module["asm"]["vb"]).apply(null,arguments)};var dynCall_fiff=Module["dynCall_fiff"]=function(){return(dynCall_fiff=Module["dynCall_fiff"]=Module["asm"]["wb"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["xb"]).apply(null,arguments)};var dynCall_iidiiii=Module["dynCall_iidiiii"]=function(){return(dynCall_iidiiii=Module["dynCall_iidiiii"]=Module["asm"]["yb"]).apply(null,arguments)};var dynCall_j=Module["dynCall_j"]=function(){return(dynCall_j=Module["dynCall_j"]=Module["asm"]["zb"]).apply(null,arguments)};var dynCall_ji=Module["dynCall_ji"]=function(){return(dynCall_ji=Module["dynCall_ji"]=Module["asm"]["Ab"]).apply(null,arguments)};var dynCall_viijii=Module["dynCall_viijii"]=function(){return(dynCall_viijii=Module["dynCall_viijii"]=Module["asm"]["Bb"]).apply(null,arguments)};var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=function(){return(dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=Module["asm"]["Cb"]).apply(null,arguments)};var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=Module["asm"]["Db"]).apply(null,arguments)};var dynCall_jiiii=Module["dynCall_jiiii"]=function(){return(dynCall_jiiii=Module["dynCall_jiiii"]=Module["asm"]["Eb"]).apply(null,arguments)};var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=Module["asm"]["Fb"]).apply(null,arguments)};var dynCall_fiii=Module["dynCall_fiii"]=function(){return(dynCall_fiii=Module["dynCall_fiii"]=Module["asm"]["Gb"]).apply(null,arguments)};var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=function(){return(dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=Module["asm"]["Hb"]).apply(null,arguments)};var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=function(){return(dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=Module["asm"]["Ib"]).apply(null,arguments)};var dynCall_iiiiij=Module["dynCall_iiiiij"]=function(){return(dynCall_iiiiij=Module["dynCall_iiiiij"]=Module["asm"]["Jb"]).apply(null,arguments)};var dynCall_iiiiid=Module["dynCall_iiiiid"]=function(){return(dynCall_iiiiid=Module["dynCall_iiiiid"]=Module["asm"]["Kb"]).apply(null,arguments)};var dynCall_iiiiijj=Module["dynCall_iiiiijj"]=function(){return(dynCall_iiiiijj=Module["dynCall_iiiiijj"]=Module["asm"]["Lb"]).apply(null,arguments)};var dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=function(){return(dynCall_iiiiiijj=Module["dynCall_iiiiiijj"]=Module["asm"]["Mb"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Nb"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ob"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Pb"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Qb"]).apply(null,arguments)};function invoke_ii(index,a1){var sp=stackSave();try{return dynCall_ii(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{dynCall_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{dynCall_vi(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{dynCall_viii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return dynCall_iii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{dynCall_vii(index,a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{dynCall_viiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_idiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_idiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return dynCall_i(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_iiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{dynCall_v(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{dynCall_viiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{dynCall_viiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return dynCall_iiiiiii(index,a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_diii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_diiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_diiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{dynCall_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return dynCall_iiiiii(index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{dynCall_viiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9){var sp=stackSave();try{dynCall_viiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){var sp=stackSave();try{return dynCall_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiff(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiff(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_fiii(index,a1,a2,a3){var sp=stackSave();try{return dynCall_fiii(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){var sp=stackSave();try{return dynCall_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){var sp=stackSave();try{dynCall_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ijjiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{return dynCall_ijjiii(index,a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_j(index){var sp=stackSave();try{return dynCall_j(index)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return dynCall_ji(index,a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return dynCall_jiiii(index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
-
-
- return Module.ready
-}
-);
-})();
-if (typeof exports === 'object' && typeof module === 'object')
- module.exports = Module;
-else if (typeof define === 'function' && define['amd'])
- define([], function() { return Module; });
-else if (typeof exports === 'object')
- exports["Module"] = Module;
diff --git a/js/package-lock.json b/js/package-lock.json
deleted file mode 100644
index 32a18f91d..000000000
--- a/js/package-lock.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "name": "js",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {}
-}
diff --git a/python/docs/sphinxdocs/game_docs.py b/python/docs/sphinxdocs/game_docs.py
index 07918a4a6..6a521be71 100644
--- a/python/docs/sphinxdocs/game_docs.py
+++ b/python/docs/sphinxdocs/game_docs.py
@@ -71,9 +71,13 @@ def _generate_levels_description(self, game_breakdown):
sphinx_string = ""
- level_table_header = ".. list-table:: Levels\n :header-rows: 1\n\n"
+ level_table_header = (
+ ".. list-table:: Levels\n"
+ " :class: level-gallery\n"
+ " :header-rows: 1\n\n"
+ )
level_table_header += " * - \n"
- for observer_name, observer_type in supported_observer_types.items():
+ for observer_name in supported_observer_types:
level_table_header += f" - {observer_name}\n"
level_table_string = ""
diff --git a/python/griddly/util/breakdown.py b/python/griddly/util/breakdown.py
index c173961bd..ea370ee3d 100644
--- a/python/griddly/util/breakdown.py
+++ b/python/griddly/util/breakdown.py
@@ -9,10 +9,10 @@ class TemporaryEnvironment:
Because we have to load the game many different times with different configurations, this class makes sure we clean up objects we dont need
"""
- def __init__(self, loader, gdy_string, observer_type):
+ def __init__(self, loader, gdy_string, observer_name):
self.gdy = loader.load_string(gdy_string)
- self.observer_type = observer_type
- self.observer_name = self._get_observer_name(observer_type)
+ self.observer_type = self._get_observer_type(observer_name)
+ self.observer_name = observer_name
def __enter__(self):
self.game = self.gdy.create_game(self.observer_name)
@@ -26,13 +26,11 @@ def __enter__(self):
def __exit__(self, type, value, traceback):
self.game.release()
- def _get_observer_name(self, observer_type_or_string):
+ def _get_observer_type(self, observer_type_or_string):
if isinstance(observer_type_or_string, gd.ObserverType):
- if observer_type_or_string.name == 'ASCII':
- return observer_type_or_string.name
- return observer_type_or_string.name.title().replace('_', '')
- else:
return observer_type_or_string
+ else:
+ return self.gdy.get_observer_type(observer_type_or_string)
def render_rgb(self):
@@ -40,7 +38,7 @@ def render_rgb(self):
observation = np.array(self.game.observe(), copy=True)
if self.observer_type == gd.ObserverType.VECTOR:
- self._vector2rgb = Vector2RGB(10, observation.shape[0])
+ self._vector2rgb = Vector2RGB(10, len(self.game.get_object_names()))
return self._vector2rgb.convert(observation)
else:
return observation
@@ -59,13 +57,6 @@ def __init__(self, gdy_filename):
self.gdy = yaml.load(self.gdy_string, Loader=yaml.SafeLoader)
- self._all_observer_types = [
- gd.ObserverType.VECTOR,
- gd.ObserverType.SPRITE_2D,
- gd.ObserverType.BLOCK_2D,
- gd.ObserverType.ISOMETRIC,
- ]
-
self.loader = GriddlyLoader()
self.objects = {}
self.levels = {}
@@ -76,20 +67,8 @@ def __init__(self, gdy_filename):
self._populate_tiles()
self._populate_levels()
- def _env(self, observer_type):
- return TemporaryEnvironment(self.loader, self.gdy_string, observer_type)
-
- def _get_observer_yaml_key(self, observer_type):
- if observer_type is gd.ObserverType.VECTOR:
- return "Vector"
- if observer_type is gd.ObserverType.SPRITE_2D:
- return "Sprite2D"
- elif observer_type is gd.ObserverType.BLOCK_2D:
- return "Block2D"
- elif observer_type is gd.ObserverType.ISOMETRIC:
- return "Isometric"
- else:
- return "Unknown"
+ def _env(self, observer_name):
+ return TemporaryEnvironment(self.loader, self.gdy_string, observer_name)
def _populate_objects(self):
for object in self.gdy["Objects"]:
@@ -100,29 +79,33 @@ def _populate_objects(self):
def _populate_common_properties(self):
- self.name = self.gdy["Environment"]["Name"]
- self.description = self.gdy["Environment"].get("Description", "")
+ self.environment = self.gdy["Environment"]
+ self.name = self.environment["Name"]
+ self.description = self.environment.get("Description", "")
self.player_count = 1
# observer types
- self.supported_observers = {}
+ self.supported_observers = {"Vector"}
+
+ # Look through objects
+ objects = self.gdy["Objects"]
+ for object in objects:
+ for observer_name, config in object["Observers"].items():
+ self.supported_observers.add(observer_name)
+
+ self.observer_configs = {"Block2D": {}, "Sprite2D": {}, "Vector": {}, "Isometric": {}}
+ if "Observers" in self.environment:
+ for observer_name, config in self.environment["Observers"].items():
+ self.observer_configs[observer_name] = config
- with self._env(gd.ObserverType.VECTOR) as env:
+
+ with self._env("Vector") as env:
self.player_count = env.gdy.get_player_count()
self.action_mappings = env.gdy.get_action_input_mappings()
self.has_avatar = "AvatarObject" in self.gdy["Environment"]["Player"]
- for observer_type in self._all_observer_types:
- try:
- with self._env(observer_type) as env:
- observer_name = self._get_observer_yaml_key(observer_type)
- self.supported_observers[observer_name] = observer_type
-
- except ValueError as e:
- continue
-
def _populate_tiles(self):
# Create a level thats just a list of all the map characters
@@ -137,9 +120,13 @@ def _populate_tiles(self):
all_tiles_string = join_string.join(all_tiles) + join_string
- for observer_name, observer_type in self.supported_observers.items():
+ for observer_name in self.supported_observers:
- with self._env(observer_type) as env:
+ if "TrackAvatar" in self.observer_configs[observer_name]:
+ if self.observer_configs[observer_name]["TrackAvatar"]:
+ continue
+
+ with self._env(observer_name) as env:
env.game.load_level_string(f"{all_tiles_string}\n")
env.game.reset()
rendered_sprite_map = env.render_rgb()
@@ -147,7 +134,7 @@ def _populate_tiles(self):
tile_size = env.game.get_tile_size()
for i, object_name in enumerate(ordered_object_names):
- if observer_type == gd.ObserverType.VECTOR:
+ if env.observer_type == gd.ObserverType.VECTOR:
tile_size = [10, 10]
tile_pos_x = 2 * i * tile_size[0]
@@ -155,7 +142,7 @@ def _populate_tiles(self):
tile_pos_y = 0
tile_height = tile_size[1]
- elif observer_type == gd.ObserverType.ISOMETRIC:
+ elif env.observer_type == gd.ObserverType.ISOMETRIC:
iso_tile_height = int(
self.gdy["Environment"]["Observers"]["Isometric"][
@@ -191,8 +178,12 @@ def _populate_levels(self):
for i, level in enumerate(self.gdy["Environment"]["Levels"]):
self.levels[i] = {"Map": level, "Observers": {}}
- for observer_name, observer_type in self.supported_observers.items():
- with self._env(observer_type) as env:
+ for observer_name in self.supported_observers:
+ with self._env(observer_name) as env:
+
+ if "TrackAvatar" in self.observer_configs[observer_name]:
+ if self.observer_configs[observer_name]["TrackAvatar"]:
+ continue
for l, level in self.levels.items():
env.game.load_level(l)
diff --git a/python/griddly/util/rllib/environment/core.py b/python/griddly/util/rllib/environment/core.py
index ae0d265e7..860466a32 100644
--- a/python/griddly/util/rllib/environment/core.py
+++ b/python/griddly/util/rllib/environment/core.py
@@ -183,7 +183,7 @@ def step(self, action):
return self._transform(observation), reward, done, info
def render(self, mode="human", observer=0):
- return super().render(mode, observer="global")
+ return super().render(mode, observer=observer)
def is_video_enabled(self):
return (
diff --git a/python/griddly/util/vector_visualization.py b/python/griddly/util/vector_visualization.py
index 27152984f..ad5c0a8fd 100644
--- a/python/griddly/util/vector_visualization.py
+++ b/python/griddly/util/vector_visualization.py
@@ -10,13 +10,14 @@ def __init__(self, scale, object_channels):
# Create a colour palette for rendering vector observers
HSV_tuples = [
- (x * 1.0 / (object_channels + 1), 1.0, 1.0)
+ (x * 0.5 / (object_channels + 1), 1.0, 1.0)
for x in range(object_channels + 1)
]
vector_rgb = []
- for hsv in HSV_tuples:
- vector_rgb.append(colorsys.hsv_to_rgb(*hsv))
+ for i in range(len(HSV_tuples)):
+ hsv_idx = i if i % 2 == 0 else len(HSV_tuples) - i
+ vector_rgb.append(colorsys.hsv_to_rgb(*HSV_tuples[hsv_idx]))
self._vector_rgb_palette = (np.array(vector_rgb) * 255).astype("uint8")
diff --git a/python/setup.py b/python/setup.py
index 1d028cef2..86c7d7fef 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -71,7 +71,7 @@ def griddly_package_data(config='Debug'):
setup(
name='griddly',
- version="1.3.9",
+ version="1.4.0",
author_email="chrisbam4d@gmail.com",
description="Griddly Python Libraries",
long_description=long_description,
diff --git a/resources/games/Single-Player/Grafter/escape-rooms.yaml b/resources/games/Single-Player/Grafter/escape-rooms.yaml
new file mode 100644
index 000000000..2432a2eb6
--- /dev/null
+++ b/resources/games/Single-Player/Grafter/escape-rooms.yaml
@@ -0,0 +1,5672 @@
+Version: '0.1'
+Environment:
+ Name: Grafter Escape Rooms
+ Description: >-
+ 100 human designed escape rooms using the mechanics of the Crafter
+ environment.
+ Observers:
+ Entity:
+ IncludeMasks: true
+ IncludePlayerId:
+ - player
+ IncludeRotation:
+ - player
+ GlobalVariableMapping:
+ - inv_wood_pickaxe
+ - inv_stone_pickaxe
+ - inv_iron_pickaxe
+ - inv_stone
+ - inv_coal
+ - inv_wood
+ - inv_iron
+ - health
+ Vector:
+ IncludeRotation: true
+ GlobalVariableMapping:
+ - inv_wood_pickaxe
+ - inv_stone_pickaxe
+ - inv_iron_pickaxe
+ - inv_stone
+ - inv_coal
+ - inv_wood
+ - inv_iron
+ - health
+ GlobalSprite2D:
+ Type: SPRITE_2D
+ TileSize: 24
+ RotateAvatarImage: false
+ HighlightPlayers: false
+ PlayerSprite2D:
+ Type: SPRITE_2D
+ TileSize: 8
+ RotateAvatarImage: false
+ Termination:
+ Win:
+ - eq:
+ - ach_eat_plant
+ - 1
+ End:
+ - or:
+ - eq:
+ - _steps
+ - 500
+ - eq:
+ - player_count
+ - 0
+ Player:
+ Count: 1
+ AvatarObject: player
+ Observer:
+ TrackAvatar: true
+ Width: 9
+ Height: 7
+ OffsetY: -1
+ Variables:
+ - Name: ach_collect_coal
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_diamond
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_drink
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_iron
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_sapling
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_stone
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_collect_wood
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_defeat_skeleton
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_defeat_zombie
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_defeat_player
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_eat_cow
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_eat_plant
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_iron_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_iron_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_stone_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_stone_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_wood_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_make_wood_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_place_furnace
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_place_plant
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_place_stone
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_place_table
+ InitialValue: 0
+ PerPlayer: true
+ - Name: ach_wake_up
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_wood_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_stone_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_iron_sword
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_wood_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_stone_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_iron_pickaxe
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_fence
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_sapling
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_stone
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_coal
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_iron
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_diamond
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_wood
+ InitialValue: 0
+ PerPlayer: true
+ - Name: inv_food
+ InitialValue: 9
+ PerPlayer: true
+ - Name: inv_drink
+ InitialValue: 9
+ PerPlayer: true
+ - Name: inv_energy
+ InitialValue: 9
+ PerPlayer: true
+ - Name: health
+ InitialValue: 9
+ PerPlayer: true
+ - Name: near_table
+ InitialValue: 0
+ PerPlayer: true
+ - Name: near_furnace
+ InitialValue: 0
+ PerPlayer: true
+ - Name: damage
+ InitialValue: 1
+ PerPlayer: true
+ - Name: is_sleeping
+ InitialValue: 0
+ PerPlayer: true
+ - Name: fatigue
+ InitialValue: 0
+ PerPlayer: true
+ - Name: recover
+ InitialValue: 0
+ PerPlayer: true
+ - Name: hunger
+ InitialValue: 0
+ PerPlayer: true
+ - Name: thirst
+ InitialValue: 0
+ PerPlayer: true
+ - Name: player_done
+ InitialValue: 0
+ PerPlayer: true
+ - Name: player_count
+ InitialValue: 0
+ Levels:
+ - |
+ s s s s s s s s s s
+ s S S S S S S S S s
+ s S s s s s s s s s
+ s S s p/S S S S s +/S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S S S s s S S S s
+ s s s s s s s s s s
+ - |
+ s s s s s s s s s s
+ s S S S S S S S +/S s
+ s S s s s s s s s s
+ s S s p/S S S S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S s S s s S s S s
+ s S S S s s S S S s
+ s s s s s s s s s s
+ - |
+ G G G G G G G G G G G G T +/G G
+ G . . . . . . . . . . . . . G
+ p/G G G G G G G G G G G G G G G
+ - |
+ . G G G G G G G G G G G G G T +/G
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . p/G . . . . . . . . . . . . . .
+ - |
+ . . . . . . . . . . . . . t . .
+ . T G G G G G G G G G T G G s/G +/G
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . T . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . p/G . . . . . . . . . . . . . .
+ - |
+ . T G G G G G G G G G T G G s/G +/G
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ . T . . . . . . . . . . . . . .
+ . G . . . . . . . . . . . . . .
+ t G . . . . . . . . . . . . . .
+ . p/G . . . . . . . . . . . . . .
+ - |
+ G G +/G G G
+ G W s/P W G
+ W G p/G G W
+ W G t/T G W
+ W G T G W
+ G W W W G
+ G G G G G
+ G G G G G
+ - |
+ G G +/G G G
+ G W s/P W G
+ W G p/G G W
+ W G t/T G W
+ W G T G W
+ G W W W G
+ G G G G G
+ G G G G G
+ - |
+ G G +/G G G
+ G W s/P W G
+ W G p/G G W
+ W G G G W
+ W T T T W
+ G W W W G
+ G G G G G
+ G G G G G
+ - |
+ G G +/G G G
+ G W W W G
+ W G p/G G W
+ W G G G W
+ W T T T W
+ G W s/P W G
+ G G G G G
+ G G G G G
+ - |
+ G G +/G G G
+ G W W W G
+ W G p/G G W
+ W G G G W
+ W T T T W
+ G W s/P W G
+ G G G G G
+ G G G G G
+ - |
+ T G G i/G +/G
+ T G G i/G i/G
+ G G G G G
+ G G p/G G G
+ G G G G G
+ t/G G G G s/G
+ G G G G G
+ - |
+ T T G i/G +/G
+ T T G i/G i/G
+ G G G G G
+ G G p/G G G
+ G G G G G
+ G G G G G
+ s G G G G
+ - |
+ G T G i/G +/G
+ G G G i/G i/G
+ G G G G T
+ G G p/G G G
+ G G G G s/G
+ G G G G G
+ T G G T G
+ - |
+ G p/G G G G G G G G G G G G G
+ G G G G G G L L L G G G G G
+ G G G G G L L L L L G G G G
+ G G G G L L L L L L L G G G
+ L L L L L L L L L L L L G G
+ G G G G L L L L L L L G G G
+ G G G G G L L L L L G G G G
+ G +/G G G G G L L L G G G G G
+ G G G G G G G G G G G G G G
+ - |
+ G p/G G G G G G G G G G G G G
+ G G G G G G L L L G G G G G
+ G G G G G L L L L L G G G G
+ G G G G L L L L L L L G G G
+ L L L L L L L L L L L L G G
+ G G G G L L L L L L L G G G
+ G G G G G L L L L L G G G G
+ G +/G G G G G L L L G G G #/G G
+ G G G G G G G G G G G G G G
+ - |
+ G p/G G G G T G G G G G G G G
+ G G G T T G L L L G G T G G
+ G G T T G L L L L L G G T G
+ G G G G L L L L L L L G T G
+ L L L L L L L L L L L L G G
+ G G G G L L L L L L L G G G
+ G G G G G L L L L L G G G G
+ G +/G G G G G L L L G G G #/G G
+ G G G G G G G G G G G G G G
+ - |
+ G T P d/G +/G
+ G G P d/G d/G
+ G G P P P
+ G G p/G G T
+ c G S G s/G
+ i S S S t/G
+ T S S S f/G
+ - |
+ T T P d/G +/G
+ T G P d/G d/G
+ G G P P P
+ G G p/G G T
+ c G S G s/G
+ i S S S S
+ T S S S f/G
+ - |
+ T T P d/G +/G
+ T G P d/G d/G
+ G G P P P
+ G G p/G G T
+ c G S G s/G
+ i S S s/S s/S
+ T S S s/S s/S
+ - >
+ s s s s s s s s s s s s s s s s s s s
+ s s s
+
+ s p/P P s P P P P P s P P P P P s P P P
+ P P s
+
+ s P P s P P P P P s P P P P P s P P P
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P P P P s P P P P P s P P P P P s
+ P P s
+
+ s P P P P P s P P P P P s P P P P P s
+ P +/P s
+
+ s s s s s s s s s s s s s s s s s s s
+ s s s
+ - >
+ s s s s s s s s s s s s s s s s s s s
+ s s s
+
+ s p/P P s P P T P P s P P T P P s P P T
+ P P s
+
+ s P P s P P T P P s P P T P P s P P T
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P s P P s P P s P P s P P s P P s
+ P P s
+
+ s P P T P P s P P P P P s P P P P P s
+ P P s
+
+ s P P T P P s P P P P P s P P P P P s
+ P +/P s
+
+ s s s s s s s s s s s s s s s s s s s
+ s s s
+ - >
+ # s s s s s s s s s s s s s s s s s
+ s s s s
+
+ s p/P P s P P T P P s P P T P P s P P
+ T P P s
+
+ s P P s #/P P T P P s P P T P P s P P
+ T P P s
+
+ s P P s P P s P P s P #/P s P P s P #/P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P #/P s P P
+ s P #/P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P #/P s P P s P P s P P
+ s P P s
+
+ s P P s P P s P P s P P s P P s P P
+ s P P s
+
+ s P P T P P s P P T P P s P P T P P
+ s P P s
+
+ s P P T P P s P P T P P s P P T P P
+ s P +/P s
+
+ s s s s s s s s s s s s s s s s s s
+ s s s s
+ - >
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P
+ s/P P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P
+ s/P P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P #/P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i #/P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P #/P i P P
+ i P @/P i
+
+ i P P i P P i P P i P P i P P i #/P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P
+ i P P i
+
+ i P P s/P #/P P i P P s/P P P i P P s/P P P
+ i P +/P i
+
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P
+ s/P P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P
+ s/P P #/P i
+
+ i P P i P P i P P i P P i P P i P #/P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P #/P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P #/P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P #/P i P P i P P i P P
+ i P P i
+
+ i P P i P P i P P i P P i P P i P P
+ i P P i
+
+ i P P i #/P P i P P i P P i P P i P P
+ i P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P
+ i P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P
+ i P +/P i
+
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+ - >
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+
+ i p/G G i S S s/P P P i S S s/P P P i S S
+ s/P P P i
+
+ i G T i S S s/P P P i S S s/P P P i S S
+ s/P P #/P i
+
+ i G G i S S i P P i S S i P P i S #/S
+ i P P i
+
+ i G G i S S i P P i S S i P P i S S
+ i P P i
+
+ i G G i S S i P P i S S i P #/P i S S
+ i P P i
+
+ i G G i S S i G G i S S i G G i S S
+ i G G i
+
+ i T G i S S i G G i S #/S i G G i S S
+ i G G i
+
+ i G G i S S i G G i S S i G G i S S
+ i G G i
+
+ i G G i S S i P #/P i S S i P P i S S
+ i P P i
+
+ i G G i S S i P P i S S i P P i S S
+ i P P i
+
+ i G G i #/S S i P P i S S i P P i S S
+ i P P i
+
+ i G G s/P S S i P P s/P S S i P P s/P S S
+ i P P i
+
+ i G T s/P S S i P P s/P S S i P P s/P S S
+ i P +/P i
+
+ i i i i i i i i i i i i i i i i i i
+ i i i i
+ - >
+ i i i i i i i i i i i i d d d d d d d
+ d d d
+
+ i p/G G i S S s/P P P i S T i/P P P d S S s/P
+ P P d
+
+ i G T i S S s/P P P i S S d/P P P d S S s/P
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i G G i S S d G G d S S d
+ G G d
+
+ i T G i S S i G G i S S d G G d S S d
+ G G d
+
+ i G G i S S i G G i S S d G G d S S d
+ G G d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G i S S i P P i S S d P P d S S d
+ P P d
+
+ i G G s/P S S i P P s/P S S d P P s/P S S d
+ P P d
+
+ i G T s/P S S i P P s/P S S d P P s/P S S d
+ P +/P d
+
+ i i i i i i i i i i i i d d d d d d d
+ d d d
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ W W i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i W W i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i W W i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i W W i W W i P P i P P i W W i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P T i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ W W i
+
+ i P P i P P i P P i P P i P P i P P i
+ W W i
+
+ i P P i P P i P P i W W i P P i P P i
+ P P i
+
+ i P P i P P i P P i W W i W W i P P i
+ P P i
+
+ i P P i W W i W W i P P i W W i P P i
+ P P i
+
+ i P P i W W i W W i P P i P P i W W i
+ P P i
+
+ i P P i P P i P P i P P i P P i W W i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P i P P i P P i P P i P P i P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i P P s/P
+ P P i
+
+ i P T i P P s/P P P i P P s/P W W i P P s/P
+ P P i
+
+ i P P i P P i P P i P P i W W i P P i
+ W W i
+
+ i P P i W W i P P i P P i W W i W W i
+ W W i
+
+ i P P i W W i P P i W W i W W i W W i
+ W W i
+
+ i P P i W W i P P i W W i W W i W W i
+ W W i
+
+ i P P i W W i W W i W W i W W i W W i
+ W W i
+
+ i P P i W W i W W i W W i P P i W W i
+ W W i
+
+ i P P i P P i W W i W W i P P i W W i
+ W W i
+
+ i P P i P P i W W i P P i P P i P P i
+ P P i
+
+ i P P i P P i W W i P P i P P i P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P P i
+
+ i P P s/P P P i P P s/P P P i P P s/P P P i
+ P +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+
+ i p/P t/P i P P s/P P P i P P s/P P P i W W s/P
+ W W i
+
+ i P T i P P s/P P P i P P s/P S S i W W s/P
+ W W i
+
+ i P P i P P i P P i P P i S S i W W i
+ W W i
+
+ i P P i S S i P P i P P i S S i W W i
+ W W i
+
+ i P P i S S i P P i S S i S S i W W i
+ W W i
+
+ i P P i S S i P P i S S i S S i W W i
+ W W i
+
+ i P P i S S i S S i S S i S S i W W i
+ W W i
+
+ i P P i S S i S S i S S i P P i W W i
+ W W i
+
+ i P P i P P i S S i S S i P P i W W i
+ W W i
+
+ i P P i P P i S S i P P i P P i W W i
+ W W i
+
+ i P P i P P i S S i P P i P P i W W i
+ W W i
+
+ i P P s/P P P i P P s/P P P i P P s/P W W i
+ W W i
+
+ i P P s/P P P i P P s/P P P i P P s/P W W i
+ W +/P i
+
+ i i i i i i i i i i i i i i i i i i i
+ i i i
+ - >
+ . . . . . . . . . . . . W . . . . . .
+ . . . . . .
+
+ . . . . . . . . . W W W W . . . . . W
+ W W W . . .
+
+ . . . . . . . . . . . . W . . . . . W
+ . . . . . .
+
+ . . . . . . . . . . . . W . . . . . W
+ . . . . . W
+
+ . +/G W W W W W W W W W W W W W W W W W
+ W W . W W W
+
+ . i/G . . . . . . . . . . . . . . . . .
+ . W . W . .
+
+ . s/G W W W W W W W W W W . . . . . . .
+ . W W W . .
+
+ . p/G . . . . W . . . . W . . . . . . .
+ . W . . . .
+
+ . G . . . . W . . . . W . . . . . . .
+ . W . . . .
+
+ T G . . . . W . . . . W . . . . . . .
+ . W . . . .
+
+ . t . . . . W . . . . W . . . . W . .
+ . W . W . .
+
+ . . . . . . . . W W W W . . . . W . .
+ . W W W . .
+
+ . . . . . . . . . . . W . . . . W . .
+ . W . . . .
+
+ . . . . . . . . . . . W W W W W W W W
+ W W . . . .
+
+ . . . . . . . . . . . . . . . . . . .
+ W . . . . .
+
+ . . . . . . . . . . . . . . . . . . .
+ W . . . . .
+
+ . . . . . . . . . . . . . . . . . . .
+ W . . . . .
+ - |
+ . . . . . . . . . . . .
+ . . . . . . . . . . . .
+ . +/G W W W W W W W W W W
+ . i/G . . . . . . . . . W
+ . s/G W W W W W W W W W W
+ . p/G . . . . . . . . . .
+ . G . . . . . . . . . .
+ T G . . . . . . . . . .
+ . t . . . . . . . . . .
+ - |
+ . . . . . W W W W . . . .
+ . . . . . W . . W . . . .
+ . . . . . W . . W . . . .
+ . . . . . W . . W . . . .
+ . +/G W W W W . . W W W W W
+ . i/G . . . . . . . . . . W
+ . G s/P W W W . . W W W W W
+ . p/G . . . W . . W . . . .
+ . G . . . W . . W . . . .
+ T G . . . W . . W . . . .
+ . t . . . W W W W . . . .
+ - |
+ . . . . . G G #/G G . . . .
+ . . . . . W . . W . . . .
+ . . . . . W . . W . . . .
+ . . . . . W . . W . . . .
+ . +/G W W W W . . W W W W W
+ . i/G . . . . . . . . . . W
+ . G s/P W W W . . W W W W W
+ . p/G . . . W . . W . . . .
+ . G . . . W . . W . . . .
+ T G . . . W . . W . . . .
+ . t . . . P P #/P P . . . .
+ - |
+ . . . . . W W W W W W W W . . . . . .
+ . . . . . W . . . . . . W . . . . . .
+ . . . . . W . . . . . . W . . . . . .
+ . . . . . W . . . . . . W W W W W W T
+ . +/G i/P W W W . . . . . . W . . . . . .
+ . d . . . . . . . . . . W . . . . . .
+ . G s/P W W W . . W W W W W . . . . . .
+ . p/G . . . W . . W . . . . . . . . . .
+ . G . . . W . . W . . . . . . . . . .
+ T G . . . W . . W . . . . . . . . . .
+ . t . . . W W W W . . . . . . . . . .
+ - |
+ . . . . . W W W W W W W W . . . . . .
+ . . . . . W . . . . . . W . . . . . .
+ . . . . . W . . . . . . W . . . . . .
+ . . . c . W . . . . . . W W W W W W T
+ . +/G d/P W W W . . . . . . W . . . . . .
+ . . . . . . . . . . . . W . . . . . .
+ . G s/P W W W . . W W W W W . . . . . .
+ . p/G . . . W . . W . . . W . . . . . .
+ . G . . . W . . W . . . W . . . . . .
+ T G i . . W . . W . . . W . . . . . .
+ . t f . . W W W W . . . W . . . . . .
+ . T . . . . . . . . . . W . . . . . .
+ . W . . . . . . . . . . W . . . . . .
+ . W W W W W W W . . . . W . . . . . .
+ . . . . . . . W . . . . W . . . . . .
+ . . . . . . . W . . . . W . . . . . .
+ . . . . . . . W W W W W W . . . . . .
+ - |
+ . . . . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . . . . .
+ . . . . . . . . . . . . . . . . . . .
+ +/G d/P W W W W W W W W W W W W W W W W T
+ . . . . . . . . . . . . W . . . . . .
+ . . . . . . . . . . . . W . . . . . .
+ . G s/P W W W W W W W W W W . . . . . .
+ . p/G . . . . . W . . . . W . . . . . .
+ . G . . . . . W . . . . W . . . . . .
+ T G i . . . . W . . . . W . . . . . .
+ . t f . . . . W . . . . W . . . . . .
+ . T . . . . . c . . . . W . . . . . .
+ . W . . . . . . . . . . W . . . . . .
+ . W W W W W W W W W W W W . . . . . .
+ - |
+ L L L L L L L
+ L L L L L L L
+ L L L +/G W L L
+ L L L i/G W L L
+ L L L s/G W L L
+ L L T p/G L L L
+ L L L t/G L L L
+ L L L L L L L
+ L L L L L L L
+ - |
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L +/G W W W W W W L L
+ L L L i/G L L L L L W L L
+ L L L s/G W W W W W W L L
+ L L T p/G L L L L L L L L
+ L L L t/G L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L +/G W W W L L L L L
+ L L L i/G L L W L L L L L
+ L L L s/G W W W L L L L L
+ L L T p/G L L L L L L L L
+ L L L t/G L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L W W W W W W W L L
+ L L L W L L L L L W L L
+ L L L W L L L L L W L L
+ L L L W L L L L L W L L
+ L L L +/G L L W W W W L L
+ L L L i/G L L W L L L L L
+ L L L s/G W W W L L L L L
+ L L T p/G L L L L L L L L
+ L L L t/G L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ L L L L L L L L L L L L
+ - |
+ s s s s s s s s s s s s s s s s
+ s G G +/G G G G G G G G G G G G s
+ s G G G G G G G G G G G G G G s
+ s G G G G G G G G G G G G G G s
+ s s s T s s s s T s s s T s s s
+ s G G G G s G G G G s G G G G s
+ s G #/G #/G G s G G G G s G #/G #/G G s
+ s G G G G s G G G G s G G G G s
+ s G #/G #/G G s G G G G s G #/G #/G G s
+ s G G G G s G G G G s G G G G s
+ s s T s s s s T s s s s s T s s
+ s G G G G G G G G G G G G G G s
+ s/G G G G G G G G G G G G G G G s
+ s G G G G G G p/G G G G G G G G s
+ s s s s s s s s s s s s s s s s
+ - |
+ s s s s s s s s s s s s s s s s
+ s G G +/G G G G G G G G G G G G s
+ s G G G G G G G G G G G G G G s
+ s G G G G G G G G G G G G G G s
+ s s s T s s s s T s s s T s s s
+ s S S S S s G G G G s P P P P s
+ s S #/S #/S S s G G G G s P #/P #/P P s
+ s S S S S s G #/G G G s P P P P s
+ s S #/S #/S S s G G G G s P #/P #/P P s
+ s S S S S s G G G G s P P P P s
+ s s T s s s s T s s s s s T s s
+ s G G G G G G G G G G G G G G s
+ s/G G G G G G G G G G G G G G G s
+ s G G G G G G p/G G G G G G G G s
+ s s s s s s s s s s s s s s s s
+ - |
+ s s s s s s s s s s s s s s s s
+ s P P +/P P P P P P P P P P P P s
+ s P P P P P P P P P P P P P P s
+ s P P P P P P P P P P P P P P s
+ s s s T s s s s T s s s T s s s
+ s S S S S s S S S S s G G G G s
+ s S #/S #/S S s S S S S s G #/G #/G G s
+ s S S S S s S S S S s G G G G s
+ s S #/S #/S S s S S S S s G #/G #/G G s
+ s S S S S s S S S S s G G G G s
+ s s T s s s s T s s s s s T s s
+ s S S S S S S S S S S S S S S s
+ s/G S S S S S S S S S S S S S S s
+ s S S S S S S p/S S S S S S S S s
+ s s s s s s s s s s s s s s s s
+ - |
+ i i i i i i i i i i i i i i i i
+ i P P P P P P P P P P P P P P i
+ i P P P P P P P P P P P P P +/P i
+ i P P P P P P P P P P P P P P i
+ i i i s i i i i s i i i s i i i
+ i S S S S i S S S S i G G G G i
+ i S #/S #/S S i S S S S i G #/G #/G G i
+ i S S S S i S S S S i G G G G i
+ i S #/S #/S S i S S S S i G #/G #/G G i
+ i S S S S i S S S S i G G G G i
+ i i s i i i i s i i i i i s i i
+ i G G G G G G G T G G G G G G i
+ i/G G G G G G G G G G G G G G G i
+ i T G G G G G p/G G G G G G G T i
+ i i i i i i i i i i i i i i i i
+ - |
+ L L L L L L L L L L L L L
+ L L L L L L L L L L +/G L L
+ L L L L L L L L L L W L L
+ L L L L L W W W W W W L L
+ L L L L L W L L L L L L L
+ L L L L L W L L L L L L L
+ L L L L L W W W W W W W L
+ L L L L L L L L L L L W L
+ L L L L L L L L L L L W L
+ L L W W W W W W W W W W L
+ L L W L L L L L L L L L L
+ L L W L L L L L L L L L L
+ L L W W W W W W W W W L L
+ L L L L L L L L L L W L L
+ L L L L L L L L L L W L L
+ L L L L L L W W W W W L L
+ L L L L L L W L L L L L L
+ L L L L L L W L L L L L L
+ L L L L L L s/W L L L L L L
+ L L L G G G p/G G T t/G L L L
+ L L L L L L L L L L L L L
+ L L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L L
+ L L L L L L L L L L +/G L L
+ L L L L L L L L L L W L L
+ L L L L L W W W W W W P #/P
+ L L L L L W L L L L L L L
+ L L L L L W L L L L L L L
+ L L #/P P P W W W W W W W L
+ L L L L L L L L L L L W L
+ L L L L L L L L L L L W L
+ L L W W W W W W W W W W L
+ L L W L L L L L L L L L L
+ L L W L L L #/P L L L L L L
+ L L W W W L P L W W W L L
+ L L L L W W W W W L W L L
+ L L L L L L L L L L W L L
+ L L L L L L W W W W W L L
+ L L L L L L W L L L L L L
+ L L L L L L W P #/P L L L L
+ L L L L L L s/W L L L L L L
+ L L L G G G p/G G T t/G L L L
+ L L L L L L L L L L L L L
+ L L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L L
+ L L L L L L L L L L +/G L L
+ L L L L L L L L L L W L L
+ L L L L L W W W W W W P #/P
+ L L L L L W L L L L L L L
+ L L L L L W L L L L L L L
+ L L #/P P P W W W W W W W L
+ L L L L L L L L L L L W L
+ L L L L L L L L L L L W L
+ L L W W W W W W W W W W L
+ L L W L L L L L L L L L L
+ L L W L L L #/P L L L L L L
+ L L W W W L P L W W W L L
+ L L L L W W W W W L W L L
+ L L L L L L L L L L W L L
+ L L L L L L W W W W W L L
+ L L L L L L W L L L L L L
+ L L L L L L W P #/P L L L L
+ L L L L L L s/W L L L L L L
+ L L L G G G p/G G T t/G L L L
+ L L L L L L L L L L L L L
+ L L L L L L L L L L L L L
+ - |
+ L L L L L L L L L L L L L
+ L L L L L L L L L L +/G L L
+ L L L L L L L L L L W L L
+ L L L L L W W W W W W P #/P
+ L L L L L W L L L L L L L
+ L L L L L W L L L L L L L
+ L L #/P P P W W W W W W W L
+ L L L L L L L L L L L W L
+ L L L L L L L L L L L W L
+ L L W W W W W W W W W W L
+ L L W L L L L L L L L L L
+ L L W L L L #/P L L L L L L
+ L L W W W L P L W W W L L
+ L L L L W W W W W L W L L
+ L L L L L L L L L L W L L
+ L L L L L L W W W W W L L
+ L L L L L L W L L L L L L
+ L L L L L L W P #/P L L L L
+ L L L L L L s/W L L L L L L
+ L L L G G G p/G G T t/G L L L
+ L L L L L L L L L L L L L
+ L L L L L L L L L L L L L
+ - >
+ . . L L L L L L L L L L L L L d/L L L
+ L L L L L L L L
+
+ . . L L L L L L L L L L G G G T G G
+ G G i/G s/G G G L L
+
+ . . L L L L L L L L L L W L L d/L L L
+ L L L L L W L L
+
+ . . L L L L L W W W W W W P #/P d/L W W
+ W W W W W W L L
+
+ . . L L L L L W L L L L L L d/L d/L W d/L
+ d/L d/L d/L d/L d/L d/L d/L d/L
+
+ . . L L L L L W L L L L L L d/L L W L
+ L W W W W W L L
+
+ . . L L #/P P P W W W W W W W d/L L W L
+ L W d/L d/L d/L W L L
+
+ . . L L L L L L L L L L L W d/L L W L
+ L W d/L L L W L L
+
+ . . L L L L L L L L d/L L L W d/L L W L
+ L W d/L L L W L L
+
+ . . L L W W W W W W W W W W d/L L W L
+ L W d/L L L W L L
+
+ . . L L W L L L L L L L L L d/L L W L
+ L W d/L L L W L L
+
+ . . L L W L L L #/P L L L L L d/L L W L
+ L W d/L L L W L L
+
+ . . L L W W W L P L W W W L d/L L W L
+ L W d/L L L W L L
+
+ . . L L L L W W W W W L W L d/L L W L
+ L W d/L L L W L L
+
+ . . L L L L L L L L L L W L d/L L W L
+ L W d/L L L W L L
+
+ . . L L L L L L W W W W W L d/L L W L
+ L W d/L L W W L L
+
+ . . L L L L L L W L L L L L d/L L W L
+ L W d/L L W L L L
+
+ . . L L L L L L W P #/P L d/L d/L d/L L W L
+ L W d/L L W L L L
+
+ . . L L L L L L s/W L L L d/L W W W W L
+ L W d/L L W L L L
+
+ . . L L L G G t/G p/G G T G d/L W d/L d/L d/L d/L
+ W W d/L L +/G L L L
+
+ . . L L L L L L L L L L d/L W W W W W
+ W L d/L L L L L L
+
+ . . L L L L L L L L L L d/L L L L L L
+ L L d/L L L L L L
+ - |
+ G G G G G G G G G G G G G
+ G . . . . . . . . . . . G
+ G . G G G G G G G G G . G
+ G . G . . . . . . . G . G
+ G . G . G G G G G . G . G
+ G . G . G . . . G . G . G
+ G . G . G . +/G . G . G . G
+ G . G . G . G . G . G . G
+ G . G . G G G . G . G . G
+ G . G . . . . . G . G . G
+ G . G G G G G G G . G . G
+ G . . . . . . . . . G . G
+ G G G G G G G G G G G . G
+ . . . . . . . . . . . . G
+ p/G G G G G G G G G G G G G
+ - |
+ T G G G G G G G G G G G T
+ G . . . . . . . . . . . G
+ G . T G G G G G G G T . G
+ G . G . . . . . . . G . G
+ G . G . T G G G T . G . G
+ G . G . G . . . G . G . G
+ G . G . G . +/G . G . G . G
+ G . G . G . G . G . G . G
+ G . G . T G T . G . G . G
+ G . G . . . . . G . G . G
+ G . T G G G G G T . G . G
+ G . . . . . . . . . G . G
+ T G G G G G G G G G T . G
+ . . . . . . . . . . . . G
+ p/G G G G G G G G G G G G T
+ - |
+ T T G G G G G G G G G T T
+ T . . . . . . . . . . . T
+ G . T T G G G G G T T . G
+ G . T . . . . . . . T . G
+ G . G . T T G T T . G . G
+ G . G . T . . . T . G . G
+ G . G . G . +/G . G . G . G
+ G . G . T . T . G . G . G
+ G . G . T T T . G . G . G
+ G . T . . . . . T . G . G
+ G . T T G G G T T . G . G
+ T . . . . . . . . . T . G
+ T T G G G G G G G T T . G
+ . . . . . . . . . . . . T
+ p/G G G G G G G G G G G T T
+ - |
+ T T T T G G G G G T T T T
+ T . . . . . . . . . . . T
+ T . T T T T G T T T T . T
+ T . T . . . . . . . T . T
+ G . T . T T T T T . T . G
+ G . T . T . . . T . T . G
+ G . G . T . +/G . T . G . G
+ G . G . T . T . T . G . G
+ G . T . T T T . T . G . G
+ T . T . . . . . T . T . G
+ T . T T T T T T T . T . G
+ T . . . . . . . . . T . T
+ T T T T G G G T T T T . T
+ . . . . . . . . . . . . T
+ p/G G G G G G G G G T T T T
+ - |
+ P P P P P P P P P P P P P
+ P . . . . . . . . . . . P
+ P . P P P P P P P P P . P
+ P . P . . . . . . . P . P
+ P . P . P P P P P . P . P
+ P . P . P . . . P . P . P
+ P . P . P . +/G . P . P . P
+ P . P . P . P . P . P . P
+ P . P . P P P . P . P . P
+ P . P . . . . . P . P . P
+ P . P P P P P P P . P . P
+ P . . . . . . . . . P . P
+ P P P P P P P P P P P . P
+ . . . . . . . . . . . . P
+ p/P P P P P P P P P P P P P
+ - |
+ s/P P P P P P P P P P P P s/P
+ P . . . . . . . . . . . P
+ P . s/P P P P P P P P s/P . P
+ P . P . . . . . . . P . P
+ P . P . s/P P P P s/P . P . P
+ P . P . P . . . P . P . P
+ P . P . P . +/G . P . P . P
+ P . P . P . P . P . P . P
+ P . P . s/P P s/P . P . P . P
+ P . P . . . . . P . P . P
+ P . s/P P P P P P s/P . P . P
+ P . . . . . . . . . P . P
+ s/P P P P P P P P P P s/P . P
+ . . . . . . . . . . . . P
+ p/P T T T P P P P P P P P s/P
+ - |
+ s/P s/P P P P P P P P P P s/P s/P
+ s/P . . . . . . . . . . . s/P
+ P . s/P s/P P P P P P s/P s/P . P
+ P . s/P . . . . . . . s/P . P
+ P . P . s/P s/P P s/P s/P . P . P
+ P . P . s/P . . . s/P . P . P
+ P . P . P . +/G . P . P . P
+ P . P . s/P . s/P . P . P . P
+ P . P . s/P s/P s/P . P . P . P
+ P . s/P . . . . . s/P . P . P
+ P . s/P s/P P P P s/P s/P . P . P
+ s/P . . . . . . . . . s/P . P
+ s/P s/P P P P P P P P s/P s/P . P
+ . . . . . . . . . . . . s/P
+ p/P T T T P P P P P P P s/P s/P
+ - |
+ s/P s/P s/P s/P P P P P P s/P s/P s/P s/P
+ s/P . . . . . . . . . . . s/P
+ s/P . s/P s/P P P P s/P s/P s/P s/P . s/P
+ s/P . s/P . . . . . . . s/P . s/P
+ P . P . s/P s/P s/P s/P s/P . s/P . P
+ P . P . s/P . . . s/P . s/P . P
+ P . P . s/P . +/G . s/P . P . P
+ P . s/P . s/P . s/P . s/P . P . P
+ P . s/P . s/P s/P s/P . s/P . P . P
+ s/P . s/P . . . . . s/P . s/P . P
+ s/P . s/P s/P s/P s/P s/P s/P s/P . s/P . P
+ s/P . . . . . . . . . s/P . s/P
+ s/P s/P s/P s/P P P P s/P s/P s/P s/P . s/P
+ . . . . . . . . . . . . s/P
+ p/P T T T P P P P P s/P s/P s/P s/P
+ - |
+ . +/G . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . p/P . .
+ . T . .
+ . t/G . .
+ - |
+ . +/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . p/P . .
+ . T . .
+ . t/G . .
+ - |
+ . +/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . s/P . .
+ . p/P . .
+ . T . .
+ . G . .
+ . t . .
+ - |
+ s s s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . s/P . .
+ s . p/P . .
+ s . T . .
+ s . t/G . .
+ s . +/G . .
+ s s s . .
+ - >
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ +/G
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W s/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W p/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+ - >
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W i/P
+ +/G
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W i/P
+ i/P
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W T W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W s/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W p/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+ - >
+ W W W W W W W W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W S
+ c/G
+
+ W W W W W W W W W W W W W W T W W W W
+ W W W W W W W W W W W W W W W W W W S
+ S
+
+ W W W W S S S W W W W W W W W W W W W
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W S f/S S W W W W W W W W W W d/W
+ d/W d/W W W W W W W W W W W W W W W W W W
+ W W
+
+ W W W W S S S W W W W W W W W W W d/W
+ +/G d/W W W W W W W W W W W W W W W W W W
+ W W
+
+ W W W W W W W W W W W W W W W W W d/W
+ d/G d/W W W W W W W W W W W W W W W W W W
+ W W
+
+ W W W W W W W W W W T W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W s/G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W p/G
+ W W W W W W W W W W S S S W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W G
+ W W W W W W W W W W S i/S S W W W W T W
+ W
+
+ W W W W W W T W W W W W W W W W W W G
+ W W W W W W W W W W S S S W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W W W W W W W W W W W W
+ W
+ - >
+ W W W W W W W W W P L L L L L L L L P
+ W W W W W W W W P P L L L P P W W W W
+ +/G
+
+ W W W W W W W P P P L L L L L L L L P
+ W W W W W W W P P L L L L L L P W W W
+ W
+
+ W W W W W W P P L L L L L L L L L P P
+ W W W W W W P P L L L L L L L P W W W
+ W
+
+ W W W W W P P L L L L L L L L L P P W
+ W W W W W P P L L L L L L L L P W W W
+ W
+
+ W W W P P L L L L L L L L L P P W W W
+ W W W W W P L L L L L L L L L P W W W
+ W
+
+ W W P P L L L L L L L L L L P W W W G
+ W W W W P L L L L L L L L L L P W W W
+ W
+
+ P P P L L L L L L L L L L P P W W W G
+ W W W P P L L L L L L L L L L L P W W
+ W
+
+ L L L L L L L L L L L L P P W W W W s/G
+ W W W P L L L L L L L L L L L L P W W
+ W
+
+ L L L L L L L L L L P P W W W W W W G
+ W W W P P L L L L L L L L L L L P W W
+ W
+
+ L L L L L L L L L P P W W W W W W W p/G
+ W W W W P L L L L L L L L L L L P P W
+ W
+
+ L L L L L L L P P P P W W W W W W W G
+ W W W W P P L L L L L L L L L L P P W
+ W
+
+ L L L L L P P P W W W W W W W W W W G
+ W W W W W P L L L L L L L L L L P W W
+ W
+
+ L L L P P P P W W W W W W W W W W W T
+ W W W W W W P L L L L L L L L P W W W
+ W
+
+ P P P P W W W W W W W W W W W W W W T
+ W W W W W W P P L L L L L L P W W W W
+ W
+
+ W W W W W W W W W W W W W W W W W W T
+ W W W W W W W W P L L L L P P W W W W
+ W
+ - >
+ W W W W W W W W W W W W W P P L L L L
+ L L L P P P P W W W W W W W W W W W i/P
+ +/G
+
+ W W W W W W W W W W W W P P L L L L L
+ L L L L L L P P W W W W W W W W W W i/P
+ i/P
+
+ W W W W W W W W W W W P P L L L L L L
+ L L L L L L L P P W W W W W W W W W W
+ W
+
+ W W W W W W W W W W P P L L L L L P P
+ P P P P P L L L L P W W W W W W W W W
+ W
+
+ W W W W W W W W W P L L L L L P P P W
+ W W W W P P L L L L P W W W W W W W W
+ W
+
+ W W W W W W W W P P L L L P P P W W G
+ W W W W W W P P L L P P W W W W W W W
+ W
+
+ W W W W T W W P L L L L P P W W W W G
+ W W W W W W W P P L L P P W W W W W W
+ W
+
+ W W W W W W P P L L L P P W W W W W s/G
+ W W W W W W W W P L L L P W W W W W W
+ W
+
+ W W W W W P P L L L P P W W W W W W G
+ W W W W W W W W P P L L L P W W W W W
+ W
+
+ W W W W P P L L L L P P W W W W W W p/G
+ W W W W W W W W W P L L L P P W W W W
+ W
+
+ W W W W P L L L L P P W W W W W W W G
+ W W W W W W W W W P L L L L P P W W W
+ W
+
+ W W W P L L L L L P P W W W W W W W G
+ W W W W W W W W W P P L L L L P W W W
+ W
+
+ W W P P L L L L P W W W W W W W W W T
+ W W W W W W W W W W P P L L L P P W W
+ W
+
+ W P P L L L L P P W W W W W W W W W T
+ W W W W W W W W W W W P L L L L L P W
+ W
+
+ W P L L L L L P W W W W W W W W W W T
+ W W W W W W W W W W W P L L L L L P W
+ W
+ - >
+ W W W W W W W W W W W W W P P W L L P
+ P W W W W W W W W W P L L P W W W W S
+ c/G
+
+ W W W W W W W W W P P W W P T W L P P
+ W W W W W W W W W P P L L P W W W W S
+ S
+
+ W W W W S S S W P P L P P W L L P P W
+ W W W W W W W W P P L L L P W W W W W
+ W
+
+ W W W W S f/S S P P L L L L L L P W d/W
+ d/W d/W W W W W W W P P L L P P W W W W W
+ W W
+
+ W W W W S S S P L L L P P P P P W d/W
+ +/G d/W W W W W W P P L L L P P P W P P P
+ W W
+
+ W W W W W W W P L L W W P W W W W d/W
+ d/G d/W W W W W P P L L L L L L P W P L L
+ P P
+
+ W W W W W P P P L W T W P W W W W W G
+ W W W W P P L L S S S S L P P P L L L
+ P
+
+ W W W P P L L L L W W P P W W W W W s/G
+ W W W P P L L S S W W S S L L L L L L
+ P
+
+ W W W P L L L L L P P P W W W W W W G
+ W W P P L L S G S W W W W S L L P P P
+ L
+
+ W W P P L S S S L P P W W W W W W W p/G
+ W W P L L S G G S W S S S S L L P W W
+ P
+
+ W P P L S W W S S L L P W W W W W W G
+ W P P L S G G S S W S i/S S S L L P T W
+ P
+
+ W P L S S W T W W S L P P W W W W W G
+ W P L S S G S S W W S S S S L L P W P
+ L
+
+ W P L L S W W W S S L L P W W W W W T
+ P P L S G G S W W W W W W S L L P P P
+ L
+
+ W P L L S S S S S L L P P W W W W W T
+ L L S G G S S W W W W W W S S L L L L
+ L
+
+ W P P L L L L L L P P P W W W W W W T
+ L L S G G S W W W W W W W S S S L L L
+ L
+ - |
+ G G G G G G G G G G G G G G G G
+ G s s s s s s s P s s s s s s G
+ G s +/G i/G G G G G G G G G i/G +/G s G
+ G s i/G s s s s s P s s s s i/G s G
+ G s G s P P P P P P P P s G s G
+ G s G s P P P P P P P P s G s G
+ G s G s P P P P p/P P P P P G s G
+ G s G P P P P P P P P P s G s G
+ G s G s P P P P P P P P s G s G
+ G s G s P P P P P P P P s G s G
+ G s i/G s s s s s P s s s s i/G s G
+ G s +/G i/G G G G G G G G G i/G +/G s G
+ G s s s s s s s s s s s s s s G
+ G G G G G G G G G G G G G G G G
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G +/G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ - |
+ G G G G G G G G G G G G G G G G
+ G i i i i i i i i/P i i i i i i G
+ G i +/G i/G G G G G G G G G i/G +/G i G
+ G i i/G s s s s s T s s s s i/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P p/P P P P T G i G
+ G i G T P P P P P P P P s G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G s G
+ G i i/G s s s s s T s s s s i/G i G
+ G i +/G i/G G G G G G G G G i/G +/G i G
+ G i i i i i i i i i i i i i i G
+ G G G G G G G G G G G G G G G G
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G +/G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ - |
+ G G G G G G G G G G G G G G G G
+ G i i i i i i i i/P i i i i i i G
+ G i +/G i/G G G G G #/G G G G i/G +/G i G
+ G i i/G s s s s s T s s s s i/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G i G
+ G i #/G s P P P P p/P P P P T G i G
+ G i G T P P P P P P P P s #/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G s G
+ G i i/G s s s s s T s s s s i/G i G
+ G i +/G i/G G G G #/G G G G G i/G +/G i G
+ G i i i i i i i i i i i i i i G
+ G G G G G G G G G G G G G G G G
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G G +/G G G . . . . .
+ . . . . . . G G G G G . . . . .
+ - |
+ G G G G G G G G G G G G G G G G
+ G i i i i i i i i/P i i i i i i G
+ G i +/G i/G G G G G #/G G G G i/G +/G i G
+ G i i/G s s s s s T s s s s i/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G i G
+ G i #/G s P P P P p/P P P P T G i G
+ G i G T P P P P P P P P s #/G i G
+ G i G s P P P P P P P P s G i G
+ G i G s P P P P P P P P s G s G
+ G i i/G s s s s s T s s s s i/G i G
+ G i +/G i/G G G G #/G G G G G i/G +/G i G
+ G i i i i i i i i i i i i i i G
+ G G G G G G G G G G G G G G G G
+ . . . . . . L L S L L . . . . .
+ . . . . . . L L S L L . . . . .
+ . . . . . . L L S L L . . . . .
+ . . . . . . L L +/G L L . . . . .
+ . . . . . . L L L L L . . . . .
+ - |
+ G G G G G G G G G G G G G G G G
+ G L L L L L L L L L L L L L L G
+ G L +/G i/G G G G G #/G G G G i/G +/G L G
+ G L i/G s s s s s T s s s s i/G L G
+ G L G s P P P P P P P P s G L G
+ G L G s P P P P P P P P s G L G
+ G L #/G s P P P P p/P P P P T G L G
+ G L G T P P P P P P P P s #/G L G
+ G L G s P P P P P P P P s G L G
+ G L G s P P P P P P P P s G s G
+ G L . s s s s s T s s s s i/G L G
+ G L +/G i/G G G G #/G G G G G i/G +/G L G
+ G L L L L L L L L L L L L L L G
+ G G G G G G G G G G G G G G G G
+ . . . . . . L L L L L . . . . .
+ . . . . . . G G G G G . . . . .
+ . . . . . . G L L L G . . . . .
+ . . . . . . G L +/G L G . . . . .
+ . . . . . . G L L L G . . . . .
+ - >
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ W L W L W L W L W L +/G +/G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W s/G s/G L W L W L W L
+ W L
+
+ W L W L W L W G G G G G G G G L W L W
+ L W
+
+ L W L W L W L G G G G p/G G G G W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W T t/G L W L W L W L
+ W L
+ - >
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L +/G G G G G G G G G G G G G G G G G G
+ +/G L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W s/G s/G L W L W L W L
+ W L
+
+ W L W L W L W T G G G G G G T L W L W
+ L W
+
+ L W L W L W L G G G G p/G G G G W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W T G L W L W L W L
+ W L
+ - >
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ d/W d/L d/W L W L W L W L W L W L W L W L d/W
+ d/L d/W
+
+ d/L +/G d/G G G G G G G G G G G G G G G G d/G
+ +/G d/L
+
+ d/W L d/W L W L W L W L G G W L W L W L d/W
+ d/L d/W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W s/G s/G L W L W L W L
+ W L
+
+ W L W L W L W T G G G G G G T L W L W
+ L W
+
+ L W L W L W L G G G G p/G G G G W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W T G L W L W L W L
+ W L
+ - >
+ L W L W L W L W L W L W L W L W L W L
+ W L
+
+ . . . L W L W L W L W L W L W L W L .
+ d/G .
+
+ . +/G . G G G G G G G G G G G G G G T .
+ +/G .
+
+ . . . L W L W L W L G G W L W L W L .
+ . .
+
+ L W L W L W L W L W G G L W L W L W L
+ i/G L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W G G L W L W L W L
+ W L
+
+ W L W L W L W L W L W L W L W L W L W
+ L W
+
+ L W L W L W L W L W L s/G L W L W L W L
+ W L
+
+ W L W L W L W G G G G G G G G L W L W
+ L W
+
+ L c/G L W L W L T G G G p/G G G T W L W L
+ W L
+
+ W L W L W L W L W L G G W L W L W L W
+ L W
+
+ L W L W L W L W L W t f/G L W L W L W L
+ W L
+ - >
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G T G
+
+ G G T G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G +/G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G s/G p/G G G G G G . . . . . . . . . G G
+ G G G G T G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+ - >
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G s G
+
+ G G T G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G +/G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W G G G W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ . . . . . . . G W W W W W W W W W G .
+ . . . . . .
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+
+ G G p/G G G G G G . . . . . . . . . G G
+ G G G G t/T G
+
+ G G G G G G G G . . . . . . . . . G G
+ G G G G G G
+ - >
+ L L L L L L L L L L . . . . . . . L L
+ L L L L L L L L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G s G L
+
+ L G G T G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L L L L L L L L L G
+ G G G G G G G L
+
+ L G G G G G G G G G G G G G G G G G G
+ G G G G G G G L
+
+ L L L L L L L L G L L L L L L L L L G
+ L L L L L L L L
+
+ . . . . . . . L G L W W W W W W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W G G G W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W G G G W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W G +/G G W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W G G G W W L G
+ L . . . . . . .
+
+ . . . . . . . L G L W W W W W W W L G
+ L . . . . . . .
+
+ L L L L L L L L G L L L L L L L L L G
+ L L L L L L L L
+
+ L G G G G G G G G G G G G G G G G G G
+ G G G G G G G L
+
+ L G G G G G G G G L L L L L L L L L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G p/G G G G G G L . . . . . . . L G
+ G G G G G t/T G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L L L L L L L L L L . . . . . . . L L
+ L L L L L L L L
+ - >
+ L L L L L L L L L L . . . . . . . L L
+ L L L L L L L L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G s G L
+
+ L G G T G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L d/L d/L d/L d/L d/L d/L d/L L G
+ G G G G G G G L
+
+ L G G G G G G G G G G G G G G G G G G
+ G G G G G G G L
+
+ L L L L L L L L G d/L d/L d/L d/L d/L d/L d/L d/L d/L
+ G L L L L L L L L
+
+ . . . . . . . d/L G d/L W W W W W W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G d/L W W G G G W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G d/L W W G G G W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G d/L W W G +/G G W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G d/L W W G G G W W d/L
+ G d/L . . . . . . .
+
+ . . . . . . . d/L G L W W W W W W W d/L
+ G d/L . . . . . . .
+
+ L L L L L L L L G L d/L d/L d/L d/L d/L d/L d/L d/L
+ G L L L L L L L L
+
+ L G G G G G G G G G G G G G G G G G G
+ G G G G G G G L
+
+ L G G G G G G G G L d/L d/L d/L d/L d/L d/L d/L L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L G G p/G G G G G G L . . . . . . . L G
+ G G G G G t/T G L
+
+ L G G G G G G G G L . . . . . . . L G
+ G G G G G G G L
+
+ L L L L L L L L L L . . . . . . . L L
+ L L L L L L L L
+ - >
+ . . G G G . G G G . G G G . G G G . G
+ G G . G G G . G G G
+
+ . G G . G . G . G . G . G . G . G . G
+ . G . G . G . G . G
+
+ G G . . G . G . G G G . G G G . G G G
+ . G G G . G G G . G
+
+ G . . . G . G . . . . . . . . . . . .
+ . . . . . . . . . G
+
+ G G G . G . G G G G G G G G G G G G G
+ G G G G G G G G . G
+
+ . . G . G . . . . . . . . . . . . . .
+ . . . . . . . G . G
+
+ G G G . G . G G G . G G G . G G G . G
+ G G . G G G . G . G
+
+ G . . . G . G . G . G . G . G . G . G
+ . G . G . G . G . G
+
+ G G G . G . G . G . G . G . G . G . G
+ . G . G . G . G . G
+
+ . . G . +/G . p/G . G G G . G G G . G G G
+ . G G G . G G G . G
+
+ G G G . . . . . . . . . . . . . . . .
+ . . . . . . . . . G
+
+ G . . . . . G G G G G G G G G G G G G
+ G G G G G G G G G G
+
+ G G G . . . G . . . . . . . . . . . .
+ . . . . . . . . . .
+
+ . . G . . . G . G G G . G G G . G G G
+ . G G G . G G G G G
+
+ G G G . . . G G G . G G G . G G G . G
+ G G . G G G . . . G
+
+ G . . . . . . . . . . . . . . . . . .
+ . . . . . . . . . G
+
+ G G G G G G G G G G G G G G G G G G G
+ G G G G G G G G G G
+ - >
+ . . P S G . P G G . G G G . G G G . G
+ G G . G G G . G G G
+
+ . P S . G . P . S . S . S . S . S . S
+ . S . S . S . S . S
+
+ G S . . G . P . G G G . G G G . G G G
+ . G G G . G G G . G
+
+ G . . . G . P . . . . . . . . . . . .
+ . . . . . . . . . S
+
+ P S G . G . P P P P P P P P P P P P P
+ P P P P P P P P . G
+
+ . . G . G . . . . . . . . . . . . . .
+ . . . . . . . P . S
+
+ G S P . G . S S S . S S S . S S S . S
+ S S . S S S . P . G
+
+ G . . . G . G . G . G . G . G . G . G
+ . G . G . G . P . S
+
+ P S G . G . G . G . G . G . G . G . G
+ . G . G . G . P . G
+
+ . . G . +/G . p/G . S S S . S S S . S S S
+ . S S S . S S S . S
+
+ G S P . . . . . . . . . . . . . . . .
+ . . . . . . . . . G
+
+ G . . . . . S G S G S G S G S G S G S
+ G S G S G S G S G S
+
+ P S G . . . G . . . . . . . . . . . .
+ . . . . . . . . . .
+
+ . . G . . . S . G S G . G S G . G S G
+ . G S G . G S P P P
+
+ G S P . . . G S G . G S G . G S G . G
+ S G . G S G . . . P
+
+ G . . . . . . . . . . . . . . . . . .
+ . . . . . . . . . P
+
+ P P P P P P P P P P P P P P P P P P P
+ P P P P P P P P P P
+ - >
+ L L P S G L P G G L G G G L G G G L G
+ G G L G G G L G G G
+
+ L P S L G L P L S L S L S L S L S L S
+ L S L S L S L S L S
+
+ G S L L G L P L G G G L G G G L G G G
+ L G G G L G G G L G
+
+ G L L L G L P L L L L L L L L L L L L
+ L L L L L L L L L S
+
+ P S G L G L P P P P P P P P P P P P P
+ P P P P P P P P L G
+
+ L L G L G L L L L L L L L L L L L L L
+ L L L L L L L P L S
+
+ G S P L G L S S S L S S S L S S S L S
+ S S L S S S L P L G
+
+ G L L L G L G L G L G L G L G L G L G
+ L G L G L G L P L S
+
+ P S G L G L G L G L G L G L G L G L G
+ L G L G L G L P L G
+
+ L L G L +/G L p/G L S S S L S S S L S S S
+ L S S S L S S S L S
+
+ G S P L L L L L L L L L L L L L L L L
+ L L L L L L L L L G
+
+ G L L L L L S G S G S G S G S G S G S
+ G S G S G S G S G S
+
+ P S G L L L G L L L L L L L L L L L L
+ L L L L L L L L L L
+
+ L L G L L L S L G S G L G S G L G S G
+ L G S G L G S P P P
+
+ G S P L L L G S G L G S G L G S G L G
+ S G L G S G L L L P
+
+ G L L L L L L L L L L L L L L L L L L
+ L L L L L L L L L P
+
+ P P P P P P P P P P P P P P P P P P P
+ P P P P P P P P P P
+ - >
+ G G G . G G G . G G G . G G G . G G G
+ . +/G
+
+ G . G . G . G . G . G . G . G . G . G
+ . G
+
+ G . G G G . G G G . G G G . G G G . G
+ G G
+
+ G . . . . . . . . . . . . . . . . . .
+ . .
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ . . . . . . . . . . . . . . . . . . .
+ . G
+
+ G G G . G G G . G G G . G G G . G G G
+ . G
+
+ G . G . G . G . G . G . G . G . G . G
+ . G
+
+ G . G . G . G . G . G . G . G . G . G
+ . G
+
+ p/G . G G G . G G G . G G G . G G G . G
+ G G
+ - >
+ G G G L G G G L G G G L G G G L G G G
+ L +/G
+
+ G L G L G L G L G L G L G L G L G L G
+ L G
+
+ G L G G G L G G G L G G G L G G G L G
+ G G
+
+ G L L L L L L L L L L L L L L L L L L
+ L L
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ L L L L L L L L L L L L L L L L L L L
+ L G
+
+ G G G L G G G L G G G L G G G L G G G
+ L G
+
+ G L G L G L G L G L G L G L G L G L G
+ L G
+
+ G L G L G L G L G L G L G L G L G L G
+ L G
+
+ p/G L G G G L G G G L G G G L G G G L G
+ G G
+ - >
+ G G G W G G G W G G G W G G G W G G G
+ W +/G
+
+ G W G W G W G W G W G W G W G W G W G
+ W G
+
+ G W G G G W G G G W G G G W G G G W G
+ G G
+
+ G W W W W W W W W W W W W W W W W W W
+ W W
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ W W W W W W W W W W W W W W W W W W W
+ W G
+
+ G G G W G G G W G G G W G G G W G G G
+ W G
+
+ G W G W G W G W G W G W G W G W G W G
+ W G
+
+ G W G W G W G W G W G W G W G W G W G
+ W G
+
+ p/G W G G G W G G G W G G G W G G G W G
+ G G
+ - >
+ G G G s/W G G G s/W G G G s/W G G G s/W G G
+ G s/W +/G
+
+ G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W
+ G s/W G
+
+ G s/W G G G s/W G G G s/W G G G s/W G G G s/W G
+ G G
+
+ G s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W s/W
+ s/W s/W s/W
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ s s s s s s s s s s s s s s s s s s s
+ s G
+
+ G G G s/W G G G s G G G s G G G s/W G G G
+ s/W G
+
+ G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W
+ G s/W G
+
+ G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W G s/W
+ G s/W G
+
+ p/G s/W G G G s/W G G G s/W G G G s/W G G G s/W G
+ G G
+ - >
+ G G G d/W G G G d/W G G G d/W G G G d/W G G
+ G d/W +/G
+
+ G d/W G d/W G d/W G d/W G d/W G d/W G d/W G d/W G d/W
+ G d/W G
+
+ G d/W G G G d/W G G G d/W G G G d/W G G G d/W G
+ G G
+
+ G d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W d/W
+ d/W d/W d/W
+
+ G G G G G G G G G G G G G G G G G G G
+ G G
+
+ i i i i i i i i i i i i i i i i i i i
+ i G
+
+ G G G i/W G G G i G G G i G G G i/W G G G
+ i/W G
+
+ G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W
+ G i/W G
+
+ G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W G i/W
+ G i/W G
+
+ p/G i/W G G G i/W G G G i/W G G G i/W G G G i/W G
+ G G
+ - >
+ . . . . . . . . . . . . . . . . G G G
+ G G
+
+ . . . . . . . . . . . . . . . G G G G
+ G G
+
+ . . . . . . . . . . . . . G G G G G G
+ G +/G
+
+ . . . . . . . . . . . G G G G G G . .
+ . .
+
+ . . . . . . . . . . G G G G G . . . .
+ . .
+
+ . . . . . . . . . G G G G . . . . . .
+ . .
+
+ . . . . . . . . G G G G . . . . . . .
+ . .
+
+ . . . . . . . G G G G . . . . . . . .
+ . .
+
+ . . . . . . G G G . . . . . . . . . .
+ . .
+
+ . . . . G G G . . . . . . . . . . . .
+ . .
+
+ . . . G G G G . . . . . . . . . . . .
+ . .
+
+ . . . G G . . . . . . . . . . . . . .
+ . .
+
+ . . . G . . . . . . . . . . . . . . .
+ . .
+
+ . . G G . . . . . . . . . . . . . . .
+ . .
+
+ . G G G . . . . . . . . . . . . . . .
+ . .
+
+ G G G G G . . . . . . . . . . . . . .
+ . .
+
+ G G G G G G . . . . . . . . . . . . .
+ . .
+
+ . G G G G . . . . . . . . . . . . . .
+ . .
+
+ . G G G G . . . . . . . . . . . . . .
+ . .
+
+ . . . G . . . . . . . . . . . . . . .
+ . .
+
+ . . . G . . . . . . . . . . . . . . .
+ . .
+
+ . . . G G . . . . . . . . . . . . . .
+ . .
+
+ . . . G G . . . . . . . . . . . . . .
+ . .
+
+ . . . G G G . . . . . . . . . . . . .
+ . .
+
+ . . . . G G G . . . . . . . . . . . .
+ . .
+
+ . . . . . G G G . . . . . . . . . . .
+ . .
+
+ . . . . . . . G G . . . . . . . . . .
+ . .
+
+ . . . . . . . . G G G . . . . . . . .
+ . .
+
+ . . . . . . . . . G G . . . . . . . .
+ . .
+
+ . . . . . . . . . . G G G . . . . . .
+ . .
+
+ . . . . . . . . . . . G G G . . . . .
+ . .
+
+ . . . . . . . . . . . . . G G G . . .
+ . .
+
+ . . . . . . . . . . . . . . . G G G .
+ . .
+
+ . . . . . . . . . . . . . . . . . G p/G
+ . .
+ - >
+ W W W W W W W W W W W W W W W W S S G
+ G G G G
+
+ W W W W W W W W W W W W W W W S S G G
+ G G G G
+
+ W W W W W W W W W W W W W S S S G G G
+ G G G +/G
+
+ W W W W W W W W W W W S S S G G G G G
+ S S S S
+
+ W W W W W W W W W W S S S G G G G S S
+ S S S W
+
+ W W W W W W W W W S S S G G G S S S S
+ W W W W
+
+ W W W W W W W S S S S G G G S S S S W
+ W W W W
+
+ W W W W W W S S S G G G S S S S S S W
+ W W W W
+
+ W W W W W S S S G G G S S S S S W W W
+ W W W W
+
+ W W W W S S S G G S S S S S W W W W W
+ W W W W
+
+ W W W W S S G G G S S S S W W W W W W
+ W W W W
+
+ W W W S S G G S S S S W W W W W W W W
+ W W W W
+
+ W W W S S G S S S S S W W W W W W W W
+ W W W W
+
+ W W S S G G S S S S S S W W W W W W W
+ W W W W
+
+ W W S G G G S S S S S S W W W W W W W
+ W W W W
+
+ W W S G G G G S S S S W W W W W W W W
+ W W W W
+
+ W S S G G G G G S S S W W W W W W W W
+ W W W W
+
+ W S S G G G G S S S S W W W W W W W W
+ W W W W
+
+ W S S G G G G S S S S W W W W W W W W
+ W W W W
+
+ W S S S S G S S S S S W W W W W W W W
+ W W W W
+
+ W W S S S G S S S S S S W W W W W W W
+ W W W W
+
+ W W W S S G G S S S S S W W W W W W W
+ W W W W
+
+ W W W S S G G S S S S S S W W W W W W
+ W W W W
+
+ W W W S S G G G S S S S S W W W W W W
+ W W W W
+
+ W W W S S S G G G S S S S S W W W W W
+ W W W W
+
+ W W W W S S S G G G S S S S S W W W W
+ W W W W
+
+ W W W W W S S S S G G S S S S S W W W
+ W W W W
+
+ W W W W W W S S S S G G S S S S S W W
+ W W W W
+
+ W W W W W W W W S S S G G G S S S S W
+ W W W W
+
+ W W W W W W W W W W S S G G G S S S S
+ S W W W
+
+ W W W W W W W W W W W W S S G G S S S
+ S S W W
+
+ W W W W W W W W W W W W W S S G G G S
+ S S S W
+
+ W W W W W W W W W W W W W W W S S G G
+ G S S W
+
+ W W W W W W W W W W W W W W W W W S S
+ G p/G S W
+
+ W W W W W W W W W W W W W W W W W W S
+ S S S W
+
+ W W W W W W W W W W W W W W W W W W S
+ S S S W
+
+ W W W W W W W W W W W W W W W W W W W
+ W W W W
+ - >
+ W W W W W W W W W W W W W W W W S S
+ G G G G G
+
+ W W W W W W W W W W W W W W W S S G
+ G G G G G
+
+ W W W W W W W W W W W W W S S S G #/G
+ G G G G +/G
+
+ W W W W W W W W W W W S S S G G G G
+ G S S S S
+
+ W W W W W W W W W W S S S G G G G S
+ S S S S W
+
+ W W W W W W W W W S S S G G G S S S
+ S W W W W
+
+ W W W W W W W S S S S #/G G G S S S S
+ W W W W W
+
+ W W W W W W S S S G G G S S S S S S
+ W W W W W
+
+ W W W W W S S S G G G S S S S S W W
+ W W W W W
+
+ W W W W S S S #/G G S S S S S W W W W
+ W W W W W
+
+ W W W W S S G G G S S S S W W W W W
+ W W W W W
+
+ W W W S S G G S S S S W W W W W W W
+ W W W W W
+
+ W W W S S G S S S S S W W W W W W W
+ W W W W W
+
+ W W S S G G S S S S S S W W W W W W
+ W W W W W
+
+ W W S G #/G G S S S S S S W W W W W W
+ W W W W W
+
+ W W S G G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S G G G G G S S S W W W W W W W
+ W W W W W
+
+ W S S G G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S G #/G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S S S G S S S S S W W W W W W W
+ W W W W W
+
+ W W S S S G S S S S S S W W W W W W
+ W W W W W
+
+ W W W S S G #/G S S S S S W W W W W W
+ W W W W W
+
+ W W W S S G G S S S S S S W W W W W
+ W W W W W
+
+ W W W S S G G G S S S S S W W W W W
+ W W W W W
+
+ W W W S S S G G G S S S S S W W W W
+ W W W W W
+
+ W W W W S S S G #/G G S S S S S W W W
+ W W W W W
+
+ W W W W W S S S S G G S S S S S W W
+ W W W W W
+
+ W W W W W W S S S S G G S S S S S W
+ W W W W W
+
+ W W W W W W W W S S S G G #/G S S S S
+ W W W W W
+
+ W W W W W W W W W W S S G G G S S S
+ S S W W W
+
+ W W W W W W W W W W W W S S G G S S
+ S S S W W
+
+ W W W W W W W W W W W W W S S G G G
+ S S S S W
+
+ W W W W W W W W W W W W W W W S S G
+ G G S S W
+
+ W W W W W W W W W W W W W W W W W S
+ S G p/G S W
+
+ W W W W W W W W W W W W W W W W W W
+ S S S S W
+
+ W W W W W W W W W W W W W W W W W W
+ S S S S W
+
+ W W W W W W W W W W W W W W W W W W
+ W W W W W
+ - >
+ W W W W W W W W W W W W W W W W S S
+ G G G G G
+
+ W W W W W W W W W W W W W W W S S G
+ G G G G G
+
+ W W W W W W W W W W W W W S S S G #/G
+ G G G G +/G
+
+ W W W W W W W W W W W S S S G G G G
+ G S S S S
+
+ W W W W W W W W W W S S S G #/G G G S
+ S S S S W
+
+ W W W W W W W W W S S S G G G S S S
+ S W W W W
+
+ W W W W W W W S S S S #/G G G S S S S
+ W W W W W
+
+ W W W W W W S S S G G G S S S S #/S S
+ W W W W W
+
+ W W W W W S S S G G G S S S S S W W
+ W W W W W
+
+ W W W W S S S #/G G S S S S S W W W W
+ W W W W W
+
+ W W W W S S G G G S #/S #/S S W W W W W
+ W W W W W
+
+ W W W S S G G S S S S W W W W W W W
+ W W W W W
+
+ W W W S S G S S #/S S S W W W W W W W
+ W W W W W
+
+ W W S S G G S S S S S S W W W W W W
+ W W W W W
+
+ W W S G #/G G S S S S S S W W W W W W
+ W W W W W
+
+ W W S G G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S G G G G G S S S W W W W W W W
+ W W W W W
+
+ W S S G G G G S S S S W W W W W W W
+ W W W W W
+
+ W S S G #/G G G S #/S S S W W W W W W W
+ W W W W W
+
+ W S S S S G S S S S S W W W W W W W
+ W W W W W
+
+ W W S S S G S S S S S S W W W W W W
+ W W W W W
+
+ W W W S S G #/G S S #/S S S W W W W W W
+ W W W W W
+
+ W W W S S G G S S S S S S W W W W W
+ W W W W W
+
+ W W W S S G G G S S S #/S S W W W W W
+ W W W W W
+
+ W W W S S S G G G S S S S S W W W W
+ W W W W W
+
+ W W W W S S S G #/G G S S S S S W W W
+ W W W W W
+
+ W W W W W S S S S G G S #/S S S S W W
+ W W W W W
+
+ W W W W W W S S S S G G S S S S S W
+ W W W W W
+
+ W W W W W W W W S S S G G #/G S S S S
+ W W W W W
+
+ W W W W W W W W W W S S G G G S S S
+ S S W W W
+
+ W W W W W W W W W W W W S S G G S S
+ S S T W W
+
+ W W W W W W W W W W W W W S S G G G
+ S S T s/S W
+
+ W W W W W W W W W W W W W W W S S G
+ G G T s/S W
+
+ W W W W W W W W W W W W W W W W W S
+ S G p/G s/S W
+
+ W W W W W W W W W W W W W W W W W W
+ S S t/S s/S W
+
+ W W W W W W W W W W W W W W W W W W
+ s/S s/S s/S s/S W
+
+ W W W W W W W W W W W W W W W W W W
+ W W W W W
+ - >
+ W W W W W W W W W W W W W W W W S S G
+ G G G G
+
+ W W W W W W W W W W W W W W W S L L L
+ G G s/G G
+
+ W W W W W W W W W W W W W S S S L T L
+ G G s/G G
+
+ W W W W W W W W W W W S S S G G L L L
+ S S S S
+
+ W W W W W W s/W W W W S S S G G G G S S
+ S S S W
+
+ W W W W W W W W W S S S G G G S S S S
+ W W W W
+
+ W W W W W W W S S S S G G G S S S S W
+ W W W W
+
+ W W W W W W S S S G T G S S S S S S W
+ W W W W
+
+ W W W W W S S S G G G S S S S S W W W
+ W W W W
+
+ W W W W S S S G G S S S S S W W W W W
+ W W W W
+
+ W W W W S S G G G S S S S W W W W W W
+ W W W W
+
+ W W W S S G G S S S S W W W W W W W W
+ W W W W
+
+ W W W S S G S S S S S W W W W W W W W
+ W W W W
+
+ W W S S G G S S S S S S W W W W W W W
+ W W W W
+
+ W W S G G G S S S S L L L W W W W W W
+ W W W W
+
+ W W S G G G G S S S S s/W L W W W W W W
+ W W W W
+
+ W S S G G G G G S S L L L W W W W W W
+ W W W W
+
+ W S S G G G G S S S S W W W W W W W W
+ W W W W
+
+ W S S G G T G S S S S W W W W W W W W
+ W W W W
+
+ W S S S S G S S S S S W W W W W W W W
+ W W W W
+
+ W W S S S G S S S S S S W W W W W W W
+ W W W W
+
+ W W W S S G G S S S S S W W W W W W W
+ W W W W
+
+ W W W S S G G S S S S S S W W W W W W
+ W W W W
+
+ W L L L S G G G S S S S S W W W W W W
+ W W W W
+
+ s/W L c/W S S S G G G S S S S S W W W W W
+ W W W W
+
+ W L L L S S S G G T S S S S S W W W W
+ W W W W
+
+ W W W W W S S S S G G S S S S S W W W
+ W W W W
+
+ W W W W W W S S S S G G S S S S S W W
+ W W W W
+
+ W W W W W W W W S S S G G G S S S S W
+ W W W W
+
+ W W W W W W W W W W S S G G G S S S S
+ i/S W W W
+
+ W W W W W W W W W W W W S S G G S S S
+ S S W W
+
+ W W W W W W W W W W W W W S S G T G S
+ S S S W
+
+ W W W W W W W W W W W W W W W S S G G
+ G S S W
+
+ W W W W W W W W W W W W W W W W W S S
+ G p/G S W
+
+ W W W W W W W W W W W W W W W W W W S
+ d/S d/S d/S W
+
+ W W W W W W W W W W W W W W W W W W S
+ d/S +/S d/P W
+
+ W W W W W W W W W W W W W W W W W W W
+ d/P d/P d/P W
+ - |
+ . W p/G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ . W G W
+ W W G W
+ W G G W
+ W G W W
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W G W .
+ W +/G W .
+ - |
+ . L p/G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ . L G W
+ L L G W
+ L G G W
+ L G W W
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L G W .
+ L +/G W .
+ - |
+ . W p/G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ . W G L
+ W W G L
+ W G G L
+ W G L L
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W G L .
+ W +/G L .
+ - |
+ . L p/G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ . L G L
+ L L G L
+ L G G L
+ L G L L
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L G L .
+ L +/G L .
+ - |
+ . p/G . . . G G G . . . . G d/G G . . . .
+ . G . . G . . . G . . G . W . G . . .
+ . G . . G . . . G W W G L L . G . . .
+ W G L L G . . . G . . G . L . G . . .
+ . G . . G . . . G . . G . W . G . . .
+ . G . . G . . . G . . G . L . G . . .
+ d G . . G . W . G . . G . L . G . . .
+ . G . W G L L . G . . G . W . G . . .
+ . G . . d/G . L . G . . G . W . G . . W
+ t G T . G W L L G . . G . G G G W W L
+ T G T . G . . . G . . G . . . G . . L
+ . s/G . . . G G G . . . . G d/G G . . . +/G
+Actions:
+ - Name: init_player
+ InputMapping:
+ Internal: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Behaviours:
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - incr: player_count
+ - Name: update_player_stats
+ InputMapping:
+ Internal: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Behaviours:
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - exec:
+ Action: update_player_stats
+ ActionId: 1
+ Delay: 1
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - sub:
+ - fatigue
+ - 1
+ OnFalse:
+ - add:
+ - fatigue
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - fatigue
+ - -10
+ OnTrue:
+ - set:
+ - fatigue
+ - 0
+ - add:
+ - inv_energy
+ - 1
+ - if:
+ Conditions:
+ gte:
+ - inv_energy
+ - 9
+ OnTrue:
+ - set:
+ - is_sleeping
+ - 0
+ - if:
+ Conditions:
+ lt:
+ - ach_wake_up
+ - 1
+ OnTrue:
+ - set:
+ - ach_wake_up
+ - 1
+ - reward: 1
+ - set_tile: 0
+ - if:
+ Conditions:
+ and:
+ - gt:
+ - inv_energy
+ - 0
+ - gt:
+ - fatigue
+ - 30
+ OnTrue:
+ - set:
+ - fatigue
+ - 0
+ - sub:
+ - inv_energy
+ - 1
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - add:
+ - hunger
+ - 1
+ OnFalse:
+ - add:
+ - hunger
+ - 2
+ - if:
+ Conditions:
+ and:
+ - gt:
+ - inv_food
+ - 0
+ - gt:
+ - hunger
+ - 50
+ OnTrue:
+ - set:
+ - hunger
+ - 0
+ - sub:
+ - inv_food
+ - 1
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - add:
+ - thirst
+ - 1
+ OnFalse:
+ - add:
+ - thirst
+ - 2
+ - if:
+ Conditions:
+ and:
+ - gt:
+ - inv_drink
+ - 0
+ - gt:
+ - thirst
+ - 30
+ OnTrue:
+ - set:
+ - thirst
+ - 0
+ - sub:
+ - inv_drink
+ - 1
+ - Src:
+ Object: player
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ and:
+ - gt:
+ - inv_food
+ - 0
+ - gt:
+ - inv_drink
+ - 0
+ - or:
+ - gt:
+ - inv_energy
+ - 0
+ - eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - add:
+ - recover
+ - 4
+ OnFalse:
+ - add:
+ - recover
+ - 2
+ OnFalse:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - sub:
+ - recover
+ - 1
+ OnFalse:
+ - sub:
+ - recover
+ - 2
+ - if:
+ Conditions:
+ gt:
+ - recover
+ - 50
+ OnTrue:
+ - set:
+ - recover
+ - 0
+ - if:
+ Conditions:
+ lt:
+ - health
+ - 9
+ OnTrue:
+ - add:
+ - health
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - recover
+ - -30
+ OnTrue:
+ - set:
+ - recover
+ - 0
+ - sub:
+ - health
+ - 1
+ - if:
+ Conditions:
+ lte:
+ - health
+ - 0
+ OnTrue:
+ - set:
+ - player_done
+ - 1
+ - decr: player_count
+ - remove: true
+ - Name: move
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ Description: Move Left
+ MetaData:
+ image_idx: 1
+ '2':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ Description: Move Up
+ MetaData:
+ image_idx: 2
+ '3':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ Description: Move Right
+ MetaData:
+ image_idx: 3
+ '4':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ Description: Move Down
+ MetaData:
+ image_idx: 4
+ Behaviours:
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Commands:
+ - set:
+ - health
+ - 0
+ - remove: true
+ - set:
+ - player_done
+ - 1
+ - decr: player_count
+ Dst:
+ Object:
+ - lava
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Commands:
+ - mov: _dest
+ - rot: _dir
+ - set_tile: meta.image_idx
+ Dst:
+ Object:
+ - grass
+ - path
+ - sand
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Commands:
+ - rot: _dir
+ - set_tile: meta.image_idx
+ Dst:
+ Object:
+ - cow
+ - water
+ - stone
+ - plant
+ - tree
+ - player
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Name: do
+ InputMapping:
+ Relative: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - -1
+ Description: Interact with an object
+ Behaviours:
+ - Src:
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - dst.ripe
+ - 1
+ Object: player
+ Commands:
+ - add:
+ - inv_food
+ - 4
+ - if:
+ Conditions:
+ lt:
+ - ach_eat_plant
+ - 1
+ OnTrue:
+ - set:
+ - ach_eat_plant
+ - 1
+ - reward: 10
+ - if:
+ Conditions:
+ gt:
+ - inv_food
+ - 9
+ OnTrue:
+ - set:
+ - inv_food
+ - 9
+ Dst:
+ Object: plant
+ Commands:
+ - set:
+ - ripe
+ - 0
+ - set_tile: 0
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Commands:
+ - add:
+ - inv_fence
+ - 1
+ Dst:
+ Object: fence
+ Commands:
+ - remove: true
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Dst:
+ Object: zombie
+ Commands:
+ - sub:
+ - dst.health
+ - src.damage
+ - if:
+ Conditions:
+ lte:
+ - dst.health
+ - 0
+ OnTrue:
+ - remove: true
+ - if:
+ Conditions:
+ lt:
+ - src.ach_defeat_zombie
+ - 1
+ OnTrue:
+ - set:
+ - src.ach_defeat_zombie
+ - 1
+ - reward: 1
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Dst:
+ Object: skeleton
+ Commands:
+ - sub:
+ - dst.health
+ - src.damage
+ - if:
+ Conditions:
+ lte:
+ - dst.health
+ - 0
+ OnTrue:
+ - remove: true
+ - if:
+ Conditions:
+ lt:
+ - src.ach_defeat_skeleton
+ - 1
+ OnTrue:
+ - set:
+ - src.ach_defeat_skeleton
+ - 1
+ - reward: 1
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Dst:
+ Object: cow
+ Commands:
+ - sub:
+ - dst.health
+ - src.damage
+ - if:
+ Conditions:
+ lte:
+ - dst.health
+ - 0
+ OnTrue:
+ - remove: true
+ - add:
+ - src.inv_food
+ - 6
+ - if:
+ Conditions:
+ gt:
+ - src.inv_food
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_food
+ - 9
+ - if:
+ Conditions:
+ lt:
+ - src.ach_eat_cow
+ - 1
+ OnTrue:
+ - set:
+ - src.ach_eat_cow
+ - 1
+ - reward: 1
+ - Src:
+ Object: player
+ Preconditions:
+ eq:
+ - is_sleeping
+ - 0
+ Dst:
+ Object: player
+ Commands:
+ - sub:
+ - dst.health
+ - src.damage
+ - if:
+ Conditions:
+ lte:
+ - dst.health
+ - 0
+ OnTrue:
+ - set:
+ - dst.player_done
+ - 1
+ - decr: player_count
+ - remove: true
+ - add:
+ - src.inv_food
+ - dst.inv_food
+ - add:
+ - src.inv_drink
+ - dst.inv_drink
+ - add:
+ - src.inv_wood
+ - dst.inv_wood
+ - add:
+ - src.inv_coal
+ - dst.inv_coal
+ - add:
+ - src.inv_iron
+ - dst.inv_iron
+ - if:
+ Conditions:
+ gt:
+ - src.inv_food
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_food
+ - 9
+ - if:
+ Conditions:
+ gt:
+ - src.inv_drink
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_drink
+ - 9
+ - if:
+ Conditions:
+ gt:
+ - src.inv_wood
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_wood
+ - 9
+ - if:
+ Conditions:
+ gt:
+ - src.inv_coal
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_coal
+ - 9
+ - if:
+ Conditions:
+ gt:
+ - src.inv_iron
+ - 9
+ OnTrue:
+ - set:
+ - src.inv_iron
+ - 9
+ - if:
+ Conditions:
+ lt:
+ - src.ach_defeat_player
+ - 1
+ OnTrue:
+ - set:
+ - src.ach_defeat_player
+ - 1
+ - reward: 1
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - lt:
+ - inv_wood
+ - 9
+ Commands:
+ - add:
+ - inv_wood
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_wood
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_wood
+ - 1
+ - reward: 1
+ Dst:
+ Object: tree
+ Commands:
+ - remove: true
+ - spawn: grass
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - inv_wood_pickaxe
+ - 1
+ - lt:
+ - inv_stone
+ - 9
+ Commands:
+ - add:
+ - inv_stone
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_stone
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_stone
+ - 1
+ - reward: 1
+ Dst:
+ Object: stone
+ Commands:
+ - remove: true
+ - spawn: path
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - inv_wood_pickaxe
+ - 1
+ - lt:
+ - inv_coal
+ - 9
+ Commands:
+ - add:
+ - inv_coal
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_coal
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_coal
+ - 1
+ - reward: 1
+ Dst:
+ Object: coal
+ Commands:
+ - remove: true
+ - spawn: path
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - inv_stone_pickaxe
+ - 1
+ - lt:
+ - inv_iron
+ - 9
+ Commands:
+ - add:
+ - inv_iron
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_iron
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_iron
+ - 1
+ - reward: 1
+ Dst:
+ Object: iron
+ Commands:
+ - remove: true
+ - spawn: path
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - inv_iron_pickaxe
+ - 1
+ - lt:
+ - inv_diamond
+ - 9
+ Commands:
+ - add:
+ - inv_diamond
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_diamond
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_diamond
+ - 1
+ - reward: 1
+ Dst:
+ Object: diamond
+ Commands:
+ - remove: true
+ - spawn: path
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - lt:
+ - inv_drink
+ - 9
+ Commands:
+ - add:
+ - inv_drink
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_collect_drink
+ - 1
+ OnTrue:
+ - set:
+ - ach_collect_drink
+ - 1
+ - reward: 1
+ Dst:
+ Object: water
+ - Name: place
+ InputMapping:
+ Relative: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - -1
+ Description: Place a stone
+ MetaData:
+ action_id: 1
+ '2':
+ VectorToDest:
+ - 0
+ - -1
+ Description: Place a table
+ MetaData:
+ action_id: 2
+ '3':
+ VectorToDest:
+ - 0
+ - -1
+ Description: Place a furnace
+ MetaData:
+ action_id: 3
+ Behaviours:
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 1
+ - gte:
+ - inv_stone
+ - 1
+ Commands:
+ - sub:
+ - inv_stone
+ - 1
+ - if:
+ Conditions:
+ lt:
+ - ach_place_stone
+ - 1
+ OnTrue:
+ - set:
+ - ach_place_stone
+ - 1
+ - reward: 1
+ Dst:
+ Object:
+ - grass
+ - sand
+ - path
+ - water
+ - lava
+ Commands:
+ - remove: true
+ - spawn: stone
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 2
+ - gte:
+ - inv_wood
+ - 2
+ Commands:
+ - sub:
+ - inv_wood
+ - 2
+ - if:
+ Conditions:
+ lt:
+ - ach_place_table
+ - 1
+ OnTrue:
+ - set:
+ - ach_place_table
+ - 1
+ - reward: 1
+ Dst:
+ Object:
+ - grass
+ - sand
+ - path
+ Commands:
+ - spawn: table
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 3
+ - gte:
+ - inv_stone
+ - 4
+ Commands:
+ - sub:
+ - inv_stone
+ - 4
+ - if:
+ Conditions:
+ lt:
+ - ach_place_furnace
+ - 1
+ OnTrue:
+ - set:
+ - ach_place_furnace
+ - 1
+ - reward: 1
+ Dst:
+ Object:
+ - grass
+ - sand
+ - path
+ Commands:
+ - spawn: furnace
+ - Name: make
+ InputMapping:
+ Relative: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Description: Make a wood pickaxe
+ MetaData:
+ action_id: 1
+ '2':
+ VectorToDest:
+ - 0
+ - 0
+ Description: Make a stone pickaxe
+ MetaData:
+ action_id: 2
+ '3':
+ VectorToDest:
+ - 0
+ - 0
+ Description: Make an iron pickaxe
+ MetaData:
+ action_id: 3
+ Behaviours:
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 1
+ - gte:
+ - inv_wood
+ - 1
+ - lt:
+ - inv_wood_pickaxe
+ - 1
+ - eq:
+ - near_table
+ - 1
+ Commands:
+ - decr: inv_wood
+ - if:
+ Conditions:
+ lt:
+ - ach_make_wood_pickaxe
+ - 1
+ OnTrue:
+ - set:
+ - ach_make_wood_pickaxe
+ - 1
+ - reward: 1
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - inv_wood_pickaxe
+ - 1
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 2
+ - gte:
+ - inv_wood
+ - 1
+ - gte:
+ - inv_stone
+ - 1
+ - eq:
+ - near_table
+ - 1
+ - lt:
+ - inv_stone_pickaxe
+ - 1
+ Commands:
+ - decr: inv_stone
+ - decr: inv_wood
+ - if:
+ Conditions:
+ lt:
+ - ach_make_stone_pickaxe
+ - 1
+ OnTrue:
+ - set:
+ - ach_make_stone_pickaxe
+ - 1
+ - reward: 1
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - inv_stone_pickaxe
+ - 1
+ - Src:
+ Object: player
+ Preconditions:
+ - and:
+ - eq:
+ - is_sleeping
+ - 0
+ - eq:
+ - meta.action_id
+ - 3
+ - gte:
+ - inv_wood
+ - 1
+ - gte:
+ - inv_iron
+ - 1
+ - gte:
+ - inv_coal
+ - 1
+ - eq:
+ - near_furnace
+ - 1
+ - eq:
+ - near_table
+ - 1
+ - lt:
+ - inv_iron_pickaxe
+ - 1
+ Commands:
+ - decr: inv_coal
+ - decr: inv_wood
+ - decr: inv_iron
+ - if:
+ Conditions:
+ lt:
+ - ach_make_iron_pickaxe
+ - 1
+ OnTrue:
+ - set:
+ - ach_make_iron_pickaxe
+ - 1
+ - reward: 1
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - inv_iron_pickaxe
+ - 1
+ - Name: near_table_on
+ Trigger:
+ Type: RANGE_BOX_AREA
+ Range: 1
+ Behaviours:
+ - Src:
+ Object: table
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - near_table
+ - 1
+ - Name: near_table_off
+ Trigger:
+ Type: RANGE_BOX_BOUNDARY
+ Range: 2
+ Behaviours:
+ - Src:
+ Object: table
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - near_table
+ - 0
+ - Name: near_furnace_on
+ Trigger:
+ Type: RANGE_BOX_AREA
+ Range: 1
+ Behaviours:
+ - Src:
+ Object: furnace
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - near_furnace
+ - 1
+ - Name: near_furnace_off
+ Trigger:
+ Type: RANGE_BOX_BOUNDARY
+ Range: 2
+ Behaviours:
+ - Src:
+ Object: furnace
+ Dst:
+ Object: player
+ Commands:
+ - set:
+ - near_furnace
+ - 0
+ - Name: act_attack_cooldown
+ InputMapping:
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: zombie
+ Commands:
+ - set:
+ - attack_cooldown
+ - 0
+ Dst:
+ Object: zombie
+ - Name: skeleton_random_movement
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ '2':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ '3':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ '4':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Preconditions:
+ - eq:
+ - is_chasing
+ - 0
+ Commands:
+ - mov: _dest
+ - rot: _dir
+ - exec:
+ Action: skeleton_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object:
+ - path
+ - Src:
+ Object: skeleton
+ Preconditions:
+ - eq:
+ - is_chasing
+ - 0
+ Commands:
+ - exec:
+ Action: skeleton_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object:
+ - _boundary
+ - _empty
+ - grass
+ - sand
+ - cow
+ - water
+ - stone
+ - plant
+ - tree
+ - player
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Name: skeleton_chase_player
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ '2':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ '3':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ '4':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ - mov: _dest
+ - rot: _dir
+ Dst:
+ Object: path
+ - Src:
+ Object: skeleton
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ Dst:
+ Object:
+ - _boundary
+ - cow
+ - player
+ - arrow
+ - water
+ - grass
+ - sand
+ - stone
+ - plant
+ - skeleton
+ - zombie
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Name: skeleton_chase_proximity_trigger_off
+ Trigger:
+ Range: 9
+ Type: RANGE_BOX_BOUNDARY
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Preconditions:
+ - eq:
+ - src.is_chasing
+ - 1
+ Commands:
+ - set:
+ - src.is_chasing
+ - 0
+ - exec:
+ Action: skeleton_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object: player
+ - Name: skeleton_chase_proximity_trigger_on
+ Trigger:
+ Range: 8
+ Type: RANGE_BOX_AREA
+ InputMapping:
+ Internal: true
+ Probability: 0.3
+ Behaviours:
+ - Src:
+ Preconditions:
+ - eq:
+ - src.chase_cooldown
+ - 0
+ Object: skeleton
+ Commands:
+ - set:
+ - src.is_chasing
+ - 1
+ - set:
+ - src.chase_cooldown
+ - 1
+ - exec:
+ Action: skeleton_chase_player
+ Delay: 3
+ Search:
+ ImpassableObjects:
+ - water
+ - cow
+ - stone
+ - tree
+ - zombie
+ - skeleton
+ - plant
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ TargetObjectName: player
+ Dst:
+ Object: player
+ - Name: arrow_projectile
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: arrow
+ Commands:
+ - mov: _dest
+ - exec:
+ Action: arrow_projectile
+ Delay: 1
+ Dst:
+ Object:
+ - water
+ - path
+ - grass
+ - sand
+ - lava
+ - Src:
+ Object: arrow
+ Commands:
+ - remove: true
+ Dst:
+ Object:
+ - _boundary
+ - _empty
+ - arrow
+ - tree
+ - stone
+ - plant
+ - coal
+ - iron
+ - diamond
+ - Src:
+ Object: arrow
+ Commands:
+ - remove: true
+ Dst:
+ Object:
+ - cow
+ - zombie
+ - skeleton
+ Commands:
+ - sub:
+ - health
+ - 2
+ - if:
+ Conditions:
+ lte:
+ - health
+ - 0
+ OnTrue:
+ - remove: true
+ - Src:
+ Object: arrow
+ Commands:
+ - remove: true
+ Dst:
+ Object: player
+ Commands:
+ - sub:
+ - health
+ - 2
+ - if:
+ Conditions:
+ lte:
+ - health
+ - 0
+ OnTrue:
+ - set:
+ - dst.player_done
+ - 1
+ - decr: player_count
+ - remove: true
+ - Src:
+ Object: arrow
+ Commands:
+ - remove: true
+ Dst:
+ Object:
+ - table
+ - furnace
+ Commands:
+ - remove: true
+ - Name: set_arrow_direction
+ InputMapping:
+ Internal: true
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Behaviours:
+ - Src:
+ Object: arrow
+ Commands:
+ - set_tile: meta.image_idx
+ Dst:
+ Object:
+ - water
+ - path
+ - grass
+ - sand
+ - arrow
+ - lava
+ - Name: fire_arrow
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ MetaData:
+ image_idx: 0
+ '2':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ MetaData:
+ image_idx: 1
+ '3':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ MetaData:
+ image_idx: 2
+ '4':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ MetaData:
+ image_idx: 3
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Dst:
+ Object:
+ - water
+ - path
+ - grass
+ - sand
+ - lava
+ Commands:
+ - spawn: arrow
+ - Name: reload_arrow
+ InputMapping:
+ Inputs:
+ '1':
+ VectorToDest:
+ - 0
+ - 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: skeleton
+ Commands:
+ - set:
+ - src.reload_cooldown
+ - 0
+ Dst:
+ Object: skeleton
+ - Name: skeleton_fire_proximity_trigger
+ Probability: 0.5
+ Trigger:
+ Range: 5
+ Type: RANGE_BOX_AREA
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Preconditions:
+ - eq:
+ - src.reload_cooldown
+ - 0
+ Object: skeleton
+ Commands:
+ - set:
+ - src.reload_cooldown
+ - 1
+ - exec:
+ Action: reload_arrow
+ Delay: 4
+ ActionId: 1
+ - if:
+ Conditions:
+ eq:
+ - src._dx
+ - 1
+ OnTrue:
+ - exec:
+ Action: fire_arrow
+ Delay: 1
+ ActionId: 2
+ - if:
+ Conditions:
+ eq:
+ - src._dx
+ - -1
+ OnTrue:
+ - exec:
+ Action: fire_arrow
+ Delay: 1
+ ActionId: 4
+ - if:
+ Conditions:
+ eq:
+ - src._dy
+ - 1
+ OnTrue:
+ - exec:
+ Action: fire_arrow
+ Delay: 1
+ ActionId: 3
+ - if:
+ Conditions:
+ eq:
+ - src._dy
+ - -1
+ OnTrue:
+ - exec:
+ Action: fire_arrow
+ Delay: 1
+ ActionId: 1
+ Dst:
+ Object: player
+ - Name: zombie_random_movement
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: zombie
+ Preconditions:
+ - eq:
+ - src.is_chasing
+ - 0
+ Commands:
+ - mov: _dest
+ - exec:
+ Action: zombie_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object:
+ - grass
+ - path
+ - sand
+ - Src:
+ Object: zombie
+ Preconditions:
+ - eq:
+ - src.is_chasing
+ - 0
+ Commands:
+ - exec:
+ Action: zombie_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object:
+ - _boundary
+ - _empty
+ - cow
+ - water
+ - tree
+ - stone
+ - plant
+ - player
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Name: zombie_chase_player
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: zombie
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ - mov: _dest
+ Dst:
+ Object:
+ - grass
+ - path
+ - sand
+ - Src:
+ Object: zombie
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ Dst:
+ Object:
+ - _boundary
+ - cow
+ - water
+ - stone
+ - plant
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ - Src:
+ Object: zombie
+ Commands:
+ - set:
+ - src.chase_cooldown
+ - 0
+ - if:
+ Conditions:
+ eq:
+ - src.attack_cooldown
+ - 0
+ OnTrue:
+ - set:
+ - src.attack_cooldown
+ - 1
+ - exec:
+ Action: act_attack_cooldown
+ Delay: 5
+ ActionId: 1
+ Dst:
+ Object: player
+ Commands:
+ - if:
+ Conditions:
+ eq:
+ - src.attack_cooldown
+ - 0
+ OnTrue:
+ - if:
+ Conditions:
+ eq:
+ - is_sleeping
+ - 1
+ OnTrue:
+ - sub:
+ - health
+ - 7
+ OnFalse:
+ - sub:
+ - health
+ - 2
+ - if:
+ Conditions:
+ lte:
+ - health
+ - 0
+ OnTrue:
+ - set:
+ - dst.player_done
+ - 1
+ - decr: player_count
+ - remove: true
+ - Name: zombie_chase_proximity_trigger_off
+ Trigger:
+ Range: 9
+ Type: RANGE_BOX_BOUNDARY
+ InputMapping:
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: zombie
+ Preconditions:
+ - eq:
+ - src.is_chasing
+ - 1
+ Commands:
+ - set:
+ - src.is_chasing
+ - 0
+ - exec:
+ Action: zombie_random_movement
+ Delay: 3
+ Randomize: true
+ Dst:
+ Object: player
+ - Name: zombie_chase_proximity_trigger_on
+ Trigger:
+ Range: 8
+ Type: RANGE_BOX_AREA
+ InputMapping:
+ Internal: true
+ Probability: 0.9
+ Behaviours:
+ - Src:
+ Preconditions:
+ - eq:
+ - src.chase_cooldown
+ - 0
+ Object: zombie
+ Commands:
+ - set:
+ - src.is_chasing
+ - 1
+ - set:
+ - src.chase_cooldown
+ - 1
+ - exec:
+ Action: zombie_chase_player
+ Delay: 2
+ Search:
+ ImpassableObjects:
+ - water
+ - cow
+ - stone
+ - tree
+ - zombie
+ - skeleton
+ - plant
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+ TargetObjectName: player
+ Dst:
+ Object: player
+ - Name: cow_random_movement
+ InputMapping:
+ Inputs:
+ '1':
+ OrientationVector:
+ - 1
+ - 0
+ VectorToDest:
+ - 1
+ - 0
+ MetaData:
+ change_image: 1
+ image_idx: 1
+ '2':
+ OrientationVector:
+ - 0
+ - -1
+ VectorToDest:
+ - 0
+ - -1
+ MetaData:
+ change_image: 0
+ '3':
+ OrientationVector:
+ - -1
+ - 0
+ VectorToDest:
+ - -1
+ - 0
+ MetaData:
+ change_image: 1
+ image_idx: 0
+ '4':
+ OrientationVector:
+ - 0
+ - 1
+ VectorToDest:
+ - 0
+ - 1
+ MetaData:
+ change_image: 0
+ Internal: true
+ Behaviours:
+ - Src:
+ Object: cow
+ Commands:
+ - mov: _dest
+ - exec:
+ Action: cow_random_movement
+ Delay: 1
+ Randomize: true
+ - eq:
+ Arguments:
+ - meta.change_image
+ - 1
+ Commands:
+ - set_tile: meta.image_idx
+ Dst:
+ Object:
+ - grass
+ - path
+ - sand
+ - Src:
+ Object: cow
+ Commands:
+ - exec:
+ Action: cow_random_movement
+ Delay: 5
+ Randomize: true
+ Dst:
+ Object:
+ - _boundary
+ - _empty
+ - cow
+ - water
+ - stone
+ - tree
+ - plant
+ - player
+ - zombie
+ - skeleton
+ - coal
+ - lava
+ - iron
+ - diamond
+ - table
+ - furnace
+Objects:
+ - Name: player
+ MapCharacter: p
+ InitialActions:
+ - Action: init_player
+ ActionId: 1
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/player.png
+ - Image: sprite2d/player-left.png
+ - Image: sprite2d/player-up.png
+ - Image: sprite2d/player-right.png
+ - Image: sprite2d/player-down.png
+ - Image: sprite2d/player-sleep.png
+ PlayerSprite2D:
+ - Image: sprite2d/player.png
+ - Image: sprite2d/player-left.png
+ - Image: sprite2d/player-up.png
+ - Image: sprite2d/player-right.png
+ - Image: sprite2d/player-down.png
+ - Image: sprite2d/player-sleep.png
+ - Name: water
+ MapCharacter: W
+ Z: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/water.png
+ PlayerSprite2D:
+ - Image: sprite2d/water.png
+ - Name: grass
+ MapCharacter: G
+ Z: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/grass.png
+ PlayerSprite2D:
+ - Image: sprite2d/grass.png
+ - Name: stone
+ MapCharacter: s
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/stone.png
+ PlayerSprite2D:
+ - Image: sprite2d/stone.png
+ - Name: path
+ Z: 1
+ MapCharacter: P
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/path.png
+ PlayerSprite2D:
+ - Image: sprite2d/path.png
+ - Name: sand
+ Z: 1
+ MapCharacter: S
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/sand.png
+ PlayerSprite2D:
+ - Image: sprite2d/sand.png
+ - Name: tree
+ Z: 1
+ MapCharacter: T
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/tree.png
+ PlayerSprite2D:
+ - Image: sprite2d/tree.png
+ - Name: plant
+ MapCharacter: +
+ Z: 2
+ Variables:
+ - Name: ripe
+ InitialValue: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/plant-ripe.png
+ - Image: sprite2d/plant.png
+ PlayerSprite2D:
+ - Image: sprite2d/plant-ripe.png
+ - Image: sprite2d/plant.png
+ - Name: lava
+ MapCharacter: L
+ Z: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/lava.png
+ PlayerSprite2D:
+ - Image: sprite2d/lava.png
+ - Name: coal
+ MapCharacter: c
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/coal.png
+ PlayerSprite2D:
+ - Image: sprite2d/coal.png
+ - Name: iron
+ MapCharacter: i
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/iron.png
+ PlayerSprite2D:
+ - Image: sprite2d/iron.png
+ - Name: diamond
+ MapCharacter: d
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/diamond.png
+ PlayerSprite2D:
+ - Image: sprite2d/diamond.png
+ - Name: table
+ MapCharacter: t
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/table.png
+ PlayerSprite2D:
+ - Image: sprite2d/table.png
+ - Name: furnace
+ MapCharacter: f
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/furnace.png
+ PlayerSprite2D:
+ - Image: sprite2d/furnace.png
+ - Name: fence
+ MapCharacter: '}'
+ Z: 2
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/fence.png
+ PlayerSprite2D:
+ - Image: sprite2d/fence.png
+ - Name: arrow
+ Z: 2
+ MapCharacter: a
+ InitialActions:
+ - Action: arrow_projectile
+ Delay: 1
+ - Action: set_arrow_direction
+ ActionId: 1
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/arrow-up.png
+ - Image: sprite2d/arrow-right.png
+ - Image: sprite2d/arrow-down.png
+ - Image: sprite2d/arrow-left.png
+ PlayerSprite2D:
+ - Image: sprite2d/arrow-up.png
+ - Image: sprite2d/arrow-right.png
+ - Image: sprite2d/arrow-down.png
+ - Image: sprite2d/arrow-left.png
+ - Name: zombie
+ Z: 2
+ InitialActions:
+ - Action: zombie_random_movement
+ Randomize: true
+ Variables:
+ - Name: health
+ InitialValue: 5
+ - Name: is_chasing
+ InitialValue: 0
+ - Name: chase_cooldown
+ InitialValue: 0
+ - Name: attack_cooldown
+ InitialValue: 0
+ MapCharacter: '!'
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/zombie.png
+ PlayerSprite2D:
+ - Image: sprite2d/zombie.png
+ - Name: skeleton
+ Z: 2
+ MapCharacter: '@'
+ InitialActions:
+ - Action: skeleton_random_movement
+ Randomize: true
+ Variables:
+ - Name: health
+ InitialValue: 3
+ - Name: is_chasing
+ InitialValue: 0
+ - Name: chase_cooldown
+ InitialValue: 0
+ - Name: reload_cooldown
+ InitialValue: 0
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/skeleton.png
+ PlayerSprite2D:
+ - Image: sprite2d/skeleton.png
+ - Name: cow
+ InitialActions:
+ - Action: cow_random_movement
+ Randomize: true
+ Variables:
+ - Name: health
+ InitialValue: 3
+ Z: 2
+ MapCharacter: '#'
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/cow-left.png
+ - Image: sprite2d/cow-right.png
+ PlayerSprite2D:
+ - Image: sprite2d/cow-left.png
+ - Image: sprite2d/cow-right.png
+ - Name: health
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/health.png
+ PlayerSprite2D:
+ - Image: sprite2d/health.png
+ - Name: food
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/food.png
+ PlayerSprite2D:
+ - Image: sprite2d/food.png
+ - Name: drink
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/drink.png
+ PlayerSprite2D:
+ - Image: sprite2d/drink.png
+ - Name: energy
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/energy.png
+ PlayerSprite2D:
+ - Image: sprite2d/energy.png
+ - Name: '1'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/1.png
+ PlayerSprite2D:
+ - Image: sprite2d/1.png
+ - Name: '2'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/2.png
+ PlayerSprite2D:
+ - Image: sprite2d/2.png
+ - Name: '3'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/3.png
+ PlayerSprite2D:
+ - Image: sprite2d/3.png
+ - Name: '4'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/4.png
+ PlayerSprite2D:
+ - Image: sprite2d/4.png
+ - Name: '5'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/5.png
+ PlayerSprite2D:
+ - Image: sprite2d/5.png
+ - Name: '6'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/6.png
+ PlayerSprite2D:
+ - Image: sprite2d/6.png
+ - Name: '7'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/7.png
+ PlayerSprite2D:
+ - Image: sprite2d/7.png
+ - Name: '8'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/8.png
+ PlayerSprite2D:
+ - Image: sprite2d/8.png
+ - Name: '9'
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/9.png
+ PlayerSprite2D:
+ - Image: sprite2d/9.png
+ - Name: log
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/log.png
+ PlayerSprite2D:
+ - Image: sprite2d/log.png
+ - Name: wood_pickaxe
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/wood_pickaxe.png
+ PlayerSprite2D:
+ - Image: sprite2d/wood_pickaxe.png
+ - Name: stone_pickaxe
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/stone_pickaxe.png
+ PlayerSprite2D:
+ - Image: sprite2d/stone_pickaxe.png
+ - Name: iron_pickaxe
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/iron_pickaxe.png
+ PlayerSprite2D:
+ - Image: sprite2d/iron_pickaxe.png
+ - Name: wood_sword
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/wood_sword.png
+ PlayerSprite2D:
+ - Image: sprite2d/wood_sword.png
+ - Name: stone_sword
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/stone_sword.png
+ PlayerSprite2D:
+ - Image: sprite2d/stone_sword.png
+ - Name: iron_sword
+ Internal: true
+ Observers:
+ GlobalSprite2D:
+ - Image: sprite2d/iron_sword.png
+ PlayerSprite2D:
+ - Image: sprite2d/iron_sword.png
diff --git a/resources/griddlybear192x192.png b/resources/griddlybear192x192.png
new file mode 100644
index 000000000..91ed820f0
Binary files /dev/null and b/resources/griddlybear192x192.png differ
diff --git a/resources/griddlybear512x512.png b/resources/griddlybear512x512.png
new file mode 100644
index 000000000..600f9875c
Binary files /dev/null and b/resources/griddlybear512x512.png differ
diff --git a/resources/griddlybear64x64.png b/resources/griddlybear64x64.png
new file mode 100644
index 000000000..0178c0ef3
Binary files /dev/null and b/resources/griddlybear64x64.png differ
diff --git a/resources/images/sprite2d/1.png b/resources/images/sprite2d/1.png
new file mode 100644
index 000000000..a659963df
Binary files /dev/null and b/resources/images/sprite2d/1.png differ
diff --git a/resources/images/sprite2d/2.png b/resources/images/sprite2d/2.png
new file mode 100644
index 000000000..9b1d210ad
Binary files /dev/null and b/resources/images/sprite2d/2.png differ
diff --git a/resources/images/sprite2d/3.png b/resources/images/sprite2d/3.png
new file mode 100644
index 000000000..5519f1c65
Binary files /dev/null and b/resources/images/sprite2d/3.png differ
diff --git a/resources/images/sprite2d/4.png b/resources/images/sprite2d/4.png
new file mode 100644
index 000000000..0604e1cac
Binary files /dev/null and b/resources/images/sprite2d/4.png differ
diff --git a/resources/images/sprite2d/5.png b/resources/images/sprite2d/5.png
new file mode 100644
index 000000000..355950bc2
Binary files /dev/null and b/resources/images/sprite2d/5.png differ
diff --git a/resources/images/sprite2d/6.png b/resources/images/sprite2d/6.png
new file mode 100644
index 000000000..466735a84
Binary files /dev/null and b/resources/images/sprite2d/6.png differ
diff --git a/resources/images/sprite2d/7.png b/resources/images/sprite2d/7.png
new file mode 100644
index 000000000..32c67f0ec
Binary files /dev/null and b/resources/images/sprite2d/7.png differ
diff --git a/resources/images/sprite2d/8.png b/resources/images/sprite2d/8.png
new file mode 100644
index 000000000..2f4c4cce0
Binary files /dev/null and b/resources/images/sprite2d/8.png differ
diff --git a/resources/images/sprite2d/9.png b/resources/images/sprite2d/9.png
new file mode 100644
index 000000000..bda026956
Binary files /dev/null and b/resources/images/sprite2d/9.png differ
diff --git a/resources/images/sprite2d/arrow-down.png b/resources/images/sprite2d/arrow-down.png
new file mode 100644
index 000000000..426ebf698
Binary files /dev/null and b/resources/images/sprite2d/arrow-down.png differ
diff --git a/resources/images/sprite2d/arrow-left.png b/resources/images/sprite2d/arrow-left.png
new file mode 100644
index 000000000..66b18ef58
Binary files /dev/null and b/resources/images/sprite2d/arrow-left.png differ
diff --git a/resources/images/sprite2d/arrow-right.png b/resources/images/sprite2d/arrow-right.png
new file mode 100644
index 000000000..2c7e8dd7f
Binary files /dev/null and b/resources/images/sprite2d/arrow-right.png differ
diff --git a/resources/images/sprite2d/arrow-up.png b/resources/images/sprite2d/arrow-up.png
new file mode 100644
index 000000000..73992e2e3
Binary files /dev/null and b/resources/images/sprite2d/arrow-up.png differ
diff --git a/resources/images/sprite2d/coal.png b/resources/images/sprite2d/coal.png
new file mode 100644
index 000000000..467a44d4c
Binary files /dev/null and b/resources/images/sprite2d/coal.png differ
diff --git a/resources/images/sprite2d/cow-left.png b/resources/images/sprite2d/cow-left.png
new file mode 100644
index 000000000..5c346ac78
Binary files /dev/null and b/resources/images/sprite2d/cow-left.png differ
diff --git a/resources/images/sprite2d/cow-right.png b/resources/images/sprite2d/cow-right.png
new file mode 100644
index 000000000..780f4e728
Binary files /dev/null and b/resources/images/sprite2d/cow-right.png differ
diff --git a/resources/images/sprite2d/debug-2.png b/resources/images/sprite2d/debug-2.png
new file mode 100644
index 000000000..c7cd53182
Binary files /dev/null and b/resources/images/sprite2d/debug-2.png differ
diff --git a/resources/images/sprite2d/debug-3.png b/resources/images/sprite2d/debug-3.png
new file mode 100644
index 000000000..b7d00a2a3
Binary files /dev/null and b/resources/images/sprite2d/debug-3.png differ
diff --git a/resources/images/sprite2d/debug.png b/resources/images/sprite2d/debug.png
new file mode 100644
index 000000000..01948f5df
Binary files /dev/null and b/resources/images/sprite2d/debug.png differ
diff --git a/resources/images/sprite2d/diamond.png b/resources/images/sprite2d/diamond.png
new file mode 100644
index 000000000..fe74e39f4
Binary files /dev/null and b/resources/images/sprite2d/diamond.png differ
diff --git a/resources/images/sprite2d/drink.png b/resources/images/sprite2d/drink.png
new file mode 100644
index 000000000..b875879a3
Binary files /dev/null and b/resources/images/sprite2d/drink.png differ
diff --git a/resources/images/sprite2d/energy.png b/resources/images/sprite2d/energy.png
new file mode 100644
index 000000000..a77aaf5b7
Binary files /dev/null and b/resources/images/sprite2d/energy.png differ
diff --git a/resources/images/sprite2d/fence.png b/resources/images/sprite2d/fence.png
new file mode 100644
index 000000000..4814616da
Binary files /dev/null and b/resources/images/sprite2d/fence.png differ
diff --git a/resources/images/sprite2d/food.png b/resources/images/sprite2d/food.png
new file mode 100644
index 000000000..a408a5273
Binary files /dev/null and b/resources/images/sprite2d/food.png differ
diff --git a/resources/images/sprite2d/furnace.png b/resources/images/sprite2d/furnace.png
new file mode 100644
index 000000000..fafc893a3
Binary files /dev/null and b/resources/images/sprite2d/furnace.png differ
diff --git a/resources/images/sprite2d/grass.png b/resources/images/sprite2d/grass.png
new file mode 100644
index 000000000..08360bb86
Binary files /dev/null and b/resources/images/sprite2d/grass.png differ
diff --git a/resources/images/sprite2d/health.png b/resources/images/sprite2d/health.png
new file mode 100644
index 000000000..88a8597da
Binary files /dev/null and b/resources/images/sprite2d/health.png differ
diff --git a/resources/images/sprite2d/iron.png b/resources/images/sprite2d/iron.png
new file mode 100644
index 000000000..eafc7fef8
Binary files /dev/null and b/resources/images/sprite2d/iron.png differ
diff --git a/resources/images/sprite2d/iron_pickaxe.png b/resources/images/sprite2d/iron_pickaxe.png
new file mode 100644
index 000000000..52c45c207
Binary files /dev/null and b/resources/images/sprite2d/iron_pickaxe.png differ
diff --git a/resources/images/sprite2d/iron_sword.png b/resources/images/sprite2d/iron_sword.png
new file mode 100644
index 000000000..080b82155
Binary files /dev/null and b/resources/images/sprite2d/iron_sword.png differ
diff --git a/resources/images/sprite2d/lava.png b/resources/images/sprite2d/lava.png
new file mode 100644
index 000000000..13c45f9c0
Binary files /dev/null and b/resources/images/sprite2d/lava.png differ
diff --git a/resources/images/sprite2d/leaves.png b/resources/images/sprite2d/leaves.png
new file mode 100644
index 000000000..97a8cef5c
Binary files /dev/null and b/resources/images/sprite2d/leaves.png differ
diff --git a/resources/images/sprite2d/log.png b/resources/images/sprite2d/log.png
new file mode 100644
index 000000000..6ce29850f
Binary files /dev/null and b/resources/images/sprite2d/log.png differ
diff --git a/resources/images/sprite2d/path.png b/resources/images/sprite2d/path.png
new file mode 100644
index 000000000..9b6ffe22a
Binary files /dev/null and b/resources/images/sprite2d/path.png differ
diff --git a/resources/images/sprite2d/plant-ripe.png b/resources/images/sprite2d/plant-ripe.png
new file mode 100644
index 000000000..ed7394ef6
Binary files /dev/null and b/resources/images/sprite2d/plant-ripe.png differ
diff --git a/resources/images/sprite2d/plant-young.png b/resources/images/sprite2d/plant-young.png
new file mode 100644
index 000000000..4e7fda20e
Binary files /dev/null and b/resources/images/sprite2d/plant-young.png differ
diff --git a/resources/images/sprite2d/plant.png b/resources/images/sprite2d/plant.png
new file mode 100644
index 000000000..4c793c818
Binary files /dev/null and b/resources/images/sprite2d/plant.png differ
diff --git a/resources/images/sprite2d/player-down.png b/resources/images/sprite2d/player-down.png
new file mode 100644
index 000000000..d499ce7c2
Binary files /dev/null and b/resources/images/sprite2d/player-down.png differ
diff --git a/resources/images/sprite2d/player-left.png b/resources/images/sprite2d/player-left.png
new file mode 100644
index 000000000..0b8b3b189
Binary files /dev/null and b/resources/images/sprite2d/player-left.png differ
diff --git a/resources/images/sprite2d/player-right.png b/resources/images/sprite2d/player-right.png
new file mode 100644
index 000000000..6c3efdcd9
Binary files /dev/null and b/resources/images/sprite2d/player-right.png differ
diff --git a/resources/images/sprite2d/player-sleep.png b/resources/images/sprite2d/player-sleep.png
new file mode 100644
index 000000000..592435d09
Binary files /dev/null and b/resources/images/sprite2d/player-sleep.png differ
diff --git a/resources/images/sprite2d/player-up.png b/resources/images/sprite2d/player-up.png
new file mode 100644
index 000000000..b4c971bc6
Binary files /dev/null and b/resources/images/sprite2d/player-up.png differ
diff --git a/resources/images/sprite2d/player.png b/resources/images/sprite2d/player.png
new file mode 100644
index 000000000..82eaa0e89
Binary files /dev/null and b/resources/images/sprite2d/player.png differ
diff --git a/resources/images/sprite2d/sand.png b/resources/images/sprite2d/sand.png
new file mode 100644
index 000000000..8948044ea
Binary files /dev/null and b/resources/images/sprite2d/sand.png differ
diff --git a/resources/images/sprite2d/sapling.png b/resources/images/sprite2d/sapling.png
new file mode 100644
index 000000000..f7122163d
Binary files /dev/null and b/resources/images/sprite2d/sapling.png differ
diff --git a/resources/images/sprite2d/skeleton.png b/resources/images/sprite2d/skeleton.png
new file mode 100644
index 000000000..f4dc90ba4
Binary files /dev/null and b/resources/images/sprite2d/skeleton.png differ
diff --git a/resources/images/sprite2d/stone.png b/resources/images/sprite2d/stone.png
new file mode 100644
index 000000000..d5d37d4b8
Binary files /dev/null and b/resources/images/sprite2d/stone.png differ
diff --git a/resources/images/sprite2d/stone_pickaxe.png b/resources/images/sprite2d/stone_pickaxe.png
new file mode 100644
index 000000000..fb813f80e
Binary files /dev/null and b/resources/images/sprite2d/stone_pickaxe.png differ
diff --git a/resources/images/sprite2d/stone_sword.png b/resources/images/sprite2d/stone_sword.png
new file mode 100644
index 000000000..89bb46bae
Binary files /dev/null and b/resources/images/sprite2d/stone_sword.png differ
diff --git a/resources/images/sprite2d/table.png b/resources/images/sprite2d/table.png
new file mode 100644
index 000000000..7b4159772
Binary files /dev/null and b/resources/images/sprite2d/table.png differ
diff --git a/resources/images/sprite2d/tree.png b/resources/images/sprite2d/tree.png
new file mode 100644
index 000000000..68e06c4cd
Binary files /dev/null and b/resources/images/sprite2d/tree.png differ
diff --git a/resources/images/sprite2d/unknown.png b/resources/images/sprite2d/unknown.png
new file mode 100644
index 000000000..6df29cd2b
Binary files /dev/null and b/resources/images/sprite2d/unknown.png differ
diff --git a/resources/images/sprite2d/water.png b/resources/images/sprite2d/water.png
new file mode 100644
index 000000000..2dffcedd7
Binary files /dev/null and b/resources/images/sprite2d/water.png differ
diff --git a/resources/images/sprite2d/wood.png b/resources/images/sprite2d/wood.png
new file mode 100644
index 000000000..edaf0ffa1
Binary files /dev/null and b/resources/images/sprite2d/wood.png differ
diff --git a/resources/images/sprite2d/wood_pickaxe.png b/resources/images/sprite2d/wood_pickaxe.png
new file mode 100644
index 000000000..69e936295
Binary files /dev/null and b/resources/images/sprite2d/wood_pickaxe.png differ
diff --git a/resources/images/sprite2d/wood_sword.png b/resources/images/sprite2d/wood_sword.png
new file mode 100644
index 000000000..09819ae4a
Binary files /dev/null and b/resources/images/sprite2d/wood_sword.png differ
diff --git a/resources/images/sprite2d/zombie.png b/resources/images/sprite2d/zombie.png
new file mode 100644
index 000000000..f154bed42
Binary files /dev/null and b/resources/images/sprite2d/zombie.png differ
diff --git a/resources/logo.png b/resources/logo.png
new file mode 100644
index 000000000..3a6008166
Binary files /dev/null and b/resources/logo.png differ
diff --git a/resources/logo1200x630.png b/resources/logo1200x630.png
new file mode 100644
index 000000000..e80720e3e
Binary files /dev/null and b/resources/logo1200x630.png differ
diff --git a/resources/logo800x418.png b/resources/logo800x418.png
new file mode 100644
index 000000000..ad985d718
Binary files /dev/null and b/resources/logo800x418.png differ
diff --git a/src/Griddly/Core/GDY/Actions/Action.cpp b/src/Griddly/Core/GDY/Actions/Action.cpp
index 289c9d354..1c3d06d24 100644
--- a/src/Griddly/Core/GDY/Actions/Action.cpp
+++ b/src/Griddly/Core/GDY/Actions/Action.cpp
@@ -154,7 +154,8 @@ int32_t Action::getMetaData(std::string variableName) const {
if (metaData_.find(variableName) != metaData_.end()) {
return metaData_.at(variableName);
} else {
- throw std::invalid_argument(fmt::format("cannot resolve action metadata variable meta.{0}", variableName));
+ spdlog::warn("cannot resolve action metadata variable meta.{0}, will return 0", variableName);
+ return 0;
}
}
diff --git a/src/Griddly/Core/GDY/GDYFactory.cpp b/src/Griddly/Core/GDY/GDYFactory.cpp
index 019cdfe04..acefc87db 100644
--- a/src/Griddly/Core/GDY/GDYFactory.cpp
+++ b/src/Griddly/Core/GDY/GDYFactory.cpp
@@ -142,6 +142,13 @@ void GDYFactory::registerObserverConfigNode(std::string observerName, YAML::Node
observerTypes_.insert({observerName, ObserverType::BLOCK_2D});
} else if (observerTypeString == "ISOMETRIC" || observerTypeString == "Isometric") {
observerTypes_.insert({observerName, ObserverType::ISOMETRIC});
+#else
+ } else if (observerTypeString == "SPRITE_2D" || observerTypeString == "Sprite2D") {
+ observerTypes_.insert({observerName, ObserverType::NONE});
+ } else if (observerTypeString == "BLOCK_2D" || observerTypeString == "Block2D") {
+ observerTypes_.insert({observerName, ObserverType::NONE});
+ } else if (observerTypeString == "ISOMETRIC" || observerTypeString == "Isometric") {
+ observerTypes_.insert({observerName, ObserverType::NONE});
#endif
} else {
auto error = fmt::format("Unknown or undefined observer type: {0}", observerTypeString);