From 9dfc2a83ff58ce346abe77cba811d8e1a8502475 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:19:49 -0500 Subject: [PATCH 01/54] Fixed github action for auto updates for docs. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 0f41b8e0..4881a601 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,4 +10,4 @@ jobs: steps: - name: Update and Publish docs - - run: cd docs && make publish-release + run: cd docs && make publish-release From 5bebe12ed0c5729397e5c7bcb98b9d30ca8fd3f7 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:24:07 -0500 Subject: [PATCH 02/54] Check working directory. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 4881a601..63df596a 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,4 +10,4 @@ jobs: steps: - name: Update and Publish docs - run: cd docs && make publish-release + run: ls && cd docs && make publish-release From a662daf0325077d7aa86a608d61fdfb3ac9c7cae Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:25:25 -0500 Subject: [PATCH 03/54] Check working directory. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 63df596a..03cf3dce 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,4 +10,4 @@ jobs: steps: - name: Update and Publish docs - run: ls && cd docs && make publish-release + run: ls #&& cd docs && make publish-release From c6327ac070609ca67be0d94d16e021eaae3d1cff Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:27:00 -0500 Subject: [PATCH 04/54] Check working directory. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 03cf3dce..9d0e72cd 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,4 +10,4 @@ jobs: steps: - name: Update and Publish docs - run: ls #&& cd docs && make publish-release + run: ls . #&& cd docs && make publish-release From de378363dad085e51933b4da2335b15d24cbe932 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:28:38 -0500 Subject: [PATCH 05/54] fix working cd dest. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 9d0e72cd..44c42781 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,4 +10,4 @@ jobs: steps: - name: Update and Publish docs - run: ls . #&& cd docs && make publish-release + run: cd ./docs && make publish-release From 7108a1c0afd60b75c3694442fce89ee815fc3032 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:29:48 -0500 Subject: [PATCH 06/54] fix working cd dest. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 44c42781..e47a2262 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,4 +10,4 @@ jobs: steps: - name: Update and Publish docs - run: cd ./docs && make publish-release + run: cd /SpatialPy/docs && make publish-release From 91d1547f3f205d00123821bfca26fa996663562d Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:34:46 -0500 Subject: [PATCH 07/54] Added working directory to update docs github action. --- .github/workflows/update-docs.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index e47a2262..4ef95050 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,4 +10,5 @@ jobs: steps: - name: Update and Publish docs - run: cd /SpatialPy/docs && make publish-release + working-directory: ./docs + run: make publish-release From a0d8a0c0447a4a72b3f5e203423a736a32d0d7f0 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:36:15 -0500 Subject: [PATCH 08/54] Fixed working directory. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 4ef95050..37e9453e 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,5 +10,5 @@ jobs: steps: - name: Update and Publish docs - working-directory: ./docs + working-directory: docs run: make publish-release From 3834cbbb3df359ee6fab03e345e56cddfc540b89 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:41:40 -0500 Subject: [PATCH 09/54] Fixed working directory. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 37e9453e..8a3402bd 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,5 +10,5 @@ jobs: steps: - name: Update and Publish docs - working-directory: docs + working-directory: ../docs run: make publish-release From 85cdf5bd254927b0069fa1fc64d7923597e39d92 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 10:42:54 -0500 Subject: [PATCH 10/54] Fixed working directory. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 8a3402bd..47290d41 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,5 +10,5 @@ jobs: steps: - name: Update and Publish docs - working-directory: ../docs + working-directory: /docs run: make publish-release From ff3178b4ae760114c6ab9b147ac9e6659d0bf0cb Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 12:07:03 -0500 Subject: [PATCH 11/54] Check cwd. --- .github/workflows/update-docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 47290d41..f76c92d1 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,5 +10,5 @@ jobs: steps: - name: Update and Publish docs - working-directory: /docs - run: make publish-release + # working-directory: /docs + run: pwd From 7209725c5f31a0007f2e5c9bf0e69109ee6ffce6 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 12:12:38 -0500 Subject: [PATCH 12/54] Check cwd. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index f76c92d1..06820d22 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -11,4 +11,4 @@ jobs: steps: - name: Update and Publish docs # working-directory: /docs - run: pwd + run: pwd && ls ../ From 40ff44a64a472b04e6a999681296c35a89c6c774 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 12:15:06 -0500 Subject: [PATCH 13/54] Check cwd. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 06820d22..9b0b1247 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -11,4 +11,4 @@ jobs: steps: - name: Update and Publish docs # working-directory: /docs - run: pwd && ls ../ + run: pwd && ls ./ From a017a8a6fdda15a223d52cf33ba7e5d53bce631b Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 12:17:52 -0500 Subject: [PATCH 14/54] Added initialize environment step. --- .github/workflows/update-docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 9b0b1247..55c93215 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -9,6 +9,9 @@ jobs: runs-on: ubuntu-latest steps: + - name: Initialize environment + uses: actions/checkout@v2 + - name: Update and Publish docs # working-directory: /docs run: pwd && ls ./ From e6e35307de062a75dd022df922a066979d9ada7e Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 12:21:30 -0500 Subject: [PATCH 15/54] Fixed update docs action. --- .github/workflows/update-docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 55c93215..8914577c 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -13,5 +13,5 @@ jobs: uses: actions/checkout@v2 - name: Update and Publish docs - # working-directory: /docs - run: pwd && ls ./ + working-directory: docs + run: make publish-release From f6650eb72d79b88bfff79a51cf92746f7aeefea2 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 12:24:43 -0500 Subject: [PATCH 16/54] Added git pull to publish make cammand. --- docs/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Makefile b/docs/Makefile index fbc248eb..2eb0de88 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -87,6 +87,7 @@ clean: publish: make clean git stash + git pull git checkout gh-pages make html -git add -f "$(BUILDDIR)" From 6e2b5b7bc1647162f016e8397c949de62cf59a31 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 12:30:20 -0500 Subject: [PATCH 17/54] Switched 'make html' to 'make autobuild'. --- docs/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 2eb0de88..7591b2a4 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -89,7 +89,7 @@ publish: git stash git pull git checkout gh-pages - make html + make autobuild -git add -f "$(BUILDDIR)" -git commit -m "Latest build." "$(BUILDDIR)" git push origin gh-pages -f @@ -101,7 +101,7 @@ publish-release: publish make clean git stash git checkout main - make html + make autobuild -git add -f "$(BUILDDIR)" -git commit -m "Latest docs build." "$(BUILDDIR)" git push origin main -f From c7f7023d1f893062ba8270b20dbaa9255f1a5f25 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 12:48:28 -0500 Subject: [PATCH 18/54] reverted changes from last commit. --- docs/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 7591b2a4..2eb0de88 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -89,7 +89,7 @@ publish: git stash git pull git checkout gh-pages - make autobuild + make html -git add -f "$(BUILDDIR)" -git commit -m "Latest build." "$(BUILDDIR)" git push origin gh-pages -f @@ -101,7 +101,7 @@ publish-release: publish make clean git stash git checkout main - make autobuild + make html -git add -f "$(BUILDDIR)" -git commit -m "Latest docs build." "$(BUILDDIR)" git push origin main -f From a59145ef3939695a82f348dd9165e6ba323c39da Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 14:13:14 -0500 Subject: [PATCH 19/54] Added repo branch. --- .github/workflows/update-docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 8914577c..de643f0a 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -11,6 +11,7 @@ jobs: steps: - name: Initialize environment uses: actions/checkout@v2 + uses: StochSS/SpatialPy@develop-clone - name: Update and Publish docs working-directory: docs From d262ad10476adfef726f4c8a0ec43c6057f9378e Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 14:23:29 -0500 Subject: [PATCH 20/54] removed second 'uses'. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index de643f0a..d055d0d7 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,7 +10,7 @@ jobs: steps: - name: Initialize environment - uses: actions/checkout@v2 + # uses: actions/checkout@v2 uses: StochSS/SpatialPy@develop-clone - name: Update and Publish docs From e2ef4502eca86f60d92f14aee1f721bbc5b7db8f Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 14:25:25 -0500 Subject: [PATCH 21/54] changed v2 to develop-clone. --- .github/workflows/update-docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index d055d0d7..54b2b008 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,8 +10,8 @@ jobs: steps: - name: Initialize environment - # uses: actions/checkout@v2 - uses: StochSS/SpatialPy@develop-clone + uses: actions/checkout@develop-clone + # uses: StochSS/SpatialPy@develop-clone - name: Update and Publish docs working-directory: docs From 6bdf5ebfab4e4c88e0d642dcb4e92fe290696474 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 14:38:01 -0500 Subject: [PATCH 22/54] Added branch ref to init env. --- .github/workflows/update-docs.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 54b2b008..a3ef5940 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -10,8 +10,9 @@ jobs: steps: - name: Initialize environment - uses: actions/checkout@develop-clone - # uses: StochSS/SpatialPy@develop-clone + uses: actions/checkout@v2 + with: + ref: develop-clone - name: Update and Publish docs working-directory: docs From 3986e8ae28dfd0cad5f9968b04ba9977241d4ff8 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 14:43:05 -0500 Subject: [PATCH 23/54] Checkout working branch. --- .github/workflows/update-docs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index a3ef5940..d241b26f 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -16,4 +16,6 @@ jobs: - name: Update and Publish docs working-directory: docs - run: make publish-release + run: | + ls ../.github/workflows/ + make publish-release From 05443b707fb187bc0d5992beecba58ba30072689 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 14:45:46 -0500 Subject: [PATCH 24/54] Testing with ref. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index d241b26f..71dc86e7 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -12,7 +12,7 @@ jobs: - name: Initialize environment uses: actions/checkout@v2 with: - ref: develop-clone + ref: develop - name: Update and Publish docs working-directory: docs From 4dbc13b2b52bcc0a733f5d2a747a03770c055ee6 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Mon, 28 Feb 2022 14:48:12 -0500 Subject: [PATCH 25/54] Testing make autobuild. --- .github/workflows/update-docs.yml | 2 +- docs/Makefile | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 71dc86e7..d241b26f 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -12,7 +12,7 @@ jobs: - name: Initialize environment uses: actions/checkout@v2 with: - ref: develop + ref: develop-clone - name: Update and Publish docs working-directory: docs diff --git a/docs/Makefile b/docs/Makefile index 2eb0de88..7591b2a4 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -89,7 +89,7 @@ publish: git stash git pull git checkout gh-pages - make html + make autobuild -git add -f "$(BUILDDIR)" -git commit -m "Latest build." "$(BUILDDIR)" git push origin gh-pages -f @@ -101,7 +101,7 @@ publish-release: publish make clean git stash git checkout main - make html + make autobuild -git add -f "$(BUILDDIR)" -git commit -m "Latest docs build." "$(BUILDDIR)" git push origin main -f From 99eec3599aeae43501f79016d5bbe5f55cfa1be2 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:03:31 -0500 Subject: [PATCH 26/54] Updated publish rule for docs makefile. --- docs/Makefile | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 7591b2a4..92070ce6 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -87,14 +87,17 @@ clean: publish: make clean git stash - git pull - git checkout gh-pages + git pull origin staging + git checkout staging make autobuild -git add -f "$(BUILDDIR)" - -git commit -m "Latest build." "$(BUILDDIR)" - git push origin gh-pages -f + -git commit -m "Latest docs build." "$(BUILDDIR)" + git push origin staging -f make clean - git checkout @{-1} + git checkout gh-pages + git pull origin staging + git push origin gh-pages -f + git checkout @{-2} git stash pop publish-release: publish From e663b1b915fa32965603bf5642304bc92b2a1c1e Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:05:53 -0500 Subject: [PATCH 27/54] Updated publish rule for docs makefile. --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 92070ce6..69ae9edf 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -87,7 +87,7 @@ clean: publish: make clean git stash - git pull origin staging + git pull git checkout staging make autobuild -git add -f "$(BUILDDIR)" From 227e8a3223229880e9c8146360930507cc712cdb Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:09:13 -0500 Subject: [PATCH 28/54] Updated publish rule for docs makefile. --- docs/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index 69ae9edf..93a2b84d 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -89,7 +89,7 @@ publish: git stash git pull git checkout staging - make autobuild + make html -git add -f "$(BUILDDIR)" -git commit -m "Latest docs build." "$(BUILDDIR)" git push origin staging -f @@ -104,7 +104,7 @@ publish-release: publish make clean git stash git checkout main - make autobuild + make html -git add -f "$(BUILDDIR)" -git commit -m "Latest docs build." "$(BUILDDIR)" git push origin main -f From 496884eaf8db82ef3aef33cbfed067b1a5118ae2 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:32:29 -0500 Subject: [PATCH 29/54] Added shpinx dependency to action. --- .github/workflows/update-docs.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index d241b26f..1c071f60 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -14,6 +14,9 @@ jobs: with: ref: develop-clone + - name: Install Sphinx Dependency + run: apt-get install python3-sphinx + - name: Update and Publish docs working-directory: docs run: | From 90700c4ba10629c1b5a8df7cd85288429bf223d5 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:37:57 -0500 Subject: [PATCH 30/54] Added shpinx dependency to action. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 1c071f60..bee9e4de 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -15,7 +15,7 @@ jobs: ref: develop-clone - name: Install Sphinx Dependency - run: apt-get install python3-sphinx + run: pip install -U sphinx - name: Update and Publish docs working-directory: docs From 02601769c64b6a59441543fdf98c48592578323b Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:44:43 -0500 Subject: [PATCH 31/54] Added setup python step. --- .github/workflows/update-docs.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index bee9e4de..bbac2de2 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -14,8 +14,13 @@ jobs: with: ref: develop-clone + - name: Install Python + uses: actions/setup-python@v2 + with: + python-version: '3.7' + - name: Install Sphinx Dependency - run: pip install -U sphinx + run: python3 pip install -U sphinx - name: Update and Publish docs working-directory: docs From efe353437b246bf887742317104da7d363571f50 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:46:13 -0500 Subject: [PATCH 32/54] Added setup python step. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index bbac2de2..68830574 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -20,7 +20,7 @@ jobs: python-version: '3.7' - name: Install Sphinx Dependency - run: python3 pip install -U sphinx + run: python3 -m pip install -U sphinx - name: Update and Publish docs working-directory: docs From 32b20a9eadee7d0e44986fd9950ef4e3f1619310 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:52:34 -0500 Subject: [PATCH 33/54] Added additional dependencies. --- .github/workflows/update-docs.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 68830574..f3c2b980 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -20,7 +20,10 @@ jobs: python-version: '3.7' - name: Install Sphinx Dependency - run: python3 -m pip install -U sphinx + run: | + python3 -m pip install --upgrade pip + python3 -m pip install -U sphinx + python3 -m pip install numpy - name: Update and Publish docs working-directory: docs From 42cb13fbe215942d61e7d137b5d9d4a2ec6fb2d0 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:55:12 -0500 Subject: [PATCH 34/54] Added additional dependencies. --- .github/workflows/update-docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index f3c2b980..cb1c9b53 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -24,6 +24,7 @@ jobs: python3 -m pip install --upgrade pip python3 -m pip install -U sphinx python3 -m pip install numpy + python3 -m pip install requirements.txt - name: Update and Publish docs working-directory: docs From cd33a57f9e75fafbfc96a1df39267e4226f655fb Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Tue, 1 Mar 2022 13:57:50 -0500 Subject: [PATCH 35/54] Added additional dependencies. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index cb1c9b53..8594a029 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -24,7 +24,7 @@ jobs: python3 -m pip install --upgrade pip python3 -m pip install -U sphinx python3 -m pip install numpy - python3 -m pip install requirements.txt + python3 -m pip install -r requirements.txt - name: Update and Publish docs working-directory: docs From 54d04c2eec5b77f09cfafe7270a096e069426e2b Mon Sep 17 00:00:00 2001 From: BryanRumsey <44621966+BryanRumsey@users.noreply.github.com> Date: Wed, 5 Oct 2022 16:38:02 -0400 Subject: [PATCH 36/54] Updated version to v1.1.2 --- spatialpy/__version__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spatialpy/__version__.py b/spatialpy/__version__.py index 11f878a1..849897f6 100644 --- a/spatialpy/__version__.py +++ b/spatialpy/__version__.py @@ -21,7 +21,7 @@ # @website https://github.com/StochSS/SpatialPy # ============================================================================= -__version__ = '1.1.1' +__version__ = '1.1.2' __title__ = 'SpatialPy' __description__ = 'Python Interface for Spatial Stochastic Biochemical Simulations' __url__ = 'https://spatialpy.github.io/SpatialPy/' From d63af2e6c0b99cc76733b37713d40a26f4d4313a Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Thu, 6 Oct 2022 13:15:21 -0400 Subject: [PATCH 37/54] Refactored the reaction constructor, add_product, and add_reactant functions to handle duplicate stoich species. --- spatialpy/core/reaction.py | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/spatialpy/core/reaction.py b/spatialpy/core/reaction.py index e8591195..7d5f5dff 100644 --- a/spatialpy/core/reaction.py +++ b/spatialpy/core/reaction.py @@ -100,18 +100,20 @@ def __init__(self, name=None, reactants=None, products=None, propensity_function if reactants is not None: for r in reactants: rtype = type(r).__name__ - if rtype == 'Species': - self.reactants[r.name] = reactants[r] + name = r.name if rtype == 'Species' else r + if name in self.reactants: + self.reactants[name] += reactants[r] else: - self.reactants[r] = reactants[r] - + self.reactants[name] = reactants[r] + if products is not None: for p in products: - rtype = type(p).__name__ - if rtype == 'Species': - self.products[p.name] = products[p] + ptype = type(p).__name__ + name = p.name if ptype == 'Species' else p + if name in self.products: + self.products[name] += products[p] else: - self.products[p] = products[p] + self.products[name] = products[p] if self.marate is not None: rtype = type(self.marate).__name__ @@ -343,7 +345,10 @@ def add_product(self, species, stoichiometry): except TypeError as err: raise ReactionError(f"Failed to validate product. Reason given: {err}") from err - self.products[name] = stoichiometry + if name in self.products: + self.products[name] += stoichiometry + else: + self.products[name] = stoichiometry def add_reactant(self, species, stoichiometry): """ @@ -362,7 +367,10 @@ def add_reactant(self, species, stoichiometry): except TypeError as err: raise ReactionError(f"Failed to validate reactant. Reason given: {err}") from err - self.reactants[name] = stoichiometry + if name in self.reactants: + self.reactants[name] += stoichiometry + else: + self.reactants[name] = stoichiometry if self.massaction and self.type == "mass-action": self._create_mass_action() From d49b8899f4f37f37c71b1383b48cb148786a7016 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 11:56:02 -0500 Subject: [PATCH 38/54] Added github token to action. --- .github/workflows/update-docs.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 8594a029..a682d228 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -28,6 +28,7 @@ jobs: - name: Update and Publish docs working-directory: docs - run: | - ls ../.github/workflows/ - make publish-release + with: + user: __token__ + password: ${{ secrets.GITHUB_TOKEN }} + run: make publish-release From fb7858f0d318c592e62e186772f745c8137e5e2e Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 11:59:46 -0500 Subject: [PATCH 39/54] re-order with and run. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index a682d228..7470ac09 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -28,7 +28,7 @@ jobs: - name: Update and Publish docs working-directory: docs + run: make publish-release with: user: __token__ password: ${{ secrets.GITHUB_TOKEN }} - run: make publish-release From d5b309066a733fe4deabcb26e2cef569f456d8c8 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 12:02:23 -0500 Subject: [PATCH 40/54] Replaced run with uses. --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 7470ac09..1d57a323 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -28,7 +28,7 @@ jobs: - name: Update and Publish docs working-directory: docs - run: make publish-release + uses: make publish-release with: user: __token__ password: ${{ secrets.GITHUB_TOKEN }} From 95071f6f52d71a6445768a54c772b00c079be708 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 12:08:45 -0500 Subject: [PATCH 41/54] replaced 'with' with 'env'. --- .github/workflows/update-docs.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 1d57a323..c2b8c095 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -28,7 +28,8 @@ jobs: - name: Update and Publish docs working-directory: docs - uses: make publish-release - with: - user: __token__ - password: ${{ secrets.GITHUB_TOKEN }} + env: + # user: __token__ + # password: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: make publish-release From d2712cbd0e39dec2c2157fb4c508dce120014b51 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 12:13:13 -0500 Subject: [PATCH 42/54] Removed publish from publish release. --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index 93a2b84d..c04ed0a7 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -100,7 +100,7 @@ publish: git checkout @{-2} git stash pop -publish-release: publish +publish-release: make clean git stash git checkout main From 5d78a0694f1fe1667398026c80e38e7cf284d07f Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 12:18:23 -0500 Subject: [PATCH 43/54] Added git pull to makefile. --- docs/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Makefile b/docs/Makefile index c04ed0a7..cefe03df 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -103,6 +103,7 @@ publish: publish-release: make clean git stash + git pull git checkout main make html -git add -f "$(BUILDDIR)" From d0a8a7fd120b4b1de8cc752fd25c465bdd10b359 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 12:24:02 -0500 Subject: [PATCH 44/54] Moved git pull above make clean. --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index cefe03df..c9d442db 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -101,9 +101,9 @@ publish: git stash pop publish-release: + git pull make clean git stash - git pull git checkout main make html -git add -f "$(BUILDDIR)" From 6066ca271899cab09f67c35f3929f36a197699db Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 13:20:43 -0500 Subject: [PATCH 45/54] Refactored to use github push action. --- .github/workflows/update-docs.yml | 27 +++++++++++++++++++++------ docs/Makefile | 20 ++++++++++++-------- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index c2b8c095..bc8ea283 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -13,6 +13,7 @@ jobs: uses: actions/checkout@v2 with: ref: develop-clone + fetch-depth: 0 - name: Install Python uses: actions/setup-python@v2 @@ -26,10 +27,24 @@ jobs: python3 -m pip install numpy python3 -m pip install -r requirements.txt - - name: Update and Publish docs + - name: Update the Docs working-directory: docs - env: - # user: __token__ - # password: ${{ secrets.GITHUB_TOKEN }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: make publish-release + run: | + make build-docs + + - name: Commit Changes + working-directory: docs + run: | + git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + make commit-docs + + - name: Push Changes + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + branch: develop-clone + + # - name: Update and Publish docs + # working-directory: docs + # run: make publish-release diff --git a/docs/Makefile b/docs/Makefile index c9d442db..a2462ff3 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -84,6 +84,17 @@ autobuild: $(FORMAT) clean: rm -rf "$(BUILDDIR)" +build-docs: + git pull + make clean + git stash + git checkout main + make html + +commit-docs: + -git add -f "$(BUILDDIR)" + -git commit -m "Latest docs build." "$(BUILDDIR)" + publish: make clean git stash @@ -100,14 +111,7 @@ publish: git checkout @{-2} git stash pop -publish-release: - git pull - make clean - git stash - git checkout main - make html - -git add -f "$(BUILDDIR)" - -git commit -m "Latest docs build." "$(BUILDDIR)" +publish-release: build-docs commit-docs git push origin main -f make clean git checkout @{-1} From 73faedd521302b8a3aa15714b6b9879a805eda4e Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 13:26:03 -0500 Subject: [PATCH 46/54] Changed branch for testing. --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index a2462ff3..a460cc90 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -88,7 +88,7 @@ build-docs: git pull make clean git stash - git checkout main + git checkout develop-clone make html commit-docs: From b1f2e652d6f2332951483c0ecb6350277f16284a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 18 Nov 2022 18:27:35 +0000 Subject: [PATCH 47/54] Latest docs build. --- docs/build/html/.buildinfo | 2 +- .../.doctrees/classes/spatialpy.core.doctree | Bin 2086324 -> 2042201 bytes .../html/.doctrees/classes/spatialpy.doctree | Bin 3672 -> 3569 bytes .../classes/spatialpy.solvers.doctree | Bin 220084 -> 217685 bytes .../classes/spatialpy.stochss.doctree | Bin 11221 -> 10805 bytes docs/build/html/.doctrees/environment.pickle | Bin 492516 -> 748076 bytes docs/build/html/.doctrees/index.doctree | Bin 15852 -> 14685 bytes docs/build/html/_modules/index.html | 8 +- .../_sphinx_javascript_frameworks_compat.js | 134 + docs/build/html/_static/basic.css | 56 +- docs/build/html/_static/doctools.js | 382 +- .../html/_static/documentation_options.js | 6 +- docs/build/html/_static/jquery-3.6.0.js | 10881 ++++++++++++++++ docs/build/html/_static/jquery.js | 4 +- docs/build/html/_static/language_data.js | 100 +- docs/build/html/_static/pygments.css | 8 +- docs/build/html/_static/searchtools.js | 825 +- docs/build/html/_static/sphinx_highlight.js | 144 + docs/build/html/classes/spatialpy.core.html | 1593 +-- docs/build/html/classes/spatialpy.html | 716 +- .../build/html/classes/spatialpy.solvers.html | 235 +- .../build/html/classes/spatialpy.stochss.html | 41 +- docs/build/html/genindex.html | 8 +- docs/build/html/index.html | 47 +- docs/build/html/objects.inv | Bin 3153 -> 3153 bytes docs/build/html/py-modindex.html | 8 +- docs/build/html/search.html | 6 +- docs/build/html/searchindex.js | 2 +- 28 files changed, 13399 insertions(+), 1807 deletions(-) create mode 100644 docs/build/html/_static/_sphinx_javascript_frameworks_compat.js create mode 100644 docs/build/html/_static/jquery-3.6.0.js create mode 100644 docs/build/html/_static/sphinx_highlight.js diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo index 4b0c6ee1..09dbd4ca 100644 --- a/docs/build/html/.buildinfo +++ b/docs/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 8b8c7260a070827b00291bef99cea017 +config: aa9a9a3c9380df45ffa4c7a40b7ba182 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/.doctrees/classes/spatialpy.core.doctree b/docs/build/html/.doctrees/classes/spatialpy.core.doctree index 190a43c23d3018dabc08d3a0a1f41bd0310df1e3..1a3ecd4643bfef5ed7ba1c76b96fb8e100d4c834 100644 GIT binary patch literal 2042201 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

t$y79AB%jEUQfV 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

BsLlZqh@y?>b>B!ILD?;;s64 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 z zLkFVdiO6K+W{(p*!;Q-5;ELLz_4XB=6}4`=KGWGa+n%NjC$8w{X(piIyvzl$74Iec>6+si|6>E=88-pmX&$+?G29HaQ-PHfKa~{4^eoo^`G|a-E-9 zY2PPOuU*lY1!JJSNycKp{u|EVTKRr4&fU%zi{)Y55I18${pSdxVIQRZBx~h#koH6D zG{Uk6n{ZVJX%EolBHO$+W}UgGs^sl$0i8T2Y4|wH+biB7LPliqg=W~jomp&q(uJ6O zzNG@ z0CVrLO=C;)J`7!rEXA~%da5G9-58saHzpDN6bowV<{4LM(>@ z8g@zlaxUptK?@^I-23g>j2_yNyO1Da4QVsDxtZb?AR`a02V*B-7Ff~wYDMv$q+1yQ zpj#O&uGTLv_rDV6l)7~ae+k_xekJHuf<3j|pDRgp+OB6W5Xo-ga({d+!QG_56~Ch3 zR#NVN)VjIJM!Pv)pUSBC58c+{jx|8h|0;K^(RO{JIS(gZ6OE~E9sX|>{)>n0g(&O) zS7K)thw`%impDBfG4Pl5<1{Yco3h5|CRo=0Ts1)j=A?^vK6|UQvj1%gV&7?6ys}@f zw)IvV#;xq%rMLp=bQE7`C3jZ|K(YFMKS27dGMRJftWTGVFP1zn59Exa5c4q{R??q( zHD8FXCU98!S?ClCA~DBdVf$x9TjQ{Dv6RXJq~>EhRu!^q1WS+NGHVC+8&`VDIAb6GLMAT9l;0I^#5CzloDZ?@if7Xobk3p@^5@53!Cex}1u zcBpQ^vf`U?@L*Z-&Cb-eQZ(arasgRx?}kj)cT!0zSH)d<)nmK6)qiin*c_W)(Z zNP(Eirro1qnQ6d*Pa|5uiDy}5@g`*`sgv$Xii_bCy96fTH5T@26AyVAPi6-Hfg zDTx?^d7U(hKAVLi3L1O{JIUJNyTzJpMPj-?C`(j3ESDeN&9Eue4jU8Po-hH`4zoys zhc5^4*A7?tk?G%Mp^tJN?#E6e>=c12sw(HWTJi8n{j8EE zD5*aU77wrOXU?-TFxy%MjWbTv-SWsB%!Z4H8~rTPL%VSCaA$xSN{ClhJp8nNroIt6 zMGZf*csP@W&w#P}mX1*I@XPvH<$%)hmVV}Z;}9`Bh;#&thdgyi$Ll#6XMvYGvD4=A8&YTiaD@Io*)0It-N13*bVP(xE|V~eX9yo;EA8m_U=(9V&^de=JBF z$8;W7KT<}F<6M39Y>o4{Yfxg`odi!a#?};tX11n3_1Yhi#X7{+#|qXdur)relC95k z#)~7H*m{kCE!@kHs~vp!XuC@5`XVI9AomV>d+E>Bs^Sot%vn1&eosbbLuhQ`NLGW5%w@xok+ zSSE&kv4AbybP$Gq1&p1<&wU_r;YCB z)?Z-kB>B5v0O6A_d}Hb;XtS=27~i|$#o6T0SafHMiw!vezbe5Z3L}XPa$}a*!~xg< z>|z`ia3H(yI{M?v>ge6rb$LRm+rwK;uS2u)ATU-RUl>sDJ64+M`od4&}1?a%2d-QblF`Won_mT%f=~{w2^U=BSy82N#L9MzYF- zcy&@Y>ZAkb#nPUBphbPYA9$ZQ2)q@Q!9S-Tz@H_NSDL%>()i&1j0qY%F=OJ5(J8Vs zCgkK{JsD>qzGs8PK;vhtL)8Th_*3)EN21^d%HTgB(XUywv<&{<_%!|uB{@wFF3Q_t z_J~$utqT#Z1xp_fC_FoR0QXnQDA9lxGD=Pazz5AJ5xFC>68`rvoJ=bD8~o}OlM>xx z_`UpVG3wzNwSe$PB9=qx<4yv~MXB}h9d(vJC5uDg8bY}73NF8rSBGQ3g;lC5h#%7E zTAmiaIkvgFhsE-UdAM6C;D2iZYS=~b`(!PiT$;VG(+Eo7$2K1LuvTASo==##NrFhvu8WA*ao4?vlQ%jlz=$g)O5CT&yCl>*rv0EI!PAA zQ-&L#8!NO~!44N|K4;9+CbuZw9U{E>ph_q2>hKb@8KI69qG{<7%L`e_nMHGF(oG<> z>mcWeE9p*~o!)>cPqXb!{9c^M@E`KS3wTi=>dtoK3cMQAxPgTAY;$JG)sxNfNfqDj z)aq^Qpww@7mZJhz2tXUI#FhGi=EkSOvQ3^3vl!xv#R z6%JMSUTLUrab}7`O)~TX0d=^kDMPI%K;w)IftNt@BpH&ZvvMzbTLa(ly2Wq3(6{%q zP@2ONB6_tMA{x=y_wXtMRMJX=`r&>+{Qz`|`EY~K$d_I1?`28v$R*z?I1h8#U3@RevkyDsg^*e zVM)c#Fm{rrQfRWI!o`wLDm-llx*fzFFNx!SQ#r>!(6@uE&SE8E_LBuG`KW|%On!$p zecTS>j$-ZkxwnHn9zjaE9prKcc3Y~+ zo(ZGUi3a=MX}F-0a}Jtl-`G>aEsVm*bsqR$)^NWWP%BH$#jj`$w>ZEU^g546@Z}ey z%T3S3y3WH5BIyH|BeW?P?V)bUaH_iX8BFhS17GUlf@w^;AEe#K&Uf|+_U-p-kN*Hd znp)CU6!GJm539aI#>ybKduSkAUqE;lDm=S)kW}FdJ~XU_2<@E!dxa6&pTcl5LVG{_ z@=Yt7J$%^*zLp!s{t8_2D++EUmwg;TAK{?bMIjPn=yMN zXG;*k8l^iiwSBNX(kOoe$-3Z!Z?k`@%5gdB(i0BqHm>Qesx1?XSa#Bi+6nlfnf0CK z73%@$@y4o}YEoNv(n*)mQQguW(MEIqaX<)D(U;%pakA6H;dcL>9ypE5-lj8m@O?{Vn^T;~Pk81R6`S@EXm0s=V^^Ux_4Ibim}3p}1E+8Q|# zgI$YpQ$O%NN5Y_w&bRd6u>Z>V;QrJC8ay$z;I`-#*{KC`^03ELq(pgJJWluW<^o*C z&;az^mfdICSgvUV}%Q*|L z_#5xvp{d!7vLhn{UdHfK96Wd#!_S?m?VZUCkCb1=@M9P&rcrF3u;L@Xhpt9^B=Ir^ zL0Su~m0;J^Eb5(!r^ysCpcbf+`;MGW+HgC+EpcdGffzVps= z(Wl;_$qauJ0k@(WWFU`qrYELq)3Z=mAimh=zp~*x9*K`D`@TMc=I5Qg`hm4=u=K6A zt!K-JX^tU_(B%!oFv0NZhTQ-dV2`p-!k=3)H5t#9kE_ulw`{j5@A7Bs(=vVc!b#qT=|_q55m z|H17ZH$*5oaYG5WBl)OOe!XZ~nw&WFkH7quNJ&l*pKnCNtV+6IP&rM%bc;2 zWa4oGu5eRxFV5XD*2CCI+D0MAVp$hAK9=>gDgAi7+b4-nPbtAufluS3QkuZy6S$w! z1kk80^W&*r_)!U?QksCa=w-~R@50ApN(&#Y(7Qf$KP>57#ar}P06y{w;S=r9xg1ZG zJXZY;;rB;HF@9ivyXxD!sNw?;#-cn|(4qVV|A_GC)Ea$y9NYKfwtqUy<=-)?VN&feh%e0%5wSu3SS z93%0;{fMW*6OT9!i%yY!#33i|lO%n7M0j-+{6O{O$rAmVHA|}}FNja$r?Q+T2N&gS z@wi8;#MUQKY!)g#XAj?|5zfrfU=|L5-T`0_dH^JjdSvb7H9#GC26O}b>bVENZsp`s z-#U!CNk%H5`dy@!AQ)TScZA*Wc%|PF&Kg`t7XLZU;LhE}GA=vJ4H_(GHI9%mM3<8?TeVjiCs5Qm$Z{#|aY^|LUx>EEF)k~Nb~tW}}S^6y-% z`TRRio7|d7cZl$ogFYOECEihjHpAU}t7uvpmiUJ#6wTz zF?~|0&_kS2;}8;)KUhE*ZfY`l>w7@2jIj5PY5?qbQuZ{IBGM8<&kBz2AAVTLm9Q>LBpFOmDps zSx98#ieJ(6RuR(}v<~9X&@39mXN)4RCp;Dw&DtO87p&o_Y+L4G{ZZqGMPqN*JCH(7+BML)tcfxN!>CE zK;1H8+>M~T_~COfr&PC}$6rF-ieCxpmS9gUe&BpconzwJ9>mFPxcC8IOK`ufz!kru z;8s)oaPgXR@TyvN2ARmW9uxG$S5D!U!cB9H_05US zLVWb}kHpz58RZ2MTf9@sH}`NP!e1bP)3_qwQ`%S{@mmE_1qqxs8HQ3Iv1b$^@d63G z*47?4j6BG=Llwj9w645cRw>*Is_PZ((M#1n?;=oHx}407_Y;}WIB z?jDs%?4?fwcCs6BR;>G2i_J5lD-3YdQxYk(IX<|bLNs_Hg>H>bkxd~vd7l*8(b~TX zw0RJ}W~%51njUvX*At+}dlTvLsrcZ2deGpB^!Q42ifnqw$#dvY-WL5Muf|`1vZI3m zJ$8u++TB!kq=729LcapjU{F_x%Z?BR=?5)(7yQCMx$FpkvuDHGGGOaBWSFEJB~@H@ zv;;s5#wL3MmL2VZg9powmO4}0_Fi7u(QYtSY!9}1!isX%plg2Fksz%oI}+p`pzH`K z5VK&l<2W3v75Hykq6F|?*%x4+3w9%j2(aD7NfWu>io{$GBt1EIXe_1_qf?&ha zx}sADCmJKQilHY;10utx{o^Vn&G{Yy|{RULFcFkg?oISU7LLH1swCbS`_p?fxprimLSUvQ) ze&+no49vFfg2oxgsBV2k4rasELqG0knI77OtA~C+zzikCE2|#b_T9F$g;^d|GfBrb z&?#y%n$<&@G~5ox?pr!S)kFLDv&sRbY+3GS*64*Xnre;0iT+R z-}DSPSQ3CITp*hxbd;9r%h?~klQDTPp>S&Q$C-bYlm#% zy31}`+^kPW>9wnl9J@xJm%%;Uo$+>au8a5U^SMNAbXGj5Pc8S}o$tnfDd^!o*51ko zvUrGi`~3np1>VNTRq^&0oUy_TYwV==3b?{e2jT56!PrT>t&n5!wu>7dZ+qGt+b?fu z3cI5wasPWuFqzN&Yd9!g8=Zi!?>q^Ze--?Dy^w%4P>P0Ml$hNpj)rT^8EDh!)Vj0s z?-{sxqEp8EI?7I5uODb^EP0R3qhV&jB@(|chEASzN_?Ef?>ky6=kSB`RKvQzGkzRa zvL^Qxu!frsA_E7&*hw;=5N64Mi!YxHc-kD9&m9_v?s!SuzjX-?3)~+cl@cqTkzn~y zVkHJN%0jVJIoeJbl@cp;G)Epg46kz3j_j3Jj@s?H=5g`b?&dn+dh)SGXqaP^v3ogB z^o=*P%F*khVj531yhin{pisrPYR(7IISvb6IeN2NqhvcrH~H(*o>wA*<_Y@0h_*&9 zLtf?Ro8$2L4@+M!=hO%C(aO;~;#2rhAg2hcmM97;svP}XKY-sOaZ{St@$LBFe#Fz@ ziKo=Rh)$7xN-ZbvlO%mqjxN64wlEyg@ndK!=mge^X3f&d(LLhR_}NoVlY@)$ws>N% zRbuPeNWF#1Xx_uCKJD{b-1zAXUxQgV!|wptgP!4w(|TDsx(cWxkMU21Up+T7u24DZ zTZd6O%18xN&y#ed9QP-G6Z4vBxP8$)mrW@h9n$F94t#W+#hoM0%4$b_v=Cb|VE;@4 z39vuZ+R^n{OQ$2X$781vmO#)aRUN54K;PTEHVX;l_gw{@JboWO&hq<;C87znqtA0@ zadf}KvE=>r1jON{ruUb7(smP!ZF+yGjb!bpbJC{JW_f=u)_mTdr%i6{s5?Y>(?MlU zLFrBj+6;$pPBbkIO8-ODj(!4QH5oO`7q~!T`j3hQ7J_^D*c_`gaGg{;`b}rlIE2LH zUlS09o0?4CdJQzrIQ0A$G*4o3g(i#1T`c*S+|y>D+EI7BB#!@32@dl){(=6?-0ttS z88plv2D9%BorH#8RQuiyH`k2M7~mU|-+_{Sd}hua#gdxb&&(Z$AfPC8@sGjm^fEg(hKuraa)LAM->5Hm?c zb|_hTK}6!CQWS7HLGUOFh&EVa6!4OSQ7H<@W+w;I;!sn)AA1VgB=pqJ2~`^@ug3SX zfbLpAt*rMGzoG?nB5Ju1<<+*Wu7j4L@@l)i@wK-=+_HjV;^35}<<)_n{gzj61_GMe z(N+-gnCJ6V-=Sh;kdMo05L>q*v7*kK-|eCllx5WAeG+a3Lx)sU}tR4b*wU#c64$Ve$d;;xs^kH zk%R^&GcMXjGvWUb6D2X>We^xyNs3!xc7c*oM)ZpzBy=@ya-FCCl*?bvXKQYnU zSAzTq_d9!HJ)3*`$k!`W$ec|Jsbt(FJs4PT#aLDIX-m4GWJ8&1ie#>H^&Gf zjLmIYH8DF5i5`^Rq3|W;O*SHmh+TG4f7)+PZ(~lI2)xx&bG8D{ckURkTGvZ!JsO9R zpxwbD)LTR#OK*(+(oXqbxb0pCwgt-|U}_mW z4w{M1m+|&KwccrTR@GL4782k0TJ?n44Xws__X&b)Mj@uNEj2NM1s|Xpc(=7#koCAk2t1pP0My&=E1z1In%M zkRqM7PCB660y`Kkj-u>v}Ezg$bvV4f(Y|sS{c~^Mc;!PPtbW+;qIM z2Xqnv%B^anhEBl8Wx={nyMrBcJ%t?WP{qZK?@-0lX4fKxwQRZV!&|zNt$kX%mf#4RQtTGlvrKhS2Iv0>Ef>Z- zj!LmxR!uA^eL8iW-tzjy#OQJmhB?q>^{Kf{#ttnVBpv_UFWhJhhH*Tp0*Db$YENNB z;~=Bsv(t04GoV{L>_=&1duuU^+)c%AO~xk!noY5>u^5j-K1ucMoiWI6CGjOuA^ikx ztS`~)l7^}_(+jV3!dBtc(w_N9FaL#V2|gDmV5|SDU`-oS=4QfnDcZ2lO>B!ctj1^S zIS7})#jtJI-gb(I!a-6ES;3UO3LqWKlodv+v}XSu29wt8$KV$`i9Nxy&)nQP6Re5e z_6lAj49fTdEM9}C3xz=)`}QxVOiXmZ2vJP70zZH|)$DX}V^dFM9R+W5W3{u;a1pJV zo!VS`_NwMYV`4>Z-CScF!ahstGZQuavCmq)-Kc>8HYREt8XLihsLjHT*)~QWtJThd zDLb|4`X+b`<`G$l60&vL}Nwmf<}EDeSyx3+UnV9;CuLg zy<4xHF+U@ouc(FpIcuhgTW{^OStxd*K~9~WpP8t)H(3u+E-q|NH`dL8sE~Y%s;LV> zq!oz#rYQL!L{fgy(pA>3w|vmtWypOsA8B^`eHI1C^t~TCc}!n?Z0_Nurth{y3%R3$ z56^#V__lw)J!V`S$OL{6bc*`YMj?K#3A`hWZJNNiLCEAe#{`y0vaYG znGfw}nKVP$RR`vWNSGJ&wqO8pbU#2Gm4WM44H{?Ua2*THtH<@4ewLYt>+O^xVLBU6 zG`TPD2ZT$ZQz}>IV)_X~!Sq%AEHe?)i>01sH1nSt$It9%@}~_E$IluHj$hf&G81vU zqqPSzs-34A<8SW=l-q`g@ple_@qJ@^KI0~D2vAC}GEhlu@c0HEr3+lTbC%tY+(U|Q6S zcKe~m_hJ12G76oBwdbxJ1mD}Bo4`w!f9R#2*3VKCalQ@48`Q+&4?XdP{Y-rR5OMsN zJRCzn+6q`BPE3!+7qIrUIcY$LP9xMEJSn>UE8(8SJtc~6qc5Ep-TsDXTJHRBdqJZ+ z-=66(kEp-(s-Ba@Cgk=%8#`sW{VOaoK=5p`-mP8TP+>5h+^-7tJE{+Ep3t5 zE)8(g7+JawdRMt&K^7@z%~)WPjr}RuGZHN~G=nO(+!kL@Z$d&O8*TijM(yj9QHv%f z*=w)CPFeQaLE;Sj^mZGZ(UmLVu#0j(YH%LioDrY?Y#RrF5}){JnUA;Qov4_KQzf$BRT*hvE1*+M*O_Tyqls-XEli`hwG81}n6$8cWBeG-6w|;KGR1ZQ;48}%dkhRF zGsP~4Un)~9#O$0rwqI;jMm`xM8qmKR;yf{*Z0wYY3COmp38um{6s2=&vWP)k$Xkeg z<#yAIx{-imwQh^9nUrW`Ee%;v0cYbHXTwcodQ#T<$=zSp&uD5U%{ ztre-qPNf}3B_@evBYtY|giO#AxkW;YjkavlOwY>7+^?>lpM?c7&3e$ulT3t<&CS3Q z&#`lBj&gR%1bpyn`su29|FsUJao(pCrCY_S!%a>BoHVkDlY?!u&%k@p{l%)dJ z;h_fewjsktzHsqv;@QVg#@2NIbryz*?!OQeiX)Q_vk;jT)7?4_q2xL1nO@zFALxVr zOR!TG{jbkgbG7RV$*Xv7>(-1g+r%~y+8&C|JSd65wCI7!=rdJg>-|9U^o+v3U`$e_ z`vLf37u(%~Z6i{K?MyA<+13D+Zlvrur&m}U20>0SQWo4f)N;2pYv0lqHyEF+T@Y0C z17jYaSX-`(xTGC%AHi~ARxox%R5KN8MvgghaWq9FwLaXGOekYNyb3#I>BAF*C#6D= zSQ0bCu}5p4Y|5Yuh94>fogBt&UIn-Y)GqPc>q; z`k<{LY{UeLSN|p?)oJRvR0WGy|D4zsqm&xctv?~s7bZ$6uad&jVTZfzYdcU=(XA{R z&O(6ldjNN30m@Mzjto#90l!p$(!=Q-o7_7jR?EfhX?TqbV;1oJUx?(iu;j%jY`Mi2 zr(k5V)`9CapaPT>MU6EKhb24BX{ZpzTDmd#jwK!@c53sT#>V-nT61G<)9ie0vVIj* z!!4l!rZ&~Cf-omuP1T&4oA2T{(5fx(gBYuw(!OGT8fwyUoH{h=bn7$tSu!YQg>U(Z z8)fJQ2_6v&=~sj9rtwbZ)je(_Ox-cJ*X) ze6rT9UkTIHmtdYDFLrLW)9k{h0GElT%W8G3n1$-xc74+d_%%^$c57{!LkYlcoSKEK zML0^GZ*ZyX#jF2s{%H*W{2mul0b+c;A+ ztt8O=4j9U0x-eZ4RFc=XVy7&5U2ZZc9UG2zmU9U@ULHZ)D|2r~4^5+wWUYp1^g)5m z_`)eDj0>-rMpghg9u)p|*6N5>-^5N?w7NvA6>I2)Uo+UGv0XC%E2z!KxD2W@1Qlqa2JGQ{I8+{d{4G?zS%ZLw2 z$R@=9ihK&?YZ%tL9RYH+_3E*P6P`MTzOtl{CD5~{% zX^;QZtNx;bJR`gFUg#84M`m{C-HB~6ZmQAP`V7LgFmcmeTwV%ibZP(#0n>K_z?B6| z{|tl4faz8rHUg$5<8q{QHy3&%bCZz>sJ$KWnHD1L9YFC>d7UR*qlcG~aadG{GD}iI zOU-IaU@7JmYyYe@lkc@Jb{b(307)y2Ypo+173@txy0O(# zH)44VW^TzpjVxS!shd%aPKJ+V<*@$X19v&C;f*{zYrSOM908p?fh~M&@{7l_u>)KC zI=ha9j#kes8*ik!^(<%hIJZ)e>kP4ya8uJx%MEg!4P%>j8fpe_kV~P{@)BHZ`s_GQ zn?o}gMkCK1C~jO)KxJhK@(k+^B_z?h+gmg(4|Fj2z)o4B?3A-9 zGg>NPy8a*K&v!vU%aT^p0g3t~FU?vSN$o8Hv0*HjyxzJT8i!*i1)t>Q&^(FPHwz$q zyo_&5azUFt{m9g8>-I@v+nWRkVLTXYi`0Kdj zV}ZAtmwyKoG5OzS(6~GE8`anMQALTY^lveVjD*6{i`gREDP+h+YUjp%qx~EA&C;In zL?dH|kHnA>$PRfBbV~Jdwn=P@UXI3YYiopSVZ5Au)(9Wm&s4z-5e;j>;rTf*No5Yt zQGf{P@T`JgDnlf|6MAl@uL5yX<{V$2L!KOZIYyF8G`rw}ZiI&rZ8-$6R@@{37 zlWthfcmPH3o7akD5z66kj-@IYOY`%o$T#54vC6lFJK#!PTv24gFUo-2M-o&+_o^P7 zwS4lbF2qhFEOH>(rC!zLN+Fq<0^)FsaG+RX>@3M7c9|PJG%94u@(2v=MHZX!MALsN z3jt)XO+qJ+n}v@}UMh97+|9ET7rbZXchoDs(Sb6~@#K#ElUQ-MscE9-x?@j;u}u>d z^_JHiQ)su`F&FDT6V}sazY>#M)@ zs_ulLOlA$!)^Nh!hn=z{|9td%iLVXmHR{_6FB8k#hA^_m&fQtqA)0?mP$!N^%40x8 zR!sAZJcgfSt&X(*53y4g?Ke5TL8*H46kGX9+e*iY<~a+!NsaPA91|cs>CX=!MU4Wgkbl@uC zSOp5&3R~Y$%h{&0R!pXD3p&MI_Y7e!#3pB9>?E$-D1h)8cKF8BRnTUIUCvg5V=cGt zP)STaUV?{$($jLe z`g)&wX@0#=Jrr!?P4u8}wzsayRAYREtcNrbKTgU*BbjNdppz#eiH}WA^tf_%;>UrG z%dQ~Q2xT!zX{u#nodZc+CMfE7o>*15scC%XMjbDLu}$L>wUsyOC{b&pNmLFH6`d-A zseTqpa}+P)v8R>ZFU{*Z;Meyv@wLz?wj-JtZcRet^e{&2$mbU!& z7xc5rMD(U`G{Kb8R5Sl;`vLk^=rkSvXbG~l*b0SA0)>Mft^ z=V`MVgUw21^{c!!-P|eS&J{(0k1e5_;S%EJm*^56B$`$d`Tv=N+^~K%A|F4-PFef( zBTw;@;ym7&6XW~?kE7}N*Q}KjJ^v&yA4k%4+W>a1^1>&>YSyKf$Aya#%I z`Hh>e-#j|GsF$1+{PHYBkVp3tL9sA#Gvv4scz-2~oy4p!6hQc_FMMOFDQI(=9eD2# z^?I{*XGju>n@g}}hy-$4mPo__pm;n-Te9Nu9NW^2?}^6??<*3I$M-TG|1DUVjK_;# z!;i-wg+c6gqdtyzJf()?mpOLCv{Tv0;|&mvH?kUev{C-yiN)_=E`!4y_Cw8{e{clA zmehD8{=Ze<-nkV;;(1xcKs|4SG{_hV$KW-Hg&6!Vfh8)7!9N_pH%ApYK0U(J-Ok@&e8y+aX0z}YDT z%+Q1Hmt?J)oWI9lrx6wxkjm2F`%5(K+}Jz68M}b=O~4B*w9|2Seq}~(_*rSxojgg) zL^HG&1@4R|nq_9PkjI%3(8&{WZ#iRm{5LzO%Qp$a9fcwxnis6_$U9MaL%pJ>I#4*8 z*|`9Z!tFPR6@{CcCTDKA{pm2aX>y`s@`l?Hf53>ZHZAQ)xcz0&JYCvpp)`lbz_+H2 zhTCuJXW}=B#ie1mbqh4k2)Dltn)i$0V7UE1`dMWnddvBlWVXDaX8bSp1MugeQ_LhW z89$dSUm1ifp-}rT`dOtU3pi?4T@IM*L$h?3A@7KQe(5lW^(m)r~gXu{$x*n6NIO;A?1m z1COKWxgu-jM9<~WDJFylJrPM2(=#K^epc4%$kaLmJ7v-JEXO})VN-TNvV9ecvFGU4 z%aa#AfWqvRLzJ}3Jx=flXfr3ij?Ybf=dsVAlN(>}I=#ZOJjl|E@%5mYq?TvJ*V7hP zj$tjz&t8y)mqV0Cb8Cllk&?8#JXWwzn9PPYLeZ{R8IkGrcFSF5Ik0Tpi!bxcW|?gkR!n z4)JUFarGlHAl;d3j5iyd)Uf&?j@jUb)oHi^qUsOP0Yiq3{$IQ^aC>6~9LKPpX}(+r z*fsgy7SMP={UFu1x3;2yy26u)BTs%t9s6yo-q;^uv7hT$y8V1vM~At3?{?qQ}9cL(JlVv zD7ul1&qAR;u)=r*?A8#aiD~RdP!OF4v|{M=%-8`+F}?;ULS_g0kWQ` zku}_pW;`ov(d5!S13Qhdkbo?fM$d0zs=2XqdOo&J>iU3Z=d@Dk>O87ZRL_r$TQV$G ziDjxQ1x4XE^|xk{S7hOfGa8_iCt&^(XDp9HW=Dhfb9OifExgT?HPfqkmjgkZhi zG|mW?e;bw38*nAfQ`>hMdz`XppzTGev#8_ zDBCK{nzuYFfStCuGW=>uzHLF4T?S7kLd>En7a>WT%C&-Z!X!2}6_o3WRZ(g1`m4!A zF@o1$!cJKVXiY45&09?|EqtBy!G;~W{&f}-$c6fapjMc$ruHgPT7}T{{V;YCqy9ty z;j^#sjj5WT%_Hs5bw1j)EW4v8iNX&{FlLAXa#)rq!~vkdHODYGo)Ygw7qoDcNHe@A za4lS(NZ=aZ%fR)KpN3x|a4mifKX852`0VstbE>g^uHBeRja)Bt36@gTNZH*2M_q!UTaSnc7-M@Iqw`Vj&8A3V>W$6nGW}lTqNS;g^a6 z+x);`U_XO_l9|L0Z8ItX!KWcs6XU?&Tm#>ohEH2#{?62ttg3~3kKl$Ac+$X+Nki?D z$m)?F;_j@d&CkI{ARDzVI8{Q7I<<-B#*OnGsLz0`txmVy6tx47HiCknVk_7v{%x(B7;dwu>^@S;qxHSpia%4E#0l4rw&4qmh*wwwV94fv* ze(Bt}6<~ALddb_o2|FoyfnB*Yw7yKl54yAPnfB%^Tnh#aF224#0lYXf(U=+EwEl{A zeQuJ~d2)MAxz}c`grWksLZ`&204_Sw{&=ovS{~oYhzfipYjs4Y4`Qb*IxXtX&rLN1 z75t7XHPC4PN-|)k^_v-T@6oiT0gUS28+HEzyeOk7k^kO=rgV7#;<94$mwIA zi>r)?=zqmdSwweAbT4d9!xq$-gU#St*ubtCZ!}=%n4Ry=&39`X+l?pAqr74&k?`O! zzi7G%8xm|Gb^3;ywAnly)asdq1IZ=25B^LJBFG!t13Ja{z~sl)4*+Z71B!w-wl|EO z#EiQLAbj2!zA=dlZBDBK^;$ID8REVTiNua2STj5_Q^VT20l{7v2lJs~Lm4X}TF~XxKo?xjNmxW>F6WD2FzIr> z5`HO{vy6+_2~A~Yc1xK6;1FDiv^A`oJE+qw)6+qL7t+q=jbQuMzY4nK!QIzoh#1 zhK;{LRJ;bW^&^CMVN^Wbz#XPiP`hh*3)=m&0DooL{ckXs)b5M#Hne+$ZCJ4XM}(zXEfz&@`GVcsmTw)UqX|MUn!bg!aj&5Kh0op`ouvW=KOJK+PpYHSff9o zT8-|Tx=gDdT+r&pQ9PP`B#Khj?j@}>Q=c4V>bQnKLG|q|1U?7R@*33ET7-IGw7mSb zvuVf|NgOU9&@dM?{V}kH$~1ig29uh88h$A|zJ!HX+b6OyYkbB&=)>cY5NTHY(Wb^H z9HtxbefHKuGEb2D&7gn{e;js_Hhf#HG`?q$=4Zr!=4W)}YyKY0DK-Cd@R!j1;#Z31 zm#`0_`5$4ZDRswQasbEuZq&4K>za4qu%@r#E2x1f%QQS)?B?z5(d>JA8?r_Zywyzl zdSWs^lg2gqt5x4hJ^&q9h)}xyhGH~`t@j|b3!}m5E6V-_1#NTVHFor)lctrl!_{FYR(6#%_ouqlaepZxTd)W)EoO zS7Ilrk-w%^l%$av0icl?E%_SxzhO?Pk$;Q7ghm#>QZ%xJeGrYj%3xxy%}!Rxho_m~ zYTU3ser&atw=rXxI^MTnaI4N9ZM=sMU961#FExAabdMAmKYPY?@e7Ii)tf6n_bA zEPkbEV+s2p+W0twk15?aHMqSpO&8OsVNHBdwVGJXSEh%Hf~*iA^sAZVx?2%Vtb={8 zG)vACOZizcu7RJZ`u2u~qe1kqhOhNh1a)Eb?_P!NlPMn5z8cVi_Pr7SuT1;C1O}7Z z_g46&w6BjtSog-5kTowO7c}n-;yF$89%^b{LQ#p{&FP|9{7nRtpTz@OcN#lMt^0bl zrX;P)C;+X?h{@NwABH)l*8K?n5?WXMO3}I!_Cd5RpDgl0untD2D&K^Y#p2*W9W2En zmhy3!C3VH2N5vztj$(-bAJ!DRu@a56(2VvCViZ54#dYadRNpF30euS+TF{6tEYX;e zt2I9D>b}zV;1qhnr(KQK8Y%ayg-IehGW7krBY=}%1~u|a=oCBt;o^pSq3ur-+hQSv z#&YW?2-m{w2=*bShbF;|LBm_v7(Ng1SGFk)Zmxe7$RKH`-6RmSzH@J90c1h;0_~mwtt0(`bG4L4@3Y$ z4<^XqRJgCy|0U}4IrLo#5NG3&M!|_$D4-nURoH2SMGhppv;g1|txIa|^*X0g!sBVP zGZRg$OA%M+FmCj52eXE}HK#4|nCDvqRujfHQ>9TMdGq!a zTCIyiT&((1sXc9^c>r0orR<|o=MEFkJf?iq(wU}9Tz!!#mW2OwMvH2v}Czwy3(6kjx_; zu3!QNFVh$tuA?=dwR*C|+SqA?g$iW1)X_Q%^+dtNS`G9*gNg}+cjaY(a>pvFlAfKl zLNd9Y0i8U~6h1ahol<9NALnq$Truw@(Keb-U+K&p=TmZ_UMAKNZfcs2xh~YJU~JQL zM2+Hgp%gML7s|z@&$RTkIVgokG}hb^;zk*HPfsnunqf+!C?uMav!ZDQ-qY7$Ad?Hj zf=wC3$={H$xCMo`uu= zM_zk{mdcx7xPfNvvw=XSoY?#tcc#u%eS4Qymtf(+uIo^3r?BFBRqh+@TDfoF3(9&F zjgJj#O&Lzs<wx1m zbRh<8zCdGhxX#yYSr{Pa>rL2cgoO=cy43l4j8Y;659};Z-Oc)xea02!igHiP&{uT3 zm+?fC{v%lnCu{Bl(8=SI;bU`mDD}zqcXm$~2fQ_vw$tnRiUUKOmB}~zqF7J3scD_& z`et8)u}$j~m5|prQ%JRZGZ&{m>($d{St{pf%(ae8~)i&*eOe_PZoQid%9I5!Gif{%d^%^Qhf+?irFQm6tsR0B+Bs74ui3i zq~JgSgpbSdjj3Ir%~9l|zGn>-A*Sx3{i3*Gnx^=sx(VT0824(aC1o1H9a$@lte%$_*wn#gDuK^O0Wo53&|c{?PZZ(+Eok2w|x|bUYnKb=%_5X)PX2 z!JX5Xu%Z}*Nm=gl7+R-z9{%U76_H8wd+6kGbnvlhij+D!Tf>#ztmMUSjp>~~Z;usc zF>+XTfKD+TXPRoc4$H1EwrQ%NczYcdg&fOaadG1_ou-YGGTsXO%eLEtz3VVcH^wPo`U*sEqUm;^Hr*IGyxqH&TS`+cZg&z8tYK|& z3m9(05-vc>`!rI9YPa2+wQjQ8?!itYEEgbtrFPqKVY|(xHiaC^Y;$qrGuu3E4mHiT64Gnw zbO(ytKV-Fis|0yQE?(Q+TnFk+J{A<^o$s?{ zG*$v^=l3#%sG5p7Y^jYKY!|7%z4NOx*c8It1P8%#f{?&{7N9>j(r^tG1v8Otm426=3Am z8Y4wZZM4D=+nrhKCR6Qw*lC1CBE?iYCTyxXRJ1HLp&&)mP(zXS8fpqTmZ9e2#%HK`+Kifp zT9oiwGTmX~1`nBOpDIC}VWuH7Cz@&R5lzdbue9EE|1a9C6{ax)N>aBkcFK~vqlCk3 zW&|+K7c2+h*sPV3Kt3Eg#kO;k@mqfeqGaR%91mkBG5!$(2p?nP8&fern}NO1%X3uU z-sKfIF40A~UQE{ar!=6gS0c;{;~vo6H?d^}eFY71!B_ZaSV3jJ!tF4a^c6k;zm%^K zWgd1Ml2{i#b^IDK;~i|~XCny`y@+G!8?*2&$f;&WT=Ee50u_9W7*B#_fPtl;@BUgs zK2G4WGPNZn;BhR3JOC;`s!`dO`;qWT-*03spG=^yVkbp(*x^cJ#D|~KAAz&`X~Oy4>H&Co#&HskokqIW9J@Nq79F;ePATAhk zOZ_c*_X@q%;&dfY!*p?MDUX|PSE#_{xm7=fhyqXuAb|DWfgKEo`rqF(;d9jA*bgCJ^U|rrJ^3RGVmyD^ty?JMYxI zR$4z@wG8|l0m)j?mVtnQHe`+m+`U}mZdkV2d$Lwed;B}G(+G{6w+*`cS@aw(eA zMN{(QS?i%)`J>ROYy+oV8JC{8E5A)Nt<)m>e%9)UTHnD=S=8G8-1bDH-I!PnLKrd3 ztY(@7e@q5)5c|xU+%(frp?S@;-@=PBDicHeCZQ=Y1Y$RfA>tMnnQ1KftdQcJ$V_8Z ztBLI~(-wa@Zl>XTX{N2fU&2fizlLw7oy@x>l~?II!IQs^b992KRvdi*bL~J8cOQ#E zUNG4n5^l|ATdawew9|n?{hDs4sJ^|+Dm2}E$Q{Uh({Q%dA;=43zELTDgit{fP6J#p z;ZA@BRA$1pU@&RIwc(dC;bNS_W?Tx>vMI+%2Xo{k#DAhG2Y0)5=i4*zwRbBhQz)Da zm~;Jh*RpXf0m~XR$)sBVNdP=vt?@W4v+j9Wt0zODhn+@P%wSh5HS5OgkXtHsbGvD( z{#(|%Xg7a3bSm5UX*Wj{B<|+V5=|>L@9xT49Z~K5*eQ!@xdFG&CxbPJK_{UyEjiR{ zUQ6yj;YAriiT0mKXiBt4L}t-GZj_NF$HLBfDBg)IIo7nAt{zM7I{M;*X&qh!wFn4Z(p-HNT)QuDpi`f7i`e7_djKB{je zAHVV~VIa#)!`E7gpe~GMMpeC@)dVdv4QRn4TMB?zW|6Ii!K6iY4*XIUnU6!*5{oe* zTVRY_upIV6JSSRUCrS$p3^0tmz(*|b+XGPRiie-#gi}|%c2+=8ZK82aW1{9(!3;Qx zmV^rlbk>7O_E;4kee-Y%vMONne2vXv*9mkO@g;1138FIXH9OJcBmk|rrjIhMH!WeAzqu%lo$fB zo5c`uD~(J$)*r0W;+@E}V->E6?J@1%5AeoJJA5xqyYJvH5u_8phHu&(%ledyuaYgh z6$!C9HRu3_-QIRcP7Ud?>vkVBvC_Aab2?xt2*tgg<=bJO6p zw*4xsa$$@*D)%i?BWTlUI14u2uK~lA*>w8>5~NLc2>enuorgWxq>Hd0TXc+ButDx8 zc7RR(tgW}$V)>1muird6xoC2+NZ7Q$Q+KkCsfA2B#Rj$cPIKl8aTg85;5xM{8=E@n zQkuaB(y}myTmmL3E5RhYZg`vzC_RiI0+bHRtUE1h(X_>%jGabUtYAMXHS5l{%{nG7 zn{mR54;Xc-?d*nDW4wF4qJ5=fYBsnq3nR3HpAVhNHhbE^5qXI__=%!vr6%1IvsOp+ zp21F8^tQ~UY?JO8$v_Upq(lAaHR+xLFUqJ)4DsZIro<44-7JQPTW4g_vF>1P7VktR z9qVvSY>!E|8Q_hXbogGHbnnMs!lVVvMW`3c5 z=fa%e6hZ!I;knjYUjS5xH?Mf^+hdK6`Kf++rh}+_8h7ng_3^w6{EXM{M;}oooyNL}_47k%{2ArxXGl~$RR$N7+ zX=!*6ASWyhfh@Qx?yzwghT?OJ2%aGtawAzwrj7j}*lC0X3wEJWL+&iwkn@o`V8?M& z*Nm%hM9lzWS=gXG`!MKKw!PDyjfhL!vmY#)R%*nZowYim^`o#;7Oe*};+~KUyfGsV-%BHIGyW1r zocJ|-BTmHSti<_LGp;NyXAL@lAvdDqa@LT6I}b&O#cF89=Il3GhusE<4{u^|lkSbG zZ)LGL8%$}3Rex{w#}wewkaB`B->*BH_vDwsa`_N+iixy&^WncIw#A!tG!|QTB3uh& zdm1*Ijq{-Oso^YGpRWP9E3-a-3WG`O^M3echY)R0+5R*_h*ksR{zJwr;QMum3;!vx5nljS1;Dw|dDJ z?L0JVRdlaM4LW%)+QG-BcJ`cEwq9*Q7P-j!cxS9QqumOl0xujR;0iY#z^ZCJ0>(BE zIZ@ob#*{*ibD{8|jPFW2@m0{`|C1h#o}*@|Qk_ zCf@DI%QJONYb|sO-)(dnoDGWR-Fh3MC7UxKOVUX1gxO=ZpxUbUX}v9>De)N+tztea zy>IJ2m@`}YzmA=*hzf%O96y$r^7cU z9idJCUr2TbOWNpuR)Qd7qeK45V)Qrw6vtq@l`ZLbCpwH`Z$PuNCypVMP2>(Pd@th| z$9w~Ri8zM%HT*cnkr)haOf{w(Gu_k(#vzWX7YE~GI^00R4G_C9yi0}+jqu{VTH71o zbG*WOrZG7J z;}Nj?C`4&uMB=@I2z^ZW6vm5^=o5$NQJKHy_h<9dw# zi|2T|uB=oH(c4eH>ME2d6H+~KsW)sap-89QZB>C|;|jqzp!YO2nwx4}k) zk3+)m3mSD%gatoW&ra8yGw^?m)p8JGMQyfSyRbRkST|Rnp%CrGg@j-b%57E+-gDlgWyWf?ke0QhC9THl-o7BKbEeN*04+HGkG-6$gM~I_v?kHxlneF&*}&^hV@~ z=?HZmiRs{b8PoX_tW3sq#INDUbVP2-%>49vu1ct^X3QFNfcTDa;%*HYsu{ByahykF ztk`d~X9LAecPAulDXW=wA_IF(X}INRbO5`v-TIV4%8BO2jc{4xOxGoc#uGQNeysXdR?B4qIhc8+fouI4;anK=%BbZsml8CtG?WG7>iYn7WyaO6-(urx zZ}_E*D^bg30?MXUkmcC0Vw{4d@B?B4*osSw@lR2PRd7Eh_O6Z3&U7K-2T5YytII1G zNlU>2fRwNl1kA6hYPd}Nlkv45!2>8Amhp8=){<%Cei(KdVS$3(r_}gbzE)Y!+T>yq zdkLG-Llf}Ktkuw7yBa!`ZOgRR;=&X6+9O2MN{y_Etkn^%>ewlZR(VF&revThHL_5D zd5x@jcu_`8B78fcDG?sAm__)wy+lS9%XgNM#d=l~)njBm6X1;*S@>QWS-0UYVPuJ4 z!#A=Xh8B^!WG&Uia+67=$1Tq8#QouFzyS;_Baonm3)ENbXf1+cSk61)s_Cc0+6(w7q3V!o2bVC#zr*TUFpCbiXqwmU2;ENB4>Za88ENZEy;>DPWUk5i+yQ=?hSCd=Sp>@>n60g_j0#T_5c zSW@i4UzxX4m*`NwXI3W}s;2mX@)NUGM43y+Lnlw>5!c7OTj9M4M*k<$z#oB8aDdbq0OD=BUguPHVr-=^#>QvcjWI=-vGX{GNvJ=M z+5u@x>8%O&+2kdeI;C|5bj!$AN`Wa!=X?g{jahUk55!fUOlV46g(Rw&t4b@Qeh+hI z%lLm|rz~DNPIxq@x7(1=wsK|dtc~KzX~j`BIBT4l?V{NvKJbU(SA^XXTZnen6VWJMZd6+X8bkHCcf)48eo9uUS z1I4W*@%Y{+XS_QV*3YKg=c@V$&N z{04uCj0W+`7h|Y4v>QR$eqNUA~&Dq1IJCzfySmEF2R!wnEvFmm@8Hh)+_+*YCH zlc}QCGtHDszGpMHErs!*!eZ68vRhXa(89N_{$|(%6v!Fzgc0Zz+l|b4!rqB(F`l6D z*V+r=T9|l(aq9|WI~Y#T5EjA-TLQ$Dg%i$%!DKk$T==EJ2^PYe8hwTo0W*kpz5f+7g3A5?<(x73VIBB-||E z3O6-vt=ve$EikreYoRQABMAyQRwTj2jn5YIw6P)yC8XD)=?)Y(YseV8wgh>GF@_AC zXpC(XO)H5c+zUgQ>=mXnf=aS?4|d9uy%9T-U?W`x5=vTWT6{MPYNExr1lHmUB)<2kFW4!ICi^*Y1R~1VI(hv{B#KbhQxj_U@29etsYY6FhQ(yW5X#_5 zQZYLNs4<%j`JXsxhlHlYNl2E8IjJ;)uqqkphD;xeowE4n7;glDMSH=r6fVeGEp4{v zmQXN*8w&x13t{Xejyqcb;oG$Ejj5HP%_s#B%JHkE&mAUd%X(A^YK$!lc_xdw;{Z_n zfbCAUf#aPhe!#Z7W?@hKK&X{S`~cs}_`%JvG8sP*zlI+_IJ({FG}>1+Cf1{a-iZbf z>Rm``*f8IP^nl)SM~P3*PBffjfEL1LL}nHG96r;c|Ox zjz<#Sp!)XCuOL0a1ziRco~n`#cDQueRkKseR@9btmqCt+Sow3*+bwG{bzx}_e(Cjn zP{HU89lW^kQJEe%p?5+ja09mJ?J?2ljIZxBuUJ2am#)u4%zt)f^Ua&}tS72jPc&xz zY;@M%mUElkd0Y2j7d3V1y1o^iVKTa|r9B&!8e6z9)j6TsEA4X@c^Lx zcvx32k4oQcJEc4}H_UKC>j&F`#@q3~SOM;YzeE64{2IOjT;86aNlnRe?LABB&Cd*= z>7FcXnlXe0YH{JNm-Vw7*LT}>`~>tYW|EzF@K?d(irMXd`L4$jVZ=`W+p zBn0{=I`n*^v0?s-^;3~8phC$NJI*Dwr5ERr>CzdVsw`A;xUTcD!q>$>> z_x_KFt%6RV?|)pT*3XF#{##e6PyPrL3l07!J@}EloGp(u_Ke3x2X8If5|yZ#Sh;&= zer|5I-Cf_AhBV|S&d+us$?{pK+Wx4f)mqri%VY(9FSI>Iu3r;uJ0)HP3T=b0cmeVc zjr~q^4U>NC&&t_Lv43NHa6k5GaE<+KP-!Um#UC2}=S8Q;rh%NiPa5oC>a_wHwxzec z67{!U%p0PM2@vBoiNv@)KDeJ4GFTZL0z`771$b8t5;*jx(d{ z2vFd(L<(FKAKXs?8eCIgk+31v3glmU1>@04vMC{_?~@WcT6S)M7TeNmUW@u$ujabw zY6A4QCXpV`jt}mq2MwM~k6WUXWYa@VpF@xGwwPp~eS_A~s9P5%$zVI>d2J3R7ih=| z$p!lXq*eL(tq%gBq*wn5_@%sh;eT;b!S)JXqcVZ<1z4=nwgd;$rB`7+dR=pReyZMu zyD2BRm=7+z$Ip#+YV{ffr{<@i)^7uPp?n!ubLNU#M|Oj_5Vh&3qqHiA)H3+lCZh`?2JHE{pTd->*OTk9V4@Hv;9R4e7v2+agUFD{ zTNmN}_rkN*TH{e~wPD>E-gIpguESi8b)t`&y}CACpV?G1!xgp8qWg^Fdutq;CvmPq zj>WkyZhV~UY4gw|qHE4|he+bw(@W5XOrFQNS5kOHGw)h;@nNR{cUew!Y8#=p-`Kr@ zk5N6>YGerDj(&A>Y6|rBk}Ki=APMtxVwbOvPvXu`Q+Qckg=6TtAoaJ#)Ge@RlUc)D zgUctz-z+dyV0?URjx~tNzRejc4i_>0n*?0prh_p4+hFV@##hL(7~jQ>kMTWi9ydgW z(M;e@oFpzcl^{D`TuwC%8yU9Jf`bY`z6L!nPE-tiFC}EY)9^}xC+0=+;CZ8w@?TjT zNRsg#fs}$|;Nz+!<4?|5VRlCfkYxN`z!h#fh-CZ)#!iw9g&a#VT-^91!_#J2Do1FF zx}zkq`F$mr%V+a7M(j^B_&Inch~JZdL&UlHZf#>544f`-y)*?yg1``YM++1V-Krk*>8c`Wb& zj*U}wuw!Q7032L6PV?(h&S3nkSIta_(3}Yv;yh4w~@-B9KEbnP^S`~buvFgr{ z#QpOnSk34D$5U84ng5CX=NfJB5FnZ}-k<~#6am|5@QQ(oo3riDadnNFPi8S3iNePO zY6_x&kE;`f`<&6j{B4NB*9BzZrh|yWw_)rgQBdfyM8U<5PZT_D9vv5jEEdsZcPC1c zh!2+_w;&PmQE!(Kp!*YoMU*~|;Z!%1&5hjA^%~!jaivL5OnBOO)=Rj|^S~e5Y#rt< zL;yv8_s33UkzXsMd-N%_b@D2Q^EN@azdXo40Ux}TVh^m;XK&3B56fC5l|CE+onrA( zLnqtrQ#6y63@qU^}jpStvpy*1V zNm7AzLG8Gt5D#6R(3E%x36jM_aRsyi6oGMslvQEC2YQ-6JQW5at{SN@!1uDk;1*b! zOt2NdhM!=2TBkk(=JmBuVt{&N{YK0x2UA=Y9Hge+9_R48nR*+YV1T6DgXK|cba>Bq zMn|F@*d8xwr6utlKrqwRu~|J{t#F&_+j~L<>9!>ca}#m1zD24*ZG8}-UYOJWgAzy_ z&I`~m7xDt$0Bfi$FW}2Cn9K|K7W`6q0VOQN83T!I3_GZ(4`A$rzIqc9B2*tRYM&F| zc4lLy(Z*bYdTpX9B)s0<1Si9DbLc}rxU^jxpPcQ$=^3hl8mobttUCgS9L^=?rkWd@ zaOfbMkZz}T^<;B=l20UXjENbo3f|HVg zG%e}O9FLwgxoJ4#j^R!ASd~C!GMtZ1XiA1NVmFH+k_>0oC#>z_ov1jCcP~wBkKud{ zz#IEm8NQc>a~pq&$~5t7_=fW%wYjA(;m4rjpS#lzP-m+Y9u?WFIK8$8OR#U){7D1g)xx#FCl5zIM(nMjN_*O{FNEU zZ->F8ar{2`rHtbU+puArz^-f*GseNTc^V==(I|dnx>2l{<$*Pb{}(~5rT;@j65bw? zjN#$SIxx#!npuWr2!APS@ni&j9y^V&B1tiX&yN|x9_CFqf`>4&W{n?aVTbIU??b0V z0~isRXzzShG_BMC-ukDpZO=9DiS}Dyr!3lA#wDKc`D4pgGfjfMl7SqG0gStX*8tuF z;3}gsF~qJ3P00X8>}D}U+?J)tG3yc5aPdxL0P{|ziS03f4*_^%1~9&t2JkufOBlf7 z*YFMC6SZwfw-4o+zegpRzt+$L7{3Ke$r{*W`aU?YJT`oT@3m+(fF%8zy>->M_qa;U zUTfV08oe6GRtMo-7^8Q@HG1tO1?$8#v;~v*@c?~gChxOhFlqAsEBsO>Z;)Zw;4NiQ zHg_4$z<#n0kKF20vW?jiU~7`fut@QvJub>Q2OSXR~PHs(61=@60cJd9Zb z4q(upMplpopR5;HFAlfhuyqBN$*dQk%S*}dCtMzQZ9`l^R=ihiM+Z7^CLt@yd8#$r zBY_erji@zw`q1En)umOM8Xq8hMXV2$1He zV=MS?rn&$+#T15lht^ur)>y=LiW^+;-8V~n#uE+lOg|vE1_60DmOah2L>rC!9j!KU zX~4AhQ@x01^s|VkNL-fQ2(~#sxc|lw8eHEP61@@Z*60-3_l3yG!^*tKQRQv%z7Q?n ztu+Yo!uW>tQ4d><1wBFyW5FXl24JqtBm5K$COyK>!7t?zI(n7;z&(AMU4NQ{u?aXn z4iTH^{ViM9=*k+h<}_sKU@b992!3d72EQ5(_X|TtgwDN5Zm%WlYXlBk2#!WGZVJSF zU}4vc3`zL|a=xsQQ}lVtP2l7UL4KLFYBGR-hMh)OGC-yK9G`wJ1Uc2&sA{7dr)KN& zE)d-Kv8oV02sp{5g{&nZAqK8c5M}66!M1v4dVFCYqe_y(bIlFg{XAwIxY2K_C|LxZ zJk^Bw*fcae5$@KjO?VfHRr6jze`(nEbHVN<$I;qS0;kcP5*KyFc{jINsPLjKki z7ls3y3%gfb22#JWF;-g(w~?+A8jxzob$zW60+q<9hCb}b8vj%8h@Kmp?T)BQ#Hw7n zilJ5qy^5Oj+D3cUTYhEOQY1FU6OG!(WHBWP%mo6qKyUlr5qz8_FyfXRg3h@y=SpX+ zumm6-NmwQYT;Zmsu(TcqjWg~YnTF;`!lIC435$yxpRjn^JpCVozcjzNFeZuOxg~VT z7scaw3lS!|x!4YYel)#|E05ZucaXerXBH3M?HT zmC6zSDmJ1pA#hZRx1lkY7;pP=!l)E)WBZk@={VFBZ)1-@+m@bqn^3orawL2&<82T6 z1^g26Ht}ot@wVed2){nHetZ&Kl5zA%l0SN~GIpShU$3%;9U%0!7ddF2F~ui9?%>-8 zd%G2v!#1h!l@^2p0P&_SviUGxRy3me_AaU-vgTQ)aONlVhfqc@U3Mvc2IVsR&tdqV zmH3}S@jr*-f5z}XmoH2HNXo<28oa?V|Hnj*fKFgL{^$4gJ&L_8{hvcQH9CIl>oA0M zwLMBZeGf&>GFkdPl=Grf1ipttgTsfNk};~820NQf6V@0U)WL71Xm)8GjspnV>aMN5 z;9*sfkX~4HWPD@>CR6bdpNLS9q%{i-fheLTiou4(JOoz|iio6qGld5L1s52PavkyB&Upjjdi_Kr z3VR#F4NVRsMmTOh||v;Y?`GOkgtMhK(HN;1UQii4cV_bY?o~Zf2&3 z?w%Y%6b0GUZBIr;-CZw~T~`(lR^_vvthcfri`ROi;(sp>@ZQz^zgO3*s$W(8s`?n> zy7_#P{C>Z#diClZRo|+5Rh6F>r|ZcHs`nzt(=%Pa&}n`3+KSF8kdz3~MN93dD14fJ#o;IyO)i$#DHm}!ahH-xTxwK;5lba}O% zMSz`6RC@t0E1TFeI6hLW*Nc1DIcpcg`N*StaHKR08@Wd-IGeeh8w$>2@*Ul{+q($6 zz4^iOGN@{zHi4(n!@^NRp1y{$Sek|M9;|9C9L#2{$gW$wk)d3XBsVdCb17tUEE3>n z-RN@XZx$Hxkvv*oiPsw~`eCCM^Eq1?ul}U^d`{x7(&{##tmlsaR@Q&64IWH9V>Fn|A|`x=s5H2`eW2V~SNQ zGrx(Sby~Upk+X<)pG7asoA8IXGv543b$_T%LgIvVf%_qOls_l|8UA3)$K?->G%53& zcJ?TfenpPRGA13SD&{vYjG!v!H?g0x2f=n9E{5a+oWwTq*CBALOKuozb!BW|5sncFNfwsGm6ECuX~5 zHZI}0(nD3=UdiSPFwip10VHiIC+?~zBcszZC|k^jHW^iT!>EYO%;0Pxu-&!6*#$t1 z56&)zCp9?B+J+pYiP=WGCfZ<4iWP1l%Bd4&M#7DDM27Wvy2B9H=A(C z(g+1p72swP7|FrP0}RsmJxw$e>xc#!|5bu(*@~LRZ@1EXq*YynnZTH!)=yWp4(Al@ zuM`rrzfyE|&mg8p1MTk!l*!xQ5BUG@}Y_qXqZ;+AlSC~uK%A#WVL6Va`?rST?SC_S}xs=wT5 zonG3_?$h1WtPPhpZNkn1;yicvcyBeH8YXVJuCoivAP605&}i^P=C#)MO5wB)b5%(l$K?5yeBsZ9Ez4?{7TsTd zPx%4kc5}H3@;2~;KUH}y1_^fhTK^5B9aW--9e#yz8b(YxnOEB5&uTs=qT>b4#Pz4z;re5oll&R$Fmca}H76cBV;w9aea4y zILhCAWR!ELE3H(N`$tmR?}C-~nA&eRySYl6|5Mouxm>vHR+=DAO3S&|^~hi$$!g=p zr>HGIEiN=To22R~Fy$`0fxJHQfO=_rvsm9zYEHG5V7mpKVPmCgMONbYXeH~6rdqQh zZDnMt`WK)nFMcJKGWhickgqfRTAou~hwBN*0SB*_f}+^#om16I;iuLjvrEw6scf`C zZg)U_FFdtQ`#f=zIzXJs0fS%#gushJ;Z{5dtdX7(mzX@|s-T_eo~@?kmUO>Q1&KUe zFyfrs@8*@C+mdQ5CijOh6P)9MYFm0m7bo|htt_4Q*`fF-Hs|j!2DtcB+QEos9K1=b z8WZ@L?pa3uTWn~T9_~$&mzcEN1DPC?`uI6%(()+9S7xF_T6`!8+4(E2l1(&e+qszD zd>N~SKdC;wnL6D+1+?|)P1cTl7*>qdqoZ95EeSY<5~DG-X-m;HwdqK6N`mQ-;A}$v zenB-5M^|^|2u_>iY_O!c^Y&*+tOgF!tTRv8P=tXxw1v2C#oJsMu8WZgj;c!hJ|62T zT*7$5^yvdt`ZK_kZl`_|z?uk~{{*W^W}+TH>$Gww>Ssa)rE#-o;_EvWtuSB0ioePD z@+Z};xOy)nPMDEify^Ltk{v}_z1O=z-$6h*87h+0!z2v)h;lrT^Mw2 zxdc`WM{U>H@;?|g&%kWkYszjEEX>;dBS~iQ&rGxQ+lOZ22SX-DvyPvWOgwm7)~Ob? zFlWNZ`x$5cq@5V~3ZR{9#Jm~1(Cg`&u3o=_pR?bD zK5DQrHUf9!K??RO9JS9Uoh7KBfXQb}t>((QM2#%w`AJd`i}BBmuo$6R6j+yan{ZV5 zUnSK}==k-RDM`n3pr3}@4_H_2=+wd0WeO7fd!kwEputk*<~CaQGd=lRO>6{&_TLea zRA?VXnWX)2(;`-w6%IMhCe1olm>K4oCojoxEgE17zG(0m)Qzuku&3xn z1LC&7dN{0Iw2oFIn-w_4v4ZvT_%F26G**`>fa?4`e9x zvvn!9YtoDWP)xv@&+$Ih3@Sp_k`KvIuo_tMIY|-e*A{kQ00q~YH6R|)I82B(1)Xu- z`6o0>yWwWyWvmX%E*vPFKT>K8!$#2^xB*}o_G7Cgg=H6BD7ObKmaB1ODJMT}T1x)@ zn?WmwWn1noL|9CyA(E5TxN+uqRX}TfHm*XcXK-TAs*&0-Z~8IXGDcT?p@vq*j`U`d z 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

-+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%0DFa@inPaeRzL{kXk`*LThr;;j9Z5l(1u1Kw%N=5 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 literal 2086324 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

|`BPS* zY)HOKLz%;OeXv~)L;4nvvzb2R6hPh@!1w2HXnDR9+5o=4kU<{Iclp{b`Mz4uNg1v$ z$0jW`;)^XcEr$9WjyD20eiMh5=QyDa;P`78WNZ2-qV#UKynxO{E59M>LJmgCr@IWE4~9RD6eeGbRJ9l-IQa%g#u z6WRcd{|AFSnB(%b-E%xw#?i+$IG&O5BX)StpN9xgzxgxb(DEE7v;iC+W{?MST)wtj zj_dV8R>rYOb6k9}W&C`G`WzWQCxGM6<DH287W^W8x_~pS6kBG&-5XO?|%`% z_m6XEdA<``gYUR-S5(WpOKh6Iz#tFiyL@ezd|!y`O8%MYRnAB}9552U;?VLVL1+U; zV(GcrnJIWAzZd9Q=p>v!oC5dON7A?^kInpeIcr2lSM zOu`rjX~(P(t;$&XtLbKY}5$1d?-3q8;e@i@^mG_C~u^r zyu-@W^&hb|oAEW!ZxD&A@K4yb&*0*TP>P{?K6PQATv0NO;^KEj$rRExNSfBqB(9HH z!Ocu=vuYhapJMMK$qOW~R)ziQzX z(e^*^7zs)sxmAF|CS3Nu6xqaV+1UwaPHricbpzVHc#B6bDDC8K2dKGO7@DT`Ho$G} z6h05XbGNK$R%WuFbPJo!pj!{m2x1by=`f98qwrbNMp>iP*{~I|#D$=4y*9P!m67Rd z#W2NJFFW7>mF^vX7O~5;x6r}+96Xvf24M&6KEq%zk09Bp$>s>hUxP=(57^lQD-YPY zyN&z5;_%C0TtjxPy=a*+F5>9jh+!`dSc4Yh;T!KzHsj$N-`KO&(0bFk%6Qe);#K`L zPFZ=&cdm?m@s~SB5<%|=xdXo4BtV@xcbChpAWFLvMtny)zgt_?2pkVIv$Gq^vtW~J zbOML-59vOSf@M!U}hu1kkd(nqK0^DBupqY}<2i?NzgKpJ^y_*p? z^`RHR8HkadV11Z%j6hfVz|Rlea0g>Oskqc~R}$3UdUT2O;j;pi)d$(s4}JJ24|+%+ z{=os-i$44SaC_;4W=cjMbPKBwx>XzYZbsbH2byNOK?Cyx(i5x?pLUEu7y5u%W8D0( zw@>o};#b>D%f%PXL*Xwy`2uf$=?Maq)d$(s4}BQ+pojF~L$fkbi!;3xWA$^#2fcByfHvn!geb7wF=!0%y^+C7l`JtN;H}!$$hi=e- zJ|I28`Y_@cfpC3TT-Dd__2?fd$9n}Rs~ob)sT|IW3O?&W4XMVb9iY9a#^(UHmuhI1 zWK=`9u&SY37isl%q%T-i{@gJl;i|H@tFIq$p|_v)m|zX7I#kHKaO6I6!+* zohJfrFV)d3$*7KQVO2-B_Mu>UGPm>r8O$(9Td>;vN8i=vJaw`?+PE>=K0aP+Lpo}C zGPrC7s!FmCPd=XAqd61<7Mgc+^N9TQ1(iCB8sndwu@4cn;ne zbGc)OrMo$gBW&l2l?*oLmT6CqgI7Muc@7R_rk-M~RJ`aV9$6|>;skSiJxiR#0<>?% zi{9`m(}NHHrzrf;QLq4eHyk-83X50MGXq`1#Xa{^l4 zSDcBi_Z2M&>W7h8VF~dA@rOJHgCqtAqt6l(SO@7_9>kL5d>xtLN@2GoXPK%XYS~el z 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

`G%j$@@p=axN7A+D5>|SRiu}8Kr|X)J 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 z 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≪cgh&jWpyo_{1ztMrH>r}TJ4cYNIgAC{l5 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 rE=bhj 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

OMm58OZ*LGlalc%}7+)vx_Kzy8WA$O+-X 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�+j#(N< z1+{u#MKV@y3g@h>2p3tH_;R>7kRROpG>&7?6fVXxvXs5V2(cHkGciJB`n6cPJ`*AK zz zDIJ6=@c2^H33kuGW1+#f2dQ*yaeaM_~su{&_L{a5(!SF+SvCkQn`;(MDRBW@79)=4%`c8VEcjq9!EZcWbY_BCup~$g3ht zX^eYSOye}yYa9>K?s51TA7bEaKlQ4Z%Awmej^|<5s|cl)PSS|28pnRhhOHYfS7Q@9 zpm7|f7U|UYexaQ##udKkHeyM zgs?WCWmI&9mcGXO?RBG2dm%`VF`5MN&F7`@iL+;i(UZCdGKYsy!!Ju+vRpmVN5S`K^49BAqIGcV(x;INo zKlZxV2T8sEI#c?VBmC6qc|`0U!zkio$;*_Yd1Q69k{pyE3ZVrlFn2$mIp<*45wV|+ zHZ-Qgg+2I{_H$ZT_oiPORKMY;!>xA?CLhJI&OygfF&%DuUNGWsY)WV4th~KHr?{;R zg~mw5Lecwvaa!zL{f3yp+qlxB(Uvd*F8IY_dWi87+a`7oXYD==Gw9CO#bg{P@0d7{ z50rUC4Ch2c;q)cHP?=~5y$cd1q2SKJ>0@ZVa56a=_-S{#83aDoF4Q4TChk>S2*g<1 z6EQq{07u$#T-qvh28AcYI6c!jPAnGM4vKoj(i}%KAhj7ra6LbVe>e!2gcFTL|3swX zLV9!pl#-4`=&UJ@)l-=k#W=s0ZVLU$Bf`>!L>q4ZS{;tQT%-jCy*BvgN!jtCba++}Z2`eTp3*oKte-*uehS5puDWM4pU0ECKi{#xDZ!5^ZTV zdPmDw3NVIGv#BwsOqw)p+{BT?y2F(uQ)EhNVs~F!SD_Bu5>1KvMB1Ns#?O3zAPUi) zP*9ICvlEOF)5lF1H7qf;)>%F)gO#k5l+_^rIJTPI;u4$|!{Svu9yCPuOnMv>3-~9R zEbvmI$@+V^?9&OCBPUH6J!;&PVcipLshkO!RlG;RL0+jtzio7*reo+~m8fXgEmd%3dVWtE)HB~RbiA4siD|$!756Y&RY*6lRH1M=$ z+hPO$DexG4S<}|nNT4kU>v8O9ra(Ar?3n3%Kj zZ|NGBYhoV6xLgzSm#U>JGfpV20vX%5A2k3)O-khcgkfJHt04ahz^dS#zUjhW}Q-Pugioiwt>>_}J_Nm`L z=Qg|4E-#UT^df*qXJ_X8bNRpjGXMPZ=Upb)u$?3ooma|bdOw(~q9>j9Ybn8)@ zJ7N4meC`k8-;K}8ao<=E+{mx2W`I?YqjlQ|0uZ z=nMRJISFP3%wYFAp}<04U>*i!G`U*xz-mW!!U4Czf`kFgRj&l0TNehs zGM^iY$0gHhG@<~ED;efm!guERZq4THfbn*Xn7Q{(04_=RCfC10XClV@#-~Qy_fddZ&7@Tnxua*;Xpu}XMi$(Wr14|wX z4g|b;fAQ{37PyUY9rD3M7<$3gN~LLqBC3_^ZoA@jBHsiS)Bl;_m~7p$ZPwsM7~z|m z8w#LldF3wX*lXNZI7;YhU~*Ux0$25vj{qPD87x>?xlvkKytlXm_fygaaKM8)L@z-T z&BBXnwpC9sd+G)goth8a1Z@`sLo3q?0*i3GrXegx)miHMTn=;%+L|O7cGLB-ByDz< z#(Pf9Fvs~vk3PuJkM~R@a`>NOwGLZ^>g0Yn$6hn)Zf%aeZq2cG@OO`gUvzCVU-|X* z^>R?RNGeRrhaf2?q$QP9Kq{VPRaWNb&o5lLa%ExR@`d?J3-b%9YCIvY?3@3Z!n>gZ zl5|Qgt-4M*wKHNeiQP@pLLQd%?)%Gw9Ko<6--^Xu5{)|$i5sNA-~KI#!7n*hKYH}x zFCkh#di3?(;I%JOUduF*d?mxi&x>iO`zJ!HK-X{Y6o6GI+)QVZGq6oDskPlrie^H-MvydDresPtA@XMrpjF`n@E~N+ z=VaBp#>MI|-ZkK+l6@na+H%$|Y_bQt&e}T7O zgdgieTU=!e-Ud0ca3Q_O_iTRZ`Za?I;PItgd}!ZQZn|#M=E^<8UbP)m%*w*~@W$&A-77IEHey+iyfcwu~tJJPvs~Fd{m4AVp;5BZ$9&OJ_<26XrnPj(@@7!jz!3x>= z`|}GoU!GsMc=^($Ipqq$`>(qWtW5;{8+o2f{^&Yq4#&5sgt~^0Tre1WJT-=(%s%ZU zNax?6jfES9`14sHFu-(4{KUPd^}>o6SP?G;_lf^!`2QJ(Ct3s6;KxC2fb|<8m>6L! z4~wvE$8vn5ZC`~CLSd^h&*u=UHLf)4Kc`#iW0^mM*iP=<$yr!F^36&{iF~t?+bDqw zMWnorrbDx4nhU2l({}C?=q3&Evw4_S$=z!eDDZA5H#XM8F(+pSe7W>ewmJSvI? zktkbU$Em@0Q(Nh_3!;{juuXZJ4ioM=>7-hO5Tnvw>3*EE4vnx4$I%WDi9qln*H~rt zDx!vPPSXy_Yfb4umlo}aa83>}h&0NjZT_=Od=b}TK?j<-J;ws95xJDB7Z%wo9mEXD z$6VxXcmKM~suHDqb;|55&I~(9bh8CtIa|tIP0bUXfI??yS8w^oniV1p@pFwc zrIHWtoMKE8r)$_?*xA*$xaG6E#GL&v$2w>feH3o_SO(9+|7wlG+UpXadEBjE9Evjm zJvmTrv|&&8410h!OMUqrNW-DLwHt?W7gCw|oN8^MA_}+jwf*z7SMq!I2eT=zOHQhA zN{ANvVM#z&XsY&PCfHds=q1&Vr44(%*w$yU(3&Hg&FO^v>;Ji$N5jzo_?y271(gAR zrdJtiV_euX*0)mwyqEV2@5gJ`{wRNA|0sWaSH0V?X|q&M4M)j@Le>C2bHQX;9h`hs zw++)b`e7RTvnOLOH0}*R*jt~HS;;^(saq{=NGp2=R5vAn>E?dH)MWzuW9at&G1S#V zFLWlGi6QUBO;+9)GxdI$IlkS9YfC+V`}d!`tilJa#mC80_a4;ZD})WiGzSbgYRSzFFt))pI|EJ~M=Ci|HkI{qrQ zFlrCcwNo0)+){0ndf9+I5N$#R?15(PbBa??g#1nrM8#fcdqut{YW>-+k&Oz7h*9{Y(rmOd!FS5e;t*)EERr4e_;>E6L;DNe6;4;1#nLA~0y z(2k5kV2G~F;aIZFR$un%G(J6{d~DY^QN?j>a)gQQ=5VM=XOng(ng4s>3ngtNhq^)3 zY^J{p-~G)`WdSufe?RA7lB1z*1nxYsb+`!(UI`*{ zEk%pc<-sG8w+A}C>WBtdN)TC6J(W_tYGSV@k+eZ%Qp5D)RMp?p_$c6?gqd6Ecu&Ze zly|;gL~C3a0E_c`2Y$x?sVuFQay6j!uf%Tz7X_q?tt5QuHpBiQ@37s7nwU6wo9v z_D1Q*7!0sbQ;T}uT8@zJ(qf)ZATa_V+u za>VOZ!`4NN(U4Ps^Iz z8R@^7f1!{*r;vW67TGort2R!?wt<~eNyn+CY9TnQRm^NwO>IOd1XcTS6<%s2|^w2C9Rty)lC*)Yxjb;iS<&#MqlJ4oBm4{Vt zawrH*2pyhaZX@QsApAWdGu!$d{MQR%y{S4u2Xf-p0$QqUtu$e>^@mh23gThM!wJX` zbt8}9$u~TtN?0L;imH(T=){}q)AZC|n-@t{hlY|!RT)EC+hItgzp`xuwfA>!-}0!7 z*;bqWQ_vwGK;&BQp(H>4PI-%c(c^jh7xX!J+xnvRRVy$3{l}Fe$!IJisB!UoM5-@{ z&$hmb`rY#IyJ)*l9{zy3*)W4!&r3YQTspNx&1DgH0TL^O{Rx!^I*eIb{L7y zHfsOlo!j?iTVa!Wy#+av=;T-){2Y0st%vAF(+rs&@3L#hA**CZO4v!3Qae)kWLd2` zQOaw3jHYh2U>pVwFwN>0^Ryxd<)W*ZloONZoyFl?CEM8}d=xfHmrH?#_h-8+tK9cp zzbXI<8$K8W8FQ=S?0y<)Al+1k6_r???5XJ?(Yi4Nkvp2uEyghX=7U#Dm(hQBMbF1_ zhUO4pp^)*T66Iq#W#hg=gbNZ_aT5mg5L{OI6yhI97^=eErPO){Dci(|5ky)Vm?l=l zGONfnXjmJu7?DRQ=crl~$wL-EHDyL^ubKl73#$q!UEg;QxB;1IRf5%Z0%Ctr~cp`ubrWBD|-R0BZED!e_gCsY|7+$)`#zlilb>Nn~= zF6?yS*$DLIy?6UZ;1 zNNS#fgVn@|R9B&nVNifp2(1d(VBbi$rsVOi(&T~^ib1WB|DgPSx?6?vQ7TN{&$ixz z#c4etv-4B&vG}(5Q}HA5!`3$ulW2W|9_Q%sJUy1^aho1(dbH^ANA!^Nm?An8^!O+G z`H%GYFM9lp9=}c%uhU}|N~QG-9+4cUagZ;qu70VJY>A(4iEnR;A8o23Y^m-yRo9!U z+fCKwrs{4>b+xIw*;HL@De_y9ID>0H$*d+Zs{ph56Y)dww`xk_lVm=O2BzloGQFw! znDnOR^A&ni^P!M-GM|5-H#MLCpf@!i+SID~w8&UTa!NZ9Xb^wmi}8NjD|X{9v?6+p$-5f*_Q zVUJUHv2#@S(_m&tUrEb90GQs7??YYS!Wk3~F6jjjkfg(0({>df$%_@nkEG!W$W)VV R`c0T*3{t&GPABe8{WpDIr?LP5 literal 15852 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 F`9G>^OCJCL diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html index d0dbba98..e5e29dba 100644 --- a/docs/build/html/_modules/index.html +++ b/docs/build/html/_modules/index.html @@ -5,14 +5,16 @@ - Overview: module code — SpatialPy 1.1.0 documentation + Overview: module code — SpatialPy 1.1.2 documentation + + @@ -71,7 +73,7 @@

Quick search

- + @@ -128,7 +130,7 @@

All modules for which code is available

©Copyright (C) 2019-2022. | - Powered by
Sphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 diff --git a/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js b/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 00000000..8549469d --- /dev/null +++ b/docs/build/html/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,134 @@ +/* + * _sphinx_javascript_frameworks_compat.js + * ~~~~~~~~~~ + * + * Compatability shim for jQuery and underscores.js. + * + * WILL BE REMOVED IN Sphinx 6.0 + * xref RemovedInSphinx60Warning + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css index bf18350b..4e9a9f1f 100644 --- a/docs/build/html/_static/basic.css +++ b/docs/build/html/_static/basic.css @@ -222,7 +222,7 @@ table.modindextable td { /* -- general body styles --------------------------------------------------- */ div.body { - min-width: 450px; + min-width: 360px; max-width: 800px; } @@ -237,16 +237,6 @@ a.headerlink { visibility: hidden; } -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -334,13 +324,15 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } - +nav.contents, +aside.topic, div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ - +nav.contents, +aside.topic, div.topic { border: 1px solid #ccc; padding: 7px; @@ -379,6 +371,8 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -386,6 +380,8 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, +nav.contents::after, +aside.topic::after, div.topic::after, div.admonition::after, blockquote::after { @@ -428,10 +424,6 @@ table.docutils td, table.docutils th { border-bottom: 1px solid #aaa; } -table.footnote td, table.footnote th { - border: 0 !important; -} - th { text-align: left; padding-right: 5px; @@ -614,20 +606,26 @@ ol.simple p, ul.simple p { margin-bottom: 0; } - -dl.footnote > dt, -dl.citation > dt { +aside.footnote > span, +div.citation > span { float: left; - margin-right: 0.5em; } - -dl.footnote > dd, -dl.citation > dd { +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { margin-bottom: 0em; } - -dl.footnote > dd:after, -dl.citation > dd:after { +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { content: ""; clear: both; } @@ -644,10 +642,6 @@ dl.field-list > dt { padding-right: 5px; } -dl.field-list > dt:after { - content: ":"; -} - dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js index e509e483..527b876c 100644 --- a/docs/build/html/_static/doctools.js +++ b/docs/build/html/_static/doctools.js @@ -2,325 +2,155 @@ * doctools.js * ~~~~~~~~~~~ * - * Sphinx JavaScript utilities for all documentation. + * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - * - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL - */ -jQuery.urldecode = function(x) { - if (!x) { - return x - } - return decodeURIComponent(x.replace(/\+/g, ' ')); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); } - return result; }; -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - /** * Small JavaScript module for the documentation. */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { - this.initOnKeyListeners(); - } +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); }, /** * i18n support */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } }, - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; }, - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; }, /** - * add context elements like header anchor links + * helper function to focus on search bar */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); }, /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + * Initialise the domain index toggle buttons */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, + }; - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - var url = new URL(window.location); - url.searchParams.delete('highlight'); - window.history.replaceState({}, '', url); + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); }, - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box, textarea, dropdown or button - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey - && !event.shiftKey) { - switch (event.keyCode) { - case 37: // left - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); } break; - case 39: // right - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); } break; } } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } }); - } + }, }; // quick alias for translations -_ = Documentation.gettext; +const _ = Documentation.gettext; -$(document).ready(function() { - Documentation.init(); -}); +_ready(Documentation.init); diff --git a/docs/build/html/_static/documentation_options.js b/docs/build/html/_static/documentation_options.js index 7e43b947..ad675b93 100644 --- a/docs/build/html/_static/documentation_options.js +++ b/docs/build/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '1.1.0', + VERSION: '1.1.2', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', @@ -8,5 +8,7 @@ var DOCUMENTATION_OPTIONS = { LINK_SUFFIX: '.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, }; \ No newline at end of file diff --git a/docs/build/html/_static/jquery-3.6.0.js b/docs/build/html/_static/jquery-3.6.0.js new file mode 100644 index 00000000..fc6c299b --- /dev/null +++ b/docs/build/html/_static/jquery-3.6.0.js @@ -0,0 +1,10881 @@ +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.6.0", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.6 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2021-02-16 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + ) ); + } : + function( a, b ) { + if ( b ) { + while ( ( b = b.parentNode ) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + + // Choose the first element that is related to our preferred document + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { + return -1; + } + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( ( cur = cur.parentNode ) ) { + ap.unshift( cur ); + } + cur = b; + while ( ( cur = cur.parentNode ) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[ i ] === bp[ i ] ) { + i++; + } + + return i ? + + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[ i ], bp[ i ] ) : + + // Otherwise nodes in our document sort first + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + setDocument( elem ); + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch ( e ) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + + // Set document vars if needed + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return ( sel + "" ).replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + + // If no nodeType, this is expected to be an array + while ( ( node = elem[ i++ ] ) ) { + + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); + + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + + // nth-* requires argument + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[ 6 ] && match[ 2 ]; + + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + + // Get excess from tokenize (recursively) + ( excess = tokenize( unquoted, true ) ) && + + // advance to the next closing parenthesis + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + + // excess is a negative index + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { + return true; + } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + /* eslint-disable max-len */ + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + /* eslint-enable max-len */ + + }; + }, + + "CHILD": function( type, what, _argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, _context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( ( node = node[ dir ] ) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( ( node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + + // Use previously-cached element index if available + if ( useCache ) { + + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + + // Use the same loop as above to seek `elem` from the start + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || + ( node[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + ( outerCache[ node.uniqueID ] = {} ); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction( function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + } + } ) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + + // Potentially complex pseudos + "not": markFunction( function( selector ) { + + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction( function( seed, matches, _context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); + } + } + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; + matcher( input, null, xml, results ); + + // Don't keep the element (issue #299) + input[ 0 ] = null; + return !results.pop(); + }; + } ), + + "has": markFunction( function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + } ), + + "contains": markFunction( function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + } ), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + + // lang value must be a valid identifier + if ( !ridentifier.test( lang || "" ) ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( ( elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + return false; + }; + } ), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); + }, + + "selected": function( elem ) { + + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos[ "empty" ]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo( function() { + return [ 0 ]; + } ), + + "last": createPositionalPseudo( function( _matchIndexes, length ) { + return [ length - 1 ]; + } ), + + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + } ), + + "even": createPositionalPseudo( function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "odd": createPositionalPseudo( function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ), + + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + } ) + } +}; + +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( match ) { + + // Don't consume trailing commas as valid + soFar = soFar.slice( match[ 0 ].length ) || soFar; + } + groups.push( ( tokens = [] ) ); + } + + matched = false; + + // Combinators + if ( ( match = rcombinators.exec( soFar ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + + // Cast descendant combinators to space + type: match[ 0 ].replace( rtrim, " " ) + } ); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { + matched = match.shift(); + tokens.push( { + value: matched, + type: type, + matches: match + } ); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[ i ].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( ( elem = elem[ dir ] ) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( ( oldCache = uniqueCache[ key ] ) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return ( newCache[ 2 ] = oldCache[ 2 ] ); + } else { + + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[ i ]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[ 0 ]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[ i ], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( ( elem = unmatched[ i ] ) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction( function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) ) { + + // Restore matcherIn since elem is not yet a final match + temp.push( ( matcherIn[ i ] = elem ) ); + } + } + postFinder( null, ( matcherOut = [] ), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + + seed[ temp ] = !( results[ temp ] = elem ); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + } ); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + ( checkContext = context ).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + } else { + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[ j ].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + len = elems.length; + + if ( outermost ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + + // They will have gone through all possible matchers + if ( ( elem = !matcher && elem ) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( ( matcher = setMatchers[ j++ ] ) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[ i ] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[ i ]; + + // Abort if we hit a combinator + if ( Expr.relative[ ( type = token.type ) ] ) { + break; + } + if ( ( find = Expr.find[ type ] ) ) { + + // Search, expanding context for leading sibling combinators + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert( function( el ) { + + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert( function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + } ); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert( function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + } ); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + ( val = elem.getAttributeNode( name ) ) && val.specified ? + val.value : + null; + } + } ); +} + +return Sizzle; + +} )( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +} +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, _i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, _i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, _i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( _i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the primary Deferred + primary = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + primary.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( primary.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return primary.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); + } + + return primary.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, _key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( _all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; + + // Support: IE <=9 only + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = Object.create( null ); + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + + // Support: Chrome 86+ + // In Chrome, if an element having a focusout handler is blurred by + // clicking outside of it, it invokes the handler synchronously. If + // that handler calls `.remove()` on the element, the data is cleared, + // leaving `result` undefined. We need to guard against this. + return result && result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + which: true +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + // Suppress native focus or blur as it's already being fired + // in leverageNative. + _default: function() { + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.get( src ); + events = pdataOld.events; + + if ( events ) { + dataPriv.remove( dest, "handle events" ); + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = flat( args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + }, doc ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html; + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableTrDimensionsVal, reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + // + // Support: Firefox 70+ + // Only Firefox includes border widths + // in computed dimensions. (gh-4529) + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; + tr.style.cssText = "border:1px solid"; + + // Support: Chrome 86+ + // Height set through cssText does not get applied. + // Computed height then comes back as 0. + tr.style.height = "1px"; + trChild.style.height = "9px"; + + // Support: Android 8 Chrome 86+ + // In our bodyBackground.html iframe, + // display for all div elements is set to "inline", + // which causes a problem only in Android 8 Chrome 86. + // Ensuring the div is display: block + // gets around this issue. + trChild.style.display = "block"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + + parseInt( trStyle.borderTopWidth, 10 ) + + parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( _elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. + if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( _i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this.document || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = { guid: Date.now() }; + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, parserErrorElem; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) {} + + parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; + if ( !xml || parserErrorElem ) { + jQuery.error( "Invalid XML: " + ( + parserErrorElem ? + jQuery.map( parserErrorElem.childNodes, function( el ) { + return el.textContent; + } ).join( "\n" ) : + data + ) ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ).filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ).map( function( _i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + +originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Use a noop converter for missing script but not if jsonp + if ( !isSuccess && + jQuery.inArray( "script", s.dataTypes ) > -1 && + jQuery.inArray( "json", s.dataTypes ) < 0 ) { + s.converters[ "text script" ] = function() {}; + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( _i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + + +jQuery._evalUrl = function( url, options, doc ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options, doc ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + @@ -86,7 +89,7 @@

Quick search

- + @@ -103,13 +106,13 @@

Quick search

-
-

spatialpy.core package

-
-

Submodules

-
-
-

spatialpy.core.boundarycondition module

+
+

spatialpy.core package

+
+

Submodules

+
+
+

spatialpy.core.boundarycondition module

class spatialpy.core.boundarycondition.BoundaryCondition(xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None, type_id=None, deterministic=True, target=None, value=None, model=None)[source]
@@ -129,7 +132,7 @@

Submodules -
Parameters
+
Parameters:

+
+

spatialpy.core.cleanup module

spatialpy.core.cleanup.cleanup_build_files(build_dir=None)[source]

Cleanup all spatialpy_build directories.

-
Parameters
+
Parameters:

build_dir (string) – Path to the build directory to be removed. (optional)

@@ -186,7 +189,7 @@

Submodulesspatialpy.core.cleanup.cleanup_result_files(result_dir=None)[source]

Cleanup all spatialpy_result directories.

-
Parameters
+
Parameters:

result_dir (string) – Path to the result directory to be removed. (optional)

@@ -198,19 +201,19 @@

Submodules -

spatialpy.core.datafunction module

+

+
+

spatialpy.core.datafunction module

class spatialpy.core.datafunction.DataFunction(name=None)[source]

Bases: object

Abstract class used to constuct the data function.

-
Parameters
+
Parameters:

name (str) – Name of the Data Function.

-
Raises
+
Raises:

DataFunctionError – If a name is not provided.

@@ -220,13 +223,13 @@

Submodules -
Parameters
+
Parameters:

point (float[3]) – The x, y, z position.

-
Returns
+
Returns:

Value of function at this spatial location.

-
Return type
+
Return type:

float

@@ -234,16 +237,16 @@

Submodules -

spatialpy.core.domain module

+

+
+

spatialpy.core.domain module

class spatialpy.core.domain.Domain(numpoints, xlim, ylim, zlim, rho0=1.0, c0=10, P0=None, gravity=None, actions=None)[source]

Bases: object

Domain class for SpatialPy. A domain defines points and attributes of a regional space for simulation.

-
Parameters
+
Parameters:
@@ -394,11 +397,11 @@

Submodulesapply_remove_action(action)[source]

Remove particles within a domain region defined by the actions geometry.

-
Parameters
+
Parameters:

action (dict) – Remove action containing a geometry. Example: {‘type’: ‘remove’, ‘geometry’:geometry_obj}

-
Raises
+
Raises:

DomainError – If action is not a set action, the actions geometry is an invalid type, the action is missing props, or type_id in props contains an invalid character or is an int < 0.

@@ -411,11 +414,11 @@

Submodules -
Parameters
+
Parameters:

action (dict) – Set action containing a geometry and particle properties. Example: {‘type’: ‘set’, ‘geometry’:geometry_obj , ‘props’:{}}

-
Raises
+
Raises:

DomainError – If action is not a set action, the actions geometry is an invalid type, the action is missing props, or type_id in props contains an invalid character or is an int < 0.

@@ -433,13 +436,13 @@

Submodulesclosest_vertex(point)[source]

Find the nearest vertex of a given point in the domain.

-
Parameters
+
Parameters:

point (float(3)) – Target source point

-
Returns
+
Returns:

The coordinates of the nearest vertex to the source point.

-
Return type
+
Return type:

float(3)

@@ -451,7 +454,7 @@

Submodules -
Raises
+
Raises:

DomainError – If a type_id is not set or rho=0 for a particle.

@@ -462,10 +465,10 @@

Submodulescoordinates()[source]

Get coordinates within domain.

-
Returns
+
Returns:

Spatial coordinate vertices of points.

-
Return type
+
Return type:

numpy.array

@@ -476,7 +479,7 @@

Submodulesclassmethod create_2D_domain(xlim, ylim, numx, numy, type_id=1, mass=1.0, nu=1.0, rho=None, c=0, fixed=False, enable=True, apply_action=True, **kwargs)[source]

Create a filled 2D domain

-
Parameters
+
Parameters:
  • xlim (float(2)) – highest and lowest coordinate in the x dimension

  • ylim (float(2)) – highest and lowest coordinate in the y dimension

  • @@ -493,10 +496,10 @@

    SubmodulesDomain.

-
Returns
+
Returns:

Uniform 2D SpatialPy Domain object.

-
Return type
+
Return type:

spatialpy.core.domain.Domain

@@ -507,7 +510,7 @@

Submodulesclassmethod create_3D_domain(xlim, ylim, zlim, numx, numy, numz, type_id=1, mass=1.0, nu=1.0, rho=None, c=0, fixed=False, enable=True, apply_action=True, **kwargs)[source]

Create a filled 3D domain

-
Parameters
+
Parameters:
  • xlim (float(2)) – highest and lowest coordinate in the x dimension

  • ylim (float(2)) – highest and lowest coordinate in the y dimension

  • @@ -526,10 +529,10 @@

    SubmodulesDomain.

-
Returns
+
Returns:

Uniform 3D SpatialPy Domain object.

-
Return type
+
Return type:

spatialpy.core.domain.Domain

@@ -540,16 +543,16 @@

Submodulesdistance_between_2_vertices(start, end)[source]

Get distance between 2 domain vertices.

-
Parameters
+
Parameters:
  • start (float(3)) – Starting point

  • end (float(2)) – Ending point

-
Returns
+
Returns:

a distance measurement between start and end point

-
Return type
+
Return type:

float

@@ -560,7 +563,7 @@

Submodulesfill_with_particles(geometry_ivar, deltax, deltay=None, deltaz=None, xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None, enable=True, apply_action=True, **kwargs)[source]

Fill a region defined by a cartesian lattice and geometric shape with particles.

-
Parameters
+
Parameters:
-
Returns
+
Returns:

The number of particles that were created within this lattice and geometry.

-
Return type
+
Return type:

int

@@ -591,10 +594,10 @@

Submodulesfind_boundary_points(update=False)[source]

Find all vertices that exist on boundary.

-
Returns
+
Returns:

A numpy array indexed by vertices, True for boundary points, else false.

-
Return type
+
Return type:

np.ndarray(dtype=bool)

@@ -605,10 +608,10 @@

Submodulesfind_h()[source]

Find h value of system. This value is based off of the particle which has the greatest distance to its nearest neighbor.

-
Returns
+
Returns:

Greatest distance between particle and nearest neighbor.

-
Return type
+
Return type:

float

@@ -619,10 +622,10 @@

Submodulesget_bounding_box()[source]

Get the bounding box of the entire domain.

-
Returns
+
Returns:

Limits of the bounding box.

-
Return type
+
Return type:

tuple(float(2), float(2), float(2))

@@ -635,10 +638,10 @@

Submodules -
Returns
+
Returns:

a numpy array containing the mean for each vertex based on all incident cells

-
Return type
+
Return type:

numpy.array

@@ -649,10 +652,10 @@

Submodulesget_num_voxels()[source]

Get number of voxels in domain.

-
Returns
+
Returns:

Number of voxels in the domain.

-
Return type
+
Return type:

int

@@ -663,16 +666,16 @@

Submodulesget_type_def(type_id)[source]

Get the C++ type definition for the given type.

-
Parameters
+
Parameters:

type_id (str) – The type_id within the domain.

-
Returns
+
Returns:

The C++ type definition for the type_id.

-
Return type
+
Return type:

str

-
Raises
+
Raises:

DomainError – If the type is not defined within the domain.

@@ -683,10 +686,10 @@

Submodulesget_vol()[source]

Get the total volume of the domain.

-
Returns
+
Returns:

Total volume of the system.

-
Return type
+
Return type:

float

@@ -697,7 +700,7 @@

Submodulesclassmethod import_meshio_object(mesh_obj, subdomain_file=None, type_ids=None, enable=True, apply_action=True)[source]

Import a python meshio mesh object.

-
Parameters
+
Parameters:
@@ -720,7 +723,7 @@

Submodulesplot_types(width=None, height=None, colormap=None, size=None, title=None, included_types_list=None, use_matplotlib=False, return_plotly_figure=False)[source]

Plots the domain using plotly. Can only be viewed in a Jupyter Notebook.

-
Parameters
+
Parameters:
@@ -746,7 +749,7 @@

Submodulespreview_actions(start=0, end=None, **kwargs)[source]

Preview effects of actions to the domain.

-
Parameters
+
Parameters:

+
+

spatialpy.core.geometry module

class spatialpy.core.geometry.CombinatoryGeometry(formula, geo_namespace)[source]
@@ -895,7 +898,7 @@

Submodules -
Parameters
+
Parameters:

+
+

spatialpy.core.initialcondition module

class spatialpy.core.initialcondition.InitialCondition[source]
@@ -1055,7 +1058,7 @@

Submodulesapply(model)[source]

Set the initial condition of the species to the count.

-
Parameters
+
Parameters:

model (spatialpy.core.model.Model) – Model contianing the target species.

@@ -1066,10 +1069,10 @@

Submodules
class spatialpy.core.initialcondition.PlaceInitialCondition(species, count, location)[source]
-

Bases: spatialpy.core.initialcondition.InitialCondition

+

Bases: InitialCondition

Class used to defined the place initial condition in SpatialPy.

-
Parameters
+
Parameters:

+
+

spatialpy.core.lattice module

class spatialpy.core.lattice.CartesianLattice(xmin, xmax, deltax, center=None, ymin=None, ymax=None, zmin=None, zmax=None, deltay=None, deltaz=None)[source]
-

Bases: spatialpy.core.lattice.Lattice

+

Bases: Lattice

Cartesian lattice class provides a method for creating parts of the spatial

domain within a cartesian coordinate system.

-
Parameters
+
Parameters:
+
+

spatialpy.core.model module

class spatialpy.core.model.Model(name='spatialpy')[source]

Bases: object

Representation of a spatial biochemical model.

-
Parameters
+
Parameters:

name (str) – Name of the model

@@ -1474,16 +1477,16 @@

Submodules -
Parameters
+
Parameters:

components (Species, Parameters, Reactions, Domain, Data Function, Initial Conditions, Boundary Conditions, and TimeSpan or list) – The component or list of components to be added the the model.

-
Returns
+
Returns:

The components that were added to the model.

-
Return type
+
Return type:

Species, Parameters, Reactions, Domain, Data Function, Initial Conditions, Boundary Conditions, TimeSpan, or list

-
Raises
+
Raises:

ModelError – Component is invalid.

@@ -1494,16 +1497,16 @@

Submodulesadd_boundary_condition(bound_cond)[source]

Add an boundary condition object to the model.

-
Parameters
+
Parameters:

bound_cond (spatialpy.core.boundarycondition.BoundaryCondition) – Boundary condition to be added

-
Returns
+
Returns:

The boundary condition or list of boundary conditions that were added to the model.

-
Return type
+
Return type:

spatialpy.core.boundarycondition.BoundaryCondition | list(spatialpy.core.boundarycondition.BoundaryCondition)

-
Raises
+
Raises:

ModelError – If an invalid boundary conidition is provided.

@@ -1517,16 +1520,16 @@

Submodules -
Parameters
+
Parameters:

data_function (spatialpy.DataFunction) – Data function to be added.

-
Returns
+
Returns:

DataFunction object(s) added tothe model.

-
Return type
+
Return type:

spatialpy.core.datafunction.DataFunction | list(spatialpy.core.datafunction.DataFunction)

-
Raises
+
Raises:

ModelError – Invalid DataFunction

@@ -1537,10 +1540,10 @@

Submodulesadd_domain(domain)[source]

Add a spatial domain to the model

-
Parameters
+
Parameters:

domain (spatialpy.core.domain.Domain) – The Domain object to be added to the model

-
Raises
+
Raises:

ModelError – Invalid Domain object

@@ -1551,16 +1554,16 @@

Submodulesadd_initial_condition(init_cond)[source]

Add an initial condition object to the initialization of the model.

-
Parameters
+
Parameters:

init_cond (spatialpy.core.initialcondition.InitialCondition) – Initial condition to be added.

-
Returns
+
Returns:

The initial condition or list of initial conditions that were added to the model.

-
Return type
+
Return type:

spatialpy.core.initialcondition.InitialCondition | list(spatialpy.core.initialcondition.InitialCondition)

-
Raises
+
Raises:

ModelError – If an invalid initial condition is provided.

@@ -1571,16 +1574,16 @@

Submodulesadd_parameter(parameters)[source]

Adds a parameter, or list of parameters to the model.

-
Parameters
+
Parameters:

parameters (spatialpy.core.parameter.Parameter | list(spatialpy.core.parameter.Parameter)) – The parameter or list of parameters to be added to the model object.

-
Returns
+
Returns:

A parameter or list of Parameters that were added to the model.

-
Return type
+
Return type:

spatialpy.core.parameter.Parameter | list(spatialpy.core.parameter.Parameter)

-
Raises
+
Raises:

ModelError – If an invalid parameter is provided or if Parameter.validate fails.

@@ -1591,16 +1594,16 @@

Submodulesadd_reaction(reactions)[source]

Adds a reaction, or list of reactions to the model.

-
Parameters
+
Parameters:

reactions (spatialpy.core.reaction.Reaction | list(spatialpy.core.reaction.Reaction)) – The reaction or list of reactions to be added to the model object

-
Returns
+
Returns:

The reaction or list of reactions that were added to the model.

-
Return type
+
Return type:

spatialpy.core.reaction.Reaction | list(spatialpy.core.reaction.Reaction)

-
Raises
+
Raises:

ModelError – If an invalid reaction is provided or if Reaction.validate fails.

@@ -1611,16 +1614,16 @@

Submodulesadd_species(species)[source]

Adds a species, or list of species to the model.

-
Parameters
+
Parameters:

species (spatialpy.core.species.Species | list(spatialpy.core.species.Species) – The species or list of species to be added to the model object.

-
Returns
+
Returns:

The species or list of species that were added to the model.

-
Return type
+
Return type:

spatialpy.core.species.Species | list(spatialpy.core.species.Species)

-
Raises
+
Raises:

ModelError – If an invalid species is provided or if Species.validate fails.

@@ -1633,13 +1636,13 @@

Submodules -
Returns
+
Returns:

The stoichiometric and dependency_graph

-
Return type
+
Return type:

tuple

-
Raises
+
Raises:

ModelError – Timestep size exceeds output frequency or Model is missing a domain

@@ -1686,10 +1689,10 @@

Submodulesdelete_boundary_condition(bound_cond)[source]

Removes an boundary condition object from the model object.

-
Parameters
+
Parameters:

bound_cond (spatialpy.core.BoundaryCondition) – boundary condition object to be removed.

-
Raises
+
Raises:

ModelError – If the boundary condition is not part of the model.

@@ -1700,10 +1703,10 @@

Submodulesdelete_data_function(name)[source]

Removes an data function object from the model object.

-
Parameters
+
Parameters:

name (spatialpy.core.DataFunction) – data function object to be removed.

-
Raises
+
Raises:

ModelError – If the data function is not part of the model.

@@ -1714,10 +1717,10 @@

Submodulesdelete_initial_condition(init_cond)[source]

Removes an initial condition object from the model object.

-
Parameters
+
Parameters:

init_cond (spatialpy.core.InitialCondition) – initial condition object to be removed.

-
Raises
+
Raises:

ModelError – If the initial condition is not part of the model.

@@ -1728,7 +1731,7 @@

Submodulesdelete_parameter(name)[source]

Removes a parameter object by name.

-
Parameters
+
Parameters:

name (str) – Name of the parameter object to be removed.

@@ -1739,7 +1742,7 @@

Submodulesdelete_reaction(name)[source]

Removes a reaction object by name.

-
Parameters
+
Parameters:

name (str) – Name of the reaction object to be removed.

@@ -1750,10 +1753,10 @@

Submodulesdelete_species(name)[source]

Removes a species object by name.

-
Parameters
+
Parameters:

name (str) – Name of the species object to be removed

-
Raises
+
Raises:

ModelError – If species is not part of the model.

@@ -1764,10 +1767,10 @@

Submodulesget_all_boundary_conditions()[source]

Returns a list of all boundary conditions in the model.

-
Returns
+
Returns:

A list of all boundary conditions in the model.

-
Return type
+
Return type:

list

@@ -1778,10 +1781,10 @@

Submodulesget_all_data_functions()[source]

Returns a dict of all data functions in the model.

-
Returns
+
Returns:

A dict of all data functions in the model.

-
Return type
+
Return type:

OrderedDict

@@ -1792,10 +1795,10 @@

Submodulesget_all_initial_conditions()[source]

Returns a list of all initial conditions in the model.

-
Returns
+
Returns:

A list of all initial conditions in the model.

-
Return type
+
Return type:

list

@@ -1806,10 +1809,10 @@

Submodulesget_all_parameters()[source]

Return a dictionary of all model parameters, indexed by name.

-
Returns
+
Returns:

A dict of all parameters in the model, in the form: {name : parameter object}

-
Return type
+
Return type:

OrderedDict

@@ -1820,10 +1823,10 @@

Submodulesget_all_reactions()[source]

Returns a dictionary of all model reactions using names as keys.

-
Returns
+
Returns:

A dict of all reaction in the model, in the form: {name : reaction object}.

-
Return type
+
Return type:

OrderedDict

@@ -1834,10 +1837,10 @@

Submodulesget_all_species()[source]

Returns a dictionary of all species in the model using names as keys.

-
Returns
+
Returns:

A dict of all species in the model, in the form: {name : species object}.

-
Return type
+
Return type:

OrderedDict

@@ -1848,16 +1851,16 @@

Submodulesget_data_function(name)[source]

Returns a data function object by name.

-
Parameters
+
Parameters:

name (str) – Name of the data function object to be returned

-
Returns
+
Returns:

The specified data function object.

-
Return type
+
Return type:

spatialpy.core.datafunction.DataFunction

-
Raises
+
Raises:

ModelError – If the data function is not part of the model.

@@ -1868,13 +1871,13 @@

Submodulesget_element(name)[source]

Get a model element specified by name.

-
Parameters
+
Parameters:

name (str) – Name of the element to be returned.

-
Returns
+
Returns:

The specified spatialpy.Model element.

-
Return type
+
Return type:

Species, Parameters, Reactions, Domain, Data Function, or TimeSpan

@@ -1885,10 +1888,10 @@

Submodulesget_num_reactions()[source]

Returns the number of reactions in this model.

-
Returns
+
Returns:

The total number of different reactions in the model.

-
Return type
+
Return type:

int

@@ -1899,10 +1902,10 @@

Submodulesget_num_species()[source]

Returns total number of different species contained in the model.

-
Returns
+
Returns:

Number of different species in the model.

-
Return type
+
Return type:

int

@@ -1913,16 +1916,16 @@

Submodulesget_parameter(name)[source]

Returns a parameter object by name.

-
Parameters
+
Parameters:

name (str) – Name of the parameter object to be returned

-
Returns
+
Returns:

The specified parameter object.

-
Return type
+
Return type:

Spatialpy.core.parameter.Parameter

-
Raises
+
Raises:

ModelError – If the parameter is not part of the model.

@@ -1933,16 +1936,16 @@

Submodulesget_reaction(rname)[source]

Returns a reaction object by name.

-
Parameters
+
Parameters:

name (str) – Name of the reaction object to be returned

-
Returns
+
Returns:

The specified reaction object.

-
Return type
+
Return type:

spatialpy.core.reaction.Reaction

-
Raises
+
Raises:

ModelError – If the reaction is not part of the model.

@@ -1953,16 +1956,16 @@

Submodulesget_species(name)[source]

Returns a species object by name.

-
Parameters
+
Parameters:

name (str) – Name of the species object to be returned.

-
Returns
+
Returns:

The specified species object.

-
Return type
+
Return type:

spatialpy.core.species.Species

-
Raises
+
Raises:

ModelError – If the species is not part of the model.

@@ -1978,7 +1981,7 @@

Submodulesrun(number_of_trajectories=1, seed=None, timeout=None, number_of_threads=None, debug_level=0, debug=False, profile=False)[source]

Simulate the model. Returns a result object containing simulation results.

-
Parameters
+
Parameters:
@@ -2005,10 +2008,10 @@

Submodules -
Returns
+
Returns:

the dictionary mapping user data function names to their internal SpatialPy notation.

-
Return type
+
Return type:

OrderedDict

@@ -2020,10 +2023,10 @@

Submodules -
Returns
+
Returns:

the dictionary mapping user parameter names to their internal SpatialPy notation.

-
Return type
+
Return type:

OrderedDict

@@ -2035,10 +2038,10 @@

Submodules -
Returns
+
Returns:

the dictionary mapping user species names to their internal SpatialPy notation.

-
Return type
+
Return type:

OrderedDict

@@ -2049,7 +2052,7 @@

Submodulesset_timesteps(output_interval, num_steps, timestep_size=None)[source]

Set the simlation time span parameters.

-
Parameters
+
Parameters:
-

-
-

spatialpy.core.parameter module

+ +
+

spatialpy.core.parameter module

class spatialpy.core.parameter.Parameter(name=None, expression=None)[source]
@@ -2119,14 +2122,14 @@

Submodules -
Parameters
+
Parameters:
  • name (str) – The name by which this parameter is called or referenced.

  • expression (str) – String for a function calculating parameter values. Should be evaluable in namespace of Model.

-
Raises
+
Raises:

ParameterError – Arg is of invalid type. Required arg set to None. Arg value is outside of accepted bounds.

@@ -2135,14 +2138,14 @@

Submodulesvalidate(expression=None, coverage='all')[source]

Validate the parameter.

-
Parameters
+
Parameters:
  • expression (str) – String for a function calculating parameter values. Should be evaluable in namespace of Model.

  • coverage (str) – The scope of attributes to validate. Set to an attribute name to restrict validation to a specific attribute.

-
Raises
+
Raises:

ParameterError – Attribute is of invalid type. Required attribute set to None. Attribute value is outside of accepted bounds.

@@ -2150,9 +2153,9 @@

Submodules -

spatialpy.core.reaction module

+

+
+

spatialpy.core.reaction module

class spatialpy.core.reaction.Reaction(name=None, reactants=None, products=None, propensity_function=None, ode_propensity_function=None, rate=None, annotation=None, restrict_to=None)[source]
@@ -2164,7 +2167,7 @@

Submodules -
Parameters
+
Parameters:

+
+

spatialpy.core.result module

class spatialpy.core.result.Result(model=None, result_dir=None)[source]
@@ -2324,7 +2327,7 @@

Submodules -
Parameters
+
Parameters:

folder_name (str) – A path where the vtk files will be written, created if non-existant. Defaults current working directory

@@ -2335,7 +2338,7 @@

Submodulesget_property(property_name, timepoints=None)[source]

Get the property values for a given species in the model for one or all timepoints. If ‘timepoints’ is None (default), a matrix of dimension: (number of timepoints) x (number of voxels) is returned. If an integer value is given, that value is used to index into the timespan, and that time point is returned as a 1D array with size (number of voxel).

-
Parameters
+
Parameters:
@@ -2366,7 +2369,7 @@

Submodules -
Parameters
+
Parameters:

+
+

spatialpy.core.spatialpyerror module

exception spatialpy.core.spatialpyerror.BoundaryConditionError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Base class for exceptions in the boundarycondition module.

exception spatialpy.core.spatialpyerror.DataFunctionError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in the datafunction module.

exception spatialpy.core.spatialpyerror.DomainError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in the domain module.

exception spatialpy.core.spatialpyerror.GeometryError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in the geometry module.

exception spatialpy.core.spatialpyerror.InitialConditionError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in initailcondition module.

exception spatialpy.core.spatialpyerror.LatticeError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in lattice module.

@@ -2577,14 +2580,14 @@

Submodules
exception spatialpy.core.spatialpyerror.ParameterError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in parameter module.

exception spatialpy.core.spatialpyerror.ReactionError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in reaction module.

@@ -2605,28 +2608,28 @@

Submodules
exception spatialpy.core.spatialpyerror.SimulationTimeout[source]
-

Bases: spatialpy.core.spatialpyerror.SimulationError

+

Bases: SimulationError

Exception raised for timeout errors.

exception spatialpy.core.spatialpyerror.SpeciesError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in the species module.

exception spatialpy.core.spatialpyerror.TimespanError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in the timespan module.

exception spatialpy.core.spatialpyerror.TransformationError[source]
-

Bases: spatialpy.core.spatialpyerror.ModelError

+

Bases: ModelError

Class for exceptions in the transformation module.

@@ -2640,7 +2643,7 @@

Submodules
exception spatialpy.core.spatialpyerror.VTKReaderIOError(message)[source]
-

Bases: spatialpy.core.spatialpyerror.VTKReaderError

+

Bases: VTKReaderError

Exception raised for I/O errors.

@@ -2651,20 +2654,20 @@

Submodules -

spatialpy.core.species module

+

+
+

spatialpy.core.species module

class spatialpy.core.species.Species(name=None, diffusion_coefficient=None, restrict_to=None)[source]

Bases: object

Model of a biochemical species. Must be assigned a diffusion coefficent.

-
Parameters
+
Parameters:
  • name (str) – Name of the Species

  • diffusion_coefficient (float) – Non-constant coefficient of diffusion for Species.

  • -
  • restrict_to (int, str, list of ints or list of strs) – Set the diffusion coefficient to zero for ‘species’ in all types not in ‘listOfTypes’. This effectively restricts the movement of ‘species’ to the types specified in ‘listOfTypes’.

  • +
  • restrict_to (int, str, list of ints or list of strs) – Set the diffusion coefficient to zero for ‘species’ in all types not in ‘listOfTypes’. This effectively restricts the movement of ‘species’ to the types specified in ‘listOfTypes’.

@@ -2673,10 +2676,10 @@

Submodulesset_diffusion_coefficient(diffusion_coefficient)[source]

Setter method for non-constant coefficient of diffusion for Species.

-
Parameters
+
Parameters:

diffusion_coefficient (float) – Non-constant coefficient of diffusion for Species.

-
Raises
+
Raises:

SpeciesError – If diffusion_coefficient is negative or not a valid type.

@@ -2687,10 +2690,10 @@

Submodulesvalidate(diffusion_coefficient=None, coverage='all')[source]

Validate the species.

-
Parameters
+
Parameters:

coverage (str) – The scope of attributes to validate. Set to an attribute name to restrict validation to a specific attribute.

-
Raises
+
Raises:

SpeciesError – Attribute is of invalid type. Required attribute set to None. Attribute is value outside of accepted bounds.

@@ -2698,24 +2701,24 @@

Submodules -

spatialpy.core.timespan module

+

+
+

spatialpy.core.timespan module

class spatialpy.core.timespan.TimeSpan(items, timestep_size=None)[source]
-

Bases: collections.abc.Iterator

+

Bases: Iterator

Model timespan that describes the duration to run the simulation and at which timepoint to sample the species populations during the simulation.

-
Parameters
+
Parameters:
  • items (list, tuple, range, or numpy.ndarray) – Evenly-spaced list of times at which to sample the species populations during the simulation. Best to use the form np.linspace(<start time>, <end time>, <number of time-points, inclusive>)

  • timestep_size (int | float) – Size of each timestep in seconds

-
Raises
+
Raises:

TimespanError – items is an invalid type.

@@ -2724,20 +2727,20 @@

Submodulesclassmethod arange(increment, t=20, timestep_size=None)[source]

Creates a timespan using the form np.arange(0, <t, inclusive>, <increment>).

-
Parameters
+
Parameters:
  • increment (float | int) – Distance between sample points for the species populations during the simulation.

  • t (float | int) – End time for the simulation.

  • timestep_size (int | float) – Size of each timestep in seconds

-
Returns
+
Returns:

Timespan for the model.

-
Return type
+
Return type:

spatialpy.TimeSpan

-
Raises
+
Raises:

TimespanError – t or increment are None, <= 0, or invalid type.

@@ -2748,20 +2751,20 @@

Submodulesclassmethod linspace(t=20, num_points=None, timestep_size=None)[source]

Creates a timespan using the form np.linspace(0, <t>, <num_points, inclusive>).

-
Parameters
+
Parameters:
  • t (float | int) – End time for the simulation.

  • num_points (int) – Number of sample points for the species populations during the simulation.

  • timestep_size (int | float) – Size of each timestep in seconds

-
Returns
+
Returns:

Timespan for the model.

-
Return type
+
Return type:

spatialpy.TimeSpan

-
Raises
+
Raises:

TimespanError – t or num_points are None, <= 0, or invalid type.

@@ -2772,13 +2775,13 @@

Submodulesvalidate(items=None, timestep_size=None, coverage='build')[source]

Validate the models time span

-
Parameters
+
Parameters:
  • timestep_size (int | float) – Size of each timestep in seconds

  • coverage (str) – The scope of attributes to validate. Set to an attribute name to restrict validation to a specific attribute.

-
Raises
+
Raises:

TimespanError – Timespan is an invalid type, empty, not uniform, contains a single repeated value, or contains a negative initial time.

@@ -2786,20 +2789,20 @@

Submodules -

spatialpy.core.transformation module

+

+
+

spatialpy.core.transformation module

class spatialpy.core.transformation.ReflectionTransformation(point1, normal=None, point2=None, point3=None, geometry=None, lattice=None, transformation=None)[source]
-

Bases: spatialpy.core.transformation.Transformation

+

Bases: Transformation

Reflection transformation class provides a methods for applying and reversing

reflection transformations around an arbitrary plane to parts the spatial domain.

-
Parameters
+
Parameters:
+
+

spatialpy.core.visualization module

class spatialpy.core.visualization.Visualization(data)[source]
@@ -3206,7 +3209,7 @@

Submodulesplot_scatter(plot_args=None, scatter_args=None, multiple_graphs=False, title=None, limits=None)[source]

Visualize data using maplotlib scatter plots.

-
Parameters
+
Parameters:
  • plot_args (dict) – additional keyword arguments passed to matplotlib.pyplot.subplots

  • scatter_args (dist) – dict of additional keyword arguments passed to matplotlib.pyplot.scatter for each group.

  • @@ -3218,9 +3221,9 @@

    Submodules -

    spatialpy.core.vtkreader module

    +

+
+

spatialpy.core.vtkreader module

class spatialpy.core.vtkreader.VTKReader(filename=None, debug=False)[source]
@@ -3228,7 +3231,7 @@

Submoduleshttps://vtk.org/wp-content/uploads/2015/04/file-formats.pdf

-
Parameters
+
Parameters:
  • filename (str) – name of SpatialPy VTK file

  • debug (bool) – If true, will print debugging information.

  • @@ -3240,13 +3243,13 @@

    Submodulesget_array_name(index)[source]

    Get the array name.

    -
    Parameters
    +
    Parameters:

    index (int) – index

    -
    Returns
    +
    Returns:

    Name/Key for arraid id

    -
    Return type
    +
    Return type:

    int | None

    @@ -3257,10 +3260,10 @@

    Submodulesget_arrays()[source]

    Get the dictionary of arrays.

    -
    Returns
    +
    Returns:

    dictionary of data arrays

    -
    Return type
    +
    Return type:

    dict

    @@ -3271,10 +3274,10 @@

    Submodulesget_num_points()[source]

    Get the number of points.

    -
    Returns
    +
    Returns:

    Number of points

    -
    Return type
    +
    Return type:

    int

    @@ -3285,10 +3288,10 @@

    Submodulesget_points()[source]

    Get the list of points.

    -
    Returns
    +
    Returns:

    List of points.

    -
    Return type
    +
    Return type:

    list

    @@ -3299,7 +3302,7 @@

    Submodulesread_file()[source]

    Read VTK file.

    -
    Raises
    +
    Raises:

    VTKReaderIOError – Invalid ASCII VTK file

    @@ -3310,7 +3313,7 @@

    Submodulesset_filename(filename)[source]

    Set the filename.

    -
    Params filename
    +
    Params filename:

    Filename

    @@ -3318,9 +3321,9 @@

    Submodules -

    Module contents

    +

+
+

Module contents

class spatialpy.core.BoundaryCondition(xmin=None, xmax=None, ymin=None, ymax=None, zmin=None, zmax=None, type_id=None, deterministic=True, target=None, value=None, model=None)[source]
@@ -3340,7 +3343,7 @@

Submodules -
Parameters
+
Parameters:

class spatialpy.core.CartesianLattice(xmin, xmax, deltax, center=None, ymin=None, ymax=None, zmin=None, zmax=None, deltay=None, deltaz=None)[source]
-

Bases: spatialpy.core.lattice.Lattice

+

Bases: Lattice

Cartesian lattice class provides a method for creating parts of the spatial

domain within a cartesian coordinate system.

-
Parameters
+
Parameters:
class spatialpy.core.PlaceInitialCondition(species, count, location)[source]
-

Bases: spatialpy.core.initialcondition.InitialCondition

+

Bases: InitialCondition

Class used to defined the place initial condition in SpatialPy.

-
Parameters
+
Parameters:
-
+ +
@@ -6471,7 +6474,7 @@

SubmodulesSphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 | diff --git a/docs/build/html/classes/spatialpy.html b/docs/build/html/classes/spatialpy.html index 04b8c007..bdf9bb11 100644 --- a/docs/build/html/classes/spatialpy.html +++ b/docs/build/html/classes/spatialpy.html @@ -4,19 +4,22 @@ - - spatialpy package — SpatialPy 1.1.0 documentation + + + spatialpy package — SpatialPy 1.1.2 documentation + + - + @@ -70,7 +73,7 @@

Navigation

Related Topics

@@ -84,7 +87,7 @@

Quick search

- + @@ -101,54 +104,693 @@

Quick search

-
-

spatialpy package

-
-

Subpackages

+
+

spatialpy package

+
+

Subpackages

-
-
-

Module contents

-
-
+ +
+

Module contents

+
+
@@ -158,7 +800,7 @@

SubpackagesDocumentation for SpatialPy 1.1.0 + Documentation for SpatialPy 1.1.2
  • spatialpy.core package @@ -176,7 +818,7 @@

    SubpackagesSphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 | diff --git a/docs/build/html/classes/spatialpy.solvers.html b/docs/build/html/classes/spatialpy.solvers.html index 167e9567..367d61e5 100644 --- a/docs/build/html/classes/spatialpy.solvers.html +++ b/docs/build/html/classes/spatialpy.solvers.html @@ -4,15 +4,18 @@ - - spatialpy.solvers package — SpatialPy 1.1.0 documentation + + + spatialpy.solvers package — SpatialPy 1.1.2 documentation + + @@ -86,7 +89,7 @@

    Quick search

    - + @@ -103,13 +106,13 @@

    Quick search

    -
    -

    spatialpy.solvers package

    -
    -

    Submodules

    -
    -
    -

    spatialpy.solvers.build_expression module

    +
    +

    spatialpy.solvers package

    +
    +

    Submodules

    +
    +
    +

    spatialpy.solvers.build_expression module

    class spatialpy.solvers.build_expression.BuildExpression(blacklist=None, namespace=None, sanitize=False)[source]
    @@ -121,7 +124,7 @@

    Submodules -
    Parameters
    +
    Parameters:

    blacklist – List of operators which are not allowed in the following expressions.

    @@ -130,14 +133,14 @@

    Submodules -
    Parameters
    +
    Parameters:

    namespace – Dictionary mapping allowed bare identifiers to their sanitized equivalents.

    Any bare identifiers not listed as a namespace key will trigger a failed validation. :type namespace: dict[str, any]

    -
    Parameters
    +
    Parameters:

    sanitize – Whether or not to substitute namespace names during conversion.

    @@ -147,10 +150,10 @@

    Submodules
    class ValidationVisitor(namespace=None, blacklist=None, sanitize=False)[source]
    -

    Bases: ast.NodeTransformer

    +

    Bases: NodeTransformer

    A subclass of ast.NodeTransformer used to sanitize spatialpy expresions.

    -
    Parameters
    +
    Parameters:
    @@ -305,16 +308,16 @@

    Submodulesgetexpr_python(statement)[source]

    Converts the expression object into a Python expression string.

    -
    Parameters
    +
    Parameters:

    statement (str) – C++ expression to be converted.

    -
    Returns
    +
    Returns:

    Python expression string, if valid. Returns None if validation fails.

    -
    Return type
    +
    Return type:

    str | None

    -
    Raises
    +
    Raises:

    SyntaxError – If the C++ expression could not be converted to a Python expression.

    @@ -325,7 +328,7 @@

    Submodulesclassmethod map_operator(operator)[source]

    Map operator strings with built expressions.

    -
    Parameters
    +
    Parameters:

    operator (str | list[str]) – Operator to be mapped

    @@ -344,16 +347,16 @@

    Submodules -
    Parameters
    +
    Parameters:

    statement (str) – A python expression.

    -
    Returns
    +
    Returns:

    Result object containing the lists of invalid names and invalid operators.

    -
    Return type
    +
    Return type:

    ExpressionResults

    -
    Raises
    +
    Raises:

    SyntaxError – The statement is not a valid Python expression.

    @@ -365,10 +368,10 @@

    Submodules -
    Parameters
    +
    Parameters:

    blacklist (list[str]) – List of operators which are not allowed.

    -
    Returns
    +
    Returns:

    New expression containing the given blacklist.

    @@ -383,7 +386,7 @@

    Submodules -
    Parameters
    +
    Parameters:

    namespace – A dictionary containing the namespace mappings for the expression.

    @@ -391,7 +394,7 @@

    Submodules -
    Returns
    +
    Returns:

    New expression containing the given namespace.

    @@ -404,25 +407,25 @@

    Submodules
    class spatialpy.solvers.build_expression.CppConverter(tree)[source]
    -

    Bases: spatialpy.solvers.build_expression.ExpressionConverter

    +

    Bases: ExpressionConverter

    Converts an ast.AST to a C++ expression string.

    class CppExpressionTransformer[source]
    -

    Bases: ast.NodeTransformer

    +

    Bases: NodeTransformer

    A subclass of ast.NodeTransformer used to convert ast.AST expresions to C++ expressions.

    -visit_BinOp(node: _ast.BinOp)[source]
    +visit_BinOp(node: BinOp)[source]

    Visitor function for ast.BinOp nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.BinOp) – A node of type ‘BinOp’ from an AST.

    -
    Returns
    +
    Returns:

    The original node.

    -
    Return type
    +
    Return type:

    ast.BinOp

    @@ -435,10 +438,10 @@

    Submodulesget_str()[source]

    Get the string representation of the expression.

    -
    Returns
    +
    Returns:

    The string expression of super().tree.

    -
    Return type
    +
    Return type:

    str

    @@ -449,7 +452,7 @@

    Submodulesvisit_And(node)[source]

    Visitor function for ast.And nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.And) – A node of type ‘And’ from an AST.

    @@ -460,7 +463,7 @@

    Submodulesvisit_Or(node)[source]

    Visitor function for ast.Or nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Or) – A node of type ‘Or’ from an AST.

    @@ -471,10 +474,10 @@

    Submodules
    class spatialpy.solvers.build_expression.ExpressionConverter(tree)[source]
    -

    Bases: ast.NodeVisitor

    +

    Bases: NodeVisitor

    A subclass of ast.NodeVisitor used to convert spatialpy expresions.

    -
    Parameters
    +
    Parameters:

    tree (ast.AST) – An abstract syntax tree.

    @@ -483,7 +486,7 @@

    Submodulesclassmethod convert_str(expression)[source]

    Convert ‘^’ to python pow operator.

    -
    Parameters
    +
    Parameters:

    expression (str) – BuildExpression to be converted.

    @@ -494,10 +497,10 @@

    Submodulesget_str()[source]

    Get the string representation of the expression.

    -
    Returns
    +
    Returns:

    The string expression of self.tree.

    -
    Return type
    +
    Return type:

    str

    @@ -508,7 +511,7 @@

    Submodulesparse_comparison(comparator)[source]

    Create a new comparison expression from the given operator and the last two expressions in self.expression.

    -
    Parameters
    +
    Parameters:

    operator (str) – Target operator for the new expression.

    @@ -519,7 +522,7 @@

    Submodulesparse_logical(operator)[source]

    Create a new logical expression from the given operator and the last two expressions in self.expression.

    -
    Parameters
    +
    Parameters:

    operator (str) – Target operator for the new expression.

    @@ -530,7 +533,7 @@

    Submodulesparse_operator(operator)[source]

    Create a new mathematical expression from the given operator and the last two expressions in self.expression.

    -
    Parameters
    +
    Parameters:

    operator (str) – Target operator for the new expression.

    @@ -541,7 +544,7 @@

    Submodulesvisit_Add(node)[source]

    Visitor function for ast.Add nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Add) – A node of type ‘Add’ from an AST.

    @@ -554,7 +557,7 @@

    Submodules -
    Parameters
    +
    Parameters:

    node (ast.BinOp) – A node of type ‘BinOp’ from an AST.

    @@ -567,7 +570,7 @@

    Submodules -
    Parameters
    +
    Parameters:

    node (ast.BoolOp) – A node of type ‘BoolOp’ from an AST.

    @@ -578,7 +581,7 @@

    Submodulesvisit_Bytes(node)[source]

    Visitor function for ast.Bytes nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Bytes) – A node of type ‘Bytes’ from an AST.

    @@ -589,7 +592,7 @@

    Submodulesvisit_Call(node)[source]

    Visitor function for ast.Call nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Call) – A node of type ‘Call’ from an AST.

    @@ -600,7 +603,7 @@

    Submodulesvisit_Compare(node)[source]

    Visitor function for ast.Compare nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Compare) – A node of type ‘Compare’ from an AST.

    @@ -611,7 +614,7 @@

    Submodulesvisit_Constant(node)[source]

    Visitor function for ast.Constant nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Constant) – A node of type ‘Constant’ from an AST.

    @@ -622,7 +625,7 @@

    Submodulesvisit_Div(node)[source]

    Visitor function for ast.Div nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Div) – A node of type ‘Div’ from an AST.

    @@ -633,7 +636,7 @@

    Submodulesvisit_Ellipsis(node)[source]

    Visitor function for ast.Ellipsis nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Ellipsis) – A node of type ‘Ellipsis’ from an AST.

    @@ -644,7 +647,7 @@

    Submodulesvisit_Eq(node)[source]

    Visitor function for ast.Eq nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Eq) – A node of type ‘Eq’ from an AST.

    @@ -655,7 +658,7 @@

    Submodulesvisit_Gt(node)[source]

    Visitor function for ast.Gt nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Gt) – A node of type ‘Gt’ from an AST.

    @@ -666,7 +669,7 @@

    Submodulesvisit_GtE(node)[source]

    Visitor function for ast.GtE nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.GtE) – A node of type ‘GtE’ from an AST.

    @@ -677,7 +680,7 @@

    Submodulesvisit_Lt(node)[source]

    Visitor function for ast.Lt nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Lt) – A node of type ‘Lt’ from an AST.

    @@ -688,7 +691,7 @@

    Submodulesvisit_LtE(node)[source]

    Visitor function for ast.LtE nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.LtE) – A node of type ‘LtE’ from an AST.

    @@ -699,7 +702,7 @@

    Submodulesvisit_Mult(node)[source]

    Visitor function for ast.Mult nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Mult) – A node of type ‘Mult’ from an AST.

    @@ -710,7 +713,7 @@

    Submodulesvisit_Name(node)[source]

    Visitor function for ast.Name nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Name) – A node of type ‘Name’ from an AST.

    @@ -721,7 +724,7 @@

    Submodulesvisit_NameConstant(node)[source]

    Visitor function for ast.NameConstant nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.NameConstant) – A node of type ‘NameConstant’ from an AST.

    @@ -732,7 +735,7 @@

    Submodulesvisit_NotEq(node)[source]

    Visitor function for ast.NotEq nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.NotEq) – A node of type ‘NotEq’ from an AST.

    @@ -743,7 +746,7 @@

    Submodulesvisit_Num(node)[source]

    Visitor function for ast.Num nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Num) – A node of type ‘Num’ from an AST.

    @@ -754,7 +757,7 @@

    Submodulesvisit_Pow(node)[source]

    Visitor function for ast.Pow nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Pow) – A node of type ‘Pow’ from an AST.

    @@ -765,7 +768,7 @@

    Submodulesvisit_Str(node)[source]

    Visitor function for ast.Str nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Str) – A node of type ‘Str’ from an AST.

    @@ -776,7 +779,7 @@

    Submodulesvisit_Sub(node)[source]

    Visitor function for ast.Sub nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.Sub) – A node of type ‘Sub’ from an AST.

    @@ -787,7 +790,7 @@

    Submodulesvisit_USub(node)[source]

    Visitor function for ast.USub nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.USub) – A node of type ‘USub’ from an AST.

    @@ -798,7 +801,7 @@

    Submodulesvisit_UnaryOp(node)[source]

    Visitor function for ast.UnaryOp nodes.

    -
    Parameters
    +
    Parameters:

    node (ast.UnaryOp) – A node of type ‘UnaryOp’ from an AST.

    @@ -815,7 +818,7 @@

    Submodules -
    Parameters
    +
    Parameters:

    +
    +

    spatialpy.solvers.solver module

    class spatialpy.solvers.solver.Solver(model, debug_level=0)[source]

    Bases: object

    SpatialPy solver object.

    -
    Parameters
    +
    Parameters:
    -
    + +
    +

    Module contents

    +
    +
    @@ -954,7 +957,7 @@

    SubmodulesSphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 | diff --git a/docs/build/html/classes/spatialpy.stochss.html b/docs/build/html/classes/spatialpy.stochss.html index 727fe60e..c611c104 100644 --- a/docs/build/html/classes/spatialpy.stochss.html +++ b/docs/build/html/classes/spatialpy.stochss.html @@ -4,15 +4,18 @@ - - spatialpy.stochss package — SpatialPy 1.1.0 documentation + + + spatialpy.stochss package — SpatialPy 1.1.2 documentation + + @@ -84,7 +87,7 @@

    Quick search

    - + @@ -101,39 +104,39 @@

    Quick search

    -
    -

    spatialpy.stochss package

    -
    -

    Submodules

    -
    -
    -

    spatialpy.stochss.stochss_export module

    +
    +

    spatialpy.stochss package

    +
    +

    Submodules

    +
    +
    +

    spatialpy.stochss.stochss_export module

    spatialpy.stochss.stochss_export.export(model, path=None, return_stochss_model=False)[source]

    SpatialPy model to StochSS converter

    -
    Parameters
    +
    Parameters:
    • model (spatialpy.core.model.Model) – SpatialPy model to be converted to StochSS.

    • filename (str) – Path to the exported stochss model.

    • return_stochss_model (bool) – Whether or not to return the model.

    -
    Returns
    +
    Returns:

    StochSS model dict if return_stochss_model is True else path to StochSS model file.

    -
    Return type
    +
    Return type:

    dict | str

    -
    -
    -

    Module contents

    -
    -
    + +
    +

    Module contents

    +
    +
    @@ -157,7 +160,7 @@

    SubmodulesSphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 | diff --git a/docs/build/html/genindex.html b/docs/build/html/genindex.html index 457048a6..19862a89 100644 --- a/docs/build/html/genindex.html +++ b/docs/build/html/genindex.html @@ -5,14 +5,16 @@ - Index — SpatialPy 1.1.0 documentation + Index — SpatialPy 1.1.2 documentation + + @@ -71,7 +73,7 @@

    Quick search

    - + @@ -1711,7 +1713,7 @@

    X

    ©Copyright (C) 2019-2022. | - Powered by Sphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 diff --git a/docs/build/html/index.html b/docs/build/html/index.html index db273f48..75bdfc7d 100644 --- a/docs/build/html/index.html +++ b/docs/build/html/index.html @@ -4,15 +4,18 @@ - - Documentation for SpatialPy 1.1.0 — SpatialPy 1.1.0 documentation + + + Documentation for SpatialPy 1.1.2 — SpatialPy 1.1.2 documentation + + @@ -73,7 +76,7 @@

    Quick search

    - + @@ -90,24 +93,24 @@

    Quick search

    -
    -

    Documentation for SpatialPy 1.1.0

    +
    +

    Documentation for SpatialPy 1.1.2

    SpatialPy is a Python 3 package for simulation of spatial deterministic/stochastic reaction-diffusion-advection problems embedded in Lagrangian reference frame particle based fluid dynamics domain

    This package is intended to replace the PyURDME software https://github.com/pyurdme/pyurdme and will feature both a NSM solver for RDME simulation on static domains and a sSSA-SDPD particle based fluid dynamics solver as described in the publication “A hybrid smoothed dissipative particle dynamics (SDPD) spatial stochastic simulation algorithm (sSSA) for advection–diffusion–reaction problems” by Drawert, Jacob, Li, Yi, Petzold https://www.sciencedirect.com/science/article/pii/S0021999118307101

    -
    -

    Getting a copy of SpatialPy

    +
    +

    Getting a copy of SpatialPy

    The latest version of SpatialPy can be found on PyPI. The source code is available on GitHub. SpatialPy is licensed under the GNU General Public License version 3.

    -

    Please register as a user! SpatialPy's development is funded by NIH grant 2R01EB014877, and to continue support, we need to prove SpatialPy has users. Please fill out our short registration form!

    -
    -

    Examples

    +

    Please register as a user! SpatialPy's development is funded by NIH grant 2R01EB014877, and to continue support, we need to prove SpatialPy has users. Please fill out our short registration form!

    +
    +

    Examples

    See our Example Notebook - Start Here for more information on how to build and simulate your models with SpatialPy. For an example of how to use SpatialPy to simulate a spatial stochastic reaction-diffusion system, see the 3D Cylinder Demo. We also provide examples of how to use SpatialPy to simulate physics (Gravity Demo) and fluid flow (Weir Model).

    -
    -
    -

    Reporting Issues

    + +
    +

    Reporting Issues

    If you find any problem with SpatialPy or this documentation, please report it using the GitHub issue tracker for the project. You can also contact the main author, Dr. Brian Drawert, directly with questions and suggestions.

    -
    -
    -

    Documentation

    + +
    +

    Documentation

    API reference

    + +
    +

    Indices and tables

    -
    +
    @@ -156,7 +159,7 @@

    Indices and tablesSphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 | diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv index 17c70afe92776bd45d251167d82ef29d28481f87..7ea2e16c5bc2b8aabb93aa8bd90f85808cfe5e3e 100644 GIT binary patch delta 3046 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 delta 3046 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 diff --git a/docs/build/html/py-modindex.html b/docs/build/html/py-modindex.html index f5477b69..90550eb4 100644 --- a/docs/build/html/py-modindex.html +++ b/docs/build/html/py-modindex.html @@ -5,14 +5,16 @@ - Python Module Index — SpatialPy 1.1.0 documentation + Python Module Index — SpatialPy 1.1.2 documentation + + @@ -74,7 +76,7 @@

    Quick search

    - + @@ -243,7 +245,7 @@

    Python Module Index

    ©Copyright (C) 2019-2022. | - Powered by Sphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 diff --git a/docs/build/html/search.html b/docs/build/html/search.html index 0aac7e1f..dc490ee9 100644 --- a/docs/build/html/search.html +++ b/docs/build/html/search.html @@ -5,7 +5,7 @@ - Search — SpatialPy 1.1.0 documentation + Search — SpatialPy 1.1.2 documentation @@ -13,7 +13,9 @@ + + @@ -132,7 +134,7 @@

    Search

    ©Copyright (C) 2019-2022. | - Powered by Sphinx 4.4.0 + Powered by Sphinx 5.3.0 & Alabaster 0.7.12 diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js index b3870edf..432194ea 100644 --- a/docs/build/html/searchindex.js +++ b/docs/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["classes/spatialpy","classes/spatialpy.core","classes/spatialpy.solvers","classes/spatialpy.stochss","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["classes/spatialpy.rst","classes/spatialpy.core.rst","classes/spatialpy.solvers.rst","classes/spatialpy.stochss.rst","index.rst"],objects:{"":[[0,0,0,"-","spatialpy"]],"spatialpy.core":[[1,1,1,"","BoundaryCondition"],[1,3,1,"","BoundaryConditionError"],[1,1,1,"","CartesianLattice"],[1,1,1,"","CombinatoryGeometry"],[1,1,1,"","CylindricalLattice"],[1,1,1,"","DataFunction"],[1,3,1,"","DataFunctionError"],[1,1,1,"","Domain"],[1,3,1,"","DomainError"],[1,1,1,"","Geometry"],[1,1,1,"","GeometryAll"],[1,3,1,"","GeometryError"],[1,1,1,"","GeometryExterior"],[1,1,1,"","GeometryInterior"],[1,1,1,"","InitialCondition"],[1,3,1,"","InitialConditionError"],[1,3,1,"","LatticeError"],[1,1,1,"","MeshIOLattice"],[1,1,1,"","Model"],[1,3,1,"","ModelError"],[1,1,1,"","Parameter"],[1,3,1,"","ParameterError"],[1,1,1,"","PlaceInitialCondition"],[1,1,1,"","Reaction"],[1,3,1,"","ReactionError"],[1,1,1,"","ReflectionTransformation"],[1,1,1,"","Result"],[1,3,1,"","ResultError"],[1,1,1,"","RotationTransformation"],[1,1,1,"","ScalingTransformation"],[1,1,1,"","ScatterInitialCondition"],[1,3,1,"","SimulationError"],[1,3,1,"","SimulationTimeout"],[1,1,1,"","Species"],[1,3,1,"","SpeciesError"],[1,1,1,"","SphericalLattice"],[1,1,1,"","StochSSLattice"],[1,1,1,"","TimeSpan"],[1,3,1,"","TimespanError"],[1,1,1,"","Transformation"],[1,3,1,"","TransformationError"],[1,1,1,"","TranslationTransformation"],[1,1,1,"","UniformInitialCondition"],[1,1,1,"","VTKReader"],[1,3,1,"","VTKReaderError"],[1,3,1,"","VTKReaderIOError"],[1,1,1,"","Visualization"],[1,3,1,"","VisualizationError"],[1,1,1,"","XMLMeshLattice"],[1,0,0,"-","boundarycondition"],[1,0,0,"-","cleanup"],[1,5,1,"","cleanup_build_files"],[1,5,1,"","cleanup_core_files"],[1,5,1,"","cleanup_result_files"],[1,5,1,"","cleanup_tempfiles"],[1,0,0,"-","datafunction"],[1,0,0,"-","domain"],[1,5,1,"","export_StochSS"],[1,0,0,"-","geometry"],[1,0,0,"-","initialcondition"],[1,0,0,"-","lattice"],[1,0,0,"-","model"],[1,0,0,"-","parameter"],[1,0,0,"-","reaction"],[1,0,0,"-","result"],[1,0,0,"-","spatialpyerror"],[1,0,0,"-","species"],[1,0,0,"-","timespan"],[1,0,0,"-","transformation"],[1,0,0,"-","visualization"],[1,0,0,"-","vtkreader"]],"spatialpy.core.BoundaryCondition":[[1,2,1,"","expression"]],"spatialpy.core.CartesianLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.CombinatoryGeometry":[[1,2,1,"","inside"],[1,2,1,"","validate"]],"spatialpy.core.CylindricalLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.DataFunction":[[1,2,1,"","map"]],"spatialpy.core.Domain":[[1,2,1,"","add_fill_action"],[1,2,1,"","add_point"],[1,2,1,"","add_remove_action"],[1,2,1,"","add_set_action"],[1,2,1,"","apply_actions"],[1,2,1,"","apply_fill_action"],[1,2,1,"","apply_remove_action"],[1,2,1,"","apply_set_action"],[1,2,1,"","calculate_vol"],[1,2,1,"","closest_vertex"],[1,2,1,"","compile_prep"],[1,2,1,"","coordinates"],[1,2,1,"","create_2D_domain"],[1,2,1,"","create_3D_domain"],[1,2,1,"","distance_between_2_vertices"],[1,2,1,"","fill_with_particles"],[1,2,1,"","find_boundary_points"],[1,2,1,"","find_h"],[1,2,1,"","get_bounding_box"],[1,2,1,"","get_domain_size"],[1,2,1,"","get_num_voxels"],[1,2,1,"","get_type_def"],[1,2,1,"","get_vol"],[1,2,1,"","import_meshio_object"],[1,2,1,"","plot_types"],[1,2,1,"","preview_actions"],[1,2,1,"","read_msh_file"],[1,2,1,"","read_stochss_domain"],[1,2,1,"","read_stochss_subdomain_file"],[1,2,1,"","read_xml_mesh"],[1,2,1,"","set_properties"],[1,2,1,"","validate_action"]],"spatialpy.core.Geometry":[[1,2,1,"","inside"]],"spatialpy.core.GeometryAll":[[1,2,1,"","inside"]],"spatialpy.core.GeometryExterior":[[1,2,1,"","inside"]],"spatialpy.core.GeometryInterior":[[1,2,1,"","inside"]],"spatialpy.core.InitialCondition":[[1,2,1,"","apply"]],"spatialpy.core.MeshIOLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.Model":[[1,2,1,"","add"],[1,2,1,"","add_boundary_condition"],[1,2,1,"","add_data_function"],[1,2,1,"","add_domain"],[1,2,1,"","add_initial_condition"],[1,2,1,"","add_parameter"],[1,2,1,"","add_reaction"],[1,2,1,"","add_species"],[1,2,1,"","compile_prep"],[1,2,1,"","delete_all_boundary_conditions"],[1,2,1,"","delete_all_data_functions"],[1,2,1,"","delete_all_initial_conditions"],[1,2,1,"","delete_all_parameters"],[1,2,1,"","delete_all_reactions"],[1,2,1,"","delete_all_species"],[1,2,1,"","delete_boundary_condition"],[1,2,1,"","delete_data_function"],[1,2,1,"","delete_initial_condition"],[1,2,1,"","delete_parameter"],[1,2,1,"","delete_reaction"],[1,2,1,"","delete_species"],[1,2,1,"","get_all_boundary_conditions"],[1,2,1,"","get_all_data_functions"],[1,2,1,"","get_all_initial_conditions"],[1,2,1,"","get_all_parameters"],[1,2,1,"","get_all_reactions"],[1,2,1,"","get_all_species"],[1,2,1,"","get_data_function"],[1,2,1,"","get_element"],[1,2,1,"","get_num_reactions"],[1,2,1,"","get_num_species"],[1,2,1,"","get_parameter"],[1,2,1,"","get_reaction"],[1,2,1,"","get_species"],[1,4,1,"","reserved_names"],[1,2,1,"","run"],[1,2,1,"","sanitized_data_function_names"],[1,2,1,"","sanitized_parameter_names"],[1,2,1,"","sanitized_species_names"],[1,2,1,"","set_timesteps"],[1,4,1,"","special_characters"],[1,2,1,"","timespan"],[1,2,1,"","update_namespace"]],"spatialpy.core.Parameter":[[1,2,1,"","validate"]],"spatialpy.core.PlaceInitialCondition":[[1,2,1,"","apply"]],"spatialpy.core.Reaction":[[1,2,1,"","add_product"],[1,2,1,"","add_reactant"],[1,2,1,"","annotate"],[1,2,1,"","from_json"],[1,2,1,"","initialize"],[1,2,1,"","sanitized_propensity_function"],[1,2,1,"","set_annotation"],[1,2,1,"","set_propensities"],[1,2,1,"","set_rate"],[1,2,1,"","to_dict"],[1,2,1,"","validate"]],"spatialpy.core.ReflectionTransformation":[[1,2,1,"","reverse_transform"],[1,2,1,"","transform"]],"spatialpy.core.Result":[[1,2,1,"","export_to_csv"],[1,2,1,"","get_property"],[1,2,1,"","get_species"],[1,2,1,"","get_timespan"],[1,2,1,"","plot_property"],[1,2,1,"","plot_species"],[1,2,1,"","read_step"]],"spatialpy.core.RotationTransformation":[[1,2,1,"","reverse_transform"],[1,2,1,"","transform"],[1,2,1,"","validate"]],"spatialpy.core.ScalingTransformation":[[1,2,1,"","reverse_transform"],[1,2,1,"","transform"],[1,2,1,"","validate"]],"spatialpy.core.ScatterInitialCondition":[[1,2,1,"","apply"]],"spatialpy.core.Species":[[1,2,1,"","set_diffusion_coefficient"],[1,2,1,"","validate"]],"spatialpy.core.SphericalLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.StochSSLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.TimeSpan":[[1,2,1,"","arange"],[1,2,1,"","linspace"],[1,2,1,"","validate"]],"spatialpy.core.Transformation":[[1,2,1,"","apply"],[1,2,1,"","inside"],[1,2,1,"","reverse_transform"],[1,2,1,"","transform"],[1,2,1,"","validate"]],"spatialpy.core.TranslationTransformation":[[1,2,1,"","reverse_transform"],[1,2,1,"","transform"],[1,2,1,"","validate"]],"spatialpy.core.UniformInitialCondition":[[1,2,1,"","apply"]],"spatialpy.core.VTKReader":[[1,2,1,"","get_array_name"],[1,2,1,"","get_arrays"],[1,2,1,"","get_num_points"],[1,2,1,"","get_points"],[1,2,1,"","read_file"],[1,2,1,"","set_filename"]],"spatialpy.core.Visualization":[[1,4,1,"","MPL_HEIGHT"],[1,4,1,"","MPL_SIZE"],[1,4,1,"","MPL_WIDTH"],[1,2,1,"","plot_scatter"]],"spatialpy.core.XMLMeshLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.boundarycondition":[[1,1,1,"","BoundaryCondition"]],"spatialpy.core.boundarycondition.BoundaryCondition":[[1,2,1,"","expression"]],"spatialpy.core.cleanup":[[1,5,1,"","cleanup_build_files"],[1,5,1,"","cleanup_core_files"],[1,5,1,"","cleanup_result_files"],[1,5,1,"","cleanup_tempfiles"]],"spatialpy.core.datafunction":[[1,1,1,"","DataFunction"]],"spatialpy.core.datafunction.DataFunction":[[1,2,1,"","map"]],"spatialpy.core.domain":[[1,1,1,"","Domain"]],"spatialpy.core.domain.Domain":[[1,2,1,"","add_fill_action"],[1,2,1,"","add_point"],[1,2,1,"","add_remove_action"],[1,2,1,"","add_set_action"],[1,2,1,"","apply_actions"],[1,2,1,"","apply_fill_action"],[1,2,1,"","apply_remove_action"],[1,2,1,"","apply_set_action"],[1,2,1,"","calculate_vol"],[1,2,1,"","closest_vertex"],[1,2,1,"","compile_prep"],[1,2,1,"","coordinates"],[1,2,1,"","create_2D_domain"],[1,2,1,"","create_3D_domain"],[1,2,1,"","distance_between_2_vertices"],[1,2,1,"","fill_with_particles"],[1,2,1,"","find_boundary_points"],[1,2,1,"","find_h"],[1,2,1,"","get_bounding_box"],[1,2,1,"","get_domain_size"],[1,2,1,"","get_num_voxels"],[1,2,1,"","get_type_def"],[1,2,1,"","get_vol"],[1,2,1,"","import_meshio_object"],[1,2,1,"","plot_types"],[1,2,1,"","preview_actions"],[1,2,1,"","read_msh_file"],[1,2,1,"","read_stochss_domain"],[1,2,1,"","read_stochss_subdomain_file"],[1,2,1,"","read_xml_mesh"],[1,2,1,"","set_properties"],[1,2,1,"","validate_action"]],"spatialpy.core.geometry":[[1,1,1,"","CombinatoryGeometry"],[1,1,1,"","Geometry"],[1,1,1,"","GeometryAll"],[1,1,1,"","GeometryExterior"],[1,1,1,"","GeometryInterior"]],"spatialpy.core.geometry.CombinatoryGeometry":[[1,2,1,"","inside"],[1,2,1,"","validate"]],"spatialpy.core.geometry.Geometry":[[1,2,1,"","inside"]],"spatialpy.core.geometry.GeometryAll":[[1,2,1,"","inside"]],"spatialpy.core.geometry.GeometryExterior":[[1,2,1,"","inside"]],"spatialpy.core.geometry.GeometryInterior":[[1,2,1,"","inside"]],"spatialpy.core.initialcondition":[[1,1,1,"","InitialCondition"],[1,1,1,"","PlaceInitialCondition"],[1,1,1,"","ScatterInitialCondition"],[1,1,1,"","UniformInitialCondition"]],"spatialpy.core.initialcondition.InitialCondition":[[1,2,1,"","apply"]],"spatialpy.core.initialcondition.PlaceInitialCondition":[[1,2,1,"","apply"]],"spatialpy.core.initialcondition.ScatterInitialCondition":[[1,2,1,"","apply"]],"spatialpy.core.initialcondition.UniformInitialCondition":[[1,2,1,"","apply"]],"spatialpy.core.lattice":[[1,1,1,"","CartesianLattice"],[1,1,1,"","CylindricalLattice"],[1,1,1,"","Lattice"],[1,1,1,"","MeshIOLattice"],[1,1,1,"","SphericalLattice"],[1,1,1,"","StochSSLattice"],[1,1,1,"","XMLMeshLattice"]],"spatialpy.core.lattice.CartesianLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.lattice.CylindricalLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.lattice.Lattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.lattice.MeshIOLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.lattice.SphericalLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.lattice.StochSSLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.lattice.XMLMeshLattice":[[1,2,1,"","apply"],[1,2,1,"","validate"]],"spatialpy.core.model":[[1,1,1,"","Model"],[1,5,1,"","export_StochSS"]],"spatialpy.core.model.Model":[[1,2,1,"","add"],[1,2,1,"","add_boundary_condition"],[1,2,1,"","add_data_function"],[1,2,1,"","add_domain"],[1,2,1,"","add_initial_condition"],[1,2,1,"","add_parameter"],[1,2,1,"","add_reaction"],[1,2,1,"","add_species"],[1,2,1,"","compile_prep"],[1,2,1,"","delete_all_boundary_conditions"],[1,2,1,"","delete_all_data_functions"],[1,2,1,"","delete_all_initial_conditions"],[1,2,1,"","delete_all_parameters"],[1,2,1,"","delete_all_reactions"],[1,2,1,"","delete_all_species"],[1,2,1,"","delete_boundary_condition"],[1,2,1,"","delete_data_function"],[1,2,1,"","delete_initial_condition"],[1,2,1,"","delete_parameter"],[1,2,1,"","delete_reaction"],[1,2,1,"","delete_species"],[1,2,1,"","get_all_boundary_conditions"],[1,2,1,"","get_all_data_functions"],[1,2,1,"","get_all_initial_conditions"],[1,2,1,"","get_all_parameters"],[1,2,1,"","get_all_reactions"],[1,2,1,"","get_all_species"],[1,2,1,"","get_data_function"],[1,2,1,"","get_element"],[1,2,1,"","get_num_reactions"],[1,2,1,"","get_num_species"],[1,2,1,"","get_parameter"],[1,2,1,"","get_reaction"],[1,2,1,"","get_species"],[1,4,1,"","reserved_names"],[1,2,1,"","run"],[1,2,1,"","sanitized_data_function_names"],[1,2,1,"","sanitized_parameter_names"],[1,2,1,"","sanitized_species_names"],[1,2,1,"","set_timesteps"],[1,4,1,"","special_characters"],[1,2,1,"","timespan"],[1,2,1,"","update_namespace"]],"spatialpy.core.parameter":[[1,1,1,"","Parameter"]],"spatialpy.core.parameter.Parameter":[[1,2,1,"","validate"]],"spatialpy.core.reaction":[[1,1,1,"","Reaction"]],"spatialpy.core.reaction.Reaction":[[1,2,1,"","add_product"],[1,2,1,"","add_reactant"],[1,2,1,"","annotate"],[1,2,1,"","from_json"],[1,2,1,"","initialize"],[1,2,1,"","sanitized_propensity_function"],[1,2,1,"","set_annotation"],[1,2,1,"","set_propensities"],[1,2,1,"","set_rate"],[1,2,1,"","to_dict"],[1,2,1,"","validate"]],"spatialpy.core.result":[[1,1,1,"","Result"]],"spatialpy.core.result.Result":[[1,2,1,"","export_to_csv"],[1,2,1,"","get_property"],[1,2,1,"","get_species"],[1,2,1,"","get_timespan"],[1,2,1,"","plot_property"],[1,2,1,"","plot_species"],[1,2,1,"","read_step"]],"spatialpy.core.spatialpyerror":[[1,3,1,"","BoundaryConditionError"],[1,3,1,"","DataFunctionError"],[1,3,1,"","DomainError"],[1,3,1,"","GeometryError"],[1,3,1,"","InitialConditionError"],[1,3,1,"","LatticeError"],[1,3,1,"","ModelError"],[1,3,1,"","ParameterError"],[1,3,1,"","ReactionError"],[1,3,1,"","ResultError"],[1,3,1,"","SimulationError"],[1,3,1,"","SimulationTimeout"],[1,3,1,"","SpeciesError"],[1,3,1,"","TimespanError"],[1,3,1,"","TransformationError"],[1,3,1,"","VTKReaderError"],[1,3,1,"","VTKReaderIOError"],[1,3,1,"","VisualizationError"]],"spatialpy.core.species":[[1,1,1,"","Species"]],"spatialpy.core.species.Species":[[1,2,1,"","set_diffusion_coefficient"],[1,2,1,"","validate"]],"spatialpy.core.timespan":[[1,1,1,"","TimeSpan"]],"spatialpy.core.timespan.TimeSpan":[[1,2,1,"","arange"],[1,2,1,"","linspace"],[1,2,1,"","validate"]],"spatialpy.core.transformation":[[1,1,1,"","ReflectionTransformation"],[1,1,1,"","RotationTransformation"],[1,1,1,"","ScalingTransformation"],[1,1,1,"","Transformation"],[1,1,1,"","TranslationTransformation"]],"spatialpy.core.transformation.ReflectionTransformation":[[1,2,1,"","reverse_transform"],[1,2,1,"","transform"]],"spatialpy.core.transformation.RotationTransformation":[[1,2,1,"","reverse_transform"],[1,2,1,"","transform"],[1,2,1,"","validate"]],"spatialpy.core.transformation.ScalingTransformation":[[1,2,1,"","reverse_transform"],[1,2,1,"","transform"],[1,2,1,"","validate"]],"spatialpy.core.transformation.Transformation":[[1,2,1,"","apply"],[1,2,1,"","inside"],[1,2,1,"","reverse_transform"],[1,2,1,"","transform"],[1,2,1,"","validate"]],"spatialpy.core.transformation.TranslationTransformation":[[1,2,1,"","reverse_transform"],[1,2,1,"","transform"],[1,2,1,"","validate"]],"spatialpy.core.visualization":[[1,1,1,"","Visualization"]],"spatialpy.core.visualization.Visualization":[[1,4,1,"","MPL_HEIGHT"],[1,4,1,"","MPL_SIZE"],[1,4,1,"","MPL_WIDTH"],[1,2,1,"","plot_scatter"]],"spatialpy.core.vtkreader":[[1,1,1,"","VTKReader"]],"spatialpy.core.vtkreader.VTKReader":[[1,2,1,"","get_array_name"],[1,2,1,"","get_arrays"],[1,2,1,"","get_num_points"],[1,2,1,"","get_points"],[1,2,1,"","read_file"],[1,2,1,"","set_filename"]],"spatialpy.solvers":[[2,0,0,"-","build_expression"],[2,0,0,"-","solver"]],"spatialpy.solvers.build_expression":[[2,1,1,"","BuildExpression"],[2,1,1,"","CppConverter"],[2,1,1,"","ExpressionConverter"],[2,1,1,"","ExpressionResults"],[2,1,1,"","PythonConverter"]],"spatialpy.solvers.build_expression.BuildExpression":[[2,1,1,"","ValidationVisitor"],[2,2,1,"","getexpr_cpp"],[2,2,1,"","getexpr_python"],[2,2,1,"","map_operator"],[2,4,1,"","operator_map"],[2,2,1,"","validate"],[2,2,1,"","with_blacklist"],[2,2,1,"","with_namespace"]],"spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor":[[2,2,1,"","visit_Assign"],[2,2,1,"","visit_BinOp"],[2,2,1,"","visit_BoolOp"],[2,2,1,"","visit_Call"],[2,2,1,"","visit_Compare"],[2,2,1,"","visit_Name"],[2,2,1,"","visit_UnaryOp"]],"spatialpy.solvers.build_expression.CppConverter":[[2,1,1,"","CppExpressionTransformer"],[2,2,1,"","get_str"],[2,2,1,"","visit_And"],[2,2,1,"","visit_Or"]],"spatialpy.solvers.build_expression.CppConverter.CppExpressionTransformer":[[2,2,1,"","visit_BinOp"]],"spatialpy.solvers.build_expression.ExpressionConverter":[[2,2,1,"","convert_str"],[2,2,1,"","get_str"],[2,2,1,"","parse_comparison"],[2,2,1,"","parse_logical"],[2,2,1,"","parse_operator"],[2,2,1,"","visit_Add"],[2,2,1,"","visit_BinOp"],[2,2,1,"","visit_BoolOp"],[2,2,1,"","visit_Bytes"],[2,2,1,"","visit_Call"],[2,2,1,"","visit_Compare"],[2,2,1,"","visit_Constant"],[2,2,1,"","visit_Div"],[2,2,1,"","visit_Ellipsis"],[2,2,1,"","visit_Eq"],[2,2,1,"","visit_Gt"],[2,2,1,"","visit_GtE"],[2,2,1,"","visit_Lt"],[2,2,1,"","visit_LtE"],[2,2,1,"","visit_Mult"],[2,2,1,"","visit_Name"],[2,2,1,"","visit_NameConstant"],[2,2,1,"","visit_NotEq"],[2,2,1,"","visit_Num"],[2,2,1,"","visit_Pow"],[2,2,1,"","visit_Str"],[2,2,1,"","visit_Sub"],[2,2,1,"","visit_USub"],[2,2,1,"","visit_UnaryOp"]],"spatialpy.solvers.build_expression.PythonConverter":[[2,2,1,"","visit_And"],[2,2,1,"","visit_Or"]],"spatialpy.solvers.solver":[[2,1,1,"","Solver"]],"spatialpy.solvers.solver.Solver":[[2,2,1,"","compile"],[2,2,1,"","run"]],"spatialpy.stochss":[[3,0,0,"-","stochss_export"]],"spatialpy.stochss.stochss_export":[[3,5,1,"","export"]],spatialpy:[[1,0,0,"-","core"],[2,0,0,"-","solvers"],[3,0,0,"-","stochss"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","exception","Python exception"],"4":["py","attribute","Python attribute"],"5":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:exception","4":"py:attribute","5":"py:function"},terms:{"0":[1,2],"0012333":[],"04":1,"0511773":[],"1":[1,2],"10":1,"10000":[],"11":[],"12295571":[],"13":[],"14":[],"14142136":[],"15":[],"168474926":[],"19":[],"1993":[],"1993apj":[],"1999":[],"1d":1,"2":1,"20":1,"2000":[],"2002":[],"2003mnra":[],"2005":[],"2015":1,"2019":[],"2022":[],"2236068":[],"2333084":[],"23606798":[],"24617575":[],"26836782":[],"28942611":[],"29571802":[],"2d":1,"2df":[],"2e9":[],"2r01eb014877":4,"3":[1,4],"300":1,"30088013":[],"31994999":[],"32580855":[],"33630734":[],"346":[],"37327919":[],"39923701":[],"3d":[1,4],"4":1,"40":1,"412":[],"5":1,"500":1,"55396483":[],"5647":[],"56906522":[],"57714465":[],"6":1,"600":[],"6395831":[],"6473269":[],"64l":[],"7":[],"71124834":[],"7225693":[],"72658602":[],"75679479":[],"78h":[],"79428925":[],"8":1,"800":[],"80622577":[],"8658745":[],"87665969":[],"9":[],"90785663":[],"abstract":[1,2],"boolean":1,"byte":2,"case":[],"class":[1,2],"default":1,"do":1,"export":[1,3],"float":1,"function":[1,2],"import":1,"int":[1,2],"long":[],"new":2,"public":4,"return":[1,2,3],"short":4,"static":4,"super":2,"switch":[],"true":[1,2,3],A:[1,2,4],And:2,As:[],By:[1,2],FOR:[],For:[1,4],If:[1,2,4],In:[],It:1,NOT:1,No:[],Not:2,Or:2,The:[1,2,4],These:[],To:[],Will:[],_ast:2,ab:[],abc:1,abl:[],about:1,abov:[],absolut:[],acceler:1,accept:[1,2],across:1,action:1,actual:[],ad:[1,2],adapt:[],add:[1,2],add_boundary_condit:1,add_data_funct:1,add_domain:1,add_fill_act:1,add_initial_condit:1,add_paramet:1,add_point:1,add_product:1,add_react:1,add_remove_act:1,add_set_act:1,add_speci:1,addit:[1,2],addition:2,addtion:[1,2],adsab:[],advect:4,after:1,against:2,al:[],algorithm:4,align:[],all:[1,2],allow:2,along:1,alreadi:[],also:[1,2,4],alwai:2,amount:[],an:[1,2,4],analysi:[],angl:1,angular:[],ani:[1,2,4],anim:1,animation_attribut:[],animation_opt:[],annot:1,append:2,appli:1,apply_act:1,apply_fill_act:1,apply_remove_act:1,apply_set_act:1,approxim:[],ar:[1,2],arang:1,arbitrari:1,arg:1,argument:1,around:1,arrai:1,arraid:1,array_lik:[],articl:4,artifici:1,arxiv:[],asarrai:[],ascii:1,assembl:[],assign:[1,2],associ:[],assum:2,ast:2,astro:[],astronom:[],astrophys:[],attempt:1,attribut:1,author:4,auto_plai:[],automat:2,autorang:[],avail:[2,4],averag:1,axi:1,background:1,balanced_tre:[],bare:2,base:[1,2,4],basic:1,bass:1,becaus:[],becom:[],been:[],befor:1,begin:[],behavior:2,below:[],best:1,between:[1,2],bia:[],bin:[],binari:[],binboolopop:2,binop:2,biochem:1,bitand:2,bitor:2,bitxor:2,blacklist:2,blob:[],blue:1,bodi:[],bogu:[],bool:[1,2,3],boolop:2,both:[1,4],bottom:[],bound:1,bound_cond:1,boundari:1,boundarycondit:0,boundaryconditionerror:1,box:1,boxsiz:[],bracket:[],branch:[],brian:4,broadcast:[],browser:[],brute:[],bugn:1,build:[1,2,4],build_dir:1,build_express:0,buildexpress:2,built:2,bulk:[],bupu:1,bvf_phi:1,c0:1,c:[1,2],c_:[],calcul:1,calculate_vol:1,call:[1,2],can:[1,2,4],care:1,cartesian:1,cartesianlattic:1,caus:2,cdn:[],cell:1,center:1,chang:1,charact:1,chart:[],check:[1,2],chemic:1,children:[],choos:[],chosen:1,circumradiu:1,ckdtree:[],ckdtree_nod:[],ckdtreenod:[],classmethod:[1,2],cleanup:0,cleanup_build_fil:1,cleanup_core_fil:1,cleanup_result_fil:1,cleanup_tempfil:1,clear:[],close:[],closest:[],closest_vertex:1,cloud:[],cluster:[],code:4,coeffic:1,coeffici:1,collabor:[],collect:1,colormap:1,column:1,com:4,combin:1,combinatori:1,combinatorygeometri:1,compact:[],compact_nod:[],compar:2,comparison:2,compil:[1,2],compile_prep:1,compon:1,compos:[],comput:[],conain:1,conatain:1,concentr:1,condit:[1,2],config:[],conidit:1,connect:[],connolli:[],consid:[],consol:2,constant:[1,2],construct:1,constructor:2,constuct:1,consum:1,contact:4,contain:[1,2],content:4,context:2,contian:1,contigu:[],continu:4,convers:2,convert:[1,2,3],convert_str:2,convet:2,coo_matrix:[],coodin:1,coordin:1,copi:2,copy_data:[],copy_numb:1,copyright:[],core:[0,2,3,4],corner:[],correl:[],correspond:2,corrupt:[],cosmolog:[],could:[1,2],count:1,count_neighbor:[],coupl:[],coverag:1,cppconvert:2,cppexpressiontransform:2,cpu:[],cradded:1,creat:[1,2],create_2d_domain:1,create_3d_domain:1,csv:1,cumul:[],current:[1,2],custom:1,cylind:4,cylindr:1,cylindricallattic:1,cython:[],d:[],data:[1,2],data_funct:1,datafunct:0,datafunctionerror:1,dd:[],debug:[1,2],debug_level:[1,2],debugg:2,decreas:[],default_rng:[],defer:1,defin:[1,2],definit:1,degener:[],delete_all_boundary_condit:1,delete_all_data_funct:1,delete_all_initial_condit:1,delete_all_paramet:1,delete_all_react:1,delete_all_speci:1,delete_boundary_condit:1,delete_data_funct:1,delete_initial_condit:1,delete_paramet:1,delete_react:1,delete_speci:1,delta:1,deltai:1,deltar:1,deltax:1,deltaz:1,demo:4,densiti:1,depend:1,dependency_graph:1,deprec:1,describ:[1,4],descript:1,detail:[],determinist:[1,4],determinst:1,develop:4,diamet:1,dict:[1,2,3],dictionari:[1,2],differ:[1,2],diffus:[1,4],diffusion_coeffici:1,dimens:1,dimension:[],direct:1,directli:[1,4],directori:1,discuss:[],displai:1,dissip:4,dist:1,distanc:1,distance_between_2_vertic:1,distance_matrix:[],distance_upper_bound:[],distribut:[],div:2,doaminerror:1,doe:1,doesn:1,dok_matrix:[],dolfin:1,dom:[],domain:[0,4],domainerror:1,domn:1,doubl:[],download:[],dr:4,draw:[],drawert:4,drawn:[],dtype:1,dual:[],duplic:2,durat:1,dure:[1,2],dynam:4,e:[],each:1,edg:1,edit:1,edu:[],effect:1,effici:[],either:[],element:1,ellipsi:2,els:[1,3],embed:4,empti:[1,2],enabl:1,end:1,engin:1,ensur:2,enterpris:[],entir:1,entireti:[],entri:1,ep:[],eq:2,equival:2,error:1,estim:1,et:[],euclidean:[],evalu:1,evaul:1,even:[],evenli:1,event:1,exampl:1,exce:1,exceed:2,except:1,exclus:1,execut:[1,2],exist:1,expect:2,expens:[],explor:[],export_stochss:1,export_to_csv:1,expres:2,express:[1,2],expressionconvert:2,expressionresult:2,extens:[],extra:[],f:[],f_durat:1,factor:1,fail:[1,2],fals:[1,2,3],far:2,faster:[],featur:4,fenic:1,field:[],fifo:[],figsiz:[],figur:1,figure_or_data:[],file:[1,3],filenam:[1,3],fill:[1,4],fill_with_particl:1,find:[1,4],find_boundary_point:1,find_h:1,finit:[],first:[1,2],fit:[],fix:1,flag:[1,2],flatten:1,flight:2,floordiv:2,flow:4,fluid:[1,4],folder_nam:1,follow:[1,2],forc:[],form:[1,4],format:1,formula:1,forward:2,found:[1,2,4],foundat:[],frac:[],fraction:1,frame:[1,4],free:[],frequenc:1,from:[1,2],from_json:1,fromkei:[],fund:4,further:[],furthest:[],g:[],gain:[],galaxi:[],gdbgui:2,gener:[1,4],geo1:1,geo2:1,geo3:1,geo_namespac:1,geometi:1,geometr:1,geometri:0,geometry1:1,geometry2:1,geometry3:1,geometry_ivar:1,geometry_obj:1,geometryal:1,geometryerror:1,geometryexterior:1,geometryinterior:1,get:[1,2],get_all_boundary_condit:1,get_all_data_funct:1,get_all_initial_condit:1,get_all_paramet:1,get_all_react:1,get_all_speci:1,get_arrai:1,get_array_nam:1,get_bounding_box:1,get_data_funct:1,get_domain_s:1,get_el:1,get_num_point:1,get_num_react:1,get_num_speci:1,get_num_voxel:1,get_paramet:1,get_point:1,get_properti:1,get_react:1,get_speci:1,get_str:2,get_timespan:1,get_type_def:1,get_vol:1,getexpr_:2,getexpr_cpp:2,getexpr_python:2,github:4,give:[],given:[1,2],gmsh:1,gnbu:1,gnu:4,gprof:2,grai:[],grant:4,granular:2,graph:1,graph_obj:[],graph_refer:[],graviti:[1,4],greater:[],greatest:1,green:1,grei:1,group:1,gt:2,gte:2,guarante:[],h:1,ha:[1,4],hand:2,handl:2,happen:2,harvard:[],hasn:2,have:1,hawkin:[],height:1,held:1,help:[],here:4,high:[],higher:1,highest:1,hit:[],hope:[],how:[1,2,4],http:[1,4],hybrid:4,hyperrectangl:[],i:1,id:1,idea:[],ideal:2,idempot:[],identifi:[1,2],idx:[],ignor:1,ii:[],imag:[],image_height:[],image_width:[],immobil:1,impact:1,implemenet:1,implement:[1,2],impli:[],import_meshio_object:1,imposs:2,inch:1,incid:1,includ:1,included_types_list:1,inclus:1,incompat:[],increas:[],increment:[1,2],indec:1,indeci:1,independ:1,index:[1,4],indic:[1,2],indici:[],inf:[],infer:2,infin:[],infinit:[],info:1,inform:[1,2,4],inherit:2,init_cond:1,init_notebook_mod:[],initailcondit:1,initi:1,initialcondit:0,initialconditionerror:1,inlin:[],innernod:[],input:1,insert:[],insid:1,instanc:[1,2],instead:1,integ:1,intend:4,intern:1,internet:[],interv:1,invalid:[1,2],invalid_:2,invalid_nam:2,invalid_oper:2,io:1,iplot:[],ipython:[],is_valid:2,issuecom:[],item:[1,2],iter:1,its:1,j:[],jacob:4,jet:1,job:[],journal:[],jpeg:[],js:[],json:1,json_object:1,jupyt:1,k:[],kd:[],kd_tree1:[],kd_tree2:[],kd_tree:[],kdtree:[],kei:[1,2],keyerror:[],keyword:1,kill:1,kth:[],kwarg:1,l_i:[],lack:[],lagrangian:4,landi:[],larg:[],larger:[],last:2,later:[1,2],latest:4,lattic:0,lattice_obj:1,latticeerror:1,layout:1,leafnod:[],leafsiz:[],learn:[],leav:[],left:2,legaci:1,len:[],length:1,less:[],level:[1,2],li:4,librari:[],licens:4,lifo:[],like:[],limit:1,linearli:[],link:[],link_text:[],linspac:1,list:[1,2],listofparamet:[],listofreact:[],listofspeci:[],listoftyp:1,load:[],local:[],locat:1,logic:[1,2],longer:[],look:[],lookup:[],loos:[],lower:1,lowest:1,lshift:2,lt:2,lte:2,ly:[],m:[],mai:1,main:4,make:1,manag:2,maneewongvatana:[],manhattan:[],mani:[1,2],map:[1,2],map_oper:2,maplotlib:1,marat:1,margin:[],mark:1,markers:[],mass:1,master:[],mathemat:2,matmult:2,matplotlib:1,matrix:1,matter:[],max:1,max_dist:[],maximum:[1,2],mean:1,measur:1,median:[],meet:[],megabyt:[],merchant:[],mesh:1,mesh_obj:1,meshio:1,meshiolattic:1,messag:1,met:1,meta:[],method:[1,2],mgrid:[],midpoint:[],min:1,mine:[],minim:1,minimum:1,minkowski:[],miss:1,mod:2,model:[0,2,3,4],modelerror:1,modelname_mesh:1,modelname_species_:1,modifi:1,modul:4,monthli:[],moor:[],more:[1,2,4],most:2,mount:[],move:1,move_to_end:[],movement:1,mpl_height:1,mpl_size:1,mpl_width:1,msh:1,much:[],mult:2,multi:[],multipl:[1,2],multiple_graph:1,must:1,n:1,n_i:[],naiv:[],name:[1,2],nameconst:2,namespac:[1,2],ncol:1,ndarrai:1,ndarri:[],nearbi:[],nearby_point:[],nearer:[],nearest:1,necessari:[],necessarili:[],need:[1,4],neg:1,neighbor:1,neighbour:[],nih:4,node:2,nodetransform:2,nodevisitor:2,non:1,none:[1,2,3],nonneg:[],norm:[],normal:1,notat:1,note:[1,2],notebook:[1,4],noteq:2,notic:[],np:1,nrow:1,nsm:4,nu:1,num:2,num_point:1,num_step:1,number:[1,2],number_of_thread:[1,2],number_of_trajectori:[1,2],numi:1,numpi:1,numpoint:1,numx:1,numz:1,nx:[],ny:[],nz:[],o:1,obj:[],object:[1,2],occur:[],od:1,ode_propensity_funct:1,off:1,offlin:[],og:[],omit:[],on_boundari:1,onc:1,one:[1,2],onli:[1,2],onlin:[],open:[],oper:[1,2],operator_map:2,optim:[],option:1,orang:1,order:1,ordereddict:1,org:1,origin:2,orrd:1,other:[1,2],otherwis:2,our:4,out:[1,4],outdat:[],output:[1,2],output_interv:1,output_typ:[],outsid:1,over:1,overflow:[],overrid:2,overridden:1,p0:1,p:[],p_ndx:1,packag:4,page:4,pair:[],parallel:[],param:1,param_nam:[],param_obj:[],paramet:[0,2,3],parameter_map:1,parametererror:1,paramt:1,parent:1,pars:2,parse_comparison:2,parse_log:2,parse_oper:2,part:1,partcil:1,particip:1,particl:[1,4],particular:1,pass:[1,2],path:[1,3],pdf:1,peculiar:[],per:[],perform:1,petzold:4,ph:[],physic:4,pii:4,pixel:1,place:1,placeinitialcondit:1,plane:1,platform:1,pleas:4,plot:1,plot_arg:1,plot_imag:[],plot_properti:1,plot_scatt:1,plot_speci:1,plot_typ:1,plote:1,plotli:1,plotly3:1,plt:[],pname:[],png:[],point1:1,point2:1,point3:1,point:1,points1:[],points2:[],pop:2,popitem:[],popul:1,posit:1,positon:1,pow:2,pre:2,predict:[],preper:1,present:2,preserv:1,preserve_act:1,pressur:1,preview:1,preview_act:1,print:[1,2],prior:1,problem:4,process:2,processor:[],produc:1,product:1,profil:[1,2],program:[],project:4,prop:1,propens:1,propensity_funct:1,properli:[],properti:[1,2],property_nam:1,proprti:1,protect:[],prove:4,provid:[1,2,4],prune:[],pt:[],publish:[],pubu:1,pubugn:1,pull:1,purd:1,purpl:1,purpos:[],put:[],px:[],py:1,pypi:4,pyplot:1,python:[1,2,4],pythonconvert:2,pyurdm:4,quantifi:[],queri:[],query_ball_point:[],query_ball_tre:[],query_pair:[],question:4,quick:[],r1:1,r2:1,r:[],radial:1,radii:[],radiu:1,rais:[1,2],random:[1,2],randomli:1,rang:1,rapidli:[],rate:1,rather:[],ratio:[],ravel:[],raw:1,rdme:4,rdpu:1,re:1,reac:[],reach:1,react_nam:[],react_obj:[],reactant:1,reaction:[0,4],reactionerror:1,read:1,read_fil:1,read_msh_fil:1,read_step:1,read_stochss_domain:1,read_stochss_subdomain_fil:1,read_xml_mesh:1,reader:1,real:[],reason:[],receiv:[],recent:2,record:[],recurs:[],red:1,redistribut:[],redshift:[],refer:1,referenc:1,reflect:1,reflectiontransform:1,regardless:[],region:1,regist:4,registr:4,reject:2,rememb:[],remov:1,repeat:1,replac:4,repres:1,represent:[1,2],request:[],requir:1,reserved_nam:1,resolut:[],restrict:1,restrict_to:1,result:[0,2],result_dir:1,resulterror:1,retreiv:1,retriev:1,return_length:[],return_plotly_figur:1,return_sort:[],return_stochss_model:[1,3],revers:1,reverse_transform:1,rho0:1,rho:1,right:2,rname:1,rng:[],robust:[],rotat:1,rotationtransform:1,royal:[],rshift:2,rtype:2,rule:[],run:[1,2],runtimeerror:[],rvalu:2,s0021999118307101:4,s:[1,4],same:1,sampl:1,sanit:2,sanitized_data_function_nam:1,sanitized_parameter_nam:1,sanitized_propensity_funct:1,sanitized_species_nam:1,satisfi:1,save:[],scalar:1,scale:1,scalingtransform:1,scatter:1,scatter_arg:1,scatterinitialcondit:1,schedul:[],scheme:[],scienc:4,sciencedirect:4,scipi:[],scope:1,sdm:[],sdpd:[1,4],search:4,second:[1,2],section:[],see:4,seed:[1,2],self:2,sens:[],sep:[],separ:1,sequenc:[],seri:2,serv:1,set:[1,2],set_annot:1,set_diffusion_coeffici:1,set_filenam:1,set_propens:1,set_properti:1,set_rat:1,set_timestep:1,setdefault:[],setrecursionlimit:[],setter:1,shall:[],shallow:[],shape:1,sheth:[],should:[1,2],show:1,show_link:[],shrink:[],signal:[],significantli:[],similar:[],simlat:1,simplifi:1,simul:[1,2,4],simulationerror:[1,2],simulationtimeout:[1,2],sinc:[],singl:[1,2],size:1,skibba:[],skip_valid:1,sky:[],slide:[],slightli:[],small:[],smaller:[],smdl:1,smooth:4,sname:[],so:2,societi:[],softwar:4,solver:[0,1,4],some:[],sort:[],sound:1,sourc:[1,2,3,4],space:1,spactialpi:2,span:1,spars:[],sparse_distance_matrix:[],spatial:[1,2,4],spatialpy_build:1,spatialpy_model:1,spatialpy_result:1,spatialpyerror:0,spatialpysolv:1,speci:0,special_charact:1,species_map:1,species_nam:[],species_object:[],specieserror:1,specif:1,specifi:1,speed:1,spheric:1,sphericallattic:1,split:[],split_dim:[],squeez:[],src:[],ssa:1,sssa:4,start:[1,2,4],statement:2,statist:[],step:1,step_num:1,stochast:[1,4],stochss:[0,1,4],stochss_export:0,stochsslattic:1,stoichiometr:1,stoichiometri:1,store:[],str:[1,2,3],string:[1,2],struct:2,structur:[],style:1,sub:2,subclass:[1,2],subdomain:1,subdomain_fil:1,submodul:0,subpackag:4,subplot:1,substanti:[],substitut:2,success:[],suggest:4,sum:[],suppli:[],support:[1,4],sure:1,surfac:1,survei:[],svg:[],sy:[],symbol:2,syntax:2,syntaxerror:2,system:[1,4],szalai:[],t:[1,2],t_durat:1,t_ndx:1,t_ndx_list:1,t_val:1,tag:1,take:1,target:[1,2],tempfil:1,term:1,tetrahedron:1,text:[],th:[],than:1,them:[],thi:[1,2,4],thin:[],those:[],though:[],thread:[1,2],time:[1,2],time_span:1,timeout:[1,2],timepoint:1,timespan:0,timespanerror:1,timestep:1,timestep_s:1,titl:1,to_dict:1,toarrai:[],token:2,topolog:[],toroid:[],total:1,toth:1,trace:1,tracker:4,trajectori:[1,2],transform:0,transformationerror:1,transit:1,translat:1,translationtransform:1,travers:[],tree:2,triangl:1,trigger:2,tspan:1,tupl:1,two:[1,2],txt:1,type:[1,2,3],type_id:1,u0:1,un:1,unabl:1,unaryop:2,unassign:1,under:4,understood:1,uniform:1,uniforminitialcondit:1,union:1,unit:1,univers:2,unless:[],unnecessari:[],unsqueez:[],unweight:[],up:[],updat:1,update_namespac:1,upload:1,upon:1,upper:1,urdm:1,us:[1,2,4],use_matplotlib:1,user:[1,4],usual:[],usub:2,util:1,v1:1,v:1,valid:[1,2],validate_act:1,validationvisitor:2,valu:[1,2],valueerror:[],vari:1,varianc:[],vector:1,veloc:1,verbos:2,veri:[],version:4,vertex:1,vertic:1,view:1,viewer:[],viscos:1,visit:2,visit_add:2,visit_and:2,visit_assign:2,visit_binop:2,visit_boolop:2,visit_byt:2,visit_cal:2,visit_compar:2,visit_const:2,visit_div:2,visit_ellipsi:2,visit_eq:2,visit_gt:2,visit_lt:2,visit_mult:2,visit_nam:2,visit_nameconst:2,visit_noteq:2,visit_num:2,visit_or:2,visit_pow:2,visit_str:2,visit_sub:2,visit_unaryop:2,visit_usub:2,visitor:2,visual:0,visualizationerror:1,vol:1,volum:1,voxel:1,vtk:1,vtkreader:0,vtkreadererror:1,vtkreaderioerror:1,wa:1,want:[],warranti:[],wasn:1,we:4,web:[],webp:[],weight:[],weir:4,well:2,were:[1,2],what:2,when:[1,2],where:1,whether:[1,2,3],which:[1,2],whose:[],wide:[],width:1,with_blacklist:2,with_namespac:2,within:1,without:[],work:1,worker:[],would:1,wp:1,wrap:1,wrapper:1,write:1,write_imag:[],written:1,www:4,x1:[],x2:[],x:1,x_i:[],xaxi:[],xi:[],xk:[],xlim:1,xmax:1,xmin:1,xml:1,xmlmeshlattic:1,y:1,yaxi:[],yet:1,yi:4,ylgn:1,ylgnbu:1,ylim:1,ylorbr:1,ylorrd:1,ymax:1,ymin:1,you:[1,4],your:[1,4],z:1,zero:1,zeroth:1,zip:[],zlim:1,zmax:1,zmin:1},titles:["spatialpy package","spatialpy.core package","spatialpy.solvers package","spatialpy.stochss package","Documentation for SpatialPy 1.1.0"],titleterms:{"0":4,"1":4,"2":[],api:4,boundarycondit:1,build_express:2,cleanup:1,content:[0,1,2,3],copi:4,core:1,datafunct:1,document:4,domain:1,exampl:4,geometri:1,get:4,indic:4,initialcondit:1,issu:4,lattic:1,model:1,modul:[0,1,2,3],packag:[0,1,2,3],paramet:1,reaction:1,refer:4,report:4,result:1,solver:2,spatialpi:[0,1,2,3,4],spatialpyerror:1,speci:1,stochss:3,stochss_export:3,submodul:[1,2,3],subpackag:0,tabl:4,timespan:1,transform:1,visual:1,vtkreader:1}}) \ No newline at end of file +Search.setIndex({"docnames": ["classes/spatialpy", "classes/spatialpy.core", "classes/spatialpy.solvers", "classes/spatialpy.stochss", "index"], "filenames": ["classes/spatialpy.rst", "classes/spatialpy.core.rst", "classes/spatialpy.solvers.rst", "classes/spatialpy.stochss.rst", "index.rst"], "titles": ["spatialpy package", "spatialpy.core package", "spatialpy.solvers package", "spatialpy.stochss package", "Documentation for SpatialPy 1.1.2"], "terms": {"core": [0, 2, 3, 4], "submodul": 0, "boundarycondit": 0, "express": [0, 1, 2], "cleanup": 0, "cleanup_build_fil": [0, 1], "cleanup_core_fil": [0, 1], "cleanup_result_fil": [0, 1], "cleanup_tempfil": [0, 1], "datafunct": 0, "map": [0, 1, 2], "domain": [0, 4], "add_fill_act": [0, 1], "add_point": [0, 1], "add_remove_act": [0, 1], "add_set_act": [0, 1], "apply_act": [0, 1], "apply_fill_act": [0, 1], "apply_remove_act": [0, 1], "apply_set_act": [0, 1], "calculate_vol": [0, 1], "closest_vertex": [0, 1], "compile_prep": [0, 1], "coordin": [0, 1], "create_2d_domain": [0, 1], "create_3d_domain": [0, 1], "distance_between_2_vertic": [0, 1], "fill_with_particl": [0, 1], "find_boundary_point": [0, 1], "find_h": [0, 1], "get_bounding_box": [0, 1], "get_domain_s": [0, 1], "get_num_voxel": [0, 1], "get_type_def": [0, 1], "get_vol": [0, 1], "import_meshio_object": [0, 1], "plot_typ": [0, 1], "preview_act": [0, 1], "read_msh_fil": [0, 1], "read_stochss_domain": [0, 1], "read_stochss_subdomain_fil": [0, 1], "read_xml_mesh": [0, 1], "set_properti": [0, 1], "validate_act": [0, 1], "geometri": 0, "combinatorygeometri": [0, 1], "insid": [0, 1], "valid": [0, 1, 2], "geometryal": [0, 1], "geometryexterior": [0, 1], "geometryinterior": [0, 1], "initialcondit": 0, "appli": [0, 1], "placeinitialcondit": [0, 1], "scatterinitialcondit": [0, 1], "uniforminitialcondit": [0, 1], "lattic": 0, "cartesianlattic": [0, 1], "cylindricallattic": [0, 1], "meshiolattic": [0, 1], "sphericallattic": [0, 1], "stochsslattic": [0, 1], "xmlmeshlattic": [0, 1], "model": [0, 2, 3, 4], "add": [0, 1, 2], "add_boundary_condit": [0, 1], "add_data_funct": [0, 1], "add_domain": [0, 1], "add_initial_condit": [0, 1], "add_paramet": [0, 1], "add_react": [0, 1], "add_speci": [0, 1], "delete_all_boundary_condit": [0, 1], "delete_all_data_funct": [0, 1], "delete_all_initial_condit": [0, 1], "delete_all_paramet": [0, 1], "delete_all_react": [0, 1], "delete_all_speci": [0, 1], "delete_boundary_condit": [0, 1], "delete_data_funct": [0, 1], "delete_initial_condit": [0, 1], "delete_paramet": [0, 1], "delete_react": [0, 1], "delete_speci": [0, 1], "get_all_boundary_condit": [0, 1], "get_all_data_funct": [0, 1], "get_all_initial_condit": [0, 1], "get_all_paramet": [0, 1], "get_all_react": [0, 1], "get_all_speci": [0, 1], "get_data_funct": [0, 1], "get_el": [0, 1], "get_num_react": [0, 1], "get_num_speci": [0, 1], "get_paramet": [0, 1], "get_react": [0, 1], "get_speci": [0, 1], "reserved_nam": [0, 1], "run": [0, 1, 2], "sanitized_data_function_nam": [0, 1], "sanitized_parameter_nam": [0, 1], "sanitized_species_nam": [0, 1], "set_timestep": [0, 1], "special_charact": [0, 1], "timespan": 0, "update_namespac": [0, 1], "export_stochss": [0, 1], "paramet": [0, 2, 3], "reaction": [0, 4], "add_product": [0, 1], "annot": [0, 1], "from_json": [0, 1], "initi": [0, 1], "sanitized_propensity_funct": [0, 1], "set_annot": [0, 1], "set_propens": [0, 1], "set_rat": [0, 1], "to_dict": [0, 1], "result": [0, 2], "export_to_csv": [0, 1], "get_properti": [0, 1], "get_timespan": [0, 1], "plot_properti": [0, 1], "plot_speci": [0, 1], "read_step": [0, 1], "spatialpyerror": 0, "boundaryconditionerror": [0, 1], "datafunctionerror": [0, 1], "domainerror": [0, 1], "geometryerror": [0, 1], "initialconditionerror": [0, 1], "latticeerror": [0, 1], "modelerror": [0, 1], "parametererror": [0, 1], "reactionerror": [0, 1], "resulterror": [0, 1], "simulationerror": [0, 1, 2], "simulationtimeout": [0, 1, 2], "specieserror": [0, 1], "timespanerror": [0, 1], "transformationerror": [0, 1], "vtkreadererror": [0, 1], "vtkreaderioerror": [0, 1], "visualizationerror": [0, 1], "speci": 0, "set_diffusion_coeffici": [0, 1], "arang": [0, 1], "linspac": [0, 1], "transform": 0, "reflectiontransform": [0, 1], "reverse_transform": [0, 1], "rotationtransform": [0, 1], "scalingtransform": [0, 1], "translationtransform": [0, 1], "visual": 0, "mpl_height": [0, 1], "mpl_size": [0, 1], "mpl_width": [0, 1], "plot_scatt": [0, 1], "vtkreader": 0, "get_array_nam": [0, 1], "get_arrai": [0, 1], "get_num_point": [0, 1], "get_point": [0, 1], "read_fil": [0, 1], "set_filenam": [0, 1], "solver": [0, 1, 4], "build_express": 0, "buildexpress": [0, 2], "validationvisitor": [0, 2], "getexpr_cpp": [0, 2], "getexpr_python": [0, 2], "map_oper": [0, 2], "operator_map": [0, 2], "with_blacklist": [0, 2], "with_namespac": [0, 2], "cppconvert": [0, 2], "cppexpressiontransform": [0, 2], "get_str": [0, 2], "visit_and": [0, 2], "visit_or": [0, 2], "expressionconvert": [0, 2], "convert_str": [0, 2], "parse_comparison": [0, 2], "parse_log": [0, 2], "parse_oper": [0, 2], "visit_add": [0, 2], "visit_binop": [0, 2], "visit_boolop": [0, 2], "visit_byt": [0, 2], "visit_cal": [0, 2], "visit_compar": [0, 2], "visit_const": [0, 2], "visit_div": [0, 2], "visit_ellipsi": [0, 2], "visit_eq": [0, 2], "visit_gt": [0, 2], "visit_lt": [0, 2], "visit_mult": [0, 2], "visit_nam": [0, 2], "visit_nameconst": [0, 2], "visit_noteq": [0, 2], "visit_num": [0, 2], "visit_pow": [0, 2], "visit_str": [0, 2], "visit_sub": [0, 2], "visit_usub": [0, 2], "visit_unaryop": [0, 2], "expressionresult": [0, 2], "pythonconvert": [0, 2], "compil": [0, 1, 2], "stochss": [0, 1, 4], "stochss_export": 0, "export": [0, 1, 3], "class": [1, 2], "xmin": 1, "none": [1, 2, 3], "xmax": 1, "ymin": 1, "ymax": 1, "zmin": 1, "zmax": 1, "type_id": 1, "determinist": [1, 4], "true": [1, 2, 3], "target": [1, 2], "valu": [1, 2], "sourc": [1, 2, 3, 4], "base": [1, 2, 4], "object": [1, 2], "set": [1, 2], "spatial": [1, 2, 4], "region": 1, "where": 1, "properti": [1, 2], "particl": [1, 4], "ar": [1, 2], "held": 1, "constant": [1, 2], "updat": 1, "each": 1, "simul": [1, 2, 4], "step": 1, "condit": [1, 2], "one": [1, 2], "more": [1, 2, 4], "follow": [1, 2], "must": 1, "float": 1, "min": 1, "max": 1, "x": 1, "dimens": 1, "y": 1, "z": 1, "type": [1, 2, 3], "subdomain": 1, "partcil": 1, "str": [1, 2, 3], "nu": 1, "rho": 1, "v": 1, "name": [1, 2], "chemic": 1, "also": [1, 2, 4], "fals": [1, 2, 3], "flag": [1, 2], "axi": 1, "lower": 1, "bound": 1, "upper": 1, "int": [1, 2], "id": 1, "bool": [1, 2, 3], "i": [1, 2, 3, 4], "boundari": 1, "yet": 1, "implemenet": 1, "stochast": [1, 4], "can": [1, 2, 4], "If": [1, 2, 4], "determinst": 1, "3": [1, 4], "take": 1, "defin": [1, 2], "creat": [1, 2], "evalu": 1, "string": [1, 2], "return": [1, 2, 3], "A": [1, 2, 4], "represent": [1, 2], "build_dir": 1, "all": [1, 2], "spatialpy_build": 1, "directori": 1, "path": [1, 3], "build": [1, 2, 4], "remov": 1, "option": 1, "tempfil": 1, "result_dir": 1, "spatialpy_result": 1, "abstract": [1, 2], "us": [1, 2, 4], "constuct": 1, "data": [1, 2], "function": [1, 2], "rais": [1, 2], "provid": [1, 2, 4], "point": 1, "thi": [1, 2, 4], "method": [1, 2], "overridden": 1, "subclass": [1, 2], "note": [1, 2], "The": [1, 2, 4], "locat": 1, "evaul": 1, "t": [1, 2], "0": [1, 2], "re": 1, "fluid": [1, 4], "move": 1, "over": 1, "time": [1, 2], "posit": 1, "numpoint": 1, "xlim": 1, "ylim": 1, "zlim": 1, "rho0": 1, "1": [1, 2], "c0": 1, "10": 1, "p0": 1, "graviti": [1, 4], "action": 1, "attribut": 1, "space": 1, "total": 1, "number": [1, 2], "2": 1, "rang": 1, "along": 1, "background": 1, "densiti": 1, "system": [1, 4], "speed": 1, "sound": 1, "pressur": 1, "acceler": 1, "cartesian": 1, "spheric": 1, "cylindr": 1, "enabl": 1, "prop": 1, "an": [1, 2, 4], "when": [1, 2], "fill": [1, 4], "default": 1, "dict": [1, 2, 3], "argument": 1, "ignor": 1, "indic": [1, 2], "els": [1, 3], "addit": [1, 2], "pass": [1, 2], "ad": [1, 2], "wasn": 1, "could": [1, 2], "construct": 1, "vol": 1, "mass": 1, "unassign": 1, "fix": 1, "c": [1, 2], "singl": [1, 2], "vertic": 1, "volum": 1, "cradded": 1, "viscos": 1, "artifici": 1, "contain": [1, 2], "invalid": [1, 2], "charact": 1, "from": [1, 2], "start": [1, 2, 4], "end": 1, "preserve_act": 1, "order": 1, "index": [1, 4], "inclus": 1, "exclus": 1, "after": 1, "its": 1, "support": [1, 4], "within": 1, "have": 1, "exampl": 1, "lattice_obj": 1, "geometry_obj": 1, "miss": 1, "calcul": 1, "find": [1, 4], "nearest": 1, "vertex": 1, "given": [1, 2], "gener": [1, 4], "list": [1, 2], "check": [1, 2], "preper": 1, "file": [1, 3], "get": [1, 2], "numpi": 1, "arrai": 1, "classmethod": [1, 2], "numx": 1, "numi": 1, "kwarg": 1, "2d": 1, "highest": 1, "lowest": 1, "keyword": 1, "uniform": 1, "numz": 1, "3d": [1, 4], "distanc": 1, "between": [1, 2], "measur": 1, "geometry_ivar": 1, "deltax": 1, "deltai": 1, "deltaz": 1, "geometr": 1, "shape": 1, "instanc": [1, 2], "minimum": 1, "box": 1, "maximum": [1, 2], "were": [1, 2], "exist": 1, "np": 1, "ndarrai": 1, "dtype": 1, "h": 1, "off": 1, "which": [1, 2], "ha": [1, 4], "greatest": 1, "neighbor": 1, "entir": 1, "limit": 1, "tupl": 1, "estim": 1, "size": 1, "averag": 1, "diamet": 1, "circumradiu": 1, "tetrahedron": 1, "part": 1, "mean": 1, "incid": 1, "cell": 1, "voxel": 1, "definit": 1, "mesh_obj": 1, "subdomain_fil": 1, "import": 1, "python": [1, 2, 4], "meshio": 1, "mesh": 1, "v1": 1, "descript": 1, "filenam": [1, 3], "indeci": 1, "width": 1, "height": 1, "colormap": 1, "titl": 1, "included_types_list": 1, "use_matplotlib": 1, "return_plotly_figur": 1, "plot": 1, "plotli": 1, "onli": [1, 2], "view": 1, "jupyt": 1, "notebook": [1, 4], "pixel": 1, "output": [1, 2], "matplotlib": 1, "inch": 1, "500": 1, "specif": 1, "plotly3": 1, "jet": 1, "blue": 1, "ylorrd": 1, "purd": 1, "bugn": 1, "ylorbr": 1, "pubugn": 1, "bupu": 1, "ylgnbu": 1, "pubu": 1, "gnbu": 1, "ylgn": 1, "green": 1, "red": 1, "grei": 1, "rdpu": 1, "orrd": 1, "purpl": 1, "orang": 1, "graph": 1, "describ": [1, 4], "includ": 1, "By": [1, 2], "displai": 1, "whether": [1, 2, 3], "figur": 1, "dictionari": [1, 2], "trace": 1, "layout": 1, "mai": 1, "edit": 1, "user": [1, 4], "proprti": 1, "preview": 1, "effect": 1, "read": 1, "gmsh": 1, "style": 1, "msh": 1, "domn": 1, "pull": 1, "smdl": 1, "txt": 1, "conain": 1, "fenic": 1, "dolfin": 1, "xml": 1, "assign": [1, 2], "identifi": [1, 2], "immobil": 1, "coverag": 1, "scope": 1, "accept": [1, 2], "doaminerror": 1, "met": 1, "": [1, 4], "formula": 1, "geo_namespac": 1, "combinatori": 1, "multipl": [1, 2], "boolean": 1, "logic": [1, 2], "geo1": 1, "geo2": 1, "geo3": 1, "namespac": [1, 2], "geometry1": 1, "geometry2": 1, "geometry3": 1, "found": [1, 2, 4], "on_boundari": 1, "coodin": 1, "edg": 1, "satisfi": 1, "geometi": 1, "ani": [1, 2, 4], "doe": 1, "tag": 1, "separ": 1, "mark": 1, "work": 1, "triangl": 1, "implement": [1, 2], "direct": 1, "modifi": 1, "u0": 1, "matrix": 1, "count": 1, "contian": 1, "place": 1, "scatter": 1, "randomli": 1, "center": 1, "two": [1, 2], "doesn": 1, "restrict": 1, "depend": 1, "radiu": 1, "length": 1, "delta": 1, "deltar": 1, "surfac": 1, "radial": 1, "skip_valid": 1, "arg": 1, "io": 1, "un": 1, "biochem": 1, "compon": 1, "befor": 1, "other": [1, 2], "combin": 1, "than": 1, "do": 1, "need": [1, 4], "particular": 1, "bound_cond": 1, "conidit": 1, "data_funct": 1, "scalar": 1, "you": [1, 4], "vari": 1, "input": 1, "your": [1, 4], "It": 1, "positon": 1, "toth": 1, "init_cond": 1, "fail": [1, 2], "make": 1, "sure": 1, "paramt": 1, "diffus": [1, 4], "util": 1, "stoichiometr": 1, "dependency_graph": 1, "timestep": 1, "exce": 1, "frequenc": 1, "ordereddict": 1, "form": [1, 4], "kei": [1, 2], "specifi": 1, "element": 1, "differ": [1, 2], "rname": 1, "number_of_trajectori": [1, 2], "seed": [1, 2], "timeout": [1, 2], "number_of_thread": [1, 2], "debug_level": [1, 2], "debug": [1, 2], "profil": [1, 2], "how": [1, 2, 4], "mani": [1, 2], "trajectori": [1, 2], "should": [1, 2], "random": [1, 2], "second": [1, 2], "kill": 1, "upon": 1, "reach": 1, "thread": [1, 2], "level": [1, 2], "print": [1, 2], "out": [1, 4], "info": 1, "dure": [1, 2], "addtion": [1, 2], "perform": 1, "chosen": 1, "simplifi": 1, "format": 1, "later": [1, 2], "spatialpysolv": 1, "propens": 1, "intern": 1, "notat": 1, "output_interv": 1, "num_step": 1, "timestep_s": 1, "simlat": 1, "span": 1, "first": [1, 2], "zero": 1, "time_span": 1, "ssa": 1, "sdpd": [1, 4], "engin": 1, "non": 1, "tspan": 1, "evenli": 1, "sampl": 1, "popul": 1, "flatten": 1, "spatialpy_model": 1, "return_stochss_model": [1, 3], "convert": [1, 2, 3], "json": 1, "platform": 1, "directli": [1, 4], "understood": 1, "parent": 1, "call": [1, 2], "referenc": 1, "requir": 1, "outsid": 1, "reactant": 1, "product": 1, "propensity_funct": 1, "ode_propensity_funct": 1, "rate": 1, "restrict_to": 1, "conatain": 1, "neg": 1, "union": 1, "For": [1, 4], "zeroth": 1, "attempt": 1, "higher": 1, "error": 1, "consum": 1, "stoichiometri": 1, "would": 1, "r1": 1, "r2": 1, "event": 1, "same": 1, "custom": 1, "oper": [1, 2], "od": 1, "care": 1, "unit": 1, "about": 1, "execut": [1, 2], "NOT": 1, "both": [1, 4], "term": 1, "repres": 1, "independ": 1, "wa": 1, "impact": 1, "preserv": 1, "produc": 1, "particip": 1, "deprec": 1, "param": 1, "json_object": 1, "defer": 1, "species_map": 1, "parameter_map": 1, "chang": 1, "marat": 1, "urdm": 1, "folder_nam": 1, "write": 1, "csv": 1, "modelname_mesh": 1, "modelname_species_": 1, "column": 1, "n": 1, "vtk": 1, "written": 1, "current": [1, 2], "property_nam": 1, "timepoint": 1, "integ": 1, "1d": 1, "veloc": 1, "bvf_phi": 1, "fraction": 1, "across": 1, "concentr": 1, "retreiv": 1, "inform": [1, 2, 4], "raw": 1, "copy_numb": 1, "unabl": 1, "retriev": 1, "t_ndx": 1, "t_val": 1, "p_ndx": 1, "anim": 1, "t_ndx_list": 1, "f_durat": 1, "t_durat": 1, "300": 1, "6": 1, "4": 1, "8": 1, "indec": 1, "interv": 1, "durat": 1, "frame": [1, 4], "transit": 1, "5": 1, "show": 1, "instead": 1, "step_num": 1, "except": 1, "initailcondit": 1, "bass": 1, "messag": 1, "o": 1, "diffusion_coeffici": 1, "coeffic": 1, "coeffici": 1, "listoftyp": 1, "movement": 1, "setter": 1, "item": [1, 2], "iter": 1, "best": 1, "increment": [1, 2], "20": 1, "num_point": 1, "empti": [1, 2], "repeat": 1, "point1": 1, "normal": 1, "point2": 1, "point3": 1, "reflect": 1, "revers": 1, "around": 1, "arbitrari": 1, "plane": 1, "serv": 1, "vector": 1, "onc": 1, "wrap": 1, "prior": 1, "angl": 1, "rotat": 1, "basic": 1, "factor": 1, "scale": 1, "wrapper": 1, "translat": 1, "40": 1, "plot_arg": 1, "scatter_arg": 1, "multiple_graph": 1, "maplotlib": 1, "pyplot": 1, "subplot": 1, "dist": 1, "group": 1, "nrow": 1, "ncol": 1, "entri": 1, "plote": 1, "py": 1, "minim": 1, "legaci": 1, "reader": 1, "refer": 1, "http": [1, 4], "org": 1, "wp": 1, "upload": 1, "2015": 1, "04": 1, "pdf": 1, "arraid": 1, "ascii": 1, "blacklist": 2, "sanit": 2, "allow": 2, "pre": 2, "flight": 2, "syntax": 2, "well": 2, "manag": 2, "context": 2, "statement": 2, "expect": 2, "forward": 2, "ideal": 2, "univers": 2, "constructor": 2, "granular": 2, "bare": 2, "equival": 2, "trigger": 2, "substitut": 2, "convers": 2, "automat": 2, "correspond": 2, "getexpr_": 2, "nodetransform": 2, "ast": 2, "expres": 2, "spactialpi": 2, "node": 2, "visit_assign": 2, "visitor": 2, "origin": 2, "binop": 2, "boolop": 2, "binboolopop": 2, "otherwis": 2, "compar": 2, "unaryop": 2, "syntaxerror": 2, "imposs": 2, "convet": 2, "built": 2, "_ast": 2, "Not": 2, "noteq": 2, "mod": 2, "bitand": 2, "mult": 2, "pow": 2, "sub": 2, "div": 2, "floordiv": 2, "lt": 2, "lshift": 2, "lte": 2, "eq": 2, "gt": 2, "gte": 2, "rshift": 2, "matmult": 2, "bitxor": 2, "And": 2, "Or": 2, "bitor": 2, "so": 2, "far": 2, "ensur": 2, "pars": 2, "against": 2, "addition": 2, "reject": 2, "rvalu": 2, "new": 2, "duplic": 2, "overrid": 2, "handl": 2, "behavior": 2, "copi": 2, "rtype": 2, "present": 2, "caus": 2, "what": 2, "tree": 2, "super": 2, "nodevisitor": 2, "self": 2, "comparison": 2, "last": 2, "mathemat": 2, "right": 2, "visit": 2, "left": 2, "most": 2, "recent": 2, "append": 2, "token": 2, "alwai": 2, "hand": 2, "u": 2, "pop": 2, "process": 2, "assum": 2, "inherit": 2, "byte": 2, "ellipsi": 2, "nameconst": 2, "num": 2, "usub": 2, "invalid_nam": 2, "invalid_oper": 2, "is_valid": 2, "struct": 2, "infer": 2, "invalid_": 2, "verbos": 2, "gdbgui": 2, "debugg": 2, "symbol": 2, "hasn": 2, "happen": 2, "gprof": 2, "avail": [2, 4], "consol": 2, "seri": 2, "exceed": 2, "packag": 4, "advect": 4, "problem": 4, "embed": 4, "lagrangian": 4, "dynam": 4, "intend": 4, "replac": 4, "pyurdm": 4, "softwar": 4, "github": 4, "com": 4, "featur": 4, "nsm": 4, "rdme": 4, "static": 4, "sssa": 4, "public": 4, "hybrid": 4, "smooth": 4, "dissip": 4, "algorithm": 4, "drawert": 4, "jacob": 4, "li": 4, "yi": 4, "petzold": 4, "www": 4, "sciencedirect": 4, "scienc": 4, "articl": 4, "pii": 4, "s0021999118307101": 4, "latest": 4, "version": 4, "pypi": 4, "code": 4, "licens": 4, "under": 4, "gnu": 4, "pleas": 4, "regist": 4, "develop": 4, "fund": 4, "nih": 4, "grant": 4, "2r01eb014877": 4, "continu": 4, "we": 4, "prove": 4, "our": 4, "short": 4, "registr": 4, "see": 4, "here": 4, "cylind": 4, "demo": 4, "physic": 4, "flow": 4, "weir": 4, "tracker": 4, "project": 4, "contact": 4, "main": 4, "author": 4, "dr": 4, "brian": 4, "question": 4, "suggest": 4, "subpackag": 4, "modul": 4, "content": 4, "search": 4, "page": 4}, "objects": {"": [[0, 0, 0, "-", "spatialpy"]], "spatialpy": [[1, 0, 0, "-", "core"], [2, 0, 0, "-", "solvers"], [3, 0, 0, "-", "stochss"]], "spatialpy.core": [[1, 1, 1, "", "BoundaryCondition"], [1, 3, 1, "", "BoundaryConditionError"], [1, 1, 1, "", "CartesianLattice"], [1, 1, 1, "", "CombinatoryGeometry"], [1, 1, 1, "", "CylindricalLattice"], [1, 1, 1, "", "DataFunction"], [1, 3, 1, "", "DataFunctionError"], [1, 1, 1, "", "Domain"], [1, 3, 1, "", "DomainError"], [1, 1, 1, "", "Geometry"], [1, 1, 1, "", "GeometryAll"], [1, 3, 1, "", "GeometryError"], [1, 1, 1, "", "GeometryExterior"], [1, 1, 1, "", "GeometryInterior"], [1, 1, 1, "", "InitialCondition"], [1, 3, 1, "", "InitialConditionError"], [1, 3, 1, "", "LatticeError"], [1, 1, 1, "", "MeshIOLattice"], [1, 1, 1, "", "Model"], [1, 3, 1, "", "ModelError"], [1, 1, 1, "", "Parameter"], [1, 3, 1, "", "ParameterError"], [1, 1, 1, "", "PlaceInitialCondition"], [1, 1, 1, "", "Reaction"], [1, 3, 1, "", "ReactionError"], [1, 1, 1, "", "ReflectionTransformation"], [1, 1, 1, "", "Result"], [1, 3, 1, "", "ResultError"], [1, 1, 1, "", "RotationTransformation"], [1, 1, 1, "", "ScalingTransformation"], [1, 1, 1, "", "ScatterInitialCondition"], [1, 3, 1, "", "SimulationError"], [1, 3, 1, "", "SimulationTimeout"], [1, 1, 1, "", "Species"], [1, 3, 1, "", "SpeciesError"], [1, 1, 1, "", "SphericalLattice"], [1, 1, 1, "", "StochSSLattice"], [1, 1, 1, "", "TimeSpan"], [1, 3, 1, "", "TimespanError"], [1, 1, 1, "", "Transformation"], [1, 3, 1, "", "TransformationError"], [1, 1, 1, "", "TranslationTransformation"], [1, 1, 1, "", "UniformInitialCondition"], [1, 1, 1, "", "VTKReader"], [1, 3, 1, "", "VTKReaderError"], [1, 3, 1, "", "VTKReaderIOError"], [1, 1, 1, "", "Visualization"], [1, 3, 1, "", "VisualizationError"], [1, 1, 1, "", "XMLMeshLattice"], [1, 0, 0, "-", "boundarycondition"], [1, 0, 0, "-", "cleanup"], [1, 5, 1, "", "cleanup_build_files"], [1, 5, 1, "", "cleanup_core_files"], [1, 5, 1, "", "cleanup_result_files"], [1, 5, 1, "", "cleanup_tempfiles"], [1, 0, 0, "-", "datafunction"], [1, 0, 0, "-", "domain"], [1, 5, 1, "", "export_StochSS"], [1, 0, 0, "-", "geometry"], [1, 0, 0, "-", "initialcondition"], [1, 0, 0, "-", "lattice"], [1, 0, 0, "-", "model"], [1, 0, 0, "-", "parameter"], [1, 0, 0, "-", "reaction"], [1, 0, 0, "-", "result"], [1, 0, 0, "-", "spatialpyerror"], [1, 0, 0, "-", "species"], [1, 0, 0, "-", "timespan"], [1, 0, 0, "-", "transformation"], [1, 0, 0, "-", "visualization"], [1, 0, 0, "-", "vtkreader"]], "spatialpy.core.BoundaryCondition": [[1, 2, 1, "", "expression"]], "spatialpy.core.CartesianLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.CombinatoryGeometry": [[1, 2, 1, "", "inside"], [1, 2, 1, "", "validate"]], "spatialpy.core.CylindricalLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.DataFunction": [[1, 2, 1, "", "map"]], "spatialpy.core.Domain": [[1, 2, 1, "", "add_fill_action"], [1, 2, 1, "", "add_point"], [1, 2, 1, "", "add_remove_action"], [1, 2, 1, "", "add_set_action"], [1, 2, 1, "", "apply_actions"], [1, 2, 1, "", "apply_fill_action"], [1, 2, 1, "", "apply_remove_action"], [1, 2, 1, "", "apply_set_action"], [1, 2, 1, "", "calculate_vol"], [1, 2, 1, "", "closest_vertex"], [1, 2, 1, "", "compile_prep"], [1, 2, 1, "", "coordinates"], [1, 2, 1, "", "create_2D_domain"], [1, 2, 1, "", "create_3D_domain"], [1, 2, 1, "", "distance_between_2_vertices"], [1, 2, 1, "", "fill_with_particles"], [1, 2, 1, "", "find_boundary_points"], [1, 2, 1, "", "find_h"], [1, 2, 1, "", "get_bounding_box"], [1, 2, 1, "", "get_domain_size"], [1, 2, 1, "", "get_num_voxels"], [1, 2, 1, "", "get_type_def"], [1, 2, 1, "", "get_vol"], [1, 2, 1, "", "import_meshio_object"], [1, 2, 1, "", "plot_types"], [1, 2, 1, "", "preview_actions"], [1, 2, 1, "", "read_msh_file"], [1, 2, 1, "", "read_stochss_domain"], [1, 2, 1, "", "read_stochss_subdomain_file"], [1, 2, 1, "", "read_xml_mesh"], [1, 2, 1, "", "set_properties"], [1, 2, 1, "", "validate_action"]], "spatialpy.core.Geometry": [[1, 2, 1, "", "inside"]], "spatialpy.core.GeometryAll": [[1, 2, 1, "", "inside"]], "spatialpy.core.GeometryExterior": [[1, 2, 1, "", "inside"]], "spatialpy.core.GeometryInterior": [[1, 2, 1, "", "inside"]], "spatialpy.core.InitialCondition": [[1, 2, 1, "", "apply"]], "spatialpy.core.MeshIOLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.Model": [[1, 2, 1, "", "add"], [1, 2, 1, "", "add_boundary_condition"], [1, 2, 1, "", "add_data_function"], [1, 2, 1, "", "add_domain"], [1, 2, 1, "", "add_initial_condition"], [1, 2, 1, "", "add_parameter"], [1, 2, 1, "", "add_reaction"], [1, 2, 1, "", "add_species"], [1, 2, 1, "", "compile_prep"], [1, 2, 1, "", "delete_all_boundary_conditions"], [1, 2, 1, "", "delete_all_data_functions"], [1, 2, 1, "", "delete_all_initial_conditions"], [1, 2, 1, "", "delete_all_parameters"], [1, 2, 1, "", "delete_all_reactions"], [1, 2, 1, "", "delete_all_species"], [1, 2, 1, "", "delete_boundary_condition"], [1, 2, 1, "", "delete_data_function"], [1, 2, 1, "", "delete_initial_condition"], [1, 2, 1, "", "delete_parameter"], [1, 2, 1, "", "delete_reaction"], [1, 2, 1, "", "delete_species"], [1, 2, 1, "", "get_all_boundary_conditions"], [1, 2, 1, "", "get_all_data_functions"], [1, 2, 1, "", "get_all_initial_conditions"], [1, 2, 1, "", "get_all_parameters"], [1, 2, 1, "", "get_all_reactions"], [1, 2, 1, "", "get_all_species"], [1, 2, 1, "", "get_data_function"], [1, 2, 1, "", "get_element"], [1, 2, 1, "", "get_num_reactions"], [1, 2, 1, "", "get_num_species"], [1, 2, 1, "", "get_parameter"], [1, 2, 1, "", "get_reaction"], [1, 2, 1, "", "get_species"], [1, 4, 1, "", "reserved_names"], [1, 2, 1, "", "run"], [1, 2, 1, "", "sanitized_data_function_names"], [1, 2, 1, "", "sanitized_parameter_names"], [1, 2, 1, "", "sanitized_species_names"], [1, 2, 1, "", "set_timesteps"], [1, 4, 1, "", "special_characters"], [1, 2, 1, "", "timespan"], [1, 2, 1, "", "update_namespace"]], "spatialpy.core.Parameter": [[1, 2, 1, "", "validate"]], "spatialpy.core.PlaceInitialCondition": [[1, 2, 1, "", "apply"]], "spatialpy.core.Reaction": [[1, 2, 1, "", "add_product"], [1, 2, 1, "", "add_reactant"], [1, 2, 1, "", "annotate"], [1, 2, 1, "", "from_json"], [1, 2, 1, "", "initialize"], [1, 2, 1, "", "sanitized_propensity_function"], [1, 2, 1, "", "set_annotation"], [1, 2, 1, "", "set_propensities"], [1, 2, 1, "", "set_rate"], [1, 2, 1, "", "to_dict"], [1, 2, 1, "", "validate"]], "spatialpy.core.ReflectionTransformation": [[1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"]], "spatialpy.core.Result": [[1, 2, 1, "", "export_to_csv"], [1, 2, 1, "", "get_property"], [1, 2, 1, "", "get_species"], [1, 2, 1, "", "get_timespan"], [1, 2, 1, "", "plot_property"], [1, 2, 1, "", "plot_species"], [1, 2, 1, "", "read_step"]], "spatialpy.core.RotationTransformation": [[1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"], [1, 2, 1, "", "validate"]], "spatialpy.core.ScalingTransformation": [[1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"], [1, 2, 1, "", "validate"]], "spatialpy.core.ScatterInitialCondition": [[1, 2, 1, "", "apply"]], "spatialpy.core.Species": [[1, 2, 1, "", "set_diffusion_coefficient"], [1, 2, 1, "", "validate"]], "spatialpy.core.SphericalLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.StochSSLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.TimeSpan": [[1, 2, 1, "", "arange"], [1, 2, 1, "", "linspace"], [1, 2, 1, "", "validate"]], "spatialpy.core.Transformation": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "inside"], [1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"], [1, 2, 1, "", "validate"]], "spatialpy.core.TranslationTransformation": [[1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"], [1, 2, 1, "", "validate"]], "spatialpy.core.UniformInitialCondition": [[1, 2, 1, "", "apply"]], "spatialpy.core.VTKReader": [[1, 2, 1, "", "get_array_name"], [1, 2, 1, "", "get_arrays"], [1, 2, 1, "", "get_num_points"], [1, 2, 1, "", "get_points"], [1, 2, 1, "", "read_file"], [1, 2, 1, "", "set_filename"]], "spatialpy.core.Visualization": [[1, 4, 1, "", "MPL_HEIGHT"], [1, 4, 1, "", "MPL_SIZE"], [1, 4, 1, "", "MPL_WIDTH"], [1, 2, 1, "", "plot_scatter"]], "spatialpy.core.XMLMeshLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.boundarycondition": [[1, 1, 1, "", "BoundaryCondition"]], "spatialpy.core.boundarycondition.BoundaryCondition": [[1, 2, 1, "", "expression"]], "spatialpy.core.cleanup": [[1, 5, 1, "", "cleanup_build_files"], [1, 5, 1, "", "cleanup_core_files"], [1, 5, 1, "", "cleanup_result_files"], [1, 5, 1, "", "cleanup_tempfiles"]], "spatialpy.core.datafunction": [[1, 1, 1, "", "DataFunction"]], "spatialpy.core.datafunction.DataFunction": [[1, 2, 1, "", "map"]], "spatialpy.core.domain": [[1, 1, 1, "", "Domain"]], "spatialpy.core.domain.Domain": [[1, 2, 1, "", "add_fill_action"], [1, 2, 1, "", "add_point"], [1, 2, 1, "", "add_remove_action"], [1, 2, 1, "", "add_set_action"], [1, 2, 1, "", "apply_actions"], [1, 2, 1, "", "apply_fill_action"], [1, 2, 1, "", "apply_remove_action"], [1, 2, 1, "", "apply_set_action"], [1, 2, 1, "", "calculate_vol"], [1, 2, 1, "", "closest_vertex"], [1, 2, 1, "", "compile_prep"], [1, 2, 1, "", "coordinates"], [1, 2, 1, "", "create_2D_domain"], [1, 2, 1, "", "create_3D_domain"], [1, 2, 1, "", "distance_between_2_vertices"], [1, 2, 1, "", "fill_with_particles"], [1, 2, 1, "", "find_boundary_points"], [1, 2, 1, "", "find_h"], [1, 2, 1, "", "get_bounding_box"], [1, 2, 1, "", "get_domain_size"], [1, 2, 1, "", "get_num_voxels"], [1, 2, 1, "", "get_type_def"], [1, 2, 1, "", "get_vol"], [1, 2, 1, "", "import_meshio_object"], [1, 2, 1, "", "plot_types"], [1, 2, 1, "", "preview_actions"], [1, 2, 1, "", "read_msh_file"], [1, 2, 1, "", "read_stochss_domain"], [1, 2, 1, "", "read_stochss_subdomain_file"], [1, 2, 1, "", "read_xml_mesh"], [1, 2, 1, "", "set_properties"], [1, 2, 1, "", "validate_action"]], "spatialpy.core.geometry": [[1, 1, 1, "", "CombinatoryGeometry"], [1, 1, 1, "", "Geometry"], [1, 1, 1, "", "GeometryAll"], [1, 1, 1, "", "GeometryExterior"], [1, 1, 1, "", "GeometryInterior"]], "spatialpy.core.geometry.CombinatoryGeometry": [[1, 2, 1, "", "inside"], [1, 2, 1, "", "validate"]], "spatialpy.core.geometry.Geometry": [[1, 2, 1, "", "inside"]], "spatialpy.core.geometry.GeometryAll": [[1, 2, 1, "", "inside"]], "spatialpy.core.geometry.GeometryExterior": [[1, 2, 1, "", "inside"]], "spatialpy.core.geometry.GeometryInterior": [[1, 2, 1, "", "inside"]], "spatialpy.core.initialcondition": [[1, 1, 1, "", "InitialCondition"], [1, 1, 1, "", "PlaceInitialCondition"], [1, 1, 1, "", "ScatterInitialCondition"], [1, 1, 1, "", "UniformInitialCondition"]], "spatialpy.core.initialcondition.InitialCondition": [[1, 2, 1, "", "apply"]], "spatialpy.core.initialcondition.PlaceInitialCondition": [[1, 2, 1, "", "apply"]], "spatialpy.core.initialcondition.ScatterInitialCondition": [[1, 2, 1, "", "apply"]], "spatialpy.core.initialcondition.UniformInitialCondition": [[1, 2, 1, "", "apply"]], "spatialpy.core.lattice": [[1, 1, 1, "", "CartesianLattice"], [1, 1, 1, "", "CylindricalLattice"], [1, 1, 1, "", "Lattice"], [1, 1, 1, "", "MeshIOLattice"], [1, 1, 1, "", "SphericalLattice"], [1, 1, 1, "", "StochSSLattice"], [1, 1, 1, "", "XMLMeshLattice"]], "spatialpy.core.lattice.CartesianLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.lattice.CylindricalLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.lattice.Lattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.lattice.MeshIOLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.lattice.SphericalLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.lattice.StochSSLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.lattice.XMLMeshLattice": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "validate"]], "spatialpy.core.model": [[1, 1, 1, "", "Model"], [1, 5, 1, "", "export_StochSS"]], "spatialpy.core.model.Model": [[1, 2, 1, "", "add"], [1, 2, 1, "", "add_boundary_condition"], [1, 2, 1, "", "add_data_function"], [1, 2, 1, "", "add_domain"], [1, 2, 1, "", "add_initial_condition"], [1, 2, 1, "", "add_parameter"], [1, 2, 1, "", "add_reaction"], [1, 2, 1, "", "add_species"], [1, 2, 1, "", "compile_prep"], [1, 2, 1, "", "delete_all_boundary_conditions"], [1, 2, 1, "", "delete_all_data_functions"], [1, 2, 1, "", "delete_all_initial_conditions"], [1, 2, 1, "", "delete_all_parameters"], [1, 2, 1, "", "delete_all_reactions"], [1, 2, 1, "", "delete_all_species"], [1, 2, 1, "", "delete_boundary_condition"], [1, 2, 1, "", "delete_data_function"], [1, 2, 1, "", "delete_initial_condition"], [1, 2, 1, "", "delete_parameter"], [1, 2, 1, "", "delete_reaction"], [1, 2, 1, "", "delete_species"], [1, 2, 1, "", "get_all_boundary_conditions"], [1, 2, 1, "", "get_all_data_functions"], [1, 2, 1, "", "get_all_initial_conditions"], [1, 2, 1, "", "get_all_parameters"], [1, 2, 1, "", "get_all_reactions"], [1, 2, 1, "", "get_all_species"], [1, 2, 1, "", "get_data_function"], [1, 2, 1, "", "get_element"], [1, 2, 1, "", "get_num_reactions"], [1, 2, 1, "", "get_num_species"], [1, 2, 1, "", "get_parameter"], [1, 2, 1, "", "get_reaction"], [1, 2, 1, "", "get_species"], [1, 4, 1, "", "reserved_names"], [1, 2, 1, "", "run"], [1, 2, 1, "", "sanitized_data_function_names"], [1, 2, 1, "", "sanitized_parameter_names"], [1, 2, 1, "", "sanitized_species_names"], [1, 2, 1, "", "set_timesteps"], [1, 4, 1, "", "special_characters"], [1, 2, 1, "", "timespan"], [1, 2, 1, "", "update_namespace"]], "spatialpy.core.parameter": [[1, 1, 1, "", "Parameter"]], "spatialpy.core.parameter.Parameter": [[1, 2, 1, "", "validate"]], "spatialpy.core.reaction": [[1, 1, 1, "", "Reaction"]], "spatialpy.core.reaction.Reaction": [[1, 2, 1, "", "add_product"], [1, 2, 1, "", "add_reactant"], [1, 2, 1, "", "annotate"], [1, 2, 1, "", "from_json"], [1, 2, 1, "", "initialize"], [1, 2, 1, "", "sanitized_propensity_function"], [1, 2, 1, "", "set_annotation"], [1, 2, 1, "", "set_propensities"], [1, 2, 1, "", "set_rate"], [1, 2, 1, "", "to_dict"], [1, 2, 1, "", "validate"]], "spatialpy.core.result": [[1, 1, 1, "", "Result"]], "spatialpy.core.result.Result": [[1, 2, 1, "", "export_to_csv"], [1, 2, 1, "", "get_property"], [1, 2, 1, "", "get_species"], [1, 2, 1, "", "get_timespan"], [1, 2, 1, "", "plot_property"], [1, 2, 1, "", "plot_species"], [1, 2, 1, "", "read_step"]], "spatialpy.core.spatialpyerror": [[1, 3, 1, "", "BoundaryConditionError"], [1, 3, 1, "", "DataFunctionError"], [1, 3, 1, "", "DomainError"], [1, 3, 1, "", "GeometryError"], [1, 3, 1, "", "InitialConditionError"], [1, 3, 1, "", "LatticeError"], [1, 3, 1, "", "ModelError"], [1, 3, 1, "", "ParameterError"], [1, 3, 1, "", "ReactionError"], [1, 3, 1, "", "ResultError"], [1, 3, 1, "", "SimulationError"], [1, 3, 1, "", "SimulationTimeout"], [1, 3, 1, "", "SpeciesError"], [1, 3, 1, "", "TimespanError"], [1, 3, 1, "", "TransformationError"], [1, 3, 1, "", "VTKReaderError"], [1, 3, 1, "", "VTKReaderIOError"], [1, 3, 1, "", "VisualizationError"]], "spatialpy.core.species": [[1, 1, 1, "", "Species"]], "spatialpy.core.species.Species": [[1, 2, 1, "", "set_diffusion_coefficient"], [1, 2, 1, "", "validate"]], "spatialpy.core.timespan": [[1, 1, 1, "", "TimeSpan"]], "spatialpy.core.timespan.TimeSpan": [[1, 2, 1, "", "arange"], [1, 2, 1, "", "linspace"], [1, 2, 1, "", "validate"]], "spatialpy.core.transformation": [[1, 1, 1, "", "ReflectionTransformation"], [1, 1, 1, "", "RotationTransformation"], [1, 1, 1, "", "ScalingTransformation"], [1, 1, 1, "", "Transformation"], [1, 1, 1, "", "TranslationTransformation"]], "spatialpy.core.transformation.ReflectionTransformation": [[1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"]], "spatialpy.core.transformation.RotationTransformation": [[1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"], [1, 2, 1, "", "validate"]], "spatialpy.core.transformation.ScalingTransformation": [[1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"], [1, 2, 1, "", "validate"]], "spatialpy.core.transformation.Transformation": [[1, 2, 1, "", "apply"], [1, 2, 1, "", "inside"], [1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"], [1, 2, 1, "", "validate"]], "spatialpy.core.transformation.TranslationTransformation": [[1, 2, 1, "", "reverse_transform"], [1, 2, 1, "", "transform"], [1, 2, 1, "", "validate"]], "spatialpy.core.visualization": [[1, 1, 1, "", "Visualization"]], "spatialpy.core.visualization.Visualization": [[1, 4, 1, "", "MPL_HEIGHT"], [1, 4, 1, "", "MPL_SIZE"], [1, 4, 1, "", "MPL_WIDTH"], [1, 2, 1, "", "plot_scatter"]], "spatialpy.core.vtkreader": [[1, 1, 1, "", "VTKReader"]], "spatialpy.core.vtkreader.VTKReader": [[1, 2, 1, "", "get_array_name"], [1, 2, 1, "", "get_arrays"], [1, 2, 1, "", "get_num_points"], [1, 2, 1, "", "get_points"], [1, 2, 1, "", "read_file"], [1, 2, 1, "", "set_filename"]], "spatialpy.solvers": [[2, 0, 0, "-", "build_expression"], [2, 0, 0, "-", "solver"]], "spatialpy.solvers.build_expression": [[2, 1, 1, "", "BuildExpression"], [2, 1, 1, "", "CppConverter"], [2, 1, 1, "", "ExpressionConverter"], [2, 1, 1, "", "ExpressionResults"], [2, 1, 1, "", "PythonConverter"]], "spatialpy.solvers.build_expression.BuildExpression": [[2, 1, 1, "", "ValidationVisitor"], [2, 2, 1, "", "getexpr_cpp"], [2, 2, 1, "", "getexpr_python"], [2, 2, 1, "", "map_operator"], [2, 4, 1, "", "operator_map"], [2, 2, 1, "", "validate"], [2, 2, 1, "", "with_blacklist"], [2, 2, 1, "", "with_namespace"]], "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor": [[2, 2, 1, "", "visit_Assign"], [2, 2, 1, "", "visit_BinOp"], [2, 2, 1, "", "visit_BoolOp"], [2, 2, 1, "", "visit_Call"], [2, 2, 1, "", "visit_Compare"], [2, 2, 1, "", "visit_Name"], [2, 2, 1, "", "visit_UnaryOp"]], "spatialpy.solvers.build_expression.CppConverter": [[2, 1, 1, "", "CppExpressionTransformer"], [2, 2, 1, "", "get_str"], [2, 2, 1, "", "visit_And"], [2, 2, 1, "", "visit_Or"]], "spatialpy.solvers.build_expression.CppConverter.CppExpressionTransformer": [[2, 2, 1, "", "visit_BinOp"]], "spatialpy.solvers.build_expression.ExpressionConverter": [[2, 2, 1, "", "convert_str"], [2, 2, 1, "", "get_str"], [2, 2, 1, "", "parse_comparison"], [2, 2, 1, "", "parse_logical"], [2, 2, 1, "", "parse_operator"], [2, 2, 1, "", "visit_Add"], [2, 2, 1, "", "visit_BinOp"], [2, 2, 1, "", "visit_BoolOp"], [2, 2, 1, "", "visit_Bytes"], [2, 2, 1, "", "visit_Call"], [2, 2, 1, "", "visit_Compare"], [2, 2, 1, "", "visit_Constant"], [2, 2, 1, "", "visit_Div"], [2, 2, 1, "", "visit_Ellipsis"], [2, 2, 1, "", "visit_Eq"], [2, 2, 1, "", "visit_Gt"], [2, 2, 1, "", "visit_GtE"], [2, 2, 1, "", "visit_Lt"], [2, 2, 1, "", "visit_LtE"], [2, 2, 1, "", "visit_Mult"], [2, 2, 1, "", "visit_Name"], [2, 2, 1, "", "visit_NameConstant"], [2, 2, 1, "", "visit_NotEq"], [2, 2, 1, "", "visit_Num"], [2, 2, 1, "", "visit_Pow"], [2, 2, 1, "", "visit_Str"], [2, 2, 1, "", "visit_Sub"], [2, 2, 1, "", "visit_USub"], [2, 2, 1, "", "visit_UnaryOp"]], "spatialpy.solvers.build_expression.PythonConverter": [[2, 2, 1, "", "visit_And"], [2, 2, 1, "", "visit_Or"]], "spatialpy.solvers.solver": [[2, 1, 1, "", "Solver"]], "spatialpy.solvers.solver.Solver": [[2, 2, 1, "", "compile"], [2, 2, 1, "", "run"]], "spatialpy.stochss": [[3, 0, 0, "-", "stochss_export"]], "spatialpy.stochss.stochss_export": [[3, 5, 1, "", "export"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:exception", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "exception", "Python exception"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"spatialpi": [0, 1, 2, 3, 4], "packag": [0, 1, 2, 3], "subpackag": 0, "modul": [0, 1, 2, 3], "content": [0, 1, 2, 3], "core": 1, "submodul": [1, 2, 3], "boundarycondit": 1, "cleanup": 1, "datafunct": 1, "domain": 1, "geometri": 1, "initialcondit": 1, "lattic": 1, "model": 1, "paramet": 1, "reaction": 1, "result": 1, "spatialpyerror": 1, "speci": 1, "timespan": 1, "transform": 1, "visual": 1, "vtkreader": 1, "solver": 2, "build_express": 2, "stochss": 3, "stochss_export": 3, "document": 4, "1": 4, "2": 4, "get": 4, "copi": 4, "exampl": 4, "report": 4, "issu": 4, "api": 4, "refer": 4, "indic": 4, "tabl": 4}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx.ext.todo": 2, "sphinx": 57}, "alltitles": {"spatialpy package": [[0, "spatialpy-package"]], "Subpackages": [[0, "subpackages"]], "Module contents": [[0, "module-spatialpy"], [1, "module-spatialpy.core"], [2, "module-spatialpy.solvers"], [3, "module-spatialpy.stochss"]], "spatialpy.core package": [[1, "spatialpy-core-package"]], "Submodules": [[1, "submodules"], [2, "submodules"], [3, "submodules"]], "spatialpy.core.boundarycondition module": [[1, "module-spatialpy.core.boundarycondition"]], "spatialpy.core.cleanup module": [[1, "module-spatialpy.core.cleanup"]], "spatialpy.core.datafunction module": [[1, "module-spatialpy.core.datafunction"]], "spatialpy.core.domain module": [[1, "module-spatialpy.core.domain"]], "spatialpy.core.geometry module": [[1, "module-spatialpy.core.geometry"]], "spatialpy.core.initialcondition module": [[1, "module-spatialpy.core.initialcondition"]], "spatialpy.core.lattice module": [[1, "module-spatialpy.core.lattice"]], "spatialpy.core.model module": [[1, "module-spatialpy.core.model"]], "spatialpy.core.parameter module": [[1, "module-spatialpy.core.parameter"]], "spatialpy.core.reaction module": [[1, "module-spatialpy.core.reaction"]], "spatialpy.core.result module": [[1, "module-spatialpy.core.result"]], "spatialpy.core.spatialpyerror module": [[1, "module-spatialpy.core.spatialpyerror"]], "spatialpy.core.species module": [[1, "module-spatialpy.core.species"]], "spatialpy.core.timespan module": [[1, "module-spatialpy.core.timespan"]], "spatialpy.core.transformation module": [[1, "module-spatialpy.core.transformation"]], "spatialpy.core.visualization module": [[1, "module-spatialpy.core.visualization"]], "spatialpy.core.vtkreader module": [[1, "module-spatialpy.core.vtkreader"]], "spatialpy.solvers package": [[2, "spatialpy-solvers-package"]], "spatialpy.solvers.build_expression module": [[2, "module-spatialpy.solvers.build_expression"]], "spatialpy.solvers.solver module": [[2, "module-spatialpy.solvers.solver"]], "spatialpy.stochss package": [[3, "spatialpy-stochss-package"]], "spatialpy.stochss.stochss_export module": [[3, "module-spatialpy.stochss.stochss_export"]], "Documentation for SpatialPy 1.1.2": [[4, "documentation-for-spatialpy-release"]], "Getting a copy of SpatialPy": [[4, "getting-a-copy-of-spatialpy"]], "Examples": [[4, "examples"]], "Reporting Issues": [[4, "reporting-issues"]], "Documentation": [[4, "documentation"]], "API reference": [[4, null]], "Indices and tables": [[4, "indices-and-tables"]]}, "indexentries": {"module": [[0, "module-spatialpy"], [1, "module-spatialpy.core"], [1, "module-spatialpy.core.boundarycondition"], [1, "module-spatialpy.core.cleanup"], [1, "module-spatialpy.core.datafunction"], [1, "module-spatialpy.core.domain"], [1, "module-spatialpy.core.geometry"], [1, "module-spatialpy.core.initialcondition"], [1, "module-spatialpy.core.lattice"], [1, "module-spatialpy.core.model"], [1, "module-spatialpy.core.parameter"], [1, "module-spatialpy.core.reaction"], [1, "module-spatialpy.core.result"], [1, "module-spatialpy.core.spatialpyerror"], [1, "module-spatialpy.core.species"], [1, "module-spatialpy.core.timespan"], [1, "module-spatialpy.core.transformation"], [1, "module-spatialpy.core.visualization"], [1, "module-spatialpy.core.vtkreader"], [2, "module-spatialpy.solvers"], [2, "module-spatialpy.solvers.build_expression"], [2, "module-spatialpy.solvers.solver"], [3, "module-spatialpy.stochss"], [3, "module-spatialpy.stochss.stochss_export"]], "spatialpy": [[0, "module-spatialpy"]], "boundarycondition (class in spatialpy.core)": [[1, "spatialpy.core.BoundaryCondition"]], "boundarycondition (class in spatialpy.core.boundarycondition)": [[1, "spatialpy.core.boundarycondition.BoundaryCondition"]], "boundaryconditionerror": [[1, "spatialpy.core.BoundaryConditionError"], [1, "spatialpy.core.spatialpyerror.BoundaryConditionError"]], "cartesianlattice (class in spatialpy.core)": [[1, "spatialpy.core.CartesianLattice"]], "cartesianlattice (class in spatialpy.core.lattice)": [[1, "spatialpy.core.lattice.CartesianLattice"]], "combinatorygeometry (class in spatialpy.core)": [[1, "spatialpy.core.CombinatoryGeometry"]], "combinatorygeometry (class in spatialpy.core.geometry)": [[1, "spatialpy.core.geometry.CombinatoryGeometry"]], "cylindricallattice (class in spatialpy.core)": [[1, "spatialpy.core.CylindricalLattice"]], "cylindricallattice (class in spatialpy.core.lattice)": [[1, "spatialpy.core.lattice.CylindricalLattice"]], "datafunction (class in spatialpy.core)": [[1, "spatialpy.core.DataFunction"]], "datafunction (class in spatialpy.core.datafunction)": [[1, "spatialpy.core.datafunction.DataFunction"]], "datafunctionerror": [[1, "spatialpy.core.DataFunctionError"], [1, "spatialpy.core.spatialpyerror.DataFunctionError"]], "domain (class in spatialpy.core)": [[1, "spatialpy.core.Domain"]], "domain (class in spatialpy.core.domain)": [[1, "spatialpy.core.domain.Domain"]], "domainerror": [[1, "spatialpy.core.DomainError"], [1, "spatialpy.core.spatialpyerror.DomainError"]], "geometry (class in spatialpy.core)": [[1, "spatialpy.core.Geometry"]], "geometry (class in spatialpy.core.geometry)": [[1, "spatialpy.core.geometry.Geometry"]], "geometryall (class in spatialpy.core)": [[1, "spatialpy.core.GeometryAll"]], "geometryall (class in spatialpy.core.geometry)": [[1, "spatialpy.core.geometry.GeometryAll"]], "geometryerror": [[1, "spatialpy.core.GeometryError"], [1, "spatialpy.core.spatialpyerror.GeometryError"]], "geometryexterior (class in spatialpy.core)": [[1, "spatialpy.core.GeometryExterior"]], "geometryexterior (class in spatialpy.core.geometry)": [[1, "spatialpy.core.geometry.GeometryExterior"]], "geometryinterior (class in spatialpy.core)": [[1, "spatialpy.core.GeometryInterior"]], "geometryinterior (class in spatialpy.core.geometry)": [[1, "spatialpy.core.geometry.GeometryInterior"]], "initialcondition (class in spatialpy.core)": [[1, "spatialpy.core.InitialCondition"]], "initialcondition (class in spatialpy.core.initialcondition)": [[1, "spatialpy.core.initialcondition.InitialCondition"]], "initialconditionerror": [[1, "spatialpy.core.InitialConditionError"], [1, "spatialpy.core.spatialpyerror.InitialConditionError"]], "lattice (class in spatialpy.core.lattice)": [[1, "spatialpy.core.lattice.Lattice"]], "latticeerror": [[1, "spatialpy.core.LatticeError"], [1, "spatialpy.core.spatialpyerror.LatticeError"]], "mpl_height (spatialpy.core.visualization attribute)": [[1, "spatialpy.core.Visualization.MPL_HEIGHT"]], "mpl_height (spatialpy.core.visualization.visualization attribute)": [[1, "spatialpy.core.visualization.Visualization.MPL_HEIGHT"]], "mpl_size (spatialpy.core.visualization attribute)": [[1, "spatialpy.core.Visualization.MPL_SIZE"]], "mpl_size (spatialpy.core.visualization.visualization attribute)": [[1, "spatialpy.core.visualization.Visualization.MPL_SIZE"]], "mpl_width (spatialpy.core.visualization attribute)": [[1, "spatialpy.core.Visualization.MPL_WIDTH"]], "mpl_width (spatialpy.core.visualization.visualization attribute)": [[1, "spatialpy.core.visualization.Visualization.MPL_WIDTH"]], "meshiolattice (class in spatialpy.core)": [[1, "spatialpy.core.MeshIOLattice"]], "meshiolattice (class in spatialpy.core.lattice)": [[1, "spatialpy.core.lattice.MeshIOLattice"]], "model (class in spatialpy.core)": [[1, "spatialpy.core.Model"]], "model (class in spatialpy.core.model)": [[1, "spatialpy.core.model.Model"]], "modelerror": [[1, "spatialpy.core.ModelError"], [1, "spatialpy.core.spatialpyerror.ModelError"]], "parameter (class in spatialpy.core)": [[1, "spatialpy.core.Parameter"]], "parameter (class in spatialpy.core.parameter)": [[1, "spatialpy.core.parameter.Parameter"]], "parametererror": [[1, "spatialpy.core.ParameterError"], [1, "spatialpy.core.spatialpyerror.ParameterError"]], "placeinitialcondition (class in spatialpy.core)": [[1, "spatialpy.core.PlaceInitialCondition"]], "placeinitialcondition (class in spatialpy.core.initialcondition)": [[1, "spatialpy.core.initialcondition.PlaceInitialCondition"]], "reaction (class in spatialpy.core)": [[1, "spatialpy.core.Reaction"]], "reaction (class in spatialpy.core.reaction)": [[1, "spatialpy.core.reaction.Reaction"]], "reactionerror": [[1, "spatialpy.core.ReactionError"], [1, "spatialpy.core.spatialpyerror.ReactionError"]], "reflectiontransformation (class in spatialpy.core)": [[1, "spatialpy.core.ReflectionTransformation"]], "reflectiontransformation (class in spatialpy.core.transformation)": [[1, "spatialpy.core.transformation.ReflectionTransformation"]], "result (class in spatialpy.core)": [[1, "spatialpy.core.Result"]], "result (class in spatialpy.core.result)": [[1, "spatialpy.core.result.Result"]], "resulterror": [[1, "spatialpy.core.ResultError"], [1, "spatialpy.core.spatialpyerror.ResultError"]], "rotationtransformation (class in spatialpy.core)": [[1, "spatialpy.core.RotationTransformation"]], "rotationtransformation (class in spatialpy.core.transformation)": [[1, "spatialpy.core.transformation.RotationTransformation"]], "scalingtransformation (class in spatialpy.core)": [[1, "spatialpy.core.ScalingTransformation"]], "scalingtransformation (class in spatialpy.core.transformation)": [[1, "spatialpy.core.transformation.ScalingTransformation"]], "scatterinitialcondition (class in spatialpy.core)": [[1, "spatialpy.core.ScatterInitialCondition"]], "scatterinitialcondition (class in spatialpy.core.initialcondition)": [[1, "spatialpy.core.initialcondition.ScatterInitialCondition"]], "simulationerror": [[1, "spatialpy.core.SimulationError"], [1, "spatialpy.core.spatialpyerror.SimulationError"]], "simulationtimeout": [[1, "spatialpy.core.SimulationTimeout"], [1, "spatialpy.core.spatialpyerror.SimulationTimeout"]], "species (class in spatialpy.core)": [[1, "spatialpy.core.Species"]], "species (class in spatialpy.core.species)": [[1, "spatialpy.core.species.Species"]], "specieserror": [[1, "spatialpy.core.SpeciesError"], [1, "spatialpy.core.spatialpyerror.SpeciesError"]], "sphericallattice (class in spatialpy.core)": [[1, "spatialpy.core.SphericalLattice"]], "sphericallattice (class in spatialpy.core.lattice)": [[1, "spatialpy.core.lattice.SphericalLattice"]], "stochsslattice (class in spatialpy.core)": [[1, "spatialpy.core.StochSSLattice"]], "stochsslattice (class in spatialpy.core.lattice)": [[1, "spatialpy.core.lattice.StochSSLattice"]], "timespan (class in spatialpy.core)": [[1, "spatialpy.core.TimeSpan"]], "timespan (class in spatialpy.core.timespan)": [[1, "spatialpy.core.timespan.TimeSpan"]], "timespanerror": [[1, "spatialpy.core.TimespanError"], [1, "spatialpy.core.spatialpyerror.TimespanError"]], "transformation (class in spatialpy.core)": [[1, "spatialpy.core.Transformation"]], "transformation (class in spatialpy.core.transformation)": [[1, "spatialpy.core.transformation.Transformation"]], "transformationerror": [[1, "spatialpy.core.TransformationError"], [1, "spatialpy.core.spatialpyerror.TransformationError"]], "translationtransformation (class in spatialpy.core)": [[1, "spatialpy.core.TranslationTransformation"]], "translationtransformation (class in spatialpy.core.transformation)": [[1, "spatialpy.core.transformation.TranslationTransformation"]], "uniforminitialcondition (class in spatialpy.core)": [[1, "spatialpy.core.UniformInitialCondition"]], "uniforminitialcondition (class in spatialpy.core.initialcondition)": [[1, "spatialpy.core.initialcondition.UniformInitialCondition"]], "vtkreader (class in spatialpy.core)": [[1, "spatialpy.core.VTKReader"]], "vtkreader (class in spatialpy.core.vtkreader)": [[1, "spatialpy.core.vtkreader.VTKReader"]], "vtkreadererror": [[1, "spatialpy.core.VTKReaderError"], [1, "spatialpy.core.spatialpyerror.VTKReaderError"]], "vtkreaderioerror": [[1, "spatialpy.core.VTKReaderIOError"], [1, "spatialpy.core.spatialpyerror.VTKReaderIOError"]], "visualization (class in spatialpy.core)": [[1, "spatialpy.core.Visualization"]], "visualization (class in spatialpy.core.visualization)": [[1, "spatialpy.core.visualization.Visualization"]], "visualizationerror": [[1, "spatialpy.core.VisualizationError"], [1, "spatialpy.core.spatialpyerror.VisualizationError"]], "xmlmeshlattice (class in spatialpy.core)": [[1, "spatialpy.core.XMLMeshLattice"]], "xmlmeshlattice (class in spatialpy.core.lattice)": [[1, "spatialpy.core.lattice.XMLMeshLattice"]], "add() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.add"]], "add() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.add"]], "add_boundary_condition() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.add_boundary_condition"]], "add_boundary_condition() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.add_boundary_condition"]], "add_data_function() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.add_data_function"]], "add_data_function() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.add_data_function"]], "add_domain() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.add_domain"]], "add_domain() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.add_domain"]], "add_fill_action() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.add_fill_action"]], "add_fill_action() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.add_fill_action"]], "add_initial_condition() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.add_initial_condition"]], "add_initial_condition() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.add_initial_condition"]], "add_parameter() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.add_parameter"]], "add_parameter() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.add_parameter"]], "add_point() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.add_point"]], "add_point() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.add_point"]], "add_product() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.add_product"]], "add_product() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.add_product"]], "add_reactant() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.add_reactant"]], "add_reactant() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.add_reactant"]], "add_reaction() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.add_reaction"]], "add_reaction() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.add_reaction"]], "add_remove_action() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.add_remove_action"]], "add_remove_action() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.add_remove_action"]], "add_set_action() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.add_set_action"]], "add_set_action() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.add_set_action"]], "add_species() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.add_species"]], "add_species() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.add_species"]], "annotate() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.annotate"]], "annotate() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.annotate"]], "apply() (spatialpy.core.cartesianlattice method)": [[1, "spatialpy.core.CartesianLattice.apply"]], "apply() (spatialpy.core.cylindricallattice method)": [[1, "spatialpy.core.CylindricalLattice.apply"]], "apply() (spatialpy.core.initialcondition method)": [[1, "spatialpy.core.InitialCondition.apply"]], "apply() (spatialpy.core.meshiolattice method)": [[1, "spatialpy.core.MeshIOLattice.apply"]], "apply() (spatialpy.core.placeinitialcondition method)": [[1, "spatialpy.core.PlaceInitialCondition.apply"]], "apply() (spatialpy.core.scatterinitialcondition method)": [[1, "spatialpy.core.ScatterInitialCondition.apply"]], "apply() (spatialpy.core.sphericallattice method)": [[1, "spatialpy.core.SphericalLattice.apply"]], "apply() (spatialpy.core.stochsslattice method)": [[1, "spatialpy.core.StochSSLattice.apply"]], "apply() (spatialpy.core.transformation method)": [[1, "spatialpy.core.Transformation.apply"]], "apply() (spatialpy.core.uniforminitialcondition method)": [[1, "spatialpy.core.UniformInitialCondition.apply"]], "apply() (spatialpy.core.xmlmeshlattice method)": [[1, "spatialpy.core.XMLMeshLattice.apply"]], "apply() (spatialpy.core.initialcondition.initialcondition method)": [[1, "spatialpy.core.initialcondition.InitialCondition.apply"]], "apply() (spatialpy.core.initialcondition.placeinitialcondition method)": [[1, "spatialpy.core.initialcondition.PlaceInitialCondition.apply"]], "apply() (spatialpy.core.initialcondition.scatterinitialcondition method)": [[1, "spatialpy.core.initialcondition.ScatterInitialCondition.apply"]], "apply() (spatialpy.core.initialcondition.uniforminitialcondition method)": [[1, "spatialpy.core.initialcondition.UniformInitialCondition.apply"]], "apply() (spatialpy.core.lattice.cartesianlattice method)": [[1, "spatialpy.core.lattice.CartesianLattice.apply"]], "apply() (spatialpy.core.lattice.cylindricallattice method)": [[1, "spatialpy.core.lattice.CylindricalLattice.apply"]], "apply() (spatialpy.core.lattice.lattice method)": [[1, "spatialpy.core.lattice.Lattice.apply"]], "apply() (spatialpy.core.lattice.meshiolattice method)": [[1, "spatialpy.core.lattice.MeshIOLattice.apply"]], "apply() (spatialpy.core.lattice.sphericallattice method)": [[1, "spatialpy.core.lattice.SphericalLattice.apply"]], "apply() (spatialpy.core.lattice.stochsslattice method)": [[1, "spatialpy.core.lattice.StochSSLattice.apply"]], "apply() (spatialpy.core.lattice.xmlmeshlattice method)": [[1, "spatialpy.core.lattice.XMLMeshLattice.apply"]], "apply() (spatialpy.core.transformation.transformation method)": [[1, "spatialpy.core.transformation.Transformation.apply"]], "apply_actions() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.apply_actions"]], "apply_actions() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.apply_actions"]], "apply_fill_action() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.apply_fill_action"]], "apply_fill_action() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.apply_fill_action"]], "apply_remove_action() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.apply_remove_action"]], "apply_remove_action() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.apply_remove_action"]], "apply_set_action() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.apply_set_action"]], "apply_set_action() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.apply_set_action"]], "arange() (spatialpy.core.timespan class method)": [[1, "spatialpy.core.TimeSpan.arange"]], "arange() (spatialpy.core.timespan.timespan class method)": [[1, "spatialpy.core.timespan.TimeSpan.arange"]], "calculate_vol() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.calculate_vol"]], "calculate_vol() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.calculate_vol"]], "cleanup_build_files() (in module spatialpy.core)": [[1, "spatialpy.core.cleanup_build_files"]], "cleanup_build_files() (in module spatialpy.core.cleanup)": [[1, "spatialpy.core.cleanup.cleanup_build_files"]], "cleanup_core_files() (in module spatialpy.core)": [[1, "spatialpy.core.cleanup_core_files"]], "cleanup_core_files() (in module spatialpy.core.cleanup)": [[1, "spatialpy.core.cleanup.cleanup_core_files"]], "cleanup_result_files() (in module spatialpy.core)": [[1, "spatialpy.core.cleanup_result_files"]], "cleanup_result_files() (in module spatialpy.core.cleanup)": [[1, "spatialpy.core.cleanup.cleanup_result_files"]], "cleanup_tempfiles() (in module spatialpy.core)": [[1, "spatialpy.core.cleanup_tempfiles"]], "cleanup_tempfiles() (in module spatialpy.core.cleanup)": [[1, "spatialpy.core.cleanup.cleanup_tempfiles"]], "closest_vertex() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.closest_vertex"]], "closest_vertex() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.closest_vertex"]], "compile_prep() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.compile_prep"]], "compile_prep() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.compile_prep"]], "compile_prep() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.compile_prep"]], "compile_prep() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.compile_prep"]], "coordinates() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.coordinates"]], "coordinates() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.coordinates"]], "create_2d_domain() (spatialpy.core.domain class method)": [[1, "spatialpy.core.Domain.create_2D_domain"]], "create_2d_domain() (spatialpy.core.domain.domain class method)": [[1, "spatialpy.core.domain.Domain.create_2D_domain"]], "create_3d_domain() (spatialpy.core.domain class method)": [[1, "spatialpy.core.Domain.create_3D_domain"]], "create_3d_domain() (spatialpy.core.domain.domain class method)": [[1, "spatialpy.core.domain.Domain.create_3D_domain"]], "delete_all_boundary_conditions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_all_boundary_conditions"]], "delete_all_boundary_conditions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_all_boundary_conditions"]], "delete_all_data_functions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_all_data_functions"]], "delete_all_data_functions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_all_data_functions"]], "delete_all_initial_conditions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_all_initial_conditions"]], "delete_all_initial_conditions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_all_initial_conditions"]], "delete_all_parameters() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_all_parameters"]], "delete_all_parameters() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_all_parameters"]], "delete_all_reactions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_all_reactions"]], "delete_all_reactions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_all_reactions"]], "delete_all_species() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_all_species"]], "delete_all_species() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_all_species"]], "delete_boundary_condition() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_boundary_condition"]], "delete_boundary_condition() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_boundary_condition"]], "delete_data_function() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_data_function"]], "delete_data_function() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_data_function"]], "delete_initial_condition() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_initial_condition"]], "delete_initial_condition() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_initial_condition"]], "delete_parameter() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_parameter"]], "delete_parameter() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_parameter"]], "delete_reaction() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_reaction"]], "delete_reaction() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_reaction"]], "delete_species() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.delete_species"]], "delete_species() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.delete_species"]], "distance_between_2_vertices() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.distance_between_2_vertices"]], "distance_between_2_vertices() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.distance_between_2_vertices"]], "export_stochss() (in module spatialpy.core)": [[1, "spatialpy.core.export_StochSS"]], "export_stochss() (in module spatialpy.core.model)": [[1, "spatialpy.core.model.export_StochSS"]], "export_to_csv() (spatialpy.core.result method)": [[1, "spatialpy.core.Result.export_to_csv"]], "export_to_csv() (spatialpy.core.result.result method)": [[1, "spatialpy.core.result.Result.export_to_csv"]], "expression() (spatialpy.core.boundarycondition method)": [[1, "spatialpy.core.BoundaryCondition.expression"]], "expression() (spatialpy.core.boundarycondition.boundarycondition method)": [[1, "spatialpy.core.boundarycondition.BoundaryCondition.expression"]], "fill_with_particles() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.fill_with_particles"]], "fill_with_particles() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.fill_with_particles"]], "find_boundary_points() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.find_boundary_points"]], "find_boundary_points() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.find_boundary_points"]], "find_h() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.find_h"]], "find_h() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.find_h"]], "from_json() (spatialpy.core.reaction class method)": [[1, "spatialpy.core.Reaction.from_json"]], "from_json() (spatialpy.core.reaction.reaction class method)": [[1, "spatialpy.core.reaction.Reaction.from_json"]], "get_all_boundary_conditions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_all_boundary_conditions"]], "get_all_boundary_conditions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_all_boundary_conditions"]], "get_all_data_functions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_all_data_functions"]], "get_all_data_functions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_all_data_functions"]], "get_all_initial_conditions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_all_initial_conditions"]], "get_all_initial_conditions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_all_initial_conditions"]], "get_all_parameters() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_all_parameters"]], "get_all_parameters() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_all_parameters"]], "get_all_reactions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_all_reactions"]], "get_all_reactions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_all_reactions"]], "get_all_species() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_all_species"]], "get_all_species() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_all_species"]], "get_array_name() (spatialpy.core.vtkreader method)": [[1, "spatialpy.core.VTKReader.get_array_name"]], "get_array_name() (spatialpy.core.vtkreader.vtkreader method)": [[1, "spatialpy.core.vtkreader.VTKReader.get_array_name"]], "get_arrays() (spatialpy.core.vtkreader method)": [[1, "spatialpy.core.VTKReader.get_arrays"]], "get_arrays() (spatialpy.core.vtkreader.vtkreader method)": [[1, "spatialpy.core.vtkreader.VTKReader.get_arrays"]], "get_bounding_box() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.get_bounding_box"]], "get_bounding_box() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.get_bounding_box"]], "get_data_function() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_data_function"]], "get_data_function() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_data_function"]], "get_domain_size() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.get_domain_size"]], "get_domain_size() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.get_domain_size"]], "get_element() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_element"]], "get_element() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_element"]], "get_num_points() (spatialpy.core.vtkreader method)": [[1, "spatialpy.core.VTKReader.get_num_points"]], "get_num_points() (spatialpy.core.vtkreader.vtkreader method)": [[1, "spatialpy.core.vtkreader.VTKReader.get_num_points"]], "get_num_reactions() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_num_reactions"]], "get_num_reactions() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_num_reactions"]], "get_num_species() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_num_species"]], "get_num_species() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_num_species"]], "get_num_voxels() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.get_num_voxels"]], "get_num_voxels() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.get_num_voxels"]], "get_parameter() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_parameter"]], "get_parameter() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_parameter"]], "get_points() (spatialpy.core.vtkreader method)": [[1, "spatialpy.core.VTKReader.get_points"]], "get_points() (spatialpy.core.vtkreader.vtkreader method)": [[1, "spatialpy.core.vtkreader.VTKReader.get_points"]], "get_property() (spatialpy.core.result method)": [[1, "spatialpy.core.Result.get_property"]], "get_property() (spatialpy.core.result.result method)": [[1, "spatialpy.core.result.Result.get_property"]], "get_reaction() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_reaction"]], "get_reaction() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_reaction"]], "get_species() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.get_species"]], "get_species() (spatialpy.core.result method)": [[1, "spatialpy.core.Result.get_species"]], "get_species() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.get_species"]], "get_species() (spatialpy.core.result.result method)": [[1, "spatialpy.core.result.Result.get_species"]], "get_timespan() (spatialpy.core.result method)": [[1, "spatialpy.core.Result.get_timespan"]], "get_timespan() (spatialpy.core.result.result method)": [[1, "spatialpy.core.result.Result.get_timespan"]], "get_type_def() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.get_type_def"]], "get_type_def() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.get_type_def"]], "get_vol() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.get_vol"]], "get_vol() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.get_vol"]], "import_meshio_object() (spatialpy.core.domain class method)": [[1, "spatialpy.core.Domain.import_meshio_object"]], "import_meshio_object() (spatialpy.core.domain.domain class method)": [[1, "spatialpy.core.domain.Domain.import_meshio_object"]], "initialize() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.initialize"]], "initialize() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.initialize"]], "inside() (spatialpy.core.combinatorygeometry method)": [[1, "spatialpy.core.CombinatoryGeometry.inside"]], "inside() (spatialpy.core.geometry method)": [[1, "spatialpy.core.Geometry.inside"]], "inside() (spatialpy.core.geometryall method)": [[1, "spatialpy.core.GeometryAll.inside"]], "inside() (spatialpy.core.geometryexterior method)": [[1, "spatialpy.core.GeometryExterior.inside"]], "inside() (spatialpy.core.geometryinterior method)": [[1, "spatialpy.core.GeometryInterior.inside"]], "inside() (spatialpy.core.transformation method)": [[1, "spatialpy.core.Transformation.inside"]], "inside() (spatialpy.core.geometry.combinatorygeometry method)": [[1, "spatialpy.core.geometry.CombinatoryGeometry.inside"]], "inside() (spatialpy.core.geometry.geometry method)": [[1, "spatialpy.core.geometry.Geometry.inside"]], "inside() (spatialpy.core.geometry.geometryall method)": [[1, "spatialpy.core.geometry.GeometryAll.inside"]], "inside() (spatialpy.core.geometry.geometryexterior method)": [[1, "spatialpy.core.geometry.GeometryExterior.inside"]], "inside() (spatialpy.core.geometry.geometryinterior method)": [[1, "spatialpy.core.geometry.GeometryInterior.inside"]], "inside() (spatialpy.core.transformation.transformation method)": [[1, "spatialpy.core.transformation.Transformation.inside"]], "linspace() (spatialpy.core.timespan class method)": [[1, "spatialpy.core.TimeSpan.linspace"]], "linspace() (spatialpy.core.timespan.timespan class method)": [[1, "spatialpy.core.timespan.TimeSpan.linspace"]], "map() (spatialpy.core.datafunction method)": [[1, "spatialpy.core.DataFunction.map"]], "map() (spatialpy.core.datafunction.datafunction method)": [[1, "spatialpy.core.datafunction.DataFunction.map"]], "plot_property() (spatialpy.core.result method)": [[1, "spatialpy.core.Result.plot_property"]], "plot_property() (spatialpy.core.result.result method)": [[1, "spatialpy.core.result.Result.plot_property"]], "plot_scatter() (spatialpy.core.visualization method)": [[1, "spatialpy.core.Visualization.plot_scatter"]], "plot_scatter() (spatialpy.core.visualization.visualization method)": [[1, "spatialpy.core.visualization.Visualization.plot_scatter"]], "plot_species() (spatialpy.core.result method)": [[1, "spatialpy.core.Result.plot_species"]], "plot_species() (spatialpy.core.result.result method)": [[1, "spatialpy.core.result.Result.plot_species"]], "plot_types() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.plot_types"]], "plot_types() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.plot_types"]], "preview_actions() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.preview_actions"]], "preview_actions() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.preview_actions"]], "read_file() (spatialpy.core.vtkreader method)": [[1, "spatialpy.core.VTKReader.read_file"]], "read_file() (spatialpy.core.vtkreader.vtkreader method)": [[1, "spatialpy.core.vtkreader.VTKReader.read_file"]], "read_msh_file() (spatialpy.core.domain class method)": [[1, "spatialpy.core.Domain.read_msh_file"]], "read_msh_file() (spatialpy.core.domain.domain class method)": [[1, "spatialpy.core.domain.Domain.read_msh_file"]], "read_step() (spatialpy.core.result method)": [[1, "spatialpy.core.Result.read_step"]], "read_step() (spatialpy.core.result.result method)": [[1, "spatialpy.core.result.Result.read_step"]], "read_stochss_domain() (spatialpy.core.domain class method)": [[1, "spatialpy.core.Domain.read_stochss_domain"]], "read_stochss_domain() (spatialpy.core.domain.domain class method)": [[1, "spatialpy.core.domain.Domain.read_stochss_domain"]], "read_stochss_subdomain_file() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.read_stochss_subdomain_file"]], "read_stochss_subdomain_file() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.read_stochss_subdomain_file"]], "read_xml_mesh() (spatialpy.core.domain class method)": [[1, "spatialpy.core.Domain.read_xml_mesh"]], "read_xml_mesh() (spatialpy.core.domain.domain class method)": [[1, "spatialpy.core.domain.Domain.read_xml_mesh"]], "reserved_names (spatialpy.core.model attribute)": [[1, "spatialpy.core.Model.reserved_names"]], "reserved_names (spatialpy.core.model.model attribute)": [[1, "spatialpy.core.model.Model.reserved_names"]], "reverse_transform() (spatialpy.core.reflectiontransformation method)": [[1, "spatialpy.core.ReflectionTransformation.reverse_transform"]], "reverse_transform() (spatialpy.core.rotationtransformation method)": [[1, "spatialpy.core.RotationTransformation.reverse_transform"]], "reverse_transform() (spatialpy.core.scalingtransformation method)": [[1, "spatialpy.core.ScalingTransformation.reverse_transform"]], "reverse_transform() (spatialpy.core.transformation method)": [[1, "spatialpy.core.Transformation.reverse_transform"]], "reverse_transform() (spatialpy.core.translationtransformation method)": [[1, "spatialpy.core.TranslationTransformation.reverse_transform"]], "reverse_transform() (spatialpy.core.transformation.reflectiontransformation method)": [[1, "spatialpy.core.transformation.ReflectionTransformation.reverse_transform"]], "reverse_transform() (spatialpy.core.transformation.rotationtransformation method)": [[1, "spatialpy.core.transformation.RotationTransformation.reverse_transform"]], "reverse_transform() (spatialpy.core.transformation.scalingtransformation method)": [[1, "spatialpy.core.transformation.ScalingTransformation.reverse_transform"]], "reverse_transform() (spatialpy.core.transformation.transformation method)": [[1, "spatialpy.core.transformation.Transformation.reverse_transform"]], "reverse_transform() (spatialpy.core.transformation.translationtransformation method)": [[1, "spatialpy.core.transformation.TranslationTransformation.reverse_transform"]], "run() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.run"]], "run() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.run"]], "sanitized_data_function_names() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.sanitized_data_function_names"]], "sanitized_data_function_names() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.sanitized_data_function_names"]], "sanitized_parameter_names() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.sanitized_parameter_names"]], "sanitized_parameter_names() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.sanitized_parameter_names"]], "sanitized_propensity_function() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.sanitized_propensity_function"]], "sanitized_propensity_function() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.sanitized_propensity_function"]], "sanitized_species_names() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.sanitized_species_names"]], "sanitized_species_names() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.sanitized_species_names"]], "set_annotation() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.set_annotation"]], "set_annotation() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.set_annotation"]], "set_diffusion_coefficient() (spatialpy.core.species method)": [[1, "spatialpy.core.Species.set_diffusion_coefficient"]], "set_diffusion_coefficient() (spatialpy.core.species.species method)": [[1, "spatialpy.core.species.Species.set_diffusion_coefficient"]], "set_filename() (spatialpy.core.vtkreader method)": [[1, "spatialpy.core.VTKReader.set_filename"]], "set_filename() (spatialpy.core.vtkreader.vtkreader method)": [[1, "spatialpy.core.vtkreader.VTKReader.set_filename"]], "set_propensities() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.set_propensities"]], "set_propensities() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.set_propensities"]], "set_properties() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.set_properties"]], "set_properties() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.set_properties"]], "set_rate() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.set_rate"]], "set_rate() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.set_rate"]], "set_timesteps() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.set_timesteps"]], "set_timesteps() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.set_timesteps"]], "spatialpy.core": [[1, "module-spatialpy.core"]], "spatialpy.core.boundarycondition": [[1, "module-spatialpy.core.boundarycondition"]], "spatialpy.core.cleanup": [[1, "module-spatialpy.core.cleanup"]], "spatialpy.core.datafunction": [[1, "module-spatialpy.core.datafunction"]], "spatialpy.core.domain": [[1, "module-spatialpy.core.domain"]], "spatialpy.core.geometry": [[1, "module-spatialpy.core.geometry"]], "spatialpy.core.initialcondition": [[1, "module-spatialpy.core.initialcondition"]], "spatialpy.core.lattice": [[1, "module-spatialpy.core.lattice"]], "spatialpy.core.model": [[1, "module-spatialpy.core.model"]], "spatialpy.core.parameter": [[1, "module-spatialpy.core.parameter"]], "spatialpy.core.reaction": [[1, "module-spatialpy.core.reaction"]], "spatialpy.core.result": [[1, "module-spatialpy.core.result"]], "spatialpy.core.spatialpyerror": [[1, "module-spatialpy.core.spatialpyerror"]], "spatialpy.core.species": [[1, "module-spatialpy.core.species"]], "spatialpy.core.timespan": [[1, "module-spatialpy.core.timespan"]], "spatialpy.core.transformation": [[1, "module-spatialpy.core.transformation"]], "spatialpy.core.visualization": [[1, "module-spatialpy.core.visualization"]], "spatialpy.core.vtkreader": [[1, "module-spatialpy.core.vtkreader"]], "special_characters (spatialpy.core.model attribute)": [[1, "spatialpy.core.Model.special_characters"]], "special_characters (spatialpy.core.model.model attribute)": [[1, "spatialpy.core.model.Model.special_characters"]], "timespan() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.timespan"]], "timespan() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.timespan"]], "to_dict() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.to_dict"]], "to_dict() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.to_dict"]], "transform() (spatialpy.core.reflectiontransformation method)": [[1, "spatialpy.core.ReflectionTransformation.transform"]], "transform() (spatialpy.core.rotationtransformation method)": [[1, "spatialpy.core.RotationTransformation.transform"]], "transform() (spatialpy.core.scalingtransformation method)": [[1, "spatialpy.core.ScalingTransformation.transform"]], "transform() (spatialpy.core.transformation method)": [[1, "spatialpy.core.Transformation.transform"]], "transform() (spatialpy.core.translationtransformation method)": [[1, "spatialpy.core.TranslationTransformation.transform"]], "transform() (spatialpy.core.transformation.reflectiontransformation method)": [[1, "spatialpy.core.transformation.ReflectionTransformation.transform"]], "transform() (spatialpy.core.transformation.rotationtransformation method)": [[1, "spatialpy.core.transformation.RotationTransformation.transform"]], "transform() (spatialpy.core.transformation.scalingtransformation method)": [[1, "spatialpy.core.transformation.ScalingTransformation.transform"]], "transform() (spatialpy.core.transformation.transformation method)": [[1, "spatialpy.core.transformation.Transformation.transform"]], "transform() (spatialpy.core.transformation.translationtransformation method)": [[1, "spatialpy.core.transformation.TranslationTransformation.transform"]], "update_namespace() (spatialpy.core.model method)": [[1, "spatialpy.core.Model.update_namespace"]], "update_namespace() (spatialpy.core.model.model method)": [[1, "spatialpy.core.model.Model.update_namespace"]], "validate() (spatialpy.core.cartesianlattice method)": [[1, "spatialpy.core.CartesianLattice.validate"]], "validate() (spatialpy.core.combinatorygeometry method)": [[1, "spatialpy.core.CombinatoryGeometry.validate"]], "validate() (spatialpy.core.cylindricallattice method)": [[1, "spatialpy.core.CylindricalLattice.validate"]], "validate() (spatialpy.core.meshiolattice method)": [[1, "spatialpy.core.MeshIOLattice.validate"]], "validate() (spatialpy.core.parameter method)": [[1, "spatialpy.core.Parameter.validate"]], "validate() (spatialpy.core.reaction method)": [[1, "spatialpy.core.Reaction.validate"]], "validate() (spatialpy.core.rotationtransformation method)": [[1, "spatialpy.core.RotationTransformation.validate"]], "validate() (spatialpy.core.scalingtransformation method)": [[1, "spatialpy.core.ScalingTransformation.validate"]], "validate() (spatialpy.core.species method)": [[1, "spatialpy.core.Species.validate"]], "validate() (spatialpy.core.sphericallattice method)": [[1, "spatialpy.core.SphericalLattice.validate"]], "validate() (spatialpy.core.stochsslattice method)": [[1, "spatialpy.core.StochSSLattice.validate"]], "validate() (spatialpy.core.timespan method)": [[1, "spatialpy.core.TimeSpan.validate"]], "validate() (spatialpy.core.transformation method)": [[1, "spatialpy.core.Transformation.validate"]], "validate() (spatialpy.core.translationtransformation method)": [[1, "spatialpy.core.TranslationTransformation.validate"]], "validate() (spatialpy.core.xmlmeshlattice method)": [[1, "spatialpy.core.XMLMeshLattice.validate"]], "validate() (spatialpy.core.geometry.combinatorygeometry method)": [[1, "spatialpy.core.geometry.CombinatoryGeometry.validate"]], "validate() (spatialpy.core.lattice.cartesianlattice method)": [[1, "spatialpy.core.lattice.CartesianLattice.validate"]], "validate() (spatialpy.core.lattice.cylindricallattice method)": [[1, "spatialpy.core.lattice.CylindricalLattice.validate"]], "validate() (spatialpy.core.lattice.lattice method)": [[1, "spatialpy.core.lattice.Lattice.validate"]], "validate() (spatialpy.core.lattice.meshiolattice method)": [[1, "spatialpy.core.lattice.MeshIOLattice.validate"]], "validate() (spatialpy.core.lattice.sphericallattice method)": [[1, "spatialpy.core.lattice.SphericalLattice.validate"]], "validate() (spatialpy.core.lattice.stochsslattice method)": [[1, "spatialpy.core.lattice.StochSSLattice.validate"]], "validate() (spatialpy.core.lattice.xmlmeshlattice method)": [[1, "spatialpy.core.lattice.XMLMeshLattice.validate"]], "validate() (spatialpy.core.parameter.parameter method)": [[1, "spatialpy.core.parameter.Parameter.validate"]], "validate() (spatialpy.core.reaction.reaction method)": [[1, "spatialpy.core.reaction.Reaction.validate"]], "validate() (spatialpy.core.species.species method)": [[1, "spatialpy.core.species.Species.validate"]], "validate() (spatialpy.core.timespan.timespan method)": [[1, "spatialpy.core.timespan.TimeSpan.validate"]], "validate() (spatialpy.core.transformation.rotationtransformation method)": [[1, "spatialpy.core.transformation.RotationTransformation.validate"]], "validate() (spatialpy.core.transformation.scalingtransformation method)": [[1, "spatialpy.core.transformation.ScalingTransformation.validate"]], "validate() (spatialpy.core.transformation.transformation method)": [[1, "spatialpy.core.transformation.Transformation.validate"]], "validate() (spatialpy.core.transformation.translationtransformation method)": [[1, "spatialpy.core.transformation.TranslationTransformation.validate"]], "validate_action() (spatialpy.core.domain method)": [[1, "spatialpy.core.Domain.validate_action"]], "validate_action() (spatialpy.core.domain.domain method)": [[1, "spatialpy.core.domain.Domain.validate_action"]], "buildexpression (class in spatialpy.solvers.build_expression)": [[2, "spatialpy.solvers.build_expression.BuildExpression"]], "buildexpression.validationvisitor (class in spatialpy.solvers.build_expression)": [[2, "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor"]], "cppconverter (class in spatialpy.solvers.build_expression)": [[2, "spatialpy.solvers.build_expression.CppConverter"]], "cppconverter.cppexpressiontransformer (class in spatialpy.solvers.build_expression)": [[2, "spatialpy.solvers.build_expression.CppConverter.CppExpressionTransformer"]], "expressionconverter (class in spatialpy.solvers.build_expression)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter"]], "expressionresults (class in spatialpy.solvers.build_expression)": [[2, "spatialpy.solvers.build_expression.ExpressionResults"]], "pythonconverter (class in spatialpy.solvers.build_expression)": [[2, "spatialpy.solvers.build_expression.PythonConverter"]], "solver (class in spatialpy.solvers.solver)": [[2, "spatialpy.solvers.solver.Solver"]], "compile() (spatialpy.solvers.solver.solver method)": [[2, "spatialpy.solvers.solver.Solver.compile"]], "convert_str() (spatialpy.solvers.build_expression.expressionconverter class method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.convert_str"]], "get_str() (spatialpy.solvers.build_expression.cppconverter method)": [[2, "spatialpy.solvers.build_expression.CppConverter.get_str"]], "get_str() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.get_str"]], "getexpr_cpp() (spatialpy.solvers.build_expression.buildexpression method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.getexpr_cpp"]], "getexpr_python() (spatialpy.solvers.build_expression.buildexpression method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.getexpr_python"]], "map_operator() (spatialpy.solvers.build_expression.buildexpression class method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.map_operator"]], "operator_map (spatialpy.solvers.build_expression.buildexpression attribute)": [[2, "spatialpy.solvers.build_expression.BuildExpression.operator_map"]], "parse_comparison() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.parse_comparison"]], "parse_logical() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.parse_logical"]], "parse_operator() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.parse_operator"]], "run() (spatialpy.solvers.solver.solver method)": [[2, "spatialpy.solvers.solver.Solver.run"]], "spatialpy.solvers": [[2, "module-spatialpy.solvers"]], "spatialpy.solvers.build_expression": [[2, "module-spatialpy.solvers.build_expression"]], "spatialpy.solvers.solver": [[2, "module-spatialpy.solvers.solver"]], "validate() (spatialpy.solvers.build_expression.buildexpression method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.validate"]], "visit_add() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Add"]], "visit_and() (spatialpy.solvers.build_expression.cppconverter method)": [[2, "spatialpy.solvers.build_expression.CppConverter.visit_And"]], "visit_and() (spatialpy.solvers.build_expression.pythonconverter method)": [[2, "spatialpy.solvers.build_expression.PythonConverter.visit_And"]], "visit_assign() (spatialpy.solvers.build_expression.buildexpression.validationvisitor method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor.visit_Assign"]], "visit_binop() (spatialpy.solvers.build_expression.buildexpression.validationvisitor method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor.visit_BinOp"]], "visit_binop() (spatialpy.solvers.build_expression.cppconverter.cppexpressiontransformer method)": [[2, "spatialpy.solvers.build_expression.CppConverter.CppExpressionTransformer.visit_BinOp"]], "visit_binop() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_BinOp"]], "visit_boolop() (spatialpy.solvers.build_expression.buildexpression.validationvisitor method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor.visit_BoolOp"]], "visit_boolop() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_BoolOp"]], "visit_bytes() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Bytes"]], "visit_call() (spatialpy.solvers.build_expression.buildexpression.validationvisitor method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor.visit_Call"]], "visit_call() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Call"]], "visit_compare() (spatialpy.solvers.build_expression.buildexpression.validationvisitor method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor.visit_Compare"]], "visit_compare() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Compare"]], "visit_constant() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Constant"]], "visit_div() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Div"]], "visit_ellipsis() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Ellipsis"]], "visit_eq() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Eq"]], "visit_gt() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Gt"]], "visit_gte() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_GtE"]], "visit_lt() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Lt"]], "visit_lte() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_LtE"]], "visit_mult() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Mult"]], "visit_name() (spatialpy.solvers.build_expression.buildexpression.validationvisitor method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor.visit_Name"]], "visit_name() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Name"]], "visit_nameconstant() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_NameConstant"]], "visit_noteq() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_NotEq"]], "visit_num() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Num"]], "visit_or() (spatialpy.solvers.build_expression.cppconverter method)": [[2, "spatialpy.solvers.build_expression.CppConverter.visit_Or"]], "visit_or() (spatialpy.solvers.build_expression.pythonconverter method)": [[2, "spatialpy.solvers.build_expression.PythonConverter.visit_Or"]], "visit_pow() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Pow"]], "visit_str() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Str"]], "visit_sub() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_Sub"]], "visit_usub() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_USub"]], "visit_unaryop() (spatialpy.solvers.build_expression.buildexpression.validationvisitor method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.ValidationVisitor.visit_UnaryOp"]], "visit_unaryop() (spatialpy.solvers.build_expression.expressionconverter method)": [[2, "spatialpy.solvers.build_expression.ExpressionConverter.visit_UnaryOp"]], "with_blacklist() (spatialpy.solvers.build_expression.buildexpression method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.with_blacklist"]], "with_namespace() (spatialpy.solvers.build_expression.buildexpression method)": [[2, "spatialpy.solvers.build_expression.BuildExpression.with_namespace"]], "export() (in module spatialpy.stochss.stochss_export)": [[3, "spatialpy.stochss.stochss_export.export"]], "spatialpy.stochss": [[3, "module-spatialpy.stochss"]], "spatialpy.stochss.stochss_export": [[3, "module-spatialpy.stochss.stochss_export"]]}}) \ No newline at end of file From b8832f32873fea852e15e8fd10d843a122046b3a Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 18 Nov 2022 15:23:00 -0500 Subject: [PATCH 48/54] release prep. --- .github/workflows/update-docs.yml | 10 +++------- docs/Makefile | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index bc8ea283..14ace447 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -2,7 +2,7 @@ name: Publish SpatialPy Docs on: push: - branches: [develop-clone] + branches: [main] jobs: publish: @@ -12,7 +12,7 @@ jobs: - name: Initialize environment uses: actions/checkout@v2 with: - ref: develop-clone + ref: main fetch-depth: 0 - name: Install Python @@ -43,8 +43,4 @@ jobs: uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} - branch: develop-clone - - # - name: Update and Publish docs - # working-directory: docs - # run: make publish-release + branch: main diff --git a/docs/Makefile b/docs/Makefile index a460cc90..a2462ff3 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -88,7 +88,7 @@ build-docs: git pull make clean git stash - git checkout develop-clone + git checkout main make html commit-docs: From 484a831d4ba41d28a2e688b5320e1056b82c8966 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Thu, 15 Dec 2022 09:06:07 -0500 Subject: [PATCH 49/54] Added github action to run pylint checks on pull requests. --- .github/workflows/pylint_on_pull_request.yml | 75 ++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/pylint_on_pull_request.yml diff --git a/.github/workflows/pylint_on_pull_request.yml b/.github/workflows/pylint_on_pull_request.yml new file mode 100644 index 00000000..d881a168 --- /dev/null +++ b/.github/workflows/pylint_on_pull_request.yml @@ -0,0 +1,75 @@ +name: PyLint On Pull Request +on: [pull_request] +jobs: + build: + runs-on: ubuntu-20.04 + steps: + - name: Set Up Python + uses: actions/setup-python@v2 + - name: Install PyLint + run: pip install --upgrade pylint + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Checkout Head + run: git checkout $HEAD_REF + env: + HEAD_REF: ${{ github.event.pull_request.head.ref }} + - name: Checkout Base + run: git checkout $BASE_REF + env: + BASE_REF: ${{ github.event.pull_request.base.ref }} + - name: Get Base Lint Score + run: | + echo BASE_LINT=$(git diff --name-only --diff-filter=M $HEAD_REF | grep -E "\.py" | xargs pylint | grep -E -o "at [0-9.-]+" | grep -E -o [0-9.-]+) >> $GITHUB_ENV + env: + HEAD_REF: ${{ github.event.pull_request.head.ref }} + if: always() + - name: Set Base Lint to 0 + run: echo BASE_LINT=0 >> $GITHUB_ENV + if: env.BASE_LINT == '' + - name: Checkout Head + run: git checkout $HEAD_REF + env: + HEAD_REF: ${{ github.event.pull_request.head.ref }} + - name: Get Head Lint Score + run: | + echo HEAD_LINT=$(git diff --name-only --diff-filter=M $BASE_REF | grep -E "\.py" | xargs pylint | grep -E -o "at [0-9.-]+" | grep -E -o [0-9.-]+) >> $GITHUB_ENV + env: + BASE_REF: ${{ github.event.pull_request.base.ref }} + if: always() + - name: Set Head Lint to 0 + run: echo HEAD_LINT=0 >> $GITHUB_ENV + if: env.HEAD_LINT == '' + - name: Get Added Files Lint Score + run: | + echo ADDED_LINT=$(git diff --name-only --diff-filter=A $BASE_REF | grep -E "\.py" | xargs pylint | grep -E -o "at [0-9.-]+" | grep -E -o [0-9.-]+) >> $GITHUB_ENV + env: + BASE_REF: ${{ github.event.pull_request.base.ref }} + if: always() + - name: Get Delta + run: | + import os + base = float(os.environ['BASE_LINT']) + head = float(os.environ['HEAD_LINT']) + delta = head - base + os.popen(f"echo DELTA={round(delta, 2)} >> $GITHUB_ENV") + shell: python + - name: Display Results + run: | + echo "Lint of modified files in base:" + echo ${{ env.BASE_LINT }} + echo "Lint of modified files in head:" + echo ${{ env.HEAD_LINT }} + echo "Delta (+/-):" + echo ${{ env.DELTA }} + echo "Lint of files added by head:" + echo ${{ env.ADDED_LINT }} + if: always() + - name: Fail If Negative Delta + run: | + import os + if float(os.environ['HEAD_LINT']) < 9 and float(os.environ['DELTA']) < 0: + raise Exception("Head lint score < 9 and negative delta.") + shell: python From 34eae14a5a2dc8569031570b369063421f1d9fe1 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Thu, 15 Dec 2022 09:28:36 -0500 Subject: [PATCH 50/54] Fixed divide by zero error in spherical lattices. --- spatialpy/core/lattice.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spatialpy/core/lattice.py b/spatialpy/core/lattice.py index 6b70864c..0a91bb04 100644 --- a/spatialpy/core/lattice.py +++ b/spatialpy/core/lattice.py @@ -309,7 +309,7 @@ def apply(self, domain, geometry, transform=None, **kwargs): count = 0 radius = self.radius - while radius >= 0: + while radius > 0: # Calculate the approximate number of particle with the radius approx_rc = int(round((4 * radius ** 2) / ((self.deltas / 2) ** 2))) @@ -339,6 +339,12 @@ def apply(self, domain, geometry, transform=None, **kwargs): domain.add_point(point + self.center, **kwargs) count += 1 radius -= self.deltar + if radius == 0 and geometry.inside((0, 0, 0), False): + point = [0, 0, 0] if transform is None else transform([0, 0, 0]) + if not isinstance(point, numpy.ndarray): + point = numpy.array(point) + domain.add_point(point + self.center, **kwargs) + count += 1 self._update_limits(domain) if 'vol' not in kwargs: offset = len(domain.vertices) - count From 69d80b0a795fca40e45e48eb2b3b7171c492864f Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Thu, 15 Dec 2022 09:35:40 -0500 Subject: [PATCH 51/54] Fixed divide by zero error in cylindrical lattices. --- spatialpy/core/lattice.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/spatialpy/core/lattice.py b/spatialpy/core/lattice.py index 0a91bb04..1548bd88 100644 --- a/spatialpy/core/lattice.py +++ b/spatialpy/core/lattice.py @@ -443,7 +443,7 @@ def apply(self, domain, geometry, transform=None, **kwargs): xmin = -h_len xmax = h_len radius = self.radius - while radius >= 0: + while radius > 0: # Calculate the approximate number of particle with the radius approx_rc = int(round((2 * radius * self.length) / ((self.deltas / 2) ** 2))) @@ -454,7 +454,6 @@ def apply(self, domain, geometry, transform=None, **kwargs): x = xmin while x <= xmax: - for mtheta in range(m_theta): theta = 2 * numpy.pi * (mtheta + 0.5) / m_theta y = radius * numpy.cos(theta) @@ -470,6 +469,16 @@ def apply(self, domain, geometry, transform=None, **kwargs): count += 1 x += self.deltas radius -= self.deltar + if radius == 0: + x = xmin + while x <= xmax: + if geometry.inside((x, 0, 0), False): + point = [x, 0, 0] if transform is None else transform([x, 0, 0]) + if not isinstance(point, numpy.ndarray): + point = numpy.array(point) + domain.add_point(point + self.center, **kwargs) + count += 1 + x += self.deltas self._update_limits(domain) if 'vol' not in kwargs: offset = len(domain.vertices) - count From 740b49eb8d8ee61ceef63f0a90887ebf1f97d3be Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Thu, 15 Dec 2022 09:43:11 -0500 Subject: [PATCH 52/54] Fixed import error. Pylint changes. --- spatialpy/core/lattice.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/spatialpy/core/lattice.py b/spatialpy/core/lattice.py index 1548bd88..d23ce53d 100644 --- a/spatialpy/core/lattice.py +++ b/spatialpy/core/lattice.py @@ -14,14 +14,15 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . import json -import numpy +import string import xml.etree.ElementTree as ET +import numpy + from spatialpy.core.geometry import Geometry, CombinatoryGeometry from spatialpy.core.spatialpyerror import LatticeError - class Lattice: """ Lattice class provides a method for creating parts of the spatial domain. @@ -102,7 +103,7 @@ class CartesianLattice(Lattice): :param zmin: Minimum z value of the lattice (optional, defaults to xmin). :type zmin: float - + :param zmax: Maximum z value of the lattice (optional, defaults to xmax). :type zmax: float @@ -319,11 +320,11 @@ def apply(self, domain, geometry, transform=None, **kwargs): m_phi = int(round(numpy.pi * radius / d_a)) d_phi = numpy.pi / m_phi d_theta = p_area / d_phi - + for mphi in range(m_phi): phi = numpy.pi * (mphi + 0.5) / m_phi m_theta = int(round(2 * numpy.pi * numpy.sin(phi) / d_phi)) - + for mtheta in range(m_theta): theta = 2 * numpy.pi * mtheta / m_theta x = radius * numpy.cos(theta) * numpy.sin(phi) @@ -516,7 +517,7 @@ class XMLMeshLattice(Lattice): """ XML mesh lattice class provides a method for creating parts of the spatial domain with a mesh defined by a FEniCS/dolfin style XML mesh file. - + :param center: The center point of the lattice. :type center: float[3] | float(3) @@ -602,7 +603,7 @@ def apply(self, domain, *args, transform=None, **kwargs): point = [x, y, z] else: point = transform([x, y, z]) - if type_ids is not None and i in type_ids.keys(): + if type_ids is not None and i in type_ids: kwargs['type_id'] = type_ids[i] if not isinstance(point, numpy.ndarray): point = numpy.array(point) @@ -652,7 +653,7 @@ class MeshIOLattice(Lattice): """ meshio lattice class provides a method for creating parts of the spatial domain with a mesh defined by a Gmsh style .msh mesh file. - + :param center: The center point of the lattice. :type center: float[3] | float(3) @@ -717,7 +718,7 @@ def apply(self, domain, *args, transform=None, **kwargs): mesh = meshio.read(self.filename) else: mesh = self.mesh - + if self.subdomain_file is not None: type_ids = self.__get_types() else: @@ -734,7 +735,7 @@ def apply(self, domain, *args, transform=None, **kwargs): point = [x, y, z] else: point = transform([x, y, z]) - if type_ids is not None and i in type_ids.keys(): + if type_ids is not None and i in type_ids: kwargs['type_id'] = type_ids[i] if not isinstance(point, numpy.ndarray): point = numpy.array(point) @@ -750,7 +751,7 @@ def apply(self, domain, *args, transform=None, **kwargs): for triangle in triangles[0].data: triangle = triangle + num_points domain.triangles = numpy.append(domain.triangles, [triangle], axis=0) - + #tetrahedrons tetras = list(filter(lambda cell: cell.type == "tetra", mesh.cells)) if tetras: @@ -789,7 +790,7 @@ class StochSSLattice(Lattice): """ stochss lattice class provides a method for creating parts of the spatial domain with a domain defined by a stochss style .domn domain file or .smdl model file. - + :param center: The center point of the lattice. :type center: float[3] | float(3) @@ -829,7 +830,7 @@ def apply(self, domain, *args, transform=None, **kwargs): domain.c0 = s_domain['c_0'] domain.P0 = s_domain['p_0'] domain.gravity = s_domain['gravity'] - + type_ids = {} for s_type in s_domain['types']: type_ids[s_type['typeID']] = s_type['name'].replace('-', '') From 05903d266139c38e48deb24ac1e08837a7c9e0a8 Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 16 Dec 2022 13:06:33 -0500 Subject: [PATCH 53/54] Fixed issue with applying remove actions. --- spatialpy/core/domain.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spatialpy/core/domain.py b/spatialpy/core/domain.py index c9062a48..b24267e7 100644 --- a/spatialpy/core/domain.py +++ b/spatialpy/core/domain.py @@ -388,8 +388,9 @@ def apply_remove_action(self, action): # remove the particles that fall within the defined region on_boundary = self.find_boundary_points(update=True) - for v_ndx in range(self.get_num_voxels()): - if action['geometry'].inside(self.coordinates()[v_ndx, :], on_boundary[v_ndx]): + for v_ndx, vertex in enumerate(self.vertices): + if action['geometry'].inside(vertex, on_boundary[v_ndx]): + self.vertices = numpy.delete(self.vertices, v_ndx) self.type_id = numpy.delete(self.type_id, v_ndx, 0) self.vol = numpy.delete(self.vol, v_ndx) self.mass = numpy.delete(self.mass, v_ndx) From d8bdc8a18581b218937c64429a1d87f137c6b99b Mon Sep 17 00:00:00 2001 From: Bryan Rumsey Date: Fri, 16 Dec 2022 13:27:15 -0500 Subject: [PATCH 54/54] Added axis to fix. --- spatialpy/core/domain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spatialpy/core/domain.py b/spatialpy/core/domain.py index b24267e7..81ea1f27 100644 --- a/spatialpy/core/domain.py +++ b/spatialpy/core/domain.py @@ -390,7 +390,7 @@ def apply_remove_action(self, action): on_boundary = self.find_boundary_points(update=True) for v_ndx, vertex in enumerate(self.vertices): if action['geometry'].inside(vertex, on_boundary[v_ndx]): - self.vertices = numpy.delete(self.vertices, v_ndx) + self.vertices = numpy.delete(self.vertices, v_ndx, 0) self.type_id = numpy.delete(self.type_id, v_ndx, 0) self.vol = numpy.delete(self.vol, v_ndx) self.mass = numpy.delete(self.mass, v_ndx)

  • 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 delta 1007 zcmb7D%Wl(95UrEk6eocw0-;JxirXRxNgJ!csuE8D5{j_OV~48h#<^sY*7n7|CdvYp z?m+S)S7kYGjnFD)W9PrhV; zz{w!asmp8;LI#xmA5WJRh(b2Fp@U;Fz2erXt>0qaws5%aGLKQ$1SypBN>092?p`Ob z2J@gpzsrD};a4auJP-4rZHBOfaTenoMt(E&p#W(tUm27`5pr@da`p7z>!lx&WCI?+ zBY8Xuy9Kxj*9xFmsasqrOcBHt+s@^WkqN%1k~9gP$|hLRs+XZ}UXx7h9V0_-9FupxN- zKdJPGoQgW#*=Xri$Mob@>S8TdRwhr+Lpw-YPSxLGtEOWMG=mqi5d*`NHcHV+Ij2cT zkCA1Y%#l8i@)Mc6GsRqVd~P{1E#{7iEUPF*SyGqf zYjsi6KnU)w>w2@va<~>-k diff --git a/docs/build/html/.doctrees/classes/spatialpy.solvers.doctree b/docs/build/html/.doctrees/classes/spatialpy.solvers.doctree index 058f48405db2f24eb8d564159f646e0a53daf1af..b386d5e58f26dfcf22e2e8f3bc784d3d3c56f2c0 100644 GIT binary patch literal 217685 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 AivR!s literal 11221 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