From c5f60322467ec8ecc0db64c3e18a4da762c27e45 Mon Sep 17 00:00:00 2001 From: Jonas Schneider Date: Tue, 27 Jun 2017 22:38:30 -0700 Subject: [PATCH] Import 1.50.x series code --- .appveyor.yml | 39 + .dockerignore | 49 + .gitignore | 105 +- .python-version | 1 + .travis.yml | 29 +- Dockerfile | 81 +- LICENSE => LICENSE.md | 17 +- MANIFEST.in | 5 + Makefile | 36 +- README.md | 91 +- tests/__init__.py => docs/.nojekyll | 0 docs/Makefile | 13 + docs/_static/.gitkeep | 0 docs/_templates/.gitkeep | 0 docs/build/doctrees/environment.pickle | Bin 0 -> 43611 bytes docs/build/doctrees/index.doctree | Bin 0 -> 10103 bytes docs/build/doctrees/internals.doctree | Bin 0 -> 11274 bytes docs/build/doctrees/reference.doctree | Bin 0 -> 180811 bytes docs/build/html/.buildinfo | 4 + docs/build/html/_modules/index.html | 223 + .../html/_modules/mujoco_py/builder.html | 522 + .../html/_modules/mujoco_py/mjviewer.html | 580 + docs/build/html/_sources/index.rst.txt | 20 + docs/build/html/_sources/internals.rst.txt | 55 + docs/build/html/_sources/reference.rst.txt | 313 + docs/build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes docs/build/html/_static/basic.css | 639 + docs/build/html/_static/comment-bright.png | Bin 0 -> 756 bytes docs/build/html/_static/comment-close.png | Bin 0 -> 829 bytes docs/build/html/_static/comment.png | Bin 0 -> 641 bytes docs/build/html/_static/css/badge_only.css | 2 + docs/build/html/_static/css/theme.css | 5 + docs/build/html/_static/doctools.js | 287 + docs/build/html/_static/down-pressed.png | Bin 0 -> 222 bytes docs/build/html/_static/down.png | Bin 0 -> 202 bytes docs/build/html/_static/file.png | Bin 0 -> 286 bytes .../html/_static/fonts/Inconsolata-Bold.ttf | Bin 0 -> 109948 bytes .../_static/fonts/Inconsolata-Regular.ttf | Bin 0 -> 96964 bytes docs/build/html/_static/fonts/Lato-Bold.ttf | Bin 0 -> 656544 bytes .../build/html/_static/fonts/Lato-Regular.ttf | Bin 0 -> 656568 bytes .../html/_static/fonts/RobotoSlab-Bold.ttf | Bin 0 -> 170616 bytes .../html/_static/fonts/RobotoSlab-Regular.ttf | Bin 0 -> 169064 bytes .../_static/fonts/fontawesome-webfont.eot | Bin 0 -> 76518 bytes .../_static/fonts/fontawesome-webfont.svg | 685 ++ .../_static/fonts/fontawesome-webfont.ttf | Bin 0 -> 152796 bytes .../_static/fonts/fontawesome-webfont.woff | Bin 0 -> 90412 bytes docs/build/html/_static/jquery-3.1.0.js | 10074 ++++++++++++++++ docs/build/html/_static/jquery.js | 4 + docs/build/html/_static/js/modernizr.min.js | 4 + docs/build/html/_static/js/theme.js | 169 + docs/build/html/_static/minus.png | Bin 0 -> 90 bytes docs/build/html/_static/plus.png | Bin 0 -> 90 bytes docs/build/html/_static/pygments.css | 69 + docs/build/html/_static/searchtools.js | 758 ++ docs/build/html/_static/underscore-1.3.1.js | 999 ++ docs/build/html/_static/underscore.js | 31 + docs/build/html/_static/up-pressed.png | Bin 0 -> 214 bytes docs/build/html/_static/up.png | Bin 0 -> 203 bytes docs/build/html/_static/websupport.js | 808 ++ docs/build/html/genindex.html | 736 ++ docs/build/html/index.html | 256 + docs/build/html/internals.html | 282 + docs/build/html/objects.inv | Bin 0 -> 1207 bytes docs/build/html/reference.html | 1366 +++ docs/build/html/search.html | 237 + docs/build/html/searchindex.js | 1 + docs/conf.py | 157 + docs/index.html | 1 + docs/index.rst | 20 + docs/internals.rst | 55 + docs/reference.rst | 313 + examples/body_interaction.py | 60 + examples/disco_fetch.py | 24 + examples/internal_functions.py | 49 + examples/markers_demo.py | 39 + examples/mjvive.py | 172 + examples/serialize_model.py | 20 + examples/setting_state.py | 59 + examples/simpool.py | 38 + examples/tosser.py | 28 + mujoco_py/.ruby-version | 1 - mujoco_py/Gemfile | 4 - mujoco_py/Gemfile.lock | 29 - mujoco_py/__init__.py | 25 +- mujoco_py/builder.py | 299 + mujoco_py/codegen.rb | 383 - mujoco_py/config.py | 49 - mujoco_py/cymj.pyx | 148 + mujoco_py/error.py | 5 - mujoco_py/gen_binding.sh | 9 - mujoco_py/generated/README.md | 2 + mujoco_py/generated/__init__.py | 0 mujoco_py/generated/const.py | 371 + mujoco_py/generated/wrappers.pxi | 4359 +++++++ mujoco_py/gl/__init__.py | 0 mujoco_py/gl/dummyshim.c | 12 + mujoco_py/gl/egl.h | 303 + mujoco_py/gl/eglext.h | 996 ++ mujoco_py/gl/eglplatform.h | 125 + mujoco_py/gl/eglshim.c | 127 + mujoco_py/gl/glshim.h | 8 + mujoco_py/gl/khrplatform.h | 285 + mujoco_py/gl/osmesashim.c | 49 + mujoco_py/glfw.py | 1643 --- mujoco_py/mjconstants.py | 23 - mujoco_py/mjcore.py | 162 - mujoco_py/mjextra.py | 6 - mujoco_py/mjlib.py | 413 - mujoco_py/mjrendercontext.pyx | 259 + mujoco_py/mjsim.pyx | 278 + mujoco_py/mjsimpool.pyx | 127 + mujoco_py/mjsimstate.pyx | 89 + mujoco_py/mjtypes.py | 6080 ---------- mujoco_py/mjviewer.py | 617 +- mujoco_py/modder.py | 450 + mujoco_py/opengl_context.pyx | 143 + mujoco_py/platname_targdir.py | 9 - mujoco_py/pxd/__init__.py | 0 mujoco_py/pxd/mjdata.pxd | 309 + mujoco_py/pxd/mjmodel.pxd | 765 ++ mujoco_py/pxd/mjrender.pxd | 90 + mujoco_py/pxd/mjvisualize.pxd | 254 + mujoco_py/pxd/mujoco.pxd | 1025 ++ mujoco_py/test_imgs/test_materials.premod.png | Bin 0 -> 7290 bytes mujoco_py/test_imgs/test_materials.props.png | Bin 0 -> 7034 bytes .../test_imgs/test_materials.rand_all.png | Bin 0 -> 6729 bytes .../test_imgs/test_multiple_sims.loop0_0.png | Bin 0 -> 47412 bytes .../test_imgs/test_multiple_sims.loop0_1.png | Bin 0 -> 52936 bytes .../test_imgs/test_multiple_sims.loop1_0.png | Bin 0 -> 77146 bytes .../test_imgs/test_multiple_sims.loop1_1.png | Bin 0 -> 53580 bytes .../test_imgs/test_multiple_sims.loop2_0.png | Bin 0 -> 66710 bytes .../test_imgs/test_multiple_sims.loop2_1.png | Bin 0 -> 66980 bytes .../test_rendering.camera1.narrow.png | Bin 0 -> 1480 bytes .../test_imgs/test_rendering.camera1.png | Bin 0 -> 950 bytes .../test_rendering.freecam.depth.png | Bin 0 -> 838 bytes .../test_imgs/test_rendering.freecam.png | Bin 0 -> 4979 bytes .../test_rendering_markers.camera1.png | Bin 0 -> 4408 bytes .../test_imgs/test_resetting.loop0_0.png | Bin 0 -> 40234 bytes .../test_imgs/test_resetting.loop0_1.png | Bin 0 -> 44602 bytes .../test_imgs/test_resetting.loop1_0.png | Bin 0 -> 77146 bytes .../test_imgs/test_resetting.loop1_1.png | Bin 0 -> 53580 bytes .../test_imgs/test_resetting.loop2_0.png | Bin 0 -> 52375 bytes .../test_imgs/test_resetting.loop2_1.png | Bin 0 -> 52811 bytes mujoco_py/test_imgs/test_textures.premod.png | Bin 0 -> 7290 bytes .../test_imgs/test_textures.rand_all.png | Bin 0 -> 34200 bytes .../test_imgs/test_textures.rand_specific.png | Bin 0 -> 33848 bytes .../test_textures.rand_texrepeat.png | Bin 0 -> 31485 bytes mujoco_py/test_imgs/test_textures.rgb.png | Bin 0 -> 2605 bytes mujoco_py/test_imgs/test_textures.variety.png | Bin 0 -> 27117 bytes mujoco_py/tests/__init__.py | 0 mujoco_py/tests/include.xml | 7 + mujoco_py/tests/test.xml | 17 + mujoco_py/tests/test_cymj.py | 691 ++ mujoco_py/tests/test_examples.py | 20 + mujoco_py/tests/test_gen_wrappers.py | 15 + mujoco_py/tests/test_modder.py | 173 + mujoco_py/tests/test_pymj_sim.py | 16 + mujoco_py/tests/test_vfs.py | 32 + mujoco_py/tests/test_viewer.py | 13 + mujoco_py/tests/utils.py | 51 + mujoco_py/util.py | 231 - mujoco_py/utils.py | 57 + mujoco_py/vendor/osx/mujoco/mujoco.h | 829 -- mujoco_py/version.py | 13 + requirements.dev.txt | 10 + requirements.txt | 7 +- scripts/gen_wrappers.py | 848 ++ setup.py | 60 +- tests/models/ant.xml | 80 - tests/models/cartpole.xml | 44 - tests/test_mjlib.py | 91 - tests/test_mjmodel.py | 15 - tests/test_mjviewer.py | 41 - tox.ini | 25 - vendor/10_nvidia.json | 6 + vendor/Xdummy | 1955 +++ vendor/Xdummy-entrypoint | 20 + vendor/pymj_shim/Makefile | 6 + vendor/pymj_shim/README.md | 2 + vendor/pymj_shim/pymj/__init__.py | 9 + vendor/pymj_shim/setup.py | 13 + xmls/claw.xml | 79 + xmls/door.xml | 32 + xmls/fetch/base_link_collision.stl | Bin 0 -> 236084 bytes xmls/fetch/bellows_link_collision.stl | Bin 0 -> 1084 bytes xmls/fetch/elbow_flex_link_collision.stl | Bin 0 -> 48684 bytes xmls/fetch/estop_link.stl | Bin 0 -> 386884 bytes xmls/fetch/forearm_roll_link_collision.stl | Bin 0 -> 50084 bytes xmls/fetch/gripper_link.stl | Bin 0 -> 75384 bytes xmls/fetch/head_pan_link_collision.stl | Bin 0 -> 105984 bytes xmls/fetch/head_tilt_link_collision.stl | Bin 0 -> 35384 bytes xmls/fetch/l_wheel_link_collision.stl | Bin 0 -> 68684 bytes xmls/fetch/laser_link.stl | Bin 0 -> 355884 bytes xmls/fetch/main.xml | 171 + xmls/fetch/r_wheel_link_collision.stl | Bin 0 -> 68684 bytes xmls/fetch/shoulder_lift_link_collision.stl | Bin 0 -> 45384 bytes xmls/fetch/shoulder_pan_link_collision.stl | Bin 0 -> 65684 bytes xmls/fetch/torso_fixed_link.stl | Bin 0 -> 5884 bytes xmls/fetch/torso_lift_link_collision.stl | Bin 0 -> 50084 bytes xmls/fetch/upperarm_roll_link_collision.stl | Bin 0 -> 49984 bytes xmls/fetch/wrist_flex_link_collision.stl | Bin 0 -> 49784 bytes xmls/fetch/wrist_roll_link_collision.stl | Bin 0 -> 26084 bytes xmls/juggler.xml | 127 + xmls/key.xml | 13 + xmls/shelf.xml | 29 + xmls/slider.xml | 62 + xmls/tosser.xml | 86 + 207 files changed, 36317 insertions(+), 10640 deletions(-) create mode 100644 .appveyor.yml create mode 100755 .dockerignore mode change 100644 => 100755 .gitignore create mode 100644 .python-version rename LICENSE => LICENSE.md (70%) create mode 100644 MANIFEST.in rename tests/__init__.py => docs/.nojekyll (100%) create mode 100644 docs/Makefile create mode 100644 docs/_static/.gitkeep create mode 100644 docs/_templates/.gitkeep create mode 100644 docs/build/doctrees/environment.pickle create mode 100644 docs/build/doctrees/index.doctree create mode 100644 docs/build/doctrees/internals.doctree create mode 100644 docs/build/doctrees/reference.doctree create mode 100644 docs/build/html/.buildinfo create mode 100644 docs/build/html/_modules/index.html create mode 100644 docs/build/html/_modules/mujoco_py/builder.html create mode 100644 docs/build/html/_modules/mujoco_py/mjviewer.html create mode 100644 docs/build/html/_sources/index.rst.txt create mode 100644 docs/build/html/_sources/internals.rst.txt create mode 100644 docs/build/html/_sources/reference.rst.txt create mode 100644 docs/build/html/_static/ajax-loader.gif create mode 100644 docs/build/html/_static/basic.css create mode 100644 docs/build/html/_static/comment-bright.png create mode 100644 docs/build/html/_static/comment-close.png create mode 100644 docs/build/html/_static/comment.png create mode 100644 docs/build/html/_static/css/badge_only.css create mode 100644 docs/build/html/_static/css/theme.css create mode 100644 docs/build/html/_static/doctools.js create mode 100644 docs/build/html/_static/down-pressed.png create mode 100644 docs/build/html/_static/down.png create mode 100644 docs/build/html/_static/file.png create mode 100644 docs/build/html/_static/fonts/Inconsolata-Bold.ttf create mode 100644 docs/build/html/_static/fonts/Inconsolata-Regular.ttf create mode 100644 docs/build/html/_static/fonts/Lato-Bold.ttf create mode 100644 docs/build/html/_static/fonts/Lato-Regular.ttf create mode 100644 docs/build/html/_static/fonts/RobotoSlab-Bold.ttf create mode 100644 docs/build/html/_static/fonts/RobotoSlab-Regular.ttf create mode 100644 docs/build/html/_static/fonts/fontawesome-webfont.eot create mode 100644 docs/build/html/_static/fonts/fontawesome-webfont.svg create mode 100644 docs/build/html/_static/fonts/fontawesome-webfont.ttf create mode 100644 docs/build/html/_static/fonts/fontawesome-webfont.woff create mode 100644 docs/build/html/_static/jquery-3.1.0.js create mode 100644 docs/build/html/_static/jquery.js create mode 100644 docs/build/html/_static/js/modernizr.min.js create mode 100644 docs/build/html/_static/js/theme.js create mode 100644 docs/build/html/_static/minus.png create mode 100644 docs/build/html/_static/plus.png create mode 100644 docs/build/html/_static/pygments.css create mode 100644 docs/build/html/_static/searchtools.js create mode 100644 docs/build/html/_static/underscore-1.3.1.js create mode 100644 docs/build/html/_static/underscore.js create mode 100644 docs/build/html/_static/up-pressed.png create mode 100644 docs/build/html/_static/up.png create mode 100644 docs/build/html/_static/websupport.js create mode 100644 docs/build/html/genindex.html create mode 100644 docs/build/html/index.html create mode 100644 docs/build/html/internals.html create mode 100644 docs/build/html/objects.inv create mode 100644 docs/build/html/reference.html create mode 100644 docs/build/html/search.html create mode 100644 docs/build/html/searchindex.js create mode 100644 docs/conf.py create mode 100644 docs/index.html create mode 100644 docs/index.rst create mode 100644 docs/internals.rst create mode 100644 docs/reference.rst create mode 100644 examples/body_interaction.py create mode 100644 examples/disco_fetch.py create mode 100644 examples/internal_functions.py create mode 100644 examples/markers_demo.py create mode 100644 examples/mjvive.py create mode 100644 examples/serialize_model.py create mode 100644 examples/setting_state.py create mode 100644 examples/simpool.py create mode 100644 examples/tosser.py delete mode 100644 mujoco_py/.ruby-version delete mode 100644 mujoco_py/Gemfile delete mode 100644 mujoco_py/Gemfile.lock create mode 100644 mujoco_py/builder.py delete mode 100644 mujoco_py/codegen.rb delete mode 100644 mujoco_py/config.py create mode 100644 mujoco_py/cymj.pyx delete mode 100644 mujoco_py/error.py delete mode 100755 mujoco_py/gen_binding.sh create mode 100644 mujoco_py/generated/README.md create mode 100644 mujoco_py/generated/__init__.py create mode 100644 mujoco_py/generated/const.py create mode 100644 mujoco_py/generated/wrappers.pxi create mode 100644 mujoco_py/gl/__init__.py create mode 100644 mujoco_py/gl/dummyshim.c create mode 100644 mujoco_py/gl/egl.h create mode 100644 mujoco_py/gl/eglext.h create mode 100644 mujoco_py/gl/eglplatform.h create mode 100644 mujoco_py/gl/eglshim.c create mode 100644 mujoco_py/gl/glshim.h create mode 100644 mujoco_py/gl/khrplatform.h create mode 100644 mujoco_py/gl/osmesashim.c delete mode 100644 mujoco_py/glfw.py delete mode 100644 mujoco_py/mjconstants.py delete mode 100644 mujoco_py/mjcore.py delete mode 100644 mujoco_py/mjextra.py delete mode 100644 mujoco_py/mjlib.py create mode 100644 mujoco_py/mjrendercontext.pyx create mode 100644 mujoco_py/mjsim.pyx create mode 100644 mujoco_py/mjsimpool.pyx create mode 100644 mujoco_py/mjsimstate.pyx delete mode 100644 mujoco_py/mjtypes.py create mode 100644 mujoco_py/modder.py create mode 100644 mujoco_py/opengl_context.pyx delete mode 100644 mujoco_py/platname_targdir.py create mode 100644 mujoco_py/pxd/__init__.py create mode 100644 mujoco_py/pxd/mjdata.pxd create mode 100644 mujoco_py/pxd/mjmodel.pxd create mode 100644 mujoco_py/pxd/mjrender.pxd create mode 100644 mujoco_py/pxd/mjvisualize.pxd create mode 100644 mujoco_py/pxd/mujoco.pxd create mode 100644 mujoco_py/test_imgs/test_materials.premod.png create mode 100644 mujoco_py/test_imgs/test_materials.props.png create mode 100644 mujoco_py/test_imgs/test_materials.rand_all.png create mode 100644 mujoco_py/test_imgs/test_multiple_sims.loop0_0.png create mode 100644 mujoco_py/test_imgs/test_multiple_sims.loop0_1.png create mode 100644 mujoco_py/test_imgs/test_multiple_sims.loop1_0.png create mode 100644 mujoco_py/test_imgs/test_multiple_sims.loop1_1.png create mode 100644 mujoco_py/test_imgs/test_multiple_sims.loop2_0.png create mode 100644 mujoco_py/test_imgs/test_multiple_sims.loop2_1.png create mode 100644 mujoco_py/test_imgs/test_rendering.camera1.narrow.png create mode 100644 mujoco_py/test_imgs/test_rendering.camera1.png create mode 100644 mujoco_py/test_imgs/test_rendering.freecam.depth.png create mode 100644 mujoco_py/test_imgs/test_rendering.freecam.png create mode 100644 mujoco_py/test_imgs/test_rendering_markers.camera1.png create mode 100644 mujoco_py/test_imgs/test_resetting.loop0_0.png create mode 100644 mujoco_py/test_imgs/test_resetting.loop0_1.png create mode 100644 mujoco_py/test_imgs/test_resetting.loop1_0.png create mode 100644 mujoco_py/test_imgs/test_resetting.loop1_1.png create mode 100644 mujoco_py/test_imgs/test_resetting.loop2_0.png create mode 100644 mujoco_py/test_imgs/test_resetting.loop2_1.png create mode 100644 mujoco_py/test_imgs/test_textures.premod.png create mode 100644 mujoco_py/test_imgs/test_textures.rand_all.png create mode 100644 mujoco_py/test_imgs/test_textures.rand_specific.png create mode 100644 mujoco_py/test_imgs/test_textures.rand_texrepeat.png create mode 100644 mujoco_py/test_imgs/test_textures.rgb.png create mode 100644 mujoco_py/test_imgs/test_textures.variety.png create mode 100644 mujoco_py/tests/__init__.py create mode 100644 mujoco_py/tests/include.xml create mode 100644 mujoco_py/tests/test.xml create mode 100644 mujoco_py/tests/test_cymj.py create mode 100644 mujoco_py/tests/test_examples.py create mode 100644 mujoco_py/tests/test_gen_wrappers.py create mode 100644 mujoco_py/tests/test_modder.py create mode 100644 mujoco_py/tests/test_pymj_sim.py create mode 100644 mujoco_py/tests/test_vfs.py create mode 100644 mujoco_py/tests/test_viewer.py create mode 100644 mujoco_py/tests/utils.py delete mode 100644 mujoco_py/util.py create mode 100644 mujoco_py/utils.py delete mode 100644 mujoco_py/vendor/osx/mujoco/mujoco.h create mode 100644 mujoco_py/version.py create mode 100644 requirements.dev.txt create mode 100644 scripts/gen_wrappers.py delete mode 100644 tests/models/ant.xml delete mode 100644 tests/models/cartpole.xml delete mode 100644 tests/test_mjlib.py delete mode 100644 tests/test_mjmodel.py delete mode 100644 tests/test_mjviewer.py delete mode 100644 tox.ini create mode 100644 vendor/10_nvidia.json create mode 100644 vendor/Xdummy create mode 100755 vendor/Xdummy-entrypoint create mode 100644 vendor/pymj_shim/Makefile create mode 100644 vendor/pymj_shim/README.md create mode 100644 vendor/pymj_shim/pymj/__init__.py create mode 100644 vendor/pymj_shim/setup.py create mode 100644 xmls/claw.xml create mode 100644 xmls/door.xml create mode 100644 xmls/fetch/base_link_collision.stl create mode 100644 xmls/fetch/bellows_link_collision.stl create mode 100644 xmls/fetch/elbow_flex_link_collision.stl create mode 100644 xmls/fetch/estop_link.stl create mode 100644 xmls/fetch/forearm_roll_link_collision.stl create mode 100644 xmls/fetch/gripper_link.stl create mode 100644 xmls/fetch/head_pan_link_collision.stl create mode 100644 xmls/fetch/head_tilt_link_collision.stl create mode 100644 xmls/fetch/l_wheel_link_collision.stl create mode 100644 xmls/fetch/laser_link.stl create mode 100644 xmls/fetch/main.xml create mode 100644 xmls/fetch/r_wheel_link_collision.stl create mode 100644 xmls/fetch/shoulder_lift_link_collision.stl create mode 100644 xmls/fetch/shoulder_pan_link_collision.stl create mode 100644 xmls/fetch/torso_fixed_link.stl create mode 100644 xmls/fetch/torso_lift_link_collision.stl create mode 100644 xmls/fetch/upperarm_roll_link_collision.stl create mode 100644 xmls/fetch/wrist_flex_link_collision.stl create mode 100644 xmls/fetch/wrist_roll_link_collision.stl create mode 100644 xmls/juggler.xml create mode 100644 xmls/key.xml create mode 100644 xmls/shelf.xml create mode 100644 xmls/slider.xml create mode 100644 xmls/tosser.xml diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 00000000..5e8e0504 --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,39 @@ +version: 1.0.{build} + +environment: + + global: + # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the + # /E:ON and /V:ON options are not enabled in the batch script intepreter + # See: http://stackoverflow.com/a/13751649/163740 + CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\continuous-integration\\appveyor\\run_with_env.cmd" + +platform: + - x64 + + +install: + - mkdir %userprofile%\.mujoco + - curl %MUJOCO_FOR_WINDOWS% -o %userprofile%\.mujoco\mjpro.tar.gz + - curl https://github.com/glfw/glfw/releases/download/3.2.1/glfw-3.2.1.bin.WIN64.zip -o %userprofile%\glfw.zip + - cd %userprofile%\.mujoco\ + - tar -zxvf mjpro.tar.gz + - echo "%PYTHON_VERSION% C:\Miniconda35-x64 %userprofile%" + - set PATH=C:\Miniconda35-x64;C:\Miniconda35-x64\Scripts;%PATH% + - conda config --set always_yes yes --set changeps1 no + - conda update -q conda + - conda info -a + - conda create -q -n test-environment python=3.5 numpy scipy + - activate test-environment + - SET PATH=%userprofile%\.mujoco\mjpro150\bin;%PATH%; + - SET RENDERING_OFF=1 + - cd C:\projects\pymj + - pip install -r requirements.txt + - pip install -r requirements.dev.txt + +build: off + +test_script: + - pytest -s --verbose --durations=10 --instafail + + diff --git a/.dockerignore b/.dockerignore new file mode 100755 index 00000000..ac6a3ef5 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,49 @@ +generated_cymj* +_pyxbld* +dist +cache +.idea/* +*~ +.*~ +*#*# +*.o +*.dat +*.prof +*.lprof +*.local +.realsync +.DS_Store +**/*.egg-info +.cache +*.ckpt +*.log +.ipynb_checkpoints +venv/ +.vimrc +*.settings +*.svn +.project +.pydevproject +tags +*sublime-project +*sublime-workspace +# Intermediate outputs +__pycache__ +**/__pycache__ +*.pb.* +*.pyc +*.swp +*.swo +# generated data +*.rdb +*.db +*.avi +# mujoco outputs +MUJOCO_LOG.TXT +model.txt +.window_data +.idea/*.xml +outputfile +tmp* +cymj.c +**/.git diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 94e78d5b..ac6a3ef5 --- a/.gitignore +++ b/.gitignore @@ -1,64 +1,49 @@ +generated_cymj* +_pyxbld* +dist +cache +.idea/* +*~ +.*~ +*#*# +*.o +*.dat +*.prof +*.lprof +*.local +.realsync .DS_Store - -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# Distribution / packaging -.Python -env/ -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -*.egg-info/ -.installed.cfg -*.egg - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.coverage -.coverage.* +**/*.egg-info .cache -nosetests.xml -coverage.xml -*,cover -.hypothesis/ - -# Translations -*.mo -*.pot - -# Django stuff: +*.ckpt *.log - -# Sphinx documentation -docs/_build/ - -# PyBuilder -target/ - - -gcc-dylibs -MANIFEST -/tmp +.ipynb_checkpoints +venv/ +.vimrc +*.settings +*.svn +.project +.pydevproject +tags +*sublime-project +*sublime-workspace +# Intermediate outputs +__pycache__ +**/__pycache__ +*.pb.* +*.pyc +*.swp +*.swo +# generated data +*.rdb +*.db +*.avi +# mujoco outputs MUJOCO_LOG.TXT +model.txt +.window_data +.idea/*.xml +outputfile +tmp* +cymj.c +**/.git diff --git a/.python-version b/.python-version new file mode 100644 index 00000000..082d4334 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.5.2/envs/pymj diff --git a/.travis.yml b/.travis.yml index 1ffe59b2..3771aa60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,25 +1,10 @@ -dist: trusty sudo: required -cache: - apt: true -language: python -addons: - apt: - packages: - - python-dev -python: - - "2.7" - - "3.5" -install: pip install tox-travis -script: tox +language: generic +dist: trusty + before_install: - - Xvfb :12 -screen 0 800x600x24 +extension RANDR & - - mkdir -p ~/.mujoco - - curl https://openai-public.s3-us-west-2.amazonaws.com/mujoco/$MUJOCO_KEY_BUNDLE.tar.gz | tar xz -C ~/.mujoco -env: - - DISPLAY=:12 +- curl $MUJOCO_FOR_LINUX | tar -xz ./mjkey.txt +- docker build -t image-under-test . -notifications: - slack: - secure: h/Mxm8K+avH/2W0818zCHmLloRPMFN4NJL01+VShvAkH80/acfjeq/+mMdWXXPL/oOB6kSHDk+GDhwR6+s03ZcPMn5INTFvFYqUc6UWmT+NXtOPxGTN0xda6MdYUkWQUKaMyjFrweZQOMOASFBIzPOq4XeVbM5aB8s4EJhnfAcYZhp/idwKbToVihN4KZgxlvZIFc8iEp1o9uSl5qrsaeYYYXRkb6mauacAwOo4/Chu+cOnoLUOnvhBFE3rV3doDNrbnoalO8XiExtgx5CIAYWrlMni7r2Q+LlzgwdyTH19ZtybPxJTZIIWSBQ2UtcoYdIEDcc36GcUwz1VUGg32mLJJnY2xw80CWR4ixFPpLwwP5Y99WTn8v094B4nmFTWOwNWXp3EkqtTN9XcJoRBqXB5ArucIPqrx57dOCljSKx22gL6WaF2p3stSAxIGFektGyGnisaELrFZG1C63aHoUPicj3gUlijmAoUmYaDRf6P1wnpXqBpKDAWWhAMSatvx1ekmEJgR7OQklQnnfjx9kENDUygNUWS4IQwN2qYieuzHFL3of7/30mTM43+Vt/vWN8GI7j01BXu6FNGGloHxjH1pt3bLP/+uj5BJsT2HWF+Z8XR4VE6cyVuKsQAFgCXwOkoDHALbcwsspONDIt/9ixkesgh1oFt4CzU3UuU5wYs= - on_success: change +script: +- docker run --rm image-under-test diff --git a/Dockerfile b/Dockerfile index 0c793288..1f3e14fa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,32 +1,53 @@ -FROM ubuntu:14.04 +# We need the CUDA base dockerfile to enable GPU rendering +# on hosts with GPUs. +FROM nvidia/cuda:8.0-devel-ubuntu16.04 -RUN apt-get update && apt-get install -y \ - python2.7 \ - python2.7-dev \ - python-pip \ - unzip \ - xorg-dev \ +RUN apt-get update -q \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + curl \ + git \ libgl1-mesa-dev \ - xvfb \ - libxinerama1 \ - libxcursor1 \ - libglu1-mesa \ - cmake \ - gfortran \ - libblas-dev \ - libatlas-dev \ - liblapack-dev \ - libjpeg62 \ - libjpeg62-dev \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -COPY requirements.txt /mujoco-py/requirements.txt -RUN pip install -r /mujoco-py/requirements.txt - -COPY . /mujoco-py - -ENV PYTHONPATH=/mujoco-py -WORKDIR /mujoco-py -ENTRYPOINT ["bin/docker-entrypoint.sh"] -CMD ["nosetests", "tests/"] + libgl1-mesa-glx \ + libosmesa6-dev \ + python3-pip \ + python3-numpy \ + python3-scipy \ + unzip \ + vim \ + wget \ + xpra \ + xserver-xorg-dev \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN curl -o /usr/local/bin/patchelf https://s3-us-west-2.amazonaws.com/openai-sci-artifacts/manual-builds/patchelf_0.9_amd64.elf \ + && chmod +x /usr/local/bin/patchelf + +ENV LANG C.UTF-8 + +RUN mkdir -p /root/.mujoco \ + && wget https://www.roboti.us/download/mjpro150_linux.zip -O mujoco.zip \ + && unzip mujoco.zip -d /root/.mujoco \ + && rm mujoco.zip +COPY ./mjkey.txt /root/.mujoco/ +ENV LD_LIBRARY_PATH /root/.mujoco/mjpro150/bin:$LD_LIBRARY_PATH + +COPY vendor/Xdummy /usr/local/bin/Xdummy +RUN chmod +x /usr/local/bin/Xdummy + +# Workaround for https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-375/+bug/1674677 +COPY ./vendor/10_nvidia.json /usr/share/glvnd/egl_vendor.d/10_nvidia.json + +WORKDIR /mujoco_py +# Copy over just requirements.txt at first. That way, the Docker cache doesn't +# expire until we actually change the requirements. +COPY ./requirements.txt /mujoco_py/ +COPY ./requirements.dev.txt /mujoco_py/ +RUN pip3 install -r requirements.txt +RUN pip3 install -r requirements.dev.txt + +# Delay moving in the entire code until the very end. +ENTRYPOINT ["/mujoco_py/vendor/Xdummy-entrypoint"] +CMD ["pytest"] +COPY . /mujoco_py +RUN python3 setup.py install diff --git a/LICENSE b/LICENSE.md similarity index 70% rename from LICENSE rename to LICENSE.md index 80127810..9214a4a7 100644 --- a/LICENSE +++ b/LICENSE.md @@ -1,6 +1,8 @@ +# mujoco-py + The MIT License -Copyright (c) 2016 OpenAI (http://openai.com) +Copyright (c) 2017 OpenAI (http://openai.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -19,3 +21,16 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +# Mujoco models +This work is derived from [MuJuCo models](http://www.mujoco.org/forum/index.php?resources/) used under the following license: +``` +This file is part of MuJoCo. +Copyright 2009-2015 Roboti LLC. +Mujoco :: Advanced physics simulation engine +Source : www.roboti.us +Version : 1.31 +Released : 23Apr16 +Author :: Vikash Kumar +Contacts : kumar@roboti.us +``` diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..9583199a --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,5 @@ +include requirements.txt +include requirements.dev.txt +recursive-include mujoco_py *.h *.py *.pyx *.pxd *.pxi *.xml *.c *.so +include mujoco_py/gl/*.c +include setup.py diff --git a/Makefile b/Makefile index 7d944e23..7bc74350 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,39 @@ +.PHONY: all clean build test mount_shell shell upload check-env + +MUJOCO_LICENSE_PATH ?= ~/.mujoco/mjkey.txt + +all: test + +clean: + rm -rf mujoco_py.egg-info + rm -rf */__pycache__ + rm -rf */*/__pycache__ + rm -rf mujoco_py/generated/_pyxbld* + rm -rf mujoco_py/generated_cymj* + rm -rf mujoco_py/cythonlock_*.pyc + rm -rf dist + rm -rf build + +build: check-license + cp $(MUJOCO_LICENSE_PATH) mjkey.txt + docker build -t mujoco_py . || rm mjkey.txt && rm mjkey.txt + +test: build + # run it interactive mode so we can abort with CTRL+C + docker run --rm -i mujoco_py pytest + +mount_shell: + docker run --rm -it -v `pwd`:/dev mujoco_py /bin/bash -c "pip uninstall -y mujoco_py; rm -rf /mujoco_py; (cd /dev; /bin/bash)" + +shell: + docker run --rm -it mujoco_py /bin/bash + upload: rm -rf dist python setup.py sdist twine upload dist/* -test: - nose2 +check-license: +ifeq ("","$(wildcard $(MUJOCO_LICENSE_PATH))") + $(error "License key not found at location $(MUJOCO_LICENSE_PATH). Use MUJOCO_LICENSE_PATH to specify its path") +endif diff --git a/README.md b/README.md index 196b52ed..126b30c3 100644 --- a/README.md +++ b/README.md @@ -1,48 +1,77 @@ -# MuJoCo Python Bindings +# mujoco-py [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat)](https://openai.github.io/pymj/build/html/index.html) [![Build Status](https://travis-ci.com/openai/pymj.svg?token=aA2GupFxnzsRTN56psRJ&branch=master)](https://travis-ci.com/openai/pymj) [![Build status](https://ci.appveyor.com/api/projects/status/dsg86qpalv9bi568?svg=true)](https://ci.appveyor.com/project/wojzaremba/pymj) -[![Build Status](https://travis-ci.org/openai/mujoco-py.svg?branch=master)](https://travis-ci.org/openai/mujoco-py) +[MuJoCo](http://mujoco.org/) is a physics engine for detailed, efficient rigid body simulations with contacts. `mujoco-py` allows using MuJoCo from Python. -MuJoCo is a physics engine which can do very detailed efficient -simulations with contacts. This library lets you use MuJoCo from -Python. +## Synopsis -Note that MuJoCo tends to change significantly between versions, so -this library is likely to stay pinned to 1.31 for the near future. +### Install MuJoCo -# Installing this library - -You can install this library using: +1. Obtain a 30-day free trial on the [MuJoCo website](https://www.roboti.us/license.html) + or free license if you are a student. + The license key will arrive in an email with your username and password. +2. Download the MuJoCo version 1.50 binaries for + [Linux](https://www.roboti.us/active/mjpro150_linux.zip), + [OSX](https://www.roboti.us/active/mjpro150_osx.zip), or + [Windows](https://www.roboti.us/active/mjpro150_windows.zip). +3. Unzip the downloaded `mjpro150` directory into `~/.mujoco/mjpro150`, + and place your license key (the `mjkey.txt` file from your email) + at `~/.mujoco/mjkey.txt`. +### Install and use `mujoco-py` +To include `mujoco-py` in another package, add it to your requirements like so: +``` +mujoco-py<1.50.2,>=1.50.1 ``` -pip install mujoco-py +To play with it interactively, follow these steps: ``` +$ pip install -U 'mujoco-py<1.50.2,>=1.50.1' +$ python +import mujoco_py +from os.path import dirname +model = mujoco_py.load_model_from_path(dirname(dirname(mujoco_py.__file__)) +"/xmls/claw.xml") +sim = mujoco_py.MjSim(model) -MuJoCo isn't open-source, so you'll also need to set download the -MuJoCo binaries and obtain license key. +print(sim.data.qpos) +# [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] -## Obtaining the binaries and license key +sim.step() +print(sim.data.qpos) +# [ 2.09217903e-06 -1.82329050e-12 -1.16711384e-07 -4.69613872e-11 +# -1.43931860e-05 4.73350204e-10 -3.23749942e-05 -1.19854057e-13 +# -2.39251380e-08 -4.46750545e-07 1.78771599e-09 -1.04232280e-08] +``` -1. Obtain a 30-day free trial on the MuJoCo website: - https://www.roboti.us/license.html. The license key will arrive in - an email with your username and password. -2. Download the MuJoCo version 1.31 binaries for - [Linux](https://www.roboti.us/active/mjpro131_linux.zip), - [OSX](https://www.roboti.us/active/mjpro131_osx.zip), or - [Windows](https://www.roboti.us/active/mjpro131_windows.zip). -3. Download your license key (the `mjkey.txt` file from your email) - and unzip the downloaded mjpro bundle. -4. Place these in `~/.mujoco/mjkey.txt` and `~/.mujoco/mjpro131`. You - can alternatively set the following environment variables: +See the [full documentation](https://openai.github.io/pymj/build/html/index.html) for advanced usage. -``` -export MUJOCO_PY_MJKEY_PATH=/path/to/mjkey.txt -export MUJOCO_PY_MJPRO_PATH=/path/to/mjpro131 -``` +## Usage Examples -## Testing +A number of examples demonstrating some advanced features of `mujoco-py` can be found in [`examples/`](/./examples/). These include: +- [`body_interaction.py`](./examples/body_interaction.py): shows interactions between colliding bodies +- [`disco_fetch.py`](./examples/disco_fetch.py): shows how `TextureModder` can be used to randomize object textures +- [`internal_functions.py`](./examples/internal_functions.py): shows how to call raw mujoco functions like `mjv_room2model` +- [`markers_demo.py`](./examples/markers_demo.py): shows how to add visualization-only geoms to the viewer +- [`serialize_model.py`](./examples/serialize_model.py): shows how to save and restore a model +- [`setting_state.py`](./examples/setting_state.py): shows how to reset the simulation to a given state +- [`simpool.py`](./examples/simpool.py): shows how `MjSimPool` can be used to run a number of simulations in parallel +- [`tosser.py`](./examples/tosser.py): shows a simple actuated object sorting robot application -Run: +See the [full documentation](https://openai.github.io/pymj/build/html/index.html) for advanced usage. + +## Development + +To run the provided unit and integrations tests: ``` make test ``` + +## Credits + +`mujoco-py` is maintained by the OpenAI Robotics team. Contributors include: + +- Alex Ray +- Bob McGrew +- Jonas Schneider +- Jonathan Ho +- Peter Welinder +- Wojciech Zaremba diff --git a/tests/__init__.py b/docs/.nojekyll similarity index 100% rename from tests/__init__.py rename to docs/.nojekyll diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..35ea94ba --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,13 @@ +SPHINXOPTS = +SPHINXBUILD = python -msphinx +SPHINXPROJ = mujoco-py +SOURCEDIR = . +BUILDDIR = build + +.PHONY: all clean + +all: + @$(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +clean: + @$(SPHINXBUILD) -M clean "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_static/.gitkeep b/docs/_static/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/docs/_templates/.gitkeep b/docs/_templates/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/docs/build/doctrees/environment.pickle b/docs/build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..bc0bf7884297ac2f21b0218168a6a158d3e11cff GIT binary patch literal 43611 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 literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/internals.doctree b/docs/build/doctrees/internals.doctree new file mode 100644 index 0000000000000000000000000000000000000000..981a6e7875a343dff4e1b22d7196e25630c113db GIT binary patch literal 11274 zcmeHN&2L>t6}KIKJ;!#Ov~klmfl&a}PM!ChwzS1*E0WUED2=Jwlvb*u`{vy{&-Xsx zuiOvYPpGIYkWw@Y5SK5B1!V!O5n{!X1%Ci5mR+-8$qM+LxnJ|1?fAKE5J;`$#=bLi z=FB<2^D$@62a`Yf_mgAlKe=cHW|}x|-1GxW#F?C>51#Oo?8n*a_pe#6OfJU#I1yg?wPtD>vx!U0nTds&IDuac+7H=h zbKddW3E7DFZXBeMDKa^h$?5X<_14=l7;p6gpT{i|=Whj}@VV0p`(CdFLBy@ zMf;-7?$8+~Z;L$=xjyatnUX)w@MZfk`*HjHraf+-u)naGcDS75NfJ4olq5-7nYGf8 z7*cYbFS(-KBq)7?SO-6=wVCLYR9(3_Niu*8MP`mvV!?Z zFu$RgZ_@TtpyycGfY$AG9PJtWJcXZU@$-DW-?Ff2oti?!n5M&rtNF8BU!p{y1UG}d zAC`}Zy%35wu(N>hO<@_Gz5yoQ&+O~=3o$XbVt=Uu!ZJ>?eC=TD7Kb9jxkgqGomy+< z&3#(gcc$TEkI4pb%eP=Nwhj>R_U^^;v9a5>U@!L*JMdYYM5&on=EVSaR$E=C&)V(S zjGQouTlj30X4nk-?RJyh4w&P*DTu&GnH}u11fe(YExVw@#G zpS@h{oMJ!jTWXydM3IQYz_%QKOXH$o)wD#HDabY1YtRLVa-!nEF<8tBc73)3LxYL3 zpbNge-Zyx{+ikY%BsNVoxyvKw39mzJU{lV*K$#v};ZelZ7t^+5=U0pqxCm+9$yfZM)1Lr5+AjOp-S3ZT+l9MU zE^?uOhS6~Yb6W=p`IcK0BFPd8%Qf<&vG2?={0B5MUtCqcd%a{c^)9iyVGv(stkq&G z{#~}muB^_z&+=7QOFw%O(E4cstGQcOwot#n9Oh&Ok&vqKY28 zQZ)(U`N9W~$2r1t6b=c~EK%F`Qfb>Tg0B%Vg~Q{L)3p7&VLQK%=}{D>zx zV`H_KV{i0tDHpa9bb1Ius~bwKYC^8QODs$x{o^eh(7nVAkN&L({IKa;%EK{(&@fjI z?F5d+j94Tqv2eR<1uj6Cel5r;YQ^pZGMd@M&g?}NDoWMId}DmC8K}o-XAG$r0@M;X zjVsnl*rWk$M?5$EyQ?{OUk@XsNm0^QI}qS~p?F-~V3A1D2(hc+qv?xcjW3!w3LNY3 zqBUh1dswS20yBGuZALsDv|S-TrG!#H>>UK!LRFPw4w2vB!T>CkR903M(?L^dgXB*F z$v+kc4oY)9Q=9AOp!pm$?EavsJ@6lo^1$|Q?BABj`hdHA_Z8%g?RE)PWK~YACwqBf z#=1eokT3@^WpLz5Qy)2>+owNorMaQrBxLL%c;c zhQpM3pod(Rbp#9PVq@VqlVd-1lGx^y)nztUYh5Gwx6!0FNiflt9mU5<%03H7=}gQNUo}#HAB}_7 zF_Ee5a1^s6r^^2tjn$>%@>JQvF?g9R?M9c{B$-l8q_+eQG#V=l1Ljwgu#b|-!hosj z%rq(!uF3W2EQUvEzdKI|A#O83swdW!aPWKJkLXD{no9tEP=D8QTVht30k;jATj!l>9EfK9@ zcXI70_{4cwfKTOgZ4bE<5mAgFTT_?uJaGev5E0-vhgfS?u9Z9)Jbj+dMnc^Zuw6;G zxX|O|4mRyND5x>vs_0R$gStT;8c;2ntKD2NJo5dvcYS1Nu4}iakq~oirjHZQdbdYr z{Mk*z$g;-QMRIz}E|TpQ|2Pg8fn3j=Iw!u~@c>_a?oJ}f_lHvcrTHpBn6sE!cB(NGvD zWXWHvGKb^SI~LQcPh?tJ?WZhJ^1MEyu2}0urO82wldfFr?8O(^dR6q<3{dT%qEb-@ zqcYNa8+TX-rIZ(Pdhc!I3-7$dxSCp&PrwL|Ro<}DSuIN`>vbvR|AOt>X8(E+oQ5i@ zhu-JqwYMD4q4$u|Vv#H%jR|0aNM`66R=ow`l{L_wVvxK=;%@3h!m1LSua?$@I_hUY zwLaj-2N>khCDp-HxeXdOg$OC1^c?ljgcO(jOyJ|bj&eba8#>%dam~kN|KNvbb%BQW zab3J}_(UMgY*eJpB+>SA-{=X6ji9C;tQm##G|U6 zkPqF@mGZy&xz=bdgaRbsiV!nDI8aV`n2h2I2+x&3SfOX7|9PovKJOm~AWciY^I_Sj z^rVOHDWyA&*gp@l%LA)2=MK}iM(se>#^gzq$2+*z@We5-C!$`#>O{K@9(!|mP$*t? z=u2%{^E9A64^}Vhc*nnzl~3vte?67)ftPhvPWsg$a76laG$2*c=s`oWKI%aNJTji` zpD^5!a=C;*+5iL<+g9uuyCJGp0{Q5HjRUHi1FZuMv<^U&Rky(=Z0D3xRqek{qZrt_ zkq6P@O%T;n^s!u~S8r55=@uHKxZnC#@d>tAJXpg7kG-}Q+La-E=p7VVWij{0a+2aj zCTHHc_U7h|&2K9FR1Glpg|eUJIqJXYErav`q@dqs#c`HfYib8Uw78L6CnCU%9?9bY-L(JDxxnMd8>;yDaI|^vb zSpsDe^$k5l4-YjB<LvWEm(; zb)CHoAi4l64b#Lx|4=~9Ery7qATn%(X%{ent-zp7tUgnnh`Ogp4{>&L98GH?tUHjX z?`^@rwW#ZC8C}N(i+3`4)^r2DZ6G8#uE8yIimBeLdvY#^mXSs-EyO_`zZ)2Pgh3+S zKvp7vYA?j_sUc1?Ih7{e%g<+WKK9^xjJv67tGg$sa|W>HBs$-4G>&*=5yAPWYZ@Jn zE<4&%p0|@Ej5k`XBnZ#}=!m4-45F=;op^35lMB>W=i@E7V(7Hkb6^m#*)%R?JtZGk ztv*Ik%Zm+ien#1WhI8e^^@sD0e;<+eeh9RpFERB(L$v@E{e)AN=%iaX)J$oS@Lx-L z*>7NC0~Tir(o%L0Hi|RAPE|`@agYz?Vy@*<=@8}Hw_hbuE~srQ@NHrP^dwP}Vjs%1 z1^VMYl#QYdDv*75@_8+dqjdg8wu|~2v%ZeH)rK3!*XKMK!FRaStS32PPGz; za)Mgt7D+jk0TYx?DQ?18q!v)&5l9vbVFn((y3wS0_+R*9zx0{&gveUQtkm)D?k+M^ zdel=ow!}^gGh^sk(S+CDabhP?hdLqr9gv>0xm(%PlzkDpOacN>X#jExOhkQ<7*r{& zOkwkK?7-sA5=UeWggOJ=oS_R`Qy+;4FMnnI8JvAt4I}kNIf24KiP?K{!Nn6}iiS{# z&%&Y!v{}lNh2fAHl2CSeVOJc3vCvDO+h^7fbyCq)bcR=S;r01!3Z4gfOk tP$(h~rb17n^fh?|8Hi>@kQ+y67*|=zx%%RzMfPF;j99CaA;M{=`5!C_+;so| literal 0 HcmV?d00001 diff --git a/docs/build/doctrees/reference.doctree b/docs/build/doctrees/reference.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4abf290e8395bc17024ef624a08d8ad640d1399c GIT binary patch literal 180811 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 Ro{LuAh&)`4DozEe{sY&rW_$nu literal 0 HcmV?d00001 diff --git a/docs/build/html/.buildinfo b/docs/build/html/.buildinfo new file mode 100644 index 00000000..847bd706 --- /dev/null +++ b/docs/build/html/.buildinfo @@ -0,0 +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: 796e1527cf38c16076806cf6da80d531 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/build/html/_modules/index.html b/docs/build/html/_modules/index.html new file mode 100644 index 00000000..bb34b876 --- /dev/null +++ b/docs/build/html/_modules/index.html @@ -0,0 +1,223 @@ + + + + + + + + + + + Overview: module code — mujoco-py 1.50.0.14 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Overview: module code
  • + + +
  • + + + +
  • + +
+ + +
+
+
+
+ +

All modules for which code is available

+ + +
+
+ +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/_modules/mujoco_py/builder.html b/docs/build/html/_modules/mujoco_py/builder.html new file mode 100644 index 00000000..19376398 --- /dev/null +++ b/docs/build/html/_modules/mujoco_py/builder.html @@ -0,0 +1,522 @@ + + + + + + + + + + + mujoco_py.builder — mujoco-py 1.50.0.14 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for mujoco_py.builder

+import distutils
+import imp
+import os
+import shutil
+import subprocess
+import sys
+from distutils.core import Extension
+from distutils.dist import Distribution
+from distutils.sysconfig import customize_compiler
+from os.path import abspath, dirname, exists, join, getmtime
+
+import numpy as np
+from Cython.Build import cythonize
+from Cython.Distutils.old_build_ext import old_build_ext as build_ext
+
+from mujoco_py.utils import discover_mujoco
+
+
+def load_cython_ext(mjpro_path):
+    """
+    Loads the cymj Cython extension. This is safe to be called from
+    multiple processes running on the same machine.
+
+    Cython only gives us back the raw path, regardless of whether
+    it found a cached version or actually compiled. Since we do
+    non-idempotent postprocessing of the DLL, be extra careful
+    to only do that once and then atomically move to the final
+    location.
+    """
+    if ('glfw' in sys.modules and
+            'mujoco' in abspath(sys.modules["glfw"].__file__)):
+        print('''
+WARNING: Existing glfw python module detected!
+
+MuJoCo comes with its own version of GLFW, so it's preferable to use that one.
+
+The easy solution is to `import mujoco_py` _before_ `import glfw`.
+''')
+
+    if sys.platform == 'darwin':
+        Builder = MacExtensionBuilder
+    elif sys.platform == 'linux':
+        if exists('/usr/local/nvidia/lib64'):
+            Builder = LinuxGPUExtensionBuilder
+        else:
+            Builder = LinuxCPUExtensionBuilder
+    elif sys.platform.startswith("win"):
+        Builder = WindowsExtensionBuilder
+    else:
+        raise RuntimeError("Unsupported platform %s" % sys.platform)
+
+    builder = Builder(mjpro_path)
+
+    cext_so_path = builder.build()
+    mod = imp.load_dynamic("cymj", cext_so_path)
+    return mod
+
+
+class custom_build_ext(build_ext):
+    """
+    Custom build_ext to suppress the "-Wstrict-prototypes" warning.
+    It arises from the fact that we're using C++. This seems to be
+    the cleanest way to get rid of the extra flag.
+
+    See http://stackoverflow.com/a/36293331/248400
+    """
+
+    def build_extensions(self):
+        customize_compiler(self.compiler)
+
+        try:
+            self.compiler.compiler_so.remove("-Wstrict-prototypes")
+        except (AttributeError, ValueError):
+            pass
+        build_ext.build_extensions(self)
+
+
+def fix_shared_library(so_file, name, library_path):
+    ldd_output = subprocess.check_output(
+        ['ldd', so_file]).decode('utf-8')
+
+    if name in ldd_output:
+        subprocess.check_call(['patchelf',
+                               '--remove-needed',
+                               name,
+                               so_file])
+    subprocess.check_call(
+        ['patchelf', '--add-needed',
+         library_path,
+         so_file])
+
+
+class MujocoExtensionBuilder():
+
+    CYMJ_DIR_PATH = abspath(dirname(__file__))
+
+    def __init__(self, mjpro_path):
+        self.mjpro_path = mjpro_path
+        self.extension = Extension(
+            'mujoco_py.cymj',
+            sources=[join(self.CYMJ_DIR_PATH, "cymj.pyx")],
+            include_dirs=[
+                self.CYMJ_DIR_PATH,
+                join(mjpro_path, 'include'),
+                np.get_include(),
+            ],
+            libraries=['mujoco150'],
+            library_dirs=[join(mjpro_path, 'bin')],
+            extra_compile_args=[
+                '-fopenmp',  # needed for OpenMP
+                '-w',  # suppress numpy compilation warnings
+            ],
+            extra_link_args=['-fopenmp'],
+            language='c')
+
+    def build(self):
+        dist = Distribution({
+            "script_name": None,
+            "script_args": ["build_ext"]
+        })
+        dist.ext_modules = cythonize([self.extension])
+        dist.include_dirs = []
+        dist.cmdclass = {'build_ext': custom_build_ext}
+        build = dist.get_command_obj('build')
+        # following the convention of cython's pyxbuild and naming
+        # base directory "_pyxbld"
+        build.build_base = join(self.CYMJ_DIR_PATH, 'generated',
+                                '_pyxbld_%s' % self.__class__.__name__)
+        dist.parse_command_line()
+        obj_build_ext = dist.get_command_obj("build_ext")
+        dist.run_commands()
+        so_file_path, = obj_build_ext.get_outputs()
+        return so_file_path
+
+
+class WindowsExtensionBuilder(MujocoExtensionBuilder):
+
+    def __init__(self, mjpro_path):
+        super().__init__(mjpro_path)
+        os.environ["PATH"] += ";" + join(mjpro_path, "bin")
+        self.extension.sources.append(self.CYMJ_DIR_PATH + "/gl/dummyshim.c")
+
+
+class LinuxCPUExtensionBuilder(MujocoExtensionBuilder):
+
+    def __init__(self, mjpro_path):
+        super().__init__(mjpro_path)
+
+        self.extension.sources.append(
+            join(self.CYMJ_DIR_PATH, "gl", "osmesashim.c"))
+        self.extension.libraries.extend(['glewosmesa', 'OSMesa'])
+        self.extension.runtime_library_dirs = [join(mjpro_path, 'bin')]
+
+
+class LinuxGPUExtensionBuilder(MujocoExtensionBuilder):
+
+    def __init__(self, mjpro_path):
+        super().__init__(mjpro_path)
+
+        self.extension.sources.append(self.CYMJ_DIR_PATH + "/gl/eglshim.c")
+        self.extension.include_dirs.append(self.CYMJ_DIR_PATH + '/vendor/egl')
+        self.extension.libraries.extend(['glewegl'])
+        self.extension.runtime_library_dirs = [join(mjpro_path, 'bin')]
+
+    def build(self):
+        so_file_path = super().build()
+        nvidia_lib_dir = '/usr/local/nvidia/lib64/'
+        fix_shared_library(so_file_path, 'libOpenGL.so',
+                           join(nvidia_lib_dir, 'libOpenGL.so.0'))
+        fix_shared_library(so_file_path, 'libEGL.so',
+                           join(nvidia_lib_dir, 'libEGL.so.1'))
+        return so_file_path
+
+
+class MacExtensionBuilder(MujocoExtensionBuilder):
+
+    def __init__(self, mjpro_path):
+        super().__init__(mjpro_path)
+
+        self.extension.sources.append(self.CYMJ_DIR_PATH + "/gl/dummyshim.c")
+        self.extension.libraries.extend(['glfw.3'])
+        self.extension.define_macros = [('ONMAC', None)]
+        self.extension.runtime_library_dirs = [join(mjpro_path, 'bin')]
+
+    def build(self):
+        # Prefer GCC 6 for now since GCC 7 may behave differently.
+        c_compilers = ['/usr/local/bin/gcc-6', '/usr/local/bin/gcc-7']
+        available_c_compiler = None
+        for c_compiler in c_compilers:
+            if distutils.spawn.find_executable(c_compiler) is not None:
+                available_c_compiler = c_compiler
+                break
+        if available_c_compiler is None:
+            raise RuntimeError(
+                'Could not find GCC 6 or GCC 7 executable.\n\n'
+                'HINT: On OS X, install GCC 6 with '
+                '`brew install gcc --without-multilib`.')
+        os.environ['CC'] = available_c_compiler
+
+        so_file_path = super().build()
+        del os.environ['CC']
+        return self.manually_link_libraries(so_file_path)
+
+    def manually_link_libraries(self, raw_cext_dll_path):
+        root, ext = os.path.splitext(raw_cext_dll_path)
+        final_cext_dll_path = root + '_final' + ext
+
+        # If someone else already built the final DLL, don't bother
+        # recreating it here, even though this should still be idempotent.
+        if (exists(final_cext_dll_path) and
+                getmtime(final_cext_dll_path) >= getmtime(raw_cext_dll_path)):
+            return final_cext_dll_path
+
+        tmp_final_cext_dll_path = final_cext_dll_path + '~'
+        shutil.copyfile(raw_cext_dll_path, tmp_final_cext_dll_path)
+
+        mj_bin_path = join(self.mjpro_path, 'bin')
+
+        # Fix the rpath of the generated library -- i lost the Stackoverflow
+        # reference here
+        from_mujoco_path = '@executable_path/libmujoco150.dylib'
+        to_mujoco_path = '%s/libmujoco150.dylib' % mj_bin_path
+        subprocess.check_call(['install_name_tool',
+                               '-change',
+                               from_mujoco_path,
+                               to_mujoco_path,
+                               tmp_final_cext_dll_path])
+
+        from_glfw_path = 'libglfw.3.dylib'
+        to_glfw_path = os.path.join(mj_bin_path, 'libglfw.3.dylib')
+        subprocess.check_call(['install_name_tool',
+                               '-change',
+                               from_glfw_path,
+                               to_glfw_path,
+                               tmp_final_cext_dll_path])
+
+        os.rename(tmp_final_cext_dll_path, final_cext_dll_path)
+        return final_cext_dll_path
+
+
+class MujocoException(Exception):
+    pass
+
+
+def user_warning_raise_exception(warn_bytes):
+    '''
+    User-defined warning callback, which is called by mujoco on warnings.
+    Here we have two primary jobs:
+        - Detect known warnings and suggest fixes (with code)
+        - Decide whether to raise an Exception and raise if needed
+    More cases should be added as we find new failures.
+    '''
+    # TODO: look through test output to see MuJoCo warnings to catch
+    # and recommend. Also fix those tests
+    warn = warn_bytes.decode()  # Convert bytes to string
+    if 'Pre-allocated constraint buffer is full' in warn:
+        raise MujocoException(warn + 'Increase njmax in mujoco XML')
+    if 'Pre-allocated contact buffer is full' in warn:
+        raise MujocoException(warn + 'Increase njconmax in mujoco XML')
+    raise MujocoException('Got MuJoCo Warning: {}'.format(warn))
+
+
+def user_warning_ignore_exception(warn_bytes):
+    pass
+
+
+
[docs]class ignore_mujoco_warnings: + """ + Class to turn off mujoco warning exceptions within a scope. Useful for + large, vectorized rollouts. + """ + + def __enter__(self): + self.prev_user_warning = cymj.get_warning_callback() + cymj.set_warning_callback(user_warning_ignore_exception) + return self + + def __exit__(self, type, value, traceback): + cymj.set_warning_callback(self.prev_user_warning)
+ + +mjpro_path, key_path = discover_mujoco() +cymj = load_cython_ext(mjpro_path) + + +# Trick to expose all mj* functions from mujoco in mujoco_py.* +class dict2(object): + pass + + +functions = dict2() +for func_name in dir(cymj): + if func_name.startswith("_mj"): + setattr(functions, func_name[1:], getattr(cymj, func_name)) + +functions.mj_activate(key_path) + +# Set user-defined callbacks that raise assertion with message +cymj.set_warning_callback(user_warning_raise_exception) +
+ +
+
+ +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/_modules/mujoco_py/mjviewer.html b/docs/build/html/_modules/mujoco_py/mjviewer.html new file mode 100644 index 00000000..d1338427 --- /dev/null +++ b/docs/build/html/_modules/mujoco_py/mjviewer.html @@ -0,0 +1,580 @@ + + + + + + + + + + + mujoco_py.mjviewer — mujoco-py 1.50.0.14 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for mujoco_py.mjviewer

+from threading import Lock
+import glfw
+from mujoco_py.builder import cymj
+from mujoco_py.generated import const
+import time
+import copy
+from multiprocessing import Process
+from mujoco_py.utils import rec_copy, rec_assign
+import imageio
+
+
+
[docs]class MjViewerBasic(cymj.MjRenderContextWindow): + """ + A simple display GUI showing the scene of an :class:`.MjSim` with a mouse-movable camera. + + :class:`.MjViewer` extends this class to provide more sophisticated playback and interaction controls. + + Parameters + ---------- + sim : :class:`.MjSim` + The simulator to display. + """ + + def __init__(self, sim): + super().__init__(sim) + + self._gui_lock = Lock() + self._button_left_pressed = False + self._button_right_pressed = False + self._last_mouse_x = 0 + self._last_mouse_y = 0 + + framebuffer_width, _ = glfw.get_framebuffer_size(self.window) + window_width, _ = glfw.get_window_size(self.window) + self._scale = framebuffer_width * 1.0 / window_width + + glfw.set_cursor_pos_callback(self.window, self._cursor_pos_callback) + glfw.set_mouse_button_callback( + self.window, self._mouse_button_callback) + glfw.set_scroll_callback(self.window, self._scroll_callback) + glfw.set_key_callback(self.window, self.key_callback) + + def render(self): + """ + Render the current simulation state to the screen or off-screen buffer. + """ + if self.window is None: + return + elif glfw.window_should_close(self.window): + exit(0) + + with self._gui_lock: + super().render() + + glfw.poll_events() + + def key_callback(self, window, key, scancode, action, mods): + if action == glfw.RELEASE and key == glfw.KEY_ESCAPE: + print("Pressed ESC") + print("Quitting.") + exit(0) + + def _cursor_pos_callback(self, window, xpos, ypos): + if not (self._button_left_pressed or self._button_right_pressed): + return + + # Determine whether to move, zoom or rotate view + mod_shift = ( + glfw.get_key(window, glfw.KEY_LEFT_SHIFT) == glfw.PRESS or + glfw.get_key(window, glfw.KEY_RIGHT_SHIFT) == glfw.PRESS) + if self._button_right_pressed: + action = const.MOUSE_MOVE_H if mod_shift else const.MOUSE_MOVE_V + elif self._button_left_pressed: + action = const.MOUSE_ROTATE_H if mod_shift else const.MOUSE_ROTATE_V + else: + action = const.MOUSE_ZOOM + + # Determine + dx = int(self._scale * xpos) - self._last_mouse_x + dy = int(self._scale * ypos) - self._last_mouse_y + width, height = glfw.get_framebuffer_size(window) + + with self._gui_lock: + self.move_camera(action, dx / height, dy / height) + + self._last_mouse_x = int(self._scale * xpos) + self._last_mouse_y = int(self._scale * ypos) + + def _mouse_button_callback(self, window, button, act, mods): + self._button_left_pressed = ( + glfw.get_mouse_button(window, glfw.MOUSE_BUTTON_LEFT) == glfw.PRESS) + self._button_right_pressed = ( + glfw.get_mouse_button(window, glfw.MOUSE_BUTTON_RIGHT) == glfw.PRESS) + + x, y = glfw.get_cursor_pos(window) + self._last_mouse_x = int(self._scale * x) + self._last_mouse_y = int(self._scale * y) + + def _scroll_callback(self, window, x_offset, y_offset): + with self._gui_lock: + self.move_camera(const.MOUSE_ZOOM, 0, -0.05 * y_offset)
+ + +
[docs]class MjViewer(MjViewerBasic): + """ + Extends :class:`.MjViewerBasic` to add video recording, interactive time and interaction controls. + + The key bindings are as follows: + + - TAB: Switch between MuJoCo cameras. + - H: Toggle hiding all GUI components. + - SPACE: Pause/unpause the simulation. + - RIGHT: Advance simulation by one step. + - V: Start/stop video recording. + - T: Capture screenshot. + - I: Drop into ``ipdb`` debugger. + - S/F: Decrease/Increase simulation playback speed. + - C: Toggle visualization of contact forces (off by default). + - D: Enable/disable frame skipping when rendering lags behind real time. + - R: Toggle transparency of geoms. + - M: Toggle display of mocap bodies. + + Parameters + ---------- + sim : :class:`.MjSim` + The simulator to display. + """ + + def __init__(self, sim): + super().__init__(sim) + + self._ncam = sim.model.ncam + self._paused = False # is viewer paused. + # should we advance viewer just by one step. + self._advance_by_one_step = False + + # Vars for recording video + self._record_video = False + self._video_frames = [] + self._video_idx = 0 + self._video_path = "/tmp/video_%07d.mp4" + + # vars for capturing screen + self._image_idx = 0 + self._image_path = "/tmp/frame_%07d.png" + + # run_speed = x1, means running real time, x2 means fast-forward times + # two. + self._run_speed = 1.0 + self._loop_count = 0 + self._render_every_frame = False + + self._show_mocap = True # Show / hide mocap bodies. + self._transparent = False # Make everything transparent. + + # this variable is estamated as a running average. + self._time_per_render = 1 / 60.0 + self._hide_overlay = False # hide the entire overlay. + self._user_overlay = {} + + def render(self): + def render_inner_loop(self): + render_start = time.time() + + self._overlay.clear() + if not self._hide_overlay: + for k, v in self._user_overlay.items(): + self._overlay[k] = v + self._create_full_overlay() + + super().render() + if self._record_video: + frame = self._read_pixels_as_in_window() + self._video_frames.append(frame) + else: + self._time_per_render = 0.9 * self._time_per_render + \ + 0.1 * (time.time() - render_start) + + self._user_overlay = copy.deepcopy(self._overlay) + # Render the same frame if paused. + if self._paused: + while self._paused: + render_inner_loop(self) + if self._advance_by_one_step: + self._advance_by_one_step = False + break + else: + # inner_loop runs "_loop_count" times in expectation (where "_loop_count" is a float). + # Therefore, frames are displayed in the real-time. + self._loop_count += self.sim.model.opt.timestep * self.sim.nsubsteps / \ + (self._time_per_render * self._run_speed) + if self._render_every_frame: + self._loop_count = 1 + while self._loop_count > 0: + render_inner_loop(self) + self._loop_count -= 1 + # Markers and overlay are regenerated in every pass. + self._markers[:] = [] + self._overlay.clear() + + def _read_pixels_as_in_window(self): + # Reads pixels with markers and overlay from the same camera as screen. + resolution = glfw.get_framebuffer_size( + self.sim._render_context_window.window) + if self.sim._render_context_offscreen is None: + self.sim.render(*resolution) + offscreen_ctx = self.sim._render_context_offscreen + window_ctx = self.sim._render_context_window + # Save markers and overlay from offscreen. + saved = [copy.deepcopy(offscreen_ctx._markers), + copy.deepcopy(offscreen_ctx._overlay), + rec_copy(offscreen_ctx.cam)] + # Copy markers and overlay from window. + offscreen_ctx._markers[:] = window_ctx._markers[:] + offscreen_ctx._overlay.clear() + offscreen_ctx._overlay.update(window_ctx._overlay) + rec_assign(offscreen_ctx.cam, rec_copy(window_ctx.cam)) + + img = self.sim.render(*resolution) + # Restore markers and overlay to offscreen. + offscreen_ctx._markers[:] = saved[0][:] + offscreen_ctx._overlay.clear() + offscreen_ctx._overlay.update(saved[1]) + rec_assign(offscreen_ctx.cam, saved[2]) + return img + + def _create_full_overlay(self): + if self._render_every_frame: + self.add_overlay(const.GRID_TOPLEFT, "", "") + else: + self.add_overlay(const.GRID_TOPLEFT, "Run speed = %.3f x real time" % + self._run_speed, "[S]lower, [F]aster") + self.add_overlay( + const.GRID_TOPLEFT, "Ren[d]er every frame", "Off" if self._render_every_frame else "On") + self.add_overlay(const.GRID_TOPLEFT, "Switch camera (#cams = %d)" % (self._ncam + 1), + "[Tab] (camera ID = %d)" % self.cam.fixedcamid) + self.add_overlay(const.GRID_TOPLEFT, "[C]ontact forces", "Off" if self.vopt.flags[ + 10] == 1 else "On") + self.add_overlay( + const.GRID_TOPLEFT, "Referenc[e] frames", "Off" if self.vopt.frame == 1 else "On") + self.add_overlay(const.GRID_TOPLEFT, + "T[r]ansparent", "On" if self._transparent else "Off") + self.add_overlay( + const.GRID_TOPLEFT, "Display [M]ocap bodies", "On" if self._show_mocap else "Off") + if self._paused is not None: + if not self._paused: + self.add_overlay(const.GRID_TOPLEFT, "Stop", "[Space]") + else: + self.add_overlay(const.GRID_TOPLEFT, "Start", "[Space]") + self.add_overlay(const.GRID_TOPLEFT, + "Advance simulation by one step", "[right arrow]") + self.add_overlay(const.GRID_TOPLEFT, "[H]ide Menu", "") + if self._record_video: + ndots = int(7 * (time.time() % 1)) + dots = ("." * ndots) + (" " * (6 - ndots)) + self.add_overlay(const.GRID_TOPLEFT, + "Record [V]ideo (On) " + dots, "") + else: + self.add_overlay(const.GRID_TOPLEFT, "Record [V]ideo (Off) ", "") + if self._video_idx > 0: + fname = self._video_path % (self._video_idx - 1) + self.add_overlay(const.GRID_TOPLEFT, " saved as %s" % fname, "") + + self.add_overlay(const.GRID_TOPLEFT, "Cap[t]ure frame", "") + if self._image_idx > 0: + fname = self._image_path % (self._image_idx - 1) + self.add_overlay(const.GRID_TOPLEFT, " saved as %s" % fname, "") + self.add_overlay(const.GRID_TOPLEFT, "Start [i]pdb", "") + if self._record_video: + extra = " (while video is not recorded)" + else: + extra = "" + self.add_overlay(const.GRID_BOTTOMLEFT, "FPS", "%d%s" % + (1 / self._time_per_render, extra)) + self.add_overlay(const.GRID_BOTTOMLEFT, "Solver iterations", str( + self.sim.data.solver_iter + 1)) + + def key_callback(self, window, key, scancode, action, mods): + if action != glfw.RELEASE: + return + elif key == glfw.KEY_TAB: # Switches cameras. + self.cam.fixedcamid += 1 + self.cam.type = const.CAMERA_FIXED + if self.cam.fixedcamid >= self._ncam: + self.cam.fixedcamid = -1 + self.cam.type = const.CAMERA_FREE + elif key == glfw.KEY_H: # hides all overlay. + self._hide_overlay = not self._hide_overlay + elif key == glfw.KEY_SPACE and self._paused is not None: # stops simulation. + self._paused = not self._paused + # Advances simulation by one step. + elif key == glfw.KEY_RIGHT and self._paused is not None: + self._advance_by_one_step = True + self._paused = True + elif key == glfw.KEY_V or \ + (key == glfw.KEY_ESCAPE and self._record_video): # Records video. Trigers with V or if in progress by ESC. + self._record_video = not self._record_video + if not self._record_video and len(self._video_frames) > 0: + # This include captures console, if in the top declaration. + frames = [f for f in self._video_frames] + fps = (1 / self._time_per_render) + process = Process(target=save_video, + args=(frames, self._video_path % self._video_idx, fps)) + process.start() + self._video_frames = [] + self._video_idx += 1 + elif key == glfw.KEY_T: # capture screenshot + img = self._read_pixels_as_in_window() + imageio.imwrite(self._image_path % self._image_idx, img) + self._image_idx += 1 + elif key == glfw.KEY_I: # drops in debugger. + print('You can access the simulator by self.sim') + import ipdb + ipdb.set_trace() + elif key == glfw.KEY_S: # Slows down simulation. + self._run_speed /= 2.0 + elif key == glfw.KEY_F: # Speeds up simulation. + self._run_speed *= 2.0 + elif key == glfw.KEY_C: # Displays contact forces. + vopt = self.vopt + vopt.flags[10] = vopt.flags[11] = not vopt.flags[10] + elif key == glfw.KEY_D: # turn off / turn on rendering every frame. + self._render_every_frame = not self._render_every_frame + elif key == glfw.KEY_E: + vopt = self.vopt + vopt.frame = 1 - vopt.frame + elif key == glfw.KEY_R: # makes everything little bit transparent. + self._transparent = not self._transparent + if self._transparent: + self.sim.model.geom_rgba[:, 3] /= 5.0 + else: + self.sim.model.geom_rgba[:, 3] *= 5.0 + elif key == glfw.KEY_M: # Shows / hides mocap bodies + self._show_mocap = not self._show_mocap + for body_idx1, val in enumerate(self.sim.model.body_mocapid): + if val != -1: + for geom_idx, body_idx2 in enumerate(self.sim.model.geom_bodyid): + if body_idx1 == body_idx2: + if not self._show_mocap: + # Store transparency for later to show it. + self.sim.extras[ + geom_idx] = self.sim.model.geom_rgba[geom_idx, 3] + self.sim.model.geom_rgba[geom_idx, 3] = 0 + else: + self.sim.model.geom_rgba[ + geom_idx, 3] = self.sim.extras[geom_idx] + super().key_callback(window, key, scancode, action, mods)
+ +# Separate Process to save video. This way visualization is +# less slowed down. + + +def save_video(frames, filename, fps): + writer = imageio.get_writer(filename, fps=fps) + for f in frames: + writer.append_data(f) + writer.close() +
+ +
+
+ +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/_sources/index.rst.txt b/docs/build/html/_sources/index.rst.txt new file mode 100644 index 00000000..d7ca05bf --- /dev/null +++ b/docs/build/html/_sources/index.rst.txt @@ -0,0 +1,20 @@ +======================= +mujoco-py Documentation +======================= + +.. toctree:: + reference + internals + +`MuJoCo `_ is a physics engine for detailed, efficient rigid body simulations with contacts. ``mujoco-py`` allows using MuJoCo from Python. + +See the `README `_ for installation instructions and example usage. + +``mujoco-py`` allows access to MuJoCo on a number of different levels of abstraction: + +- Directly from Cython (low-level): `Raw Cython declarations `_ are provided for using the MuJoCo C structs and functions directly in your own Cython code. + +- Using :ref:`pymjdata` (medium-level): These wrappers are lightweight Cython ``cdef`` classes that expose MuJuCo data to Python space. The data in the MuJoCo structs is exposed as NumPy arrays bound to Mujoco-allocated memory, so there is no copying overhead when accessing or modifying MuJoCo state from Python. For more information on how this works internally, see [this document](./doc/cython_wrappers.md). + +- Using :class:`mujoco_py.MjSim` (high-level): :class:`mujoco_py.MjSim` manages a stateful simulation similar to the `MujocoEnv `_ class found in `Gym `_ +. diff --git a/docs/build/html/_sources/internals.rst.txt b/docs/build/html/_sources/internals.rst.txt new file mode 100644 index 00000000..60a91ae8 --- /dev/null +++ b/docs/build/html/_sources/internals.rst.txt @@ -0,0 +1,55 @@ +Internals +========= + +.. _genwrapper: + +Autogenerated wrappers +---------------------- + +The Cython struct wrappers are generated by ``scripts/gen_wrappers.py``. To illustrate how the wrappers work, let's consider a toy C structure and the corresponding generated Cython cdef class. Here's a stripped down version of ``mjData`` with a scalar member and a pointer (array) member:: + + typedef struct _mjData { + int ne; + mjtNum* qpos; // (nq x 1) + } mjData; + +Here's the corresponding generated Cython wrapper code:: + + cdef class PyMjData(object): + cdef mjData* ptr + cdef mjModel* _model + cdef np.ndarray _qpos + + cdef void _set(self, mjData* p, mjModel* model): + self.ptr = p + self._model = model + self._qpos = _wrap_mjtNum_1d(p.qpos, model.nq) + + @property + def ne(self): return self.ptr.ne + + @ne.setter + def ne(self, int x): self.ptr.ne = x + + @property + def qpos(self): return self._qpos + + cdef PyMjData WrapMjData(mjData* p, mjModel* model): + cdef PyMjData o = PyMjData() + o._set(p, model) + return o + +``PyMjData`` is the wrapper class for exposing the underlying Mujoco structure to Python; it doesn't perform any memory mangement. A user writing Cython code can create this wrapper using ``WrapMjData``. A ``mjModel`` pointer must be passed because the shape of a ``mjData`` member, namely ``qpos``, depends on ``model->nq``. + +Each field of ``mjData`` corresponds to some generated piece of code in ``PyMjData`` that depends on the type of that field. For example, ``ne`` is a scalar integer, so it gets exposed as a pair of getter and setter methods in ``PyMjData``. ``qpos`` is an array represented as a pointer to its first element, so it's wrapped with a NumPy array by ``_wrap_mjtNum_1d`` and is exposed with a getter for that NumPy array. + +The function ``_wrap_mjtNum_1d`` creates a Cython memoryview from the data pointer and converts it to a NumPy array pointing to the same memory:: + + cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0): + if shape0 == 0: return None + cdef mjtNum[:] b = a + return np.asarray(b) + +Similar functions for other types are also generated as required. + +Keep in mind that the only reason to use these autogenerated wrappers is to allow Python users of the Cython code to easily access Mujoco data (for instance the ``MjSim`` Cython class, found in ``cymj/cymj.pyx`). If you're writing Cython code and you don't need the user to access Mujoco data from Python, then there is no reason to use these wrappers. diff --git a/docs/build/html/_sources/reference.rst.txt b/docs/build/html/_sources/reference.rst.txt new file mode 100644 index 00000000..0ec5a933 --- /dev/null +++ b/docs/build/html/_sources/reference.rst.txt @@ -0,0 +1,313 @@ +API reference +============= + +.. contents:: :local: + +MjSim: Basic simulation +----------------------- + +.. autofunction:: mujoco_py.load_model_from_path(path) + +.. autofunction:: mujoco_py.load_model_from_xml(xml_string) + +.. autofunction:: mujoco_py.load_model_from_mjb(path) + +.. autoclass:: mujoco_py.MjSim(model, data=None, nsubsteps=1, udd_callback=None) + :members: model, data, step, render, get_state, set_state, set_state_from_flattened, save, reset + +.. autoclass:: mujoco_py.MjSimState + +.. autofunction:: mujoco_py.ignore_mujoco_warnings + +.. _pymjdata: + +PyMjData: Time-dependent data +----------------------------- + +``PyMjData`` and related classes are automatically generated from the MuJoCo C header files. For more information on this process, see :ref:`genwrapper`. Their structure therefore directly follows the MuJoCo structs. + +.. raw:: html + +
+
+ class mujoco_py.PyMjData
+
+

Attributes

+ +.. attribute:: act +.. attribute:: act_dot +.. attribute:: active_contacts_efc_pos +.. attribute:: actuator_force +.. attribute:: actuator_length +.. attribute:: actuator_moment +.. attribute:: actuator_velocity +.. attribute:: body_jacp +.. attribute:: body_jacr +.. attribute:: body_xmat +.. attribute:: body_xpos +.. attribute:: body_xquat +.. attribute:: body_xvelp +.. attribute:: body_xvelr +.. attribute:: cacc +.. attribute:: cam_xmat +.. attribute:: cam_xpos +.. attribute:: cdof +.. attribute:: cdof_dot +.. attribute:: cfrc_ext +.. attribute:: cfrc_int +.. attribute:: cinert +.. attribute:: contact +.. attribute:: crb +.. attribute:: ctrl +.. attribute:: cvel +.. attribute:: efc_AR +.. attribute:: efc_AR_colind +.. attribute:: efc_AR_rowadr +.. attribute:: efc_AR_rownnz +.. attribute:: efc_D +.. attribute:: efc_J +.. attribute:: efc_JT +.. attribute:: efc_JT_colind +.. attribute:: efc_JT_rowadr +.. attribute:: efc_JT_rownnz +.. attribute:: efc_J_colind +.. attribute:: efc_J_rowadr +.. attribute:: efc_J_rownnz +.. attribute:: efc_R +.. attribute:: efc_aref +.. attribute:: efc_b +.. attribute:: efc_diagApprox +.. attribute:: efc_force +.. attribute:: efc_frictionloss +.. attribute:: efc_id +.. attribute:: efc_margin +.. attribute:: efc_solimp +.. attribute:: efc_solref +.. attribute:: efc_state +.. attribute:: efc_type +.. attribute:: efc_vel +.. attribute:: energy +.. attribute:: geom_jacp +.. attribute:: geom_jacr +.. attribute:: geom_xmat +.. attribute:: geom_xpos +.. attribute:: geom_xvelp +.. attribute:: geom_xvelr +.. attribute:: light_xdir +.. attribute:: light_xpos +.. attribute:: maxuse_con +.. attribute:: maxuse_efc +.. attribute:: maxuse_stack +.. attribute:: mocap_pos +.. attribute:: mocap_quat +.. attribute:: nbuffer +.. attribute:: ncon +.. attribute:: ne +.. attribute:: nefc +.. attribute:: nf +.. attribute:: nstack +.. attribute:: pstack +.. attribute:: qLD +.. attribute:: qLDiagInv +.. attribute:: qLDiagSqrtInv +.. attribute:: qM +.. attribute:: qacc +.. attribute:: qacc_unc +.. attribute:: qacc_warmstart +.. attribute:: qfrc_actuator +.. attribute:: qfrc_applied +.. attribute:: qfrc_bias +.. attribute:: qfrc_constraint +.. attribute:: qfrc_inverse +.. attribute:: qfrc_passive +.. attribute:: qfrc_unc +.. attribute:: qpos +.. attribute:: qvel +.. attribute:: sensordata +.. attribute:: set_joint_qpos +.. attribute:: set_joint_qvel +.. attribute:: set_mocap_pos +.. attribute:: set_mocap_quat +.. attribute:: site_jacp +.. attribute:: site_jacr +.. attribute:: site_xmat +.. attribute:: site_xpos +.. attribute:: site_xvelp +.. attribute:: site_xvelr +.. attribute:: solver +.. attribute:: solver_fwdinv +.. attribute:: solver_iter +.. attribute:: solver_nnz +.. attribute:: subtree_angmom +.. attribute:: subtree_com +.. attribute:: subtree_linvel +.. attribute:: ten_length +.. attribute:: ten_moment +.. attribute:: ten_velocity +.. attribute:: ten_wrapadr +.. attribute:: ten_wrapnum +.. attribute:: time +.. attribute:: timer +.. attribute:: userdata +.. attribute:: warning +.. attribute:: wrap_obj +.. attribute:: wrap_xpos +.. attribute:: xanchor +.. attribute:: xaxis +.. attribute:: xfrc_applied +.. attribute:: ximat +.. attribute:: xipos + +.. raw:: html + +

Methods

+ + +.. method:: get_body_jacp(name) + + Get the entry in ``jacp`` corresponding to the body with the given `name` + +.. method:: get_body_jacr(name) + + Get the entry in ``jacr`` corresponding to the body with the given `name` + +.. method:: get_body_ximat(name) + + Get the entry in ``ximat`` corresponding to the body with the given `name` + +.. method:: get_body_xipos(name) + + Get the entry in ``xipos`` corresponding to the body with the given `name` + +.. method:: get_body_xmat(name) + + Get the entry in ``xmat`` corresponding to the body with the given `name` + +.. method:: get_body_xpos(name) + + Get the entry in ``xpos`` corresponding to the body with the given `name` + +.. method:: get_body_xquat(name) + + Get the entry in ``xquat`` corresponding to the body with the given `name` + +.. method:: get_body_xvelp(name) + + Get the entry in ``xvelp`` corresponding to the body with the given `name` + +.. method:: get_body_xvelr(name) + + Get the entry in ``xvelr`` corresponding to the body with the given `name` + +.. method:: get_cam_xmat(name) + + Get the entry in ``xmat`` corresponding to the cam with the given `name` + +.. method:: get_cam_xpos(name) + + Get the entry in ``xpos`` corresponding to the cam with the given `name` + +.. method:: get_camera_xmat(name) + + Get the entry in ``xmat`` corresponding to the camera with the given `name` + +.. method:: get_camera_xpos(name) + + Get the entry in ``xpos`` corresponding to the camera with the given `name` + +.. method:: get_geom_jacp(name) + + Get the entry in ``jacp`` corresponding to the geom with the given `name` + +.. method:: get_geom_jacr(name) + + Get the entry in ``jacr`` corresponding to the geom with the given `name` + +.. method:: get_geom_xmat(name) + + Get the entry in ``xmat`` corresponding to the geom with the given `name` + +.. method:: get_geom_xpos(name) + + Get the entry in ``xpos`` corresponding to the geom with the given `name` + +.. method:: get_geom_xvelp(name) + + Get the entry in ``xvelp`` corresponding to the geom with the given `name` + +.. method:: get_geom_xvelr(name) + + Get the entry in ``xvelr`` corresponding to the geom with the given `name` + +.. method:: get_joint_qpos(name) + + Get the entry in ``qpos`` corresponding to the joint with the given `name` + +.. method:: get_joint_qvel(name) + + Get the entry in ``qvel`` corresponding to the joint with the given `name` + +.. method:: get_joint_xanchor(name) + + Get the entry in ``xanchor`` corresponding to the joint with the given `name` + +.. method:: get_joint_xaxis(name) + + Get the entry in ``xaxis`` corresponding to the joint with the given `name` + +.. method:: get_light_xdir(name) + + Get the entry in ``xdir`` corresponding to the light with the given `name` + +.. method:: get_light_xpos(name) + + Get the entry in ``xpos`` corresponding to the light with the given `name` + +.. method:: get_mocap_pos(name) + + Get the entry in ``pos`` corresponding to the mocap with the given `name` + +.. method:: get_mocap_quat(name) + + Get the entry in ``quat`` corresponding to the mocap with the given `name` + +.. method:: get_site_jacp(name) + + Get the entry in ``jacp`` corresponding to the site with the given `name` + +.. method:: get_site_jacr(name) + + Get the entry in ``jacr`` corresponding to the site with the given `name` + +.. method:: get_site_xmat(name) + + Get the entry in ``xmat`` corresponding to the site with the given `name` + +.. method:: get_site_xpos(name) + + Get the entry in ``xpos`` corresponding to the site with the given `name` + +.. method:: get_site_xvelp(name) + + Get the entry in ``xvelp`` corresponding to the site with the given `name` + +.. method:: get_site_xvelr(name) + + Get the entry in ``xvelr`` corresponding to the site with the given `name` + +.. raw:: html + +
+ +MjSimPool: Batched simulation +----------------------------- + +.. autoclass:: mujoco_py.MjSimPool + :members: reset, forward, step, sims, create_from_sim + +MjViewer: 3D rendering +----------------------------- + +.. autoclass:: mujoco_py.MjViewerBasic + +.. autoclass:: mujoco_py.MjViewer diff --git a/docs/build/html/_static/ajax-loader.gif b/docs/build/html/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/basic.css b/docs/build/html/_static/basic.css new file mode 100644 index 00000000..6df76b0a --- /dev/null +++ b/docs/build/html/_static/basic.css @@ -0,0 +1,639 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/build/html/_static/comment-bright.png b/docs/build/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e GIT binary patch literal 756 zcmVgfIX78 z$8Pzv({A~p%??+>KickCb#0FM1rYN=mBmQ&Nwp<#JXUhU;{|)}%&s>suq6lXw*~s{ zvHx}3C%<;wE5CH!BR{p5@ml9ws}y)=QN-kL2?#`S5d*6j zk`h<}j1>tD$b?4D^N9w}-k)bxXxFg>+#kme^xx#qg6FI-%iv2U{0h(Y)cs%5a|m%Pn_K3X_bDJ>EH#(Fb73Z zfUt2Q3B>N+ot3qb*DqbTZpFIn4a!#_R-}{?-~Hs=xSS6p&$sZ-k1zDdtqU`Y@`#qL z&zv-~)Q#JCU(dI)Hf;$CEnK=6CK50}q7~wdbI->?E07bJ0R;!GSQTs5Am`#;*WHjvHRvY?&$Lm-vq1a_BzocI^ULXV!lbMd%|^B#fY;XX)n<&R^L z=84u1e_3ziq;Hz-*k5~zwY3*oDKt0;bM@M@@89;@m*4RFgvvM_4;5LB!@OB@^WbVT zjl{t;a8_>od-~P4 m{5|DvB&z#xT;*OnJqG}gk~_7HcNkCr0000W zanA~u9RIXo;n7c96&U)YLgs-FGlx~*_c{Jgvesu1E5(8YEf&5wF=YFPcRe@1=MJmi zag(L*xc2r0(slpcN!vC5CUju;vHJkHc*&70_n2OZsK%O~A=!+YIw z7zLLl7~Z+~RgWOQ=MI6$#0pvpu$Q43 zP@36QAmu6!_9NPM?o<1_!+stoVRRZbW9#SPe!n;#A_6m8f}|xN1;H{`0RoXQ2LM47 zt(g;iZ6|pCb@h2xk&(}S3=EVBUO0e90m2Lp5CB<(SPIaB;n4))3JB87Or#XPOPcum z?<^(g+m9}VNn4Y&B`g8h{t_$+RB1%HKRY6fjtd-<7&EsU;vs0GM(Lmbhi%Gwcfs0FTF}T zL{_M6Go&E0Eg8FuB*(Yn+Z*RVTBE@10eIOb3El^MhO`GabDll(V0&FlJi2k^;q8af zkENdk2}x2)_KVp`5OAwXZM;dG0?M-S)xE1IKDi6BY@5%Or?#aZ9$gcX)dPZ&wA1a< z$rFXHPn|TBf`e?>Are8sKtKrKcjF$i^lp!zkL?C|y^vlHr1HXeVJd;1I~g&Ob-q)& z(fn7s-KI}G{wnKzg_U5G(V%bX6uk zIa+<@>rdmZYd!9Y=C0cuchrbIjuRB_Wq{-RXlic?flu1*_ux}x%(HDH&nT`k^xCeC ziHi1!ChH*sQ6|UqJpTTzX$aw8e(UfcS^f;6yBWd+(1-70zU(rtxtqR%j z-lsH|CKQJXqD{+F7V0OTv8@{~(wp(`oIP^ZykMWgR>&|RsklFMCnOo&Bd{le} zV5F6424Qzl;o2G%oVvmHgRDP9!=rK8fy^!yV8y*4p=??uIRrrr0?>O!(z*g5AvL2!4z0{sq%vhG*Po}`a<6%kTK5TNhtC8}rXNu&h^QH4A&Sk~Autm*s~45(H7+0bi^MraaRVzr05hQ3iK?j` zR#U@^i0WhkIHTg29u~|ypU?sXCQEQgXfObPW;+0YAF;|5XyaMAEM0sQ@4-xCZe=0e z7r$ofiAxn@O5#RodD8rh5D@nKQ;?lcf@tg4o+Wp44aMl~c47azN_(im0N)7OqdPBC zGw;353_o$DqGRDhuhU$Eaj!@m000000NkvXXu0mjfjZ7Z_ literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/css/badge_only.css b/docs/build/html/_static/css/badge_only.css new file mode 100644 index 00000000..6362912b --- /dev/null +++ b/docs/build/html/_static/css/badge_only.css @@ -0,0 +1,2 @@ +.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../font/fontawesome_webfont.eot");src:url("../font/fontawesome_webfont.eot?#iefix") format("embedded-opentype"),url("../font/fontawesome_webfont.woff") format("woff"),url("../font/fontawesome_webfont.ttf") format("truetype"),url("../font/fontawesome_webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:0.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} +/*# sourceMappingURL=badge_only.css.map */ diff --git a/docs/build/html/_static/css/theme.css b/docs/build/html/_static/css/theme.css new file mode 100644 index 00000000..c1631d84 --- /dev/null +++ b/docs/build/html/_static/css/theme.css @@ -0,0 +1,5 @@ +*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:hover,a:active{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;color:#000;text-decoration:none}mark{background:#ff0;color:#000;font-style:italic;font-weight:bold}pre,code,.rst-content tt,.rst-content code,kbd,samp{font-family:monospace,serif;_font-family:"courier new",monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:before,q:after{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}ul,ol,dl{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:0;margin:0;padding:0}label{cursor:pointer}legend{border:0;*margin-left:-7px;padding:0;white-space:normal}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:0.2em 0;background:#ccc;color:#000;padding:0.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{html,body,section{background:none !important}*{box-shadow:none !important;text-shadow:none !important;filter:none !important;-ms-filter:none !important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,.rst-content .toctree-wrapper p.caption,h3{orphans:3;widows:3}h2,.rst-content .toctree-wrapper p.caption,h3{page-break-after:avoid}}.fa:before,.wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.btn,input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"],select,textarea,.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.6.3");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.6.3") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.6.3") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.6.3") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content tt.download span:first-child,.rst-content code.download span:first-child,.icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.wy-menu-vertical li span.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-left.toctree-expand,.wy-menu-vertical li.current>a span.fa-pull-left.toctree-expand,.rst-content .fa-pull-left.admonition-title,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content dl dt .fa-pull-left.headerlink,.rst-content p.caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.rst-content code.download span.fa-pull-left:first-child,.fa-pull-left.icon{margin-right:.3em}.fa.fa-pull-right,.wy-menu-vertical li span.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-right.toctree-expand,.wy-menu-vertical li.current>a span.fa-pull-right.toctree-expand,.rst-content .fa-pull-right.admonition-title,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content dl dt .fa-pull-right.headerlink,.rst-content p.caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.rst-content code.download span.fa-pull-right:first-child,.fa-pull-right.icon{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.wy-menu-vertical li span.pull-left.toctree-expand,.wy-menu-vertical li.on a span.pull-left.toctree-expand,.wy-menu-vertical li.current>a span.pull-left.toctree-expand,.rst-content .pull-left.admonition-title,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content dl dt .pull-left.headerlink,.rst-content p.caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.rst-content code.download span.pull-left:first-child,.pull-left.icon{margin-right:.3em}.fa.pull-right,.wy-menu-vertical li span.pull-right.toctree-expand,.wy-menu-vertical li.on a span.pull-right.toctree-expand,.wy-menu-vertical li.current>a span.pull-right.toctree-expand,.rst-content .pull-right.admonition-title,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content dl dt .pull-right.headerlink,.rst-content p.caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.rst-content code.download span.pull-right:first-child,.pull-right.icon{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.rst-content .admonition-title:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li span.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content tt.download span:first-child,.rst-content code.download span:first-child,.icon,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context{font-family:inherit}.fa:before,.wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before{font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa,a .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,a .rst-content .admonition-title,.rst-content a .admonition-title,a .rst-content h1 .headerlink,.rst-content h1 a .headerlink,a .rst-content h2 .headerlink,.rst-content h2 a .headerlink,a .rst-content h3 .headerlink,.rst-content h3 a .headerlink,a .rst-content h4 .headerlink,.rst-content h4 a .headerlink,a .rst-content h5 .headerlink,.rst-content h5 a .headerlink,a .rst-content h6 .headerlink,.rst-content h6 a .headerlink,a .rst-content dl dt .headerlink,.rst-content dl dt a .headerlink,a .rst-content p.caption .headerlink,.rst-content p.caption a .headerlink,a .rst-content tt.download span:first-child,.rst-content tt.download a span:first-child,a .rst-content code.download span:first-child,.rst-content code.download a span:first-child,a .icon{display:inline-block;text-decoration:inherit}.btn .fa,.btn .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .btn span.toctree-expand,.btn .wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.on a .btn span.toctree-expand,.btn .wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.current>a .btn span.toctree-expand,.btn .rst-content .admonition-title,.rst-content .btn .admonition-title,.btn .rst-content h1 .headerlink,.rst-content h1 .btn .headerlink,.btn .rst-content h2 .headerlink,.rst-content h2 .btn .headerlink,.btn .rst-content h3 .headerlink,.rst-content h3 .btn .headerlink,.btn .rst-content h4 .headerlink,.rst-content h4 .btn .headerlink,.btn .rst-content h5 .headerlink,.rst-content h5 .btn .headerlink,.btn .rst-content h6 .headerlink,.rst-content h6 .btn .headerlink,.btn .rst-content dl dt .headerlink,.rst-content dl dt .btn .headerlink,.btn .rst-content p.caption .headerlink,.rst-content p.caption .btn .headerlink,.btn .rst-content tt.download span:first-child,.rst-content tt.download .btn span:first-child,.btn .rst-content code.download span:first-child,.rst-content code.download .btn span:first-child,.btn .icon,.nav .fa,.nav .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .nav span.toctree-expand,.nav .wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.on a .nav span.toctree-expand,.nav .wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.current>a .nav span.toctree-expand,.nav .rst-content .admonition-title,.rst-content .nav .admonition-title,.nav .rst-content h1 .headerlink,.rst-content h1 .nav .headerlink,.nav .rst-content h2 .headerlink,.rst-content h2 .nav .headerlink,.nav .rst-content h3 .headerlink,.rst-content h3 .nav .headerlink,.nav .rst-content h4 .headerlink,.rst-content h4 .nav .headerlink,.nav .rst-content h5 .headerlink,.rst-content h5 .nav .headerlink,.nav .rst-content h6 .headerlink,.rst-content h6 .nav .headerlink,.nav .rst-content dl dt .headerlink,.rst-content dl dt .nav .headerlink,.nav .rst-content p.caption .headerlink,.rst-content p.caption .nav .headerlink,.nav .rst-content tt.download span:first-child,.rst-content tt.download .nav span:first-child,.nav .rst-content code.download span:first-child,.rst-content code.download .nav span:first-child,.nav .icon{display:inline}.btn .fa.fa-large,.btn .wy-menu-vertical li span.fa-large.toctree-expand,.wy-menu-vertical li .btn span.fa-large.toctree-expand,.btn .rst-content .fa-large.admonition-title,.rst-content .btn .fa-large.admonition-title,.btn .rst-content h1 .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.btn .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .btn .fa-large.headerlink,.btn .rst-content p.caption .fa-large.headerlink,.rst-content p.caption .btn .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.rst-content tt.download .btn span.fa-large:first-child,.btn .rst-content code.download span.fa-large:first-child,.rst-content code.download .btn span.fa-large:first-child,.btn .fa-large.icon,.nav .fa.fa-large,.nav .wy-menu-vertical li span.fa-large.toctree-expand,.wy-menu-vertical li .nav span.fa-large.toctree-expand,.nav .rst-content .fa-large.admonition-title,.rst-content .nav .fa-large.admonition-title,.nav .rst-content h1 .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.nav .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.nav .rst-content p.caption .fa-large.headerlink,.rst-content p.caption .nav .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.nav .rst-content code.download span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.nav .fa-large.icon{line-height:0.9em}.btn .fa.fa-spin,.btn .wy-menu-vertical li span.fa-spin.toctree-expand,.wy-menu-vertical li .btn span.fa-spin.toctree-expand,.btn .rst-content .fa-spin.admonition-title,.rst-content .btn .fa-spin.admonition-title,.btn .rst-content h1 .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.btn .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .btn .fa-spin.headerlink,.btn .rst-content p.caption .fa-spin.headerlink,.rst-content p.caption .btn .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.rst-content tt.download .btn span.fa-spin:first-child,.btn .rst-content code.download span.fa-spin:first-child,.rst-content code.download .btn span.fa-spin:first-child,.btn .fa-spin.icon,.nav .fa.fa-spin,.nav .wy-menu-vertical li span.fa-spin.toctree-expand,.wy-menu-vertical li .nav span.fa-spin.toctree-expand,.nav .rst-content .fa-spin.admonition-title,.rst-content .nav .fa-spin.admonition-title,.nav .rst-content h1 .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.nav .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.nav .rst-content p.caption .fa-spin.headerlink,.rst-content p.caption .nav .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.nav .rst-content code.download span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.nav .fa-spin.icon{display:inline-block}.btn.fa:before,.wy-menu-vertical li span.btn.toctree-expand:before,.rst-content .btn.admonition-title:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content dl dt .btn.headerlink:before,.rst-content p.caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.rst-content code.download span.btn:first-child:before,.btn.icon:before{opacity:0.5;-webkit-transition:opacity 0.05s ease-in;-moz-transition:opacity 0.05s ease-in;transition:opacity 0.05s ease-in}.btn.fa:hover:before,.wy-menu-vertical li span.btn.toctree-expand:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content p.caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.rst-content code.download span.btn:first-child:hover:before,.btn.icon:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li .btn-mini span.toctree-expand:before,.btn-mini .rst-content .admonition-title:before,.rst-content .btn-mini .admonition-title:before,.btn-mini .rst-content h1 .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.btn-mini .rst-content dl dt .headerlink:before,.rst-content dl dt .btn-mini .headerlink:before,.btn-mini .rst-content p.caption .headerlink:before,.rst-content p.caption .btn-mini .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.rst-content tt.download .btn-mini span:first-child:before,.btn-mini .rst-content code.download span:first-child:before,.rst-content code.download .btn-mini span:first-child:before,.btn-mini .icon:before{font-size:14px;vertical-align:-15%}.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.wy-alert-title,.rst-content .admonition-title{color:#fff;font-weight:bold;display:block;color:#fff;background:#6ab0de;margin:-12px;padding:6px 12px;margin-bottom:12px}.wy-alert.wy-alert-danger,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.admonition-todo{background:#fdf3f2}.wy-alert.wy-alert-danger .wy-alert-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .danger .wy-alert-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title{background:#f29f97}.wy-alert.wy-alert-warning,.rst-content .wy-alert-warning.note,.rst-content .attention,.rst-content .caution,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.tip,.rst-content .warning,.rst-content .wy-alert-warning.seealso,.rst-content .admonition-todo{background:#ffedcc}.wy-alert.wy-alert-warning .wy-alert-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .attention .wy-alert-title,.rst-content .caution .wy-alert-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .admonition-todo .wy-alert-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .warning .admonition-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .admonition-todo .admonition-title{background:#f0b37e}.wy-alert.wy-alert-info,.rst-content .note,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.rst-content .seealso,.rst-content .wy-alert-info.admonition-todo{background:#e7f2fa}.wy-alert.wy-alert-info .wy-alert-title,.rst-content .note .wy-alert-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.rst-content .note .admonition-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .seealso .admonition-title,.rst-content .wy-alert-info.admonition-todo .admonition-title{background:#6ab0de}.wy-alert.wy-alert-success,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.warning,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.admonition-todo{background:#dbfaf4}.wy-alert.wy-alert-success .wy-alert-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .hint .wy-alert-title,.rst-content .important .wy-alert-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.admonition-todo .admonition-title{background:#1abc9c}.wy-alert.wy-alert-neutral,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.admonition-todo{background:#f3f6f6}.wy-alert.wy-alert-neutral .wy-alert-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .admonition-title{color:#404040;background:#e1e4e5}.wy-alert.wy-alert-neutral a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.admonition-todo a{color:#2980B9}.wy-alert p:last-child,.rst-content .note p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.rst-content .seealso p:last-child,.rst-content .admonition-todo p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0px;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,0.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all 0.3s ease-in;-moz-transition:all 0.3s ease-in;transition:all 0.3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27AE60}.wy-tray-container li.wy-tray-item-info{background:#2980B9}.wy-tray-container li.wy-tray-item-warning{background:#E67E22}.wy-tray-container li.wy-tray-item-danger{background:#E74C3C}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width: 768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px 12px;color:#fff;border:1px solid rgba(0,0,0,0.1);background-color:#27AE60;text-decoration:none;font-weight:normal;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset;outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all 0.1s linear;-moz-transition:all 0.1s linear;transition:all 0.1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset;padding:8px 12px 6px 12px}.btn:visited{color:#fff}.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled:hover,.btn-disabled:focus,.btn-disabled:active{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980B9 !important}.btn-info:hover{background-color:#2e8ece !important}.btn-neutral{background-color:#f3f6f6 !important;color:#404040 !important}.btn-neutral:hover{background-color:#e5ebeb !important;color:#404040}.btn-neutral:visited{color:#404040 !important}.btn-success{background-color:#27AE60 !important}.btn-success:hover{background-color:#295 !important}.btn-danger{background-color:#E74C3C !important}.btn-danger:hover{background-color:#ea6153 !important}.btn-warning{background-color:#E67E22 !important}.btn-warning:hover{background-color:#e98b39 !important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f !important}.btn-link{background-color:transparent !important;color:#2980B9;box-shadow:none;border-color:transparent !important}.btn-link:hover{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:active{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:visited{color:#9B59B6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:before,.wy-btn-group:after{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:solid 1px #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,0.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980B9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type="search"]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980B9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{border:0;margin:0;padding:0}legend{display:block;width:100%;border:0;padding:0;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label{display:block;margin:0 0 .3125em 0;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;*zoom:1;max-width:68em;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#E74C3C}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%}.wy-control-group .wy-form-full{float:left;display:block;margin-right:2.35765%;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child{margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child{margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0;font-size:90%}.wy-control-no-input{display:inline-block;margin:6px 0 0 0;font-size:90%}.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%}.wy-form-message-inline{display:inline-block;padding-left:0.3em;color:#666;vertical-align:middle;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;*overflow:visible}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}input[type="datetime-local"]{padding:.34375em .625em}input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus{outline:0;outline:thin dotted \9;border-color:#333}input.no-focus:focus{border-color:#ccc !important}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C;border:1px solid #E74C3C}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C}input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type="radio"][disabled],input[type="checkbox"][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:solid 1px #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{width:36px;height:12px;margin:12px 0;position:relative;border-radius:4px;background:#ccc;cursor:pointer;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.wy-switch:before{position:absolute;content:"";display:block;width:18px;height:18px;border-radius:4px;background:#999;left:-3px;top:-3px;-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.wy-switch:after{content:"false";position:absolute;left:48px;display:block;font-size:12px;color:#ccc}.wy-switch.active{background:#1e8449}.wy-switch.active:before{left:24px;background:#27AE60}.wy-switch.active:after{content:"true"}.wy-switch.disabled,.wy-switch.active.disabled{cursor:not-allowed}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C}.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C}.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980B9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:0.7em 0 0}.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0.3em;display:block}.wy-form label{margin-bottom:0.3em;display:block}.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:0.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0 0}.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width: 768px){.tablet-hide{display:none}}@media screen and (max-width: 480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.wy-table,.rst-content table.docutils,.rst-content table.field-list{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.wy-table caption,.rst-content table.docutils caption,.rst-content table.field-list caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td,.wy-table th,.rst-content table.docutils th,.rst-content table.field-list th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.wy-table td:first-child,.rst-content table.docutils td:first-child,.rst-content table.field-list td:first-child,.wy-table th:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list th:first-child{border-left-width:0}.wy-table thead,.rst-content table.docutils thead,.rst-content table.field-list thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.wy-table thead th,.rst-content table.docutils thead th,.rst-content table.field-list thead th{font-weight:bold;border-bottom:solid 2px #e1e4e5}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td{background-color:transparent;vertical-align:middle}.wy-table td p,.rst-content table.docutils td p,.rst-content table.field-list td p{line-height:18px}.wy-table td p:last-child,.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child{margin-bottom:0}.wy-table .wy-table-cell-min,.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min{width:1%;padding-right:0}.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:gray;font-size:90%}.wy-table-tertiary{color:gray;font-size:80%}.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td,.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td{background-color:#f3f6f6}.wy-table-backed{background-color:#f3f6f6}.wy-table-bordered-all,.rst-content table.docutils{border:1px solid #e1e4e5}.wy-table-bordered-all td,.rst-content table.docutils td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.wy-table-bordered-all tbody>tr:last-child td,.rst-content table.docutils tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0 !important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980B9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9B59B6}html{height:100%;overflow-x:hidden}body{font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#404040;min-height:100%;overflow-x:hidden;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#E67E22 !important}a.wy-text-warning:hover{color:#eb9950 !important}.wy-text-info{color:#2980B9 !important}a.wy-text-info:hover{color:#409ad5 !important}.wy-text-success{color:#27AE60 !important}a.wy-text-success:hover{color:#36d278 !important}.wy-text-danger{color:#E74C3C !important}a.wy-text-danger:hover{color:#ed7669 !important}.wy-text-neutral{color:#404040 !important}a.wy-text-neutral:hover{color:#595959 !important}h1,h2,.rst-content .toctree-wrapper p.caption,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif}p{line-height:24px;margin:0;font-size:16px;margin-bottom:24px}h1{font-size:175%}h2,.rst-content .toctree-wrapper p.caption{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}code,.rst-content tt,.rst-content code{white-space:nowrap;max-width:100%;background:#fff;border:solid 1px #e1e4e5;font-size:75%;padding:0 5px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;color:#E74C3C;overflow-x:auto}code.code-large,.rst-content tt.code-large{font-size:90%}.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc;margin-left:24px}.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0}.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0}.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle}.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square}.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal}.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal;margin-left:24px}.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0}.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0}.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc}.codeblock-example{border:1px solid #e1e4e5;border-bottom:none;padding:24px;padding-top:48px;font-weight:500;background:#fff;position:relative}.codeblock-example:after{content:"Example";position:absolute;top:0px;left:0px;background:#9B59B6;color:#fff;padding:6px 12px}.codeblock-example.prettyprint-example-only{border:1px solid #e1e4e5;margin-bottom:24px}.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight']{border:1px solid #e1e4e5;padding:0px;overflow-x:auto;background:#fff;margin:1px 0 24px 0}.codeblock div[class^='highlight'],pre.literal-block div[class^='highlight'],.rst-content .literal-block div[class^='highlight'],div[class^='highlight'] div[class^='highlight']{border:none;background:none;margin:0}div[class^='highlight'] td.code{width:100%}.linenodiv pre{border-right:solid 1px #e6e9ea;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;color:#d9d9d9}div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;display:block;overflow:auto;color:#404040}@media print{.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight'],div[class^='highlight'] pre{white-space:pre-wrap}}.hll{background-color:#ffc;margin:0 -12px;padding:0 12px;display:block}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{font-weight:bold}.o{font-weight:bold}.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:bold}.c1{color:#998;font-style:italic}.cs{color:#999;font-weight:bold;font-style:italic}.gd{color:#000;background-color:#fdd}.gd .x{color:#000;background-color:#faa}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.gi .x{color:#000;background-color:#afa}.go{color:#888}.gp{color:#555}.gs{font-weight:bold}.gu{color:purple;font-weight:bold}.gt{color:#a00}.kc{font-weight:bold}.kd{font-weight:bold}.kn{font-weight:bold}.kp{font-weight:bold}.kr{font-weight:bold}.kt{color:#458;font-weight:bold}.m{color:#099}.s{color:#d14}.n{color:#333}.na{color:teal}.nb{color:#0086b3}.nc{color:#458;font-weight:bold}.no{color:teal}.ni{color:purple}.ne{color:#900;font-weight:bold}.nf{color:#900;font-weight:bold}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{font-weight:bold}.w{color:#bbb}.mf{color:#099}.mh{color:#099}.mi{color:#099}.mo{color:#099}.sb{color:#d14}.sc{color:#d14}.sd{color:#d14}.s2{color:#d14}.se{color:#d14}.sh{color:#d14}.si{color:#d14}.sx{color:#d14}.sr{color:#009926}.s1{color:#d14}.ss{color:#990073}.bp{color:#999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#099}.gc{color:#999;background-color:#EAF2F5}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs li code,.wy-breadcrumbs li .rst-content tt,.rst-content .wy-breadcrumbs li tt{padding:5px;border:none;background:none}.wy-breadcrumbs li code.literal,.wy-breadcrumbs li .rst-content tt.literal,.rst-content .wy-breadcrumbs li tt.literal{color:#404040}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:before,.wy-menu-horiz:after{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block}.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)}.wy-menu-horiz li.divide-left{border-left:solid 1px #404040}.wy-menu-horiz li.divide-right{border-right:solid 1px #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{height:32px;display:inline-block;line-height:32px;padding:0 1.618em;margin-bottom:0;display:block;font-weight:bold;text-transform:uppercase;font-size:80%;color:#555;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:solid 1px #404040}.wy-menu-vertical li.divide-bottom{border-bottom:solid 1px #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:gray;border-right:solid 1px #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.wy-menu-vertical li code,.wy-menu-vertical li .rst-content tt,.rst-content .wy-menu-vertical li tt{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li span.toctree-expand{display:block;float:left;margin-left:-1.2em;font-size:0.8em;line-height:1.6em;color:#4d4d4d}.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a{color:#404040;padding:.4045em 1.618em;font-weight:bold;position:relative;background:#fcfcfc;border:none;border-bottom:solid 1px #c9c9c9;border-top:solid 1px #c9c9c9;padding-left:1.618em -4px}.wy-menu-vertical li.on a:hover,.wy-menu-vertical li.current>a:hover{background:#fcfcfc}.wy-menu-vertical li.on a:hover span.toctree-expand,.wy-menu-vertical li.current>a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand{display:block;font-size:0.8em;line-height:1.6em;color:#333}.wy-menu-vertical li.toctree-l1.current li.toctree-l2>ul,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>ul{display:none}.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current>ul,.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current>ul{display:block}.wy-menu-vertical li.toctree-l2.current>a{background:#c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{display:block;background:#c9c9c9;padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.toctree-l2 span.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3{font-size:0.9em}.wy-menu-vertical li.toctree-l3.current>a{background:#bdbdbd;padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{display:block;background:#bdbdbd;padding:.4045em 5.663em;border-top:none;border-bottom:none}.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.toctree-l3 span.toctree-expand{color:#969696}.wy-menu-vertical li.toctree-l4{font-size:0.9em}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical .local-toc li ul{display:block}.wy-menu-vertical li ul li a{margin-bottom:0;color:#b3b3b3;font-weight:normal}.wy-menu-vertical a{display:inline-block;line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#b3b3b3}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover span.toctree-expand{color:#b3b3b3}.wy-menu-vertical a:active{background-color:#2980B9;cursor:pointer;color:#fff}.wy-menu-vertical a:active span.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980B9;text-align:center;padding:.809em;display:block;color:#fcfcfc;margin-bottom:.809em}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em auto;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a{color:#fcfcfc;font-size:100%;font-weight:bold;display:inline-block;padding:4px 6px;margin-bottom:.809em}.wy-side-nav-search>a:hover,.wy-side-nav-search .wy-dropdown>a:hover{background:rgba(255,255,255,0.1)}.wy-side-nav-search>a img.logo,.wy-side-nav-search .wy-dropdown>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search>a.icon img.logo,.wy-side-nav-search .wy-dropdown>a.icon img.logo{margin-top:0.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:normal;color:rgba(255,255,255,0.3)}.wy-nav .wy-menu-vertical header{color:#2980B9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980B9;color:#fff}[data-menu-wrap]{-webkit-transition:all 0.2s ease-in;-moz-transition:all 0.2s ease-in;transition:all 0.2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:left repeat-y #fcfcfc;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC);background-size:300px 1px}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980B9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:before,.wy-nav-top:after{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:bold}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,0.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:#999}footer p{margin-bottom:12px}footer span.commit code,footer span.commit .rst-content tt,.rst-content footer span.commit tt{padding:0px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:1em;background:none;border:none;color:#999}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:before,.rst-breadcrumbs-buttons:after{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-side-scroll{width:auto}.wy-side-nav-search{width:auto}.wy-menu.wy-menu-vertical{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1400px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content p.caption .headerlink,.rst-content p.caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .icon{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content img{max-width:100%;height:auto !important}.rst-content .highlight>pre{line-height:normal}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure p.caption{font-style:italic}.rst-content div.figure.align-center{text-align:center}.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,0.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important;border-color:rgba(0,0,0,0.1) !important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha}.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px}.rst-content .line-block{margin-left:24px}.rst-content .topic-title{font-weight:bold;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0px 0px 24px 24px}.rst-content .align-left{float:left;margin:0px 24px 24px 0px}.rst-content .align-center{margin:auto;display:block}.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content .toctree-wrapper p.caption .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink{display:none;visibility:hidden;font-size:14px}.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content .toctree-wrapper p.caption .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after,.rst-content p.caption .headerlink:after{visibility:visible;content:"";font-family:FontAwesome;display:inline-block}.rst-content h1:hover .headerlink,.rst-content h2:hover .headerlink,.rst-content .toctree-wrapper p.caption:hover .headerlink,.rst-content h3:hover .headerlink,.rst-content h4:hover .headerlink,.rst-content h5:hover .headerlink,.rst-content h6:hover .headerlink,.rst-content dl dt:hover .headerlink,.rst-content p.caption:hover .headerlink{display:inline-block}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:solid 1px #e1e4e5}.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%}.rst-content .sidebar .last{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;font-weight:bold;background:#e1e4e5;padding:6px 12px;margin:-24px;margin-bottom:24px;font-size:100%}.rst-content .highlighted{background:#F1C40F;display:inline-block;font-weight:bold;padding:0 6px}.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:super;font-size:90%}.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none;border:none;color:#999}.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none;background-color:transparent !important;white-space:normal}.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}.rst-content table.docutils.citation tt,.rst-content table.docutils.citation code,.rst-content table.docutils.footnote tt,.rst-content table.docutils.footnote code{color:#555}.rst-content table.field-list{border:none}.rst-content table.field-list td{border:none;padding-top:5px}.rst-content table.field-list td>strong{display:inline-block;margin-top:3px}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left;padding-left:0}.rst-content tt,.rst-content tt,.rst-content code{color:#000;padding:2px 5px}.rst-content tt big,.rst-content tt em,.rst-content tt big,.rst-content code big,.rst-content tt em,.rst-content code em{font-size:100% !important;line-height:normal}.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal{color:#E74C3C}.rst-content tt.xref,a .rst-content tt,.rst-content tt.xref,.rst-content code.xref,a .rst-content tt,a .rst-content code{font-weight:bold;color:#404040}.rst-content a tt,.rst-content a tt,.rst-content a code{color:#2980B9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:bold}.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important}.rst-content dl dd{margin:0 0 12px 24px}.rst-content dl:not(.docutils){margin-bottom:24px}.rst-content dl:not(.docutils) dt{display:inline-block;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980B9;border-top:solid 3px #6ab0de;padding:6px;position:relative}.rst-content dl:not(.docutils) dt:before{color:#6ab0de}.rst-content dl:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:#555}.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dt:first-child{margin-top:0}.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) code{font-weight:bold}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) code.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname{font-weight:bold}.rst-content dl:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}.rst-content dl:not(.docutils) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:bold}.rst-content tt.download,.rst-content code.download{background:inherit;padding:inherit;font-weight:normal;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content tt.download span:first-child,.rst-content code.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}@media screen and (max-width: 480px){.rst-content .sidebar{width:100%}}span[id*='MathJax-Span']{color:#404040}.math{text-align:center}@font-face{font-family:"Inconsolata";font-style:normal;font-weight:400;src:local("Inconsolata"),local("Inconsolata-Regular"),url(../fonts/Inconsolata-Regular.ttf) format("truetype")}@font-face{font-family:"Inconsolata";font-style:normal;font-weight:700;src:local("Inconsolata Bold"),local("Inconsolata-Bold"),url(../fonts/Inconsolata-Bold.ttf) format("truetype")}@font-face{font-family:"Lato";font-style:normal;font-weight:400;src:local("Lato Regular"),local("Lato-Regular"),url(../fonts/Lato-Regular.ttf) format("truetype")}@font-face{font-family:"Lato";font-style:normal;font-weight:700;src:local("Lato Bold"),local("Lato-Bold"),url(../fonts/Lato-Bold.ttf) format("truetype")}@font-face{font-family:"Roboto Slab";font-style:normal;font-weight:400;src:local("Roboto Slab Regular"),local("RobotoSlab-Regular"),url(../fonts/RobotoSlab-Regular.ttf) format("truetype")}@font-face{font-family:"Roboto Slab";font-style:normal;font-weight:700;src:local("Roboto Slab Bold"),local("RobotoSlab-Bold"),url(../fonts/RobotoSlab-Bold.ttf) format("truetype")} +/*# sourceMappingURL=theme.css.map */ diff --git a/docs/build/html/_static/doctools.js b/docs/build/html/_static/doctools.js new file mode 100644 index 00000000..56549772 --- /dev/null +++ b/docs/build/html/_static/doctools.js @@ -0,0 +1,287 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2017 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 + */ +jQuery.urldecode = function(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) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var 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); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/* + * 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(); + + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return 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]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + 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; + }, + + /** + * add context elements like header anchor links + */ + 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); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash) + 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'); + } + 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'); + }, + + /** + * 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).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); \ No newline at end of file diff --git a/docs/build/html/_static/down-pressed.png b/docs/build/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`OFdm2Ln;`PZ^+1>KjR?B@S0W7 z%OS_REiHONoJ6{+Ks@6k3590|7k9F+ddB6!zw3#&!aw#S`x}3V3&=A(a#84O-&F7T z^k3tZB;&iR9siw0|F|E|DAL<8r-F4!1H-;1{e*~yAKZN5f0|Ei6yUmR#Is)EM(Po_ zi`qJR6|P<~+)N+kSDgL7AjdIC_!O7Q?eGb+L+qOjm{~LLinM4NHn7U%HcK%uoMYO5 VJ~8zD2B3o(JYD@<);T3K0RV0%P>BEl literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/down.png b/docs/build/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6CVIL!hEy=F?b*7pIY7kW{q%Rg zx!yQ<9v8bmJwa`TQk7YSw}WVQ()mRdQ;TC;* literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/file.png b/docs/build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/fonts/Inconsolata-Bold.ttf b/docs/build/html/_static/fonts/Inconsolata-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..809c1f5828f86235347019a50e78b4b486a6a045 GIT binary patch literal 109948 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 lSJOz#fX%lhbk8e1i0vq836dY`S4{>Iiq8{2xe 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

bO)#R zarzLak8t`Vr_XWv_sz#`+U$Id(>I;Yv322Nge>_%4srx8xe zIj!Nek<)fgh0a>G=2uO;bqtxZPrJ?Y@O?Hed@@WKJ*a29xL00JQM$&Mq;JFxps0bkailezmU9|0 zQ|R1AOk}7um98>WrW&EL)JT=B+{Ξ29ypp!R(LOYK$fsCU(S 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 YaFbT>1t<8 literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/fonts/Lato-Bold.ttf b/docs/build/html/_static/fonts/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1d23c7066e095b5bff2c373d4064dc4f33659783 GIT binary patch literal 656544 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

f8495bJUR}lganziPo-_m8XTO;| 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%0AXJ$}2tfE_bG!=1%jk z1tfYj)y2Na%kV$m;EFHD(I;;w_Rv*aW<)#pvB6<)V(h9rx)17VTb zLJXluN-E7oF%ci0q73qXY_XZ;g;1f5QNtAjm38ggw237gJ^KFp^5uM3j_OOqxU3K7 z3tI^IV!RS{(D@!k?I{*?wD%CCQ@r>0@b_>YCEnYtZwjYFXEf-6&n@^q%u(@uPPN3S z=U(lY_M0GmsagOAd_S`sNBKhf?ko+7Ch6!{fn$fXTEodxNHS2oP%5ZStFv3In0^Sc zFsOl9;Kf`_mTmk=Ssz{a-36JZeDIdz|FY=qxxOM_uHL4o|N4z1Gu3Wm`|R0?i8*$* z)8h7@h1> zg1(RaIE+qsNznJ3bgU5qrwaP>aKtzIm+0`0^ZN2|%7}H4JIt2DrGSGRluDD*>}ej& z%7bi>3w>H>=qp(rw4$5y%2WIamVe!9&u}{8e*`aouk|55e*}H01u_XbbX1GV$HdLYWT$a198EXR ziv^v=N|ZOxiv^v=O3?Qk=f#3f*jCUx!|8n85cEUgbdGHW{cr?5#P=A{v2XGEHOgyS zD&_jJu+{P{3+IH$*E|nJ21(;f%1R1Un)Ce3BJ3DBN7c+EsN6_16lWSM=+t71e&YDb zmB(4)mh+!^^t!oK`oHLOW99ZWKHnPpd8to+<6-@a7cRKq1(x*i!z}5A3u@>8WXrLY zYmTgKYg>C{&6*=OwBghP{DBcKLmw*|>C$eb7$9A`CfZlBx9`B&xbYpp75qCmbfB}B z|Ml;HonyU4<#rA}HjvT#!eofn1VMk30sIDKi+m^r{jG?x+!3U|9Zu(VZ&Ciw5p=S9 z3;Mezo!Z0qV4{-`CCLQVn}~LWWQO}N0O_>rk6Tm=<)3vSzCg3DVYo-eW{KQtuuIFZ zOJlXr7@(4(7^kdci#`iyATH8 zn=jZ-d<&}=?G)c68&2*)-ee~i{c>}7zi>ObXwxn_4MH7!J%gQG4%x{A1F3Jh{wL~a z)A18}VKjY+e=DbFMU@{a=z&3;PI{iGr%BJ{@+eAIh zqMkr`6upHkOlBW&I|VN<#-7t}r#%GgTNcefoD~q5hixC26v39^C&zE+VoH$sx9a*-Ydpwk?XUX7ds_zoNT^e{dtS@KGcw(pIB0$N~$ z50W_C=gyKANuw@S=f(0p&d2K^uOJxO-Zg>P?LpNA5bXJ~)(U8R!R@|U)d9+wv)?&H{2?bLbIiOsKWYWCNGe|5iym-du z)%jzJAeu^ycg08{nYS)wAChdYdws~-rMoptclpeg8hnG`uYsn)nG`VAm^7LeK3#;z zc|vw#wwN%s(@YpoYA;iUC9psCIB8C4+rCDZh(6Y0xvY8&S^aewo%Rnw-)H(c0Gr2h z>@Vogvshk!8n)C}zE^X)_J~=Y(`mmE^vw};nhT)wx$t)6T%fkW&L74L`#vn{CY@tT zsuMaX(J{{snRP?w4to!nI)=Yj8Tee4__xB+#pmVE!|3#_g1$#O-XndVN!PE$i6or| zQF)8>{8jjY;pFuLs}7Nd`dWtI+&2&Ys_=`X>;94gTM;CYoU|B69e{p@gQQ0u-_lf8 zQs~Xf#En!EM#31CvNt~w9>O^mVT-Ahi@7C9oHh=swA2k63SZ(hm-1M=J0-Px4qWeb`{TzB}gQ8)g0RoSH2JV!?J*~3Sc3v~qUDH;6U81wJru4j}O=GI_OB&~{>zH)+#ch+vpzlQ= z(zxN<`M4eLrt4I~Um>i2*hkbq#=C{qeP%yv8_fQsaj}u!$m`TLO2<(e*441RoY%>9 zEb8+jsxyo`-AWSPsl*4Xt9mDwMY18l=SzBp^UuM!-N|KF(4YUm?7azKTh)~}{@#X-L@=SizRvA_f>J?EOu71I?h6NAR!4!*h1L}ggq@#wnBjxS|E#=GzpYaNDFkJ zowgKO+Uc~Nk8aEiw9`^16k_@NoqOMto@6;d|1u>R-$maWRcBlboBw zISo|(;-hxNu6-Nv7L_dCqDa`0uol9vX*KE*+AT;*%taKUQQB=Z;B3Sr*ftIGKUl;P z-2Y1YPAO~0!i|^bXfTqn>tLYO6_q=js@poD{Y-cL`ek~lfGY-EU_U%310d4IZ%V1(UBv*zr)gg)7M zX*sZvDPuVuy_fp#t^8dj-IjM5$PsPd!k1UKb`?6x&WMbPP%at&pDF&O;I*B_AYFcH)1T%p5766KEMUrIuG z$)`+~v~*7qygyQJ>WFJ z*1MXoxA1Q{;fFHdwBEe^5#d8kd+MLVj}u%FdH+~5w-87a=fn07@z1WQQ=Qv2VTX=c zd?D9KBT5G+JuHe~=o+e<(HRE(#YX1J!e5vANaa zuf5<6oY%iY^O0W$_hB5MuXo0;p5znfbIuwo;Q~AnV06dk09g;OZ3;)kLws&u%a}9K zGH?Hea5~+d$z0z4>0IrJ_Jt3#*D3ip8~=~^_~D1{9EZ0Fe&}nn;EB^8F*vvlV@|gp z7%wI`#f!-S!#k;drtyA~$5?xcJ7Hr(Jl7u9{_9!r?(shnoUh-Mb0Im$=lFGHy%CRw zc+4E@4RwkI7|?nf$ikm%y)DW2#{ZmSy_?3rFE#1*OkQu2YWjVQerp*09uj^;<5u8A zryTy2@RkNnYX&%5gSRr*0KCom#2jpj)ml|4@d8Q|F}>2`aB-`(QG`B47Dci*>h~3o z7fXNq=xa8M^!9k2zD}NA7yIb#H_vlN3-p1XWKYH14d8+--(*5XeH2gjV|G5gM@i1B?TEck_<1q-JD3$&U z$5QY7LQ4mRuchF>(!z0oQ0P+pA6mHP+rL)fIlm2RQ@@=Wmq8d)-yvQxJfeO>zdQr} zkOGejCxlJn4ACH*#B**npTQ!b(|uEX5a%CigTtoKG|{YIq5mE-k?g{taCgF!=$2$- zy(k#$W*kRjg>ZUN>LC$tqhKue+0Ni+ zTpTR+Eoqn*FIaz0+uSB!Y|i^j z0Td-0o{4S6s3jbMv06U_F;)Q@$arQ{pXC6{`k@hp=wispK}I||1F@}aC*7T|?Y3bV zW=obGzY}^E|N4}zcVxGw@l<8^O_@OK15oC&-oT!zhr*|a!k0Cm%$KkWs$(K~m+y#A z4@GODu`t{HI6*PB&0uU*DaK$_10|Vlo|2|}MMId>JiaA5n#BvMHnew+Cc-<sA-P5`c zPn$RM+OO|<o2Hj9uZZLWw#D##H6Yi))j1nitgD397XnY1uBB6}Kj3(=%Tq*%v35=0lYyAo z*L7S^I@hmTdk8PeCQT<(tbALFKw9*3m1Re0@BfNrCmu?ELE)h$&;j;jg(n8V zTkkWO+YUH%`!)E1_JcS_yw7AV!4a3l>#qa;J1rbC_ps9bek~k!eZV1a2O*0efh;Z% zdW8SM<*lnz6pRHhO$wEw3=fi|gD6f+f!l<>YqHuy_#u^&UNVd_5y}crsP8121sy`Fbb3XEram+2HPxqyFOkj&hfl2pyPQLSM#4BNLz7JNxC2!Pl2sczJ60ybfwuV#^R_jJ zU(Obx=QmnCeGhM4a?7UnzCDj@TDG_0lythes%q)ABP%ao5J_}j`uAD^T3)+h){2?? zUc6%0iw739)k%R5{{_oI>%rEW)*~+5nXt#;pJGelC2t&??w*95OyuYv{IDq-BN!Xe`NW@$zXyHB1V-n=E&5v+d;oZQm+d*-Xo%QY;nAG% zgBftzi+KCPQ^3bE;G~1|_Qx{dq$6|qi41tU|7SAbw5Rd*Ckc*qX5+`6X2N;=vSVIs zXq59!8(JLXE+JMB856h*-JqkAEHFxrg50zAv`^HMZEJ;QGfsZB<{G3E7o&Kml}dM( zn+=|7F{QMkwD9B|jxnL{?z%-+z`vwT{kuMAt<<{i7+wm!Xo{){V6 z>|Xcfi>4QbrHdPuCZc`qU>=u|HBREK6B&3zKaj-=!oZBr_A-sfp^He zclAyckC1myX!;==62q_fy6_bZoa}-e??=l*1^0fuQ!N2@VzIE=}FAZ$TVB*j1x{S23*JdstbYHY~8);)N^v@~`i*MD=4N8K= zx_4)=xA@|_CYn=Roj3_?Y}U;0-$(P2~@Hf13ZmH);3{DjYdG z8vcfUqVRX}xilR9j-$d?nco>vH%grc9p@?dJ3NS{Sta~j;i{oIO*MM6p;xK(U`_v> zuJ+I;81oJJMucS>%=rfMb}*=5LDdJFDBHz+qny9digFO*1`3z5j0zSDlp8AfunHOs zEBOEmS7rz1ynJ)sC+UaEJ}BLcBw}S{UaugOttuN`x_HJwqMyfPc}u;eCB>MRCwJio z7#&=>k_AFhtdsgWoOQ0zpZwgpOatiuS%AxXOUFXcNt(|{PS7}4Y=?pcL zo_;NRKlr3Pi@l%k@u@vkY*cB5?fqm2W3m?&RCDhA;)DXPgy4P2xD@SsaTcJOhkL~9 zm6!~E0RmLr@YM!gOPvkb#Gn>lx-rXxcZP!+-BNUN?rdF?5hbKeyw zudP}hG)Z;gb=NM6NT0dwwp071UNQgl31zaOH4k4j-JExo&m5kry0ztG;x5#D*yCfvbO4;S5)0Q{d`5&_!k^ z22nBTQ=ts~XrV%!PtR`csYQdgie~l;P>uyr8GP@qr_p4)z;fWppr?(}(_$N*~70sBoII{>fZ(HqHcn^o#D{u{^Mw zy;_t_H9pAhIe#6vm2Ki6ErWrn z*c(`N5&cM>QPS%-4>R#k)w=mt+A`mjQHfWn+O7UdA)J%n{@Xr^(-*=+g?^#GueYbW zi`4{bsDmY#2p#{?ftHba_8Riyn~d5y@8_g{`T69vA0&4&79h5t*(*zpAtoN~VJxvi z!x9G$oVs3Ni8-ki?_x6GvVff=Mbi{af*Ei=G2Sf`?IOO8_(Y`v{2|FdSK;F8`Xefz z7+zugz}kzy)gMgJ%w;N^(aaN5(9CyWT{aJo*|6j`pJ-s@qR__hn3F>}5vdeoBZ~2f zDrFJD(AzbdMMr^5&LYd6{XQGp;g?oldsy)HNE(nBA zKqHwlLJ^}1eaIKHIG7PeABUu7w%(1&yLCx+o}!=uc z{N)Td=@`8ISO%Qp>^b~k2At0S9DYK94?=%^U#9-aK!@AOl=C2mQ~w-(I0H`O~sjwCYMQqpvEjH2)P)9Tq)>es4_65 zkv9Y}+Xe$O`ZB=>7lx7&K!&{DOh-Gf+kMXLEe)rrw&(O+Yvz@9T1tJs z%Jz9(*nPvn-oXV8Ywtd{lMHPQ3#NA#Tdj@Kcyr~KAN$HZ{XNo&(?e^%xObyJevxSX0tTaS;Cxum6R3m5(xdT_UaK`C)F{lbOdT zvm5kU<3$Ze=HnyM%y^ccenzHDdS+4I(>$XHg~`uMX}_W7Ju`cco@Knk!DPv%|M)Ob zU|ZJ7M)<2y7I&1wDz*<>^O;54jNN|YFtS9E)5ekvxlNlU(2?UU=8EF)SjGH&8KrS^ zzE6|vNxg5eFm}ru#R*Yiw@=UqA!FvJ>w{a_4N#|d4&ywloe`aDaI{tMFlj{Ww6bxS zO^QlUs#g9SeI*j9ZcyxiQjk7DZ*;#wYB+3Z5`~a2ORP&4FB+aRtv?bk$3X~k#-`fz zRXLN>qR*ww$4H)TT#rpwens|3$CTrd%M`TRD+6s+?^+jLeR%696i0Wb<RX>a226C6H)C=T5REY_a_K#-F(aUR=S_Y$1> zmN@*Rn9t#`VSd1TOAHR%lLo9N08Z!A4&%e4g80TnGvi9B{r@ zyAd2#hVwJqnX;jVlm{uyJwg)C3fewwB&$pIxw#U-BREOJSi@ZD*^M*K%K0pp$QAK$ z2fE@ir&=fQWEzZ)$kZ7|&En3U1M8Mtv%L1yvK5J)O`SPYjhasB?(CS^x#jj{ z*KFx(8ZXX~cf|bTh=b7L6F#{w65b~M75FE-1%%CsJQX?Q*Cr=V5CxOK2Z&u+hnd0K zqs-T@-fQL0Xp(x0#^MMrMWEC#R_c|`dxQrAP79OqKm~eQQR>wb5-*@>Urp0qj%lBQ zHYXM(f3LexndaxD?QEKz`d#;a``h<|KF?0xqdUUteynG7wON8a0DJ1$nA{ftry2+| zhsWwM8!v{>4)H-2=Hn-Y0x1TN#%M);`wevIkqTzFX1bkuCOp)^=>W4cmM&HGl;s|l zO5)xR#Ny)Wu28VEs;H={GZ^ZsF4jvQCE-h{4t5Z%12Fp8#pwEM)O5qRK)-Cf;%_Im zF}nUHYO(dIa5_^=Y-4ANw2cuLKPPY1c`zpzq7bea9wTuJdPKEdS+|pFowLdyI7ZT; z5w?nr!!TX&$X=#SHK=U`BkDlF;F$9rtX(SVE#ZT4q#_;-v;5~mFH&(`A`14pt6eGI zB##?X+?9x>fu~Xv-}assFTj%|DnV{9e~^k`(|=Bbq!1zPLu693KsLQ}`WO#YBi?@r zQ@juPr7>aS1j&#mCN5++y%r08Hit7BI5=?;!zoT{(i+%g)%J&Z`-$%WK2v@;1wX35 zUjw{TzDI@2Cl&ZV0^T66QsKf01^y=B&6@t7(exAN?UDR|TP2k>o}z!OrXaq`&Yx^v z;_DL^=N$i-(*LWVl{tEe#$zE{;?apqGS8pD)l(STe!~aKnB&61i3i02v^_?BD0asI z7MaWPaHInCXAwe)QdAp*Hji|BvU!1yn2C!W^$QFve~{U&u*i;Pso>^QH{<`s+n6Ov zd?`t`P*H$P7cW46Istc{LWq(HQc#L>5i{w?heOPC!70uv;NvU77k8<1B45?SB@71~ z$H!FMOF9JyQOplHwklklVDpkDzLva)@x4ok3l|@ULmv}>G$Uog51wF_%pfAFBnga; zxYtz}S%6)zOCkbw?PvmLXSJlmh!;K>9ZZ8LJ;0iEK9em?!8k!Ew=KDWh=TFLt8WQih8 zyq>&As$?>uo-A@@rBGR6*G!;HX9y21%Bt6(umcduB@~;9N z?_@dFFh8Si501T4u9xId)~C#@D~d&%%B0#8K!6}!W;Hc}jA3s<>`?dW*pTh$N|D6^Nz2qjEJB!cU485dP zxQ}yhUI5u9)gsEv;{2rkfePw4G4XgF1EdzE1fWi|0aX)0Aq6VeV$<|$u;byj_gc|W32AC+LNEFkYks9Itdx7SgP47T%;nIT<-(KXp4 z(yF_Cn%U$Fn8v_~hL*DVmnf zcGHn$wfN&BHyx22b&XQ4iqXMl`0Dg}5l=;Nd-@?SQcxq*L{MlZ77LMm3lbO+ z-l*k>R08@J${6OrQ>)b9aMIX&cZ0pa-#vX^-MY)m3TH1{*SPe$mG!5VEsjlVEcsyZ z!nV~FdZ~79X;Zo9+~v)4>bxx*53Hs$#rh4!jYAFe+mj|T;g~#n=mWEPBZyVxRg-ZGr>SF@rdm0Ip2Yl zP@Ct0A@VFpA3*mxUV}kF{Srm}_4oF4;Xs2$!l@_1GDSi;mW4`kX0Kiji6Q^>$J&)T zm2)w(Oa<+glNWFD5+|!N#0OYNxO}47P>L9pCgcwOm?OC`g!C#KHl4QGs!AgXPTi0f zXvfmfBiuka`H`|dQ6SJn=~dzg)`pJLSa@laRju5Nk`@GFjx8!QTsf&R>bz3PCLB@8 z_lhIA`a+Jj;B2KS*_6_4u^##59#6zei@_quW&{uo67l|uavl1?5Tj0J)XnIGT;ZO{5AzUA#ts&KNwr2E01{UGm$Yzb*N_Uwlg`2AWquX(HN<%hxN zb;1uh8`>hG-cTZ%^r+T_h*D&oX#f(7YG8?~*t2oEHNgz3X2@)Y+D9i_l8tKh7KOK~ z(ya{!kb+*XgrwzoBhi>{jPnk1V-bCm<0TN4`W4U-iN89bjtGfjAo6fEVKisRgKFSO z5g5s3{o(A5{U^+}LsaD`8=SYIh3q{iGB~naHS2(o7L~O|J!I@jR?%7}?=iTbBdcq+ zSKti%0v@w03on&w`qQ@-?{vvmor;Hz346HgB zH$|vn)2^mAo~;7+kCfQ;?7rEv_dUC7_c!*X#b0sQo-(_ zn_k>|>5Kb^PCsz)vBwS{dGygk8oW`AB_HQIImWqw2hI9YgAJz#iz`3;a^#vGl&0}!zb<|`eHGv9R8-J z{UVnC%;7)Nz`IzCDu@4Eh0}PLOd~k-KZaK$B#(AnX}TF>&vlr`SMVNAu*ene5;_xY z9YtrXZ3^#&5?G4brge4Y>C)U<9)omSrLRvQd zlgqE+~CPq}JTUY_pwH0}1?f?1( zL~TTU+mGL{#Oj?^k*ZzFc!1?vGo0y{XW)e7G=n3COoJ=KLkgU7u*Z;tO)+M~Q<^Mn zq64;mr_?^=eHnfHGzGso15UA$?3?obDd0C~;mn@T+t18|Ltb%sZzep|e_sZiYI5-Q zom0RQnebFU0~zov{#Eh7?sVY&cW1PpO1@FNA8U_zKMn5F@)q%a9Nsu_RL^aaJDD6l zh+7v(zU@surLTfdl5#7qNm!6qA&4O=ZmC54`fnr$^=EyD4l7We3Zb~)v>Z4 zi6`?Kk$7V5e`wp1n~`I(`%5gx1p61I>s2kIG?V$|)4Cs`w32UMu^VY6t@X)O@}gSI z1UP4NXEwWC02qXW?OON`u+{`8x`n=iJhb;yxT+T(&4H^Zd=v0cAY6JK!x|;>g5MRa zZ6nSja zW6}EA&z{=1@64#Z>B!ctNA&H$u9DBn=&DCtIy_c_85fk`9zP_riUuKy11JkqqeD;z z910fnuS^gkP00~WSc_yLmYZzN{n3Bm6n_7d03T6uO-?9y-_w&=4;m2a=Zz?VaE)7kKDZpTX&}`1U;_? zta7Hc&6xrlLHOdw@lRb%cJ!;awU?5%rdsul2M1ruNZ_)o?3I=)l%a~dyX|xhAPN%4 zU=J39Wvmt~*HZk%TC5Z-WP_5OIZ41wZla10zbas;3D_dtiQ0k-nCgh9iZWQE@pd0C zEz5kK;18WDV_11v4W6XI4G*7J8dRhVWX>CkpxHRO@!>s@n1Y%^_ip}j^_9!Hs7bao zS4ppMd2`1*Gw<7c)S%#mWVe zgLVAqLcTYM6vQpa#6Z*sysc^*kTTgVl`~GNT_Oe#Ef)5itd{CAMQw;B$fsJC4o`^U zpcJPokI01Y8Cp%++64)Zf?-!ST(@#ob%E?Euy>bKCYs}pJMTPo%{8BmmCCw>tIjQZ z#%a$htW8vQ^Ppq#C4WT08F2G!w%>CcpHy&s0qlDkT*AHwTmttDF4H-I+Q)juAxVEXdF5w~Y$_Y}%cM3`vq_zz4fFd{^=Sp=YIDp01u+0EQLEzB1 zGh;C(g~{`8A!Lm=p0p}CUZ7z#q+U>i>$8`WUL?I#6OYdqR?txx|8_z9qGolo-Xk%U zPcjO(+)T01Qv~I+MPEN@(T`6$qE4cKWPj!fRWJD?SXZ1rrMG0#j~Gu$I?hw%vjv>- zAn}?w!Qre%RXu}Wgmq8r0#v)Io}CLg{IH@UWW&c)IBXsD>|Dd!zXSs|@hoePb7U`7 z#im-srSOMMS&JA_Ok0aM60e7}qC``kg^NFO*CB>)Pg96kdMD58a8|Yr*3Vg7J!|D^ za8&C#_ik+6w0eOOJ=iv zeM6UzHp9cNgbsSbwT0z%cvL-b_Kf~rOPgnQVv4{y#|fPW_}ovXaI#;E6Y;l%6Q%un z!%U@pOgMN6c}z}Te=)D)e=&0htNpV3*I2*u?b?1BuM-?KtI#jr$5Y@t`H=1@;Cr!% zXbak`Z9Ssd7=T1e*?2SnZsVZ<=q5N{WV4Bikr~WL4a7#Rm~ANg!k|_bO36a1>dVcN z9qBjo%yQm#n0pQ8JZ%r)uqocB0rq_S`>Y<2!lv8O@|aZ?o<7yKw_Y=eYxn{$S;lUS>H^mw{wR&%Yrv2MV+o!XErjau0Tf z&#=AuC8BlES0wob>6d`_2(R(@E(dg4xu?VrPl?g4m=UvJoXRMCJ}MymYZt5MuPGOB2w5VueD3KdtG+?uv&6eQEUM60fRhJTEgO*#uRxSLA+0b{D;R$BMU1lzv%revdU*-s+l-=ekQCZIMg7 zSBcK#AL=W8Wj?3bVlxd5m)964C#+uYxoxM^TU@-}FBZDJ$>+w#-)LyFWELyI7hm=~vPS zuuc|ZSdUjh7_j8nT1`W3UajT@>;-CjER{1FjlgOYXNpvN=4v#vVk7BWZ?Gc7gE5{9 zi(AdVn_7gwu<9b?|Djokwp)f5T^PQb`3-#6U3bc(#Xl;Goc@Q;s7p{=*U|cJNk}*A z2YfB`V{9$12JVdVw

j;E%EMHG>OJDDV*KLZ8Rs;3>)vyGm^jIK@Zt_J`B`$b&2n ziuZp~1MgvRO}zaHP5+Bzil@4o^?y{;f4`>xXEgn2zdNS(gZj?%`Ml6i9P`3BAt#PX zmuJSpVXh(8mgEG!scD1TV0lh1wZXjaWHC@QF2q1dPw*Hh>Ng_>N+SA}i}7ujkPuEK z@^EO*uL9$fS%%1~Rj@$DScIKcx@b}|%F;Txz0`=iJjB_ti`gkB&}h`HGLw^nos7wk z(WAaBn2>Y{nZi3UP1y-t)#*MGiBJ7H+i;9V^D1mY+ssr!BO(e3%HZm1Zmg?8KwmJR zUg@rc{n&Gd{ZNh~U3sYyIgG$F*#KF3dV5wN(7)bw>gubL<(cGu{p~4!kY2w_e;13G z?5r*-s_tYFl&Am7Bgyj9!l$E>&P@qDsucCqc1X{P8GNL-EdxKrSofewpIx z7%$^giJuBQKP^MVi8S0;$9Que@DG`z2TSqx#&Xu4!G$LjIC#(aFC5Nf!a+^@x0y`f z?GJ0<-)1t0_kU6Y|2mU7y!{DH|373hXCLeTsHXjMn*N{Bz_s5UQ~OCiXZ!)57n2c3 z^~n#5P#>PnkIRU(JYj7~=HQzobEs{08{ALmWHN`w1(_pPaG68jn=EsT_cNKZO7tcy z!=j;}zY51cm5jR`&?AjiasaVq|PMzKKW7_@Bja>bW@7Uk6$Q7_C3dB zD3eWyyakUd@SD;yQJhfVJE24Wf!RE+Cm9Og{Fhn#Z1}+pIQc+%`@}(3R2;e7UK9FkkX5vwlz) zNefSpXH46_;Ssex{GJ;87(P(okg3A=xlE7t+L^pL zJ$A_SW5VGNW$IIU`a_uvBGf19zoh0za$k6ClHA{k+}l(eoIpInS5;i<{$L<~E5iZ& zt=c(}zm>ypVRONy&ZyCR2jVwtgnJTsr3m)5BJ7nm1ma=}&ev(f1Ca;_ep5qKU>KpC zkT7q>n35t1nVo)HW=jg7;<{+=#!y<+UYU(CLis!8QEp7;W(F#CoT|EpSa6rz!vPbP%i3OeK+`f!rN7roWY?6MbCV!~w z%Iu2_U+}+jJTA%PDfnMG9JR*uKAGZIC;-_Y9K8ZR(2p5$2R=rt3@-kb;Ls09R!jqOjw)E0==M);>r z+Y*~23uQsW5tI{UCR`Sl5S<+V*DHqDr5-MRb2r<=r0*Qfw(KN7N}l_@lBnV3fIxn9yd>rUFMy=mE`lNhb03&x)UC>tn!r+E^?+-CN_f$*Fs5 z{KIgQP$E}6Tp85ku9y%Vz!8;b#Q*5x8nSh}5SQK74OX)K!5^~xOtzX{umlT#A)cK) z{0Dz=-kTQpA#dc@$s;9Bag(FentT&C);PpJ*&WFz!XeQXO%?-JYz)l)c@xG2%cqie z&*3z84nGFR6Va3&G(~wj4Z$s|f-rTLrRX-0O*5LlWgy>il`aK@~F zw*+Dg)x=mOd`;UHR*w|(CJHc=2B87SK?%wz1r6u4EKZFwmwrw*tt~kt4&TlqyQy)S zyq~SP0e=2cMuRtFu(U7Un-hL815Px^+aJz=(>ieYF@j?qSpQfDuMkd@*>N#AQi60y zoZz{B$o@equiy#e?qF}V85W#s(Urw=&HB>u*DR6pr(Z~}`&l4l`bUf1Xm(n@Z;C>g zeE6GUzxV~+u@dL_JN~wkl6Jr30(WWVkQyuMN2zn$uPaEW|Fot($t^yIqp9|U zBic)O``3m0H0^0m=Iu{pv?spf@RJ#E;x7(=_7nA!g;U~%tTlUH>A!`dFW6e%0tCRX zvzX(7!wC-@K9&KeadP;{40yWzVHFNtW0c{IwHJTesq~MSR1I8yi{M!M7WgHOVC}<{ zF-h!|=Ydax!n&DUSN=$IUl7JW#WYOrgAsO&$?!fT;;*Ad!!qm z+g#jKFpgaebJX1`ekeaBSWvtAJbv#BUF)D8ClMJ0jNs~pR9fg(RvDM=M4Ku5V9J|e zG8>{Wvn%3_MsW!OE6l8vpXYajX>NOgf`EuR+?b)c>_t4Qx~-Jd>A8sh+9|lDxhmo{aMD76|m&-KNQ=(pEh`< zG8Xs|Q4WeyyPd_vQKotrl#RSNM2h2ODpR|GGN3bCPFa5)ZPOh>-K7HTd?U8 zkhQ>SPn1U8#^}t=(>gcIK>{Ywg0-x{TGp_&j0=fGZ!EL!G87=B5|Q&t)=OASN)7^Z z^ZN2zCAwpk*GR5(8uLC`jb!mkTG0?z)Kls%jyeu)E3=q_^ExUAn*yQk#ZB>6uk6Hv zhB~WaSWuTsT0CwD#6#85nY5}yRbD3y3T*6HQz?WsH3`+iCC5-0j@1&Tr753WLpays zoS~3#=K3UfA>nFs6=mHz3#=AiNH|>>*688Xtloa1t`$X9qZaA)CRea9UTZRU)fGic z{dTXpxwyNx+uyN%s5&}hU2hx0-t2|?U)f3v3#zKNwAJU^^ZA06&pK~b%i7shq5hR! z6|})iLghq(6cTYi4yy1CCI(Q#6%$vhC#wP%?cfw%OIBypJc6?TSCE@bxFxd61g)&d z=dkDJp$B8R8I#~wcx2z;k!ucf?c$l|uz{wq}EgWc@{Bv_J5juI>(LMUZT-3})`965n1ah{M& zcG{AVV4(eCb)@3L9ftz0!r7%Ai(1@4m!UFTR`1xG+#=p@l%1|wzS`lo z0Cax*rxQZbucf#=23cP$ED-*cm&_?F5k+GV`}$xdvSa%lk|gJ2U^3KfdSuG=2=aw4 zjgLbg$HWCa<|G(&hPB`=<7gfZ$VOI2lL?gVtgLxCnnOj*Y>pzxCeSFogmZJ|D~ZZ< zYgvF4meh}Ay@it?ZkzXG3H%HE3+B)5Xd|0hk*~mRl;Hrf@Z09oDGeyPDu&|}mqKOa zkw<__U%WgUg+cZFccPm%b}tqGm&$AVL|de^G=l%#QP$ia^cg*|(yqG4?e361+_kXQ z=dw1;Su&>~GGjxcf3!Og3p+gFXjMbFXHoq?tNz8ZVt-kgzbKe|(Vj2soX$L_%~U2u z25b)5RN$@XuPxLWEp`-$_II?D54MGTv8Lj1jV(VKC~9?hXE#(#t0^q{f9r@qJgOM< zzx_Ij!dbezq)zNx9-#t}7En1z3qhp(!|s%5|{`pBg@7a z&VG!zMFc-A#SeCrmxKkl%R8gaM4q-rK}#Fc-W-#LuXEK7x4XkGL%!4L%a^}d5Qus_ zIGamxe6Y1tFR!s!Wm}P3{N1F95lW$F-X*QW8V7`?M7)*T)gqFv-}l*F@)Bc-`@zec zL7UsO{{dH-ycmi{*&)O2$yKKOo9)(PA&1H5_|WQj%4YlxQzJ2^VclKADU3-clqE`V zMxzyGM>W2}Y_H(eMsP!f%=40{{FkX)fjcgx$XJ^PCwBL2nq5&bds9!(ra2WAb2jxf*3~sO)z!&|qq8>lCpOKB z#b#|v^lzLMO>USmXU_ELbLPwd9!bw}NOQ$zHlD^r9i`;4RVP9frR7AZwD^*^U{Xfg z-#R9-IW}`sfB$A0)8_vEO*3Q3^%-NDE&WNFgYzz(ea_3u52*&zm4hU!maCXo(gS1MwVwQjn>{2F5^2m8s%F3AmL6gDpeO0q|`R&09XF=J5 zPUWyfTJ@oA1zx@OtmJWT4A(?4T{s#h%;Pu^x3W z5b&($e?XU^$A#QhLFGe(BMW+gh174sq8aCRin*`$z)9B zx5a&xVV}j|F@-E;<<>)6ik-5&q`Jv@omXGxPrfWUoIW;II@f&ktcr%Ov5IrdWAWCbdwWl|m6VS}1SJ>f>s9U;$ugCaPTmK$#l+TR!a}kqUjWG;pT0 z(MKnrA(fNUX4Zs8aE2aeC?C@UA%DtKsODSRQz(XrVua}vYq}ZD3kT8KNW7-p!49HW z6grzj-%DwB={QiRg>`zqXF;F-QocJMJEseoM!l_(Kw+`6!>YePV;Kt(Te(BXEt!)?_S(;NMHPM>YM#cIK^FyHAaa7TL^BYpKHm8GD^ zGOY1KhAw31PD}LR0uWu13+43!wO z#2+#~5V2QMT`;GBdRi1Wh7%!%wwu|UH;A-5It3ip5wwKLAQ7tGQO2)qr#-S+YX0s6 zuO4s~>k}rc!Du%P=!zWlImuCA`(8K^3??GqwH2U42llXK_)e`5Pn5?BO{40!Gd?&6IYI+=1e153bPy241B2EqXxcX^jcg`G$ZrNiuddxFquTjZInU807ZnV;iscStz6?N8YQa+)S^mfWr3a+g((X--Y~;_oDEskCZx5G zIlabZ2GfAS=eYOCS08gaj4KRzowCdN;8%2ax$^IExpw8dMCXLra+lY)$(nbHf4^WN zD4hjsykCeVBB}4=%b=6xGyvQ(N|;=rjzZ2ciawDMu2DKmJBq_!!6*zX^d`B(;(zcf z|Ln}a*X7!6;e+_R#h1UyM}q(XWB(cg4zzv=dN9ffMdOzMp>V%Mduqk#+e9ow$v;>M zeb;RM;e9Tze#np~%lU@cSR7Ey#YL{4iobB?pLCR?+`jWUD-|%ncdMX3zmD(Pgn?tQ zNkEn3dxr;mpTfGJS<;h*&E(0XB||Gx)UB{+(sR0H_|E76+uq*>&379 zDmj{8@b_<`4%^yz*@ST2kR|LAb=OfZ6YoJJT!e2s1f0uZh9_%@%99&~xsK|f4tLFj zfb2NYDeU63>SD8e(c6(4OY)#2X!C`WhfMY1SESkRMT&L1tG9ISUUB+XUkts9hz}R^ zxa%Dncw3^GEP_GI!~?xVH^g)nGU#(1ih_et3kW%KQGaof7dhy0nG2;jJgu%$-0X`) zDSX}tG%FX>n=vN%V?9z)`-Wm~$6-5Ju`L>c!MN#rw(Mp>^{=vpTw->fquf4*(`v(~JGB``BG47~Pov47< z9_l}=eH(abAXMIDwKRdjsDR58e02YY*?=r|s#0b|L{puvmDCQ81Lgo9{_exyI20JF z=im3cyOV#u`#1N_|5|l@WZ^YyMcdieE{fFSTjPJd>Ia`+VN5f7RUN6SiqJ6uj!8p=jh&gH zZ7|od*--d9Cg;N>Tl&QE<|ch9Las4!ER4a`SULXg;H9H2vo3vj<;sUInborL(!udR zR5kpzVSU5MUFUUge_qso{_~>l`SZKC-Z=u`FK&$1iw*fpulefQ9gl8nYuondjC&&ztw@S=JCJUvh0CoVJmq@Pc0WbdnZipva7>F3EcS$yd$cJsEKFNi(=`A_Go7T@HUn zg(r9EkFdO3f`g94OF2FXp2BCG!x5sL!fVF!m`r$8-p=uUOeXwJdY-~VOeQ=}dY-~} zOeTDv={e#3OwS4blb&n7PwO!0Ijd1Yc!|kfAM>2nW%B##`ovTCQ`c$c#Cy6OY`r0` zh>q8CI_7ZVZw8lVP66+o0^XMaCqCuzF--L|3kz`Ro(YP9Gz2px_9sdcg2NC>0T~I-5$49C5m!VldYdZg z)Do)})svP|a!)^-V%jcfJk{0FXf17sEV!~XJb(GwZ4~X6d`kCEyfU}+#`MJcg3?0U z?BQ@ng_kNhL1yr=60T{i*i(eZ8SQ4ndxg7m!uy0nX*i=L-cP^q`81r-Fo$<$^iONU z;R%7q;_&aL;RA?vB-zH`n*OI{^iOL;{eXrp!4I`Pqg~#AxA1`mPBh8kJ;K)%_%3}D z%j4znIl@(GIFkVc$6iC@Cn}%fIm6Q#o-=%9KTpjIdkxJi`*{j~*lTirU&U8kW_Ucq z`wXAi&o$p?c+GyE!Xsn=((IJkYw$xn!12TIthQk50KCd7zT=202fj7WcTc=8^)O!f zIl+Z@CZNq=kG~J_`{h5PUk-nl;NT(F9`Q5|;c;$vL7jaZlPKYpDp!JiwlRYW-G?>l z(GK>AE|{J4h`&YNxJi%rTi#rc=&hVDF#E}|XrzEn6D|r)g?&M_?e9L-*1tN`HW(S$ zFg>i7#_I-V3>U}!w%SG8r_mg{F!!@D$0FfVRAzm!gV-DV7dZI zT~b0aP4`T#cCc17^E0*LeGwAQ)Qa~-_&8H57T0p72Iz)cnaI#sBotCkk|%0H(1Q{n zScl7T)KaJsxp6xz12>di;i49oz{ahf8T#%M>LsnFCrjMmcd zUIqTsEO?&+e+}@3j5l~c{T#0JPdvxrol5(EVg01x2~9sejE8yq0S#Q+|1<@jllH+A zGtvK@j2C%7GnDoZ06wT0=OBkG<0RhX?Yk6s6&q(7-mUa=l);HtdHWs({xXA;KE>du zC(n8G+YCo2Awy`S&)Zf9}=cG6|yXg*1Q`F*7o08=;yXh3Y(nzzLPSGn7e<(Fp=5^w? z9We8@=JOPQGIc|ij89WKLmRa-#w*MT2irmno}g$flUZO>i-ci12;c|onwo%ku#WyW zo{FyWs`=BJtZg^0xM)tE@v@eVQ_Ghv+7UT5t^G;p1wLD0)7<8zqlxNO@qce^(*NuD zBdd3=m@n-cubq*=vVyP9$GSGKz3?pnjB?4UU)~i zll8;l6w}G!$1>m~^Ev$83^?&EgUd6gfcH)T@6*B=pYVSAwQ$Ct9NswvJTV1)KnvIO zKTQi~e9QZvJ_US+7Ov@MPz%@e(=`RWI|EMq%)i@{0VjTDaMbJ5t_$%qhd)DbY_5sq zQ}Qd&TP>)`yW$wa<5+AJZ6Zo0BFg0^%*FzrCbPRp?Y>enhEY94SY>p39zRw&a8^b8z}tv|z(VhIep^FyR%o-WJdU1T-4JXdK>U#$k zh{+ekgf#!=Z(TV0(7r9<4Ypv3Phb1k&iPlYY=RXQa%?N+{e9TP>V>LAJQ%R%A^eS* z3yX$PK{z9PyI!a(_W5N4uBlcGcYNG1iXrL?+rJMC38NScOL3Z=d~d$nYFc^UYZsmR z+#5FzJZUfSI5% z62CWKHo=)}qxR7AsXghbQ#@yQI>U2@uk7ckc|p(5*+0op{(XkO?Dtdng`WR0?=yU6 zzpwc|!)x~Q6n^6}!|xfMGdxdvuHqYdzIJ?&ArHeY{v>!QAAuRDno1!JWPIO%P+9#5 z1OoTgF|Qc1hiz6-USHNUoTVS8zEiF8HZ*3T~9{Mf|_`LQ1+_Yz;wxB~3X z%|9`IIV8No_yrQcwAARtdi;gpaCETyzc3Sm)BRrzE*w|jzKK8UI~n|a*3WUJRyF#U zH?n^IgZCp|$@=GTx~GD{g(t-wX*k_WpunHbXiwke?T>5V+t~QYr-S)2)6MnrhP2aJj+k#KnoF&@sga&d!Y&YlO(KKl!M=2&#Lq22ec zUVZPLA)ENE?caLj>Xr59zL5O$qhC(``Q&-$ofK`--VI;a*4er33mg7^&7E7?+P2)e zM%vT7df%5{IPZ(eKfSzT$IGJqi(eG&F9Ri5qlrIH{7EihI2@-rip`=U4QIGwaN%j; zuW2}23l2Y?0S^L)9R31_3-dt(U!nHoeFF}U3-A(g+A!Q=%tNIqBj9ntq5lPcF5z!H zk3zqBhrNebTK3)%_I*&2d=0ysBuQ{kdL@49SUteUp%>@DJ6tEsNK6Z}trRrHSOF`9 z`+;a-D8*7)8I5Emld8oc#8oQs^X&>} z82L^FkA@VOKWdLnYkKC9@}8Q)f>?jOaow$}Y8=%=oy|*nLetK_eSUJ)<8uc}8q3|u zccrJ3?|I^_L0@ge^Kfinv^6wqpv`WHcQ0t1ziX%*6TsZ}VnU5%n-|GDhdi4YegIy8 zKNeH{G?5Ce8O25sl%9e^=i_kU7{M{`a@=Fz3*DkqxIU4G8!BX6wg8U}uN7IFPK)3v zj0k8(>^b6O4F;xZ!(OIjGHxSB;iqW7gEAkTNd9lAsj7@eLZu~MHv+3XsmMU`?{GH{ z1wO=aEi2H9Ff!zlzyQa8p;CtADeUVyc*)v3H?=zAiTWj526x>tzh=|s^%b-1rM{~6 zxt*)e-mqiOo^|Jpjo8L>Ub1oU$z)w7-+3FHlm_r+9xy=KG2MNuP%I8cTSFA+RHjUa38Z zFq6We*@M&R&Wg5{#`<_PSQ_wSF)ULoMl8UTM#5SO|r@Z3s?cVKX#aiYN)k5y?V< zkmRsUrz|(iWxq0-l0Wh`6gPO2-#40n^}XU|$Da#I^7H)#|L$xm*6TkyE%iiJ#KwP8 zT`kqdR+f*ysMmW#$%UoU!{HeLaV!jh#_pEG9TRj{T^x~AI1nH!W*ze?YsY30EM(4N z!KbtoAsP_=)qQXZm(8CN4-j(2my=z3DS4T=4|FmJdHQ9Ua1{kE48pPV@dI$kS$PqI z(;kBQ0OA0HS3z#x!r;}sJ^es?18`f%--^e;2?uj{#0kqA+nT;Q~Q#qNyxDmsE?9hHTJl^tcljtU=Q23{OJvVQ%MQK{#{x5_#y3JWXnq`kuD zt7yk;F#ijazY)KzdmH@Lj*@If5s_ljD?Cm>dPRv7*sOb4yunZi8?xc3EQk%&t~!LW zwEMi^6v<0Jo^A-2j113n>n)y`-C6D|DAGN=;NWBT_SRctmZGyZ@97Fuo9TNK*x~h; z8;r1ZB_^KJ{|uVK`NBR7#r%{YKCS;5`y!2NjqZSW1)@oeVnPV$f0paH^eXR%o>M#V zT(onh`gsba#ncYzezLEMT?PxZ3RePqE*27J({peOTY-dN9ax+rdtZ3LVENzyqM_th zb)Q4qm^kalv?tG!YUvH(V%%W(qI3j(6eftcMPaGZlOWDhIzr&d#qzulk4i_N+u)rm zbXUvY)i>fD)Y+sMOME=@MOdTBl4c=rDuicJtC5kfrN3|meL>$ihW>@*KkD2Qd(nRz zzXO(To#q|EC5Bia{E07W7^ehy~KQPrq~hLl4n-|I_;uMs;rCG(Pun zG2f_(%La1#;fMb##_``APs_x6#UJSGf-6N^%ZYvvqAiFED#|5Xap=n8`elLU8F2(D zmzFjUR>WsC2c*SuJ^r_mpC<2$0U~fyz4feaaqK1vrbvG>W>>J51o6 zer*Q^31yzMXOK09tR6^+2P}CD=MT*uNOZK-)x^p}WhBz`8ZC{Hu$96|+2w;QWDZx0 zv6x}iSq&{DT^*J*>GrnlD=iTK#*>opRR5+m5#}S&TBoZJy1|+9e-`XO)fv}9w!$QdtZi$3M@PN5 z)#pC_wyx0alV0{&t-fb1VfUE$;70L*F?T2*EP%d#i@wH{z7Pd~zL07S{UzGg9*ajQ z!cRAT`fayQ+)6zr@AA2&H#R2Mk3lDXmiqj9e#kurxlU*N`;3E->)c*@NJRaQ9PlSI z;H_$V@eL7rSE{{9g$rL3@8xjRNV(6@p~6uk;tLFZJHGqRWOERIkNJ?zVL?v#lNs<< zwLQLjwx+#Fh2y(xI2_;oXG4by$9LB;IO3aRBhzi(X5ZD^A(a8w+&Kj}YF3D>J?cL_ zrRfK@Dh@}4!5D`p_v5mLFRF0yw{&L;@PnF8^0531!2boyNBZgkSOZMhkjLU|gU`|C ziK*HcV0+~KU_76lqMyH4+hA-tzJ+lPvvFcPRP&bUc;fhj#>=JkrWWi?Q|{-89Sw~? zsDJUJ9#hK+OlJH+`Lwj&aP*VCV>rs+`SjlrI}AnQ+s2>ZJGDGxE~OuwODFfq`hlVz zh|pxjj=ekNCD>=^4kXykb~Nuh2XHDc_cauNaD?OW7QZ0&WK&scxm% z9btq{C2Srp{00Ej6MUGipob=fSY=e(q*!HA%V70RWCjVNl3cwoc+#nFRH*RNlCFuHhu zi?5=kG|(LP`Qpui(v}LJ{>Iw*=XCW94)%1NGrv}RJkS#NdgCnt{6w1;e7yxq%sVE^ zrHfLOI(&A(feuwVK(x?bHo(Rvq4*sosToAvT7ZcVl=+jaW`vmW1nH1Ze@%P*BMh=<|pk7C%qc&xjhpO|C@oz|uXl zN)K5AP4ReBz;dW`)^1~a-TWlJ5J^C8E{|^N& z{-!U<$7nT58^TU!7+=DQ{2xCz(Ix*GM7G`7#?mZ!{N{mb?F3eEZyV^Xh}lADwLuQpj=gcRg&<{yA3-1&+^`TL zxrXfeM)9c?s~zFiNNH2VJ=9|=XhuafoBYd}_bra}))vtP6Fu`PdmSd5(P8C0dm8j* z1AX~vhel;&Eq#&vSWxJ7OJvxBa7=y2uKB)Xb4MCWjrOJjd@7Ruy!>=&Q`A${L)7H3 zmC+D-Xb6g|`2TBucZ?^c>nC1=Mn7wKtP0wV3kjlRS)t4;)xdCsV913KcMk_?m;GDFKK-;RqeTczvAlFy0L>yx$jKfrCh>2LM%Z#k(u2}xeO zGYWu4h89vfMTxXM+Mw1c!;rK(6*OAdRy`r<`s6o`91&+E@4a7qUHOLmfpop`yV!fr z;zgW87FobVnUSuDGrIdX$t0VtZAIRCi{$jE10p9=rfpfYUbaxx0yLlXE z#SHD6DaZ!cTgrlMgq4Ke`Tj%^9wN;*$Fpqe6JdeF4fPJ`w(;@D$CCFy@POEse3kQZ zn*OHoZ~D-?AZ{U218EZx;^QD`GHGM)*gfe%TCJCPC20`DBV!MX?|m=%DyEOV|8L?S?&8~|r4t>7OS?r6{xHmViom1m-I7GpWi#xjJl;Ir^} z(pWrj3h8#y%23iX>4MTu3Zz8El{B1GMdc|p#gXHlSaX=pVKQmgREdbvyb;qtk;cv9 z?wW|N*lEkxJMu4bHTTVm&Db~)e0py~qr>BrL3hL-sX2k9|Ix{*=qvNP!!7>pY6_F^!cJKLp);TvJAgJ?Z-kW*< z_cwky=bp3A-fOSD_S$Q&-3BEl4w{gkHDEwiZc!1*!HU7&0`)_9qnEcFE7x1zE5El- zZS{4KBaHsBlEayIhqWir+p!2cTdT+{5vh7er^ueZ%oatCqD?U!-sipe4%2VFyRW!H zP1Nc57kvMFJ$;wb@*ulaG3aM(Hyvf?&>cqoOw05Nvj{z^Hw(r_nvup^Q}c;0E93h- zr&QP)gvuu0nw4odFoU7lrMObVQrS;hW}91$dHI?8{8?QRA|r}R5QxZ#=mEo3)8V9& z33-K6;^U_j=1nL`y00MbzWjobQA1{y#wGJ#TbQmLOl^UQ9K$7KHXovhI& zFZteQO&@EIF=J(ZWgusqC?UZz6+_?DGavdxEmmv+;!~K*WlXxJ4)VT5UJ!n+TxCr; z_h^R7P|mZYlKDB=RxDbLmR`Pt+n>@n(gvi{x!b+ z_oPc-=X_JB&4Vp!Xdjvl3V? z<8+i-Z!jpmwj4@l`zRfL1(f#tU&z-OZ=hwBb}Q}fkV?OBMo-2$nG8dJMUH^(^(n8E z&Vy`Gg7qj$h~9~8x%P|LXz39$YQuPql?IK$78!RzgIdOfg@=cEJG^tf9pPc&VQQgz z=hx2oggEClt5;v|r{A1)7DY>RYdmk8186V(m61mGAsB_r|7VEWR`s?wPS@b*LA+}G zqZ>y;g{h~H#0-&eqmRTEWP{S!&P(R2m~MD@^$pJW#5m`*-c^@gs`d}#KkrKr|Ecw; zX_Wmn`W4JsP-V!GUrVnmr*SP%=p)rO5As#}pf+F>82aDCW zO6FIkrB%%@Nh>T&vxO&@%_uIOUY6WmP*hl;^I7@Ga+Ug)Z4zmVjyp{XKQ4aDRYv?n zlFuzDD#F_*0`c$58}qoV&zZiqi~X3P6jtVAr0AxXMpmbFyw;x@y(Zo3iFyVw;gLATuf|b3j5uv4kmB zM-MeE&7Rfa`YP-5>y{}we({)7Z z#*A?arOG-oG4Kiors;SUi6-57)!7?eK&6y;W0>E>NXCi&hut8o|`O z{c=+9zN{+-Z}rtz*Bm*5?iy)}GL_h0H0rbLCM(l-nL8t`kXQ}6Q$+kOQr~Dpr7BAw zN@j;CX6kcHXoOLp^{KFFgQQTUIaNnWJ?^Q~wjBk9MFs82Wz&m`XOv0zi1_L)JJlt& zX}Y0_QrYlE<}|R)RkXT0C@v^IzA~>ODB9_VIq!@Ls?4oOU|~kk@P5OC zVx0aw42!SGd(7c)vW8?#NOy$!$G9er4@n604|SwZ$Oy5T{2dt+G92Olv8fX$gd_$= z24{{JsZwt8ZZbz{uhW)BE2T%))~Rut*kg< z6X(`frk?zgP4(yY38h%+aU{pa1mZdA`; z1CYk#m7cjQ<@BH85)$I#6B0UoS2ZhVM1D+6{)n8SF_Dp@i*iQvkB#lmuhEf_W4vD` zM#m;3#6~CfT;Gc?C{Ir>FNn`bPR{6iPd$0e`g_wgjsPW4ndMvAP2);0SmaPyj=L3u zk*#Ez`Mv-xtl|^ncmcM)lRCx-*~zbsPGg`F$T2_q++aK&nH6eUIR1}d)pX7I=f(v) zD!x5WF6H(T?~a7%J!(DwNPLf3#+k0MT>>o^8@nfpOSYF52r{$Vt=Wv_iYwKh@`~<# zuRB!xzLpifr~e$+LvJSf#w)Xqq}Tf+GhqFNWZ*W*z-|9wyqxUq=V;I_L;qFm4-Bxe z<=nW5_sPsM<~YJ@ajNOYBXb<3r04cL)%(pX0r7Ll7_mNfH6UFktlBIouJo+ZB+lPE zV~47K^mcRAi=J=1zw!Ro^L0mM%Ylzn#rtk_US-anxhq!8-IG(97cKKyCfiJo274_B zJ!avof7O_aYJatNuIgmV`Hlwbd#e7Pez886)i(S1d*gfK{VBd*W}C(uDI4+A7dq8@ z%kz%e*3Ep+`%}d4``&ne^7oYKGVeOaY^?z8fuGZ``(d9}Q zJ#t&S9W(6bDhUe9&t=YY9A+49SH17ZP`C_%_w*p+E3?^Rk|V!W40;PAboJ&ZcCeEhV>h0z1rs^{~lV6+~93Sf-D%5(!mrrSe;%=Wp-|I zZze24vz$g!H&G8qgD=4<6MIASX0tb>RiDrO&*akj#wl_s`sROAnM}6DQI9rIpEE1d zj0)X%NKk6A3_16ywyA8EYtJf4PjOkI?fp&ZmNRy0%0~xUDm$1LQl<_ySzoMbe)}V@ zX8Ub)zsg*r+U8dFi`M0JnK#fel)f+PupjbQ)p1NE`LP|}&=Whp49Pj7j1KQt=iAQj z>FDm44z5X=ZGGLO*ndYlMaoHM*%*tyt&|k!_{azaRf2ORY&OGov>`ah&$2lw81rL$ zLb3Kc?UX0@n2k{a7I4T0-O}iO_XHm|vpD>sVq!8Qy!rLR^Trm%kBy3QIMXZokDC%( zzG_BtVoY)j2XjQ*Y&V&lL1BIoAxsO3%FIkG9+TsJH84CfF?n=V?4Z14Q*egM&)+XZ z{N|Ex%RIKH7^~;|niJ3PG4lPLGkkoD^kffpLz5rR{K*IT^a;x0hjyD44+N^jcic}e zt7z1vQ>AYotYUBf4{^$xU~&e-sbHN`8O*tcQvu;oNy%d>V+Z96r;>e~`oAk5)2SCR z_Gj^^=PEZmXdJa-7)9*#&D3xfz4bY3#yE2Y!O~aQGV=uy5eq2M2*V1#8ayWGXv>nm zfml`aBjQ3XVorO4i>l9l`hgQ%w%fxJqs9cQj*{G%l=zsSa7X{>L8T=z1Llv+N-3XL zS~zWpD=^aTAD9poG`|tgWnq=lk$9w z?g`en@bJILFrKVZG+C&I|5FUNZVQZ$))~(B*Fi&chF8MyIlT;r-~YcHo>C4MTHjT} z9oJ%)MJv-E#7m`*B+Al>2%gEJRQwqjin2wx)JGXCHXfh$cn+t7AZF&WFsp|(eBU|W z!gBqc!Le!KoM9Cl9Fr0jo)#Nyztvl*K6OJ_N^DS2ERT$<)RTplGu3drjIc&4`WXg7 z;OR+F7%2NMq;E_1R;joETrapejARYC&n~!V&4|BNmqC=jP`3@7K@%Y-;7gAww2c zrKVQNwKCOvarwv*!-tO;S>B`5D$r>{%fI-%iPMo}8>5r7s4_LRa#0USBSw^$1KmFP z&*6`%R8v-Q_NSO5!d{lqR4t5A*=ZU7jCn4d*Ph+(86JT47$qhxGP7r`ZjWh4aUI{L z$`n@}6k>P8SM<*smK$|LVnRelsQoE#N^n3_Y;r=;$Sk$M`(jc`Xpk%_A$@GMI9oX} zv(NtV^ks*A>a;#%%&dqOYfy{SQgk;jQhObHPp{{1{a9@H4U%!s(i zqP(JhG4bIcLE+B)=;DC`WAdgAPfs4cVCay!Y4*`hKfeIK(Zk9|1_b$RjFgH+LyH%T z%*@D;vc|qpzoaf^%NeSYksrusN^d?HDO1eSQ^7;hw>^)q#Pe}tZdnMdSaEot6!O0( z&(>!gewfpvhE?c!)|>gBJZGlsdHz39wuUX^a$KeO&JWGPVG$xDrqO7AvmEhcoHdF4 zsG7u1*0+tI@n+&mc4&5XW<)kV;8UJ9>FYoGMjaVl9i(mvP7Mo9iVE}#iwR212)*G< z=5Gfij4q<<7?;F=e|lkry)4K-Fu6E0tso&FBFq%ynHn6BoS2?cv2aMqqLG>5p@$%X zsv$P7%O0ZB%~_eJp&RFlDn}K{tQ+apndEESlDw?i!y?e4wL#Ik#3mE}xR8f6?QZ5(BY_mzU=TsaC=R>~u$Sd=nX z6PG)aHUGg>ZLtxt(y)17R0|SQf+bbfAxgUc!}+YYzH82=9Z6S)Rt^rZ;oeN+U?3B< z&+vaTxxqcrI0-`Bq4Lu#t$MnWo+by9WroVJ?sCW)153j2)1OOLFICPSU6Pq!792aL zVEWt}hQy`bfJK)QgmLPQO8^=q_Y>fGGc$&ftw}0%=w5aH>bm~H4XP-db^+LEURH(~KKXa~> zS-C4oE-8sYP^TUUVvqv*{ul9b87#jMKVPK2GLELwILXT-OB(e>Pj1;>$#-k!__^;r zrmH(@a9VPtpC!VP=$DuhaKobLFpGVCdcTl05tf8Fw&i#`l-a_^&|^U%r}R48ieMwc(vSMVR@Ok*X3K9U0Mk zm{yXSBwO>Ta!LyB+Tq5TM8;uSjCB~3tW`B=?1T*eu*r$G_~|VzNx^}E_FzkV;t1>O zQ%8Il8e9>wDrR%TYc79>-_!`1ia*pcPrcgqYw}RXyl+f3$d{d}Tn2?^=w>*k8cMNY z=W?+si?~y!$tm*sIATvGBq&=6Rg0I$I+uYCUqH4E!5Rq73dexpBpcn=e7YP&t5+wE z$UH?3ESn>vr;Ye9B)B4UW$c#Ke{}`0;g-nT@iLg#OTVz6)e8puh1iq0@5@^c;X?0; zLH;Eq+pH1MC-dB>mu0j&gX~W+o^gtE!;lX`g(@N6JvU5046E2Q=%LFV+87#bE@c^2 zKzNxcCP?~kDD}WcvL|MYoA!u*s4pGb)j{;#LKXHbj0-lYBXT~{V5kV)PBZjG(9hU2xLT_|@jf2EWdk+%h=sCM-{0_F~nqszD z%B>N>+it#gXGpMZn$2&ZU-V_yTHg)z-{uT)xcx)FI_U7fFfx2m)Vs)71$-P2AB{7_ zdeRnG>q%#b{nHd!&J6Lt#4p6Y(m&*@_Z@yhLF79W6g2$X@^7Xpx0>Ubn<)OYe#*p3 z#>8Z9f<7&{XHgj~iA<;SZExk9tVlN)QvtJ_mwl$N&EKERfBJHbQq`Vu(h}#Bmpos! zLA|2g`xR@L6XJ_xep*p{0&AL0CT6N7^qsk8&pgN5yrG886*>C0h$(l*WVZZ-BF@6i z=zSn{gFKnL%<;^5H1fpC@jiLt;VJ3_kSINXVbe6a$jbTmM{!Av$QA%bU&Db?Ean85pQ6JgLQlr1K;n_*cgS2ziD>hsh z#Xx6|Xt8)b%Hw6q=J9ErOyRU%yFuN4j`wAsOeOdVN3A>lKrg=2$X1^`osRBa+4>h! zZHa>F4c@<;M5J1K{DEFoPAOY`X#U?>4yv-$ayI)6{6>jVhEBXs)@_L>(N~d)8qC6A zHkF8ytZ>6e#XOVaFY&?ck4TTumz1e&gRbxSDw{;enzBKqYH(Syq`sTe^a&xjS~4hj6)kdl?gSw_iT| z$dQ_>ucj!NKb68>&og9yUlS%Lqn`K68A#BnKWC4{LglRoIig(OC0|BC*_zR6VdvT= zysr4O@T{6yq|!k9Wt-2Wh#Dz!efF1ZVrzIffAlBpW6LM9CF76&MBgg+M~9Y;avA*e z3ysXq%*bY|er#pm#=@!0Ju|xd#s<;GPQ)^yRAp(jz9-g>HFwq*SKr#vbh%es;tq;- z1jWXL6pmV0HmP}1X6nSV=RO@0rB3$TYW{OjoO!EbRQ;vX)<1c{=$18Ym`o8N*=aHP zlWI$gW(-YfiO7pkN4`=MRTL-nVYK%$>-CmM{BM7UtTCPSxSiRk^GrHTL((qI~pYc61;3_Xd|$sr^n0PQl8# zAb5vlx7)@OQ>YxEI4ur~lU;jHOyuOR*uSlZEGdeh@?mMAtSimP$WHb1OOy=`WFulZ z7D3i7={*_!?409A3HzFt=u&J=77Xf(PsL4R^5!lr8@!-0HL+w$;gtFU(~Z8(aF-PY zMwaicpLJ>N;PTd=)D=!0IV3JHu;|*oIVFj?!9gyE$y1z@JNtt93(lRIRyowO#n=Tm zJ-=q`yfIsT-QN7`E2f9K@)CyRfBWF!QR4%{6R97W>{)sd`xxgbt1A6ClG~C;KeK1A zX9n%5hq}7MfK{m^`rx}9iRK%DsFxYPKOC%)*=hPfMK+V}Sl`*Z@YuIKw!UX`f$BRu z&9@TlEdR&|wi_8;T(z{yl|Eu|+0gL=(xa1u$L5^5yrE>t9qr?*&U=Y|h5r%=+=e)}K>8FBqL|KejMbl2o=moIrh$?ki7BJx_XnutTDp zf-c?j6i!=b2XmX*Qf;`AsA{Y9lX>(CB$Kv{h_dmgq9M&q$3LLN^_@FT3SU{!6I8KT z>=v8-l%FVedrt~dMe_QEr(|S=hNWbrOBFG;gk+Ve-pl6{b1FfaoL!5n|NBS?BCDt z93_V#pExSF;VJJ!R$onI*S%)4$HU!FmwVOba-F)MaZuh=yxK?k#TR#9rp{H(eF$7| z0`*((z2lC1A&l}i|3ar3zdkelnabd!*{FK@kq`#S$GNGK46&gxX_+|=zXX~WIrf;Q zg;RIzGMO1(+KiKtsYJ4PaZs^(>B39TESkFQ@rL5Y)pa?tllp)W3x;pGGI!w>%QkQB zzKVr>Nj00UpS9+}_2ul6&qnv~b?3FC&R#Mi*!%6h`}W;Sn=U*)pPAJT`tx}Atr)6i zi$Y&Y2F_S`W}+pwSZXbkaB3=1xFDU;ezJ_iL9G%Gq`q{c&(R?IlpVG6j2W{RY}inL zV{Kv4vKv-z_|z0QXUeGA-e=UK0~ek%cFOsSioJJ}s!0jtJbRn%9MX?c3M%ttIk7rH zsE~o4r6fI-z3)|Zns~w_`QRWXp*R$W%}L_2o<`Qu&=xcDn1ZH}W5d<=2Rp)@j&R3d z^|h;Fk{lV{BNV>YXNSh-%E2&{>Y;IC$;h?DvqmxUk#*D}q=N{#K(UKJsmlPD5 z5bn2IeR{VwBsspwbyeb^iT#VF$AnKVFPK@LX5@jo2`^PW50T>Kqq^!A?o?w$fox7w zCZ%Miq+6VFggf<<%?FS$c7UbS(8Xp|c60T@pyVs1l>@_2xY<;6nm3Di0s-*&S*wX% zuk&+7LiL=^QzwOI56R{LS7%&5RpzbeeYE3x)OVUnkJ&Z|xf!HBqy`VUc;WO*mX(z* zziPqaOY=(ubE2a%(lerDExhbRkyIF285(X)_CC=sUEj*~lDZ+oa_2<&g#?8-Ovyv0 z6_w5&n&js=Bb@!#4c>gB^XBCJ>Zj^^=~E2k;RK$bHhcD~H+}M?_oFACP@`<;c;eI| z?+d1bGUP?P3(Py&yx|j66nbhbfo}gfKnO2oV^JVHz!bd8s z<@J*@QAC%Ug$QZc_;{W&DLf_fxIm<4vBX91Ug%A8vAQ$4qIyKxa3*b3{ zU3&Qx52#?|a;R#S)p60`dL8ah4TcwFBsMeb>X3~1+x{337nGIIai=TE|7u54bk5_C zTj$2U9~tU>Jv7DaVOuWD2zX!@;rpTWtgJ4^z#s;LdkGpyl&da`lJjni{E2KuDruE2X%l@%QcRtwqBM;xMkG zTLy)iKB7akOcSTG=1eHqqeNxwVk>+XJ z2n5k$nRd!HLf3=F0WOi@zO{X@J}p#rR}_~Fn=xZr%lNdk2`y7+JZ_B|T#`5B&uU%P z$OXkimW<5&R4-E_{ojzjpOPwjXS#IhV(yzEUP!fWh4zY=jFm}K5$JE6*<T(Q0V4D>x)+yY#VCsv6YMcG0wl=vudD*Q(XO zd*XMdsn&Nq51J;jkreZ-(08xuOVN~Z>My*LMz_rB-+xxiXznMEpCW0+ns-{}kyeh>)zk=^ zxVR@+E#k)SD@Hj=_OO(gP@4$1InAuMwRUc#6MOuWkD>Y|3NrgZ7jnzIzukQvJ#7Bp zbl3a0#H3gkSe;gDfPIx!)`2EERtEZ89o7YwR5Tg-?T&zi(9nbc?>y7N=y30y5e0E^ z$lctKxR@~So#_K(^TO4+p|P+Sx*s+_VJcvsH-Ck_mSyaUjj@xPdAmbS3Uc*w^_-_AtKt_vXT=&CZcThlk>|Y z4BBG9%6v6V^IWfg%UOiRb8Dps2Q|;Po%DQ!Cr(c*UY^U@g1+!oo}cQ^-_*l%&am%! znFsX(ZI7Sye5mJhd2Y}n=ehaldDx)GM`wKR^GA*6-ltBYXNaVWSl;Tr!&ZzRHcaLQ z)B2k1RulH195N{Od+kJrYPah)2OFI6MHmWA|1V8?XBiB{>MbZnq3_RDT#$L|2cG%f zE)K8Trv|;?%}mQx=b6s-T*Q$ySD6~V$r1X;vQPXfou4oH_{j!oJlD_S)1SZWdoKJo zDHYxaEF16>Ig~2pwMze7=46zH;sWb&i4`fV5w_aIZ|p~lYEhZPV6}^P0H>I*+SMQT zDH>-Zix=j{eAvessh>bRxHmDU*=%U74}I$uq@pO!~!@uf3-+ zAtTax^A73J8&11R{ft2ZO5K^A(0<*ZF+uB2?9 zZ3@pGHEP15)`^vMb0<%mS31ExGWp(!)I8g+C|9N{YDZK`R!UUX#D;PG2B!p4=QOWn z3%t089&2`G29u~Ir6qa~o{dAyv9j-Tc$hC$+4jvQGlqIojXGtbJ2py^*65xjGgG3j zy|UjB68yL36|3hJ_P3r1pV<>h=A%dH8lG}LsihQwFiF9m_R(=2iq24wPvOzL|I=|Gb(2ljGH{7I3go4RCT2|Y+=&( zinPo&WmsQ=9`?Bnfga}B(BdrTAH6H;(uXr-WgJsugq}XnPe-Cbqnu~_qiM`YPl&S2 zQ8Ox_aSAkMCO~5r zK$Pc+&*wiFlNqD$2~4L8+ta7vWVOG(e@K>^7nP8iY4#6HFG>om8kSy?8J;|RafQtq z9ANFYGX4+dDSCXi_L(ExuAtv5A=hrb(sY}8 zn_&~FxA|agY-MQ+?zg?AzaOm~ zv43EFp7*8t`%5jC>hJHf9O(JpIgPfW=le^oM~(N)gM}C+M!VAXwe>?~w8|dHVqZs< z=TL`-MuwT4rsyb>>U7b3SQs|YU)aC%f)Ru;J}Xdc9NTMS)_@c1+=-){uUcd*p>CqX zY9h*oO#D@ttbrYel{s)a8gF%^sJTR zRyMdJ5^f)8O^7;Q4fB3lkYf+9svwEvCyBFCUN>;c=;# zdJh*yxcrN=U9}-st}zXdi(4A6#zaJUpSaKSa$$){{ku8Oo2}j#78_zGw~9>}s9kR@ zwZ4PTArXJ@aJFMVPx;aqQ5xbW!w_cE3I^T$ouPD`*(|9hMEoxlb4?hQzb(*it6}$? z;K1M|Nd{=PH4L!3%{R z+1{XkQj#1z-P&Bcbk>YfBQPTe%Q3J?xk(p}~P<-Y-4ex4FJ~&&5Dc5N-Hi>L!vX{gSx``P<%$T8d6l8mKhhHxmtZ- z-1+yp-S?kAj(t@t8?Kr@{i@ZK+epFmk<+i`>TDIrBMMD#!;-l2p zqH~hM!jf{LZ;Q*!j2o8cvPWhnWqW@bAD)vI6_u6~9!VLGhV@Eel&C8qGGZ2I%g>C<=qdDA1q=FeJOHSX4n=I4xAw9H*t zwRqP2VIoTkW48^`eChu^!@tHooeSj|-#znVlxKbSX2y{I;JfEg9_4M{y;T{geCWHk zaad1+@7}Hysu{j}hY};3Z|W&Il~Q%J@7~YSg4Q*j<2|u4x~7K-P-59{(6|qTnjYGM zlsMZs>}S=2=2f@amiq2h#bN)@ch8uS{WIUaS;@A4>ASZmVGft?-m0u%-&!Lc8_%!z z-P@Hj9e4Zg9ZI1yz<2Ld8l1y?_kNCp&bxf~{z_rk6~6lbWkA?dzWcyFv;`>x!@5Q` zHmz%RFJIB>%C5k*wx+b-)s%}~D8nxbCSG(R_ZYZ_M<}>xw$p%<+?4Q=94gL+UniVeL_lU+;ccW{HdsSn7Yt4$fHF_rWuy;=S&VOmMee#57i_PoZmwI_Ru6SctC1s!ZDHKi)zkTX!>YHD^jHoIH-xXk5lb+xQ$Y^$$zwba$EcAeGcZbgP*enU$Wu{N}( zy4J2hWZHyY(qGzGi@cIa*V49D*INC{T6arRef2scQDR>1Zm6!80(7^wocMKpb@OtV z)#6@X*V5lL3z@8`uWo5^*ATv`xv{CSneu38$#ao*tGlL+@X)@--Qr$aU)RI&wx*`K z<{B87=UVPwQ>T|geO+s7UGuWW=G84mLAk4&T`Q`aS2s4SGm53YZng(!O@z7W5^^J|IT&t^B!QZ+y?ppYue}o{&O?9hY6D<620fNZOi(!7vJeF}TrEx7wZG+$dF6q@%Uk zUEiY1KLi_DY%%hz3u?7%SzTSdlqgjMv0mM}A`gDMVU?c4*5*duwX`<3)wH%XBM;4u zk{2@DTD{a=?`}0%BXZu@*3wYdLYa(j5K%4`)if~AmuFq>C9lhy>#AERkX{+j*6Wod zwxX`SNyzx&I+mkLY~vc_pt!KGu%Byr{ko@E|-@3@i+PeCBxsGj?QWs4y zep;2QX+>j09b)GbO`XTOj&e~GT-9qRjcSp@Wqc)htwF$+*Zq)!C3xfN)2qHdI`ISz z-{*P#3A)nv;uIQM8L2d4>91q#!A*C6h0?0HSS4S>Xo^c2z&z9<{_=fygLt--ur5Na zV|1=jspmwU29A!W|ERPntN7Kz91NE-ihtco9dG1X!;@@1?pD$&QwsQ7tN-=aV`}OX zQ-4A?asqaNPQhBfZskjtGK1J!K(n$&kJqJ)AzXt_?-bHq%~Ka6YLmEc zdL7~9TcNW}r&r>UT&&Q)nyHK@q>D}7oA}+p-SN0jj3JMAa|qK+d~Q8`7yRiDzMI1q zaw1%9BAph($QSio8+p2%{7og5N#xR?)1Z0;Z|k9R08fSYgOs6sExew@T~FTfm7Z`t zPh7oEPNuGJOg$w!h!QPS2J8Qp5U=YrWh134yj-T|)W}6o>GY(0Dq7s+)y22M;byM2 zaBMZ#W+cR=$M=s*kRd7mh|K+vL>`x|Dku~Qaw)TrN};nBDrydBac&lFKE@cYW zRs62!iG->{CVTkd;$2VfTZqe$JduNCIzQIwGPaC2HGJpdsiZ8DA@xc)C33Qy?+kf$ z>+*P9QrieEvM%y#)XzfhdZ?^Z&W0wDVTnoP{fECVCX`XD=Ms-db~Rkc=b6-IBbF2C zlC*z_yV)nyMVC&q!40XUGpUC?`AF@h(kNZw-wI#77*B2tDH3fWd=+_g!8@U}4(_$V zIfHjXuSjfzkFza=G_-=~7lSKOf)dL3LS(stIO=&?LkQv3a$;{HZmHe!uRN8M%Xluo zIAI3r8ufIAzrrDrZkKWv&m@GQhYZP=(r@z7D!NMYx>lDM(K2oN*T+j~De>0&^s7;l zQZj9Ns%!hCSxY(+ujE#w=6FsGnwRswLCI{kIJR{L&UuP41m{hjE(ReUSdiLP+#wbN+3dU9iEgr2lT z?@Apr^skhg)Wsjx4?P;eC;>^!XwM`Sky&Zsd*oPjoIz6qcaolPQR+q`=@~jjq)SS# znLmlipwGCkJwZ04oJ5c16H-z-u7N~%v_ik=ILU*wC&xM5w-n{=@p3+%dud6Q5lbC0 z^wd!!7DHRFCjJ$A$%uSQI(_A&g||YJQMZj>ZRDy|&zFRh`rg=EE<%NbszyE~E-7u{ zLyy!*P7VDa^;h(?)CiHC@%-x1%EfTPD2;(SWqr%}xW4Zx*X6`mM+&W^Cux0Gk7rXR zLWz`LPh3(D>Y=`er~is}OzgfM9V3#lJc zW=2VfUg)tBPaXcpr|{!!Xr>v-f8Ju!J=K4V%rSPu7$PtI*t=o3Vi`4N(kvyeW?gf= zl1&$Nl~O{FseyirK5$QH8K-BHZi!C+C0kt_|HY=eeSXOaX^vHO%?-+c@BS z|0QCfM^a%L6dph(0W)8Fn{vH!m-47SMiju_6`63eL@B4QFomASVoI+8iIFc9@}Xbv zT&7>uW#f$Nn^)*pQ&hWgo!4Pp&)IKWFR3-I*ZH3Rw9xqdM5b|l;T=77yrcZKD5e8R zC;mQq;(K%WlPA14M?T6(Xo&EKVTEbd-`d87Z?zq;C-67NJ|}#u{W(XRV@Ft*NPOa8(m_}d!(aztv(9kHpg7xDK%e0ExY{#w(UGiGHxon^^dnf3UP z{biQyuoHJ1WcNuke+^FNsQquZK(%3d$^%^U4;N?I_zJ-<3T-{Gy6o!@uVKF1{)6xmM1r+*tCk=whnaOKLCPt|)@k6XQ|v7@o0^;pxIrpMd9J*%Yc z+jUQ`d%A56_vbg4H7{yC*7mLZwI1Us?|3s!-mWP*J8#|7>&LDCdPDzncAWG34F@+k zHuOK&yW#wEz31iu`S)&q@7?g`xp!|ks6X*?m3Q)Hy}WIAwLf{DWpmh8$JT?Fe6ihe zsdu|$`^}dpTz>uKe-vCX;^ud53A%mK-jD9M2x;{LwaDx;^G`OoQ;=ezgZ2m-=b#NcWcM&w<^K*U-14x-tXuALrSClVZuB@m`4fon9^W> zoN!Ml$@X6o?kU3kif~U8?is@UnsC1%+;0i@hEiaEQ%$hHr54x^DCgSWR*LQKsLA$s z)l&O=O1u4UY!%e0WZFN{p0$6XJ?n_le(UI`ec{Mc-gM+EpE>$#U5*0f9Y>+k?I_Zo za}3bFbxhNqaZCp@z$`Ea%mwqne9)vl=r{{BYo9w>Kr3hiYrtBtLA%#+E@%hmf%Cye zWr|}H*9*XAumx-d7lMnFI>*K8C5~tUaNiOyh-bFzM^$FUj={FUUj|>-T-fcx4;4LHt5uzcfJn}f)Bt);A8L!I0QZg zhqdSZ5|u~&l9XThvA?aKOMBZdh2N>lOMYqm&gMRcce&j6<6R!V^Lf{w-!ru@{a(|~ z@gJqV;r}xw!~b6GY5)7wR{#6e3;Z8Y?(qM)Qt1B+WupIsJl_u|n5Z#Pnul7} zu9RtiSL(oJ+6~Hf?Q-RE?dNKV_NqEw+osOc4yd!WZgq}!xmv9qRBJ%3cD`Dt-K-wg zK2*CjuW1~$t4{m9X{$1Xns%4zA?-8EChaQA)!J9owsWX$=TO`3@;jj2>3^Bl?Y~{? zR+tBN3JR7f=YEHZN+nUP0z%Dnwga1~q^q+P*ME&7#ow}12|g`V!9JdR0Z)#=lf&fy zsN|pgb(6PGO!sNek-x*_?RCpe?Mw3Yi8DzFauzWf8pKzJu(9aPX&!YB6R~TR5Wec< zt1d!z5;EDDtPFIzlyYZ^lIBcR!uT?S)hK?X7XqTRPbrhX5z}GP?@~*(SJW}u+v;@f z4QP2DT3&&cFHFm|BgFc#&g(0+ze3NSpyw59l6J)UHh70QCxo%D2j_sJ+7ZVP?Fjtu zg#VpTTgJ&swc1Cd;z4((DC@ODl;pS2`wlUGNz8wT=64*oD+!JR+CgUm^d@RY$wMA_ zh$9bi&>!T?BtJ#;h>|GL4r09)4p@o#0b=|;^v_cVYkyaVfHB%`^)uw@2KHky?LJdzI8mNG*fZGT@jWDaMjw1t|`5F4f+1Zqgp51uE0NARpht zp)Y-w0HDxdu0?M=l%21vS1H-k?lyXo3DnS((0Y-vRU^Ey5m=COs1LMI2z&v1O z5||98fT>^_m=0!unP3)Ro{};L%mwqne6Rp41dG5K+RMsfTE->NekP#KDoeEwlp0VA zkZENZ*X3XZ@7!P|SOx0AYR~{0$x9PB3pDe)1+>SeGfJB`O z+QE6?e6SI00vCYIU<=r)y{B9VF2ZuZ7z=Y7DY?$?10fHX~{Y1+tlTeX*wg3nAB5oQ~|uRuRt&HWA~%yb=L zuLn2qd^cfk1wR3Mz-{1muovtDcYr&=UBvrSaG&-mQuV$C{#shKgVqS}OXhVy1)kA9 zKz={7{s}w}UH~27Mer82|6S_l2ij}aPqg=JY1%^*sw|%9(Vqc|o+3Ue-&;Xjj zZQypW7wiLffIGomw3dMY`E>+?5D*H&Ksbm1F(4Mi0c6~Pj60BVM-oT|$hw35NF1pk z4Wxq%kO{ItHpl_FU?6DL4$;aUqLn>FD|?7m_7JV?A;&K5Eys1>dT;}{5!?iB2DgCS z;3r@YxDDJ6_JV!j4sa*93;Yz^4ekLy1NVaa!2RF>upc}G9tMwqN5SLTLB|u|N$`~R zisM({Y48kq7CfiD=J*}>J@^B79=yQw4)7v)3H%wn4E_RM0k4BMz?5;Q*ao329AI(@HzMb90kWfH~12K1-=H~fNy~Zc!8$9 z>{NgXOu!5*zzS^WL_2T*CkO;VAQ*(8r9(j&2nWcgGZI8=A2?${97q6(AW8eynatG% zQa~!m0GS{gmqZd&_w#xD0Fu=oROc;3{x6*a5E9 zUU%*S*MaN74d6y_6Sx`N0(OI2!B4;*a2vQC>;?P49pFxY-f^OLoOgqJz|X+F;689a zcmVty`~o}(_JfDO!{8C{D0mD!4xRu{(q8@&JOzFQo(9i=UxVL(XTfveci{Kn58#jB zPvCj*0_XrQf|tO{;4k16CD{2Y_$wPtybj&~Z-TeL0l?ZK=evr(^F7ds#q&Nm2tEKG zfser_;1Ku}90s2g?-$@GI0m}Gm)d(+x(EF}(z^UU2A_aK;8XC0_KM$8a13;VFTq!Y z{~CM)z6BobJ%4loEsnI*+qlvH3NyKZ7S2=@U@wrVaFWBe))jVM`;J% zqaAqLXI&gcuYG9LDaDFyVy3?Mvr9mk_84g#l~xqX`L9^cf5jdQ$Li_Cg8K|>xt!Rp zC8jq?w*$*(vg3dfisds4TO|x@Cj@J!f*9+ZOBI_)D;D&t*or3Y*TnuZvA>G7JP4b8 zAU69zZ1%rkC7-2E^?rnPTuiEmN%b)H`T*?pV(j&AN&RzD7h64$)K`+1Z*@y)lU8im zrmeDEs~y8SF2QCW2vsXdu~@0lQ%u)3VwrBFPktYk(mwj+_n(%E;o1zf0*u$z`>2_# zo`EH}7#yc+%L!C1(C*hMTfz1FshbaVbA>wki5uxBZlsU6kv`%^`iL9pBW|RRxRE~M zee@CUqxITH>$Q*8YagxGK3cDRv|jt@Bi>IR@qYS<_tQtbpMK%}^b7B&UwA+L!u#nL z-mmB0K`wP^Ijy9K_1=Z`-sQ92JNe=>O6PN==2fKT9jx~^u}wR$-d`n;V!e04`5x>2 z4J7G#toK*3-n+2gyRhE7u-?0{-n+2gyRhE7u-?0{-Vb8EALQhbzSjFcYq^J0zR&4B zpECR`)!5Uu+BeWX0owP9O|34$u3mxk-$yU#A*~a7--O<;u+9f#TgM{t<K>C9MPzcTdOTd|+ z8Y~4hfL;~0s|VZFgYD|UcJ*MpdazwR*sdOIR}Z$U2Yc0nz3RbM^D2R?TxS!eR{IJ&)Qcx+pJ^fXUoBX{eLdGE z&4VrK!3OnUgL<$*J=mUJY)=n1rx!cZgPrNY&h%m{dMsCJN8#EV!Zqwh4|VJ-r1&fB zMh`Zj7n{(7P3XZJ)qyvv18-CZ-lz_|Q5|@rI`Bqy;En3Q8`Xgqssk@n2VSTSyigr@ zp*rwFb>M~SzzfxZ7pemc9)tffuR+FH{E}qYk_>`|--` zcZ|`zj;rdzJHcJxr{HdI5BM3l7u*N# z2M>V#;34oZcmzBO9tTf=CjrY{vCll%XCCY`5B8Y{`^Kpd9cAe*kB%PFb_7E$5{l5 z!9Xwwlz>uD28M!RU^plT6`&GSfe~O77!AgN@n8a&2quBaU<#NDrh(~TCfESZ1slO8 zZ~@p1wg6-tyU2rG zqaH)&y@jrRl-A&NEP)qje?KOb4`~68(aIImro4hy{RFN04k;X?ReOaN;215yF5s(Jg{BeD)VtUbL97Td;Y}~o z=Hi3cj1S^6{0*D&BW%WZunlb=i(Z{bEZykJJJE~l@z>mlzveo)b3U5?cj}qi{j}Og zuqBRQ!C3I&?81k04L+P3p?@-|=96li73s+o-RzsjD^A)ydS=TI%Wm z>gq`9=2EPkDC*`?>gH1FW({?79d&aZb#onca~*YaBz3c%eq9;;y5aQQGU&Gz({C%G z-!_OoS|WY40rb)SN*`?ieY64e(TW|PYMbeQZKnUVnZDFE>gsIj>HzBKJo-(=^p{Go zutre-_S1SzqxBjBmrAg1X87 z&&Z=*JVrferB84%eS+(d(RSqVeeBS9JWVFXFU)vXEx?Y)%>jZyJV*eEzyOXA?LJH1oSvyNH&VIX_wrUZfhl zNHutoYDD_*BJIJ8vcy zjuyVoC&iB;#gC{Xv@PmLZHGFF>u9cHw9C{9+CFs>I4<2^A>Ci;(tS|t!~->xmcQ); zNgsvXJ`qd@OF)Y@6ED;(EC4sHzZ(zKE<8}Xumb9^0_N*A<09T~4IZdjj6to# zBB;ajv=`6QUOZ2?<9XVP=V>pVr#*O{_TYKigXd`vo~J!{o_67R+SOab;I-uf?Ewp8 z7nZHsuPhg8FIX<(dNEh2eZSQ9;*Hv)*TO$>|Gah!HSrcaQG4)2?ZFe(X?<6li6?3n zR!19FhZ`@{F1%1Pu{_$bJle55+Oa&^u{_$bJle55+Oa&^u{_$bJle55+Oa&^u{_$b zJle55+Oa&^u{_$bJle55+Oa&^u{_$bJle55+Oa&^u{_$bJle55+Oa&^@p^UQ_3Fgy z)rr@u6R%e%UawBPUY&ToI`MjS;`Qpp>(zj8v#Ou|G z*Q*n+S0`StPP|^7c)dFDdUfLU>cs2SiPx(WuU98tuTH#Pop`-E@p^UQ_3Fgy)rr@u z6R%e%UawBPUY&ToI(6-Joi^c=8tfLH?*=~sd%!=U(e5Suec*oZ0N4*60uO^nz@y+P zZDz0LdxraG!E@RyJX*8xXwAZ-H4Bf{EL|&h@UE|Be3{>W0k449!5iRo+VVZ#b%OW7 zLGS@U_VH-V#G^G6kJg?OH0lv;FCMMEc(nH7(b|hgYcC$HJ$SVC;L+NHM{5rrtvz_O z_TbUlgGXx*TKJY;Ev#zuv6$xT+StO?3T$X-(aa96P9PdOh-)zTF`9am=Ek~lW8Jv1 zZroTmZmb(O){PtM#*KC3#=3E1-MF!C+*mhmUAxcLX6hP#E?3d=^SLen3&9d_CODnu zU(UM~zztS{RiGZM1`XhBunw#T=msn)HO!NXL8hp7e+(=I$ryPVg7>%k4+MsO3j8QcPPgImE*z#ecLxE<^T`@kLG zPJn*F!?X(z(=I$ryYMjW!o#!+57RC@OuO(f?ZU&f3lGySJWRXrFzv#_w9EN0cmzBO z9s`eqC%}_h8lZT8lZT8lZT8lZT8lZT8pI3;*D>C@j`7xYjJK|1ymcMpt?QhJ!RK0?wAfgcby$^kSe12H zm33H^Zojv*eYE5s`+cN!`h5&O0f)e+;0tZ0wD5SEX5wj@iKl5M7HAt5Xd4!28y09A z7HFG4b(9^G3@hywY^-;%u|B1hdxzHP4O*cCv=HJ;I)Lr;Iu_ekXl?N&{T4-!)|*4nGIb23VJwmP0Y9j9~lDf>@g&qmO`J&pDD zJFK@(+P6;Hw>;XkUt+yIf%WzqtkL(O;(4gp3Kedlf_CI@Q1UhUZx>eEMl7~XSZfop z&>p}-djJdV0W7o!u+TPPq1}mfb^&^56_(is{8!0XTW3?hZ>An^p#H8VH@_!0Iapdb zSXvcWTEnok<~lQ!aB{eb92Vl=io~L7rhXiyKHN_oXvd=ZGv)Ifs~Jqp0P$mNE(An@ zGVMIL5DXXY@Y$`8z=`YO#0PNVeK>JFIe(R$OO7M(dmSU!FOusHa{U^)mhs#p*x-lA z{afT-#viw1e;*>}hplgOeMdWl{e1}g`w;f`A?)u%*x!fXL^+(e9ZuX1CvJxmx5I^- zbkChxyOJEw@#Q#!9Lp$a0Xfbf$5rHZIl0Xxw{~(WzUAA=<*$`^aPS*` zlVSk6=vidCo0*L!X3|7y-;(MaEV`>nc`AOCFG%$o_*e}e?}d*)gO9bRkf^)h>&;O2 z6x2QClc=rmb_-Nq3YD)x-Q`d>2I_|C5{1tLsd`%H?ep5zSR_{?T^G?WC`Q8S=od^x z%9?3O`;(Ij_7wCg7ABg$nr5;%&o z`IYlYZ8_TNY$Wk9xc5hD{&adwMy>uUQWyyLWK`7)_dbFv-Ec*u>nL34fD2x@Amixb z-z}uK@)eW~qKuAEC&HjEk+SLsbzxBFqO8UuAu;qeK4padG9+TV_BVBq_JUfX{Q+<4 zKKxT};h%aI|J3vNcwfOs^*mnGkCE?>DT9wG1DWmgE&ioH;$QkBDSzuXQ~T6^6mvTw z8Rwt-J+Xd9tcU*LSY_73N6`2_GD#^CLdP zM|uQ6we=Y#86L&Mmw5OP>&#Z7o%zZ(_>t<|ro=FF(!?r@Lgq#e$NyOlDnKQu0wcgk zFba%jGvhH}EEosIg9$vJ$aNCe$zTeY3Z?-xCaciGS-TR>iimJ!HkbqEf_Y#*SO6A+ zMPLauoC&JIQsp{kyXaVcNIed4KQp|XF9^>74jCYqP zmoX!ByRuassBBUPDSOlsMt;}WS@G5 z@}RmH)GD8-b;|m_oHR8lyG>_-bzp~5V!Dp&^Y`PWvgi(k+TyF!nbH5kt19yNs zm2gX|vfCN~1}eX>4g$YalC4iE;Zj1@KY{1De*xg(wY~_xP&V1pmEBT$j>ow^0iFb( zDB+Gz!C~+jI6?_`fzQDg;3zo8^KS4Z_zHXtz5(9?5Af1Tgebe6p&$%|188$bf@tMB zXDo;V2_O-O^dxh2ffSGmGC+?+<#8`kRlrpwtC)BOf<6e1;d*w0imB+YO9^+nljCi`ncnP}k5_IDw=*CMx>j9>N z8DJ)u1(+X&m!KOjK{sB4ZrYS?yae5N3A*tTbknQvrkDN&J@ohJp?A?kKZ?Hi3Vrc5 zZOq%~jF-_Fuc9+#gyb*ii*M*fAEoDflpb>zJ?5kIn7ipQchh6;rpMe(kGY#3b2mNa zZhFk!^q9NpF?Z7g?xqLa%{+{5dcWPYHQn@nyXpOQ)0^q0H`9%Os2l%KH{83Z+O>d@~-b^>WnQnSB-SlR<>CJT0o9U)E(@k5`jWzlO*60^lobO?AzK6xx zg~i#0#o2|$*@eZ~g~i#0#o2|$*@eZ~g~i#0#d(x=k z{(;u_WjOK-wcVfE9ztyopxpf^_a5!uMSJ3<%$uoga~%&+;|?Ij33#%SXycQaSLRYC zBl#sr{%EAW9z9y;%u|Yx`j3(LFj~48q<5L$YpmRL^pPk=K9xYeR{0`_&`Sv&j`dZ@ zioGS^Oi-;{i+0OFyKxdN*A}oI8jtJo&(J2m|4Ou+;DzYIF=#{gr(E6v{S|uPx+jXdepSrUvIwgLA0C zIn>}BYH$uUIENaXLk-TM2Io+NbEv^N)ZiRya1J#%$9btz1`lS^S`;!Oyab#Hs?qRE zl@N4#2s)j!LAlCiUn_WLEQkXM%GGc{g##nuz#2HP1rBV316QNdLMYu3ofCOn zrMwEb7AfQ5h!c)D;fNECIN^vBjyU0n6OK6Hh!c)D;fNECIN^vBjyRp07|pv(iG?e5 zj51d%XTgbhI1%sTM7(gKZ?4H%JQT-6aXb{qL-8aZ#pgot6;OOR6kiC%txzoOdc2R~ zcpt^_P<#O?j>c16t<3EkJF$%+@8=QICB$?AF|8-2wmzl5g)c`?LeO z^tETC9%LaASx7_{5|M>OWFZk*NJJLWkVQQRMZeiO51C zvfyVFd3lw*+yzzVla~v~OIe@1yhVv;QQ}#Ycorp|MTuuo;#rh<7A2lViDyybS(JDd zC7wlzXHnu=)PW)7f4W`=0?1texeFk7XHfEClzf=4}L4&p$9vePF~ zqv60>IItBCTmlDnAW>mRRG3eq!h8}XGioQokpMUn07nAgNB|rOfFl8LBmj;Cz>xqr z5&%a6;79-*34kL3NJSY^5f4|E|I>A#9f~i5VyOe7x0=4E4s0exqYlhFNs`A=`kRPp zyD#tO64TjzO8+9h9I4lVX(xSoAz#Y)d>vmlL&Mp8c|o5q%gJpXxeXwO`DpQ}+GBlU z_+g9OPMh@st+!bBpJ2xy!j9M5C#-ws0rlw<{Fb);1KRb!^@;y8Lj8sHRm+qCeV;;W zXb+9ZSef=)Qh0^$U&A&yMjRg!+DmGTwJUkFh95g`(sfoO@%=yc{scOz`tAe&Zzf=p zL8~o3wYJt)1(&M0*QJUpxLbEytt~2At9@Fl)}`9IwC-yw)gmq^n;=j@am5t|2)kiI zW=Lid%r+AsOg0D-=Kfw2(w6pl`Yh-F{Cm#toZs=hy^~?)-aFsV`?G()-#dd9iI|^q zojmM+`)fMo7lqZ3GvpV8NNLX zj&W@8l04*N(dSF@kdKQ_4Sp{Vsp}op^BgY-8bv3oMW%1dMdryx=804`7hN4Zx{Wl~ zvw}0&gc)qYjEMV+xGy=$sqDiH_F;yc0eQu$*MDoMf<^WU!oM zaAb<_y&CMwp3GoRW{7@cqTiU@3XyZ^7H}4!jHR!EAURR*F=sAQ>Dd zk2+2sb(}ovIC<1@@~GqFQOC)nhRUOc%A-z|N1ZBSfiF$5eVAm!BLFe(a1NIpbJojIm9#o$(WulSR%r-x+J2v5AdpVi5~9#!i)>jM~SC z&ibLVcB;u_ob_Saxb>``|MjfLnz1(&{cEsd7MT5%Sf2r z>#P%P^{mOd}@Ij^;w`{}eM=m-_3Z>x-*&V!vNhq}P^w^qpXbi-AB@-2L` z!*%QYqB`H46-<{KXXM5ixp78roRJ%6WrK^Bd5;DsWWowjGQ_nr_RW!Gji&ToH`??&d8}Va_WqnIwPmf$f+|r zgq>=*o#s?^>JWCS<#v|!gZ}V{ocmF*cC5_WFWXD`#j?6$SzWQLu2@!AEUPP))fLO?ie+`hvbthfU9qgLSXNgo zt6s2LyrpuPxwP$5Fc^KI*?gLt1oyw4!sXAti*wJ(w$$@@IW z`#i(@+|B#E!}|>4eFllU2B{Sc;(Z3mCI|68*NG8_(X?Bf|6p;$F?umSavT9yz?EW% zt6(Ht13!jqy?-5C4>!TD;1RLhVIWM~X8p6=&Qm&NxGyakV((3~|QQ;*4*L zGk&82@>?;+Lt>2k#26QdF@7S(_=y60)DGnGW{}{&q599xb@&Bcz74p2D_?|Dqmq7KH?;gf?4>Nj0 zjowhBH`M42?Hj$JMz2t1DXicdYV?L0y`e^LsL>m0^oAO}p+;}0(HqKl597Os@!iAt z?qPiQFur>j-#v`)9>#YM@9CJzuvy zU$;G9w>@9CJzuvyOIB%3KFQGj#=>ayzEfC__kU4U`byvL{jaJ@yZ>EPX}fKBnEShU z{vZG4uQ|5d*~$_&ywE|I$A)*aVoQ3h{?@FaljZMZzYD%NflJo}=lmz%Xz~p`zur9K zAHT76b>gRLZ13_ce|C*Z*C=#Smbl+~=l{(43p4SuuF>Hd5%cShalRw@p5eWB^_N-P z3EwDWJZpWU(1q*j{YGIOVxddZ=)7CAmA( zyIJnsjn3WZ-0PgXrT5&0S?GmaYn4yw0$5A%x0t1~aL%G4E8))y%5_W^nn|`a{5V*y zxA3d5UdDq4dUUzpwdjKmHCRG%AEE@ctVg29|~55M+ep6{y~lP4ykazARV3* z)bc}hqMp^^zQJet7lV4|X@Ew5H-(1=&0c5nvx01Re9#ge9IVN2@LSH%JG@ix@NRRf zhnrhH+}!H3%&k7lEUY1BVVzxcisLZH;o%6gu&y!->#E{$;ez7v;jP6J^5cpphC38b z3Xd+Hl7F%IRha6%=`b@t&djHunECV*GoNlZ^J!wg2OS?W%PAcU>Ax{Qu77t}+<#NJ zpycrI46F6eu*&|7k~6~j!KP$V@ z>zneGWjE*7l>O4{Tk_+gUk&F*cZ08+b+9{p1HS3+JskIhy#}_PtYlZ=FHCa8&dbuW$94+k(;2+k+v|U-`}* z;i~AJ!7fqroTI-9PL1B3e=&Lw-0OGzHasc%yKs2)KCkbG2jD??2p)z<;8A!id@}kt zJmK?C`uq3r2Y3ob!87>{(LcdxcoxRMbMQR8058H=cnMz4ua1s$91jyR+=+h zWqnFQHk0HbR-b?vhI(&oX=V*RgP;aGh12l%u(fCb4v)36>W|p^U(aBk3-tpEh z&Z?s0%oaW#P7j}CpEj~jg&hN)vF7Iw@|8c(@LC#PUpygPPrDZsPj#FQGp(e*KkTN- z-Mw>`(^f-l)C=Ae*3z_EnpR8GYH3<6P1{V~>y*2>3Z523d)lHW!b#vMLA0kW>PZmM;czOP24>?& z&BmuaTWHUgsM+|mXAAAw5;Yq?YBoOYX{J5Rw5OT&G}E4D+S5#XnrTln?P;bx&9tYP z_B7L;X4=zCdzxuaGwo@nJ#z2PQWvx(MhqBWan%_ds2iPmhQHJfP7CR($J z)@-6Rn`q4@TC<7PY@#)rXw4>Cvx(Mhiaul3!k=I?JPTvsId~pkfEQsbyaX@9I2aET zU?NO{S70(sfmdNFOoQq0jy*Ke);b-{XQueec(8~+ToNW}%X-?YC3@QcsW zj6BU)Pcw3SVvZ(s(1QPTg%_sx@M9Tke*U_$i%*L4NpU_Y&L?f=lQ#27aXu-|CvE1F zHuFhwJ}J&8#rdQ-pA_el;(St^Puk2UZRV5Wd{UfG+RP_y=9A(yU|H#H;UXH)f&CrW z-+}!drK7^t>|Ot0F`H1yCRDHqe`FJ~eKuhQoA9__nq?CTzqW}@Xz+^{vI+073GID0 zVVYmw_R2GP-#?dVi&IKvkTY#gI&0eUAT^2Xza5KjqE}ryU@rkG_nhg>_Q{E(8w+{ zvI~vuLL_V1Z$g&Grb|K3yWZ8u*yO3oU zvg|^ZUC6QvS#}}IE@at-EW40p7qaX^j$O#H3psWn$1dd9g&ez(V;6GlLXKT%U>6$L zg$8z^fn8`|7aG`w26mx=U1(qz8rX#fcA6$Lg$8z^fn8`| z7aG`w26mx=U1(<)+S!G6cA=eJXlEDN*@bp?p`Bf5XBXPpg?4tKon2^W7uwl{c6Oni zU1*Q~2JU5Jeha^Y``~_f03L*g;9+_V1Z$g&Grb|K3yWZ8u*yO3oUvg|^ZUC6Qv zS#}}IE@at-N_Js#uorvKO=Ie4N-KM?l%{+{QOY6Nb+gqaKZ^o3L~f@3l$1a-31^5v!DKwX(sN#3#qm*9XKWM~h4L zi2gb#5tn?;bJHqVq7`&4&W~5JR8{IW z9V}rDR=U%?JDpNIC0twlDopj>bePE!+#haW5jOZ0$Fl}2#ryex5-D``MG9TUy6dlz z!aVE!X{IP(C2e0x+gH-|m9%{&ZC^>-SJL*Cw0$LQUrF1mX?rzoucqzQw7r_PSJU=t z+FniDt7&^RZLg;7)wI2uwpY{kYT8~++pB4NHEpk^?bWosnzmQd_G;Q*P1~z!do^uu zq3tcSy@j^7(DoME-a^}3XnPB7Z}}HQ0ri-1GHtIHLl@!Yjuc7rxTA!r#Nm`$z^+{Tvr1eQ!pQQCkTA!r# zNm`$z^+{Tvr1eQ!pQQCkTA!r#Nm`$z^+{Tvr1eQ!pX`kWQsE}?b6%Zm0oE_X*hSd8 z#A@XVnq7(AE6voYf@+_t37@3_9oXN2{T;p9|C#8Z$-lMeP8R0z9HXlK9XLVGej=Fh zt>#e3-wU&x5}3XQ%hzN1dXYk52Kcgme+-lTMH-mhRdRS(QE~*F0e_1aDntww+e8c% zB8CbPLxqT;Lc~xZVyF-?RBRJ5REQWVwuu-j_{PN|hL8EjS9+s{dmXop93J=g6JYdd zOb3Q`VQ3eIc4252hIV0S7lw9WXcvZd@fUgiB9B3NmMza;clG$cWakaT`gw znUpI@xt@eSBjFtT_BQ*rn0;GJ(k*P;VzzAoiLYVT5~O|wsb5Cwmy!AiQXfI;li0aV zcCNG65>E&hlYBcHw~_SUCjGbBxW#PTVm5BE=%-us)6K>m#l|hhf>Bs73JXSIL5sMt zMcg}5H7S}5H7 zSP$T*%z^~nLRs}J$r;bI|>_{v9Y<&_YPpscE-lHvGHweY{AAB zY;3{C7Hn+6#ujXB!NwMBY{AABY;3{C7Hn+6#ujXB!NwMBY{AABY;0lA66{%mJxj1> z3HB_(o+a3`1bdcX&l2oef;~&HX9@N!!JZ}9vjlsVV9yflS%N)FuxAPOEWw^7*s}zC zmQWAq6vb=`Uc&f1JJuua@51;T#`j?SI^I3Urme;L9;{!7^=q-dVB6ZUem&Or@a{SG zZ5{TvVtxnaw_<)P=I1cK74r*G&N|F*6X!P+@_r0o$BVaO_+||6!tf3Z@4)a@3~$Bo zR`#tB%eNN1H#@Y59ooVUO=5>St(e-1sjZmW zim9!b+KQ>InA(b|t(e-1i8)NnVPXywbC{UJ#2hB(FfoUTIZVu9Vh$5?n3%)F946*4 zF^7pcOw3_o4ij^jn8U;zCgw0Phlx2%%wb{=CiY-r4<`0tVh<+vU}6s@_F!Vq|1yr= z{7>WPyV+qG9wz26F^7pcOw3_o4ij^jn8U;zCgw0Phlx2%%wb{<6LXlD!^9jW<}fjb zi8)Mc!^AdBY{SGhOl-r%HcV{8#5PQ9!^AdBY{SGhOl-r%HcV{8#5PQ9!^AdBY{SGh zOl-r%HcV{8#I|0K`UPxTi(y^83`>h->#(ws4K8@fBiPMvTbpxwI39xvo%zKoN2vmP z%xQ}A!>e$uMx?F6#R?bdQ8l8;LO;KTKP~KvSn#KDoXh!Efmc}?eS&Let-p$kIal?1 z?6@;DIKx_JsCI@WeO-p6Z*TDJR^QIEy91md;|$+t69za-#%#z><-divd!_4F$qEYo ze`}p=J>6)e8_jg1kPkQ03%lQnZjTJ#;0@m34c_1lX7UCzd4rj*TA1m)$W=e3E6sGI zk&ZOdk!Cv5Oh=mOM>Ebh<9jo{H{*LVzBl80Grl+Ddo#W_<9jo{H{*K~zBl1}6TUa$ zdlSAl;d>LlH{p8|zBl1}6TUa$dlSAl;d>LlH{p8|zBl1}6TUa$dlSAl;d>LlH{p8| zzBl3fdVF7x@9Xh>J-)BU_x1R`9^cpF`+63$5lA;?_po+K5{l zacd)PZN#mOxU~_tHsaPs+}em+8*ytRZf(S^jkvWDw>IL|M%>znTN`yF<8rVB%e0EM zs?ilnW6NrOxsZot&Br)`6uu3|>6{$j+dXMA`WuaYLFQd}wnBySa}|lt$$u^R_w>sC zd|GxPTm%=xCGb7?K3ocy!4Kea_#ylVM!*$tC0qp~!45z&>kgT9hs?S|X5AsP?!c|% zdwI1pTfD)q*n(SY@T#CC8+)~+#;;1#5IcF&mNuMf_G=0&Y(B&L5B!S1tgu<)SA5Ry zZs^sRNtjyetjnGCEoW`S*luIgwueVwC4E8Q}rFryn z2?nR+Y2);4I^}BP^lUndhMQ?24iU?Y(v#iERhMJ%a#wy6dzWMHa_n7BhaSV=#o$^D zuEpS546eoCS`4nm;93l>#o$^DuEpS546eoCS`4nm;93l>#o$^D?#AG54DQC@ZVc|m z;BE}=#^7!Y?v`uykbe*P_mF=N`S*~25Bc|ye-HWhkbe*P_mF=N`S*~25Bc|ye-HWh zkbe*P_mF=N`S*~25Bc|yf59Vc7MnaIHrXuKI#q0Pnb>5r*krSQ#d%_rYsDs;#U>Bo zN&`FenAl{q*krTV~nxd^K+M1%RDcYK%ttr}?qOB>~nxd^K+M1%R zDcYK%ttr}?qOB>~nxd^K+M1%RDcYK%ttm0dD7((bF*40AH;Nmw=3H%^o3#X|C*yII zYD7(MKQ!r`)mWaStDn-#@3?J$}uV8eFL`!?a+ND=@l&O|D~;>#({3s~fPo0izo* zx&fmbFuDPw8!);7qZ=@~0izo*x&fmbFuDPw>oK|>qw6uc9;53qx*ntJF}fb3>oK|> zqw6uc9;53qx*ntJF}fb3>oK|>qw6uc9;53qx*ntJF}fb3>oL0ie`u5I*yK7=?jq$b zQtl$i9yi9yi9y^snkF(>Clio7YTSjs}V~=9&QDF{VAqw~uiymUrA7RrUVV`PAvxR+{ zLy|2d*+P;nB-uieEhO1Ok}V|JLXs^c*+P;nB-uieEhO1Ok}V|JN|LQ4*-DbFB-u)m ztt8n>lC31!N|LQ4*-DbFB-u)mtt8n>lC31!N|LQ4*-DbFB-u)mtt8n>lC31!N|LSr zqiFJcvHgW`5nK$H!1v($a4B2{KLGQ}*rralsgrH$WSctKrcSo0lWpo`n>yL1PPVC& zZR%v3I@zX9Hs$}ai<85)9Jb}KEr)G6Y|CL=4%>3rmczCjw&k!bhiy4*%VAp%+j7{J z!?ql@<*+S>Z8>bqVOtK{a%@V>D%ll0T3l>a+1uCLjAfg#tPRUP!?JFkZWDIZW7TGi z+Kf$=*i^7Nf5e)?jEh3Vxg1*xIZK-v+@Ip0eJydfomXyTWyU&Fq0-aF%4AuYH8{Hl zSJyaehJ|^bh53Mm`GAFamxU?JFnOI-Da-`tp|6jR2g4z7C>#cd!x8XpI1-M6qrtjdTx`L` z7F=w>#THy_!NnF_Y{A7ATx`L`7F=w>#THy_!NnF_Z09H2`N?*EvYnr7=O^3w$##CS zou6zM>1A1!taCxy0SN)EaZ-zMyuOM<&9J!+TUWd@?@yciM%9ndq&Q=@PZbS;z`j*}ptO}QsGUru} zY46t>jXE~4o+oU8Mz*rqF=ISij9$U+(QmA5H&TV_eY??GXSCKCt#wB0CZn~^Xst6^ z>x|YqqqWXxtutEdjMh4%wa#d*Gg|A6*1CV89qayYV=Pa@GNMNs(P2jPNF#cV5xw1r zer!ZIp0+p9_Cj5^z~6S#$&gMVGR}}p1F5v*Zw>y| zupcSj=X2iYb6UQPmRFKghLkd-lp&=I31vtqLqZu6%8*cogfb+QA)yQjWk@JPLKzau z{L8fa8QS|N7!A+D7Q7z;1K%PS?15pajUV%XQSOn#O~~4nte>OkG1S$Vcl;z`&g)k7oKSlmrs1LH@>T;F@#R-A+C(-LWK-en)nwB`HZ87Fn2*p ztZ*kQ+{p@evcjFLa3?F=xlO*^N~W!3+DfLaWZFumtz_CtrmbY!N~W!3+DfLaWZFum ztz_CtrmbY!N~W!3+DfLaWZFumtz_CtrmbXZ{wbSQ=zhfH*@fCo6;E2&;kJ;KeqyAT z8tJ*@xrps5R0!(tRen`_#Ap=_-msHO6|2xV~!*6#A@N^ZKN3 zF7(ZJUH47#U`#w1bN#}+_vc*y6W4#o^*?a^_r-x9ivvG)wl#&SP;W)(3A$b(W+?co z1$ed!&la%EJu>4huJ&0?_!ctsYifc>zZ=K_`6yKKi)ijsl+)|udigQbGZYj*x(dFog0HLK>nixV3cjv_udCqeDx$~1P&gh= zfD^$z^K}(`T?JoP!PiyrbrpPF1<$_<=T_m|Dx6z|bE|M}70#`~xm7r~N(TFXHD_px z40ekQc8d&lOVrMyGT1FL*ex>HEi%|GGT1FL*ex>HEi%|GGT1FL*ex>HEi%|GGT1FL z*e$$79sbwhe;xkU;eQ?e*WrI1{@3Au9sbwhe;xkU;eQ?e*WrI1{@3Au9sbwhe;xkU z;eQ?e*WrI1{@3CEChK7f)tVY}0n!+>RR;>WNnuv;CVbqCkDKu^jgN(WP!{6j$N0Da zA2(q_2Obu>QCsz5oii1xlI_maMK3mCcO7;w?Tb$f5#*w6&hS~`48c=DhkMAIdo(}> z{RJ8BjwU?II<1XW(! zpS8F?Y%6YnMrZ<-yEx;Rg%(&7&MRK)xDHxjy=XA!y|yq}+zuVG@J@es>6C7OjXq;< zhGKg&6o2mZW);&O$1RZe?_t>1FR{YC%QFkfP(Psxv91dKHQ%8a;D zj4XW#-hf%~9@zi3)E>8`Rgi?Ns5J^-(aA8zWrG}tz{y_!(EB>0WuDbjb~ijB-k)dB zh&p?LdB#Lp7IM%A?dl;`Jlgy$qSfIXD?(c=L7?!|N_*7Na43en4JR0|u zsM$F9K9sYv`(e{hJP2_%HobvOS!}uqo5mIGoWGyck1iULpH*~Fus11>#PV~@@cxY% z-uGbn6-N0`qj*-ov-3YSa>p38sYYv8qq1+wn(*>ca~qAwWk%#8Be1&>_?ln-dD$S( z47xSkx$KF2wO={HuQ|fqzu-=P$A-@=9W!;S9d0ayRP*^7){hcnM{=07`IjkB$^&qfFB>~G%c0MYf1v}Y$( z&7H+=`-&lk(7S`J1-yVAxBIuVZgAEOSe$d_9QJhht!@2Iv6Hu*lrd(Z-<XYOFVJMc^c_rH_-pX#bpT=ir3A9dA-T=9i%?*AcYnq9V+{lNy= zk8100_}Cd<^Bd~?hAPjD>4e(-X<^GGZ~(y`qvTO z;?6&I=O4QBKf3F*yMDx7AMcFk1rvQ@QqUPr3%XRIyH&6^!4}Ai>H7N}rDQcg#Ie2K zwFB%ZpR_9+%a>#Max7ntJfC9uYFWMv%a>#MaxC8yEZ-9>UykL=v3xm}uY={wv3MOU zUXI1fv35DuF2~a4Sh^fbx0a>rVCi!1@-w!%(YP)W%`OqmE)jPw6L&5%zKhuELbl(# zQjtV+#qWmG@F!RNK{&s74$KYTU?E>Gp6B(F@U3D`pJ63m$FG&eDSy}dYy&hx6IlJl zQs!9797~yFC3CD~j+M-@k{v8#J!_a_1#_(66Rcp470j`KITo;!_3L2$a{c;2|F9l^ zTUoyj*6#_{FGu#DkbOBWFJcArtY8kO|G*07a3R48=I~)1E7-vbcHl)PE7)PKN+oVA z>i5TR1&f$r5j*;m7pu5{Rb0R-F2I?WaAq{lbd*|S!$Q8!LQZ5M8*r!rhZVFoyf6}Z7gIP3z=gfJMgT7h0L*#xjyaaU?J;qt}{9#oEDu4 zuj?kf8@?5N4`##r@KLyowX9$*bF5`8Ygvn<8P+n#TIN{G9BY|lEpseo4tLk$Z71G# zu#$NzUPJjxe-i%!U%w+w+ezejazLR zFYzQecf6T~R7Q6VKXS+K)8}P&k_p)z-pE;3I_nx|U4&~bbn9z$>rmgwcsg5$Yxj5U z0jkwIvS6MShw0;dvKAx%!&4^QOS^k%cQ3OstqIGvGT@|e1*un)`YO_XsaMkHnQdE; z?zZ!lM~3f^;2ihd<_!ubl+kSoUnz>n$oi|{7Jl*e;RCez0cS15E_oW9r@?t=&(q*~8r({Q^E5b5 zbMrJePjd_LN?yD&n%3rNZC;$Rh34jIZr)vur@eXFo2R|4G&k=q+h}f=sA^TwvGz4Q zE_|zKsN?aDr>iUXS$s15vz%eNoMAfc?WDO6(A)=TZI0GHP&{A#cmXVjD(~?Ov^Gy` z^RzZkYxA_Wp4R4RZJyTV#W$mAZl31mX>K958BKFniD^cQX|{-Iw$S1{EzZ;6JPpo^ zW46%ZLhO>Ky?NTZiuSIewFNEB)6hKa%+tb+_%#K;rqIMz8rVexyJ%n+t$Tphx-r?-K0Unkw!r29JQ&L-Wrw~_8l(tVwDUnkkSNcJvL zy^B;cq?#es%zu#P-%Ikr1&Z+c9CM&e3lg zR9f@Ap9$Y4t+z?*ZPI$1wB9DAIixg)l;)7q98${kO6fnBOjoaD(w<4Q2WebI|2o;S z-}dU>zV`F9W{f7!G?H;6S#IPCdju3#VHQ?07FP2-%$7WZ^PRN4w%41SWai@VLi9l6 zzZ(FT2h!8_5$CEJ2irmQL9TT2h?jjop&+e%|wX>2QvZKbiT#Pljmufp^-1z%8zAVt6htM_jr zkwRp#tGoUxd{Zp5ugGM7?+tOs7Z}&Aj*1OvU?skE@T~qL?#;lv3E^v1-cNcSaF?SbpcQJQY;qEGWJ=hA~VFxyOk-K}y z9jxRH9y4BlBEd!ytZ+w#y$}`~gI}}DYyI}Dvu_D@{9k`-FS`W|3Qp+#b{XcZcZR~A z3x)j_3TskVIsaL(g;lZzel7FOk9@O`A6FZP zEykeRovtUXcG4>B)=+^*70%k=tn0+Je}COd->&`-*DZ|5r>_01>!yv!D@J63YZm5z z6!yI+%rjc%I*w|ra;TBr5hL&um9SPT8MLP;>1?Twvb~tqp$NBb9$KxGOXMO(G>8~^%AF|VP+3C47 zXblZY(4Yj(X(;X#m-hGksqOUR4-en;E8nCon`ue|O{t(M6*Q%Src}_B3YxNprmUeU zo9S^6xo+jfLi)Rs{;o7K|CAqeb0vLT`Hws)IyvwJ#=sL815aKIz6QI2r`39%N0ldC z*^3GGHp^@u*f+e<6R(~P_7AVLTgN+g>sS#y;_0~MKD!jxmW4kG;?`3Y)^emhDW=h9 zvbsQ<{reU(bwW8sBs`wgzOTp=ANkQc_|ZFz?PQV9RO9=uG2P3U4l<^D8Ph?=??B^s zVA0L^_AC6m6O$j1*FI=A^5b4NIZty~?Rn{UL{9NcvSE&=c_Pgjc2O{^He!xiqCu8jP|cM4BI9u>|kem?y7;upgQt=_28ovP(i?p6~d!`u1R zJNVY)`PSoAg>F$5x`mHDzPLh89q+Z@lgV{5%lIbC_$Jv-F767a@}*N*$H}bYWRcKR zylm`uswb|V269kx-;3P8+~0G3`+LrI{|&Gytnxhd{XI|pXwOmK-*ePY@~rgzJuCfa z&q&|jGty5gx!z}f3jYp2gP+4M;6@;wZJw3B|6iY#{!*|@$$0-h0VcvEcm*cI6nMk; z{`L&@TT0&c_urnOeoM*wo_p>&XWKkK{T9zp-+!Cur{CiF>BnsI{Pg=uYW-dJ*XO6- z=lSV7d4BqkQcwCU#kW#V`YhcEz6f7}fv_|1rKMknUEnLQD|{93vlKr|@w0Sy_y*u< z=^n5r>;;2hFzgNcz`n2_d<#U;rGI-?d#h))mzN$KthTDAs`OB+nGSP29L^2zC_N9( z2iz&W5H5yG;Ct|WxHPOTy$pT;m%|U?M=%1efGgoD7ztOyHSlA&7I3fhI=CKw3jYp2 zgP+3wNJ zdGH@@^E~(~%}2gcE_=0IUEZ;)%R6OB`_!+3YN&w}q@flX!kJ}_&;-qpfh@GZ8dwYK zpcU3b4%(nSoZ0t0_yxVsga41uf?v@4Eck7o1OJYA<=t?hm~f$(aG{uRp_uS^QTbHQ zF{p~Jfwiy>T4B8&miQ^!2JO(HGI&aO$bjj=HwOGU{P%zI4EcW_@TPzB4EX`?gc}CD z%SQd0#T&!oy~EN~vUH6s-87b~hQ%7kT8&|?#;_#QSdeL~#vfUVF|5QGR^l~QVhqjQ zh2{>Xxx3KZgJ|w9G&wS#&IsTsO@0icb^EVq!`ywSO0>Z`45p94^f8z|2Ghr2`WQ?fgOQaO zS&5O27}_DUavDZX!^mkEISnI+V&pW8oQ9FpFmf73PQ%D)7 z-dOr@(RHPd1QRiGcjS(#(ECHYepg-eJ(vyehc%>MOZq#I{vS#I(g8Dyt{X5jcznR?!IuZT5gayPmiOO; zw*ou(koxF1|n zJ8JLZ{(CSR-tX0cs$LJDKFPx;xAE{P9zKQl_BW;j`-dZV_}M&s zWuJ#n^6;PX@R#xMf8ycmc=*{o{JT7SGY_9MV)J?UB|QAGM(%e!d~zEPKZS>%_TPB; znLKKFPx;dH5s`pXA|_JbaRePxA0d z9zMy#CwcfJ51-`W+qUuWZS34)cCMa>PxA0RJbaRePyP=*e2Rxp@$e}gKE=bQc=!|# zpW@+DJba3WPx0_69zMmxr+D}j51-=UQ#^c%hfneFDIPw>!>4%o6l-uZdwMf_I)*(R z!=8>|PsgyQW7yL%?CA*BU<7M0f;AYy8jR@k@FQ4*5v;)o)?fr{FoHE0@n3lO5iG+9 zmfKFPx;dH5s`pW@+DJba3WPx0_6HvYgq5C7AD;^BYF#{aa>!*Al@llHznhLsv& z&)Wr_-M28j*W8ITYgS=C#0-_`dt_Cg%loFurV4x5@5NeF6weKc?7ViCnQFV293I|V zazyy7RgCvq#n@~WW3yF^_gckxuT_lACFjCjV?b0>kvVp!o}UtE~=HAvOv51z!7 z^u(YIcI+!WtKuZ`I+>gXkk7Bk<#^A&Yb2L1l1Ukv97rZ-*m3S~`^Ft*hrQj&XLr4j zK`Kv2k<+o{bgo_Y_93fR$?9BkDj}ys$*CgvM(|}b&$jMSN$NNv?&?*R?9f734d| z$i-dZk-m=7dROw4nD7m9{mj+gaN|h zQE)UIV@=a{ymu@dXXfTmI37-b6X7H{8BT#=FdR;W)4+-ld%QN-)b!5bN`(9 zwkgAL#eR^!sA!bJrJr6~5;6 zZt!*3-G0m8aKsB;`?0!1G5x=o7&)ao6f4>X_Ei_%&+%KZze?f(K6jwkL*${u^FxYm z(h<7ZT&G`}L2-);~DEmO9&h3PO8 zKJmG^LBvdh=fvVo#Yq*rRgm&`eHbflfJSJ7X6Msq(6fvcx4;^oU+cIIT4BBO+0R-W z-z<)AR*7va?(}yTd$|EN`b>BDu6X`keax7;>GgV*;q6oD1js%mr`}(4~H(!`J%nt$Vf) z>thZ{|NX*O`+qB(+JAq&&;uL~3}^Nq65iMUpm0_H4^@jlf;qtj_Azd-k8y*2j2rA@ z+|d71NQF(Jlp+0BhhzIUhcESC8!l8;{=m$Jv2u?lvxCQ)xA&18q-i^x+ivf$XS+?| z*pmIjhf5BC17Qdp1P8+*a3~xGhrD#6tzSY^`fXmszfATBR=2S~51czvQK0iOOk{ysAlF)g-TKl2$mc%xxlepNuaN<77)#M*?-6&s0&zs^w%#TEeGzsi#WTdIsSR zb_nEmqurKTf--7*vX{84gO)WjJ=%dmh!ONuw6-_QZxai~3 zLsT6P4Q9)?n&ewer8js^isz}6-U+{k-@sjPH{4THT6(YJZ{c@vAKVWQz=K6YN*{_` zSo(0}tWvY9N*^uSq4cq$14|$GZ%@FJ!A_pPIJI;%JPTvsId~pkfEQsbyaX@9I2aFw zr%X?B)8WtX8q9#1@CM9+H{mV$gP#0&DD0;pwlXp8RT$^9FmIH=YOV!{KzWMzZWoU{A}=1~#?q zyTGoNd455e4sqFquE(~PT@07N_u%_*DO?6WfXm^B@FN%jSHP8?(s-5QNVpoVfgi)Q z@DsQWu7{t(zr)W!+*2m*G1Gl)*^R(|n(02)O!u*7x{o!>Ypf?Ik1f01^EZFxc!&Gr zS3N~JX8ua7>>ju`jFX~ z*UCo0GxlZw6O4vuVGKM6&%+DwB8-KX;AI#G<6#0!gh}uUOa^}1zVWNerouFs4u6K% zUe0c$Q}zO?jqc;K`}*vDKKm`7-QT|-;Ijw% z>=3UH3dcqdhC|>`I1I$_(IY?%A3YL|f}`OW5W`2s@X_O7C>#$bz=?1YoD8SHFc=P} z!f9~2n#dV&CY%Ll!#VI>I2X=?^L0TkfD7RwumatB+A8a5tD@hBOW`v30bCA01l`c+ z2)F{SgsWgATn*R2kKtPQ30w!)n^*PI;2>-L7g+BWvEFSbYyB5QZ-Sfc1@OyYptb%B ztbIGk+PC|xeJkuuyue!j8oOeJ*1&zm8n~mPcl%BEz`eRUzlGnyeIVYCiua=r!b9*d zJOYoxWAHdU0Z+p3;ScZ>jDlyv*R7a%Jvthmg)#6PJP$9xi!c^mf|p?&jE4y@5hlSa zFd3%6t1uO&!E|`Xjv?>b*YG`<4e!I8-uWx>Xv_@n1>pzgk;Tj-i$xd15?BhKs#R4u zt_VMjChW)1;yhwfwXG(#ttPdtrf8?J=zl54-Y@G=(QcjwdliJA;PJk2PBsdvPfni`BiJUYoCr!&q({j?ZoHQ*bP0LBsa?-S% zG%Y7h%SqF6(zKj3EhkOONz-!Dw45|8Cr!&q({j?ZoHQ*bP0J~*x0V0>8h!(J!QF5V zu&r{+xSTRBr;O`q{8>+9Uhs$~rj+|#OU-In=GogToFi_J_=ICpov@HM7IxKbluKsh znJqrM8Mde{gerp(YqScrmooX<-(~}*B*YFg!0;o1wq4 zQE#JOZ)2jq#zy&Bs>oa$eT|ppWGQ`(mr3jrxmikXmeSXFS?6h_{45o@I$WWzF*5QK zpZ7cEWpTUl?-Y3;?1+pCXUW0Ra!P0WDv>Yrh2aC(U zQu42KZ{AgyMfi!o=Qz#{f2SW(m`(Vce#mqBA+z*DX6c6%@~>3!ns9;~YJwbUrW|Uf z{Aq&x={@<=dvd4uY@QOEr^Mzdv3W{t zo)Vj<#O5h+aY|gA5*Me$#VK)dN?e>07pKI z;*_{JB`!{hi&Ns_l(;x0E>4MyQ{v*3xHu&)PKk?C;^LIJIHeDfvTtWf-yx;%kP-){ z#K9?jhr4tO?^0R1OSkYY-NL(c3-8h`yi2$6F5SYr%q&RjJEZj;()tc*eTTHZLt5V< zt?!W5cS!3yr1c%r`VMJ*hqS&!THhh9?~vAaNb5VK^&Qgs4rzUdw7x@H-{CfWhui*( znFS;D9Y*RqjMR4+sqZjSN||ocNnSfFj7UVK}D=VMXW*ZcBEdz zNWF$1i!sw;%(NIYEyhfXG1Fqqv=}oj#!QPb(_+lD7&9%#Op7toV$8G{GcCqUi!sw; z%(QqWE}n^tXX4_SxOgTmo{6(o2Z(3l;+eR3CN7?di)Z5EnYef+E}n^tXX4_SxOgTm zo{5WR;^LXOcqT5MiHm3A;+eR3CN7?di)Z5EnYef+E}n^tXX4_SxOgTmo{5WR;^LXO zcqT5MiR-8QSwH2^`YH4DQ|9TX%+pVqr=K#fEDg2L5Y94VVwM>bv&@*7WyZuTGbU!4 zF)_=GiCJb$%rawQmKhVX%GN^;+Mqq0#h<77^E7{+=Fijod73{@^XF;)Jk6h{`SUb? zp61Wf{CS!`PxI$#{yfc}r}^_Vf1c*g)BJgwKTq@LY5qLTpQrh>lpajE9!$9&Ot~IR zdGrITUOx4Fc=nE;O7T-Eek#RJrK04i2b0!=N$bI+^&?Hy1esPvCmna7YZ}cS&q+D zQ#P;`b6ATxtiHkN#^H@}OXq4rH5bxQy1{ub%wr)_QVq z^)~ZzJ~9j960;!AQCt4}e>-1>6fW%TguPaDlbH_pn(6S0$lzcz9nLItzy3ezsGIzC z_SyeHIw$C|w4cXRk& z|DD74%8r5Wz_D-~429$21UL~+^8KQs7EewJf?V+dU;Npga}WQ*G2i^o&|`lvbkCu` zJ7LNRADyuBgoYE^PYg~Rdg8e!UU%Y?Cq8@PM<;%EV&=s5lfHS<-Y1=V(v2rQdeW+s zgOk5?=2yB{l&qzHr+Pjwx-*+zx}$~AH6;QtFwM} z>9217{qQ^9yz{hsfAjm{_dfaLy${WN^4KTueKPa=;ZN`R^q#+;`qY=6I^n5{pBnkc zrl-H+ojafY!_(uRp7(UkOUFLl^31-^p7iX6V_tan(q~6KyK+qFm@kjHcFYT7=Du+8 znDleApKE!3-xn@^{%6m>_I&ziK`1lK7d3yXc<8L1SoAHlMTrmFG@o$V@ zIzBUg!-QbM7bZSFVYdlGCLBBAj0qzr+&JOx3C~U#KVkZWwCk~o; z%)|>PUODmFi8oGsd*a;_r%Zf&;&cB0_QX$Id)1`VCa#_M`J|mE4e{S;lP;Zf?W9{K zJvr&+NpJXX>7>l0&tEBh<;$-e{L00z-0;fN{u}?w!dDvn*ZxY+!Hu=)YH&4EI z@}rYyPM$kCJ*D52-KQKdW%!g4Q|_NKcFOcAvtM00ef*4LavjL>v;Mid>zd4)~6e&Pd8AXu3De2TA!|3 zpDw0P7t^PU>C?sZ>0UQs7_8)Cnu_t6V=Iy z>f}UqdUV~gzXLp5>=4%f5dFGt{km@bx^DftZvDELeqBtzE~a1CtzTEJU)QZ)SEFB7 zqhD8}Usofys*_tKo}RYGo+kXt3>RtdRPLT;6iTP5UHiQs-cx(DDvurInCYl9ps zA;+rHr<*UwS}7`6rbk!U^=_G5D=ybc$h8*g(N*cub<4Rb_36_3b20t7n8=|bX!5yc zuQTB%^030b`-|ja3H`WT$k=9 z+sgIZx+8albM)N0<#q|VT|&QYx%@5~c|aEbpwHM(KJt{~C^HbA3qO(X)yenj4U zy*l|`oqVrOzE>yTtCR25$@l8ydkOhoA~Mx|P4oTfuJM{YaE8}2!}*cd9p8{!&T_ps z!%sb@ZCT`P&)0m%{k-e5@441&$M>D%1Lv^%G&0vQ2J^f>Ke#Bez_A?EKO&35xe+yx zNQInrg<1A?(~49=70pfr6C%mr7m=E9K_umRj-9^SWgN|xk8Ff)*XRj;8QBv2vN*64ZIRuJB6^9%R=)Rx{;*wG zQ(WR$22r{1fbf&z?d85ZIDP?kG|OivJEwiocfS-aEFNeM#m+waWvexI@!hZZ_g&2e z{Hk?NyICLmb?fxmisC(e26u{ar}zTjz0ki~162Hd`}AF^XK24`Ird6D&X_!Vp}uCU zcsk64PyE~5piEAk(9=xmX{L(novQ&Fp$RgOg%&W|r+BU7I%tLU&XMz8n-vJ{(CKxT z``7>*{kuM&T>K+_%x*o*ZavIydHE7O%x*o*<^76+ujpaM`WdHw#;IS4*8?0+wKC;2 zI0Nh}+V32&pQyfNte^V2zGY0`vRmJ>qCcJL{|(1IJXd#5k@{ZYGP!-7+`dl5>4*L2 z27Afx>*V)!^7}gZeVzQiPJW-zryQzJ8SCF1miNyFhxBi8T&qT~PX6EO{S7{&AFBqC z*e(bwwkrx3ZWjq|+paiVv|T^%^$(YBXZ4IeX7_f3!?-#@gI;E=~i^ zJ4mP~i^J4mP#cd!wtbe{j`Dl zX#@4s2I{8`)K43zpEgi-(WRd@P(N*;e%e6&w1N6*1NGAe>YEMJHyfyLwu`=5wZ2)k zzFD=tS+%}dwZ2)kzFD=tS+%}dwZ2)kzFD=tS+%}dwF=@H`exPoX4U#;)%s@D`exOo zufkNA2Gils@EXj3nZeGbubXrEhS#&;O?b=mO5b*T2h3X5JFC_^i|L)k^v+^>XED9A znBG}T?<}TwR<3teu6I_hcUE4y*h+jgR{gVb{j-?dTQNzYTae$!v%1md!+mNYB7Dan7&#}UoEDu7SmUY>8r)` z)nfW;F@3d|zFJIQEvCZ!1%0)czFJIQEvBy)(^re>tHt!yV)|+^eYKdrT1;Oprmq&$ zSBvSZ#q`x;`f4$KwV1wIOkXXguNKo+i|MPy^wnbeYB7DaZhf_GeYI|VwQha2Zhf_G zeYI|VwQha2Zhf_GeYI|VwQha2)5|=wMPIE(U#&)8twvw1MqjN)U#&)8twvw1MqjO_ z?2q6%2Wn9XwWx$zR6;E(p%#@;i@HuNDxnsYP>V{aMJ3dt5^7NiwWx$zR6;E(p%#@; zi%O_PCDfu4YEcQbsDxTnLM>^qtx|8TQg5wNZ>_Sgw^pgQR;jmEskc_Cw^pgQ zR;jmEskc_Cw^pgQR;jmEskc^HwgTc%2`ixr%&AiEs!{K%QSYiz@2XMns!{K%QSYiz z@7kc=wL!gWgL>Bn^{x%-T^rQ9HmG-PQ19BH-nBu!YlC{%2KBBD>RlVuyEf?04b@MZ zub(zwKW)B#+I;=A`TA+|_0#6-r_I+-o3EcXUq5ZWe%gHfwE6mJ^Yzo_>!;1vPn)lw zHeWw&zJA(#{j~Y|Y4i2d=If`;*H4?TpEh4VZJB=BGX1n=`f1Db)0XL{Ez?h1rk}P< zKW&-%TU`AuuKpHRe~YWX#ns>9>ThxNx48OST>UMs{uWn%i>trI)!*XkZ*ldvxcXaM z{VlHk7FU0ZtG~t7-{R_TarL*j`deH-tx7-bl&DpF(VuxHiB)`_?@{GxGgbO(Rr+dG z`f634HdCdqR^@3kRh~9e<*5o)`f64BYE}AbRh~9et9uxPDq(KP|4G7S~UU>!-!_)8hJRas9Noep)>G$M6$9wMBYri}chM z>8UN!Q(L5`wn$HHk)GNjJ+(!8YK!#L7U`)i(oZIPbZB0aT5dTNXG)E4Qf zEz(n4q^Gt>Pi>K&+9LJGgr3^2dTP7ssqLz#wrlhgJ+e74PknI#lzY7p7Qtdz0!v{T zEQe3SCHiaK`fD}OM6iRpWkTIDp>CN_w@j#8CiK^0`fD-$wV3`|On)t=zgDTgR;j;M zslQgKzg9WmiE#daKd6{J72Gx8kHPQ(&xGA-n~4GMh0FETmg}p<2Jk%tmYC;tk(r-0 zK|ipQifnS3Y;u`wa+z7X8)THrWR%Nfl*?q4%Yr@4LEQ`Xm9gv(2kJl#frH=>t7r~| z!{Bf@0=^ALh9Af*Kag2|AhVnoe8+pof<5qLmK8F~3Ylev%(6meSs}BmkXcs9EGuM| z6*9{TnPr8{vO;EAA+xNISysp_D`b`xGRq2?WrfVLLS|VZv#gL=R>&+XWR?{&%L5yNt;$W3tPb>@p_1tdLzUmR&BET`rbgE|y&`mR&BET`rbgE|y&`mR&BE zU6#u(%Vn4IWtYo?hh>0|$QmD2V=g@Bs@ym)B#)*3ZMnZc4d0h>E|qc4mvJtWaef?B zsY@q}WztF}(SWRTp{#S6taE|AISWsTE?6a`CX};{UT=qFz_W6$NGba1| z*q%s3ve0F+&?U0aN?GU0@9X7Exwo2fbEe!0Q|^S7 zrBf!|t)|>3m~wAl^GV-#jjs)vAg}ZJ|1jZw!T0~YulMfXhCrrH)rruFg?@vs@9L*k#m;(s&D2ypwq}>-bFbU& zcDp@}kIeb`_pVIJ$C{Mix&~d>geGNsJQMSniTO?w^Q|W4%h$x-_15$l_j@jhpK-y* zR&R@`IcI9lnwqnw=3vdw{k=M=D@@K;tXcNB&J1OO-fDv0W`a(epaTnh_W>A)nt z-6WkgN#Ah@D`T1-Gfht&acbTx$ChTn{?6e6xZNg5Qu$|2@^#_h%&m5AKf~no_-?Tk#+MYIT=SfxM;J7?m~9a8h0BOmM1kl1}X%aDnC+{8U@_3#c;_o%6R#MC`v>du+E zZ#Q+{ZtBiiJv?FZ&Y8S(ChrlGch2O!)#QD&$vbWG&Y8S(hpshgKS<=L{l+^=S<-_Q+Uo4o;HQ2P2p)%_@XI%^w8@aD|>`9C_U20V|rUn<7w0QZKm;I z(|Ex&UNDVcXc|A(G+r=`7fj;?(|Ex&UNDUZrtuR^<7w0Q?I!V`n8e3S;@eH)>9zKE zrt!cuo;HmKrtz$4eAqO8t!exY)A+P$e8e<9VH(ew#wShVKR1o1tt_5h_au3;JVl-= z$H~*=Pvz-yygWmm*;}--c-G3|Su2ZYtt_6kvUt|Y;#n(;XV;w~r^<8XdE)%lRu<1% zSv+fH@vN1_v+GWmGvvkc68HB~d6|E|TwdYduavX=`_JTTd6k?aua?)yYyJOo<#qo3 zdiitzK2Of~?>G49{Xgq2@b5QSX?&qvt_7BZT-&g zyE?Lt!AJy*M8HS{j6}dl1dK$$NCb?;s~L%akq8)xfRP9oiGYy^7>R(92pEZgkq8)x zfRP9oiGYy^7>R(92pEZgkq8)xfRP9oiGY!4SC@(Q`s)P0$JP(CDA$%o~ywlNnY%*6N3xwxIVxShF3GZ$&*;&$dD&0M6J zi!^hQW-ijqMVh%tGZ$&*BF$W+nTs@Yk!CK^%te~Hcms2hW-ijqMVh%tGZ$&*BF$W+ znTs@Yk!CK^%te~HxQDqYtT%nJ7X|jBz+M#CivoL5U@r>nMS;C2uongPqQG7h*oy*t zQD83$>_vgSD6kg=_F|E}SY$62*^5Q?BF$bbvKNc&#UgvL$X+b67k|cHoWx$7&0K6? zE;cb2k7F)QU@jiUTx?=4&RaDX0drAeE>31HHZd0`GZ%sPFP_3)Ja+K8-b?p_UXH=Y zF&H@pBgbIm7>pc)kz+7&3`UN@$T1i>1|!E{8H_Z8k!CQ`3`Uy4NHZ8|1|!X21Pn%+!N@TfIR+!gVB{E#9E0&Q z1|!E{8tjKvsZF~(So zF&1Nt#Ta8T##oFo7Gpb$F~(xdvKZT0jO{GOD2tJ2G4d=%p2f(s7W&tl}QCf;E+ z@s7bgGRJuAm3eWVAy%WrYLr-w601>SHA<{TiPb2v8YNbv#A=jSjS{O-8eH(4S$V6G zr>sVv8f?pw?C(u69w%*hg!42wlCa@uIYyi_Zo{K}G%s#2FK&38&mS+&zqG;mmo_}X z*N&AZ%AffBNj^SVoRN$@*}|S|VNbTOCtKK)E$qn__GAltvV}d_!k%nlPqwfpTiBB= z?8z4PWD9$;g+1BAo@`-Hwy-B#*pn^n$rkox3wyGKJ=wyZY++A^*^^=RWSBh}W>1FM zlVSE`m^~S0Plnl(5%y$+JsDw7M%a@P_GE-T8DURG*pm_VWQ08#VNXWblM(i0ggqHy zPe$025%y$+JsDw7M%a@P_GE-T8DURG*pm_VWSl*DE_*W0o(!`medos?RjI$@> z?8!KLGR~fivnS*1iEEt5mGS}kpnOQKlE1e4>2Ktt@-Z=QvL|Eg$ryVw#-5C^Cu8i% z7<)3to{X_4W9-QodosqJjIk$U?8z8=atnJh%$^LhC&TQ?Fnco0o(!`m!|cg0dos+P z46`T0?8z{DGR&R~vnRvs$uN5|%$^LhC&TQ?Fnco0o(!`m!|ciMhX3j6Mz=6kx2BF} zP>yC$j%HAf-f#ySqW7{WxeZ&HoNY3~dX37MuZ>GqCL||!N#OhQGU@kP@VV`VP5C`G zC16tmHYH$F0yZUJQ_^fonoUWwDQPw(&8Cd8DPwHP7@IQ2ri`&ETiBF~*_7+qlqVea zdFR;qLN7S%mR_4x30Re_tjbnaCC#eb&Z-m+{WDf&kyTk_Rr0J#kyRtdy9Q60=fbR!YoDiCHNzD$RXH~{ol@hBm#i~rPDpRb=6st1D zs!XveQ>nj^kIKj7<1EG}l6Km3vl+*j!So4$U(I5X9%O)0M0 zlqEK$&8B>uO)0Lf6Zj~bQe;!6R&C1RY>M;Qth_fj!=!9uQuZ?`MJ8pKNhvZZQ%uSf zlhR)^Fu|lemPy&hr0i!>cC7J!2_|J5lQPSs6quA9Ov+X!rNpF^n3NKeQesj{OiGDK zDKRM}CZ)url$ew$CS{6A37C`-CZ))v^w$vF#iWcfDH$eZ8i?WAB30RbI7G;=4c^8Y)W>JbPN`^(*#-iNGqGVW`9S5DY7R;_9Vle1nfzkJ;}2ti|k2o z(3*uJdy-*KGVDo_J;|{rMfRk)x^AJ!o=mVON3kcFL;Y?K^}A(H7TJ?U_9Vle=BBE$4{+EqfBMCrc~q7_1FqPsZ4j4103t+Q;@r*^?4`Qd(Wh z@HqCQ#GaJclM;JUVoyr!Ns&Ey4ttVePqwiq+t`zUJ;|{rnN@pIWKS~eNpW>8!x($= zarR{VptTH>>`9S5>91v2Vox&c$s&8Q$et{+CyVUK;yUN`9S5DY7R;_N2(36xov^ds1XiitI^|J^2iKat3>H8hdgqdvYXu z@^$v)SoY*t_T&WiQ-WKxPuN|8w^GATtS zQ-WKxPuN|8w^GATtSrO2cdnUo@vQe;w!OiGbSDKaTVCZ))v6q%GF zlTu_-imPioicHFZ^RPV4*Zx$VF2~F7Zc+|sQVwTQ4rfvhXHpJlQVwTQ4rfvZn3Thr zl*5^n!~sCgoYyfE1aO0+VtAlkylQ zQ%uSflQPAmOfe}_Ov)6KGR34!F)33_$`q3_#iUFzDN{_!6q7Q=q)ag>Q%uSflQPAm z1WZc6qy$V#z@!9BO2DK9OiI9{l$ex&NeP&gfJq6Mlz>SIn3RA?37C|CNeP&gfJq6M zl)IRefJwQBNy#xOIVL4wQg$#YJD8LmOv(->We1b8gGt%Jq%1Nii%iNQld{O9%rYsn zOv)^iGRvgQGAXl6$}E#I%cRUQDYHzRCS@y=vXx2M%A{;%QnoTFTbY!tOv+X!Wh;}il}Xvkq-M2sV@%2zlQPDnj4>%= zOv)IOl4DYGOiGSP$uTK8CMCzDM5tqfE*ulQPPrj4~;s zOv)&eGRmZkGAW}>$|#dE%A|}kDWgovD3dbEq>Qeblp>RI6q9lklX4W3a@49xDKaVj zt0>GcDKkt;j!DTeDMcow$fOjRlp>Q-WKxPuN|8w^uC7ZdGAVa4DT7Q(aYIcasY^r5 z5==^lNy#uN873veqy$V#z@!9BO2DK9OiG4Hc_WkZIVR;;CS{39DKaVj^(jRrCCj8t zFe#bCaFI#bG4N3)Wr#@`Vp3kso?OX{%rYah%*ZS=l4VA+%t)3Q$uc8ZW+eM7W@L;R z$uc8ZXZ^Z|oya>k-cc+>mW9Z&5ZM(2;Tods!%p^LC;PCIHTXPZFvJv$GX%RCf}IS( zzc2&$re>LfJxsxz+wPV7q+*>$%~`k>oWE_U_ep2l`lM;Ue-6ffG~xe?$^OeG`!Ad3 zv!?j0DSf{wy?l#faoU94w z-a|B%Lo}5`tVA;DWKBBRLvp=Onrgmns`<9FN`2C#k~N9!F^TLkg?!o6vDd_rHDP2; z7+*F;WK9uSQ$*GjkvAO-ngGr>0c2MufO_v=H2&+@YM5CKGpk`{HO#Drnbk0}8fI3*%xaif4Ku4@ zX4n5rcFDcs^`T*AHO#Drnbk0}8fI3*%xaif4Ku4@X4m&nHYEeHMh=lfWvx8OF^YAv zUIt}DFRLl$HO0K9m>>M3)R9&S|Dl%nBrWj-$J-vEB|g;gw#RCTCuoQ-ch1S9HN@9x zhDT{~Sxqjh$z?UUtR|P$9-tI1_GxvVCa)#S2+Z;}h;BDq-JEN_vw z%G=~G9-tI1_GxvVCa)#S38Tvn6IYI0ePY^O%HQzP4{ zk?qvTc4}lhHL{%=*-njYr$)9@12_-0$5DG6wZ~C=9JR+$dmOdLQF|P<$5DG6wZ~C= z9JR+$dmOdLQF|P<$5DG6wZ~C=9JR+$dmOdLQF|P<$5DG6wRfWSPSoCs+B;EuCu;9R z?VYH-6Sa4u=>;1c!`t8(9(wITuRZ9s2fg;7*B_?L}lWYDp&7w z4#EC=ov!7mzS#>ole_KlUTBZ^5__%wIpO|?Jec=@ulC2So>S^!UhNO|YJZ%g%cpq7pX?R?Ft7NpdBwlT zE4QxipXk+epI6Sw{#vj2PyOxm&vN(w?cdI2sY6mP@b2Olq}Ha+@Xp9Tc0QQvz2pBT z=YjcF>R8theq!oG=Zyc9cN{+4v4nQ&8dvwcmJ@%D>(-qr=keg@^Q+J6-OqjB&u!oD zye6OW{?do9xkxVV%{jNpr`BBJ-yct%vgQ-LeSCHQ3;fO!&uy5U;q+YP@N%CZQ ziab@0lc&j_%G2cpd6t|gC&|h3Yz)pAs5J-xTOoF zn)>5)k!vTs($zQ4l2^&ADN06U|<2vsZg?cj_sFd*oNw z+*i$6HTjjb_J_UDIa?p@ua@^$%loU%`D@+cFK~U`7NILEuQ%;p7|}F`7NILEuQ%;p7|}Fx$6OGotw4J&06QXw9XG`nl(+c zrfJqR&6=iJ(==}s0bE{$%NHn+>Z z=U7dvrfKccu4>xVX6DJ<8r5cvYO_YQS))EXJyi4nOmzMJZ4d(;e zL`|EhX%jVVqNYXEw1{0?)h@1T7gx1QgV@DU)ij8j22s->Y8pgMgQ#f`H4UPsIn*?V zn&wc`9BTG&HO-->In*?Vn&wc`9BP_FO>?Me4mHi8rZv>GhMIlh@7WhV-o9|qzHrdK z@3HoMkG9{t+J5gzNMA$x8q(L0zJ~NQq^}`;4e4v>UPJd9y4UO@Yv^7>_Zqs_(7lH4 zHFU3`dkx)d=w3tj8oJley@uR1Db{RzWP&F=K86xEUtWZyU+U9rQ5giS;lAkd}ei= z@BH?FRc8ZMoDICfSI_eCY}dtdH8=a8lKoF<;LW|nF}-~&tD_HGO=@YwPPabPt@rru zw(nl@9gC?4`AYxxD_2l<`?lM+-M+nYJ>nk>oaA~`C(CKBGzlM*YS{{l>Pt|L^--{Mc_~bmjSc-gkb%cYeWle#5h!^(g&SyQ%bja8?;bc&PII;^XQ4reHLh*_OxJlk!Iie3rB9sbDk`V-E_UVSqg=W9;jY|# zv@16s<(vh-=N3O4xWGA#FO-W?&veD+KRon0`JD61{mgVY=-x(BpLVaGarS}}%zf6Q zcs47)g|)}0esAqFQoonl;Jdc^u7~-qV|>?E-*vO^I`9{Lb?PwR`4Hdvkb$4uOC|PF zi9J-yK5@xDamhZhhGg~B6MI$r#=LpCZeFgNm+PtHdQE$>x;|*I37V|*I37S?CG_53PT1n8flAviNLDNctX6iNaS~*u-{#|A`1p3Y#J}Gm@054B{iSl5T<-HL{Qr0R_h0(= zdo;)Q%KPN~a;5+0TE=QTdpB-1mM$u6FIlYy94?_3=}# zIC+BC>w#CB%{Bf#)C&=#u1R#)e9`w_FMsdrU-9v)@-^8kUzZ!@8}d#0mV8_O(S81tvzYl^ zIu}dx(9ibvA9|f@w|x$U4(~M`9c(%}*j$_G#f}U%9T{w{4J0p*oEsS-)=9ubcJjX8pQZzi!sAoAv8v{kmDdzW$%&pXEDplYCdcC*PMJ z$PeX5@?*J0Zk4p_cDi2q`rG9WpAXBOl9BB)Dq}J(S-DFB$;+e^WJ;!`D0j<@{8VOT zr~FKI$-Uz5jLvm*uA_4uo$KgaN9Q^^*U`D|s8Q1qqoyN9O-GEHju4;I&5u>IfMomYInvNJX9WiP;V$^iRsOgAN(-EU4H!#l)%yR?t+`v3HFwYIla|83- zK%ENAyPxCb8S+dyK~9pB<=J9?IB0)3Xn*LOMNQ`{YC308 z(-ElH5vbS^sMyh`*wLrh(Wltar`XY_*wLrh(WiLum2#GxEwA#koFlK6*T`$-TzQ?m zUfv*YlnbOk>0Kxn$;I+!d5gSN-X?z`Zi-N04Gi zkYY!WVn>i-N04GikK(~=6Me@~qXkEe z792HN82pmlAYYcR$XDfSvRS?^H_A8UoANFBw%9j0YP8^}(SoB!3yvBsIBK-usL_I> zMhlJ_EjVhl;Hc4pqecsk8Z9_#wBV@Gf}=(Yjv6gEYP8^}(ZZl>!w=e495reV+Mf*$ z%bnsH^MhN(Rl^6j%c!`{{GjX14`#)+<{dF=4%+WIV$^iRsOgAN(-EVlqeV?ei<%~u zu8E~PsKE|uuqKwSqd;9pfx3hDNmXhRNnIKe%R(<2Y{@=Zl(sCne(?@hUT(P-`#xEe zwk(P5g*k6B=S}9k$(%Q}&HBLI2)~H%iwIvq_zJp@qI(nFo9Ny|_YS&;=pLebi0&b} zhv*)ndllWQ=w3zl5Zyy`579kD_YmDfbPv%zME4NgLv#<(Jw*2q-9vN_(LF@>5Zyy` z579kD_YmDfbPv%zME4NgLv#<(Jw*2q-9vN_(LF@>5Zyy`FQa>i?j3aRpnC`1JLuj) z_YS&u(7l819dz%Ydk5V+=-xqhtCi$kZhxsh zi0%=(N9Z1*dxY*0x<}|9p?iex5xPg{o}hbz?)O_$*hTjyx+jPpB6@=8qli9==p97w zAbN=CRYdO~dI!-vh#nz&gy;#Pml3^+=n107h+akXCZcx`y@TipqKAkcB6^7EA)<$f z9wK^(=pmwqh#n$(gy<2Xhlt)m@eYcIC?2AC2gO4a4^ccs@esvB6c16nisA{1cTl{8 z;t`66Xu61|i)gxtri*C0h^C8Zx`?I~G_9a%1x+hxT0zqanpV)Xf}*1+I*OvBC_0Lw zqbNFxqN6A}ilU<^+CTSqG%IEn<&~u z(I$#EQM8GoO%!dSXcI-7DB48PCWo+@h@v5ihA0}MXo#XAiiRi}qG*Vs zA&Q158lq?iMLQ_kLD3G1c2Kl~q8$|NplAn0J1E*g(HKQz6pc|dM$s5WV-$^1G)B=F zMI#iAP&7i(2t^|ljZic~(FjE&6pc_cLeU6CBNUBLG(yn`MI#iAP&7i(2t^|ljZic~ z(FjE&6pc_cLeU6CBNUBLG(yn`MI#iAP&7i(2t^|ljZic~(F8>k6irYxLD2+76BJEQ zG(ph>MH3WFP&7f&1Vs}RO;9vJ(F8>k6irYxLD2+76BNB4Men!XqHDcH*LsVt^%h<0 zExLn0lU=eGZRe#d_eoW1qIn`~6Iq+c+CRTwu`o1wC$p87j3&}+eOli?&^~jnOtn+vU|+dKqo& zX6Y7tbHFA&*Kzdc$pKHblf~)J*D)H$Xq;Q~dh_u`VpYhROMJW(T`!X>{Qq~$zn-R`Jh?5j?4)%C&-*2bArqXGAGEKAajDu2{I?h+(qUtGB;Oe z?IpAJ4zu>s>a3lhbh0{YCn%kubb`_eN+&2CqjZeY@j*ep|ALL7NgM3-OB43lu@^!gUz9HX~Z^^giALXCqpXEDplYCdc zC*PMJ$PeX5@?*J0Zk4nKu|>=k+C!{8#M(owJ;d5WtUbiqL##c-+C!{8#M(owJ;d5W ztUbiqL##c-+C!{8#M(owJ;d5WtUbiqL##c-+C!{8#M(owJ;d5WtUbiqL##c-+C!{8 z#M(omJtW#gqCF(qL!vz-+C!o}B-%rwJtW#gqCF(qL!vz-+C!o}B-%rwJtV(n25)K) zP3@tnJv6n4ruNX(9-99@n!#i3A=VyZ?IG44V(lT;9%Ahw)*fQ*A=VyZ?IG44V(lT; z9%Ahw)*fQ*A=VyZ?IG44V(lT;9%Ahw)*fQ*A=Vz^|AZO5t37nJhpzU})gHRqLsxs~ zY7brQp{qS~wTG_u(A6Hg+Cx`+=xPsL?V+nZbhU@B_R!THy4pimd+2HpUG1T(J#@8) zuJ+K?9=h5?S9|Dc4_)n{t37nJhpzU})gHRqLsxs~Y7epY5Ni*y_7H0ivGx#a53%+T zYY(yZ5Ni*y_7H0ivGx#a53%+TYY(yZ5Ni*y_7H0ivGx#a56jxa@WCu&gQ6HHEsSP}dadnnGPusA~%S89de$Vof2|6k<&w))Zn* zA=VUPO(E74Vof0)*s1|EG=PQ%(9i%P4WOX`G&F#Q2GGy|8X7?3R~kS=188Uffd&w0 z0D%S&XaIo*5NH5_1`ucffd&w00D%S&XaIo*5NH5_1`ucffd&w00D%S&XaIo*5NH5_ z1`ucffd&w00D%S&XaIo*5NH5_1`ucfd(GRi1`wIIBlC7--maOqYv%2mdAnxbu9>$Z z^LAw3j?CMUc{?(1N9OIwyxq_MoXu1&_xTlqtQtUM-maRrtLE*hdAn-fj?CME2JpL{ zcQ?`iA`PJb9=@Ggz^IvfL<`tC@C?VGp6STUnXVssmg8V&dykv*nGL*J8*s*aEuf(V zM2H_DeuVgqRpLix@yIM5nZ*yBkM<*0(|z3Px~nyUYy5ji2h_NQZWfqD(pi%>5@y$JOh zsMkQf2I@6XukjnG*Fe1n>NQZWfqD(pYoJ~O^%|(xK)nX)HBhg=?xlfx4b*F(UIX^IQIWjXx zX6DGu9GRJGX6Bli*|BSRq#P~B$fM-Z@)&u%Y!XN4%*-`2bIr_LGc(uB%#oQnGBZbJ z=E%$(nVBOqb7W?Y%*>IQIWjXxX6DGu9GRITGjn8Sj?B!FnK?2uM`q^8%p94SBQtYk zW{%9vk(oI%Ge>6T2I@6XuYr0E)N7z#1N9oH*Fe1n>NQZWfqD(pYoJ~O^%|(xK)nX) zHBhgCdJWWTpk4#@8mQMmy$0$vP_Kb{k(oI%Ge>6T$jls>nIkiEWM+=c%#oQnGBZbm z*Y>Jr=Bk;wYG$sQnX6{zs+qZJX0DoljTBGijeFG9Tt^&-@Z zP%lEg2=yY=i%>5@y$JOp)QeCrLcIv}BGijeFG9Tt^&-?e@ID3SRyH&5G&AosGw(Dr z?=&;-G&Ao+#8Fmy)a*Qhh$DzNf`}uCID&{Hh&Y0XBZxSHh$D!&6A^bJ;!Z@|iHJK9 zaVH{1h}b~H1|l{Pv4MyUM2rwILc|CWBSef=h`0?ABSef4F+#)!B32Nwf`}DFtRP|q z5i5uonu$X*acCy4AYug(^N5&7#5^MA5iyU5c|^=3VjdCmh?qyjJR;^1F^`COM9d>% z9uf11m`B7sBIXe>kBE6h%p+nR5%Y+cN5niL<`FTEhZ99%F5-?vJ|5Ebu3#X2g6 zsF+5@1}ZjC@jg_{qhcNv^Qf3d#XKtJQ8AB-c~s1!VjdL>=HSArp>CjJ0~M!GaS9dl zsA#>pujPDnu0vGJqhcNv^Qc%s#n22~Tb+R$s8~S73MxjZ7@=Z>iV-SCs2HJQgo+U= zMyME}VuXqjDn_Unp<;xJ5h_Ng7@=Z>iV-SCs2HJQgo+U=MyME}VuXqjDn_Unp<;xJ z4ODEPVgnT`s8~V83My7mv4V=BSuivUhGxOgEEt*vE2vmO#R@7`P_crF6;!OCVg(f| zs8~V83My7mv4V;fRIH$41r;l(SV6@KDppXjf{GPXte|2A74xW=N5woU=20<^ig{Gb zqhcNv^Qf3d#XKtJQ8AB-c~s1!VjdOqsF?pPRQ&f$asw3`sMtWo1}ZjCv4M&WRBWJP z0~H&n*g(YwDmGBDfr<@OY@lKT6&tA7K*a_sHc+vFiVak3pkf0R8>rYo#Re)iP_coE z4ODEPVgnT$sMtWo1}ZlGA0Cgbpkf6TE2vmO#R@7`P_crF6;!OCVg(f|s8~V83My7m zv4V;fRIH$41r;l(SV6@KDppXjf{GPXte|2A6)XRTvtS(+>!?^q#X2h1QL&DSbyTdQ zVjUF=gMTN^WIuSl{Js2xd`WJQFN^a{ngt7H!Gc+^U=}Qx1q)`uf?2R&7A%+r3ueKB zS+HOhESLogX2F74uwWJ}m<0=F!Gc+^U=}Qx1q)`uf?2RI_+z<6Zk5|4EnDPv?dB(P zhYZV|q79>B4HavsSVP4cD%Mc3hKe;*tf68J6>F$iL&X{@)=;sAiZxWMq2jPvaF|Ih zqGAyhi>O#c#Ud&eQL%`M6;!OCVj30GsF+5@G%BW1F^!68R7|5{8Wq#1cpoa>hl=;1 z;(e%iA1dC5iv2mUf{GPXte|2A6)UJ%L&X{@)=;sAiv5*=;mVwN@T#l+ocNneaT67r zsMtKn6#w_08TY`P*f+%o&xsK#MyME}VuXs(ZtN13p54;y`0LJW$qFK36A=%d6K4=HM#TTl6-o!siNDT{HW9Ijh)qOnB4QH} z|Fi9A0TKVhX9xT(MEv*c=x>@6BSef4F+#)$5hFy55HUi;2oWPhj1VzG#0U{1M2rwI zLc|CWqyOSL@xRiJ{-4Z=zsm}x8AO~x#2G}KLBttEoI%7HM4Umy8AO~x#2G}KLBttE zoI%7HM4Umy8AO~x#2G}KLBttEoI%7HM4Umy8AO~x#2G}KLBttEoI%7HM4Umy8AO~x z#2G}KLBttEoI%7HMEuX16AOq~K*TvjoI}JpM4Us!IYgX8#5qJ9LB#$wJ#&bdL&O{+ z<`6N5h&e>eAz}^@bBLHj#2G}KLBttEoI%7HM4Umy{+#&h%;~S26Pu|&aMrV~- zdX&Vv>>pW|U9c`Yu$KBm)>40H?N&#qE_IgF%jARdA-PIEEPo>(m5<5Cln{=;0Y z_OQ?N_6~f<1iownUp9d+o4~ueM%e^jHi4H-;AInd*#utxl{H{x6L{GK{@;79xC1M^ z%eqF_1l~1)cTM13U8CFo8|xZfU8AdObWPw*PP%IX@0!4yoOF|uZgSFP6L{GKUN(U@ zIqB}|8n7lO-86wWP2f!vc+&*l)iwI(mHXYUv;E5nJgaNmqi1Z_AzXiOWvcF)s=KD@ zvJTN-_tjkUexHBP$6s96dSw-NRd;BvuJ_umJ9JIcUA^IVJ#X2{b*}Y>GQZq4Nq6;y z)$=*|_pdvb)9zkbU+Ay(>QB&3Ub$<6p4J!2`ogjadf5cMY=T}kK`)!2mrc;iCg^1o z^s)(h*#y08f?hU3FPos3P0-6G=w%c1vI%cq3A$^7?wX*>Cg`#Wx@>|jo1n|TVJ%kK1YI^kmrc-R6Li@G zT{c0NP0(c%blC)5HbIw7&}9>J*#uoSL6=R?WfOGS1YI^kmrc-R6Li@GT{c0NP0(c% zbV*VuD;OK7rOdFS6}Gr3tfGot1oo*g|5EP)fc+@Le~V{H9>bx&|MRB z*96@)L3d5iT@!TI1l=`3cTLb;6Li-E-8DfsdF3Xr+~k#;ymFIQZt}`aUb)FDH+khI zuiWI7o4j(9S1y~N%O>cu3A${8E}NjsCg`#Wx@>|jo1n`k=&}jAY=SPEpvxxcvI)9u zf-ak&%O>cu3A${8E}NjsCg`#Wx@>|jo1n`k=&}jA$tyQ`!ae%JJ^I2udct-+VY{BNT~FAqCv4Xfw(AMo^@Qzu!gf8uSyru7ZuQD0 zSLq%| zoYnA*-p^MFej`@?!wRu)bPjXxU+|8>r`S45sQgS+empAouPn9!m5=o9!Bdg>*^M9paHX#B+3rSLzUdu0#BT4)GPMimFxaN(!li13OLhH+qd5@lV|QQSSX=?)^yb0bA4iuIGB2=eiH$?jE?nc{wkXi(Gs241MNe zTsiPQ<1ct_vz|xZdCgwtd|(gpTX~hodZ^#TgZ(B>^_#fZd8-~|`?-6=&oFSkd;VF! zi}~rAI!MDk%)5uCy^NKduFubo*pXIlEr00E#d+WHjj(1j`;0iJ) zc|YFC&JXY)pMBA1*Zb^x_tk$7)KA@ZDfLQ^dW1*qc+^)rN^qS=eTA;k@~Zs2TV3E) z`CYHdn>>q)y!UUwYh=B@*zfs^t@n)nao~-;8~knV@VB|c-{u&v+>d+Ze#|TPQ~pjn z{D%K;&-gUY_}LzHfBzXD`UU4^v?7B2zK;FA4wtXSU%R2s12px58hG_u}-zhCMw zZK=1iMP2RVb#kEpwlthx|F`3}5@|0zZJ@^<^w@(Qd(dMKdXCWckhF)SJwI8`Pu4@y z9+LJR*t$5l-oU4=>b$|K&KpvH*t^R4m6u()YT4?}j#l2Wx^uVHoh_?7gOztlKFOJT zp6qH$Pm!m}arO~U9GadctMXX=&^IDEBya=dyK#I@Ap`l z`d)dTykES7jR&hbI#lJqI^0*o>+};|-Pd|`Upw&J-e(7%C#UtkV;k+i8}V-2=&bHq z&|Rx*`tL@3y}c?YW^2k@ExE^0qN+Yy)n^O-LX-OJoIYFCXXm)E1{YRZbG5Hu(~PLh-5+43AYMNXCH%Jby;@&b9Gyhu)y z)8!1gK&ri~tZ2My{b{=B>2ijgDKC+i%FE>C@(Que+^WZpRgWF39y?Y&cGkaE&Xr4h zyRCZMZPjDTs>ha9kFE92ue|;}@?LR1vGvxz{7&yM{A_QJRgZhDdfa2x;~uLX_gM9~ z$NpeaPoLD&C+!y|?H4BP7bfi&CiV15J$+J7pR|vd)YB*R^hrH^Qcs`M(rx$FQleWxBTjr!KbJCVMX+KoZ(+hff!TzXVe^k)Z3-(C`J-wi(7xeUko?g(? z3&>s2(+hffK~FE}=>ep5Mx~gA?`gN#Zhx&DB-xwla zs9%Trb*Nv5`gN#Zhx&D>Ux)g2s9%Trb*Nv5`gK*muIkrS{kp1OSM}?veqGhCtNL|S zzpm=nRsFiEUsv_(s(wAEU(e~+bNcn1eeaxpJ*QvK>DP1m^_+e^r(e(M*K_*yoPBda zzb@$41^v2UKV8tT3-;9o{kouE7xe3beqGRZ3i@?Hzb@$41^e-WeqGS73;K0Izb@$4 z1^v39Ul;W2f_`1luM7G?LBF2UujlmZIs5-P{d!Knp3|@A^y@i1nA5N4^y@kOdKWhA z!iHV?^)CH-mwvrVzuu)^@6xY#VMcZECvt}j%bk*ut+GwFi}&H+O4U)Is-r+vM}ex2 z0#ygSAIDLks-r+vM}ex20#zLasyYf(<+D0`R)?o*;8BC8YVcGIo~pr9HT2Rsy|jQ) z1--POmlpKWf?is6DqvB~Nl5`RDk5r^u=D zTzQ^6UtS(HA+MCP@6d6ihzYUM+0wxS`nq9L}TA-19+wxS`n zq9L}TA-19+wxXfq_)SM!`I#O!gLU)$R|v+<^D*&St6i~fPJ7wM$@F_&tk=a>HN+n*TTON{!QcGJRj4+zj6E<$G>s>8^^zK{2Rx=ar_&{zj6E<$G>s>8^^zK{2Rx= zar_&{zj6E<$G>s>8^^zK{2Rx=ar_&{zj6E<$G>s>8(;T!@1DOz-XZT4{95;Qxlz6$ z-;{63x8)zD+Pf1k?_B@;nC5lA{tx8A@(_8bIP=8%!{y;}q#Px-iS@RL^|p!iN6Rr{ z+gSf-v3;z!eXM_+u)*s$$^Ru!5Pi(KrCaNdm(%2QIYZ7Ae{+0p;d2Y0Tln0<-utol ze(b#;d+*2I`?2?a?2WNE_HKd%R})-Ka5cfz1XmMW9mUmATph*LQCuCx)lpm>#nn+< z9mUmATph*LQCtmibre@eadi||M{#u&S4VMm6jw)abre@eadi||M{#u&S4VMm6jw)a zbre@eadjS7=W%tOcZzwZ*vgIA%8l5{jo8YK*vgIA%8l5{jo8YK*vgIA%8l5{jo8YK z*vgIA%8l5{jabj`uS=ZAw|RV<$G3TWo5#0#e4E3!IeeSLw>f;f*Oasl-{$ab4&UbR zZ4Te&^#8T^HivI>_%?@cb0(?Z$G3TWo5#0#e4EF&d3>A4w|RV<$G3TWo5#0#e4EF& zd3>A4w`qKv#T94f19AihNbRCY$B!a-)1hzA4|5 zZ;S2P@tuz2I~~V&I*#vj9N+0UzSD7hr{nle$MKzx<2xP4cRG&mbR6I54E|Vdkz3_9 zNy`?wT_53Rv95%5C9Er9T?y+-Sl2&iaS7{6SXaWj64sTlu7q_ZtSez%3F}H&SHijy z)|IfXWW__s*Mxjc%-6(xP0ZKCd`-;P#DlwJcW*Zy?&fVm-X`R2Lf$6iZ9?8A=|t1hi7V6g$-ee%d5-g` zoFb>nbLDyRe0hPqP+lab$?0;2oGCAsm&i-yW%6=)g}hSEl0TEPYFpGx2&O8h-4+G4@z(MBWF6QAb z=HU<%-X^5H`QI3bD|(wubtj_ZO~`l?GCuJBx2(zToE1ZHwf}#O^Un_T&Nr8zxaNPP zejg#T2)Tfe3kbP@kP8U8fRGCaxqy%h2)Tfe3lF^a?H8uQ@3T+HU)YYH^cGNZ0U`V6 znOQ){74w0R3kbPjO59{hJP{>tM#-BHvj4ufP4?JV+hd<=kA3dHF(hC1wXew6q;E^U z?qlDWe8b0Y%D3b<*^}@3f8Ueu%Mav-@+0}N+#E}e#&xtD*Chz}E$^$lL+Q0io=58NnKsuQRl3fp#dM)NZ$}0>f>5@Q12vD)JdkOlYU{1Hv0D;$ZxYpFYMi9kAIUr{!RAy zH?7#Dm-zTnd6~RiULmiPv*c{)+op4Rn@lvDOf;KT%+t9(_U+T_eSCwwQ7(|ajk?gs zi{xVIo2j?>_*QwF{Dr(-E|GW0JLP@yez{V-=F#OQbh!y#s_1ePy4-{=H=)Z-=<*eG zxd~lvGSQrGqB&r@KI7lE2NTWtCYtk2H0PUW&PSmCH^2YtEeLco0^N*2HzUx^2y`<7 z-HbptBhbwVbn}YE8}~6Q6Oxm=B#^vJNRiL*Fj8dYk%&(e$=yLtB<)fA3}# zx*3ITMxmQg=w{Q~iK&OI%w+xf>Va9tY+^6^Q!~WRR{H+~-Ti=N+}H1RzvxB%4y5z& z?i-wC<-zhtD`#BUiBq?ljArcr12(tDbXOd=Uu52&?q2V#gEby zPxmuCoMC9B&P^Sc`iP&QntFqeZ$E|iPp&GHs`tFQk>>Z;V+a%;kK0ns2`o^?rzY-?y&gs{`ky zzB_QfT$CCcxH$D!X!moz{pZf0{*g78$@}Gta((I}hrT;?)!M`5_|%UatND@hZoYSI zD|Oj}9+&#a`m}73+fyGIe6T!39x8t*hszQ2u+)18kCdb25%NemT8@!N$)n{l@_5-K zPmm|cljW)MG zXMyiZeT9=qG_^!iOEj;R=GD@?TAEi&^J-~cEzPT?d9^gJmgd#cyjq%9OY>@JUMn`mYJ_s#*Wrlr-iw3?Py)6!~MT1`u< zX=ybrt)`{bw7hGfWQ}IYjNj5;TAE8sb7`6FTbfHtb7^TPiH4GBD2axWm?;x8Wn!jG z%#?|Sl4vN2hLUI~iTzHZp(GkgqM;-jN@Au=%#?|lGBHyoX3E4&nP@19hLUI~iH4GB zD2axWXefz>l4u4k&7h?jv^0a3X3)|MTAD#iGiYfBEzO{%8MHKmmS)h>3|g8&OEYL` z1})8?Wxj~a7m@j*ZN6xmFWTmdw)vuMzG#~-oUhk)S@y{9K41LWvtK#S8cY)*b2VCa=y_1t9LB*N2yP zLhkU_FT1aA`0HsWiP$FFRK_qa`eO>)7SxHXPFx+i8dwIOK-|xfwo~=0BlRDlb%%nz4Sifma`92fYJ`>iygVvO{ZR2g*c-uDKwvD%K z<89k`+cw^|jkj&%ZQFR;Hr}?4w{7EX+j!eH-nNamZR2g*c-uDKwvD%K<89k`+cw^| zjkj&%ZQFR;Hr}?4w{7EX+j!eH-Zoh!Ca7Po33u*V+kM-1-?H5=+vXSiCCdZP_t$!% zoN4=g;2gLYtsJ+C9hd5_)!yeA)IQTm|Ge4@w&AvIxNRG5+lJe=;kIqKZ5wXehTFE` zwr#lW*i>TsZQFj^w%@kxw{81v+kV@&-?qu4zrK2(X(QJ7f89FfeH#BhjenoUzfa@e zr}6)1uVZf8uG_Zjw(YuYyKdXA+qUbr?YeEdZriTgw(GX-x^25|+pgQT>$dH>ZM$yU zuG?CDqSYr_eWKMTj*TRajU-xqqJjU{t?|9vKBgr1cqPxsPi0ni%Fkq%>~#jec`3_% zQk9yRet3%o-eQ5bSlD2nq#6F3^`~0kzP`gx9cddn({}e_+tC>&<^Jn*qy5FtyvlZZ zb=_uP(LYb}f-SLWU$Ni5VrF$KuG-!f>>uv6f4JASc5~{%ZdrEAz3%xr1J82K-{+<- z9(bOdo_d&j8}Vqb@M!0GwAZ<(Irr4E<+j{Y(>=Hbv2Fc&+j@XzKeWI4uE+1cJHbj- zt0$VhdEY(nyX&^|s#`3q>?`_v$1&d#SOdGJ_ci;xdCw&8nM`=pZ@Z7sciiVY_WBu0 z9yxD+S6}@(`g^1P{;uO^xy#RTmwjEwzOMg_zNQtf>3!HUdSEZya4)}oFWf(ear?LK z{rW2{zH1M7;LOteo@d$LcjsIU__)+YZE>TvxKUd?Rx{kF84hTM8&g-vmHt}4>^n`3 zZlgxGQKQ?a(QVY|HfnSmHM)%&+(r#702*gmg29jiONNq2gfhPF{d+o+*!)X+9+Xd5-OjT+iU4Q-=_woyad zsG)7t&^Bsl8#T0zgMXcR&fuqAuX;!7;?!Y&qGulb>^e}e9$dE?0KGj(5?R0;HOd#^;l0d>%1{lbPw)s!nJT0zkYidImxf}#}^ zt)OTHMJp&;LD33|R#3Epq7@XaplAg}D=1n)(F%%IP_%-g6%?(YXaz+pC|W_$3W`=x zw1T1)6s@3W1u-kUV%<@;x}$7$N7?F*veg}Bt2@e8ca*K}C|li8wmP!zUOl?jZ`A!O zVK?kAw)xq%_-QiyUww_+udM9oujuGsRoN;IM6Dod1yL)AT0ztbqE-;Kf~XZltsrWJ z>#I8&R!7wes#Z|7f~pl%t)OaUt@pd~cm4APS5T~iVigptpjZXPDkxS#u?mV+P^^Mt z6%?zWSOvu@C{{tS3W`-wtird{8UOm=7v*|!E@sBR&iL0E|2pGeXZ-7of1UBKGyZkP zzs~sA8UH%tUuXR5jDMZ+uQUF2#=p+^*BSph<6md|>x_S$@vk%fb;iHW_}3Z#I^$m- z{IT33x5{mjmMwBO<6e?~-^@SIod5OJ1Ao(11AoI2?UmPLzeA4tD+Vi{ZS`5&XLqKK z(2VaxiQ+Gs@tIap9{8)Tdd4)QkFzbBJU+tHzxP=rIq_}2f-P~RF z<~e;f=id6~tiP@Q8Zyg!PZG-?vHTIsAF=!q%OA1)2fwc|V)!G5eMt|j>wyuI5~VH^ z@4Z{;fY*A5#98RP$_W;`e-4*O-?P5aiodH@*3b9fdza{Pb$zYBLaeE;_0LZdF|-jw z8!@yILmM%)zwUi!k@YDNLmM%)k@YE&^(hfU8!@yILmM%)5kng>v=I{$F|-jw8!@yI zLmM%)5kng>v=KuaF|-jw8!@yIv%18rE?J+l#H=nct4o82%3AsN&S?EAGuJutYI%*k zR?d~z$?L`YFj>%u1&vsjhy{&U(1-<%SkQ;y?%6tNYDMS?-gn)Wn&^^sGeBO7yHm$BNjuh<%ILw}^e~pZB4;@|x%$sh{+k znDm$HPu=}jSZ3uFIq9=IeKy|zEOm)ybcts4mS4Pf4_JtPOBiz>qwZtWef0Oj2W&c z;R`&I^E{I)Jd<~=+)saBcwoEfU*n>GeTp5w`1-9ryYm;1)@Q@i%A?)r(Z1o)`m<*L zdLI2-mHy5D`Q`KI|0G-7=61Kaef2i|dz)Ul@15?Uza8JTGTmv?pdF8vOesSCWV{h}=TRrwx_xj6c)qjk@ z_ignU+gEOt_gVk(b1Oef+pShs!1%uYZ)s(sUU`oFE1Ha~{Hy;L$gljXKLH>39rRb% ze$k_S(e3)SY2~UQE6@5>p65F~&yRYZA6|LH{?FKd#O#W(`m9@i)-6BltNqtNd*vtl zTeoZfcXQzNyV?Ky>c9Gb2VTGZ-(vr7)Bh*(06f)^B&~H~Y$gpLoB@Kld~suaD3BfB)+_|8qP&-`+EmnR~ge?{B}B&^O-JPTM(O z*efqP-y23zHu+w??=ALZ|Im%g{3RT@{JOt{y>&84+m`Wq*RWFPKgH7G??cI0>i6#q|Nbq%f4BJi=l%X! zzkk;6!<~4-9$4&K^?v`7Z@p4%yRfz1_Lq3^H-Gn=dcO(RBMap?90MQso8^8Jo;lPP zC({qxbkN)W687h|dk&v8?1_+LZxxvs?gZ3dJnxgv`=s+e={p}ve%R-4`SqfYo_MKm zE%mLXz7@*#ww~VBF2(tSAN7AY27g<>h4&Noame2AewzJdu`?DWpr|dw)?He>pYS_N ziuZG`EB(fme&g4n#tUaIhR^w~U%%nk;h4E?ynfv$%|6K#pZufN^4*ZHF@ITEJmVr~ ze8m~V8TyTWTfC}og>vzVZ@vD}?~8hO`1j^((lTMoh5fjVBcX;{>ulR{!zXLcZGHEO zGaNw&{6iOf_?PbFI%6H3pEuCwj;%YAFPZ!Pz&@b{taDcZN- z&t!TYnVwU;pB8`H=8YW_yiu4OEGb+bEGyIp@7PbS$q0d1;qE{s*j|M*f);ZeRvIC& zs_?boJ!8(-7QP>>Gy7$|>eYtA2|;K6gCJ3u5Ns@r_XJm%cM$G3bamxnh0Ea{CirZhyiJ_9xt6f5OY{Pk6cg2`{fa1t!9&@I5%q-%p1#y#78+ z^4i?X%CicWSAD@4-vhyz_vmi+Dc%G2^m;GY8}{*jjN`trA5?q4KO6v`fw4aOEZA`< z`g!l2FZx9or!MrY7I{{S%ng?6{YFypt~n>x!OnGu9`JA;@;ma1*Y0bG>bFS8$t2Mi|X1CUyt2O6p&2FvPtu^Or&AD20uGXBZHRo#0 zxmt6s*6h}r-CA?5)|{&~yR~Mw)|^}Q9ht$Yh5D+S3a?e&Y<=8Y9PLaFsYv8AFEnElJ!wqng-Jx#=@oQB4 z8Wq1r#jnxZ;pcD%+zHlZj{X9yg%hsCd74>RE*co_Zwv)~b!4S$43;W3y4kHcJe0_MS=;Lq@+2&+DLlka0UU2L9- z%^lc0pN!AM=mv~l7_6YzS6ZoSmEE9M^H}UBPu5?;=w^&gVRQ>d&%o#z%<+m38R(@OIZy5d> zhR>+5%2VYO72Qw6Xs{C)InPv$b3D-TAUN3TL*S-hbk!|zH{1gag&A160xM@=&cw=@SUD3bXJX|{telCJGqG|eR?fuA znOHd!D`#TmOst%Vl{2w&CRWbG%9&U>6Dwz8fe7FEEgp1$@a4}p0 zm%){5t$=JD@;g-UDte=nd^Ra$D z*3ZZK`B*<6>*r(re5{|3_4BcQKGx62`uSKtAM591{d}ySkM;Ahem2(6#`@Vt|#AY^F_;mGhto{I_lUTeObHn^VX!%#NmHoyCyi0q>c!! zt-VSN`M%nZ)eXqOCUUR||2N@(7v5*^d=q|e!tYJ^y$Po`;pHZr+=P>xaB>q)Zo^7ie#z*UjDE@JmyCYN=$DLs$>^7ie#z*UjDE@JmyCYN=$DLs$>^7ie#z*U zjDE@JmyDdM{fV?{Mt?l51+(no683PLe`sX53i%RV#B=&4jEUdXH!Eb?m+L)qarEGN zJ-A5^w(7xmOFpcs{)^mE*<-#pL9d3kyS?bmwCQ_U5xtjm?GN-`p2m8Q#(GaLCiP-c zFDCV3QZFX;Vp1l}Xyc7jpxX&6nS zc6Qtac2x!14R-f>57-m-5`XONxDOwFU$6J`x*GO(&I24j17lUVKI`~7_`KI&@I5;T z*e`oU$w8{)VLbNX4hzFkc-f1EY}q0*_cOrfi+&vA1hR@M($f7=3E3meLY9CMKOd7-eryrj@oZkBkt-8stb z&QV_B{dQ34v#7ZjBYgIs<{f?mPJnNDKcTR${6xoZ7q*n2uy;&vBG?zN^2ujT7#t08YGo;OO@3Ns}6-()`fTmo`shn93^GN%BmJv z35nv)_3uQqcjW7EmiIq_YrVb+?y*)ugADOHqZv92t0M`}4v`+{Ev$~-XMWOCYMD>N zi$)??MLlYbjHop-qSnZWzFJrxeGL}F8-nE6j2) zDZH<>HxhAp~E3x;vtpltD_>WUXsUSQ?qdsJ^5aD7)*+4~&V7Vedw z$`mfa^9AnY8F!L!C)eZnY#gt_@fsYjDH)Z20>^7{d{-Q=!SR}sUGuX_c7xr$-UIf8 zz4CoHUW4N&mF%0}jN>&pUW4Pu;dl*>*Lcd4aJ&Y`YjAw$k}vqp7rh>r&z2k*9N_6M z!1ELNRlhc$`(EP>PA~a-;c{aRPA@su@i-%{Pq0_~w+c6utt^~bwhGz`HMm}b>nGxR z4X)SXdJV4E;CcAmGtQRs~_rd1EaX5b*&e!04P1)A` zES#^w`5K%*4(DsigF;lxA5vbL@5B2VysyFglk~(%<&{2*=4au3jb8Z{zSopb$X|x< zHG1Yt_+F!T{#5=Q-}^3{QrNY8qT{WFpYsiGE5E()>+(B{xK0&zt=N?B(`#exM}KD3 z3D#nnl`r7=_wjsU)k|K#mhY=-gcev?xCqa8k3{o*_M_k5e)NaodQIdk?|)J_2iI$G zy(V%`el-UC5Z6z__0w>DGOnMA>sR3VX;^VMKG)!LEk4)c^F#Rj1AIObpO3`n8hoz7 z=d4cOE=VnN}XxIHSkp7z{?RsFPQ51y|t*3 z!>$}w<*_P-NL%6>4i6G zyF6`|r|t4skjH|2BnsLJ19G%o9s}|iki&qS-XGHQ&+GZ;_5AaC{&_wBJk7R=X4^!w zZKByW(QG}Kki&pH2IMdxhXFYZ$YDSZ13EDvr`NaW^}Jrs2Zse2t3#M&8EjS$9#9n? zgo63)BdngWqkWo3%7l&zK2h>%IiAs00NB-D+PlG6dBJh^Xg;X$aM|CxqRPjsPK^F+#OM*DKmGR+lea&?zo|Q%`su%K!Bx$AMePTqCV?w9#@!fwHCH~9BP_<9@mAGiC{`;Xh>6#u5}@wYvX4*%`D%bt_> zywAV+{w>=3oiQ`^-DTfHs=rbFo$83K2>PM>k_8+(ZP5bvB@U8O>I^f5jDL-WG zVV51grRJ~@HJgsO;K-kjKkeufj{d{Zi;jNl*b|OD?bu7d_1?GoCsa+?ZNe8O95UfQ zCXAnO%!CsroHXIo3Fl0>Xu{N!AG@M%;&T5sojP#Fr_MR;+?w+aI`6#meso^{`4^wR z?EGa@-n-za3!c7U-36O27`iNf`4=v~;qt%L9a1;7Zbsc(SJX{DW%7BGCr_R>`S+8b zoBZD7_Q`!yN~cs$Id97RDNCljcjfQ@`QKH0UA5Phhy3%W|LT4C&Hw(NRZ{jXd#P+y z5R|PcTZ>t3<(0v{<}DbOUh@I&j@~4esB4`!DZ$5m){>;UjEzi2ZOqbQAWE=uGphu z?_f&Bn2P;^t1AwuI53!6ahUPUw^aPS;^p9H6|Yt-4t`$ISn+N!tzu2Z`rw`lD}V*} zRwODm1@~2KuGkX%zM`<*cEKat?XcYr!4uo!BdqdRGt>R z9gHJq5puR0Ig66BUCG(5sTf_znwuRF=tPUP#MVfor^SiW{A zU%Qg8-O1PP4)1vj$=^VotmwxEqIxQ;DoV+-0m_1x6%3Y==_`M{9n-dzo7GPrt`0(^RJ`x+vxf>y1tFBZ=>t4qwCw~`d8@rdGvf6 zJ&%E2k8u1?`TcLe31DRbI=_w1Z=>_)(fRY}{CT{Cw|NI|^A4UXzoYOR4cE;E%;Oa= z<_Rz62`}aeFXjnvJBBci`)0ke=oJ zPvBawZ-NGMNIDDC*oSHC!!-6`8v8JfEoh?|yV-&^wxEqIXk!c7*n&2;;5xRTjW>|w z2{h^HcSpQnjNFTb#cabXY{R_ZQ#d=a$kBiBGg{>3hn%GEi=4x=f96z?PaksVFuuj} z{ED~u6&Ld>Ch;pK;Zo=)+=>qyoplEPxu5?W=L=lG7r2@)Z~WKdyu}x2;tMqK1>Vy4x9aO#_3^Fxc%wev$fkF(>0SDEqdQ(! zaaiG$io*-vVUs6mzr6OFqy6S+zd71(j`o|wzCO>sKF_{B&%Qp-zP_d1HfpO|t!*@5 z^x+_E6}9K&C+!*P372`o>qtt=eQ#@r0iAj-$gs1&0Nl19&7d-KE*q-n-Q?NVb ziKcj>DV}JVCtBu-+C5P_S>N7MEyMmWMof|S?LFaNF*@NX|LQ6K>M39FlrMP722a`G zDPO?ej3;ft-~{F-ur`IYDXdLlY64Rem`aa<-J7s7g_S9+Olg%Vn3%xC1STdhF@cE* zOiW;30{aqLEuqz()M`&^wI{XOlUnUbt=6E`8njx2R%_5|%e2}H*pD`Ave zMpm|<#xsIm*%rmzuBDz5oqtN}oGz}~U39T84fq4m#ZN^SzZYGEm7AM9**AIXQ^Zdr zc(=+Dr0hgM!tIFa{#Q_=h0=6PS>?hkkOW697KTCc|4e~#wc&lCI*OOGNWbKK#D zWZ~DeUQGXPaF?gJ%g>ojlPUZ>7*JapgspPV1u<8o7<>I$-`?SlpQH`zXu~?%u+H7@ zP8-(IhIMiZqvaGv(~5PpVjZnmhX)gB#X3BgNF&zKh;{gI1C3ZmBi4EHU(twlG-4fo zOr#C#w8T+b;2JIPv=*2z3pG^*ZK}M&wX#sx(w4svZ#_(7{zAON-)24N_X&r4^N1N8sq;)iD z9Zgz?cN6jL27J4L=B%SR>*N_m)1Gy-XC3a{Kzr8V-|4tFk@l>kJ?n6AVtKSMng*@I z#Ra&y02dd~pmj889SvHCmlN@FB3@3UK_90t`l&2B2G`l>4{kJ8?2a!(-Y~g&(W-P zxIGa&Ceo~RG;1A({E8N>qd^~_LF;JHIvTW&2Cc)G8)(ov+VdfdS%%vSu;z5EnP}av zjIphm%IZ@z5_mI-Cfq~j)KfYg-r4ea*;b4X*N<0 zYb>rD#P>K}e(cmjGe2V!A7hh9>!tFegHMvEI8C{nrd(cmfh*lp*s4w9vJo%4%0g#; zJE)=ko}>9Xo&9oJ?;Kk199PKGb_*~&jQ17|>-JW<{ZYF8FLe8(bo*ai`ANCc;`k(Y z@Mk*y2|E4>TJanj@f>$@AFX%}t=LH`cG85MwBG`nZvk8WI$Qoa4Y&X!a~K)MX*moT zaMyRb>pN+(bHrR{yX#QLzd~ERLR-B;TfIVCy+T_(M_WBdTRlfxJx5!0>e(s9s?(%8Nvb4Pe0#BiaTUT5;7zS z`aVUXJ4kc~iS8iL9VEI#zb_=w9qd48(errp1|B8wD8b6S%F4WoPYHZV;8OyhHse$1 zam>S~Fsqlqr_l3A;Zp*i68Q8NmL`Eu34B_DPn+>6flqH2Gt>(Uo68o_7Ka4dmi&*NAE#}YV}z_EEamcX$DjwNtxGmg!}v8Qls9*(7OEQMnU z9!n38r3cp%tjMeQmcX|JzNPRjfp5KR{hK(q8Rrr>m%zEFaPBFb+svZ8igyWIOW;}p z*Alq48P_)B+GbpP1J^dQ5^bzR8!ORPb&Z_MEPK#C1JA-sV09r}+l*_QacwiMZN|0D zxR$`R(CgWZYnyQ`foq}n(}inK;o1URTYzf|aBTsuE%+$&{3@=!#&28UvP7nXVqGV z6!Vy24l~SOhPg{Q%gT@EB|pqbt}N{3NyURj&*(5uIBGcGcn!RznHNNc$Ars#r6W=2f-y;*>BNN{v6W=Sc z=~db3*ZA9ui#~UlrM{Frj3*DZ4)E3#+O4p|;Jt8pXRBJ)Aok&AS>soI4ruk%v_gjF3AS@i9+pUpjkVI(uK9)@Xj> zt|Ew!JS};X5yRfrDBjknkG!oDi+4HTP6uJDd9?+j4kPj!JMzN*;s2G$^pw!mOY!|h zdU`3IKZD;d)5S}}yT;X4JZ;6#G=7G5zReSqu=Q>3z61|nq+gff-ivtmBHlfNch7jD z5B*%Zwai&w{{*&WZ5RDZpDWDbzFT;v*jj7kC)Qe5 z_{BmS-M3U$Rhb9#3eEIiBT=)B~_kZ$Nt{GP0zArO3)@sD# z*vx|pe{{W&@=IkNozz`*23cIqu<{N)=x1x?W{* zM`zl{o$gKvt-ta0c zcn=FYu%Lr=ZDw7YF`>gMA^4g_o=Fa1|b|!oyW~xC#$f;o&NFdKLby zVxO}jv%z8iZI$@taF@ojzW8I9m_77%Ac#C5JXn`yYWl$BDg;=U;9c^IIHai<@_Ajg&s#7&06a zLKch?ACAMxBY2$0$vqs84JV6iwvAMOr>s})Xw?7KH+zDe!f#{8_A=Dl)3V#sp4&${ z?fQ~{Zs>ttv#oY4_QFWl38Un3)&nb}ikm@4~#{DO!7$)}E!cXKC$OT6>n(Zr5+4#EfIH;viMi!!f&tXT5Di zz=tEOL#@!H&xUA)oR;sU6~dX(uRHVWo~7Nh=TS`89 z-B;dy<=t1Fj_)NWz2u~qob-~DUUJe)PI}2nFFENYC%xpPmz?yHlU{Pt>p60sBj-7C zo+IZu!a8AC8|<|P`?mSn8(i`A;SmkRk^1hj$33R4r?4X}G*Watmd-nfjXPYve%ly` z-+0QmJ>}N&3B_ItpKz%sTH9o=A310v2VvH}Pb;LgLRu@NwL)4eq_sj?E2OnTS}UZrLRu@NwL)4eq_sj?D`d1n zMk{2rLPjfOv_c7o<6*vqI775e;rQ`$I+g)-_s`D_t?TcMayO-4}I{QE8pcw z!i7Uu@kD#e`)HWmO`LWu{D0M!;?!2W#^mAvh9gpa$z&HL19GsXPa5}!WnlRJW2!@P?qI2_N_<@-aosx4J~cNs&cT zWRcV>O(Kg8B8#;mi=@aRDI#tX5jTk}k|K+w$Rb&kB74Ho4qZiQ+Ry81*k8-q7p~+p zU=MMTMN(vu6j{7qls5asd74HM@g`ZRAz7&*QE^gMYDh$!6cHyy3rW#JQnZj1EhNi2 zjJq<2QM8a0EhK4`F400#w2%}nB#Y8(Z4=SLhO$0KYm(w}TC|W9EhI(4O`?UQXd#K$ zY0*NmDB)#}ft$u^~}#QWV_7 z^Y0M__lSaf{#$LKtwh1ekF>_MUf%@ktV!BwXNv@MLl0P+K?J1`)spvE^D3KvD#d6agef07(%*lH8?5#7Pmr`$a7@Ip|hl=>h9FV8$Jo zaeuJcY!W$yAPXO6=eKyhmF*gG%(0$qF#@XOWB@X z_ymkJ-epvAOxGH6{$JLVD0@y`!kpzYbC%1@S;mU{%gk9WGiO=mG=(8&meo7H46nc< z`uSC#EiOEQF=v*&>9e;W%)l>md>iBd`1AR)xMMT4`0fe_v+`@b?+tb@H`cP;ILmTl zEcx(xK75`JpQm$X(jx5@+Jmp2*UL}n?Ks+PLSYuWxnejLuz!rthxbJh-M&!SWz5JuDy9u|`F-K+ zDR;5fU2Jq0Nq3QP2T!?!b-``^(uGk&nA9zs(TzndbX6mk3}H!&U!?rv9eSsU-f5zD zn*2J<#0}9q&Gb$az0*YRET(rB(>qP{P7}S;MDNU!(P*M~Hqkq?WHg%SohEu`HNDeB z?=;ano9LY;dZ&rriPJl?WHg%G-OCu%f-PZow*@1@3~v)%(?r)a(KStU%@AGFMAtOY zHBEHQCc37Hu4$rcn&_HYJeo~(O^&YFMAxjQYgW@WO>|8YU9*_3X`*YI=$h4ZO%q)+ zOID(Zu4$rca@sx|7Xnfl*QB`3>>0!n&_M%I%kN^X{K|U=$s}x zr-{yKqH~()oYizr6P**s*cN(cmg?CkF~B&Z>9^PSIh+mczyJ?t1Dp5(n;6bf{BSn( zGBzhoOcO#g>^E7T#wx+0YOP}W1)F5XKx z3gZL!&=bblo^RXgU;kp9I&ZEA7gEl&j_j==du^V%xZ;j!$-i@O0tm>K+o2 zBoU$2O}R=MyL(+}v!@M5Gp9Ul%F~8XYYG!X%NEAUt1vCB6ZClURi1pkCtvT$*L(8y zp8VsZcYE}jsKHgYlC@4U)=7RkT_unEow(eIyPde%iJP6c*@>5(c-Dz$op{!XXPtP~ ziD#Yo)rnu7IM8XNPAMt=ABlBb5FgFy5A9w z+ruYd2cL^If{{M|q~oW6XBCWc{4|*96zuG{3+xKJ!R~&u2kZ%I4Z+^9kJn=yKisXM zx-dzLTooK(?&)X1h$b!bkR2Slwaz7hSSI+Q*%IU6KsX4K4>pth5I7VLgTtW)%()N# z1C9hUgoAMBsap7o`7q<*t8f&24UUGd!!d9y90&gi-+<$R4{hz3erw0{2NU2#_%@sb zC&PC@P14#i{nn1@4^D;e!D(W;%jz2c9^CvJBu7RKW%$ldxs#zUe4>!P#a1-1N zx4^CNGq??IcMsMg4el@-tT`i`H|EWBw(jmlR$vz0~JFgv*M%O7xXZu{z3Ce(QNlr+R%2TnC=3)N@%wCsS$+ zRq4;|%65nEO!IzvAy#UBb?LoUp!==wJ_u(1l>WiJ&Vol^HvADDg~wnHJPvc=3Fn;$ z&x%cdWR=NLu$L-#y|rauhF60z6|V)mR4gv;HqmeGoqlWY^jmwUzv5k3Q&?gh+IYn} zSZ}AXcHire)9G?d7T(!Tt!+CyF>F^22NYIsH)yAa&#QBO0lo-wla&X;L2xh}0&1U? zR(7!)MR%ng>nrUBSNUbAg|EPP_$nL)UxTCJ>tHuYyHRvk+D)=j-L+EPwenoBhHT~e zpzSL!R{OdHw0-3d?No6YTn=?`C0ylmtN&GA4L=4ouF9$KQ@_0yuJihOxB+g2o8V@+ z1#X2q0k0~50e8VK;cmDGro*pb2ACaEX-$L5``~_f0DcRz;g9a)QFsjIz~e9%o`8A& z{uh`JPr=jhS9l%XfHz?YEQPl~4X<(;EQdIl8CTf?D?nYZaup;%R8}b>tHk@tG;{;b zSN1{%`e3u??|00?01Uzw$U{MmFn|(Jo2)8>a-eIg)FrE`AOcYs0iWR6(6d!L!btce zd{Zvl+TDVS~>Uy{VZiHLmXK)+b4nK$ge&>?qR+(LHmD%N1 znO$y`+2vI;!49QXnO$D>2Y3W#!yn;Mcns#i<1iPVfO+sI_%l2Se}Vb%6g(Z2TV-~+ zRc4o4Wp=q$W|v!Kc6rqTtHdsZzr)LRgn0!P!K?5(ykU&!o3I3yg4xkkZ~Ocmco&)= z2FoE1&9Dkq!+Wp>*24R+4(P0^R`>umKs$5*J5Xg;nyM~HT2p%yq=7A{>H)UE+G73I z7VEdRSiiN!`mHV2Z*8%DYm4<)ZGo*Y1UblClUrWU4k~?iQ0a@<(Z&uceRfdkvx7=s zWLMZN*u@SieGxm_MD~KcVIQ!gO@t2-kp+w#0At|`@I^Q<7-3z(F_A;PJ`4_r8aM*J z1Yd?)u==tcRQjwdxQiWB`s|?6X9tx&JE-(oPruK4`hC{Z@3WqMpB+^Ctf${+J^eoG z>Gws{Xd)-U$?#n`rLZVsC5ydzm7x{%1gYSZ0!rj0&T2DV_ zJ^h&V^kb2G;eIpX9)RD%gYY}}JdHIO3PagWL^&D{LOY##te3 zu@&I=HyhbrZdU#n2pX*u^R{C~)wrVYYx$DLkimz2yDEV5iD@pS|p}SA1uY z&tCQZHSZVuPJ{QWgU?jHS5jKJret*G+ThB{_q|_NvR$Paxs|Qne-P|m*;Tl|>I*?b z)fa=7sskMl3f5MAhn1LWZ^)a2gRAZczEyQ+$&{*TC6`qFB6zIou3&uCFN4FPdj@l& zdj-!%_coVkjMw`He~<3x^;oYz>+{cf{ROYT=<{*G&U#_Zh$n*)Bj%T!G2*F`OGi8% z+%w{@!RQgs1P70JJ~*t{8&Cc(dgHNw_eQZdj{T?JI8tvM{Qr1w>_9e_k%cC*@FH1g z#MRcyKjZB?!SOirLe=PC6rQ|@BQvY+V5RPYUy7*4`Q^*O8zgCo7?>|fvKBhiTxXh5 zVqBxMJth-5s6RVNSDbXkNmsn`n}q@E+zgPeIO&R8=VqYtB(NqF>57xCIO&R$t~lw6 zldgE>Y5smXoZpfo9d%UO^FDk~1it(aiyr>v2D#nY7@uFh9sFk z*JstRf8mX?)BR?)^DcrVGHpv?xz{TT14h3O$Y#c6Gvnp@vqGj;j2D-&j9cv`zFm1? zwYVuRZi}9-i3S0?)gh$~qm;;Z)TzCTh9Nba)W>8zXB=~ye(xAHXt>6=w z_)z7$UdLcXaB$_SpjvDY7aPRI263@LTx<{*8^py1aj`+%YBO=nJx0bfE>4Jx6XN28 zxHus$PKb*W;^Kt3I3X@hh>H{A;)J+3AzoDt`@;e785j$nh0lRZv(;-hTfHW3^_tCA zui0$%nz+?#;xc)0aYP*dwnldg4zx;1Jo(q}SjTmAqJB%h#yF2ayd%`}jukY;#2Vl=9>97q~LNaYs9if zvN2G4n$N7Ik8zEq=X-yl_ZNGAiDTaH3s_iUba|)7}jHa1}6Ti6)G#--T!8a6J%#>TR}Fm7+3?dxy*VQ#e}jZ=1jnTD)PLsq6COM7K$udIB0R@Naa>yVXo$jUloWgW7z4p~`;tgJ&;)*&nFkd<}F z$~t6a9kP|jfPD>Q9kQ|xSy_iHO_-$#vov9rCd|@=S(-3Q6J}|`EKQiD39~d|mL|;7 zgjt#}OA}^k!Yoagr3te%VU{M$(u7&Hf~;CWRz@Q$qtP#;(N8<}lg38U*hm^1Nn;~v zY$T11q_L4SHj>6h(%48E8%bj$X>25ojl>HPlFCL>*+?oINo6CcY$TP9q_UAzHj>K5VX15+m5rpbkyJL4%0^PzNGcmiWh1F< zB$bV%vXN9alFCL>*+?oINo6CcY$TP9q_UAzHj>K5VX18Vm{c~B%0^PzNGcme>skAF zX6@sdwU1}kY^SWfJhS%l%vNdtD(zpT{YB-2qVhpe`JkwLP*grBDjyV;4~ohMMdgE{ z@w~=YLEicx%@!N+0*m`1-7`eH z4bW}_v|E;Ti_vZ|+AT)A_0w)K+AT)A#b~$KN7`*HjrDm5eTz4JzQl2vT=!t&j2CC#;x=2}T}_0e1_X|6_^tDfe1i{@HNbG=1#y-Rbgq`8`CuD6EmXfw?< zKy$rAbFHMgGBnppn(K9%tC{9nM03Sxt{BZVNOKL)Tmv-M0L>MnxmM9!t7xtm%@w1$ zVl>w>nkz&|CvF*8t5mKywYyTmv-M0L?W(a}Cg3 z12oqF%{4%C4bWTzG}i#lH9&I>&|CvF*8t5mKywYyTmv-M0L?W(a}Cg312oqF%{4%C zedxmt&|Cu_^Wg?)t^t~BfaV&Yxdv#i0h(*zV?Nvf%{A~bA8vr=8lbrbXs!X8D@$`_ zX|62I6{ERgG*^t~iqTv#nkz-Sha~(u;eX(+-nck~{qiL=f%@w1$Vl-Eb=8Dl=F`6qzbH!+`*s$h` z(OfZ_D@Jq0Xs#H|6{ERgG*^t~iqTv#nkzWXW(r&f*TW5PBisZx2fZ}RAPqA}!wk|e zgEY(_4Kql?e0)vFK^kU|h8d(`zDO$!&&1{OIs**SOm??skp4UE>bdxWhH> zaE&`$;|}fVS3+Z#Y@72oSaPOX%UN)ddW#xINf?cUYbbA9vHM~5$2Zit@@iapHLkoG zS6+=Puf~;EOxyer@`;Q`eEumd3B$>x=&u+C$H|4SNF-Q`{dPq^6EZ$ zb)UStPhPb;u0kKyd-Cc%dHXBm)p+u1Jb5*qe1)-(>Na^f(7YUIUJf)b2bz}y&C7x2 z_mw(I4zvboM^73za`M13N74q_L zdHJ_|#52gh<>lY<5zi3u3=z)|@eC2q5b+H1Z+ZE*y!=~U{w**6mY09aNB#oy;VF0; z{tC~)v+x`|4}XIfz*rplx4isYUjEI#S4K{>LdNW$KG+QXkc9z#7_JKZzTODOE3UF0 z@rUb8Z)0b+dmqQ&~;T%?P4XoZ8TCf%`FwODa!g`g|c9qn264gqgT1Zq2iE1HHEhMUi zM75Bp782D$qFP8)3yB&cQA75(*kpI54dvQRMYX+R6xgSmbhT8Nby@M6l`rhUP0CtG zSqmv^A!RKUYm87{Z{^@*p;g7SUB$GW}4T)S;$@%ub0K^W$}7hyj~Wsm&NO4@p@UjURJJ`mFs2YdRe(%R<4(o>t*G7 zS-Df<$77UURJJ`mFs2YdRehv)u@zeR7y1}r5cq|jY_FT zrK%pF<9`be!tdbsFcThvhv5(K2+W2*!lUpQ%z?*YE<6GA;7{;pcoO~s^WiCY8lHpa z;cxH)ya)@78(#>2hnHoFUV%mMD!dMF!#nUUG(ilOLmZl66|9E$U=6H=_rV%_szzO^ zMqR2#U8+W1szzO^MqR2#U8+W1szzNjW($qkLSwejm@PDB3ys-AW46$kEi`5ejoCtD zw$PX@G-eBp*+OHs(3mYWW($qk60sIxq!Owi0-t~#!00IzrFIpib`_;|6{YqFuBj-s zt0;A-D0M`312d{slsZ(DhE$X~RFpbYlsZ(DI#iT8RFpbYlsZ(DIwEFIM-GI8gVM;M z&T|+T^RA-QuAT}7!~MX6mysa-{>T}7!~MX6my zsa-{>Ju(gM*JcmEZ{b1s9sC|;JFb5uoxj;X#Rzs}S5NkEW zS`D#QL#)*hYc<4L4Y5{3tkn=}HN;vCu~tK@)evhn#99rpRzs}S5NkE0TGXmq)T&z4 zs#?^lTGXmq)T&z4s#?^lTGXmq)T&z4s#?^lTGXmq)T&z48d(N!!#nUUG{JI+Lo>91 zF<`1iovKBhszsfuMV+ceovKBhEM+%K*{xc%UbSewYSDVtqV=jp>s5=^s}`+SEn2Ty zv|hDnJ&W4PqPDWAtt@IQi`vSfwyG4h^E!KZoxQxyUS4M}uQS{arb|_*OI4^#Rj5l< zs7qC-RaK}}Rj5@}s8v;{^`pHH!g(uimj6mjwQWC%w^`>Sf?Df*ggb6LQruM|{A7|( ze(aNJKDn*m!^}Dy2nSo4?GQK=4uiv?296L} z{|6iiUy|+nvd?N^+pb2dS<+^fw3#JsHZH2sn5ZqmPhcus1DV3@M(s{BYImA3kXuSd z8M8f_@42gWBzA+n-1WZjd7pj3ah&l@M-=ws%k0M=-H-qIS^no|OOBRRJO+*{JW_Ik zv5QtcEjiolyH1(FtH8C5MH(pGwrf&j>2$v5uYLBcShvyoo-552S_NyoPK%AV7M>^% z0;sOV&Umx;pt-G z>0;sOV&Umx;pt-G>0;nti-D($fv1asr;CB7i-D($fv1asr;CB7i-D($fv1asr;CB7 zi-D($fv1asr;CB7i-D($fv1aCe=T19wRm;9cy*$9b)tCnG-G70sqBJe;To2$pJnT3 z+4@(Mz?*Z!dc(&Sar>Vl|ps zjb>J(nbl}!HJVwCW>%w_)o6~K1!u!Ka4wu@)bRO^7r=#Z5&QryhD+d5_#s>dmqQ)= z1g63@@Kcx;92)tBctA`S`6b*9_W=G!eg!k&*KluPOZ1JxR%3CuM%Ngh+h?TpX6T13 zn2BmG=73SP%_H>9|F5*gXxd^Y+F~c#;sDy>fPZU?e`||>YYW=p|08X|@A>cc89h2U z$SCWx;T$*@E{03thj11A6n+_uE;-DM{lo1!ToW8!QXA}2@)dj6jd%R2+b` zF8P(nq*Y|nDk{kZW33hPS@V>vJ}$4{DoROauaf2@~(te1bRmw&96f2@~( zte1bRmw&96f2@~(te1bRmw&96f2@~(te1bRmw&96f2@~(te1bRmw&96f2@~(te1bR zmw&96f2@~(te1bRmw&96f2@~(te1bRmw&7m`FtS%*d_niCI8qZ|CpA4Ov^upxyQ8J zV_NR9E4aiA9kIXMW0%}xQtmM+_n4G#Ov*QQ$u}lNOC6%64$)GFXsJW~u}l83UjDH` z{;@&+u|fW^LH@Bp{;@&+u|fW^LH@Bp{;@&+F(v;P?t1)+{9|1H@mcxD7vvw8$vdV> z&yX*?800$T8^c^*X8k*X8k*W~J@{9HI zi}mu0_414L@{9HIiYa-;q`YF6ykdi>s#R3gDynJ~Rkez$T18c@qN-L=Rja6~RYcV) zqG}aUwTh@(MO3XKs#XzItB9&qMAa&yY86qnil|yeRIMVaRuNUJh^kdY)heQD6-l*< zo^m3moLYICN>-bkVMfj{BWIYAGt9^tX5r2b^ zrRDn4a(!vJzO-ClTCOiG*O!*-OGgfdL!IX^I2_a;r2Y@CFS~(a(zj;zNB1VQm!v4|CW@0 zOUl0`<=>L>Z%O&Lr2Jb_{w*p0mXv=>%D*K=S{)*-4v|)eNUKAX)gj925M_0UvN}Xr z9g+JB4Uq@nx9}kR4t@_a;URb!{s6P!5tt2sgh$~qm;;Z)Tp&|&bPaNJ4RUl1a&!%H zbPaNJ4RUl1a&!%HbPaNJ4RUl1a&!%HbPaNJ4RUl1a&!%HbPaNJ4H0Yo%F(6d=u&cY zDLJ~799>F|E+t2olA}w>(WT_*QgU=DIl7b_T}qBFB}bQ%qf5!rrR3;Ra&##w}r;&OCxIl8zUU0jYXE=L!aql?SYJu64|tQ_47a&#}q(Y+u?_ktYV z3vzTX$kDwZNB4pp-3xMbFUZj?lcQTEN4HFlZkZh2GC8_sa&$?#x0KvlO71Ns_m+}- zO9e;pG^=@<)jZ8=p60K4n$cLG)x5)M-eEQGusX7**nh7e9@#sX!&AIIGA6iL zj^K!oJjR2A)x5@PUSl<{v6|Od&1Pd_n%7v(YpmuqR!8m% zYN9KG6NB-=dBM}hGd~?%;E67B{DI8hx2+TV56?R-W3_ihGT5`~f#5!Oe{9w7f(cc> z53Z}48Jt!1P;hP4!`4ZAG}yiB6<8GfwCe5P;;MIzxorxrs)_|CR+-~j6%Qsvb`GA7 z>|1hdWPg7@z?y4ggPkK^@cN6vG&4Y+ zjvQRFedL7T(#SW%tVnQH@apdJ-ROFT5 z#K@xHpvbGP-)?1+j^LE&ijq(A^8dwChEJi*cmL?>;gt`zBZV_svE)l;P+H5S^!DJ> zBf{Cg`-Gop!SPyf{BR47FSg+Dx3t`Nt+t<5snQxHT41~u7_SA!%lkBHffCodQy>3M zAJ5gt&* zkK0Gwt&X{CAlDNtSGkSzq*}aQ39GC)Wxc-OedC+f898BX{-D$68^iGc!Oo(u3ibbF z$yeccv(8VpV$yemN)cD3h-+67S46}WDf^>Y@N=AN4^V_iD*z`Qi6VPL@O7 zwqtMea7*@ltR+{<$rtwu){;G1vPVnyXvrQe*`p<)KRF77fOT&)GCYQd?cf!2zt$`7f^52?xzsmc$j$`7f^52?xz8PRescAWdM zQMXUlEo^y_;oZ~4cc*+@`a)zgz z;VEZ$${C(=hNqn2DQ9@f8J=>6r<~>~r+LaNc*{8e~8CDwe)PqZKIW^7Dp>j zF64OMIdzJZIz=}xJjV;q@xpVw@C+|JQ+kKbe+~B3tN^m!Z>%54D^K&vbG-5#uRNpPky7m+Qtcm7?H^L@A5!ffs#I01R8>^% zAF5PURP7&9?H^L@A5!ffQtcm7?H^L@A5!ffQtcm7?H^L@A5!ffQtcm7?H^L@A5!ff zs=|NO{vp-=A=UmN)&3#X{vp-=A=UmN)&3#X{vp-=A=UmN)&3#X{vp-=AtS!dHR9`B zBficx;_F-^zRoq`>s%wg&i#LJgzXceh9^V~i$o2JL=B5X4U0q#i$o2JL<>_z3sXf4 zQ$-6?MGI3!3sXf4Q$-6?MGI4T>^UBLj>n!;GfAnLq|{7OY9=Z5l9YN$w|YspdP%o> zNw-=_w^~U`tt6#Zl2R*4sgXYiDYcT6tY=D%B&9}@QX@&Jk)+f}QfeeAHIkGX zNlJ|*rACrcBT1=|q|``K>LV%jk(9_GQMC!|ULkTwh#V3khlI!>A#zBF91g|6^Xha2`ShF z|6&xnT3SjiEhVp&lGjSfYo$aeX%R|VgpwAaq(vxUuB)3bv2D%9aDAc%o@a23Op`}p`eNo$?yb@vgjlN7F4-N$;g`emzM zZuQGe!Cq?lTT3d~z7fU!6T@0OWb3pdtBja89v#2<@VN8*X~r)9#X?>jWlSt`&{{xM&ZBhs@akqt>;90 zxZ-kG?6aEq=UlagXF9@F!u5`ZoGtAvX%*T7tZq2oS$dtN!}?+|<6q-4Y*q#2|Mu{I zd-=Wzs~i4b-4l4MxdJN#<5GhrzFW+iF3ZhJ+_o?A7XJ2o{OuR{+iP7f?|QjlJ!~*f zxU;Y!NEF`ZcW*EzdyDbdTa3rv65Y+}#e2Y>uovtN`@k637xsf{*dL68HPa$*rbRyb zS@;}$9_-m@rbXUNi+pfo@P@ISOZewY-9@9jB{l9e+?P7sJ-NqS4h8So!+ou9zwdAB zd~Q6AJIuJde;J?f{)fsQ(|aF_ODgR{QW@?;asqs_u+?0nt>zjnH)4Oe5&K)sHQH*f z(Q+g9mm9Ia+=%_r|OqrY-Dt5P*EHS8?ODd5QAU!&T2$z!mp_bzos^I1Yhn;VgqAW$jqz5 zGE*Opx8cQ|TpZE-cfVX*{O%jR+u*yQbiV7mOG2p-^~gQ?OV(eq!@p_pmvEHN66|fj z-lfHn;o%CbvEm(tYl()k{Z8?YQhuHC>r_xBVp$uGRTcAee>grR(EZvf|g*;5ch#lNV=wE4&76v5~geNL%!Znzo2F_n3CMurD1D?(cDP$qr`x?nwUSAFbB5J6-S~9WckUuJWwEba&ytFX67fGt7Fq zgI;*F{5bmI~yzY&$(uzVsVrBy5XrkMw*`6eIat z3Nwc9;97TZt>=8gmFJ2zvtrF`@RnIf;mq8o;O)Y10^WJhL@r|(wY+dQnN0-EMY(Mc zR)|bjTG4BjeE({iY>n@&E&Q1bx0B(HppAz405({S(@ryiHBZU(dRk`{xsC;0b`lAn z#%Ltb&h-ECRA*XE_bfXtgfnx^ezB|hhO#;4TK>uLNqE|r;#;lrejD6w#MB)Sw(VNE ziELp*h1t2`EL^i$%#MX^vst%RZJW)ymA2bz_Q|%{tlueIRdrM0Qu5tib&KO2j(34v zM%CTk-vbTSGCk6$_(_gu!WA$XrofeO75oUUh96tM^gz3I90Ui$A#f-h28Tlp90C6U zM}nS?ei>>()EpHxM@7w1QFBz(92GT3Ma_0mPeet{QBkv9)DuxrbM$!YsoG5^`c1F{ zKy(6}2;YX2;AHqt;e)94@S_vqRQMj82B*Ur@O_vBYD-aT#z)VFbKqP!56%a>O-C<; zi{J-vFH5pGn38x`S3MYvHBZd8OD72!rjxKR;q^a+>;e}X^5lMv2${vYh! z3v`s#**5+OM3YI#K}11BFvLg_&?w>H5j>!HMDbLu)vC28Dt)ck)>>=TT5Gl1gFR?% zt=3vZTd}r6MbV&W6ak^aOqe7PMi>GKAsI4wBF_K!Oacbfw}i5>+8U}1M5mY^4DEI zv*Wkmv%O!z_e!%%EL@uP8&Jx;1??w2JhXkQBD8) z>yU#FIrz|nK73W}Ir>YZ9~=Ex^`P$8m`?|<9luo%>i+%1f5#nm->I^dvxf?++%ak3#sIg`%62a{J&oP|MlwsuUG$fdiDQ5 zX}*XtTDvjYMq{*hXuc%Px0&YKMDx|td`X&bi?Ldg=G#W|HPd{{XudY%wuN-xX1XsJ z(RR{(oyKlWA!~u?za;&ar2m@ezb*7%FxqXW|JKrft@K}#icJM7mcH9W-zAOd8fd&_ zeIHZv{&Dz|zdZp@i6-1*rT8zbC0HHGqVJM>n2R;$+i1+U(U@ z#(Z7Id|k$T8;$uk8uM*5=G$n@x6znyqcPt`W4B1ykn4}AnbYYS% zOwxr(x-dx>Ch5W?U6`Z`lXPK{E=B1ykxP>mBA&_n4}Mr^kI@dOwxx*`Y=f!Ch5Z@eVC*Vlleb2YM&`)^nQ64-^?F zF&Z82_fo$f1Z93d*!u{O(UxVkZB`|Wbj(pccZi=4HKIMt9P5s!aGu>Hp0{(*OR!MA zhwfc0I{J3+V$s(3Ej75s?)!?}_Z7SEyCL1wSM0v8Os~G;_kCN^@xHRE`r5y;S(>8Oj-FL+3 z$X()ZB3agmbmVSSlid7pcu=}cMf%O*gS;OKC;ItPfBz^qR1h zlHrXYA`)h=Fnfs#1p6wq<~;@TRC9k8o&%M~^A=bs_LBc!m~P5@8D6zRm#mq*MX(rT z%;d?K$y@F?dUNY8qIoOQE!J2ByK8sk+iOykr#sTnDbmmp#DjKtf~djUA_lD@BCm=X zY}sk0g>sOFh6-gD4EP_4ivHgp!7OB*&GLB;44F3$BE7P`i&mQKIcy z)1)=;xYrxCs7Zdo5HoiPnJ1-Y!BSc{N(%>T;b5&RlyNdf3rDMJA1H>U82%sBz?*u! z73$=z6y=RN!z%0XVs=DdEdsnojz^O|a4m(fKK&Xc@FpeD8bpGy|5D8VF6Ms@yB{eY z{jPZQyCO92=3Ny!7IVCp_q9+MW4xdD^-%x3Z~EJHp&ww2BlB(umE?UVl#_R(yqiKX zx|sOf`+C(Sdevaxf~X#Dl^!JO>3`Q#AM;eE#pU<+^d&ugYdmHDFt^Z$qB%;W>T=QC zE3Id|J`?-A&>o>1?Gd_B?DIi)Z*^7&BxSUol77F(2OeRy-voZZYGGE}%xZ_ST9nns zv053cmGO%_mfMfzCbHZy=Hue#(dLEnoHeKhznzb~qc#9XT<^^$H5a$JJXvG*$XyFMP zdBR$r(99Dy@`PX(;w@(y<4lL~hV{H*bKjYI`JaX=o#_l`I)!KC@P>SMKi}Oy-`&r# zV&fBbgWPd6cm5;0LiRo?FZghW$es4_?PAx`uXn3=X=!i!oZyqk_Wq>fk9XDMU3K*? z-zwT^)sw}Ir#i>ET5x`-Xt!?<@a_J-z3biUea?)fcKgF z&>w5`atXSlo$g4`9c$>0HFQUU?nv52qh5vMES zbVZD=NYE7tx*|bWBlyDPE7*F#_M^A|y!I`n1V5vP{nwN8dty$r8<8D7Ea@n#ub&7rS> zeN{p;{J%X_^#1EYH-xf6-+>$9yKocS47b4d;8yrP+=lIb0Jl3vklA&I@7`$!ru$iI z%u1Liwl|MVtyMC$I{T<5E>o+s&&6POkUm#}9Y6Y9O;LOeW~7^CXw}QmS|>xRzK`?w zasJFR`g8wxpTGYa9`m=yVaIcOZF*hCa|Wc>$+SuY&#cU4$+*;!OkYKxH@y}Y?5PV6IooHIe&mh;Eym99)(%( z7|4#WK4PV8uFhP3B%7;KHdm)?u1?upowB()Wpj1P=IYE#AMWRlBUKc3D^L)@mfJ)kx<4)Ny_W_rNdUm+&jN*9hW1 z_%+-Qzk%Pv1MoX|5PlC2!yiDOYkkIY>ob;HpRqi57CZ)z!=K>K@C3|;C*d#f6wHCS z@OO9y=D~A%kNNOC)Hv<}coANLT6hDN!E*Qqya_8{B}72&3z=QbxoThJs(nG}G|TL2 zmf6)Tv#VKVSF_BnW|>{hxe3?+{9a~Pb8ZXnDAwcb1^r=f;HR>#*2%g`$hu0%x}rB> z2ghInSyu^JR|#2H30YT(4DXbC9|d}SSyzdGhh$x?lXbOD*3~*$SL#APXRlTgMdRbTXvaaf7UDeCFs+VX5tt7chO&9bhV!xzFu@M*XhJ`0z@XZ%tNQS-WQgAj_klgd!uP{(;J5GqsOAxV5FUcx!^7|gcm&k=2+xE^!HiZ|-xAih zgjM7Wnb0Hyy}#B)hY9;Q|48t%&SgWR?V`knq^rv z%d%>gWz{UpYLzUjRkEyB$+B7{%W73WmRl9~W_mU?d^I&ZUlg^0B3>hk z8l{S7Q^j|SqSjNz_ff?`KF~r@(>bE1b138QiJC4FHJw8t|Jhinj!OQksOj^n3%rsw z2~IQ0IYX_^htqSY=Gh{sbNbFq-z{o7r|%Q+RCZJ3c3OG`y0YBf2?9baRgA<{Z(@Iij0$ zL^tP%Zq5|;H3q&^;h;A+r-CQ8Lxj=Mtf#~J}(ai;-n+rrY z7l>{y5ZzoLy177fbAjmQ0@2L{qMHjuHy4O*E)d;ZAiB9gbaR2|<^s{p1)`e`qMHq( zn+>9y4WgS3qMHq(n+>9y4WgS3qMK3C&8X;RRCF^cx)~MSjEZhXMK`0On^DotsOV-? zbTcZt85P}(if%?lH>0APQPIt)=w?)OGb*|n72S-AZbn5nqoSMjMkGgyZr0~r9Xik$ zwMuleUUaiQ@7mBHW7R6r&3Yr2BaK*YHe#t3-K-bg>=fOsH*Otl+)u|C3Q~@6qnZ zj&T2#T&<58;q5Y_3&sC9!1OGqC-21;{@7e$T)meLsc)gm5{~m>jE*FQo z(g=Qh`ZOcvKL)X=ELDoF-QHk)@wVqT7+YjAWR3ri5R=-E?wXK)S9*K?-SRibn?amu z2JwE+LK5e_hwm2Rx|Mh?$nFfX!UBG4!DWl^*!JFM@(jEu;`8>7Gk6Y$=Zs0;pEDLt zgVT+D&ww-iJO$43^Vu-f&*#9oa2}iw7r>`L#XK{6EoS!aH?w!YnY|V>do5=6?l-Hq z(TrY~*}N{Zd0l4ny7c2i^xuX0>LL2-tM%2x#TLu;(R*6Swl#fCX4a-iM4?y);(+uy zA`Z3ke-GTHCGuKj9B(rl@ssRH^3l#rpJeu-OWZM7Ker>p_);VJ%Z$+9*N<#865lQc zx!qav%&rzgP%pep%=9Sn!Ox4DU2TuUQ$z(RNUQR;=~b&e-w}7F)tzbDW2jYXYFt@M zw#{0yZ8<(;E!j3}$+qPLdvP6UudTyHZLUwhVGZh5QS5xPPDN&bitTW{>&#P=NX<%- znpM4Kp579vc}t|G_smmQ&&<TlHTeyle8%_lhnt3_;3bk znP|*1(U>mLn72e@HfLsxg4v>Arsy1hx57d+rptYMM>J-Y*`Y4cn1pCdLNq4f9)4g} zs7pj9DI${;kx7ckBt>MpL}a=|WV%FTx1iHOV+5t$_-GD}2cmh{Z@tQ3)1DI&A#6J~lg_006F5{>EdMDHsj)7q0>(dD&# zW-*@$X4Bu{Gi$MMVOGe~`*o^ynJ0J#<@$PP87xm1dz%03X}+6+J;D?H00lcZ6Vt6r zPxoX$NWq>(!Jgs?Un>t_A|-pir+l{9?y+(J@~PP(YPN`)y^xxnOwAVQ0s2w1pVbRY zq-IMzKi7-0|3;MkK3Tpuh~C{GdUuoP-A$D4WmzYtzmhe{`$^tU_P5j0w^6;fQN7Fb z9CuT_MS71TDc`f?4dlxk$ftmdDBz;LPo;|};2%=JKcs-~%Kkxm9u<67_7BtZ^fHH1 z!bS23s;S{+dYl=0oEdtY8G4+!9w)BHnW4v-p~s2qapHQM8G4)?H zrClVKU?R0$L~R#Q+eOrN5w%@JZ5L77Mbvf?wOvGQ7s=LtUAF$~vh_E~*54#sf0Jze z*JbN(lC8ffuM`gQdl?)IBcR;hDxeZZ`rWn2*54#se-rgyOuZLV??b5fO6t9sdM~El zhfwd;)O#`YUQE3gQ}2_g_j2le9Q9sIy%$sOL#X#k>b;nHFQ(pyQ18{$dolH1OuZLV z?~|za!PNU;>b;73KbCqQOubi8?~|$b!PNU;>U}!(KAn1>PQ6d3-ltRV)2a9A)cbVm zeLD3%oqC^6y-%m!r&I6KsrTvB`*iAkI`uxCdY?|cPp96eQ}5HM_vzI8bn5+7z5W>L z{T}N50KNa=)cZZu`#scq3H5#i^?naV7=sb+#R!K|?`Kl)G0ZS9&uS>@{gk|$()n@| z@~QaARQzNrelit5nTnrG#ZRW$cy!m zSLzYR>JiKJhVPk$8>bhn#Db-Izpr4yNhi2_+0utJz8bx5}M^D zJ=&+NAigy;DSemK!naxle5;kechE5V(J-g$?cNr@owfT_(lf7RU8Y5sn_c)ETxtD9 zd-~q2j`T0HlIh=I)HC&thv*##XIsIhcYMZ5)jOR-CO&jICOX zZJZd}Sn;$2avL3Qb$XR}+Gz2#(c)>C>SC<_DeHu)KK3{-M2kcqGEQO|09-x=pNGuQy)Z zGtOAeYB8L$W1O+kRW-S)99OZ2t0)LfbnoW$=*@4qSA!kxXO8r=BVD8akLv$})$`Y> zv)0et)ZXT%_A@s%z;xOPlvJdb?p2A z8{fdj)3s)i)>N=@1shLf<73$PQ>riQt%bK};bF$F`>^FTY?)%qzp&+vZ22Zzz8X40 z>$lQ(o9VmFtgx9Ef0q@CSmDtgk9~$Ee$5gaSYka({94PSS{}4`K$g8$wR*W$FVpHe zt$v#x?4SpOwJVKUAIwAFO$%<;@-4LBW?FDFEx4H$+)N8@rUf_Cf}2@l0!uu?5|6ON zBP{U4Sw?li)N~IfEW}*p6@Ak+9i)XIeY* znAy6=;ZLGtPry^@+4R6tdSEF%5NLrw2OL2M%%%Ze!_%+f>DTb|Yk2xKJe|bTui@z= zo=)QF*YNafczQOTZo$*D@$_swJsVHY#?!O$^lUsm8&A*1)3fpPY&_kCr@QcU7oP6I z(_MJF3r~09=`K9og{QmlbQhlP!qZ)Nx(iQt;pr|s-G!&S@N^fR?!wda@bo-9Jr7UM z!_)Kd^gKL04^Pj-)AR83JUl%QPtU{C^YHXMJUtIj&%@L6@bo-9Jr7UM!_)Kd^gKL0 z4^Pj-)AR83JUku2(-Ax!!P5~u9l_HPJRQN)5j-8i(~I%+Vm!SVPcO#Pi}CbgJiQoC zFUHf0@$_Omy%>8W_S15bD0>G^ni zKAxVBr|0A8`FMIho}Q1V=i}-5czQmbo{y*JkEiG3>G^niKAxVBr|077 zxp;amo}P=R=i=$PczQ0Lo{OjF;_10~dM=)xi>K$}>A84%E}ou?r|077xp;amo}P=R z=i=$PczQ0Lo{Ohn!_&+3#c#|1*c#d!NB;#k{~0&GWc67;-26+N{6`%83!M9`Rj2#m z)xkJ*D^7h8r_RQsZ)c9Mzg}mK9;a20lQgQV)&I8YS6Ay-SLRH~_v$SP;mfJ!j z^(?>Dv!wJa5xq)G&oNamv9BKDLOsN0J;PulOMLW!7fScD6q634Psm zXT1PJ-{Z_@nT73i)?e!DF4x!1*4I6uue6qXevulTH$wYnNL;Apn z^nnlQ10TW$*XRfD!v-_3!Nu6%Dhz#u8L*SJx(Ey3gBhk{hI_){^hwy^svdUub0#8k zAl5Cx1j9q0>0yRj%_w~p15d@ihngXh_k$0=kp7&$bCbUFK`b#z|G6OieEN&w*RW1! z`dQXnjCrSqzHVH0wK3T={pw8p>P&s=efrdI8;@P9PyM0(bfdoX=lasKjltsj(Vyu< zf1?lmw0`pj{pA4tKiXKE}CXsG|jkZnsHIWxF}&< zG|jkZnsHIWxF}&RY$!Tes>XXX+zo>LWY#k)8U;PJQG|ePpLTvQr<~sgIngkDRHGoT-nTsgLZ` zM|SEXJN1z>^^u+W$WDD^r@rw7edAPp;?erVbM%9U=m#h12d~oqouL1ls^2?Wzjuzl z?ht+4XY_H?^l#_s->%Z{d`-V|k$&e1{mwZ3&S}O6Pw00Z(eE6t-#Jyk^N4=uBK^)2 z`kf2)J73NFcBqej=OF#giTa(d=|k?r|hJ9n;4n>b@|t6xHs5IbuI2)i+k7N-nF=QE#G(t_paq1@9>XzaPL~& zyB7DZ#JwAE?@HXe68Emey(@9=O5D2=_pZdfD{=2i+`AH2#&BhfKg9S$3|Gc*WsG0M z_(cp?#&Bf}SH}2AjE}_lNDNoTaAl0I#P~`KSH^HjezXx+ZsbcF`O-#Qxe-@x#FdS>vJqD{;>t!`*@!C}ab+W}Y{Zp~xUvyfHsZ=g zT-k^#8*ybLu584WjkvNAS2p6xMqJs5D;sfTBd%=Zv#a^+*?e|2pDp0CL-_1!KD(OF z7V_CLKD(OFp3P@}$7fIDv#W9CYCc=WXNU6HDqOh-J>u_ZquB^kAb-1z)SJvUmI$XIHSH5Qy*d6y; zMPC=-oM2a`4{**VT=F(933PJ`cPzslAK;E4<29I>I?M>{UH$o3%+^8e_t&Q%fZ;~! z)BEew55#bjY2QIcP;H^CzRj6cpIfpo-E-4NUQY&p$zHhUrak`gk^k%d^f7xru;-Ir zncwoh>UGf2eS=rdF*&E@JfCwbypuaR_l(@zx?f{*$4$t5F8J(@*Fkv)b^o0Ex4f^0 zpWpfS5C1>->AC!IqsvE^SD%+Zso%lfKXv~*YGJ>#yMG!yyx*c-UTys{uQ9p(n!A76 z|CSG51q1e9w(ke~FDsZZrqaLH7T#9$lj21GWBNa^cWCb`_FuO5-}Wio_v(Fb+}EcD z<_1LtB2m=r}(gAh9!DlzaF+M`02nQB|{F3!v!V5 zPmcya4<9sqP{{?szr!nsPpbT&?1HlE4!(56aphCWZ?E`$#k$H5MwgEqQhi?ad80;; zx_WfpsNauTc*tXi-d^>~s%3{I4lf^_$HFHB|6hGg^`FKZ)B9B&8SM%8ZUf<|>Jv#Q$vB&KE?Hhi3bZmUwkZ}`szAigr(D>vLgZ`D*Q4jnF zuezgldma0yqbra7)4%hYn0@Th3CB%1ZDRJWuL&1Ucw(2o1o!nP|I+Kli7Sp9_iw(g zK7L=X&m14=ew|Qkh3($Czsg-03gy0%`+Dfm+$Fiu(3sp+xpDe&T{u5o{5ayx}`o7xu^u*iy+~@t*p#iF&4p9AcfV|^lHt+x2dIKN zKo!&h;bPbe`orGf^WlA<8pgm_7zg9wC^#C9fn#9;OoZd$csL<6K$VZS{7Ggm2k+L> zV)gjqTG~%NzPOh5)5;NAIYKKB)yk1Qt=vZ|_tDC-kF+vV(Im8|mh2g{WapU%b)U%* z$BLwl6G=Np<(3I>YWf)!P8!XR?Wl#6$Wntw9gO!?_h|iuGwk6Ed+c(CU~i|JUF-d> z^{=k=39~%v92+SnyYFMBg44|1&J{6=OsP$>SY?pKIUCGN1QnZh^MH^4rmI`}@mJS< zv|X+)s8G42r;UrP+Bga~e^?Ew+5dL<-wrEg+SvF#$KJ|&-Z%Dp-_>QRLb+peKJv{5 z-wf)^Bz!a8^UcJ+^vxG~zPZEd!8sc~{+ks0e^$ThzpMYWs|6CSCRmHrt{tsC?dbT} ztNHgTgZ^uKVcf0dW6l4Lvqs?<)pw2!mGaF!JprYj^|L$$7xJvLc-GH()=ypEKRoNh zJq5!(1><|XV6(fm*+_l+E_-2gKkK{ihj9}BJ*nqe|JU}z_z(BM@B}7#&M)<^-K|`$ zl?Qmv+qAO3=e$iT`)lDCEj(NckJ7^NTDVRNhiKstEj;`qE$n{IcdWMwp7ZXr^f!C5 z-E;Sz=T3E7K0nT?qVCFRZ@RxPxxcl6{XBQu%|{1S$&zMJw({~?&tR=*FyR^O68Gu8 z-cLLNe_j0X*VTQbp69Rox`NeCF;Cs=Mw%;(FkjNze67u_dC|f=zP6*U4k|l+pgQq2 z6!NEX=c?N*JA+C-n?fE$Ay1%?&!mvYQOGA@!mIG$=T#y;TqWWb3^-K8W00!IUr-&Y zJX442U9-HIH5#JghlNJspON@yB>owRe@6CH%pMt<;pgksnEtT#Z988Yi8n^#jgdHG zB+eL#Ge+W!k$7Tc?!8uEJ?DKsJWsh7!(PxI_6DEB6(e2$f}U%?)U{va+V6GU6|VUT z*IbB8M&go@xMU<3cV{f4W_V~4%M4?g(JV8JWk$2g3H)UWe>s=GOktfvS*MzH zs#)i3)+yf2Iz_Bg#5zT+Q^Yz&tW(4~MXYla>l~#&-G_CGSf_|}idd(Jb&6Q0h;@os zr-*fmSf?mF(7fV)Fc^lw0WcJXL14KO@57-C4u+sd8Rb3b%c{H|4%Ln`2F3yn&#FbN zTEwbFtXjmXMXXxHszt0?#HvNCT9mPB0jn0UY5}Vju<9^Y9mcA|Saley4rA24`y7^@brY5}VjuxbIT z7O-jos}`_o0jn0UY5}VjuxbIT7O-l8mCAR~u6MJ_SgjqW$2-PTcC3DDg7=BuPlc(* zP3QXm^C^xCj5aP20lpNj3?0_nGFm@M>qqr|iZW*y=nO^9Q0@%loME6d9OMiGo#7y7 z2sF-d&Tx`59On!r&QRtIWzKNoKR-iOm40+==x9f;aP(1*zMrFya`d1l3GQyWqn9~) zxucJE^r4PE)b);by`yQH4%%i*c;C?F;Xzoj)HwMdI5gBR?^Ubq2mB|#v%?o0x!qBR z^&IscM;#WrKp!!JH;>@WBY5)&-rSEj_v6j|cymAA+>bYp;LRg=^N7$4xE}7(YmU*b z?i~tF(cYoj8}Q0d?G1Qkpf-P6n?JA3U(x0-XmfvUK0}+&V9~Giwx}L-1aBU}n@8~G z5xjW>Zyv#$N9e z_v6w1^b`GfbiW?O5%d$m&Y}HybUz;5ug9bN^>}nY9^H>ekKoZGc=QM!J%UG%;L#&^ z^avh3f=7?w(Ia^D2p&CxM~~pqBSIIlY#Gazv1}R3ma*)3mL1Qs<5_k*%Z_K+GL|i4 z*)oBJ_Yl@Sn{^Li-2tpy&ALH^;bhjG%(|Db?y0PM zD(haMzc^wy3zxBQ84H)Oa2X4iv2Ym+m$C4rJn&K$9?!x9S-6aa%UHOKh09pDjD^cs zxQvC%Sh$RZ%UF0k3y){v@hm)^g~zk-corVt(`Srl;qfdyo`t*jUm4}SyC)vc!sA)E zjD^csxQvC%Sh$RZ%UHOKh09pDjD^csxQvC%Sh$RZ%QE#`gIdi&b=Q@l0c>_OdmYSP z`RrBAR)KvA*e1+2qk28dcDv9I^y*8sf2{V8-KEFKcf@@hsnC%Mcl&hMr^CB^x=-f$ zI!JC%joeJ^$2OWpTU_q|lR z&(V@|-1C5aOWpHQ_q^0SFLlpL-SblSywp7}bI^PE`|G7=l*S@o}1b118VyN+1#Uyv0B2v zmCI0<*)QfVo}A^fT;4Pbx6+JZ#4KJ^Esa%bZN$v(byrY$%k10|vvW(#$}KS~_lnuL z2D5RmWle%pt;asiDE}lAH2w@+0{;b9 z!`I*%m;v^;Hlw!0jM@@2YRk>2EjOdK+>F|CGiuAts4X|6w%m-`ax-en&8RImqqf|P z+Hx~$%gv}QH>0-PjM{QDYRk>2EjOdK+>F|CGiuAts4X|6w%m-`ax-en&8RImqt;?Z zt;LL5iy5^RGiohn)LP7_wU|+BF{9RER;j_PQiEBg2D3^HW|bPuDm9o@YA~zRU{Sr!K_k)S)~TEN)2X}8q6v+m{n>ptJGjdX%)s+ z9VF}D-3931-#4f*bB=RE6FkL7_Ijo=`zjfKfAWq)du1JG{B%47SJ@q-EO(UBf9oj4 zyBy_QF`n~7r~O+;2rTvRzip|4e>QIH+o2LeQe}iJyXEW{L;g=!neNp?_I~O^A6HX) zfsyUYJ-zV~5uDdO(f?je=^ib4gokW->iQT32hdb~kcZ>YN&RD1c1d-3Va znJ!UJ;8M6!Z~uu^tV4x*x)_DVCWFkanC`S6hiqrb@tZ|-8_ecAXevAVjQM?YCK z`c%0dy{f#s?#1l;N{@Y;u|QC-JE(x(WlnnY4of(4SI?ZmH+QKOzoW{0=H7KzP{fek z_7AGMb+Z2!SMahp%tB{>)Y*fmP3C*fzLNdB*uTBU{%hHPqqDxQJ+HI>TkPKz+Sjw( zT?5|OMx<~yJ}$z=MIwfO=9wdT=5W3K zcfqW{hTV^_^ILnkjz*EmM(a<4`IknYemB$e?|!U*UjM$3?M0Ry<5cWB)oxDbdN$7Y zeu1azO4+^L@ztPmeh}+zV)rHyw5Kz7vCAFYy7LIfh#Vg)f;_?dMDM2t{ky2`x$bUv zHT|HPeC7yN4z*f2)N18WYq$fFX6|-e%iHc)F1rRbhx)T?ard=QRl8nG(zOIp;-`0h zGib$@daHVG50S z4vly@jTnrYXV8e3(TG>_$+Kw0D|ydZdd!hpIaMozQP?!C{4%|GH4nO!2VKg8uA>*v zpt$zolh^Q^Ym5P=(1W9B`zf^j6xx0YZGSs$AMCd`g|?r94W<}9O`+|l(DqYk`zc0G zQ$$&&(DqYAS*FnTQ!+8okM8}qXV4~=Snrxfxuy}p`7@sl_O06*IyN-ao`6GT$PW!2 z2gkz+a3V~Cli*~S45t822%QF}!x?ZUOo6lDY?un?z`1Z9oDUbkr{F@k2tExL!)M?M zfB76-315IO!nghX22q6XKu}rjyKocS47b4d;8yrP-0tdsXmoc6-0AA?64$@m+|U>! zv$3Jixl@E`i0L$~Hi+IyTyeXJ-xQI7h#G5YSO&9T|i+IyTyy+s|bdh=>;?T{Z}3@T-b&sY%p}!o>7TXqds=#% zmLA)yrE9gc(pb3CSh&(yxYAg-(pb3CSh&(yxYAg-(pb3CSh&(yxYAg-(pb3CezM1C z;dy$u!^A*83zxy=p>OJkO7ue|`k`Qd*%JLwmR1+`w7O8M3$=Rpdt0d0g<4&x)rDGJ zsMUp9UFca4=4A@Cx=^bNwYpG?3$?gViwm{5P>Tz-xX|-j;(0Ccyq0)g&*|y?Z)Jgd zSl|~da3>3V)AL&5c`eCUVwCsp$WDpp^$r#(WRXG^DP)mC7Aa(rLKZ1xkwO+JWRXG^ zDP)mC7Aa(rLe@AvV}VO{@%{!f>#UEqGVs{!f>#q3zj zj>YU)%#OwESj>*a>^P7e2eRWpcKmgZ9Z%JY@37;KwBn~)@oRP*$c_Vh>^QK;jsw~8 zY<4VW$6|IYX2)W7EM~`Ib}VMcVs^OI+aSI>RcpSgHCJiPlWhA*@!kE{ww!It*|wZ*%h|S^ZOhrVoNde5ww!It z*|wZ*%h|S^ZOd8ZQ$79DaF)5zUc9~g>0vxMSP8OYF8d@txg#2UF}wYk-HzasNA&pQ z5j}PbqQOCrwj&z6`?LMY5!{zTN3dI&y`}rH-MCmtXF&-TiF$S6BWw zwtJlIe#Lf2@XI55{PKt%zdV9pKE!taQRJ5GirMT6G0w|F*Y0AsA(@EIELZU>S8=1O zxY<=)xWkUl`lSA{pKp)kYnPj6=xz0(q3`Vj7 ze7TA*SMlX4zFftZtN3yiU#@ZwUiKsgzI&ppy2ABe>iU1%>+1Gq?<&4p#aFBNY879t z;;U7BwTiD+@zpB6TE$nZ_-Ykjt>UXy>^+sQj@AzhWV!1-wI6z8FgNjYt=!%7!o6+P z=W6o>pD=fj@w#7!_WGB+?f@BvLqid*e6;8O27P$9cXjKThX2^BeiRz7b!TUIH0&OR z-NUff&ERQ6JZnRGp0y!8&swshu!zE`yO`R!|r?7eGj|uVfQ`kzK7lSu=^f%--AB? zxZkj736Cq`aV0#igvXWexDp;$ z!sAMKTnUdW;c+EAu7t;x@VF8d4SeNNbBWWe(CN)uy%;O=Y+t?0{|=GqHdIFaFj)f! z(sJF;_IbVT^5c$saOQbFewS|!^&AbuvUWPvd#_766ttkmoo&rd6eR8 z&J!V>?Hen7Bgj==qE&B+AIC)!gIZ7(jxWlY3&2$=U9i;oKZH!|9kE?qnY;6^}BPJw820t)GQz{VeQhS)FeO zJDx6cHS1l?dRMdA)ojXKO>q4mezV&a|NS=#U3-(*_yeMOZzxH11xkSFbCsvU*%)^|*GOuU^;N>UFiM*A-V;J+89)8Cip2e?Jd_17N5bhhg4_ zdoT5V5F896paLpkq`_f5bCdp0$D z-w2za6*fZ~Y)LOxhbyi!dR%4nGt}XVtBf93gDb8g`eHS>;wqxYvvd5Mmp()7t$4Ot zOW9LEjiqe$1hVZgo2{OJx?8R4ZY|Ckm;RNyTfb6w>sRV+y{Veao2tpYsovI`>TNB~ zT>?>91sl_g)!SMe)=ssy;$bxhRGC?<)>d5g^SB*Vw%Ji-o0?j2RnFg5Q|oP2XIjg{59gkvLd#9*XVi{M*$wI$_2W|N$EDPdOXc3} z_aEB{^&xAvKM1{U)%zRjVlGz?ynAQn&DP+yo6T=Eo4?&`{${iJt!DF6*54+r-QHpi z?sjW%+s*E8wg$J&`rEB$_}k3zw^@7JZkE5zEPt?L#%4499iFscRwLLuYqMGXHfy)v zH?yCz-gc|?wp-2cx0&H@>-$u?ZIA9fQQOqI`ammQ&%MqwdsBL*mUL>#OfBiul1?q@ z)RLK6GE+uCn{~F^Wd*d!3TTrR&?YOOO;$jgtbjII0d2AZ+GGW^$qHzb70@m#pj}o# zyR3kASpn^`0@`H-w95);mle=1E1+FgK)bAfc3A=KvI5#=1+>cwXqOexE-Rp2RzSO~ zfOc5{?Xm*eWd*d$3TT%V&@L;WT~@$$SpnN+1#FiUuw7Qbc3A=2Wd&@P6|h}az;^3k z|7Z3iy~(>@?L&idfjD-#v3mq~RI%F(#$XMu*vCtu7p+m+(hm3^|84DfiIenmqUBOdU z@vgwbR_k+{{B^zB3!7w}jMYEO)8IjW;6Xul_F{87je+;bEP7L)v%>t}j-AR^sXY-K zrGY=Lc7*Oqjvah)gChldxW^soc}%in5BFe3{5^iTEpx;NL&x%5Yb!z%;W#)RPJk0( z5}X7l!(>o>B6KR82B*Ura3)NFv*2u)3g>{8TcPv7I-$@7@F}Ou@qrx%S>uKM_kF@Wf9X04H zdRfiSJFJ$mn5SrWi~X}B2L09wJr?%2jb#zo6 zU6cxDW#M1G<9}!X_G(EM!(e2C|lL-Y%}|wGW(t~`<^oUo-+HMqAxbl7n|sd zt#m{x(=Ts!l`FI_seLK!dpD@2;fj~`+`+%Prq^B50@w7atBq^lRx2E~roXIe$a8ey z-+C(a&7e>pRypK0c{fL99s0r3af^5dQH8^(u^9rkc=LZFxY2 zzRzmU?J5fe`_{+vpG%)kBL#cHb=N2g>Y6<6>RvQz2(r8Ga8K18pvo_Z`>sHlMcGTf**7ohLAg*m&TtOSn{|Wm^ zIr2yLk@C$C_m1kX<;CvLpB&*a*SkQ=gY{59bgd8cYWWXc!*jCIbF_Ysp4KmL?kCx@ zN$aB`BTojECCuNqXGOYSeSXsCCnW>=Eb7zR=e@p%d0o)=%D&fR_xH*U{_VT4@22jb zN*>J~lRY7OQufdGJS_K$p4Uyezux(>Cr9@yT)6XfMA0opw+uXQ;1>oyIPi&q3kUvV z;5#3E?Uz?F!0Xo~k9xf~e8BLb!*3n_$KmU&kk89|CU0dZlvii8eL!Ag-fC4uHsy7N z4$PmFKPfaO|E~NWhsNgrH2-IzBl3Td|EthZ`A_7}4;`ETYW@=03rAASjj9~2pqf{Q z?D#-2Z_%@C*B7@_${l)@poa8sJu@FrA6xV)?Vg=>{qR=(@K)X)Jn2oIn;m1>sGe`T z=cYOPr#t7No7C8HH88NIKP(fcYHtx(Bmg-S*% zR5DtjlF>*v_d7L_f;}_UnQdzDjBU%$>@ERjNVttXa!aM237q!MZJ}p-bzhx zrKY#${#;d(>+C6aD4)KXf4s=2=kbyI_{fu<-8Me*ET5jhPyUWc!di2QXSdd~`?6Mj z38Ms=&--JP12M|}Jn+}@GdcFaknM37Dk5AvF{rBp>JKfn< zpW5P6t;Xu#(biUD^^LB*i^YokPjM#OD#(ip#?vvMSnCt*M)Rw+?CqUr3VPMoGQTbJ z*IS`W5Y2eZxp!Wn-ngFqgWS1yT*nr+PqKZG!}Sk&Q~z+r zbEvlc%oAT;IXEl&AB}&>O}8E3j9CpVz9lv)&WB(U@VYdW?Idf8t8!yT@CzzKJ)lXW_fj zuk`tW@xVg;V0Rz=9{X)$vzOTHC0UN|<(wWGnR7o^m-Cyfp*g?x^8;B0Ils#)%X!GY_kZ*I)BbOc|C<~7M$X^;{*3>h=l`Ge z`~1+sIWPEIjn6FbnHT--CBHB9nU{U$6~EVqj>>7s8j{nPRh6?k^!=PQes9Vema{f% zd`{f&Z-t6;)`brBOx>3|D%6mBNT@xxDiq5-EYy)ZIujkZO%Jd<_vX-XxwnVT%l%>2 zow;{peJ}UUP)+WSLZ{^3rDDj>?PPgCXkOmX(5rdFLX~+XejXnBM_#F)%l%y8@0ETY z<>y2E{m@XQxYv34PlN{NKbbWn|1Vj$>eGs*4|6e<+y&W1!VZN%0_agrv?A5u%-`?OMTUE{N#I^6FZxda*&HlviW%Us$ z+yk@rGpZ|4RaNyyI{+;1J1-sS`@CHlUxJ19>J%~Q`--1y?b-P%EK!YnnRjYXMfbPe zaz>_S<&1(u;83W7!{Bfj4b?CP#=^Mt<2mEK9|1?gQE)UI1INMy zmI2k6xDR3H`o^IFAx9jI;>E~zZ=iBx3?fUsy`uSP<`C0n;S^D`| z`uSP<`C0n;cKv+2etwpIewKc|T|eKhpPwZP^|&b1<2jf6`HJ+NIiG_o(?7CX*$kdB z!;WP$a?eh$&z%bAz`1Z9TmYYf3*jQTF8y}yx8QpCHrya`^&Pkoz6&?O&FL+oGmCS- z2e-oa;WqdI*zp?2Y{4;GL~Is|*etd`@lw&Pi0D?te!=hAFZezC1;1y%;P>*LPrsXg zSNi?@yQ%bG&Ca{}*9Y;;T0FB>Kl^*tW`i1#Vf!6?!vE@3`cQS_H}F^@?9)_3po z-OuBw!8mFVjtX-51{?MCbG$h!ZoR1D){Bli4ma(ceGk~zlFl)c=xDFV7SvZ^x9&;= z^YvaCRVQ<=pUk~}qRM?#m%U3q%iZ#U$7kZiPy195&wj^w@_jOsU7YnZpM1kEf;WZ^ zg(^5)mBi6d4P#&|jDzv%i$h1ik#Mx%kAY+D!!!XV!f|jsoB$_+UBbjD>cuGP#VG2< zDC)&1>cuGP#VG2cuGP#VG2cuGP#VG2cuGP#VG2cuGP#VG2BYYQbf}7zM_#WH}-v|2(h3qdR*0H5$$HF@CjxC`di35#KAMVaBa%Z16 zgK&r$ghNE=M~l#pwzg=3YW$zgn&kZ??1vzo2tH#tLpo>%7QOt-;PyYNY{&@)Qh3ii=otuq120^ z)bFtz)~2uBV?+94yCN>yvo!sJm`Z~k5wBG%^hUe$-Kf&{jcSJ8sAlMmxxa-6;CJvK z{2m^LKfojKN0VJW=f@5^90`~%(u)j-uKy*4)jF{pBL5QA$FgKH3jYY>BL5QA$FgKH3jYY>BL5QA$FgKH3jYY>BL2wT4<2G<}4 z*B}PhAO_bU2G<}4*B}PhAO_bU2G<}4*B}Ph5Vn7;7+ixGT!R=~gBVTRy^SSkqfDNz-TA&p+LmO;?t!8*SAqCsuZFol=-MaJ( zd5!54^E%Vls;PUe-TSV!d*8Ko@4GhdUHhfI2k*mn=t?ij_nc*QQdCV8RTDM!eyH5O zt`+ocrP1d|(ZoY2t3#m*4ijZRoGu;>)i4Ie!Z@)1E0#%NnG}{uVVM+`slhTeSf&Qc z)L@w!EK`GJYOqWVmZ`xqHCUzw%hX_*8Z1+TWoocY4VJ0FGBsGH2Fui7nHnrpgJo*4 zObwQ)!7?>irUuK@V3`^$Q-ft{uuKh>iDQ|ReREqwm%-(51^sS6gwU1n1^6O-$=~fy zX+FNyp1G|UsTm_RW29z`6zunw!bmBM)Et`O|F8A)*Zuqr`|W-cu7huZ`qG%G1~b)S zrdrHYi``l`36F zm9Fb^wV%HRGt5>yKbC3k^DV#M;N5vJO)aKbglXcKCWUDhVVVS{Nnx62``qWVzlQt$ z{lRn%#;L(LH5jJ`psNp7RxQQBWqK2EO;U;Rhi5hOAhMTD2CTh5e8g8P7 zn<&;MD)oH|_5ECX9_QNgIQJU6L(PC|;p^}X_$FL$p77gngYoQl;70f^d=GAg@562I z1GqQcf;C&PW((GA!I~{tvjuCmV9ge+*@87&ux1O^Y{8l>ShEFdwqVT`tl5G!Td-ye z)@;F=Em*S!Yqns`7OdHVHCwP|3)XDGnk`tf1#7nCK9_FIoe$4Ljak?Q@FKhfweTvu z28+P>6@#WQXbOX-FlY*crZ8vhyU4u*0V1&2Tt91hivGX}=OI2aE{ z!O?IG919a*A{+a|$C7OU4{^;)c6i`8qfdM#G3 z#p<e^=6Eo!sscCp2FxUjGn^itr)!( zqqk!8R*c??(NmcmtZy2j{%mIs)_*?Jqbhv!;zc)qN?VBP4;MoO<5DZRR5^cuwP z%=vZK39ZV+bm#ia(?0Wb)>JXE?uh5hVty}(`8_M3f$aL|L_2MDx#Y3iNb~5YP#Y_eN8WsF&@^;;gtY){}$ZGP+eCA*n0lV%- zR-=Od&fUoR^f99Ub0|lwF&7G9e;5J>z=2R9)_RE91G!!FSR*}_pvNNgScD#n&|?vL zEJBY(=&?F_td1V5lb^MkCX3Ky5t__OHkb(ZvZu+SG+C4;i_&CKnk-6_MQO4qO%|oe zqBL2QCX3Q!QJO4DlSOH=C`}fn$)Yq_lqQSPWKo(dN|QxtvM5a!rOBc+S(GM=(qvJZ zYz0jgrO6UBS%M}@&}18EvJEs@P`!K$UABQP+d!8k=&}S|mY~ZLbXkHfOVDKrx-3GM zMd-2!U6!EB5_DM|U6!EB8tJk|x~!2dYoyB(bXk-xi_v8gcpMoz_UF)zN8d>9ho$mY~z(bXt^7i_&RP zIxR}4Md`FCoff6jqI6o6PK(lMF*+?~HGP}h!S(c7lwM2FYYBQSO0PxfwGDeLOt;f) zQJO7EvqfpPD9sk#qfs`-T6>;sFuyCejc!ZOZ3((9Mz=+BO)grW7gjS2t zY7ts3LaRk-wJ5C?rPZReT9j6c(rQs!ElR6JX|*V=7Nymqv|5x_i_&UQS}jVeMQODt zt+s+zTS2R>pw(8;YAa~96|~w4S}jVeMQODttrn%#qO@9+R*TYV30f^dt0ic)1g(~! z)e^MY23liq17U^T7*`M&}tD{EkdhBXtfBf7NON5 zv|5B#i_mHjS}j7WMQF7MtrnrxBD7kBR*TST30f^dt0ic)1g(~!)e^K?f>sN5Bumh0 z30f^dt2NSUjkH=Lt=34ZHPUL0v|1yr)<~;0(rPhUEk>)wXtfxv7NgZ-v|5Z-i_vN^ zS}jJa#b~t{trnxzVzgR}R*TVUF)wXtfxv7NgZ-v|5Z-i_>axS}jhi#c8!Ttrn-%;~mR4I!tF5Kg*3xQgX|*`57N^zXv|5~2i_>ax zS}l>cNj_!^w8Ca+1G7)`TZDd#&~Fj?EkeJ=>9;uj7N_6h^jn;MtCKIaRkqe1@__PX zy%xy~DV6~{K=#X_>Rf%?{J-2XSs_XDRnM81N|=*+%dBIYne#WzoY!aDxh4C|^h4Qa z$qJd8-jsb_x^tIYfh*I`n9q6140DIs@vV8klxq;Ex}f687|KuOeCPk4t$4GiR<72{ zOfQ!krz-6qU;E|0_rCYO_rBj>4>}!(BrnHF5<-YZ<|N5Tl1w#5J(7$h zBdH`AV;ZT{^cb0@DH$V4Mv|mANivcoBq2$XB+mYS*LUB?IY(6U`_1$GKL5Qw_jOwSf}1H#+yZA03h z$rC*ISEC0h(8CfQ)+_hEK%bHu(*F)I58+-m;o7icJfM>30iASXIv;r-$p}byKRgp^ zY)E-4k8Hsc_}AXWeO&#-8_qa_uOtfZfcG|@_Z!Ck8tLwZY#)B8xJl4GhIQl9054?@gpBfv|Vt%3bC%g@X`~3h}y59P@_Myj8I?+4kVD96XV zekjjdyhUCguQz1xU=K4}c+L^zz(&XpAXh&|-&Ljq4MzW$JA&l*v};fK0a#ANk08fCQ~qAxBWc=sn}wcm_UI?UZpn zKV9S>G{?^|c&PFml%3q5bz8_tZ9Iy+mwEdyXvX^pdy)4ad53G}Z6WU4^50v8-(2qj zP*}uR`HvfXTKxZ&_%4F*7J3gM4!DApx>&7|7n$7^<@NM_1CN5j26VjE=E1`kamRSifbK&M&B6ZxlxDU5e#N>b z^%w6Z#Hp#j2T+%RHb8s6#1m}uFxvrnvBA&xstX~%Fdl{T*TSFo*oJG#G@%Ppg#UMr z9g^BK5GAqMdl>X`9F-;0&Fcc{$A;#E-;Weuz}+r~)}q!>_7Scwp9pt}dbAZa3`hu% ze1H;tf!skH!?mj@In=GH4R?kT#?hnD-gSPSb@f`|e=oibDEIez3CtZ6Xh|0*2hd>k!k zeeXg@>Ld0zmhM3BI$RN7MCCcqM*MHa@3UjIbsL`n?Ie$V;nzdN_zLHJD03Tkz6m-E zGzm}nA)bOY)sJ5|>sFpS7;#^Ohc7m71@!dy_&-``V~#@KWLmG`x!?A#g7=v4uEE{^ zmv_1MsyEpCZ?q93Ae#;i-Q>N*I(5*ypJ`2o{8hYBWV&xc`)A|-%R*^=i8N4?aaSMU zJd8bqzX$J;dp%gp-d)~&r2H^s^KtJO^^|E~?^V)y;GXhkk_XN&TMFDS-X#2gQPw=P za(_k~v~=Ln`V?}FT0z+gQj`S$8mN}24`@>foQ6BS1%OJ z)C#pil&L*cd^bbAM7;!S<@ZxB7cJE*)hk6S^=kDRakly^^?Gqmpk4rLT?IZ2d?-2w zJ_>9R=LL2Ic8Jcwl3}HZBkq##P2I#X#d%#!&G~W4JL&TxX0n?hwO` zdyGGdF~@hwUPZ?hrhsD!I zrKyYO&7f(+AImY5Vx^fi8;jK@KEWlnnrEBmh;8P%=Fh|@=7r|PV!zqj>@B`E`bvhk3VBV*bJWqjH*gzxjaD*j{8WQkvRt*l#G!kW)Yd5p;Oa1mVSNVBUcW zFBc2>XTy_4$7*s8j=Km!tOgNBj0A#-IX9R;4WbJ`VH{{pEr#OljfF$4iC>my(-9|U~s0wIYK!%FZhGX-VV88gzms9l7r zo{#d=SbjFjue%7S7orq{EX5E?v8OQ9i&2&~%QB3z?1wKjU5*k>u|$I?QLL-4UW0Ot zqFjH471;-?_nLf= z3pcJqd8;Vz;h;AeHw(=eg|bhf>~94>1{$DK19WPD4h?ur1dQ3nlOkw51#K{>4FW2aSu!LdS&=QkcVpB_OYKcuP2}4WH z$LjK3p(`$Qh7Wd9v=!~ZpNlo&Y;grbUChWHfa_lgy-r|m zx<4!3U-4!zB)>+G>;B7cDO@jxg1(fA%XSf zZpBr`VEs5lOb~ZNzb7JOv5wq5uy7_JV8tZ_6W)!Jv5IXQ1?yug?UZ&{9r|1aD=8`M zmGDb|D(Yl6j^ps^-2WKBr1CNyMC&{+pG z)&ZS*-%uTf+4%|eCiNzfSK$qX8Zt^9g}QNzdJE)Z)G^@4VvRdPy>s8;S-i7)( z0duD7suR_Th(Af41UY5^h*Q)*s(*xJ8rH%y)rYXUL_&R7eHce)V%0laeG+Tl8S1m@ zvqIGe=qNjV1XiDj=y&LMU_Gb1^t(VO=o9b-*}L_-@#UO}`b6;e==aDk=wOYCNZ`f5 zGPzPk;ANo%-U_?}UbfSzz}CQ4kq>+t_!Qq}+Y{J>Rg3Be>kB7XiuDB&!G>5n&j@}S z{8r@Ie%E9BT@UT|RiYm2b}?&pinTh$x|%X}qlGSFoh)KaOR=VT~{vgZUdD!UK7?wHIrueqntjbnAe1NaU?=F{2}FziA_vgc_KQ_DL8+Ecum{ z67(4Mq8Ec1;OJqUhJNdA^tHc4j~PB8=udrtUIvfmC*EZE|(IQ;GSv#R8Uqt*T4 z{kU6{Q9+J5t3JMg6n`L3W$Z%#{tx8eCS58ij_mR-^*QdX@?M7?y$_Gz!d9^G_oBQ% zr*<`wRzLJ~A1s2AIC~$$d$5syTu8(cDZt?y>+s8#&??wOm zI6eKoMbA5(hISfiyqCRloM0gijPSv2c7JW?;Zl z$I%^lmP(ZUUAVgsamHqkb_R|D$tq+5|Elu3rVO!IM+!E=j}zs? zc)P6c>*Zbf))fBtRNV*Tt%aQhbOPhIg-v3B{#JOFhj7m4xL=tcsFB_*=*$uCib9-W z-V-uzVh6e6LJNF#!i1;96U&?s2f%kYzc^^*~&fJR8{$m@S9<7M?Z53)&IG|!( zNx5FCK+mo(`d^o$2X_WmE&R1O3;nfQaAXYnR^8Y`>5Cr92+@zdlK$+KT)|$+0QO1- zqE|9OT*aQqFWD2h8a%X^KZ&>Zn_@2B+v~+Md}A-+8~YW!vG<5K@UA{8-om>&BtFDjIwf}U{R~eiyr1{; z{d|D$=kNG_KFarVrF=gtLcX6BzMmB})G5?SG35JMG3EPNvGIPsTuI6|vr<>SnU$vU z&8(EkH?vZXH}e$b9QjUGI^doBiqb{Cjg_15HhxdJO}>YfJLG#`}Ps`?ZfEX-wX{K1+8+SRbxSKLkNg*STWkfiqYdCxdS19Rim*o zA^ZFh_W7gi^T*idkF(F8V4pupy;Rt9R@rmbsGT8dr$X&?shvsonQiu&gVfO^b<|;R zIl|s@0-E}eu+$lHWjpqnlhj(1T5D5l4Qj1Ptu?8&Cbib3*4orsjanOF?-wg~LU%3d zu1npusk=$)u1VcB&F9hE)Tyru^;KnWQ)O>ctI^xksk=ILS7&ciXKynA4gMCk=wYlg z9WcLxHk<5u2HEp8*z+{l^R%ehCN5r|BSHz8Dal3!v1HJ z{m&TtpK;z%qf!aA8@oy@Tw##s*&tcS%lY}XuXV}iBuRMy5E zYooy$n4s0F&}xmd9u~7677;5lSsRtWD}h&ptc~x$B9*qNM)b&Joy-tJGFdZofzJY; z36pq|$vPQloy^c8P17Px(;`h1XEJG#YP3i-;7p@{07-PwB(`J{TQZ3)nY33mVoN5m zC6m~aNo>gkwzLapNozJmYc@rM$t3FNqe>=GM;}kpXyt0Oay8;fCh;Vb7OzE%*E)&C z>*GmbTD&3RNiHqkAT8b?E#3$%-U#2Bb@%74_Z?MiM zXl>?cZECbOqqH_N#KTPDVJ2NF#yT-Z@jtnt7c9qfHz4nh$nZaNt-|O*wS8BxRsPdg^UA$n)l3uCSa;Y? zpLn-=7gavx{k8H-^y#~L7sH0B>s40XQTY*2h;uNG(iNj!x8UryUPFun+FsCWTQi-S zJZ#8+!4^5z!$;0ZD|rKK4>|7h7Oct5=zsq=&au#Q=NLLIxdj;4_U(uVyx%dur+PDC zAHD^P0^WugM|!!|byoT#VpTGF6Rbo$IokUSey`(Mruj#42R5v%Z!kvuIIP3fcms;U zINpBmW@-D#%^&0S`IFIVdj;`fBf{RH2ZXN~c=G*nx~`5Wy0@!k}Sxj#_TRn1_D^(Nj&|bw12Tnz zz7aX7St?cMBgQ+&zg^^LwZHkEGm`i2E=cZ?`Fx`7hn@!cx&^ww@kHk#?Lw`>Z0+MV zwB&F4B8&hpmmDuX>TgtPLPqjBc2W!i!_n;pr>l1Ij z7te`~eIJqfVV^G4KYC$QrzJh5{H?mwy~hfY87IsCla*IhS||UPqwKXe)WIFcAux>a z!*5w{h|GC!aP72?->Z6(YB_4+U*#Uqt6R|;0}n@AG>4KCq;<0A_tUF-3sm7>zVzRw zs%RtLK@eg+f+98`sNw?zO?-%;i_Z`O;!ANDHr)|XiEof$xEHG%g_IChfUp%CUwd;E zSJYKvN*XIkWR)z&_3}y{V}Es(x>(z+SUDBrdi9n1_~!I!N+XQuA>gZ82>4ELnNlX2 zX$!SQqPezM`==<^UeK0_mfA|~HPKpoOM6GO)&8Ze7ag_twf99QZM*h~=&XIJ?G)#0 zyS2|nH*KG`Ph6-S(7qNuwC}XHJk1k5bxqgB#rk>rdEyeihu%Z<4r~r= z7MBJ-4}32A1ilV@Eq-ClHRg)G##-ZDahdU{u~S@b95s%LE3D>LFEPOCZCx+MTQ^u^ z#lzME)?D$FHP2ckUbYrnFN#&xOV&$R^W|mh74fe18oq(O-db&~7VlZ>upX1l%U_-( zXEo-mj-1_({QU|cC=MVP;%fv`97G6-ZxAeT2q7fCMHx6KgCpRNBG@R6O03y|V#Dgu ziULbp(G_?yC;=sab(w-n5E28W<*>9|mR5+R<)F0i-FhXi;7c$HykbR6Nhv9OWiE|U zjIb0FEX6cSF^y7`U-v#0Wtn1G#!!~0;jBg|(KJgm%@WP9M3X4dg(9Rqr#&YeZ4pX0 zfYMzo4DFvNV+&=x6!b;yMG@4Np}Yeq?^nUUhEflq)ZYTXT3ZeNZS8IFYqT}s-+?v+ zsSN>YLkQZiU8J>7pc7H(#HS*z?Sy6|pc$Wm?$P#$nD#leBuOnvQcGggk{GolMlFd^ zOQO^gms*mcmT1(H2(`qdmV~G!A!_9NZrwGA9eU+M2MolV*?tBYeM8Z0H>W74fR~z4Ld`f$DN#xw zude`OQyM4@;04eST4E`uqsCjx8Oj-G6=c1SDovH9kTh4CUkTw5-}+RNI@;8$oXL?i7L?G>~@E47u7yb3LBroExPDbAoS7E}M4X=}B$BCD;_ z*5Tauv<-;=zP3@+(LU5Z6vf)d+79Tn)WTDtg}cFj1}!Xs7VZWAh4uw>RJK(m+Lu^` zyq@-z_LV4wMjn9VYwe(@uYIGTwrhv9Z$(4xuyz={Y|nDq5wvHPR;g7Yj%?K|9SyUH z>#DB8J3zK@mLAZ9qEt6@0}@NOL{7JL8}g2NN8#w*^b4@^`_J^Bf$y$&2Y;b{p{Pq; zxAY3V0x^5)Jwbcvmmq~pb$o4-J_x7K2jLX@Ah`5Fh|veZr4K@kHKZu8H?S99osz9- zdEj8+Al3o;Ch(021`Y+#av80RRw8X&X$%Ct!MFk6|H+v6GLm_wc_!#3<|X2E^A;1| zr!l9RQ}IQmKbwEXxcvh2SqQM319Uu}fF@iIoRm%@9pE3DqTAbT0sV10~)y$lcGSt4BBHx~a38~U7gVT~wk z824U_{?Jm`%?lyx2+3H;mg4?Pd3?0@2xRYJ6#NjZvaPuLt={SK$p4G2s@LZ|QGN9j z^z&!JQhf})yJs*qc)oWn!aLY&>YWbxR_|%>w;?=@G0t16)A{M#$wqand?u<=g7y3j z*0(=y!+7^~)gpMKPORFil2`SKtL)#Z<3H`cdi=g-d{|7sthtXeeGXP?!4AXTCjTh> zd9TDOg>t0$6W9y`y@67WQQJ4YEAfv$yf+V;ApfUBwi=rLEii;vFmhb5t^9OOM!h8` zI)b`!S8X}0n=*a?UQdPmn}$r17h!lb@{0`N#aX*#wR37Aibfv-xRj|T3|+xSEW?t+wV24lKjv7 zdr#pmfYQhfK041zl*RX-rsP4=S)@-(ilaNw0Ipiqb2`ertap9FBrsOZt0X3KZme@0tRCJw}$W z5%KsnW#`FJd~WH&KmHiMY>)OqCD&_aoQD zGBLX4Z)N-o)r#Gw)?Uqc0^Z5hxf(w~yc#07(!Td?{O=0fx{C+$zLH>H)3 z&^E#jNWl)+3~N;O?z6|n$c~C4tepKEyg^i0Ptp%ssbSZsv}-ilH9GAYjdqRBs|I-0 z0IwS4$g#nZW0NDtA$mYtybqiA5$1h3ybp)>;qpEL9IG=pR%ddoE=12zi+5&YW@mTc zJvwj&>AUW7+`a)v>>F^bKEqM^2CyQFF@HhMVZfU8n8Q#;ul2JzCSSra`F0$W2fBmM zmSgfUj>%gblMi!D-r|^i7mmrR^kdQKm)?zDE8RFgZ_y*Y8%OEG^jGP|v3iqZ^<6kt z-2>QJ}pQn%_*w~DA+MbxdP)U5{8tupGCMcwK|@A@<8q0oTd^=HyUp#i-T z8qm95&Kc^5c|~%bNn83RG@w^PTY4pw(I25P{SnIOiO`mw2o^mN!t|@}M(?0*^h)SV zuY~qByn|GF)Q9Pn(4JliCcP5E^h!93UJ32#mC%J=37viKAl8cWw8yl^L=z$cY3)hv zDWMP-ND~)G6BkGm7idFVpgwVda^eE@i3>!C3!F<_pgwVdMyzQqi3@1N1sV|%C?_It zE)fA)1L5^RM4*C*z&S(&Du@V_5)r5%A`mAcP|CX6kcdEQA_ApE1X>Xhs30PcARUJ)|5wod zkJJ8-)3ZY-3UC2YfD4EMoKF;>D^Y;+i2`(`-$xgEd~~75M+4$#J?Qaa(bpqPFRV_) z3+fRsh!ZI&CsL3mQqVE*ZQxtcgq~X6=nvAF{va0pL3|t`O0SR*(S#^{LqeRb;L^@#c6? zIghBZImP@vc!_sJ=mXN0J|J!B0}>+wV$c&LMjXVTKS+#dh(WIqivMnAM}^h4`LPZJ+!NfT#@)9b_{+L9*P5~l}>Ma-pwUTWQl zyj0Lvts8ySy3s$yq<@M@|CG-3QtL!7wNCU>>qL*0)9A5s22q>V^jqmbzm>Cy;IyFk z%2~v5TF{53J<*&1vD+ZA+n*D={W-DQ9>i{YSmUhQf$U1er#lg!6cOAu_;SYcq6rb7 z91)*JM0qNR@|;7IryfzB3Zgs}M0r{f<*6XbQ%tY9ZhSWv@!i~j@8&YTn=QVZI}!cq zX#d^*yExB&)?NrIF`#l{KzU+7aeCR{`--8R68*7O+j}sVuq%2*Bk$Tae;s1RQMc>L%zV)ueC*S7qr1JO1Y`lk^lIPKVmIsx8R!a zov+@itar%a5%hmK+E|_JPvY?058;|09gCbe#*y(JtiAs~zbDaw|G#YX3&JWIK#Sx& zuP>qPa*x*IfBqSK41n`C_5hPxNMERX{ObUPT#s_Z8kC^-a21T*g*o%@!2{+FU^QR< zC-12CIDcUlQ~{O49qg#O7FGZtHd9lzf^VfKl2YX=tEo+SC?K+Sm9thxXD#% zUsX(UxhkW#sByI(Z>CeDNhB0SP3j{N#Xn={`=@UFfRC4 zZSbc4aN2AWu>uOv$UV@a%{b#Jq*)0Za2n2^_rqsb9|f}i5%lo0Y6&^n)}h@&das?_ z7v;Efh}GeoFYuFXL@`&f`Lr6PI6nUWi+$wP7kFaneKdp>_-yh-XP2Ug)`-mkxA1UB_ z1=VR*b0-_ssE+YJ!vUK|nE+LiGxp@HzE8RS#^L|;)qG!{A4`=!omg=PK9yg>%V@X6 z3&CwbA3(uOp36i(&fkAsyeU?}y0c)_b<{iQo$>v+^D)AEq5gB&a~Hvy8v)DhE?8`L z!&18^ur#nb@HQ;2Zv%%h9*eP9<7(JSHyU>ucNr6miN*}$VdD|wPsXFhe;YH6KO3`* zImXk*0^?a@q4Aut$avmZZ2Z$$V!U81HC{B987~>jjhBrT#w*53<85P&@s9CGHG3zm6$)>HqI4o44vQE^ux;9$Hu4Q~ zF8pz9+L?~bL*XJ9CqO>Ym^fiu zK&34jLk^XLR$`{QfxI~nqs`LNh;gJ>;YhCztgb$>x>JeOHGs!Q5U891|Bw2>?;P-Q zrcHg$v?(TfcM50P6cfX%&zUw7$16r0xiSfSH^9{;s#lMwUY@94j;LN8qIyL{^-759 zm9jj1ud%j7)XpWM)|!Y~dm?J>h^TcWqSk?k+BrnjIuKDikBC~7-YIe7YBAz!8RBXd zy;II2x|XGPicO3yLyRp+jLjs*rVwLG5o0rnvAM+9Ok!*yVr(WcwjjMz&L+|pBGP6O zX-gAnGl{gBMA{NW+CoIyOd@S(5^3u~q%A{ortKZMAYgN zQOgrWJDn(6eWGZmbGA=0v9$V}?NiLzKE=e<>JwKxow!;FakWz7YV|qirsA3{v^@)VF=M1P~&V4H8tfyikVJRYEA$rdEcvyybSO?-^or#CF;rys#VqmAT zC5jLOJC*HGgc#VV#K0PGmXyD4M}4+X8MaVuh=kSWjHzPIm@4LssbbEUD&~x-V&Y`= zIb*7rGp33;W2%@lriwXZs+cI+DMZmu;f$$bL$1?Q%yoE*Ib*7r=vsZYXl;nDWr(iT zC%V>#=vo`1Yi)?GWr(iT=d7w?&Z;Wrtg5=4RaKX$TRoy~NuqA`h`QAy>Xs+!mLuv` zhp3xF)UAl9TM1FOhD6;O5_Kyf>ejH}Wh7VfDJAMwO1v#hq%BO0ElhMRM0BkK5w#Fe zv=C9W5RtPGv9SV z5iFgkl|j79AX3$qNY%MSs#+7NYE7i7J&~&RM5;OxsXB*9)pZ+NXH7U;tQf0C&63sDygIZ9Yhqy(AJz(b%IKqhh*jQp zqWAM2_TPjJxzhVPdPWEE{|)*`+t90)t2umlazFVW>u;U-xLj%QWSiH`KY}~Lw@c8g ze+&Jy4`3VNYa;O7*nYC}j+f&py(@K?0(*CmwK zfoy^|kpBa5?cc!`_yyLExehB(F7_@0T_cax-0+OA7OZ>BwUS4weQLn}9lx11ETWiy zuD?=WfnQVb6Z;%_ycnJ@f9C26V{qp0kYlg=W5Ryi?^8J|=VaS4-;YbY6mWn~vYT-i^>NX~F;f#P(9v*(dt1o>6h4qu-ZR z&)t9pRKRLwEUut=(m5zq>HKgR__1JVp3v&6N~7j~ZL729k)OgB^z10-3(;fXr<_$C zr)pi=YDpDWJ6C@kwW@(NeOq%@656%*Yv7ty$)Di=r{~%6C)f6PBwohduiyS{aNLHUUf6r+ckMz?tF!Dwp$BzCXjtgR(D2Yrp%J0qghrwtbu0Q$TV%fpy{0ci`(=*^ zy_|Q^H+ddCkR|Y#Rz+*trD58lVOog}Z9<2(pF^w9!81J$|NbX2e;`a7$)6{n(H08Q zA3&#tqti->&?fOc@*P?o4(*Kyp1K>bie7pz&`aP|@360LvVR|9|2~X-I7=wVi&jEK zezXDK)@%!2`owGO(dx*b@mNJ?7W=9G2(QH+ zs?9#A%|2+DeNcye&@lU;4*Q@k`=BoSpb_>#qwIr5*}n|4|L3r`Cq2<$0NS96mx%|o zq=!vC;sFha2b@Jbpf2%%Q<(2X!~;r+2jp1>rNjeHB_0qX9*`s+kR=|_f_Q*KJU}NB zkRcM#f=ED^NI-%}K!8YqLL?wTBp^s6Ai*;B=cy!!1T-fSP{vaC=cy!!1T-ZQkRTF} zpf+eV=BXrz1f+-rm_!0v5eaBbB%l?MfYw9;(nJF4)90oM@qqgDxoJY5n-comln@~} zn|66i+U2FR%Zq52ms00SX_uGME|1YJ57RDhLAyLmU3967Htq5-E%MW8k^8oIIc@P4 z)Kr_ccthIaS=!r!0#o2%s=UKEk&!WXymlkJTwg^SEIP2fqs5t|#o3Y;r$bvaLt9g)t(l;$ z8KAAH(AG@Q)=bdWY)V@*!L~-@Y?w0oNtCeNIg>VJIc>@ov?|h2YoeDOw1eUjJ7kAMZyTGq)OKxG^sy6mLj1zc*cs8+Ze}+Vm)R}s z7NVcs(rzg(x6iT95&i9Ub~|x}-NEi42H0KguHs7jLi<87(7waILtJG~uqTK?_PzGK z;+OVI_DkYwdxgD1Tw}j#zls&TRPj8}-X?fo%e8+S!;7*FuvocPSaZ=4p$zMTb%uv! z4}@}}=4awP{Y$Jbb}d31tOhn1K9>?lZ^zYr+hZl)Td~I2ZxPPJ7uu&_jj>n78hpoY zEkcF(7s5s2J%pa(eX&toEH)urB0dsZL~pShp^w<7M8q%H%HGU&^cJ>`qm>(#8^x{4 zOUg@P4A9R{#czRo-Yjmz3SgtfLi+eEQg6emxzEF+?;f#Oy;r?gEK#SZQ^X7E{p$T< zDObmRQGHZ>RJ^4AUH!XQuFhAV5ihHY)qjdt)ECv4#jEP;>g!^ax>{W=-cr}8{}QX! z_tf{r8g;9>O}wk_RCkGgsh_EziTBjK>Rz!y{Zc(3-d7K*2gQf#A=ML`HC0o^4lSSs z#HX66nPMl3*cH39q?Q$*Yjw1GV!u|Zm5Q&mhFU{$P`gaKOnjqVu3at;Y1e4iif^?W zv>U{C+RfU{;)wQJ?YH76kk;9vQv0j+SA{bV6+@e+%~MS68SNP*gt@REE0%2Yl-7D! z4=d;BF+Hxd(NlU#X{TrOta7eiq!%e2^i%W_rK8?LKU?XdpR2c5E=0T7UHLiMzn)58 zy|><5xk8R0M?G5TuHsr%*1Y3f0&oc6MM2tH}+ zHDPWr-`Aq%2j*5S4zIIMw4Axq{9G%NK4#jfSOcv@YlPOTq1INec&4?-if1jf4p`-^ zwRXN-Ust;j-eu=&z2RMUq1Gq#^H7C$nOwzByBz(%E3~Ua14E;=Yoz~}HV&R+(IW#>qUHg6Lq0mFxROw5m{UP*P=q>G` z&^w{E+JD2NY`ykp_>z67%?^DO`bhhm^d-}tl)hxz9P}-BY4bv#g$`=}urgKy?FF=y z?X*=^d#jhW5pCoE?F(z5b-i|2wvoDlHgcMtv8G$I^d{D9>m~ghw12PYzd+0PhTc!M zdHNM-^VaDDr9YT{H88br^lRY#bwt0(?qYY*Z?-S9FVjca{q6qxE%qRLkUrYJ#=b_s z)gEjQ*2mb_+1Kg6wQsa<)W_N*>=F8H_V4T|`Z)VO`vHACe7payPXrRTSf3<&Yx?hi zyS=IZ-hRt|OaCL*3KR-f$Wfj=?tgY+|EK&vint4F#9sn_d0}6sU6qF9|4)9$-`oF5 z8uFZZ$6debo@?GOJTa8j$Hl9<-bTo4{IZKU1%5639m44@_< zW*khBXDO3Orv|>zr@1AOdZETnxzjUL7HSol>I`y*hT6GrL`Q@=ITM_5&V9~gQ~9_PYbZMR#=RbT@^DM|Qj8 zL!;a^*1XWz(4E%8h;XO4k2A~(O^Uki)u@rv-2>Ed>^ z`dfpn!PZc>4(_in_D8rYq9fcX)@aoI3C<2{vUQ)eJhIt(FtW^g6n8P(deWMQ;|tw6 z_K?UjcVu{_wFGyy+*%&(j{D1_ZCGusi|mf}v^H8>oc593)(&frwck2q>sF;ziAmj- z9d+k~=SGIxX@oj+}pS2rmvVbEkw?I$Of4BBk!*;kD5b;SJEH-r>#R?M@$e zQ+RiHpJPS@wC0GTI{h8fah+sDL18aQmJx z^g5xmX50a&<(n9;c83(gu!3Y0+U$|h+0h9n50T+j$J{YK=gx7*M}oBi98P3#C$hDl zR%q{M7XJO#|9CpX#qp}NqZ8aYQDn3`Us7_5+@bPh#%@jO7WH}L)+Ny1fdgJ%zrOj z5IH_nME;%7JM!b9U!-4T;7giE+Lr zPpUHC#0W~hBK-^Lf0k6A%cB`e29Zyb-%LJEzAfn) zq-#lMNvip|^k0JKwCx0b*U*D(+3iD9ChVr*ayO36pvZS;DC(<6Iw@Ip9C#l+u)UR>V$un2g9OJMCDbyeJ8A_->`o9?S7o>NQ z-bZ>r>0U`SzoZUP!m?9Gk-uG1rINg#lj|vIM9ODZp61c>NLP_kqMRdn?IqIrr2inb zCDrGVXU=QXF0G-IsD9~RPTqg&UrAnhkP^03YAN~tq?eKYjqMN?tW6sVk}Ynw0qlR7<9x zAf@K00m*CUlQNf7whSs$Q_p71-;h$Tl&0kUw&+aBtJG~ZDtWDh5{q%(B>yZa&(io5 z8Z}2_E1@;#(SD5oI{AyqXUY5b!#G+@O0*p1DN;V2?(4jN|0?B+Nbe+_Eve>f(Ib@b zDvB>}AtlOk%Da)CLdu$@e!`=lQsV2wNXcs~YmFtPUBja{l1`OW93mel?L^v|)W4Rm z;WtQ$@;AyaB0ZOqC8VP$36p<_^nOY%A^n4-T7di}^3;DdO-Xx6b-%S?i3F&cJ<}bA#sw+Xp)by9B!iy9F-@{w&x%cvgBchnYY3$a#hrM3oseV+Q?V!b*?yIna;yHlH}+Sbas}q14w^#25UVN!~zr={urzA$K&I!~B z)K{Ml{4DS@_1VBb0t?iI5*=0-OLSQMC(z+f)fa&a?^WLbE__&B6Yzqrx;~f)Cei?7&uD)7gxcWPx#-YagT8ZT9 z?*hr~roRvL_D}j=iMIwihhDY*6}ZrP&)O912gLJeaG=CGgCiu$8T^ezIfEl5rWw3h zVw%BGHbU?gAe#>aN85k1pA6n*KW+a#csG#E7lM<3X}%SlDp%9S=!L-Ch#&v;F2pJP z7bUSju+~q3*TiBVZdpkyhe@hT_MQ(;PYrdN#TKN-r8XwFJ1tZ5QcE%i(>=2HrPd|J z;QzJMj?|v$rreBFWjdWMNp;U{a@sf@(>>BXoUW<;=>f?n(!-n{PA{i#YH)gHdQN(2 z`i=A^XFx{e=Vs!`&6&oTdXdS_)tRzPr(8*LnKLAvc7{14(~I23&X{~zc2K@7Gdy!= zY;)#LXMAEsVnu9iW_o6BzAQH_v(}mDOv&ua>`Tsy&dBB?gCdiYlcH9(i!;rc;mnLo zjx5Oz&W_7Y$ljM5;yj+}pNppYr~2dG=Hxcz+C*ljONv})ey*dl$XOcg>a57k$ON4? zoHfq++?Y&RdcL#C*%lj~8JK8PRGz*%Gc`BU*_nIX*_-c|Tf}EPkXw=Jk}h!$r}ns_ zs7r2BGVG2@4Z`3;*p0{MxmmZKTbkROTa+D?+UPdU_jb$NR*^$)yS&I;pSj-c8^D*q!*QRlI=2ckwep zMp%~_n;DxjBOBwzxgn7)axdC3vLmu5w=FjyeIPqHvOjVtQW@2wRx}z-N9#mOqK%@> zqAjzNqiv!cqg|s1qCKL$qJ5(SQnRC1XI4drB!kgmnO4z}(UJL9`AN|+$==cN(ZhI# zDbZ<2eMW9+wm2iAGoz2^7DeYo=jS^`7e$vAshMCD`kHd1d-G$XZ=?q#)<@Sw*XOg* zP0?-X0hzMs&gfoT?Ql$FlgWeGL)k;IV19G#iC8#4Fcwdi<~OJM$I4>alp3oSI~Xg? zm&F=qm&eMo>oU{xi(@Nu(O9ckJA_WL1?e8K#VIp(L9R|#ja9^Y$NI$v=4Paa#IB89 z9~+)q6dM&Ai*xVHF3(JlJ%KYP#b(8(#-_&}!T%HaS+TjX1=;0@u{gF2X%xp+##Y7F z#`eWFWXp5u*yh;w*lz3{%vQ#Zq2mxw~u#;chAp__l)<6_m2;X4~`FwkBE6Tj{$zY!ZhcXg_`>*-_>$br`11H`@zwEl`Bk}1@s05<@g4C! zsR{A@@k8;-gr2Yx(cFMUI#DN4l4z7@1}$!xXp_rSdrV5cq6eUu|BaW(>Sp$Hzct$ zy)>~maUgLRA3_c$!zrnO@k}t8P1egaPL>vRNj6TFC0jw-DU(fJfVQ9_^;%K)Wbb6Z zs0$x7pC7mYi9eWdZzlM`WLlNPdh%OhNh>b2Bl}zkXQ579L_^~ z{=Ksck{LL^R!9v+x-(KE5Jux&GA=bCH92)3!h?mdF|{YPG4*I_Ho}uK6!k3XkGIXd z%=X$LwIsC=?;t7NT_VN=NZl z^|v~OdzzUpA;-H(H%d1vYEnDoHl$E3%nhars2=F^gwVaoTy#1lw-*)(X(%wyqk^c4KC6g>t%EW-c% z8heZI_VR-~z9PMb;SJFB2nW6wHl+_!wvE*1Wvps$XL|3kvks$&uqh)l^)kB=_Q^WN z5YL1&@l3WL-<`qxu&7T_>)IhxCigRws-&4#axc><)6SPm-anSPAXAYYS~FyN=jLYz zA@t7<%Jj?jNB?J_>;WNMi~kda>nXi6GYW6JJN>KT3X^i^v7oOsEAt3`47p~RCo*$0 z3lJ7(mhmdQ4zJcf+ds21v#O|l?T}ep)IPH|v!Pll`ON0({gZR3bNdSUcQA7V?};Q@ zAC=V1y4)|$%Fr;IC-wOz+45}bZ2N4NY;z{%OkxoO!43*o+FT$M!rKUxU0v$L~LX6I!W;+?o8yF7m|`&xE&c3pN|t|YrL zyCu6LyC*jUZ|wc}Rp#`Zm5b)mxjMO$T%%mGT+3XWA~)AD*EQE8*XsnKZ|?XoAb0X` zb?(GrNbdMBGB+$Y^4|&*a}#r8a^pdNI82fKtlW&B6lUfg&&@eWn4ddwSd?3uTY>P# zv6go|>fg3P*ohwWf!yJ|$OrRbgbn$4KAW$1ER@QgGx}!j@}2S*|fHIi39^{JF7 zUsB$Papp@JJeRZ`o z%yWlIUK6BclB!pc_fz|faVAl6iR85~CCn@3G4e?sWopU_$t%mHTzP@=B1&dRDi%}z z5$QjqME#lM#W$36kW?GOv#z7$VbU`wpU8CHlDwLy{Bg>4rgJH2Ige7Jc$CmySARwM z0H*L2`AbRfkyK;;C`>`2T$#(556Yv;U&*hPRI5+giIOi!r!x-AS6#t0OC%Mq%cCkW z1BE3nzL0Y5Y|5|Xxi>O?lJplm`jnJw-%4KZ$(VkgPhgyfDe29aXOTZmQsprD-;kdp zsh~vhQ;SK7mL|PIQq@oSV)8ty4kSNZQsqzNsR?2~`D;mC9;K!!d&yr-@9mJ3Yj^VK5lYgMs(VSPy(;BuF(r3Os&ysrr#xMrtIm-UojR;B1oW&+17!oV1uRTk_~WNwprNt4I%1&J>heC9mwFWVKIu#m-FO zM)FKw8%F+3($zY71mH?2IXx@&tM9_WoqwJa+DI2l5a?Fk#c<; zX`GTpj9EdRI;QTHyv8(@d6fIPp-{e(l68{m)F15^N{L=1dA*27*~+OC$=}U56G`tP zy_xh1pUODOmy%bGknZPMXHxzhCErP2OOfA3$~U-LkNn4sf41b+hspcp)rJzDr8cAd zJV}*ndDeJJt|g_;s0NRoEvYytHNhIdG9QJy3J9OYk= zHl>7Zl(LkPnUtFtM2fJYx8_3wvmzTzKkA?3Fvl2l{9iKCKN*lMY)7ixlW9+asmf8)`|NZU}t7EgJYlG7M7 zD5>yUiAyM{!=tQ&>K`Pp`F-q7yw6`O! zHC&mAFW;+SYa;pBxbt0>NQeKnC zOaUQ(m?2P0z6Ja8C)1MgC4aK>s^V0|lX0u!V@3eJ3n(xf79YUC>;N4<3%@9SY5eLO z_bb7^{59fF@t)TQV*IkBq?Hp%?*+p*<=?WRABVHAI8;NVZRe4z7(s8^O!t35M$|z_mw=?yGT+okMwCurjy=9 z`Z8&2(z8g9ND5uRmnqeQ`bzM>#9Y49gJ%Sr2Ac<41kVhf6+An5POvTJ_H~4o^a%bu zSP{G^*fV%>uvhSsVDI3i!9KxX1p8vX-yZ1CSHT0puY(7J-vo~Yj|MA)o+0pgMAgtR zH7f|6GL4X788&7CMvSPO1qj_LHcmB4jQU2Y(ZFbEoMtpKPB$9csvWQm+k`K^V@K?` zorEWT1G}l++%B`vw9kSMLTkIN-QGUm?hb$ZyX=YfB>O4&)GxJ{K~q;ktNZ<1o(WgO zGePRq6fm8@Ics&d34PR9tbVrd(cWf z8?)xl!%V#Q)d$p>N;CB@>R*-CSXKW?rL8(g-J!HocWMolo3-<_&dNgVe673kympax zk@BK;vDQafruEhOD=W1D+5qKEZJ;(#S*2a44OQOKhH1l;ceLT!aAmFb8|^pByV@vi zl(J46t&LIs1%HMG$_DAlpzNa$LwEWx^ra8OP<^kySG_^6)GO6t^k=w{{tUwdodaFe z(ePwgrjCIp!z=1-@MPEu?=Q@AQ}3of!#(t8_&xm@?x!ciU+BZ|q@2~JJ|$R-tjVu6O3A+|1XmYm-e_&|C)1U5-;hrmAR&k*=h&d~}Sk)8~JN;x|V zlc6y?D`;W{r%)dMk>8XbIsRkk|EG^n`;q&Zf#Wkz5@!zNHGlK5U-erAerb*08{kj& zL%is4|931-;an-FOzz9`k4uxsS3oX*wbL)m#wyIf8W#8o^R3u&y(XzLRUa4(CHtj& zg_9U>9S_L1IK3C+tTV$6Q$sVm!%Z;4Iv>6qYr^H>)~RG-XW~G(eKP2*2zN=wF^W1j zz9l^++&$SYRxjK$+|!AM`*8GhEJjQpNiK-4kYi=ZwW-PB{+a9LC}?<4cyMZ5{86`e ze0F$fctpA+c?5nKl^6wWl4_EvNHqzMPL)T;hsR|e!Pw{M*pbwT=%RSf)P2dtnYkE) zoR?Z2o)DfKzAv>g{9yRe@N79Am$ux4>5_EIh#7t|JTJU3{ve(}`oHuFFVE~w_YJ>> zQT%%8XsR;2I=n8ThBv08$!vOBcuRCx+6wQ07sR6Qp78$Y#Pr1UqVS>g(r{&ZO?*o% z>*$V!G3S~@M`rqePL zciO~yI~`;FF!Iz2|jC97t#>S2~Iq1xH7R9$@+Br*;otzcEr%dLF_zq`NdPrusvkhbHBa>sDoz7n8fO8nW09#y< z9P0*CeKNaKuJnnCrjzyP6*Cv()&t#A+;v%GPimdpSbD~|?P3euPO1ITXv9sfaxaLO zZbfXLyIXq4xC60wZDy`}JyP244oCTxN6h4Q=?{|{;ZA~Qj11FJ9%|ZxPsoBuljN%S zWI48)NK4b`yZ0;bnMNJ2m$EMXOKR8WUOL`9Yu7zYtq184}C1O_k&BBC;Yh!}Qc-(-_rc6^8q zgR$nmf89`a{K7%hoDFl)|(&4TqvUy_gh17NT0@udY^#9i?82@df;9UQ|97Oe3TizUop z0f)su&gQTLC)g~OA2=+`V3|t%6)+?Iop{LKs=OOqk`jzRv!u}YFtG7TxR=84yG07% z$Jh)RnA%Dk({Q_Cx2V1b1(J$MTtyP5~@Vip#7Six@LXPjc2xIm|Zy@R>nO2n98L3uYZ zsNzD0$NEe5;rBIxWksy33B<5MpE8+oNtkoB8QdyjSApY894j`j28k&}9H|f490}(% zA{AmTMcicDc_$b8IdFnCbC{At5fg%|3Rp|vEhT2zCe$b~D|A!D7qP)ZvJIF>%t5*@ z%r@%JETdQ~1moyZX5b~R*bJp;9EVZb#f&9{B>GAYXSPx-Z|MgHQ?$!wGpz!9>GFnH zPP;E*c3vW!7*FrRd{o>YoxqzX!hkvl7L%)(wUkPXC5(=mz%*uTM&n1wy(4%=*sbzAeGADN8{$0*QLN#C z?{CU&drqM#hgakD_cK1ixSOvYTt*bLb-|E zsf^z+enIHaoRc*D6ylub@Meq+_-a2!$#HJxoZC7;uaWyw`i{0%oI1{TJ;OMF?>)ut zt&HCgmZ1AMhp)cH$ogBh2BhNpDna)#opLBY;XK3E7`Zf88qakx%Z zGCj-Im{hk@xHv`VV2Qb!>V+t&kMCN;IEGMJ?A}55if;)WH7Ue#4TpctX>x0kyD20_ z+j0fRVcDwt`L3#j>RJx}g7JSCc}`MJX7_wfa{)ig);g-p;kIs>o7|2KbX5&ycP_j6 zS+>^Zg%2s**4-3?InK?5lG}siIZwHbv4}$c_cc@HXPm3foX@sg-jOV+NF&FQ(aD&M<~ z-JAL9c-kMx!DU3BK=HTH)e9_1*^FbhVjM(R>n9P@L+Xq{U55r-6Ud|UpheAl}i zpZgza|Kj#?%=(0aOC-3JVuv)!LlR>X#tg#$LmIj)6SarR1-&|wDr znrMArVfUGr(E3%0e3zf|P@nV6TBMF16du+9zMb9aget&pt`WuUU){pt7wHG96bhHz zv&jMMeumM0r@zkb^)~X;=dwGjNzCrvjQM=EfZcNl)peZDM(nP~$o+|}ZLI9ybvX)m zRI!ocn;et1kd?vinvB;FO4du3e`EJa4qwZ6T}DTlV@7K#a}S`}(Y@kJPR-9)o>OC~ zDqDK>D8x~Qu155j*J7uH=Bgh+%vHL zeGBxRTVbcqj-o4coBKhVd1yGE5+^7L$C~70#d+~! zP17TSB3Y!1y4ZvCHgN~mf!jlSx;u2F9}$DZFp(fsW}AD`#4TBwccNJL;AO@u;qjRu^GbPVRud zj*g{4M9gz^DGm0cG_y;Ec|CF+IsGoe{**#qX)vGa<>@FK6y>(VhlfM@o;(W%P$=^bWB9d(%^ND>4;exY~+}Sn3u-^-SSbQQeppm$IAQxm&XE<{JPR0`WA&A z0&ElX7K$;Ak$Ro7_}x2&3%!pUJ%k6p;4%m+hhHY0;-dJZIl8YB-vQPN+@z;3(L)fX zFeU;Oe3jW2Y}-DGUpHO57QGtT)zAaced&xo#tMw((F2P+Pz7qFnyBWfHEJhz6#iJ9c4+Jc zTovV_r@8Tu{#bX8^Y@PP_lWg78?zs0`=RGaL!VY3sknr2&I{WoZ5umNbGU0%*xnbF z4&ob0asKFh(Dmi9*WL6sh~yjB-C1$|C9!@}#rZqM`8UM+J)tN+UJz&RonJMpNZ-(Fw3@sM`G_zjBYP@Hz$sYx=#MdvHps;MEOyUio@glhvWSJ zi1VL`^Ph_I+odUPzZI#y+3iA!H}H<{A-@v6oE6QQE}!SWT{T>_Tp6yquKKQqu12oL zuHU(Cay4=N-gU%v6l|$8U`?F{d+O9hyeX&aGuOXdpBo|YrpkdcMJ%c^hS%^Jej{K6 zjs5NsW^FUwY-kDWr0&8F>K1lR_Zu2}rYF0;!=C94uy5&&*dzT`>{)uZ)dstkcChZp zzNKBUb7?Q^UE0^`Z{=g>(jnGRYdH2yABDZrcVLh7*HNCX7=v^d+0G#-O8Cb3QIz!?{Rz}XhJ<4lXY z(Yv;mZDd>7PG-t`WtMD@-nNU(mj!Zw94P-R2g$*5h_V@n;C2TG#f#-Eze=k=$eNMmAbb6g0r{yf;EUVAz3r^vbPK9mTwbSKv zV{YbKeNKPpEa$w&nc#Ff4eatv@0z~y2AtE;f^*bM_LdLHhtd1z%Dm|E$`@pjTq#$} zHFCZ7>j0Lz2Izsh2;*1!jkJdCgP|Q|B;I~@npDOgPcbe%+zSRX(u$-;DbwFCktU_m z3Q|h|{xT`rX;G@bR30VzQHgH{+ZK?66b{tQN=W)jWMJ14_2;eeZ>M`@wX_m>BPj+T z(YE*oy7E*prqO4e_IO94ZQALFU}wT~x@u1-j~;|}waUVm(A6qM62^TU!luhrdrC6i zxAzqrdjDQ&O_y9Jsd#gCj50m0+LO{Sn(P!~vai~+s$fjsInMOHYEP?*@l}_L%tKe< zc?z=%DbApNUB9Mx>HYeEenaomf7QG7-}D~6LoSdDAe{JFGr42@EiZRJv#MZ)bG%j3AIOhGb=n3Ck*Hv`T)LxuB>0Pd&{;+r9(LVD@l(= z56E9}Poyx*lMF`nas9cRC+F)g^f&sX{!*XPU+I6zNpiBBBB#n}_)eNBXUW-ej-0Dc z>#y}0IYUB+{|erO_LKSTe))HM{G0t3c=FG0EkFOgqA(A2o$RCM>jiqD?5F3&jEaWD zjfh5KG_*!<(cAQPy;iT+>+}Y_NpIG#=#6@-UZfZ6B^Wh5iP6-f`X#+oFVoBQ3XEM| z)~obt)UgL+9h@$T@lFm#9l0`BXpDLCFlc&876})|I@?5u#ya9!BKC-CG~yA}^%Ol9 zU#AN1r0ROE?5(Hk8G5FEQReDtr5-iT(zEp(JdMX%_IL^@x{xEx?;$V!kc&KtFCu<^ zGCx06&(ljVUSlcgxq5Zv$tcyd7)eFOk5OY-ITqtr8f~qW>*RX5LB1k4%1!vT-y*kS zrI+)Al1(j^6w4_rrRY56K>=haa^}Y9ut@k=N=cl{bk1c>mQpRwYlbbQlE$&|V@uQ* zq#Kb4WXWSpNOxXwYoPk_<=7ja_4Y-^4+*IB`uC(l^(n( z8s>niV9uvH+GS15*w)7UbREo}G~jvOrkD?Y5Z`^-n5E9a+-*O685LlDdmv`GM`6d! zXT)gixH*Q$|E2s2iEiiIvZB6>_)CFW+Ir}t&^H2F6-r>g1=@z+0yW@IF|If6Hd-0? z7;TKUMmr@7|ezhZ<4 zlwOLOmrK=HW~?>V8S9N#jE%-7W3#a(_Boy;Pl_kiQ^`}=Q^j+wr>dtKJkWZtU)eIFgT?p#yDo6JbuXP zdQ5-aWweJp|7dg;Wl;l9il8yom@Pt()H0E3tTDETO2#&07i7E7*oTwf-ZPGfhLBoF z+=3JR8j4%_B+fffLywD=eD3C*kYbW(=Shb2GCk>@x;WKsxwRZKj`paYMg&iDomKpm z@_|$C1fAn1piMPbcxZ=L;iVJ4gby`*y$C=mogsssMo&?jPcqCvZ9XaLux#p~9+!z5 zAe&v{M%31R(Tb(g#yDY|5ceDBjq{?D+v#?S2T*4r(V6Acg-*P#P)3}Ed;;xyYxtNi~^u3x8ZDy-)w{q(Vjm&bE_Y$Q>3}>W56h3`F?mv+!OD|TZdFbNRFXHKVg%aKc><)&4Lh0HAvz^<3y|8|-L~rL?z=y#wP@>Se zA2?La!dLcJU^6I`?xavC+X;r|;v;q;g`Hq9g{S2pJZ ztC$Ob)y+k~baOGVhWQe(rnwZDVJ-vK!7r9tPa*6UnBgpk(Q!lYIB>uy+yU@cs8uxr z_6F|+`9VC56^w|hCtNhwrolmpgf&14-SFK&=fYROOxfGmwE@3(-PtjN#wFHzYo+xv zPQhDkt+Ccx>rBHmO}FVX%bMlPYrry*xa$Ehao)wQ|DUQ+81IyHj{OBwn9@`x=)I=X zOvGI-`8JUHHHALPD*0)+rg#J;cmzcwBp1%mwC|&pNOI}O)A{P(!&eo)q%ilVJICc% MBJ=^|GbTs>0dZJj*Z=?k literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/fonts/Lato-Regular.ttf b/docs/build/html/_static/fonts/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0f3d0f837d24834b9b5b0a6b735459c56f5e75c3 GIT binary patch literal 656568 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 w-9m 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

{e2O2{s7^`lE9GCT@J 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

!ump=_U%Ldm`W#$)AJp;TW26LE?`p+s$fwQ%}C zp)_rQwQ)K?p(H1P_0%F@igOy6s+I!NoUefC&M9C6wFH=<76ThvZvvY*{{a5nItcs^ z>kx2;>^F8t-t)kF7Gu}(Iq=tW!9}md%KUEJpnCxN3f`xq*oQn#=g@kB*o}-q`$^)u zTpul{CH5unLL2Ic74wJvRzy#OTE(FEdNF$;R^!fr?71;>)f!{+DR-watweX5F|jN0 zl9&muSz|1A6WxtsCb^r%tmVEeX0p3U%-Zf2G3&Tn#Y}Oxi<#=~5Hro)C1$$2Tg(i1 zkC+W{b_4b2&Ik5Fe=+qp2AGSJ6R0P(+SHH>M9x-#M)B?fV1kR9L!J!9lUzgVTCSmN zvTLYZ+g%2%<1PoLxGRCF?kZrKy9Suwpc>V@>NRhS^5;=+bbGr4@4Kpm)dO z{EBH+&4K-J?gaTkIE@{QQd@7>%vzhq8I)4LCWxUI<_!ubLTX^8>@UzIf&Q+01m+pO z#M|a=@HTocdz)~x;1+MIYrC%NxIwp~Tgm+yPMI)%^(ao_yn}lWK2{UJ?~HNAg5N3Q z>&@-kkZvcJUF8N`?OJYi{3^(Q0h)15VT|%FpBmmN;h;!3D8nHIaUZGwJF`=4Y`Qdc adHZ(BTZNev*8X&ls2nqVA4NVRa`gZB#}q{X literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/fonts/RobotoSlab-Bold.ttf b/docs/build/html/_static/fonts/RobotoSlab-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..df5d1df2730433013f41bf2698cbe249b075aa02 GIT binary patch literal 170616 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 literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/fonts/fontawesome-webfont.eot b/docs/build/html/_static/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..c7b00d2ba8896fd29de846b19f89fcf0d56ad152 GIT binary patch literal 76518 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%0DyT{kunD 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⋙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 z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/_static/fonts/fontawesome-webfont.ttf b/docs/build/html/_static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f221e50a2ef60738ba30932d834530cdfe55cb3e GIT binary patch literal 152796 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

=v_rA!CPE#mM^4@)}X7qf;At+v)G*FZd&; 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 ALjV8( literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/fonts/fontawesome-webfont.woff b/docs/build/html/_static/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..6e7483cf61b490c08ed644d6ef802c69472eb247 GIT binary patch literal 90412 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%0Ded40&XED0GYFoIh+AV*?9!MR5pBW?X_8Bp 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 IH>08b4`|GD*#H0l literal 0 HcmV?d00001 diff --git a/docs/build/html/_static/jquery-3.1.0.js b/docs/build/html/_static/jquery-3.1.0.js new file mode 100644 index 00000000..f2fc2747 --- /dev/null +++ b/docs/build/html/_static/jquery-3.1.0.js @@ -0,0 +1,10074 @@ +/*eslint-disable no-unused-vars*/ +/*! + * jQuery JavaScript Library v3.1.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2016-07-07T21:44Z + */ +( 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 document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +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 = {}; + + + + function DOMEval( code, doc ) { + doc = doc || document; + + var script = doc.createElement( "script" ); + + script.text = code; + doc.head.appendChild( script ).parentNode.removeChild( script ); + } +/* global Symbol */ +// Defining this global in .eslintrc 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.1.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 ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +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 num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // 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 ); + }, + + 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" && !jQuery.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 ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = jQuery.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // 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() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + 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 ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( 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; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + 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; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // 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 concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // 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 = jQuery.type( obj ); + + if ( type === "function" || jQuery.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.0 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-01-04 + */ +(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(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = 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]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // 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 + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + 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" ) + }, + + 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-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + 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)|^-$|[^\x80-\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(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true; + }, + { 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 + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.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 ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + 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 && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // 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 + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } 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: + // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset) + // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Check form elements and option elements for explicit disabling + return "label" in elem && elem.disabled === disabled || + "form" in elem && elem.disabled === disabled || + + // Check non-disabled form elements for fieldset[disabled] ancestors + "form" in elem && elem.disabled === false && ( + // Support: IE6-11+ + // Ancestry is covered for us + elem.isDisabled === disabled || + + // Otherwise, assume any non-" + + ""; + + // 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("~="); + } + + // 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(".#.+[+~]"); + } + }); + + 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" ); + } + + // 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 + 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 + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + 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 ) { + return a === document ? -1 : + b === document ? 1 : + 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 + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ 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) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + 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 += ""; + + 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; + }; + }, + + "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 || elem.innerText || 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 ) { + 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; + 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 ); + } + } + } : + + // 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; + } + } + } + } + } + }; +} + +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 ) { + 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; + 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" && + support.getById && 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; + +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; + } ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + 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 ( jQuery.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 ( jQuery.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 ) { + return elem.contentDocument || 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 rnotwhite = ( /\S+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnotwhite ) || [], 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 = 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 ( jQuery.isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && jQuery.type( 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 ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + resolve.call( undefined, value ); + } + + // 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.call( 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 = jQuery.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 && jQuery.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 ( jQuery.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, + jQuery.isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + jQuery.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, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].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 master Deferred + master = 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 ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.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, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // 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 ( jQuery.type( 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 ( !jQuery.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 ) ) + ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[ 0 ], key ) : emptyGet; +}; +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[ jQuery.camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ jQuery.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 ][ jQuery.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 ( jQuery.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( jQuery.camelCase ); + } else { + key = jQuery.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( rnotwhite ) || [] ); + } + + 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 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 = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? JSON.parse( data ) : + 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 = jQuery.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 || jQuery.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 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. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + 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.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, + scale = 1, + 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 = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + do { + + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + initialInUnit = initialInUnit / scale; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Update scale, tolerating zero or NaN from tween.cur() + // Break the loop if scale is unchanged or perfect, or if we've just had enough. + } while ( + scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations + ); + } + + 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 = ( /^$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // 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, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret = typeof context.getElementsByTagName !== "undefined" ? + context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== "undefined" ? + context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + 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, contains, 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 ( jQuery.type( 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; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( 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; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +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 ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + 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 = {}; + } + 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( rnotwhite ) || [ "" ]; + 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( rnotwhite ) || [ "" ]; + 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 ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ 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() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || 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, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Support: IE <=9 + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // + // Support: Firefox <=42 + // Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343) + if ( delegateCount && cur.nodeType && + ( event.type !== "click" || isNaN( event.button ) || 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 && ( cur.disabled !== true || event.type !== "click" ) ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push( { elem: cur, handlers: matches } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: jQuery.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 + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.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; + } + } + } + } +}; + +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 || jQuery.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, + 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: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + return ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event.which; + } +}, jQuery.event.addProp ); + +// 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 + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +function manipulationTarget( elem, content ) { + if ( jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return elem.getElementsByTagName( "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 ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.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 = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( isFunction ) { + 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 ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), 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 && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, 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 rmargin = ( /^margin/ ); + +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 ); + }; + + + +( 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; + } + + div.style.cssText = + "box-sizing:border-box;" + + "position:relative;display:block;" + + "margin:auto;border:1px;padding:1px;" + + "top:1%;width:50%"; + div.innerHTML = ""; + documentElement.appendChild( container ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = divStyle.marginLeft === "2px"; + boxSizingReliableVal = divStyle.width === "4px"; + + // Support: Android 4.0 - 4.3 only + // Some styles come back with percentage values, even though they shouldn't + div.style.marginRight = "50%"; + pixelMarginRightVal = divStyle.marginRight === "4px"; + + 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; + } + + var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, 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"; + + container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + + "padding:0;margin-top:1px;position:absolute"; + container.appendChild( div ); + + jQuery.extend( support, { + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelMarginRight: function() { + computeStyleTests(); + return pixelMarginRightVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; + + computed = computed || getStyles( elem ); + + // Support: IE <=9 only + // getPropertyValue is only needed for .css('filter') (#12537) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, 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.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.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 + + // 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]).+)/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return 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; + } + } +} + +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 augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + + // If we already have the right measurement, avoid augmentation + 4 : + + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var val, + valueIsBorderBox = true, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + if ( elem.getClientRects().length ) { + val = elem.getBoundingClientRect()[ name ]; + } + + // Some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test( val ) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "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, + "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: { + "float": "cssFloat" + }, + + // 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 = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || + ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || 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) + if ( type === "number" ) { + 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 ) { + + 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 = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || + ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || 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, name ) { + jQuery.cssHooks[ name ] = { + 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, name, extra ); + } ) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = extra && getStyles( elem ), + subtract = extra && augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ); + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ name ] = value; + value = jQuery.css( elem, name ); + } + + 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 ( !rmargin.test( prefix ) ) { + 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 ( jQuery.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 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + 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, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function raf() { + if ( timerId ) { + window.requestAnimationFrame( raf ); + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = jQuery.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 - 13 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY + 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 = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.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 ( percent < 1 && length ) { + return remaining; + } else { + 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 ( jQuery.isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + jQuery.proxy( result.stop, result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +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 ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnotwhite ); + } + + 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 || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + // Go to the end state if fx are off or if document is hidden + if ( jQuery.fx.off || document.hidden ) { + opt.duration = 0; + + } else { + opt.duration = typeof opt.duration === "number" ? + opt.duration : opt.duration in jQuery.fx.speeds ? + jQuery.fx.speeds[ 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 ( jQuery.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 && type !== false ) { + 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 = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Checks the timer has not already been removed + 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 ); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); + } +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( !timerId ) { + timerId = window.requestAnimationFrame ? + window.requestAnimationFrame( raf ) : + window.setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.stop = function() { + if ( window.cancelAnimationFrame ) { + window.cancelAnimationFrame( timerId ); + } else { + window.clearInterval( timerId ); + } + + timerId = 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" && + jQuery.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, + attrNames = value && value.match( rnotwhite ); + + 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" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -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 +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + 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; +} ); + + + + +var rclass = /[\t\r\n\f]/g; + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnotwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && + ( " " + curValue + " " ).replace( rclass, " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( jQuery.isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + if ( typeof value === "string" && value ) { + classes = value.match( rnotwhite ) || []; + + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && + ( " " + curValue + " " ).replace( rclass, " " ); + + 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 = jQuery.trim( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.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 ( type === "string" ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = value.match( rnotwhite ) || []; + + 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 && + ( " " + getClass( elem ) + " " ).replace( rclass, " " ) + .indexOf( className ) > -1 + ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g, + rspaces = /[\x20\t\r\n\f]+/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, isFunction, + 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; + + return typeof ret === "string" ? + + // Handle most common string cases + ret.replace( rreturn, "" ) : + + // Handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + 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 ( jQuery.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 + jQuery.trim( jQuery.text( elem ) ).replace( rspaces, " " ); + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + 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 || + !jQuery.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 ( jQuery.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 + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = 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 && !jQuery.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() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ 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 && jQuery.isFunction( elem[ type ] ) && !jQuery.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; + elem[ type ](); + 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 ); + } + } +} ); + + +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +} ); + +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + + + + +support.focusin = "onfocusin" in window; + + +// 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() { + var doc = this.ownerDocument || 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, + 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 = jQuery.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + 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 ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + 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 ( jQuery.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 && jQuery.type( 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 = jQuery.isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.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(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, + 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( rnotwhite ) || []; + + if ( jQuery.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() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // 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( rnotwhite ) || [ "" ]; + + // 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 - 13 + // 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, append data to url + if ( s.data ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in uncached url if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rts, "" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + 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 ); + } + + // 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 ( jQuery.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._evalUrl = function( url ) { + 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, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( jQuery.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 ( jQuery.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 isFunction = jQuery.isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( isFunction ? 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.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 = 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 requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + + + + + +

+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Index
  • + + +
  • + + + +
  • + +
+ + +
+
+
+
+ + +

Index

+ +
+ A + | B + | C + | E + | F + | G + | I + | L + | M + | N + | P + | Q + | R + | S + | T + | U + | W + | X + +
+

A

+ + + +
+ +

B

+ + + +
+ +

C

+ + + +
+ +

E

+ + + +
+ +

F

+ + +
+ +

G

+ + + +
+ +

I

+ + +
+ +

L

+ + + +
+ +

M

+ + + +
+ +

N

+ + + +
+ +

P

+ + +
+ +

Q

+ + + +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

U

+ + +
+ +

W

+ + + +
+ +

X

+ + + +
+ + + +
+
+ +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/index.html b/docs/build/html/index.html new file mode 100644 index 00000000..4085708f --- /dev/null +++ b/docs/build/html/index.html @@ -0,0 +1,256 @@ + + + + + + + + + + + mujoco-py Documentation — mujoco-py 1.50.0.14 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

mujoco-py Documentation

+ +

MuJoCo is a physics engine for detailed, efficient rigid body simulations with contacts. mujoco-py allows using MuJoCo from Python.

+

See the README for installation instructions and example usage.

+

mujoco-py allows access to MuJoCo on a number of different levels of abstraction:

+
    +
  • Directly from Cython (low-level): Raw Cython declarations are provided for using the MuJoCo C structs and functions directly in your own Cython code.
  • +
  • Using PyMjData: Time-dependent data (medium-level): These wrappers are lightweight Cython cdef classes that expose MuJuCo data to Python space. The data in the MuJoCo structs is exposed as NumPy arrays bound to Mujoco-allocated memory, so there is no copying overhead when accessing or modifying MuJoCo state from Python. For more information on how this works internally, see [this document](./doc/cython_wrappers.md).
  • +
  • Using mujoco_py.MjSim (high-level): mujoco_py.MjSim manages a stateful simulation similar to the MujocoEnv class found in Gym
  • +
+

.

+
+ + +
+
+ +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/internals.html b/docs/build/html/internals.html new file mode 100644 index 00000000..4e5c62d1 --- /dev/null +++ b/docs/build/html/internals.html @@ -0,0 +1,282 @@ + + + + + + + + + + + Internals — mujoco-py 1.50.0.14 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

Internals

+
+

Autogenerated wrappers

+

The Cython struct wrappers are generated by scripts/gen_wrappers.py. To illustrate how the wrappers work, let’s consider a toy C structure and the corresponding generated Cython cdef class. Here’s a stripped down version of mjData with a scalar member and a pointer (array) member:

+
typedef struct _mjData {
+    int ne;
+    mjtNum* qpos;  // (nq x 1)
+} mjData;
+
+
+

Here’s the corresponding generated Cython wrapper code:

+
cdef class PyMjData(object):
+    cdef mjData* ptr
+    cdef mjModel* _model
+    cdef np.ndarray _qpos
+
+    cdef void _set(self, mjData* p, mjModel* model):
+        self.ptr = p
+        self._model = model
+        self._qpos = _wrap_mjtNum_1d(p.qpos, model.nq)
+
+    @property
+    def ne(self): return self.ptr.ne
+
+    @ne.setter
+    def ne(self, int x): self.ptr.ne = x
+
+    @property
+    def qpos(self): return self._qpos
+
+cdef PyMjData WrapMjData(mjData* p, mjModel* model):
+    cdef PyMjData o = PyMjData()
+    o._set(p, model)
+    return o
+
+
+

PyMjData is the wrapper class for exposing the underlying Mujoco structure to Python; it doesn’t perform any memory mangement. A user writing Cython code can create this wrapper using WrapMjData. A mjModel pointer must be passed because the shape of a mjData member, namely qpos, depends on model->nq.

+

Each field of mjData corresponds to some generated piece of code in PyMjData that depends on the type of that field. For example, ne is a scalar integer, so it gets exposed as a pair of getter and setter methods in PyMjData. qpos is an array represented as a pointer to its first element, so it’s wrapped with a NumPy array by _wrap_mjtNum_1d and is exposed with a getter for that NumPy array.

+

The function _wrap_mjtNum_1d creates a Cython memoryview from the data pointer and converts it to a NumPy array pointing to the same memory:

+
cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0):
+    if shape0 == 0: return None
+    cdef mjtNum[:] b = <mjtNum[:shape0]> a
+    return np.asarray(b)
+
+
+

Similar functions for other types are also generated as required.

+

Keep in mind that the only reason to use these autogenerated wrappers is to allow Python users of the Cython code to easily access Mujoco data (for instance the MjSim Cython class, found in ``cymj/cymj.pyx`). If you’re writing Cython code and you don’t need the user to access Mujoco data from Python, then there is no reason to use these wrappers.

+
+
+ + +
+
+ +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/objects.inv b/docs/build/html/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..df9239d7effb668be1fedc8036dabf668647b217 GIT binary patch literal 1207 zcmV;o1W5ZMAX9K?X>NERX>N99Zgg*Qc_4OWa&u{KZXhxWBOp+6Z)#;@bUGkyb!u;8 zZ!K_n3L_v^WpZMd?av*PJAarPHb0B7E zY-J#6b0A}HZE$jBb8}^6Aa!$TZf78RY-wUH3V7P3nahsjHV{Sk{t5xf)&^$VyB_qW z2Wg;@9%L&}WJ#t+e3+#Cn6FRi<*_tDt1eOTr3h40 zAS-FNPp19t_hP#dGL_1Kq&`t8olX2PmQ>5qyND?}kz6Qi7bN8fTCz>r=O~ObWK)jf zM6HuLT>(wy)U`Ya=`+}XvKJ!~%wmoo*<+V6Fnh!2z{vEZkP^ZS>VyHsd?1ypK@407 zvJSGO3yf+gAEmYwAaGoO2pKAbN})wC4mN=GyTbFIFv#0UtF6NM;LbvYEZ*9mApZh# z-%##54CXn4`7B3_Jno2ZndW3#lV=Q?O@g0;Xa#agi{{z;;4Yv5J>dp6Xg*S%ZC#9@ zM57TgA~f29aO7AUkHfg1V-g8Xw-)9oUf>&hI9h`KfzwX`+AKLT^*$S@S5PCPnX)cKVD@31#{IjBvuZom%MNyox z&5MuD>n7wlHg0=w@yl6QG}fmYJ{K@jc-zf_lK} zhvGU2A8^yh99Gaze`z|8nVKc|Dx#LKN;lR8DyIkRMyqWzto6FH!;NZfgw_egM~I?! z45c|#|3~h{*rR+@e=+U4+*Vy(6S8SrYzMXkLC^+mkqe$im&mn_5`yZ z$B;n&4S}%!XOESf11QRwZ`e~%)9~0gBIlMj%zNKzQYc<&5mA;?G^QZ1*64BUqMj&3 zLUGR$|{89*_5t2peVTd?wS~@cinDzCrI?=%T=Cj}?8)9!o@2UTc{8VAMH}ZqpS$FmzRk^5 zx+*43-28fta&i>j-Y{07TYoKHob37)A^Mtga~pf9yMG~DH+|(>v-+30`0IB5VHCVM z)wMLu%3sZ4NWO*UAC7vzz8zi|dn&$jR&N#g{`SiYx7TiN_`R9SF^cE+*I$qLm=Zzm VmoFWkjr7O(`@3jp^EYAuvCyi7Nvr?> literal 0 HcmV?d00001 diff --git a/docs/build/html/reference.html b/docs/build/html/reference.html new file mode 100644 index 00000000..ba87f3fd --- /dev/null +++ b/docs/build/html/reference.html @@ -0,0 +1,1366 @@ + + + + + + + + + + + API reference — mujoco-py 1.50.0.14 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +
+

API reference

+ +
+

MjSim: Basic simulation

+
+
+mujoco_py.load_model_from_path(path)
+

Loads model from path.

+
+ +
+
+mujoco_py.load_model_from_xml(xml_string)
+

Loads and returns a PyMjModel model from a string containing XML markup. +Saves the XML string used to create the returned model in model.xml.

+
+ +
+
+mujoco_py.load_model_from_mjb(path)
+

Loads and returns a PyMjModel model from bytes encoded MJB. +MJB is a MuJoCo-custom format that includes assets like meshes/textures.

+
+ +
+
+class mujoco_py.MjSim(model, data=None, nsubsteps=1, udd_callback=None)
+

MjSim represents a running simulation including its state.

+

Similar to Gym’s MujocoEnv, it internally wraps a PyMjModel +and a PyMjData.

+ +++ + + + +
Parameters:

model : PyMjModel

+
+

The model to simulate.

+
+

data : PyMjData

+
+

Optional container for the simulation state. Will be created if None.

+
+

nsubsteps : int

+
+

Optional number of MuJoCo steps to run for every call to step(). +Buffers will be swapped only once per step.

+
+

udd_callback : fn(MjSim) -> dict

+
+

Optional callback for user-defined dynamics. At every call to +step(), it receives an MjSim object sim containing the +current user-defined dynamics state in sim.udd_state, and returns the +next udd_state after applying the user-defined dynamics. This is +useful e.g. for reward functions that operate over functions of historical +state.

+
+
+

Attributes

+

Methods

+
+
+get_state()
+

Returns a copy of the simulator state.

+
+ +
+
+render()
+

Renders view from a camera and returns image as an numpy.ndarray.

+

Args: +- width (int): desired image width. +- height (int): desired image height. +- camera_name (str): name of camera in model. If None, the free

+
+
camera will be used.
+
    +
  • depth (bool): if True, also return depth buffer
  • +
+

Returns: +- rgb (uint8 array): image buffer from camera +- depth (float array): depth buffer from camera (only returned

+
+
if depth=True)
+
+ +
+
+reset()
+

Resets the simulation data and clears buffers.

+
+ +
+
+save()
+

Saves the simulator model and state to a file as either +a MuJoCo XML or MJB file. The current state is saved as +a keyframe in the model file. This is useful for debugging +using MuJoCo’s simulate utility.

+

Note that this doesn’t save the UDD-state which is +part of MjSimState, since that’s not supported natively +by MuJoCo. If you want to save the model together with +the UDD-state, you should use the get_xml or get_mjb +methods on MjModel together with MjSim.get_state and +save them with e.g. pickle.

+

Args: +- file (IO stream): stream to write model to. +- format: format to use (either ‘xml’ or ‘mjb’) +- keep_inertials (bool): if False, removes all <inertial>

+
+
properties derived automatically for geoms by MuJoco. Note +that this removes ones that were provided by the user +as well.
+
+ +
+
+set_state()
+

Sets the state from an MjSimState. +If the MjSimState was previously unflattened from a numpy array, consider +set_state_from_flattened, as the defensive copy is a substantial overhead +in an inner loop.

+

Args: +- value (MjSimState): the desired state. +- call_forward: optionally call sim.forward(). Called by default if

+
+
the udd_callback is set.
+
+ +
+
+set_state_from_flattened()
+

This helper method sets the state from an array without requiring a defensive copy.

+
+ +
+
+step()
+

Advances the simulation by calling mj_step.

+

If qpos or qvel have been modified directly, the user is required to call +forward() before step() if their udd_callback requires access to MuJoCo state +set during the forward dynamics.

+
+ +
+ +
+
+class mujoco_py.MjSimState
+

Represents a snapshot of the simulator’s state.

+

This includes time, qpos, qvel, act, and udd_state.

+

Attributes

+

Methods

+
+ +
+
+mujoco_py.ignore_mujoco_warnings()[source]
+

Class to turn off mujoco warning exceptions within a scope. Useful for +large, vectorized rollouts.

+
+ +
+
+

PyMjData: Time-dependent data

+

PyMjData and related classes are automatically generated from the MuJoCo C header files. For more information on this process, see Autogenerated wrappers. Their structure therefore directly follows the MuJoCo structs.

+
+
+class mujoco_py.PyMjData
+
+

Attributes

+
+act
+
+ +
+
+act_dot
+
+ +
+
+active_contacts_efc_pos
+
+ +
+
+actuator_force
+
+ +
+
+actuator_length
+
+ +
+
+actuator_moment
+
+ +
+
+actuator_velocity
+
+ +
+
+body_jacp
+
+ +
+
+body_jacr
+
+ +
+
+body_xmat
+
+ +
+
+body_xpos
+
+ +
+
+body_xquat
+
+ +
+
+body_xvelp
+
+ +
+
+body_xvelr
+
+ +
+
+cacc
+
+ +
+
+cam_xmat
+
+ +
+
+cam_xpos
+
+ +
+
+cdof
+
+ +
+
+cdof_dot
+
+ +
+
+cfrc_ext
+
+ +
+
+cfrc_int
+
+ +
+
+cinert
+
+ +
+
+contact
+
+ +
+
+crb
+
+ +
+
+ctrl
+
+ +
+
+cvel
+
+ +
+
+efc_AR
+
+ +
+
+efc_AR_colind
+
+ +
+
+efc_AR_rowadr
+
+ +
+
+efc_AR_rownnz
+
+ +
+
+efc_D
+
+ +
+
+efc_J
+
+ +
+
+efc_JT
+
+ +
+
+efc_JT_colind
+
+ +
+
+efc_JT_rowadr
+
+ +
+
+efc_JT_rownnz
+
+ +
+
+efc_J_colind
+
+ +
+
+efc_J_rowadr
+
+ +
+
+efc_J_rownnz
+
+ +
+
+efc_R
+
+ +
+
+efc_aref
+
+ +
+
+efc_b
+
+ +
+
+efc_diagApprox
+
+ +
+
+efc_force
+
+ +
+
+efc_frictionloss
+
+ +
+
+efc_id
+
+ +
+
+efc_margin
+
+ +
+
+efc_solimp
+
+ +
+
+efc_solref
+
+ +
+
+efc_state
+
+ +
+
+efc_type
+
+ +
+
+efc_vel
+
+ +
+
+energy
+
+ +
+
+geom_jacp
+
+ +
+
+geom_jacr
+
+ +
+
+geom_xmat
+
+ +
+
+geom_xpos
+
+ +
+
+geom_xvelp
+
+ +
+
+geom_xvelr
+
+ +
+
+light_xdir
+
+ +
+
+light_xpos
+
+ +
+
+maxuse_con
+
+ +
+
+maxuse_efc
+
+ +
+
+maxuse_stack
+
+ +
+
+mocap_pos
+
+ +
+
+mocap_quat
+
+ +
+
+nbuffer
+
+ +
+
+ncon
+
+ +
+
+ne
+
+ +
+
+nefc
+
+ +
+
+nf
+
+ +
+
+nstack
+
+ +
+
+pstack
+
+ +
+
+qLD
+
+ +
+
+qLDiagInv
+
+ +
+
+qLDiagSqrtInv
+
+ +
+
+qM
+
+ +
+
+qacc
+
+ +
+
+qacc_unc
+
+ +
+
+qacc_warmstart
+
+ +
+
+qfrc_actuator
+
+ +
+
+qfrc_applied
+
+ +
+
+qfrc_bias
+
+ +
+
+qfrc_constraint
+
+ +
+
+qfrc_inverse
+
+ +
+
+qfrc_passive
+
+ +
+
+qfrc_unc
+
+ +
+
+qpos
+
+ +
+
+qvel
+
+ +
+
+sensordata
+
+ +
+
+set_joint_qpos
+
+ +
+
+set_joint_qvel
+
+ +
+
+set_mocap_pos
+
+ +
+
+set_mocap_quat
+
+ +
+
+site_jacp
+
+ +
+
+site_jacr
+
+ +
+
+site_xmat
+
+ +
+
+site_xpos
+
+ +
+
+site_xvelp
+
+ +
+
+site_xvelr
+
+ +
+
+solver
+
+ +
+
+solver_fwdinv
+
+ +
+
+solver_iter
+
+ +
+
+solver_nnz
+
+ +
+
+subtree_angmom
+
+ +
+
+subtree_com
+
+ +
+
+subtree_linvel
+
+ +
+
+ten_length
+
+ +
+
+ten_moment
+
+ +
+
+ten_velocity
+
+ +
+
+ten_wrapadr
+
+ +
+
+ten_wrapnum
+
+ +
+
+time
+
+ +
+
+timer
+
+ +
+
+userdata
+
+ +
+
+warning
+
+ +
+
+wrap_obj
+
+ +
+
+wrap_xpos
+
+ +
+
+xanchor
+
+ +
+
+xaxis
+
+ +
+
+xfrc_applied
+
+ +
+
+ximat
+
+ +
+
+xipos
+
+ +

Methods

+
+get_body_jacp(name)
+

Get the entry in jacp corresponding to the body with the given name

+
+ +
+
+get_body_jacr(name)
+

Get the entry in jacr corresponding to the body with the given name

+
+ +
+
+get_body_ximat(name)
+

Get the entry in ximat corresponding to the body with the given name

+
+ +
+
+get_body_xipos(name)
+

Get the entry in xipos corresponding to the body with the given name

+
+ +
+
+get_body_xmat(name)
+

Get the entry in xmat corresponding to the body with the given name

+
+ +
+
+get_body_xpos(name)
+

Get the entry in xpos corresponding to the body with the given name

+
+ +
+
+get_body_xquat(name)
+

Get the entry in xquat corresponding to the body with the given name

+
+ +
+
+get_body_xvelp(name)
+

Get the entry in xvelp corresponding to the body with the given name

+
+ +
+
+get_body_xvelr(name)
+

Get the entry in xvelr corresponding to the body with the given name

+
+ +
+
+get_cam_xmat(name)
+

Get the entry in xmat corresponding to the cam with the given name

+
+ +
+
+get_cam_xpos(name)
+

Get the entry in xpos corresponding to the cam with the given name

+
+ +
+
+get_camera_xmat(name)
+

Get the entry in xmat corresponding to the camera with the given name

+
+ +
+
+get_camera_xpos(name)
+

Get the entry in xpos corresponding to the camera with the given name

+
+ +
+
+get_geom_jacp(name)
+

Get the entry in jacp corresponding to the geom with the given name

+
+ +
+
+get_geom_jacr(name)
+

Get the entry in jacr corresponding to the geom with the given name

+
+ +
+
+get_geom_xmat(name)
+

Get the entry in xmat corresponding to the geom with the given name

+
+ +
+
+get_geom_xpos(name)
+

Get the entry in xpos corresponding to the geom with the given name

+
+ +
+
+get_geom_xvelp(name)
+

Get the entry in xvelp corresponding to the geom with the given name

+
+ +
+
+get_geom_xvelr(name)
+

Get the entry in xvelr corresponding to the geom with the given name

+
+ +
+
+get_joint_qpos(name)
+

Get the entry in qpos corresponding to the joint with the given name

+
+ +
+
+get_joint_qvel(name)
+

Get the entry in qvel corresponding to the joint with the given name

+
+ +
+
+get_joint_xanchor(name)
+

Get the entry in xanchor corresponding to the joint with the given name

+
+ +
+
+get_joint_xaxis(name)
+

Get the entry in xaxis corresponding to the joint with the given name

+
+ +
+
+get_light_xdir(name)
+

Get the entry in xdir corresponding to the light with the given name

+
+ +
+
+get_light_xpos(name)
+

Get the entry in xpos corresponding to the light with the given name

+
+ +
+
+get_mocap_pos(name)
+

Get the entry in pos corresponding to the mocap with the given name

+
+ +
+
+get_mocap_quat(name)
+

Get the entry in quat corresponding to the mocap with the given name

+
+ +
+
+get_site_jacp(name)
+

Get the entry in jacp corresponding to the site with the given name

+
+ +
+
+get_site_jacr(name)
+

Get the entry in jacr corresponding to the site with the given name

+
+ +
+
+get_site_xmat(name)
+

Get the entry in xmat corresponding to the site with the given name

+
+ +
+
+get_site_xpos(name)
+

Get the entry in xpos corresponding to the site with the given name

+
+ +
+
+get_site_xvelp(name)
+

Get the entry in xvelp corresponding to the site with the given name

+
+ +
+
+get_site_xvelr(name)
+

Get the entry in xvelr corresponding to the site with the given name

+
+ +
+
+

MjSimPool: Batched simulation

+
+
+class mujoco_py.MjSimPool
+

Keeps a pool of multiple MjSims and enables stepping them quickly +in parallel.

+ +++ + + + +
Parameters:

sims : list of MjSim

+
+

List of simulators that make up the pool.

+
+

nsubsteps:

+
+

Number of substeps to run on step(). The individual +simulators’ nsubstep will be ignored.

+
+
+

Attributes

+

Methods

+
+
+static create_from_sim()
+

Create an MjSimPool by cloning the provided sim a total of nsims times. +Returns the created MjSimPool.

+ +++ + + + +
Parameters:

sim : MjSim

+
+

The prototype to clone.

+
+

nsims : int

+
+

Number of clones to create.

+
+
+
+ +
+
+forward()
+

Calls mj_forward on all simulations in parallel. +If nsims is specified, than only the first nsims simulator are forwarded.

+
+ +
+
+reset()
+

Resets all simulations in pool. +If nsims is specified, than only the first nsims simulators are reset.

+
+ +
+
+step()
+

Calls mj_step on all simulations in parallel, with nsubsteps as +specified when the pool was created.

+

If nsims is specified, than only the first nsims simulator are stepped.

+
+ +
+ +
+
+

MjViewer: 3D rendering

+
+
+class mujoco_py.MjViewerBasic(sim)[source]
+

A simple display GUI showing the scene of an MjSim with a mouse-movable camera.

+

MjViewer extends this class to provide more sophisticated playback and interaction controls.

+ +++ + + + +
Parameters:

sim : MjSim

+
+

The simulator to display.

+
+
+

Attributes

+

Methods

+
+ +
+
+class mujoco_py.MjViewer(sim)[source]
+

Extends MjViewerBasic to add video recording, interactive time and interaction controls.

+

The key bindings are as follows:

+
    +
  • TAB: Switch between MuJoCo cameras.
  • +
  • H: Toggle hiding all GUI components.
  • +
  • SPACE: Pause/unpause the simulation.
  • +
  • RIGHT: Advance simulation by one step.
  • +
  • V: Start/stop video recording.
  • +
  • T: Capture screenshot.
  • +
  • I: Drop into ipdb debugger.
  • +
  • S/F: Decrease/Increase simulation playback speed.
  • +
  • C: Toggle visualization of contact forces (off by default).
  • +
  • D: Enable/disable frame skipping when rendering lags behind real time.
  • +
  • R: Toggle transparency of geoms.
  • +
  • M: Toggle display of mocap bodies.
  • +
+ +++ + + + +
Parameters:

sim : MjSim

+
+

The simulator to display.

+
+
+

Attributes

+

Methods

+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/search.html b/docs/build/html/search.html new file mode 100644 index 00000000..312f7a11 --- /dev/null +++ b/docs/build/html/search.html @@ -0,0 +1,237 @@ + + + + + + + + + + + Search — mujoco-py 1.50.0.14 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + + +
+
+ + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Search
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ + + + +
+ +
+ +
+
+ +
+
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js new file mode 100644 index 00000000..e70394bf --- /dev/null +++ b/docs/build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["index","internals","reference"],envversion:53,filenames:["index.rst","internals.rst","reference.rst"],objects:{"":{act:[2,0,1,""],act_dot:[2,0,1,""],active_contacts_efc_pos:[2,0,1,""],actuator_force:[2,0,1,""],actuator_length:[2,0,1,""],actuator_moment:[2,0,1,""],actuator_velocity:[2,0,1,""],body_jacp:[2,0,1,""],body_jacr:[2,0,1,""],body_xmat:[2,0,1,""],body_xpos:[2,0,1,""],body_xquat:[2,0,1,""],body_xvelp:[2,0,1,""],body_xvelr:[2,0,1,""],cacc:[2,0,1,""],cam_xmat:[2,0,1,""],cam_xpos:[2,0,1,""],cdof:[2,0,1,""],cdof_dot:[2,0,1,""],cfrc_ext:[2,0,1,""],cfrc_int:[2,0,1,""],cinert:[2,0,1,""],contact:[2,0,1,""],crb:[2,0,1,""],ctrl:[2,0,1,""],cvel:[2,0,1,""],efc_AR:[2,0,1,""],efc_AR_colind:[2,0,1,""],efc_AR_rowadr:[2,0,1,""],efc_AR_rownnz:[2,0,1,""],efc_D:[2,0,1,""],efc_J:[2,0,1,""],efc_JT:[2,0,1,""],efc_JT_colind:[2,0,1,""],efc_JT_rowadr:[2,0,1,""],efc_JT_rownnz:[2,0,1,""],efc_J_colind:[2,0,1,""],efc_J_rowadr:[2,0,1,""],efc_J_rownnz:[2,0,1,""],efc_R:[2,0,1,""],efc_aref:[2,0,1,""],efc_b:[2,0,1,""],efc_diagApprox:[2,0,1,""],efc_force:[2,0,1,""],efc_frictionloss:[2,0,1,""],efc_id:[2,0,1,""],efc_margin:[2,0,1,""],efc_solimp:[2,0,1,""],efc_solref:[2,0,1,""],efc_state:[2,0,1,""],efc_type:[2,0,1,""],efc_vel:[2,0,1,""],energy:[2,0,1,""],geom_jacp:[2,0,1,""],geom_jacr:[2,0,1,""],geom_xmat:[2,0,1,""],geom_xpos:[2,0,1,""],geom_xvelp:[2,0,1,""],geom_xvelr:[2,0,1,""],get_body_jacp:[2,1,1,""],get_body_jacr:[2,1,1,""],get_body_ximat:[2,1,1,""],get_body_xipos:[2,1,1,""],get_body_xmat:[2,1,1,""],get_body_xpos:[2,1,1,""],get_body_xquat:[2,1,1,""],get_body_xvelp:[2,1,1,""],get_body_xvelr:[2,1,1,""],get_cam_xmat:[2,1,1,""],get_cam_xpos:[2,1,1,""],get_camera_xmat:[2,1,1,""],get_camera_xpos:[2,1,1,""],get_geom_jacp:[2,1,1,""],get_geom_jacr:[2,1,1,""],get_geom_xmat:[2,1,1,""],get_geom_xpos:[2,1,1,""],get_geom_xvelp:[2,1,1,""],get_geom_xvelr:[2,1,1,""],get_joint_qpos:[2,1,1,""],get_joint_qvel:[2,1,1,""],get_joint_xanchor:[2,1,1,""],get_joint_xaxis:[2,1,1,""],get_light_xdir:[2,1,1,""],get_light_xpos:[2,1,1,""],get_mocap_pos:[2,1,1,""],get_mocap_quat:[2,1,1,""],get_site_jacp:[2,1,1,""],get_site_jacr:[2,1,1,""],get_site_xmat:[2,1,1,""],get_site_xpos:[2,1,1,""],get_site_xvelp:[2,1,1,""],get_site_xvelr:[2,1,1,""],light_xdir:[2,0,1,""],light_xpos:[2,0,1,""],maxuse_con:[2,0,1,""],maxuse_efc:[2,0,1,""],maxuse_stack:[2,0,1,""],mocap_pos:[2,0,1,""],mocap_quat:[2,0,1,""],nbuffer:[2,0,1,""],ncon:[2,0,1,""],ne:[2,0,1,""],nefc:[2,0,1,""],nf:[2,0,1,""],nstack:[2,0,1,""],pstack:[2,0,1,""],qLD:[2,0,1,""],qLDiagInv:[2,0,1,""],qLDiagSqrtInv:[2,0,1,""],qM:[2,0,1,""],qacc:[2,0,1,""],qacc_unc:[2,0,1,""],qacc_warmstart:[2,0,1,""],qfrc_actuator:[2,0,1,""],qfrc_applied:[2,0,1,""],qfrc_bias:[2,0,1,""],qfrc_constraint:[2,0,1,""],qfrc_inverse:[2,0,1,""],qfrc_passive:[2,0,1,""],qfrc_unc:[2,0,1,""],qpos:[2,0,1,""],qvel:[2,0,1,""],sensordata:[2,0,1,""],set_joint_qpos:[2,0,1,""],set_joint_qvel:[2,0,1,""],set_mocap_pos:[2,0,1,""],set_mocap_quat:[2,0,1,""],site_jacp:[2,0,1,""],site_jacr:[2,0,1,""],site_xmat:[2,0,1,""],site_xpos:[2,0,1,""],site_xvelp:[2,0,1,""],site_xvelr:[2,0,1,""],solver:[2,0,1,""],solver_fwdinv:[2,0,1,""],solver_iter:[2,0,1,""],solver_nnz:[2,0,1,""],subtree_angmom:[2,0,1,""],subtree_com:[2,0,1,""],subtree_linvel:[2,0,1,""],ten_length:[2,0,1,""],ten_moment:[2,0,1,""],ten_velocity:[2,0,1,""],ten_wrapadr:[2,0,1,""],ten_wrapnum:[2,0,1,""],time:[2,0,1,""],timer:[2,0,1,""],userdata:[2,0,1,""],warning:[2,0,1,""],wrap_obj:[2,0,1,""],wrap_xpos:[2,0,1,""],xanchor:[2,0,1,""],xaxis:[2,0,1,""],xfrc_applied:[2,0,1,""],ximat:[2,0,1,""],xipos:[2,0,1,""]},"mujoco_py.MjSim":{get_state:[2,1,1,""],render:[2,1,1,""],reset:[2,1,1,""],save:[2,1,1,""],set_state:[2,1,1,""],set_state_from_flattened:[2,1,1,""],step:[2,1,1,""]},"mujoco_py.MjSimPool":{create_from_sim:[2,3,1,""],forward:[2,1,1,""],reset:[2,1,1,""],step:[2,1,1,""]},mujoco_py:{MjSim:[2,2,1,""],MjSimPool:[2,2,1,""],MjSimState:[2,2,1,""],MjViewer:[2,2,1,""],MjViewerBasic:[2,2,1,""],ignore_mujoco_warnings:[2,4,1,""],load_model_from_mjb:[2,4,1,""],load_model_from_path:[2,4,1,""],load_model_from_xml:[2,4,1,""]}},objnames:{"0":["py","attribute","Python attribute"],"1":["py","method","Python method"],"2":["py","class","Python class"],"3":["py","staticmethod","Python static method"],"4":["py","function","Python function"]},objtypes:{"0":"py:attribute","1":"py:method","2":"py:class","3":"py:staticmethod","4":"py:function"},terms:{"abstract":0,"byte":2,"class":[0,1,2],"default":2,"float":2,"function":[0,1,2],"int":[1,2],"return":[1,2],"static":2,"switch":2,"true":2,"void":1,For:[0,1,2],The:[0,1,2],Their:2,These:0,Useful:2,Using:0,Will:2,_mjdata:1,_model:1,_qpo:1,_set:1,_wrap_mjtnum_1d:1,access:[0,1,2],act:2,act_dot:2,active_contacts_efc_po:2,actuator_forc:2,actuator_length:2,actuator_mo:2,actuator_veloc:2,add:2,advanc:2,after:2,all:2,alloc:0,allow:[0,1],also:[1,2],ani:1,api:0,appli:2,arg:2,arrai:[0,1,2],asarrai:1,asset:2,attribut:2,autogener:[0,2],automat:2,basic:0,batch:0,becaus:1,been:2,befor:2,behind:2,between:2,bind:2,bodi:[0,2],body_jacp:2,body_jacr:2,body_xmat:2,body_xpo:2,body_xquat:2,body_xvelp:2,body_xvelr:2,bool:2,bound:0,buffer:2,cacc:2,call:2,call_forward:2,callback:2,cam:2,cam_xmat:2,cam_xpo:2,camera:2,camera_nam:2,can:1,captur:2,cdef:[0,1],cdof:2,cdof_dot:2,cfrc_ext:2,cfrc_int:2,cinert:2,clear:2,clone:2,code:[0,1],compon:2,consid:[1,2],contact:[0,2],contain:2,control:2,convert:1,copi:[0,2],correspond:[1,2],crb:2,creat:[1,2],create_from_sim:2,ctrl:2,current:2,custom:2,cvel:2,cymj:1,cython:[0,1],cython_wrapp:0,data:[0,1],debug:2,debugg:2,declar:0,decreas:2,def:1,defens:2,defin:2,depend:[0,1],depth:2,deriv:2,desir:2,detail:0,dict:2,differ:0,directli:[0,2],disabl:2,displai:2,doc:0,doesn:[1,2],don:1,down:1,drop:2,dure:2,dynam:2,each:1,easili:1,efc_ar:2,efc_ar_colind:2,efc_ar_rowadr:2,efc_ar_rownnz:2,efc_aref:2,efc_b:2,efc_d:2,efc_diagapprox:2,efc_forc:2,efc_frictionloss:2,efc_id:2,efc_j:2,efc_j_colind:2,efc_j_rowadr:2,efc_j_rownnz:2,efc_jt:2,efc_jt_colind:2,efc_jt_rowadr:2,efc_jt_rownnz:2,efc_margin:2,efc_r:2,efc_solimp:2,efc_solref:2,efc_stat:2,efc_typ:2,efc_vel:2,effici:0,either:2,element:1,enabl:2,encod:2,energi:2,engin:0,entri:2,everi:2,exampl:[0,1],except:2,expos:[0,1],extend:2,fals:2,field:1,file:2,first:[1,2],follow:2,forc:2,format:2,forward:2,found:[0,1],frame:2,free:2,from:[0,1,2],gen_wrapp:1,gener:[1,2],geom:2,geom_jacp:2,geom_jacr:2,geom_xmat:2,geom_xpo:2,geom_xvelp:2,geom_xvelr:2,get:[1,2],get_body_jacp:2,get_body_jacr:2,get_body_ximat:2,get_body_xipo:2,get_body_xmat:2,get_body_xpo:2,get_body_xquat:2,get_body_xvelp:2,get_body_xvelr:2,get_cam_xmat:2,get_cam_xpo:2,get_camera_xmat:2,get_camera_xpo:2,get_geom_jacp:2,get_geom_jacr:2,get_geom_xmat:2,get_geom_xpo:2,get_geom_xvelp:2,get_geom_xvelr:2,get_joint_qpo:2,get_joint_qvel:2,get_joint_xanchor:2,get_joint_xaxi:2,get_light_xdir:2,get_light_xpo:2,get_mjb:2,get_mocap_po:2,get_mocap_quat:2,get_site_jacp:2,get_site_jacr:2,get_site_xmat:2,get_site_xpo:2,get_site_xvelp:2,get_site_xvelr:2,get_stat:2,get_xml:2,getter:1,given:2,gui:2,gym:[0,2],have:2,header:2,height:2,helper:2,here:1,hide:2,high:0,histor:2,how:[0,1],ignor:2,ignore_mujoco_warn:2,illustr:1,imag:2,includ:2,increas:2,individu:2,inerti:2,inform:[0,2],inlin:1,inner:2,instal:0,instanc:1,instruct:0,integ:1,interact:2,intern:[0,2],ipdb:2,its:[1,2],jacp:2,jacr:2,joint:2,keep:[1,2],keep_inerti:2,kei:2,keyfram:2,lag:2,larg:2,let:1,level:0,light:2,light_xdir:2,light_xpo:2,lightweight:0,like:2,list:2,load:2,load_model_from_mjb:2,load_model_from_path:2,load_model_from_xml:2,loop:2,low:0,make:2,manag:0,mangement:1,markup:2,maxuse_con:2,maxuse_efc:2,maxuse_stack:2,medium:0,member:1,memori:[0,1],memoryview:1,mesh:2,method:[1,2],mind:1,mj_forward:2,mj_step:2,mjb:2,mjdata:1,mjmodel:[1,2],mjsim:[0,1],mjsimpool:0,mjsimstat:2,mjtnum:1,mjviewer:0,mjviewerbas:2,mocap:2,mocap_po:2,mocap_quat:2,model:[1,2],modifi:[0,2],more:[0,2],mous:2,movabl:2,mujoco:[1,2],mujoco_pi:[0,2],mujocoenv:[0,2],mujuco:0,multipl:2,must:1,name:[1,2],nativ:2,nbuffer:2,ncon:2,ndarrai:[1,2],need:1,nefc:2,next:2,none:[1,2],note:2,nsim:2,nstack:2,nsubstep:2,number:[0,2],numpi:[0,1,2],object:[1,2],off:2,onc:2,one:2,ones:2,onli:[1,2],oper:2,option:2,other:1,over:2,overhead:[0,2],own:0,pair:1,parallel:2,paramet:2,part:2,pass:1,path:2,paus:2,per:2,perform:1,physic:0,pickl:2,piec:1,playback:2,point:1,pointer:1,pool:2,pos:2,previous:2,process:2,properti:[1,2],prototyp:2,provid:[0,2],pstack:2,ptr:1,pymjdata:[0,1],pymjmodel:2,python:[0,1],pyx:1,qacc:2,qacc_unc:2,qacc_warmstart:2,qfrc_actuat:2,qfrc_appli:2,qfrc_bia:2,qfrc_constraint:2,qfrc_invers:2,qfrc_passiv:2,qfrc_unc:2,qld:2,qldiaginv:2,qldiagsqrtinv:2,qpo:[1,2],quat:2,quickli:2,qvel:2,raw:0,readm:0,real:2,reason:1,receiv:2,record:2,refer:0,relat:2,remov:2,render:0,repres:[1,2],requir:[1,2],reset:2,reward:2,rgb:2,right:2,rigid:0,rollout:2,run:2,same:1,save:2,scalar:1,scene:2,scope:2,screenshot:2,script:1,see:[0,2],self:1,sensordata:2,set:2,set_joint_qpo:2,set_joint_qvel:2,set_mocap_po:2,set_mocap_quat:2,set_stat:2,set_state_from_flatten:2,setter:1,shape0:1,shape:1,should:2,show:2,sim:2,similar:[0,1,2],simpl:2,simul:0,sinc:2,site:2,site_jacp:2,site_jacr:2,site_xmat:2,site_xpo:2,site_xvelp:2,site_xvelr:2,skip:2,snapshot:2,solver:2,solver_fwdinv:2,solver_it:2,solver_nnz:2,some:1,sophist:2,sourc:2,space:[0,2],specifi:2,speed:2,start:2,state:[0,2],step:2,stop:2,str:2,stream:2,string:2,strip:1,struct:[0,1,2],structur:[1,2],substanti:2,substep:2,subtree_angmom:2,subtree_com:2,subtree_linvel:2,support:2,swap:2,tab:2,ten_length:2,ten_moment:2,ten_veloc:2,ten_wrapadr:2,ten_wrapnum:2,textur:2,than:2,them:2,therefor:2,thi:[0,1,2],time:0,timer:2,togeth:2,toggl:2,toi:1,total:2,transpar:2,turn:2,type:1,typedef:1,udd:2,udd_callback:2,udd_stat:2,uint8:2,underli:1,unflatten:2,unpaus:2,usag:0,use:[1,2],used:2,useful:2,user:[1,2],userdata:2,using:[0,1,2],util:2,valu:2,vector:2,version:1,video:2,view:2,visual:2,want:2,warn:2,well:2,were:2,when:[0,2],which:2,width:2,within:2,without:2,work:[0,1],wrap:[1,2],wrap_obj:2,wrap_xpo:2,wrapmjdata:1,wrapper:[0,2],write:[1,2],xanchor:2,xaxi:2,xdir:2,xfrc_appli:2,ximat:2,xipo:2,xmat:2,xml:2,xml_string:2,xpo:2,xquat:2,xvelp:2,xvelr:2,you:[1,2],your:0},titles:["mujoco-py Documentation","Internals","API reference"],titleterms:{api:2,autogener:1,basic:2,batch:2,data:2,depend:2,document:0,intern:1,mjsim:2,mjsimpool:2,mjviewer:2,mujoco:0,pymjdata:2,refer:2,render:2,simul:2,time:2,wrapper:1}}) \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..713811fb --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,157 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# mujoco-py documentation build configuration file, created by +# sphinx-quickstart on Tue Jun 27 15:21:11 2017. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.viewcode', + 'numpydoc'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = 'mujoco-py' +copyright = '2017, OpenAI' +author = 'OpenAI' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +import mujoco_py +version = mujoco_py.__version__ +# The full version, including alpha/beta/rc tags. +release = mujoco_py.__version__ + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = False + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "sphinx_rtd_theme" + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + + +# -- Options for HTMLHelp output ------------------------------------------ + +# Output file base name for HTML help builder. +htmlhelp_basename = 'mujoco-pydoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'mujoco-py.tex', 'mujoco-py Documentation', + 'OpenAI', 'manual'), +] + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'mujoco-py', 'mujoco-py Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'mujoco-py', 'mujoco-py Documentation', + author, 'mujoco-py', 'One line description of project.', + 'Miscellaneous'), +] diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 00000000..07071089 --- /dev/null +++ b/docs/index.html @@ -0,0 +1 @@ + diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..d7ca05bf --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,20 @@ +======================= +mujoco-py Documentation +======================= + +.. toctree:: + reference + internals + +`MuJoCo `_ is a physics engine for detailed, efficient rigid body simulations with contacts. ``mujoco-py`` allows using MuJoCo from Python. + +See the `README `_ for installation instructions and example usage. + +``mujoco-py`` allows access to MuJoCo on a number of different levels of abstraction: + +- Directly from Cython (low-level): `Raw Cython declarations `_ are provided for using the MuJoCo C structs and functions directly in your own Cython code. + +- Using :ref:`pymjdata` (medium-level): These wrappers are lightweight Cython ``cdef`` classes that expose MuJuCo data to Python space. The data in the MuJoCo structs is exposed as NumPy arrays bound to Mujoco-allocated memory, so there is no copying overhead when accessing or modifying MuJoCo state from Python. For more information on how this works internally, see [this document](./doc/cython_wrappers.md). + +- Using :class:`mujoco_py.MjSim` (high-level): :class:`mujoco_py.MjSim` manages a stateful simulation similar to the `MujocoEnv `_ class found in `Gym `_ +. diff --git a/docs/internals.rst b/docs/internals.rst new file mode 100644 index 00000000..60a91ae8 --- /dev/null +++ b/docs/internals.rst @@ -0,0 +1,55 @@ +Internals +========= + +.. _genwrapper: + +Autogenerated wrappers +---------------------- + +The Cython struct wrappers are generated by ``scripts/gen_wrappers.py``. To illustrate how the wrappers work, let's consider a toy C structure and the corresponding generated Cython cdef class. Here's a stripped down version of ``mjData`` with a scalar member and a pointer (array) member:: + + typedef struct _mjData { + int ne; + mjtNum* qpos; // (nq x 1) + } mjData; + +Here's the corresponding generated Cython wrapper code:: + + cdef class PyMjData(object): + cdef mjData* ptr + cdef mjModel* _model + cdef np.ndarray _qpos + + cdef void _set(self, mjData* p, mjModel* model): + self.ptr = p + self._model = model + self._qpos = _wrap_mjtNum_1d(p.qpos, model.nq) + + @property + def ne(self): return self.ptr.ne + + @ne.setter + def ne(self, int x): self.ptr.ne = x + + @property + def qpos(self): return self._qpos + + cdef PyMjData WrapMjData(mjData* p, mjModel* model): + cdef PyMjData o = PyMjData() + o._set(p, model) + return o + +``PyMjData`` is the wrapper class for exposing the underlying Mujoco structure to Python; it doesn't perform any memory mangement. A user writing Cython code can create this wrapper using ``WrapMjData``. A ``mjModel`` pointer must be passed because the shape of a ``mjData`` member, namely ``qpos``, depends on ``model->nq``. + +Each field of ``mjData`` corresponds to some generated piece of code in ``PyMjData`` that depends on the type of that field. For example, ``ne`` is a scalar integer, so it gets exposed as a pair of getter and setter methods in ``PyMjData``. ``qpos`` is an array represented as a pointer to its first element, so it's wrapped with a NumPy array by ``_wrap_mjtNum_1d`` and is exposed with a getter for that NumPy array. + +The function ``_wrap_mjtNum_1d`` creates a Cython memoryview from the data pointer and converts it to a NumPy array pointing to the same memory:: + + cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0): + if shape0 == 0: return None + cdef mjtNum[:] b = a + return np.asarray(b) + +Similar functions for other types are also generated as required. + +Keep in mind that the only reason to use these autogenerated wrappers is to allow Python users of the Cython code to easily access Mujoco data (for instance the ``MjSim`` Cython class, found in ``cymj/cymj.pyx`). If you're writing Cython code and you don't need the user to access Mujoco data from Python, then there is no reason to use these wrappers. diff --git a/docs/reference.rst b/docs/reference.rst new file mode 100644 index 00000000..0ec5a933 --- /dev/null +++ b/docs/reference.rst @@ -0,0 +1,313 @@ +API reference +============= + +.. contents:: :local: + +MjSim: Basic simulation +----------------------- + +.. autofunction:: mujoco_py.load_model_from_path(path) + +.. autofunction:: mujoco_py.load_model_from_xml(xml_string) + +.. autofunction:: mujoco_py.load_model_from_mjb(path) + +.. autoclass:: mujoco_py.MjSim(model, data=None, nsubsteps=1, udd_callback=None) + :members: model, data, step, render, get_state, set_state, set_state_from_flattened, save, reset + +.. autoclass:: mujoco_py.MjSimState + +.. autofunction:: mujoco_py.ignore_mujoco_warnings + +.. _pymjdata: + +PyMjData: Time-dependent data +----------------------------- + +``PyMjData`` and related classes are automatically generated from the MuJoCo C header files. For more information on this process, see :ref:`genwrapper`. Their structure therefore directly follows the MuJoCo structs. + +.. raw:: html + +
+
+ class mujoco_py.PyMjData
+
+

Attributes

+ +.. attribute:: act +.. attribute:: act_dot +.. attribute:: active_contacts_efc_pos +.. attribute:: actuator_force +.. attribute:: actuator_length +.. attribute:: actuator_moment +.. attribute:: actuator_velocity +.. attribute:: body_jacp +.. attribute:: body_jacr +.. attribute:: body_xmat +.. attribute:: body_xpos +.. attribute:: body_xquat +.. attribute:: body_xvelp +.. attribute:: body_xvelr +.. attribute:: cacc +.. attribute:: cam_xmat +.. attribute:: cam_xpos +.. attribute:: cdof +.. attribute:: cdof_dot +.. attribute:: cfrc_ext +.. attribute:: cfrc_int +.. attribute:: cinert +.. attribute:: contact +.. attribute:: crb +.. attribute:: ctrl +.. attribute:: cvel +.. attribute:: efc_AR +.. attribute:: efc_AR_colind +.. attribute:: efc_AR_rowadr +.. attribute:: efc_AR_rownnz +.. attribute:: efc_D +.. attribute:: efc_J +.. attribute:: efc_JT +.. attribute:: efc_JT_colind +.. attribute:: efc_JT_rowadr +.. attribute:: efc_JT_rownnz +.. attribute:: efc_J_colind +.. attribute:: efc_J_rowadr +.. attribute:: efc_J_rownnz +.. attribute:: efc_R +.. attribute:: efc_aref +.. attribute:: efc_b +.. attribute:: efc_diagApprox +.. attribute:: efc_force +.. attribute:: efc_frictionloss +.. attribute:: efc_id +.. attribute:: efc_margin +.. attribute:: efc_solimp +.. attribute:: efc_solref +.. attribute:: efc_state +.. attribute:: efc_type +.. attribute:: efc_vel +.. attribute:: energy +.. attribute:: geom_jacp +.. attribute:: geom_jacr +.. attribute:: geom_xmat +.. attribute:: geom_xpos +.. attribute:: geom_xvelp +.. attribute:: geom_xvelr +.. attribute:: light_xdir +.. attribute:: light_xpos +.. attribute:: maxuse_con +.. attribute:: maxuse_efc +.. attribute:: maxuse_stack +.. attribute:: mocap_pos +.. attribute:: mocap_quat +.. attribute:: nbuffer +.. attribute:: ncon +.. attribute:: ne +.. attribute:: nefc +.. attribute:: nf +.. attribute:: nstack +.. attribute:: pstack +.. attribute:: qLD +.. attribute:: qLDiagInv +.. attribute:: qLDiagSqrtInv +.. attribute:: qM +.. attribute:: qacc +.. attribute:: qacc_unc +.. attribute:: qacc_warmstart +.. attribute:: qfrc_actuator +.. attribute:: qfrc_applied +.. attribute:: qfrc_bias +.. attribute:: qfrc_constraint +.. attribute:: qfrc_inverse +.. attribute:: qfrc_passive +.. attribute:: qfrc_unc +.. attribute:: qpos +.. attribute:: qvel +.. attribute:: sensordata +.. attribute:: set_joint_qpos +.. attribute:: set_joint_qvel +.. attribute:: set_mocap_pos +.. attribute:: set_mocap_quat +.. attribute:: site_jacp +.. attribute:: site_jacr +.. attribute:: site_xmat +.. attribute:: site_xpos +.. attribute:: site_xvelp +.. attribute:: site_xvelr +.. attribute:: solver +.. attribute:: solver_fwdinv +.. attribute:: solver_iter +.. attribute:: solver_nnz +.. attribute:: subtree_angmom +.. attribute:: subtree_com +.. attribute:: subtree_linvel +.. attribute:: ten_length +.. attribute:: ten_moment +.. attribute:: ten_velocity +.. attribute:: ten_wrapadr +.. attribute:: ten_wrapnum +.. attribute:: time +.. attribute:: timer +.. attribute:: userdata +.. attribute:: warning +.. attribute:: wrap_obj +.. attribute:: wrap_xpos +.. attribute:: xanchor +.. attribute:: xaxis +.. attribute:: xfrc_applied +.. attribute:: ximat +.. attribute:: xipos + +.. raw:: html + +

Methods

+ + +.. method:: get_body_jacp(name) + + Get the entry in ``jacp`` corresponding to the body with the given `name` + +.. method:: get_body_jacr(name) + + Get the entry in ``jacr`` corresponding to the body with the given `name` + +.. method:: get_body_ximat(name) + + Get the entry in ``ximat`` corresponding to the body with the given `name` + +.. method:: get_body_xipos(name) + + Get the entry in ``xipos`` corresponding to the body with the given `name` + +.. method:: get_body_xmat(name) + + Get the entry in ``xmat`` corresponding to the body with the given `name` + +.. method:: get_body_xpos(name) + + Get the entry in ``xpos`` corresponding to the body with the given `name` + +.. method:: get_body_xquat(name) + + Get the entry in ``xquat`` corresponding to the body with the given `name` + +.. method:: get_body_xvelp(name) + + Get the entry in ``xvelp`` corresponding to the body with the given `name` + +.. method:: get_body_xvelr(name) + + Get the entry in ``xvelr`` corresponding to the body with the given `name` + +.. method:: get_cam_xmat(name) + + Get the entry in ``xmat`` corresponding to the cam with the given `name` + +.. method:: get_cam_xpos(name) + + Get the entry in ``xpos`` corresponding to the cam with the given `name` + +.. method:: get_camera_xmat(name) + + Get the entry in ``xmat`` corresponding to the camera with the given `name` + +.. method:: get_camera_xpos(name) + + Get the entry in ``xpos`` corresponding to the camera with the given `name` + +.. method:: get_geom_jacp(name) + + Get the entry in ``jacp`` corresponding to the geom with the given `name` + +.. method:: get_geom_jacr(name) + + Get the entry in ``jacr`` corresponding to the geom with the given `name` + +.. method:: get_geom_xmat(name) + + Get the entry in ``xmat`` corresponding to the geom with the given `name` + +.. method:: get_geom_xpos(name) + + Get the entry in ``xpos`` corresponding to the geom with the given `name` + +.. method:: get_geom_xvelp(name) + + Get the entry in ``xvelp`` corresponding to the geom with the given `name` + +.. method:: get_geom_xvelr(name) + + Get the entry in ``xvelr`` corresponding to the geom with the given `name` + +.. method:: get_joint_qpos(name) + + Get the entry in ``qpos`` corresponding to the joint with the given `name` + +.. method:: get_joint_qvel(name) + + Get the entry in ``qvel`` corresponding to the joint with the given `name` + +.. method:: get_joint_xanchor(name) + + Get the entry in ``xanchor`` corresponding to the joint with the given `name` + +.. method:: get_joint_xaxis(name) + + Get the entry in ``xaxis`` corresponding to the joint with the given `name` + +.. method:: get_light_xdir(name) + + Get the entry in ``xdir`` corresponding to the light with the given `name` + +.. method:: get_light_xpos(name) + + Get the entry in ``xpos`` corresponding to the light with the given `name` + +.. method:: get_mocap_pos(name) + + Get the entry in ``pos`` corresponding to the mocap with the given `name` + +.. method:: get_mocap_quat(name) + + Get the entry in ``quat`` corresponding to the mocap with the given `name` + +.. method:: get_site_jacp(name) + + Get the entry in ``jacp`` corresponding to the site with the given `name` + +.. method:: get_site_jacr(name) + + Get the entry in ``jacr`` corresponding to the site with the given `name` + +.. method:: get_site_xmat(name) + + Get the entry in ``xmat`` corresponding to the site with the given `name` + +.. method:: get_site_xpos(name) + + Get the entry in ``xpos`` corresponding to the site with the given `name` + +.. method:: get_site_xvelp(name) + + Get the entry in ``xvelp`` corresponding to the site with the given `name` + +.. method:: get_site_xvelr(name) + + Get the entry in ``xvelr`` corresponding to the site with the given `name` + +.. raw:: html + +
+ +MjSimPool: Batched simulation +----------------------------- + +.. autoclass:: mujoco_py.MjSimPool + :members: reset, forward, step, sims, create_from_sim + +MjViewer: 3D rendering +----------------------------- + +.. autoclass:: mujoco_py.MjViewerBasic + +.. autoclass:: mujoco_py.MjViewer diff --git a/examples/body_interaction.py b/examples/body_interaction.py new file mode 100644 index 00000000..3864c11c --- /dev/null +++ b/examples/body_interaction.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +""" +Example of how bodies interact with each other. For a body to be able to +move it needs to have joints. In this example, the "robot" is a red ball +with X and Y slide joints (and a Z slide joint that isn't controlled). +On the floor, there's a cylinder with X and Y slide joints, so it can +be pushed around with the robot. There's also a box without joints. Since +the box doesn't have joints, it's fixed and can't be pushed around. +""" +from mujoco_py import load_model_from_xml, MjSim, MjViewer +import math +import os + +MODEL_XML = """ + + + +""" + +model = load_model_from_xml(MODEL_XML) +sim = MjSim(model) +viewer = MjViewer(sim) +t = 0 +while True: + sim.data.ctrl[0] = math.cos(t / 10.) * 0.01 + sim.data.ctrl[1] = math.sin(t / 10.) * 0.01 + t += 1 + sim.step() + viewer.render() + if t > 100 and os.getenv('TESTING') is not None: + break diff --git a/examples/disco_fetch.py b/examples/disco_fetch.py new file mode 100644 index 00000000..a287ff7e --- /dev/null +++ b/examples/disco_fetch.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python3 +""" +Displays robot fetch at a disco party. +""" +from mujoco_py import load_model_from_path, MjSim, MjViewer +from mujoco_py.modder import TextureModder +import os + +model = load_model_from_path("xmls/fetch/main.xml") +sim = MjSim(model) + +viewer = MjViewer(sim) +modder = TextureModder(sim) + +t = 0 + +while True: + for name in sim.model.geom_names: + modder.rand_all(name) + + viewer.render() + t += 1 + if t > 100 and os.getenv('TESTING') is not None: + break diff --git a/examples/internal_functions.py b/examples/internal_functions.py new file mode 100644 index 00000000..c8ed86c9 --- /dev/null +++ b/examples/internal_functions.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +""" +Shows how to access internal functions from MuJoCo. +""" +from mujoco_py import load_model_from_xml, MjSim, functions +import numpy as np + +MODEL_XML = """ + + + +""" + +model = load_model_from_xml(MODEL_XML) +sim = MjSim(model) + +print("Nicely exposed function:\n") +print(sim.model.get_xml()) + +print("\nversus MuJoCo internals:\n\n") + +functions.mj_saveLastXML("/tmp/saved.xml", model, "", 0) +with open("/tmp/saved.xml", "r") as f: + print(f.read()) + +sim.render(100, 100) + +modelpos = np.zeros(3) +modelquat = np.zeros(4) +roompos = np.ones(3) +roomquat = np.array([1., 0., 1., 0.]) + +functions.mjv_room2model(modelpos, modelquat, roompos, + roomquat, sim.render_contexts[0].scn) + +print("\n\nAnother internal function, mjv_room2model:") +print("modelpos = %s, modelquat = %s" % (str(modelpos), str(modelquat))) + + +res = np.zeros(9) +functions.mju_quat2Mat(res, roomquat) +print("\n\nAnother internal function, mju_quat2Mat:\n%s" % res) diff --git a/examples/markers_demo.py b/examples/markers_demo.py new file mode 100644 index 00000000..9191ed8b --- /dev/null +++ b/examples/markers_demo.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# demonstration of markers (visual-only geoms) + +import math +import time +import os +import numpy as np +from mujoco_py import load_model_from_xml, MjSim, MjViewer + +MODEL_XML = """ + + + + + + + + + + + + + +""" + +model = load_model_from_xml(MODEL_XML) +sim = MjSim(model) +viewer = MjViewer(sim) +step = 0 +while True: + t = time.time() + x, y = math.cos(t), math.sin(t) + viewer.add_marker(pos=np.array([x, y, 1]), + label=str(t)) + viewer.render() + + step += 1 + if step > 100 and os.getenv('TESTING') is not None: + break diff --git a/examples/mjvive.py b/examples/mjvive.py new file mode 100644 index 00000000..ee49715e --- /dev/null +++ b/examples/mjvive.py @@ -0,0 +1,172 @@ +# Displays MuJoCo model in VR. +# Based on http://www.mujoco.org/book/source/mjvive.cpp +# requires HTC vive, microsoft windows, and openvr python library. +# Install openvr with: +# pip install openvr + +import math +import sys +import glfw +import OpenGL.GL as gl +import openvr +import numpy as np +import OpenGL.GL as gl +import os +from mujoco_py import MjSim, load_model_from_xml, const, functions +from mujoco_py.builder import cymj + + +class MjViewerVR(cymj.MjRenderContext): + def __init__(self, sim): + self.FPS = 90 + print("bbb") + self.v_initPre() + print("aaa") + super().__init__(sim) + print("ccc") + self.initMuJoCo() + self.v_initPost() + self.lasttm = glfw.get_time() + self.frametime = self.sim.data.time + + # def _setup_opengl_context(self, *args): + # print("_setup_opengl_context") + + # def _set_mujoco_buffers(self): + # print("_set_mujoco_buffers") + + def _init_camera(self, *args): + print("_init_camera") + + + def v_initPre(self): + self.system = openvr.init(openvr.VRApplication_Scene) + self.roompos = np.zeros(3) + self.roommat = np.eye(3) + self.eyeoffset = np.zeros((2, 3)) + openvr.VRCompositor().setTrackingSpace(openvr.TrackingUniverseStanding) + self.width, self.height = self.system.getRecommendedRenderTargetSize() + for n in range(2): + self.eyeoffset[n] = np.array(self.system.getEyeToHeadTransform(n).m)[0:3, 3] + self.rect = cymj.mujoco_pyrRect() + self.rect.left, self.rect.bottom = 0, 0 + self.rect.width, self.rect.height = 2 * self.width, self.height + + def initMuJoCo(self): + assert glfw.init(), 'Could not initialize GLFW' + glfw.window_hint(glfw.SAMPLES, 0) + glfw.window_hint(glfw.DOUBLEBUFFER, 1) + glfw.window_hint(glfw.RESIZABLE, 0) + self._window = glfw.create_window(self.width // 2, self.height // 2, "MuJoCo VR", None, None) + assert self._window, "Could not create GLFW window" + glfw.make_context_current(self._window) + glfw.swap_interval(0) + # GLEW init required on windows, not in python + self.sim.forward() + self.sim.model.vis.global_.offwidth = self.width * 2 + self.sim.model.vis.global_.offheight = self.height + self.sim.model.vis.quality.offsamples = 8 + self.scn.enabletransform = 1 + self.scn.translate[1:3] = -0.5 + self.scn.rotate[0:2] = math.cos(-0.25 * math.pi), math.sin(-0.25 * math.pi) + self.scn.scale = 1 + self.scn.stereo = const.STEREO_SIDEBYSIDE + + def v_initPost(self): + for n in range(2): + znear, zfar = 0.05, 50.0 + left, right, top, bottom = self.system.getProjectionRaw(n) + self.scn.camera[n].frustum_bottom = -bottom * znear + self.scn.camera[n].frustum_top = -top * znear + self.scn.camera[n].frustum_center = 0.5 * (left + right) * znear + self.scn.camera[n].frustum_near = znear + self.scn.camera[n].frustum_far = zfar + gl.glActiveTexture(gl.GL_TEXTURE2) + self.idtex = gl.glGenTextures(1) + gl.glBindTexture(gl.GL_TEXTURE_2D, self.idtex) + gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MAG_FILTER, gl.GL_NEAREST) + gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MIN_FILTER, gl.GL_NEAREST) + gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_WRAP_S, gl.GL_CLAMP_TO_EDGE) + gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_WRAP_T, gl.GL_CLAMP_TO_EDGE) + gl.glTexImage2D(gl.GL_TEXTURE_2D, 0, gl.GL_RGBA8, 2 * self.width, self.height, 0, gl.GL_RGBA, gl.GL_UNSIGNED_BYTE, None) + + def v_update(self): + poses = (openvr.TrackedDevicePose_t * openvr.k_unMaxTrackedDeviceCount)() + openvr.VRCompositor().waitGetPoses(poses, openvr.k_unMaxTrackedDeviceCount, None, 0) + m = np.array(poses[openvr.k_unTrackedDeviceIndex_Hmd].mDeviceToAbsoluteTracking.m) + self.roompos, self.roommat = m[0:3, 3], m[0:3, 0:3] + for n in range(2): + self.scn.camera[n].pos[:] = self.roompos + np.matmul(self.roommat, self.eyeoffset[n]) + self.scn.camera[n].forward[0:3] = -self.roommat[:, 2] + self.scn.camera[n].up[0:3] = self.roommat[:, 1] + + def v_render(self): + # resolve multi-sample offscreen buffer + gl.glBindFramebuffer(gl.GL_READ_FRAMEBUFFER, self.con.offFBO) + gl.glReadBuffer(gl.GL_COLOR_ATTACHMENT0) + gl.glBindFramebuffer(gl.GL_DRAW_FRAMEBUFFER, self.con.offFBO_r) + gl.glDrawBuffer(gl.GL_COLOR_ATTACHMENT0) + gl.glBlitFramebuffer(0, 0, 2 * self.width, self.height, + 0, 0, 2 * self.width, self.height, + gl.GL_COLOR_BUFFER_BIT, gl.GL_NEAREST) + # blit to window, left only, window is half-size + gl.glBindFramebuffer(gl.GL_READ_FRAMEBUFFER, self.con.offFBO_r) + gl.glReadBuffer(gl.GL_COLOR_ATTACHMENT0) + gl.glBindFramebuffer(gl.GL_DRAW_FRAMEBUFFER, 0) + gl.glDrawBuffer(gl.GL_BACK if self.con.windowDoublebuffer else gl.glDrawBuffer(gl.GL_FRONT)) + gl.glBlitFramebuffer(0, 0, self.width, self.height, + 0, 0, self.width // 2, self.height // 2, + gl.GL_COLOR_BUFFER_BIT, gl.GL_NEAREST) + # blit to vr texture + gl.glActiveTexture(gl.GL_TEXTURE2) + gl.glBindFramebuffer(gl.GL_DRAW_FRAMEBUFFER, self.con.offFBO_r) + gl.glFramebufferTexture2D(gl.GL_FRAMEBUFFER, gl.GL_COLOR_ATTACHMENT1, gl.GL_TEXTURE_2D, self.idtex, 0) + gl.glDrawBuffer(gl.GL_COLOR_ATTACHMENT1) + gl.glBlitFramebuffer(0, 0, 2 * self.width, self.height, + 0, 0, 2 * self.width, self.height, + gl.GL_COLOR_BUFFER_BIT, gl.GL_NEAREST) + gl.glFramebufferTexture2D(gl.GL_FRAMEBUFFER, gl.GL_COLOR_ATTACHMENT1, gl.GL_TEXTURE_2D, 0, 0) + gl.glDrawBuffer(gl.GL_COLOR_ATTACHMENT0) + # submit to vr + boundLeft = openvr.VRTextureBounds_t(0., 0., 0.5, 1.) + boundRight = openvr.VRTextureBounds_t(0.5, 0., 1., 1.) + vTex = openvr.Texture_t(self.idtex, openvr.TextureType_OpenGL, openvr.ColorSpace_Gamma) + openvr.VRCompositor().submit(openvr.Eye_Left, vTex, boundLeft) + openvr.VRCompositor().submit(openvr.Eye_Right, vTex, boundRight) + # swap if window is double-buffered, flush just in case + if self.con.windowDoublebuffer: + glfw.swap_buffers(self._window) + gl.glFlush() + + def render(self): + while not glfw.window_should_close(self._window): + if self.sim.data.time - self.frametime > 1 / self.FPS or self.sim.data.time < self.frametime: + print("aaa") + functions.mjv_updateScene(self.sim.model, self.sim.data, self.vopt, self.pert, self.cam, const.CAT_ALL, self.scn) + print("qqqwe") + self.v_update() + print("dasdasdsaasd") + functions.mjr_setBuffer(const.FB_OFFSCREEN, self.con) + self._opengl_context.set_buffer_size(self.width, self.height) + print("111") + functions.mjr_render(self.rect, self.scn, self.con) + print("222") + self.FPS = .9 * self.FPS + .1 / (glfw.get_time() - self.lasttm) + self.lasttm = glfw.get_time() + self.v_render() + self.frametime = self.sim.data.time + self.sim.step() + glfw.poll_events() + + +if __name__ == '__main__': + if len(sys.argv) >= 2: + fname = sys.argv[1] + else: + fname = os.path.join(os.path.expanduser("~"), ".mujoco", "mjpro150", "model", "humanoid100.xml") + + sim = MjSim(load_model_from_xml(open(fname).read())) + viewer = MjViewerVR(sim) + + # XXX: here should be while loop. + viewer.render() diff --git a/examples/serialize_model.py b/examples/serialize_model.py new file mode 100644 index 00000000..50f299aa --- /dev/null +++ b/examples/serialize_model.py @@ -0,0 +1,20 @@ +""" +# Serialization/Deserialization of Models + +Sometimes its useful to send a mujoco model over the network, or save it +to a file with all assets embedded. +""" +import mujoco_py + +# The binary MJB format is preferable, since it includes assets like +# textures and meshes. +model = mujoco_py.load_model_from_path("xmls/claw.xml") +mjb_bytestring = model.get_mjb() +model_from_binary = mujoco_py.load_model_from_mjb(mjb_bytestring) +assert model.nbody == model_from_binary.nbody + +# XML is preferable to MJB when readability and backward compatibility are +# important. +xml_string = model.get_xml() +model_from_xml = mujoco_py.load_model_from_xml(xml_string) +assert model.nbody == model_from_xml.nbody diff --git a/examples/setting_state.py b/examples/setting_state.py new file mode 100644 index 00000000..42904750 --- /dev/null +++ b/examples/setting_state.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +""" +Example for how to modifying the MuJoCo qpos during execution. +""" + +import os +from mujoco_py import load_model_from_xml, MjSim, MjViewer + +MODEL_XML = """ + + + + + + + + + + + + + +""" + + +def print_box_xpos(sim): + print("box xpos:", sim.data.get_body_xpos("box")) + + +model = load_model_from_xml(MODEL_XML) +sim = MjSim(model) +viewer = MjViewer(sim) + +states = [{'box:x': +0.8, 'box:y': +0.8}, + {'box:x': -0.8, 'box:y': +0.8}, + {'box:x': -0.8, 'box:y': -0.8}, + {'box:x': +0.8, 'box:y': -0.8}, + {'box:x': +0.0, 'box:y': +0.0}] + +# MjModel.joint_name2id returns the index of a joint in +# MjData.qpos. +x_joint_i = sim.model.get_joint_qpos_addr("box:x") +y_joint_i = sim.model.get_joint_qpos_addr("box:y") + +print_box_xpos(sim) + +while True: + for state in states: + sim_state = sim.get_state() + sim_state.qpos[x_joint_i] = state["box:x"] + sim_state.qpos[y_joint_i] = state["box:y"] + sim.set_state(sim_state) + sim.forward() + print("updated state to", state) + print_box_xpos(sim) + viewer.render() + + if os.getenv('TESTING') is not None: + break diff --git a/examples/simpool.py b/examples/simpool.py new file mode 100644 index 00000000..40c2cd70 --- /dev/null +++ b/examples/simpool.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# Runs several simulations in parallel. + +from mujoco_py import load_model_from_xml, MjSim, MjSimPool + +MODEL_XML = """ + + + + + + + + + + + + + + + + + +""" + +model = load_model_from_xml(MODEL_XML) +pool = MjSimPool([MjSim(model) for _ in range(20)]) +for i, sim in enumerate(pool.sims): + sim.data.qpos[:] = 0.0 + sim.data.qvel[:] = 0.0 + sim.data.ctrl[:] = i + +# Advance all 20 simulations 100 times. +for _ in range(100): + pool.step() + +for i, sim in enumerate(pool.sims): + print("%d-th sim qpos=%s" % (i, str(sim.data.qpos))) diff --git a/examples/tosser.py b/examples/tosser.py new file mode 100644 index 00000000..791b8875 --- /dev/null +++ b/examples/tosser.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +""" +Shows how to toss a capsule to a container. +""" +from mujoco_py import load_model_from_path, MjSim, MjViewer +import os + +model = load_model_from_path("xmls/tosser.xml") +sim = MjSim(model) + +viewer = MjViewer(sim) + + +sim_state = sim.get_state() + +while True: + sim.set_state(sim_state) + + for i in range(1000): + if i < 150: + sim.data.ctrl[:] = 0.0 + else: + sim.data.ctrl[:] = -1.0 + sim.step() + viewer.render() + + if os.getenv('TESTING') is not None: + break diff --git a/mujoco_py/.ruby-version b/mujoco_py/.ruby-version deleted file mode 100644 index 93045150..00000000 --- a/mujoco_py/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -ruby-2.1.0 diff --git a/mujoco_py/Gemfile b/mujoco_py/Gemfile deleted file mode 100644 index 60bd65d5..00000000 --- a/mujoco_py/Gemfile +++ /dev/null @@ -1,4 +0,0 @@ -source 'https://rubygems.org' - -gem 'pry' -gem 'activesupport' diff --git a/mujoco_py/Gemfile.lock b/mujoco_py/Gemfile.lock deleted file mode 100644 index 9847ad28..00000000 --- a/mujoco_py/Gemfile.lock +++ /dev/null @@ -1,29 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (4.1.8) - i18n (~> 0.6, >= 0.6.9) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.1) - tzinfo (~> 1.1) - coderay (1.1.0) - i18n (0.7.0) - json (1.8.1) - method_source (0.8.2) - minitest (5.5.1) - pry (0.10.1) - coderay (~> 1.1.0) - method_source (~> 0.8.1) - slop (~> 3.4) - slop (3.6.0) - thread_safe (0.3.4) - tzinfo (1.2.2) - thread_safe (~> 0.1) - -PLATFORMS - ruby - -DEPENDENCIES - activesupport - pry diff --git a/mujoco_py/__init__.py b/mujoco_py/__init__.py index 4660e8b5..0e7704b3 100644 --- a/mujoco_py/__init__.py +++ b/mujoco_py/__init__.py @@ -1,10 +1,19 @@ -from .config import init_config, get_key_path -init_config() +from mujoco_py.builder import cymj, ignore_mujoco_warnings, functions, MujocoException +from mujoco_py.generated import const +from mujoco_py.mjviewer import MjViewer, MjViewerBasic +from mujoco_py.version import __version__, get_version -from .mjviewer import MjViewer -from .mjcore import MjModel -from .mjcore import register_license -from .mjconstants import * -from .platname_targdir import targdir +load_model_from_path = cymj.load_model_from_path +load_model_from_xml = cymj.load_model_from_xml +load_model_from_mjb = cymj.load_model_from_mjb +MjSim = cymj.MjSim +MjSimState = cymj.MjSimState +MjSimPool = cymj.MjSimPool +PyMjModel = cymj.PyMjModel +PyMjData = cymj.PyMjData -register_license(get_key_path()) +# Public API: +__all__ = ['MjSim', 'MjSimState', 'MjSimPool', 'MjViewer', "MjViewerBasic", "MujocoException", + 'load_model_from_path', 'load_model_from_xml', 'load_model_from_mjb', + 'ignore_mujoco_warnings', 'const', "functions", + "__version__", "get_version"] diff --git a/mujoco_py/builder.py b/mujoco_py/builder.py new file mode 100644 index 00000000..32ca5d9d --- /dev/null +++ b/mujoco_py/builder.py @@ -0,0 +1,299 @@ +import distutils +import imp +import os +import shutil +import subprocess +import sys +from distutils.core import Extension +from distutils.dist import Distribution +from distutils.sysconfig import customize_compiler +from os.path import abspath, dirname, exists, join, getmtime + +import numpy as np +from Cython.Build import cythonize +from Cython.Distutils.old_build_ext import old_build_ext as build_ext + +from mujoco_py.utils import discover_mujoco + + +def load_cython_ext(mjpro_path): + """ + Loads the cymj Cython extension. This is safe to be called from + multiple processes running on the same machine. + + Cython only gives us back the raw path, regardless of whether + it found a cached version or actually compiled. Since we do + non-idempotent postprocessing of the DLL, be extra careful + to only do that once and then atomically move to the final + location. + """ + if ('glfw' in sys.modules and + 'mujoco' in abspath(sys.modules["glfw"].__file__)): + print(''' +WARNING: Existing glfw python module detected! + +MuJoCo comes with its own version of GLFW, so it's preferable to use that one. + +The easy solution is to `import mujoco_py` _before_ `import glfw`. +''') + + if sys.platform == 'darwin': + Builder = MacExtensionBuilder + elif sys.platform == 'linux': + if exists('/usr/local/nvidia/lib64'): + Builder = LinuxGPUExtensionBuilder + else: + Builder = LinuxCPUExtensionBuilder + elif sys.platform.startswith("win"): + Builder = WindowsExtensionBuilder + else: + raise RuntimeError("Unsupported platform %s" % sys.platform) + + builder = Builder(mjpro_path) + + cext_so_path = builder.build() + mod = imp.load_dynamic("cymj", cext_so_path) + return mod + + +class custom_build_ext(build_ext): + """ + Custom build_ext to suppress the "-Wstrict-prototypes" warning. + It arises from the fact that we're using C++. This seems to be + the cleanest way to get rid of the extra flag. + + See http://stackoverflow.com/a/36293331/248400 + """ + + def build_extensions(self): + customize_compiler(self.compiler) + + try: + self.compiler.compiler_so.remove("-Wstrict-prototypes") + except (AttributeError, ValueError): + pass + build_ext.build_extensions(self) + + +def fix_shared_library(so_file, name, library_path): + ldd_output = subprocess.check_output( + ['ldd', so_file]).decode('utf-8') + + if name in ldd_output: + subprocess.check_call(['patchelf', + '--remove-needed', + name, + so_file]) + subprocess.check_call( + ['patchelf', '--add-needed', + library_path, + so_file]) + + +class MujocoExtensionBuilder(): + + CYMJ_DIR_PATH = abspath(dirname(__file__)) + + def __init__(self, mjpro_path): + self.mjpro_path = mjpro_path + self.extension = Extension( + 'mujoco_py.cymj', + sources=[join(self.CYMJ_DIR_PATH, "cymj.pyx")], + include_dirs=[ + self.CYMJ_DIR_PATH, + join(mjpro_path, 'include'), + np.get_include(), + ], + libraries=['mujoco150'], + library_dirs=[join(mjpro_path, 'bin')], + extra_compile_args=[ + '-fopenmp', # needed for OpenMP + '-w', # suppress numpy compilation warnings + ], + extra_link_args=['-fopenmp'], + language='c') + + def build(self): + dist = Distribution({ + "script_name": None, + "script_args": ["build_ext"] + }) + dist.ext_modules = cythonize([self.extension]) + dist.include_dirs = [] + dist.cmdclass = {'build_ext': custom_build_ext} + build = dist.get_command_obj('build') + # following the convention of cython's pyxbuild and naming + # base directory "_pyxbld" + build.build_base = join(self.CYMJ_DIR_PATH, 'generated', + '_pyxbld_%s' % self.__class__.__name__) + dist.parse_command_line() + obj_build_ext = dist.get_command_obj("build_ext") + dist.run_commands() + so_file_path, = obj_build_ext.get_outputs() + return so_file_path + + +class WindowsExtensionBuilder(MujocoExtensionBuilder): + + def __init__(self, mjpro_path): + super().__init__(mjpro_path) + os.environ["PATH"] += ";" + join(mjpro_path, "bin") + self.extension.sources.append(self.CYMJ_DIR_PATH + "/gl/dummyshim.c") + + +class LinuxCPUExtensionBuilder(MujocoExtensionBuilder): + + def __init__(self, mjpro_path): + super().__init__(mjpro_path) + + self.extension.sources.append( + join(self.CYMJ_DIR_PATH, "gl", "osmesashim.c")) + self.extension.libraries.extend(['glewosmesa', 'OSMesa']) + self.extension.runtime_library_dirs = [join(mjpro_path, 'bin')] + + +class LinuxGPUExtensionBuilder(MujocoExtensionBuilder): + + def __init__(self, mjpro_path): + super().__init__(mjpro_path) + + self.extension.sources.append(self.CYMJ_DIR_PATH + "/gl/eglshim.c") + self.extension.include_dirs.append(self.CYMJ_DIR_PATH + '/vendor/egl') + self.extension.libraries.extend(['glewegl']) + self.extension.runtime_library_dirs = [join(mjpro_path, 'bin')] + + def build(self): + so_file_path = super().build() + nvidia_lib_dir = '/usr/local/nvidia/lib64/' + fix_shared_library(so_file_path, 'libOpenGL.so', + join(nvidia_lib_dir, 'libOpenGL.so.0')) + fix_shared_library(so_file_path, 'libEGL.so', + join(nvidia_lib_dir, 'libEGL.so.1')) + return so_file_path + + +class MacExtensionBuilder(MujocoExtensionBuilder): + + def __init__(self, mjpro_path): + super().__init__(mjpro_path) + + self.extension.sources.append(self.CYMJ_DIR_PATH + "/gl/dummyshim.c") + self.extension.libraries.extend(['glfw.3']) + self.extension.define_macros = [('ONMAC', None)] + self.extension.runtime_library_dirs = [join(mjpro_path, 'bin')] + + def build(self): + # Prefer GCC 6 for now since GCC 7 may behave differently. + c_compilers = ['/usr/local/bin/gcc-6', '/usr/local/bin/gcc-7'] + available_c_compiler = None + for c_compiler in c_compilers: + if distutils.spawn.find_executable(c_compiler) is not None: + available_c_compiler = c_compiler + break + if available_c_compiler is None: + raise RuntimeError( + 'Could not find GCC 6 or GCC 7 executable.\n\n' + 'HINT: On OS X, install GCC 6 with ' + '`brew install gcc --without-multilib`.') + os.environ['CC'] = available_c_compiler + + so_file_path = super().build() + del os.environ['CC'] + return self.manually_link_libraries(so_file_path) + + def manually_link_libraries(self, raw_cext_dll_path): + root, ext = os.path.splitext(raw_cext_dll_path) + final_cext_dll_path = root + '_final' + ext + + # If someone else already built the final DLL, don't bother + # recreating it here, even though this should still be idempotent. + if (exists(final_cext_dll_path) and + getmtime(final_cext_dll_path) >= getmtime(raw_cext_dll_path)): + return final_cext_dll_path + + tmp_final_cext_dll_path = final_cext_dll_path + '~' + shutil.copyfile(raw_cext_dll_path, tmp_final_cext_dll_path) + + mj_bin_path = join(self.mjpro_path, 'bin') + + # Fix the rpath of the generated library -- i lost the Stackoverflow + # reference here + from_mujoco_path = '@executable_path/libmujoco150.dylib' + to_mujoco_path = '%s/libmujoco150.dylib' % mj_bin_path + subprocess.check_call(['install_name_tool', + '-change', + from_mujoco_path, + to_mujoco_path, + tmp_final_cext_dll_path]) + + from_glfw_path = 'libglfw.3.dylib' + to_glfw_path = os.path.join(mj_bin_path, 'libglfw.3.dylib') + subprocess.check_call(['install_name_tool', + '-change', + from_glfw_path, + to_glfw_path, + tmp_final_cext_dll_path]) + + os.rename(tmp_final_cext_dll_path, final_cext_dll_path) + return final_cext_dll_path + + +class MujocoException(Exception): + pass + + +def user_warning_raise_exception(warn_bytes): + ''' + User-defined warning callback, which is called by mujoco on warnings. + Here we have two primary jobs: + - Detect known warnings and suggest fixes (with code) + - Decide whether to raise an Exception and raise if needed + More cases should be added as we find new failures. + ''' + # TODO: look through test output to see MuJoCo warnings to catch + # and recommend. Also fix those tests + warn = warn_bytes.decode() # Convert bytes to string + if 'Pre-allocated constraint buffer is full' in warn: + raise MujocoException(warn + 'Increase njmax in mujoco XML') + if 'Pre-allocated contact buffer is full' in warn: + raise MujocoException(warn + 'Increase njconmax in mujoco XML') + raise MujocoException('Got MuJoCo Warning: {}'.format(warn)) + + +def user_warning_ignore_exception(warn_bytes): + pass + + +class ignore_mujoco_warnings: + """ + Class to turn off mujoco warning exceptions within a scope. Useful for + large, vectorized rollouts. + """ + + def __enter__(self): + self.prev_user_warning = cymj.get_warning_callback() + cymj.set_warning_callback(user_warning_ignore_exception) + return self + + def __exit__(self, type, value, traceback): + cymj.set_warning_callback(self.prev_user_warning) + + +mjpro_path, key_path = discover_mujoco() +cymj = load_cython_ext(mjpro_path) + + +# Trick to expose all mj* functions from mujoco in mujoco_py.* +class dict2(object): + pass + + +functions = dict2() +for func_name in dir(cymj): + if func_name.startswith("_mj"): + setattr(functions, func_name[1:], getattr(cymj, func_name)) + +functions.mj_activate(key_path) + +# Set user-defined callbacks that raise assertion with message +cymj.set_warning_callback(user_warning_raise_exception) diff --git a/mujoco_py/codegen.rb b/mujoco_py/codegen.rb deleted file mode 100644 index 07641a11..00000000 --- a/mujoco_py/codegen.rb +++ /dev/null @@ -1,383 +0,0 @@ -require 'pry' -require 'active_support/all' - -CTYPES_MAP = { - 'int' => 'c_int', - # 'mjContact' => 'c_void_p', - 'double' => 'c_double', - 'float' => 'c_float', - 'char' => 'c_char', - 'unsigned char' => 'c_ubyte', - 'unsigned int' => 'c_uint', -} - -CTYPES_PTR_MAP = { - 'void' => 'c_void_p', - # 'char' => 'c_char_p', -} - -DEDEF_MAP = { - 'mjtNum' => 'double', - 'mjtByte' => 'unsigned char', - # 'mjNREF' => '2', - # 'mjNDYN' => '3', - # 'mjNGAIN' => '3', - # 'mjNBIAS' => '3', - # 'mjNIMP' => '3', - # 'mjNEQDATA' => '7', - # 'mjNTRN' => '1', -} - -NP_DTYPE_MAP = { - 'double' => 'double', - 'float' => 'float', - 'int' => 'int', - 'unsigned char' => 'uint8', - # 'char' => 'uint8', -} - -RESERVED = %w[global map buffer] - -def dereserve(name) - if RESERVED.include? name - "#{name}_" - else - name - end -end - -def dedef(type) - DEDEF_MAP[type] || type -end - -def process_dedefs(source) - def_lines = source.lines.map(&:strip).select{|x| x =~ /^#define \w+\s+\d+/} - defs = def_lines.map {|x| - x, y = x.gsub(/\/\/.*/, "").gsub(/^#define/, "").split.map(&:strip) - [x, y.to_i] - } - DEDEF_MAP.merge!(Hash[defs]) -end - -class String - def blank_or_comment? - self.strip.size == 0 || self.strip =~ /^\/\// - end -end - -def struct_regex(name) - /struct #{name}(\s+[^\n]*)?\n\{(.*?)\};/ms -end - -def anon_struct_regex - /struct(.*?)\{(.*?)\}(.*?);/ms -end - -def parse_struct(source, name, hints) - source =~ struct_regex(name) - content = $2 - subs = [] - # note that this won't work in general; luckily for us, the _mjVisual struct - # only has anonymous struct fields and nothing else - subprops = [] - hint_name = "#{name[1..-1].upcase}_POINTERS" - struct_hint = hints[hint_name] || {} - content.scan(anon_struct_regex) { - subcontent = $2 - subname = $3 - subs << { - props: subcontent.lines.map(&:strip).reject(&:blank_or_comment?).map{|x| parse_struct_line(source, x, struct_hint)}, - name: "ANON_#{subname.strip.gsub(/^_/,'').upcase}", - source: source - } - subprops << { - kind: :anonstruct, - type: "ANON_#{subname.strip.gsub(/^_/,'').upcase}", - name: dereserve(subname.strip), - } - } - rest = content.gsub(anon_struct_regex, '') - rest = rest.lines.map(&:strip).reject(&:blank_or_comment?) - parsed = rest.map {|x| parse_struct_line(source, x, struct_hint)} - { - props: subprops + parsed, - name: dereserve(name), - source: source, - subs: subs, - } -end - -def parse_struct_line(source, line, hints) - if line =~ /^(\w+)\s+(\w+)\s+(\w+);/ - { - kind: :value, - type: dedef($1 + " " + $2), - name: $3 - } - elsif line =~ /^(\w+)\s+(\w+);/ - { - kind: :value, - type: dedef($1), - name: $2 - } - elsif line =~ /^(\w+?)\*\s+(\w+?);/ - ret = { - kind: :pointer, - type: dedef($1), - name: $2 - } - # special case - if ret[:name] == "buffer" && ret[:type] == "void" - ret[:type] = "unsigned char" - end - if hints.size > 0 - match = hints.find{|x| x[1] == $2} - if match - ret[:hint] = match[2..-1].map{|x| dedef(x)} - # binding.pry - end - end - unless ret[:hint] - if line =~ /\/\/.*\((\w+)\s+(\w+)\)$/ # size hint - ret[:hint] = [dedef($1)] - elsif line =~ /\/\/.*\(([\w\*]+)\s+x\s+(\w+)\)$/ # size hint - ret[:hint] = [dedef($1), dedef($2)] - elsif line =~ /\/\/.*\((\w+)\)$/ # size hint - ret[:hint] = [dedef($1)] - end - end - ret - elsif line =~ /(\w+)\s+(\w+)\[\s*(\w+)\s*\];/ - ret = { - kind: :array, - type: dedef($1), - name: $2, - } - size = $3 - if size !~ /\d+/ - size = resolve_id_value(source, size) - end - ret[:size] = size - ret - elsif line =~ /(\w+)\s+(\w+)\[\s*(\w+)\s*\]\[\s*(\w+)\s*\];/ - ret = { - kind: :double_array, - type: dedef($1), - name: $2, - } - size1 = $3 - size2 = $4 - if size1 !~ /\d+/ - size1 = resolve_id_value(source, size1) - end - if size2 !~ /\d+/ - size2 = resolve_id_value(source, size2) - end - ret[:size] = [size1, size2] - ret - else - binding.pry - end -end - -def resolve_id_value(source, id) - if DEDEF_MAP.include?(id) - return DEDEF_MAP[id] - end - source =~ /enum\s+.*\{(.*?)\s+#{id}\s+(.*?)\}/ms - if $1.nil? - if source =~ /#define\s+#{id}\s+(\d+)/ - $1.to_i - else - binding.pry - end - else - $1.lines.reject(&:blank_or_comment?).size - end -end - -def to_ctypes_type(prop) - case prop[:kind] - when :pointer - CTYPES_PTR_MAP[prop[:type]] || \ - "POINTER(#{to_ctypes_type(prop.merge(kind: :value))})" - when :anonstruct - prop[:type] - when :array - "#{to_ctypes_type(prop.merge(kind: :value))} * #{prop[:size]}" - when :value - CTYPES_MAP[prop[:type]] || prop[:type].upcase - when :double_array - typ = "#{to_ctypes_type(prop.merge(kind: :value))} * #{prop[:size][-1]}" - prop[:size].reverse[1..-1].each do |s| - typ = "(#{typ}) * #{s}" - end - typ - else - puts prop - raise :wtf - end -end - - -def gen_ctypes_src(source, struct) -%Q{ -class #{struct[:name].gsub(/^_/,'').upcase}(Structure): - #{(struct[:subs] || []).map{|subs| gen_ctypes_src(source, subs).split("\n").join("\n ")}.join("\n ")} - _fields_ = [ - #{struct[:props].map{|prop| - "(\"#{prop[:name]}\", #{to_ctypes_type(prop)})," - }.join("\n ")} - ] -} -end - - - -def gen_wrapper_src(source, struct) - - def to_size_factor(source, struct, hint_elem) - hint_elem = hint_elem.to_s - if hint_elem.to_s != hint_elem.to_s.downcase && hint_elem.to_s.size > 3 - if source =~ /#define\s+#{hint_elem}\s+(\d+)/ - $1.to_i - else - binding.pry - end - end - if hint_elem =~ /\*/ - hint_elem.split("*").map{|x| to_size_factor(source, struct, x)}.join("*") - elsif hint_elem =~ /^\d+$/ - hint_elem - else - if struct[:props].any?{|x| x[:name] == hint_elem} - "self.#{hint_elem}" - else - "self._size_src.#{hint_elem}" - end - end - end - -%Q{ -class #{struct[:name].gsub(/^_/,'').camelize}Wrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - #{struct[:props].map{|prop| - if ([:array, :pointer].include?(prop[:kind]) && NP_DTYPE_MAP.include?(prop[:type])) \ - || prop[:kind] == :pointer && prop[:name] == "buffer" - dtype = - if NP_DTYPE_MAP.include? prop[:type] - NP_DTYPE_MAP[prop[:type]] - elsif prop[:name] == "buffer" - "uint8" - else - nil - end - - if prop[:kind] == :pointer && dtype && prop[:hint] - count = prop[:hint].map{|hint_elem| to_size_factor(source, struct, hint_elem)}.join("*") - shape = "(" + prop[:hint].map{|hint_elem| to_size_factor(source, struct, hint_elem)}.join(", ") + ", )" - ctype_type = to_ctypes_type(prop.merge(kind: :value)) - elsif prop[:kind] == :array - count = prop[:size] - shape = "(#{count}, )" - ctype_type = to_ctypes_type(prop.merge(kind: :value)) - else - $stderr.puts "ignoring #{prop}" - next - end -%Q{ -@property -def #{prop[:name]}(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.#{prop[:name]}, dtype=np.#{dtype}, count=(#{count})), #{shape}) - arr.setflags(write=False) - return arr - -@#{prop[:name]}.setter -def #{prop[:name]}(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(#{ctype_type})) - memmove(self._wrapped.contents.#{prop[:name]}, val_ptr, #{count} * sizeof(#{ctype_type})) -} - - elsif prop[:kind] == :value || prop[:kind] == :anonstruct || prop[:kind] == :array -%Q{ -@property -def #{prop[:name]}(self): - return self._wrapped.contents.#{prop[:name]} - -@#{prop[:name]}.setter -def #{prop[:name]}(self, value): - self._wrapped.contents.#{prop[:name]} = value -} - elsif prop[:kind] == :pointer && prop[:type] == 'char' -%Q{ -@property -def #{prop[:name]}(self): - return self._wrapped.contents.#{prop[:name]} -} - elsif prop[:kind] == :pointer && prop[:type] == 'mjContact' - # count = prop[:hint].map{|hint_elem| to_size_factor(source, struct, hint_elem)}.join("*") - # binding.pry - else - # move on - # binding.pry - end - }.compact.map{|propsrc| propsrc.split("\n").join("\n ")}.join("\n ")} -} -end - - -def parse_hints(hint_source) - defs = [] - in_def = false - cur_def = nil - cur_def_name = nil - hint_source.lines.each do |line| - if line.strip =~ /^#define (\w+)/ - in_def = true - cur_def_name = $1 - cur_def = [cur_def_name, []] - elsif in_def - filtered = line.strip.gsub(/^X\(/, "").gsub(/\)$/, "").gsub(/\)\s*\\$/, "") - parts = filtered.split(",").map(&:strip) - cur_def[1] << parts - if line.strip[-1] != '\\' - defs << cur_def - in_def = false - end - end - end - Hash[defs] -end - -source = open(ARGV.first, 'r').read -dim_hint_source = open(ARGV[1], 'r').read - -process_dedefs(source) - -hints = parse_hints(dim_hint_source) - -source = source.gsub(/\r/, '') -source = source.gsub(/\/\*.*?\*\//, '') - -puts %Q{ -# AUTO GENERATED. DO NOT CHANGE! -from ctypes import * -import numpy as np -} - -structs = %w[_mjContact _mjrRect _mjvCameraPose _mjrOption _mjrContext _mjvCamera _mjvOption _mjvGeom _mjvLight _mjvObjects _mjOption _mjVisual _mjStatistic _mjData _mjModel].map{|x| parse_struct(source, x, hints) } - -structs.each {|s| puts gen_ctypes_src(source, s) } -structs.each {|s| puts gen_wrapper_src(source, s) } diff --git a/mujoco_py/config.py b/mujoco_py/config.py deleted file mode 100644 index 86daf04a..00000000 --- a/mujoco_py/config.py +++ /dev/null @@ -1,49 +0,0 @@ -import distutils.version -import numpy -import os -import sys - -from . import error - -_key_path = None -mjpro_path = None - -def get_key_path(): - return _key_path - -def init_config(): - global _key_path, mjpro_path - - _key_path = os.environ.get('MUJOCO_PY_MJKEY_PATH') - if _key_path and not os.path.exists(_key_path): - raise error.MujocoDependencyError('MUJOCO_PY_MJKEY_PATH path does not exist: {}'.format(_key_path)) - - mjpro_path = os.environ.get('MUJOCO_PY_MJPRO_PATH') - if mjpro_path and not os.path.exists(mjpro_path): - raise error.MujocoDependencyError('MUJOCO_PY_MJPRO_PATH path does not exist: {}'.format(mjpro_path)) - - default__key_path = os.path.expanduser('~/.mujoco/mjkey.txt') - default_mjpro_path = os.path.expanduser('~/.mujoco/mjpro131') - if not _key_path and os.path.exists(default__key_path): - _key_path = default__key_path - if not mjpro_path and os.path.exists(default_mjpro_path): - mjpro_path = default_mjpro_path - - if not _key_path and not mjpro_path: - raise error.MujocoDependencyError('To use MuJoCo, you need to either populate ~/.mujoco/mjkey.txt and ~/.mujoco/mjpro131, or set the MUJOCO_PY_MJKEY_PATH and MUJOCO_PY_MJPRO_PATH environment variables appropriately. Follow the instructions on https://github.com/openai/mujoco-py for where to obtain these.') - elif not _key_path: - raise error.MujocoDependencyError('Found your MuJoCo binaries but not license key. Please put your key into ~/.mujoco/mjkey.txt or set MUJOCO_PY_MJKEY_PATH. Follow the instructions on https://github.com/openai/mujoco-py for setup.') - elif not mjpro_path: - raise error.MujocoDependencyError('Found your MuJoCo license key but not binaries. Please put your binaries into ~/.mujoco/mjpro131 or set MUJOCO_PY_MJPRO_PATH. Follow the instructions on https://github.com/openai/mujoco-py for setup.') - - check_mujoco_version() - check_numpy_version() - -def check_mujoco_version(): - mjpro = os.path.basename(mjpro_path) - if mjpro != 'mjpro131': - raise error.MujocoDependencyError("We expected your MUJOCO_PY_MJPRO_PATH final directory to be 'mjpro131', but you provided: {} ({}). MuJoCo often changes in incompatible ways between versions, so you must use MuJoCo 1.31. If you're using MuJoCo 1.31 but changed the directory name, simply change the name back.".format(mjpro, mjpro_path)) - -def check_numpy_version(): - if distutils.version.LooseVersion(numpy.__version__) < distutils.version.LooseVersion('1.10.4'): - raise error.MujocoDependencyError('You are running with numpy {}, but you must use >= 1.10.4. (In particular, earlier versions of numpy have been seen to cause mujoco-py to return different results from later ones.)'.format(numpy.__version__, '1.10.4')) diff --git a/mujoco_py/cymj.pyx b/mujoco_py/cymj.pyx new file mode 100644 index 00000000..e31bf207 --- /dev/null +++ b/mujoco_py/cymj.pyx @@ -0,0 +1,148 @@ +# cython: language_level=3 +import copy +import logging +import os +import platform +import tempfile +import sys +from collections import namedtuple +from libc.stdlib cimport malloc, free +from libc.string cimport strncpy +from numbers import Number +from tempfile import TemporaryDirectory + +import numpy as np +from cython cimport view +from cython.parallel import parallel, prange + +from mujoco_py.generated import const + +include "generated/wrappers.pxi" +include "opengl_context.pyx" +include "mjsim.pyx" +include "mjsimpool.pyx" +include "mjsimstate.pyx" +include "mjrendercontext.pyx" + +cdef extern from "gl/glshim.h": + + cdef int initOpenGL(int device_id) + cdef void closeOpenGL() + cdef int setOpenGLBufferSize(int width, int height) + +# TODO: make this function or class so these comments turn into doc strings: + +# Python warning callback function, which is set +# MuJoCo has a user-settable callback function for warnings: mju_user_warning() +# We want to supply a python function, and be able to raise exceptions. +# To do this we have to wrap two things: + +# This is the python callback function. We save it in the global() context +# so we can access it from a C wrapper function (c_warning_callback) +cdef object py_warning_callback +# This is the saved exception. Because the C callback can not propagate +# exceptions, this must be set to None before calling into MuJoCo, and then +# inspected afterwards. +# These are combined in a simple class which handles both: +# with wrap_mujoco_warning(): +# mj_somefunc() +cdef object py_warning_exception = None + + +cdef void c_warning_callback(const char *msg) with gil: + ''' + Wraps the warning callback so we can raise exceptions. + Because callbacks can't propagate exceptions, we set a global that has + to be inspected later. + Use wrap_mujoco_warning() to check for that saved exception and + re-raise it back to the caller. + ''' + global py_warning_callback + try: + ( py_warning_callback)(msg) + except Exception as e: + global py_warning_exception + py_warning_exception = e + + +def set_warning_callback(warn): + ''' + Set a user-defined warning callback. It should take in a string message + (the warning string) and raise an Exception. + See c_warning_callback, which is the C wrapper to the user defined function + ''' + global py_warning_callback + global mju_user_warning + py_warning_callback = warn + mju_user_warning = c_warning_callback + + +def get_warning_callback(): + ''' + Returns the user-defined warning callback, for use in e.g. a context + manager. + ''' + global py_warning_callback + return py_warning_callback + + +class wrap_mujoco_warning(object): + ''' + Class to wrap capturing exceptions raised during warning callbacks. + Use this to capture warnings in mujoco calls. Example: + with wrap_mujoco_warning(): + mj_somefunc() + ''' + def __enter__(self): + global py_warning_exception + py_warning_exception = None + def __exit__(self, type, value, traceback): + global py_warning_exception + if py_warning_exception is not None: + raise py_warning_exception + + +def load_model_from_path(str path): + """Loads model from path.""" + cdef char errstr[300] + cdef mjModel *model + with wrap_mujoco_warning(): + model = mj_loadXML(path.encode(), NULL, errstr, 300) + if model == NULL: + raise Exception('Failed to load XML file: %s. mj_loadXML error: %s' % (path, errstr,)) + return WrapMjModel(model) + +def load_model_from_xml(str xml_str): + """ + Loads and returns a PyMjModel model from a string containing XML markup. + Saves the XML string used to create the returned model in `model.xml`. + """ + cdef char errstr[300] + cdef mjModel *model + with wrap_mujoco_warning(): + with tempfile.NamedTemporaryFile(suffix=".xml", delete=False) as fp: + fp.write(xml_str.encode()) + fp.flush() + model = mj_loadXML(fp.name.encode(), NULL, errstr, 300) + if model == NULL: + raise Exception('%s\nFailed to load XML from file: %s. mj_loadXML error: %s' % (xml_str, fp.name, errstr,)) + return WrapMjModel(model) + + +def load_model_from_mjb(bytes mjb_bytes): + """ + Loads and returns a PyMjModel model from bytes encoded MJB. + MJB is a MuJoCo-custom format that includes assets like meshes/textures. + """ + cdef mjModel *model + with wrap_mujoco_warning(): + with TemporaryDirectory() as td: + filename = os.path.join(td, 'model.mjb') + with open(filename, 'wb') as f: + f.write(mjb_bytes) + model = mj_loadModel(filename.encode(), NULL) + if model == NULL: + raise Exception('%s\nFailed to load MJB') + return WrapMjModel(model) + + diff --git a/mujoco_py/error.py b/mujoco_py/error.py deleted file mode 100644 index 8915dbdd..00000000 --- a/mujoco_py/error.py +++ /dev/null @@ -1,5 +0,0 @@ -class Error(Exception): - pass - -class MujocoDependencyError(Error): - pass diff --git a/mujoco_py/gen_binding.sh b/mujoco_py/gen_binding.sh deleted file mode 100755 index 14f16b7f..00000000 --- a/mujoco_py/gen_binding.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -parent_path=$( cd "$(dirname "${BASH_SOURCE}")" ; pwd -P ) -mujoco_path=$MUJOCO_PY_BUNDLE_PATH/osx/mujoco -rm /tmp/code_gen_mujoco.h -cat $mujoco_path/mjdata.h >> /tmp/code_gen_mujoco.h && \ - cat $mujoco_path/mjmodel.h >> /tmp/code_gen_mujoco.h && \ - cat $mujoco_path/mjrender.h >> /tmp/code_gen_mujoco.h && \ - cat $mujoco_path/mjvisualize.h >> /tmp/code_gen_mujoco.h && \ - ruby $parent_path/codegen.rb /tmp/code_gen_mujoco.h $mujoco_path/mjxmacro.h > $parent_path/mjtypes.py diff --git a/mujoco_py/generated/README.md b/mujoco_py/generated/README.md new file mode 100644 index 00000000..357367a6 --- /dev/null +++ b/mujoco_py/generated/README.md @@ -0,0 +1,2 @@ +This directory contains files which are automatically generated. +Don't modify them directly. \ No newline at end of file diff --git a/mujoco_py/generated/__init__.py b/mujoco_py/generated/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mujoco_py/generated/const.py b/mujoco_py/generated/const.py new file mode 100644 index 00000000..f2e8d6ff --- /dev/null +++ b/mujoco_py/generated/const.py @@ -0,0 +1,371 @@ +# Automatically generated. Do not modify! + +###### const from defines ###### +MINVAL = 1e-15 # minimum value in any denominator +PI = 3.141592653589793 # +MAXVAL = 10000000000.0 # maximum value in qpos, qvel, qacc +MINMU = 1e-05 # minimum friction coefficient +MINIMP = 0.0001 # minimum constraint impedance +MAXIMP = 0.9999 # maximum constraint impedance +MAXCONPAIR = 50.0 # maximum number of contacts per geom pair +MAXVFS = 200.0 # maximum number of files in virtual file system +MAXVFSNAME = 100.0 # maximum filename size in virtual file system +NEQDATA = 7.0 # number of eq_data fields +NDYN = 3.0 # number of actuator dynamics parameters +NGAIN = 3.0 # number of actuator gain parameters +NBIAS = 3.0 # number of actuator bias parameters +NREF = 2.0 # number of solver reference parameters +NIMP = 3.0 # number of solver impedance parameters +NSOLVER = 1000.0 # size of mjData.solver_XXX arrays +NGROUP = 5.0 # number of geom and site groups with visflags +MAXOVERLAY = 500.0 # maximum number of characters in overlay text +MAXLINE = 100.0 # maximum number of lines per plot +MAXLINEPNT = 500.0 # maximum number points per line +MAXPLANEGRID = 100.0 # maximum number of grid points for plane rendering + +###### const from enums ###### + + # _mjtDisableBit +DSBL_CONSTRAINT = 0 +DSBL_EQUALITY = 1 +DSBL_FRICTIONLOSS = 2 +DSBL_LIMIT = 3 +DSBL_CONTACT = 4 +DSBL_PASSIVE = 5 +DSBL_GRAVITY = 6 +DSBL_CLAMPCTRL = 7 +DSBL_WARMSTART = 8 +DSBL_FILTERPARENT = 9 +DSBL_ACTUATION = 10 +DSBL_REFSAFE = 11 +NDISABLE = 12 + + # _mjtEnableBit +ENBL_OVERRIDE = 0 +ENBL_ENERGY = 1 +ENBL_FWDINV = 2 +ENBL_SENSORNOISE = 3 +NENABLE = 4 + + # _mjtJoint +JNT_FREE = 0 +JNT_BALL = 1 +JNT_SLIDE = 2 +JNT_HINGE = 3 + + # _mjtGeom +GEOM_PLANE = 0 +GEOM_HFIELD = 1 +GEOM_SPHERE = 2 +GEOM_CAPSULE = 3 +GEOM_ELLIPSOID = 4 +GEOM_CYLINDER = 5 +GEOM_BOX = 6 +GEOM_MESH = 7 +NGEOMTYPES = 8 +GEOM_ARROW = 100 +GEOM_ARROW1 = 101 +GEOM_ARROW2 = 102 +GEOM_LABEL = 103 +GEOM_NONE = 1001 + + # _mjtCamLight +CAMLIGHT_FIXED = 0 +CAMLIGHT_TRACK = 1 +CAMLIGHT_TRACKCOM = 2 +CAMLIGHT_TARGETBODY = 3 +CAMLIGHT_TARGETBODYCOM = 4 + + # _mjtTexture +TEXTURE_2D = 0 +TEXTURE_CUBE = 1 +TEXTURE_SKYBOX = 2 + + # _mjtIntegrator +INT_EULER = 0 +INT_RK4 = 1 + + # _mjtCollision +COL_ALL = 0 +COL_PAIR = 1 +COL_DYNAMIC = 2 + + # _mjtCone +CONE_PYRAMIDAL = 0 +CONE_ELLIPTIC = 1 + + # _mjtJacobian +JAC_DENSE = 0 +JAC_SPARSE = 1 +JAC_AUTO = 2 + + # _mjtSolver +SOL_PGS = 0 +SOL_CG = 1 +SOL_NEWTON = 2 + + # _mjtImp +IMP_CONSTANT = 0 +IMP_SIGMOID = 1 +IMP_LINEAR = 2 +IMP_USER = 3 + + # _mjtRef +REF_SPRING = 0 +REF_USER = 1 + + # _mjtEq +EQ_CONNECT = 0 +EQ_WELD = 1 +EQ_JOINT = 2 +EQ_TENDON = 3 +EQ_DISTANCE = 4 + + # _mjtWrap +WRAP_NONE = 0 +WRAP_JOINT = 1 +WRAP_PULLEY = 2 +WRAP_SITE = 3 +WRAP_SPHERE = 4 +WRAP_CYLINDER = 5 + + # _mjtTrn +TRN_JOINT = 0 +TRN_JOINTINPARENT = 1 +TRN_SLIDERCRANK = 2 +TRN_TENDON = 3 +TRN_SITE = 4 +TRN_UNDEFINED = 1000 + + # _mjtDyn +DYN_NONE = 0 +DYN_INTEGRATOR = 1 +DYN_FILTER = 2 +DYN_USER = 3 + + # _mjtGain +GAIN_FIXED = 0 +GAIN_USER = 1 + + # _mjtBias +BIAS_NONE = 0 +BIAS_AFFINE = 1 +BIAS_USER = 2 + + # _mjtObj +OBJ_UNKNOWN = 0 +OBJ_BODY = 1 +OBJ_XBODY = 2 +OBJ_JOINT = 3 +OBJ_DOF = 4 +OBJ_GEOM = 5 +OBJ_SITE = 6 +OBJ_CAMERA = 7 +OBJ_LIGHT = 8 +OBJ_MESH = 9 +OBJ_HFIELD = 10 +OBJ_TEXTURE = 11 +OBJ_MATERIAL = 12 +OBJ_PAIR = 13 +OBJ_EXCLUDE = 14 +OBJ_EQUALITY = 15 +OBJ_TENDON = 16 +OBJ_ACTUATOR = 17 +OBJ_SENSOR = 18 +OBJ_NUMERIC = 19 +OBJ_TEXT = 20 +OBJ_TUPLE = 21 +OBJ_KEY = 22 + + # _mjtConstraint +CNSTR_EQUALITY = 0 +CNSTR_FRICTION_DOF = 1 +CNSTR_FRICTION_TENDON = 2 +CNSTR_LIMIT_JOINT = 3 +CNSTR_LIMIT_TENDON = 4 +CNSTR_CONTACT_FRICTIONLESS = 5 +CNSTR_CONTACT_PYRAMIDAL = 6 +CNSTR_CONTACT_ELLIPTIC = 7 + + # _mjtConstraintState +CNSTRSTATE_SATISFIED = 0 +CNSTRSTATE_QUADRATIC = 1 +CNSTRSTATE_LINEARNEG = 2 +CNSTRSTATE_LINEARPOS = 3 +CNSTRSTATE_CONE = 4 + + # _mjtSensor +SENS_TOUCH = 0 +SENS_ACCELEROMETER = 1 +SENS_VELOCIMETER = 2 +SENS_GYRO = 3 +SENS_FORCE = 4 +SENS_TORQUE = 5 +SENS_MAGNETOMETER = 6 +SENS_RANGEFINDER = 7 +SENS_JOINTPOS = 8 +SENS_JOINTVEL = 9 +SENS_TENDONPOS = 10 +SENS_TENDONVEL = 11 +SENS_ACTUATORPOS = 12 +SENS_ACTUATORVEL = 13 +SENS_ACTUATORFRC = 14 +SENS_BALLQUAT = 15 +SENS_BALLANGVEL = 16 +SENS_FRAMEPOS = 17 +SENS_FRAMEQUAT = 18 +SENS_FRAMEXAXIS = 19 +SENS_FRAMEYAXIS = 20 +SENS_FRAMEZAXIS = 21 +SENS_FRAMELINVEL = 22 +SENS_FRAMEANGVEL = 23 +SENS_FRAMELINACC = 24 +SENS_FRAMEANGACC = 25 +SENS_SUBTREECOM = 26 +SENS_SUBTREELINVEL = 27 +SENS_SUBTREEANGMOM = 28 +SENS_USER = 29 + + # _mjtStage +STAGE_NONE = 0 +STAGE_POS = 1 +STAGE_VEL = 2 +STAGE_ACC = 3 + + # _mjtDataType +DATATYPE_REAL = 0 +DATATYPE_POSITIVE = 1 +DATATYPE_AXIS = 2 +DATATYPE_QUATERNION = 3 + + # _mjtWarning +WARN_INERTIA = 0 +WARN_CONTACTFULL = 1 +WARN_CNSTRFULL = 2 +WARN_VGEOMFULL = 3 +WARN_BADQPOS = 4 +WARN_BADQVEL = 5 +WARN_BADQACC = 6 +WARN_BADCTRL = 7 +NWARNING = 8 + + # _mjtTimer +TIMER_STEP = 0 +TIMER_FORWARD = 1 +TIMER_INVERSE = 2 +TIMER_POSITION = 3 +TIMER_VELOCITY = 4 +TIMER_ACTUATION = 5 +TIMER_ACCELERATION = 6 +TIMER_CONSTRAINT = 7 +TIMER_POS_KINEMATICS = 8 +TIMER_POS_INERTIA = 9 +TIMER_POS_COLLISION = 10 +TIMER_POS_MAKE = 11 +TIMER_POS_PROJECT = 12 +NTIMER = 13 + + # _mjtCatBit +CAT_STATIC = 1 +CAT_DYNAMIC = 2 +CAT_DECOR = 4 +CAT_ALL = 7 + + # _mjtMouse +MOUSE_NONE = 0 +MOUSE_ROTATE_V = 1 +MOUSE_ROTATE_H = 2 +MOUSE_MOVE_V = 3 +MOUSE_MOVE_H = 4 +MOUSE_ZOOM = 5 +MOUSE_SELECT = 6 + + # _mjtPertBit +PERT_TRANSLATE = 1 +PERT_ROTATE = 2 + + # _mjtCamera +CAMERA_FREE = 0 +CAMERA_TRACKING = 1 +CAMERA_FIXED = 2 +CAMERA_USER = 3 + + # _mjtLabel +LABEL_NONE = 0 +LABEL_BODY = 1 +LABEL_JOINT = 2 +LABEL_GEOM = 3 +LABEL_SITE = 4 +LABEL_CAMERA = 5 +LABEL_LIGHT = 6 +LABEL_TENDON = 7 +LABEL_ACTUATOR = 8 +LABEL_CONSTRAINT = 9 +LABEL_SELECTION = 10 +LABEL_SELPNT = 11 +LABEL_CONTACTFORCE = 12 +NLABEL = 13 + + # _mjtFrame +FRAME_NONE = 0 +FRAME_BODY = 1 +FRAME_GEOM = 2 +FRAME_SITE = 3 +FRAME_CAMERA = 4 +FRAME_LIGHT = 5 +FRAME_WORLD = 6 +NFRAME = 7 + + # _mjtVisFlag +VIS_CONVEXHULL = 0 +VIS_TEXTURE = 1 +VIS_JOINT = 2 +VIS_ACTUATOR = 3 +VIS_CAMERA = 4 +VIS_LIGHT = 5 +VIS_CONSTRAINT = 6 +VIS_INERTIA = 7 +VIS_PERTFORCE = 8 +VIS_PERTOBJ = 9 +VIS_CONTACTPOINT = 10 +VIS_CONTACTFORCE = 11 +VIS_CONTACTSPLIT = 12 +VIS_TRANSPARENT = 13 +VIS_AUTOCONNECT = 14 +VIS_COM = 15 +VIS_SELECT = 16 +VIS_STATIC = 17 +NVISFLAG = 18 + + # _mjtRndFlag +RND_SHADOW = 0 +RND_WIREFRAME = 1 +RND_REFLECTION = 2 +RND_FOG = 3 +RND_SKYBOX = 4 +NRNDFLAG = 5 + + # _mjtStereo +STEREO_NONE = 0 +STEREO_QUADBUFFERED = 1 +STEREO_SIDEBYSIDE = 2 + + # _mjtGridPos +GRID_TOPLEFT = 0 +GRID_TOPRIGHT = 1 +GRID_BOTTOMLEFT = 2 +GRID_BOTTOMRIGHT = 3 + + # _mjtFramebuffer +FB_WINDOW = 0 +FB_OFFSCREEN = 1 + + # _mjtFontScale +FONTSCALE_100 = 100 +FONTSCALE_150 = 150 +FONTSCALE_200 = 200 + + # _mjtFont +FONT_NORMAL = 0 +FONT_SHADOW = 1 +FONT_BIG = 2 diff --git a/mujoco_py/generated/wrappers.pxi b/mujoco_py/generated/wrappers.pxi new file mode 100644 index 00000000..1fb3a216 --- /dev/null +++ b/mujoco_py/generated/wrappers.pxi @@ -0,0 +1,4359 @@ +# cython: language_level=3 +# Automatically generated. Do not modify! + +include "../pxd/mujoco.pxd" +from cpython.mem cimport PyMem_Malloc, PyMem_Free +cimport numpy as np +import numpy as np +from tempfile import TemporaryDirectory + +cdef class PyMjvFigure(object): + cdef mjvFigure* ptr + + + cdef np.ndarray _flg_ticklabel + cdef np.ndarray _gridsize + cdef np.ndarray _gridrgb + cdef np.ndarray _figurergba + cdef np.ndarray _legendrgba + cdef np.ndarray _textrgb + cdef np.ndarray _xlabel + cdef np.ndarray _title + cdef np.ndarray _xformat + cdef np.ndarray _yformat + cdef np.ndarray _minwidth + cdef np.ndarray _linepnt + cdef np.ndarray _linewidth + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjvFigure* p): + + self.ptr = p + + + self._flg_ticklabel = _wrap_int_1d(&p.flg_ticklabel[0], 2) + self._gridsize = _wrap_int_1d(&p.gridsize[0], 2) + self._gridrgb = _wrap_float_1d(&p.gridrgb[0], 3) + self._figurergba = _wrap_float_1d(&p.figurergba[0], 4) + self._legendrgba = _wrap_float_1d(&p.legendrgba[0], 4) + self._textrgb = _wrap_float_1d(&p.textrgb[0], 3) + self._xlabel = _wrap_char_1d(&p.xlabel[0], 100) + self._title = _wrap_char_1d(&p.title[0], 100) + self._xformat = _wrap_char_1d(&p.xformat[0], 20) + self._yformat = _wrap_char_1d(&p.yformat[0], 20) + self._minwidth = _wrap_char_1d(&p.minwidth[0], 20) + self._linepnt = _wrap_int_1d(&p.linepnt[0], 100) + self._linewidth = _wrap_float_1d(&p.linewidth[0], 100) + + @property + def flg_legend(self): return self.ptr.flg_legend + @flg_legend.setter + def flg_legend(self, int x): self.ptr.flg_legend = x + @property + def flg_extend(self): return self.ptr.flg_extend + @flg_extend.setter + def flg_extend(self, int x): self.ptr.flg_extend = x + @property + def flg_barplot(self): return self.ptr.flg_barplot + @flg_barplot.setter + def flg_barplot(self, int x): self.ptr.flg_barplot = x + @property + def gridwidth(self): return self.ptr.gridwidth + @gridwidth.setter + def gridwidth(self, float x): self.ptr.gridwidth = x + @property + def flg_ticklabel(self): return self._flg_ticklabel + @property + def gridsize(self): return self._gridsize + @property + def gridrgb(self): return self._gridrgb + @property + def figurergba(self): return self._figurergba + @property + def legendrgba(self): return self._legendrgba + @property + def textrgb(self): return self._textrgb + @property + def xlabel(self): return self._xlabel + @property + def title(self): return self._title + @property + def xformat(self): return self._xformat + @property + def yformat(self): return self._yformat + @property + def minwidth(self): return self._minwidth + @property + def linepnt(self): return self._linepnt + @property + def linewidth(self): return self._linewidth + +cdef PyMjvFigure WrapMjvFigure(mjvFigure* p): + cdef PyMjvFigure o = PyMjvFigure() + o._set(p) + return o + +cdef class PyMjvGLCamera(object): + cdef mjvGLCamera* ptr + + + cdef np.ndarray _pos + cdef np.ndarray _forward + cdef np.ndarray _up + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjvGLCamera* p): + + self.ptr = p + + + self._pos = _wrap_float_1d(&p.pos[0], 3) + self._forward = _wrap_float_1d(&p.forward[0], 3) + self._up = _wrap_float_1d(&p.up[0], 3) + + @property + def frustum_center(self): return self.ptr.frustum_center + @frustum_center.setter + def frustum_center(self, float x): self.ptr.frustum_center = x + @property + def frustum_bottom(self): return self.ptr.frustum_bottom + @frustum_bottom.setter + def frustum_bottom(self, float x): self.ptr.frustum_bottom = x + @property + def frustum_top(self): return self.ptr.frustum_top + @frustum_top.setter + def frustum_top(self, float x): self.ptr.frustum_top = x + @property + def frustum_near(self): return self.ptr.frustum_near + @frustum_near.setter + def frustum_near(self, float x): self.ptr.frustum_near = x + @property + def frustum_far(self): return self.ptr.frustum_far + @frustum_far.setter + def frustum_far(self, float x): self.ptr.frustum_far = x + @property + def pos(self): return self._pos + @property + def forward(self): return self._forward + @property + def up(self): return self._up + +cdef PyMjvGLCamera WrapMjvGLCamera(mjvGLCamera* p): + cdef PyMjvGLCamera o = PyMjvGLCamera() + o._set(p) + return o + +cdef class PyMjvPerturb(object): + cdef mjvPerturb* ptr + + + cdef np.ndarray _refpos + cdef np.ndarray _refquat + cdef np.ndarray _localpos + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjvPerturb* p): + + self.ptr = p + + + self._refpos = _wrap_mjtNum_1d(&p.refpos[0], 3) + self._refquat = _wrap_mjtNum_1d(&p.refquat[0], 4) + self._localpos = _wrap_mjtNum_1d(&p.localpos[0], 3) + + @property + def select(self): return self.ptr.select + @select.setter + def select(self, int x): self.ptr.select = x + @property + def active(self): return self.ptr.active + @active.setter + def active(self, int x): self.ptr.active = x + @property + def scale(self): return self.ptr.scale + @scale.setter + def scale(self, mjtNum x): self.ptr.scale = x + @property + def refpos(self): return self._refpos + @property + def refquat(self): return self._refquat + @property + def localpos(self): return self._localpos + +cdef PyMjvPerturb WrapMjvPerturb(mjvPerturb* p): + cdef PyMjvPerturb o = PyMjvPerturb() + o._set(p) + return o + +cdef class PyMjSolverStat(object): + cdef mjSolverStat* ptr + + + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjSolverStat* p): + + self.ptr = p + + + + @property + def improvement(self): return self.ptr.improvement + @improvement.setter + def improvement(self, mjtNum x): self.ptr.improvement = x + @property + def gradient(self): return self.ptr.gradient + @gradient.setter + def gradient(self, mjtNum x): self.ptr.gradient = x + @property + def lineslope(self): return self.ptr.lineslope + @lineslope.setter + def lineslope(self, mjtNum x): self.ptr.lineslope = x + @property + def nactive(self): return self.ptr.nactive + @nactive.setter + def nactive(self, int x): self.ptr.nactive = x + @property + def nchange(self): return self.ptr.nchange + @nchange.setter + def nchange(self, int x): self.ptr.nchange = x + @property + def neval(self): return self.ptr.neval + @neval.setter + def neval(self, int x): self.ptr.neval = x + @property + def nupdate(self): return self.ptr.nupdate + @nupdate.setter + def nupdate(self, int x): self.ptr.nupdate = x + +cdef PyMjSolverStat WrapMjSolverStat(mjSolverStat* p): + cdef PyMjSolverStat o = PyMjSolverStat() + o._set(p) + return o + +cdef class PyMjWarningStat(object): + cdef mjWarningStat* ptr + + + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjWarningStat* p): + + self.ptr = p + + + + @property + def lastinfo(self): return self.ptr.lastinfo + @lastinfo.setter + def lastinfo(self, int x): self.ptr.lastinfo = x + @property + def number(self): return self.ptr.number + @number.setter + def number(self, int x): self.ptr.number = x + +cdef PyMjWarningStat WrapMjWarningStat(mjWarningStat* p): + cdef PyMjWarningStat o = PyMjWarningStat() + o._set(p) + return o + +cdef class PyMjVisual(object): + cdef mjVisual* ptr + + + cdef PyMjVisual_global_ _global_ + cdef PyMjVisual_quality _quality + cdef PyMjVisual_headlight _headlight + cdef PyMjVisual_map _map + cdef PyMjVisual_scale _scale + cdef PyMjVisual_rgba _rgba + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjVisual* p): + + self.ptr = p + + + self._global_ = WrapMjVisual_global_(&p.global_) + self._quality = WrapMjVisual_quality(&p.quality) + self._headlight = WrapMjVisual_headlight(&p.headlight) + self._map = WrapMjVisual_map(&p.map) + self._scale = WrapMjVisual_scale(&p.scale) + self._rgba = WrapMjVisual_rgba(&p.rgba) + + @property + def global_(self): return self._global_ + @property + def quality(self): return self._quality + @property + def headlight(self): return self._headlight + @property + def map(self): return self._map + @property + def scale(self): return self._scale + @property + def rgba(self): return self._rgba + +cdef PyMjVisual WrapMjVisual(mjVisual* p): + cdef PyMjVisual o = PyMjVisual() + o._set(p) + return o + +cdef class PyMjVisual_quality(object): + cdef mjVisual_quality* ptr + + + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjVisual_quality* p): + + self.ptr = p + + + + @property + def shadowsize(self): return self.ptr.shadowsize + @shadowsize.setter + def shadowsize(self, int x): self.ptr.shadowsize = x + @property + def offsamples(self): return self.ptr.offsamples + @offsamples.setter + def offsamples(self, int x): self.ptr.offsamples = x + @property + def numslices(self): return self.ptr.numslices + @numslices.setter + def numslices(self, int x): self.ptr.numslices = x + @property + def numstacks(self): return self.ptr.numstacks + @numstacks.setter + def numstacks(self, int x): self.ptr.numstacks = x + @property + def numarrows(self): return self.ptr.numarrows + @numarrows.setter + def numarrows(self, int x): self.ptr.numarrows = x + @property + def numquads(self): return self.ptr.numquads + @numquads.setter + def numquads(self, int x): self.ptr.numquads = x + +cdef PyMjVisual_quality WrapMjVisual_quality(mjVisual_quality* p): + cdef PyMjVisual_quality o = PyMjVisual_quality() + o._set(p) + return o + +cdef class PyMjOption(object): + cdef mjOption* ptr + + + cdef np.ndarray _gravity + cdef np.ndarray _wind + cdef np.ndarray _magnetic + cdef np.ndarray _o_solref + cdef np.ndarray _o_solimp + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjOption* p): + + self.ptr = p + + + self._gravity = _wrap_mjtNum_1d(&p.gravity[0], 3) + self._wind = _wrap_mjtNum_1d(&p.wind[0], 3) + self._magnetic = _wrap_mjtNum_1d(&p.magnetic[0], 3) + self._o_solref = _wrap_mjtNum_1d(&p.o_solref[0], 2) + self._o_solimp = _wrap_mjtNum_1d(&p.o_solimp[0], 3) + + @property + def timestep(self): return self.ptr.timestep + @timestep.setter + def timestep(self, mjtNum x): self.ptr.timestep = x + @property + def apirate(self): return self.ptr.apirate + @apirate.setter + def apirate(self, mjtNum x): self.ptr.apirate = x + @property + def impratio(self): return self.ptr.impratio + @impratio.setter + def impratio(self, mjtNum x): self.ptr.impratio = x + @property + def tolerance(self): return self.ptr.tolerance + @tolerance.setter + def tolerance(self, mjtNum x): self.ptr.tolerance = x + @property + def noslip_tolerance(self): return self.ptr.noslip_tolerance + @noslip_tolerance.setter + def noslip_tolerance(self, mjtNum x): self.ptr.noslip_tolerance = x + @property + def mpr_tolerance(self): return self.ptr.mpr_tolerance + @mpr_tolerance.setter + def mpr_tolerance(self, mjtNum x): self.ptr.mpr_tolerance = x + @property + def density(self): return self.ptr.density + @density.setter + def density(self, mjtNum x): self.ptr.density = x + @property + def viscosity(self): return self.ptr.viscosity + @viscosity.setter + def viscosity(self, mjtNum x): self.ptr.viscosity = x + @property + def o_margin(self): return self.ptr.o_margin + @o_margin.setter + def o_margin(self, mjtNum x): self.ptr.o_margin = x + @property + def integrator(self): return self.ptr.integrator + @integrator.setter + def integrator(self, int x): self.ptr.integrator = x + @property + def collision(self): return self.ptr.collision + @collision.setter + def collision(self, int x): self.ptr.collision = x + @property + def impedance(self): return self.ptr.impedance + @impedance.setter + def impedance(self, int x): self.ptr.impedance = x + @property + def reference(self): return self.ptr.reference + @reference.setter + def reference(self, int x): self.ptr.reference = x + @property + def cone(self): return self.ptr.cone + @cone.setter + def cone(self, int x): self.ptr.cone = x + @property + def jacobian(self): return self.ptr.jacobian + @jacobian.setter + def jacobian(self, int x): self.ptr.jacobian = x + @property + def solver(self): return self.ptr.solver + @solver.setter + def solver(self, int x): self.ptr.solver = x + @property + def iterations(self): return self.ptr.iterations + @iterations.setter + def iterations(self, int x): self.ptr.iterations = x + @property + def noslip_iterations(self): return self.ptr.noslip_iterations + @noslip_iterations.setter + def noslip_iterations(self, int x): self.ptr.noslip_iterations = x + @property + def mpr_iterations(self): return self.ptr.mpr_iterations + @mpr_iterations.setter + def mpr_iterations(self, int x): self.ptr.mpr_iterations = x + @property + def disableflags(self): return self.ptr.disableflags + @disableflags.setter + def disableflags(self, int x): self.ptr.disableflags = x + @property + def enableflags(self): return self.ptr.enableflags + @enableflags.setter + def enableflags(self, int x): self.ptr.enableflags = x + @property + def gravity(self): return self._gravity + @property + def wind(self): return self._wind + @property + def magnetic(self): return self._magnetic + @property + def o_solref(self): return self._o_solref + @property + def o_solimp(self): return self._o_solimp + +cdef PyMjOption WrapMjOption(mjOption* p): + cdef PyMjOption o = PyMjOption() + o._set(p) + return o + +cdef class PyMjvOption(object): + cdef mjvOption* ptr + + + cdef np.ndarray _geomgroup + cdef np.ndarray _sitegroup + cdef np.ndarray _flags + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjvOption* p): + + self.ptr = p + + + self._geomgroup = _wrap_mjtByte_1d(&p.geomgroup[0], 5) + self._sitegroup = _wrap_mjtByte_1d(&p.sitegroup[0], 5) + self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNVISFLAG) + + @property + def label(self): return self.ptr.label + @label.setter + def label(self, int x): self.ptr.label = x + @property + def frame(self): return self.ptr.frame + @frame.setter + def frame(self, int x): self.ptr.frame = x + @property + def geomgroup(self): return self._geomgroup + @property + def sitegroup(self): return self._sitegroup + @property + def flags(self): return self._flags + +cdef PyMjvOption WrapMjvOption(mjvOption* p): + cdef PyMjvOption o = PyMjvOption() + o._set(p) + return o + +cdef class PyMjVisual_headlight(object): + cdef mjVisual_headlight* ptr + + + cdef np.ndarray _ambient + cdef np.ndarray _diffuse + cdef np.ndarray _specular + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjVisual_headlight* p): + + self.ptr = p + + + self._ambient = _wrap_float_1d(&p.ambient[0], 3) + self._diffuse = _wrap_float_1d(&p.diffuse[0], 3) + self._specular = _wrap_float_1d(&p.specular[0], 3) + + @property + def active(self): return self.ptr.active + @active.setter + def active(self, int x): self.ptr.active = x + @property + def ambient(self): return self._ambient + @property + def diffuse(self): return self._diffuse + @property + def specular(self): return self._specular + +cdef PyMjVisual_headlight WrapMjVisual_headlight(mjVisual_headlight* p): + cdef PyMjVisual_headlight o = PyMjVisual_headlight() + o._set(p) + return o + +cdef class PyMjVisual_map(object): + cdef mjVisual_map* ptr + + + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjVisual_map* p): + + self.ptr = p + + + + @property + def stiffness(self): return self.ptr.stiffness + @stiffness.setter + def stiffness(self, float x): self.ptr.stiffness = x + @property + def stiffnessrot(self): return self.ptr.stiffnessrot + @stiffnessrot.setter + def stiffnessrot(self, float x): self.ptr.stiffnessrot = x + @property + def force(self): return self.ptr.force + @force.setter + def force(self, float x): self.ptr.force = x + @property + def torque(self): return self.ptr.torque + @torque.setter + def torque(self, float x): self.ptr.torque = x + @property + def alpha(self): return self.ptr.alpha + @alpha.setter + def alpha(self, float x): self.ptr.alpha = x + @property + def fogstart(self): return self.ptr.fogstart + @fogstart.setter + def fogstart(self, float x): self.ptr.fogstart = x + @property + def fogend(self): return self.ptr.fogend + @fogend.setter + def fogend(self, float x): self.ptr.fogend = x + @property + def znear(self): return self.ptr.znear + @znear.setter + def znear(self, float x): self.ptr.znear = x + @property + def zfar(self): return self.ptr.zfar + @zfar.setter + def zfar(self, float x): self.ptr.zfar = x + @property + def shadowclip(self): return self.ptr.shadowclip + @shadowclip.setter + def shadowclip(self, float x): self.ptr.shadowclip = x + @property + def shadowscale(self): return self.ptr.shadowscale + @shadowscale.setter + def shadowscale(self, float x): self.ptr.shadowscale = x + +cdef PyMjVisual_map WrapMjVisual_map(mjVisual_map* p): + cdef PyMjVisual_map o = PyMjVisual_map() + o._set(p) + return o + +cdef class PyMjrRect(object): + cdef mjrRect* ptr + + + + def __cinit__(self): + self.ptr = PyMem_Malloc(sizeof(mjrRect)) + if not self.ptr: + raise MemoryError() + + def __dealloc__(self): + PyMem_Free(self.ptr) + + cdef void _set(self, mjrRect* p): + + self.ptr = p + + + + @property + def left(self): return self.ptr.left + @left.setter + def left(self, int x): self.ptr.left = x + @property + def bottom(self): return self.ptr.bottom + @bottom.setter + def bottom(self, int x): self.ptr.bottom = x + @property + def width(self): return self.ptr.width + @width.setter + def width(self, int x): self.ptr.width = x + @property + def height(self): return self.ptr.height + @height.setter + def height(self, int x): self.ptr.height = x + +cdef PyMjrRect WrapMjrRect(mjrRect* p): + cdef PyMjrRect o = PyMjrRect() + o._set(p) + return o + +cdef class PyMjvCamera(object): + cdef mjvCamera* ptr + + + cdef np.ndarray _lookat + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjvCamera* p): + + self.ptr = p + + + self._lookat = _wrap_mjtNum_1d(&p.lookat[0], 3) + + @property + def type(self): return self.ptr.type + @type.setter + def type(self, int x): self.ptr.type = x + @property + def fixedcamid(self): return self.ptr.fixedcamid + @fixedcamid.setter + def fixedcamid(self, int x): self.ptr.fixedcamid = x + @property + def trackbodyid(self): return self.ptr.trackbodyid + @trackbodyid.setter + def trackbodyid(self, int x): self.ptr.trackbodyid = x + @property + def distance(self): return self.ptr.distance + @distance.setter + def distance(self, mjtNum x): self.ptr.distance = x + @property + def azimuth(self): return self.ptr.azimuth + @azimuth.setter + def azimuth(self, mjtNum x): self.ptr.azimuth = x + @property + def elevation(self): return self.ptr.elevation + @elevation.setter + def elevation(self, mjtNum x): self.ptr.elevation = x + @property + def lookat(self): return self._lookat + +cdef PyMjvCamera WrapMjvCamera(mjvCamera* p): + cdef PyMjvCamera o = PyMjvCamera() + o._set(p) + return o + +cdef class PyMjData(object): + cdef mjData* ptr + + cdef PyMjModel _model + + cdef np.ndarray _qpos + cdef np.ndarray _qvel + cdef np.ndarray _act + cdef np.ndarray _ctrl + cdef np.ndarray _qfrc_applied + cdef np.ndarray _xfrc_applied + cdef np.ndarray _qacc + cdef np.ndarray _act_dot + cdef np.ndarray _mocap_pos + cdef np.ndarray _mocap_quat + cdef np.ndarray _userdata + cdef np.ndarray _sensordata + cdef np.ndarray _xpos + cdef np.ndarray _xquat + cdef np.ndarray _xmat + cdef np.ndarray _xipos + cdef np.ndarray _ximat + cdef np.ndarray _xanchor + cdef np.ndarray _xaxis + cdef np.ndarray _geom_xpos + cdef np.ndarray _geom_xmat + cdef np.ndarray _site_xpos + cdef np.ndarray _site_xmat + cdef np.ndarray _cam_xpos + cdef np.ndarray _cam_xmat + cdef np.ndarray _light_xpos + cdef np.ndarray _light_xdir + cdef np.ndarray _subtree_com + cdef np.ndarray _cdof + cdef np.ndarray _cinert + cdef np.ndarray _ten_wrapadr + cdef np.ndarray _ten_wrapnum + cdef np.ndarray _ten_length + cdef np.ndarray _ten_moment + cdef np.ndarray _wrap_obj + cdef np.ndarray _wrap_xpos + cdef np.ndarray _actuator_length + cdef np.ndarray _actuator_moment + cdef np.ndarray _crb + cdef np.ndarray _qM + cdef np.ndarray _qLD + cdef np.ndarray _qLDiagInv + cdef np.ndarray _qLDiagSqrtInv + cdef tuple _contact + cdef np.ndarray _efc_type + cdef np.ndarray _efc_id + cdef np.ndarray _efc_J_rownnz + cdef np.ndarray _efc_J_rowadr + cdef np.ndarray _efc_J_colind + cdef np.ndarray _efc_JT_rownnz + cdef np.ndarray _efc_JT_rowadr + cdef np.ndarray _efc_JT_colind + cdef np.ndarray _efc_solref + cdef np.ndarray _efc_solimp + cdef np.ndarray _efc_margin + cdef np.ndarray _efc_frictionloss + cdef np.ndarray _efc_pos + cdef np.ndarray _efc_J + cdef np.ndarray _efc_JT + cdef np.ndarray _efc_diagApprox + cdef np.ndarray _efc_D + cdef np.ndarray _efc_R + cdef np.ndarray _efc_AR_rownnz + cdef np.ndarray _efc_AR_rowadr + cdef np.ndarray _efc_AR_colind + cdef np.ndarray _efc_AR + cdef np.ndarray _ten_velocity + cdef np.ndarray _actuator_velocity + cdef np.ndarray _cvel + cdef np.ndarray _cdof_dot + cdef np.ndarray _qfrc_bias + cdef np.ndarray _qfrc_passive + cdef np.ndarray _efc_vel + cdef np.ndarray _efc_aref + cdef np.ndarray _subtree_linvel + cdef np.ndarray _subtree_angmom + cdef np.ndarray _actuator_force + cdef np.ndarray _qfrc_actuator + cdef np.ndarray _qfrc_unc + cdef np.ndarray _qacc_unc + cdef np.ndarray _efc_b + cdef np.ndarray _efc_force + cdef np.ndarray _efc_state + cdef np.ndarray _qfrc_constraint + cdef np.ndarray _qacc_warmstart + cdef np.ndarray _qfrc_inverse + cdef np.ndarray _cacc + cdef np.ndarray _cfrc_int + cdef np.ndarray _cfrc_ext + cdef list _warning + cdef list _timer + cdef list _solver + cdef np.ndarray _solver_fwdinv + cdef np.ndarray _energy + + @property + def body_xpos(self): + return self._xpos + + @property + def body_xquat(self): + return self._xquat + + @property + def body_xmat(self): + return self._xmat + + @property + def active_contacts_efc_pos(self): + return self._efc_pos[self.ne:self.nefc] + + def __dealloc__(self): + mj_deleteData(self.ptr) + + + def get_body_xpos(self, name): + id = self._model.body_name2id(name) + return self._xpos[id] + + def get_xpos(self, name): + raise RuntimeError("get_body_xpos should be used instead of get_xpos") + + def get_body_xquat(self, name): + id = self._model.body_name2id(name) + return self._xquat[id] + + def get_xquat(self, name): + raise RuntimeError("get_body_xquat should be used instead of get_xquat") + + def get_body_xmat(self, name): + id = self._model.body_name2id(name) + return self._xmat[id].reshape((3, 3)) + + def get_xmat(self, name): + raise RuntimeError("get_body_xmat should be used instead of get_xmat") + + def get_body_xipos(self, name): + id = self._model.body_name2id(name) + return self._xipos[id] + + def get_xipos(self, name): + raise RuntimeError("get_body_xipos should be used instead of get_xipos") + + def get_body_ximat(self, name): + id = self._model.body_name2id(name) + return self._ximat[id].reshape((3, 3)) + + def get_ximat(self, name): + raise RuntimeError("get_body_ximat should be used instead of get_ximat") + + def get_body_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None): + id = self._model.body_name2id(name) + if jacp is None: + jacp = np.zeros(3 * self._model.nv) + cdef double * jacp_view = &jacp[0] + mj_jacBody(self._model.ptr, self.ptr, jacp_view, NULL, id) + return jacp + + def get_body_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None): + id = self._model.body_name2id(name) + if jacr is None: + jacr = np.zeros(3 * self._model.nv) + cdef double * jacr_view = &jacr[0] + mj_jacBody(self._model.ptr, self.ptr, NULL, jacr_view, id) + return jacr + + def get_body_xvelp(self, name): + id = self._model.body_name2id(name) + jacp = self.get_body_jacp(name).reshape((3, self._model.nv)) + xvelp = np.dot(jacp, self.qvel) + return xvelp + + def get_body_xvelr(self, name): + id = self._model.body_name2id(name) + jacr = self.get_body_jacr(name).reshape((3, self._model.nv)) + xvelr = np.dot(jacr, self.qvel) + return xvelr + + def get_joint_xanchor(self, name): + id = self._model.joint_name2id(name) + return self._xanchor[id] + + def get_xanchor(self, name): + raise RuntimeError("get_joint_xanchor should be used instead of get_xanchor") + + def get_joint_xaxis(self, name): + id = self._model.joint_name2id(name) + return self._xaxis[id] + + def get_xaxis(self, name): + raise RuntimeError("get_joint_xaxis should be used instead of get_xaxis") + + def get_geom_xpos(self, name): + id = self._model.geom_name2id(name) + return self._geom_xpos[id] + + def get_geom_xmat(self, name): + id = self._model.geom_name2id(name) + return self._geom_xmat[id].reshape((3, 3)) + + def get_geom_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None): + id = self._model.geom_name2id(name) + if jacp is None: + jacp = np.zeros(3 * self._model.nv) + cdef double * jacp_view = &jacp[0] + mj_jacGeom(self._model.ptr, self.ptr, jacp_view, NULL, id) + return jacp + + def get_geom_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None): + id = self._model.geom_name2id(name) + if jacr is None: + jacr = np.zeros(3 * self._model.nv) + cdef double * jacr_view = &jacr[0] + mj_jacGeom(self._model.ptr, self.ptr, NULL, jacr_view, id) + return jacr + + def get_geom_xvelp(self, name): + id = self._model.geom_name2id(name) + jacp = self.get_geom_jacp(name).reshape((3, self._model.nv)) + xvelp = np.dot(jacp, self.qvel) + return xvelp + + def get_geom_xvelr(self, name): + id = self._model.geom_name2id(name) + jacr = self.get_geom_jacr(name).reshape((3, self._model.nv)) + xvelr = np.dot(jacr, self.qvel) + return xvelr + + def get_site_xpos(self, name): + id = self._model.site_name2id(name) + return self._site_xpos[id] + + def get_site_xmat(self, name): + id = self._model.site_name2id(name) + return self._site_xmat[id].reshape((3, 3)) + + def get_site_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None): + id = self._model.site_name2id(name) + if jacp is None: + jacp = np.zeros(3 * self._model.nv) + cdef double * jacp_view = &jacp[0] + mj_jacSite(self._model.ptr, self.ptr, jacp_view, NULL, id) + return jacp + + def get_site_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None): + id = self._model.site_name2id(name) + if jacr is None: + jacr = np.zeros(3 * self._model.nv) + cdef double * jacr_view = &jacr[0] + mj_jacSite(self._model.ptr, self.ptr, NULL, jacr_view, id) + return jacr + + def get_site_xvelp(self, name): + id = self._model.site_name2id(name) + jacp = self.get_site_jacp(name).reshape((3, self._model.nv)) + xvelp = np.dot(jacp, self.qvel) + return xvelp + + def get_site_xvelr(self, name): + id = self._model.site_name2id(name) + jacr = self.get_site_jacr(name).reshape((3, self._model.nv)) + xvelr = np.dot(jacr, self.qvel) + return xvelr + + def get_camera_xpos(self, name): + id = self._model.camera_name2id(name) + return self._cam_xpos[id] + + def get_cam_xpos(self, name): + raise RuntimeError("get_camera_xpos should be used instead of get_cam_xpos") + + def get_camera_xmat(self, name): + id = self._model.camera_name2id(name) + return self._cam_xmat[id].reshape((3, 3)) + + def get_cam_xmat(self, name): + raise RuntimeError("get_camera_xmat should be used instead of get_cam_xmat") + + def get_light_xpos(self, name): + id = self._model.light_name2id(name) + return self._light_xpos[id] + + def get_light_xdir(self, name): + id = self._model.light_name2id(name) + return self._light_xdir[id] + + def get_sensor(self, name): + id = self._model.sensor_name2id(name) + return self._sensordata[id] + + def get_sensordata(self, name): + raise RuntimeError("get_sensor should be used instead of get_sensordata") + + def get_mocap_pos(self, name): + body_id = self._model.body_name2id(name) + mocap_id = self._model.body_mocapid[body_id] + return self.mocap_pos[mocap_id] + + def set_mocap_pos(self, name, value): + body_id = self._model.body_name2id(name) + mocap_id = self._model.body_mocapid[body_id] + self.mocap_pos[mocap_id] = value + + def get_mocap_quat(self, name): + body_id = self._model.body_name2id(name) + mocap_id = self._model.body_mocapid[body_id] + return self.mocap_quat[mocap_id] + + def set_mocap_quat(self, name, value): + body_id = self._model.body_name2id(name) + mocap_id = self._model.body_mocapid[body_id] + self.mocap_quat[mocap_id] = value + + def get_joint_qpos(self, name): + addr = self._model.get_joint_qpos_addr(name) + if isinstance(addr, (int, np.int32, np.int64)): + return self.qpos[addr] + else: + start_i, end_i = addr + return self.qpos[start_i:end_i] + + def set_joint_qpos(self, name, value): + addr = self._model.get_joint_qpos_addr(name) + if isinstance(addr, (int, np.int32, np.int64)): + self.qpos[addr] = value + else: + start_i, end_i = addr + value = np.array(value) + assert value.shape == (end_i - start_i,), ( + "Value has incorrect shape %s: %s" % (name, value)) + self.qpos[start_i:end_i] = value + + def get_joint_qvel(self, name): + addr = self._model.get_joint_qvel_addr(name) + if isinstance(addr, (int, np.int32, np.int64)): + return self.qvel[addr] + else: + start_i, end_i = addr + return self.qvel[start_i:end_i] + + def set_joint_qvel(self, name, value): + addr = self._model.get_joint_qvel_addr(name) + if isinstance(addr, (int, np.int32, np.int64)): + self.qvel[addr] = value + else: + start_i, end_i = addr + value = np.array(value) + assert value.shape == (end_i - start_i,), ( + "Value has incorrect shape %s: %s" % (name, value)) + self.qvel[start_i:end_i] = value + + cdef void _set(self, mjData* p, PyMjModel model): + + self.ptr = p + self._model = model + + self._qpos = _wrap_mjtNum_1d(p.qpos, model.nq) + self._qvel = _wrap_mjtNum_1d(p.qvel, model.nv) + self._act = _wrap_mjtNum_1d(p.act, model.na) + self._ctrl = _wrap_mjtNum_1d(p.ctrl, model.nu) + self._qfrc_applied = _wrap_mjtNum_1d(p.qfrc_applied, model.nv) + self._xfrc_applied = _wrap_mjtNum_2d(p.xfrc_applied, model.nbody, 6) + self._qacc = _wrap_mjtNum_1d(p.qacc, model.nv) + self._act_dot = _wrap_mjtNum_1d(p.act_dot, model.na) + self._mocap_pos = _wrap_mjtNum_2d(p.mocap_pos, model.nmocap, 3) + self._mocap_quat = _wrap_mjtNum_2d(p.mocap_quat, model.nmocap, 4) + self._userdata = _wrap_mjtNum_1d(p.userdata, model.nuserdata) + self._sensordata = _wrap_mjtNum_1d(p.sensordata, model.nsensordata) + self._xpos = _wrap_mjtNum_2d(p.xpos, model.nbody, 3) + self._xquat = _wrap_mjtNum_2d(p.xquat, model.nbody, 4) + self._xmat = _wrap_mjtNum_2d(p.xmat, model.nbody, 9) + self._xipos = _wrap_mjtNum_2d(p.xipos, model.nbody, 3) + self._ximat = _wrap_mjtNum_2d(p.ximat, model.nbody, 9) + self._xanchor = _wrap_mjtNum_2d(p.xanchor, model.njnt, 3) + self._xaxis = _wrap_mjtNum_2d(p.xaxis, model.njnt, 3) + self._geom_xpos = _wrap_mjtNum_2d(p.geom_xpos, model.ngeom, 3) + self._geom_xmat = _wrap_mjtNum_2d(p.geom_xmat, model.ngeom, 9) + self._site_xpos = _wrap_mjtNum_2d(p.site_xpos, model.nsite, 3) + self._site_xmat = _wrap_mjtNum_2d(p.site_xmat, model.nsite, 9) + self._cam_xpos = _wrap_mjtNum_2d(p.cam_xpos, model.ncam, 3) + self._cam_xmat = _wrap_mjtNum_2d(p.cam_xmat, model.ncam, 9) + self._light_xpos = _wrap_mjtNum_2d(p.light_xpos, model.nlight, 3) + self._light_xdir = _wrap_mjtNum_2d(p.light_xdir, model.nlight, 3) + self._subtree_com = _wrap_mjtNum_2d(p.subtree_com, model.nbody, 3) + self._cdof = _wrap_mjtNum_2d(p.cdof, model.nv, 6) + self._cinert = _wrap_mjtNum_2d(p.cinert, model.nbody, 10) + self._ten_wrapadr = _wrap_int_1d(p.ten_wrapadr, model.ntendon) + self._ten_wrapnum = _wrap_int_1d(p.ten_wrapnum, model.ntendon) + self._ten_length = _wrap_mjtNum_1d(p.ten_length, model.ntendon) + self._ten_moment = _wrap_mjtNum_2d(p.ten_moment, model.ntendon, model.nv) + self._wrap_obj = _wrap_int_1d(p.wrap_obj, model.nwrap*2) + self._wrap_xpos = _wrap_mjtNum_2d(p.wrap_xpos, model.nwrap*2, 3) + self._actuator_length = _wrap_mjtNum_1d(p.actuator_length, model.nu) + self._actuator_moment = _wrap_mjtNum_2d(p.actuator_moment, model.nu, model.nv) + self._crb = _wrap_mjtNum_2d(p.crb, model.nbody, 10) + self._qM = _wrap_mjtNum_1d(p.qM, model.nM) + self._qLD = _wrap_mjtNum_1d(p.qLD, model.nM) + self._qLDiagInv = _wrap_mjtNum_1d(p.qLDiagInv, model.nv) + self._qLDiagSqrtInv = _wrap_mjtNum_1d(p.qLDiagSqrtInv, model.nv) + self._contact = tuple([WrapMjContact(&p.contact[i]) for i in range(model.nconmax)]) + self._efc_type = _wrap_int_1d(p.efc_type, model.njmax) + self._efc_id = _wrap_int_1d(p.efc_id, model.njmax) + self._efc_J_rownnz = _wrap_int_1d(p.efc_J_rownnz, model.njmax) + self._efc_J_rowadr = _wrap_int_1d(p.efc_J_rowadr, model.njmax) + self._efc_J_colind = _wrap_int_2d(p.efc_J_colind, model.njmax, model.nv) + self._efc_JT_rownnz = _wrap_int_1d(p.efc_JT_rownnz, model.nv) + self._efc_JT_rowadr = _wrap_int_1d(p.efc_JT_rowadr, model.nv) + self._efc_JT_colind = _wrap_int_2d(p.efc_JT_colind, model.nv, model.njmax) + self._efc_solref = _wrap_mjtNum_2d(p.efc_solref, model.njmax, mjNREF) + self._efc_solimp = _wrap_mjtNum_2d(p.efc_solimp, model.njmax, mjNIMP) + self._efc_margin = _wrap_mjtNum_1d(p.efc_margin, model.njmax) + self._efc_frictionloss = _wrap_mjtNum_1d(p.efc_frictionloss, model.njmax) + self._efc_pos = _wrap_mjtNum_1d(p.efc_pos, model.njmax) + self._efc_J = _wrap_mjtNum_2d(p.efc_J, model.njmax, model.nv) + self._efc_JT = _wrap_mjtNum_2d(p.efc_JT, model.nv, model.njmax) + self._efc_diagApprox = _wrap_mjtNum_1d(p.efc_diagApprox, model.njmax) + self._efc_D = _wrap_mjtNum_1d(p.efc_D, model.njmax) + self._efc_R = _wrap_mjtNum_1d(p.efc_R, model.njmax) + self._efc_AR_rownnz = _wrap_int_1d(p.efc_AR_rownnz, model.njmax) + self._efc_AR_rowadr = _wrap_int_1d(p.efc_AR_rowadr, model.njmax) + self._efc_AR_colind = _wrap_int_2d(p.efc_AR_colind, model.njmax, model.njmax) + self._efc_AR = _wrap_mjtNum_2d(p.efc_AR, model.njmax, model.njmax) + self._ten_velocity = _wrap_mjtNum_1d(p.ten_velocity, model.ntendon) + self._actuator_velocity = _wrap_mjtNum_1d(p.actuator_velocity, model.nu) + self._cvel = _wrap_mjtNum_2d(p.cvel, model.nbody, 6) + self._cdof_dot = _wrap_mjtNum_2d(p.cdof_dot, model.nv, 6) + self._qfrc_bias = _wrap_mjtNum_1d(p.qfrc_bias, model.nv) + self._qfrc_passive = _wrap_mjtNum_1d(p.qfrc_passive, model.nv) + self._efc_vel = _wrap_mjtNum_1d(p.efc_vel, model.njmax) + self._efc_aref = _wrap_mjtNum_1d(p.efc_aref, model.njmax) + self._subtree_linvel = _wrap_mjtNum_2d(p.subtree_linvel, model.nbody, 3) + self._subtree_angmom = _wrap_mjtNum_2d(p.subtree_angmom, model.nbody, 3) + self._actuator_force = _wrap_mjtNum_1d(p.actuator_force, model.nu) + self._qfrc_actuator = _wrap_mjtNum_1d(p.qfrc_actuator, model.nv) + self._qfrc_unc = _wrap_mjtNum_1d(p.qfrc_unc, model.nv) + self._qacc_unc = _wrap_mjtNum_1d(p.qacc_unc, model.nv) + self._efc_b = _wrap_mjtNum_1d(p.efc_b, model.njmax) + self._efc_force = _wrap_mjtNum_1d(p.efc_force, model.njmax) + self._efc_state = _wrap_int_1d(p.efc_state, model.njmax) + self._qfrc_constraint = _wrap_mjtNum_1d(p.qfrc_constraint, model.nv) + self._qacc_warmstart = _wrap_mjtNum_1d(p.qacc_warmstart, model.nv) + self._qfrc_inverse = _wrap_mjtNum_1d(p.qfrc_inverse, model.nv) + self._cacc = _wrap_mjtNum_2d(p.cacc, model.nbody, 6) + self._cfrc_int = _wrap_mjtNum_2d(p.cfrc_int, model.nbody, 6) + self._cfrc_ext = _wrap_mjtNum_2d(p.cfrc_ext, model.nbody, 6) + self._warning = [WrapMjWarningStat(&p.warning[i]) for i in range(mjNWARNING)] + self._timer = [WrapMjTimerStat(&p.timer[i]) for i in range(mjNTIMER)] + self._solver = [WrapMjSolverStat(&p.solver[i]) for i in range(1000)] + self._solver_fwdinv = _wrap_mjtNum_1d(&p.solver_fwdinv[0], 2) + self._energy = _wrap_mjtNum_1d(&p.energy[0], 2) + + @property + def nstack(self): return self.ptr.nstack + @nstack.setter + def nstack(self, int x): self.ptr.nstack = x + @property + def nbuffer(self): return self.ptr.nbuffer + @nbuffer.setter + def nbuffer(self, int x): self.ptr.nbuffer = x + @property + def pstack(self): return self.ptr.pstack + @pstack.setter + def pstack(self, int x): self.ptr.pstack = x + @property + def maxuse_stack(self): return self.ptr.maxuse_stack + @maxuse_stack.setter + def maxuse_stack(self, int x): self.ptr.maxuse_stack = x + @property + def maxuse_con(self): return self.ptr.maxuse_con + @maxuse_con.setter + def maxuse_con(self, int x): self.ptr.maxuse_con = x + @property + def maxuse_efc(self): return self.ptr.maxuse_efc + @maxuse_efc.setter + def maxuse_efc(self, int x): self.ptr.maxuse_efc = x + @property + def solver_iter(self): return self.ptr.solver_iter + @solver_iter.setter + def solver_iter(self, int x): self.ptr.solver_iter = x + @property + def solver_nnz(self): return self.ptr.solver_nnz + @solver_nnz.setter + def solver_nnz(self, int x): self.ptr.solver_nnz = x + @property + def ne(self): return self.ptr.ne + @ne.setter + def ne(self, int x): self.ptr.ne = x + @property + def nf(self): return self.ptr.nf + @nf.setter + def nf(self, int x): self.ptr.nf = x + @property + def nefc(self): return self.ptr.nefc + @nefc.setter + def nefc(self, int x): self.ptr.nefc = x + @property + def ncon(self): return self.ptr.ncon + @ncon.setter + def ncon(self, int x): self.ptr.ncon = x + @property + def time(self): return self.ptr.time + @time.setter + def time(self, mjtNum x): self.ptr.time = x + @property + def qpos(self): return self._qpos + @property + def qvel(self): return self._qvel + @property + def act(self): return self._act + @property + def ctrl(self): return self._ctrl + @property + def qfrc_applied(self): return self._qfrc_applied + @property + def xfrc_applied(self): return self._xfrc_applied + @property + def qacc(self): return self._qacc + @property + def act_dot(self): return self._act_dot + @property + def mocap_pos(self): return self._mocap_pos + @property + def mocap_quat(self): return self._mocap_quat + @property + def userdata(self): return self._userdata + @property + def sensordata(self): return self._sensordata + + @property + def xpos(self): + raise RuntimeError("body_xpos should be used instead of xpos") + + + @property + def xquat(self): + raise RuntimeError("body_xquat should be used instead of xquat") + + + @property + def xmat(self): + raise RuntimeError("body_xmat should be used instead of xmat") + + @property + def xipos(self): return self._xipos + @property + def ximat(self): return self._ximat + @property + def xanchor(self): return self._xanchor + @property + def xaxis(self): return self._xaxis + @property + def geom_xpos(self): return self._geom_xpos + @property + def geom_xmat(self): return self._geom_xmat + @property + def site_xpos(self): return self._site_xpos + @property + def site_xmat(self): return self._site_xmat + @property + def cam_xpos(self): return self._cam_xpos + @property + def cam_xmat(self): return self._cam_xmat + @property + def light_xpos(self): return self._light_xpos + @property + def light_xdir(self): return self._light_xdir + @property + def subtree_com(self): return self._subtree_com + @property + def cdof(self): return self._cdof + @property + def cinert(self): return self._cinert + @property + def ten_wrapadr(self): return self._ten_wrapadr + @property + def ten_wrapnum(self): return self._ten_wrapnum + @property + def ten_length(self): return self._ten_length + @property + def ten_moment(self): return self._ten_moment + @property + def wrap_obj(self): return self._wrap_obj + @property + def wrap_xpos(self): return self._wrap_xpos + @property + def actuator_length(self): return self._actuator_length + @property + def actuator_moment(self): return self._actuator_moment + @property + def crb(self): return self._crb + @property + def qM(self): return self._qM + @property + def qLD(self): return self._qLD + @property + def qLDiagInv(self): return self._qLDiagInv + @property + def qLDiagSqrtInv(self): return self._qLDiagSqrtInv + @property + def contact(self): return self._contact + @property + def efc_type(self): return self._efc_type + @property + def efc_id(self): return self._efc_id + @property + def efc_J_rownnz(self): return self._efc_J_rownnz + @property + def efc_J_rowadr(self): return self._efc_J_rowadr + @property + def efc_J_colind(self): return self._efc_J_colind + @property + def efc_JT_rownnz(self): return self._efc_JT_rownnz + @property + def efc_JT_rowadr(self): return self._efc_JT_rowadr + @property + def efc_JT_colind(self): return self._efc_JT_colind + @property + def efc_solref(self): return self._efc_solref + @property + def efc_solimp(self): return self._efc_solimp + @property + def efc_margin(self): return self._efc_margin + @property + def efc_frictionloss(self): return self._efc_frictionloss + + @property + def efc_pos(self): + raise RuntimeError("active_contacts_efc_pos should be used instead of efc_pos") + + @property + def efc_J(self): return self._efc_J + @property + def efc_JT(self): return self._efc_JT + @property + def efc_diagApprox(self): return self._efc_diagApprox + @property + def efc_D(self): return self._efc_D + @property + def efc_R(self): return self._efc_R + @property + def efc_AR_rownnz(self): return self._efc_AR_rownnz + @property + def efc_AR_rowadr(self): return self._efc_AR_rowadr + @property + def efc_AR_colind(self): return self._efc_AR_colind + @property + def efc_AR(self): return self._efc_AR + @property + def ten_velocity(self): return self._ten_velocity + @property + def actuator_velocity(self): return self._actuator_velocity + @property + def cvel(self): return self._cvel + @property + def cdof_dot(self): return self._cdof_dot + @property + def qfrc_bias(self): return self._qfrc_bias + @property + def qfrc_passive(self): return self._qfrc_passive + @property + def efc_vel(self): return self._efc_vel + @property + def efc_aref(self): return self._efc_aref + @property + def subtree_linvel(self): return self._subtree_linvel + @property + def subtree_angmom(self): return self._subtree_angmom + @property + def actuator_force(self): return self._actuator_force + @property + def qfrc_actuator(self): return self._qfrc_actuator + @property + def qfrc_unc(self): return self._qfrc_unc + @property + def qacc_unc(self): return self._qacc_unc + @property + def efc_b(self): return self._efc_b + @property + def efc_force(self): return self._efc_force + @property + def efc_state(self): return self._efc_state + @property + def qfrc_constraint(self): return self._qfrc_constraint + @property + def qacc_warmstart(self): return self._qacc_warmstart + @property + def qfrc_inverse(self): return self._qfrc_inverse + @property + def cacc(self): return self._cacc + @property + def cfrc_int(self): return self._cfrc_int + @property + def cfrc_ext(self): return self._cfrc_ext + @property + def warning(self): return self._warning + @property + def timer(self): return self._timer + @property + def solver(self): return self._solver + @property + def solver_fwdinv(self): return self._solver_fwdinv + @property + def energy(self): return self._energy + @property + def body_jacp(self): + jacps = np.zeros((self._model.nbody, 3 * self._model.nv)) + cdef double [:] jacp_view + for i, jacp in enumerate(jacps): + jacp_view = jacp + mj_jacBody(self._model.ptr, self.ptr, &jacp_view[0], NULL, i) + return jacps + + @property + def body_jacr(self): + jacrs = np.zeros((self._model.nbody, 3 * self._model.nv)) + cdef double [:] jacr_view + for i, jacr in enumerate(jacrs): + jacr_view = jacr + mj_jacBody(self._model.ptr, self.ptr, NULL, &jacr_view[0], i) + return jacrs + + @property + def body_xvelp(self): + jacp = self.body_jacp.reshape((self._model.nbody, 3, self._model.nv)) + xvelp = np.dot(jacp, self.qvel) + return xvelp + + @property + def body_xvelr(self): + jacr = self.body_jacr.reshape((self._model.nbody, 3, self._model.nv)) + xvelr = np.dot(jacr, self.qvel) + return xvelr + + @property + def geom_jacp(self): + jacps = np.zeros((self._model.ngeom, 3 * self._model.nv)) + cdef double [:] jacp_view + for i, jacp in enumerate(jacps): + jacp_view = jacp + mj_jacGeom(self._model.ptr, self.ptr, &jacp_view[0], NULL, i) + return jacps + + @property + def geom_jacr(self): + jacrs = np.zeros((self._model.ngeom, 3 * self._model.nv)) + cdef double [:] jacr_view + for i, jacr in enumerate(jacrs): + jacr_view = jacr + mj_jacGeom(self._model.ptr, self.ptr, NULL, &jacr_view[0], i) + return jacrs + + @property + def geom_xvelp(self): + jacp = self.geom_jacp.reshape((self._model.ngeom, 3, self._model.nv)) + xvelp = np.dot(jacp, self.qvel) + return xvelp + + @property + def geom_xvelr(self): + jacr = self.geom_jacr.reshape((self._model.ngeom, 3, self._model.nv)) + xvelr = np.dot(jacr, self.qvel) + return xvelr + + @property + def site_jacp(self): + jacps = np.zeros((self._model.nsite, 3 * self._model.nv)) + cdef double [:] jacp_view + for i, jacp in enumerate(jacps): + jacp_view = jacp + mj_jacSite(self._model.ptr, self.ptr, &jacp_view[0], NULL, i) + return jacps + + @property + def site_jacr(self): + jacrs = np.zeros((self._model.nsite, 3 * self._model.nv)) + cdef double [:] jacr_view + for i, jacr in enumerate(jacrs): + jacr_view = jacr + mj_jacSite(self._model.ptr, self.ptr, NULL, &jacr_view[0], i) + return jacrs + + @property + def site_xvelp(self): + jacp = self.site_jacp.reshape((self._model.nsite, 3, self._model.nv)) + xvelp = np.dot(jacp, self.qvel) + return xvelp + + @property + def site_xvelr(self): + jacr = self.site_jacr.reshape((self._model.nsite, 3, self._model.nv)) + xvelr = np.dot(jacr, self.qvel) + return xvelr + + +cdef PyMjData WrapMjData(mjData* p, PyMjModel model): + cdef PyMjData o = PyMjData() + o._set(p, model) + return o + +cdef class PyMjVisual_rgba(object): + cdef mjVisual_rgba* ptr + + + cdef np.ndarray _fog + cdef np.ndarray _force + cdef np.ndarray _inertia + cdef np.ndarray _joint + cdef np.ndarray _actuator + cdef np.ndarray _com + cdef np.ndarray _camera + cdef np.ndarray _light + cdef np.ndarray _selectpoint + cdef np.ndarray _connect + cdef np.ndarray _contactpoint + cdef np.ndarray _contactforce + cdef np.ndarray _contactfriction + cdef np.ndarray _contacttorque + cdef np.ndarray _constraint + cdef np.ndarray _slidercrank + cdef np.ndarray _crankbroken + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjVisual_rgba* p): + + self.ptr = p + + + self._fog = _wrap_float_1d(&p.fog[0], 4) + self._force = _wrap_float_1d(&p.force[0], 4) + self._inertia = _wrap_float_1d(&p.inertia[0], 4) + self._joint = _wrap_float_1d(&p.joint[0], 4) + self._actuator = _wrap_float_1d(&p.actuator[0], 4) + self._com = _wrap_float_1d(&p.com[0], 4) + self._camera = _wrap_float_1d(&p.camera[0], 4) + self._light = _wrap_float_1d(&p.light[0], 4) + self._selectpoint = _wrap_float_1d(&p.selectpoint[0], 4) + self._connect = _wrap_float_1d(&p.connect[0], 4) + self._contactpoint = _wrap_float_1d(&p.contactpoint[0], 4) + self._contactforce = _wrap_float_1d(&p.contactforce[0], 4) + self._contactfriction = _wrap_float_1d(&p.contactfriction[0], 4) + self._contacttorque = _wrap_float_1d(&p.contacttorque[0], 4) + self._constraint = _wrap_float_1d(&p.constraint[0], 4) + self._slidercrank = _wrap_float_1d(&p.slidercrank[0], 4) + self._crankbroken = _wrap_float_1d(&p.crankbroken[0], 4) + + @property + def fog(self): return self._fog + @property + def force(self): return self._force + @property + def inertia(self): return self._inertia + @property + def joint(self): return self._joint + @property + def actuator(self): return self._actuator + @property + def com(self): return self._com + @property + def camera(self): return self._camera + @property + def light(self): return self._light + @property + def selectpoint(self): return self._selectpoint + @property + def connect(self): return self._connect + @property + def contactpoint(self): return self._contactpoint + @property + def contactforce(self): return self._contactforce + @property + def contactfriction(self): return self._contactfriction + @property + def contacttorque(self): return self._contacttorque + @property + def constraint(self): return self._constraint + @property + def slidercrank(self): return self._slidercrank + @property + def crankbroken(self): return self._crankbroken + +cdef PyMjVisual_rgba WrapMjVisual_rgba(mjVisual_rgba* p): + cdef PyMjVisual_rgba o = PyMjVisual_rgba() + o._set(p) + return o + +cdef class PyMjTimerStat(object): + cdef mjTimerStat* ptr + + + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjTimerStat* p): + + self.ptr = p + + + + @property + def duration(self): return self.ptr.duration + @duration.setter + def duration(self, mjtNum x): self.ptr.duration = x + @property + def number(self): return self.ptr.number + @number.setter + def number(self, int x): self.ptr.number = x + +cdef PyMjTimerStat WrapMjTimerStat(mjTimerStat* p): + cdef PyMjTimerStat o = PyMjTimerStat() + o._set(p) + return o + +cdef class PyMjvGeom(object): + cdef mjvGeom* ptr + + + cdef np.ndarray _texrepeat + cdef np.ndarray _size + cdef np.ndarray _pos + cdef np.ndarray _mat + cdef np.ndarray _rgba + cdef np.ndarray _label + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjvGeom* p): + + self.ptr = p + + + self._texrepeat = _wrap_float_1d(&p.texrepeat[0], 2) + self._size = _wrap_float_1d(&p.size[0], 3) + self._pos = _wrap_float_1d(&p.pos[0], 3) + self._mat = _wrap_float_1d(&p.mat[0], 9) + self._rgba = _wrap_float_1d(&p.rgba[0], 4) + self._label = _wrap_char_1d(&p.label[0], 100) + + @property + def type(self): return self.ptr.type + @type.setter + def type(self, int x): self.ptr.type = x + @property + def dataid(self): return self.ptr.dataid + @dataid.setter + def dataid(self, int x): self.ptr.dataid = x + @property + def objtype(self): return self.ptr.objtype + @objtype.setter + def objtype(self, int x): self.ptr.objtype = x + @property + def objid(self): return self.ptr.objid + @objid.setter + def objid(self, int x): self.ptr.objid = x + @property + def category(self): return self.ptr.category + @category.setter + def category(self, int x): self.ptr.category = x + @property + def texid(self): return self.ptr.texid + @texid.setter + def texid(self, int x): self.ptr.texid = x + @property + def texuniform(self): return self.ptr.texuniform + @texuniform.setter + def texuniform(self, int x): self.ptr.texuniform = x + @property + def emission(self): return self.ptr.emission + @emission.setter + def emission(self, float x): self.ptr.emission = x + @property + def specular(self): return self.ptr.specular + @specular.setter + def specular(self, float x): self.ptr.specular = x + @property + def shininess(self): return self.ptr.shininess + @shininess.setter + def shininess(self, float x): self.ptr.shininess = x + @property + def reflectance(self): return self.ptr.reflectance + @reflectance.setter + def reflectance(self, float x): self.ptr.reflectance = x + @property + def camdist(self): return self.ptr.camdist + @camdist.setter + def camdist(self, float x): self.ptr.camdist = x + @property + def modelrbound(self): return self.ptr.modelrbound + @modelrbound.setter + def modelrbound(self, float x): self.ptr.modelrbound = x + @property + def transparent(self): return self.ptr.transparent + @transparent.setter + def transparent(self, mjtByte x): self.ptr.transparent = x + @property + def texrepeat(self): return self._texrepeat + @property + def size(self): return self._size + @property + def pos(self): return self._pos + @property + def mat(self): return self._mat + @property + def rgba(self): return self._rgba + @property + def label(self): return self._label + +cdef PyMjvGeom WrapMjvGeom(mjvGeom* p): + cdef PyMjvGeom o = PyMjvGeom() + o._set(p) + return o + +cdef class PyMjVisual_global_(object): + cdef mjVisual_global_* ptr + + + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjVisual_global_* p): + + self.ptr = p + + + + @property + def fovy(self): return self.ptr.fovy + @fovy.setter + def fovy(self, float x): self.ptr.fovy = x + @property + def ipd(self): return self.ptr.ipd + @ipd.setter + def ipd(self, float x): self.ptr.ipd = x + @property + def linewidth(self): return self.ptr.linewidth + @linewidth.setter + def linewidth(self, float x): self.ptr.linewidth = x + @property + def glow(self): return self.ptr.glow + @glow.setter + def glow(self, float x): self.ptr.glow = x + @property + def offwidth(self): return self.ptr.offwidth + @offwidth.setter + def offwidth(self, int x): self.ptr.offwidth = x + @property + def offheight(self): return self.ptr.offheight + @offheight.setter + def offheight(self, int x): self.ptr.offheight = x + +cdef PyMjVisual_global_ WrapMjVisual_global_(mjVisual_global_* p): + cdef PyMjVisual_global_ o = PyMjVisual_global_() + o._set(p) + return o + +cdef class PyMjrContext(object): + cdef mjrContext* ptr + + + cdef np.ndarray _textureType + cdef np.ndarray _texture + cdef np.ndarray _charWidth + cdef np.ndarray _charWidthBig + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjrContext* p): + + self.ptr = p + + + self._textureType = _wrap_int_1d(&p.textureType[0], 100) + self._texture = _wrap_unsigned_int_1d(&p.texture[0], 100) + self._charWidth = _wrap_int_1d(&p.charWidth[0], 127) + self._charWidthBig = _wrap_int_1d(&p.charWidthBig[0], 127) + + @property + def lineWidth(self): return self.ptr.lineWidth + @lineWidth.setter + def lineWidth(self, float x): self.ptr.lineWidth = x + @property + def shadowClip(self): return self.ptr.shadowClip + @shadowClip.setter + def shadowClip(self, float x): self.ptr.shadowClip = x + @property + def shadowScale(self): return self.ptr.shadowScale + @shadowScale.setter + def shadowScale(self, float x): self.ptr.shadowScale = x + @property + def shadowSize(self): return self.ptr.shadowSize + @shadowSize.setter + def shadowSize(self, int x): self.ptr.shadowSize = x + @property + def offWidth(self): return self.ptr.offWidth + @offWidth.setter + def offWidth(self, int x): self.ptr.offWidth = x + @property + def offHeight(self): return self.ptr.offHeight + @offHeight.setter + def offHeight(self, int x): self.ptr.offHeight = x + @property + def offSamples(self): return self.ptr.offSamples + @offSamples.setter + def offSamples(self, int x): self.ptr.offSamples = x + @property + def offFBO(self): return self.ptr.offFBO + @offFBO.setter + def offFBO(self, unsigned int x): self.ptr.offFBO = x + @property + def offFBO_r(self): return self.ptr.offFBO_r + @offFBO_r.setter + def offFBO_r(self, unsigned int x): self.ptr.offFBO_r = x + @property + def offColor(self): return self.ptr.offColor + @offColor.setter + def offColor(self, unsigned int x): self.ptr.offColor = x + @property + def offColor_r(self): return self.ptr.offColor_r + @offColor_r.setter + def offColor_r(self, unsigned int x): self.ptr.offColor_r = x + @property + def offDepthStencil(self): return self.ptr.offDepthStencil + @offDepthStencil.setter + def offDepthStencil(self, unsigned int x): self.ptr.offDepthStencil = x + @property + def offDepthStencil_r(self): return self.ptr.offDepthStencil_r + @offDepthStencil_r.setter + def offDepthStencil_r(self, unsigned int x): self.ptr.offDepthStencil_r = x + @property + def shadowFBO(self): return self.ptr.shadowFBO + @shadowFBO.setter + def shadowFBO(self, unsigned int x): self.ptr.shadowFBO = x + @property + def shadowTex(self): return self.ptr.shadowTex + @shadowTex.setter + def shadowTex(self, unsigned int x): self.ptr.shadowTex = x + @property + def ntexture(self): return self.ptr.ntexture + @ntexture.setter + def ntexture(self, int x): self.ptr.ntexture = x + @property + def basePlane(self): return self.ptr.basePlane + @basePlane.setter + def basePlane(self, unsigned int x): self.ptr.basePlane = x + @property + def baseMesh(self): return self.ptr.baseMesh + @baseMesh.setter + def baseMesh(self, unsigned int x): self.ptr.baseMesh = x + @property + def baseHField(self): return self.ptr.baseHField + @baseHField.setter + def baseHField(self, unsigned int x): self.ptr.baseHField = x + @property + def baseBuiltin(self): return self.ptr.baseBuiltin + @baseBuiltin.setter + def baseBuiltin(self, unsigned int x): self.ptr.baseBuiltin = x + @property + def baseFontNormal(self): return self.ptr.baseFontNormal + @baseFontNormal.setter + def baseFontNormal(self, unsigned int x): self.ptr.baseFontNormal = x + @property + def baseFontShadow(self): return self.ptr.baseFontShadow + @baseFontShadow.setter + def baseFontShadow(self, unsigned int x): self.ptr.baseFontShadow = x + @property + def baseFontBig(self): return self.ptr.baseFontBig + @baseFontBig.setter + def baseFontBig(self, unsigned int x): self.ptr.baseFontBig = x + @property + def rangePlane(self): return self.ptr.rangePlane + @rangePlane.setter + def rangePlane(self, int x): self.ptr.rangePlane = x + @property + def rangeMesh(self): return self.ptr.rangeMesh + @rangeMesh.setter + def rangeMesh(self, int x): self.ptr.rangeMesh = x + @property + def rangeHField(self): return self.ptr.rangeHField + @rangeHField.setter + def rangeHField(self, int x): self.ptr.rangeHField = x + @property + def rangeBuiltin(self): return self.ptr.rangeBuiltin + @rangeBuiltin.setter + def rangeBuiltin(self, int x): self.ptr.rangeBuiltin = x + @property + def rangeFont(self): return self.ptr.rangeFont + @rangeFont.setter + def rangeFont(self, int x): self.ptr.rangeFont = x + @property + def charHeight(self): return self.ptr.charHeight + @charHeight.setter + def charHeight(self, int x): self.ptr.charHeight = x + @property + def charHeightBig(self): return self.ptr.charHeightBig + @charHeightBig.setter + def charHeightBig(self, int x): self.ptr.charHeightBig = x + @property + def glewInitialized(self): return self.ptr.glewInitialized + @glewInitialized.setter + def glewInitialized(self, int x): self.ptr.glewInitialized = x + @property + def windowAvailable(self): return self.ptr.windowAvailable + @windowAvailable.setter + def windowAvailable(self, int x): self.ptr.windowAvailable = x + @property + def windowSamples(self): return self.ptr.windowSamples + @windowSamples.setter + def windowSamples(self, int x): self.ptr.windowSamples = x + @property + def windowStereo(self): return self.ptr.windowStereo + @windowStereo.setter + def windowStereo(self, int x): self.ptr.windowStereo = x + @property + def windowDoublebuffer(self): return self.ptr.windowDoublebuffer + @windowDoublebuffer.setter + def windowDoublebuffer(self, int x): self.ptr.windowDoublebuffer = x + @property + def currentBuffer(self): return self.ptr.currentBuffer + @currentBuffer.setter + def currentBuffer(self, int x): self.ptr.currentBuffer = x + @property + def textureType(self): return self._textureType + @property + def texture(self): return self._texture + @property + def charWidth(self): return self._charWidth + @property + def charWidthBig(self): return self._charWidthBig + +cdef PyMjrContext WrapMjrContext(mjrContext* p): + cdef PyMjrContext o = PyMjrContext() + o._set(p) + return o + +cdef class PyMjVFS(object): + cdef mjVFS* ptr + + + cdef np.ndarray _filesize + + def __cinit__(self): + self.ptr = PyMem_Malloc(sizeof(mjVFS)) + if not self.ptr: + raise MemoryError() + + def __dealloc__(self): + PyMem_Free(self.ptr) + + cdef void _set(self, mjVFS* p): + + self.ptr = p + + + self._filesize = _wrap_int_1d(&p.filesize[0], 200) + + @property + def nfile(self): return self.ptr.nfile + @nfile.setter + def nfile(self, int x): self.ptr.nfile = x + @property + def filesize(self): return self._filesize + +cdef PyMjVFS WrapMjVFS(mjVFS* p): + cdef PyMjVFS o = PyMjVFS() + o._set(p) + return o + +cdef class PyMjVisual_scale(object): + cdef mjVisual_scale* ptr + + + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjVisual_scale* p): + + self.ptr = p + + + + @property + def forcewidth(self): return self.ptr.forcewidth + @forcewidth.setter + def forcewidth(self, float x): self.ptr.forcewidth = x + @property + def contactwidth(self): return self.ptr.contactwidth + @contactwidth.setter + def contactwidth(self, float x): self.ptr.contactwidth = x + @property + def contactheight(self): return self.ptr.contactheight + @contactheight.setter + def contactheight(self, float x): self.ptr.contactheight = x + @property + def connect(self): return self.ptr.connect + @connect.setter + def connect(self, float x): self.ptr.connect = x + @property + def com(self): return self.ptr.com + @com.setter + def com(self, float x): self.ptr.com = x + @property + def camera(self): return self.ptr.camera + @camera.setter + def camera(self, float x): self.ptr.camera = x + @property + def light(self): return self.ptr.light + @light.setter + def light(self, float x): self.ptr.light = x + @property + def selectpoint(self): return self.ptr.selectpoint + @selectpoint.setter + def selectpoint(self, float x): self.ptr.selectpoint = x + @property + def jointlength(self): return self.ptr.jointlength + @jointlength.setter + def jointlength(self, float x): self.ptr.jointlength = x + @property + def jointwidth(self): return self.ptr.jointwidth + @jointwidth.setter + def jointwidth(self, float x): self.ptr.jointwidth = x + @property + def actuatorlength(self): return self.ptr.actuatorlength + @actuatorlength.setter + def actuatorlength(self, float x): self.ptr.actuatorlength = x + @property + def actuatorwidth(self): return self.ptr.actuatorwidth + @actuatorwidth.setter + def actuatorwidth(self, float x): self.ptr.actuatorwidth = x + @property + def framelength(self): return self.ptr.framelength + @framelength.setter + def framelength(self, float x): self.ptr.framelength = x + @property + def framewidth(self): return self.ptr.framewidth + @framewidth.setter + def framewidth(self, float x): self.ptr.framewidth = x + @property + def constraint(self): return self.ptr.constraint + @constraint.setter + def constraint(self, float x): self.ptr.constraint = x + @property + def slidercrank(self): return self.ptr.slidercrank + @slidercrank.setter + def slidercrank(self, float x): self.ptr.slidercrank = x + +cdef PyMjVisual_scale WrapMjVisual_scale(mjVisual_scale* p): + cdef PyMjVisual_scale o = PyMjVisual_scale() + o._set(p) + return o + +cdef class PyMjStatistic(object): + cdef mjStatistic* ptr + + + cdef np.ndarray _center + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjStatistic* p): + + self.ptr = p + + + self._center = _wrap_mjtNum_1d(&p.center[0], 3) + + @property + def meaninertia(self): return self.ptr.meaninertia + @meaninertia.setter + def meaninertia(self, mjtNum x): self.ptr.meaninertia = x + @property + def meanmass(self): return self.ptr.meanmass + @meanmass.setter + def meanmass(self, mjtNum x): self.ptr.meanmass = x + @property + def meansize(self): return self.ptr.meansize + @meansize.setter + def meansize(self, mjtNum x): self.ptr.meansize = x + @property + def extent(self): return self.ptr.extent + @extent.setter + def extent(self, mjtNum x): self.ptr.extent = x + @property + def center(self): return self._center + +cdef PyMjStatistic WrapMjStatistic(mjStatistic* p): + cdef PyMjStatistic o = PyMjStatistic() + o._set(p) + return o + +cdef class PyMjvScene(object): + cdef mjvScene* ptr + + + cdef list _lights + cdef list _camera + cdef np.ndarray _translate + cdef np.ndarray _rotate + cdef np.ndarray _flags + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjvScene* p): + + self.ptr = p + + + self._lights = [WrapMjvLight(&p.lights[i]) for i in range(8)] + self._camera = [WrapMjvGLCamera(&p.camera[i]) for i in range(2)] + self._translate = _wrap_float_1d(&p.translate[0], 3) + self._rotate = _wrap_float_1d(&p.rotate[0], 4) + self._flags = _wrap_mjtByte_1d(&p.flags[0], mjNRNDFLAG) + + @property + def maxgeom(self): return self.ptr.maxgeom + @maxgeom.setter + def maxgeom(self, int x): self.ptr.maxgeom = x + @property + def ngeom(self): return self.ptr.ngeom + @ngeom.setter + def ngeom(self, int x): self.ptr.ngeom = x + @property + def nlight(self): return self.ptr.nlight + @nlight.setter + def nlight(self, int x): self.ptr.nlight = x + @property + def enabletransform(self): return self.ptr.enabletransform + @enabletransform.setter + def enabletransform(self, mjtByte x): self.ptr.enabletransform = x + @property + def scale(self): return self.ptr.scale + @scale.setter + def scale(self, float x): self.ptr.scale = x + @property + def stereo(self): return self.ptr.stereo + @stereo.setter + def stereo(self, int x): self.ptr.stereo = x + @property + def lights(self): return self._lights + @property + def camera(self): return self._camera + @property + def translate(self): return self._translate + @property + def rotate(self): return self._rotate + @property + def flags(self): return self._flags + +cdef PyMjvScene WrapMjvScene(mjvScene* p): + cdef PyMjvScene o = PyMjvScene() + o._set(p) + return o + +cdef class PyMjvLight(object): + cdef mjvLight* ptr + + + cdef np.ndarray _pos + cdef np.ndarray _dir + cdef np.ndarray _attenuation + cdef np.ndarray _ambient + cdef np.ndarray _diffuse + cdef np.ndarray _specular + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjvLight* p): + + self.ptr = p + + + self._pos = _wrap_float_1d(&p.pos[0], 3) + self._dir = _wrap_float_1d(&p.dir[0], 3) + self._attenuation = _wrap_float_1d(&p.attenuation[0], 3) + self._ambient = _wrap_float_1d(&p.ambient[0], 3) + self._diffuse = _wrap_float_1d(&p.diffuse[0], 3) + self._specular = _wrap_float_1d(&p.specular[0], 3) + + @property + def cutoff(self): return self.ptr.cutoff + @cutoff.setter + def cutoff(self, float x): self.ptr.cutoff = x + @property + def exponent(self): return self.ptr.exponent + @exponent.setter + def exponent(self, float x): self.ptr.exponent = x + @property + def headlight(self): return self.ptr.headlight + @headlight.setter + def headlight(self, mjtByte x): self.ptr.headlight = x + @property + def directional(self): return self.ptr.directional + @directional.setter + def directional(self, mjtByte x): self.ptr.directional = x + @property + def castshadow(self): return self.ptr.castshadow + @castshadow.setter + def castshadow(self, mjtByte x): self.ptr.castshadow = x + @property + def pos(self): return self._pos + @property + def dir(self): return self._dir + @property + def attenuation(self): return self._attenuation + @property + def ambient(self): return self._ambient + @property + def diffuse(self): return self._diffuse + @property + def specular(self): return self._specular + +cdef PyMjvLight WrapMjvLight(mjvLight* p): + cdef PyMjvLight o = PyMjvLight() + o._set(p) + return o + +cdef class PyMjContact(object): + cdef mjContact* ptr + + + cdef np.ndarray _pos + cdef np.ndarray _frame + cdef np.ndarray _friction + cdef np.ndarray _solref + cdef np.ndarray _solimp + cdef np.ndarray _H + + def __cinit__(self): + self.ptr = NULL + + cdef void _set(self, mjContact* p): + + self.ptr = p + + + self._pos = _wrap_mjtNum_1d(&p.pos[0], 3) + self._frame = _wrap_mjtNum_1d(&p.frame[0], 9) + self._friction = _wrap_mjtNum_1d(&p.friction[0], 5) + self._solref = _wrap_mjtNum_1d(&p.solref[0], 2) + self._solimp = _wrap_mjtNum_1d(&p.solimp[0], 3) + self._H = _wrap_mjtNum_1d(&p.H[0], 36) + + @property + def dist(self): return self.ptr.dist + @dist.setter + def dist(self, mjtNum x): self.ptr.dist = x + @property + def includemargin(self): return self.ptr.includemargin + @includemargin.setter + def includemargin(self, mjtNum x): self.ptr.includemargin = x + @property + def mu(self): return self.ptr.mu + @mu.setter + def mu(self, mjtNum x): self.ptr.mu = x + @property + def dim(self): return self.ptr.dim + @dim.setter + def dim(self, int x): self.ptr.dim = x + @property + def geom1(self): return self.ptr.geom1 + @geom1.setter + def geom1(self, int x): self.ptr.geom1 = x + @property + def geom2(self): return self.ptr.geom2 + @geom2.setter + def geom2(self, int x): self.ptr.geom2 = x + @property + def exclude(self): return self.ptr.exclude + @exclude.setter + def exclude(self, int x): self.ptr.exclude = x + @property + def efc_address(self): return self.ptr.efc_address + @efc_address.setter + def efc_address(self, int x): self.ptr.efc_address = x + @property + def pos(self): return self._pos + @property + def frame(self): return self._frame + @property + def friction(self): return self._friction + @property + def solref(self): return self._solref + @property + def solimp(self): return self._solimp + @property + def H(self): return self._H + +cdef PyMjContact WrapMjContact(mjContact* p): + cdef PyMjContact o = PyMjContact() + o._set(p) + return o + +cdef class PyMjModel(object): + cdef mjModel* ptr + + + cdef PyMjOption _opt + cdef PyMjVisual _vis + cdef PyMjStatistic _stat + cdef np.ndarray _qpos0 + cdef np.ndarray _qpos_spring + cdef np.ndarray _body_parentid + cdef np.ndarray _body_rootid + cdef np.ndarray _body_weldid + cdef np.ndarray _body_mocapid + cdef np.ndarray _body_jntnum + cdef np.ndarray _body_jntadr + cdef np.ndarray _body_dofnum + cdef np.ndarray _body_dofadr + cdef np.ndarray _body_geomnum + cdef np.ndarray _body_geomadr + cdef np.ndarray _body_pos + cdef np.ndarray _body_quat + cdef np.ndarray _body_ipos + cdef np.ndarray _body_iquat + cdef np.ndarray _body_mass + cdef np.ndarray _body_subtreemass + cdef np.ndarray _body_inertia + cdef np.ndarray _body_invweight0 + cdef np.ndarray _body_user + cdef np.ndarray _jnt_type + cdef np.ndarray _jnt_qposadr + cdef np.ndarray _jnt_dofadr + cdef np.ndarray _jnt_bodyid + cdef np.ndarray _jnt_limited + cdef np.ndarray _jnt_solref + cdef np.ndarray _jnt_solimp + cdef np.ndarray _jnt_pos + cdef np.ndarray _jnt_axis + cdef np.ndarray _jnt_stiffness + cdef np.ndarray _jnt_range + cdef np.ndarray _jnt_margin + cdef np.ndarray _jnt_user + cdef np.ndarray _dof_bodyid + cdef np.ndarray _dof_jntid + cdef np.ndarray _dof_parentid + cdef np.ndarray _dof_Madr + cdef np.ndarray _dof_solref + cdef np.ndarray _dof_solimp + cdef np.ndarray _dof_frictionloss + cdef np.ndarray _dof_armature + cdef np.ndarray _dof_damping + cdef np.ndarray _dof_invweight0 + cdef np.ndarray _geom_type + cdef np.ndarray _geom_contype + cdef np.ndarray _geom_conaffinity + cdef np.ndarray _geom_condim + cdef np.ndarray _geom_bodyid + cdef np.ndarray _geom_dataid + cdef np.ndarray _geom_matid + cdef np.ndarray _geom_group + cdef np.ndarray _geom_solmix + cdef np.ndarray _geom_solref + cdef np.ndarray _geom_solimp + cdef np.ndarray _geom_size + cdef np.ndarray _geom_rbound + cdef np.ndarray _geom_pos + cdef np.ndarray _geom_quat + cdef np.ndarray _geom_friction + cdef np.ndarray _geom_margin + cdef np.ndarray _geom_gap + cdef np.ndarray _geom_user + cdef np.ndarray _geom_rgba + cdef np.ndarray _site_type + cdef np.ndarray _site_bodyid + cdef np.ndarray _site_matid + cdef np.ndarray _site_group + cdef np.ndarray _site_size + cdef np.ndarray _site_pos + cdef np.ndarray _site_quat + cdef np.ndarray _site_user + cdef np.ndarray _site_rgba + cdef np.ndarray _cam_mode + cdef np.ndarray _cam_bodyid + cdef np.ndarray _cam_targetbodyid + cdef np.ndarray _cam_pos + cdef np.ndarray _cam_quat + cdef np.ndarray _cam_poscom0 + cdef np.ndarray _cam_pos0 + cdef np.ndarray _cam_mat0 + cdef np.ndarray _cam_fovy + cdef np.ndarray _cam_ipd + cdef np.ndarray _cam_user + cdef np.ndarray _light_mode + cdef np.ndarray _light_bodyid + cdef np.ndarray _light_targetbodyid + cdef np.ndarray _light_directional + cdef np.ndarray _light_castshadow + cdef np.ndarray _light_active + cdef np.ndarray _light_pos + cdef np.ndarray _light_dir + cdef np.ndarray _light_poscom0 + cdef np.ndarray _light_pos0 + cdef np.ndarray _light_dir0 + cdef np.ndarray _light_attenuation + cdef np.ndarray _light_cutoff + cdef np.ndarray _light_exponent + cdef np.ndarray _light_ambient + cdef np.ndarray _light_diffuse + cdef np.ndarray _light_specular + cdef np.ndarray _mesh_faceadr + cdef np.ndarray _mesh_facenum + cdef np.ndarray _mesh_vertadr + cdef np.ndarray _mesh_vertnum + cdef np.ndarray _mesh_graphadr + cdef np.ndarray _mesh_vert + cdef np.ndarray _mesh_normal + cdef np.ndarray _mesh_face + cdef np.ndarray _mesh_graph + cdef np.ndarray _hfield_size + cdef np.ndarray _hfield_nrow + cdef np.ndarray _hfield_ncol + cdef np.ndarray _hfield_adr + cdef np.ndarray _hfield_data + cdef np.ndarray _tex_type + cdef np.ndarray _tex_height + cdef np.ndarray _tex_width + cdef np.ndarray _tex_adr + cdef np.ndarray _tex_rgb + cdef np.ndarray _mat_texid + cdef np.ndarray _mat_texuniform + cdef np.ndarray _mat_texrepeat + cdef np.ndarray _mat_emission + cdef np.ndarray _mat_specular + cdef np.ndarray _mat_shininess + cdef np.ndarray _mat_reflectance + cdef np.ndarray _mat_rgba + cdef np.ndarray _pair_dim + cdef np.ndarray _pair_geom1 + cdef np.ndarray _pair_geom2 + cdef np.ndarray _pair_signature + cdef np.ndarray _pair_solref + cdef np.ndarray _pair_solimp + cdef np.ndarray _pair_margin + cdef np.ndarray _pair_gap + cdef np.ndarray _pair_friction + cdef np.ndarray _exclude_signature + cdef np.ndarray _eq_type + cdef np.ndarray _eq_obj1id + cdef np.ndarray _eq_obj2id + cdef np.ndarray _eq_active + cdef np.ndarray _eq_solref + cdef np.ndarray _eq_solimp + cdef np.ndarray _eq_data + cdef np.ndarray _tendon_adr + cdef np.ndarray _tendon_num + cdef np.ndarray _tendon_matid + cdef np.ndarray _tendon_limited + cdef np.ndarray _tendon_width + cdef np.ndarray _tendon_solref_lim + cdef np.ndarray _tendon_solimp_lim + cdef np.ndarray _tendon_solref_fri + cdef np.ndarray _tendon_solimp_fri + cdef np.ndarray _tendon_range + cdef np.ndarray _tendon_margin + cdef np.ndarray _tendon_stiffness + cdef np.ndarray _tendon_damping + cdef np.ndarray _tendon_frictionloss + cdef np.ndarray _tendon_lengthspring + cdef np.ndarray _tendon_length0 + cdef np.ndarray _tendon_invweight0 + cdef np.ndarray _tendon_user + cdef np.ndarray _tendon_rgba + cdef np.ndarray _wrap_type + cdef np.ndarray _wrap_objid + cdef np.ndarray _wrap_prm + cdef np.ndarray _actuator_trntype + cdef np.ndarray _actuator_dyntype + cdef np.ndarray _actuator_gaintype + cdef np.ndarray _actuator_biastype + cdef np.ndarray _actuator_trnid + cdef np.ndarray _actuator_ctrllimited + cdef np.ndarray _actuator_forcelimited + cdef np.ndarray _actuator_dynprm + cdef np.ndarray _actuator_gainprm + cdef np.ndarray _actuator_biasprm + cdef np.ndarray _actuator_ctrlrange + cdef np.ndarray _actuator_forcerange + cdef np.ndarray _actuator_gear + cdef np.ndarray _actuator_cranklength + cdef np.ndarray _actuator_invweight0 + cdef np.ndarray _actuator_length0 + cdef np.ndarray _actuator_lengthrange + cdef np.ndarray _actuator_user + cdef np.ndarray _sensor_type + cdef np.ndarray _sensor_datatype + cdef np.ndarray _sensor_needstage + cdef np.ndarray _sensor_objtype + cdef np.ndarray _sensor_objid + cdef np.ndarray _sensor_dim + cdef np.ndarray _sensor_adr + cdef np.ndarray _sensor_cutoff + cdef np.ndarray _sensor_noise + cdef np.ndarray _sensor_user + cdef np.ndarray _numeric_adr + cdef np.ndarray _numeric_size + cdef np.ndarray _numeric_data + cdef np.ndarray _text_adr + cdef np.ndarray _text_size + cdef np.ndarray _text_data + cdef np.ndarray _tuple_adr + cdef np.ndarray _tuple_size + cdef np.ndarray _tuple_objtype + cdef np.ndarray _tuple_objid + cdef np.ndarray _tuple_objprm + cdef np.ndarray _key_time + cdef np.ndarray _key_qpos + cdef np.ndarray _key_qvel + cdef np.ndarray _key_act + cdef np.ndarray _name_bodyadr + cdef np.ndarray _name_jntadr + cdef np.ndarray _name_geomadr + cdef np.ndarray _name_siteadr + cdef np.ndarray _name_camadr + cdef np.ndarray _name_lightadr + cdef np.ndarray _name_meshadr + cdef np.ndarray _name_hfieldadr + cdef np.ndarray _name_texadr + cdef np.ndarray _name_matadr + cdef np.ndarray _name_eqadr + cdef np.ndarray _name_tendonadr + cdef np.ndarray _name_actuatoradr + cdef np.ndarray _name_sensoradr + cdef np.ndarray _name_numericadr + cdef np.ndarray _name_textadr + cdef np.ndarray _name_tupleadr + cdef np.ndarray _names + + cdef readonly tuple body_names, joint_names, geom_names, site_names, light_names, camera_names, actuator_names, sensor_names + cdef readonly dict _body_id2name, _joint_id2name, _geom_id2name, _site_id2name, _light_id2name, _camera_id2name, _actuator_id2name, _sensor_id2name + cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id + + def body_id2name(self, id): + if id not in self._body_id2name: + raise ValueError("No body with id %d exists." % id) + return self._body_id2name[id] + + def body_name2id(self, name): + if name not in self._body_name2id: + raise ValueError("No \"body\" with name %s exists. Available \"body\" names = %s." % (name, self.body_names)) + return self._body_name2id[name] + + def joint_id2name(self, id): + if id not in self._joint_id2name: + raise ValueError("No joint with id %d exists." % id) + return self._joint_id2name[id] + + def joint_name2id(self, name): + if name not in self._joint_name2id: + raise ValueError("No \"joint\" with name %s exists. Available \"joint\" names = %s." % (name, self.joint_names)) + return self._joint_name2id[name] + + def geom_id2name(self, id): + if id not in self._geom_id2name: + raise ValueError("No geom with id %d exists." % id) + return self._geom_id2name[id] + + def geom_name2id(self, name): + if name not in self._geom_name2id: + raise ValueError("No \"geom\" with name %s exists. Available \"geom\" names = %s." % (name, self.geom_names)) + return self._geom_name2id[name] + + def site_id2name(self, id): + if id not in self._site_id2name: + raise ValueError("No site with id %d exists." % id) + return self._site_id2name[id] + + def site_name2id(self, name): + if name not in self._site_name2id: + raise ValueError("No \"site\" with name %s exists. Available \"site\" names = %s." % (name, self.site_names)) + return self._site_name2id[name] + + def light_id2name(self, id): + if id not in self._light_id2name: + raise ValueError("No light with id %d exists." % id) + return self._light_id2name[id] + + def light_name2id(self, name): + if name not in self._light_name2id: + raise ValueError("No \"light\" with name %s exists. Available \"light\" names = %s." % (name, self.light_names)) + return self._light_name2id[name] + + def camera_id2name(self, id): + if id not in self._camera_id2name: + raise ValueError("No camera with id %d exists." % id) + return self._camera_id2name[id] + + def camera_name2id(self, name): + if name not in self._camera_name2id: + raise ValueError("No \"camera\" with name %s exists. Available \"camera\" names = %s." % (name, self.camera_names)) + return self._camera_name2id[name] + + def actuator_id2name(self, id): + if id not in self._actuator_id2name: + raise ValueError("No actuator with id %d exists." % id) + return self._actuator_id2name[id] + + def actuator_name2id(self, name): + if name not in self._actuator_name2id: + raise ValueError("No \"actuator\" with name %s exists. Available \"actuator\" names = %s." % (name, self.actuator_names)) + return self._actuator_name2id[name] + + def sensor_id2name(self, id): + if id not in self._sensor_id2name: + raise ValueError("No sensor with id %d exists." % id) + return self._sensor_id2name[id] + + def sensor_name2id(self, name): + if name not in self._sensor_name2id: + raise ValueError("No \"sensor\" with name %s exists. Available \"sensor\" names = %s." % (name, self.sensor_names)) + return self._sensor_name2id[name] + + cdef inline tuple _extract_mj_names(self, mjModel* p, int*name_adr, int n, mjtObj obj_type): + cdef char *name + cdef int obj_id + + # objects don't need to be named in the XML, so name might be None + id2name = {i: None for i in range(n)} + name2id = {} + for i in range(n): + name = p.names + name_adr[i] + decoded_name = name.decode() + if decoded_name: + obj_id = mj_name2id(p, obj_type, name) + assert 0 <= obj_id < n and id2name[obj_id] is None + name2id[decoded_name] = obj_id + id2name[obj_id] = decoded_name + + # sort names by increasing id to keep order deterministic + return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name + + def get_xml(self): + cdef char errstr[300] + cdef int ret + with TemporaryDirectory() as td: + filename = os.path.join(td, 'model.xml') + with wrap_mujoco_warning(): + ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300) + if ret == 0: + raise Exception('Failed to save XML: {}'.format(errstr)) + return open(filename).read() + + def get_mjb(self): + with TemporaryDirectory() as td: + filename = os.path.join(td, 'model.mjb') + with wrap_mujoco_warning(): + mj_saveModel(self.ptr, filename.encode(), NULL, 0) + return open(filename, 'rb').read() + + def __dealloc__(self): + mj_deleteModel(self.ptr) + + def get_joint_qpos_addr(self, name): + ''' + Returns the qpos address for given joint. + + Returns: + - address (int, tuple): returns int address if 1-dim joint, otherwise + returns the a (start, end) tuple for pos[start:end] access. + ''' + joint_id = self.joint_name2id(name) + joint_type = self.jnt_type[joint_id] + joint_addr = self.jnt_qposadr[joint_id] + if joint_type == mjtJoint.mjJNT_FREE: + ndim = 7 + elif joint_type == mjtJoint.mjJNT_BALL: + ndim = 4 + else: + assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE) + ndim = 1 + + if ndim == 1: + return joint_addr + else: + return (joint_addr, joint_addr + ndim) + + def get_joint_qvel_addr(self, name): + ''' + Returns the qvel address for given joint. + + Returns: + - address (int, tuple): returns int address if 1-dim joint, otherwise + returns the a (start, end) tuple for vel[start:end] access. + ''' + joint_id = self.joint_name2id(name) + joint_type = self.jnt_type[joint_id] + joint_addr = self.jnt_dofadr[joint_id] + if joint_type == mjtJoint.mjJNT_FREE: + ndim = 6 + elif joint_type == mjtJoint.mjJNT_BALL: + ndim = 3 + else: + assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE) + ndim = 1 + + if ndim == 1: + return joint_addr + else: + return (joint_addr, joint_addr + ndim) + + cdef void _set(self, mjModel* p): + + self.body_names, self._body_name2id, self._body_id2name = self._extract_mj_names(p, p.name_bodyadr, p.nbody, mjtObj.mjOBJ_BODY) + self.joint_names, self._joint_name2id, self._joint_id2name = self._extract_mj_names(p, p.name_jntadr, p.njnt, mjtObj.mjOBJ_JOINT) + self.geom_names, self._geom_name2id, self._geom_id2name = self._extract_mj_names(p, p.name_geomadr, p.ngeom, mjtObj.mjOBJ_GEOM) + self.site_names, self._site_name2id, self._site_id2name = self._extract_mj_names(p, p.name_siteadr, p.nsite, mjtObj.mjOBJ_SITE) + self.light_names, self._light_name2id, self._light_id2name = self._extract_mj_names(p, p.name_lightadr, p.nlight, mjtObj.mjOBJ_LIGHT) + self.camera_names, self._camera_name2id, self._camera_id2name = self._extract_mj_names(p, p.name_camadr, p.ncam, mjtObj.mjOBJ_CAMERA) + self.actuator_names, self._actuator_name2id, self._actuator_id2name = self._extract_mj_names(p, p.name_actuatoradr, p.nu, mjtObj.mjOBJ_ACTUATOR) + self.sensor_names, self._sensor_name2id, self._sensor_id2name = self._extract_mj_names(p, p.name_sensoradr, p.nsensor, mjtObj.mjOBJ_SENSOR) + + self.ptr = p + + + self._opt = WrapMjOption(&p.opt) + self._vis = WrapMjVisual(&p.vis) + self._stat = WrapMjStatistic(&p.stat) + self._qpos0 = _wrap_mjtNum_1d(p.qpos0, p.nq) + self._qpos_spring = _wrap_mjtNum_1d(p.qpos_spring, p.nq) + self._body_parentid = _wrap_int_1d(p.body_parentid, p.nbody) + self._body_rootid = _wrap_int_1d(p.body_rootid, p.nbody) + self._body_weldid = _wrap_int_1d(p.body_weldid, p.nbody) + self._body_mocapid = _wrap_int_1d(p.body_mocapid, p.nbody) + self._body_jntnum = _wrap_int_1d(p.body_jntnum, p.nbody) + self._body_jntadr = _wrap_int_1d(p.body_jntadr, p.nbody) + self._body_dofnum = _wrap_int_1d(p.body_dofnum, p.nbody) + self._body_dofadr = _wrap_int_1d(p.body_dofadr, p.nbody) + self._body_geomnum = _wrap_int_1d(p.body_geomnum, p.nbody) + self._body_geomadr = _wrap_int_1d(p.body_geomadr, p.nbody) + self._body_pos = _wrap_mjtNum_2d(p.body_pos, p.nbody, 3) + self._body_quat = _wrap_mjtNum_2d(p.body_quat, p.nbody, 4) + self._body_ipos = _wrap_mjtNum_2d(p.body_ipos, p.nbody, 3) + self._body_iquat = _wrap_mjtNum_2d(p.body_iquat, p.nbody, 4) + self._body_mass = _wrap_mjtNum_1d(p.body_mass, p.nbody) + self._body_subtreemass = _wrap_mjtNum_1d(p.body_subtreemass, p.nbody) + self._body_inertia = _wrap_mjtNum_2d(p.body_inertia, p.nbody, 3) + self._body_invweight0 = _wrap_mjtNum_2d(p.body_invweight0, p.nbody, 2) + self._body_user = _wrap_mjtNum_2d(p.body_user, p.nbody, p.nuser_body) + self._jnt_type = _wrap_int_1d(p.jnt_type, p.njnt) + self._jnt_qposadr = _wrap_int_1d(p.jnt_qposadr, p.njnt) + self._jnt_dofadr = _wrap_int_1d(p.jnt_dofadr, p.njnt) + self._jnt_bodyid = _wrap_int_1d(p.jnt_bodyid, p.njnt) + self._jnt_limited = _wrap_mjtByte_1d(p.jnt_limited, p.njnt) + self._jnt_solref = _wrap_mjtNum_2d(p.jnt_solref, p.njnt, mjNREF) + self._jnt_solimp = _wrap_mjtNum_2d(p.jnt_solimp, p.njnt, mjNIMP) + self._jnt_pos = _wrap_mjtNum_2d(p.jnt_pos, p.njnt, 3) + self._jnt_axis = _wrap_mjtNum_2d(p.jnt_axis, p.njnt, 3) + self._jnt_stiffness = _wrap_mjtNum_1d(p.jnt_stiffness, p.njnt) + self._jnt_range = _wrap_mjtNum_2d(p.jnt_range, p.njnt, 2) + self._jnt_margin = _wrap_mjtNum_1d(p.jnt_margin, p.njnt) + self._jnt_user = _wrap_mjtNum_2d(p.jnt_user, p.njnt, p.nuser_jnt) + self._dof_bodyid = _wrap_int_1d(p.dof_bodyid, p.nv) + self._dof_jntid = _wrap_int_1d(p.dof_jntid, p.nv) + self._dof_parentid = _wrap_int_1d(p.dof_parentid, p.nv) + self._dof_Madr = _wrap_int_1d(p.dof_Madr, p.nv) + self._dof_solref = _wrap_mjtNum_2d(p.dof_solref, p.nv, mjNREF) + self._dof_solimp = _wrap_mjtNum_2d(p.dof_solimp, p.nv, mjNIMP) + self._dof_frictionloss = _wrap_mjtNum_1d(p.dof_frictionloss, p.nv) + self._dof_armature = _wrap_mjtNum_1d(p.dof_armature, p.nv) + self._dof_damping = _wrap_mjtNum_1d(p.dof_damping, p.nv) + self._dof_invweight0 = _wrap_mjtNum_1d(p.dof_invweight0, p.nv) + self._geom_type = _wrap_int_1d(p.geom_type, p.ngeom) + self._geom_contype = _wrap_int_1d(p.geom_contype, p.ngeom) + self._geom_conaffinity = _wrap_int_1d(p.geom_conaffinity, p.ngeom) + self._geom_condim = _wrap_int_1d(p.geom_condim, p.ngeom) + self._geom_bodyid = _wrap_int_1d(p.geom_bodyid, p.ngeom) + self._geom_dataid = _wrap_int_1d(p.geom_dataid, p.ngeom) + self._geom_matid = _wrap_int_1d(p.geom_matid, p.ngeom) + self._geom_group = _wrap_int_1d(p.geom_group, p.ngeom) + self._geom_solmix = _wrap_mjtNum_1d(p.geom_solmix, p.ngeom) + self._geom_solref = _wrap_mjtNum_2d(p.geom_solref, p.ngeom, mjNREF) + self._geom_solimp = _wrap_mjtNum_2d(p.geom_solimp, p.ngeom, mjNIMP) + self._geom_size = _wrap_mjtNum_2d(p.geom_size, p.ngeom, 3) + self._geom_rbound = _wrap_mjtNum_1d(p.geom_rbound, p.ngeom) + self._geom_pos = _wrap_mjtNum_2d(p.geom_pos, p.ngeom, 3) + self._geom_quat = _wrap_mjtNum_2d(p.geom_quat, p.ngeom, 4) + self._geom_friction = _wrap_mjtNum_2d(p.geom_friction, p.ngeom, 3) + self._geom_margin = _wrap_mjtNum_1d(p.geom_margin, p.ngeom) + self._geom_gap = _wrap_mjtNum_1d(p.geom_gap, p.ngeom) + self._geom_user = _wrap_mjtNum_2d(p.geom_user, p.ngeom, p.nuser_geom) + self._geom_rgba = _wrap_float_2d(p.geom_rgba, p.ngeom, 4) + self._site_type = _wrap_int_1d(p.site_type, p.nsite) + self._site_bodyid = _wrap_int_1d(p.site_bodyid, p.nsite) + self._site_matid = _wrap_int_1d(p.site_matid, p.nsite) + self._site_group = _wrap_int_1d(p.site_group, p.nsite) + self._site_size = _wrap_mjtNum_2d(p.site_size, p.nsite, 3) + self._site_pos = _wrap_mjtNum_2d(p.site_pos, p.nsite, 3) + self._site_quat = _wrap_mjtNum_2d(p.site_quat, p.nsite, 4) + self._site_user = _wrap_mjtNum_2d(p.site_user, p.nsite, p.nuser_site) + self._site_rgba = _wrap_float_2d(p.site_rgba, p.nsite, 4) + self._cam_mode = _wrap_int_1d(p.cam_mode, p.ncam) + self._cam_bodyid = _wrap_int_1d(p.cam_bodyid, p.ncam) + self._cam_targetbodyid = _wrap_int_1d(p.cam_targetbodyid, p.ncam) + self._cam_pos = _wrap_mjtNum_2d(p.cam_pos, p.ncam, 3) + self._cam_quat = _wrap_mjtNum_2d(p.cam_quat, p.ncam, 4) + self._cam_poscom0 = _wrap_mjtNum_2d(p.cam_poscom0, p.ncam, 3) + self._cam_pos0 = _wrap_mjtNum_2d(p.cam_pos0, p.ncam, 3) + self._cam_mat0 = _wrap_mjtNum_2d(p.cam_mat0, p.ncam, 9) + self._cam_fovy = _wrap_mjtNum_1d(p.cam_fovy, p.ncam) + self._cam_ipd = _wrap_mjtNum_1d(p.cam_ipd, p.ncam) + self._cam_user = _wrap_mjtNum_2d(p.cam_user, p.ncam, p.nuser_cam) + self._light_mode = _wrap_int_1d(p.light_mode, p.nlight) + self._light_bodyid = _wrap_int_1d(p.light_bodyid, p.nlight) + self._light_targetbodyid = _wrap_int_1d(p.light_targetbodyid, p.nlight) + self._light_directional = _wrap_mjtByte_1d(p.light_directional, p.nlight) + self._light_castshadow = _wrap_mjtByte_1d(p.light_castshadow, p.nlight) + self._light_active = _wrap_mjtByte_1d(p.light_active, p.nlight) + self._light_pos = _wrap_mjtNum_2d(p.light_pos, p.nlight, 3) + self._light_dir = _wrap_mjtNum_2d(p.light_dir, p.nlight, 3) + self._light_poscom0 = _wrap_mjtNum_2d(p.light_poscom0, p.nlight, 3) + self._light_pos0 = _wrap_mjtNum_2d(p.light_pos0, p.nlight, 3) + self._light_dir0 = _wrap_mjtNum_2d(p.light_dir0, p.nlight, 3) + self._light_attenuation = _wrap_float_2d(p.light_attenuation, p.nlight, 3) + self._light_cutoff = _wrap_float_1d(p.light_cutoff, p.nlight) + self._light_exponent = _wrap_float_1d(p.light_exponent, p.nlight) + self._light_ambient = _wrap_float_2d(p.light_ambient, p.nlight, 3) + self._light_diffuse = _wrap_float_2d(p.light_diffuse, p.nlight, 3) + self._light_specular = _wrap_float_2d(p.light_specular, p.nlight, 3) + self._mesh_faceadr = _wrap_int_1d(p.mesh_faceadr, p.nmesh) + self._mesh_facenum = _wrap_int_1d(p.mesh_facenum, p.nmesh) + self._mesh_vertadr = _wrap_int_1d(p.mesh_vertadr, p.nmesh) + self._mesh_vertnum = _wrap_int_1d(p.mesh_vertnum, p.nmesh) + self._mesh_graphadr = _wrap_int_1d(p.mesh_graphadr, p.nmesh) + self._mesh_vert = _wrap_float_2d(p.mesh_vert, p.nmeshvert, 3) + self._mesh_normal = _wrap_float_2d(p.mesh_normal, p.nmeshvert, 3) + self._mesh_face = _wrap_int_2d(p.mesh_face, p.nmeshface, 3) + self._mesh_graph = _wrap_int_1d(p.mesh_graph, p.nmeshgraph) + self._hfield_size = _wrap_mjtNum_2d(p.hfield_size, p.nhfield, 4) + self._hfield_nrow = _wrap_int_1d(p.hfield_nrow, p.nhfield) + self._hfield_ncol = _wrap_int_1d(p.hfield_ncol, p.nhfield) + self._hfield_adr = _wrap_int_1d(p.hfield_adr, p.nhfield) + self._hfield_data = _wrap_float_1d(p.hfield_data, p.nhfielddata) + self._tex_type = _wrap_int_1d(p.tex_type, p.ntex) + self._tex_height = _wrap_int_1d(p.tex_height, p.ntex) + self._tex_width = _wrap_int_1d(p.tex_width, p.ntex) + self._tex_adr = _wrap_int_1d(p.tex_adr, p.ntex) + self._tex_rgb = _wrap_mjtByte_1d(p.tex_rgb, p.ntexdata) + self._mat_texid = _wrap_int_1d(p.mat_texid, p.nmat) + self._mat_texuniform = _wrap_mjtByte_1d(p.mat_texuniform, p.nmat) + self._mat_texrepeat = _wrap_float_2d(p.mat_texrepeat, p.nmat, 2) + self._mat_emission = _wrap_float_1d(p.mat_emission, p.nmat) + self._mat_specular = _wrap_float_1d(p.mat_specular, p.nmat) + self._mat_shininess = _wrap_float_1d(p.mat_shininess, p.nmat) + self._mat_reflectance = _wrap_float_1d(p.mat_reflectance, p.nmat) + self._mat_rgba = _wrap_float_2d(p.mat_rgba, p.nmat, 4) + self._pair_dim = _wrap_int_1d(p.pair_dim, p.npair) + self._pair_geom1 = _wrap_int_1d(p.pair_geom1, p.npair) + self._pair_geom2 = _wrap_int_1d(p.pair_geom2, p.npair) + self._pair_signature = _wrap_int_1d(p.pair_signature, p.npair) + self._pair_solref = _wrap_mjtNum_2d(p.pair_solref, p.npair, mjNREF) + self._pair_solimp = _wrap_mjtNum_2d(p.pair_solimp, p.npair, mjNIMP) + self._pair_margin = _wrap_mjtNum_1d(p.pair_margin, p.npair) + self._pair_gap = _wrap_mjtNum_1d(p.pair_gap, p.npair) + self._pair_friction = _wrap_mjtNum_2d(p.pair_friction, p.npair, 5) + self._exclude_signature = _wrap_int_1d(p.exclude_signature, p.nexclude) + self._eq_type = _wrap_int_1d(p.eq_type, p.neq) + self._eq_obj1id = _wrap_int_1d(p.eq_obj1id, p.neq) + self._eq_obj2id = _wrap_int_1d(p.eq_obj2id, p.neq) + self._eq_active = _wrap_mjtByte_1d(p.eq_active, p.neq) + self._eq_solref = _wrap_mjtNum_2d(p.eq_solref, p.neq, mjNREF) + self._eq_solimp = _wrap_mjtNum_2d(p.eq_solimp, p.neq, mjNIMP) + self._eq_data = _wrap_mjtNum_2d(p.eq_data, p.neq, mjNEQDATA) + self._tendon_adr = _wrap_int_1d(p.tendon_adr, p.ntendon) + self._tendon_num = _wrap_int_1d(p.tendon_num, p.ntendon) + self._tendon_matid = _wrap_int_1d(p.tendon_matid, p.ntendon) + self._tendon_limited = _wrap_mjtByte_1d(p.tendon_limited, p.ntendon) + self._tendon_width = _wrap_mjtNum_1d(p.tendon_width, p.ntendon) + self._tendon_solref_lim = _wrap_mjtNum_2d(p.tendon_solref_lim, p.ntendon, mjNREF) + self._tendon_solimp_lim = _wrap_mjtNum_2d(p.tendon_solimp_lim, p.ntendon, mjNIMP) + self._tendon_solref_fri = _wrap_mjtNum_2d(p.tendon_solref_fri, p.ntendon, mjNREF) + self._tendon_solimp_fri = _wrap_mjtNum_2d(p.tendon_solimp_fri, p.ntendon, mjNIMP) + self._tendon_range = _wrap_mjtNum_2d(p.tendon_range, p.ntendon, 2) + self._tendon_margin = _wrap_mjtNum_1d(p.tendon_margin, p.ntendon) + self._tendon_stiffness = _wrap_mjtNum_1d(p.tendon_stiffness, p.ntendon) + self._tendon_damping = _wrap_mjtNum_1d(p.tendon_damping, p.ntendon) + self._tendon_frictionloss = _wrap_mjtNum_1d(p.tendon_frictionloss, p.ntendon) + self._tendon_lengthspring = _wrap_mjtNum_1d(p.tendon_lengthspring, p.ntendon) + self._tendon_length0 = _wrap_mjtNum_1d(p.tendon_length0, p.ntendon) + self._tendon_invweight0 = _wrap_mjtNum_1d(p.tendon_invweight0, p.ntendon) + self._tendon_user = _wrap_mjtNum_2d(p.tendon_user, p.ntendon, p.nuser_tendon) + self._tendon_rgba = _wrap_float_2d(p.tendon_rgba, p.ntendon, 4) + self._wrap_type = _wrap_int_1d(p.wrap_type, p.nwrap) + self._wrap_objid = _wrap_int_1d(p.wrap_objid, p.nwrap) + self._wrap_prm = _wrap_mjtNum_1d(p.wrap_prm, p.nwrap) + self._actuator_trntype = _wrap_int_1d(p.actuator_trntype, p.nu) + self._actuator_dyntype = _wrap_int_1d(p.actuator_dyntype, p.nu) + self._actuator_gaintype = _wrap_int_1d(p.actuator_gaintype, p.nu) + self._actuator_biastype = _wrap_int_1d(p.actuator_biastype, p.nu) + self._actuator_trnid = _wrap_int_2d(p.actuator_trnid, p.nu, 2) + self._actuator_ctrllimited = _wrap_mjtByte_1d(p.actuator_ctrllimited, p.nu) + self._actuator_forcelimited = _wrap_mjtByte_1d(p.actuator_forcelimited, p.nu) + self._actuator_dynprm = _wrap_mjtNum_2d(p.actuator_dynprm, p.nu, mjNDYN) + self._actuator_gainprm = _wrap_mjtNum_2d(p.actuator_gainprm, p.nu, mjNGAIN) + self._actuator_biasprm = _wrap_mjtNum_2d(p.actuator_biasprm, p.nu, mjNBIAS) + self._actuator_ctrlrange = _wrap_mjtNum_2d(p.actuator_ctrlrange, p.nu, 2) + self._actuator_forcerange = _wrap_mjtNum_2d(p.actuator_forcerange, p.nu, 2) + self._actuator_gear = _wrap_mjtNum_2d(p.actuator_gear, p.nu, 6) + self._actuator_cranklength = _wrap_mjtNum_1d(p.actuator_cranklength, p.nu) + self._actuator_invweight0 = _wrap_mjtNum_1d(p.actuator_invweight0, p.nu) + self._actuator_length0 = _wrap_mjtNum_1d(p.actuator_length0, p.nu) + self._actuator_lengthrange = _wrap_mjtNum_2d(p.actuator_lengthrange, p.nu, 2) + self._actuator_user = _wrap_mjtNum_2d(p.actuator_user, p.nu, p.nuser_actuator) + self._sensor_type = _wrap_int_1d(p.sensor_type, p.nsensor) + self._sensor_datatype = _wrap_int_1d(p.sensor_datatype, p.nsensor) + self._sensor_needstage = _wrap_int_1d(p.sensor_needstage, p.nsensor) + self._sensor_objtype = _wrap_int_1d(p.sensor_objtype, p.nsensor) + self._sensor_objid = _wrap_int_1d(p.sensor_objid, p.nsensor) + self._sensor_dim = _wrap_int_1d(p.sensor_dim, p.nsensor) + self._sensor_adr = _wrap_int_1d(p.sensor_adr, p.nsensor) + self._sensor_cutoff = _wrap_mjtNum_1d(p.sensor_cutoff, p.nsensor) + self._sensor_noise = _wrap_mjtNum_1d(p.sensor_noise, p.nsensor) + self._sensor_user = _wrap_mjtNum_2d(p.sensor_user, p.nsensor, p.nuser_sensor) + self._numeric_adr = _wrap_int_1d(p.numeric_adr, p.nnumeric) + self._numeric_size = _wrap_int_1d(p.numeric_size, p.nnumeric) + self._numeric_data = _wrap_mjtNum_1d(p.numeric_data, p.nnumericdata) + self._text_adr = _wrap_int_1d(p.text_adr, p.ntext) + self._text_size = _wrap_int_1d(p.text_size, p.ntext) + self._text_data = _wrap_char_1d(p.text_data, p.ntextdata) + self._tuple_adr = _wrap_int_1d(p.tuple_adr, p.ntuple) + self._tuple_size = _wrap_int_1d(p.tuple_size, p.ntuple) + self._tuple_objtype = _wrap_int_1d(p.tuple_objtype, p.ntupledata) + self._tuple_objid = _wrap_int_1d(p.tuple_objid, p.ntupledata) + self._tuple_objprm = _wrap_mjtNum_1d(p.tuple_objprm, p.ntupledata) + self._key_time = _wrap_mjtNum_1d(p.key_time, p.nkey) + self._key_qpos = _wrap_mjtNum_2d(p.key_qpos, p.nkey, p.nq) + self._key_qvel = _wrap_mjtNum_2d(p.key_qvel, p.nkey, p.nv) + self._key_act = _wrap_mjtNum_2d(p.key_act, p.nkey, p.na) + self._name_bodyadr = _wrap_int_1d(p.name_bodyadr, p.nbody) + self._name_jntadr = _wrap_int_1d(p.name_jntadr, p.njnt) + self._name_geomadr = _wrap_int_1d(p.name_geomadr, p.ngeom) + self._name_siteadr = _wrap_int_1d(p.name_siteadr, p.nsite) + self._name_camadr = _wrap_int_1d(p.name_camadr, p.ncam) + self._name_lightadr = _wrap_int_1d(p.name_lightadr, p.nlight) + self._name_meshadr = _wrap_int_1d(p.name_meshadr, p.nmesh) + self._name_hfieldadr = _wrap_int_1d(p.name_hfieldadr, p.nhfield) + self._name_texadr = _wrap_int_1d(p.name_texadr, p.ntex) + self._name_matadr = _wrap_int_1d(p.name_matadr, p.nmat) + self._name_eqadr = _wrap_int_1d(p.name_eqadr, p.neq) + self._name_tendonadr = _wrap_int_1d(p.name_tendonadr, p.ntendon) + self._name_actuatoradr = _wrap_int_1d(p.name_actuatoradr, p.nu) + self._name_sensoradr = _wrap_int_1d(p.name_sensoradr, p.nsensor) + self._name_numericadr = _wrap_int_1d(p.name_numericadr, p.nnumeric) + self._name_textadr = _wrap_int_1d(p.name_textadr, p.ntext) + self._name_tupleadr = _wrap_int_1d(p.name_tupleadr, p.ntuple) + self._names = _wrap_char_1d(p.names, p.nnames) + + @property + def nq(self): return self.ptr.nq + @nq.setter + def nq(self, int x): self.ptr.nq = x + @property + def nv(self): return self.ptr.nv + @nv.setter + def nv(self, int x): self.ptr.nv = x + @property + def nu(self): return self.ptr.nu + @nu.setter + def nu(self, int x): self.ptr.nu = x + @property + def na(self): return self.ptr.na + @na.setter + def na(self, int x): self.ptr.na = x + @property + def nbody(self): return self.ptr.nbody + @nbody.setter + def nbody(self, int x): self.ptr.nbody = x + @property + def njnt(self): return self.ptr.njnt + @njnt.setter + def njnt(self, int x): self.ptr.njnt = x + @property + def ngeom(self): return self.ptr.ngeom + @ngeom.setter + def ngeom(self, int x): self.ptr.ngeom = x + @property + def nsite(self): return self.ptr.nsite + @nsite.setter + def nsite(self, int x): self.ptr.nsite = x + @property + def ncam(self): return self.ptr.ncam + @ncam.setter + def ncam(self, int x): self.ptr.ncam = x + @property + def nlight(self): return self.ptr.nlight + @nlight.setter + def nlight(self, int x): self.ptr.nlight = x + @property + def nmesh(self): return self.ptr.nmesh + @nmesh.setter + def nmesh(self, int x): self.ptr.nmesh = x + @property + def nmeshvert(self): return self.ptr.nmeshvert + @nmeshvert.setter + def nmeshvert(self, int x): self.ptr.nmeshvert = x + @property + def nmeshface(self): return self.ptr.nmeshface + @nmeshface.setter + def nmeshface(self, int x): self.ptr.nmeshface = x + @property + def nmeshgraph(self): return self.ptr.nmeshgraph + @nmeshgraph.setter + def nmeshgraph(self, int x): self.ptr.nmeshgraph = x + @property + def nhfield(self): return self.ptr.nhfield + @nhfield.setter + def nhfield(self, int x): self.ptr.nhfield = x + @property + def nhfielddata(self): return self.ptr.nhfielddata + @nhfielddata.setter + def nhfielddata(self, int x): self.ptr.nhfielddata = x + @property + def ntex(self): return self.ptr.ntex + @ntex.setter + def ntex(self, int x): self.ptr.ntex = x + @property + def ntexdata(self): return self.ptr.ntexdata + @ntexdata.setter + def ntexdata(self, int x): self.ptr.ntexdata = x + @property + def nmat(self): return self.ptr.nmat + @nmat.setter + def nmat(self, int x): self.ptr.nmat = x + @property + def npair(self): return self.ptr.npair + @npair.setter + def npair(self, int x): self.ptr.npair = x + @property + def nexclude(self): return self.ptr.nexclude + @nexclude.setter + def nexclude(self, int x): self.ptr.nexclude = x + @property + def neq(self): return self.ptr.neq + @neq.setter + def neq(self, int x): self.ptr.neq = x + @property + def ntendon(self): return self.ptr.ntendon + @ntendon.setter + def ntendon(self, int x): self.ptr.ntendon = x + @property + def nwrap(self): return self.ptr.nwrap + @nwrap.setter + def nwrap(self, int x): self.ptr.nwrap = x + @property + def nsensor(self): return self.ptr.nsensor + @nsensor.setter + def nsensor(self, int x): self.ptr.nsensor = x + @property + def nnumeric(self): return self.ptr.nnumeric + @nnumeric.setter + def nnumeric(self, int x): self.ptr.nnumeric = x + @property + def nnumericdata(self): return self.ptr.nnumericdata + @nnumericdata.setter + def nnumericdata(self, int x): self.ptr.nnumericdata = x + @property + def ntext(self): return self.ptr.ntext + @ntext.setter + def ntext(self, int x): self.ptr.ntext = x + @property + def ntextdata(self): return self.ptr.ntextdata + @ntextdata.setter + def ntextdata(self, int x): self.ptr.ntextdata = x + @property + def ntuple(self): return self.ptr.ntuple + @ntuple.setter + def ntuple(self, int x): self.ptr.ntuple = x + @property + def ntupledata(self): return self.ptr.ntupledata + @ntupledata.setter + def ntupledata(self, int x): self.ptr.ntupledata = x + @property + def nkey(self): return self.ptr.nkey + @nkey.setter + def nkey(self, int x): self.ptr.nkey = x + @property + def nuser_body(self): return self.ptr.nuser_body + @nuser_body.setter + def nuser_body(self, int x): self.ptr.nuser_body = x + @property + def nuser_jnt(self): return self.ptr.nuser_jnt + @nuser_jnt.setter + def nuser_jnt(self, int x): self.ptr.nuser_jnt = x + @property + def nuser_geom(self): return self.ptr.nuser_geom + @nuser_geom.setter + def nuser_geom(self, int x): self.ptr.nuser_geom = x + @property + def nuser_site(self): return self.ptr.nuser_site + @nuser_site.setter + def nuser_site(self, int x): self.ptr.nuser_site = x + @property + def nuser_cam(self): return self.ptr.nuser_cam + @nuser_cam.setter + def nuser_cam(self, int x): self.ptr.nuser_cam = x + @property + def nuser_tendon(self): return self.ptr.nuser_tendon + @nuser_tendon.setter + def nuser_tendon(self, int x): self.ptr.nuser_tendon = x + @property + def nuser_actuator(self): return self.ptr.nuser_actuator + @nuser_actuator.setter + def nuser_actuator(self, int x): self.ptr.nuser_actuator = x + @property + def nuser_sensor(self): return self.ptr.nuser_sensor + @nuser_sensor.setter + def nuser_sensor(self, int x): self.ptr.nuser_sensor = x + @property + def nnames(self): return self.ptr.nnames + @nnames.setter + def nnames(self, int x): self.ptr.nnames = x + @property + def nM(self): return self.ptr.nM + @nM.setter + def nM(self, int x): self.ptr.nM = x + @property + def nemax(self): return self.ptr.nemax + @nemax.setter + def nemax(self, int x): self.ptr.nemax = x + @property + def njmax(self): return self.ptr.njmax + @njmax.setter + def njmax(self, int x): self.ptr.njmax = x + @property + def nconmax(self): return self.ptr.nconmax + @nconmax.setter + def nconmax(self, int x): self.ptr.nconmax = x + @property + def nstack(self): return self.ptr.nstack + @nstack.setter + def nstack(self, int x): self.ptr.nstack = x + @property + def nuserdata(self): return self.ptr.nuserdata + @nuserdata.setter + def nuserdata(self, int x): self.ptr.nuserdata = x + @property + def nmocap(self): return self.ptr.nmocap + @nmocap.setter + def nmocap(self, int x): self.ptr.nmocap = x + @property + def nsensordata(self): return self.ptr.nsensordata + @nsensordata.setter + def nsensordata(self, int x): self.ptr.nsensordata = x + @property + def nbuffer(self): return self.ptr.nbuffer + @nbuffer.setter + def nbuffer(self, int x): self.ptr.nbuffer = x + @property + def opt(self): return self._opt + @property + def vis(self): return self._vis + @property + def stat(self): return self._stat + @property + def qpos0(self): return self._qpos0 + @property + def qpos_spring(self): return self._qpos_spring + @property + def body_parentid(self): return self._body_parentid + @property + def body_rootid(self): return self._body_rootid + @property + def body_weldid(self): return self._body_weldid + @property + def body_mocapid(self): return self._body_mocapid + @property + def body_jntnum(self): return self._body_jntnum + @property + def body_jntadr(self): return self._body_jntadr + @property + def body_dofnum(self): return self._body_dofnum + @property + def body_dofadr(self): return self._body_dofadr + @property + def body_geomnum(self): return self._body_geomnum + @property + def body_geomadr(self): return self._body_geomadr + @property + def body_pos(self): return self._body_pos + @property + def body_quat(self): return self._body_quat + @property + def body_ipos(self): return self._body_ipos + @property + def body_iquat(self): return self._body_iquat + @property + def body_mass(self): return self._body_mass + @property + def body_subtreemass(self): return self._body_subtreemass + @property + def body_inertia(self): return self._body_inertia + @property + def body_invweight0(self): return self._body_invweight0 + @property + def body_user(self): return self._body_user + @property + def jnt_type(self): return self._jnt_type + @property + def jnt_qposadr(self): return self._jnt_qposadr + @property + def jnt_dofadr(self): return self._jnt_dofadr + @property + def jnt_bodyid(self): return self._jnt_bodyid + @property + def jnt_limited(self): return self._jnt_limited + @property + def jnt_solref(self): return self._jnt_solref + @property + def jnt_solimp(self): return self._jnt_solimp + @property + def jnt_pos(self): return self._jnt_pos + @property + def jnt_axis(self): return self._jnt_axis + @property + def jnt_stiffness(self): return self._jnt_stiffness + @property + def jnt_range(self): return self._jnt_range + @property + def jnt_margin(self): return self._jnt_margin + @property + def jnt_user(self): return self._jnt_user + @property + def dof_bodyid(self): return self._dof_bodyid + @property + def dof_jntid(self): return self._dof_jntid + @property + def dof_parentid(self): return self._dof_parentid + @property + def dof_Madr(self): return self._dof_Madr + @property + def dof_solref(self): return self._dof_solref + @property + def dof_solimp(self): return self._dof_solimp + @property + def dof_frictionloss(self): return self._dof_frictionloss + @property + def dof_armature(self): return self._dof_armature + @property + def dof_damping(self): return self._dof_damping + @property + def dof_invweight0(self): return self._dof_invweight0 + @property + def geom_type(self): return self._geom_type + @property + def geom_contype(self): return self._geom_contype + @property + def geom_conaffinity(self): return self._geom_conaffinity + @property + def geom_condim(self): return self._geom_condim + @property + def geom_bodyid(self): return self._geom_bodyid + @property + def geom_dataid(self): return self._geom_dataid + @property + def geom_matid(self): return self._geom_matid + @property + def geom_group(self): return self._geom_group + @property + def geom_solmix(self): return self._geom_solmix + @property + def geom_solref(self): return self._geom_solref + @property + def geom_solimp(self): return self._geom_solimp + @property + def geom_size(self): return self._geom_size + @property + def geom_rbound(self): return self._geom_rbound + @property + def geom_pos(self): return self._geom_pos + @property + def geom_quat(self): return self._geom_quat + @property + def geom_friction(self): return self._geom_friction + @property + def geom_margin(self): return self._geom_margin + @property + def geom_gap(self): return self._geom_gap + @property + def geom_user(self): return self._geom_user + @property + def geom_rgba(self): return self._geom_rgba + @property + def site_type(self): return self._site_type + @property + def site_bodyid(self): return self._site_bodyid + @property + def site_matid(self): return self._site_matid + @property + def site_group(self): return self._site_group + @property + def site_size(self): return self._site_size + @property + def site_pos(self): return self._site_pos + @property + def site_quat(self): return self._site_quat + @property + def site_user(self): return self._site_user + @property + def site_rgba(self): return self._site_rgba + @property + def cam_mode(self): return self._cam_mode + @property + def cam_bodyid(self): return self._cam_bodyid + @property + def cam_targetbodyid(self): return self._cam_targetbodyid + @property + def cam_pos(self): return self._cam_pos + @property + def cam_quat(self): return self._cam_quat + @property + def cam_poscom0(self): return self._cam_poscom0 + @property + def cam_pos0(self): return self._cam_pos0 + @property + def cam_mat0(self): return self._cam_mat0 + @property + def cam_fovy(self): return self._cam_fovy + @property + def cam_ipd(self): return self._cam_ipd + @property + def cam_user(self): return self._cam_user + @property + def light_mode(self): return self._light_mode + @property + def light_bodyid(self): return self._light_bodyid + @property + def light_targetbodyid(self): return self._light_targetbodyid + @property + def light_directional(self): return self._light_directional + @property + def light_castshadow(self): return self._light_castshadow + @property + def light_active(self): return self._light_active + @property + def light_pos(self): return self._light_pos + @property + def light_dir(self): return self._light_dir + @property + def light_poscom0(self): return self._light_poscom0 + @property + def light_pos0(self): return self._light_pos0 + @property + def light_dir0(self): return self._light_dir0 + @property + def light_attenuation(self): return self._light_attenuation + @property + def light_cutoff(self): return self._light_cutoff + @property + def light_exponent(self): return self._light_exponent + @property + def light_ambient(self): return self._light_ambient + @property + def light_diffuse(self): return self._light_diffuse + @property + def light_specular(self): return self._light_specular + @property + def mesh_faceadr(self): return self._mesh_faceadr + @property + def mesh_facenum(self): return self._mesh_facenum + @property + def mesh_vertadr(self): return self._mesh_vertadr + @property + def mesh_vertnum(self): return self._mesh_vertnum + @property + def mesh_graphadr(self): return self._mesh_graphadr + @property + def mesh_vert(self): return self._mesh_vert + @property + def mesh_normal(self): return self._mesh_normal + @property + def mesh_face(self): return self._mesh_face + @property + def mesh_graph(self): return self._mesh_graph + @property + def hfield_size(self): return self._hfield_size + @property + def hfield_nrow(self): return self._hfield_nrow + @property + def hfield_ncol(self): return self._hfield_ncol + @property + def hfield_adr(self): return self._hfield_adr + @property + def hfield_data(self): return self._hfield_data + @property + def tex_type(self): return self._tex_type + @property + def tex_height(self): return self._tex_height + @property + def tex_width(self): return self._tex_width + @property + def tex_adr(self): return self._tex_adr + @property + def tex_rgb(self): return self._tex_rgb + @property + def mat_texid(self): return self._mat_texid + @property + def mat_texuniform(self): return self._mat_texuniform + @property + def mat_texrepeat(self): return self._mat_texrepeat + @property + def mat_emission(self): return self._mat_emission + @property + def mat_specular(self): return self._mat_specular + @property + def mat_shininess(self): return self._mat_shininess + @property + def mat_reflectance(self): return self._mat_reflectance + @property + def mat_rgba(self): return self._mat_rgba + @property + def pair_dim(self): return self._pair_dim + @property + def pair_geom1(self): return self._pair_geom1 + @property + def pair_geom2(self): return self._pair_geom2 + @property + def pair_signature(self): return self._pair_signature + @property + def pair_solref(self): return self._pair_solref + @property + def pair_solimp(self): return self._pair_solimp + @property + def pair_margin(self): return self._pair_margin + @property + def pair_gap(self): return self._pair_gap + @property + def pair_friction(self): return self._pair_friction + @property + def exclude_signature(self): return self._exclude_signature + @property + def eq_type(self): return self._eq_type + @property + def eq_obj1id(self): return self._eq_obj1id + @property + def eq_obj2id(self): return self._eq_obj2id + @property + def eq_active(self): return self._eq_active + @property + def eq_solref(self): return self._eq_solref + @property + def eq_solimp(self): return self._eq_solimp + @property + def eq_data(self): return self._eq_data + @property + def tendon_adr(self): return self._tendon_adr + @property + def tendon_num(self): return self._tendon_num + @property + def tendon_matid(self): return self._tendon_matid + @property + def tendon_limited(self): return self._tendon_limited + @property + def tendon_width(self): return self._tendon_width + @property + def tendon_solref_lim(self): return self._tendon_solref_lim + @property + def tendon_solimp_lim(self): return self._tendon_solimp_lim + @property + def tendon_solref_fri(self): return self._tendon_solref_fri + @property + def tendon_solimp_fri(self): return self._tendon_solimp_fri + @property + def tendon_range(self): return self._tendon_range + @property + def tendon_margin(self): return self._tendon_margin + @property + def tendon_stiffness(self): return self._tendon_stiffness + @property + def tendon_damping(self): return self._tendon_damping + @property + def tendon_frictionloss(self): return self._tendon_frictionloss + @property + def tendon_lengthspring(self): return self._tendon_lengthspring + @property + def tendon_length0(self): return self._tendon_length0 + @property + def tendon_invweight0(self): return self._tendon_invweight0 + @property + def tendon_user(self): return self._tendon_user + @property + def tendon_rgba(self): return self._tendon_rgba + @property + def wrap_type(self): return self._wrap_type + @property + def wrap_objid(self): return self._wrap_objid + @property + def wrap_prm(self): return self._wrap_prm + @property + def actuator_trntype(self): return self._actuator_trntype + @property + def actuator_dyntype(self): return self._actuator_dyntype + @property + def actuator_gaintype(self): return self._actuator_gaintype + @property + def actuator_biastype(self): return self._actuator_biastype + @property + def actuator_trnid(self): return self._actuator_trnid + @property + def actuator_ctrllimited(self): return self._actuator_ctrllimited + @property + def actuator_forcelimited(self): return self._actuator_forcelimited + @property + def actuator_dynprm(self): return self._actuator_dynprm + @property + def actuator_gainprm(self): return self._actuator_gainprm + @property + def actuator_biasprm(self): return self._actuator_biasprm + @property + def actuator_ctrlrange(self): return self._actuator_ctrlrange + @property + def actuator_forcerange(self): return self._actuator_forcerange + @property + def actuator_gear(self): return self._actuator_gear + @property + def actuator_cranklength(self): return self._actuator_cranklength + @property + def actuator_invweight0(self): return self._actuator_invweight0 + @property + def actuator_length0(self): return self._actuator_length0 + @property + def actuator_lengthrange(self): return self._actuator_lengthrange + @property + def actuator_user(self): return self._actuator_user + @property + def sensor_type(self): return self._sensor_type + @property + def sensor_datatype(self): return self._sensor_datatype + @property + def sensor_needstage(self): return self._sensor_needstage + @property + def sensor_objtype(self): return self._sensor_objtype + @property + def sensor_objid(self): return self._sensor_objid + @property + def sensor_dim(self): return self._sensor_dim + @property + def sensor_adr(self): return self._sensor_adr + @property + def sensor_cutoff(self): return self._sensor_cutoff + @property + def sensor_noise(self): return self._sensor_noise + @property + def sensor_user(self): return self._sensor_user + @property + def numeric_adr(self): return self._numeric_adr + @property + def numeric_size(self): return self._numeric_size + @property + def numeric_data(self): return self._numeric_data + @property + def text_adr(self): return self._text_adr + @property + def text_size(self): return self._text_size + @property + def text_data(self): return self._text_data + @property + def tuple_adr(self): return self._tuple_adr + @property + def tuple_size(self): return self._tuple_size + @property + def tuple_objtype(self): return self._tuple_objtype + @property + def tuple_objid(self): return self._tuple_objid + @property + def tuple_objprm(self): return self._tuple_objprm + @property + def key_time(self): return self._key_time + @property + def key_qpos(self): return self._key_qpos + @property + def key_qvel(self): return self._key_qvel + @property + def key_act(self): return self._key_act + @property + def name_bodyadr(self): return self._name_bodyadr + @property + def name_jntadr(self): return self._name_jntadr + @property + def name_geomadr(self): return self._name_geomadr + @property + def name_siteadr(self): return self._name_siteadr + @property + def name_camadr(self): return self._name_camadr + @property + def name_lightadr(self): return self._name_lightadr + @property + def name_meshadr(self): return self._name_meshadr + @property + def name_hfieldadr(self): return self._name_hfieldadr + @property + def name_texadr(self): return self._name_texadr + @property + def name_matadr(self): return self._name_matadr + @property + def name_eqadr(self): return self._name_eqadr + @property + def name_tendonadr(self): return self._name_tendonadr + @property + def name_actuatoradr(self): return self._name_actuatoradr + @property + def name_sensoradr(self): return self._name_sensoradr + @property + def name_numericadr(self): return self._name_numericadr + @property + def name_textadr(self): return self._name_textadr + @property + def name_tupleadr(self): return self._name_tupleadr + @property + def names(self): return self._names + +cdef PyMjModel WrapMjModel(mjModel* p): + cdef PyMjModel o = PyMjModel() + o._set(p) + return o + +cdef inline np.ndarray _wrap_char_1d(char* a, int shape0): + if shape0 == 0: return None + cdef char[:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_float_1d(float* a, int shape0): + if shape0 == 0: return None + cdef float[:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_int_1d(int* a, int shape0): + if shape0 == 0: return None + cdef int[:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_mjtByte_1d(mjtByte* a, int shape0): + if shape0 == 0: return None + cdef mjtByte[:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_mjtNum_1d(mjtNum* a, int shape0): + if shape0 == 0: return None + cdef mjtNum[:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_unsigned_int_1d(unsigned int* a, int shape0): + if shape0 == 0: return None + cdef unsigned int[:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_char_2d(char* a, int shape0, int shape1): + if shape0 * shape1 == 0: return None + cdef char[:,:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_float_2d(float* a, int shape0, int shape1): + if shape0 * shape1 == 0: return None + cdef float[:,:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_int_2d(int* a, int shape0, int shape1): + if shape0 * shape1 == 0: return None + cdef int[:,:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_mjtByte_2d(mjtByte* a, int shape0, int shape1): + if shape0 * shape1 == 0: return None + cdef mjtByte[:,:] b = a + return np.asarray(b) + +cdef inline np.ndarray _wrap_mjtNum_2d(mjtNum* a, int shape0, int shape1): + if shape0 * shape1 == 0: return None + cdef mjtNum[:,:] b = a + return np.asarray(b) + +def _mj_activate(str filename): + return mj_activate(filename.encode()) + +def _mj_deactivate(): + mj_deactivate() + +def _mj_certQuestion(np.ndarray[np.float64_t, mode="c", ndim=1] question): + mj_certQuestion(&question[0]) + +def _mj_certAnswer(np.ndarray[np.float64_t, mode="c", ndim=1] question, np.ndarray[np.float64_t, mode="c", ndim=1] answer): + mj_certAnswer(&question[0], &answer[0]) + +def _mj_certCheck(np.ndarray[np.float64_t, mode="c", ndim=1] question, np.ndarray[np.float64_t, mode="c", ndim=1] answer): + return mj_certCheck(&question[0], &answer[0]) + +def _mj_defaultVFS(PyMjVFS vfs): + mj_defaultVFS(vfs.ptr) + +def _mj_addFileVFS(PyMjVFS vfs, str directory, str filename): + return mj_addFileVFS(vfs.ptr, directory.encode(), filename.encode()) + +def _mj_makeEmptyFileVFS(PyMjVFS vfs, str filename, int filesize): + return mj_makeEmptyFileVFS(vfs.ptr, filename.encode(), filesize) + +def _mj_findFileVFS(PyMjVFS vfs, str filename): + return mj_findFileVFS(vfs.ptr, filename.encode()) + +def _mj_deleteFileVFS(PyMjVFS vfs, str filename): + return mj_deleteFileVFS(vfs.ptr, filename.encode()) + +def _mj_deleteVFS(PyMjVFS vfs): + mj_deleteVFS(vfs.ptr) + +def _mj_loadXML(str filename, PyMjVFS vfs, str error, int error_sz): + return WrapMjModel(mj_loadXML(filename.encode(), vfs.ptr, error.encode(), error_sz)) + +def _mj_saveLastXML(str filename, PyMjModel m, str error, int error_sz): + return mj_saveLastXML(filename.encode(), m.ptr, error.encode(), error_sz) + +def _mj_freeLastXML(): + mj_freeLastXML() + +def _mj_printSchema(str filename, str buffer, int buffer_sz, int flg_html, int flg_pad): + return mj_printSchema(filename.encode(), buffer.encode(), buffer_sz, flg_html, flg_pad) + +def _mj_step(PyMjModel m, PyMjData d): + mj_step(m.ptr, d.ptr) + +def _mj_step1(PyMjModel m, PyMjData d): + mj_step1(m.ptr, d.ptr) + +def _mj_step2(PyMjModel m, PyMjData d): + mj_step2(m.ptr, d.ptr) + +def _mj_forward(PyMjModel m, PyMjData d): + mj_forward(m.ptr, d.ptr) + +def _mj_inverse(PyMjModel m, PyMjData d): + mj_inverse(m.ptr, d.ptr) + +def _mj_forwardSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensorenergy): + mj_forwardSkip(m.ptr, d.ptr, skipstage, skipsensorenergy) + +def _mj_inverseSkip(PyMjModel m, PyMjData d, int skipstage, int skipsensorenergy): + mj_inverseSkip(m.ptr, d.ptr, skipstage, skipsensorenergy) + +def _mj_defaultSolRefImp(np.ndarray[np.float64_t, mode="c", ndim=1] solref, np.ndarray[np.float64_t, mode="c", ndim=1] solimp): + mj_defaultSolRefImp(&solref[0], &solimp[0]) + +def _mj_defaultOption(PyMjOption opt): + mj_defaultOption(opt.ptr) + +def _mj_defaultVisual(PyMjVisual vis): + mj_defaultVisual(vis.ptr) + +def _mj_copyModel(PyMjModel dest, PyMjModel src): + return WrapMjModel(mj_copyModel(dest.ptr, src.ptr)) + +def _mj_loadModel(str filename, PyMjVFS vfs): + return WrapMjModel(mj_loadModel(filename.encode(), vfs.ptr)) + +def _mj_deleteModel(PyMjModel m): + mj_deleteModel(m.ptr) + +def _mj_sizeModel(PyMjModel m): + return mj_sizeModel(m.ptr) + +def _mj_resetData(PyMjModel m, PyMjData d): + mj_resetData(m.ptr, d.ptr) + +def _mj_resetDataKeyframe(PyMjModel m, PyMjData d, int key): + mj_resetDataKeyframe(m.ptr, d.ptr, key) + +def _mj_deleteData(PyMjData d): + mj_deleteData(d.ptr) + +def _mj_resetCallbacks(): + mj_resetCallbacks() + +def _mj_setConst(PyMjModel m, PyMjData d, int flg_actrange): + mj_setConst(m.ptr, d.ptr, flg_actrange) + +def _mj_printModel(PyMjModel m, str filename): + mj_printModel(m.ptr, filename.encode()) + +def _mj_printData(PyMjModel m, PyMjData d, str filename): + mj_printData(m.ptr, d.ptr, filename.encode()) + +def _mju_printMat(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc): + mju_printMat(&mat[0], nr, nc) + +def _mj_fwdPosition(PyMjModel m, PyMjData d): + mj_fwdPosition(m.ptr, d.ptr) + +def _mj_fwdVelocity(PyMjModel m, PyMjData d): + mj_fwdVelocity(m.ptr, d.ptr) + +def _mj_fwdActuation(PyMjModel m, PyMjData d): + mj_fwdActuation(m.ptr, d.ptr) + +def _mj_fwdAcceleration(PyMjModel m, PyMjData d): + mj_fwdAcceleration(m.ptr, d.ptr) + +def _mj_fwdConstraint(PyMjModel m, PyMjData d): + mj_fwdConstraint(m.ptr, d.ptr) + +def _mj_Euler(PyMjModel m, PyMjData d): + mj_Euler(m.ptr, d.ptr) + +def _mj_RungeKutta(PyMjModel m, PyMjData d, int N): + mj_RungeKutta(m.ptr, d.ptr, N) + +def _mj_invPosition(PyMjModel m, PyMjData d): + mj_invPosition(m.ptr, d.ptr) + +def _mj_invVelocity(PyMjModel m, PyMjData d): + mj_invVelocity(m.ptr, d.ptr) + +def _mj_invConstraint(PyMjModel m, PyMjData d): + mj_invConstraint(m.ptr, d.ptr) + +def _mj_compareFwdInv(PyMjModel m, PyMjData d): + mj_compareFwdInv(m.ptr, d.ptr) + +def _mj_sensorPos(PyMjModel m, PyMjData d): + mj_sensorPos(m.ptr, d.ptr) + +def _mj_sensorVel(PyMjModel m, PyMjData d): + mj_sensorVel(m.ptr, d.ptr) + +def _mj_sensorAcc(PyMjModel m, PyMjData d): + mj_sensorAcc(m.ptr, d.ptr) + +def _mj_energyPos(PyMjModel m, PyMjData d): + mj_energyPos(m.ptr, d.ptr) + +def _mj_energyVel(PyMjModel m, PyMjData d): + mj_energyVel(m.ptr, d.ptr) + +def _mj_checkPos(PyMjModel m, PyMjData d): + mj_checkPos(m.ptr, d.ptr) + +def _mj_checkVel(PyMjModel m, PyMjData d): + mj_checkVel(m.ptr, d.ptr) + +def _mj_checkAcc(PyMjModel m, PyMjData d): + mj_checkAcc(m.ptr, d.ptr) + +def _mj_kinematics(PyMjModel m, PyMjData d): + mj_kinematics(m.ptr, d.ptr) + +def _mj_comPos(PyMjModel m, PyMjData d): + mj_comPos(m.ptr, d.ptr) + +def _mj_camlight(PyMjModel m, PyMjData d): + mj_camlight(m.ptr, d.ptr) + +def _mj_tendon(PyMjModel m, PyMjData d): + mj_tendon(m.ptr, d.ptr) + +def _mj_transmission(PyMjModel m, PyMjData d): + mj_transmission(m.ptr, d.ptr) + +def _mj_crb(PyMjModel m, PyMjData d): + mj_crb(m.ptr, d.ptr) + +def _mj_factorM(PyMjModel m, PyMjData d): + mj_factorM(m.ptr, d.ptr) + +def _mj_solveM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n): + mj_solveM(m.ptr, d.ptr, &x[0], &y[0], n) + +def _mj_solveM2(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] x, np.ndarray[np.float64_t, mode="c", ndim=1] y, int n): + mj_solveM2(m.ptr, d.ptr, &x[0], &y[0], n) + +def _mj_comVel(PyMjModel m, PyMjData d): + mj_comVel(m.ptr, d.ptr) + +def _mj_passive(PyMjModel m, PyMjData d): + mj_passive(m.ptr, d.ptr) + +def _mj_rne(PyMjModel m, PyMjData d, int flg_acc, np.ndarray[np.float64_t, mode="c", ndim=1] result): + mj_rne(m.ptr, d.ptr, flg_acc, &result[0]) + +def _mj_rnePostConstraint(PyMjModel m, PyMjData d): + mj_rnePostConstraint(m.ptr, d.ptr) + +def _mj_collision(PyMjModel m, PyMjData d): + mj_collision(m.ptr, d.ptr) + +def _mj_makeConstraint(PyMjModel m, PyMjData d): + mj_makeConstraint(m.ptr, d.ptr) + +def _mj_projectConstraint(PyMjModel m, PyMjData d): + mj_projectConstraint(m.ptr, d.ptr) + +def _mj_referenceConstraint(PyMjModel m, PyMjData d): + mj_referenceConstraint(m.ptr, d.ptr) + +def _mj_constraintUpdate(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jar, np.ndarray[np.float64_t, mode="c", ndim=1] cost, int flg_coneHessian): + mj_constraintUpdate(m.ptr, d.ptr, &jar[0], &cost[0], flg_coneHessian) + +def _mj_addContact(PyMjModel m, PyMjData d, PyMjContact con): + return mj_addContact(m.ptr, d.ptr, con.ptr) + +def _mj_isPyramidal(PyMjModel m): + return mj_isPyramidal(m.ptr) + +def _mj_isSparse(PyMjModel m): + return mj_isSparse(m.ptr) + +def _mj_isDual(PyMjModel m): + return mj_isDual(m.ptr) + +def _mj_mulJacVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + mj_mulJacVec(m.ptr, d.ptr, &res[0], &vec[0]) + +def _mj_mulJacTVec(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + mj_mulJacTVec(m.ptr, d.ptr, &res[0], &vec[0]) + +def _mj_jac(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body): + mj_jac(m.ptr, d.ptr, &jacp[0], &jacr[0], &point[0], body) + +def _mj_jacBody(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body): + mj_jacBody(m.ptr, d.ptr, &jacp[0], &jacr[0], body) + +def _mj_jacBodyCom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int body): + mj_jacBodyCom(m.ptr, d.ptr, &jacp[0], &jacr[0], body) + +def _mj_jacGeom(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int geom): + mj_jacGeom(m.ptr, d.ptr, &jacp[0], &jacr[0], geom) + +def _mj_jacSite(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacp, np.ndarray[np.float64_t, mode="c", ndim=1] jacr, int site): + mj_jacSite(m.ptr, d.ptr, &jacp[0], &jacr[0], site) + +def _mj_jacPointAxis(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] jacPoint, np.ndarray[np.float64_t, mode="c", ndim=1] jacAxis, np.ndarray[np.float64_t, mode="c", ndim=1] point, np.ndarray[np.float64_t, mode="c", ndim=1] axis, int body): + mj_jacPointAxis(m.ptr, d.ptr, &jacPoint[0], &jacAxis[0], &point[0], &axis[0], body) + +def _mj_name2id(PyMjModel m, int type, str name): + return mj_name2id(m.ptr, type, name.encode()) + +def _mj_fullM(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] dst, np.ndarray[np.float64_t, mode="c", ndim=1] M): + mj_fullM(m.ptr, &dst[0], &M[0]) + +def _mj_mulM(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + mj_mulM(m.ptr, d.ptr, &res[0], &vec[0]) + +def _mj_applyFT(PyMjModel m, PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] torque, np.ndarray[np.float64_t, mode="c", ndim=1] point, int body, np.ndarray[np.float64_t, mode="c", ndim=1] qfrc_target): + mj_applyFT(m.ptr, d.ptr, &force[0], &torque[0], &point[0], body, &qfrc_target[0]) + +def _mj_objectVelocity(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local): + mj_objectVelocity(m.ptr, d.ptr, objtype, objid, &res[0], flg_local) + +def _mj_objectAcceleration(PyMjModel m, PyMjData d, int objtype, int objid, np.ndarray[np.float64_t, mode="c", ndim=1] res, int flg_local): + mj_objectAcceleration(m.ptr, d.ptr, objtype, objid, &res[0], flg_local) + +def _mj_differentiatePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt, np.ndarray[np.float64_t, mode="c", ndim=1] qpos1, np.ndarray[np.float64_t, mode="c", ndim=1] qpos2): + mj_differentiatePos(m.ptr, &qvel[0], dt, &qpos1[0], &qpos2[0]) + +def _mj_contactForce(PyMjModel m, PyMjData d, int id, np.ndarray[np.float64_t, mode="c", ndim=1] result): + mj_contactForce(m.ptr, d.ptr, id, &result[0]) + +def _mj_integratePos(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos, np.ndarray[np.float64_t, mode="c", ndim=1] qvel, float dt): + mj_integratePos(m.ptr, &qpos[0], &qvel[0], dt) + +def _mj_normalizeQuat(PyMjModel m, np.ndarray[np.float64_t, mode="c", ndim=1] qpos): + mj_normalizeQuat(m.ptr, &qpos[0]) + +def _mj_local2Global(PyMjData d, np.ndarray[np.float64_t, mode="c", ndim=1] xpos, np.ndarray[np.float64_t, mode="c", ndim=1] xmat, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, int body): + mj_local2Global(d.ptr, &xpos[0], &xmat[0], &pos[0], &quat[0], body) + +def _mj_getTotalmass(PyMjModel m): + return mj_getTotalmass(m.ptr) + +def _mj_setTotalmass(PyMjModel m, float newmass): + mj_setTotalmass(m.ptr, newmass) + +def _mj_version(): + return mj_version() + +def _mj_rayHfield(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + return mj_rayHfield(m.ptr, d.ptr, geomid, &pnt[0], &vec[0]) + +def _mj_rayMesh(PyMjModel m, PyMjData d, int geomid, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + return mj_rayMesh(m.ptr, d.ptr, geomid, &pnt[0], &vec[0]) + +def _mju_rayGeom(np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] size, np.ndarray[np.float64_t, mode="c", ndim=1] pnt, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int geomtype): + return mju_rayGeom(&pos[0], &mat[0], &size[0], &pnt[0], &vec[0], geomtype) + +def _mjv_defaultCamera(PyMjvCamera cam): + mjv_defaultCamera(cam.ptr) + +def _mjv_defaultPerturb(PyMjvPerturb pert): + mjv_defaultPerturb(pert.ptr) + +def _mjv_room2model(np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, PyMjvScene scn): + mjv_room2model(&modelpos[0], &modelquat[0], &roompos[0], &roomquat[0], scn.ptr) + +def _mjv_model2room(np.ndarray[np.float64_t, mode="c", ndim=1] roompos, np.ndarray[np.float64_t, mode="c", ndim=1] roomquat, np.ndarray[np.float64_t, mode="c", ndim=1] modelpos, np.ndarray[np.float64_t, mode="c", ndim=1] modelquat, PyMjvScene scn): + mjv_model2room(&roompos[0], &roomquat[0], &modelpos[0], &modelquat[0], scn.ptr) + +def _mjv_cameraInModel(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn): + mjv_cameraInModel(&headpos[0], &forward[0], &up[0], scn.ptr) + +def _mjv_cameraInRoom(np.ndarray[np.float64_t, mode="c", ndim=1] headpos, np.ndarray[np.float64_t, mode="c", ndim=1] forward, np.ndarray[np.float64_t, mode="c", ndim=1] up, PyMjvScene scn): + mjv_cameraInRoom(&headpos[0], &forward[0], &up[0], scn.ptr) + +def _mjv_frustumHeight(PyMjvScene scn): + return mjv_frustumHeight(scn.ptr) + +def _mjv_alignToCamera(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] forward): + mjv_alignToCamera(&res[0], &vec[0], &forward[0]) + +def _mjv_moveCamera(PyMjModel m, int action, float reldx, float reldy, PyMjvScene scn, PyMjvCamera cam): + mjv_moveCamera(m.ptr, action, reldx, reldy, scn.ptr, cam.ptr) + +def _mjv_movePerturb(PyMjModel m, PyMjData d, int action, float reldx, float reldy, PyMjvScene scn, PyMjvPerturb pert): + mjv_movePerturb(m.ptr, d.ptr, action, reldx, reldy, scn.ptr, pert.ptr) + +def _mjv_moveModel(PyMjModel m, int action, float reldx, float reldy, np.ndarray[np.float64_t, mode="c", ndim=1] roomup, PyMjvScene scn): + mjv_moveModel(m.ptr, action, reldx, reldy, &roomup[0], scn.ptr) + +def _mjv_initPerturb(PyMjModel m, PyMjData d, PyMjvScene scn, PyMjvPerturb pert): + mjv_initPerturb(m.ptr, d.ptr, scn.ptr, pert.ptr) + +def _mjv_applyPerturbPose(PyMjModel m, PyMjData d, PyMjvPerturb pert, int flg_paused): + mjv_applyPerturbPose(m.ptr, d.ptr, pert.ptr, flg_paused) + +def _mjv_applyPerturbForce(PyMjModel m, PyMjData d, PyMjvPerturb pert): + mjv_applyPerturbForce(m.ptr, d.ptr, pert.ptr) + +def _mjv_select(PyMjModel m, PyMjData d, PyMjvOption vopt, float aspectratio, float relx, float rely, PyMjvScene scn, np.ndarray[np.float64_t, mode="c", ndim=1] selpnt): + return mjv_select(m.ptr, d.ptr, vopt.ptr, aspectratio, relx, rely, scn.ptr, &selpnt[0]) + +def _mjv_defaultOption(PyMjvOption opt): + mjv_defaultOption(opt.ptr) + +def _mjv_defaultFigure(PyMjvFigure fig): + mjv_defaultFigure(fig.ptr) + +def _mjv_makeConnector(PyMjvGeom geom, int type, float width, float a0, float a1, float a2, float b0, float b1, float b2): + mjv_makeConnector(geom.ptr, type, width, a0, a1, a2, b0, b1, b2) + +def _mjv_makeScene(PyMjvScene scn, int maxgeom): + mjv_makeScene(scn.ptr, maxgeom) + +def _mjv_freeScene(PyMjvScene scn): + mjv_freeScene(scn.ptr) + +def _mjv_updateScene(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, PyMjvCamera cam, int catmask, PyMjvScene scn): + mjv_updateScene(m.ptr, d.ptr, opt.ptr, pert.ptr, cam.ptr, catmask, scn.ptr) + +def _mjv_addGeoms(PyMjModel m, PyMjData d, PyMjvOption opt, PyMjvPerturb pert, int catmask, PyMjvScene scn): + mjv_addGeoms(m.ptr, d.ptr, opt.ptr, pert.ptr, catmask, scn.ptr) + +def _mjv_updateCamera(PyMjModel m, PyMjData d, PyMjvCamera cam, PyMjvScene scn): + mjv_updateCamera(m.ptr, d.ptr, cam.ptr, scn.ptr) + +def _mjr_defaultContext(PyMjrContext con): + mjr_defaultContext(con.ptr) + +def _mjr_makeContext(PyMjModel m, PyMjrContext con, int fontscale): + mjr_makeContext(m.ptr, con.ptr, fontscale) + +def _mjr_freeContext(PyMjrContext con): + mjr_freeContext(con.ptr) + +def _mjr_uploadTexture(PyMjModel m, PyMjrContext con, int texid): + mjr_uploadTexture(m.ptr, con.ptr, texid) + +def _mjr_uploadMesh(PyMjModel m, PyMjrContext con, int meshid): + mjr_uploadMesh(m.ptr, con.ptr, meshid) + +def _mjr_uploadHField(PyMjModel m, PyMjrContext con, int hfieldid): + mjr_uploadHField(m.ptr, con.ptr, hfieldid) + +def _mjr_setBuffer(int framebuffer, PyMjrContext con): + mjr_setBuffer(framebuffer, con.ptr) + +def _mjr_blitBuffer(PyMjrRect src, PyMjrRect dst, int flg_color, int flg_depth, PyMjrContext con): + mjr_blitBuffer(src.ptr[0], dst.ptr[0], flg_color, flg_depth, con.ptr) + +def _mjr_overlay(int font, int gridpos, PyMjrRect viewport, str overlay, str overlay2, PyMjrContext con): + mjr_overlay(font, gridpos, viewport.ptr[0], overlay.encode(), overlay2.encode(), con.ptr) + +def _mjr_figure(PyMjrRect viewport, PyMjvFigure fig, PyMjrContext con): + mjr_figure(viewport.ptr[0], fig.ptr, con.ptr) + +def _mjr_render(PyMjrRect viewport, PyMjvScene scn, PyMjrContext con): + mjr_render(viewport.ptr[0], scn.ptr, con.ptr) + +def _mjr_finish(): + mjr_finish() + +def _mjr_getError(): + return mjr_getError() + +def _mju_error(str msg): + mju_error(msg.encode()) + +def _mju_error_i(str msg, int i): + mju_error_i(msg.encode(), i) + +def _mju_error_s(str msg, str text): + mju_error_s(msg.encode(), text.encode()) + +def _mju_warning(str msg): + mju_warning(msg.encode()) + +def _mju_warning_i(str msg, int i): + mju_warning_i(msg.encode(), i) + +def _mju_warning_s(str msg, str text): + mju_warning_s(msg.encode(), text.encode()) + +def _mju_clearHandlers(): + mju_clearHandlers() + +def _mj_warning(PyMjData d, int warning, int info): + mj_warning(d.ptr, warning, info) + +def _mju_writeLog(str type, str msg): + mju_writeLog(type.encode(), msg.encode()) + +def _mju_zero3(np.ndarray[np.float64_t, mode="c", ndim=1] res): + mju_zero3(&res[0]) + +def _mju_copy3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data): + mju_copy3(&res[0], &data[0]) + +def _mju_scl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl): + mju_scl3(&res[0], &vec[0], scl) + +def _mju_add3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2): + mju_add3(&res[0], &vec1[0], &vec2[0]) + +def _mju_sub3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2): + mju_sub3(&res[0], &vec1[0], &vec2[0]) + +def _mju_addTo3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + mju_addTo3(&res[0], &vec[0]) + +def _mju_subFrom3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + mju_subFrom3(&res[0], &vec[0]) + +def _mju_addToScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl): + mju_addToScl3(&res[0], &vec[0], scl) + +def _mju_addScl3(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl): + mju_addScl3(&res[0], &vec1[0], &vec2[0], scl) + +def _mju_normalize3(np.ndarray[np.float64_t, mode="c", ndim=1] res): + return mju_normalize3(&res[0]) + +def _mju_norm3(np.ndarray[np.float64_t, mode="c", ndim=1] vec): + return mju_norm3(&vec[0]) + +def _mju_dot3(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2): + return mju_dot3(&vec1[0], &vec2[0]) + +def _mju_dist3(np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2): + return mju_dist3(&pos1[0], &pos2[0]) + +def _mju_rotVecMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat): + mju_rotVecMat(&res[0], &vec[0], &mat[0]) + +def _mju_rotVecMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] mat): + mju_rotVecMatT(&res[0], &vec[0], &mat[0]) + +def _mju_cross(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] a, np.ndarray[np.float64_t, mode="c", ndim=1] b): + mju_cross(&res[0], &a[0], &b[0]) + +def _mju_zero4(np.ndarray[np.float64_t, mode="c", ndim=1] res): + mju_zero4(&res[0]) + +def _mju_unit4(np.ndarray[np.float64_t, mode="c", ndim=1] res): + mju_unit4(&res[0]) + +def _mju_copy4(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data): + mju_copy4(&res[0], &data[0]) + +def _mju_normalize4(np.ndarray[np.float64_t, mode="c", ndim=1] res): + return mju_normalize4(&res[0]) + +def _mju_zero(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n): + mju_zero(&res[0], n) + +def _mju_copy(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] data, int n): + mju_copy(&res[0], &data[0], n) + +def _mju_scl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n): + mju_scl(&res[0], &vec[0], scl, n) + +def _mju_add(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n): + mju_add(&res[0], &vec1[0], &vec2[0], n) + +def _mju_sub(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n): + mju_sub(&res[0], &vec1[0], &vec2[0], n) + +def _mju_addTo(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n): + mju_addTo(&res[0], &vec[0], n) + +def _mju_subFrom(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n): + mju_subFrom(&res[0], &vec[0], n) + +def _mju_addToScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, float scl, int n): + mju_addToScl(&res[0], &vec[0], scl, n) + +def _mju_addScl(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, float scl, int n): + mju_addScl(&res[0], &vec1[0], &vec2[0], scl, n) + +def _mju_normalize(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n): + return mju_normalize(&res[0], n) + +def _mju_norm(np.ndarray[np.float64_t, mode="c", ndim=1] res, int n): + return mju_norm(&res[0], n) + +def _mju_dot(np.ndarray[np.float64_t, mode="c", ndim=1] vec1, np.ndarray[np.float64_t, mode="c", ndim=1] vec2, int n): + return mju_dot(&vec1[0], &vec2[0], n) + +def _mju_mulMatVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc): + mju_mulMatVec(&res[0], &mat[0], &vec[0], nr, nc) + +def _mju_mulMatTVec(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int nr, int nc): + mju_mulMatTVec(&res[0], &mat[0], &vec[0], nr, nc) + +def _mju_transpose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, int nr, int nc): + mju_transpose(&res[0], &mat[0], nr, nc) + +def _mju_mulMatMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2): + mju_mulMatMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2) + +def _mju_mulMatMatT(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int r2): + mju_mulMatMatT(&res[0], &mat1[0], &mat2[0], r1, c1, r2) + +def _mju_mulMatTMat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat1, np.ndarray[np.float64_t, mode="c", ndim=1] mat2, int r1, int c1, int c2): + mju_mulMatTMat(&res[0], &mat1[0], &mat2[0], r1, c1, c2) + +def _mju_sqrMatTD(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] diag, int nr, int nc): + mju_sqrMatTD(&res[0], &mat[0], &diag[0], nr, nc) + +def _mju_transformSpatial(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int flg_force, np.ndarray[np.float64_t, mode="c", ndim=1] newpos, np.ndarray[np.float64_t, mode="c", ndim=1] oldpos, np.ndarray[np.float64_t, mode="c", ndim=1] rotnew2old): + mju_transformSpatial(&res[0], &vec[0], flg_force, &newpos[0], &oldpos[0], &rotnew2old[0]) + +def _mju_rotVecQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] vec, np.ndarray[np.float64_t, mode="c", ndim=1] quat): + mju_rotVecQuat(&res[0], &vec[0], &quat[0]) + +def _mju_negQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat): + mju_negQuat(&res[0], &quat[0]) + +def _mju_mulQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] quat2): + mju_mulQuat(&res[0], &quat1[0], &quat2[0]) + +def _mju_mulQuatAxis(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] axis): + mju_mulQuatAxis(&res[0], &quat[0], &axis[0]) + +def _mju_axisAngle2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] axis, float angle): + mju_axisAngle2Quat(&res[0], &axis[0], angle) + +def _mju_quat2Vel(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, float dt): + mju_quat2Vel(&res[0], &quat[0], dt) + +def _mju_quat2Mat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat): + mju_quat2Mat(&res[0], &quat[0]) + +def _mju_mat2Quat(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat): + mju_mat2Quat(&quat[0], &mat[0]) + +def _mju_derivQuat(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel): + mju_derivQuat(&res[0], &quat[0], &vel[0]) + +def _mju_quatIntegrate(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vel, float scale): + mju_quatIntegrate(&quat[0], &vel[0], scale) + +def _mju_quatZ2Vec(np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + mju_quatZ2Vec(&quat[0], &vec[0]) + +def _mju_mulPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos1, np.ndarray[np.float64_t, mode="c", ndim=1] quat1, np.ndarray[np.float64_t, mode="c", ndim=1] pos2, np.ndarray[np.float64_t, mode="c", ndim=1] quat2): + mju_mulPose(&posres[0], &quatres[0], &pos1[0], &quat1[0], &pos2[0], &quat2[0]) + +def _mju_negPose(np.ndarray[np.float64_t, mode="c", ndim=1] posres, np.ndarray[np.float64_t, mode="c", ndim=1] quatres, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat): + mju_negPose(&posres[0], &quatres[0], &pos[0], &quat[0]) + +def _mju_trnVecPose(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] pos, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] vec): + mju_trnVecPose(&res[0], &pos[0], &quat[0], &vec[0]) + +def _mju_cholFactor(np.ndarray[np.float64_t, mode="c", ndim=1] mat, int n): + return mju_cholFactor(&mat[0], n) + +def _mju_cholSolve(np.ndarray[np.float64_t, mode="c", ndim=1] res, np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n): + mju_cholSolve(&res[0], &mat[0], &vec[0], n) + +def _mju_cholUpdate(np.ndarray[np.float64_t, mode="c", ndim=1] mat, np.ndarray[np.float64_t, mode="c", ndim=1] x, int n, int flg_plus): + return mju_cholUpdate(&mat[0], &x[0], n, flg_plus) + +def _mju_eig3(np.ndarray[np.float64_t, mode="c", ndim=1] eigval, np.ndarray[np.float64_t, mode="c", ndim=1] eigvec, np.ndarray[np.float64_t, mode="c", ndim=1] quat, np.ndarray[np.float64_t, mode="c", ndim=1] mat): + return mju_eig3(&eigval[0], &eigvec[0], &quat[0], &mat[0]) + +def _mju_muscleFVL(float len, float vel, float lmin, float lmax, np.ndarray[np.float64_t, mode="c", ndim=1] prm): + return mju_muscleFVL(len, vel, lmin, lmax, &prm[0]) + +def _mju_musclePassive(float len, float lmin, float lmax, np.ndarray[np.float64_t, mode="c", ndim=1] prm): + return mju_musclePassive(len, lmin, lmax, &prm[0]) + +def _mju_pneumatic(float len, float len0, float vel, np.ndarray[np.float64_t, mode="c", ndim=1] prm, float act, float ctrl, float timestep, np.ndarray[np.float64_t, mode="c", ndim=1] jac): + return mju_pneumatic(len, len0, vel, &prm[0], act, ctrl, timestep, &jac[0]) + +def _mju_encodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim): + mju_encodePyramid(&pyramid[0], &force[0], &mu[0], dim) + +def _mju_decodePyramid(np.ndarray[np.float64_t, mode="c", ndim=1] force, np.ndarray[np.float64_t, mode="c", ndim=1] pyramid, np.ndarray[np.float64_t, mode="c", ndim=1] mu, int dim): + mju_decodePyramid(&force[0], &pyramid[0], &mu[0], dim) + +def _mju_springDamper(float pos0, float vel0, float Kp, float Kv, float dt): + return mju_springDamper(pos0, vel0, Kp, Kv, dt) + +def _mju_min(float a, float b): + return mju_min(a, b) + +def _mju_max(float a, float b): + return mju_max(a, b) + +def _mju_sign(float x): + return mju_sign(x) + +def _mju_round(float x): + return mju_round(x) + +def _mju_str2Type(str str): + return mju_str2Type(str.encode()) + +def _mju_isBad(float x): + return mju_isBad(x) + +def _mju_isZero(np.ndarray[np.float64_t, mode="c", ndim=1] vec, int n): + return mju_isZero(&vec[0], n) + +def _mju_standardNormal(np.ndarray[np.float64_t, mode="c", ndim=1] num2): + return mju_standardNormal(&num2[0]) + +def _mju_insertionSort(np.ndarray[np.float64_t, mode="c", ndim=1] list, int n): + mju_insertionSort(&list[0], n) + +def _mju_Halton(int index, int base): + return mju_Halton(index, base) + + diff --git a/mujoco_py/gl/__init__.py b/mujoco_py/gl/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mujoco_py/gl/dummyshim.c b/mujoco_py/gl/dummyshim.c new file mode 100644 index 00000000..80786df1 --- /dev/null +++ b/mujoco_py/gl/dummyshim.c @@ -0,0 +1,12 @@ +#include "glshim.h" + +int initOpenGL(int device_id) { + return 1; +} + +int setOpenGLBufferSize(int width, int height) { + return 1; +} + +void closeOpenGL() { +} diff --git a/mujoco_py/gl/egl.h b/mujoco_py/gl/egl.h new file mode 100644 index 00000000..f368d827 --- /dev/null +++ b/mujoco_py/gl/egl.h @@ -0,0 +1,303 @@ +#ifndef __egl_h_ +#define __egl_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2013-2016 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ +/* +** This header is generated from the Khronos OpenGL / OpenGL ES XML +** API Registry. The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** http://www.opengl.org/registry/ +** +** Khronos $Revision: 32889 $ on $Date: 2016-05-31 04:09:51 -0700 (Tue, 31 May 2016) $ +*/ + +#include "eglplatform.h" + +/* Generated on date 20160531 */ + +/* Generated C header for: + * API: egl + * Versions considered: .* + * Versions emitted: .* + * Default extensions included: None + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef EGL_VERSION_1_0 +#define EGL_VERSION_1_0 1 +typedef unsigned int EGLBoolean; +typedef void *EGLDisplay; +#include "khrplatform.h" +#include "eglplatform.h" +typedef void *EGLConfig; +typedef void *EGLSurface; +typedef void *EGLContext; +typedef void (*__eglMustCastToProperFunctionPointerType)(void); +#define EGL_ALPHA_SIZE 0x3021 +#define EGL_BAD_ACCESS 0x3002 +#define EGL_BAD_ALLOC 0x3003 +#define EGL_BAD_ATTRIBUTE 0x3004 +#define EGL_BAD_CONFIG 0x3005 +#define EGL_BAD_CONTEXT 0x3006 +#define EGL_BAD_CURRENT_SURFACE 0x3007 +#define EGL_BAD_DISPLAY 0x3008 +#define EGL_BAD_MATCH 0x3009 +#define EGL_BAD_NATIVE_PIXMAP 0x300A +#define EGL_BAD_NATIVE_WINDOW 0x300B +#define EGL_BAD_PARAMETER 0x300C +#define EGL_BAD_SURFACE 0x300D +#define EGL_BLUE_SIZE 0x3022 +#define EGL_BUFFER_SIZE 0x3020 +#define EGL_CONFIG_CAVEAT 0x3027 +#define EGL_CONFIG_ID 0x3028 +#define EGL_CORE_NATIVE_ENGINE 0x305B +#define EGL_DEPTH_SIZE 0x3025 +#define EGL_DONT_CARE ((EGLint)-1) +#define EGL_DRAW 0x3059 +#define EGL_EXTENSIONS 0x3055 +#define EGL_FALSE 0 +#define EGL_GREEN_SIZE 0x3023 +#define EGL_HEIGHT 0x3056 +#define EGL_LARGEST_PBUFFER 0x3058 +#define EGL_LEVEL 0x3029 +#define EGL_MAX_PBUFFER_HEIGHT 0x302A +#define EGL_MAX_PBUFFER_PIXELS 0x302B +#define EGL_MAX_PBUFFER_WIDTH 0x302C +#define EGL_NATIVE_RENDERABLE 0x302D +#define EGL_NATIVE_VISUAL_ID 0x302E +#define EGL_NATIVE_VISUAL_TYPE 0x302F +#define EGL_NONE 0x3038 +#define EGL_NON_CONFORMANT_CONFIG 0x3051 +#define EGL_NOT_INITIALIZED 0x3001 +#define EGL_NO_CONTEXT ((EGLContext)0) +#define EGL_NO_DISPLAY ((EGLDisplay)0) +#define EGL_NO_SURFACE ((EGLSurface)0) +#define EGL_PBUFFER_BIT 0x0001 +#define EGL_PIXMAP_BIT 0x0002 +#define EGL_READ 0x305A +#define EGL_RED_SIZE 0x3024 +#define EGL_SAMPLES 0x3031 +#define EGL_SAMPLE_BUFFERS 0x3032 +#define EGL_SLOW_CONFIG 0x3050 +#define EGL_STENCIL_SIZE 0x3026 +#define EGL_SUCCESS 0x3000 +#define EGL_SURFACE_TYPE 0x3033 +#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 +#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 +#define EGL_TRANSPARENT_RED_VALUE 0x3037 +#define EGL_TRANSPARENT_RGB 0x3052 +#define EGL_TRANSPARENT_TYPE 0x3034 +#define EGL_TRUE 1 +#define EGL_VENDOR 0x3053 +#define EGL_VERSION 0x3054 +#define EGL_WIDTH 0x3057 +#define EGL_WINDOW_BIT 0x0004 +EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig (EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); +EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers (EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); +EGLAPI EGLContext EGLAPIENTRY eglCreateContext (EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface (EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface (EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface (EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext (EGLDisplay dpy, EGLContext ctx); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface (EGLDisplay dpy, EGLSurface surface); +EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib (EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs (EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); +EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay (void); +EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface (EGLint readdraw); +EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay (EGLNativeDisplayType display_id); +EGLAPI EGLint EGLAPIENTRY eglGetError (void); +EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress (const char *procname); +EGLAPI EGLBoolean EGLAPIENTRY eglInitialize (EGLDisplay dpy, EGLint *major, EGLint *minor); +EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent (EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext (EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); +EGLAPI const char *EGLAPIENTRY eglQueryString (EGLDisplay dpy, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers (EGLDisplay dpy, EGLSurface surface); +EGLAPI EGLBoolean EGLAPIENTRY eglTerminate (EGLDisplay dpy); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL (void); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative (EGLint engine); +#endif /* EGL_VERSION_1_0 */ + +#ifndef EGL_VERSION_1_1 +#define EGL_VERSION_1_1 1 +#define EGL_BACK_BUFFER 0x3084 +#define EGL_BIND_TO_TEXTURE_RGB 0x3039 +#define EGL_BIND_TO_TEXTURE_RGBA 0x303A +#define EGL_CONTEXT_LOST 0x300E +#define EGL_MIN_SWAP_INTERVAL 0x303B +#define EGL_MAX_SWAP_INTERVAL 0x303C +#define EGL_MIPMAP_TEXTURE 0x3082 +#define EGL_MIPMAP_LEVEL 0x3083 +#define EGL_NO_TEXTURE 0x305C +#define EGL_TEXTURE_2D 0x305F +#define EGL_TEXTURE_FORMAT 0x3080 +#define EGL_TEXTURE_RGB 0x305D +#define EGL_TEXTURE_RGBA 0x305E +#define EGL_TEXTURE_TARGET 0x3081 +EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage (EGLDisplay dpy, EGLSurface surface, EGLint buffer); +EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); +EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval (EGLDisplay dpy, EGLint interval); +#endif /* EGL_VERSION_1_1 */ + +#ifndef EGL_VERSION_1_2 +#define EGL_VERSION_1_2 1 +typedef unsigned int EGLenum; +typedef void *EGLClientBuffer; +#define EGL_ALPHA_FORMAT 0x3088 +#define EGL_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_ALPHA_FORMAT_PRE 0x308C +#define EGL_ALPHA_MASK_SIZE 0x303E +#define EGL_BUFFER_PRESERVED 0x3094 +#define EGL_BUFFER_DESTROYED 0x3095 +#define EGL_CLIENT_APIS 0x308D +#define EGL_COLORSPACE 0x3087 +#define EGL_COLORSPACE_sRGB 0x3089 +#define EGL_COLORSPACE_LINEAR 0x308A +#define EGL_COLOR_BUFFER_TYPE 0x303F +#define EGL_CONTEXT_CLIENT_TYPE 0x3097 +#define EGL_DISPLAY_SCALING 10000 +#define EGL_HORIZONTAL_RESOLUTION 0x3090 +#define EGL_LUMINANCE_BUFFER 0x308F +#define EGL_LUMINANCE_SIZE 0x303D +#define EGL_OPENGL_ES_BIT 0x0001 +#define EGL_OPENVG_BIT 0x0002 +#define EGL_OPENGL_ES_API 0x30A0 +#define EGL_OPENVG_API 0x30A1 +#define EGL_OPENVG_IMAGE 0x3096 +#define EGL_PIXEL_ASPECT_RATIO 0x3092 +#define EGL_RENDERABLE_TYPE 0x3040 +#define EGL_RENDER_BUFFER 0x3086 +#define EGL_RGB_BUFFER 0x308E +#define EGL_SINGLE_BUFFER 0x3085 +#define EGL_SWAP_BEHAVIOR 0x3093 +#define EGL_UNKNOWN ((EGLint)-1) +#define EGL_VERTICAL_RESOLUTION 0x3091 +EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI (EGLenum api); +EGLAPI EGLenum EGLAPIENTRY eglQueryAPI (void); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer (EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread (void); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient (void); +#endif /* EGL_VERSION_1_2 */ + +#ifndef EGL_VERSION_1_3 +#define EGL_VERSION_1_3 1 +#define EGL_CONFORMANT 0x3042 +#define EGL_CONTEXT_CLIENT_VERSION 0x3098 +#define EGL_MATCH_NATIVE_PIXMAP 0x3041 +#define EGL_OPENGL_ES2_BIT 0x0004 +#define EGL_VG_ALPHA_FORMAT 0x3088 +#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B +#define EGL_VG_ALPHA_FORMAT_PRE 0x308C +#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 +#define EGL_VG_COLORSPACE 0x3087 +#define EGL_VG_COLORSPACE_sRGB 0x3089 +#define EGL_VG_COLORSPACE_LINEAR 0x308A +#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 +#endif /* EGL_VERSION_1_3 */ + +#ifndef EGL_VERSION_1_4 +#define EGL_VERSION_1_4 1 +#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) +#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 +#define EGL_MULTISAMPLE_RESOLVE 0x3099 +#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A +#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B +#define EGL_OPENGL_API 0x30A2 +#define EGL_OPENGL_BIT 0x0008 +#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 +EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext (void); +#endif /* EGL_VERSION_1_4 */ + +#ifndef EGL_VERSION_1_5 +#define EGL_VERSION_1_5 1 +typedef void *EGLSync; +typedef intptr_t EGLAttrib; +typedef khronos_utime_nanoseconds_t EGLTime; +typedef void *EGLImage; +#define EGL_CONTEXT_MAJOR_VERSION 0x3098 +#define EGL_CONTEXT_MINOR_VERSION 0x30FB +#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD +#define EGL_NO_RESET_NOTIFICATION 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 +#define EGL_OPENGL_ES3_BIT 0x00000040 +#define EGL_CL_EVENT_HANDLE 0x309C +#define EGL_SYNC_CL_EVENT 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 +#define EGL_SYNC_TYPE 0x30F7 +#define EGL_SYNC_STATUS 0x30F1 +#define EGL_SYNC_CONDITION 0x30F8 +#define EGL_SIGNALED 0x30F2 +#define EGL_UNSIGNALED 0x30F3 +#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 +#define EGL_FOREVER 0xFFFFFFFFFFFFFFFFull +#define EGL_TIMEOUT_EXPIRED 0x30F5 +#define EGL_CONDITION_SATISFIED 0x30F6 +#define EGL_NO_SYNC ((EGLSync)0) +#define EGL_SYNC_FENCE 0x30F9 +#define EGL_GL_COLORSPACE 0x309D +#define EGL_GL_COLORSPACE_SRGB 0x3089 +#define EGL_GL_COLORSPACE_LINEAR 0x308A +#define EGL_GL_RENDERBUFFER 0x30B9 +#define EGL_GL_TEXTURE_2D 0x30B1 +#define EGL_GL_TEXTURE_LEVEL 0x30BC +#define EGL_GL_TEXTURE_3D 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET 0x30BD +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 +#define EGL_IMAGE_PRESERVED 0x30D2 +#define EGL_NO_IMAGE ((EGLImage)0) +EGLAPI EGLSync EGLAPIENTRY eglCreateSync (EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySync (EGLDisplay dpy, EGLSync sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttrib (EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); +EGLAPI EGLImage EGLAPIENTRY eglCreateImage (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImage (EGLDisplay dpy, EGLImage image); +EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplay (EGLenum platform, void *native_display, const EGLAttrib *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglWaitSync (EGLDisplay dpy, EGLSync sync, EGLint flags); +#endif /* EGL_VERSION_1_5 */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mujoco_py/gl/eglext.h b/mujoco_py/gl/eglext.h new file mode 100644 index 00000000..4bc7c5d9 --- /dev/null +++ b/mujoco_py/gl/eglext.h @@ -0,0 +1,996 @@ +#ifndef __eglext_h_ +#define __eglext_h_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2013-2016 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ +/* +** This header is generated from the Khronos OpenGL / OpenGL ES XML +** API Registry. The current version of the Registry, generator scripts +** used to make the header, and the header can be found at +** http://www.opengl.org/registry/ +** +** Khronos $Revision: 32938 $ on $Date: 2016-06-06 17:56:15 -0700 (Mon, 06 Jun 2016) $ +*/ + +#include "eglplatform.h" + +#define EGL_EGLEXT_VERSION 20160606 + +/* Generated C header for: + * API: egl + * Versions considered: .* + * Versions emitted: _nomatch_^ + * Default extensions included: egl + * Additional extensions included: _nomatch_^ + * Extensions removed: _nomatch_^ + */ + +#ifndef EGL_KHR_cl_event +#define EGL_KHR_cl_event 1 +#define EGL_CL_EVENT_HANDLE_KHR 0x309C +#define EGL_SYNC_CL_EVENT_KHR 0x30FE +#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF +#endif /* EGL_KHR_cl_event */ + +#ifndef EGL_KHR_cl_event2 +#define EGL_KHR_cl_event2 1 +typedef void *EGLSyncKHR; +typedef intptr_t EGLAttribKHR; +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNC64KHRPROC) (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSync64KHR (EGLDisplay dpy, EGLenum type, const EGLAttribKHR *attrib_list); +#endif +#endif /* EGL_KHR_cl_event2 */ + +#ifndef EGL_KHR_client_get_all_proc_addresses +#define EGL_KHR_client_get_all_proc_addresses 1 +#endif /* EGL_KHR_client_get_all_proc_addresses */ + +#ifndef EGL_KHR_config_attribs +#define EGL_KHR_config_attribs 1 +#define EGL_CONFORMANT_KHR 0x3042 +#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 +#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 +#endif /* EGL_KHR_config_attribs */ + +#ifndef EGL_KHR_create_context +#define EGL_KHR_create_context 1 +#define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 +#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB +#define EGL_CONTEXT_FLAGS_KHR 0x30FC +#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30FD +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31BD +#define EGL_NO_RESET_NOTIFICATION_KHR 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31BF +#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 +#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 +#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 +#define EGL_OPENGL_ES3_BIT_KHR 0x00000040 +#endif /* EGL_KHR_create_context */ + +#ifndef EGL_KHR_create_context_no_error +#define EGL_KHR_create_context_no_error 1 +#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31B3 +#endif /* EGL_KHR_create_context_no_error */ + +#ifndef EGL_KHR_debug +#define EGL_KHR_debug 1 +typedef void *EGLLabelKHR; +typedef void *EGLObjectKHR; +typedef void (EGLAPIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message); +#define EGL_OBJECT_THREAD_KHR 0x33B0 +#define EGL_OBJECT_DISPLAY_KHR 0x33B1 +#define EGL_OBJECT_CONTEXT_KHR 0x33B2 +#define EGL_OBJECT_SURFACE_KHR 0x33B3 +#define EGL_OBJECT_IMAGE_KHR 0x33B4 +#define EGL_OBJECT_SYNC_KHR 0x33B5 +#define EGL_OBJECT_STREAM_KHR 0x33B6 +#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9 +#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA +#define EGL_DEBUG_MSG_WARN_KHR 0x33BB +#define EGL_DEBUG_MSG_INFO_KHR 0x33BC +#define EGL_DEBUG_CALLBACK_KHR 0x33B8 +typedef EGLint (EGLAPIENTRYP PFNEGLDEBUGMESSAGECONTROLKHRPROC) (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEBUGKHRPROC) (EGLint attribute, EGLAttrib *value); +typedef EGLint (EGLAPIENTRYP PFNEGLLABELOBJECTKHRPROC) (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglDebugMessageControlKHR (EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDebugKHR (EGLint attribute, EGLAttrib *value); +EGLAPI EGLint EGLAPIENTRY eglLabelObjectKHR (EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label); +#endif +#endif /* EGL_KHR_debug */ + +#ifndef EGL_KHR_fence_sync +#define EGL_KHR_fence_sync 1 +typedef khronos_utime_nanoseconds_t EGLTimeKHR; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0 +#define EGL_SYNC_CONDITION_KHR 0x30F8 +#define EGL_SYNC_FENCE_KHR 0x30F9 +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR (EGLDisplay dpy, EGLSyncKHR sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_fence_sync */ + +#ifndef EGL_KHR_get_all_proc_addresses +#define EGL_KHR_get_all_proc_addresses 1 +#endif /* EGL_KHR_get_all_proc_addresses */ + +#ifndef EGL_KHR_gl_colorspace +#define EGL_KHR_gl_colorspace 1 +#define EGL_GL_COLORSPACE_KHR 0x309D +#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 +#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A +#endif /* EGL_KHR_gl_colorspace */ + +#ifndef EGL_KHR_gl_renderbuffer_image +#define EGL_KHR_gl_renderbuffer_image 1 +#define EGL_GL_RENDERBUFFER_KHR 0x30B9 +#endif /* EGL_KHR_gl_renderbuffer_image */ + +#ifndef EGL_KHR_gl_texture_2D_image +#define EGL_KHR_gl_texture_2D_image 1 +#define EGL_GL_TEXTURE_2D_KHR 0x30B1 +#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC +#endif /* EGL_KHR_gl_texture_2D_image */ + +#ifndef EGL_KHR_gl_texture_3D_image +#define EGL_KHR_gl_texture_3D_image 1 +#define EGL_GL_TEXTURE_3D_KHR 0x30B2 +#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD +#endif /* EGL_KHR_gl_texture_3D_image */ + +#ifndef EGL_KHR_gl_texture_cubemap_image +#define EGL_KHR_gl_texture_cubemap_image 1 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 +#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 +#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 +#endif /* EGL_KHR_gl_texture_cubemap_image */ + +#ifndef EGL_KHR_image +#define EGL_KHR_image 1 +typedef void *EGLImageKHR; +#define EGL_NATIVE_PIXMAP_KHR 0x30B0 +#define EGL_NO_IMAGE_KHR ((EGLImageKHR)0) +typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image); +#endif +#endif /* EGL_KHR_image */ + +#ifndef EGL_KHR_image_base +#define EGL_KHR_image_base 1 +#define EGL_IMAGE_PRESERVED_KHR 0x30D2 +#endif /* EGL_KHR_image_base */ + +#ifndef EGL_KHR_image_pixmap +#define EGL_KHR_image_pixmap 1 +#endif /* EGL_KHR_image_pixmap */ + +#ifndef EGL_KHR_lock_surface +#define EGL_KHR_lock_surface 1 +#define EGL_READ_SURFACE_BIT_KHR 0x0001 +#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 +#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 +#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 +#define EGL_MATCH_FORMAT_KHR 0x3043 +#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 +#define EGL_FORMAT_RGB_565_KHR 0x30C1 +#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 +#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 +#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 +#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 +#define EGL_BITMAP_POINTER_KHR 0x30C6 +#define EGL_BITMAP_PITCH_KHR 0x30C7 +#define EGL_BITMAP_ORIGIN_KHR 0x30C8 +#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 +#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA +#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB +#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC +#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD +#define EGL_LOWER_LEFT_KHR 0x30CE +#define EGL_UPPER_LEFT_KHR 0x30CF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay dpy, EGLSurface surface); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay dpy, EGLSurface surface, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay dpy, EGLSurface surface); +#endif +#endif /* EGL_KHR_lock_surface */ + +#ifndef EGL_KHR_lock_surface2 +#define EGL_KHR_lock_surface2 1 +#define EGL_BITMAP_PIXEL_SIZE_KHR 0x3110 +#endif /* EGL_KHR_lock_surface2 */ + +#ifndef EGL_KHR_lock_surface3 +#define EGL_KHR_lock_surface3 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACE64KHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface64KHR (EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR *value); +#endif +#endif /* EGL_KHR_lock_surface3 */ + +#ifndef EGL_KHR_mutable_render_buffer +#define EGL_KHR_mutable_render_buffer 1 +#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR 0x1000 +#endif /* EGL_KHR_mutable_render_buffer */ + +#ifndef EGL_KHR_partial_update +#define EGL_KHR_partial_update 1 +#define EGL_BUFFER_AGE_KHR 0x313D +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETDAMAGEREGIONKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSetDamageRegionKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_KHR_partial_update */ + +#ifndef EGL_KHR_platform_android +#define EGL_KHR_platform_android 1 +#define EGL_PLATFORM_ANDROID_KHR 0x3141 +#endif /* EGL_KHR_platform_android */ + +#ifndef EGL_KHR_platform_gbm +#define EGL_KHR_platform_gbm 1 +#define EGL_PLATFORM_GBM_KHR 0x31D7 +#endif /* EGL_KHR_platform_gbm */ + +#ifndef EGL_KHR_platform_wayland +#define EGL_KHR_platform_wayland 1 +#define EGL_PLATFORM_WAYLAND_KHR 0x31D8 +#endif /* EGL_KHR_platform_wayland */ + +#ifndef EGL_KHR_platform_x11 +#define EGL_KHR_platform_x11 1 +#define EGL_PLATFORM_X11_KHR 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_KHR 0x31D6 +#endif /* EGL_KHR_platform_x11 */ + +#ifndef EGL_KHR_reusable_sync +#define EGL_KHR_reusable_sync 1 +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_STATUS_KHR 0x30F1 +#define EGL_SIGNALED_KHR 0x30F2 +#define EGL_UNSIGNALED_KHR 0x30F3 +#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5 +#define EGL_CONDITION_SATISFIED_KHR 0x30F6 +#define EGL_SYNC_TYPE_KHR 0x30F7 +#define EGL_SYNC_REUSABLE_KHR 0x30FA +#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001 +#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFFull +#define EGL_NO_SYNC_KHR ((EGLSyncKHR)0) +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_reusable_sync */ + +#ifndef EGL_KHR_stream +#define EGL_KHR_stream 1 +typedef void *EGLStreamKHR; +typedef khronos_uint64_t EGLuint64KHR; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_NO_STREAM_KHR ((EGLStreamKHR)0) +#define EGL_CONSUMER_LATENCY_USEC_KHR 0x3210 +#define EGL_PRODUCER_FRAME_KHR 0x3212 +#define EGL_CONSUMER_FRAME_KHR 0x3213 +#define EGL_STREAM_STATE_KHR 0x3214 +#define EGL_STREAM_STATE_CREATED_KHR 0x3215 +#define EGL_STREAM_STATE_CONNECTING_KHR 0x3216 +#define EGL_STREAM_STATE_EMPTY_KHR 0x3217 +#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218 +#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219 +#define EGL_STREAM_STATE_DISCONNECTED_KHR 0x321A +#define EGL_BAD_STREAM_KHR 0x321B +#define EGL_BAD_STATE_KHR 0x321C +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMKHRPROC) (EGLDisplay dpy, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMATTRIBKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMU64KHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR (EGLDisplay dpy, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroyStreamKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamAttribKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint *value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_KHR_stream */ + +#ifndef EGL_KHR_stream_consumer_gltexture +#define EGL_KHR_stream_consumer_gltexture 1 +#ifdef EGL_KHR_stream +#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR (EGLDisplay dpy, EGLStreamKHR stream); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_consumer_gltexture */ + +#ifndef EGL_KHR_stream_cross_process_fd +#define EGL_KHR_stream_cross_process_fd 1 +typedef int EGLNativeFileDescriptorKHR; +#ifdef EGL_KHR_stream +#define EGL_NO_FILE_DESCRIPTOR_KHR ((EGLNativeFileDescriptorKHR)(-1)) +typedef EGLNativeFileDescriptorKHR (EGLAPIENTRYP PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream); +typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC) (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLNativeFileDescriptorKHR EGLAPIENTRY eglGetStreamFileDescriptorKHR (EGLDisplay dpy, EGLStreamKHR stream); +EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamFromFileDescriptorKHR (EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_cross_process_fd */ + +#ifndef EGL_KHR_stream_fifo +#define EGL_KHR_stream_fifo 1 +#ifdef EGL_KHR_stream +#define EGL_STREAM_FIFO_LENGTH_KHR 0x31FC +#define EGL_STREAM_TIME_NOW_KHR 0x31FD +#define EGL_STREAM_TIME_CONSUMER_KHR 0x31FE +#define EGL_STREAM_TIME_PRODUCER_KHR 0x31FF +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMTIMEKHRPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamTimeKHR (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR *value); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_fifo */ + +#ifndef EGL_KHR_stream_producer_aldatalocator +#define EGL_KHR_stream_producer_aldatalocator 1 +#ifdef EGL_KHR_stream +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_producer_aldatalocator */ + +#ifndef EGL_KHR_stream_producer_eglsurface +#define EGL_KHR_stream_producer_eglsurface 1 +#ifdef EGL_KHR_stream +#define EGL_STREAM_BIT_KHR 0x0800 +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC) (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSurface EGLAPIENTRY eglCreateStreamProducerSurfaceKHR (EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list); +#endif +#endif /* EGL_KHR_stream */ +#endif /* EGL_KHR_stream_producer_eglsurface */ + +#ifndef EGL_KHR_surfaceless_context +#define EGL_KHR_surfaceless_context 1 +#endif /* EGL_KHR_surfaceless_context */ + +#ifndef EGL_KHR_swap_buffers_with_damage +#define EGL_KHR_swap_buffers_with_damage 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_KHR_swap_buffers_with_damage */ + +#ifndef EGL_KHR_vg_parent_image +#define EGL_KHR_vg_parent_image 1 +#define EGL_VG_PARENT_IMAGE_KHR 0x30BA +#endif /* EGL_KHR_vg_parent_image */ + +#ifndef EGL_KHR_wait_sync +#define EGL_KHR_wait_sync 1 +typedef EGLint (EGLAPIENTRYP PFNEGLWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglWaitSyncKHR (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags); +#endif +#endif /* EGL_KHR_wait_sync */ + +#ifndef EGL_ANDROID_blob_cache +#define EGL_ANDROID_blob_cache 1 +typedef khronos_ssize_t EGLsizeiANDROID; +typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize); +typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize); +typedef void (EGLAPIENTRYP PFNEGLSETBLOBCACHEFUNCSANDROIDPROC) (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI void EGLAPIENTRY eglSetBlobCacheFuncsANDROID (EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get); +#endif +#endif /* EGL_ANDROID_blob_cache */ + +#ifndef EGL_ANDROID_create_native_client_buffer +#define EGL_ANDROID_create_native_client_buffer 1 +#define EGL_NATIVE_BUFFER_USAGE_ANDROID 0x3143 +#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID 0x00000001 +#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID 0x00000002 +#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID 0x00000004 +typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC) (const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID (const EGLint *attrib_list); +#endif +#endif /* EGL_ANDROID_create_native_client_buffer */ + +#ifndef EGL_ANDROID_framebuffer_target +#define EGL_ANDROID_framebuffer_target 1 +#define EGL_FRAMEBUFFER_TARGET_ANDROID 0x3147 +#endif /* EGL_ANDROID_framebuffer_target */ + +#ifndef EGL_ANDROID_front_buffer_auto_refresh +#define EGL_ANDROID_front_buffer_auto_refresh 1 +#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID 0x314C +#endif /* EGL_ANDROID_front_buffer_auto_refresh */ + +#ifndef EGL_ANDROID_image_native_buffer +#define EGL_ANDROID_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_ANDROID 0x3140 +#endif /* EGL_ANDROID_image_native_buffer */ + +#ifndef EGL_ANDROID_native_fence_sync +#define EGL_ANDROID_native_fence_sync 1 +#define EGL_SYNC_NATIVE_FENCE_ANDROID 0x3144 +#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID 0x3145 +#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID 0x3146 +#define EGL_NO_NATIVE_FENCE_FD_ANDROID -1 +typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDANDROIDPROC) (EGLDisplay dpy, EGLSyncKHR sync); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID (EGLDisplay dpy, EGLSyncKHR sync); +#endif +#endif /* EGL_ANDROID_native_fence_sync */ + +#ifndef EGL_ANDROID_presentation_time +#define EGL_ANDROID_presentation_time 1 +typedef khronos_stime_nanoseconds_t EGLnsecsANDROID; +typedef EGLBoolean (EGLAPIENTRYP PFNEGLPRESENTATIONTIMEANDROIDPROC) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time); +#endif +#endif /* EGL_ANDROID_presentation_time */ + +#ifndef EGL_ANDROID_recordable +#define EGL_ANDROID_recordable 1 +#define EGL_RECORDABLE_ANDROID 0x3142 +#endif /* EGL_ANDROID_recordable */ + +#ifndef EGL_ANGLE_d3d_share_handle_client_buffer +#define EGL_ANGLE_d3d_share_handle_client_buffer 1 +#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 +#endif /* EGL_ANGLE_d3d_share_handle_client_buffer */ + +#ifndef EGL_ANGLE_device_d3d +#define EGL_ANGLE_device_d3d 1 +#define EGL_D3D9_DEVICE_ANGLE 0x33A0 +#define EGL_D3D11_DEVICE_ANGLE 0x33A1 +#endif /* EGL_ANGLE_device_d3d */ + +#ifndef EGL_ANGLE_query_surface_pointer +#define EGL_ANGLE_query_surface_pointer 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSURFACEPOINTERANGLEPROC) (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE (EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); +#endif +#endif /* EGL_ANGLE_query_surface_pointer */ + +#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle +#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1 +#endif /* EGL_ANGLE_surface_d3d_texture_2d_share_handle */ + +#ifndef EGL_ANGLE_window_fixed_size +#define EGL_ANGLE_window_fixed_size 1 +#define EGL_FIXED_SIZE_ANGLE 0x3201 +#endif /* EGL_ANGLE_window_fixed_size */ + +#ifndef EGL_ARM_pixmap_multisample_discard +#define EGL_ARM_pixmap_multisample_discard 1 +#define EGL_DISCARD_SAMPLES_ARM 0x3286 +#endif /* EGL_ARM_pixmap_multisample_discard */ + +#ifndef EGL_EXT_buffer_age +#define EGL_EXT_buffer_age 1 +#define EGL_BUFFER_AGE_EXT 0x313D +#endif /* EGL_EXT_buffer_age */ + +#ifndef EGL_EXT_client_extensions +#define EGL_EXT_client_extensions 1 +#endif /* EGL_EXT_client_extensions */ + +#ifndef EGL_EXT_create_context_robustness +#define EGL_EXT_create_context_robustness 1 +#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT 0x30BF +#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138 +#define EGL_NO_RESET_NOTIFICATION_EXT 0x31BE +#define EGL_LOSE_CONTEXT_ON_RESET_EXT 0x31BF +#endif /* EGL_EXT_create_context_robustness */ + +#ifndef EGL_EXT_device_base +#define EGL_EXT_device_base 1 +typedef void *EGLDeviceEXT; +#define EGL_NO_DEVICE_EXT ((EGLDeviceEXT)(0)) +#define EGL_BAD_DEVICE_EXT 0x322B +#define EGL_DEVICE_EXT 0x322C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBEXTPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryDeviceStringEXT (EGLDeviceEXT device, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDevicesEXT (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +#endif +#endif /* EGL_EXT_device_base */ + +#ifndef EGL_EXT_device_drm +#define EGL_EXT_device_drm 1 +#define EGL_DRM_DEVICE_FILE_EXT 0x3233 +#endif /* EGL_EXT_device_drm */ + +#ifndef EGL_EXT_device_enumeration +#define EGL_EXT_device_enumeration 1 +#endif /* EGL_EXT_device_enumeration */ + +#ifndef EGL_EXT_device_openwf +#define EGL_EXT_device_openwf 1 +#define EGL_OPENWF_DEVICE_ID_EXT 0x3237 +#endif /* EGL_EXT_device_openwf */ + +#ifndef EGL_EXT_device_query +#define EGL_EXT_device_query 1 +#endif /* EGL_EXT_device_query */ + +#ifndef EGL_EXT_image_dma_buf_import +#define EGL_EXT_image_dma_buf_import 1 +#define EGL_LINUX_DMA_BUF_EXT 0x3270 +#define EGL_LINUX_DRM_FOURCC_EXT 0x3271 +#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272 +#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273 +#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274 +#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275 +#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276 +#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277 +#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278 +#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279 +#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A +#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B +#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C +#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D +#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E +#define EGL_ITU_REC601_EXT 0x327F +#define EGL_ITU_REC709_EXT 0x3280 +#define EGL_ITU_REC2020_EXT 0x3281 +#define EGL_YUV_FULL_RANGE_EXT 0x3282 +#define EGL_YUV_NARROW_RANGE_EXT 0x3283 +#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284 +#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285 +#endif /* EGL_EXT_image_dma_buf_import */ + +#ifndef EGL_EXT_multiview_window +#define EGL_EXT_multiview_window 1 +#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 +#endif /* EGL_EXT_multiview_window */ + +#ifndef EGL_EXT_output_base +#define EGL_EXT_output_base 1 +typedef void *EGLOutputLayerEXT; +typedef void *EGLOutputPortEXT; +#define EGL_NO_OUTPUT_LAYER_EXT ((EGLOutputLayerEXT)0) +#define EGL_NO_OUTPUT_PORT_EXT ((EGLOutputPortEXT)0) +#define EGL_BAD_OUTPUT_LAYER_EXT 0x322D +#define EGL_BAD_OUTPUT_PORT_EXT 0x322E +#define EGL_SWAP_INTERVAL_EXT 0x322F +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTLAYERSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETOUTPUTPORTSEXTPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); +typedef const char *(EGLAPIENTRYP PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC) (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputLayersEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputLayerEXT *layers, EGLint max_layers, EGLint *num_layers); +EGLAPI EGLBoolean EGLAPIENTRY eglGetOutputPortsEXT (EGLDisplay dpy, const EGLAttrib *attrib_list, EGLOutputPortEXT *ports, EGLint max_ports, EGLint *num_ports); +EGLAPI EGLBoolean EGLAPIENTRY eglOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputLayerAttribEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryOutputLayerStringEXT (EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name); +EGLAPI EGLBoolean EGLAPIENTRY eglOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryOutputPortAttribEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib *value); +EGLAPI const char *EGLAPIENTRY eglQueryOutputPortStringEXT (EGLDisplay dpy, EGLOutputPortEXT port, EGLint name); +#endif +#endif /* EGL_EXT_output_base */ + +#ifndef EGL_EXT_output_drm +#define EGL_EXT_output_drm 1 +#define EGL_DRM_CRTC_EXT 0x3234 +#define EGL_DRM_PLANE_EXT 0x3235 +#define EGL_DRM_CONNECTOR_EXT 0x3236 +#endif /* EGL_EXT_output_drm */ + +#ifndef EGL_EXT_output_openwf +#define EGL_EXT_output_openwf 1 +#define EGL_OPENWF_PIPELINE_ID_EXT 0x3238 +#define EGL_OPENWF_PORT_ID_EXT 0x3239 +#endif /* EGL_EXT_output_openwf */ + +#ifndef EGL_EXT_platform_base +#define EGL_EXT_platform_base 1 +typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYEXTPROC) (EGLenum platform, void *native_display, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT (EGLenum platform, void *native_display, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_window, const EGLint *attrib_list); +EGLAPI EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT (EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLint *attrib_list); +#endif +#endif /* EGL_EXT_platform_base */ + +#ifndef EGL_EXT_platform_device +#define EGL_EXT_platform_device 1 +#define EGL_PLATFORM_DEVICE_EXT 0x313F +#endif /* EGL_EXT_platform_device */ + +#ifndef EGL_EXT_platform_wayland +#define EGL_EXT_platform_wayland 1 +#define EGL_PLATFORM_WAYLAND_EXT 0x31D8 +#endif /* EGL_EXT_platform_wayland */ + +#ifndef EGL_EXT_platform_x11 +#define EGL_EXT_platform_x11 1 +#define EGL_PLATFORM_X11_EXT 0x31D5 +#define EGL_PLATFORM_X11_SCREEN_EXT 0x31D6 +#endif /* EGL_EXT_platform_x11 */ + +#ifndef EGL_EXT_protected_content +#define EGL_EXT_protected_content 1 +#define EGL_PROTECTED_CONTENT_EXT 0x32C0 +#endif /* EGL_EXT_protected_content */ + +#ifndef EGL_EXT_protected_surface +#define EGL_EXT_protected_surface 1 +#endif /* EGL_EXT_protected_surface */ + +#ifndef EGL_EXT_stream_consumer_egloutput +#define EGL_EXT_stream_consumer_egloutput 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerOutputEXT (EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer); +#endif +#endif /* EGL_EXT_stream_consumer_egloutput */ + +#ifndef EGL_EXT_swap_buffers_with_damage +#define EGL_EXT_swap_buffers_with_damage 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC) (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageEXT (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects); +#endif +#endif /* EGL_EXT_swap_buffers_with_damage */ + +#ifndef EGL_EXT_yuv_surface +#define EGL_EXT_yuv_surface 1 +#define EGL_YUV_ORDER_EXT 0x3301 +#define EGL_YUV_NUMBER_OF_PLANES_EXT 0x3311 +#define EGL_YUV_SUBSAMPLE_EXT 0x3312 +#define EGL_YUV_DEPTH_RANGE_EXT 0x3317 +#define EGL_YUV_CSC_STANDARD_EXT 0x330A +#define EGL_YUV_PLANE_BPP_EXT 0x331A +#define EGL_YUV_BUFFER_EXT 0x3300 +#define EGL_YUV_ORDER_YUV_EXT 0x3302 +#define EGL_YUV_ORDER_YVU_EXT 0x3303 +#define EGL_YUV_ORDER_YUYV_EXT 0x3304 +#define EGL_YUV_ORDER_UYVY_EXT 0x3305 +#define EGL_YUV_ORDER_YVYU_EXT 0x3306 +#define EGL_YUV_ORDER_VYUY_EXT 0x3307 +#define EGL_YUV_ORDER_AYUV_EXT 0x3308 +#define EGL_YUV_SUBSAMPLE_4_2_0_EXT 0x3313 +#define EGL_YUV_SUBSAMPLE_4_2_2_EXT 0x3314 +#define EGL_YUV_SUBSAMPLE_4_4_4_EXT 0x3315 +#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT 0x3318 +#define EGL_YUV_DEPTH_RANGE_FULL_EXT 0x3319 +#define EGL_YUV_CSC_STANDARD_601_EXT 0x330B +#define EGL_YUV_CSC_STANDARD_709_EXT 0x330C +#define EGL_YUV_CSC_STANDARD_2020_EXT 0x330D +#define EGL_YUV_PLANE_BPP_0_EXT 0x331B +#define EGL_YUV_PLANE_BPP_8_EXT 0x331C +#define EGL_YUV_PLANE_BPP_10_EXT 0x331D +#endif /* EGL_EXT_yuv_surface */ + +#ifndef EGL_HI_clientpixmap +#define EGL_HI_clientpixmap 1 +struct EGLClientPixmapHI { + void *pData; + EGLint iWidth; + EGLint iHeight; + EGLint iStride; +}; +#define EGL_CLIENT_PIXMAP_POINTER_HI 0x8F74 +typedef EGLSurface (EGLAPIENTRYP PFNEGLCREATEPIXMAPSURFACEHIPROC) (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurfaceHI (EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI *pixmap); +#endif +#endif /* EGL_HI_clientpixmap */ + +#ifndef EGL_HI_colorformats +#define EGL_HI_colorformats 1 +#define EGL_COLOR_FORMAT_HI 0x8F70 +#define EGL_COLOR_RGB_HI 0x8F71 +#define EGL_COLOR_RGBA_HI 0x8F72 +#define EGL_COLOR_ARGB_HI 0x8F73 +#endif /* EGL_HI_colorformats */ + +#ifndef EGL_IMG_context_priority +#define EGL_IMG_context_priority 1 +#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3100 +#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101 +#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102 +#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103 +#endif /* EGL_IMG_context_priority */ + +#ifndef EGL_IMG_image_plane_attribs +#define EGL_IMG_image_plane_attribs 1 +#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG 0x3105 +#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG 0x3106 +#endif /* EGL_IMG_image_plane_attribs */ + +#ifndef EGL_MESA_drm_image +#define EGL_MESA_drm_image 1 +#define EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 +#define EGL_DRM_BUFFER_USE_MESA 0x31D1 +#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 +#define EGL_DRM_BUFFER_MESA 0x31D3 +#define EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 +#define EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x00000001 +#define EGL_DRM_BUFFER_USE_SHARE_MESA 0x00000002 +typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEDRMIMAGEMESAPROC) (EGLDisplay dpy, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDRMIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLImageKHR EGLAPIENTRY eglCreateDRMImageMESA (EGLDisplay dpy, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDRMImageMESA (EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride); +#endif +#endif /* EGL_MESA_drm_image */ + +#ifndef EGL_MESA_image_dma_buf_export +#define EGL_MESA_image_dma_buf_export 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLEXPORTDMABUFIMAGEMESAPROC) (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageQueryMESA (EGLDisplay dpy, EGLImageKHR image, int *fourcc, int *num_planes, EGLuint64KHR *modifiers); +EGLAPI EGLBoolean EGLAPIENTRY eglExportDMABUFImageMESA (EGLDisplay dpy, EGLImageKHR image, int *fds, EGLint *strides, EGLint *offsets); +#endif +#endif /* EGL_MESA_image_dma_buf_export */ + +#ifndef EGL_MESA_platform_gbm +#define EGL_MESA_platform_gbm 1 +#define EGL_PLATFORM_GBM_MESA 0x31D7 +#endif /* EGL_MESA_platform_gbm */ + +#ifndef EGL_NOK_swap_region +#define EGL_NOK_swap_region 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGIONNOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegionNOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#endif +#endif /* EGL_NOK_swap_region */ + +#ifndef EGL_NOK_swap_region2 +#define EGL_NOK_swap_region2 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSREGION2NOKPROC) (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffersRegion2NOK (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects); +#endif +#endif /* EGL_NOK_swap_region2 */ + +#ifndef EGL_NOK_texture_from_pixmap +#define EGL_NOK_texture_from_pixmap 1 +#define EGL_Y_INVERTED_NOK 0x307F +#endif /* EGL_NOK_texture_from_pixmap */ + +#ifndef EGL_NV_3dvision_surface +#define EGL_NV_3dvision_surface 1 +#define EGL_AUTO_STEREO_NV 0x3136 +#endif /* EGL_NV_3dvision_surface */ + +#ifndef EGL_NV_coverage_sample +#define EGL_NV_coverage_sample 1 +#define EGL_COVERAGE_BUFFERS_NV 0x30E0 +#define EGL_COVERAGE_SAMPLES_NV 0x30E1 +#endif /* EGL_NV_coverage_sample */ + +#ifndef EGL_NV_coverage_sample_resolve +#define EGL_NV_coverage_sample_resolve 1 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NV 0x3131 +#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132 +#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV 0x3133 +#endif /* EGL_NV_coverage_sample_resolve */ + +#ifndef EGL_NV_cuda_event +#define EGL_NV_cuda_event 1 +#define EGL_CUDA_EVENT_HANDLE_NV 0x323B +#define EGL_SYNC_CUDA_EVENT_NV 0x323C +#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV 0x323D +#endif /* EGL_NV_cuda_event */ + +#ifndef EGL_NV_depth_nonlinear +#define EGL_NV_depth_nonlinear 1 +#define EGL_DEPTH_ENCODING_NV 0x30E2 +#define EGL_DEPTH_ENCODING_NONE_NV 0 +#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3 +#endif /* EGL_NV_depth_nonlinear */ + +#ifndef EGL_NV_device_cuda +#define EGL_NV_device_cuda 1 +#define EGL_CUDA_DEVICE_NV 0x323A +#endif /* EGL_NV_device_cuda */ + +#ifndef EGL_NV_native_query +#define EGL_NV_native_query 1 +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEDISPLAYNVPROC) (EGLDisplay dpy, EGLNativeDisplayType *display_id); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEWINDOWNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYNATIVEPIXMAPNVPROC) (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeDisplayNV (EGLDisplay dpy, EGLNativeDisplayType *display_id); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativeWindowNV (EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType *window); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryNativePixmapNV (EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType *pixmap); +#endif +#endif /* EGL_NV_native_query */ + +#ifndef EGL_NV_post_convert_rounding +#define EGL_NV_post_convert_rounding 1 +#endif /* EGL_NV_post_convert_rounding */ + +#ifndef EGL_NV_post_sub_buffer +#define EGL_NV_post_sub_buffer 1 +#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30BE +typedef EGLBoolean (EGLAPIENTRYP PFNEGLPOSTSUBBUFFERNVPROC) (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglPostSubBufferNV (EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); +#endif +#endif /* EGL_NV_post_sub_buffer */ + +#ifndef EGL_NV_robustness_video_memory_purge +#define EGL_NV_robustness_video_memory_purge 1 +#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV 0x334C +#endif /* EGL_NV_robustness_video_memory_purge */ + +#ifndef EGL_NV_stream_consumer_gltexture_yuv +#define EGL_NV_stream_consumer_gltexture_yuv 1 +#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV 0x332C +#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV 0x332D +#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV 0x332E +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV (EGLDisplay dpy, EGLStreamKHR stream, EGLAttrib *attrib_list); +#endif +#endif /* EGL_NV_stream_consumer_gltexture_yuv */ + +#ifndef EGL_NV_stream_metadata +#define EGL_NV_stream_metadata 1 +#define EGL_MAX_STREAM_METADATA_BLOCKS_NV 0x3250 +#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV 0x3251 +#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV 0x3252 +#define EGL_PRODUCER_METADATA_NV 0x3253 +#define EGL_CONSUMER_METADATA_NV 0x3254 +#define EGL_PENDING_METADATA_NV 0x3328 +#define EGL_METADATA0_SIZE_NV 0x3255 +#define EGL_METADATA1_SIZE_NV 0x3256 +#define EGL_METADATA2_SIZE_NV 0x3257 +#define EGL_METADATA3_SIZE_NV 0x3258 +#define EGL_METADATA0_TYPE_NV 0x3259 +#define EGL_METADATA1_TYPE_NV 0x325A +#define EGL_METADATA2_TYPE_NV 0x325B +#define EGL_METADATA3_TYPE_NV 0x325C +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDISPLAYATTRIBNVPROC) (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMMETADATANVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglQueryDisplayAttribNV (EGLDisplay dpy, EGLint attribute, EGLAttrib *value); +EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void *data); +EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamMetadataNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void *data); +#endif +#endif /* EGL_NV_stream_metadata */ + +#ifndef EGL_NV_stream_sync +#define EGL_NV_stream_sync 1 +#define EGL_SYNC_NEW_FRAME_NV 0x321F +typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESTREAMSYNCNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateStreamSyncNV (EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint *attrib_list); +#endif +#endif /* EGL_NV_stream_sync */ + +#ifndef EGL_NV_sync +#define EGL_NV_sync 1 +typedef void *EGLSyncNV; +typedef khronos_utime_nanoseconds_t EGLTimeNV; +#ifdef KHRONOS_SUPPORT_INT64 +#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30E6 +#define EGL_SYNC_STATUS_NV 0x30E7 +#define EGL_SIGNALED_NV 0x30E8 +#define EGL_UNSIGNALED_NV 0x30E9 +#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV 0x0001 +#define EGL_FOREVER_NV 0xFFFFFFFFFFFFFFFFull +#define EGL_ALREADY_SIGNALED_NV 0x30EA +#define EGL_TIMEOUT_EXPIRED_NV 0x30EB +#define EGL_CONDITION_SATISFIED_NV 0x30EC +#define EGL_SYNC_TYPE_NV 0x30ED +#define EGL_SYNC_CONDITION_NV 0x30EE +#define EGL_SYNC_FENCE_NV 0x30EF +#define EGL_NO_SYNC_NV ((EGLSyncNV)0) +typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync); +typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLSyncNV EGLAPIENTRY eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list); +EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncNV (EGLSyncNV sync); +EGLAPI EGLBoolean EGLAPIENTRY eglFenceNV (EGLSyncNV sync); +EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout); +EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncNV (EGLSyncNV sync, EGLenum mode); +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_NV_sync */ + +#ifndef EGL_NV_system_time +#define EGL_NV_system_time 1 +typedef khronos_utime_nanoseconds_t EGLuint64NV; +#ifdef KHRONOS_SUPPORT_INT64 +typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void); +typedef EGLuint64NV (EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void); +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeFrequencyNV (void); +EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); +#endif +#endif /* KHRONOS_SUPPORT_INT64 */ +#endif /* EGL_NV_system_time */ + +#ifndef EGL_TIZEN_image_native_buffer +#define EGL_TIZEN_image_native_buffer 1 +#define EGL_NATIVE_BUFFER_TIZEN 0x32A0 +#endif /* EGL_TIZEN_image_native_buffer */ + +#ifndef EGL_TIZEN_image_native_surface +#define EGL_TIZEN_image_native_surface 1 +#define EGL_NATIVE_SURFACE_TIZEN 0x32A1 +#endif /* EGL_TIZEN_image_native_surface */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/mujoco_py/gl/eglplatform.h b/mujoco_py/gl/eglplatform.h new file mode 100644 index 00000000..2203cccb --- /dev/null +++ b/mujoco_py/gl/eglplatform.h @@ -0,0 +1,125 @@ +#ifndef __eglplatform_h_ +#define __eglplatform_h_ + +/* +** Copyright (c) 2007-2013 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Platform-specific types and definitions for egl.h + * $Revision: 30994 $ on $Date: 2015-04-30 13:36:48 -0700 (Thu, 30 Apr 2015) $ + * + * Adopters may modify khrplatform.h and this file to suit their platform. + * You are encouraged to submit all modifications to the Khronos group so that + * they can be included in future versions of this file. Please submit changes + * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla) + * by filing a bug against product "EGL" component "Registry". + */ + +#include "khrplatform.h" + +/* Macros used in EGL function prototype declarations. + * + * EGL functions should be prototyped as: + * + * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); + * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); + * + * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h + */ + +#ifndef EGLAPI +#define EGLAPI KHRONOS_APICALL +#endif + +#ifndef EGLAPIENTRY +#define EGLAPIENTRY KHRONOS_APIENTRY +#endif +#define EGLAPIENTRYP EGLAPIENTRY* + +/* The types NativeDisplayType, NativeWindowType, and NativePixmapType + * are aliases of window-system-dependent types, such as X Display * or + * Windows Device Context. They must be defined in platform-specific + * code below. The EGL-prefixed versions of Native*Type are the same + * types, renamed in EGL 1.3 so all types in the API start with "EGL". + * + * Khronos STRONGLY RECOMMENDS that you use the default definitions + * provided below, since these changes affect both binary and source + * portability of applications using EGL running on different EGL + * implementations. + */ + +#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 +#endif +#include + +typedef HDC EGLNativeDisplayType; +typedef HBITMAP EGLNativePixmapType; +typedef HWND EGLNativeWindowType; + +#elif defined(__APPLE__) || defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ + +typedef int EGLNativeDisplayType; +typedef void *EGLNativeWindowType; +typedef void *EGLNativePixmapType; + +#elif defined(__ANDROID__) || defined(ANDROID) + +#include + +struct egl_native_pixmap_t; + +typedef struct ANativeWindow* EGLNativeWindowType; +typedef struct egl_native_pixmap_t* EGLNativePixmapType; +typedef void* EGLNativeDisplayType; + +#elif defined(__unix__) + +/* X11 (tentative) */ +#include +#include + +typedef Display *EGLNativeDisplayType; +typedef Pixmap EGLNativePixmapType; +typedef Window EGLNativeWindowType; + +#else +#error "Platform not recognized" +#endif + +/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ +typedef EGLNativeDisplayType NativeDisplayType; +typedef EGLNativePixmapType NativePixmapType; +typedef EGLNativeWindowType NativeWindowType; + + +/* Define EGLint. This must be a signed integral type large enough to contain + * all legal attribute names and values passed into and out of EGL, whether + * their type is boolean, bitmask, enumerant (symbolic constant), integer, + * handle, or other. While in general a 32-bit integer will suffice, if + * handles are 64 bit types, then EGLint should be defined as a signed 64-bit + * integer type. + */ +typedef khronos_int32_t EGLint; + +#endif /* __eglplatform_h */ diff --git a/mujoco_py/gl/eglshim.c b/mujoco_py/gl/eglshim.c new file mode 100644 index 00000000..8a000a23 --- /dev/null +++ b/mujoco_py/gl/eglshim.c @@ -0,0 +1,127 @@ +#define EGL_EGLEXT_PROTOTYPES +#include "egl.h" +#include "eglext.h" +#include "mujoco.h" +#include "glshim.h" + +#define MAX_DEVICES 8 + +int is_initialized = 0; + +int initOpenGL(int device_id) +{ + if (is_initialized) + return 1; + + // desired config + const EGLint configAttribs[] = { + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_ALPHA_SIZE, 8, + EGL_DEPTH_SIZE, 24, + EGL_STENCIL_SIZE, 8, + EGL_COLOR_BUFFER_TYPE, EGL_RGB_BUFFER, + EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_NONE + }; + + EGLDeviceEXT eglDevs[MAX_DEVICES]; + EGLint numDevices; + + PFNEGLQUERYDEVICESEXTPROC eglQueryDevicesEXT = + (PFNEGLQUERYDEVICESEXTPROC) + eglGetProcAddress("eglQueryDevicesEXT"); + + eglQueryDevicesEXT(MAX_DEVICES, eglDevs, &numDevices); + printf("Found %d GPUs for rendering. Using device %d.\n", numDevices, device_id); + if (device_id >= numDevices) { + printf("Device id outside of range of available devices.\n"); + return -1; + } + + PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT = + (PFNEGLGETPLATFORMDISPLAYEXTPROC) + eglGetProcAddress("eglGetPlatformDisplayEXT"); + if (eglGetPlatformDisplayEXT == NULL) { + printf("Failed to get eglGetPlatformDisplayEXT\n"); + return -2; + } + + EGLDisplay eglDpy = eglGetPlatformDisplayEXT( + EGL_PLATFORM_DEVICE_EXT, eglDevs[device_id], 0); + + // get default display + // EGLDisplay eglDpy = eglGetDisplay(EGL_DEFAULT_DISPLAY); + if (eglDpy == EGL_NO_DISPLAY) { + printf("Could not get EGL display\n"); + return -3; + } + + // initialize + EGLint major, minor; + if (eglInitialize(eglDpy, &major, &minor) != EGL_TRUE) { + printf("Could not initialize EGL\n"); + return -4; + } + + // choose config + EGLint numConfigs; + EGLConfig eglCfg; + if (eglChooseConfig(eglDpy, configAttribs, &eglCfg, 1, &numConfigs)!=EGL_TRUE ) { + printf("Could not choose EGL config\n"); + return -5; + } + + // bind OpenGL API + if( eglBindAPI(EGL_OPENGL_API)!=EGL_TRUE ) { + printf("Could not bind EGL OpenGL API\n"); + return -6; + } + + // create context + EGLContext eglCtx = eglCreateContext(eglDpy, eglCfg, EGL_NO_CONTEXT, NULL); + if( eglCtx==EGL_NO_CONTEXT ) { + printf("Could not create EGL context\n"); + return -7; + } + + // make context current, no surface (let OpenGL handle FBO) + if( eglMakeCurrent(eglDpy, EGL_NO_SURFACE, EGL_NO_SURFACE, eglCtx)!=EGL_TRUE ) { + eglDestroyContext(eglDpy, eglCtx); + printf("Could not make EGL context current\n"); + return -8; + } + + is_initialized = 1; + return 1; +} + +int setOpenGLBufferSize(int width, int height) { + // Noop since we don't need to change buffer here. + return 1; +} + +void closeOpenGL() +{ + if (!is_initialized) + return; + + EGLDisplay eglDpy = eglGetCurrentDisplay(); + if( eglDpy==EGL_NO_DISPLAY ) + return; + + // get current context + EGLContext eglCtx = eglGetCurrentContext(); + + // release context + eglMakeCurrent(eglDpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); + + // destroy context if valid + if( eglCtx!=EGL_NO_CONTEXT ) + eglDestroyContext(eglDpy, eglCtx); + + // terminate display + eglTerminate(eglDpy); +} diff --git a/mujoco_py/gl/glshim.h b/mujoco_py/gl/glshim.h new file mode 100644 index 00000000..394b92f9 --- /dev/null +++ b/mujoco_py/gl/glshim.h @@ -0,0 +1,8 @@ +#ifndef __GLSHIM_H__ +#define __GLSHIM_H__ + +int initOpenGL(int device_id); +void closeOpenGL(); +int setOpenGLBufferSize(int width, int height); + +#endif diff --git a/mujoco_py/gl/khrplatform.h b/mujoco_py/gl/khrplatform.h new file mode 100644 index 00000000..07b61b9b --- /dev/null +++ b/mujoco_py/gl/khrplatform.h @@ -0,0 +1,285 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* +** Copyright (c) 2008-2009 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Khronos platform-specific types and definitions. + * + * $Revision: 32517 $ on $Date: 2016-03-11 02:41:19 -0800 (Fri, 11 Mar 2016) $ + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by sending them to the public Khronos Bugzilla + * (http://khronos.org/bugzilla) by filing a bug against product + * "Khronos (general)" component "Registry". + * + * A predefined template which fills in some of the bug fields can be + * reached using http://tinyurl.com/khrplatform-h-bugreport, but you + * must create a Bugzilla login first. + * + * + * See the Implementer's Guidelines for information about where this file + * should be located on your system and for more details of its use: + * http://www.khronos.org/registry/implementers_guide.pdf + * + * This file should be included as + * #include + * by Khronos client API header files that use its types and defines. + * + * The types in khrplatform.h should only be used to define API-specific types. + * + * Types defined in khrplatform.h: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * khronos_boolean_enum_t enumerated boolean type. This should + * only be used as a base type when a client API's boolean type is + * an enum. Client APIs which use an integer or other type for + * booleans cannot use this as the base type for their boolean. + * + * Tokens defined in khrplatform.h: + * + * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * Calling convention macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL + *------------------------------------------------------------------------- + * This precedes the return type of the function in the function prototype. + */ +#if defined(_WIN32) && !defined(__SCITECH_SNAP__) +# define KHRONOS_APICALL __declspec(dllimport) +#elif defined (__SYMBIAN32__) +# define KHRONOS_APICALL IMPORT_C +#elif defined(__ANDROID__) +# include +# define KHRONOS_APICALL __attribute__((visibility("default"))) __NDK_FPABI__ +#else +# define KHRONOS_APICALL +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIENTRY + *------------------------------------------------------------------------- + * This follows the return type of the function and precedes the function + * name in the function prototype. + */ +#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) + /* Win32 but not WinCE */ +# define KHRONOS_APIENTRY __stdcall +#else +# define KHRONOS_APIENTRY +#endif + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APIATTRIBUTES + *------------------------------------------------------------------------- + * This follows the closing parenthesis of the function prototype arguments. + */ +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +/*------------------------------------------------------------------------- + * basic type definitions + *-----------------------------------------------------------------------*/ +#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) + + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__VMS ) || defined(__sgi) + +/* + * Using + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) + +/* + * Win32 + */ +typedef __int32 khronos_int32_t; +typedef unsigned __int32 khronos_uint32_t; +typedef __int64 khronos_int64_t; +typedef unsigned __int64 khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif defined(__sun__) || defined(__digital__) + +/* + * Sun or Digital + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#if defined(__arch64__) || defined(_LP64) +typedef long int khronos_int64_t; +typedef unsigned long int khronos_uint64_t; +#else +typedef long long int khronos_int64_t; +typedef unsigned long long int khronos_uint64_t; +#endif /* __arch64__ */ +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#elif 0 + +/* + * Hypothetical platform with no float or int64 support + */ +typedef int khronos_int32_t; +typedef unsigned int khronos_uint32_t; +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +#else + +/* + * Generic fallback + */ +#include +typedef int32_t khronos_int32_t; +typedef uint32_t khronos_uint32_t; +typedef int64_t khronos_int64_t; +typedef uint64_t khronos_uint64_t; +#define KHRONOS_SUPPORT_INT64 1 +#define KHRONOS_SUPPORT_FLOAT 1 + +#endif + + +/* + * Types that are (so far) the same on all platforms + */ +typedef signed char khronos_int8_t; +typedef unsigned char khronos_uint8_t; +typedef signed short int khronos_int16_t; +typedef unsigned short int khronos_uint16_t; + +/* + * Types that differ between LLP64 and LP64 architectures - in LLP64, + * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears + * to be the only LLP64 architecture in current use. + */ +#ifdef _WIN64 +typedef signed long long int khronos_intptr_t; +typedef unsigned long long int khronos_uintptr_t; +typedef signed long long int khronos_ssize_t; +typedef unsigned long long int khronos_usize_t; +#else +typedef signed long int khronos_intptr_t; +typedef unsigned long int khronos_uintptr_t; +typedef signed long int khronos_ssize_t; +typedef unsigned long int khronos_usize_t; +#endif + +#if KHRONOS_SUPPORT_FLOAT +/* + * Float type + */ +typedef float khronos_float_t; +#endif + +#if KHRONOS_SUPPORT_INT64 +/* Time types + * + * These types can be used to represent a time interval in nanoseconds or + * an absolute Unadjusted System Time. Unadjusted System Time is the number + * of nanoseconds since some arbitrary system event (e.g. since the last + * time the system booted). The Unadjusted System Time is an unsigned + * 64 bit value that wraps back to 0 every 584 years. Time intervals + * may be either signed or unsigned. + */ +typedef khronos_uint64_t khronos_utime_nanoseconds_t; +typedef khronos_int64_t khronos_stime_nanoseconds_t; +#endif + +/* + * Dummy value used to pad enum types to 32 bits. + */ +#ifndef KHRONOS_MAX_ENUM +#define KHRONOS_MAX_ENUM 0x7FFFFFFF +#endif + +/* + * Enumerated boolean type + * + * Values other than zero should be considered to be true. Therefore + * comparisons should not be made against KHRONOS_TRUE. + */ +typedef enum { + KHRONOS_FALSE = 0, + KHRONOS_TRUE = 1, + KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM +} khronos_boolean_enum_t; + +#endif /* __khrplatform_h_ */ diff --git a/mujoco_py/gl/osmesashim.c b/mujoco_py/gl/osmesashim.c new file mode 100644 index 00000000..e146af7e --- /dev/null +++ b/mujoco_py/gl/osmesashim.c @@ -0,0 +1,49 @@ +#include +#include "glshim.h" + +OSMesaContext ctx; + +// this size was picked pretty arbitrarily +int BUFFER_WIDTH = 1024; +int BUFFER_HEIGHT = 1024; +// 4 channels for RGBA +unsigned char buffer[1024 * 1024 * 4]; + +int is_initialized = 0; + +int initOpenGL(int device_id) { + if (is_initialized) + return 1; + + // note: device id not used here + ctx = OSMesaCreateContextExt(GL_RGBA, 24, 8, 8, 0); + if( !ctx ) { + printf("OSMesa context creation failed\n"); + return -1; + } + + if( !OSMesaMakeCurrent(ctx, buffer, GL_UNSIGNED_BYTE, BUFFER_WIDTH, BUFFER_HEIGHT) ) { + printf("OSMesa make current failed\n"); + return -1; + } + + is_initialized = 1; + + return 1; +} + +int setOpenGLBufferSize(int width, int height) { + if (width > BUFFER_WIDTH || height > BUFFER_HEIGHT) { + printf("Buffer size too big\n"); + return -1; + } + // Noop since we don't support changing the actual buffer + return 1; +} + +void closeOpenGL() { + if (is_initialized) { + OSMesaDestroyContext(ctx); + is_initialized = 0; + } +} diff --git a/mujoco_py/glfw.py b/mujoco_py/glfw.py deleted file mode 100644 index 1705a0ad..00000000 --- a/mujoco_py/glfw.py +++ /dev/null @@ -1,1643 +0,0 @@ -''' -Python bindings for GLFW. -''' - -from __future__ import print_function -from __future__ import division -from __future__ import unicode_literals - -__author__ = 'Florian Rhiem (florian.rhiem@gmail.com)' -__copyright__ = 'Copyright (c) 2013 Florian Rhiem' -__license__ = 'MIT' -__version__ = '1.0.1' - -import ctypes -import os -import glob -import sys -import subprocess -import textwrap - -from mujoco_py import config - -# Python 3 compatibility: -try: - _getcwd = os.getcwdu -except AttributeError: - _getcwd = os.getcwd -if sys.version_info.major > 2: - _to_char_p = lambda s: s.encode('utf-8') -else: - _to_char_p = lambda s: s - - -def _find_library_candidates(library_names, - library_file_extensions, - library_search_paths): - ''' - Finds and returns filenames which might be the library you are looking for. - ''' - candidates = set() - for library_name in library_names: - for search_path in library_search_paths: - glob_query = os.path.join(search_path, '*'+library_name+'*') - for filename in glob.iglob(glob_query): - filename = os.path.realpath(filename) - if filename in candidates: - continue - basename = os.path.basename(filename) - if basename.startswith('lib'+library_name): - basename_end = basename[len('lib'+library_name):] - elif basename.startswith(library_name): - basename_end = basename[len(library_name):] - else: - continue - for file_extension in library_file_extensions: - if basename_end.startswith(file_extension): - if basename_end[len(file_extension):][:1] in ('', '.'): - candidates.add(filename) - if basename_end.endswith(file_extension): - basename_middle = basename_end[:-len(file_extension)] - if all(c in '0123456789.' for c in basename_middle): - candidates.add(filename) - return candidates - - -def _load_library(): - ''' - Finds, loads and returns the most recent version of the library. - ''' - path_prefix = config.mjpro_path - if sys.platform.startswith("darwin"): - libfile = os.path.join(path_prefix, "bin/libglfw.3.dylib") - elif sys.platform.startswith("linux"): - libfile = os.path.join(path_prefix, "bin/libglfw.so.3") - elif sys.platform.startswith("win"): - libfile = os.path.join(path_prefix, "bin/glfw3.dll") - else: - raise RuntimeError("Unrecognized platform %s" % sys.platform) - - if not os.path.exists(libfile): - raise RuntimeError("Missing path: %s. (HINT: you should have unzipped the mjpro131.zip bundle without modification.)" % libfile) - - return ctypes.CDLL(os.path.abspath(libfile)) - - -def _glfw_get_version(filename): - ''' - Queries and returns the library version tuple or None by using a - subprocess. - ''' - version_checker_source = """ - import sys - import ctypes - - def get_version(library_handle): - ''' - Queries and returns the library version tuple or None. - ''' - major_value = ctypes.c_int(0) - major = ctypes.pointer(major_value) - minor_value = ctypes.c_int(0) - minor = ctypes.pointer(minor_value) - rev_value = ctypes.c_int(0) - rev = ctypes.pointer(rev_value) - if hasattr(library_handle, 'glfwGetVersion'): - library_handle.glfwGetVersion(major, minor, rev) - version = (major_value.value, - minor_value.value, - rev_value.value) - return version - else: - return None - - try: - input_func = raw_input - except NameError: - input_func = input - filename = input_func().strip() - - try: - library_handle = ctypes.CDLL(filename) - except OSError: - pass - else: - version = get_version(library_handle) - print(version) - """ - - args = [sys.executable, '-c', textwrap.dedent(version_checker_source)] - process = subprocess.Popen(args, universal_newlines=True, - stdin=subprocess.PIPE, stdout=subprocess.PIPE) - out = process.communicate(_to_char_p(filename))[0] - out = out.strip() - if out: - return eval(out) - else: - return None - - - -_glfw = _load_library() -if _glfw is None: - raise ImportError("Failed to load GLFW3 shared library.") - -_callback_repositories = [] - - -class _GLFWwindow(ctypes.Structure): - ''' - Wrapper for: - typedef struct GLFWwindow GLFWwindow; - ''' - _fields_ = [("dummy", ctypes.c_int)] - - -class _GLFWmonitor(ctypes.Structure): - ''' - Wrapper for: - typedef struct GLFWmonitor GLFWmonitor; - ''' - _fields_ = [("dummy", ctypes.c_int)] - - -class _GLFWvidmode(ctypes.Structure): - ''' - Wrapper for: - typedef struct GLFWvidmode GLFWvidmode; - ''' - _fields_ = [("width", ctypes.c_int), - ("height", ctypes.c_int), - ("red_bits", ctypes.c_int), - ("green_bits", ctypes.c_int), - ("blue_bits", ctypes.c_int), - ("refresh_rate", ctypes.c_uint)] - - def __init__(self): - ctypes.Structure.__init__(self) - self.width = 0 - self.height = 0 - self.red_bits = 0 - self.green_bits = 0 - self.blue_bits = 0 - self.refresh_rate = 0 - - def wrap(self, video_mode): - ''' - Wraps a nested python sequence. - ''' - size, bits, self.refresh_rate = video_mode - self.width, self.height = size - self.red_bits, self.green_bits, self.blue_bits = bits - - def unwrap(self): - ''' - Returns a nested python sequence. - ''' - size = self.width, self.height - bits = self.red_bits, self.green_bits, self.blue_bits - return size, bits, self.refresh_rate - - -class _GLFWgammaramp(ctypes.Structure): - ''' - Wrapper for: - typedef struct GLFWgammaramp GLFWgammaramp; - ''' - _fields_ = [("red", ctypes.POINTER(ctypes.c_ushort)), - ("green", ctypes.POINTER(ctypes.c_ushort)), - ("blue", ctypes.POINTER(ctypes.c_ushort)), - ("size", ctypes.c_uint)] - - def __init__(self): - ctypes.Structure.__init__(self) - self.red = None - self.red_array = None - self.green = None - self.green_array = None - self.blue = None - self.blue_array = None - self.size = 0 - - def wrap(self, gammaramp): - ''' - Wraps a nested python sequence. - ''' - red, green, blue = gammaramp - size = min(len(red), len(green), len(blue)) - array_type = ctypes.c_ushort*size - self.size = ctypes.c_uint(size) - self.red_array = array_type() - self.green_array = array_type() - self.blue_array = array_type() - for i in range(self.size): - self.red_array[i] = int(red[i]*65535) - self.green_array[i] = int(green[i]*65535) - self.blue_array[i] = int(blue[i]*65535) - pointer_type = ctypes.POINTER(ctypes.c_ushort) - self.red = ctypes.cast(self.red_array, pointer_type) - self.green = ctypes.cast(self.green_array, pointer_type) - self.blue = ctypes.cast(self.blue_array, pointer_type) - - def unwrap(self): - ''' - Returns a nested python sequence. - ''' - red = [self.red[i]/65535.0 for i in range(self.size)] - green = [self.green[i]/65535.0 for i in range(self.size)] - blue = [self.blue[i]/65535.0 for i in range(self.size)] - return red, green, blue - - -VERSION_MAJOR = 3 -VERSION_MINOR = 0 -VERSION_REVISION = 3 -RELEASE = 0 -PRESS = 1 -REPEAT = 2 -KEY_UNKNOWN = -1 -KEY_SPACE = 32 -KEY_APOSTROPHE = 39 -KEY_COMMA = 44 -KEY_MINUS = 45 -KEY_PERIOD = 46 -KEY_SLASH = 47 -KEY_0 = 48 -KEY_1 = 49 -KEY_2 = 50 -KEY_3 = 51 -KEY_4 = 52 -KEY_5 = 53 -KEY_6 = 54 -KEY_7 = 55 -KEY_8 = 56 -KEY_9 = 57 -KEY_SEMICOLON = 59 -KEY_EQUAL = 61 -KEY_A = 65 -KEY_B = 66 -KEY_C = 67 -KEY_D = 68 -KEY_E = 69 -KEY_F = 70 -KEY_G = 71 -KEY_H = 72 -KEY_I = 73 -KEY_J = 74 -KEY_K = 75 -KEY_L = 76 -KEY_M = 77 -KEY_N = 78 -KEY_O = 79 -KEY_P = 80 -KEY_Q = 81 -KEY_R = 82 -KEY_S = 83 -KEY_T = 84 -KEY_U = 85 -KEY_V = 86 -KEY_W = 87 -KEY_X = 88 -KEY_Y = 89 -KEY_Z = 90 -KEY_LEFT_BRACKET = 91 -KEY_BACKSLASH = 92 -KEY_RIGHT_BRACKET = 93 -KEY_GRAVE_ACCENT = 96 -KEY_WORLD_1 = 161 -KEY_WORLD_2 = 162 -KEY_ESCAPE = 256 -KEY_ENTER = 257 -KEY_TAB = 258 -KEY_BACKSPACE = 259 -KEY_INSERT = 260 -KEY_DELETE = 261 -KEY_RIGHT = 262 -KEY_LEFT = 263 -KEY_DOWN = 264 -KEY_UP = 265 -KEY_PAGE_UP = 266 -KEY_PAGE_DOWN = 267 -KEY_HOME = 268 -KEY_END = 269 -KEY_CAPS_LOCK = 280 -KEY_SCROLL_LOCK = 281 -KEY_NUM_LOCK = 282 -KEY_PRINT_SCREEN = 283 -KEY_PAUSE = 284 -KEY_F1 = 290 -KEY_F2 = 291 -KEY_F3 = 292 -KEY_F4 = 293 -KEY_F5 = 294 -KEY_F6 = 295 -KEY_F7 = 296 -KEY_F8 = 297 -KEY_F9 = 298 -KEY_F10 = 299 -KEY_F11 = 300 -KEY_F12 = 301 -KEY_F13 = 302 -KEY_F14 = 303 -KEY_F15 = 304 -KEY_F16 = 305 -KEY_F17 = 306 -KEY_F18 = 307 -KEY_F19 = 308 -KEY_F20 = 309 -KEY_F21 = 310 -KEY_F22 = 311 -KEY_F23 = 312 -KEY_F24 = 313 -KEY_F25 = 314 -KEY_KP_0 = 320 -KEY_KP_1 = 321 -KEY_KP_2 = 322 -KEY_KP_3 = 323 -KEY_KP_4 = 324 -KEY_KP_5 = 325 -KEY_KP_6 = 326 -KEY_KP_7 = 327 -KEY_KP_8 = 328 -KEY_KP_9 = 329 -KEY_KP_DECIMAL = 330 -KEY_KP_DIVIDE = 331 -KEY_KP_MULTIPLY = 332 -KEY_KP_SUBTRACT = 333 -KEY_KP_ADD = 334 -KEY_KP_ENTER = 335 -KEY_KP_EQUAL = 336 -KEY_LEFT_SHIFT = 340 -KEY_LEFT_CONTROL = 341 -KEY_LEFT_ALT = 342 -KEY_LEFT_SUPER = 343 -KEY_RIGHT_SHIFT = 344 -KEY_RIGHT_CONTROL = 345 -KEY_RIGHT_ALT = 346 -KEY_RIGHT_SUPER = 347 -KEY_MENU = 348 -KEY_LAST = KEY_MENU -MOD_SHIFT = 0x0001 -MOD_CONTROL = 0x0002 -MOD_ALT = 0x0004 -MOD_SUPER = 0x0008 -MOUSE_BUTTON_1 = 0 -MOUSE_BUTTON_2 = 1 -MOUSE_BUTTON_3 = 2 -MOUSE_BUTTON_4 = 3 -MOUSE_BUTTON_5 = 4 -MOUSE_BUTTON_6 = 5 -MOUSE_BUTTON_7 = 6 -MOUSE_BUTTON_8 = 7 -MOUSE_BUTTON_LAST = MOUSE_BUTTON_8 -MOUSE_BUTTON_LEFT = MOUSE_BUTTON_1 -MOUSE_BUTTON_RIGHT = MOUSE_BUTTON_2 -MOUSE_BUTTON_MIDDLE = MOUSE_BUTTON_3 -JOYSTICK_1 = 0 -JOYSTICK_2 = 1 -JOYSTICK_3 = 2 -JOYSTICK_4 = 3 -JOYSTICK_5 = 4 -JOYSTICK_6 = 5 -JOYSTICK_7 = 6 -JOYSTICK_8 = 7 -JOYSTICK_9 = 8 -JOYSTICK_10 = 9 -JOYSTICK_11 = 10 -JOYSTICK_12 = 11 -JOYSTICK_13 = 12 -JOYSTICK_14 = 13 -JOYSTICK_15 = 14 -JOYSTICK_16 = 15 -JOYSTICK_LAST = JOYSTICK_16 -NOT_INITIALIZED = 0x00010001 -NO_CURRENT_CONTEXT = 0x00010002 -INVALID_ENUM = 0x00010003 -INVALID_VALUE = 0x00010004 -OUT_OF_MEMORY = 0x00010005 -API_UNAVAILABLE = 0x00010006 -VERSION_UNAVAILABLE = 0x00010007 -PLATFORM_ERROR = 0x00010008 -FORMAT_UNAVAILABLE = 0x00010009 -FOCUSED = 0x00020001 -ICONIFIED = 0x00020002 -RESIZABLE = 0x00020003 -VISIBLE = 0x00020004 -DECORATED = 0x00020005 -RED_BITS = 0x00021001 -GREEN_BITS = 0x00021002 -BLUE_BITS = 0x00021003 -ALPHA_BITS = 0x00021004 -DEPTH_BITS = 0x00021005 -STENCIL_BITS = 0x00021006 -ACCUM_RED_BITS = 0x00021007 -ACCUM_GREEN_BITS = 0x00021008 -ACCUM_BLUE_BITS = 0x00021009 -ACCUM_ALPHA_BITS = 0x0002100A -AUX_BUFFERS = 0x0002100B -STEREO = 0x0002100C -SAMPLES = 0x0002100D -SRGB_CAPABLE = 0x0002100E -REFRESH_RATE = 0x0002100F -CLIENT_API = 0x00022001 -CONTEXT_VERSION_MAJOR = 0x00022002 -CONTEXT_VERSION_MINOR = 0x00022003 -CONTEXT_REVISION = 0x00022004 -CONTEXT_ROBUSTNESS = 0x00022005 -OPENGL_FORWARD_COMPAT = 0x00022006 -OPENGL_DEBUG_CONTEXT = 0x00022007 -OPENGL_PROFILE = 0x00022008 -OPENGL_API = 0x00030001 -OPENGL_ES_API = 0x00030002 -NO_ROBUSTNESS = 0 -NO_RESET_NOTIFICATION = 0x00031001 -LOSE_CONTEXT_ON_RESET = 0x00031002 -OPENGL_ANY_PROFILE = 0 -OPENGL_CORE_PROFILE = 0x00032001 -OPENGL_COMPAT_PROFILE = 0x00032002 -CURSOR = 0x00033001 -STICKY_KEYS = 0x00033002 -STICKY_MOUSE_BUTTONS = 0x00033003 -CURSOR_NORMAL = 0x00034001 -CURSOR_HIDDEN = 0x00034002 -CURSOR_DISABLED = 0x00034003 -CONNECTED = 0x00040001 -DISCONNECTED = 0x00040002 - - -_GLFWerrorfun = ctypes.CFUNCTYPE(None, - ctypes.c_int, - ctypes.c_char_p) -_GLFWwindowposfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int, - ctypes.c_int) -_GLFWwindowsizefun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int, - ctypes.c_int) -_GLFWwindowclosefun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow)) -_GLFWwindowrefreshfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow)) -_GLFWwindowfocusfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int) -_GLFWwindowiconifyfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int) -_GLFWframebuffersizefun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int, - ctypes.c_int) -_GLFWmousebuttonfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int, - ctypes.c_int, - ctypes.c_int) -_GLFWcursorposfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_double, - ctypes.c_double) -_GLFWcursorenterfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int) -_GLFWscrollfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_double, - ctypes.c_double) -_GLFWkeyfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int, - ctypes.c_int, - ctypes.c_int, - ctypes.c_int) -_GLFWcharfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWwindow), - ctypes.c_int) -_GLFWmonitorfun = ctypes.CFUNCTYPE(None, - ctypes.POINTER(_GLFWmonitor), - ctypes.c_int) - - -_glfw.glfwInit.restype = ctypes.c_int -_glfw.glfwInit.argtypes = [] -def init(): - ''' - Initializes the GLFW library. - - Wrapper for: - int glfwInit(void); - ''' - cwd = _getcwd() - res = _glfw.glfwInit() - os.chdir(cwd) - return res - -_glfw.glfwTerminate.restype = None -_glfw.glfwTerminate.argtypes = [] -def terminate(): - ''' - Terminates the GLFW library. - - Wrapper for: - void glfwTerminate(void); - ''' - _glfw.glfwTerminate() - -_glfw.glfwGetVersion.restype = None -_glfw.glfwGetVersion.argtypes = [ctypes.POINTER(ctypes.c_int), - ctypes.POINTER(ctypes.c_int), - ctypes.POINTER(ctypes.c_int)] -def get_version(): - ''' - Retrieves the version of the GLFW library. - - Wrapper for: - void glfwGetVersion(int* major, int* minor, int* rev); - ''' - major_value = ctypes.c_int(0) - major = ctypes.pointer(major_value) - minor_value = ctypes.c_int(0) - minor = ctypes.pointer(minor_value) - rev_value = ctypes.c_int(0) - rev = ctypes.pointer(rev_value) - _glfw.glfwGetVersion(major, minor, rev) - return major_value.value, minor_value.value, rev_value.value - -_glfw.glfwGetVersionString.restype = ctypes.c_char_p -_glfw.glfwGetVersionString.argtypes = [] -def get_version_string(): - ''' - Returns a string describing the compile-time configuration. - - Wrapper for: - const char* glfwGetVersionString(void); - ''' - return _glfw.glfwGetVersionString() - -_error_callback = None -_glfw.glfwSetErrorCallback.restype = _GLFWerrorfun -_glfw.glfwSetErrorCallback.argtypes = [_GLFWerrorfun] -def set_error_callback(cbfun): - ''' - Sets the error callback. - - Wrapper for: - GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun); - ''' - global _error_callback - previous_callback = _error_callback - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWerrorfun(cbfun) - _error_callback = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetErrorCallback(cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_glfw.glfwGetMonitors.restype = ctypes.POINTER(ctypes.POINTER(_GLFWmonitor)) -_glfw.glfwGetMonitors.argtypes = [ctypes.POINTER(ctypes.c_int)] -def get_monitors(): - ''' - Returns the currently connected monitors. - - Wrapper for: - GLFWmonitor** glfwGetMonitors(int* count); - ''' - count_value = ctypes.c_int(0) - count = ctypes.pointer(count_value) - result = _glfw.glfwGetMonitors(count) - monitors = [result[i] for i in range(count_value.value)] - return monitors - -_glfw.glfwGetPrimaryMonitor.restype = ctypes.POINTER(_GLFWmonitor) -_glfw.glfwGetPrimaryMonitor.argtypes = [] -def get_primary_monitor(): - ''' - Returns the primary monitor. - - Wrapper for: - GLFWmonitor* glfwGetPrimaryMonitor(void); - ''' - return _glfw.glfwGetPrimaryMonitor() - -_glfw.glfwGetMonitorPos.restype = None -_glfw.glfwGetMonitorPos.argtypes = [ctypes.POINTER(_GLFWmonitor), - ctypes.POINTER(ctypes.c_int), - ctypes.POINTER(ctypes.c_int)] -def get_monitor_pos(monitor): - ''' - Returns the position of the monitor's viewport on the virtual screen. - - Wrapper for: - void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos); - ''' - xpos_value = ctypes.c_int(0) - xpos = ctypes.pointer(xpos_value) - ypos_value = ctypes.c_int(0) - ypos = ctypes.pointer(ypos_value) - _glfw.glfwGetMonitorPos(monitor, xpos, ypos) - return xpos_value.value, ypos_value.value - -_glfw.glfwGetMonitorPhysicalSize.restype = None -_glfw.glfwGetMonitorPhysicalSize.argtypes = [ctypes.POINTER(_GLFWmonitor), - ctypes.POINTER(ctypes.c_int), - ctypes.POINTER(ctypes.c_int)] -def get_monitor_physical_size(monitor): - ''' - Returns the physical size of the monitor. - - Wrapper for: - void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* width, int* height); - ''' - width_value = ctypes.c_int(0) - width = ctypes.pointer(width_value) - height_value = ctypes.c_int(0) - height = ctypes.pointer(height_value) - _glfw.glfwGetMonitorPhysicalSize(monitor, width, height) - return width_value.value, height_value.value - -_glfw.glfwGetMonitorName.restype = ctypes.c_char_p -_glfw.glfwGetMonitorName.argtypes = [ctypes.POINTER(_GLFWmonitor)] -def get_monitor_name(monitor): - ''' - Returns the name of the specified monitor. - - Wrapper for: - const char* glfwGetMonitorName(GLFWmonitor* monitor); - ''' - return _glfw.glfwGetMonitorName(monitor) - -_monitor_callback = None -_glfw.glfwSetMonitorCallback.restype = _GLFWmonitorfun -_glfw.glfwSetMonitorCallback.argtypes = [_GLFWmonitorfun] -def set_monitor_callback(cbfun): - ''' - Sets the monitor configuration callback. - - Wrapper for: - GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun); - ''' - global _monitor_callback - previous_callback = _monitor_callback - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWmonitorfun(cbfun) - _monitor_callback = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetMonitorCallback(cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_glfw.glfwGetVideoModes.restype = ctypes.POINTER(_GLFWvidmode) -_glfw.glfwGetVideoModes.argtypes = [ctypes.POINTER(_GLFWmonitor), - ctypes.POINTER(ctypes.c_int)] -def get_video_modes(monitor): - ''' - Returns the available video modes for the specified monitor. - - Wrapper for: - const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count); - ''' - count_value = ctypes.c_int(0) - count = ctypes.pointer(count_value) - result = _glfw.glfwGetVideoModes(monitor, count) - videomodes = [result[i].unwrap() for i in range(count_value.value)] - return videomodes - -_glfw.glfwGetVideoMode.restype = ctypes.POINTER(_GLFWvidmode) -_glfw.glfwGetVideoMode.argtypes = [ctypes.POINTER(_GLFWmonitor)] -def get_video_mode(monitor): - ''' - Returns the current mode of the specified monitor. - - Wrapper for: - const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor); - ''' - videomode = _glfw.glfwGetVideoMode(monitor).contents - return videomode.unwrap() - -_glfw.glfwSetGamma.restype = None -_glfw.glfwSetGamma.argtypes = [ctypes.POINTER(_GLFWmonitor), - ctypes.c_float] -def set_gamma(monitor, gamma): - ''' - Generates a gamma ramp and sets it for the specified monitor. - - Wrapper for: - void glfwSetGamma(GLFWmonitor* monitor, float gamma); - ''' - _glfw.glfwSetGamma(monitor, gamma) - -_glfw.glfwGetGammaRamp.restype = ctypes.POINTER(_GLFWgammaramp) -_glfw.glfwGetGammaRamp.argtypes = [ctypes.POINTER(_GLFWmonitor)] -def get_gamma_ramp(monitor): - ''' - Retrieves the current gamma ramp for the specified monitor. - - Wrapper for: - const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor); - ''' - gammaramp = _glfw.glfwGetGammaRamp(monitor).contents - return gammaramp.unwrap() - -_glfw.glfwSetGammaRamp.restype = None -_glfw.glfwSetGammaRamp.argtypes = [ctypes.POINTER(_GLFWmonitor), - ctypes.POINTER(_GLFWgammaramp)] -def set_gamma_ramp(monitor, ramp): - ''' - Sets the current gamma ramp for the specified monitor. - - Wrapper for: - void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp); - ''' - gammaramp = _GLFWgammaramp() - gammaramp.wrap(ramp) - _glfw.glfwSetGammaRamp(monitor, ctypes.pointer(gammaramp)) - -_glfw.glfwDefaultWindowHints.restype = None -_glfw.glfwDefaultWindowHints.argtypes = [] -def default_window_hints(): - ''' - Resets all window hints to their default values. - - Wrapper for: - void glfwDefaultWindowHints(void); - ''' - _glfw.glfwDefaultWindowHints() - -_glfw.glfwWindowHint.restype = None -_glfw.glfwWindowHint.argtypes = [ctypes.c_int, - ctypes.c_int] -def window_hint(target, hint): - ''' - Sets the specified window hint to the desired value. - - Wrapper for: - void glfwWindowHint(int target, int hint); - ''' - _glfw.glfwWindowHint(target, hint) - -_glfw.glfwCreateWindow.restype = ctypes.POINTER(_GLFWwindow) -_glfw.glfwCreateWindow.argtypes = [ctypes.c_int, - ctypes.c_int, - ctypes.c_char_p, - ctypes.POINTER(_GLFWmonitor), - ctypes.POINTER(_GLFWwindow)] -def create_window(width, height, title, monitor, share): - ''' - Creates a window and its associated context. - - Wrapper for: - GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share); - ''' - return _glfw.glfwCreateWindow(width, height, _to_char_p(title), - monitor, share) - -_glfw.glfwDestroyWindow.restype = None -_glfw.glfwDestroyWindow.argtypes = [ctypes.POINTER(_GLFWwindow)] -def destroy_window(window): - ''' - Destroys the specified window and its context. - - Wrapper for: - void glfwDestroyWindow(GLFWwindow* window); - ''' - _glfw.glfwDestroyWindow(window) - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_ulong)).contents.value - for callback_repository in _callback_repositories: - if window_addr in callback_repository: - del callback_repository[window_addr] - -_glfw.glfwWindowShouldClose.restype = ctypes.c_int -_glfw.glfwWindowShouldClose.argtypes = [ctypes.POINTER(_GLFWwindow)] -def window_should_close(window): - ''' - Checks the close flag of the specified window. - - Wrapper for: - int glfwWindowShouldClose(GLFWwindow* window); - ''' - return _glfw.glfwWindowShouldClose(window) - -_glfw.glfwSetWindowShouldClose.restype = None -_glfw.glfwSetWindowShouldClose.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_int] -def set_window_should_close(window, value): - ''' - Sets the close flag of the specified window. - - Wrapper for: - void glfwSetWindowShouldClose(GLFWwindow* window, int value); - ''' - _glfw.glfwSetWindowShouldClose(window, value) - -_glfw.glfwSetWindowTitle.restype = None -_glfw.glfwSetWindowTitle.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_char_p] -def set_window_title(window, title): - ''' - Sets the title of the specified window. - - Wrapper for: - void glfwSetWindowTitle(GLFWwindow* window, const char* title); - ''' - _glfw.glfwSetWindowTitle(window, _to_char_p(title)) - -_glfw.glfwGetWindowPos.restype = None -_glfw.glfwGetWindowPos.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.POINTER(ctypes.c_int), - ctypes.POINTER(ctypes.c_int)] -def get_window_pos(window): - ''' - Retrieves the position of the client area of the specified window. - - Wrapper for: - void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos); - ''' - xpos_value = ctypes.c_int(0) - xpos = ctypes.pointer(xpos_value) - ypos_value = ctypes.c_int(0) - ypos = ctypes.pointer(ypos_value) - _glfw.glfwGetWindowPos(window, xpos, ypos) - return xpos_value.value, ypos_value.value - -_glfw.glfwSetWindowPos.restype = None -_glfw.glfwSetWindowPos.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_int, - ctypes.c_int] -def set_window_pos(window, xpos, ypos): - ''' - Sets the position of the client area of the specified window. - - Wrapper for: - void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos); - ''' - _glfw.glfwSetWindowPos(window, xpos, ypos) - -_glfw.glfwGetWindowSize.restype = None -_glfw.glfwGetWindowSize.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.POINTER(ctypes.c_int), - ctypes.POINTER(ctypes.c_int)] -def get_window_size(window): - ''' - Retrieves the size of the client area of the specified window. - - Wrapper for: - void glfwGetWindowSize(GLFWwindow* window, int* width, int* height); - ''' - width_value = ctypes.c_int(0) - width = ctypes.pointer(width_value) - height_value = ctypes.c_int(0) - height = ctypes.pointer(height_value) - _glfw.glfwGetWindowSize(window, width, height) - return width_value.value, height_value.value - -_glfw.glfwSetWindowSize.restype = None -_glfw.glfwSetWindowSize.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_int, - ctypes.c_int] -def set_window_size(window, width, height): - ''' - Sets the size of the client area of the specified window. - - Wrapper for: - void glfwSetWindowSize(GLFWwindow* window, int width, int height); - ''' - _glfw.glfwSetWindowSize(window, width, height) - -_glfw.glfwGetFramebufferSize.restype = None -_glfw.glfwGetFramebufferSize.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.POINTER(ctypes.c_int), - ctypes.POINTER(ctypes.c_int)] -def get_framebuffer_size(window): - ''' - Retrieves the size of the framebuffer of the specified window. - - Wrapper for: - void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height); - ''' - width_value = ctypes.c_int(0) - width = ctypes.pointer(width_value) - height_value = ctypes.c_int(0) - height = ctypes.pointer(height_value) - _glfw.glfwGetFramebufferSize(window, width, height) - return width_value.value, height_value.value - -_glfw.glfwIconifyWindow.restype = None -_glfw.glfwIconifyWindow.argtypes = [ctypes.POINTER(_GLFWwindow)] -def iconify_window(window): - ''' - Iconifies the specified window. - - Wrapper for: - void glfwIconifyWindow(GLFWwindow* window); - ''' - _glfw.glfwIconifyWindow(window) - -_glfw.glfwRestoreWindow.restype = None -_glfw.glfwRestoreWindow.argtypes = [ctypes.POINTER(_GLFWwindow)] -def restore_window(window): - ''' - Restores the specified window. - - Wrapper for: - void glfwRestoreWindow(GLFWwindow* window); - ''' - _glfw.glfwRestoreWindow(window) - -_glfw.glfwShowWindow.restype = None -_glfw.glfwShowWindow.argtypes = [ctypes.POINTER(_GLFWwindow)] -def show_window(window): - ''' - Makes the specified window visible. - - Wrapper for: - void glfwShowWindow(GLFWwindow* window); - ''' - _glfw.glfwShowWindow(window) - -_glfw.glfwHideWindow.restype = None -_glfw.glfwHideWindow.argtypes = [ctypes.POINTER(_GLFWwindow)] -def hide_window(window): - ''' - Hides the specified window. - - Wrapper for: - void glfwHideWindow(GLFWwindow* window); - ''' - _glfw.glfwHideWindow(window) - -_glfw.glfwGetWindowMonitor.restype = ctypes.POINTER(_GLFWmonitor) -_glfw.glfwGetWindowMonitor.argtypes = [ctypes.POINTER(_GLFWwindow)] -def get_window_monitor(window): - ''' - Returns the monitor that the window uses for full screen mode. - - Wrapper for: - GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window); - ''' - return _glfw.glfwGetWindowMonitor(window) - -_glfw.glfwGetWindowAttrib.restype = ctypes.c_int -_glfw.glfwGetWindowAttrib.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_int] -def get_window_attrib(window, attrib): - ''' - Returns an attribute of the specified window. - - Wrapper for: - int glfwGetWindowAttrib(GLFWwindow* window, int attrib); - ''' - return _glfw.glfwGetWindowAttrib(window, attrib) - -_glfw.glfwSetWindowUserPointer.restype = None -_glfw.glfwSetWindowUserPointer.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_void_p] -def set_window_user_pointer(window, pointer): - ''' - Sets the user pointer of the specified window. - - Wrapper for: - void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer); - ''' - _glfw.glfwSetWindowUserPointer(window, pointer) - -_glfw.glfwGetWindowUserPointer.restype = ctypes.c_void_p -_glfw.glfwGetWindowUserPointer.argtypes = [ctypes.POINTER(_GLFWwindow)] -def get_window_user_pointer(window): - ''' - Returns the user pointer of the specified window. - - Wrapper for: - void* glfwGetWindowUserPointer(GLFWwindow* window); - ''' - return _glfw.glfwGetWindowUserPointer(window) - -_window_pos_callback_repository = {} -_callback_repositories.append(_window_pos_callback_repository) -_glfw.glfwSetWindowPosCallback.restype = _GLFWwindowposfun -_glfw.glfwSetWindowPosCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWwindowposfun] -def set_window_pos_callback(window, cbfun): - ''' - Sets the position callback for the specified window. - - Wrapper for: - GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _window_pos_callback_repository: - previous_callback = _window_pos_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWwindowposfun(cbfun) - _window_pos_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetWindowPosCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_window_size_callback_repository = {} -_callback_repositories.append(_window_size_callback_repository) -_glfw.glfwSetWindowSizeCallback.restype = _GLFWwindowsizefun -_glfw.glfwSetWindowSizeCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWwindowsizefun] -def set_window_size_callback(window, cbfun): - ''' - Sets the size callback for the specified window. - - Wrapper for: - GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _window_size_callback_repository: - previous_callback = _window_size_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWwindowsizefun(cbfun) - _window_size_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetWindowSizeCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_window_close_callback_repository = {} -_callback_repositories.append(_window_close_callback_repository) -_glfw.glfwSetWindowCloseCallback.restype = _GLFWwindowclosefun -_glfw.glfwSetWindowCloseCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWwindowclosefun] -def set_window_close_callback(window, cbfun): - ''' - Sets the close callback for the specified window. - - Wrapper for: - GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _window_close_callback_repository: - previous_callback = _window_close_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWwindowclosefun(cbfun) - _window_close_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetWindowCloseCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_window_refresh_callback_repository = {} -_callback_repositories.append(_window_refresh_callback_repository) -_glfw.glfwSetWindowRefreshCallback.restype = _GLFWwindowrefreshfun -_glfw.glfwSetWindowRefreshCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWwindowrefreshfun] -def set_window_refresh_callback(window, cbfun): - ''' - Sets the refresh callback for the specified window. - - Wrapper for: - GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _window_refresh_callback_repository: - previous_callback = _window_refresh_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWwindowrefreshfun(cbfun) - _window_refresh_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetWindowRefreshCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_window_focus_callback_repository = {} -_callback_repositories.append(_window_focus_callback_repository) -_glfw.glfwSetWindowFocusCallback.restype = _GLFWwindowfocusfun -_glfw.glfwSetWindowFocusCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWwindowfocusfun] -def set_window_focus_callback(window, cbfun): - ''' - Sets the focus callback for the specified window. - - Wrapper for: - GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _window_focus_callback_repository: - previous_callback = _window_focus_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWwindowfocusfun(cbfun) - _window_focus_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetWindowFocusCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_window_iconify_callback_repository = {} -_callback_repositories.append(_window_iconify_callback_repository) -_glfw.glfwSetWindowIconifyCallback.restype = _GLFWwindowiconifyfun -_glfw.glfwSetWindowIconifyCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWwindowiconifyfun] -def set_window_iconify_callback(window, cbfun): - ''' - Sets the iconify callback for the specified window. - - Wrapper for: - GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _window_iconify_callback_repository: - previous_callback = _window_iconify_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWwindowiconifyfun(cbfun) - _window_iconify_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetWindowIconifyCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_framebuffer_size_callback_repository = {} -_callback_repositories.append(_framebuffer_size_callback_repository) -_glfw.glfwSetFramebufferSizeCallback.restype = _GLFWframebuffersizefun -_glfw.glfwSetFramebufferSizeCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWframebuffersizefun] -def set_framebuffer_size_callback(window, cbfun): - ''' - Sets the framebuffer resize callback for the specified window. - - Wrapper for: - GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _framebuffer_size_callback_repository: - previous_callback = _framebuffer_size_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWframebuffersizefun(cbfun) - _framebuffer_size_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetFramebufferSizeCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_glfw.glfwPollEvents.restype = None -_glfw.glfwPollEvents.argtypes = [] -def poll_events(): - ''' - Processes all pending events. - - Wrapper for: - void glfwPollEvents(void); - ''' - _glfw.glfwPollEvents() - -_glfw.glfwWaitEvents.restype = None -_glfw.glfwWaitEvents.argtypes = [] -def wait_events(): - ''' - Waits until events are pending and processes them. - - Wrapper for: - void glfwWaitEvents(void); - ''' - _glfw.glfwWaitEvents() - -_glfw.glfwGetInputMode.restype = ctypes.c_int -_glfw.glfwGetInputMode.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_int] -def get_input_mode(window, mode): - ''' - Returns the value of an input option for the specified window. - - Wrapper for: - int glfwGetInputMode(GLFWwindow* window, int mode); - ''' - return _glfw.glfwGetInputMode(window, mode) - -_glfw.glfwSetInputMode.restype = None -_glfw.glfwSetInputMode.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_int, - ctypes.c_int] -def set_input_mode(window, mode, value): - ''' - Sets an input option for the specified window. - @param[in] window The window whose input mode to set. - @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or - `GLFW_STICKY_MOUSE_BUTTONS`. - @param[in] value The new value of the specified input mode. - - Wrapper for: - void glfwSetInputMode(GLFWwindow* window, int mode, int value); - ''' - _glfw.glfwSetInputMode(window, mode, value) - -_glfw.glfwGetKey.restype = ctypes.c_int -_glfw.glfwGetKey.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_int] -def get_key(window, key): - ''' - Returns the last reported state of a keyboard key for the specified - window. - - Wrapper for: - int glfwGetKey(GLFWwindow* window, int key); - ''' - return _glfw.glfwGetKey(window, key) - -_glfw.glfwGetMouseButton.restype = ctypes.c_int -_glfw.glfwGetMouseButton.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_int] -def get_mouse_button(window, button): - ''' - Returns the last reported state of a mouse button for the specified - window. - - Wrapper for: - int glfwGetMouseButton(GLFWwindow* window, int button); - ''' - return _glfw.glfwGetMouseButton(window, button) - -_glfw.glfwGetCursorPos.restype = None -_glfw.glfwGetCursorPos.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.POINTER(ctypes.c_double), - ctypes.POINTER(ctypes.c_double)] -def get_cursor_pos(window): - ''' - Retrieves the last reported cursor position, relative to the client - area of the window. - - Wrapper for: - void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos); - ''' - xpos_value = ctypes.c_double(0.0) - xpos = ctypes.pointer(xpos_value) - ypos_value = ctypes.c_double(0.0) - ypos = ctypes.pointer(ypos_value) - _glfw.glfwGetCursorPos(window, xpos, ypos) - return xpos_value.value, ypos_value.value - -_glfw.glfwSetCursorPos.restype = None -_glfw.glfwSetCursorPos.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_double, - ctypes.c_double] -def set_cursor_pos(window, xpos, ypos): - ''' - Sets the position of the cursor, relative to the client area of the window. - - Wrapper for: - void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos); - ''' - _glfw.glfwSetCursorPos(window, xpos, ypos) - -_key_callback_repository = {} -_callback_repositories.append(_key_callback_repository) -_glfw.glfwSetKeyCallback.restype = _GLFWkeyfun -_glfw.glfwSetKeyCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWkeyfun] -def set_key_callback(window, cbfun): - ''' - Sets the key callback. - - Wrapper for: - GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _key_callback_repository: - previous_callback = _key_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWkeyfun(cbfun) - _key_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetKeyCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_char_callback_repository = {} -_callback_repositories.append(_char_callback_repository) -_glfw.glfwSetCharCallback.restype = _GLFWcharfun -_glfw.glfwSetCharCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWcharfun] -def set_char_callback(window, cbfun): - ''' - Sets the Unicode character callback. - - Wrapper for: - GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _char_callback_repository: - previous_callback = _char_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWcharfun(cbfun) - _char_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetCharCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_mouse_button_callback_repository = {} -_callback_repositories.append(_mouse_button_callback_repository) -_glfw.glfwSetMouseButtonCallback.restype = _GLFWmousebuttonfun -_glfw.glfwSetMouseButtonCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWmousebuttonfun] -def set_mouse_button_callback(window, cbfun): - ''' - Sets the mouse button callback. - - Wrapper for: - GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _mouse_button_callback_repository: - previous_callback = _mouse_button_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWmousebuttonfun(cbfun) - _mouse_button_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetMouseButtonCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_cursor_pos_callback_repository = {} -_callback_repositories.append(_cursor_pos_callback_repository) -_glfw.glfwSetCursorPosCallback.restype = _GLFWcursorposfun -_glfw.glfwSetCursorPosCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWcursorposfun] -def set_cursor_pos_callback(window, cbfun): - ''' - Sets the cursor position callback. - - Wrapper for: - GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _cursor_pos_callback_repository: - previous_callback = _cursor_pos_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWcursorposfun(cbfun) - _cursor_pos_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetCursorPosCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_cursor_enter_callback_repository = {} -_callback_repositories.append(_cursor_enter_callback_repository) -_glfw.glfwSetCursorEnterCallback.restype = _GLFWcursorenterfun -_glfw.glfwSetCursorEnterCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWcursorenterfun] -def set_cursor_enter_callback(window, cbfun): - ''' - Sets the cursor enter/exit callback. - - Wrapper for: - GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _cursor_enter_callback_repository: - previous_callback = _cursor_enter_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWcursorenterfun(cbfun) - _cursor_enter_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetCursorEnterCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_scroll_callback_repository = {} -_callback_repositories.append(_scroll_callback_repository) -_glfw.glfwSetScrollCallback.restype = _GLFWscrollfun -_glfw.glfwSetScrollCallback.argtypes = [ctypes.POINTER(_GLFWwindow), - _GLFWscrollfun] -def set_scroll_callback(window, cbfun): - ''' - Sets the scroll callback. - - Wrapper for: - GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cbfun); - ''' - window_addr = ctypes.cast(ctypes.pointer(window), - ctypes.POINTER(ctypes.c_long)).contents.value - if window_addr in _scroll_callback_repository: - previous_callback = _scroll_callback_repository[window_addr] - else: - previous_callback = None - if cbfun is None: - cbfun = 0 - c_cbfun = _GLFWscrollfun(cbfun) - _scroll_callback_repository[window_addr] = (cbfun, c_cbfun) - cbfun = c_cbfun - _glfw.glfwSetScrollCallback(window, cbfun) - if previous_callback is not None and previous_callback[0] != 0: - return previous_callback[0] - -_glfw.glfwJoystickPresent.restype = ctypes.c_int -_glfw.glfwJoystickPresent.argtypes = [ctypes.c_int] -def joystick_present(joy): - ''' - Returns whether the specified joystick is present. - - Wrapper for: - int glfwJoystickPresent(int joy); - ''' - return _glfw.glfwJoystickPresent(joy) - -_glfw.glfwGetJoystickAxes.restype = ctypes.POINTER(ctypes.c_float) -_glfw.glfwGetJoystickAxes.argtypes = [ctypes.c_int, - ctypes.POINTER(ctypes.c_int)] -def get_joystick_axes(joy): - ''' - Returns the values of all axes of the specified joystick. - - Wrapper for: - const float* glfwGetJoystickAxes(int joy, int* count); - ''' - count_value = ctypes.c_int(0) - count = ctypes.pointer(count_value) - result = _glfw.glfwGetJoystickAxes(joy, count) - return result, count_value.value - -_glfw.glfwGetJoystickButtons.restype = ctypes.POINTER(ctypes.c_ubyte) -_glfw.glfwGetJoystickButtons.argtypes = [ctypes.c_int, - ctypes.POINTER(ctypes.c_int)] -def get_joystick_buttons(joy): - ''' - Returns the state of all buttons of the specified joystick. - - Wrapper for: - const unsigned char* glfwGetJoystickButtons(int joy, int* count); - ''' - count_value = ctypes.c_int(0) - count = ctypes.pointer(count_value) - result = _glfw.glfwGetJoystickButtons(joy, count) - return result, count_value.value - -_glfw.glfwGetJoystickName.restype = ctypes.c_char_p -_glfw.glfwGetJoystickName.argtypes = [ctypes.c_int] -def get_joystick_name(joy): - ''' - Returns the name of the specified joystick. - - Wrapper for: - const char* glfwGetJoystickName(int joy); - ''' - return _glfw.glfwGetJoystickName(joy) - -_glfw.glfwSetClipboardString.restype = None -_glfw.glfwSetClipboardString.argtypes = [ctypes.POINTER(_GLFWwindow), - ctypes.c_char_p] -def set_clipboard_string(window, string): - ''' - Sets the clipboard to the specified string. - - Wrapper for: - void glfwSetClipboardString(GLFWwindow* window, const char* string); - ''' - _glfw.glfwSetClipboardString(window, _to_char_p(string)) - -_glfw.glfwGetClipboardString.restype = ctypes.c_char_p -_glfw.glfwGetClipboardString.argtypes = [ctypes.POINTER(_GLFWwindow)] -def get_clipboard_string(window): - ''' - Retrieves the contents of the clipboard as a string. - - Wrapper for: - const char* glfwGetClipboardString(GLFWwindow* window); - ''' - return _glfw.glfwGetClipboardString(window) - -_glfw.glfwGetTime.restype = ctypes.c_double -_glfw.glfwGetTime.argtypes = [] -def get_time(): - ''' - Returns the value of the GLFW timer. - - Wrapper for: - double glfwGetTime(void); - ''' - return _glfw.glfwGetTime() - -_glfw.glfwSetTime.restype = None -_glfw.glfwSetTime.argtypes = [ctypes.c_double] -def set_time(time): - ''' - Sets the GLFW timer. - - Wrapper for: - void glfwSetTime(double time); - ''' - _glfw.glfwSetTime(time) - -_glfw.glfwMakeContextCurrent.restype = None -_glfw.glfwMakeContextCurrent.argtypes = [ctypes.POINTER(_GLFWwindow)] -def make_context_current(window): - ''' - Makes the context of the specified window current for the calling - thread. - - Wrapper for: - void glfwMakeContextCurrent(GLFWwindow* window); - ''' - _glfw.glfwMakeContextCurrent(window) - -_glfw.glfwGetCurrentContext.restype = ctypes.POINTER(_GLFWwindow) -_glfw.glfwGetCurrentContext.argtypes = [] -def get_current_context(): - ''' - Returns the window whose context is current on the calling thread. - - Wrapper for: - GLFWwindow* glfwGetCurrentContext(void); - ''' - return _glfw.glfwGetCurrentContext() - -_glfw.glfwSwapBuffers.restype = None -_glfw.glfwSwapBuffers.argtypes = [ctypes.POINTER(_GLFWwindow)] -def swap_buffers(window): - ''' - Swaps the front and back buffers of the specified window. - - Wrapper for: - void glfwSwapBuffers(GLFWwindow* window); - ''' - _glfw.glfwSwapBuffers(window) - -_glfw.glfwSwapInterval.restype = None -_glfw.glfwSwapInterval.argtypes = [ctypes.c_int] -def swap_interval(interval): - ''' - Sets the swap interval for the current context. - - Wrapper for: - void glfwSwapInterval(int interval); - ''' - _glfw.glfwSwapInterval(interval) - -_glfw.glfwExtensionSupported.restype = ctypes.c_int -_glfw.glfwExtensionSupported.argtypes = [ctypes.c_char_p] -def extension_supported(extension): - ''' - Returns whether the specified extension is available. - - Wrapper for: - int glfwExtensionSupported(const char* extension); - ''' - return _glfw.glfwExtensionSupported(_to_char_p(extension)) - -_glfw.glfwGetProcAddress.restype = ctypes.c_void_p -_glfw.glfwGetProcAddress.argtypes = [ctypes.c_char_p] -def get_proc_address(procname): - ''' - Returns the address of the specified function for the current - context. - - Wrapper for: - GLFWglproc glfwGetProcAddress(const char* procname); - ''' - return _glfw.glfwGetProcAddress(_to_char_p(procname)) diff --git a/mujoco_py/mjconstants.py b/mujoco_py/mjconstants.py deleted file mode 100644 index 0fa78747..00000000 --- a/mujoco_py/mjconstants.py +++ /dev/null @@ -1,23 +0,0 @@ -MOUSE_ROTATE_V = 1 -MOUSE_ROTATE_H = 2 -MOUSE_MOVE_V = 3 -MOUSE_MOVE_H = 4 -MOUSE_ZOOM = 5 - -mjOBJ_BODY = 1 -mjOBJ_JOINT = 2 - -mjJNT_FREE = 0 -mjJNT_BALL = 1 -mjJNT_SLIDE = 2 -mjJNT_HINGE = 3 - -# mjtCatBit - geom categories -mjCAT_STATIC = 1 -mjCAT_DYNAMIC = 2 -mjCAT_DECOR = 4 -mjCAT_ALL = 7 - -# mjtPertBit - mouse perturbation -mjPERT_TRANSLATE = 1 -mjPERT_ROTATE = 2 diff --git a/mujoco_py/mjcore.py b/mujoco_py/mjcore.py deleted file mode 100644 index 4b62b21a..00000000 --- a/mujoco_py/mjcore.py +++ /dev/null @@ -1,162 +0,0 @@ -from ctypes import create_string_buffer -import ctypes -from . import mjconstants as C - -from .mjtypes import * # import all for backwards compatibility -from .mjlib import mjlib -from six.moves import xrange - -def register_license(file_path): - """ - activates mujoco with license at `file_path` - - this does not check the return code, per usage example at simulate.cpp - and test.cpp. - """ - result = mjlib.mj_activate(file_path) - return result - - -class dict2(dict): - def __init__(self, **kwargs): - dict.__init__(self, kwargs) - self.__dict__ = self - - -class MjModel(MjModelWrapper): - - def __init__(self, xml_path): - buf = create_string_buffer(1000) - model_ptr = mjlib.mj_loadXML(xml_path, None, buf, 1000) - if len(buf.value) > 0: - print("Warning: %s" % buf.value) - super(MjModel, self).__init__(model_ptr) - data_ptr = mjlib.mj_makeData(model_ptr) - fields = ["nq","nv","na","nu","nbody","nmocap","nuserdata","nsensordata","njnt","ngeom","nsite","ncam","nlight","ntendon","nwrap","nM","njmax","nemax"] - sizes = dict2(**{ k: getattr(self, k) for k in fields }) - data = MjData(data_ptr, sizes) - self.data = data - self._body_comvels = None - self.forward() - - def forward(self): - mjlib.mj_forward(self.ptr, self.data.ptr) - mjlib.mj_sensor(self.ptr, self.data.ptr) - mjlib.mj_energy(self.ptr, self.data.ptr) - self._body_comvels = None - - @property - def body_comvels(self): - if self._body_comvels is None: - self._body_comvels = self._compute_subtree() - return self._body_comvels - - def _compute_subtree(self): - body_vels = np.zeros((self.nbody, 6)) - # bodywise quantities - mass = self.body_mass.flatten() - for i in xrange(self.nbody): - # body velocity - mjlib.mj_objectVelocity( - self.ptr, self.data.ptr, C.mjOBJ_BODY, i, - body_vels[i].ctypes.data_as(POINTER(c_double)), 0 - ) - # body linear momentum - lin_moms = body_vels[:, 3:] * mass.reshape((-1, 1)) - - # init subtree mass - body_parentid = self.body_parentid - # subtree com and com_vel - for i in xrange(self.nbody - 1, -1, -1): - if i > 0: - parent = body_parentid[i] - # add scaled velocities - lin_moms[parent] += lin_moms[i] - # accumulate mass - mass[parent] += mass[i] - return lin_moms / mass.reshape((-1, 1)) - - def step(self): - mjlib.mj_step(self.ptr, self.data.ptr) - - def __del__(self): - if self._wrapped is not None: - # At the very end of the process, mjlib can be unloaded before we are deleted. - # At that point, it's okay to leak this memory. - if mjlib: mjlib.mj_deleteModel(self._wrapped) - - @property - def body_names(self): - start_addr = ctypes.addressof(self.names.contents) - return [ctypes.string_at(start_addr + int(inc)) - for inc in self.name_bodyadr.flatten()] - - @property - def joint_names(self): - start_addr = ctypes.addressof(self.names.contents) - return [ctypes.string_at(start_addr + int(inc)) - for inc in self.name_jntadr.flatten()] - - def joint_adr(self, joint_name): - """Return (qposadr, qveladr, dof) for the given joint name. - - If dof is 4 or 7, then the last 4 degrees of freedom in qpos represent a - unit quaternion.""" - jntadr = mjlib.mj_name2id(self.ptr, C.mjOBJ_JOINT, joint_name) - assert(jntadr >= 0) - dofmap = {C.mjJNT_FREE: 7, - C.mjJNT_BALL: 4, - C.mjJNT_SLIDE: 1, - C.mjJNT_HINGE: 1} - qposadr = self.jnt_qposadr[jntadr][0] - qveladr = self.jnt_dofadr[jntadr][0] - dof = dofmap[self.jnt_type[jntadr][0]] - return (qposadr, qveladr, dof) - - @property - def geom_names(self): - start_addr = ctypes.addressof(self.names.contents) - return [ctypes.string_at(start_addr + int(inc)) - for inc in self.name_geomadr.flatten()] - - @property - def site_names(self): - start_addr = ctypes.addressof(self.names.contents) - return [ctypes.string_at(start_addr + int(inc)) - for inc in self.name_siteadr.flatten()] - - @property - def mesh_names(self): - start_addr = ctypes.addressof(self.names.contents) - return [ctypes.string_at(start_addr + int(inc)) - for inc in self.name_meshadr.flatten()] - - @property - def numeric_names(self): - start_addr = ctypes.addressof(self.names.contents) - return [ctypes.string_at(start_addr + int(inc)) - for inc in self.name_numericadr.flatten()] - - @property - def actuator_names(self): - start_addr = ctypes.addressof(self.names.contents) - return [ctypes.string_at(start_addr + int(inc)) - for inc in self.name_actuatoradr.flatten()] - - @property - def camera_names(self): - start_addr = ctypes.addressof(self.names.contents) - return [ctypes.string_at(start_addr + int(inc)) - for inc in self.name_camadr.flatten()] - - -class MjData(MjDataWrapper): - - def __init__(self, wrapped, size_src=None): - super(MjData, self).__init__(wrapped, size_src) - - def __del__(self): - if self._wrapped is not None: - # At the very end of the process, mjlib can be unloaded before we are deleted. - # At that point, it's okay to leak this memory. - if mjlib: mjlib.mj_deleteData(self._wrapped) diff --git a/mujoco_py/mjextra.py b/mujoco_py/mjextra.py deleted file mode 100644 index 40bba746..00000000 --- a/mujoco_py/mjextra.py +++ /dev/null @@ -1,6 +0,0 @@ -def append_objects(cur, extra): - for i in range(cur.ngeom, cur.ngeom + extra.ngeom): - cur.geoms[i] = extra.geoms[i - cur.ngeom] - cur.ngeom = cur.ngeom + extra.ngeom - if cur.ngeom > cur.maxgeom: - raise ValueError("buffer limit exceeded!") diff --git a/mujoco_py/mjlib.py b/mujoco_py/mjlib.py deleted file mode 100644 index 9966573e..00000000 --- a/mujoco_py/mjlib.py +++ /dev/null @@ -1,413 +0,0 @@ -from ctypes import * -import os -from .util import * -from .mjtypes import * - -from mujoco_py import config - -path_prefix = config.mjpro_path -if sys.platform.startswith("darwin"): - libfile = os.path.join(path_prefix, "bin/libmujoco131.dylib") -elif sys.platform.startswith("linux"): - libfile = os.path.join(path_prefix, "bin/libmujoco131.so") -elif sys.platform.startswith("win"): - libfile = os.path.join(path_prefix, "bin/mujoco131.lib") -else: - raise RuntimeError("Unrecognized platform %s" % sys.platform) - -if not os.path.exists(libfile): - raise RuntimeError("Missing path: %s. (HINT: you should have unzipped the mjpro131.zip bundle without modification.)" % libfile) - -mjlib = cdll.LoadLibrary(os.path.abspath(libfile)) - -mjlib.mj_loadXML.argtypes = [String, String, c_char_p, c_int] -mjlib.mj_loadXML.restype = POINTER(MJMODEL) -mjlib.mj_saveXML.argtypes = [String, POINTER(MJMODEL), String] -mjlib.mj_saveXML.restype = c_int -#mjlib.mj_printSchema.argtypes = [String, String, c_int, c_int, c_int] -#mjlib.mj_printSchema.restype = c_int -mjlib.mj_activate.argtypes = [String] -mjlib.mj_activate.restype = c_int -mjlib.mj_step.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -mjlib.mj_step.restype = None -mjlib.mj_step1.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -mjlib.mj_step1.restype = None -mjlib.mj_step2.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -mjlib.mj_step2.restype = None -mjlib.mj_forward.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -mjlib.mj_forward.restype = None -#mjlib.mj_inverse.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_inverse.restype = None -#mjlib.mj_forwardSkip.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int] -#mjlib.mj_forwardSkip.restype = None -#mjlib.mj_inverseSkip.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int] -#mjlib.mj_inverseSkip.restype = None -#mjlib.mj_sensor.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_sensor.restype = None -#mjlib.mj_energy.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_energy.restype = None -#mjlib.mj_defaultSolRefImp.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mj_defaultSolRefImp.restype = None -#mjlib.mj_defaultOption.argtypes = [POINTER(mjOption)] -#mjlib.mj_defaultOption.restype = None -#mjlib.mj_defaultVisual.argtypes = [POINTER(mjVisual)] -#mjlib.mj_defaultVisual.restype = None -#mjlib.mj_copyModel.argtypes = [POINTER(MJMODEL), POINTER(MJMODEL)] -#mjlib.mj_copyModel.restype = POINTER(MJMODEL) -#mjlib.mj_saveModel.argtypes = [POINTER(MJMODEL), String, c_int, POINTER(None)] -#mjlib.mj_saveModel.restype = None -#mjlib.mj_loadModel.argtypes = [String, c_int, POINTER(None)] -#mjlib.mj_loadModel.restype = POINTER(MJMODEL) -mjlib.mj_deleteModel.argtypes = [POINTER(MJMODEL)] -mjlib.mj_deleteModel.restype = None -#mjlib.mj_sizeModel.argtypes = [POINTER(MJMODEL)] -#mjlib.mj_sizeModel.restype = c_int -mjlib.mj_makeData.argtypes = [POINTER(MJMODEL)] -mjlib.mj_makeData.restype = POINTER(MJDATA) -#mjlib.mj_copyData.argtypes = [POINTER(MJDATA), POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_copyData.restype = POINTER(MJDATA) -mjlib.mj_resetData.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -mjlib.mj_resetData.restype = None -#mjlib.mj_stackAlloc.argtypes = [POINTER(MJDATA), c_int] -#mjlib.mj_stackAlloc.restype = POINTER(c_double) -mjlib.mj_deleteData.argtypes = [POINTER(MJDATA)] -mjlib.mj_deleteData.restype = None -#mjlib.mj_resetCallbacks.argtypes = [] -#mjlib.mj_resetCallbacks.restype = None -#mjlib.mj_setConst.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int] -#mjlib.mj_setConst.restype = None -#mjlib.mj_printModel.argtypes = [POINTER(MJMODEL), String] -#mjlib.mj_printModel.restype = None -#mjlib.mj_printData.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), String] -#mjlib.mj_printData.restype = None -#mjlib.mju_printMat.argtypes = [POINTER(c_double), c_int, c_int] -#mjlib.mju_printMat.restype = None -#mjlib.mj_fwdPosition.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_fwdPosition.restype = None -#mjlib.mj_fwdVelocity.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_fwdVelocity.restype = None -#mjlib.mj_fwdActuation.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_fwdActuation.restype = None -#mjlib.mj_fwdAcceleration.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_fwdAcceleration.restype = None -#mjlib.mj_fwdConstraint.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_fwdConstraint.restype = None -#mjlib.mj_Euler.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_Euler.restype = None -#mjlib.mj_RungeKutta.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int] -#mjlib.mj_RungeKutta.restype = None -#mjlib.mj_invPosition.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_invPosition.restype = None -#mjlib.mj_invVelocity.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_invVelocity.restype = None -#mjlib.mj_invConstraint.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_invConstraint.restype = None -#mjlib.mj_compareFwdInv.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_compareFwdInv.restype = None -#mjlib.mj_checkPos.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_checkPos.restype = None -#mjlib.mj_checkVel.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_checkVel.restype = None -#mjlib.mj_checkAcc.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_checkAcc.restype = None -#mjlib.mj_kinematics.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_kinematics.restype = None -#mjlib.mj_comPos.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_comPos.restype = None -#mjlib.mj_tendon.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_tendon.restype = None -#mjlib.mj_transmission.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_transmission.restype = None -#mjlib.mj_crb.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_crb.restype = None -#mjlib.mj_factorM.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_factorM.restype = None -#mjlib.mj_backsubM.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_backsubM.restype = None -#mjlib.mj_backsubM2.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_backsubM2.restype = None -#mjlib.mj_comVel.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_comVel.restype = None -#mjlib.mj_passive.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_passive.restype = None -#mjlib.mj_rne.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int, POINTER(c_double)] -#mjlib.mj_rne.restype = None -#mjlib.mj_rnePostConstraint.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_rnePostConstraint.restype = None -#mjlib.mj_collision.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_collision.restype = None -#mjlib.mj_makeConstraint.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_makeConstraint.restype = None -#mjlib.mj_projectConstraint.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_projectConstraint.restype = None -#mjlib.mj_referenceConstraint.argtypes = [POINTER(MJMODEL), POINTER(MJDATA)] -#mjlib.mj_referenceConstraint.restype = None -#mjlib.mj_isPyramid.argtypes = [POINTER(MJMODEL)] -#mjlib.mj_isPyramid.restype = c_int -#mjlib.mj_isSparse.argtypes = [POINTER(MJMODEL)] -#mjlib.mj_isSparse.restype = c_int -#mjlib.mj_mulJacVec.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double)] -#mjlib.mj_mulJacVec.restype = None -#mjlib.mj_mulJacTVec.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double)] -#mjlib.mj_mulJacTVec.restype = None -#mjlib.mj_jac.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_jac.restype = None -#mjlib.mj_jacBody.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_jacBody.restype = None -#mjlib.mj_jacBodyCom.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_jacBodyCom.restype = None -#mjlib.mj_jacGeom.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_jacGeom.restype = None -#mjlib.mj_jacSite.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_jacSite.restype = None -#mjlib.mj_jacPointAxis.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_jacPointAxis.restype = None -mjlib.mj_name2id.argtypes = [POINTER(MJMODEL), c_int, String] # The middle term is a mjtObj (an enum) in C. -mjlib.mj_name2id.restype = c_int -#mjlib.mj_id2name.argtypes = [POINTER(MJMODEL), mjtObj, c_int] -#mjlib. mj_id2name.restype = ReturnString -#mjlib.else: -#mjlib. mj_id2name.restype = String -#mjlib. mj_id2name.errcheck = ReturnString -#mjlib.mj_fullM.argtypes = [POINTER(MJMODEL), POINTER(c_double), POINTER(c_double)] -#mjlib.mj_fullM.restype = None -#mjlib.mj_mulM.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double)] -#mjlib.mj_mulM.restype = None -#mjlib.mj_applyFT.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int, POINTER(c_double)] -#mjlib.mj_applyFT.restype = None -#mjlib.mj_objectVelocity.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int, c_int, POINTER(c_double), mjtByte] -#mjlib.mj_objectVelocity.restype = None -#mjlib.mj_objectAcceleration.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int, c_int, POINTER(c_double), mjtByte] -#mjlib.mj_objectAcceleration.restype = None -#mjlib.mj_contactForce.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int, POINTER(c_double)] -#mjlib.mj_contactForce.restype = None -#mjlib.mj_integratePos.argtypes = [POINTER(MJMODEL), POINTER(c_double), POINTER(c_double), c_double] -#mjlib.mj_integratePos.restype = None -#mjlib.mj_normalizeQuat.argtypes = [POINTER(MJMODEL), POINTER(c_double)] -#mjlib.mj_normalizeQuat.restype = None -#mjlib.mj_local2Global.argtypes = [POINTER(MJDATA), POINTER(c_double), POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mj_local2Global.restype = None -#mjlib.mj_getTotalmass.argtypes = [POINTER(MJMODEL)] -#mjlib.mj_getTotalmass.restype = c_double -#mjlib.mj_setTotalmass.argtypes = [POINTER(MJMODEL), c_double] -#mjlib.mj_setTotalmass.restype = None -#mjlib.mj_version.argtypes = [] -#mjlib.mj_version.restype = c_double -mjlib.mjv_makeObjects.argtypes = [POINTER(MJVOBJECTS), c_int] -mjlib.mjv_makeObjects.restype = None -mjlib.mjv_freeObjects.argtypes = [POINTER(MJVOBJECTS)] -mjlib.mjv_freeObjects.restype = None -mjlib.mjv_defaultOption.argtypes = [POINTER(MJVOPTION)] -mjlib.mjv_defaultOption.restype = None -#mjlib.mjv_defaultCameraPose.argtypes = [POINTER(MJVCAMERAPOSE)] -#mjlib.mjv_defaultCameraPose.restype = None -mjlib.mjv_defaultCamera.argtypes = [POINTER(MJVCAMERA)] -mjlib.mjv_defaultCamera.restype = None -mjlib.mjv_setCamera.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(MJVCAMERA)] -mjlib.mjv_setCamera.restype = None -mjlib.mjv_updateCameraPose.argtypes = [POINTER(MJVCAMERA), c_double] -mjlib.mjv_updateCameraPose.restype = None -#mjlib.mjv_convert3D.argtypes = [POINTER(c_double), POINTER(c_double), c_double, POINTER(MJVCAMERAPOSE)] -#mjlib.mjv_convert3D.restype = None -#mjlib.mjv_convert2D.argtypes = [POINTER(c_double), mjtMouse, c_double, c_double, c_double, POINTER(MJVCAMERAPOSE)] -#mjlib.mjv_convert2D.restype = None -mjlib.mjv_moveCamera.argtypes = [c_int, c_float, c_float, POINTER(MJVCAMERA), c_float, c_float] -mjlib.mjv_moveCamera.restype = None -#mjlib.mjv_moveObject.argtypes = [mjtMouse, c_float, c_float, POINTER(MJVCAMERAPOSE), c_float, c_float, POINTER(c_double), POINTER(c_double)] -#mjlib.mjv_moveObject.restype = None -mjlib.mjv_mousePerturb.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int, c_int, POINTER(c_double), POINTER(c_double), POINTER(c_double)] -mjlib.mjv_mousePerturb.restype = None -#mjlib.mjv_mouseEdit.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), c_int, c_int, POINTER(c_double), POINTER(c_double)] -#mjlib.mjv_mouseEdit.restype = None -mjlib.mjv_makeGeoms.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(MJVOBJECTS), POINTER(MJVOPTION), c_int, c_int, POINTER(c_double), POINTER(c_double), POINTER(c_double)] -mjlib.mjv_makeGeoms.restype = None -mjlib.mjv_makeLights.argtypes = [POINTER(MJMODEL), POINTER(MJDATA), POINTER(MJVOBJECTS)] -mjlib.mjv_makeLights.restype = None -mjlib.mjr_overlay.argtypes = [MJRRECT, c_int, c_int, String, String, POINTER(MJRCONTEXT)] -mjlib.mjr_overlay.restype = None -#mjlib.mjr_rectangle.argtypes = [c_int, MJRRECT, c_double, c_double, c_double, c_double, c_double, c_double, c_double, c_double] -#mjlib.mjr_rectangle.restype = None -#mjlib.mjr_finish.argtypes = [] -#mjlib.mjr_finish.restype = None -#mjlib.mjr_text.argtypes = [String, POINTER(MJRCONTEXT), c_int, c_float, c_float, c_float, c_float, c_float, c_float] -#mjlib.mjr_text.restype = None -#mjlib.mjr_textback.argtypes = [String, POINTER(MJRCONTEXT), c_float, c_float, c_float, c_float, c_float, c_float] -#mjlib.mjr_textback.restype = None -#mjlib.mjr_textWidth.argtypes = [String, POINTER(MJRCONTEXT), c_int] -#mjlib.mjr_textWidth.restype = c_int -mjlib.mjr_defaultOption.argtypes = [POINTER(MJROPTION)] -mjlib.mjr_defaultOption.restype = None -mjlib.mjr_defaultContext.argtypes = [POINTER(MJRCONTEXT)] -mjlib.mjr_defaultContext.restype = None -#mjlib.mjr_uploadTexture.argtypes = [POINTER(MJMODEL), POINTER(MJRCONTEXT), c_int] -#mjlib.mjr_uploadTexture.restype = None -mjlib.mjr_makeContext.argtypes = [POINTER(MJMODEL), POINTER(MJRCONTEXT), c_int] -mjlib.mjr_makeContext.restype = None -mjlib.mjr_freeContext.argtypes = [POINTER(MJRCONTEXT)] -mjlib.mjr_freeContext.restype = None -mjlib.mjr_render.argtypes = [c_int, MJRRECT, POINTER(MJVOBJECTS), POINTER(MJROPTION), POINTER(MJVCAMERAPOSE), POINTER(MJRCONTEXT)] -mjlib.mjr_render.restype = None -#mjlib.mjr_select.argtypes = [MJRRECT, POINTER(MJVOBJECTS), c_int, c_int, POINTER(c_double), POINTER(c_double), POINTER(MJROPTION), POINTER(MJVCAMERAPOSE), POINTER(MJRCONTEXT)] -#mjlib.mjr_select.restype = c_int -#mjlib.mjr_showOffscreen.argtypes = [c_int, c_int, POINTER(MJRCONTEXT)] -#mjlib.mjr_showOffscreen.restype = None -#mjlib.mjr_showBuffer.argtypes = [POINTER(c_ubyte), c_int, c_int, c_int, c_int, POINTER(MJRCONTEXT)] -#mjlib.mjr_showBuffer.restype = None -#mjlib.mjr_getOffscreen.argtypes = [POINTER(c_ubyte), POINTER(c_float), MJRRECT, POINTER(MJRCONTEXT)] -#mjlib.mjr_getOffscreen.restype = None -#mjlib.mjr_getBackbuffer.argtypes = [POINTER(c_ubyte), POINTER(c_float), MJRRECT, POINTER(MJRCONTEXT)] -#mjlib.mjr_getBackbuffer.restype = None -#mjlib. -#mjlib. -#mjlib.mju_error.argtypes = [String] -#mjlib.mju_error.restype = None -#mjlib.mju_error_i.argtypes = [String, c_int] -#mjlib.mju_error_i.restype = None -#mjlib.mju_error_s.argtypes = [String, String] -#mjlib.mju_error_s.restype = None -#mjlib.mju_warning.argtypes = [String] -#mjlib.mju_warning.restype = None -#mjlib.mju_warning_i.argtypes = [String, c_int] -#mjlib.mju_warning_i.restype = None -#mjlib.mju_warning_s.argtypes = [String, String] -#mjlib.mju_warning_s.restype = None -#mjlib.mju_clearHandlers.argtypes = [] -#mjlib.mju_clearHandlers.restype = None -#mjlib.mju_malloc.argtypes = [c_size_t] -#mjlib.mju_malloc.restype = POINTER(None) -#mjlib.mju_free.argtypes = [POINTER(None)] -#mjlib.mju_free.restype = None -#mjlib.mj_warning.argtypes = [POINTER(MJDATA), c_int] -#mjlib.mj_warning.restype = None -#mjlib.mju_zero3.argtypes = [POINTER(c_double)] -#mjlib.mju_zero3.restype = None -#mjlib.mju_copy3.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mju_copy3.restype = None -#mjlib.mju_scl3.argtypes = [POINTER(c_double), POINTER(c_double), c_double] -#mjlib.mju_scl3.restype = None -#mjlib.mju_add3.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_add3.restype = None -#mjlib.mju_sub3.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_sub3.restype = None -#mjlib.mju_addTo3.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mju_addTo3.restype = None -#mjlib.mju_addToScl3.argtypes = [POINTER(c_double), POINTER(c_double), c_double] -#mjlib.mju_addToScl3.restype = None -#mjlib.mju_addScl3.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_double] -#mjlib.mju_addScl3.restype = None -#mjlib.mju_normalize3.argtypes = [POINTER(c_double)] -#mjlib.mju_normalize3.restype = c_double -#mjlib.mju_norm3.argtypes = [POINTER(c_double)] -#mjlib.mju_norm3.restype = c_double -#mjlib.mju_dot3.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mju_dot3.restype = c_double -#mjlib.mju_dist3.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mju_dist3.restype = c_double -#mjlib.mju_rotVecMat.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_rotVecMat.restype = None -#mjlib.mju_rotVecMatT.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_rotVecMatT.restype = None -#mjlib.mju_cross.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_cross.restype = None -#mjlib.mju_zero.argtypes = [POINTER(c_double), c_int] -#mjlib.mju_zero.restype = None -#mjlib.mju_copy.argtypes = [POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mju_copy.restype = None -#mjlib.mju_scl.argtypes = [POINTER(c_double), POINTER(c_double), c_double, c_int] -#mjlib.mju_scl.restype = None -#mjlib.mju_add.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mju_add.restype = None -#mjlib.mju_sub.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mju_sub.restype = None -#mjlib.mju_addTo.argtypes = [POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mju_addTo.restype = None -#mjlib.mju_addToScl.argtypes = [POINTER(c_double), POINTER(c_double), c_double, c_int] -#mjlib.mju_addToScl.restype = None -#mjlib.mju_addScl.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_double, c_int] -#mjlib.mju_addScl.restype = None -#mjlib.mju_normalize.argtypes = [POINTER(c_double), c_int] -#mjlib.mju_normalize.restype = c_double -#mjlib.mju_norm.argtypes = [POINTER(c_double), c_int] -#mjlib.mju_norm.restype = c_double -#mjlib.mju_dot.argtypes = [POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mju_dot.restype = c_double -#mjlib.mju_mulMatVec.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int, c_int] -#mjlib.mju_mulMatVec.restype = None -#mjlib.mju_mulMatTVec.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int, c_int] -#mjlib.mju_mulMatTVec.restype = None -#mjlib.mju_transpose.argtypes = [POINTER(c_double), POINTER(c_double), c_int, c_int] -#mjlib.mju_transpose.restype = None -#mjlib.mju_mulMatMat.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int, c_int, c_int] -#mjlib.mju_mulMatMat.restype = None -#mjlib.mju_mulMatMatT.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int, c_int, c_int] -#mjlib.mju_mulMatMatT.restype = None -#mjlib.mju_sqrMat.argtypes = [POINTER(c_double), POINTER(c_double), c_int, c_int, POINTER(c_double), c_int] -#mjlib.mju_sqrMat.restype = None -#mjlib.mju_mulMatTMat.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int, c_int, c_int] -#mjlib.mju_mulMatTMat.restype = None -#mjlib.mju_transformSpatial.argtypes = [POINTER(c_double), POINTER(c_double), mjtByte, POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_transformSpatial.restype = None -#mjlib.mju_rotVecQuat.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_rotVecQuat.restype = None -#mjlib.mju_negQuat.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mju_negQuat.restype = None -#mjlib.mju_mulQuat.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_mulQuat.restype = None -#mjlib.mju_mulQuatAxis.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_mulQuatAxis.restype = None -#mjlib.mju_axisAngle2Quat.argtypes = [POINTER(c_double), POINTER(c_double), c_double] -#mjlib.mju_axisAngle2Quat.restype = None -#mjlib.mju_quat2Vel.argtypes = [POINTER(c_double), POINTER(c_double), c_double] -#mjlib.mju_quat2Vel.restype = None -#mjlib.mju_quat2Mat.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mju_quat2Mat.restype = None -#mjlib.mju_mat2Quat.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mju_mat2Quat.restype = None -#mjlib.mju_derivQuat.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_derivQuat.restype = None -#mjlib.mju_quatIntegrate.argtypes = [POINTER(c_double), POINTER(c_double), c_double] -#mjlib.mju_quatIntegrate.restype = None -#mjlib.mju_quatZ2Vec.argtypes = [POINTER(c_double), POINTER(c_double)] -#mjlib.mju_quatZ2Vec.restype = None -#mjlib.mju_cholFactor.argtypes = [POINTER(c_double), POINTER(c_double), c_int, c_double, c_double, POINTER(c_double)] -#mjlib.mju_cholFactor.restype = c_int -#mjlib.mju_cholBacksub.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int, c_int, c_int] -#mjlib.mju_cholBacksub.restype = None -#mjlib.mju_eig3.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), POINTER(c_double)] -#mjlib.mju_eig3.restype = c_int -#mjlib.mju_muscleFVL.argtypes = [c_double, c_double, c_double, c_double, POINTER(c_double)] -#mjlib.mju_muscleFVL.restype = c_double -#mjlib.mju_musclePassive.argtypes = [c_double, c_double, c_double, POINTER(c_double)] -#mjlib.mju_musclePassive.restype = c_double -#mjlib.mju_pneumatic.argtypes = [c_double, c_double, c_double, POINTER(c_double), c_double, c_double, c_double, POINTER(c_double)] -#mjlib.mju_pneumatic.restype = c_double -#mjlib.mju_encodePyramid.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mju_encodePyramid.restype = None -#mjlib.mju_decodePyramid.argtypes = [POINTER(c_double), POINTER(c_double), POINTER(c_double), c_int] -#mjlib.mju_decodePyramid.restype = None -#mjlib.mju_springDamper.argtypes = [c_double, c_double, c_double, c_double, c_double] -#mjlib.mju_springDamper.restype = c_double -#mjlib.mju_min.argtypes = [c_double, c_double] -#mjlib.mju_min.restype = c_double -#mjlib.mju_max.argtypes = [c_double, c_double] -#mjlib.mju_max.restype = c_double -#mjlib.mju_sign.argtypes = [c_double] -#mjlib.mju_sign.restype = c_double -#mjlib.mju_round.argtypes = [c_double] -#mjlib.mju_round.restype = c_int -#mjlib.mju_type2Str.argtypes = [c_int] -#mjlib. mju_type2Str.restype = ReturnString -#mjlib.else: -#mjlib. mju_type2Str.restype = String -#mjlib. mju_type2Str.errcheck = ReturnString -#mjlib.mju_str2Type.argtypes = [String] -#mjlib.mju_str2Type.restype = mjtObj -#mjlib.mju_warningText.argtypes = [c_int] -#mjlib. mju_warningText.restype = ReturnString -#mjlib.else: -#mjlib. mju_warningText.restype = String -#mjlib. mju_warningText.errcheck = ReturnString -#mjlib.mju_isBad.argtypes = [c_double] -#mjlib.mju_isBad.restype = c_int -#mjlib.mju_isZero.argtypes = [POINTER(c_double), c_int] -#mjlib.mju_isZero.restype = c_int diff --git a/mujoco_py/mjrendercontext.pyx b/mujoco_py/mjrendercontext.pyx new file mode 100644 index 00000000..3c85d6e2 --- /dev/null +++ b/mujoco_py/mjrendercontext.pyx @@ -0,0 +1,259 @@ +from threading import Lock +from mujoco_py.generated import const + +cdef class MjRenderContext(object): + """ + Class that encapsulates rendering functionality for a + MuJoCo simulation. + """ + + cdef mjModel *_model_ptr + cdef mjData *_data_ptr + + cdef mjvScene _scn + cdef mjvCamera _cam + cdef mjvOption _vopt + cdef mjvPerturb _pert + cdef mjrContext _con + + # Public wrappers + cdef readonly PyMjvScene scn + cdef readonly PyMjvCamera cam + cdef readonly PyMjvOption vopt + cdef readonly PyMjvPerturb pert + cdef readonly PyMjrContext con + + cdef readonly object _opengl_context + cdef readonly int _visible + cdef readonly list _markers + cdef readonly dict _overlay + + cdef readonly bint offscreen + cdef public object sim + + def __cinit__(self): + maxgeom = 1000 + mjv_makeScene(&self._scn, maxgeom) + mjv_defaultCamera(&self._cam) + mjv_defaultOption(&self._vopt) + mjr_defaultContext(&self._con) + + def __init__(self, MjSim sim, bint offscreen=True): + self.sim = sim + self._setup_opengl_context(offscreen) + self.offscreen = offscreen + + # Ensure the model data has been updated so that there + # is something to render + sim.forward() + + sim.add_render_context(self) + + self._model_ptr = sim.model.ptr + self._data_ptr = sim.data.ptr + self.scn = WrapMjvScene(&self._scn) + self.cam = WrapMjvCamera(&self._cam) + self.vopt = WrapMjvOption(&self._vopt) + self.con = WrapMjrContext(&self._con) + self._pert.active = 0 + self._pert.select = 0 + self.pert = WrapMjvPerturb(&self._pert) + + self._markers = [] + self._overlay = {} + + self._init_camera(sim) + self._set_mujoco_buffers() + + def update_sim(self, MjSim new_sim): + if new_sim == self.sim: + return + self._model_ptr = new_sim.model.ptr + self._data_ptr = new_sim.data.ptr + self._set_mujoco_buffers() + for render_context in self.sim.render_contexts: + new_sim.add_render_context(render_context) + self.sim = new_sim + + def _set_mujoco_buffers(self): + mjr_makeContext(self._model_ptr, &self._con, mjFONTSCALE_150) + if self.offscreen: + mjr_setBuffer(mjFB_OFFSCREEN, &self._con); + if self._con.currentBuffer != mjFB_OFFSCREEN: + raise RuntimeError('Offscreen rendering not supported') + else: + mjr_setBuffer(mjFB_WINDOW, &self._con); + if self._con.currentBuffer != mjFB_WINDOW: + raise RuntimeError('Window rendering not supported') + self.con = WrapMjrContext(&self._con) + + def _setup_opengl_context(self, offscreen): + if not offscreen or sys.platform == 'darwin': + self._opengl_context = GlfwContext(offscreen=offscreen) + else: + self._opengl_context = OffscreenOpenGLContext() + + def _init_camera(self, sim): + # Make the free camera look at the scene + self.cam.type = const.CAMERA_FREE + self.cam.fixedcamid = -1 + for i in range(3): + self.cam.lookat[i] = sim.model.stat.center[i] + self.cam.distance = sim.model.stat.extent + + def render(self, width, height, camera_id=None): + cdef mjrRect rect + rect.left = 0 + rect.bottom = 0 + rect.width = width + rect.height = height + + # Sometimes buffers are too small. + if width > self._con.offWidth or height > self._con.offHeight: + self._model_ptr.vis.global_.offwidth = max(width, self._model_ptr.vis.global_.offwidth) + self._model_ptr.vis.global_.offheight = max(height, self._model_ptr.vis.global_.offheight) + mjr_freeContext(&self._con) + self._set_mujoco_buffers() + + if camera_id is not None: + if camera_id == -1: + self.cam.type = const.CAMERA_FREE + else: + self.cam.type = const.CAMERA_FIXED + self.cam.fixedcamid = camera_id + + self._opengl_context.set_buffer_size(width, height) + + mjv_updateScene(self._model_ptr, self._data_ptr, &self._vopt, + &self._pert, &self._cam, mjCAT_ALL, &self._scn) + + for marker_params in self._markers: + self._add_marker_to_scene(marker_params) + + mjr_render(rect, &self._scn, &self._con) + for gridpos, (text1, text2) in self._overlay.items(): + mjr_overlay(const.FONTSCALE_150, gridpos, rect, text1.encode(), text2.encode(), &self._con) + + def read_pixels(self, width, height, depth=True): + cdef mjrRect rect + rect.left = 0 + rect.bottom = 0 + rect.width = width + rect.height = height + + rgb_arr = np.zeros(3 * rect.width * rect.height, dtype=np.uint8) + depth_arr = np.zeros(rect.width * rect.height, dtype=np.float32) + cdef unsigned char[::view.contiguous] rgb_view = rgb_arr + cdef float[::view.contiguous] depth_view = depth_arr + mjr_readPixels(&rgb_view[0], &depth_view[0], rect, &self._con) + rgb_img = np.flipud(rgb_arr.reshape(rect.height, rect.width, 3)) + if depth: + depth_img = np.flipud(depth_arr.reshape(rect.height, rect.width)) + return (rgb_img, depth_img) + else: + return rgb_img + + def upload_texture(self, int tex_id): + """ Uploads given texture to the GPU. """ + self._opengl_context.make_context_current() + mjr_uploadTexture(self._model_ptr, &self._con, tex_id) + + def draw_pixels(self, np.ndarray[np.uint8_t, ndim=3] image, int left, int bottom): + """Draw an image into the OpenGL buffer.""" + cdef unsigned char[::view.contiguous] image_view = image.ravel() + cdef mjrRect viewport + viewport.left = left + viewport.bottom = bottom + viewport.width = image.shape[1] + viewport.height = image.shape[0] + mjr_drawPixels(&image_view[0], NULL, viewport, &self._con) + + def move_camera(self, int action, double reldx, double reldy): + """ Moves the camera based on mouse movements. Action is one of mjMOUSE_*. """ + mjv_moveCamera(self._model_ptr, action, reldx, reldy, &self._scn, &self._cam) + + def add_overlay(self, int gridpos, str text1, str text2): + """ Overlays text on the scene. """ + if gridpos not in self._overlay: + self._overlay[gridpos] = ["", ""] + self._overlay[gridpos][0] += text1 + "\n" + self._overlay[gridpos][1] += text2 + "\n" + + def add_marker(self, **marker_params): + self._markers.append(marker_params) + + def _add_marker_to_scene(self, marker_params): + """ Adds marker to scene, and returns the corresponding object. """ + if self._scn.ngeom >= self._scn.maxgeom: + raise RuntimeError('Ran out of geoms. maxgeom: %d' % self._scn.maxgeom) + + cdef mjvGeom *g = self._scn.geoms + self._scn.ngeom + + # default values. + g.dataid = -1 + g.objtype = const.OBJ_UNKNOWN + g.objid = -1 + g.category = const.CAT_DECOR + g.texid = -1 + g.texuniform = 0 + g.texrepeat[0] = 1 + g.texrepeat[1] = 1 + g.emission = 0 + g.specular = 0.5 + g.shininess = 0.5 + g.reflectance = 0 + g.type = const.GEOM_BOX + g.size[:] = np.ones(3) * 0.1 + g.mat[:] = np.eye(3).flatten() + g.rgba[:] = np.ones(4) + wrapped = WrapMjvGeom(g) + + for key, value in marker_params.items(): + if isinstance(value, (int, float)): + setattr(wrapped, key, value) + elif isinstance(value, (tuple, list, np.ndarray)): + attr = getattr(wrapped, key) + attr[:] = np.asarray(value).reshape(attr.shape) + elif isinstance(value, str): + assert key == "label", "Only label is a string in mjvGeom." + if value == None: + g.label[0] = 0 + else: + strncpy(g.label, value.encode(), 100) + elif hasattr(wrapped, key): + raise ValueError("mjvGeom has attr {} but type {} is invalid".format(key, type(value))) + else: + raise ValueError("mjvGeom doesn't have field %s" % key) + + self._scn.ngeom += 1 + + + def __dealloc__(self): + mjr_freeContext(&self._con) + mjv_freeScene(&self._scn) + + +class MjRenderContextOffscreen(MjRenderContext): + + def __cinit__(self, MjSim sim): + super().__init__(sim, offscreen=True) + +class MjRenderContextWindow(MjRenderContext): + + def __init__(self, MjSim sim): + super().__init__(sim, offscreen=False) + + assert isinstance(self._opengl_context, GlfwContext), ( + "Only GlfwContext supported for windowed rendering") + + @property + def window(self): + return self._opengl_context.window + + def render(self): + if self.window is None or glfw.window_should_close(self.window): + return + + glfw.make_context_current(self.window) + super().render(*glfw.get_framebuffer_size(self.window)) + glfw.swap_buffers(self.window) diff --git a/mujoco_py/mjsim.pyx b/mujoco_py/mjsim.pyx new file mode 100644 index 00000000..946e9d81 --- /dev/null +++ b/mujoco_py/mjsim.pyx @@ -0,0 +1,278 @@ +from xml.dom import minidom +from mujoco_py.utils import remove_empty_lines + + +cdef class MjSim(object): + """MjSim represents a running simulation including its state. + + Similar to Gym's ``MujocoEnv``, it internally wraps a :class:`.PyMjModel` + and a :class:`.PyMjData`. + + Parameters + ---------- + model : :class:`.PyMjModel` + The model to simulate. + data : :class:`.PyMjData` + Optional container for the simulation state. Will be created if ``None``. + nsubsteps : int + Optional number of MuJoCo steps to run for every call to :meth:`.step`. + Buffers will be swapped only once per step. + udd_callback : fn(:class:`.MjSim`) -> dict + Optional callback for user-defined dynamics. At every call to + :meth:`.step`, it receives an MjSim object ``sim`` containing the + current user-defined dynamics state in ``sim.udd_state``, and returns the + next ``udd_state`` after applying the user-defined dynamics. This is + useful e.g. for reward functions that operate over functions of historical + state. + """ + # MjRenderContext for rendering camera views. + cdef readonly list render_contexts + cdef readonly object _render_context_window + cdef readonly object _render_context_offscreen + + # MuJoCo model + cdef readonly PyMjModel model + # MuJoCo data + """ + DATAZ + """ + cdef readonly PyMjData data + # Number of substeps when calling .step + cdef readonly int nsubsteps + # User defined state. + cdef readonly dict udd_state + # User defined dynamics callback + cdef readonly object _udd_callback + # Allows to store extra information in MjSim. + cdef readonly dict extras + + def __cinit__(self, PyMjModel model, PyMjData data=None, int nsubsteps=1, + udd_callback=None): + self.nsubsteps = nsubsteps + self.model = model + if data is None: + with wrap_mujoco_warning(): + _data = mj_makeData(self.model.ptr) + if _data == NULL: + raise Exception('mj_makeData failed!') + self.data = WrapMjData(_data, self.model) + else: + self.data = data + + self.render_contexts = [] + self._render_context_offscreen = None + self._render_context_window = None + self.udd_state = None + self.udd_callback = udd_callback + self.extras = {} + + def reset(self): + """ + Resets the simulation data and clears buffers. + """ + with wrap_mujoco_warning(): + mj_resetData(self.model.ptr, self.data.ptr) + + self.udd_state = None + self.step_udd() + + def forward(self): + """ + Computes the forward kinematics. Calls ``mj_forward`` internally. + """ + with wrap_mujoco_warning(): + mj_forward(self.model.ptr, self.data.ptr) + + def step(self): + """ + Advances the simulation by calling ``mj_step``. + + If ``qpos`` or ``qvel`` have been modified directly, the user is required to call + :meth:`.forward` before :meth:`.step` if their ``udd_callback`` requires access to MuJoCo state + set during the forward dynamics. + """ + self.step_udd() + + with wrap_mujoco_warning(): + for _ in range(self.nsubsteps): + mj_step(self.model.ptr, self.data.ptr) + + def render(self, width=None, height=None, *, camera_name=None, depth=False, + mode='offscreen'): + """ + Renders view from a camera and returns image as an `numpy.ndarray`. + + Args: + - width (int): desired image width. + - height (int): desired image height. + - camera_name (str): name of camera in model. If None, the free + camera will be used. + - depth (bool): if True, also return depth buffer + + Returns: + - rgb (uint8 array): image buffer from camera + - depth (float array): depth buffer from camera (only returned + if depth=True) + """ + if camera_name is None: + camera_id = None + else: + camera_id = self.model.camera_name2id(camera_name) + + if mode == 'offscreen': + if self._render_context_offscreen is None: + render_context = MjRenderContextOffscreen(self) + else: + render_context = self._render_context_offscreen + + render_context.render( + width=width, height=height, camera_id=camera_id) + return render_context.read_pixels( + width, height, depth=depth) + elif mode == 'window': + if self._render_context_window is None: + from mujoco_py.mjviewer import MjViewer + render_context = MjViewer(self) + else: + render_context = self._render_context_window + + render_context.render() + + else: + raise ValueError("Mode must be either 'window' or 'offscreen'.") + + def add_render_context(self, render_context): + self.render_contexts.append(render_context) + if render_context.offscreen and self._render_context_offscreen is None: + self._render_context_offscreen = render_context + elif not render_context.offscreen and self._render_context_window is None: + self._render_context_window = render_context + + @property + def udd_callback(self): + return self._udd_callback + + @udd_callback.setter + def udd_callback(self, value): + self._udd_callback = value + self.udd_state = None + self.step_udd() + + def step_udd(self): + if self._udd_callback is None: + self.udd_state = {} + else: + schema_example = self.udd_state + self.udd_state = self._udd_callback(self) + # Check to make sure the udd_state has consistent keys and dimension across steps + if schema_example is not None: + keys = set(schema_example.keys()) | set(self.udd_state.keys()) + for key in keys: + assert key in schema_example, "Keys cannot be added to udd_state between steps." + assert key in self.udd_state, "Keys cannot be dropped from udd_state between steps." + if isinstance(schema_example[key], Number): + assert isinstance(self.udd_state[key], Number), \ + "Every value in udd_state must be either a number or a numpy array" + else: + assert isinstance(self.udd_state[key], np.ndarray), \ + "Every value in udd_state must be either a number or a numpy array" + assert self.udd_state[key].shape == schema_example[key].shape, \ + "Numpy array values in udd_state must keep the same dimension across steps." + + def get_state(self): + """ Returns a copy of the simulator state. """ + qpos = np.copy(self.data.qpos) + qvel = np.copy(self.data.qvel) + if self.model.na == 0: + act = None + else: + act = np.copy(self.data.act) + udd_state = copy.deepcopy(self.udd_state) + + return MjSimState(self.data.time, qpos, qvel, act, udd_state) + + def set_state(self, value): + """ + Sets the state from an MjSimState. + If the MjSimState was previously unflattened from a numpy array, consider + set_state_from_flattened, as the defensive copy is a substantial overhead + in an inner loop. + + Args: + - value (MjSimState): the desired state. + - call_forward: optionally call sim.forward(). Called by default if + the udd_callback is set. + """ + self.data.time = value.time + self.data.qpos[:] = np.copy(value.qpos) + self.data.qvel[:] = np.copy(value.qvel) + if self.model.na != 0: + self.data.act[:] = np.copy(value.act) + self.udd_state = copy.deepcopy(value.udd_state) + + def set_state_from_flattened(self, value): + """ This helper method sets the state from an array without requiring a defensive copy.""" + state = MjSimState.from_flattened(value, self) + + self.data.time = state.time + self.data.qpos[:] = state.qpos + self.data.qvel[:] = state.qvel + if self.model.na != 0: + self.data.act[:] = state.act + self.udd_state = state.udd_state + + def save(self, file, format='xml', keep_inertials=False): + """ + Saves the simulator model and state to a file as either + a MuJoCo XML or MJB file. The current state is saved as + a keyframe in the model file. This is useful for debugging + using MuJoCo's `simulate` utility. + + Note that this doesn't save the UDD-state which is + part of MjSimState, since that's not supported natively + by MuJoCo. If you want to save the model together with + the UDD-state, you should use the `get_xml` or `get_mjb` + methods on `MjModel` together with `MjSim.get_state` and + save them with e.g. pickle. + + Args: + - file (IO stream): stream to write model to. + - format: format to use (either 'xml' or 'mjb') + - keep_inertials (bool): if False, removes all + properties derived automatically for geoms by MuJoco. Note + that this removes ones that were provided by the user + as well. + """ + xml_str = self.model.get_xml() + dom = minidom.parseString(xml_str) + + mujoco_node = dom.childNodes[0] + assert mujoco_node.tagName == 'mujoco' + + keyframe_el = dom.createElement('keyframe') + key_el = dom.createElement('key') + keyframe_el.appendChild(key_el) + mujoco_node.appendChild(keyframe_el) + + def str_array(arr): + return " ".join(map(str, arr)) + + key_el.setAttribute('time', str(self.data.time)) + key_el.setAttribute('qpos', str_array(self.data.qpos)) + key_el.setAttribute('qvel', str_array(self.data.qvel)) + if self.data.act is not None: + key_el.setAttribute('act', str_array(self.data.act)) + + if not keep_inertials: + for element in dom.getElementsByTagName('inertial'): + element.parentNode.removeChild(element) + + result_xml = remove_empty_lines(dom.toprettyxml(indent=" " * 4)) + + if format == 'xml': + file.write(result_xml) + elif format == 'mjb': + new_model = load_model_from_xml(result_xml) + file.write(new_model.get_mjb()) + else: + raise ValueError("Unsupported format. Valid ones are 'xml' and 'mjb'") diff --git a/mujoco_py/mjsimpool.pyx b/mujoco_py/mjsimpool.pyx new file mode 100644 index 00000000..c96f3c8f --- /dev/null +++ b/mujoco_py/mjsimpool.pyx @@ -0,0 +1,127 @@ + +cdef class MjSimPool(object): + """ + Keeps a pool of multiple MjSims and enables stepping them quickly + in parallel. + + Parameters + ---------- + sims : list of :class:`.MjSim` + List of simulators that make up the pool. + nsubsteps: + Number of substeps to run on :meth:`.step`. The individual + simulators' ``nsubstep`` will be ignored. + """ + # Arrays of pointers to mjDatas and mjModels for fast multithreaded access + cdef mjModel **_models + cdef mjData **_datas + + """ + The :class:`.MjSim` objects that are part of the pool. + """ + cdef readonly list sims + # Number of .step substeps. + cdef readonly int nsubsteps + + def __cinit__(self, list sims, int nsubsteps=1): + self.sims = sims + self.nsubsteps = nsubsteps + self._allocate_data_pointers() + + def reset(self, nsims=None): + """ + Resets all simulations in pool. + If :attr:`.nsims` is specified, than only the first :attr:`.nsims` simulators are reset. + """ + length = self.nsims + + if nsims is not None: + if nsims > self.nsims: + raise ValueError("nsims is larger than pool size") + length = nsims + + for i in range(length): + self.sims[i].reset() + + def forward(self, nsims=None): + """ + Calls ``mj_forward`` on all simulations in parallel. + If :attr:`.nsims` is specified, than only the first :attr:`.nsims` simulator are forwarded. + """ + cdef int i + cdef int length = self.nsims + + if nsims is not None: + if nsims > self.nsims: + raise ValueError("nsims is larger than pool size") + length = nsims + + # See explanation in MjSimPool.step() for why we wrap warnings this way + with wrap_mujoco_warning(): + with nogil, parallel(): + for i in prange(length, schedule='guided'): + mj_forward(self._models[i], self._datas[i]); + + def step(self, nsims=None): + """ + Calls ``mj_step`` on all simulations in parallel, with ``nsubsteps`` as + specified when the pool was created. + + If :attr:`.nsims` is specified, than only the first :attr:`.nsims` simulator are stepped. + """ + cdef int i, j + cdef int length = self.nsims + + if nsims is not None: + if nsims > self.nsims: + raise ValueError("nsims is larger than pool size") + length = nsims + + for sim in self.sims[:length]: + sim.step_udd() + + # Wrapping these calls to mj_step is tricky, since they're parallelized + # and can't access the GIL or global python objects. + # Because we expect to have fatal warnings, we'll just wrap the entire + # section, and if any call ends up setting an exception we'll raise. + with wrap_mujoco_warning(): + with nogil, parallel(): + for i in prange(length, schedule='guided'): + for j in range(self.nsubsteps): + mj_step(self._models[i], self._datas[i]); + + @property + def nsims(self): + """ + Number of simulations in the pool. + """ + return len(self.sims) + + @staticmethod + def create_from_sim(sim, nsims): + """ + Create an :class:`.MjSimPool` by cloning the provided ``sim`` a total of ``nsims`` times. + Returns the created :class:`.MjSimPool`. + + Parameters + ---------- + sim : :class:`.MjSim` + The prototype to clone. + nsims : int + Number of clones to create. + """ + sims = [MjSim(sim.model, udd_callback=sim.udd_callback) + for _ in range(nsims)] + return MjSimPool(sims, nsubsteps=sim.nsubsteps) + + cdef _allocate_data_pointers(self): + self._models = malloc(self.nsims * sizeof(mjModel*)) + self._datas = malloc(self.nsims * sizeof(mjData*)) + for i in range(self.nsims): + sim = self.sims[i] + self._models[i] = sim.model.ptr + self._datas[i] = sim.data.ptr + + def __dealloc__(self): + free(self._datas) + free(self._models) diff --git a/mujoco_py/mjsimstate.pyx b/mujoco_py/mjsimstate.pyx new file mode 100644 index 00000000..f3b66b04 --- /dev/null +++ b/mujoco_py/mjsimstate.pyx @@ -0,0 +1,89 @@ + +class MjSimState(namedtuple('SimStateBase', 'time qpos qvel act udd_state')): + """Represents a snapshot of the simulator's state. + + This includes time, qpos, qvel, act, and udd_state. + """ + __slots__ = () + + # need to implement this because numpy doesn't support == on arrays + def __eq__(self, other): + if not isinstance(other, self.__class__): + return NotImplemented + + if set(self.udd_state.keys()) != set(other.udd_state.keys()): + return False + + for k in self.udd_state.keys(): + if isinstance(self.udd_state[k], Number) and self.udd_state[k] != other.udd_state[k]: + return False + elif not np.array_equal(self.udd_state[k], other.udd_state[k]): + return False + + return (self.time == other.time and + np.array_equal(self.qpos, other.qpos) and + np.array_equal(self.qvel, other.qvel) and + np.array_equal(self.act, other.act)) + + def __ne__(self, other): + return not self.__eq__(other) + + def flatten(self): + """ Flattens a state into a numpy array of numbers.""" + if self.act is None: + act = np.empty(0) + else: + act = self.act + state_tuple = ([self.time], self.qpos, self.qvel, act, + MjSimState._flatten_dict(self.udd_state)) + return np.concatenate(state_tuple) + + @staticmethod + def _flatten_dict(d): + a = [] + for k in sorted(d.keys()): + v = d[k] + if isinstance(v, Number): + a.extend([v]) + else: + a.extend(v.ravel()) + + return np.array(a) + + @staticmethod + def from_flattened(array, sim): + idx_time = 0 + idx_qpos = idx_time + 1 + idx_qvel = idx_qpos + sim.model.nq + idx_act = idx_qvel + sim.model.nv + idx_udd = idx_act + sim.model.na + + time = array[idx_time] + qpos = array[idx_qpos:idx_qpos + sim.model.nq] + qvel = array[idx_qvel:idx_qvel + sim.model.nv] + if sim.model.na == 0: + act = None + else: + act = array[idx_act:idx_act + sim.model.na] + flat_udd_state = array[idx_udd:] + udd_state = MjSimState._unflatten_dict(flat_udd_state, sim.udd_state) + + return MjSimState(time, qpos, qvel, act, udd_state) + + @staticmethod + def _unflatten_dict(a, schema_example): + d = {} + idx = 0 + for k in sorted(schema_example.keys()): + schema_val = schema_example[k] + if isinstance(schema_val, Number): + val = a[idx] + idx += 1 + d[k] = val + else: + assert isinstance(schema_val, np.ndarray) + val_array = a[idx:idx+schema_val.size] + idx += schema_val.size + val = np.array(val_array).reshape(schema_val.shape) + d[k] = val + return d diff --git a/mujoco_py/mjtypes.py b/mujoco_py/mjtypes.py deleted file mode 100644 index fc5cec48..00000000 --- a/mujoco_py/mjtypes.py +++ /dev/null @@ -1,6080 +0,0 @@ - -# AUTO GENERATED. DO NOT CHANGE! -from ctypes import * -import numpy as np - -class MJCONTACT(Structure): - - _fields_ = [ - ("dist", c_double), - ("pos", c_double * 3), - ("frame", c_double * 9), - ("includemargin", c_double), - ("friction", c_double * 5), - ("solref", c_double * 2), - ("solimp", c_double * 3), - ("mu", c_double), - ("coef", c_double * 5), - ("zone", c_int), - ("dim", c_int), - ("geom1", c_int), - ("geom2", c_int), - ("exclude", c_int), - ("efc_address", c_int), - ] - -class MJRRECT(Structure): - - _fields_ = [ - ("left", c_int), - ("bottom", c_int), - ("width", c_int), - ("height", c_int), - ] - -class MJVCAMERAPOSE(Structure): - - _fields_ = [ - ("head_pos", c_double * 3), - ("head_right", c_double * 3), - ("window_pos", c_double * 3), - ("window_right", c_double * 3), - ("window_up", c_double * 3), - ("window_normal", c_double * 3), - ("window_size", c_double * 2), - ("scale", c_double), - ("ipd", c_double), - ] - -class MJROPTION(Structure): - - _fields_ = [ - ("stereo", c_ubyte), - ("flags", c_ubyte * 6), - ] - -class MJRCONTEXT(Structure): - - _fields_ = [ - ("linewidth", c_float), - ("znear", c_float), - ("zfar", c_float), - ("shadowclip", c_float), - ("shadowscale", c_float), - ("shadowsize", c_int), - ("offwidth", c_uint), - ("offheight", c_uint), - ("offFBO", c_uint), - ("offColor", c_uint), - ("offDepthStencil", c_uint), - ("shadowFBO", c_uint), - ("shadowTex", c_uint), - ("ntexture", c_uint), - ("texture", c_int * 100), - ("textureType", c_int * 100), - ("basePlane", c_uint), - ("baseMesh", c_uint), - ("baseHField", c_uint), - ("baseBuiltin", c_uint), - ("baseFontNormal", c_uint), - ("baseFontBack", c_uint), - ("baseFontBig", c_uint), - ("rangePlane", c_int), - ("rangeMesh", c_int), - ("rangeHField", c_int), - ("rangeBuiltin", c_int), - ("rangeFont", c_int), - ("charWidth", c_int * 127), - ("charWidthBig", c_int * 127), - ("charHeight", c_int), - ("charHeightBig", c_int), - ("glewInitialized", c_int), - ] - -class MJVCAMERA(Structure): - - _fields_ = [ - ("fovy", c_double), - ("camid", c_int), - ("trackbodyid", c_int), - ("lookat", c_double * 3), - ("azimuth", c_double), - ("elevation", c_double), - ("distance", c_double), - ("pose", MJVCAMERAPOSE), - ("VR", c_ubyte), - ] - -class MJVOPTION(Structure): - - _fields_ = [ - ("label", c_int), - ("frame", c_int), - ("geomgroup", c_ubyte * 5), - ("sitegroup", c_ubyte * 5), - ("flags", c_ubyte * 18), - ] - -class MJVGEOM(Structure): - - _fields_ = [ - ("type", c_int), - ("dataid", c_int), - ("objtype", c_int), - ("objid", c_int), - ("category", c_int), - ("texid", c_int), - ("texuniform", c_int), - ("texrepeat", c_float * 2), - ("size", c_float * 3), - ("pos", c_float * 3), - ("mat", c_float * 9), - ("rgba", c_float * 4), - ("emission", c_float), - ("specular", c_float), - ("shininess", c_float), - ("reflectance", c_float), - ("label", c_char * 100), - ("camdist", c_float), - ("rbound", c_float), - ("transparent", c_ubyte), - ] - -class MJVLIGHT(Structure): - - _fields_ = [ - ("pos", c_float * 3), - ("dir", c_float * 3), - ("attenuation", c_float * 3), - ("cutoff", c_float), - ("exponent", c_float), - ("ambient", c_float * 3), - ("diffuse", c_float * 3), - ("specular", c_float * 3), - ("headlight", c_ubyte), - ("directional", c_ubyte), - ("castshadow", c_ubyte), - ] - -class MJVOBJECTS(Structure): - - _fields_ = [ - ("nlight", c_int), - ("ngeom", c_int), - ("maxgeom", c_int), - ("lights", MJVLIGHT * 8), - ("geoms", POINTER(MJVGEOM)), - ("geomorder", POINTER(c_int)), - ] - -class MJOPTION(Structure): - - _fields_ = [ - ("timestep", c_double), - ("apirate", c_double), - ("tolerance", c_double), - ("impratio", c_double), - ("gravity", c_double * 3), - ("wind", c_double * 3), - ("magnetic", c_double * 3), - ("density", c_double), - ("viscosity", c_double), - ("o_margin", c_double), - ("o_solref", c_double * 2), - ("o_solimp", c_double * 3), - ("mpr_tolerance", c_double), - ("mpr_iterations", c_int), - ("integrator", c_int), - ("collision", c_int), - ("impedance", c_int), - ("reference", c_int), - ("solver", c_int), - ("iterations", c_int), - ("disableflags", c_int), - ("enableflags", c_int), - ] - -class MJVISUAL(Structure): - - class ANON_GLOBAL(Structure): - - _fields_ = [ - ("fovy", c_float), - ("ipd", c_float), - ("linewidth", c_float), - ("glow", c_float), - ("offwidth", c_int), - ("offheight", c_int), - ] - - class ANON_QUALITY(Structure): - - _fields_ = [ - ("shadowsize", c_int), - ("numSlices", c_int), - ("numStacks", c_int), - ("numArrows", c_int), - ("numQuads", c_int), - ] - - class ANON_HEADLIGHT(Structure): - - _fields_ = [ - ("ambient", c_float * 3), - ("diffuse", c_float * 3), - ("specular", c_float * 3), - ("active", c_int), - ] - - class ANON_MAP(Structure): - - _fields_ = [ - ("stiffness", c_float), - ("force", c_float), - ("torque", c_float), - ("alpha", c_float), - ("fogstart", c_float), - ("fogend", c_float), - ("znear", c_float), - ("zfar", c_float), - ("shadowclip", c_float), - ("shadowscale", c_float), - ] - - class ANON_SCALE(Structure): - - _fields_ = [ - ("forcewidth", c_float), - ("contactwidth", c_float), - ("contactheight", c_float), - ("connect", c_float), - ("com", c_float), - ("camera", c_float), - ("light", c_float), - ("selectpoint", c_float), - ("jointlength", c_float), - ("jointwidth", c_float), - ("actuatorlength", c_float), - ("actuatorwidth", c_float), - ("framelength", c_float), - ("framewidth", c_float), - ("constraint", c_float), - ("slidercrank", c_float), - ] - - class ANON_RGBA(Structure): - - _fields_ = [ - ("fog", c_float * 4), - ("force", c_float * 4), - ("inertia", c_float * 4), - ("joint", c_float * 4), - ("actuator", c_float * 4), - ("com", c_float * 4), - ("camera", c_float * 4), - ("light", c_float * 4), - ("selectpoint", c_float * 4), - ("connect", c_float * 4), - ("contactpoint", c_float * 4), - ("contactforce", c_float * 4), - ("contactfriction", c_float * 4), - ("contacttorque", c_float * 4), - ("constraint", c_float * 4), - ("slidercrank", c_float * 4), - ("crankbroken", c_float * 4), - ] - _fields_ = [ - ("global_", ANON_GLOBAL), - ("quality", ANON_QUALITY), - ("headlight", ANON_HEADLIGHT), - ("map_", ANON_MAP), - ("scale", ANON_SCALE), - ("rgba", ANON_RGBA), - ] - -class MJSTATISTIC(Structure): - - _fields_ = [ - ("meanmass", c_double), - ("meansize", c_double), - ("extent", c_double), - ("center", c_double * 3), - ] - -class MJDATA(Structure): - - _fields_ = [ - ("nstack", c_int), - ("nbuffer", c_int), - ("pstack", c_int), - ("maxstackuse", c_int), - ("ne", c_int), - ("nf", c_int), - ("nefc", c_int), - ("ncon", c_int), - ("nwarning", c_int * 8), - ("warning_info", c_int * 8), - ("timer_duration", c_double * 14), - ("timer_ncall", c_double * 14), - ("mocaptime", c_double * 3), - ("time", c_double), - ("energy", c_double * 2), - ("solverstat", c_double * 4), - ("solvertrace", c_double * 200), - ("buffer", POINTER(c_ubyte)), - ("stack", POINTER(c_double)), - ("qpos", POINTER(c_double)), - ("qvel", POINTER(c_double)), - ("act", POINTER(c_double)), - ("ctrl", POINTER(c_double)), - ("qfrc_applied", POINTER(c_double)), - ("xfrc_applied", POINTER(c_double)), - ("qacc", POINTER(c_double)), - ("act_dot", POINTER(c_double)), - ("mocap_pos", POINTER(c_double)), - ("mocap_quat", POINTER(c_double)), - ("userdata", POINTER(c_double)), - ("sensordata", POINTER(c_double)), - ("xpos", POINTER(c_double)), - ("xquat", POINTER(c_double)), - ("xmat", POINTER(c_double)), - ("xipos", POINTER(c_double)), - ("ximat", POINTER(c_double)), - ("xanchor", POINTER(c_double)), - ("xaxis", POINTER(c_double)), - ("geom_xpos", POINTER(c_double)), - ("geom_xmat", POINTER(c_double)), - ("site_xpos", POINTER(c_double)), - ("site_xmat", POINTER(c_double)), - ("cam_xpos", POINTER(c_double)), - ("cam_xmat", POINTER(c_double)), - ("light_xpos", POINTER(c_double)), - ("light_xdir", POINTER(c_double)), - ("com_subtree", POINTER(c_double)), - ("cdof", POINTER(c_double)), - ("cinert", POINTER(c_double)), - ("ten_wrapadr", POINTER(c_int)), - ("ten_wrapnum", POINTER(c_int)), - ("ten_length", POINTER(c_double)), - ("ten_moment", POINTER(c_double)), - ("wrap_obj", POINTER(c_int)), - ("wrap_xpos", POINTER(c_double)), - ("actuator_length", POINTER(c_double)), - ("actuator_moment", POINTER(c_double)), - ("crb", POINTER(c_double)), - ("qM", POINTER(c_double)), - ("qLD", POINTER(c_double)), - ("qLDiagInv", POINTER(c_double)), - ("qLDiagSqrtInv", POINTER(c_double)), - ("contact", POINTER(MJCONTACT)), - ("efc_type", POINTER(c_int)), - ("efc_id", POINTER(c_int)), - ("efc_rownnz", POINTER(c_int)), - ("efc_rowadr", POINTER(c_int)), - ("efc_colind", POINTER(c_int)), - ("efc_rownnz_T", POINTER(c_int)), - ("efc_rowadr_T", POINTER(c_int)), - ("efc_colind_T", POINTER(c_int)), - ("efc_solref", POINTER(c_double)), - ("efc_solimp", POINTER(c_double)), - ("efc_margin", POINTER(c_double)), - ("efc_frictionloss", POINTER(c_double)), - ("efc_pos", POINTER(c_double)), - ("efc_J", POINTER(c_double)), - ("efc_J_T", POINTER(c_double)), - ("efc_diagApprox", POINTER(c_double)), - ("efc_D", POINTER(c_double)), - ("efc_R", POINTER(c_double)), - ("efc_AR", POINTER(c_double)), - ("e_ARchol", POINTER(c_double)), - ("fc_e_rect", POINTER(c_double)), - ("fc_AR", POINTER(c_double)), - ("ten_velocity", POINTER(c_double)), - ("actuator_velocity", POINTER(c_double)), - ("cvel", POINTER(c_double)), - ("cdof_dot", POINTER(c_double)), - ("qfrc_bias", POINTER(c_double)), - ("qfrc_passive", POINTER(c_double)), - ("efc_vel", POINTER(c_double)), - ("efc_aref", POINTER(c_double)), - ("actuator_force", POINTER(c_double)), - ("qfrc_actuator", POINTER(c_double)), - ("qfrc_unc", POINTER(c_double)), - ("qacc_unc", POINTER(c_double)), - ("efc_b", POINTER(c_double)), - ("fc_b", POINTER(c_double)), - ("efc_force", POINTER(c_double)), - ("qfrc_constraint", POINTER(c_double)), - ("qfrc_inverse", POINTER(c_double)), - ("cacc", POINTER(c_double)), - ("cfrc_int", POINTER(c_double)), - ("cfrc_ext", POINTER(c_double)), - ] - -class MJMODEL(Structure): - - _fields_ = [ - ("nq", c_int), - ("nv", c_int), - ("nu", c_int), - ("na", c_int), - ("nbody", c_int), - ("njnt", c_int), - ("ngeom", c_int), - ("nsite", c_int), - ("ncam", c_int), - ("nlight", c_int), - ("nmesh", c_int), - ("nmeshvert", c_int), - ("nmeshface", c_int), - ("nmeshgraph", c_int), - ("nhfield", c_int), - ("nhfielddata", c_int), - ("ntex", c_int), - ("ntexdata", c_int), - ("nmat", c_int), - ("npair", c_int), - ("nexclude", c_int), - ("neq", c_int), - ("ntendon", c_int), - ("nwrap", c_int), - ("nsensor", c_int), - ("nnumeric", c_int), - ("nnumericdata", c_int), - ("ntext", c_int), - ("ntextdata", c_int), - ("nkey", c_int), - ("nuser_body", c_int), - ("nuser_jnt", c_int), - ("nuser_geom", c_int), - ("nuser_site", c_int), - ("nuser_tendon", c_int), - ("nuser_actuator", c_int), - ("nuser_sensor", c_int), - ("nnames", c_int), - ("nM", c_int), - ("nemax", c_int), - ("njmax", c_int), - ("nconmax", c_int), - ("nstack", c_int), - ("nuserdata", c_int), - ("nmocap", c_int), - ("nsensordata", c_int), - ("nbuffer", c_int), - ("opt", MJOPTION), - ("vis", MJVISUAL), - ("stat", MJSTATISTIC), - ("buffer", POINTER(c_ubyte)), - ("qpos0", POINTER(c_double)), - ("qpos_spring", POINTER(c_double)), - ("body_parentid", POINTER(c_int)), - ("body_rootid", POINTER(c_int)), - ("body_weldid", POINTER(c_int)), - ("body_mocapid", POINTER(c_int)), - ("body_jntnum", POINTER(c_int)), - ("body_jntadr", POINTER(c_int)), - ("body_dofnum", POINTER(c_int)), - ("body_dofadr", POINTER(c_int)), - ("body_geomnum", POINTER(c_int)), - ("body_geomadr", POINTER(c_int)), - ("body_pos", POINTER(c_double)), - ("body_quat", POINTER(c_double)), - ("body_ipos", POINTER(c_double)), - ("body_iquat", POINTER(c_double)), - ("body_mass", POINTER(c_double)), - ("body_inertia", POINTER(c_double)), - ("body_invweight0", POINTER(c_double)), - ("body_user", POINTER(c_double)), - ("jnt_type", POINTER(c_int)), - ("jnt_qposadr", POINTER(c_int)), - ("jnt_dofadr", POINTER(c_int)), - ("jnt_bodyid", POINTER(c_int)), - ("jnt_limited", POINTER(c_ubyte)), - ("jnt_solref", POINTER(c_double)), - ("jnt_solimp", POINTER(c_double)), - ("jnt_pos", POINTER(c_double)), - ("jnt_axis", POINTER(c_double)), - ("jnt_stiffness", POINTER(c_double)), - ("jnt_range", POINTER(c_double)), - ("jnt_margin", POINTER(c_double)), - ("jnt_user", POINTER(c_double)), - ("dof_bodyid", POINTER(c_int)), - ("dof_jntid", POINTER(c_int)), - ("dof_parentid", POINTER(c_int)), - ("dof_Madr", POINTER(c_int)), - ("dof_frictional", POINTER(c_ubyte)), - ("dof_solref", POINTER(c_double)), - ("dof_solimp", POINTER(c_double)), - ("dof_frictionloss", POINTER(c_double)), - ("dof_armature", POINTER(c_double)), - ("dof_damping", POINTER(c_double)), - ("dof_invweight0", POINTER(c_double)), - ("geom_type", POINTER(c_int)), - ("geom_contype", POINTER(c_int)), - ("geom_conaffinity", POINTER(c_int)), - ("geom_condim", POINTER(c_int)), - ("geom_bodyid", POINTER(c_int)), - ("geom_dataid", POINTER(c_int)), - ("geom_matid", POINTER(c_int)), - ("geom_group", POINTER(c_int)), - ("geom_solmix", POINTER(c_double)), - ("geom_solref", POINTER(c_double)), - ("geom_solimp", POINTER(c_double)), - ("geom_size", POINTER(c_double)), - ("geom_rbound", POINTER(c_double)), - ("geom_pos", POINTER(c_double)), - ("geom_quat", POINTER(c_double)), - ("geom_friction", POINTER(c_double)), - ("geom_margin", POINTER(c_double)), - ("geom_gap", POINTER(c_double)), - ("geom_user", POINTER(c_double)), - ("geom_rgba", POINTER(c_float)), - ("site_type", POINTER(c_int)), - ("site_bodyid", POINTER(c_int)), - ("site_matid", POINTER(c_int)), - ("site_group", POINTER(c_int)), - ("site_size", POINTER(c_double)), - ("site_pos", POINTER(c_double)), - ("site_quat", POINTER(c_double)), - ("site_user", POINTER(c_double)), - ("site_rgba", POINTER(c_float)), - ("cam_mode", POINTER(c_int)), - ("cam_bodyid", POINTER(c_int)), - ("cam_targetbodyid", POINTER(c_int)), - ("cam_pos", POINTER(c_double)), - ("cam_quat", POINTER(c_double)), - ("cam_poscom0", POINTER(c_double)), - ("cam_pos0", POINTER(c_double)), - ("cam_mat0", POINTER(c_double)), - ("cam_fovy", POINTER(c_double)), - ("cam_ipd", POINTER(c_double)), - ("light_mode", POINTER(c_int)), - ("light_bodyid", POINTER(c_int)), - ("light_targetbodyid", POINTER(c_int)), - ("light_directional", POINTER(c_ubyte)), - ("light_castshadow", POINTER(c_ubyte)), - ("light_active", POINTER(c_ubyte)), - ("light_pos", POINTER(c_double)), - ("light_dir", POINTER(c_double)), - ("light_poscom0", POINTER(c_double)), - ("light_pos0", POINTER(c_double)), - ("light_dir0", POINTER(c_double)), - ("light_attenuation", POINTER(c_float)), - ("light_cutoff", POINTER(c_float)), - ("light_exponent", POINTER(c_float)), - ("light_ambient", POINTER(c_float)), - ("light_diffuse", POINTER(c_float)), - ("light_specular", POINTER(c_float)), - ("mesh_faceadr", POINTER(c_int)), - ("mesh_facenum", POINTER(c_int)), - ("mesh_vertadr", POINTER(c_int)), - ("mesh_vertnum", POINTER(c_int)), - ("mesh_graphadr", POINTER(c_int)), - ("mesh_vert", POINTER(c_float)), - ("mesh_normal", POINTER(c_float)), - ("mesh_face", POINTER(c_int)), - ("mesh_graph", POINTER(c_int)), - ("hfield_size", POINTER(c_double)), - ("hfield_nrow", POINTER(c_int)), - ("hfield_ncol", POINTER(c_int)), - ("hfield_adr", POINTER(c_int)), - ("hfield_data", POINTER(c_float)), - ("tex_type", POINTER(c_int)), - ("tex_height", POINTER(c_int)), - ("tex_width", POINTER(c_int)), - ("tex_adr", POINTER(c_int)), - ("tex_rgb", POINTER(c_ubyte)), - ("mat_texid", POINTER(c_int)), - ("mat_texuniform", POINTER(c_ubyte)), - ("mat_texrepeat", POINTER(c_float)), - ("mat_emission", POINTER(c_float)), - ("mat_specular", POINTER(c_float)), - ("mat_shininess", POINTER(c_float)), - ("mat_reflectance", POINTER(c_float)), - ("mat_rgba", POINTER(c_float)), - ("pair_dim", POINTER(c_int)), - ("pair_geom1", POINTER(c_int)), - ("pair_geom2", POINTER(c_int)), - ("pair_signature", POINTER(c_int)), - ("pair_solref", POINTER(c_double)), - ("pair_solimp", POINTER(c_double)), - ("pair_margin", POINTER(c_double)), - ("pair_gap", POINTER(c_double)), - ("pair_friction", POINTER(c_double)), - ("exclude_signature", POINTER(c_int)), - ("eq_type", POINTER(c_int)), - ("eq_obj1id", POINTER(c_int)), - ("eq_obj2id", POINTER(c_int)), - ("eq_active", POINTER(c_ubyte)), - ("eq_solref", POINTER(c_double)), - ("eq_solimp", POINTER(c_double)), - ("eq_data", POINTER(c_double)), - ("tendon_adr", POINTER(c_int)), - ("tendon_num", POINTER(c_int)), - ("tendon_matid", POINTER(c_int)), - ("tendon_limited", POINTER(c_ubyte)), - ("tendon_frictional", POINTER(c_ubyte)), - ("tendon_width", POINTER(c_double)), - ("tendon_solref_lim", POINTER(c_double)), - ("tendon_solimp_lim", POINTER(c_double)), - ("tendon_solref_fri", POINTER(c_double)), - ("tendon_solimp_fri", POINTER(c_double)), - ("tendon_range", POINTER(c_double)), - ("tendon_margin", POINTER(c_double)), - ("tendon_stiffness", POINTER(c_double)), - ("tendon_damping", POINTER(c_double)), - ("tendon_frictionloss", POINTER(c_double)), - ("tendon_lengthspring", POINTER(c_double)), - ("tendon_length0", POINTER(c_double)), - ("tendon_invweight0", POINTER(c_double)), - ("tendon_user", POINTER(c_double)), - ("tendon_rgba", POINTER(c_float)), - ("wrap_type", POINTER(c_int)), - ("wrap_objid", POINTER(c_int)), - ("wrap_prm", POINTER(c_double)), - ("actuator_trntype", POINTER(c_int)), - ("actuator_dyntype", POINTER(c_int)), - ("actuator_gaintype", POINTER(c_int)), - ("actuator_biastype", POINTER(c_int)), - ("actuator_trnid", POINTER(c_int)), - ("actuator_ctrllimited", POINTER(c_ubyte)), - ("actuator_forcelimited", POINTER(c_ubyte)), - ("actuator_dynprm", POINTER(c_double)), - ("actuator_gainprm", POINTER(c_double)), - ("actuator_biasprm", POINTER(c_double)), - ("actuator_ctrlrange", POINTER(c_double)), - ("actuator_forcerange", POINTER(c_double)), - ("actuator_gear", POINTER(c_double)), - ("actuator_cranklength", POINTER(c_double)), - ("actuator_invweight0", POINTER(c_double)), - ("actuator_length0", POINTER(c_double)), - ("actuator_lengthrange", POINTER(c_double)), - ("actuator_user", POINTER(c_double)), - ("sensor_type", POINTER(c_int)), - ("sensor_objid", POINTER(c_int)), - ("sensor_dim", POINTER(c_int)), - ("sensor_adr", POINTER(c_int)), - ("sensor_scale", POINTER(c_double)), - ("sensor_user", POINTER(c_double)), - ("numeric_adr", POINTER(c_int)), - ("numeric_size", POINTER(c_int)), - ("numeric_data", POINTER(c_double)), - ("text_adr", POINTER(c_int)), - ("text_data", POINTER(c_char)), - ("key_time", POINTER(c_double)), - ("key_qpos", POINTER(c_double)), - ("key_qvel", POINTER(c_double)), - ("key_act", POINTER(c_double)), - ("name_bodyadr", POINTER(c_int)), - ("name_jntadr", POINTER(c_int)), - ("name_geomadr", POINTER(c_int)), - ("name_siteadr", POINTER(c_int)), - ("name_camadr", POINTER(c_int)), - ("name_lightadr", POINTER(c_int)), - ("name_meshadr", POINTER(c_int)), - ("name_hfieldadr", POINTER(c_int)), - ("name_texadr", POINTER(c_int)), - ("name_matadr", POINTER(c_int)), - ("name_eqadr", POINTER(c_int)), - ("name_tendonadr", POINTER(c_int)), - ("name_actuatoradr", POINTER(c_int)), - ("name_sensoradr", POINTER(c_int)), - ("name_numericadr", POINTER(c_int)), - ("name_textadr", POINTER(c_int)), - ("names", POINTER(c_char)), - ] - -class MjContactWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def dist(self): - return self._wrapped.contents.dist - - @dist.setter - def dist(self, value): - self._wrapped.contents.dist = value - - @property - def pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pos, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @pos.setter - def pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.pos, val_ptr, 3 * sizeof(c_double)) - - @property - def frame(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.frame, dtype=np.double, count=(9)), (9, )) - arr.setflags(write=False) - return arr - - @frame.setter - def frame(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.frame, val_ptr, 9 * sizeof(c_double)) - - @property - def includemargin(self): - return self._wrapped.contents.includemargin - - @includemargin.setter - def includemargin(self, value): - self._wrapped.contents.includemargin = value - - @property - def friction(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.friction, dtype=np.double, count=(5)), (5, )) - arr.setflags(write=False) - return arr - - @friction.setter - def friction(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.friction, val_ptr, 5 * sizeof(c_double)) - - @property - def solref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.solref, dtype=np.double, count=(2)), (2, )) - arr.setflags(write=False) - return arr - - @solref.setter - def solref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.solref, val_ptr, 2 * sizeof(c_double)) - - @property - def solimp(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.solimp, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @solimp.setter - def solimp(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.solimp, val_ptr, 3 * sizeof(c_double)) - - @property - def mu(self): - return self._wrapped.contents.mu - - @mu.setter - def mu(self, value): - self._wrapped.contents.mu = value - - @property - def coef(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.coef, dtype=np.double, count=(5)), (5, )) - arr.setflags(write=False) - return arr - - @coef.setter - def coef(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.coef, val_ptr, 5 * sizeof(c_double)) - - @property - def zone(self): - return self._wrapped.contents.zone - - @zone.setter - def zone(self, value): - self._wrapped.contents.zone = value - - @property - def dim(self): - return self._wrapped.contents.dim - - @dim.setter - def dim(self, value): - self._wrapped.contents.dim = value - - @property - def geom1(self): - return self._wrapped.contents.geom1 - - @geom1.setter - def geom1(self, value): - self._wrapped.contents.geom1 = value - - @property - def geom2(self): - return self._wrapped.contents.geom2 - - @geom2.setter - def geom2(self, value): - self._wrapped.contents.geom2 = value - - @property - def exclude(self): - return self._wrapped.contents.exclude - - @exclude.setter - def exclude(self, value): - self._wrapped.contents.exclude = value - - @property - def efc_address(self): - return self._wrapped.contents.efc_address - - @efc_address.setter - def efc_address(self, value): - self._wrapped.contents.efc_address = value - -class MjrRectWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def left(self): - return self._wrapped.contents.left - - @left.setter - def left(self, value): - self._wrapped.contents.left = value - - @property - def bottom(self): - return self._wrapped.contents.bottom - - @bottom.setter - def bottom(self, value): - self._wrapped.contents.bottom = value - - @property - def width(self): - return self._wrapped.contents.width - - @width.setter - def width(self, value): - self._wrapped.contents.width = value - - @property - def height(self): - return self._wrapped.contents.height - - @height.setter - def height(self, value): - self._wrapped.contents.height = value - -class MjvCameraPoseWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def head_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.head_pos, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @head_pos.setter - def head_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.head_pos, val_ptr, 3 * sizeof(c_double)) - - @property - def head_right(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.head_right, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @head_right.setter - def head_right(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.head_right, val_ptr, 3 * sizeof(c_double)) - - @property - def window_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.window_pos, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @window_pos.setter - def window_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.window_pos, val_ptr, 3 * sizeof(c_double)) - - @property - def window_right(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.window_right, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @window_right.setter - def window_right(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.window_right, val_ptr, 3 * sizeof(c_double)) - - @property - def window_up(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.window_up, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @window_up.setter - def window_up(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.window_up, val_ptr, 3 * sizeof(c_double)) - - @property - def window_normal(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.window_normal, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @window_normal.setter - def window_normal(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.window_normal, val_ptr, 3 * sizeof(c_double)) - - @property - def window_size(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.window_size, dtype=np.double, count=(2)), (2, )) - arr.setflags(write=False) - return arr - - @window_size.setter - def window_size(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.window_size, val_ptr, 2 * sizeof(c_double)) - - @property - def scale(self): - return self._wrapped.contents.scale - - @scale.setter - def scale(self, value): - self._wrapped.contents.scale = value - - @property - def ipd(self): - return self._wrapped.contents.ipd - - @ipd.setter - def ipd(self, value): - self._wrapped.contents.ipd = value - -class MjrOptionWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def stereo(self): - return self._wrapped.contents.stereo - - @stereo.setter - def stereo(self, value): - self._wrapped.contents.stereo = value - - @property - def flags(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.flags, dtype=np.uint8, count=(6)), (6, )) - arr.setflags(write=False) - return arr - - @flags.setter - def flags(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.flags, val_ptr, 6 * sizeof(c_ubyte)) - -class MjrContextWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def linewidth(self): - return self._wrapped.contents.linewidth - - @linewidth.setter - def linewidth(self, value): - self._wrapped.contents.linewidth = value - - @property - def znear(self): - return self._wrapped.contents.znear - - @znear.setter - def znear(self, value): - self._wrapped.contents.znear = value - - @property - def zfar(self): - return self._wrapped.contents.zfar - - @zfar.setter - def zfar(self, value): - self._wrapped.contents.zfar = value - - @property - def shadowclip(self): - return self._wrapped.contents.shadowclip - - @shadowclip.setter - def shadowclip(self, value): - self._wrapped.contents.shadowclip = value - - @property - def shadowscale(self): - return self._wrapped.contents.shadowscale - - @shadowscale.setter - def shadowscale(self, value): - self._wrapped.contents.shadowscale = value - - @property - def shadowsize(self): - return self._wrapped.contents.shadowsize - - @shadowsize.setter - def shadowsize(self, value): - self._wrapped.contents.shadowsize = value - - @property - def offwidth(self): - return self._wrapped.contents.offwidth - - @offwidth.setter - def offwidth(self, value): - self._wrapped.contents.offwidth = value - - @property - def offheight(self): - return self._wrapped.contents.offheight - - @offheight.setter - def offheight(self, value): - self._wrapped.contents.offheight = value - - @property - def offFBO(self): - return self._wrapped.contents.offFBO - - @offFBO.setter - def offFBO(self, value): - self._wrapped.contents.offFBO = value - - @property - def offColor(self): - return self._wrapped.contents.offColor - - @offColor.setter - def offColor(self, value): - self._wrapped.contents.offColor = value - - @property - def offDepthStencil(self): - return self._wrapped.contents.offDepthStencil - - @offDepthStencil.setter - def offDepthStencil(self, value): - self._wrapped.contents.offDepthStencil = value - - @property - def shadowFBO(self): - return self._wrapped.contents.shadowFBO - - @shadowFBO.setter - def shadowFBO(self, value): - self._wrapped.contents.shadowFBO = value - - @property - def shadowTex(self): - return self._wrapped.contents.shadowTex - - @shadowTex.setter - def shadowTex(self, value): - self._wrapped.contents.shadowTex = value - - @property - def ntexture(self): - return self._wrapped.contents.ntexture - - @ntexture.setter - def ntexture(self, value): - self._wrapped.contents.ntexture = value - - @property - def texture(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.texture, dtype=np.int, count=(100)), (100, )) - arr.setflags(write=False) - return arr - - @texture.setter - def texture(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.texture, val_ptr, 100 * sizeof(c_int)) - - @property - def textureType(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.textureType, dtype=np.int, count=(100)), (100, )) - arr.setflags(write=False) - return arr - - @textureType.setter - def textureType(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.textureType, val_ptr, 100 * sizeof(c_int)) - - @property - def basePlane(self): - return self._wrapped.contents.basePlane - - @basePlane.setter - def basePlane(self, value): - self._wrapped.contents.basePlane = value - - @property - def baseMesh(self): - return self._wrapped.contents.baseMesh - - @baseMesh.setter - def baseMesh(self, value): - self._wrapped.contents.baseMesh = value - - @property - def baseHField(self): - return self._wrapped.contents.baseHField - - @baseHField.setter - def baseHField(self, value): - self._wrapped.contents.baseHField = value - - @property - def baseBuiltin(self): - return self._wrapped.contents.baseBuiltin - - @baseBuiltin.setter - def baseBuiltin(self, value): - self._wrapped.contents.baseBuiltin = value - - @property - def baseFontNormal(self): - return self._wrapped.contents.baseFontNormal - - @baseFontNormal.setter - def baseFontNormal(self, value): - self._wrapped.contents.baseFontNormal = value - - @property - def baseFontBack(self): - return self._wrapped.contents.baseFontBack - - @baseFontBack.setter - def baseFontBack(self, value): - self._wrapped.contents.baseFontBack = value - - @property - def baseFontBig(self): - return self._wrapped.contents.baseFontBig - - @baseFontBig.setter - def baseFontBig(self, value): - self._wrapped.contents.baseFontBig = value - - @property - def rangePlane(self): - return self._wrapped.contents.rangePlane - - @rangePlane.setter - def rangePlane(self, value): - self._wrapped.contents.rangePlane = value - - @property - def rangeMesh(self): - return self._wrapped.contents.rangeMesh - - @rangeMesh.setter - def rangeMesh(self, value): - self._wrapped.contents.rangeMesh = value - - @property - def rangeHField(self): - return self._wrapped.contents.rangeHField - - @rangeHField.setter - def rangeHField(self, value): - self._wrapped.contents.rangeHField = value - - @property - def rangeBuiltin(self): - return self._wrapped.contents.rangeBuiltin - - @rangeBuiltin.setter - def rangeBuiltin(self, value): - self._wrapped.contents.rangeBuiltin = value - - @property - def rangeFont(self): - return self._wrapped.contents.rangeFont - - @rangeFont.setter - def rangeFont(self, value): - self._wrapped.contents.rangeFont = value - - @property - def charWidth(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.charWidth, dtype=np.int, count=(127)), (127, )) - arr.setflags(write=False) - return arr - - @charWidth.setter - def charWidth(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.charWidth, val_ptr, 127 * sizeof(c_int)) - - @property - def charWidthBig(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.charWidthBig, dtype=np.int, count=(127)), (127, )) - arr.setflags(write=False) - return arr - - @charWidthBig.setter - def charWidthBig(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.charWidthBig, val_ptr, 127 * sizeof(c_int)) - - @property - def charHeight(self): - return self._wrapped.contents.charHeight - - @charHeight.setter - def charHeight(self, value): - self._wrapped.contents.charHeight = value - - @property - def charHeightBig(self): - return self._wrapped.contents.charHeightBig - - @charHeightBig.setter - def charHeightBig(self, value): - self._wrapped.contents.charHeightBig = value - - @property - def glewInitialized(self): - return self._wrapped.contents.glewInitialized - - @glewInitialized.setter - def glewInitialized(self, value): - self._wrapped.contents.glewInitialized = value - -class MjvCameraWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def fovy(self): - return self._wrapped.contents.fovy - - @fovy.setter - def fovy(self, value): - self._wrapped.contents.fovy = value - - @property - def camid(self): - return self._wrapped.contents.camid - - @camid.setter - def camid(self, value): - self._wrapped.contents.camid = value - - @property - def trackbodyid(self): - return self._wrapped.contents.trackbodyid - - @trackbodyid.setter - def trackbodyid(self, value): - self._wrapped.contents.trackbodyid = value - - @property - def lookat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.lookat, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @lookat.setter - def lookat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.lookat, val_ptr, 3 * sizeof(c_double)) - - @property - def azimuth(self): - return self._wrapped.contents.azimuth - - @azimuth.setter - def azimuth(self, value): - self._wrapped.contents.azimuth = value - - @property - def elevation(self): - return self._wrapped.contents.elevation - - @elevation.setter - def elevation(self, value): - self._wrapped.contents.elevation = value - - @property - def distance(self): - return self._wrapped.contents.distance - - @distance.setter - def distance(self, value): - self._wrapped.contents.distance = value - - @property - def pose(self): - return self._wrapped.contents.pose - - @pose.setter - def pose(self, value): - self._wrapped.contents.pose = value - - @property - def VR(self): - return self._wrapped.contents.VR - - @VR.setter - def VR(self, value): - self._wrapped.contents.VR = value - -class MjvOptionWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def label(self): - return self._wrapped.contents.label - - @label.setter - def label(self, value): - self._wrapped.contents.label = value - - @property - def frame(self): - return self._wrapped.contents.frame - - @frame.setter - def frame(self, value): - self._wrapped.contents.frame = value - - @property - def geomgroup(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geomgroup, dtype=np.uint8, count=(5)), (5, )) - arr.setflags(write=False) - return arr - - @geomgroup.setter - def geomgroup(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.geomgroup, val_ptr, 5 * sizeof(c_ubyte)) - - @property - def sitegroup(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.sitegroup, dtype=np.uint8, count=(5)), (5, )) - arr.setflags(write=False) - return arr - - @sitegroup.setter - def sitegroup(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.sitegroup, val_ptr, 5 * sizeof(c_ubyte)) - - @property - def flags(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.flags, dtype=np.uint8, count=(18)), (18, )) - arr.setflags(write=False) - return arr - - @flags.setter - def flags(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.flags, val_ptr, 18 * sizeof(c_ubyte)) - -class MjvGeomWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def type(self): - return self._wrapped.contents.type - - @type.setter - def type(self, value): - self._wrapped.contents.type = value - - @property - def dataid(self): - return self._wrapped.contents.dataid - - @dataid.setter - def dataid(self, value): - self._wrapped.contents.dataid = value - - @property - def objtype(self): - return self._wrapped.contents.objtype - - @objtype.setter - def objtype(self, value): - self._wrapped.contents.objtype = value - - @property - def objid(self): - return self._wrapped.contents.objid - - @objid.setter - def objid(self, value): - self._wrapped.contents.objid = value - - @property - def category(self): - return self._wrapped.contents.category - - @category.setter - def category(self, value): - self._wrapped.contents.category = value - - @property - def texid(self): - return self._wrapped.contents.texid - - @texid.setter - def texid(self, value): - self._wrapped.contents.texid = value - - @property - def texuniform(self): - return self._wrapped.contents.texuniform - - @texuniform.setter - def texuniform(self, value): - self._wrapped.contents.texuniform = value - - @property - def texrepeat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.texrepeat, dtype=np.float, count=(2)), (2, )) - arr.setflags(write=False) - return arr - - @texrepeat.setter - def texrepeat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.texrepeat, val_ptr, 2 * sizeof(c_float)) - - @property - def size(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.size, dtype=np.float, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @size.setter - def size(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.size, val_ptr, 3 * sizeof(c_float)) - - @property - def pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pos, dtype=np.float, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @pos.setter - def pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.pos, val_ptr, 3 * sizeof(c_float)) - - @property - def mat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat, dtype=np.float, count=(9)), (9, )) - arr.setflags(write=False) - return arr - - @mat.setter - def mat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mat, val_ptr, 9 * sizeof(c_float)) - - @property - def rgba(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.rgba, dtype=np.float, count=(4)), (4, )) - arr.setflags(write=False) - return arr - - @rgba.setter - def rgba(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.rgba, val_ptr, 4 * sizeof(c_float)) - - @property - def emission(self): - return self._wrapped.contents.emission - - @emission.setter - def emission(self, value): - self._wrapped.contents.emission = value - - @property - def specular(self): - return self._wrapped.contents.specular - - @specular.setter - def specular(self, value): - self._wrapped.contents.specular = value - - @property - def shininess(self): - return self._wrapped.contents.shininess - - @shininess.setter - def shininess(self, value): - self._wrapped.contents.shininess = value - - @property - def reflectance(self): - return self._wrapped.contents.reflectance - - @reflectance.setter - def reflectance(self, value): - self._wrapped.contents.reflectance = value - - @property - def label(self): - return self._wrapped.contents.label - - @label.setter - def label(self, value): - self._wrapped.contents.label = value - - @property - def camdist(self): - return self._wrapped.contents.camdist - - @camdist.setter - def camdist(self, value): - self._wrapped.contents.camdist = value - - @property - def rbound(self): - return self._wrapped.contents.rbound - - @rbound.setter - def rbound(self, value): - self._wrapped.contents.rbound = value - - @property - def transparent(self): - return self._wrapped.contents.transparent - - @transparent.setter - def transparent(self, value): - self._wrapped.contents.transparent = value - -class MjvLightWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pos, dtype=np.float, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @pos.setter - def pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.pos, val_ptr, 3 * sizeof(c_float)) - - @property - def dir(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dir, dtype=np.float, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @dir.setter - def dir(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.dir, val_ptr, 3 * sizeof(c_float)) - - @property - def attenuation(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.attenuation, dtype=np.float, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @attenuation.setter - def attenuation(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.attenuation, val_ptr, 3 * sizeof(c_float)) - - @property - def cutoff(self): - return self._wrapped.contents.cutoff - - @cutoff.setter - def cutoff(self, value): - self._wrapped.contents.cutoff = value - - @property - def exponent(self): - return self._wrapped.contents.exponent - - @exponent.setter - def exponent(self, value): - self._wrapped.contents.exponent = value - - @property - def ambient(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.ambient, dtype=np.float, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @ambient.setter - def ambient(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.ambient, val_ptr, 3 * sizeof(c_float)) - - @property - def diffuse(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.diffuse, dtype=np.float, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @diffuse.setter - def diffuse(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.diffuse, val_ptr, 3 * sizeof(c_float)) - - @property - def specular(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.specular, dtype=np.float, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @specular.setter - def specular(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.specular, val_ptr, 3 * sizeof(c_float)) - - @property - def headlight(self): - return self._wrapped.contents.headlight - - @headlight.setter - def headlight(self, value): - self._wrapped.contents.headlight = value - - @property - def directional(self): - return self._wrapped.contents.directional - - @directional.setter - def directional(self, value): - self._wrapped.contents.directional = value - - @property - def castshadow(self): - return self._wrapped.contents.castshadow - - @castshadow.setter - def castshadow(self, value): - self._wrapped.contents.castshadow = value - -class MjvObjectsWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def nlight(self): - return self._wrapped.contents.nlight - - @nlight.setter - def nlight(self, value): - self._wrapped.contents.nlight = value - - @property - def ngeom(self): - return self._wrapped.contents.ngeom - - @ngeom.setter - def ngeom(self, value): - self._wrapped.contents.ngeom = value - - @property - def maxgeom(self): - return self._wrapped.contents.maxgeom - - @maxgeom.setter - def maxgeom(self, value): - self._wrapped.contents.maxgeom = value - - @property - def lights(self): - return self._wrapped.contents.lights - - @lights.setter - def lights(self, value): - self._wrapped.contents.lights = value - -class MjOptionWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def timestep(self): - return self._wrapped.contents.timestep - - @timestep.setter - def timestep(self, value): - self._wrapped.contents.timestep = value - - @property - def apirate(self): - return self._wrapped.contents.apirate - - @apirate.setter - def apirate(self, value): - self._wrapped.contents.apirate = value - - @property - def tolerance(self): - return self._wrapped.contents.tolerance - - @tolerance.setter - def tolerance(self, value): - self._wrapped.contents.tolerance = value - - @property - def impratio(self): - return self._wrapped.contents.impratio - - @impratio.setter - def impratio(self, value): - self._wrapped.contents.impratio = value - - @property - def gravity(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.gravity, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @gravity.setter - def gravity(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.gravity, val_ptr, 3 * sizeof(c_double)) - - @property - def wind(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.wind, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @wind.setter - def wind(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.wind, val_ptr, 3 * sizeof(c_double)) - - @property - def magnetic(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.magnetic, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @magnetic.setter - def magnetic(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.magnetic, val_ptr, 3 * sizeof(c_double)) - - @property - def density(self): - return self._wrapped.contents.density - - @density.setter - def density(self, value): - self._wrapped.contents.density = value - - @property - def viscosity(self): - return self._wrapped.contents.viscosity - - @viscosity.setter - def viscosity(self, value): - self._wrapped.contents.viscosity = value - - @property - def o_margin(self): - return self._wrapped.contents.o_margin - - @o_margin.setter - def o_margin(self, value): - self._wrapped.contents.o_margin = value - - @property - def o_solref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.o_solref, dtype=np.double, count=(2)), (2, )) - arr.setflags(write=False) - return arr - - @o_solref.setter - def o_solref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.o_solref, val_ptr, 2 * sizeof(c_double)) - - @property - def o_solimp(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.o_solimp, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @o_solimp.setter - def o_solimp(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.o_solimp, val_ptr, 3 * sizeof(c_double)) - - @property - def mpr_tolerance(self): - return self._wrapped.contents.mpr_tolerance - - @mpr_tolerance.setter - def mpr_tolerance(self, value): - self._wrapped.contents.mpr_tolerance = value - - @property - def mpr_iterations(self): - return self._wrapped.contents.mpr_iterations - - @mpr_iterations.setter - def mpr_iterations(self, value): - self._wrapped.contents.mpr_iterations = value - - @property - def integrator(self): - return self._wrapped.contents.integrator - - @integrator.setter - def integrator(self, value): - self._wrapped.contents.integrator = value - - @property - def collision(self): - return self._wrapped.contents.collision - - @collision.setter - def collision(self, value): - self._wrapped.contents.collision = value - - @property - def impedance(self): - return self._wrapped.contents.impedance - - @impedance.setter - def impedance(self, value): - self._wrapped.contents.impedance = value - - @property - def reference(self): - return self._wrapped.contents.reference - - @reference.setter - def reference(self, value): - self._wrapped.contents.reference = value - - @property - def solver(self): - return self._wrapped.contents.solver - - @solver.setter - def solver(self, value): - self._wrapped.contents.solver = value - - @property - def iterations(self): - return self._wrapped.contents.iterations - - @iterations.setter - def iterations(self, value): - self._wrapped.contents.iterations = value - - @property - def disableflags(self): - return self._wrapped.contents.disableflags - - @disableflags.setter - def disableflags(self, value): - self._wrapped.contents.disableflags = value - - @property - def enableflags(self): - return self._wrapped.contents.enableflags - - @enableflags.setter - def enableflags(self, value): - self._wrapped.contents.enableflags = value - -class MjVisualWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def global_(self): - return self._wrapped.contents.global_ - - @global_.setter - def global_(self, value): - self._wrapped.contents.global_ = value - - @property - def quality(self): - return self._wrapped.contents.quality - - @quality.setter - def quality(self, value): - self._wrapped.contents.quality = value - - @property - def headlight(self): - return self._wrapped.contents.headlight - - @headlight.setter - def headlight(self, value): - self._wrapped.contents.headlight = value - - @property - def map_(self): - return self._wrapped.contents.map_ - - @map_.setter - def map_(self, value): - self._wrapped.contents.map_ = value - - @property - def scale(self): - return self._wrapped.contents.scale - - @scale.setter - def scale(self, value): - self._wrapped.contents.scale = value - - @property - def rgba(self): - return self._wrapped.contents.rgba - - @rgba.setter - def rgba(self, value): - self._wrapped.contents.rgba = value - -class MjStatisticWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def meanmass(self): - return self._wrapped.contents.meanmass - - @meanmass.setter - def meanmass(self, value): - self._wrapped.contents.meanmass = value - - @property - def meansize(self): - return self._wrapped.contents.meansize - - @meansize.setter - def meansize(self, value): - self._wrapped.contents.meansize = value - - @property - def extent(self): - return self._wrapped.contents.extent - - @extent.setter - def extent(self, value): - self._wrapped.contents.extent = value - - @property - def center(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.center, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @center.setter - def center(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.center, val_ptr, 3 * sizeof(c_double)) - -class MjDataWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def nstack(self): - return self._wrapped.contents.nstack - - @nstack.setter - def nstack(self, value): - self._wrapped.contents.nstack = value - - @property - def nbuffer(self): - return self._wrapped.contents.nbuffer - - @nbuffer.setter - def nbuffer(self, value): - self._wrapped.contents.nbuffer = value - - @property - def pstack(self): - return self._wrapped.contents.pstack - - @pstack.setter - def pstack(self, value): - self._wrapped.contents.pstack = value - - @property - def maxstackuse(self): - return self._wrapped.contents.maxstackuse - - @maxstackuse.setter - def maxstackuse(self, value): - self._wrapped.contents.maxstackuse = value - - @property - def ne(self): - return self._wrapped.contents.ne - - @ne.setter - def ne(self, value): - self._wrapped.contents.ne = value - - @property - def nf(self): - return self._wrapped.contents.nf - - @nf.setter - def nf(self, value): - self._wrapped.contents.nf = value - - @property - def nefc(self): - return self._wrapped.contents.nefc - - @nefc.setter - def nefc(self, value): - self._wrapped.contents.nefc = value - - @property - def ncon(self): - return self._wrapped.contents.ncon - - @ncon.setter - def ncon(self, value): - self._wrapped.contents.ncon = value - - @property - def nwarning(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.nwarning, dtype=np.int, count=(8)), (8, )) - arr.setflags(write=False) - return arr - - @nwarning.setter - def nwarning(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.nwarning, val_ptr, 8 * sizeof(c_int)) - - @property - def warning_info(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.warning_info, dtype=np.int, count=(8)), (8, )) - arr.setflags(write=False) - return arr - - @warning_info.setter - def warning_info(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.warning_info, val_ptr, 8 * sizeof(c_int)) - - @property - def timer_duration(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.timer_duration, dtype=np.double, count=(14)), (14, )) - arr.setflags(write=False) - return arr - - @timer_duration.setter - def timer_duration(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.timer_duration, val_ptr, 14 * sizeof(c_double)) - - @property - def timer_ncall(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.timer_ncall, dtype=np.double, count=(14)), (14, )) - arr.setflags(write=False) - return arr - - @timer_ncall.setter - def timer_ncall(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.timer_ncall, val_ptr, 14 * sizeof(c_double)) - - @property - def mocaptime(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mocaptime, dtype=np.double, count=(3)), (3, )) - arr.setflags(write=False) - return arr - - @mocaptime.setter - def mocaptime(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.mocaptime, val_ptr, 3 * sizeof(c_double)) - - @property - def time(self): - return self._wrapped.contents.time - - @time.setter - def time(self, value): - self._wrapped.contents.time = value - - @property - def energy(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.energy, dtype=np.double, count=(2)), (2, )) - arr.setflags(write=False) - return arr - - @energy.setter - def energy(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.energy, val_ptr, 2 * sizeof(c_double)) - - @property - def solverstat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.solverstat, dtype=np.double, count=(4)), (4, )) - arr.setflags(write=False) - return arr - - @solverstat.setter - def solverstat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.solverstat, val_ptr, 4 * sizeof(c_double)) - - @property - def solvertrace(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.solvertrace, dtype=np.double, count=(200)), (200, )) - arr.setflags(write=False) - return arr - - @solvertrace.setter - def solvertrace(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.solvertrace, val_ptr, 200 * sizeof(c_double)) - - @property - def buffer(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.buffer, dtype=np.uint8, count=(self.nbuffer)), (self.nbuffer, )) - arr.setflags(write=False) - return arr - - @buffer.setter - def buffer(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.buffer, val_ptr, self.nbuffer * sizeof(c_ubyte)) - - @property - def stack(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.stack, dtype=np.double, count=(self.nstack)), (self.nstack, )) - arr.setflags(write=False) - return arr - - @stack.setter - def stack(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.stack, val_ptr, self.nstack * sizeof(c_double)) - - @property - def qpos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qpos, dtype=np.double, count=(self._size_src.nq*1)), (self._size_src.nq, 1, )) - arr.setflags(write=False) - return arr - - @qpos.setter - def qpos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qpos, val_ptr, self._size_src.nq*1 * sizeof(c_double)) - - @property - def qvel(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qvel, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qvel.setter - def qvel(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qvel, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def act(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.act, dtype=np.double, count=(self._size_src.na*1)), (self._size_src.na, 1, )) - arr.setflags(write=False) - return arr - - @act.setter - def act(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.act, val_ptr, self._size_src.na*1 * sizeof(c_double)) - - @property - def ctrl(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.ctrl, dtype=np.double, count=(self._size_src.nu*1)), (self._size_src.nu, 1, )) - arr.setflags(write=False) - return arr - - @ctrl.setter - def ctrl(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.ctrl, val_ptr, self._size_src.nu*1 * sizeof(c_double)) - - @property - def qfrc_applied(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qfrc_applied, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qfrc_applied.setter - def qfrc_applied(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qfrc_applied, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def xfrc_applied(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.xfrc_applied, dtype=np.double, count=(self._size_src.nbody*6)), (self._size_src.nbody, 6, )) - arr.setflags(write=False) - return arr - - @xfrc_applied.setter - def xfrc_applied(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.xfrc_applied, val_ptr, self._size_src.nbody*6 * sizeof(c_double)) - - @property - def qacc(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qacc, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qacc.setter - def qacc(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qacc, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def act_dot(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.act_dot, dtype=np.double, count=(self._size_src.na*1)), (self._size_src.na, 1, )) - arr.setflags(write=False) - return arr - - @act_dot.setter - def act_dot(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.act_dot, val_ptr, self._size_src.na*1 * sizeof(c_double)) - - @property - def mocap_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mocap_pos, dtype=np.double, count=(self._size_src.nmocap*3)), (self._size_src.nmocap, 3, )) - arr.setflags(write=False) - return arr - - @mocap_pos.setter - def mocap_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.mocap_pos, val_ptr, self._size_src.nmocap*3 * sizeof(c_double)) - - @property - def mocap_quat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mocap_quat, dtype=np.double, count=(self._size_src.nmocap*4)), (self._size_src.nmocap, 4, )) - arr.setflags(write=False) - return arr - - @mocap_quat.setter - def mocap_quat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.mocap_quat, val_ptr, self._size_src.nmocap*4 * sizeof(c_double)) - - @property - def userdata(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.userdata, dtype=np.double, count=(self._size_src.nuserdata*1)), (self._size_src.nuserdata, 1, )) - arr.setflags(write=False) - return arr - - @userdata.setter - def userdata(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.userdata, val_ptr, self._size_src.nuserdata*1 * sizeof(c_double)) - - @property - def sensordata(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.sensordata, dtype=np.double, count=(self._size_src.nsensordata*1)), (self._size_src.nsensordata, 1, )) - arr.setflags(write=False) - return arr - - @sensordata.setter - def sensordata(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.sensordata, val_ptr, self._size_src.nsensordata*1 * sizeof(c_double)) - - @property - def xpos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.xpos, dtype=np.double, count=(self._size_src.nbody*3)), (self._size_src.nbody, 3, )) - arr.setflags(write=False) - return arr - - @xpos.setter - def xpos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.xpos, val_ptr, self._size_src.nbody*3 * sizeof(c_double)) - - @property - def xquat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.xquat, dtype=np.double, count=(self._size_src.nbody*4)), (self._size_src.nbody, 4, )) - arr.setflags(write=False) - return arr - - @xquat.setter - def xquat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.xquat, val_ptr, self._size_src.nbody*4 * sizeof(c_double)) - - @property - def xmat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.xmat, dtype=np.double, count=(self._size_src.nbody*9)), (self._size_src.nbody, 9, )) - arr.setflags(write=False) - return arr - - @xmat.setter - def xmat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.xmat, val_ptr, self._size_src.nbody*9 * sizeof(c_double)) - - @property - def xipos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.xipos, dtype=np.double, count=(self._size_src.nbody*3)), (self._size_src.nbody, 3, )) - arr.setflags(write=False) - return arr - - @xipos.setter - def xipos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.xipos, val_ptr, self._size_src.nbody*3 * sizeof(c_double)) - - @property - def ximat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.ximat, dtype=np.double, count=(self._size_src.nbody*9)), (self._size_src.nbody, 9, )) - arr.setflags(write=False) - return arr - - @ximat.setter - def ximat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.ximat, val_ptr, self._size_src.nbody*9 * sizeof(c_double)) - - @property - def xanchor(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.xanchor, dtype=np.double, count=(self._size_src.njnt*3)), (self._size_src.njnt, 3, )) - arr.setflags(write=False) - return arr - - @xanchor.setter - def xanchor(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.xanchor, val_ptr, self._size_src.njnt*3 * sizeof(c_double)) - - @property - def xaxis(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.xaxis, dtype=np.double, count=(self._size_src.njnt*3)), (self._size_src.njnt, 3, )) - arr.setflags(write=False) - return arr - - @xaxis.setter - def xaxis(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.xaxis, val_ptr, self._size_src.njnt*3 * sizeof(c_double)) - - @property - def geom_xpos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_xpos, dtype=np.double, count=(self._size_src.ngeom*3)), (self._size_src.ngeom, 3, )) - arr.setflags(write=False) - return arr - - @geom_xpos.setter - def geom_xpos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_xpos, val_ptr, self._size_src.ngeom*3 * sizeof(c_double)) - - @property - def geom_xmat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_xmat, dtype=np.double, count=(self._size_src.ngeom*9)), (self._size_src.ngeom, 9, )) - arr.setflags(write=False) - return arr - - @geom_xmat.setter - def geom_xmat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_xmat, val_ptr, self._size_src.ngeom*9 * sizeof(c_double)) - - @property - def site_xpos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_xpos, dtype=np.double, count=(self._size_src.nsite*3)), (self._size_src.nsite, 3, )) - arr.setflags(write=False) - return arr - - @site_xpos.setter - def site_xpos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.site_xpos, val_ptr, self._size_src.nsite*3 * sizeof(c_double)) - - @property - def site_xmat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_xmat, dtype=np.double, count=(self._size_src.nsite*9)), (self._size_src.nsite, 9, )) - arr.setflags(write=False) - return arr - - @site_xmat.setter - def site_xmat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.site_xmat, val_ptr, self._size_src.nsite*9 * sizeof(c_double)) - - @property - def cam_xpos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_xpos, dtype=np.double, count=(self._size_src.ncam*3)), (self._size_src.ncam, 3, )) - arr.setflags(write=False) - return arr - - @cam_xpos.setter - def cam_xpos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_xpos, val_ptr, self._size_src.ncam*3 * sizeof(c_double)) - - @property - def cam_xmat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_xmat, dtype=np.double, count=(self._size_src.ncam*9)), (self._size_src.ncam, 9, )) - arr.setflags(write=False) - return arr - - @cam_xmat.setter - def cam_xmat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_xmat, val_ptr, self._size_src.ncam*9 * sizeof(c_double)) - - @property - def light_xpos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_xpos, dtype=np.double, count=(self._size_src.nlight*3)), (self._size_src.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_xpos.setter - def light_xpos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.light_xpos, val_ptr, self._size_src.nlight*3 * sizeof(c_double)) - - @property - def light_xdir(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_xdir, dtype=np.double, count=(self._size_src.nlight*3)), (self._size_src.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_xdir.setter - def light_xdir(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.light_xdir, val_ptr, self._size_src.nlight*3 * sizeof(c_double)) - - @property - def com_subtree(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.com_subtree, dtype=np.double, count=(self._size_src.nbody*3)), (self._size_src.nbody, 3, )) - arr.setflags(write=False) - return arr - - @com_subtree.setter - def com_subtree(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.com_subtree, val_ptr, self._size_src.nbody*3 * sizeof(c_double)) - - @property - def cdof(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cdof, dtype=np.double, count=(self._size_src.nv*6)), (self._size_src.nv, 6, )) - arr.setflags(write=False) - return arr - - @cdof.setter - def cdof(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cdof, val_ptr, self._size_src.nv*6 * sizeof(c_double)) - - @property - def cinert(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cinert, dtype=np.double, count=(self._size_src.nbody*10)), (self._size_src.nbody, 10, )) - arr.setflags(write=False) - return arr - - @cinert.setter - def cinert(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cinert, val_ptr, self._size_src.nbody*10 * sizeof(c_double)) - - @property - def ten_wrapadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.ten_wrapadr, dtype=np.int, count=(self._size_src.ntendon*1)), (self._size_src.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @ten_wrapadr.setter - def ten_wrapadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.ten_wrapadr, val_ptr, self._size_src.ntendon*1 * sizeof(c_int)) - - @property - def ten_wrapnum(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.ten_wrapnum, dtype=np.int, count=(self._size_src.ntendon*1)), (self._size_src.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @ten_wrapnum.setter - def ten_wrapnum(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.ten_wrapnum, val_ptr, self._size_src.ntendon*1 * sizeof(c_int)) - - @property - def ten_length(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.ten_length, dtype=np.double, count=(self._size_src.ntendon*1)), (self._size_src.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @ten_length.setter - def ten_length(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.ten_length, val_ptr, self._size_src.ntendon*1 * sizeof(c_double)) - - @property - def ten_moment(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.ten_moment, dtype=np.double, count=(self._size_src.ntendon*self._size_src.nv)), (self._size_src.ntendon, self._size_src.nv, )) - arr.setflags(write=False) - return arr - - @ten_moment.setter - def ten_moment(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.ten_moment, val_ptr, self._size_src.ntendon*self._size_src.nv * sizeof(c_double)) - - @property - def wrap_obj(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.wrap_obj, dtype=np.int, count=(self._size_src.nwrap*2)), (self._size_src.nwrap, 2, )) - arr.setflags(write=False) - return arr - - @wrap_obj.setter - def wrap_obj(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.wrap_obj, val_ptr, self._size_src.nwrap*2 * sizeof(c_int)) - - @property - def wrap_xpos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.wrap_xpos, dtype=np.double, count=(self._size_src.nwrap*6)), (self._size_src.nwrap, 6, )) - arr.setflags(write=False) - return arr - - @wrap_xpos.setter - def wrap_xpos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.wrap_xpos, val_ptr, self._size_src.nwrap*6 * sizeof(c_double)) - - @property - def actuator_length(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_length, dtype=np.double, count=(self._size_src.nu*1)), (self._size_src.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_length.setter - def actuator_length(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_length, val_ptr, self._size_src.nu*1 * sizeof(c_double)) - - @property - def actuator_moment(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_moment, dtype=np.double, count=(self._size_src.nu*self._size_src.nv)), (self._size_src.nu, self._size_src.nv, )) - arr.setflags(write=False) - return arr - - @actuator_moment.setter - def actuator_moment(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_moment, val_ptr, self._size_src.nu*self._size_src.nv * sizeof(c_double)) - - @property - def crb(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.crb, dtype=np.double, count=(self._size_src.nbody*10)), (self._size_src.nbody, 10, )) - arr.setflags(write=False) - return arr - - @crb.setter - def crb(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.crb, val_ptr, self._size_src.nbody*10 * sizeof(c_double)) - - @property - def qM(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qM, dtype=np.double, count=(self._size_src.nM*1)), (self._size_src.nM, 1, )) - arr.setflags(write=False) - return arr - - @qM.setter - def qM(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qM, val_ptr, self._size_src.nM*1 * sizeof(c_double)) - - @property - def qLD(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qLD, dtype=np.double, count=(self._size_src.nM*1)), (self._size_src.nM, 1, )) - arr.setflags(write=False) - return arr - - @qLD.setter - def qLD(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qLD, val_ptr, self._size_src.nM*1 * sizeof(c_double)) - - @property - def qLDiagInv(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qLDiagInv, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qLDiagInv.setter - def qLDiagInv(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qLDiagInv, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def qLDiagSqrtInv(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qLDiagSqrtInv, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qLDiagSqrtInv.setter - def qLDiagSqrtInv(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qLDiagSqrtInv, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def efc_type(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_type, dtype=np.int, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_type.setter - def efc_type(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.efc_type, val_ptr, self._size_src.njmax*1 * sizeof(c_int)) - - @property - def efc_id(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_id, dtype=np.int, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_id.setter - def efc_id(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.efc_id, val_ptr, self._size_src.njmax*1 * sizeof(c_int)) - - @property - def efc_rownnz(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_rownnz, dtype=np.int, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_rownnz.setter - def efc_rownnz(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.efc_rownnz, val_ptr, self._size_src.njmax*1 * sizeof(c_int)) - - @property - def efc_rowadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_rowadr, dtype=np.int, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_rowadr.setter - def efc_rowadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.efc_rowadr, val_ptr, self._size_src.njmax*1 * sizeof(c_int)) - - @property - def efc_colind(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_colind, dtype=np.int, count=(self._size_src.njmax*self._size_src.nv)), (self._size_src.njmax, self._size_src.nv, )) - arr.setflags(write=False) - return arr - - @efc_colind.setter - def efc_colind(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.efc_colind, val_ptr, self._size_src.njmax*self._size_src.nv * sizeof(c_int)) - - @property - def efc_rownnz_T(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_rownnz_T, dtype=np.int, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @efc_rownnz_T.setter - def efc_rownnz_T(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.efc_rownnz_T, val_ptr, self._size_src.nv*1 * sizeof(c_int)) - - @property - def efc_rowadr_T(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_rowadr_T, dtype=np.int, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @efc_rowadr_T.setter - def efc_rowadr_T(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.efc_rowadr_T, val_ptr, self._size_src.nv*1 * sizeof(c_int)) - - @property - def efc_colind_T(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_colind_T, dtype=np.int, count=(self._size_src.nv*self._size_src.njmax)), (self._size_src.nv, self._size_src.njmax, )) - arr.setflags(write=False) - return arr - - @efc_colind_T.setter - def efc_colind_T(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.efc_colind_T, val_ptr, self._size_src.nv*self._size_src.njmax * sizeof(c_int)) - - @property - def efc_solref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_solref, dtype=np.double, count=(self._size_src.njmax*2)), (self._size_src.njmax, 2, )) - arr.setflags(write=False) - return arr - - @efc_solref.setter - def efc_solref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_solref, val_ptr, self._size_src.njmax*2 * sizeof(c_double)) - - @property - def efc_solimp(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_solimp, dtype=np.double, count=(self._size_src.njmax*3)), (self._size_src.njmax, 3, )) - arr.setflags(write=False) - return arr - - @efc_solimp.setter - def efc_solimp(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_solimp, val_ptr, self._size_src.njmax*3 * sizeof(c_double)) - - @property - def efc_margin(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_margin, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_margin.setter - def efc_margin(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_margin, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def efc_frictionloss(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_frictionloss, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_frictionloss.setter - def efc_frictionloss(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_frictionloss, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def efc_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_pos, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_pos.setter - def efc_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_pos, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def efc_J(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_J, dtype=np.double, count=(self._size_src.njmax*self._size_src.nv)), (self._size_src.njmax, self._size_src.nv, )) - arr.setflags(write=False) - return arr - - @efc_J.setter - def efc_J(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_J, val_ptr, self._size_src.njmax*self._size_src.nv * sizeof(c_double)) - - @property - def efc_J_T(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_J_T, dtype=np.double, count=(self._size_src.nv*self._size_src.njmax)), (self._size_src.nv, self._size_src.njmax, )) - arr.setflags(write=False) - return arr - - @efc_J_T.setter - def efc_J_T(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_J_T, val_ptr, self._size_src.nv*self._size_src.njmax * sizeof(c_double)) - - @property - def efc_diagApprox(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_diagApprox, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_diagApprox.setter - def efc_diagApprox(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_diagApprox, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def efc_D(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_D, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_D.setter - def efc_D(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_D, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def efc_R(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_R, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_R.setter - def efc_R(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_R, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def efc_AR(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_AR, dtype=np.double, count=(self._size_src.njmax*self._size_src.njmax)), (self._size_src.njmax, self._size_src.njmax, )) - arr.setflags(write=False) - return arr - - @efc_AR.setter - def efc_AR(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_AR, val_ptr, self._size_src.njmax*self._size_src.njmax * sizeof(c_double)) - - @property - def e_ARchol(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.e_ARchol, dtype=np.double, count=(self._size_src.nemax*self._size_src.nemax)), (self._size_src.nemax, self._size_src.nemax, )) - arr.setflags(write=False) - return arr - - @e_ARchol.setter - def e_ARchol(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.e_ARchol, val_ptr, self._size_src.nemax*self._size_src.nemax * sizeof(c_double)) - - @property - def fc_e_rect(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.fc_e_rect, dtype=np.double, count=(self._size_src.njmax*self._size_src.nemax)), (self._size_src.njmax, self._size_src.nemax, )) - arr.setflags(write=False) - return arr - - @fc_e_rect.setter - def fc_e_rect(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.fc_e_rect, val_ptr, self._size_src.njmax*self._size_src.nemax * sizeof(c_double)) - - @property - def fc_AR(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.fc_AR, dtype=np.double, count=(self._size_src.njmax*self._size_src.njmax)), (self._size_src.njmax, self._size_src.njmax, )) - arr.setflags(write=False) - return arr - - @fc_AR.setter - def fc_AR(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.fc_AR, val_ptr, self._size_src.njmax*self._size_src.njmax * sizeof(c_double)) - - @property - def ten_velocity(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.ten_velocity, dtype=np.double, count=(self._size_src.ntendon*1)), (self._size_src.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @ten_velocity.setter - def ten_velocity(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.ten_velocity, val_ptr, self._size_src.ntendon*1 * sizeof(c_double)) - - @property - def actuator_velocity(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_velocity, dtype=np.double, count=(self._size_src.nu*1)), (self._size_src.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_velocity.setter - def actuator_velocity(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_velocity, val_ptr, self._size_src.nu*1 * sizeof(c_double)) - - @property - def cvel(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cvel, dtype=np.double, count=(self._size_src.nbody*6)), (self._size_src.nbody, 6, )) - arr.setflags(write=False) - return arr - - @cvel.setter - def cvel(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cvel, val_ptr, self._size_src.nbody*6 * sizeof(c_double)) - - @property - def cdof_dot(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cdof_dot, dtype=np.double, count=(self._size_src.nv*6)), (self._size_src.nv, 6, )) - arr.setflags(write=False) - return arr - - @cdof_dot.setter - def cdof_dot(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cdof_dot, val_ptr, self._size_src.nv*6 * sizeof(c_double)) - - @property - def qfrc_bias(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qfrc_bias, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qfrc_bias.setter - def qfrc_bias(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qfrc_bias, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def qfrc_passive(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qfrc_passive, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qfrc_passive.setter - def qfrc_passive(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qfrc_passive, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def efc_vel(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_vel, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_vel.setter - def efc_vel(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_vel, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def efc_aref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_aref, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_aref.setter - def efc_aref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_aref, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def actuator_force(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_force, dtype=np.double, count=(self._size_src.nu*1)), (self._size_src.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_force.setter - def actuator_force(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_force, val_ptr, self._size_src.nu*1 * sizeof(c_double)) - - @property - def qfrc_actuator(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qfrc_actuator, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qfrc_actuator.setter - def qfrc_actuator(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qfrc_actuator, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def qfrc_unc(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qfrc_unc, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qfrc_unc.setter - def qfrc_unc(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qfrc_unc, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def qacc_unc(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qacc_unc, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qacc_unc.setter - def qacc_unc(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qacc_unc, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def efc_b(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_b, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_b.setter - def efc_b(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_b, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def fc_b(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.fc_b, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @fc_b.setter - def fc_b(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.fc_b, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def efc_force(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.efc_force, dtype=np.double, count=(self._size_src.njmax*1)), (self._size_src.njmax, 1, )) - arr.setflags(write=False) - return arr - - @efc_force.setter - def efc_force(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.efc_force, val_ptr, self._size_src.njmax*1 * sizeof(c_double)) - - @property - def qfrc_constraint(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qfrc_constraint, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qfrc_constraint.setter - def qfrc_constraint(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qfrc_constraint, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def qfrc_inverse(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qfrc_inverse, dtype=np.double, count=(self._size_src.nv*1)), (self._size_src.nv, 1, )) - arr.setflags(write=False) - return arr - - @qfrc_inverse.setter - def qfrc_inverse(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qfrc_inverse, val_ptr, self._size_src.nv*1 * sizeof(c_double)) - - @property - def cacc(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cacc, dtype=np.double, count=(self._size_src.nbody*6)), (self._size_src.nbody, 6, )) - arr.setflags(write=False) - return arr - - @cacc.setter - def cacc(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cacc, val_ptr, self._size_src.nbody*6 * sizeof(c_double)) - - @property - def cfrc_int(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cfrc_int, dtype=np.double, count=(self._size_src.nbody*6)), (self._size_src.nbody, 6, )) - arr.setflags(write=False) - return arr - - @cfrc_int.setter - def cfrc_int(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cfrc_int, val_ptr, self._size_src.nbody*6 * sizeof(c_double)) - - @property - def cfrc_ext(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cfrc_ext, dtype=np.double, count=(self._size_src.nbody*6)), (self._size_src.nbody, 6, )) - arr.setflags(write=False) - return arr - - @cfrc_ext.setter - def cfrc_ext(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cfrc_ext, val_ptr, self._size_src.nbody*6 * sizeof(c_double)) - -class MjModelWrapper(object): - - def __init__(self, wrapped, size_src=None): - self._wrapped = wrapped - self._size_src = size_src - - @property - def ptr(self): - return self._wrapped - - @property - def obj(self): - return self._wrapped.contents - - - @property - def nq(self): - return self._wrapped.contents.nq - - @nq.setter - def nq(self, value): - self._wrapped.contents.nq = value - - @property - def nv(self): - return self._wrapped.contents.nv - - @nv.setter - def nv(self, value): - self._wrapped.contents.nv = value - - @property - def nu(self): - return self._wrapped.contents.nu - - @nu.setter - def nu(self, value): - self._wrapped.contents.nu = value - - @property - def na(self): - return self._wrapped.contents.na - - @na.setter - def na(self, value): - self._wrapped.contents.na = value - - @property - def nbody(self): - return self._wrapped.contents.nbody - - @nbody.setter - def nbody(self, value): - self._wrapped.contents.nbody = value - - @property - def njnt(self): - return self._wrapped.contents.njnt - - @njnt.setter - def njnt(self, value): - self._wrapped.contents.njnt = value - - @property - def ngeom(self): - return self._wrapped.contents.ngeom - - @ngeom.setter - def ngeom(self, value): - self._wrapped.contents.ngeom = value - - @property - def nsite(self): - return self._wrapped.contents.nsite - - @nsite.setter - def nsite(self, value): - self._wrapped.contents.nsite = value - - @property - def ncam(self): - return self._wrapped.contents.ncam - - @ncam.setter - def ncam(self, value): - self._wrapped.contents.ncam = value - - @property - def nlight(self): - return self._wrapped.contents.nlight - - @nlight.setter - def nlight(self, value): - self._wrapped.contents.nlight = value - - @property - def nmesh(self): - return self._wrapped.contents.nmesh - - @nmesh.setter - def nmesh(self, value): - self._wrapped.contents.nmesh = value - - @property - def nmeshvert(self): - return self._wrapped.contents.nmeshvert - - @nmeshvert.setter - def nmeshvert(self, value): - self._wrapped.contents.nmeshvert = value - - @property - def nmeshface(self): - return self._wrapped.contents.nmeshface - - @nmeshface.setter - def nmeshface(self, value): - self._wrapped.contents.nmeshface = value - - @property - def nmeshgraph(self): - return self._wrapped.contents.nmeshgraph - - @nmeshgraph.setter - def nmeshgraph(self, value): - self._wrapped.contents.nmeshgraph = value - - @property - def nhfield(self): - return self._wrapped.contents.nhfield - - @nhfield.setter - def nhfield(self, value): - self._wrapped.contents.nhfield = value - - @property - def nhfielddata(self): - return self._wrapped.contents.nhfielddata - - @nhfielddata.setter - def nhfielddata(self, value): - self._wrapped.contents.nhfielddata = value - - @property - def ntex(self): - return self._wrapped.contents.ntex - - @ntex.setter - def ntex(self, value): - self._wrapped.contents.ntex = value - - @property - def ntexdata(self): - return self._wrapped.contents.ntexdata - - @ntexdata.setter - def ntexdata(self, value): - self._wrapped.contents.ntexdata = value - - @property - def nmat(self): - return self._wrapped.contents.nmat - - @nmat.setter - def nmat(self, value): - self._wrapped.contents.nmat = value - - @property - def npair(self): - return self._wrapped.contents.npair - - @npair.setter - def npair(self, value): - self._wrapped.contents.npair = value - - @property - def nexclude(self): - return self._wrapped.contents.nexclude - - @nexclude.setter - def nexclude(self, value): - self._wrapped.contents.nexclude = value - - @property - def neq(self): - return self._wrapped.contents.neq - - @neq.setter - def neq(self, value): - self._wrapped.contents.neq = value - - @property - def ntendon(self): - return self._wrapped.contents.ntendon - - @ntendon.setter - def ntendon(self, value): - self._wrapped.contents.ntendon = value - - @property - def nwrap(self): - return self._wrapped.contents.nwrap - - @nwrap.setter - def nwrap(self, value): - self._wrapped.contents.nwrap = value - - @property - def nsensor(self): - return self._wrapped.contents.nsensor - - @nsensor.setter - def nsensor(self, value): - self._wrapped.contents.nsensor = value - - @property - def nnumeric(self): - return self._wrapped.contents.nnumeric - - @nnumeric.setter - def nnumeric(self, value): - self._wrapped.contents.nnumeric = value - - @property - def nnumericdata(self): - return self._wrapped.contents.nnumericdata - - @nnumericdata.setter - def nnumericdata(self, value): - self._wrapped.contents.nnumericdata = value - - @property - def ntext(self): - return self._wrapped.contents.ntext - - @ntext.setter - def ntext(self, value): - self._wrapped.contents.ntext = value - - @property - def ntextdata(self): - return self._wrapped.contents.ntextdata - - @ntextdata.setter - def ntextdata(self, value): - self._wrapped.contents.ntextdata = value - - @property - def nkey(self): - return self._wrapped.contents.nkey - - @nkey.setter - def nkey(self, value): - self._wrapped.contents.nkey = value - - @property - def nuser_body(self): - return self._wrapped.contents.nuser_body - - @nuser_body.setter - def nuser_body(self, value): - self._wrapped.contents.nuser_body = value - - @property - def nuser_jnt(self): - return self._wrapped.contents.nuser_jnt - - @nuser_jnt.setter - def nuser_jnt(self, value): - self._wrapped.contents.nuser_jnt = value - - @property - def nuser_geom(self): - return self._wrapped.contents.nuser_geom - - @nuser_geom.setter - def nuser_geom(self, value): - self._wrapped.contents.nuser_geom = value - - @property - def nuser_site(self): - return self._wrapped.contents.nuser_site - - @nuser_site.setter - def nuser_site(self, value): - self._wrapped.contents.nuser_site = value - - @property - def nuser_tendon(self): - return self._wrapped.contents.nuser_tendon - - @nuser_tendon.setter - def nuser_tendon(self, value): - self._wrapped.contents.nuser_tendon = value - - @property - def nuser_actuator(self): - return self._wrapped.contents.nuser_actuator - - @nuser_actuator.setter - def nuser_actuator(self, value): - self._wrapped.contents.nuser_actuator = value - - @property - def nuser_sensor(self): - return self._wrapped.contents.nuser_sensor - - @nuser_sensor.setter - def nuser_sensor(self, value): - self._wrapped.contents.nuser_sensor = value - - @property - def nnames(self): - return self._wrapped.contents.nnames - - @nnames.setter - def nnames(self, value): - self._wrapped.contents.nnames = value - - @property - def nM(self): - return self._wrapped.contents.nM - - @nM.setter - def nM(self, value): - self._wrapped.contents.nM = value - - @property - def nemax(self): - return self._wrapped.contents.nemax - - @nemax.setter - def nemax(self, value): - self._wrapped.contents.nemax = value - - @property - def njmax(self): - return self._wrapped.contents.njmax - - @njmax.setter - def njmax(self, value): - self._wrapped.contents.njmax = value - - @property - def nconmax(self): - return self._wrapped.contents.nconmax - - @nconmax.setter - def nconmax(self, value): - self._wrapped.contents.nconmax = value - - @property - def nstack(self): - return self._wrapped.contents.nstack - - @nstack.setter - def nstack(self, value): - self._wrapped.contents.nstack = value - - @property - def nuserdata(self): - return self._wrapped.contents.nuserdata - - @nuserdata.setter - def nuserdata(self, value): - self._wrapped.contents.nuserdata = value - - @property - def nmocap(self): - return self._wrapped.contents.nmocap - - @nmocap.setter - def nmocap(self, value): - self._wrapped.contents.nmocap = value - - @property - def nsensordata(self): - return self._wrapped.contents.nsensordata - - @nsensordata.setter - def nsensordata(self, value): - self._wrapped.contents.nsensordata = value - - @property - def nbuffer(self): - return self._wrapped.contents.nbuffer - - @nbuffer.setter - def nbuffer(self, value): - self._wrapped.contents.nbuffer = value - - @property - def opt(self): - return self._wrapped.contents.opt - - @opt.setter - def opt(self, value): - self._wrapped.contents.opt = value - - @property - def vis(self): - return self._wrapped.contents.vis - - @vis.setter - def vis(self, value): - self._wrapped.contents.vis = value - - @property - def stat(self): - return self._wrapped.contents.stat - - @stat.setter - def stat(self, value): - self._wrapped.contents.stat = value - - @property - def buffer(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.buffer, dtype=np.uint8, count=(self.nbuffer)), (self.nbuffer, )) - arr.setflags(write=False) - return arr - - @buffer.setter - def buffer(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.buffer, val_ptr, self.nbuffer * sizeof(c_ubyte)) - - @property - def qpos0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qpos0, dtype=np.double, count=(self.nq*1)), (self.nq, 1, )) - arr.setflags(write=False) - return arr - - @qpos0.setter - def qpos0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qpos0, val_ptr, self.nq*1 * sizeof(c_double)) - - @property - def qpos_spring(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.qpos_spring, dtype=np.double, count=(self.nq*1)), (self.nq, 1, )) - arr.setflags(write=False) - return arr - - @qpos_spring.setter - def qpos_spring(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.qpos_spring, val_ptr, self.nq*1 * sizeof(c_double)) - - @property - def body_parentid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_parentid, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_parentid.setter - def body_parentid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_parentid, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_rootid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_rootid, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_rootid.setter - def body_rootid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_rootid, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_weldid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_weldid, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_weldid.setter - def body_weldid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_weldid, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_mocapid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_mocapid, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_mocapid.setter - def body_mocapid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_mocapid, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_jntnum(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_jntnum, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_jntnum.setter - def body_jntnum(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_jntnum, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_jntadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_jntadr, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_jntadr.setter - def body_jntadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_jntadr, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_dofnum(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_dofnum, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_dofnum.setter - def body_dofnum(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_dofnum, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_dofadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_dofadr, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_dofadr.setter - def body_dofadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_dofadr, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_geomnum(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_geomnum, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_geomnum.setter - def body_geomnum(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_geomnum, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_geomadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_geomadr, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_geomadr.setter - def body_geomadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.body_geomadr, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def body_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_pos, dtype=np.double, count=(self.nbody*3)), (self.nbody, 3, )) - arr.setflags(write=False) - return arr - - @body_pos.setter - def body_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.body_pos, val_ptr, self.nbody*3 * sizeof(c_double)) - - @property - def body_quat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_quat, dtype=np.double, count=(self.nbody*4)), (self.nbody, 4, )) - arr.setflags(write=False) - return arr - - @body_quat.setter - def body_quat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.body_quat, val_ptr, self.nbody*4 * sizeof(c_double)) - - @property - def body_ipos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_ipos, dtype=np.double, count=(self.nbody*3)), (self.nbody, 3, )) - arr.setflags(write=False) - return arr - - @body_ipos.setter - def body_ipos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.body_ipos, val_ptr, self.nbody*3 * sizeof(c_double)) - - @property - def body_iquat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_iquat, dtype=np.double, count=(self.nbody*4)), (self.nbody, 4, )) - arr.setflags(write=False) - return arr - - @body_iquat.setter - def body_iquat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.body_iquat, val_ptr, self.nbody*4 * sizeof(c_double)) - - @property - def body_mass(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_mass, dtype=np.double, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @body_mass.setter - def body_mass(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.body_mass, val_ptr, self.nbody*1 * sizeof(c_double)) - - @property - def body_inertia(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_inertia, dtype=np.double, count=(self.nbody*3)), (self.nbody, 3, )) - arr.setflags(write=False) - return arr - - @body_inertia.setter - def body_inertia(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.body_inertia, val_ptr, self.nbody*3 * sizeof(c_double)) - - @property - def body_invweight0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_invweight0, dtype=np.double, count=(self.nbody*2)), (self.nbody, 2, )) - arr.setflags(write=False) - return arr - - @body_invweight0.setter - def body_invweight0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.body_invweight0, val_ptr, self.nbody*2 * sizeof(c_double)) - - @property - def body_user(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.body_user, dtype=np.double, count=(self.nbody*self.nuser_body)), (self.nbody, self.nuser_body, )) - arr.setflags(write=False) - return arr - - @body_user.setter - def body_user(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.body_user, val_ptr, self.nbody*self.nuser_body * sizeof(c_double)) - - @property - def jnt_type(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_type, dtype=np.int, count=(self.njnt*1)), (self.njnt, 1, )) - arr.setflags(write=False) - return arr - - @jnt_type.setter - def jnt_type(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.jnt_type, val_ptr, self.njnt*1 * sizeof(c_int)) - - @property - def jnt_qposadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_qposadr, dtype=np.int, count=(self.njnt*1)), (self.njnt, 1, )) - arr.setflags(write=False) - return arr - - @jnt_qposadr.setter - def jnt_qposadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.jnt_qposadr, val_ptr, self.njnt*1 * sizeof(c_int)) - - @property - def jnt_dofadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_dofadr, dtype=np.int, count=(self.njnt*1)), (self.njnt, 1, )) - arr.setflags(write=False) - return arr - - @jnt_dofadr.setter - def jnt_dofadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.jnt_dofadr, val_ptr, self.njnt*1 * sizeof(c_int)) - - @property - def jnt_bodyid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_bodyid, dtype=np.int, count=(self.njnt*1)), (self.njnt, 1, )) - arr.setflags(write=False) - return arr - - @jnt_bodyid.setter - def jnt_bodyid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.jnt_bodyid, val_ptr, self.njnt*1 * sizeof(c_int)) - - @property - def jnt_limited(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_limited, dtype=np.uint8, count=(self.njnt*1)), (self.njnt, 1, )) - arr.setflags(write=False) - return arr - - @jnt_limited.setter - def jnt_limited(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.jnt_limited, val_ptr, self.njnt*1 * sizeof(c_ubyte)) - - @property - def jnt_solref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_solref, dtype=np.double, count=(self.njnt*2)), (self.njnt, 2, )) - arr.setflags(write=False) - return arr - - @jnt_solref.setter - def jnt_solref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.jnt_solref, val_ptr, self.njnt*2 * sizeof(c_double)) - - @property - def jnt_solimp(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_solimp, dtype=np.double, count=(self.njnt*3)), (self.njnt, 3, )) - arr.setflags(write=False) - return arr - - @jnt_solimp.setter - def jnt_solimp(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.jnt_solimp, val_ptr, self.njnt*3 * sizeof(c_double)) - - @property - def jnt_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_pos, dtype=np.double, count=(self.njnt*3)), (self.njnt, 3, )) - arr.setflags(write=False) - return arr - - @jnt_pos.setter - def jnt_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.jnt_pos, val_ptr, self.njnt*3 * sizeof(c_double)) - - @property - def jnt_axis(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_axis, dtype=np.double, count=(self.njnt*3)), (self.njnt, 3, )) - arr.setflags(write=False) - return arr - - @jnt_axis.setter - def jnt_axis(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.jnt_axis, val_ptr, self.njnt*3 * sizeof(c_double)) - - @property - def jnt_stiffness(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_stiffness, dtype=np.double, count=(self.njnt*1)), (self.njnt, 1, )) - arr.setflags(write=False) - return arr - - @jnt_stiffness.setter - def jnt_stiffness(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.jnt_stiffness, val_ptr, self.njnt*1 * sizeof(c_double)) - - @property - def jnt_range(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_range, dtype=np.double, count=(self.njnt*2)), (self.njnt, 2, )) - arr.setflags(write=False) - return arr - - @jnt_range.setter - def jnt_range(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.jnt_range, val_ptr, self.njnt*2 * sizeof(c_double)) - - @property - def jnt_margin(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_margin, dtype=np.double, count=(self.njnt*1)), (self.njnt, 1, )) - arr.setflags(write=False) - return arr - - @jnt_margin.setter - def jnt_margin(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.jnt_margin, val_ptr, self.njnt*1 * sizeof(c_double)) - - @property - def jnt_user(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.jnt_user, dtype=np.double, count=(self.njnt*self.nuser_jnt)), (self.njnt, self.nuser_jnt, )) - arr.setflags(write=False) - return arr - - @jnt_user.setter - def jnt_user(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.jnt_user, val_ptr, self.njnt*self.nuser_jnt * sizeof(c_double)) - - @property - def dof_bodyid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_bodyid, dtype=np.int, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_bodyid.setter - def dof_bodyid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.dof_bodyid, val_ptr, self.nv*1 * sizeof(c_int)) - - @property - def dof_jntid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_jntid, dtype=np.int, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_jntid.setter - def dof_jntid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.dof_jntid, val_ptr, self.nv*1 * sizeof(c_int)) - - @property - def dof_parentid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_parentid, dtype=np.int, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_parentid.setter - def dof_parentid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.dof_parentid, val_ptr, self.nv*1 * sizeof(c_int)) - - @property - def dof_Madr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_Madr, dtype=np.int, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_Madr.setter - def dof_Madr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.dof_Madr, val_ptr, self.nv*1 * sizeof(c_int)) - - @property - def dof_frictional(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_frictional, dtype=np.uint8, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_frictional.setter - def dof_frictional(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.dof_frictional, val_ptr, self.nv*1 * sizeof(c_ubyte)) - - @property - def dof_solref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_solref, dtype=np.double, count=(self.nv*2)), (self.nv, 2, )) - arr.setflags(write=False) - return arr - - @dof_solref.setter - def dof_solref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.dof_solref, val_ptr, self.nv*2 * sizeof(c_double)) - - @property - def dof_solimp(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_solimp, dtype=np.double, count=(self.nv*3)), (self.nv, 3, )) - arr.setflags(write=False) - return arr - - @dof_solimp.setter - def dof_solimp(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.dof_solimp, val_ptr, self.nv*3 * sizeof(c_double)) - - @property - def dof_frictionloss(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_frictionloss, dtype=np.double, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_frictionloss.setter - def dof_frictionloss(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.dof_frictionloss, val_ptr, self.nv*1 * sizeof(c_double)) - - @property - def dof_armature(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_armature, dtype=np.double, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_armature.setter - def dof_armature(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.dof_armature, val_ptr, self.nv*1 * sizeof(c_double)) - - @property - def dof_damping(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_damping, dtype=np.double, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_damping.setter - def dof_damping(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.dof_damping, val_ptr, self.nv*1 * sizeof(c_double)) - - @property - def dof_invweight0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.dof_invweight0, dtype=np.double, count=(self.nv*1)), (self.nv, 1, )) - arr.setflags(write=False) - return arr - - @dof_invweight0.setter - def dof_invweight0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.dof_invweight0, val_ptr, self.nv*1 * sizeof(c_double)) - - @property - def geom_type(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_type, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_type.setter - def geom_type(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.geom_type, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def geom_contype(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_contype, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_contype.setter - def geom_contype(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.geom_contype, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def geom_conaffinity(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_conaffinity, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_conaffinity.setter - def geom_conaffinity(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.geom_conaffinity, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def geom_condim(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_condim, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_condim.setter - def geom_condim(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.geom_condim, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def geom_bodyid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_bodyid, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_bodyid.setter - def geom_bodyid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.geom_bodyid, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def geom_dataid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_dataid, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_dataid.setter - def geom_dataid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.geom_dataid, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def geom_matid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_matid, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_matid.setter - def geom_matid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.geom_matid, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def geom_group(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_group, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_group.setter - def geom_group(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.geom_group, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def geom_solmix(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_solmix, dtype=np.double, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_solmix.setter - def geom_solmix(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_solmix, val_ptr, self.ngeom*1 * sizeof(c_double)) - - @property - def geom_solref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_solref, dtype=np.double, count=(self.ngeom*2)), (self.ngeom, 2, )) - arr.setflags(write=False) - return arr - - @geom_solref.setter - def geom_solref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_solref, val_ptr, self.ngeom*2 * sizeof(c_double)) - - @property - def geom_solimp(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_solimp, dtype=np.double, count=(self.ngeom*3)), (self.ngeom, 3, )) - arr.setflags(write=False) - return arr - - @geom_solimp.setter - def geom_solimp(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_solimp, val_ptr, self.ngeom*3 * sizeof(c_double)) - - @property - def geom_size(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_size, dtype=np.double, count=(self.ngeom*3)), (self.ngeom, 3, )) - arr.setflags(write=False) - return arr - - @geom_size.setter - def geom_size(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_size, val_ptr, self.ngeom*3 * sizeof(c_double)) - - @property - def geom_rbound(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_rbound, dtype=np.double, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_rbound.setter - def geom_rbound(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_rbound, val_ptr, self.ngeom*1 * sizeof(c_double)) - - @property - def geom_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_pos, dtype=np.double, count=(self.ngeom*3)), (self.ngeom, 3, )) - arr.setflags(write=False) - return arr - - @geom_pos.setter - def geom_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_pos, val_ptr, self.ngeom*3 * sizeof(c_double)) - - @property - def geom_quat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_quat, dtype=np.double, count=(self.ngeom*4)), (self.ngeom, 4, )) - arr.setflags(write=False) - return arr - - @geom_quat.setter - def geom_quat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_quat, val_ptr, self.ngeom*4 * sizeof(c_double)) - - @property - def geom_friction(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_friction, dtype=np.double, count=(self.ngeom*3)), (self.ngeom, 3, )) - arr.setflags(write=False) - return arr - - @geom_friction.setter - def geom_friction(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_friction, val_ptr, self.ngeom*3 * sizeof(c_double)) - - @property - def geom_margin(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_margin, dtype=np.double, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_margin.setter - def geom_margin(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_margin, val_ptr, self.ngeom*1 * sizeof(c_double)) - - @property - def geom_gap(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_gap, dtype=np.double, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @geom_gap.setter - def geom_gap(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_gap, val_ptr, self.ngeom*1 * sizeof(c_double)) - - @property - def geom_user(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_user, dtype=np.double, count=(self.ngeom*self.nuser_geom)), (self.ngeom, self.nuser_geom, )) - arr.setflags(write=False) - return arr - - @geom_user.setter - def geom_user(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.geom_user, val_ptr, self.ngeom*self.nuser_geom * sizeof(c_double)) - - @property - def geom_rgba(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.geom_rgba, dtype=np.float, count=(self.ngeom*4)), (self.ngeom, 4, )) - arr.setflags(write=False) - return arr - - @geom_rgba.setter - def geom_rgba(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.geom_rgba, val_ptr, self.ngeom*4 * sizeof(c_float)) - - @property - def site_type(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_type, dtype=np.int, count=(self.nsite*1)), (self.nsite, 1, )) - arr.setflags(write=False) - return arr - - @site_type.setter - def site_type(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.site_type, val_ptr, self.nsite*1 * sizeof(c_int)) - - @property - def site_bodyid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_bodyid, dtype=np.int, count=(self.nsite*1)), (self.nsite, 1, )) - arr.setflags(write=False) - return arr - - @site_bodyid.setter - def site_bodyid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.site_bodyid, val_ptr, self.nsite*1 * sizeof(c_int)) - - @property - def site_matid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_matid, dtype=np.int, count=(self.nsite*1)), (self.nsite, 1, )) - arr.setflags(write=False) - return arr - - @site_matid.setter - def site_matid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.site_matid, val_ptr, self.nsite*1 * sizeof(c_int)) - - @property - def site_group(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_group, dtype=np.int, count=(self.nsite*1)), (self.nsite, 1, )) - arr.setflags(write=False) - return arr - - @site_group.setter - def site_group(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.site_group, val_ptr, self.nsite*1 * sizeof(c_int)) - - @property - def site_size(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_size, dtype=np.double, count=(self.nsite*3)), (self.nsite, 3, )) - arr.setflags(write=False) - return arr - - @site_size.setter - def site_size(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.site_size, val_ptr, self.nsite*3 * sizeof(c_double)) - - @property - def site_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_pos, dtype=np.double, count=(self.nsite*3)), (self.nsite, 3, )) - arr.setflags(write=False) - return arr - - @site_pos.setter - def site_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.site_pos, val_ptr, self.nsite*3 * sizeof(c_double)) - - @property - def site_quat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_quat, dtype=np.double, count=(self.nsite*4)), (self.nsite, 4, )) - arr.setflags(write=False) - return arr - - @site_quat.setter - def site_quat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.site_quat, val_ptr, self.nsite*4 * sizeof(c_double)) - - @property - def site_user(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_user, dtype=np.double, count=(self.nsite*self.nuser_site)), (self.nsite, self.nuser_site, )) - arr.setflags(write=False) - return arr - - @site_user.setter - def site_user(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.site_user, val_ptr, self.nsite*self.nuser_site * sizeof(c_double)) - - @property - def site_rgba(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.site_rgba, dtype=np.float, count=(self.nsite*4)), (self.nsite, 4, )) - arr.setflags(write=False) - return arr - - @site_rgba.setter - def site_rgba(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.site_rgba, val_ptr, self.nsite*4 * sizeof(c_float)) - - @property - def cam_mode(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_mode, dtype=np.int, count=(self.ncam*1)), (self.ncam, 1, )) - arr.setflags(write=False) - return arr - - @cam_mode.setter - def cam_mode(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.cam_mode, val_ptr, self.ncam*1 * sizeof(c_int)) - - @property - def cam_bodyid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_bodyid, dtype=np.int, count=(self.ncam*1)), (self.ncam, 1, )) - arr.setflags(write=False) - return arr - - @cam_bodyid.setter - def cam_bodyid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.cam_bodyid, val_ptr, self.ncam*1 * sizeof(c_int)) - - @property - def cam_targetbodyid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_targetbodyid, dtype=np.int, count=(self.ncam*1)), (self.ncam, 1, )) - arr.setflags(write=False) - return arr - - @cam_targetbodyid.setter - def cam_targetbodyid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.cam_targetbodyid, val_ptr, self.ncam*1 * sizeof(c_int)) - - @property - def cam_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_pos, dtype=np.double, count=(self.ncam*3)), (self.ncam, 3, )) - arr.setflags(write=False) - return arr - - @cam_pos.setter - def cam_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_pos, val_ptr, self.ncam*3 * sizeof(c_double)) - - @property - def cam_quat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_quat, dtype=np.double, count=(self.ncam*4)), (self.ncam, 4, )) - arr.setflags(write=False) - return arr - - @cam_quat.setter - def cam_quat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_quat, val_ptr, self.ncam*4 * sizeof(c_double)) - - @property - def cam_poscom0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_poscom0, dtype=np.double, count=(self.ncam*3)), (self.ncam, 3, )) - arr.setflags(write=False) - return arr - - @cam_poscom0.setter - def cam_poscom0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_poscom0, val_ptr, self.ncam*3 * sizeof(c_double)) - - @property - def cam_pos0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_pos0, dtype=np.double, count=(self.ncam*3)), (self.ncam, 3, )) - arr.setflags(write=False) - return arr - - @cam_pos0.setter - def cam_pos0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_pos0, val_ptr, self.ncam*3 * sizeof(c_double)) - - @property - def cam_mat0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_mat0, dtype=np.double, count=(self.ncam*9)), (self.ncam, 9, )) - arr.setflags(write=False) - return arr - - @cam_mat0.setter - def cam_mat0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_mat0, val_ptr, self.ncam*9 * sizeof(c_double)) - - @property - def cam_fovy(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_fovy, dtype=np.double, count=(self.ncam*1)), (self.ncam, 1, )) - arr.setflags(write=False) - return arr - - @cam_fovy.setter - def cam_fovy(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_fovy, val_ptr, self.ncam*1 * sizeof(c_double)) - - @property - def cam_ipd(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.cam_ipd, dtype=np.double, count=(self.ncam*1)), (self.ncam, 1, )) - arr.setflags(write=False) - return arr - - @cam_ipd.setter - def cam_ipd(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.cam_ipd, val_ptr, self.ncam*1 * sizeof(c_double)) - - @property - def light_mode(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_mode, dtype=np.int, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @light_mode.setter - def light_mode(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.light_mode, val_ptr, self.nlight*1 * sizeof(c_int)) - - @property - def light_bodyid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_bodyid, dtype=np.int, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @light_bodyid.setter - def light_bodyid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.light_bodyid, val_ptr, self.nlight*1 * sizeof(c_int)) - - @property - def light_targetbodyid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_targetbodyid, dtype=np.int, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @light_targetbodyid.setter - def light_targetbodyid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.light_targetbodyid, val_ptr, self.nlight*1 * sizeof(c_int)) - - @property - def light_directional(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_directional, dtype=np.uint8, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @light_directional.setter - def light_directional(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.light_directional, val_ptr, self.nlight*1 * sizeof(c_ubyte)) - - @property - def light_castshadow(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_castshadow, dtype=np.uint8, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @light_castshadow.setter - def light_castshadow(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.light_castshadow, val_ptr, self.nlight*1 * sizeof(c_ubyte)) - - @property - def light_active(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_active, dtype=np.uint8, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @light_active.setter - def light_active(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.light_active, val_ptr, self.nlight*1 * sizeof(c_ubyte)) - - @property - def light_pos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_pos, dtype=np.double, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_pos.setter - def light_pos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.light_pos, val_ptr, self.nlight*3 * sizeof(c_double)) - - @property - def light_dir(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_dir, dtype=np.double, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_dir.setter - def light_dir(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.light_dir, val_ptr, self.nlight*3 * sizeof(c_double)) - - @property - def light_poscom0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_poscom0, dtype=np.double, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_poscom0.setter - def light_poscom0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.light_poscom0, val_ptr, self.nlight*3 * sizeof(c_double)) - - @property - def light_pos0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_pos0, dtype=np.double, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_pos0.setter - def light_pos0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.light_pos0, val_ptr, self.nlight*3 * sizeof(c_double)) - - @property - def light_dir0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_dir0, dtype=np.double, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_dir0.setter - def light_dir0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.light_dir0, val_ptr, self.nlight*3 * sizeof(c_double)) - - @property - def light_attenuation(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_attenuation, dtype=np.float, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_attenuation.setter - def light_attenuation(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.light_attenuation, val_ptr, self.nlight*3 * sizeof(c_float)) - - @property - def light_cutoff(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_cutoff, dtype=np.float, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @light_cutoff.setter - def light_cutoff(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.light_cutoff, val_ptr, self.nlight*1 * sizeof(c_float)) - - @property - def light_exponent(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_exponent, dtype=np.float, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @light_exponent.setter - def light_exponent(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.light_exponent, val_ptr, self.nlight*1 * sizeof(c_float)) - - @property - def light_ambient(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_ambient, dtype=np.float, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_ambient.setter - def light_ambient(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.light_ambient, val_ptr, self.nlight*3 * sizeof(c_float)) - - @property - def light_diffuse(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_diffuse, dtype=np.float, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_diffuse.setter - def light_diffuse(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.light_diffuse, val_ptr, self.nlight*3 * sizeof(c_float)) - - @property - def light_specular(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.light_specular, dtype=np.float, count=(self.nlight*3)), (self.nlight, 3, )) - arr.setflags(write=False) - return arr - - @light_specular.setter - def light_specular(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.light_specular, val_ptr, self.nlight*3 * sizeof(c_float)) - - @property - def mesh_faceadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_faceadr, dtype=np.int, count=(self.nmesh*1)), (self.nmesh, 1, )) - arr.setflags(write=False) - return arr - - @mesh_faceadr.setter - def mesh_faceadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.mesh_faceadr, val_ptr, self.nmesh*1 * sizeof(c_int)) - - @property - def mesh_facenum(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_facenum, dtype=np.int, count=(self.nmesh*1)), (self.nmesh, 1, )) - arr.setflags(write=False) - return arr - - @mesh_facenum.setter - def mesh_facenum(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.mesh_facenum, val_ptr, self.nmesh*1 * sizeof(c_int)) - - @property - def mesh_vertadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_vertadr, dtype=np.int, count=(self.nmesh*1)), (self.nmesh, 1, )) - arr.setflags(write=False) - return arr - - @mesh_vertadr.setter - def mesh_vertadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.mesh_vertadr, val_ptr, self.nmesh*1 * sizeof(c_int)) - - @property - def mesh_vertnum(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_vertnum, dtype=np.int, count=(self.nmesh*1)), (self.nmesh, 1, )) - arr.setflags(write=False) - return arr - - @mesh_vertnum.setter - def mesh_vertnum(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.mesh_vertnum, val_ptr, self.nmesh*1 * sizeof(c_int)) - - @property - def mesh_graphadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_graphadr, dtype=np.int, count=(self.nmesh*1)), (self.nmesh, 1, )) - arr.setflags(write=False) - return arr - - @mesh_graphadr.setter - def mesh_graphadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.mesh_graphadr, val_ptr, self.nmesh*1 * sizeof(c_int)) - - @property - def mesh_vert(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_vert, dtype=np.float, count=(self.nmeshvert*3)), (self.nmeshvert, 3, )) - arr.setflags(write=False) - return arr - - @mesh_vert.setter - def mesh_vert(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mesh_vert, val_ptr, self.nmeshvert*3 * sizeof(c_float)) - - @property - def mesh_normal(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_normal, dtype=np.float, count=(self.nmeshvert*3)), (self.nmeshvert, 3, )) - arr.setflags(write=False) - return arr - - @mesh_normal.setter - def mesh_normal(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mesh_normal, val_ptr, self.nmeshvert*3 * sizeof(c_float)) - - @property - def mesh_face(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_face, dtype=np.int, count=(self.nmeshface*3)), (self.nmeshface, 3, )) - arr.setflags(write=False) - return arr - - @mesh_face.setter - def mesh_face(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.mesh_face, val_ptr, self.nmeshface*3 * sizeof(c_int)) - - @property - def mesh_graph(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mesh_graph, dtype=np.int, count=(self.nmeshgraph*1)), (self.nmeshgraph, 1, )) - arr.setflags(write=False) - return arr - - @mesh_graph.setter - def mesh_graph(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.mesh_graph, val_ptr, self.nmeshgraph*1 * sizeof(c_int)) - - @property - def hfield_size(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.hfield_size, dtype=np.double, count=(self.nhfield*4)), (self.nhfield, 4, )) - arr.setflags(write=False) - return arr - - @hfield_size.setter - def hfield_size(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.hfield_size, val_ptr, self.nhfield*4 * sizeof(c_double)) - - @property - def hfield_nrow(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.hfield_nrow, dtype=np.int, count=(self.nhfield*1)), (self.nhfield, 1, )) - arr.setflags(write=False) - return arr - - @hfield_nrow.setter - def hfield_nrow(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.hfield_nrow, val_ptr, self.nhfield*1 * sizeof(c_int)) - - @property - def hfield_ncol(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.hfield_ncol, dtype=np.int, count=(self.nhfield*1)), (self.nhfield, 1, )) - arr.setflags(write=False) - return arr - - @hfield_ncol.setter - def hfield_ncol(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.hfield_ncol, val_ptr, self.nhfield*1 * sizeof(c_int)) - - @property - def hfield_adr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.hfield_adr, dtype=np.int, count=(self.nhfield*1)), (self.nhfield, 1, )) - arr.setflags(write=False) - return arr - - @hfield_adr.setter - def hfield_adr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.hfield_adr, val_ptr, self.nhfield*1 * sizeof(c_int)) - - @property - def hfield_data(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.hfield_data, dtype=np.float, count=(self.nhfielddata*1)), (self.nhfielddata, 1, )) - arr.setflags(write=False) - return arr - - @hfield_data.setter - def hfield_data(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.hfield_data, val_ptr, self.nhfielddata*1 * sizeof(c_float)) - - @property - def tex_type(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tex_type, dtype=np.int, count=(self.ntex*1)), (self.ntex, 1, )) - arr.setflags(write=False) - return arr - - @tex_type.setter - def tex_type(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.tex_type, val_ptr, self.ntex*1 * sizeof(c_int)) - - @property - def tex_height(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tex_height, dtype=np.int, count=(self.ntex*1)), (self.ntex, 1, )) - arr.setflags(write=False) - return arr - - @tex_height.setter - def tex_height(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.tex_height, val_ptr, self.ntex*1 * sizeof(c_int)) - - @property - def tex_width(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tex_width, dtype=np.int, count=(self.ntex*1)), (self.ntex, 1, )) - arr.setflags(write=False) - return arr - - @tex_width.setter - def tex_width(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.tex_width, val_ptr, self.ntex*1 * sizeof(c_int)) - - @property - def tex_adr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tex_adr, dtype=np.int, count=(self.ntex*1)), (self.ntex, 1, )) - arr.setflags(write=False) - return arr - - @tex_adr.setter - def tex_adr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.tex_adr, val_ptr, self.ntex*1 * sizeof(c_int)) - - @property - def tex_rgb(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tex_rgb, dtype=np.uint8, count=(self.ntexdata*1)), (self.ntexdata, 1, )) - arr.setflags(write=False) - return arr - - @tex_rgb.setter - def tex_rgb(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.tex_rgb, val_ptr, self.ntexdata*1 * sizeof(c_ubyte)) - - @property - def mat_texid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat_texid, dtype=np.int, count=(self.nmat*1)), (self.nmat, 1, )) - arr.setflags(write=False) - return arr - - @mat_texid.setter - def mat_texid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.mat_texid, val_ptr, self.nmat*1 * sizeof(c_int)) - - @property - def mat_texuniform(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat_texuniform, dtype=np.uint8, count=(self.nmat*1)), (self.nmat, 1, )) - arr.setflags(write=False) - return arr - - @mat_texuniform.setter - def mat_texuniform(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.mat_texuniform, val_ptr, self.nmat*1 * sizeof(c_ubyte)) - - @property - def mat_texrepeat(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat_texrepeat, dtype=np.float, count=(self.nmat*2)), (self.nmat, 2, )) - arr.setflags(write=False) - return arr - - @mat_texrepeat.setter - def mat_texrepeat(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mat_texrepeat, val_ptr, self.nmat*2 * sizeof(c_float)) - - @property - def mat_emission(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat_emission, dtype=np.float, count=(self.nmat*1)), (self.nmat, 1, )) - arr.setflags(write=False) - return arr - - @mat_emission.setter - def mat_emission(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mat_emission, val_ptr, self.nmat*1 * sizeof(c_float)) - - @property - def mat_specular(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat_specular, dtype=np.float, count=(self.nmat*1)), (self.nmat, 1, )) - arr.setflags(write=False) - return arr - - @mat_specular.setter - def mat_specular(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mat_specular, val_ptr, self.nmat*1 * sizeof(c_float)) - - @property - def mat_shininess(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat_shininess, dtype=np.float, count=(self.nmat*1)), (self.nmat, 1, )) - arr.setflags(write=False) - return arr - - @mat_shininess.setter - def mat_shininess(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mat_shininess, val_ptr, self.nmat*1 * sizeof(c_float)) - - @property - def mat_reflectance(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat_reflectance, dtype=np.float, count=(self.nmat*1)), (self.nmat, 1, )) - arr.setflags(write=False) - return arr - - @mat_reflectance.setter - def mat_reflectance(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mat_reflectance, val_ptr, self.nmat*1 * sizeof(c_float)) - - @property - def mat_rgba(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.mat_rgba, dtype=np.float, count=(self.nmat*4)), (self.nmat, 4, )) - arr.setflags(write=False) - return arr - - @mat_rgba.setter - def mat_rgba(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.mat_rgba, val_ptr, self.nmat*4 * sizeof(c_float)) - - @property - def pair_dim(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_dim, dtype=np.int, count=(self.npair*1)), (self.npair, 1, )) - arr.setflags(write=False) - return arr - - @pair_dim.setter - def pair_dim(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.pair_dim, val_ptr, self.npair*1 * sizeof(c_int)) - - @property - def pair_geom1(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_geom1, dtype=np.int, count=(self.npair*1)), (self.npair, 1, )) - arr.setflags(write=False) - return arr - - @pair_geom1.setter - def pair_geom1(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.pair_geom1, val_ptr, self.npair*1 * sizeof(c_int)) - - @property - def pair_geom2(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_geom2, dtype=np.int, count=(self.npair*1)), (self.npair, 1, )) - arr.setflags(write=False) - return arr - - @pair_geom2.setter - def pair_geom2(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.pair_geom2, val_ptr, self.npair*1 * sizeof(c_int)) - - @property - def pair_signature(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_signature, dtype=np.int, count=(self.npair*1)), (self.npair, 1, )) - arr.setflags(write=False) - return arr - - @pair_signature.setter - def pair_signature(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.pair_signature, val_ptr, self.npair*1 * sizeof(c_int)) - - @property - def pair_solref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_solref, dtype=np.double, count=(self.npair*2)), (self.npair, 2, )) - arr.setflags(write=False) - return arr - - @pair_solref.setter - def pair_solref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.pair_solref, val_ptr, self.npair*2 * sizeof(c_double)) - - @property - def pair_solimp(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_solimp, dtype=np.double, count=(self.npair*3)), (self.npair, 3, )) - arr.setflags(write=False) - return arr - - @pair_solimp.setter - def pair_solimp(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.pair_solimp, val_ptr, self.npair*3 * sizeof(c_double)) - - @property - def pair_margin(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_margin, dtype=np.double, count=(self.npair*1)), (self.npair, 1, )) - arr.setflags(write=False) - return arr - - @pair_margin.setter - def pair_margin(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.pair_margin, val_ptr, self.npair*1 * sizeof(c_double)) - - @property - def pair_gap(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_gap, dtype=np.double, count=(self.npair*1)), (self.npair, 1, )) - arr.setflags(write=False) - return arr - - @pair_gap.setter - def pair_gap(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.pair_gap, val_ptr, self.npair*1 * sizeof(c_double)) - - @property - def pair_friction(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.pair_friction, dtype=np.double, count=(self.npair*5)), (self.npair, 5, )) - arr.setflags(write=False) - return arr - - @pair_friction.setter - def pair_friction(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.pair_friction, val_ptr, self.npair*5 * sizeof(c_double)) - - @property - def exclude_signature(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.exclude_signature, dtype=np.int, count=(self.nexclude*1)), (self.nexclude, 1, )) - arr.setflags(write=False) - return arr - - @exclude_signature.setter - def exclude_signature(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.exclude_signature, val_ptr, self.nexclude*1 * sizeof(c_int)) - - @property - def eq_type(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.eq_type, dtype=np.int, count=(self.neq*1)), (self.neq, 1, )) - arr.setflags(write=False) - return arr - - @eq_type.setter - def eq_type(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.eq_type, val_ptr, self.neq*1 * sizeof(c_int)) - - @property - def eq_obj1id(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.eq_obj1id, dtype=np.int, count=(self.neq*1)), (self.neq, 1, )) - arr.setflags(write=False) - return arr - - @eq_obj1id.setter - def eq_obj1id(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.eq_obj1id, val_ptr, self.neq*1 * sizeof(c_int)) - - @property - def eq_obj2id(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.eq_obj2id, dtype=np.int, count=(self.neq*1)), (self.neq, 1, )) - arr.setflags(write=False) - return arr - - @eq_obj2id.setter - def eq_obj2id(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.eq_obj2id, val_ptr, self.neq*1 * sizeof(c_int)) - - @property - def eq_active(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.eq_active, dtype=np.uint8, count=(self.neq*1)), (self.neq, 1, )) - arr.setflags(write=False) - return arr - - @eq_active.setter - def eq_active(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.eq_active, val_ptr, self.neq*1 * sizeof(c_ubyte)) - - @property - def eq_solref(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.eq_solref, dtype=np.double, count=(self.neq*2)), (self.neq, 2, )) - arr.setflags(write=False) - return arr - - @eq_solref.setter - def eq_solref(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.eq_solref, val_ptr, self.neq*2 * sizeof(c_double)) - - @property - def eq_solimp(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.eq_solimp, dtype=np.double, count=(self.neq*3)), (self.neq, 3, )) - arr.setflags(write=False) - return arr - - @eq_solimp.setter - def eq_solimp(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.eq_solimp, val_ptr, self.neq*3 * sizeof(c_double)) - - @property - def eq_data(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.eq_data, dtype=np.double, count=(self.neq*7)), (self.neq, 7, )) - arr.setflags(write=False) - return arr - - @eq_data.setter - def eq_data(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.eq_data, val_ptr, self.neq*7 * sizeof(c_double)) - - @property - def tendon_adr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_adr, dtype=np.int, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_adr.setter - def tendon_adr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.tendon_adr, val_ptr, self.ntendon*1 * sizeof(c_int)) - - @property - def tendon_num(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_num, dtype=np.int, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_num.setter - def tendon_num(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.tendon_num, val_ptr, self.ntendon*1 * sizeof(c_int)) - - @property - def tendon_matid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_matid, dtype=np.int, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_matid.setter - def tendon_matid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.tendon_matid, val_ptr, self.ntendon*1 * sizeof(c_int)) - - @property - def tendon_limited(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_limited, dtype=np.uint8, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_limited.setter - def tendon_limited(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.tendon_limited, val_ptr, self.ntendon*1 * sizeof(c_ubyte)) - - @property - def tendon_frictional(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_frictional, dtype=np.uint8, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_frictional.setter - def tendon_frictional(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.tendon_frictional, val_ptr, self.ntendon*1 * sizeof(c_ubyte)) - - @property - def tendon_width(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_width, dtype=np.double, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_width.setter - def tendon_width(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_width, val_ptr, self.ntendon*1 * sizeof(c_double)) - - @property - def tendon_solref_lim(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_solref_lim, dtype=np.double, count=(self.ntendon*2)), (self.ntendon, 2, )) - arr.setflags(write=False) - return arr - - @tendon_solref_lim.setter - def tendon_solref_lim(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_solref_lim, val_ptr, self.ntendon*2 * sizeof(c_double)) - - @property - def tendon_solimp_lim(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_solimp_lim, dtype=np.double, count=(self.ntendon*3)), (self.ntendon, 3, )) - arr.setflags(write=False) - return arr - - @tendon_solimp_lim.setter - def tendon_solimp_lim(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_solimp_lim, val_ptr, self.ntendon*3 * sizeof(c_double)) - - @property - def tendon_solref_fri(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_solref_fri, dtype=np.double, count=(self.ntendon*2)), (self.ntendon, 2, )) - arr.setflags(write=False) - return arr - - @tendon_solref_fri.setter - def tendon_solref_fri(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_solref_fri, val_ptr, self.ntendon*2 * sizeof(c_double)) - - @property - def tendon_solimp_fri(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_solimp_fri, dtype=np.double, count=(self.ntendon*3)), (self.ntendon, 3, )) - arr.setflags(write=False) - return arr - - @tendon_solimp_fri.setter - def tendon_solimp_fri(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_solimp_fri, val_ptr, self.ntendon*3 * sizeof(c_double)) - - @property - def tendon_range(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_range, dtype=np.double, count=(self.ntendon*2)), (self.ntendon, 2, )) - arr.setflags(write=False) - return arr - - @tendon_range.setter - def tendon_range(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_range, val_ptr, self.ntendon*2 * sizeof(c_double)) - - @property - def tendon_margin(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_margin, dtype=np.double, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_margin.setter - def tendon_margin(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_margin, val_ptr, self.ntendon*1 * sizeof(c_double)) - - @property - def tendon_stiffness(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_stiffness, dtype=np.double, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_stiffness.setter - def tendon_stiffness(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_stiffness, val_ptr, self.ntendon*1 * sizeof(c_double)) - - @property - def tendon_damping(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_damping, dtype=np.double, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_damping.setter - def tendon_damping(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_damping, val_ptr, self.ntendon*1 * sizeof(c_double)) - - @property - def tendon_frictionloss(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_frictionloss, dtype=np.double, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_frictionloss.setter - def tendon_frictionloss(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_frictionloss, val_ptr, self.ntendon*1 * sizeof(c_double)) - - @property - def tendon_lengthspring(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_lengthspring, dtype=np.double, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_lengthspring.setter - def tendon_lengthspring(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_lengthspring, val_ptr, self.ntendon*1 * sizeof(c_double)) - - @property - def tendon_length0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_length0, dtype=np.double, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_length0.setter - def tendon_length0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_length0, val_ptr, self.ntendon*1 * sizeof(c_double)) - - @property - def tendon_invweight0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_invweight0, dtype=np.double, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @tendon_invweight0.setter - def tendon_invweight0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_invweight0, val_ptr, self.ntendon*1 * sizeof(c_double)) - - @property - def tendon_user(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_user, dtype=np.double, count=(self.ntendon*self.nuser_tendon)), (self.ntendon, self.nuser_tendon, )) - arr.setflags(write=False) - return arr - - @tendon_user.setter - def tendon_user(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.tendon_user, val_ptr, self.ntendon*self.nuser_tendon * sizeof(c_double)) - - @property - def tendon_rgba(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.tendon_rgba, dtype=np.float, count=(self.ntendon*4)), (self.ntendon, 4, )) - arr.setflags(write=False) - return arr - - @tendon_rgba.setter - def tendon_rgba(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_float)) - memmove(self._wrapped.contents.tendon_rgba, val_ptr, self.ntendon*4 * sizeof(c_float)) - - @property - def wrap_type(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.wrap_type, dtype=np.int, count=(self.nwrap*1)), (self.nwrap, 1, )) - arr.setflags(write=False) - return arr - - @wrap_type.setter - def wrap_type(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.wrap_type, val_ptr, self.nwrap*1 * sizeof(c_int)) - - @property - def wrap_objid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.wrap_objid, dtype=np.int, count=(self.nwrap*1)), (self.nwrap, 1, )) - arr.setflags(write=False) - return arr - - @wrap_objid.setter - def wrap_objid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.wrap_objid, val_ptr, self.nwrap*1 * sizeof(c_int)) - - @property - def wrap_prm(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.wrap_prm, dtype=np.double, count=(self.nwrap*1)), (self.nwrap, 1, )) - arr.setflags(write=False) - return arr - - @wrap_prm.setter - def wrap_prm(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.wrap_prm, val_ptr, self.nwrap*1 * sizeof(c_double)) - - @property - def actuator_trntype(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_trntype, dtype=np.int, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_trntype.setter - def actuator_trntype(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.actuator_trntype, val_ptr, self.nu*1 * sizeof(c_int)) - - @property - def actuator_dyntype(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_dyntype, dtype=np.int, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_dyntype.setter - def actuator_dyntype(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.actuator_dyntype, val_ptr, self.nu*1 * sizeof(c_int)) - - @property - def actuator_gaintype(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_gaintype, dtype=np.int, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_gaintype.setter - def actuator_gaintype(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.actuator_gaintype, val_ptr, self.nu*1 * sizeof(c_int)) - - @property - def actuator_biastype(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_biastype, dtype=np.int, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_biastype.setter - def actuator_biastype(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.actuator_biastype, val_ptr, self.nu*1 * sizeof(c_int)) - - @property - def actuator_trnid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_trnid, dtype=np.int, count=(self.nu*2)), (self.nu, 2, )) - arr.setflags(write=False) - return arr - - @actuator_trnid.setter - def actuator_trnid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.actuator_trnid, val_ptr, self.nu*2 * sizeof(c_int)) - - @property - def actuator_ctrllimited(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_ctrllimited, dtype=np.uint8, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_ctrllimited.setter - def actuator_ctrllimited(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.actuator_ctrllimited, val_ptr, self.nu*1 * sizeof(c_ubyte)) - - @property - def actuator_forcelimited(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_forcelimited, dtype=np.uint8, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_forcelimited.setter - def actuator_forcelimited(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_ubyte)) - memmove(self._wrapped.contents.actuator_forcelimited, val_ptr, self.nu*1 * sizeof(c_ubyte)) - - @property - def actuator_dynprm(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_dynprm, dtype=np.double, count=(self.nu*3)), (self.nu, 3, )) - arr.setflags(write=False) - return arr - - @actuator_dynprm.setter - def actuator_dynprm(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_dynprm, val_ptr, self.nu*3 * sizeof(c_double)) - - @property - def actuator_gainprm(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_gainprm, dtype=np.double, count=(self.nu*3)), (self.nu, 3, )) - arr.setflags(write=False) - return arr - - @actuator_gainprm.setter - def actuator_gainprm(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_gainprm, val_ptr, self.nu*3 * sizeof(c_double)) - - @property - def actuator_biasprm(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_biasprm, dtype=np.double, count=(self.nu*3)), (self.nu, 3, )) - arr.setflags(write=False) - return arr - - @actuator_biasprm.setter - def actuator_biasprm(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_biasprm, val_ptr, self.nu*3 * sizeof(c_double)) - - @property - def actuator_ctrlrange(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_ctrlrange, dtype=np.double, count=(self.nu*2)), (self.nu, 2, )) - arr.setflags(write=False) - return arr - - @actuator_ctrlrange.setter - def actuator_ctrlrange(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_ctrlrange, val_ptr, self.nu*2 * sizeof(c_double)) - - @property - def actuator_forcerange(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_forcerange, dtype=np.double, count=(self.nu*2)), (self.nu, 2, )) - arr.setflags(write=False) - return arr - - @actuator_forcerange.setter - def actuator_forcerange(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_forcerange, val_ptr, self.nu*2 * sizeof(c_double)) - - @property - def actuator_gear(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_gear, dtype=np.double, count=(self.nu*6)), (self.nu, 6, )) - arr.setflags(write=False) - return arr - - @actuator_gear.setter - def actuator_gear(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_gear, val_ptr, self.nu*6 * sizeof(c_double)) - - @property - def actuator_cranklength(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_cranklength, dtype=np.double, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_cranklength.setter - def actuator_cranklength(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_cranklength, val_ptr, self.nu*1 * sizeof(c_double)) - - @property - def actuator_invweight0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_invweight0, dtype=np.double, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_invweight0.setter - def actuator_invweight0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_invweight0, val_ptr, self.nu*1 * sizeof(c_double)) - - @property - def actuator_length0(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_length0, dtype=np.double, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @actuator_length0.setter - def actuator_length0(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_length0, val_ptr, self.nu*1 * sizeof(c_double)) - - @property - def actuator_lengthrange(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_lengthrange, dtype=np.double, count=(self.nu*2)), (self.nu, 2, )) - arr.setflags(write=False) - return arr - - @actuator_lengthrange.setter - def actuator_lengthrange(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_lengthrange, val_ptr, self.nu*2 * sizeof(c_double)) - - @property - def actuator_user(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.actuator_user, dtype=np.double, count=(self.nu*self.nuser_actuator)), (self.nu, self.nuser_actuator, )) - arr.setflags(write=False) - return arr - - @actuator_user.setter - def actuator_user(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.actuator_user, val_ptr, self.nu*self.nuser_actuator * sizeof(c_double)) - - @property - def sensor_type(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.sensor_type, dtype=np.int, count=(self.nsensor*1)), (self.nsensor, 1, )) - arr.setflags(write=False) - return arr - - @sensor_type.setter - def sensor_type(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.sensor_type, val_ptr, self.nsensor*1 * sizeof(c_int)) - - @property - def sensor_objid(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.sensor_objid, dtype=np.int, count=(self.nsensor*1)), (self.nsensor, 1, )) - arr.setflags(write=False) - return arr - - @sensor_objid.setter - def sensor_objid(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.sensor_objid, val_ptr, self.nsensor*1 * sizeof(c_int)) - - @property - def sensor_dim(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.sensor_dim, dtype=np.int, count=(self.nsensor*1)), (self.nsensor, 1, )) - arr.setflags(write=False) - return arr - - @sensor_dim.setter - def sensor_dim(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.sensor_dim, val_ptr, self.nsensor*1 * sizeof(c_int)) - - @property - def sensor_adr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.sensor_adr, dtype=np.int, count=(self.nsensor*1)), (self.nsensor, 1, )) - arr.setflags(write=False) - return arr - - @sensor_adr.setter - def sensor_adr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.sensor_adr, val_ptr, self.nsensor*1 * sizeof(c_int)) - - @property - def sensor_scale(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.sensor_scale, dtype=np.double, count=(self.nsensor*1)), (self.nsensor, 1, )) - arr.setflags(write=False) - return arr - - @sensor_scale.setter - def sensor_scale(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.sensor_scale, val_ptr, self.nsensor*1 * sizeof(c_double)) - - @property - def sensor_user(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.sensor_user, dtype=np.double, count=(self.nsensor*self.nuser_sensor)), (self.nsensor, self.nuser_sensor, )) - arr.setflags(write=False) - return arr - - @sensor_user.setter - def sensor_user(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.sensor_user, val_ptr, self.nsensor*self.nuser_sensor * sizeof(c_double)) - - @property - def numeric_adr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.numeric_adr, dtype=np.int, count=(self.nnumeric*1)), (self.nnumeric, 1, )) - arr.setflags(write=False) - return arr - - @numeric_adr.setter - def numeric_adr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.numeric_adr, val_ptr, self.nnumeric*1 * sizeof(c_int)) - - @property - def numeric_size(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.numeric_size, dtype=np.int, count=(self.nnumeric*1)), (self.nnumeric, 1, )) - arr.setflags(write=False) - return arr - - @numeric_size.setter - def numeric_size(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.numeric_size, val_ptr, self.nnumeric*1 * sizeof(c_int)) - - @property - def numeric_data(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.numeric_data, dtype=np.double, count=(self.nnumericdata*1)), (self.nnumericdata, 1, )) - arr.setflags(write=False) - return arr - - @numeric_data.setter - def numeric_data(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.numeric_data, val_ptr, self.nnumericdata*1 * sizeof(c_double)) - - @property - def text_adr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.text_adr, dtype=np.int, count=(self.ntext*1)), (self.ntext, 1, )) - arr.setflags(write=False) - return arr - - @text_adr.setter - def text_adr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.text_adr, val_ptr, self.ntext*1 * sizeof(c_int)) - - @property - def text_data(self): - return self._wrapped.contents.text_data - - @property - def key_time(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.key_time, dtype=np.double, count=(self.nkey*1)), (self.nkey, 1, )) - arr.setflags(write=False) - return arr - - @key_time.setter - def key_time(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.key_time, val_ptr, self.nkey*1 * sizeof(c_double)) - - @property - def key_qpos(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.key_qpos, dtype=np.double, count=(self.nkey*self.nq)), (self.nkey, self.nq, )) - arr.setflags(write=False) - return arr - - @key_qpos.setter - def key_qpos(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.key_qpos, val_ptr, self.nkey*self.nq * sizeof(c_double)) - - @property - def key_qvel(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.key_qvel, dtype=np.double, count=(self.nkey*self.nv)), (self.nkey, self.nv, )) - arr.setflags(write=False) - return arr - - @key_qvel.setter - def key_qvel(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.key_qvel, val_ptr, self.nkey*self.nv * sizeof(c_double)) - - @property - def key_act(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.key_act, dtype=np.double, count=(self.nkey*self.na)), (self.nkey, self.na, )) - arr.setflags(write=False) - return arr - - @key_act.setter - def key_act(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_double)) - memmove(self._wrapped.contents.key_act, val_ptr, self.nkey*self.na * sizeof(c_double)) - - @property - def name_bodyadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_bodyadr, dtype=np.int, count=(self.nbody*1)), (self.nbody, 1, )) - arr.setflags(write=False) - return arr - - @name_bodyadr.setter - def name_bodyadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_bodyadr, val_ptr, self.nbody*1 * sizeof(c_int)) - - @property - def name_jntadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_jntadr, dtype=np.int, count=(self.njnt*1)), (self.njnt, 1, )) - arr.setflags(write=False) - return arr - - @name_jntadr.setter - def name_jntadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_jntadr, val_ptr, self.njnt*1 * sizeof(c_int)) - - @property - def name_geomadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_geomadr, dtype=np.int, count=(self.ngeom*1)), (self.ngeom, 1, )) - arr.setflags(write=False) - return arr - - @name_geomadr.setter - def name_geomadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_geomadr, val_ptr, self.ngeom*1 * sizeof(c_int)) - - @property - def name_siteadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_siteadr, dtype=np.int, count=(self.nsite*1)), (self.nsite, 1, )) - arr.setflags(write=False) - return arr - - @name_siteadr.setter - def name_siteadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_siteadr, val_ptr, self.nsite*1 * sizeof(c_int)) - - @property - def name_camadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_camadr, dtype=np.int, count=(self.ncam*1)), (self.ncam, 1, )) - arr.setflags(write=False) - return arr - - @name_camadr.setter - def name_camadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_camadr, val_ptr, self.ncam*1 * sizeof(c_int)) - - @property - def name_lightadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_lightadr, dtype=np.int, count=(self.nlight*1)), (self.nlight, 1, )) - arr.setflags(write=False) - return arr - - @name_lightadr.setter - def name_lightadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_lightadr, val_ptr, self.nlight*1 * sizeof(c_int)) - - @property - def name_meshadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_meshadr, dtype=np.int, count=(self.nmesh*1)), (self.nmesh, 1, )) - arr.setflags(write=False) - return arr - - @name_meshadr.setter - def name_meshadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_meshadr, val_ptr, self.nmesh*1 * sizeof(c_int)) - - @property - def name_hfieldadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_hfieldadr, dtype=np.int, count=(self.nhfield*1)), (self.nhfield, 1, )) - arr.setflags(write=False) - return arr - - @name_hfieldadr.setter - def name_hfieldadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_hfieldadr, val_ptr, self.nhfield*1 * sizeof(c_int)) - - @property - def name_texadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_texadr, dtype=np.int, count=(self.ntex*1)), (self.ntex, 1, )) - arr.setflags(write=False) - return arr - - @name_texadr.setter - def name_texadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_texadr, val_ptr, self.ntex*1 * sizeof(c_int)) - - @property - def name_matadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_matadr, dtype=np.int, count=(self.nmat*1)), (self.nmat, 1, )) - arr.setflags(write=False) - return arr - - @name_matadr.setter - def name_matadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_matadr, val_ptr, self.nmat*1 * sizeof(c_int)) - - @property - def name_eqadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_eqadr, dtype=np.int, count=(self.neq*1)), (self.neq, 1, )) - arr.setflags(write=False) - return arr - - @name_eqadr.setter - def name_eqadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_eqadr, val_ptr, self.neq*1 * sizeof(c_int)) - - @property - def name_tendonadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_tendonadr, dtype=np.int, count=(self.ntendon*1)), (self.ntendon, 1, )) - arr.setflags(write=False) - return arr - - @name_tendonadr.setter - def name_tendonadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_tendonadr, val_ptr, self.ntendon*1 * sizeof(c_int)) - - @property - def name_actuatoradr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_actuatoradr, dtype=np.int, count=(self.nu*1)), (self.nu, 1, )) - arr.setflags(write=False) - return arr - - @name_actuatoradr.setter - def name_actuatoradr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_actuatoradr, val_ptr, self.nu*1 * sizeof(c_int)) - - @property - def name_sensoradr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_sensoradr, dtype=np.int, count=(self.nsensor*1)), (self.nsensor, 1, )) - arr.setflags(write=False) - return arr - - @name_sensoradr.setter - def name_sensoradr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_sensoradr, val_ptr, self.nsensor*1 * sizeof(c_int)) - - @property - def name_numericadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_numericadr, dtype=np.int, count=(self.nnumeric*1)), (self.nnumeric, 1, )) - arr.setflags(write=False) - return arr - - @name_numericadr.setter - def name_numericadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_numericadr, val_ptr, self.nnumeric*1 * sizeof(c_int)) - - @property - def name_textadr(self): - arr = np.reshape(np.fromiter(self._wrapped.contents.name_textadr, dtype=np.int, count=(self.ntext*1)), (self.ntext, 1, )) - arr.setflags(write=False) - return arr - - @name_textadr.setter - def name_textadr(self, value): - val_ptr = np.array(value, dtype=np.float64).ctypes.data_as(POINTER(c_int)) - memmove(self._wrapped.contents.name_textadr, val_ptr, self.ntext*1 * sizeof(c_int)) - - @property - def names(self): - return self._wrapped.contents.names diff --git a/mujoco_py/mjviewer.py b/mujoco_py/mjviewer.py index a1f1f73b..df49293d 100644 --- a/mujoco_py/mjviewer.py +++ b/mujoco_py/mjviewer.py @@ -1,334 +1,357 @@ -import ctypes -from ctypes import pointer, byref -import logging from threading import Lock -import os +import glfw +from mujoco_py.builder import cymj +from mujoco_py.generated import const +import time +import copy +from multiprocessing import Process +from mujoco_py.utils import rec_copy, rec_assign +import imageio -from . import mjcore, mjconstants, glfw -from .mjlib import mjlib -import numpy as np -import OpenGL.GL as gl -logger = logging.getLogger(__name__) +class MjViewerBasic(cymj.MjRenderContextWindow): + """ + A simple display GUI showing the scene of an :class:`.MjSim` with a mouse-movable camera. -mjCAT_ALL = 7 + :class:`.MjViewer` extends this class to provide more sophisticated playback and interaction controls. + Parameters + ---------- + sim : :class:`.MjSim` + The simulator to display. + """ -def _glfw_error_callback(e, d): - logger.error('GLFW error: %s, desc: %s', e, d) + def __init__(self, sim): + super().__init__(sim) - -class MjViewer(object): - - def __init__(self, visible=True, init_width=500, init_height=500, go_fast=False): - """ - Set go_fast=True to run at full speed instead of waiting for the 60 Hz monitor refresh - init_width and init_height set window size. On Mac Retina displays, they are in nominal - pixels but .render returns an array of device pixels, so the array will be twice as big - as you expect. - """ - self.visible = visible - self.init_width = init_width - self.init_height = init_height - self.go_fast = not visible or go_fast - - self.last_render_time = 0 - self.objects = mjcore.MJVOBJECTS() - self.cam = mjcore.MJVCAMERA() - self.vopt = mjcore.MJVOPTION() - self.ropt = mjcore.MJROPTION() - self.con = mjcore.MJRCONTEXT() - self.running = False - self.speedtype = 1 - self.window = None - self.model = None - self.gui_lock = Lock() - - # framebuffer objects - self._fbo = None - self._rbo = None - - self._last_button = 0 - self._last_click_time = 0 + self._gui_lock = Lock() self._button_left_pressed = False - self._button_middle_pressed = False self._button_right_pressed = False self._last_mouse_x = 0 self._last_mouse_y = 0 - def set_model(self, model): - glfw.make_context_current(self.window) - self.model = model - if model: - self.data = model.data - else: - self.data = None - if self.running: - if model: - mjlib.mjr_makeContext(model.ptr, byref(self.con), 150) - else: - mjlib.mjr_makeContext(None, byref(self.con), 150) - self.render() - if model: - self.autoscale() - - def autoscale(self): - glfw.make_context_current(self.window) - self.cam.lookat[0] = self.model.stat.center[0] - self.cam.lookat[1] = self.model.stat.center[1] - self.cam.lookat[2] = self.model.stat.center[2] - self.cam.distance = 0.5 * self.model.stat.extent - self.cam.camid = -1 - self.cam.trackbodyid = 1 - width, height = self.get_dimensions() - mjlib.mjv_updateCameraPose(byref(self.cam), width*1.0/height) - - def get_rect(self): - rect = mjcore.MJRRECT(0, 0, 0, 0) - rect.width, rect.height = self.get_dimensions() - return rect - - def render(self): - if not self.data: - return - glfw.make_context_current(self.window) - self.gui_lock.acquire() - rect = self.get_rect() - arr = (ctypes.c_double*3)(0, 0, 0) - - mjlib.mjv_makeGeoms(self.model.ptr, self.data.ptr, byref(self.objects), byref(self.vopt), mjCAT_ALL, 0, None, None, ctypes.cast(arr, ctypes.POINTER(ctypes.c_double))) - mjlib.mjv_makeLights(self.model.ptr, self.data.ptr, byref(self.objects)) - - mjlib.mjv_setCamera(self.model.ptr, self.data.ptr, byref(self.cam)) - - mjlib.mjv_updateCameraPose(byref(self.cam), rect.width*1.0/rect.height) - - mjlib.mjr_render(0, rect, byref(self.objects), byref(self.ropt), byref(self.cam.pose), byref(self.con)) - - self.gui_lock.release() - - def get_dimensions(self): - """ - returns a tuple (width, height) - """ - if self.window: - return glfw.get_framebuffer_size(self.window) - return (self.init_width, self.init_height) + framebuffer_width, _ = glfw.get_framebuffer_size(self.window) + window_width, _ = glfw.get_window_size(self.window) + self._scale = framebuffer_width * 1.0 / window_width - def get_image(self): - """ - returns a tuple (data, width, height), where: - - data is a string with raw bytes representing the pixels in 3-channel RGB - (i.e. every three bytes = 1 pixel) - - width is the width of the image - - height is the height of the image - """ - glfw.make_context_current(self.window) - width, height = self.get_dimensions() - gl.glReadBuffer(gl.GL_BACK) - data = gl.glReadPixels(0, 0, width, height, gl.GL_RGB, gl.GL_UNSIGNED_BYTE) - return (data, width, height) + glfw.set_cursor_pos_callback(self.window, self._cursor_pos_callback) + glfw.set_mouse_button_callback( + self.window, self._mouse_button_callback) + glfw.set_scroll_callback(self.window, self._scroll_callback) + glfw.set_key_callback(self.window, self.key_callback) - def _init_framebuffer_object(self): + def render(self): """ - returns a Framebuffer Object to support offscreen rendering. - http://learnopengl.com/#!Advanced-OpenGL/Framebuffers + Render the current simulation state to the screen or off-screen buffer. """ - fbo = gl.glGenFramebuffers(1) - gl.glBindFramebuffer(gl.GL_FRAMEBUFFER, fbo) - - rbo = gl.glGenRenderbuffers(1) - gl.glBindRenderbuffer(gl.GL_RENDERBUFFER, rbo) - gl.glRenderbufferStorage( - gl.GL_RENDERBUFFER, - gl.GL_RGBA, - self.init_width, - self.init_height - ) - gl.glFramebufferRenderbuffer( - gl.GL_FRAMEBUFFER, gl.GL_COLOR_ATTACHMENT0, gl.GL_RENDERBUFFER, rbo) - gl.glBindRenderbuffer(gl.GL_RENDERBUFFER, 0) - gl.glBindFramebuffer(gl.GL_FRAMEBUFFER, 0) - fbo_status = gl.glCheckFramebufferStatus(gl.GL_FRAMEBUFFER) - - if fbo_status != gl.GL_FRAMEBUFFER_COMPLETE: - gl.glDeleteFramebuffers([fbo]) - glfw.terminate() - raise Exception('Framebuffer failed status check: %s' % fbo_status) - - self._fbo = fbo - self._rbo = rbo - - def start(self): - logger.info('initializing glfw@%s', glfw.get_version()) - - glfw.set_error_callback(_glfw_error_callback) - - if not glfw.init(): - raise Exception('glfw failed to initialize') - - window = None - if self.visible: - glfw.window_hint(glfw.SAMPLES, 4) - glfw.window_hint(glfw.VISIBLE, 1); - else: - glfw.window_hint(glfw.VISIBLE, 0); - - # try stereo if refresh rate is at least 100Hz - stereo_available = False - - _, _, refresh_rate = glfw.get_video_mode(glfw.get_primary_monitor()) - if refresh_rate >= 100: - glfw.window_hint(glfw.STEREO, 1) - window = glfw.create_window( - self.init_width, self.init_height, "Simulate", None, None) - if window: - stereo_available = True - - # no stereo: try mono - if not window: - glfw.window_hint(glfw.STEREO, 0) - window = glfw.create_window( - self.init_width, self.init_height, "Simulate", None, None) - - if not window: - glfw.terminate() + if self.window is None: return + elif glfw.window_should_close(self.window): + exit(0) - self.running = True - - # Make the window's context current - glfw.make_context_current(window) - - if self.go_fast: - # Let's go faster than 60 Hz - glfw.swap_interval(0) - - self._init_framebuffer_object() - - width, height = glfw.get_framebuffer_size(window) - width1, height = glfw.get_window_size(window) - self._scale = width * 1.0 / width1 + with self._gui_lock: + super().render() - self.window = window - - mjlib.mjv_makeObjects(byref(self.objects), 1000) - - mjlib.mjv_defaultCamera(byref(self.cam)) - mjlib.mjv_defaultOption(byref(self.vopt)) - mjlib.mjr_defaultOption(byref(self.ropt)) - - mjlib.mjr_defaultContext(byref(self.con)) - - if self.model: - mjlib.mjr_makeContext(self.model.ptr, byref(self.con), 150) - self.autoscale() - else: - mjlib.mjr_makeContext(None, byref(self.con), 150) - - glfw.set_cursor_pos_callback(window, self.handle_mouse_move) - glfw.set_mouse_button_callback(window, self.handle_mouse_button) - glfw.set_scroll_callback(window, self.handle_scroll) - - def handle_mouse_move(self, window, xpos, ypos): - # no buttons down: nothing to do - if not self._button_left_pressed \ - and not self._button_middle_pressed \ - and not self._button_right_pressed: - return + glfw.poll_events() - # compute mouse displacement, save - dx = int(self._scale * xpos) - self._last_mouse_x - dy = int(self._scale * ypos) - self._last_mouse_y - self._last_mouse_x = int(self._scale * xpos) - self._last_mouse_y = int(self._scale * ypos) + def key_callback(self, window, key, scancode, action, mods): + if action == glfw.RELEASE and key == glfw.KEY_ESCAPE: + print("Pressed ESC") + print("Quitting.") + exit(0) - # require model - if not self.model: + def _cursor_pos_callback(self, window, xpos, ypos): + if not (self._button_left_pressed or self._button_right_pressed): return - # get current window size - width, height = glfw.get_framebuffer_size(self.window) - - # get shift key state - mod_shift = glfw.get_key(window, glfw.KEY_LEFT_SHIFT) == glfw.PRESS \ - or glfw.get_key(window, glfw.KEY_RIGHT_SHIFT) == glfw.PRESS - - # determine action based on mouse button - action = None + # Determine whether to move, zoom or rotate view + mod_shift = ( + glfw.get_key(window, glfw.KEY_LEFT_SHIFT) == glfw.PRESS or + glfw.get_key(window, glfw.KEY_RIGHT_SHIFT) == glfw.PRESS) if self._button_right_pressed: - action = mjconstants.MOUSE_MOVE_H if mod_shift else mjconstants.MOUSE_MOVE_V + action = const.MOUSE_MOVE_H if mod_shift else const.MOUSE_MOVE_V elif self._button_left_pressed: - action = mjconstants.MOUSE_ROTATE_H if mod_shift else mjconstants.MOUSE_ROTATE_V + action = const.MOUSE_ROTATE_H if mod_shift else const.MOUSE_ROTATE_V else: - action = mjconstants.MOUSE_ZOOM + action = const.MOUSE_ZOOM - self.gui_lock.acquire() - - mjlib.mjv_moveCamera(action, dx, dy, byref(self.cam), width, height) + # Determine + dx = int(self._scale * xpos) - self._last_mouse_x + dy = int(self._scale * ypos) - self._last_mouse_y + width, height = glfw.get_framebuffer_size(window) - self.gui_lock.release() + with self._gui_lock: + self.move_camera(action, dx / height, dy / height) + self._last_mouse_x = int(self._scale * xpos) + self._last_mouse_y = int(self._scale * ypos) - def handle_mouse_button(self, window, button, act, mods): - # update button state - self._button_left_pressed = \ - glfw.get_mouse_button(window, glfw.MOUSE_BUTTON_LEFT) == glfw.PRESS - self._button_middle_pressed = \ - glfw.get_mouse_button(window, glfw.MOUSE_BUTTON_MIDDLE) == glfw.PRESS - self._button_right_pressed = \ - glfw.get_mouse_button(window, glfw.MOUSE_BUTTON_RIGHT) == glfw.PRESS + def _mouse_button_callback(self, window, button, act, mods): + self._button_left_pressed = ( + glfw.get_mouse_button(window, glfw.MOUSE_BUTTON_LEFT) == glfw.PRESS) + self._button_right_pressed = ( + glfw.get_mouse_button(window, glfw.MOUSE_BUTTON_RIGHT) == glfw.PRESS) - # update mouse position x, y = glfw.get_cursor_pos(window) self._last_mouse_x = int(self._scale * x) self._last_mouse_y = int(self._scale * y) - if not self.model: - return - - self.gui_lock.acquire() - - # save info - if act == glfw.PRESS: - self._last_button = button - self._last_click_time = glfw.get_time() - - self.gui_lock.release() + def _scroll_callback(self, window, x_offset, y_offset): + with self._gui_lock: + self.move_camera(const.MOUSE_ZOOM, 0, -0.05 * y_offset) + + +class MjViewer(MjViewerBasic): + """ + Extends :class:`.MjViewerBasic` to add video recording, interactive time and interaction controls. + + The key bindings are as follows: + + - TAB: Switch between MuJoCo cameras. + - H: Toggle hiding all GUI components. + - SPACE: Pause/unpause the simulation. + - RIGHT: Advance simulation by one step. + - V: Start/stop video recording. + - T: Capture screenshot. + - I: Drop into ``ipdb`` debugger. + - S/F: Decrease/Increase simulation playback speed. + - C: Toggle visualization of contact forces (off by default). + - D: Enable/disable frame skipping when rendering lags behind real time. + - R: Toggle transparency of geoms. + - M: Toggle display of mocap bodies. + + Parameters + ---------- + sim : :class:`.MjSim` + The simulator to display. + """ + + def __init__(self, sim): + super().__init__(sim) + + self._ncam = sim.model.ncam + self._paused = False # is viewer paused. + # should we advance viewer just by one step. + self._advance_by_one_step = False + + # Vars for recording video + self._record_video = False + self._video_frames = [] + self._video_idx = 0 + self._video_path = "/tmp/video_%07d.mp4" + + # vars for capturing screen + self._image_idx = 0 + self._image_path = "/tmp/frame_%07d.png" + + # run_speed = x1, means running real time, x2 means fast-forward times + # two. + self._run_speed = 1.0 + self._loop_count = 0 + self._render_every_frame = False + + self._show_mocap = True # Show / hide mocap bodies. + self._transparent = False # Make everything transparent. + + # this variable is estamated as a running average. + self._time_per_render = 1 / 60.0 + self._hide_overlay = False # hide the entire overlay. + self._user_overlay = {} - def handle_scroll(self, window, x_offset, y_offset): - # require model - if not self.model: + def render(self): + def render_inner_loop(self): + render_start = time.time() + + self._overlay.clear() + if not self._hide_overlay: + for k, v in self._user_overlay.items(): + self._overlay[k] = v + self._create_full_overlay() + + super().render() + if self._record_video: + frame = self._read_pixels_as_in_window() + self._video_frames.append(frame) + else: + self._time_per_render = 0.9 * self._time_per_render + \ + 0.1 * (time.time() - render_start) + + self._user_overlay = copy.deepcopy(self._overlay) + # Render the same frame if paused. + if self._paused: + while self._paused: + render_inner_loop(self) + if self._advance_by_one_step: + self._advance_by_one_step = False + break + else: + # inner_loop runs "_loop_count" times in expectation (where "_loop_count" is a float). + # Therefore, frames are displayed in the real-time. + self._loop_count += self.sim.model.opt.timestep * self.sim.nsubsteps / \ + (self._time_per_render * self._run_speed) + if self._render_every_frame: + self._loop_count = 1 + while self._loop_count > 0: + render_inner_loop(self) + self._loop_count -= 1 + # Markers and overlay are regenerated in every pass. + self._markers[:] = [] + self._overlay.clear() + + def _read_pixels_as_in_window(self): + # Reads pixels with markers and overlay from the same camera as screen. + resolution = glfw.get_framebuffer_size( + self.sim._render_context_window.window) + if self.sim._render_context_offscreen is None: + self.sim.render(*resolution) + offscreen_ctx = self.sim._render_context_offscreen + window_ctx = self.sim._render_context_window + # Save markers and overlay from offscreen. + saved = [copy.deepcopy(offscreen_ctx._markers), + copy.deepcopy(offscreen_ctx._overlay), + rec_copy(offscreen_ctx.cam)] + # Copy markers and overlay from window. + offscreen_ctx._markers[:] = window_ctx._markers[:] + offscreen_ctx._overlay.clear() + offscreen_ctx._overlay.update(window_ctx._overlay) + rec_assign(offscreen_ctx.cam, rec_copy(window_ctx.cam)) + + img = self.sim.render(*resolution) + # Restore markers and overlay to offscreen. + offscreen_ctx._markers[:] = saved[0][:] + offscreen_ctx._overlay.clear() + offscreen_ctx._overlay.update(saved[1]) + rec_assign(offscreen_ctx.cam, saved[2]) + return img + + def _create_full_overlay(self): + if self._render_every_frame: + self.add_overlay(const.GRID_TOPLEFT, "", "") + else: + self.add_overlay(const.GRID_TOPLEFT, "Run speed = %.3f x real time" % + self._run_speed, "[S]lower, [F]aster") + self.add_overlay( + const.GRID_TOPLEFT, "Ren[d]er every frame", "Off" if self._render_every_frame else "On") + self.add_overlay(const.GRID_TOPLEFT, "Switch camera (#cams = %d)" % (self._ncam + 1), + "[Tab] (camera ID = %d)" % self.cam.fixedcamid) + self.add_overlay(const.GRID_TOPLEFT, "[C]ontact forces", "Off" if self.vopt.flags[ + 10] == 1 else "On") + self.add_overlay( + const.GRID_TOPLEFT, "Referenc[e] frames", "Off" if self.vopt.frame == 1 else "On") + self.add_overlay(const.GRID_TOPLEFT, + "T[r]ansparent", "On" if self._transparent else "Off") + self.add_overlay( + const.GRID_TOPLEFT, "Display [M]ocap bodies", "On" if self._show_mocap else "Off") + if self._paused is not None: + if not self._paused: + self.add_overlay(const.GRID_TOPLEFT, "Stop", "[Space]") + else: + self.add_overlay(const.GRID_TOPLEFT, "Start", "[Space]") + self.add_overlay(const.GRID_TOPLEFT, + "Advance simulation by one step", "[right arrow]") + self.add_overlay(const.GRID_TOPLEFT, "[H]ide Menu", "") + if self._record_video: + ndots = int(7 * (time.time() % 1)) + dots = ("." * ndots) + (" " * (6 - ndots)) + self.add_overlay(const.GRID_TOPLEFT, + "Record [V]ideo (On) " + dots, "") + else: + self.add_overlay(const.GRID_TOPLEFT, "Record [V]ideo (Off) ", "") + if self._video_idx > 0: + fname = self._video_path % (self._video_idx - 1) + self.add_overlay(const.GRID_TOPLEFT, " saved as %s" % fname, "") + + self.add_overlay(const.GRID_TOPLEFT, "Cap[t]ure frame", "") + if self._image_idx > 0: + fname = self._image_path % (self._image_idx - 1) + self.add_overlay(const.GRID_TOPLEFT, " saved as %s" % fname, "") + self.add_overlay(const.GRID_TOPLEFT, "Start [i]pdb", "") + if self._record_video: + extra = " (while video is not recorded)" + else: + extra = "" + self.add_overlay(const.GRID_BOTTOMLEFT, "FPS", "%d%s" % + (1 / self._time_per_render, extra)) + self.add_overlay(const.GRID_BOTTOMLEFT, "Solver iterations", str( + self.sim.data.solver_iter + 1)) + + def key_callback(self, window, key, scancode, action, mods): + if action != glfw.RELEASE: return - - # get current window size - width, height = glfw.get_framebuffer_size(window) - - # scroll - self.gui_lock.acquire() - mjlib.mjv_moveCamera(mjconstants.MOUSE_ZOOM, 0, (-20*y_offset), byref(self.cam), width, height) - self.gui_lock.release() - - def should_stop(self): - return glfw.window_should_close(self.window) - - def loop_once(self): - glfw.make_context_current(self.window) - self.render() - # Swap front and back buffers - glfw.swap_buffers(self.window) - # Poll for and process events - glfw.poll_events() - - def finish(self): - glfw.make_context_current(self.window) - glfw.destroy_window(self.window) - - if gl.glIsFramebuffer(self._fbo): - gl.glDeleteFramebuffers(int(self._fbo)) - if gl.glIsRenderbuffer(self._rbo): - gl.glDeleteRenderbuffers(1, int(self._rbo)) - - mjlib.mjr_freeContext(byref(self.con)) - mjlib.mjv_freeObjects(byref(self.objects)) - self.running = False + elif key == glfw.KEY_TAB: # Switches cameras. + self.cam.fixedcamid += 1 + self.cam.type = const.CAMERA_FIXED + if self.cam.fixedcamid >= self._ncam: + self.cam.fixedcamid = -1 + self.cam.type = const.CAMERA_FREE + elif key == glfw.KEY_H: # hides all overlay. + self._hide_overlay = not self._hide_overlay + elif key == glfw.KEY_SPACE and self._paused is not None: # stops simulation. + self._paused = not self._paused + # Advances simulation by one step. + elif key == glfw.KEY_RIGHT and self._paused is not None: + self._advance_by_one_step = True + self._paused = True + elif key == glfw.KEY_V or \ + (key == glfw.KEY_ESCAPE and self._record_video): # Records video. Trigers with V or if in progress by ESC. + self._record_video = not self._record_video + if not self._record_video and len(self._video_frames) > 0: + # This include captures console, if in the top declaration. + frames = [f for f in self._video_frames] + fps = (1 / self._time_per_render) + process = Process(target=save_video, + args=(frames, self._video_path % self._video_idx, fps)) + process.start() + self._video_frames = [] + self._video_idx += 1 + elif key == glfw.KEY_T: # capture screenshot + img = self._read_pixels_as_in_window() + imageio.imwrite(self._image_path % self._image_idx, img) + self._image_idx += 1 + elif key == glfw.KEY_I: # drops in debugger. + print('You can access the simulator by self.sim') + import ipdb + ipdb.set_trace() + elif key == glfw.KEY_S: # Slows down simulation. + self._run_speed /= 2.0 + elif key == glfw.KEY_F: # Speeds up simulation. + self._run_speed *= 2.0 + elif key == glfw.KEY_C: # Displays contact forces. + vopt = self.vopt + vopt.flags[10] = vopt.flags[11] = not vopt.flags[10] + elif key == glfw.KEY_D: # turn off / turn on rendering every frame. + self._render_every_frame = not self._render_every_frame + elif key == glfw.KEY_E: + vopt = self.vopt + vopt.frame = 1 - vopt.frame + elif key == glfw.KEY_R: # makes everything little bit transparent. + self._transparent = not self._transparent + if self._transparent: + self.sim.model.geom_rgba[:, 3] /= 5.0 + else: + self.sim.model.geom_rgba[:, 3] *= 5.0 + elif key == glfw.KEY_M: # Shows / hides mocap bodies + self._show_mocap = not self._show_mocap + for body_idx1, val in enumerate(self.sim.model.body_mocapid): + if val != -1: + for geom_idx, body_idx2 in enumerate(self.sim.model.geom_bodyid): + if body_idx1 == body_idx2: + if not self._show_mocap: + # Store transparency for later to show it. + self.sim.extras[ + geom_idx] = self.sim.model.geom_rgba[geom_idx, 3] + self.sim.model.geom_rgba[geom_idx, 3] = 0 + else: + self.sim.model.geom_rgba[ + geom_idx, 3] = self.sim.extras[geom_idx] + super().key_callback(window, key, scancode, action, mods) + +# Separate Process to save video. This way visualization is +# less slowed down. + + +def save_video(frames, filename, fps): + writer = imageio.get_writer(filename, fps=fps) + for f in frames: + writer.append_data(f) + writer.close() diff --git a/mujoco_py/modder.py b/mujoco_py/modder.py new file mode 100644 index 00000000..fc9f8b7e --- /dev/null +++ b/mujoco_py/modder.py @@ -0,0 +1,450 @@ +""" +Utilites for changing textures and materials after creating a +MuJoCo simulation. This allows for super fast scene generation. +""" +from collections import defaultdict +import numpy as np +from mujoco_py import cymj + + +class BaseModder(): + + def __init__(self, sim, random_state=None): + self.sim = sim + if random_state is None: + self.random_state = np.random.RandomState() + else: + self.random_state = random_state + + @property + def model(self): + # Available for quick convenience access + return self.sim.model + + +class LightModder(BaseModder): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def set_pos(self, name, value): + lightid = self.get_lightid(name) + assert lightid > -1, "Unkwnown light %s" % name + + value = list(value) + assert len(value) == 3, "Expected 3-dim value, got %s" % value + + self.model.light_pos[lightid] = value + + def set_dir(self, name, value): + lightid = self.get_lightid(name) + assert lightid > -1, "Unkwnown light %s" % name + + value = list(value) + assert len(value) == 3, "Expected 3-dim value, got %s" % value + + self.model.light_dir[lightid] = value + + def set_active(self, name, value): + lightid = self.get_lightid(name) + assert lightid > -1, "Unkwnown light %s" % name + + self.model.light_active[lightid] = value + + def set_specular(self, name, value): + lightid = self.get_lightid(name) + assert lightid > -1, "Unkwnown light %s" % name + + value = list(value) + assert len(value) == 3, "Expected 3-dim value, got %s" % value + + self.model.light_specular[lightid] = value + + def set_ambient(self, name, value): + lightid = self.get_lightid(name) + assert lightid > -1, "Unkwnown light %s" % name + + value = list(value) + assert len(value) == 3, "Expected 3-dim value, got %s" % value + + self.model.light_ambient[lightid] = value + + def set_diffuse(self, name, value): + lightid = self.get_lightid(name) + assert lightid > -1, "Unkwnown light %s" % name + + value = list(value) + assert len(value) == 3, "Expected 3-dim value, got %s" % value + + self.model.light_diffuse[lightid] = value + + def set_castshadow(self, name, value): + lightid = self.get_lightid(name) + assert lightid > -1, "Unkwnown light %s" % name + self.model.light_castshadow[lightid] = value + + def get_lightid(self, name): + return self.model.light_name2id(name) + + +class CameraModder(BaseModder): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def set_fovy(self, name, value): + camid = self.get_camid(name) + assert 0 < value < 180 + assert camid > -1, "Unknown camera %s" % name + self.model.cam_fovy[camid] = value + + def get_quat(self, name): + camid = self.get_camid(name) + assert camid > -1, "Unknown camera %s" % name + return self.model.cam_quat[camid] + + def set_quat(self, name, value): + value = list(value) + assert len(value) == 4, ( + "Expectd value of length 3, instead got %s" % value) + camid = self.get_camid(name) + assert camid > -1, "Unknown camera %s" % name + self.model.cam_quat[camid] = value + + def get_pos(self, name): + camid = self.get_camid(name) + assert camid > -1, "Unknown camera %s" % name + return self.model.cam_pos[camid] + + def set_pos(self, name, value): + value = list(value) + assert len(value) == 3, ( + "Expected value of length 3, instead got %s" % value) + camid = self.get_camid(name) + assert camid > -1 + self.model.cam_pos[camid] = value + + def get_camid(self, name): + return self.model.camera_name2id(name) + + +class MaterialModder(BaseModder): + """ + Modify material properties of a model. Example use: + + sim = MjSim(...) + modder = MaterialModder(sim) + modder.set_specularity('some_geom', 0.5) + modder.rand_all('another_geom') + + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def set_specularity(self, name, value): + assert 0 <= value <= 1.0 + mat_id = self.get_mat_id(name) + self.model.mat_specular[mat_id] = value + + def set_shininess(self, name, value): + assert 0 <= value <= 1.0 + mat_id = self.get_mat_id(name) + self.model.mat_shininess[mat_id] = value + + def set_reflectance(self, name, value): + assert 0 <= value <= 1.0 + mat_id = self.get_mat_id(name) + self.model.mat_reflectance[mat_id] = value + + def set_texrepeat(self, name, repeat_x, repeat_y): + mat_id = self.get_mat_id(name) + # ensure the following is set to false, so that repeats are + # relative to the extent of the body. + self.model.mat_texuniform[mat_id] = 0 + self.model.mat_texrepeat[mat_id, :] = [repeat_x, repeat_y] + + def rand_all(self, name): + self.rand_specularity(name) + self.rand_shininess(name) + self.rand_reflectance(name) + + def rand_specularity(self, name): + value = 0.1 + 0.2 * self.random_state.uniform() + self.set_specularity(name, value) + + def rand_shininess(self, name): + value = 0.1 + 0.5 * self.random_state.uniform() + self.set_shininess(name, value) + + def rand_reflectance(self, name): + value = 0.1 + 0.5 * self.random_state.uniform() + self.set_reflectance(name, value) + + def rand_texrepeat(self, name, max_repeat=5): + repeat_x = self.random_state.randint(0, max_repeat) + 1 + repeat_y = self.random_state.randint(0, max_repeat) + 1 + self.set_texrepeat(name, repeat_x, repeat_y) + + def get_mat_id(self, name): + """ Returns the material id based on the geom name. """ + geom_id = self.model.geom_name2id(name) + return self.model.geom_matid[geom_id] + + +class TextureModder(BaseModder): + """ + Modify textures in model. Example use: + + sim = MjSim(...) + modder = TextureModder(sim) + modder.whiten_materials() # ensures materials won't impact colors + modder.set_checker('some_geom', (255, 0, 0), (0, 0, 0)) + modder.rand_all('another_geom') + + Note: in order for the textures to take full effect, you'll need to set + the rgba values for all materials to [1, 1, 1, 1], otherwise the texture + colors will be modulated by the material colors. Call the + `whiten_materials` helper method to set all material colors to white. + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + self.textures = [Texture(self.model, i) + for i in range(self.model.ntex)] + self._build_tex_geom_map() + + # These matrices will be used to rapidly synthesize + # checker pattern bitmaps + self._cache_checker_matrices() + + def get_texture(self, name): + if name == 'skybox': + tex_id = -1 + for i in range(self.model.ntex): + # TODO: Don't hardcode this + skybox_textype = 2 + if self.model.tex_type[i] == skybox_textype: + tex_id = i + assert tex_id >= 0, "Model has no skybox" + else: + geom_id = self.model.geom_name2id(name) + mat_id = self.model.geom_matid[geom_id] + assert mat_id >= 0, "Geom has no assigned material" + tex_id = self.model.mat_texid[mat_id] + assert tex_id >= 0, "Material has no assigned texture" + + texture = self.textures[tex_id] + + return texture + + def get_checker_matrices(self, name): + if name == 'skybox': + return self._skybox_checker_mat + else: + geom_id = self.model.geom_name2id(name) + return self._geom_checker_mats[geom_id] + + def set_checker(self, name, rgb1, rgb2): + bitmap = self.get_texture(name).bitmap + cbd1, cbd2 = self.get_checker_matrices(name) + + rgb1 = np.asarray(rgb1).reshape([1, 1, -1]) + rgb2 = np.asarray(rgb2).reshape([1, 1, -1]) + bitmap[:] = rgb1 * cbd1 + rgb2 * cbd2 + + self.upload_texture(name) + return bitmap + + def set_gradient(self, name, rgb1, rgb2, vertical=True): + """ + Creates a linear gradient from rgb1 to rgb2. + + Args: + - rgb1 (array): start color + - rgb2 (array): end color + - vertical (bool): if True, the gradient in the positive + y-direction, if False it's in the positive x-direction. + """ + # NOTE: MuJoCo's gradient uses a sigmoid. Here we simplify + # and just use a linear gradient... We could change this + # to just use a tanh-sigmoid if needed. + bitmap = self.get_texture(name).bitmap + h, w = bitmap.shape[:2] + if vertical: + p = np.tile(np.linspace(0, 1, h)[:, None], (1, w)) + else: + p = np.tile(np.linspace(0, 1, w), (h, 1)) + + for i in range(3): + bitmap[..., i] = rgb2[i] * p + rgb1[i] * (1.0 - p) + + self.upload_texture(name) + return bitmap + + def set_rgb(self, name, rgb): + bitmap = self.get_texture(name).bitmap + bitmap[..., :] = np.asarray(rgb) + + self.upload_texture(name) + return bitmap + + def set_noise(self, name, rgb1, rgb2, fraction=0.9): + """ + Args: + - name (str): name of geom + - rgb1 (array): background color + - rgb2 (array): color of random noise foreground color + - fraction (float): fraction of pixels with foreground color + """ + bitmap = self.get_texture(name).bitmap + h, w = bitmap.shape[:2] + mask = self.random_state.uniform(size=(h, w)) < fraction + + bitmap[..., :] = np.asarray(rgb1) + bitmap[mask, :] = np.asarray(rgb2) + + self.upload_texture(name) + return bitmap + + def rand_all(self, name): + choices = [ + self.rand_checker, + self.rand_gradient, + self.rand_rgb, + self.rand_noise, + ] + choice = self.random_state.randint(len(choices)) + return choices[choice](name) + + def rand_checker(self, name): + rgb1, rgb2 = self.get_rand_rgb(2) + return self.set_checker(name, rgb1, rgb2) + + def rand_gradient(self, name): + rgb1, rgb2 = self.get_rand_rgb(2) + vertical = bool(self.random_state.uniform() > 0.5) + return self.set_gradient(name, rgb1, rgb2, vertical=vertical) + + def rand_rgb(self, name): + rgb = self.get_rand_rgb() + return self.set_rgb(name, rgb) + + def rand_noise(self, name): + fraction = 0.1 + self.random_state.uniform() * 0.8 + rgb1, rgb2 = self.get_rand_rgb(2) + return self.set_noise(name, rgb1, rgb2, fraction) + + def upload_texture(self, name): + """ + Uploads the texture to the GPU so it's available in the rendering. + """ + texture = self.get_texture(name) + if not self.sim.render_contexts: + cymj.MjRenderContextOffscreen(self.sim) + for render_context in self.sim.render_contexts: + render_context.upload_texture(texture.id) + + def whiten_materials(self, geom_names=None): + """ + Helper method for setting all material colors to white, otherwise + the texture modifications won't take full effect. + + Args: + - geom_names (list): list of geom names whose materials should be + set to white. If omitted, all materials will be changed. + """ + geom_names = geom_names or [] + if geom_names: + for name in geom_names: + geom_id = self.model.geom_name2id(name) + mat_id = self.model.geom_matid[geom_id] + self.model.mat_rgba[mat_id, :] = 1.0 + else: + self.model.mat_rgba[:] = 1.0 + + def get_rand_rgb(self, n=1): + def _rand_rgb(): + return np.array(self.random_state.uniform(size=3) * 255, + dtype=np.uint8) + + if n == 1: + return _rand_rgb() + else: + return tuple(_rand_rgb() for _ in range(n)) + + def _build_tex_geom_map(self): + # Build a map from tex_id to geom_ids, so we can check + # for collisions. + self._geom_ids_by_tex_id = defaultdict(list) + for geom_id in range(self.model.ngeom): + mat_id = self.model.geom_matid[geom_id] + if mat_id >= 0: + tex_id = self.model.mat_texid[mat_id] + if tex_id >= 0: + self._geom_ids_by_tex_id[tex_id].append(geom_id) + + def _cache_checker_matrices(self): + """ + Cache two matrices of the form [[1, 0, 1, ...], + [0, 1, 0, ...], + ...] + and [[0, 1, 0, ...], + [1, 0, 1, ...], + ...] + for each texture. To use for fast creation of checkerboard patterns + """ + self._geom_checker_mats = [] + for geom_id in range(self.model.ngeom): + mat_id = self.model.geom_matid[geom_id] + tex_id = self.model.mat_texid[mat_id] + texture = self.textures[tex_id] + h, w = texture.bitmap.shape[:2] + self._geom_checker_mats.append(self._make_checker_matrices(h, w)) + + # add skybox + skybox_tex_id = -1 + for tex_id in range(self.model.ntex): + skybox_textype = 2 + if self.model.tex_type[tex_id] == skybox_textype: + skybox_tex_id = tex_id + if skybox_tex_id >= 0: + texture = self.textures[skybox_tex_id] + h, w = texture.bitmap.shape[:2] + self._skybox_checker_mat = self._make_checker_matrices(h, w) + else: + self._skybox_checker_mat = None + + def _make_checker_matrices(self, h, w): + re = np.r_[(w // 2) * [0, 1]] + ro = np.r_[(w // 2) * [1, 0]] + cbd1 = np.expand_dims(np.row_stack((h // 2) * [re, ro]), -1) + cbd2 = np.expand_dims(np.row_stack((h // 2) * [ro, re]), -1) + return cbd1, cbd2 + + +# From mjtTexture +MJT_TEXTURE_ENUM = ['2d', 'cube', 'skybox'] + + +class Texture(): + """ + Helper class for operating on the MuJoCo textures. + """ + + __slots__ = ['id', 'type', 'height', 'width', 'tex_adr', 'tex_rgb'] + + def __init__(self, model, tex_id): + self.id = tex_id + self.type = MJT_TEXTURE_ENUM[model.tex_type[tex_id]] + self.height = model.tex_height[tex_id] + self.width = model.tex_width[tex_id] + self.tex_adr = model.tex_adr[tex_id] + self.tex_rgb = model.tex_rgb + + @property + def bitmap(self): + size = self.height * self.width * 3 + data = self.tex_rgb[self.tex_adr:self.tex_adr + size] + return data.reshape((self.height, self.width, 3)) diff --git a/mujoco_py/opengl_context.pyx b/mujoco_py/opengl_context.pyx new file mode 100644 index 00000000..276593c1 --- /dev/null +++ b/mujoco_py/opengl_context.pyx @@ -0,0 +1,143 @@ +import os +import sys +from abc import ABCMeta, abstractmethod +from mujoco_py.utils import discover_mujoco + + +def _add_mujoco_bin_to_dyld_library_path(): + mujoco_path, _ = discover_mujoco() + bin_path = os.path.join(mujoco_path, "bin") + old_dyld_library_path = os.getenv("DYLD_LIBRARY_PATH", "") + os.environ["DYLD_LIBRARY_PATH"] = "{}:{}".format( + bin_path, old_dyld_library_path) + + +try: + _add_mujoco_bin_to_dyld_library_path() + import glfw +except ImportError: + pass + + +class OpenGLContext(metaclass=ABCMeta): + + @abstractmethod + def make_context_current(self): + raise NotImplementedError() + + @abstractmethod + def set_buffer_size(self, width, height): + raise NotImplementedError() + + +class GlfwError(RuntimeError): + pass + + +class GlfwContext(OpenGLContext): + + _INIT_WIDTH = 1000 + _INIT_HEIGHT = 1000 + _GLFW_IS_INITIALIZED = False + + def __init__(self, offscreen=False): + GlfwContext._init_glfw() + + self._width = self._INIT_WIDTH + self._height = self._INIT_HEIGHT + self.window = self._create_window(offscreen) + self._set_window_size(self._width, self._height) + + @staticmethod + def _init_glfw(): + if GlfwContext._GLFW_IS_INITIALIZED: + return + + if 'glfw' not in globals(): + raise GlfwError("GLFW not installed") + + glfw.set_error_callback(GlfwContext._glfw_error_callback) + + # HAX: sometimes first init() fails, while second works fine. + glfw.init() + if not glfw.init(): + raise GlfwError("Failed to initialize GLFW") + + GlfwContext._GLFW_IS_INITIALIZED = True + + def make_context_current(self): + glfw.make_context_current(self.window) + + def set_buffer_size(self, width, height): + self._set_window_size(width, height) + self._width = width + self._height = height + + def _create_window(self, offscreen): + if offscreen: + print("Creating offscreen glfw") + glfw.window_hint(glfw.VISIBLE, 0) + glfw.window_hint(glfw.DOUBLEBUFFER, 0) + init_width, init_height = self._INIT_WIDTH, self._INIT_HEIGHT + else: + print("Creating window glfw") + glfw.window_hint(glfw.SAMPLES, 4) + glfw.window_hint(glfw.VISIBLE, 1) + glfw.window_hint(glfw.DOUBLEBUFFER, 1) + resolution, _, refresh_rate = glfw.get_video_mode( + glfw.get_primary_monitor()) + init_width, init_height = resolution + + self._width = init_width + self._height = init_height + window = glfw.create_window( + self._width, self._height, "mujoco_py", None, None) + + if not window: + raise GlfwError("Failed to create GLFW window") + + return window + + def get_buffer_size(self): + return glfw.get_framebuffer_size(self.window) + + def _set_window_size(self, target_width, target_height): + self.make_context_current() + if target_width != self._width or target_height != self._height: + self._width = target_width + self._height = target_height + glfw.set_window_size(self.window, target_width, target_height) + + # HAX: When running on a Mac with retina screen, the size + # sometimes doubles + width, height = glfw.get_framebuffer_size(self.window) + if target_width != width: + glfw.set_window_size(self.window, target_width // 2, target_height // 2) + + @staticmethod + def _glfw_error_callback(error_code, description): + print("GLFW error (code %d): %s", error_code, description) + + +class OffscreenOpenGLContext(): + + def __init__(self): + # TODO: support GPU rendering on mac + # TODO: allow user to pick GPU expilictly from code + device_id = int(os.getenv('CUDA_VISIBLE_DEVICES', '0').split(',')[0]) + res = initOpenGL(device_id) + if res != 1: + raise RuntimeError("Failed to initialize OpenGL") + + def close(self): + # TODO: properly close OpenGL in our contexts + closeOpenGL() + + def make_context_current(self): + # TODO: maybe expose this explicitly? + pass + + def set_buffer_size(self, int width, int height): + res = setOpenGLBufferSize(width, height) + if res != 1: + raise RuntimeError("Failed to set buffer size") diff --git a/mujoco_py/platname_targdir.py b/mujoco_py/platname_targdir.py deleted file mode 100644 index c68265b9..00000000 --- a/mujoco_py/platname_targdir.py +++ /dev/null @@ -1,9 +0,0 @@ -import sys -if sys.platform.startswith("darwin"): - platname = "osx" -elif sys.platform.startswith("linux"): - platname = "linux" -elif sys.platform.startswith("windows"): - platname = "win" -targdir = "mujoco_%s"%platname - diff --git a/mujoco_py/pxd/__init__.py b/mujoco_py/pxd/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/mujoco_py/pxd/mjdata.pxd b/mujoco_py/pxd/mjdata.pxd new file mode 100644 index 00000000..a87149f7 --- /dev/null +++ b/mujoco_py/pxd/mjdata.pxd @@ -0,0 +1,309 @@ +include "mjmodel.pxd" + + +cdef extern from "mjdata.h" nogil: + + #---------------------------- primitive types (mjt) ------------------------------------ + + ctypedef enum mjtWarning: # warning types + mjWARN_INERTIA = 0, # (near) singular inertia matrix + mjWARN_CONTACTFULL, # too many contacts in contact list + mjWARN_CNSTRFULL, # too many constraints + mjWARN_VGEOMFULL, # too many visual geoms + mjWARN_BADQPOS, # bad number in qpos + mjWARN_BADQVEL, # bad number in qvel + mjWARN_BADQACC, # bad number in qacc + mjWARN_BADCTRL, # bad number in ctrl + + enum: mjNWARNING # number of warnings + + + ctypedef enum mjtTimer: + # main api + mjTIMER_STEP = 0, # step + mjTIMER_FORWARD, # forward + mjTIMER_INVERSE, # inverse + + # breakdown of step/forward + mjTIMER_POSITION, # fwdPosition + mjTIMER_VELOCITY, # fwdVelocity + mjTIMER_ACTUATION, # fwdActuation + mjTIMER_ACCELERATION, # fwdAcceleration + mjTIMER_CONSTRAINT, # fwdConstraint + + # breakdown of fwdPosition + mjTIMER_POS_KINEMATICS, # kinematics, com, tendon, transmission + mjTIMER_POS_INERTIA, # inertia computations + mjTIMER_POS_COLLISION, # collision detection + mjTIMER_POS_MAKE, # make constraints + mjTIMER_POS_PROJECT, # project constraints + + enum: mjNTIMER # number of timers + + + #------------------------------ mjContact ---------------------------------------------- + + ctypedef struct mjContact: # result of collision detection functions + # contact parameters set by geom-specific collision detector + mjtNum dist # distance between nearest points; neg: penetration + mjtNum pos[3] # position of contact point: midpoint between geoms + mjtNum frame[9] # normal is in [0-2] + + # contact parameters set by mj_collideGeoms + mjtNum includemargin # include if distforce) + float stiffnessrot # mouse perturbation stiffness (space->torque) + float force # from force units to space units + float torque # from torque units to space units + float alpha # scale geom alphas when transparency is enabled + float fogstart # OpenGL fog starts at fogstart * mjModel.stat.extent + float fogend # OpenGL fog ends at fogend * mjModel.stat.extent + float znear # near clipping plane = znear * mjModel.stat.extent + float zfar # far clipping plane = zfar * mjModel.stat.extent + float shadowclip # directional light: shadowclip * mjModel.stat.extent + float shadowscale # spot light: shadowscale * light.cutoff + +cdef struct mjVisual_scale: # scale of decor elements relative to mean body size + float forcewidth # width of force arrow + float contactwidth # contact width + float contactheight # contact height + float connect # autoconnect capsule width + float com # com radius + float camera # camera object + float light # light object + float selectpoint # selection point + float jointlength # joint length + float jointwidth # joint width + float actuatorlength # actuator length + float actuatorwidth # actuator width + float framelength # bodyframe axis length + float framewidth # bodyframe axis width + float constraint # constraint width + float slidercrank # slidercrank width + +cdef struct mjVisual_rgba: # color of decor elements + float fog[4] # external force + float force[4] # external force + float inertia[4] # inertia box + float joint[4] # joint + float actuator[4] # actuator + float com[4] # center of mass + float camera[4] # camera object + float light[4] # light object + float selectpoint[4] # selection point + float connect[4] # auto connect + float contactpoint[4] # contact point + float contactforce[4] # contact force + float contactfriction[4] # contact friction force + float contacttorque[4] # contact torque + float constraint[4] # constraint + float slidercrank[4] # slidercrank + float crankbroken[4] # used when crank must be stretched/broken + +cdef extern from "mjmodel.h" nogil: + # ---------------------------- floating-point definitions ------------------------------- + ctypedef double mjtNum + # global constants + enum: mjPI + enum: mjMAXVAL + enum: mjMINMU + enum: mjMINIMP + enum: mjMAXIMP + enum: mjMAXCONPAIR + enum: mjMAXVFS + enum: mjMAXVFSNAME + + # ---------------------------- sizes ---------------------------------------------------- + enum: mjNEQDATA + enum: mjNDYN + enum: mjNGAIN + enum: mjNBIAS + enum: mjNREF + enum: mjNIMP + enum: mjNSOLVER + + # ---------------------------- primitive types (mjt) ------------------------------------ + ctypedef unsigned char mjtByte # used for true/false + + + ctypedef enum mjtDisableBit: # disable default feature bitflags + mjDSBL_CONSTRAINT # entire constraint solver + mjDSBL_EQUALITY # equality constraints + mjDSBL_FRICTIONLOSS # joint and tendon frictionloss constraints + mjDSBL_LIMIT # joint and tendon limit constraints + mjDSBL_CONTACT # contact constraints + mjDSBL_PASSIVE # passive forces + mjDSBL_GRAVITY # gravitational forces + mjDSBL_CLAMPCTRL # clamp control to specified range + mjDSBL_WARMSTART # warmstart constraint solver + mjDSBL_FILTERPARENT # remove collisions with parent body + mjDSBL_ACTUATION # apply actuation forces + mjDSBL_REFSAFE # integrator safety: make ref[0]>=2*timestep + enum: mjNDISABLE # number of disable flags + + ctypedef enum mjtEnableBit: # enable optional feature bitflags + mjENBL_OVERRIDE # override contact parameters + mjENBL_ENERGY # energy computation + mjENBL_FWDINV # record solver statistics + mjENBL_SENSORNOISE # add noise to sensor data + enum: mjNENABLE # number of enable flags + + ctypedef enum mjtJoint: # type of degree of freedom + mjJNT_FREE = 0, # global position and orientation (quat) (7) + mjJNT_BALL, # orientation (quat) relative to parent (4) + mjJNT_SLIDE, # sliding distance along body-fixed axis (1) + mjJNT_HINGE # rotation angle (rad) around body-fixed axis (1) + + ctypedef enum mjtGeom: # type of geometric shape + # regular geom types + mjGEOM_PLANE = 0, # plane + mjGEOM_HFIELD, # height field + mjGEOM_SPHERE, # sphere + mjGEOM_CAPSULE, # capsule + mjGEOM_ELLIPSOID, # ellipsoid + mjGEOM_CYLINDER, # cylinder + mjGEOM_BOX, # box + mjGEOM_MESH, # mesh + + mjNGEOMTYPES, # number of regular geom types + + # rendering-only geom types: not used in mjModel, not counted in mjNGEOMTYPES + mjGEOM_ARROW = 100, # arrow + mjGEOM_ARROW1, # arrow without wedges + mjGEOM_ARROW2, # arrow in both directions + mjGEOM_LABEL, # text label + + mjGEOM_NONE = 1001 # missing geom type + + + ctypedef enum mjtCamLight: # tracking mode for camera and light + mjCAMLIGHT_FIXED = 0, # pos and rot fixed in body + mjCAMLIGHT_TRACK, # pos tracks body, rot fixed in global + mjCAMLIGHT_TRACKCOM, # pos tracks subtree com, rot fixed in body + mjCAMLIGHT_TARGETBODY, # pos fixed in body, rot tracks target body + mjCAMLIGHT_TARGETBODYCOM # pos fixed in body, rot tracks target subtree com + + + ctypedef enum mjtTexture: # type of texture + mjTEXTURE_2D = 0, # 2d texture, suitable for planes and hfields + mjTEXTURE_CUBE, # cube texture, suitable for all other geom types + mjTEXTURE_SKYBOX # cube texture used as skybox + + + ctypedef enum mjtIntegrator: # integrator mode + mjINT_EULER = 0, # semi-implicit Euler + mjINT_RK4 # 4th-order Runge Kutta + + + ctypedef enum mjtCollision: # collision mode for selecting geom pairs + mjCOL_ALL = 0, # test precomputed and dynamic pairs + mjCOL_PAIR, # test predefined pairs only + mjCOL_DYNAMIC # test dynamic pairs only + + + ctypedef enum mjtCone: # type of friction cone + mjCONE_PYRAMIDAL = 0, # pyramidal + mjCONE_ELLIPTIC # elliptic + + + ctypedef enum mjtJacobian: # type of constraint Jacobian + mjJAC_DENSE = 0, # dense + mjJAC_SPARSE, # sparse + mjJAC_AUTO # dense if nv<60, sparse otherwise + + + ctypedef enum mjtSolver: # constraint solver algorithm + mjSOL_PGS = 0, # PGS (dual) + mjSOL_CG, # CG (primal) + mjSOL_NEWTON # Newton (primal) + + + ctypedef enum mjtImp: # how to interpret solimp parameters + mjIMP_CONSTANT = 0, # constant solimp[1] + mjIMP_SIGMOID, # sigmoid from solimp[0] to solimp[1], width solimp[2] + mjIMP_LINEAR, # piece-wise linear sigmoid + mjIMP_USER # impedance computed by callback + + + ctypedef enum mjtRef: # how to interpret solref parameters + mjREF_SPRING = 0, # spring-damper: timeconst=solref[0], dampratio=solref[1] + mjREF_USER # reference computed by callback + + + ctypedef enum mjtEq: # type of equality constraint + mjEQ_CONNECT = 0, # connect two bodies at a point (ball joint) + mjEQ_WELD, # fix relative position and orientation of two bodies + mjEQ_JOINT, # couple the values of two scalar joints with cubic + mjEQ_TENDON, # couple the lengths of two tendons with cubic + mjEQ_DISTANCE # fix the contact distance betweent two geoms + + + ctypedef enum mjtWrap: # type of tendon wrap object + mjWRAP_NONE = 0, # null object + mjWRAP_JOINT, # constant moment arm + mjWRAP_PULLEY, # pulley used to split tendon + mjWRAP_SITE, # pass through site + mjWRAP_SPHERE, # wrap around sphere + mjWRAP_CYLINDER # wrap around (infinite) cylinder + + + ctypedef enum mjtTrn: # type of actuator transmission + mjTRN_JOINT = 0, # force on joint + mjTRN_JOINTINPARENT, # force on joint, expressed in parent frame + mjTRN_SLIDERCRANK, # force via slider-crank linkage + mjTRN_TENDON, # force on tendon + mjTRN_SITE, # force on site + + mjTRN_UNDEFINED = 1000 # undefined transmission type + + + ctypedef enum mjtDyn: # type of actuator dynamics + mjDYN_NONE = 0, # no internal dynamics; ctrl specifies force + mjDYN_INTEGRATOR, # integrator: da/dt = u + mjDYN_FILTER, # linear filter: da/dt = (u-a) / tau + mjDYN_USER # user-defined dynamics type + + + ctypedef enum mjtGain: # type of actuator gain + mjGAIN_FIXED = 0, # fixed gain + mjGAIN_USER # user-defined gain type + + + ctypedef enum mjtBias: # type of actuator bias + mjBIAS_NONE = 0, # no bias + mjBIAS_AFFINE, # const + kp*length + kv*velocity + mjBIAS_USER # user-defined bias type + + + ctypedef enum mjtObj: # type of MujoCo object + mjOBJ_UNKNOWN = 0, # unknown object type + mjOBJ_BODY, # body + mjOBJ_XBODY, # body, used to access regular frame instead of i-frame + mjOBJ_JOINT, # joint + mjOBJ_DOF, # dof + mjOBJ_GEOM, # geom + mjOBJ_SITE, # site + mjOBJ_CAMERA, # camera + mjOBJ_LIGHT, # light + mjOBJ_MESH, # mesh + mjOBJ_HFIELD, # heightfield + mjOBJ_TEXTURE, # texture + mjOBJ_MATERIAL, # material for rendering + mjOBJ_PAIR, # geom pair to include + mjOBJ_EXCLUDE, # body pair to exclude + mjOBJ_EQUALITY, # equality constraint + mjOBJ_TENDON, # tendon + mjOBJ_ACTUATOR, # actuator + mjOBJ_SENSOR, # sensor + mjOBJ_NUMERIC, # numeric + mjOBJ_TEXT, # text + mjOBJ_TUPLE, # tuple + mjOBJ_KEY # keyframe + + + ctypedef enum mjtConstraint: # type of constraint + mjCNSTR_EQUALITY = 0, # equality constraint + mjCNSTR_FRICTION_DOF, # dof friction + mjCNSTR_FRICTION_TENDON, # tendon friction + mjCNSTR_LIMIT_JOINT, # joint limit + mjCNSTR_LIMIT_TENDON, # tendon limit + mjCNSTR_CONTACT_FRICTIONLESS, # frictionless contact + mjCNSTR_CONTACT_PYRAMIDAL, # frictional contact, pyramidal friction cone + mjCNSTR_CONTACT_ELLIPTIC # frictional contact, elliptic friction cone + + + ctypedef enum mjtConstraintState: # constraint state + mjCNSTRSTATE_SATISFIED = 0, # constraint satisfied, zero cost (limit, contact) + mjCNSTRSTATE_QUADRATIC, # quadratic cost (equality, friction, limit, contact) + mjCNSTRSTATE_LINEARNEG, # linear cost, negative side (friction) + mjCNSTRSTATE_LINEARPOS, # linear cost, positive side (friction) + mjCNSTRSTATE_CONE # squared distance to cone cost (elliptic contact) + + + + ctypedef enum mjtSensor: # type of sensor + # common robotic sensors, attached to a site + mjSENS_TOUCH = 0, # scalar contact normal forces summed over sensor zone + mjSENS_ACCELEROMETER, # 3D linear acceleration, in local frame + mjSENS_VELOCIMETER, # 3D linear velocity, in local frame + mjSENS_GYRO, # 3D angular velocity, in local frame + mjSENS_FORCE, # 3D force between site's body and its parent body + mjSENS_TORQUE, # 3D torque between site's body and its parent body + mjSENS_MAGNETOMETER, # 3D magnetometer + mjSENS_RANGEFINDER, # scalar distance to nearest geom or site along z-axis + + # sensors related to scalar joints, tendons, actuators + mjSENS_JOINTPOS, # scalar joint position (hinge and slide only) + mjSENS_JOINTVEL, # scalar joint velocity (hinge and slide only) + mjSENS_TENDONPOS, # scalar tendon position + mjSENS_TENDONVEL, # scalar tendon velocity + mjSENS_ACTUATORPOS, # scalar actuator position + mjSENS_ACTUATORVEL, # scalar actuator velocity + mjSENS_ACTUATORFRC, # scalar actuator force + + # sensors related to ball joints + mjSENS_BALLQUAT, # 4D ball joint quaterion + mjSENS_BALLANGVEL, # 3D ball joint angular velocity + + # sensors attached to an object with spatial frame: (x)body, geom, site, camera + mjSENS_FRAMEPOS, # 3D position + mjSENS_FRAMEQUAT, # 4D unit quaternion orientation + mjSENS_FRAMEXAXIS, # 3D unit vector: x-axis of object's frame + mjSENS_FRAMEYAXIS, # 3D unit vector: y-axis of object's frame + mjSENS_FRAMEZAXIS, # 3D unit vector: z-axis of object's frame + mjSENS_FRAMELINVEL, # 3D linear velocity + mjSENS_FRAMEANGVEL, # 3D angular velocity + mjSENS_FRAMELINACC, # 3D linear acceleration + mjSENS_FRAMEANGACC, # 3D angular acceleration + + # sensors related to kinematic subtrees; attached to a body (which is the subtree root) + mjSENS_SUBTREECOM, # 3D center of mass of subtree + mjSENS_SUBTREELINVEL, # 3D linear velocity of subtree + mjSENS_SUBTREEANGMOM, # 3D angular momentum of subtree + + # user-defined sensor + mjSENS_USER # sensor data provided by mjcb_sensor callback + + + ctypedef enum mjtStage: # computation stage + mjSTAGE_NONE = 0, # no computations + mjSTAGE_POS, # position-dependent computations + mjSTAGE_VEL, # velocity-dependent computations + mjSTAGE_ACC # acceleration/force-dependent computations + + + ctypedef enum mjtDataType: # data type for sensors + mjDATATYPE_REAL = 0, # real values, no constraints + mjDATATYPE_POSITIVE, # positive values; 0 or negative: inactive + mjDATATYPE_AXIS, # 3D unit vector + mjDATATYPE_QUAT # unit quaternion + + #------------------------------ mjVFS -------------------------------------------------- + + ctypedef struct mjVFS: # virtual file system for loading from memory + int nfile # number of files present + char filename[mjMAXVFS][mjMAXVFSNAME] # file name without path + int filesize[mjMAXVFS] # file size in bytes + void* filedata[mjMAXVFS] # buffer with file data + + + + #------------------------------ mjOption ----------------------------------------------- + + ctypedef struct mjOption: # physics options + # timing parameters + mjtNum timestep # timestep + mjtNum apirate # update rate for remote API (Hz) + + # solver parameters + mjtNum impratio # ratio of friction-to-normal contact impedance + mjtNum tolerance # solver convergence tolerance + mjtNum noslip_tolerance # noslip solver tolerance + mjtNum mpr_tolerance # MPR solver tolerance + + # physical constants + mjtNum gravity[3] # gravitational acceleration + mjtNum wind[3] # wind (for lift, drag and viscosity) + mjtNum magnetic[3] # global magnetic flux + mjtNum density # density of medium + mjtNum viscosity # viscosity of medium + + # override contact solver parameters (if enabled) + mjtNum o_margin # margin + mjtNum o_solref[mjNREF] # solref + mjtNum o_solimp[mjNIMP] # solimp + + # discrete settings + int integrator # integration mode (mjtIntegrator) + int collision # collision mode (mjtCollision) + int impedance # how to interpret solimp (mjtImp) + int reference # how to interpret solref (mjtRef) + int cone # type of friction cone (mjtCone) + int jacobian # type of Jacobian (mjtJacobian) + int solver # solver mode (mjtSolver) + int iterations # maximum number of solver iterations + int noslip_iterations # maximum number of noslip solver iterations + int mpr_iterations # maximum number of MPR solver iterations + int disableflags # bit flags for disabling standard features + int enableflags # bit flags for enabling optional features + + #------------------------------ mjVisual ----------------------------------------------- + + + ctypedef struct mjVisual: + mjVisual_global_ global_ "global" + mjVisual_quality quality + mjVisual_headlight headlight + mjVisual_map map + mjVisual_scale scale + mjVisual_rgba rgba + + #------------------------------ mjStatistic -------------------------------------------- + + ctypedef struct mjStatistic: # model statistics (in qpos0) + mjtNum meaninertia # mean diagonal inertia + mjtNum meanmass # mean body mass + mjtNum meansize # mean body size + mjtNum extent # spatial extent + mjtNum center[3] # center of model + + + # ---------------------------------- mjModel -------------------------------------------- + ctypedef struct mjModel: + # ------------------------------- sizes + + # sizes needed at mjModel construction + int nq # number of generalized coordinates = dim(qpos) + int nv # number of degrees of freedom = dim(qvel) + int nu # number of actuators/controls = dim(ctrl) + int na # number of activation states = dim(act) + int nbody # number of bodies + int njnt # number of joints + int ngeom # number of geoms + int nsite # number of sites + int ncam # number of cameras + int nlight # number of lights + int nmesh # number of meshes + int nmeshvert # number of vertices in all meshes + int nmeshface # number of triangular faces in all meshes + int nmeshgraph # number of ints in mesh auxiliary data + int nhfield # number of heightfields + int nhfielddata # number of data points in all heightfields + int ntex # number of textures + int ntexdata # number of bytes in texture rgb data + int nmat # number of materials + int npair # number of predefined geom pairs + int nexclude # number of excluded geom pairs + int neq # number of equality constraints + int ntendon # number of tendons + int nwrap # number of wrap objects in all tendon paths + int nsensor # number of sensors + int nnumeric # number of numeric custom fields + int nnumericdata # number of mjtNums in all numeric fields + int ntext # number of text custom fields + int ntextdata # number of mjtBytes in all text fields + int ntuple # number of tuple custom fields + int ntupledata # number of objects in all tuple fields + int nkey # number of keyframes + int nuser_body # number of mjtNums in body_user + int nuser_jnt # number of mjtNums in jnt_user + int nuser_geom # number of mjtNums in geom_user + int nuser_site # number of mjtNums in site_user + int nuser_cam # number of mjtNums in cam_user + int nuser_tendon # number of mjtNums in tendon_user + int nuser_actuator # number of mjtNums in actuator_user + int nuser_sensor # number of mjtNums in sensor_user + int nnames # number of chars in all names + + # sizes set after mjModel construction (only affect mjData) + int nM # number of non-zeros in sparse inertia matrix + int nemax # number of potential equality-constraint rows + int njmax # number of available rows in constraint Jacobian + int nconmax # number of potential contacts in contact list + int nstack # number of fields in mjData stack + int nuserdata # number of extra fields in mjData + int nmocap # number of mocap bodies + int nsensordata # number of fields in sensor data vector + + int nbuffer # number of bytes in buffer + + # ------------------------------- options and statistics + + mjOption opt # physics options + mjVisual vis # visualization options + mjStatistic stat # model statistics + + # ------------------------------- buffers + + # main buffer + void* buffer # main buffer; all pointers point in it (nbuffer) + + # default generalized coordinates + mjtNum* qpos0 # qpos values at default pose (nq x 1) + mjtNum* qpos_spring # reference pose for springs (nq x 1) + + # bodies + int* body_parentid # id of body's parent (nbody x 1) + int* body_rootid # id of root above body (nbody x 1) + int* body_weldid # id of body that this body is welded to (nbody x 1) + int* body_mocapid # id of mocap data; -1: none (nbody x 1) + int* body_jntnum # number of joints for this body (nbody x 1) + int* body_jntadr # start addr of joints; -1: no joints (nbody x 1) + int* body_dofnum # number of motion degrees of freedom (nbody x 1) + int* body_dofadr # start addr of dofs; -1: no dofs (nbody x 1) + int* body_geomnum # number of geoms (nbody x 1) + int* body_geomadr # start addr of geoms; -1: no geoms (nbody x 1) + mjtNum* body_pos # position offset rel. to parent body (nbody x 3) + mjtNum* body_quat # orientation offset rel. to parent body (nbody x 4) + mjtNum* body_ipos # local position of center of mass (nbody x 3) + mjtNum* body_iquat # local orientation of inertia ellipsoid (nbody x 4) + mjtNum* body_mass # mass (nbody x 1) + mjtNum* body_subtreemass # mass of subtree starting at this body (nbody x 1) + mjtNum* body_inertia # diagonal inertia in ipos/iquat frame (nbody x 3) + mjtNum* body_invweight0 # mean inv inert in qpos0 (trn, rot) (nbody x 2) + mjtNum* body_user # user data (nbody x nuser_body) + + # joints + int* jnt_type # type of joint (mjtJoint) (njnt x 1) + int* jnt_qposadr # start addr in 'qpos' for joint's data (njnt x 1) + int* jnt_dofadr # start addr in 'qvel' for joint's data (njnt x 1) + int* jnt_bodyid # id of joint's body (njnt x 1) + mjtByte* jnt_limited # does joint have limits (njnt x 1) + mjtNum* jnt_solref # constraint solver reference: limit (njnt x mjNREF) + mjtNum* jnt_solimp # constraint solver impedance: limit (njnt x mjNIMP) + mjtNum* jnt_pos # local anchor position (njnt x 3) + mjtNum* jnt_axis # local joint axis (njnt x 3) + mjtNum* jnt_stiffness # stiffness coefficient (njnt x 1) + mjtNum* jnt_range # joint limits (njnt x 2) + mjtNum* jnt_margin # min distance for limit detection (njnt x 1) + mjtNum* jnt_user # user data (njnt x nuser_jnt) + + # dofs + int* dof_bodyid # id of dof's body (nv x 1) + int* dof_jntid # id of dof's joint (nv x 1) + int* dof_parentid # id of dof's parent; -1: none (nv x 1) + int* dof_Madr # dof address in M-diagonal (nv x 1) + mjtNum* dof_solref # constraint solver reference:frictionloss (nv x mjNREF) + mjtNum* dof_solimp # constraint solver impedance:frictionloss (nv x mjNIMP) + mjtNum* dof_frictionloss # dof friction loss (nv x 1) + mjtNum* dof_armature # dof armature inertia/mass (nv x 1) + mjtNum* dof_damping # damping coefficient (nv x 1) + mjtNum* dof_invweight0 # inv. diag. inertia in qpos0 (nv x 1) + + # geoms + int* geom_type # geometric type (mjtGeom) (ngeom x 1) + int* geom_contype # geom contact type (ngeom x 1) + int* geom_conaffinity # geom contact affinity (ngeom x 1) + int* geom_condim # contact dimensionality (1, 3, 4, 6) (ngeom x 1) + int* geom_bodyid # id of geom's body (ngeom x 1) + int* geom_dataid # id of geom's mesh/hfield (-1: none) (ngeom x 1) + int* geom_matid # material id for rendering (ngeom x 1) + int* geom_group # group for visibility (ngeom x 1) + mjtNum* geom_solmix # mixing coef for solref/imp in geom pair (ngeom x 1) + mjtNum* geom_solref # constraint solver reference: contact (ngeom x mjNREF) + mjtNum* geom_solimp # constraint solver impedance: contact (ngeom x mjNIMP) + mjtNum* geom_size # geom-specific size parameters (ngeom x 3) + mjtNum* geom_rbound # radius of bounding sphere (ngeom x 1) + mjtNum* geom_pos # local position offset rel. to body (ngeom x 3) + mjtNum* geom_quat # local orientation offset rel. to body (ngeom x 4) + mjtNum* geom_friction # friction for (slide, spin, roll) (ngeom x 3) + mjtNum* geom_margin # detect contact if dist=max) automatic + char xlabel[100] # x-axis label + char title[100] # figure title + char xformat[20] # x-tick label format for sprintf + char yformat[20] # y-tick label format for sprintf + char minwidth[20] # string used to determine min y-tick width + + # line data + int linepnt[mjMAXLINE] # number of points in line; (0) disable + float linergb[mjMAXLINE][3] # line color + float linewidth[mjMAXLINE] # line width + float linedata[mjMAXLINE][2*mjMAXLINEPNT] # line data (x,y) + char linename[mjMAXLINE][100] # line name for legend + diff --git a/mujoco_py/pxd/mujoco.pxd b/mujoco_py/pxd/mujoco.pxd new file mode 100644 index 00000000..c2a5c8d4 --- /dev/null +++ b/mujoco_py/pxd/mujoco.pxd @@ -0,0 +1,1025 @@ +include "mjmodel.pxd" +include "mjdata.pxd" +include "mjrender.pxd" +include "mjvisualize.pxd" + + +cdef extern from "mujoco.h" nogil: + # macros + #define mjMARKSTACK int _mark = d->pstack; + #define mjFREESTACK d->pstack = _mark; + #define mjDISABLED(x) (m->opt.disableflags & (x)) + #define mjENABLED(x) (m->opt.enableflags & (x)) + + + # user error and memory handlers + void (*mju_user_error)(const char*); + void (*mju_user_warning)(const char*); + void* (*mju_user_malloc)(size_t); + void (*mju_user_free)(void*); + + + # # callbacks extending computation pipeline + # mjfGeneric mjcb_passive; + # mjfGeneric mjcb_control; + # mjfSensor mjcb_sensor; + # mjfTime mjcb_time; + # mjfAct mjcb_act_dyn; + # mjfAct mjcb_act_gain; + # mjfAct mjcb_act_bias; + # mjfSolImp mjcb_sol_imp; + # mjfSolRef mjcb_sol_ref; + # + # + # # collision function table + # mjfCollision mjCOLLISIONFUNC[mjNGEOMTYPES][mjNGEOMTYPES]; + # + # + # # string names + const char* mjDISABLESTRING[mjNDISABLE]; + const char* mjENABLESTRING[mjNENABLE]; + const char* mjTIMERSTRING[mjNTIMER]; + const char* mjLABELSTRING[mjNLABEL]; + const char* mjFRAMESTRING[mjNFRAME]; + const char* mjVISSTRING[mjNVISFLAG][3]; + const char* mjRNDSTRING[mjNRNDFLAG][3]; + + + #---------------------- Activation ----------------------------------------------------- + + # activate license, call mju_error on failure; return 1 if ok, 0 if failure + int mj_activate(const char* filename); + + # deactivate license, free memory + void mj_deactivate(); + + # server: generate certificate question + void mj_certQuestion(mjtNum question[16]); + + # client: generate certificate answer given question + void mj_certAnswer(const mjtNum question[16], mjtNum answer[16]); + + # server: check certificate question-answer pair; return 1 if match, 0 if mismatch + int mj_certCheck(const mjtNum question[16], const mjtNum answer[16]); + + #---------------------- Virtual file system -------------------------------------------- + + # Initialize VFS to empty (no deallocation). + void mj_defaultVFS(mjVFS* vfs); + + # Add file to VFS, return 0: success, 1: full, 2: repeated name, -1: not found on disk. + int mj_addFileVFS(mjVFS* vfs, const char* directory, const char* filename); + + # Make empty file in VFS, return 0: success, 1: full, 2: repeated name. + int mj_makeEmptyFileVFS(mjVFS* vfs, const char* filename, int filesize); + + # Return file index in VFS, or -1 if not found in VFS. + int mj_findFileVFS(const mjVFS* vfs, const char* filename); + + # Delete file from VFS, return 0: success, -1: not found in VFS. + int mj_deleteFileVFS(mjVFS* vfs, const char* filename); + + # Delete all files from VFS. + void mj_deleteVFS(mjVFS* vfs); + + #--------------------- Parse and compile ---------------------------------------------- + + # Parse XML file in MJCF or URDF format, compile it, return low-level model. + # If vfs is not NULL, look up files in vfs before reading from disk. + # If error is not NULL, it must have size error_sz. + mjModel* mj_loadXML(const char* filename, const mjVFS* vfs, + char* error, int error_sz); + + # Update XML data structures with info from low-level model, save as MJCF. + # If error is not NULL, it must have size error_sz. + int mj_saveLastXML(const char* filename, const mjModel* m, + char* error, int error_sz); + + # Free last XML model if loaded. Called internally at each load. + void mj_freeLastXML(); + + # Print internal XML schema as plain text or HTML, with style-padding or  . + int mj_printSchema(const char* filename, char* buffer, int buffer_sz, + int flg_html, int flg_pad); + + + #--------------------- Main simulation ------------------------------------------------ + + # Advance simulation, use control callback to obtain external force and control. + void mj_step(const mjModel* m, mjData* d); + + # Advance simulation in two steps: before external force and control is set by user. + void mj_step1(const mjModel* m, mjData* d); + + # Advance simulation in two steps: after external force and control is set by user. + void mj_step2(const mjModel* m, mjData* d); + + # Forward dynamics: same as mj_step but do not integrate in time. + void mj_forward(const mjModel* m, mjData* d); + + # Inverse dynamics: qacc must be set before calling. + void mj_inverse(const mjModel* m, mjData* d); + + # Forward dynamics with skip; skipstage is mjtStage. + void mj_forwardSkip(const mjModel* m, mjData* d, + int skipstage, int skipsensorenergy); + + # Inverse dynamics with skip; skipstage is mjtStage. + void mj_inverseSkip(const mjModel* m, mjData* d, + int skipstage, int skipsensorenergy); + + + #--------------------- Initialization ------------------------------------------------- + + # Set solver parameters to default values. + void mj_defaultSolRefImp(mjtNum* solref, mjtNum* solimp); + + # Set physics options to default values. + void mj_defaultOption(mjOption* opt); + + # Set visual options to default values. + void mj_defaultVisual(mjVisual* vis); + + # Copy mjModel, allocate new if dest is NULL. + mjModel* mj_copyModel(mjModel* dest, const mjModel* src); + + # Save model to binary MJB file or memory buffer; buffer has precedence when given. + void mj_saveModel(const mjModel* m, const char* filename, void* buffer, int buffer_sz); + + # Load model from binary MJB file. + # If vfs is not NULL, look up file in vfs before reading from disk. + mjModel* mj_loadModel(const char* filename, mjVFS* vfs); + + # Free memory allocation in model. + void mj_deleteModel(mjModel* m); + + # Return size of buffer needed to hold model. + int mj_sizeModel(const mjModel* m); + + # Allocate mjData correponding to given model. + mjData* mj_makeData(const mjModel* m); + + # Copy mjData. + mjData* mj_copyData(mjData* dest, const mjModel* m, const mjData* src); + + # Reset data to defaults. + void mj_resetData(const mjModel* m, mjData* d); + + # Reset data to defaults, fill everything else with debug_value. + void mj_resetDataDebug(const mjModel* m, mjData* d, unsigned char debug_value); + + # Reset data, set fields from specified keyframe. + void mj_resetDataKeyframe(const mjModel* m, mjData* d, int key); + + # Allocate array of specified size on mjData stack. Call mju_error on stack overflow. + mjtNum* mj_stackAlloc(mjData* d, int size); + + # Free memory allocation in mjData. + void mj_deleteData(mjData* d); + + # Reset all callbacks to NULL pointers (NULL is the default). + void mj_resetCallbacks(); + + # Set constant fields of mjModel, corresponding to qpos0 configuration. + # The flag flg_actrange currently has no effect. + void mj_setConst(mjModel* m, mjData* d, int flg_actrange); + + + #--------------------- Printing ------------------------------------------------------- + + # Print model to text file. + void mj_printModel(const mjModel* m, const char* filename); + + # Print data to text file. + void mj_printData(const mjModel* m, mjData* d, const char* filename); + + # Print matrix to screen. + void mju_printMat(const mjtNum* mat, int nr, int nc); + + # Print sparse matrix to screen. + void mju_printMatSparse(const mjtNum* mat, int nr, + const int* rownnz, const int* rowadr, + const int* colind); + + + #--------------------- Components ----------------------------------------------------- + + # Run position-dependent computations. + void mj_fwdPosition(const mjModel* m, mjData* d); + + # Run velocity-dependent computations. + void mj_fwdVelocity(const mjModel* m, mjData* d); + + # Compute actuator force qfrc_actuation. + void mj_fwdActuation(const mjModel* m, mjData* d); + + # Add up all non-constraint forces, compute qacc_unc. + void mj_fwdAcceleration(const mjModel* m, mjData* d); + + # Run selected constraint solver. + void mj_fwdConstraint(const mjModel* m, mjData* d); + + # Euler integrator, semi-implicit in velocity. + void mj_Euler(const mjModel* m, mjData* d); + + # Runge-Kutta explicit order-N integrator. + void mj_RungeKutta(const mjModel* m, mjData* d, int N); + + # Run position-dependent computations in inverse dynamics. + void mj_invPosition(const mjModel* m, mjData* d); + + # Run velocity-dependent computations in inverse dynamics. + void mj_invVelocity(const mjModel* m, mjData* d); + + # Apply the analytical formula for inverse constraint dynamics. + void mj_invConstraint(const mjModel* m, mjData* d); + + # Compare forward and inverse dynamics, save results in fwdinv. + void mj_compareFwdInv(const mjModel* m, mjData* d); + + + #--------------------- Sub components ------------------------------------------------- + + # Evaluate position-dependent sensors. + void mj_sensorPos(const mjModel* m, mjData* d); + + # Evaluate velocity-dependent sensors. + void mj_sensorVel(const mjModel* m, mjData* d); + + # Evaluate acceleration and force-dependent sensors. + void mj_sensorAcc(const mjModel* m, mjData* d); + + # Evaluate position-dependent energy (potential). + void mj_energyPos(const mjModel* m, mjData* d); + + # Evaluate velocity-dependent energy (kinetic). + void mj_energyVel(const mjModel* m, mjData* d); + + # Check qpos, reset if any element is too big or nan. + void mj_checkPos(const mjModel* m, mjData* d); + + # Check qvel, reset if any element is too big or nan. + void mj_checkVel(const mjModel* m, mjData* d); + + # Check qacc, reset if any element is too big or nan. + void mj_checkAcc(const mjModel* m, mjData* d); + + # Run forward kinematics. + void mj_kinematics(const mjModel* m, mjData* d); + + # Map inertias and motion dofs to global frame centered at CoM. + void mj_comPos(const mjModel* m, mjData* d); + + # Compute camera and light positions and orientations. + void mj_camlight(const mjModel* m, mjData* d); + + # Compute tendon lengths, velocities and moment arms. + void mj_tendon(const mjModel* m, mjData* d); + + # Compute actuator transmission lengths and moments. + void mj_transmission(const mjModel* m, mjData* d); + + # Run composite rigid body inertia algorithm (CRB). + void mj_crb(const mjModel* m, mjData* d); + + # Compute sparse L'*D*L factorizaton of inertia matrix. + void mj_factorM(const mjModel* m, mjData* d); + + # Solve linear system M * x = y using factorization: x = inv(L'*D*L)*y + void mj_solveM(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* y, int n); + + # Half of linear solve: x = sqrt(inv(D))*inv(L')*y + void mj_solveM2(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* y, int n); + + # Compute cvel, cdof_dot. + void mj_comVel(const mjModel* m, mjData* d); + + # Compute qfrc_passive from spring-dampers, viscosity and density. + void mj_passive(const mjModel* m, mjData* d); + + # RNE: compute M(qpos)*qacc + C(qpos,qvel); flg_acc=0 removes inertial term. + void mj_rne(const mjModel* m, mjData* d, int flg_acc, mjtNum* result); + + # RNE with complete data: compute cacc, cfrc_ext, cfrc_int. + void mj_rnePostConstraint(const mjModel* m, mjData* d); + + # Run collision detection. + void mj_collision(const mjModel* m, mjData* d); + + # Construct constraints. + void mj_makeConstraint(const mjModel* m, mjData* d); + + # Compute inverse constaint inertia efc_AR. + void mj_projectConstraint(const mjModel* m, mjData* d); + + # Compute efc_vel, efc_aref. + void mj_referenceConstraint(const mjModel* m, mjData* d); + + # Compute efc_state, efc_force, qfrc_constraint, and (optionally) cone Hessians. + # If cost is not NULL, set *cost = s(jar) where jar = Jac*qacc-aref. + void mj_constraintUpdate(const mjModel* m, mjData* d, const mjtNum* jar, + mjtNum* cost, int flg_coneHessian); + + + #--------------------- Support -------------------------------------------------------- + + # Add contact to d->contact list; return 0 if success; 1 if buffer full. + int mj_addContact(const mjModel* m, mjData* d, const mjContact* con); + + # Determine type of friction cone. + int mj_isPyramidal(const mjModel* m); + + # Determine type of constraint Jacobian. + int mj_isSparse(const mjModel* m); + + # Determine type of solver (PGS is dual, CG and Newton are primal). + int mj_isDual(const mjModel* m); + + # Multiply dense or sparse constraint Jacobian by vector. + void mj_mulJacVec(const mjModel* m, mjData* d, + mjtNum* res, const mjtNum* vec); + + # Multiply dense or sparse constraint Jacobian transpose by vector. + void mj_mulJacTVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec); + + # Compute 3/6-by-nv end-effector Jacobian of global point attached to given body. + void mj_jac(const mjModel* m, const mjData* d, + mjtNum* jacp, mjtNum* jacr, const mjtNum point[3], int body); + + # Compute body frame end-effector Jacobian. + void mj_jacBody(const mjModel* m, const mjData* d, + mjtNum* jacp, mjtNum* jacr, int body); + + # Compute body center-of-mass end-effector Jacobian. + void mj_jacBodyCom(const mjModel* m, const mjData* d, + mjtNum* jacp, mjtNum* jacr, int body); + + # Compute geom end-effector Jacobian. + void mj_jacGeom(const mjModel* m, const mjData* d, + mjtNum* jacp, mjtNum* jacr, int geom); + + # Compute site end-effector Jacobian. + void mj_jacSite(const mjModel* m, const mjData* d, + mjtNum* jacp, mjtNum* jacr, int site); + + # Compute translation end-effector Jacobian of point, and rotation Jacobian of axis. + void mj_jacPointAxis(const mjModel* m, mjData* d, + mjtNum* jacPoint, mjtNum* jacAxis, + const mjtNum point[3], const mjtNum axis[3], int body); + + # Get id of object with specified name, return -1 if not found; type is mjtObj. + int mj_name2id(const mjModel* m, int type, const char* name); + + # Get name of object with specified id, return 0 if invalid type or id; type is mjtObj. + const char* mj_id2name(const mjModel* m, int type, int id); + + # Convert sparse inertia matrix M into full (i.e. dense) matrix. + void mj_fullM(const mjModel* m, mjtNum* dst, const mjtNum* M); + + # Multiply vector by inertia matrix. + void mj_mulM(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec); + + # Add inertia matrix to destination matrix. + # Destination can be sparse uncompressed, or dense when all int* are NULL + void mj_addM(const mjModel* m, mjData* d, mjtNum* dst, + int* rownnz, int* rowadr, int* colind); + + # Apply cartesian force and torque (outside xfrc_applied mechanism). + void mj_applyFT(const mjModel* m, mjData* d, + const mjtNum* force, const mjtNum* torque, + const mjtNum* point, int body, mjtNum* qfrc_target); + + # Compute object 6D velocity in object-centered frame, world/local orientation. + void mj_objectVelocity(const mjModel* m, const mjData* d, + int objtype, int objid, mjtNum* res, int flg_local); + + # Compute object 6D acceleration in object-centered frame, world/local orientation. + void mj_objectAcceleration(const mjModel* m, const mjData* d, + int objtype, int objid, mjtNum* res, int flg_local); + + # Compute velocity by finite-differencing two positions. + void mj_differentiatePos(const mjModel* m, mjtNum* qvel, mjtNum dt, + const mjtNum* qpos1, const mjtNum* qpos2); + + # Extract 6D force:torque for one contact, in contact frame. + void mj_contactForce(const mjModel* m, const mjData* d, int id, mjtNum* result); + + # Integrate position with given velocity. + void mj_integratePos(const mjModel* m, mjtNum* qpos, const mjtNum* qvel, mjtNum dt); + + # Normalize all quaterions in qpos-type vector. + void mj_normalizeQuat(const mjModel* m, mjtNum* qpos); + + # Map from body local to global Cartesian coordinates. + void mj_local2Global(mjData* d, mjtNum* xpos, mjtNum* xmat, + const mjtNum* pos, const mjtNum* quat, int body); + + # Sum all body masses. + mjtNum mj_getTotalmass(const mjModel* m); + + # Scale body masses and inertias to achieve specified total mass. + void mj_setTotalmass(mjModel* m, mjtNum newmass); + + # Return version number: 1.0.2 is encoded as 102. + int mj_version(); + + + #--------------------- Ray collisions ------------------------------------------------- + + # Intersect ray (pnt+x*vec, x>=0) with visible geoms, except geoms in bodyexclude. + # Return geomid and distance (x) to nearest surface, or -1 if no intersection. + # geomgroup, flg_static are as in mjvOption; geomgroup==NULL skips group exclusion. + mjtNum mj_ray(const mjModel* m, const mjData* d, const mjtNum* pnt, const mjtNum* vec, + const mjtByte* geomgroup, mjtByte flg_static, int bodyexclude, + int* geomid); + + # Interect ray with hfield, return nearest distance or -1 if no intersection. + mjtNum mj_rayHfield(const mjModel* m, const mjData* d, int geomid, + const mjtNum* pnt, const mjtNum* vec); + + # Interect ray with mesh, return nearest distance or -1 if no intersection. + mjtNum mj_rayMesh(const mjModel* m, const mjData* d, int geomid, + const mjtNum* pnt, const mjtNum* vec); + + # Interect ray with pure geom, return nearest distance or -1 if no intersection. + mjtNum mju_rayGeom(const mjtNum* pos, const mjtNum* mat, const mjtNum* size, + const mjtNum* pnt, const mjtNum* vec, int geomtype); + + + #--------------------- Interaction ---------------------------------------------------- + + # Set default camera. + void mjv_defaultCamera(mjvCamera* cam); + + # Set default perturbation. + void mjv_defaultPerturb(mjvPerturb* pert); + + # Transform pose from room to model space. + void mjv_room2model(mjtNum* modelpos, mjtNum* modelquat, const mjtNum* roompos, + const mjtNum* roomquat, const mjvScene* scn); + + # Transform pose from model to room space. + void mjv_model2room(mjtNum* roompos, mjtNum* roomquat, const mjtNum* modelpos, + const mjtNum* modelquat, const mjvScene* scn); + + # Get camera info in model space; average left and right OpenGL cameras. + void mjv_cameraInModel(mjtNum* headpos, mjtNum* forward, mjtNum* up, + const mjvScene* scn); + + # Get camera info in room space; average left and right OpenGL cameras. + void mjv_cameraInRoom(mjtNum* headpos, mjtNum* forward, mjtNum* up, + const mjvScene* scn); + + # Get frustum height at unit distance from camera; average left and right OpenGL cameras. + mjtNum mjv_frustumHeight(const mjvScene* scn); + + # Rotate 3D vec in horizontal plane by angle between (0,1) and (forward_x,forward_y). + void mjv_alignToCamera(mjtNum* res, const mjtNum* vec, const mjtNum* forward); + + # Move camera with mouse; action is mjtMouse. + void mjv_moveCamera(const mjModel* m, int action, mjtNum reldx, mjtNum reldy, + const mjvScene* scn, mjvCamera* cam); + + # Move perturb object with mouse; action is mjtMouse. + void mjv_movePerturb(const mjModel* m, const mjData* d, int action, mjtNum reldx, + mjtNum reldy, const mjvScene* scn, mjvPerturb* pert); + + # Move model with mouse; action is mjtMouse. + void mjv_moveModel(const mjModel* m, int action, mjtNum reldx, mjtNum reldy, + const mjtNum* roomup, mjvScene* scn); + + # Copy perturb pos,quat from selected body; set scale for perturbation. + void mjv_initPerturb(const mjModel* m, const mjData* d, + const mjvScene* scn, mjvPerturb* pert); + + # Set perturb pos,quat in d->mocap when selected body is mocap, and in d->qpos otherwise. + # Write d->qpos only if flg_paused and subtree root for selected body has free joint. + void mjv_applyPerturbPose(const mjModel* m, mjData* d, const mjvPerturb* pert, + int flg_paused); + + # Set perturb force,torque in d->xfrc_applied, if selected body is dynamic. + void mjv_applyPerturbForce(const mjModel* m, mjData* d, const mjvPerturb* pert); + + # Return the average of two OpenGL cameras. + mjvGLCamera mjv_averageCamera(const mjvGLCamera* cam1, const mjvGLCamera* cam2); + + # Select model geom with mouse, return -1 if none selected. selpnt is the 3D point. + int mjv_select(const mjModel* m, const mjData* d, const mjvOption* vopt, + mjtNum aspectratio, mjtNum relx, mjtNum rely, + const mjvScene* scn, mjtNum* selpnt); + + + #--------------------- Visualization -------------------------------------------------- + + # Set default visualization options. + void mjv_defaultOption(mjvOption* opt); + + # Set default figure. + void mjv_defaultFigure(mjvFigure* fig); + + # Initialize given geom fields when not NULL, set the rest to their default values. + void mjv_initGeom(mjvGeom* geom, int type, const mjtNum* size, + const mjtNum* pos, const mjtNum* mat, const float* rgba); + + # Set (type, size, pos, mat) for connector-type geom between given points. + # Assume that mjv_initGeom was already called to set all other properties. + void mjv_makeConnector(mjvGeom* geom, int type, mjtNum width, + mjtNum a0, mjtNum a1, mjtNum a2, + mjtNum b0, mjtNum b1, mjtNum b2); + + # Allocate and init abstract scene. + void mjv_makeScene(mjvScene* scn, int maxgeom); + + # Free abstract scene. + void mjv_freeScene(mjvScene* scn); + + # Update entire scene given model state. + void mjv_updateScene(const mjModel* m, mjData* d, const mjvOption* opt, + const mjvPerturb* pert, mjvCamera* cam, int catmask, mjvScene* scn); + + # Add geoms from selected categories to existing scene. + void mjv_addGeoms(const mjModel* m, mjData* d, const mjvOption* opt, + const mjvPerturb* pert, int catmask, mjvScene* scn); + + # Update camera only. + void mjv_updateCamera(const mjModel* m, mjData* d, mjvCamera* cam, mjvScene* scn); + + + #--------------------- OpenGL rendering ----------------------------------------------- + + # Set default mjrContext. + void mjr_defaultContext(mjrContext* con); + + # Allocate resources in custom OpenGL context; fontscale is mjtFontScale. + void mjr_makeContext(const mjModel* m, mjrContext* con, int fontscale); + + # Free resources in custom OpenGL context, set to default. + void mjr_freeContext(mjrContext* con); + + # Upload texture to GPU, overwriting previous upload if any. + void mjr_uploadTexture(const mjModel* m, const mjrContext* con, int texid); + + # Upload mesh to GPU, overwriting previous upload if any. + void mjr_uploadMesh(const mjModel* m, const mjrContext* con, int meshid); + + # Upload height field to GPU, overwriting previous upload if any. + void mjr_uploadHField(const mjModel* m, const mjrContext* con, int hfieldid); + + # Set OpenGL framebuffer for rendering: mjFB_WINDOW or mjFB_OFFSCREEN. + # If only one buffer is available, set that buffer and ignore framebuffer argument. + void mjr_setBuffer(int framebuffer, mjrContext* con); + + # Read pixels from current OpenGL framebuffer to client buffer. + # Viewport is in OpenGL framebuffer; client buffer starts at (0,0). + void mjr_readPixels(unsigned char* rgb, float* depth, + mjrRect viewport, const mjrContext* con); + + # Draw pixels from client buffer to current OpenGL framebuffer. + # Viewport is in OpenGL framebuffer; client buffer starts at (0,0). + void mjr_drawPixels(const unsigned char* rgb, const float* depth, + mjrRect viewport, const mjrContext* con); + + # Blit from src viewpoint in current framebuffer to dst viewport in other framebuffer. + # If src, dst have different size and flg_depth==0, color is interpolated with GL_LINEAR. + void mjr_blitBuffer(mjrRect src, mjrRect dst, + int flg_color, int flg_depth, const mjrContext* con); + + # Draw text at (x,y) in relative coordinates; font is mjtFont. + void mjr_text(int font, const char* txt, const mjrContext* con, + float x, float y, float r, float g, float b); + + # Draw text overlay; font is mjtFont; gridpos is mjtGridPos. + void mjr_overlay(int font, int gridpos, mjrRect viewport, + const char* overlay, const char* overlay2, const mjrContext* con); + + # Get maximum viewport for active buffer. + mjrRect mjr_maxViewport(const mjrContext* con); + + # Draw rectangle. + void mjr_rectangle(mjrRect viewport, float r, float g, float b, float a); + + # Draw 2D figure. + void mjr_figure(mjrRect viewport, const mjvFigure* fig, const mjrContext* con); + + # Render 3D scene. + void mjr_render(mjrRect viewport, mjvScene* scn, const mjrContext* con); + + # Call glFinish. + void mjr_finish(); + + # Call glGetError and return result. + int mjr_getError(); + + + #--------------------- Error and memory ----------------------------------------------- + + # Main error function; does not return to caller. + void mju_error(const char* msg); + + # Error function with int argument; msg is a printf format string. + void mju_error_i(const char* msg, int i); + + # Error function with string argument. + void mju_error_s(const char* msg, const char* text); + + # Main warning function; returns to caller. + void mju_warning(const char* msg); + + # Warning function with int argument. + void mju_warning_i(const char* msg, int i); + + # Warning function with string argument. + void mju_warning_s(const char* msg, const char* text); + + # Clear user error and memory handlers. + void mju_clearHandlers(); + + # Allocate memory; byte-align on 8; pad size to multiple of 8. + void* mju_malloc(size_t size); + + # Free memory, using free() by default. + void mju_free(void* ptr); + + # High-level warning function: count warnings in mjData, print only the first. + void mj_warning(mjData* d, int warning, int info); + + # Write [datetime, type: message] to MUJOCO_LOG.TXT. + void mju_writeLog(const char* type, const char* msg); + + + #--------------------- Standard math -------------------------------------------------- + +#define mjMAX(a,b) (((a) > (b)) ? (a) : (b)) +#define mjMIN(a,b) (((a) < (b)) ? (a) : (b)) + +#ifdef mjUSEDOUBLE + #define mju_sqrt sqrt + #define mju_exp exp + #define mju_sin sin + #define mju_cos cos + #define mju_tan tan + #define mju_asin asin + #define mju_acos acos + #define mju_atan2 atan2 + #define mju_tanh tanh + #define mju_pow pow + #define mju_abs fabs + #define mju_log log + #define mju_log10 log10 + #define mju_floor floor + #define mju_ceil ceil + +#else + #define mju_sqrt sqrtf + #define mju_exp expf + #define mju_sin sinf + #define mju_cos cosf + #define mju_tan tanf + #define mju_asin asinf + #define mju_acos acosf + #define mju_atan2 atan2f + #define mju_tanh tanhf + #define mju_pow powf + #define mju_abs fabsf + #define mju_log logf + #define mju_log10 log10f + #define mju_floor floorf + #define mju_ceil ceilf +#endif + + + #----------------------------- Vector math -------------------------------------------- + + # Set res = 0. + void mju_zero3(mjtNum res[3]); + + # Set res = vec. + void mju_copy3(mjtNum res[3], const mjtNum data[3]); + + # Set res = vec*scl. + void mju_scl3(mjtNum res[3], const mjtNum vec[3], mjtNum scl); + + # Set res = vec1 + vec2. + void mju_add3(mjtNum res[3], const mjtNum vec1[3], const mjtNum vec2[3]); + + # Set res = vec1 - vec2. + void mju_sub3(mjtNum res[3], const mjtNum vec1[3], const mjtNum vec2[3]); + + # Set res = res + vec. + void mju_addTo3(mjtNum res[3], const mjtNum vec[3]); + + # Set res = res - vec. + void mju_subFrom3(mjtNum res[3], const mjtNum vec[3]); + + # Set res = res + vec*scl. + void mju_addToScl3(mjtNum res[3], const mjtNum vec[3], mjtNum scl); + + # Set res = vec1 + vec2*scl. + void mju_addScl3(mjtNum res[3], const mjtNum vec1[3], const mjtNum vec2[3], mjtNum scl); + + # Normalize vector, return length before normalization. + mjtNum mju_normalize3(mjtNum res[3]); + + # Return vector length (without normalizing the vector). + mjtNum mju_norm3(const mjtNum vec[3]); + + # Return dot-product of vec1 and vec2. + mjtNum mju_dot3(const mjtNum vec1[3], const mjtNum vec2[3]); + + # Return Cartesian distance between 3D vectors pos1 and pos2. + mjtNum mju_dist3(const mjtNum pos1[3], const mjtNum pos2[3]); + + # Multiply vector by 3D rotation matrix: res = mat * vec. + void mju_rotVecMat(mjtNum res[3], const mjtNum vec[3], const mjtNum mat[9]); + + # Multiply vector by transposed 3D rotation matrix: res = mat' * vec. + void mju_rotVecMatT(mjtNum res[3], const mjtNum vec[3], const mjtNum mat[9]); + + # Compute cross-product: res = cross(a, b). + void mju_cross(mjtNum res[3], const mjtNum a[3], const mjtNum b[3]); + + # Set res = 0. + void mju_zero4(mjtNum res[4]); + + # Set res = (1,0,0,0). + void mju_unit4(mjtNum res[4]); + + # Set res = vec. + void mju_copy4(mjtNum res[4], const mjtNum data[4]); + + # Normalize vector, return length before normalization. + mjtNum mju_normalize4(mjtNum res[4]); + + # Set res = 0. + void mju_zero(mjtNum* res, int n); + + # Set res = vec. + void mju_copy(mjtNum* res, const mjtNum* data, int n); + + # Set res = vec*scl. + void mju_scl(mjtNum* res, const mjtNum* vec, mjtNum scl, int n); + + # Set res = vec1 + vec2. + void mju_add(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2, int n); + + # Set res = vec1 - vec2. + void mju_sub(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2, int n); + + # Set res = res + vec. + void mju_addTo(mjtNum* res, const mjtNum* vec, int n); + + # Set res = res - vec. + void mju_subFrom(mjtNum* res, const mjtNum* vec, int n); + + # Set res = res + vec*scl. + void mju_addToScl(mjtNum* res, const mjtNum* vec, mjtNum scl, int n); + + # Set res = vec1 + vec2*scl. + void mju_addScl(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2, mjtNum scl, int n); + + # Normalize vector, return length before normalization. + mjtNum mju_normalize(mjtNum* res, int n); + + # Return vector length (without normalizing vector). + mjtNum mju_norm(const mjtNum* res, int n); + + # Return dot-product of vec1 and vec2. + mjtNum mju_dot(const mjtNum* vec1, const mjtNum* vec2, const int n); + + # Multiply matrix and vector: res = mat * vec. + void mju_mulMatVec(mjtNum* res, const mjtNum* mat, const mjtNum* vec, + int nr, int nc); + + # Multiply transposed matrix and vector: res = mat' * vec. + void mju_mulMatTVec(mjtNum* res, const mjtNum* mat, const mjtNum* vec, + int nr, int nc); + + # Transpose matrix: res = mat'. + void mju_transpose(mjtNum* res, const mjtNum* mat, int nr, int nc); + + # Multiply matrices: res = mat1 * mat2. + void mju_mulMatMat(mjtNum* res, const mjtNum* mat1, const mjtNum* mat2, + int r1, int c1, int c2); + + # Multiply matrices, second argument transposed: res = mat1 * mat2'. + void mju_mulMatMatT(mjtNum* res, const mjtNum* mat1, const mjtNum* mat2, + int r1, int c1, int r2); + + # Multiply matrices, first argument transposed: res = mat1' * mat2. + void mju_mulMatTMat(mjtNum* res, const mjtNum* mat1, const mjtNum* mat2, + int r1, int c1, int c2); + + # Set res = mat' * diag * mat if diag is not NULL, and res = mat' * mat otherwise. + void mju_sqrMatTD(mjtNum* res, const mjtNum* mat, const mjtNum* diag, int nr, int nc); + + # Coordinate transform of 6D motion or force vector in rotation:translation format. + # rotnew2old is 3-by-3, NULL means no rotation; flg_force specifies force or motion type. + void mju_transformSpatial(mjtNum res[6], const mjtNum vec[6], int flg_force, + const mjtNum newpos[3], const mjtNum oldpos[3], + const mjtNum rotnew2old[9]); + + + #--------------------- Sparse math ---------------------------------------------------- + + # Return dot-product of vec1 and vec2, where vec1 is sparse. + mjtNum mju_dotSparse(const mjtNum* vec1, const mjtNum* vec2, + const int nnz1, const int* ind1); + + # Return dot-product of vec1 and vec2, where both vectors are sparse. + mjtNum mju_dotSparse2(const mjtNum* vec1, const mjtNum* vec2, + const int nnz1, const int* ind1, + const int nnz2, const int* ind2); + + # Convert matrix from dense to sparse format. + void mju_dense2sparse(mjtNum* res, const mjtNum* mat, int nr, int nc, + int* rownnz, int* rowadr, int* colind); + + # Convert matrix from sparse to dense format. + void mju_sparse2dense(mjtNum* res, const mjtNum* mat, int nr, int nc, + const int* rownnz, const int* rowadr, const int* colind); + + # Multiply sparse matrix and dense vector: res = mat * vec. + void mju_mulMatVecSparse(mjtNum* res, const mjtNum* mat, const mjtNum* vec, int nr, + const int* rownnz, const int* rowadr, const int* colind); + + # Compress layout of sparse matrix. + void mju_compressSparse(mjtNum* mat, int nr, int nc, + int* rownnz, int* rowadr, int* colind); + + # Set dst = a*dst + b*src, return nnz of result, modify dst sparsity pattern as needed. + # Both vectors are sparse. The required scratch space is 2*n. + int mju_combineSparse(mjtNum* dst, const mjtNum* src, int n, mjtNum a, mjtNum b, + int dst_nnz, int src_nnz, int* dst_ind, const int* src_ind, + mjtNum* scratch, int nscratch); + + # Set res = matT * diag * mat if diag is not NULL, and res = matT * mat otherwise. + # The required scratch space is 3*nc. The result has uncompressed layout. + void mju_sqrMatTDSparse(mjtNum* res, const mjtNum* mat, const mjtNum* matT, + const mjtNum* diag, int nr, int nc, + int* res_rownnz, int* res_rowadr, int* res_colind, + const int* rownnz, const int* rowadr, const int* colind, + const int* rownnzT, const int* rowadrT, const int* colindT, + mjtNum* scratch, int nscratch); + + # Transpose sparse matrix. + void mju_transposeSparse(mjtNum* res, const mjtNum* mat, int nr, int nc, + int* res_rownnz, int* res_rowadr, int* res_colind, + const int* rownnz, const int* rowadr, const int* colind); + + + #--------------------- Quaternions ---------------------------------------------------- + + # Rotate vector by quaternion. + void mju_rotVecQuat(mjtNum res[3], const mjtNum vec[3], const mjtNum quat[4]); + + # Negate quaternion. + void mju_negQuat(mjtNum res[4], const mjtNum quat[4]); + + # Muiltiply quaternions. + void mju_mulQuat(mjtNum res[4], const mjtNum quat1[4], const mjtNum quat2[4]); + + # Muiltiply quaternion and axis. + void mju_mulQuatAxis(mjtNum res[4], const mjtNum quat[4], const mjtNum axis[3]); + + # Convert axisAngle to quaternion. + void mju_axisAngle2Quat(mjtNum res[4], const mjtNum axis[3], mjtNum angle); + + # Convert quaternion (corresponding to orientation difference) to 3D velocity. + void mju_quat2Vel(mjtNum res[3], const mjtNum quat[4], mjtNum dt); + + # Convert quaternion to 3D rotation matrix. + void mju_quat2Mat(mjtNum res[9], const mjtNum quat[4]); + + # Convert 3D rotation matrix to quaterion. + void mju_mat2Quat(mjtNum quat[4], const mjtNum mat[9]); + + # Compute time-derivative of quaternion, given 3D rotational velocity. + void mju_derivQuat(mjtNum res[4], const mjtNum quat[4], const mjtNum vel[3]); + + # Integrate quaterion given 3D angular velocity. + void mju_quatIntegrate(mjtNum quat[4], const mjtNum vel[3], mjtNum scale); + + # Construct quaternion performing rotation from z-axis to given vector. + void mju_quatZ2Vec(mjtNum quat[4], const mjtNum vec[3]); + + + #--------------------- Poses ---------------------------------------------------------- + + # Multiply two poses. + void mju_mulPose(mjtNum posres[3], mjtNum quatres[4], + const mjtNum pos1[3], const mjtNum quat1[4], + const mjtNum pos2[3], const mjtNum quat2[4]); + + # Negate pose. + void mju_negPose(mjtNum posres[3], mjtNum quatres[4], + const mjtNum pos[3], const mjtNum quat[4]); + + # Transform vector by pose. + void mju_trnVecPose(mjtNum res[3], const mjtNum pos[3], const mjtNum quat[4], + const mjtNum vec[3]); + + + #--------------------- Decompositions -------------------------------------------------- + + # Cholesky decomposition: mat = L*L'; return rank. + int mju_cholFactor(mjtNum* mat, int n); + + # Solve mat * res = vec, where mat is Cholesky-factorized + void mju_cholSolve(mjtNum* res, const mjtNum* mat, const mjtNum* vec, int n); + + # Cholesky rank-one update: L*L' +/- x*x'; return rank. + int mju_cholUpdate(mjtNum* mat, mjtNum* x, int n, int flg_plus); + + # Sparse reverse-order Cholesky decomposition: mat = L'*L; return 'rank'. + # mat must have uncompressed layout; rownnz is modified to end at diagonal. + # The required scratch space is 2*n. + int mju_cholFactorSparse(mjtNum* mat, int n, + int* rownnz, int* rowadr, int* colind, + mjtNum* scratch, int nscratch); + + # Solve mat * res = vec, where mat is sparse reverse-order Cholesky factorized. + void mju_cholSolveSparse(mjtNum* res, const mjtNum* mat, const mjtNum* vec, int n, + const int* rownnz, const int* rowadr, const int* colind); + + # Sparse reverse-order Cholesky rank-one update: L'*L +/- x*x'; return rank. + # The vector x is sparse; changes in sparsity pattern of mat are not allowed. + # The required scratch space is 2*n. + int mju_cholUpdateSparse(mjtNum* mat, mjtNum* x, int n, int flg_plus, + int* rownnz, int* rowadr, int* colind, int x_nnz, int* x_ind, + mjtNum* scratch, int nscratch); + + # Eigenvalue decomposition of symmetric 3x3 matrix. + int mju_eig3(mjtNum* eigval, mjtNum* eigvec, mjtNum* quat, const mjtNum* mat); + + + #--------------------- Miscellaneous -------------------------------------------------- + + # Muscle model; not yet implemented. + mjtNum mju_muscleFVL(mjtNum len, mjtNum vel, mjtNum lmin, mjtNum lmax, mjtNum* prm); + + # Passive muscle force; not yet implemented. + mjtNum mju_musclePassive(mjtNum len, mjtNum lmin, mjtNum lmax, mjtNum* prm); + + # Pneumatic cylinder dynamics; not yet implemented. + mjtNum mju_pneumatic(mjtNum len, mjtNum len0, mjtNum vel, mjtNum* prm, + mjtNum act, mjtNum ctrl, mjtNum timestep, mjtNum* jac); + + # Convert contact force to pyramid representation. + void mju_encodePyramid(mjtNum* pyramid, const mjtNum* force, + const mjtNum* mu, int dim); + + # Convert pyramid representation to contact force. + void mju_decodePyramid(mjtNum* force, const mjtNum* pyramid, + const mjtNum* mu, int dim); + + # Integrate spring-damper analytically, return pos(dt). + mjtNum mju_springDamper(mjtNum pos0, mjtNum vel0, mjtNum Kp, mjtNum Kv, mjtNum dt); + + # Return min(a,b) with single evaluation of a and b. + mjtNum mju_min(mjtNum a, mjtNum b); + + # Return max(a,b) with single evaluation of a and b. + mjtNum mju_max(mjtNum a, mjtNum b); + + # Return sign of x: +1, -1 or 0. + mjtNum mju_sign(mjtNum x); + + # Round x to nearest integer. + int mju_round(mjtNum x); + + # Convert type id (mjtObj) to type name. + const char* mju_type2Str(int type); + + # Convert type name to type id (mjtObj). + int mju_str2Type(const char* str); + + # Construct a warning message given the warning type and info. + const char* mju_warningText(int warning, int info); + + # Return 1 if nan or abs(x)>mjMAXVAL, 0 otherwise. Used by check functions. + int mju_isBad(mjtNum x); + + # Return 1 if all elements are 0. + int mju_isZero(mjtNum* vec, int n); + + # Standard normal random number generator (optional second number). + mjtNum mju_standardNormal(mjtNum* num2); + + # Convert from float to mjtNum. + void mju_f2n(mjtNum* res, const float* vec, int n); + + # Convert from mjtNum to float. + void mju_n2f(float* res, const mjtNum* vec, int n); + + # Convert from double to mjtNum. + void mju_d2n(mjtNum* res, const double* vec, int n); + + # Convert from mjtNum to double. + void mju_n2d(double* res, const mjtNum* vec, int n); + + # Insertion sort, resulting list is in increasing order. + void mju_insertionSort(mjtNum* list, int n); + + # Generate Halton sequence. + mjtNum mju_Halton(int index, int base); + diff --git a/mujoco_py/test_imgs/test_materials.premod.png b/mujoco_py/test_imgs/test_materials.premod.png new file mode 100644 index 0000000000000000000000000000000000000000..fcb34e50fba5317ccb603ffccf1f7d39a28cfff0 GIT binary patch literal 7290 zcmb7p)n5~i_r9pKpu~oNwB#5eDIKFmkBu5kItPfPAkqjMEhP<78{JaU;2WeFZj=Hl zAt6W!B0oQW!1v;Jah`K?uFmVkbDoo6Vx&Vy!$x!C#tk|>T?p)-|L{Mfy7>=z6(0Y0 z{bG{59eYIdQB3!1|G}b z7PcLAq@`75q>f_#y^~t%@A^@!Yqx3q|AJq;0!J_Z{&t0Z3G^(isQD)Ea=MYC8nWI{ zT=l8BYHDt7E?fKwB(L@A6!tZ9Dh!id^C+ipi6BJcCw$mWaz&Z zJW5})+mhUWwbRfv@|wcdOx{y6x0%r=Zio_SP`>OJTpirEvY{ zjUr{St>LReK`ogjfXVF9obYVIJ!2VTy`s1#e~kAG!GN)lcrHzP42!q;#VBMP&nC;L zA7B&^%4{hJ<7W(DI=S6GGRN!}_EyRoA+GUV_xB%ptVN8A;WMK*x8?Fs-Swtg0iLWl z^1`_6r}+)F2yt=oMrC&XPG!AvrR1cavrqrDqYcGZ^Q`9gf&1Qi*0*r6ex+`W=+G)-L@8w47$+WgqS=IB+^=CnlcPAxq-LYQ)fQ)n zkK}EWR^36EJL4F=1s(op#T)T&G6wwfB@Xs$TUEl#&6YIdXq#xnUs%uUAAQK`=Op^J z`TOKI1Q&@ksUbx55rQE`hY&fwtci`FI8_0R`y{w-Fg-;La>G9#?4`qUkjZX%Kt;R> z({xbCLki}~wfc<;+G}<@^wWq>WXW&>j9opwllalt4xc0Mhk_V@S^LFb)q*XW9VgHbae>F@9 ze%@~7{(7Lot7u{<0^o$2xeB;e?$CO5E<=yPrh*pZm`Jm2N2EK3MX-YJKLs^QJa{t~ z`Hb%7>bzyoW5}MD=oB$ddlhWjF_7akxZsWr@(9DnRUsbo(=oNGUYJTw+JrQ>@YW<` z>mD>aqZ`9{kxZU7B3H%c0T{R)U9?-6f<>LI=YFr*KwNNw=vdZ-sz~AR0>+`%v{eB9 zGF5`@X6|gYndxN>KXkU;{6bpYZukhRq3OrM32-IN_RQFJ&kgax4S!!MK5}$2DXR!p zV5os4$Zh}a3_=umkGeznYJ`W0RpJd=Zv%+4fs^`M^!%P0-zYWv2RHCplnFrkKQ5+@ zv)tu}ODY|WGaq%sBwSvDOZ0Sz)_;C~dW0}6fs)JQ0$}mU5!8OJbmc;i?@<3Lh@}xn zD-Aopsg?09mA(2UuC85#e{Yfi71n0%e|3~GP|=v62H6z}56u+2B?{AuU)e@;Fw~yx zQPe6A^zy+6qv>Jm&9yq+Sw>G%wf7_`%*ZFk$Mx?xUw*UhEY%(Ca`5zyZh4Co?qLKo zJYXV+wa9CUB)m3nBJb)ka$RyCied!%Iqs?Os3 z=~XTZFL>c=Lgorx2P)KPvUJYybO`D?JCns`7_h4}})2imormaQl!VGEC?P)WuKAv9Tp{RxjrsA9Mpxj4X zrnKniVz$=9WmeATS$G6n4+<4h{Wh0A24l?~8$CrN@UZW5i(KESAS(DBqD=XZ6BOWIP4SHUC}^)3 zq^+W^rIRLqtCXU`up{@#3$vKg-5g8o0 z7xO63VXgW6s`DG!rS&sN%Ywno*(g_d8PWtq35X8nVqZ>{9!DKGI*vJoR*(nc z^blz|=T~Q+>#r0KrlzLCudmvtJWnwe2EM;GyT(Yy%96^A+SklpBfo1NaSNIER21(d!s53;w5!BN%RBl>1C9`{u>R^i0ub8-L>Wwm`s${=RKn&K@p?t zMu`?duEz1GP&CZIc#lE$5T4V=_`10N-pKx26#&rEA~C_M&j%<{X7p8?V`jUt7URl!P4?yy$It7OZivhyuu~I&)?8{lBNC@OuuP3#Rhdia{=k?y}qVsJA zsEVLB=%e)zzdDe;_aksZ>rts|6Y(*?!%Vha9rKZ<6co3WIoGPRmwVfACr#+C`^KTF z+%orYwWT9ycIg_SxI3mEch8R$}c@UfIatX=;$e3p))8> zX3Mx*MFkhTlXgnLFaOi z!(H(Ji}9bq+V6uCx?7to(DJ}+wDhbPfiJ4G!RV{aVQYI#^l9QUc$KEL#LjCLie zs@Q--yf=4NXUL>LLpsK^1)YBqhEllq7#XeMF0`%YJC0 zz?ej?N))_93)Iq=x15O-2(9n@)mqt>P;gd~zvKRXUA!W``r;#;^fFGv|F~weTw=bV zZp@zeW!pl5LwO$H`DI$*XD?g!fj&>6eMQ1we^0;ig6wNL$V+qP z+0+{2s#CT=hesB)jcOrveQn6~$h=v(BHN}Tfjx!ZET3+sxg+?AU3Hhl!Bj|CM_W{H zEAp#U4iLO_W=}|RsM|6KbZ{VboYe39{@ro#XK(RH74SSnf3>7GVA46;HjwoH2Sxqg z-wR#e;rfCq60ndZNbOw5{QWhh+J1NUa5MSufn8<&na}PuxB7Jkr?FX|`i6De z{9>WdxT0wsRJUGcvN~jGdeQaRpY5lfXrR7<-qq^|4n-D{+v?vQ|Ed3g>;)wf%4i3H z#kU@1tEm^leq!+xuuT(gn8Qxz{4W4k>1Ljz?^e->-(#FdIR{T2U8EnP3o^cARP`N$ zdkI_t#l3q(ZqAsVY=i-oeRQYOyq-e)vX#D$2&IXGSmwT8-m`6x2$N?ItYf7`l_E$c zb@;ANV8a&kNtTbYF6qXZ5&Tn z4kS6sy{iIqjvkZn8JypsN^XvaYl8)Dacv8M(OhQkhDXuEuS%VVn{FI5Pl;L+!Lpr? z$u$)|G`xOA4<6omD&nFUa?e=U%c1&vbEB3_A?IA$>@?gVjd$wwcfNx?ty?C-?6&lO zbgY=2b5h?UVGCyFW$IGr8A=X`p1Ch?uZM5p#U`I1JRN$MNpHDqs}NRPge^J)2AqK6 zg8~nVE$ke%nSJ=9l!RpKX@OW;#%aUUM2*{K&p4ol*&gW#+br+3Mxw{9C51p40^ zs7>eJnL9W=oV=Va!6TNX*ZKKqa&m-JyWLiz?adWNgcE0hd=_N5!3@Ljm59nt<{tfY z&F($O0s2%A0&-^@>qxB*7M10`or?&qp<9k|NU-(_?-vk9K>Fr9`p+A+s&_PB;X-bd zws>iW!tONQ?@u;F%T50qcGJ8s6OF~Zj}snUY-tTrN|ZfxX6QiFSIa@MSEVd)-TEw`Fafw7a)I8A=}WG}!{g2IVUjC`Y{=J0lY< zk?PLI11fLC)0-VVNWN?s-0Z{1nH}LI2J(bYtOKOhc4Qh`!w$Yvaz)hoZw`Tuu*1o- z;kBGMt?L022|>hpfz!sH`+9p7ERLb_uquy~bEYPMP7ld8qv5_tIg%_1xk=~v>zTlN zZo_C>8LC6BRZEam(C)e%K(W!83i92G+@-5Dle) ztfH47;F8a<2emlqzVt{clz@0)at)CJ>(*X&Y19a4)vu}!!4NFdqxsHlvQs_|;XgQE zLUt&rQj^SSCAqVj){|S6Gj571aV{Rq9pD%MCl`Sw;lq&=KeA$HLW;C~D7p`MUzpc; zZ>SRn8>w6nd@`bzq~kNoC~pz#oAl9jdSUG&3oZw&^`XI7o3P&0I{MI&VnK2caZ@^e zLG=#E;A)BP?D8tGYq(c><@6ftfS1nt0-@R#B3*5|47IeVWYh#@+E z#DDs@9DmodfcFS3e;ieG;s1-CGCWT3O?SoLG`oJJVgblq1cP1=N7XP5Tpr4=> z;L7K}X7bysu{L7&xsx_O!`y|L0~IyN!VS~;V6rSnb=ukE`#knRG2o?* z%*CIw!3bC+9HICK7{}zx;P*MqXX_q&!bIUSwY*!j;1Y9!2n58FKHWHoelvu<;A)pn z6-a|RrogqXF=hCya~Af54nV5{^J1__%N5$Ke(-6%7HzYV(U{hAY^GRqfU5`O@F=>O zs1dR*Szz^)TR59y?zI~5O8DD|K>wK3VdbU0ZR1n)e&`Hzyb1pGB7n{*?2gTt5Vco z*J^&Pvgl=#EHWN@*%j?r;A9X$_^@893K_dm0b$Hc+WYe9Nw`){X*1x3iTVK5MMPm~ ztx(ni{%cl~2|)p1xNW}Ndc>2^!MO}l@XV%-)a}^HqL8mx%gqshDxopH+Cr&fr(C?u(LuiUog`ZItFUspWe<9QLfXd>Ey6j?t;rri zIPgwd>_Lq?0y`g5hP8?Mld0T;d)7~8VmSL8F%0xz+Z?kJ4J$%g0I;o1A*Z#@VWuB- zuU5d`(nHa$$+@1kLYhcSAF^qd8yX&Qgme494W-O98Ro`i=(&l6&00iyhkY5bqmI}z zL2L_WL*WkNYDWLoU0Y>t4pB4Aixp97c(D5?>9K=P0+98xLKjf(^oq zTtOUmJ$juD%ry5WOK@aY$!~4d*VHJNQi@bKVF(%IkJmy%r6>CTc$(H&G!gpAOpgU6 zMUx}$X0o&UlMVacO8-RQ6;IT09=SD^^B~#nKEZlBT`b;o6)2^ddv2%TCBn$KVCfqDOi610z8qBp^qg z8SE(~NB((iy=M?uA=;1$UDLT|8smLgU>u}5;9wwP=c(O3%mm7Wn3g53=|0&m%bnLX|EAFxN)RR~`hN!*sJd=b~+QzC7hpklOhi89?RNs^~y)((yBNkj~)UW#xe% zzDoz$nj*BE1w~h17Yt+po@q38?a6)K&VW)kUx^JWqnE`kTT>AHBg-nV`4Vxsk7gz~ zLWUV^>wy8Q8f8NcOUYNH+|yZ%(^7WR=tuKB;si16YA?B&QuO}Ivb}}Bfhzls zj#g6IwX#-KoE9F&tGswj;hy<^Bx~h1 zCMVp;>rDCz3pDGCe4KEZ)^02I@O8}=lbMjciV>kDcxYBh%h;WPokxaQgrn_EXqF9W zem(3B*g8e#4PSPkSv6@q%bZ^Y|0Xj^ zGe6!|ANDwM8vdx8#`x|ojxB2kl6T_!Ps{J6LsC4DS8hbdW+xlB{(8spm71esRbfN8 zt!!{z7*1MT4~qmxTcrSpU=(>9n%#F$A{Kk9*%GD?xG2btx41UsBHeZt;5gxb65>>o zGr6+#Cz=juc2e+TKi?`|C&PisM_(O1qz1seGW^!kJ#Y1RtEoT#ll{4ovLW!6t5U^D z{~0ERmMcEa%tmP+7>|v_JZG*7ye21B#nqHBT2A}OKTxF|#%Lz?|3 zhE#xt^D-kf_n)6bO=A?&@b*tQY`f)1O*dJrA5{0b*F|Tur1Yq%MykG7v?lLY4@fFg zzx|w67tz7oYVVjU;~hBguhX;SYl)8@PfVStW1e#@;VHPZLTCXt)+v$(_^_&TY5az%-;QR;!n}4 zBA!arYI&7rh2u=?7Y8)1#+M}~8nY)R2+eMoFOAiM4;!U~WxjHiutH8A3BeK4?(|fz zi?OTbn?G-!wW{bBPk*yMRxdy{uYovb5;IU8?)`ZhYwG@}|MLhu4IgTTip{UB-TwDe OyrHLM1gX=oi~4_j^cN@q literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_materials.props.png b/mujoco_py/test_imgs/test_materials.props.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f02fe83ad70659df82392e9a3042f0067a8149 GIT binary patch literal 7034 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 literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_materials.rand_all.png b/mujoco_py/test_imgs/test_materials.rand_all.png new file mode 100644 index 0000000000000000000000000000000000000000..b64cf24702e73185832a9f2d052d2f2565948ded GIT binary patch literal 6729 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 literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_multiple_sims.loop0_0.png b/mujoco_py/test_imgs/test_multiple_sims.loop0_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe9ce1911f62fcfb26c1e92f9bae9d4c73fae1b GIT binary patch literal 47412 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 literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_multiple_sims.loop1_1.png b/mujoco_py/test_imgs/test_multiple_sims.loop1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a907f441f6bac1452df656be3b7f5da666bd00c GIT binary patch literal 53580 zcmV)^K!CrAP)P}VcxZ%%)17l_ z1QE1CE7~hf(TZxJPj%M}olc*0S1mN76}CbvY$ilsuUZfKl*4AUO0(Cnsy;PdlXO>i zB(^nAG}Bfw=u@ZX82VHXHlvl;3eED-oOQ%ws=N9Gq7}BvX4)&wD8`w`nsn!wbf=lN z!dCLpTOqvpz7H4Yqz|1Q#bQ%lhsX;8^vN;upm7Xlkf+@W zTb{huQNE9O&Jh2+4s0ceHDHYy43BCwi_O-A%@`5qh;!!GM4u4RN;HeAJgX>DUWaq~ zIr92PU7stet-71QH?5HH@{WQ&|~7A89H6} zjt94f84#`Nt;MD4-u0Z^J7e+~dJMM8t_p4Cdr9bnnzcK(#2cYl~Z>m>z>T*Oz_oJSMlMcd=Kts<#$zjbm~j43}fise4Co z!>eIMd-1o8R&?+BI@O)i^_=?bacf{SQHx)j-ZnXWb>g(cZ|j0a=M1=G4<7>nZGw`p_s1CZx!I{WID&xF?Amt&O2ci8?hB`jkm_V^VKziF?bHX zIz`{tflJ}7VWzLny{ku@UH1`>&aDM?UD8{NTZ?1Z9j3?Ad3N0gh+Bl3wi?$a+NZqSTcxRkgS9H}#%89JOtj}dmOZsZYlYq1;mA*kw8_sOqA>{O2{ zs>LrwAG>CR9~{FXbPT?_W?&_D$IxEm*5a)h7V{9D?s^RUea3BCz4{f3>014x5!iG) z9q)NT^%x9-&k#E)Bw)pcBeQLT6 zQv^9x_o(JuLBw8oYkceohTDC{2z!k9`>AWQW^rw_;+MuBJAqs}Bckh^@pl$^Q4)V!d27~m&V71A|f~k9_r3#*XIe)ECOnYYvsqThcR3a z(}d^b^8{3O+l!lQZ+>fWsq&ytfbRB~{CwKnyjom>CS4mpwiq*}>nQlCbMiIRryJTz zE~tL3d~EP!%oYWJF?H`0(-F+T zj8?c+kli-ls!7a0e)$gOL}*G4MuPuHp9$ljdvHst+ClU`RCNv z&~VPcp_pB^c#jy)rCKY<7{OzD9NdSxgR5Cwn1RR6mD#q6AEohT# zi&hC3u1CjY&q;rMz)OuEJ4L!witw;=##dJnPiG=iw4(PdOk5kSNQ&ut&M0SYyX!h! zD#I~iFHwvL`n0F{aGsM9d0%pAIDRR#B3X?55(jg}IdP|0Y(=-mEbNscq3Bc35nzYM zh)OGQ6}3jj7D666Mnq_aM&J=W{4JqhV#`mSaASSE!;#k6=SPWOK!*f>KHm*ArC4Hw9+Mdi zS9e0Hl`CNeXg8HY$j(5WV{*PO=x)-c*3>Na8dfx%=a7qVPR|>QYn4eJu~{_3;hcc= z$>H=cGjD|(QH&~Wm0}9wIl}=sM*hIKR5xt+3JPWPi2KNhmhL!eMYoMw!icS4!h^#_ zM{qhLFw><5uvIGLmpGiq(2VF)=Oh%xxHQayU^9xziDTel)%@rTmlVyoHJVu~Ucs;# z{_IRw1gC$m4q@aOQWb%EaPL~-xa)uRKmPBD03;zKlNkbmghL=g2nUcUUzL?LCPGLa z0Emd3ha8E_41iDw0!Kg~Q%E_XnIRKFNaUQrdXSl92y&+Uh9VSsdLX^d+1456>A2^a zi#$8MCNYeV6avqWNdyr{l3{t=--lEPC&D9~AOOqL3uI1MKsdqczntzh!MX^qKSvOR z2SJ`veh1|EfFL5mopoVf--xunk_dQ>bSDQ(P5>d$x(2wf^NGM;XZ5;bkuwM3Qw|WG zA0V%sgRp#0zUq+^!uqQbp->EOt z&x?jLCd27254uxOtu&*W7mFr<9_BDyW2!q2Ro+asuo=}On_?f zJgdA2!!tvVs#sUGMiGVRZqxl7$}e$v2%5r-YHAiH0b|CPbZ3T*$&9F?S{PA{B8sh5 ze-eFixTXi9NX;lE3RFYHa1GaVy2qHB5e14>nsnX#QtWV!!E-WP$JBFB#HC?n#aP#d zDW1cglQB6bkD=4KRIYX1RoA9#qdSj|yPfcudUi>1Y23gnd*RxmnI6uw+YFvV&!NZE zwdtnF>wc}e?M&yaEyTxwW{|I0uj6v)gn%ryd=MTg4Qz*lXM>t;D_CW6+&3xX<$FekpOQ)E3pawzxJ; z*CS6pcupRj2wfUi#U}R3wXhlY5s%Zlc^`TV9w)8Dwd!I~EcO!D79RHO+zFpLh8~0A z?1gLPTB8*%g=>rF(6jS!oA`6^oHAmsnAA$_C9VY%j}gzV?&`r~a133l?^JEoZ&e>V zUn3%POu6eh_;sopR$`Bg9OJ!F%uLMS(K)9cL!Uh&tQ7}Z(QWgOrstHqoz5J34*lww zB#|5QUU}cRRCLIL$5eOShy6SWsg<~5t;TJSKX&>wq<%2Fj%lB#MmWY+L(--3w#EA< zJIIh|xb8zg&$w2qMYN19;>RWTKXqW(;r!|xLr7Z*iLJ!@ravy!gTPK_c0GrFp3zJu zU0W3MOR*n2%|cHdlNg*+UtPbB2t_TDB2)bzyPiXFa7@jJXV=dI2_vIMT^k=;>=lR% zQhVs$`FYrEUX2TE&2Jlj?3^P!bWEmO<^dzXe6tYROT2BoHR)h_W+Xg1KTj@|VzCF+ z;!^o&3Y@S$xr<}+)j5VfcA5p)Uj0_%V_#d!b28nY&aZ=FF2!yX=~{VfQ3YsZIyvnz z_&nXQqKb!RXa>14<%Vy{T`6ou5#hlM17_eLspR%&R!T-23Ucvhx~+Fgx&48PLI}lN zyPJjZkfdTNg{`O>CNm=f&ovf26vCupQHm^73mKm|>-;@$8Z6#oiW9YjWM+Y}_FV7~$O^TpO*M;B^5a;DiQ}3`hH`%_(W;tJw4%&!Y}q5jOqI$u zfiTO!bd4#o!YhgI4XYLvLq>#o#Be4V0_PDahMNI1dr>t!cn*`$)H#?gWvY)_WiQcQ*!sPjhfO#Kj%tZZeo2;7g=6Q8&u*LZoEm|o zt>|59g}tyhKr{55#7X{4BUFm6nH-=?VXKx${2KJ&Iq1_cwxai4#c0L%`a%udIFam_ z%)q4U7MQM;YtvQ$^{I#9onz30jO1=Dgo@d5E>EBv3{}7ArETd(!hurd!q=) zhWlsN>G2%V9Z6e_TVNIi_67aKbC^dE98(@4*jvIJv6qB?qEGICvfvHT^ete+#($-_<0`<0?FqktJj%n&eCPb$&qP)hK zBL6-;uLIM8D0%*`!|^)#G1f4T-!l|Nt^_&H1oxP}61|+E$Q78m@+dQAFg@~#;Q~_# z^3cGXd93^t5fS=*N|DQt<6|g7lgRN1!)>i$kxypC^q3Q0*FPtzD>aB%w^w=HLq&>p zXIO~mz=J^5@^_%tFry&POB0M~Zp?wPCaGFEAPV=~xhxABAr;AtYHSw8td_Ogj?fIw zDF?Ck+yu0WAn!;g*ToT;nXX~Gt;_8wV%-^i$_J45N0dSnRVcrEH-`>$yuMV!pcZyv zCSKRUo#(_O+*K?JA!%>xDo@u4dBm7JBc`vt#*C`i)*Y!Ca*q-8ncGd6B8N50sbYE_ zP9x;b7zvJ0L?*ELJ9*t1=HcVC8F^<*L^Cc05$-neIWqi^dqiLsxv%XtOcLvM^q@~o zm@~}GKtxq+Z2>kOnh|qyx@JT;W-7ugDp9H3sl}q7LeKYpT(Rq$6-tipv z9G+nJMNy0P7MB9(nQ7GEa61Nl`laep{USEwQngndlVjw?jA!RL7xKOr-^5~&SFFUC3JIqV2OPd#TGLlAq>UZPrlL0+`p{v0~9jyYm0?8Ubl zRcwX5hEE-nV_L_bW9_F~VK2JW*eo_`Nzqbf6zudX*RV6Ba7^{Cuffkl?@lo;qFKCc{J1b29qNI1J*R%243Cd3T5&1%VjsJ| zH~xl+Y-&b)b$y<;moTvxwK{K=j~xg-H5?y0C%;aPVUE{g7<-HN&EKm&JK-F*cmSWB zYLT$G8P}$dZLNjFb-+3G*|~T3D%)d6Tj8z6N7G}h(v1_(VV^w+Xi+UuqgRjnTe{WF@UPrvu`0R?Pzta;B_ZI|jMll1P zGvQs$Oawf^?#y%&Rior$y4J}Btc4&@xaiCOc zWiuqKpf02cW@baHPN7n~8P%*+%FJ?wg&0A5Ve45)P1;PUQU@tu1~bCLB0NFELP<#rY#r|NDl_b|zUM4PKeDUu>E6k|$?iGna>iel6(SG>S@ z&(wZl=zx_nn+cZ{=n%Z3UOdy_1PThZgmt8v{0hwCQrQ-^9?xNBOjj1qb4gD?;nKXA zLJPkcq36hSQd{K~-vFA-B9l9HlXB%$G3`}ImsqeW*zox31bR;ONuXABjXWNXi8}q*}Oc;ladi)mstbbo=bg&{t>7K-#L_BLvOt(x@c@J;qAjpIsig zv-7cWsoWYlRS$i2_t0~24iRicZ<{h$zLY2;u~zFC93F#(GR}=^eyg@OM>g?$C*T~M zlR&k^UiIS=gf2CTLN9$g($k%^EYsY^!0W36DV!VpWR5OqZ%^1YS_)=jX(|95ec) zhXh**p;jo0%A(UeXUqW9of!)#F2?j#w~;uV80DOiC9F_13u?5IxvfhcLVRaI+WN* z-i{UXLT--kopY!MBlN%cFaD2-i7J%EQCk(!h3rADnPpXkvydDw6fysob!!rI$m(Te zrP&gBg4{7>t2k|DI3^=pA?3_P$kwX{GGf(mbIDaCz$x;TA|+;+r|q62U$tbZ1ZG*0{tv}+UMIsE?-7cK84;7f-SO~s^@*$yOA$f1d(QUS z`t4PX&TrU=O!~eH>YkN+0}p!*W1YVpTnhe#cb5Jby!d|tP*a~|EbWUY@dpPG@HL@JA zmCVREXQoBDnPz6nUbWZQ%rglxag2BlIXW|$nz37sS=V7RjfkViG1TFhIvwyefY=LL zrHW%JGwUPb9CplDSaFGJ+DhydcRMG?jAKNeRYYu6d(m#*j8@bX$K)6~JkDw7Xa>FdN@C+e=RuIJ<};?~$IN#%Llbk6wd zWx(uuPTjjQAg?9N?7GE!)86U{NhZ!RsS{QDMfO~=qLG-8#;KRd$S zwkSp^$^T|A{5r$2=b*d3CZA7k+amk7;%^)8jS=zd&~Q0A+&()V{)QLWtL@EigWM+(qg!Op0uJ?-JOCi)!!P`QZyl^ zl8F4(qsX@EKrLJ=A3Kk3V}(RIr+p1f+Gy~M0eBFaNVbV9x~%HGZ>0X z)sJ1>89|vV#`^4<5w+-2RgA6pt?7?Sz!69`L(i#SXL!@zBD7+QA0+~tO~=ezP+yaK zrx<%f(q8?&>R(`{UiliD!E@NpPP5osI9AQ~$_G^B8_$(^>puMFA(QPjWKoN5O@G$- zGG1B%9igutDP-`<$~-Pyi#ePjozY$QuD{Qa#ifG0nXWB-b z`Br$}LysXlGK0$!jc$z~ zrt58EtKo1A%iQOyYlKO(!utl&Ubr+R1pl1;ED$6`#Kd0p$Ihk3`=-5y#4+?)km)Np z+<;c}wna$QbZr!iiH^yyDublS7mK~d$8N>qy~SPtn-Py0GLE6s322qK8F7K&+Ej~B zoNm7kjvoqqe+YIiVK9ho*i<57KyJkFZ$SHGj5sR5Phx$_Bj@BHrER_%wn&URWmJRxPnJ#I*UKtF#K9*R@Gh4 z8S_Y4&!W*?tJQ)LTTvCBse8zz9!!@RTM5bb60IbiUfp^0g?J4oLe=s*0_=?rr1oj$5yn}OmQ_rk10QyXiP1209K5EtwfbV>cMB{a89>#0@~{OkhQQCOqvmo zA&*ripUSg}V%%J*2E!O|?=k8ULWS6hVxty{*s5BU?KQz;R#An#15Jt&jz(H)4b2xzwI@n#zE7%`oR&Md}TTr0(hP%CN{LG)4X zSvH=Y-0rQw7R^*Fs;m?rZcq8_f;b&l6w{@JiEE9bMM6mtN3!<16GSy`jhdY1LO~IW z(`@o%<(07+YHY=td6oX#|MLIz%2gtHudBKl-zi^aWyrL+#^21}(4qyun9a#TmVUEn z^C2_EEIw%gi%Dx1V6v>^v2r=_eW*n!fpBRhh-=I`t8XUqI=AG>ux5On|94jSA3j2? zOwYbQWF~6*&Wr!?PuQ9$GW}dU_P?+;Yfo$hqkW|WuEG_#CI&8IV`#u8R&dr3W0W?75+)Ch*JTHy$lrS?pQu5F2e zM)G~tU1Q2att`G}Gus;Ng({64;~Ig8YT6sEW{PUIq@n65rtO;XI_;vZq)^lH27_-E3;-!mVDH{ub7fI+&zw-mm;sj>zY@ZVZ=FgzSOpTMxWNqE7pn^Qi&RK zDRSc+*4@uxA_~!pirDI^?et;8{TO*asC!hXmel7YpeiDd!kBco5%^0YTZo!0YSEqH zbuo;elf7_bUH5C#ZDV?>Om#}f)T7Jc8llEkNpbK?r&hadersN^$KXpkJIA#9 z;L&;Cc{4UeEB3L+t;Xs4>gI5C-3RwBq_-CD#jOtuL_1ohq>k6UwDY*}TmRO4=OKdqaeU60Ova4B)EsutDa+Tv2e!|omTI9O_1 z4=x2&T8qur)p!g&dR;2hpJ%)`Yt@M*+x=(^x6A>3=otDMe3Qro$v1!B_<3l;F*7i- zzYlJkYULVgHLg{EUe;>eU3YZ4K8Kz|X0f}>Vk>&v_}5kClxJbb`5NW#Gxp5P8>RTA z@MG5oGM$0?s%L+m$f8-iZMN6A)%X{Bn7nb!Eb{2*L23c6EzIIl^apVTpjW#Ob@Vm( z_Y+st5^pV<@rM2d9R-}lGBf>oM0eBf7Xq<2{Q)0@ET>{jzJ~q#8MorabknS6x6S`7 z0PZ@9LUB01x}GBt`=UqlvFXoBF-9nr+>frmj@Zr0HLgT0ajWykPLah^ee$)g13wRk zXlA$O&Gf#_k4=xR>5(MCWAN)V;Y+_I?JYhw_9CD=U#|?{?-OrS3x`@Ful#VIVaFu8 zUW#yO&q_nC4oMS_=~cP?U5o9F`eGROMRwLqS}>}G%~PZiDNr1)K6wrsFhfYiv=wem zd!?An$U^cl6k7GfrjtS>Np}W);-(&okaDWZjM$1= zMPj;o=qXMZPCzkjMb`~rtBc9xa3Y~WvWKIhz1Z6pm&R6Q7C{VnpvmGtmJ+S#+SGh* zl_HbE@dGN>c`4+IE{)sdTGdJ{LUY8C<$Q1@XaxN^BO>Yc$?#6u(pD%b&{EP+ZG=AueQL%+HPtGuL~>Lz#dTLm=OlbFjDaBI>4In_ZdFB?bg3#Of_O~x0~5#4BvAlmQknG+DNZkC`gDf-G38P<-nK}= z>TXu6M_70NJXI`?!SJl0$1O;~++Gp#6h}pP=ook`?W>3x>?LXus|am<90#VOBp0c91>3^Q9l4y9mGvBoDY*vv>Nq8XC1PUl#FV+dQclN7S8 z6)x+Hd0byi7=2SZC7CoKJUOC^znTXst5}Pf0=W~yT`sLW%d9L4bz~VaWeDG6Jdh$O z$o5hhWMMSop}^GmC5SVk(E{uw)M_r3&l6EJ3;_ z!8I4c_~!sy^yu(4V6lfq7$Jp4GK_sXj?b}JE;A{0>%?5KG_D>@507wX`fu%Pp0+70 z*4h4}NE#lYSm&b`S=l3e*6#%^g*r)^)+zbRj-iMua=DhmT~kcA?mVY?s21gV*h=m@ z%rJ*ZGHW%5WXmz87OGiGgeiIDvhEztaH}Qq)y3f;}%6p(zPkhq36`;x;Cyg z)xCDx;!j}9bLi=kvf4;0UM`KT@Em$hn}aj-?Dq7y6uWJdl9XR=Ej;v?Ji57) zOk5AWHLfk1*o)q_*b9%T$1tBfyQQA96{X5FEjr!+c))$CyAJ2xIbCl}*XEnC7u|>( zdZ4Gc8*^F;T+Mi^aoZ^33O6WlSA3bebGYs!o;|MBu8o_;R{c_RgHC*nMHYPyyN@8a zHowaD8n3iVkKtdZGCI5u9z8BKt|b|Zajje{9(;8@I(_JvnXPkeeks&u*Xq03Uj6IT zqc0uXW9TuW$*#@KtySNPu9b+m_q1|}bJ%0jU!3OrUUuVBd5(B=d%DlA=Zxo2A+i{6 zic4j$ZrF41Bzn()TgSA$#HCi6>234(rrK9Yc%nzw=b%bjYKUZ|sTxYBp+ntu?{*)A zREuA+y~efa&pjSr(aWWS%^y`mnE|pND>2sFlmNd~{<3 zoa&Az!}zorfua?w7MB+9ML*!LvWkh_`8xIYq1zT_adFkc8}SDuJEj+X4Lx1II?s_X zy(C?T5BL*)L7=D9!yc2rPO32TJ*e=8|3OqFtcyFGlh1BHpZ@11N{K6MML&oi#2tCn z;ps@j-={>RMAnQ;<455_{I%H#o|Dt{)%okGA6wWSSG<|tTYNP7x6&cvG4->jjLKRG zlW&C|yWc7)Cr(}6edy=Y_ZlYKH?L-I+kCIdqlxbF&f)qzIHr45-2=4Mc(1%~`n7z# zEJ=00&Q!8QGfHDG@v*7Mk&S@9s-mA=?|Y^-Nwdm_7vQZI-Sjt3y}<57$zSv(Etq}b z=E>hm-qpgur67`bwcfkpq}M;bA#Ei~_?N%Cyav1_vLvFi{D??`f3)@?YmsDz8$^7OF*Tp>V&?(ZY_3LyvDrhAOHA*mh}s- z?_1w@jJ*mTEZdk2*y~c6hU;(*hfuY+G=Yl6rKpr}w`0cVX{GQSnn5y*1GSoY4ag?( z=n(3m!!3oHm$q(#+qV2do>SI!xRNMhMwUXW>9Vm`%u;N=GVtfLkV@qe@naX#wMH`q z>K!l0QhC8x5(`TGF;F*3f? zwT5qTDX~}Est4A6ahe}Jl9W(OT$@ZzXs=-=k2t4&br*ULc|?*m-Z!enrO--ECrM@H ze7Y9TB>A;c69qX-xuvmm5E6S?BbzNxhdwRfbOL4WP)yg&H(wcIy2qT3pDM<1OWDEqB$`pzZRedFAA^wTvMut0X%V1%;NoCe_c&3_-gfpz1Vz>i z$M`6kAC~Wb&T%zxpr# zFA5e4`pO&A8enZGi4nZm##$hP<>{Ig+>;ipkYX(fDU7xkDgnrI0S~#7?V37fOLV}b zVoBsxEEGWTTK8+ZcCAcXi4nxI$Wm5DQ*B#HrpG2DafBD*u!5{LOi491V7|br#4nai znaCX~AM@4kk(ow`9GS)uIN>ieA^#)dm98&EGRT7&o>;@T3VF$kajlF!v4-VY<*~N+ zgk6#YoiML^Qi&E=@QpISI^seQ0{3NY1x_GyIkK<_mM%O6%?Xz{o+R>xO{62&Kf#nF zBJ2ADrbU**J!aHJ3qEEFP?ySatL!!0lj&>IlUk$*?TuYr7Q;B2S$B>X!#Ev+lJ#-f zsAks|dj%!KI2DgNrY7v6Yo)+m<5IY6IwwbFoxyYP92B!l3o}|4<{HNDNsh_kI!El) zu8mSt0jw+0;fW4(yj+9mX+ubdEtaza+!B#6`-=))OAXj^OC==;|KV8heS|*os}M@0JQ% zJ%>7a&Ukjr;$qrs)XJqO_uON|qw}1Zb#jj6YDZ>>n{2P%hf;~!*Ch>Md-diyMth+s z@`%%u8_jXjYV3-wsFp}O=Q-n;cF0F3InYjQrai^wmbB(PnVQL+z6Q65G%78HTjPDx zc+tn6Q^(X-mxscrCB$MF-}d-C6jFDM7sGfj(j~UAR^!t6u?gw3GdnReAmE((u}79Q z_M-QTepG!q9O}XSS?gl^L@|^?1G4-qK?}HyZW`02pz2kqtzzMp~s(W}kI7(OeLA=3F z1aUy0b|3sa{9?xLTct^F_y-Z_CmNNvJP%UmP-fI->r_wzo4(GG$>x}o!)91GpKAPVe$AG8K*y`1-= zUuU@M5P8JU&duGnXz5N>d22D8Uq_5-K|H7KBl_g6g*A4It;Ad7*5dOtr|M<39YuDn z5vW)+<64(L>~o~=nU1M}cE??2k>dATwc(th43p2$y(<;Eh$8l)TT4=&9utqeQ|*|s zyKW(gT69Ssft6=PW3g)Xy7@n)q2RfmEFpuO)#8$aQ3Qf46H#FeD3IsZ*?t@%rW+15%7x+LY@r4;UcDjFc zi^i1*sKkzL2zWw8NCQ1b+=q6vMAxfyg%31|N0AjK)?JV3GvZotl#W6-RN*Y#0Tw^_ zYp@l~3W{p9YVXy-T6OCL>dteD@bn-q=E-^7i=C5u5n7bpd$(fj4)P5Cu8lEu49r$k z@Eq!s&4?DDR${MQTdFWBdttU%saBDt;jZ)dX(5hjfvV|R1#*_kG?vI(jvncnENz8b zm9FfCOT+Y1%Ab;yW<90EUhKyn-SxI*flueuy^E%&b528x_xw$Jm8-K|tE z?jM`g!uyumS9SD7fKGHGP_6NnyT9UXry7o)=o32nf)0YM>SGT{Z(Cfd6`1ga8w~6L z6AIimIWe5KMl*vru}^T~6Lkz?tNykb_+I>4R7?|pEOSvE#2|z8_~XK5@>XfZP;}x8 z4|FHln<-cgC;8%3#YE2$KP$#dZEH)3T8;GdmNeWR-NE|c7#8WAur2@8Hnr7w+mQUSzQk`%vxdhr>-vgIk?%3)D!)RUQ(rx%>oMqFX(evbR--CQ@tVP- zXFYC_`^>mhr9aV@DpO0h;Ki014rvN)vAdd4tBT~2u1-k{HfMQLRks-=7a7rm&oet# zScg%a4030ZYCpw7}KwHs|J@!J8ZG~c5s|)af%+suN74YN z{@4H2|MfSwm?cB}2FkvnGJd0@k&nL_#NV%){qw!AxAVJt{r&1f-d;dmB8WNvH)8q1 z3iS=gC3*UV=;~XBD*OM2@4gYd7p%CF!vE}_Ua!7B#6O0`KgK{}#{Xn1zxc_&dBy*M z%l!IF_rJf9B*XOCB#0 z@r$(l`@P?+fIJC znDjH%aP2i(vWLy~7R}_LGf3HL51m71w5q*QjlD#=pO57cZ{0bEWlNmBYAd9eb1!)4 zbk3>1o)Bm++G=cKFKp5VC+cvxPG5}5V!BkNG;~|5i=S(Yv>ZGm_QH;K*kFepIvj9f z0}eQ#tXH)W8|*mPiJfrZPjq6Z`(|wL8WS6I;zS1=#4%Ft!Ct(YcGIS4P~e0EoilwF z;uuPOUo-8M&Ab^Nc1+G0#~OwQTZzqHY;38OIJ!>HM35auPx+vb^4L;E)oKkoD?0gFZj_&AJry3t68qv^=_`oXsgim;2 zC;Bzw>nQKLf7Hl(^qqKLkzDlLRVTkXxW8}qu~C>8;vIJQg#r%gbUr)34&EAXjjd{{ z^M>AGNS`$g%=L6W4<_+mu`MprrNvu`3;Hba`P6CAyY5||XKcmaSZ?ZXZQd#YzYaxY zF3e}wIpWsrt$D-tx>(frzHFf%5zk(~x?9Apd4_b?n)c6po#CgU$mT_lGyD0}S09@T z<&?wIHPLh0uTFE-64R}gxD@@dQ;ZPjse9Ks^*Qu;NQ%8m`+}(_4!573?jh5)x`_+?ApXD- zRsRxw+P(AFL60c1x7{0DiGRJe&7^TYCqGYH{d|f{zQG6aC#5FI9qZ_8=--~~g?i;C zD%^;F5fuyKzlabise1e-WS9gfGk^9#elklT{Xp?A*|w_yqzxiBIyz zvVT83&{jOc8~T8M;Rj4~uZqsIXHOT|)h~frTnazngFxynKD$lltMl&%Z&giPTT<8U z&)q%D!;e9bC=y?%Lu|#~nzzFH9)D~q(wK3VX6Qcn`>gQ9J_U*IV;dEDois@3Bp<39AO2xxQ#8+1-I+9RkXTM?_mDcw400=a7PtA(Te(|YvYeg5bRYYb7A5O8}Q5oLS$R08M-Zcv`ylPe_}nS zij;2a!((_{D#ZjkgS!lPLZ6aFDY|Xh^C!J%b46N3-Wo;Rnp%mawjEZ) zz0(s6vba>|QZ@8q7zaECA=%XF znx676eHfR?-q?yH4UhZKJT!x27)l$yup)!KsTv`U$~1cLK!c)Svbtlw2)H~!o;A}&V5fDXSh_Ilk7 z8}Wu(lfea5nCQ7I%Xp$e7IP8F5TzgtYqkG|P61`tSbh|C^PP^oqqW z&a}Y8e%Jf-U8=KJKOEy_9wbyGEdyhjL0A|Ore!iK36;hDkW|v6=%0Ofq=+<2vNTJ6 zRSz?*$ztV8iHcN~MUi2aC!CDu^;|}zH+uo0d>*UPXT0v(vIeZ0U}3Sbv$*-n!nEx3 zUM0embUMo#Z@#j?*F0-jfaBlg#YqIb=2^t$S0OUyE7kj5r&H31N$;UF)lJu-6ql|e zCWkmPP{*_1&%}9E2J?uE2o;h3N~`LZeRx))Dup5hl1~Ts6r_YRBWFk!lt*AMMeaJH z&?nWD%JgjZQVW6}I1FF*?y*c)lzPr=Xfs02>WMmCBS`IH&a)e>M3NLn zIwDV{_4HP0rdDGwY8I_%By~76T}LcZ&FbDMT?!Q$8Ze-TCC_*S)wC5gqC$fP{yhv0 zlXjrVn1&^66aiS_!e(Z`Wghnizp)uo}noiLgmKQDUzOozYaCMJ9 z1yM-DJ$9oIrfk9b8Z)vP5w)l&n!-v{@L&XeFq}Tp*Evj4v%^4%TBDF-(he&0=(@Jm zXEDuEZd=T-=SYPH&#C9cUAK*^l)k*T%`Z*Q5ozzyhn|ziu&u_et=sF`;=L&pkDRqw(d|_WO@HgTO zZEzuOaD~@Y$;Yy<5u5qVD5w!P{0d-q$iV*@@p-CG-fG-xG>Z$|h%4ODJ#Tu~edy~{ zRa~3D8P#-y8zJH@QR6)IbiPhKhu=!Z>1;J_m22TS^-#>voN*ua=t0=Ex}-~qz3A4W zp!@LqVRJ^7zaHK8;umzQQB1cQyWwy@;kuv9@Jr!ZB86pp;bPo}9#oCc*J;0c zI4XrpkWDCmY#I?spPGYX=-0{2u)Uycqp?CxV z{Muv~A2UMPA(74WLHzmJiJq21DE)P4E11Q_tr0ik4^)xCfKPNx{W|T}86jGUo7ql$ z5dR{+D1iH43`IpTrdjoA5vfe9rRkN6bBH(c6l#_)lxK(-Tefgul`^ zar2EZxDtO5ACODw7wYh<>))T;s@cV_qLA9xn0V$80ne^qC-)Ps)Dmy7p%3B@sKmq` zc%ODZ`S)jRCW&iN#jo%ORDd`oh-2vUBsDjJOt>$kwT2hP%?)^%#7nvrSVoNwFF4E#4YB7_&-R zI-KRsm~CF1`7$6~Y$s8&*7c1nzuGR$mq!JxmJ0O+V+Twa8A(L4ijx#Yd6_`QD=L~x z8J2gUlJr+iCA;e^wWn-_EJ|fqUB3HC;>{!4gjfu)#WO30ve5?02x*}Cg03@)Dyv(a zl@&;lTBGz@)+-2GZK|QXLb2a;E|Nl)rIi$ODji0A@dsmlKx8F#L}4#ilE{u2kkMFR zY02Mg4NLRmz`tkv4mwu{p?}m3e0|2>b|b5;hJKeIR?Cc7JhMEr)k5JPU!uQ8W+gz7 zn~R>FF9_#n>x9h>=NkLE;?x+?eQqGw@ijZIRXL*Ge%>^dK?}PjI24OT!a@ z*_J(j$L@F}cM7cnUrqkGZbSvg4)_I6c%Ty*?C^)8UUY*CDnv(L2*@QZQElIj@O zikT+yz*0^9;MHNZg}=J)ZU&~)?Q6uW^ucooMKRr)DnR+qCBM#Wd7|IFZh{$0 z6OgLFT2xHMAp4Wa*UbI5l%NS1PqjrVEyflWIvxJ|5;lsuz>6+Drvi zq7cHq7n1MacR@8Jd#FNPD}(|D>)cqw)?$-+z-uZ7N;ZhC0cx)&{2mj77~n)n?_r`4 z`IgtKn#4eZ(2CzFcww#3^EF9M=$^84(oASHogy zcgJK#&BiQIY?*H(y3_k_p{7}y5vo|SW|b@UIhliC`FIzL%_ucWVYPV*X7;f`q^j6x zidL1bZpkptE_2UQ8RS)2tx-)EvkI)cC*dfYO8^rYX{E z97cLa!(0T1HEf4UR2W$9;JN1c+5z*9jD1zbdEFTq#>Iq0E{xdVird;r87vjX3vS4R z#+KXkx`E`xflU$?%3Gg}kWn$mN8WG|$7+d_s&uz(uI@3XJoJ)T$7ZNt?fV{LIAdx?NeOjEGEK4;k*e;QEcmruT7)S(YE~|l(^nsr z5uDSGzFLD^TI|`wvtq_EIh-+8ztiqqDwoD>wOl7Vtfn1BngKr@iEHK3*bA2uw~c0c zP7cqWn)Y;_L)kjj(8ZMb(L@J&!UKCw9us$6H*UriUEoSwu*Vvc0JH|wJZBh- zyuK^4MG~Q7@Ce4B`(l&t#$J+-)%e(SAFE&JbbEAuoz|v*?8`OzTH|Ao%OZtVXzZF&=2A-aLN-p`t167+I0(Sae;;ptK{RBqAnYLiM!!z`WAg%6v=cw@Kj48Nxc?8R;9>iW=tfE znZ)HKMs?DZfDua1M1zVpVxY=micNGnB0Q9h5XuV%`^p9mC?e8*ug}Gt%Fno?WeUPl zT=l8$F%~m6Pu}v@Pho6Y2cGU_zOZ#+iuQ6A`Ti37)ZuY`xmp$|7F$_BfkXz!-GlG` zx?p;xy~9dzkP~y6HWJi@7{$vaH&|u|$ZOH1rjCqb=;w)%m1CJ!`p^p3>|+Cc+E@2@ zU1*Qh1SJ8aYo&^0ef%ssUIbj=Qawemw=J7(EI=snsyhlO(pv*!5^pVUlsHnG0ADQX z=??Fk(%<)nl~+kP>4JAOP(?Rz@l3B46=xg!;}Qgu#(W%Zn`dyB=b##S+?6*KdQr!x-( zQ;bM}G)mzbN_R=Y>Co+*<}V|!l8V+6MrMEbN?CQ6dT23>i;dk zC|I5PYH^>mqGoB|#YA_k<7uR}mCzQgsNi+=>Ez*LUAcSOadT-=EM}!z=D%?|esXl{ z9(}HbhDs_ii!hU8&l$s!;_T^g9(%zy_Cgg^`rrQ7|BtM8Vn#xa_S;z@7h`dNJn)7d|`$ls;w9A>}A{2uly4~L@{Ot=ck`PL*Z&jlxjzfej2 zqi+4pc%JKUYnZK9*WQ<9cmIv1^4f@3rFlV=_-h`YPI$P76yYgYjffE8GggD0$T7JA z=B0_(i7fkPAFr}>)})Cb6rlj~aKc|w)wGKC_^w_@V5{sM?o~ZIWX#1X-tC(`9I50# z-Nv-uIbCRFktN%2Hf?1!d^(*3OV6oQIa)1o;!U1$|GLVu~j`@dtWP9N*E7UtWafZKa%%2}C|mE!u@|dUOOFYpQj)L2PhAJM6?x z?CX@`i3WNG$A|<1cH=@M?^);|o^XWDsb`OKcwX?`)|GEYpBz0q)^ZLW9Z)g@a=>O$ z#5p)759pr#X0xR-o27Z!3Y|~)XSb0le`oqKmd^I7&7z58a*j%$+&f>LH}uxnp(w76 zw@n`LH8eZZc}_l0h4j|4sb6fB_r}|%>?Cu#ol{@k?mhPOJ1Eq~ZR2BySWQHZspqh- zuG5+5#|2=QK8PRiiDf*IMysDA#U!*Xx10C@6+Y1~c)%0;bbWUHv17y)cKCoF@PuEG z;nxHHeuef4M_u7hxWLaOl%f-UVLyp?5SDktJMjlLh@Ys#q&$efh=KjU4c&+f{6XB% z-$d?!XP%+QZvLGOyfZ%_(9Z?s^FTj`ju9Wtt*krdgZLowI^_O-@A3Cjt?;o$wJ7KY zZ$u$}rUEgN5X=44ds__|_7-pGop=;}#%kewANq9wdf&o?3fJmym96mWz=H=$hVkbS z*UDR?r2?<|tuYFpU41eKN7t`YWBOZ*Y(v+K_bo0(UndbY@6ht=3>mp$r(WvEM)t9J z4taJ2>C7NovPiL+-kX2yB||icl$ic~=q)=q?%5E4fzU+?L=t{``xe&}ljfH=_2~TdRBUV(Ua3k;vpBoD^H|+= z^mRseE9QGL2}<0WKC)rksOfVY*fMQ5(z6RY$>eSZRqT}?fwKgP0cYrIXg*UJEMT*^ zZ3=N+CJW5q(e1BICapd;wpzhl8}B=*pg-XgY{5dW8rdF*YWB9fp^1GF6|3-t4P?Xx z{jsZ+_|bGBz&d;q1`q5YgJpY1v7r~yCC~$X!j3*s*2p*b0cyOjTA>F1iTzk{F|qD2 z{)8#L;|)O^*f0EsKH*r@Q+^QKVwY~H5CeTdYN@}za}n{!CH5NcyY^RR`V)irg${sd z()+gRfY(MzA0G4@0e%)Dj--Rjm+V#|VPQUxOe5NyW4Q9$LI45ghM0VnpTTITfF-x;UILPk?3x7QVeHo25=62Rh?)=JW~l>xNTmDAU30l<$~;( zIA;up)z9bKmlb2VPL7Ea$5^}8UJ>C=OWF%MJ)-NFaSokR|GWRm|C1z3eOu_Qe9iRI zYOby>{71!U(kimq^{c>Y{6mjwuY54m%vVaslDwwZP%2bS>0}g`k}mR_%>uuz@zPW8 zl@(>)NP4rbm%g*e_&qFhv6bKH`vWal5?+tWtoFCX-pUPMtdmR(R~`k3^kvReZ;@DD zRNnmVBYqF~o@Twu;>P^`NU!XY*KEJjw*336OHh1&sCc!N^_RR)4Qrs z?L{CqwjveAaspmj(;3a@rD}SUI*QXzQm}UD4#%V3x|shwTyxOF|5NuethL56}BZ1 zTIYYl>ERKZX!asxOI2|YCmfM0hxO@(nng`_MN$r*EqXXz-QyT?k7lZhYV0+dQH!5L zV`j>~rjo46tEkl*6bn-1Jb3l$p^s=K3N^N3w=Hf>&%tBz7;EXfcWQRgEU}ZV{lbbp zx*lVRlD|4n*ISdcNY-zSw_WFq`>;8f-JVllUCIEwV3lj-O|fGS;}i9;Vv^C}5{cDZ=3*s4I2g4Hiz-BtDreZfwAta=D<@PULr;TM*9{x5W5ANa@e z!HN%f$3I^hn>&2MCseZeCAZg9M*KuhJQuYqzOZ-vZQb6U#FSktw|+z*bBE7 zBJN$`NjT8G$D`}k;*xIF?~NZjpN0A4xneB)d9u|o7DSw`BzApvef9vh znhl=fw&~BxqcS7if_3lq_qhZ-mqsym@duHNmlM9=occWZw}-j0RU8_;5&uFRcS_QN zA5(vy8X>#+#V}%rALvF18*qQ={{Fo$HvJo3(L4UWwmhY@Fxh!u0CoY9f>ppiz#(z} zPxv38fxTR~-&VM$4EoAS7C~OPxt7}uP;vXzlfcr_yIcM z=b?Xl@UKfo#NOZ?{U_pykEM&`-tDg=#)K=`5+{L}%wcn?9()b{?a*6`V!9M+@oV9a z#9b?oj+5PW^ytCPCTK~q^gnkNSg&lA%FiQ;WN5Q6<5GFwvqw&xljxQU&CeqojLLK! z9*;qv={txi+OjBJ;hP7`O~0(BYLMPn%;iB!mLdD#QFS;oh_IB4Txysu|S2WX4l5_*vwLzH{nD(9IFnal8Zsp722ZmsV}0R`b)5y z&?RtL3}c&c65ESG#cRy%wV4(O=#a5_XVs&Ua`Pr#h=N2+?8GmtsuQtF*IXL}+beDx z=n1dlPY5-*RNfkU%|f_2o}%3I_sMIkajnckD@!3a;lL`M!bwR9CETi~%U*VV7|UiS z-OIw14i_FlHWh?y<;r8~oH1faWLLovT3HPeyK@XpMW31;!mHU<;#$~^qG|)~-8^)< z(m$;guB&l~U7MTI+_r=$L+50A+7e3^`{Ytds(+t$7k-d_XdV<>zZhwyxDj?bKW#Ch zP7vg0YgLz~OQE0vpO|BF!P6LeQ`n|>ec6r<^b-#3SP=|6{()r#b6o-l-Cvf}$IIsG z3ije-?XMsDFLZsu;;~lERdBp6p$CtZnJz(2P6cf6wrGIX@n6^=vOEw(?(8N|Tu^&W z1^R*qk%i73ew1jp*u`ZrbNE_<0A(^*iCdMf;Zv99^<|=z5#$|p0%AA4?NKZ$y3|N3 z;m2?*ClWSr9Sja?qKX)L>%dj2i%L3KgkXrWjAe6qCUwm7rEAq9z{IzIt`mcpC~J`u zx7UHv?)Ig~U6V}kSH4+(&l7;-Nh_KjW8x7+m|TvTCj~SDcONtR`NVJ{Trah%X(?cR zdEMf3O}LuyDD2xCSByyzbHky?v{iPo5!F05z85W+f%40)Xj_yiL`)di zTnVEEQP757^ek^LM*KiyO$aDctpvdGo|`Wv;PHB1UUJr#V3ikfe&vb%C0H%5JTa;9 zoj9?9pU^2|?QWjB!s|aa(@b*DHC4RW`bm87@*j?6gXn~y{(~M}7ndfIuaWePIg=5; z1gn>lOzY^whI~x2jcP;`tjL$^q=iMcna#$q4A+=1!4)Zy#YC)zInhI7*qB5_A<{y7 z6IN6$`e1m~IrSWNID3gJ+>B;%DY|aBbA+CQJ}s4~p}19Dw`l0Hajm-4Y>A`CpidoB z_o?)vyqQ|%ZR1uWup_wlC47AhM%dftSFxcBe#72g^x_9P&^>e?YK1q;ohWYD``U)= zH7uXl8(BHY98m8lLz6FbpfB_Q;0=<1b%hVu{-H9>G~)hB{o2~ycwe58e8KaTDvsAw zJ6z!nF2pDLBtBp0{}Y*jx2tY>P`BC)_Ld&cp37xt|sh*XmcJRj!3gjRMaZU#G@Y z_qcaGdTfPTjTC6@7MB)t=rQ8ahTodCIrsJY^Bu-?6!{ z>|_}8?=Q@AU+gH}34U`4m%qrr!5`^0x~N@ii_9P_F^Ioj+N|vretiJwkENMTqM!Z; z{0$Sn6BWG?|6=*wEh{DX%Xtj@*XE6QLl^vyC0I>c6m{Zj+F#FTW_Iyi8P(}e!j}JA zI6Q|wPyIUhv3V7H)rP;pAH-L}BIy7+;;%y@2->bM( zST8S*lwSY$``=4NxnB8ZQ~k!)zX!jFS-F{QHT$OeO#02Urb+j8)07e@^?KAK<$@@a<2j-{-IIkFS@_$!m;+mix!+ zkH0U`dZHz}jelO-->0BgO=V5_|Nl$>{V)FGpnqJJ8m-t{`rtM;Luo`YGHT|StJB1# zL}W(R7M102KD$kLPWl9Bh4(Frk%mM?OxJxvNreoE^s`Y(=k(%p5&l0)$4q zH%zKaWvaOt#;WLRxnaeQe!yPS8gB_4e!U=uGMiy|%&=NQUuiF}uFP z^DlT`B!U%Jy}jb3G~v6eHDbK76PAz7l1dK( zNPzTWuoSJ9C!YtJzd6m6rdth@Dgm6B<5}=d%b?_mY-PD78+hpO7$*uF9%D*kFH!c` zO9t;U#hCVtI0oQ-$RmolWE12XMJg8V>S#<=OJqy``~T+uz0ib+Y&&BZsU!ha$x1f5 z(Ko}`!xoWO3Kr0i?Rv|C>=up?fv?SNy;SUlT%h=F1GOU7O-#7x04hxQbJ6FA= zp$n2I5ZHWqU->e=qNF3kKahfNl)+zoU;77?U@x#L{(&|4;wZ0I?RWCO?zV5-!Cu?k z_oFX#z`rp9e<`O$WUm{&Km`8{Oyse?+x0A~t$*Mk|FqglJi-&mm>bGXoYs~$XDn8-*8n7?iHBR(fiAvlN_!V98og`aFdFf;C z>1{;ZiOXxM%Tme4c%AnBl{L@si@0DHJXzEmJn%<~s-4GK9@8tUpU+mKHsm^r_u!FWG69y~Ji5L(jfiqdzClPWF!5jhrf1wP*KZ@PK1-bR8r1!e&)liDVCd z4Ue;A1LH^Mt5Z!VQktD@QH$}}6={4u^>ylN@Z+LltJm54<{!m6{8}n+drbX0O%{K| zl6GC;4-$ZmpV)y;=hvxUr+)0%&P8nK9sXDjj`Xz^>Tj1rScW@sfj{9L{d{d(nUVbk z*w72H(o00Y}iAWU-iMir6<+>G+1om8wHlt+k zKi4t!n8`9-?j3tcJm$MAy%q-6b%s_enAZZZtvX$r(&+0XdwB4&EqK9BO5)Us(vkak zxici=0JvfsfRaxB^;&W=7}{Sc&i0Dp`)k$Zk?;I9`GI{RN7a*ImWydAvgV zUrRcMUh5yP`2G9j@7NcdC4W(w`!3C<|ig3^k@6L-(n3YKF1`FElMZ0#%cD$auYBy3!fj($5`_y_hgBvc|IhdRuPZ{=k0X8+^j~TJ3%)c#F5iVvVuLHs9AFDtc4Q z3)ADRCewN`EC%{qELQEWemL(`QzeykCaq^j=|j`iZX!B)z$zF*L^U885-b08t!gxY2V!nGwcwK?l10M_OU5jT$*+zC1L3i1~@uj`FY+? z0m+ri8|&u+5;+mD;UC!kS~hHPq1LkWeK)+lw#8%^$J&N|cczF}BKiGTUh0}$B)-?D z>+4S4UiIuOhaaysFII9#BY0JclGE&1frIEQ7SQ+hy&?PNz|fw}&t6MXRb^&G%;66+qNIHuEQGf9s!&v_DwGj(%<*D;TYNRQup144lo&5*A5G}f zB9fOBojL*5;9m!y3|~_SEJ=a%txRO&fAb&yUzpgYeWQ5a zQQ!C`C1U`1FGZ{Im4P#|ZzAh^aG1w`{vO4Hh~4IkOdQW?AcoQ0%Wf|4Kzjj?FLtuN z2M>_*g`oaqFu!2WpQz@~&-h2p{qcqN{lqXQVEZ?e)qm`pnv=Z#ebSfz6=M{DK}rsS z5?&!Z8jowTkbh`Ne`sGPCHh5Qjye6uoMVi}h0KTiI~~Uz3|=xFgNy9$uXvn6Uk+>K zp>qZ1V+fkE&r5q<>xkkBU2Dj{j*g}{MMdrkBgaMzFJx4=DpWTBOU42$1*fbfVaZlq z)mde=^9VzZ#Bgk1l1^Exk+8U_938bWgk@{yDd>np8tV1iX`P`d$TP=gN>Y`ExO9jP zf~d64Q}Y6z;mhDxjm_xz0bS0LEp((~z*NAF4RH!z$4LM2=yM*+*1vz29|KYOksunm?T)#oZ8nHLwa|tgVn7Cn$37U!NU}` zL|cQTi2VsS{AH1Wd(&QVIF81>V(%)EKT4Fuh000YhdsqF;sr|Y+Uky%gfXi=8=U$%GVlX1;Qa?3G-|*&v+wf&{u_7${+!F@Hg8>JwiKgR*k%oQp7dw{EAacr zRs9b8$;p+t0q>wgzsI&^JMbIYruH?!g*WI1enOaJ|1a=U%JjEMaJazVARDdKAdvB+ z*}eL$=$0|*(Y!&yC2UZ2-W$F)0J>&Ni=T*d!Idh&7b)pDaCCb#ee8D0eiidFQc z=Q8$GzODWaT257XK3RQqj;mObt`VaE{5iG@?tr`P&fhz?4kJz-OriN4IW~13iS9l9 zwPS6{Cte|g-Qe#arX7gD4fX;4RlyR4nAXt})(ZB?M7Yl;v;o&y2gJv#f;)iUz<->l ztM^$O#zz`vkcfWvF;|sMq95kz`vW+D58yve0>yP6-T~N<$kIbb3*O~MJE3ztFVipv z8;AM_BG1S2(l0=UuE0MA02>`JZLp83-%r48u?`CZX8*Sd*4$w(Y?Z%uL9&xh8AhJz z@8B7dVNc-~!mp}d8+~OqoyC&;y7>EoR?vWF4eM)s9IQ=Tu_h<58m>j}D+C@bqnIuW zT)ZwQ23p_-Jp21h>28POX0SQ#-4!h0@PIDPW zsd$}r-#&o@y%JV|V7tG~1AF`X3CV}GAN~aDgiB&YzSh>ysoI20ZC*^Qt?j#4h<9M& zC~^Vqum}7NeEc9#T%bQs${fAIHk2TE<@q4Yn+o8(uD%2q1U*0lHYh67oN&r|KMCTg zD3PM};Y&DN8yK$U#rnxF8B3y>n%lD>5fLBfQ1FLui(2BjDA7Pa+_vuAv5kaP!^M;% z6ClHY8u@adWK{^~szEF!PZ=e_Wryo?XBbR|#D2-Rg_CHM!#TlD z=)x&0a%^^Bx&`wXbsw%!&NfMT=FkHan81C=mw6gm(>N88zz%+mUK_R_rGB2p-SUHB zyv&0U=i*p@;1qSzvwW_GS3le5R8i{VyO97*fV523{OeX1<}k0nit}8HCujixtMCul zu=)T1#U7eTgRfwoj4mH)Zv_|f3`fQ(X=VI@MbfNQsE#}zPo_(unc!H$|47`LDf=DV ztC~ntD50~dkZaN)C3NfZ-tBO8g^9lib=Q)V4f2_|+qiet&j0p5{0|f%S$Nl)!C+>z z6q`5DW7%6$wDG3j^TFs@poN9i4qd!HiJVLt?o z=v1lssQcW#zr2tM;tdB-KFi55+cIwtZ4QgO+G#%5c@BFGs8hCTKc>p_`2Q+4 zxA{$(pQkyp%}HL8RQ#A^9WLC_^RWuwN2E`%nZLEK8S)=NJ;$I*tAJ%piM`Lr=F31yyC3p$;lp{!|ts@e6 z!v82SbIpD(c3tpn+=ypq>-Ow?c4p&sg$d`xOTo3s61T2L4Vx=Is%;(DC4#}D?Z_)s zjZfgwt#v*d9xc)QDkS5{f-j17CX~j)dcy7%*Mi%8vEHEDOvbJ1cr7oAKAd{liMI2sSvGzSEBRWT)mG>%;OV$M_nQ!nvk>Uii5lwt_{Muu8#L1D2muVdh&Yxa5g zqng$pvcDzamh=Z;%PlQ#eH~5 zk#z$M+2;_a`>gtHZbNCBA3Lm%1w^0k z!#J;M`IegfZK~I4tW08Ho@4s=JQTo59b3r^8I0&Y0)OIF9UQCz#7jCC`pDO4K%2h} zVUeyArVJcsR)zURpBHI{Y%HcUQYpjNB${bq@H}6x6o$$)6A&39;Sn-Spp7HfC>xB~ z4%fX=;4W4XLhOLalrp1#*~Pu{v%$KoWS$ufe}?gJyyEvCv|xifEMngT+o9jU1$=x9R`EW|u~%_-|G~%V zKPs}@)L&o%5V8J#HlfpG%aqCK%X3xLiM9HqbG`c0QOv$L&CA4E^{uwWHW%D|;uNQG z@jS!N!#BXgrR^nR&NI)aXPt)K7k1bO6kM(y0PFa#bChSdnC!lP+u8IWHQ_@@y!T~C6UDZj$ns{47%7K#j-~BKDKcUnP8K((w zH)k+mm=hA2GsE+kG%*5m*hLq`5s71FB_WX|(=~*nK8)9cRAU(mC2EExpu;BfGvaYV zs%iy@D4Xz>^_gfAQbA6*GECUgEW#&C^ZV^j^Q8Qu5x*XN5k$+F>ig6GK2QH~zj<*@ zG0*<5BB1@aW4(s;dBA#&#E(bQtSI}uf6qCCh3xkI&EV(ExE?h?lZ-k?%0{kd42X!7 z(8oqZPlywJ=wqeUBlkwVy8+4E1kz*9=4f5ry*k~!^&wbIbOJ^hAgQ~zh7Rv7VpK%B zDWi7VogvXrhLnS$#he7e$>?N0J4FZ)^)_;+g9A7;%EIAv(Q7c3M<`qgMK#!m%$MQW z|H`qMMGf;eQGG<>^!Wx%p{Ayz!AQl~ez4K=+_~~ZLEFSXU!<%2177<1-gjW1?j3m! zdx=r;W7zhC=JmS%G-(t+wXgLDo4HJ+6mt!|hV>tdY@Nr!Hr5#{@ErH`5eqe08v}-D zQxy5q0T`H|b^MO%Q)c~&d~*Nx*3MZ8;=O@^C#HcX9978U>seoHI(&l5ieR7 z3tgd}jeEzEaW1-$DMf0i6Wm}C2e*mOZq0QrxN;a=U4hGZceQ~>`1Q;?|0~Dl0%rIF z_5=_36X^*&r+oA>plVzv?(q2W4Sxt$Pm>F}O~&7gYWynw&OhWmZSs$!o7pF)`7-M} z%%C^EwHMvHyMn_qmQ^2ft2Kc7@K+Wj-`pI=Bzzh|bV5LVLt9OveZa(k7g# z6LcO=?dKm))PTnkdEWzFXPwL zA5ek-hQMh9J{+GL{#ap2CwK@}|AYrXvkfC^{@x_PSCj-x0kVXbiTXHW;p^b9jkhc= zSPiA%QgAD(9TN72$gTL=RU5S;6(A!LRxgR4)qBe$5+|YxG{9^nuow&?7^K7QXpu8E z(o}|k- z1?Fr0an`CYsP^@e#;cSgnBj-D1jZjgyre2)TO0+b1GQuCXpWx7mE;kG9tQ(SaH)2H zaEE)8v`RpD0>)%rYCfVXMskkHh!VjM!#7erd>GwZA3sbg8%mN@kQs~lC0ioSd4xSj za1?hquysT>`Z>846LHDR49jKvOlX-;$Ke1}OxGeaEy>m-oA745+z(hB0?wHt&RK5@ z;}0bTp`XZuD7`Z_8%%!&aJHjkGbC+ zlXAIECd_p$-m3=G>^$1M)m6Eo57|=Q%6%ty*v%-C3$O~#or;KEP<7oHLIe zE2;y=-q8UwoeFajMos};+#RaeI-Af0NK2AgUy_xil0mWycZO=&I#feDkRmJ-3$cI# zcc{;fO@jm$=mrnV;eyv19W%6%W5X406MZN!3<0tBkx=?gL|*3VDRW`fA6*xGt4s%Q z#mRnI=c;P+sFY_px%|C9ef)qt-lj=Jo(tSBut_#fF7cdAU?l1o%pe=lH_<`!Cbad85w z|I$kil=9VS#_Uh0e>W0ypL&h4zxTFZZRvmMI`hY){ISDomb&_}!~Seezq-+{ma|Rr zb0|nT+R~#l{TfMtaL(p5K!-b^5wqicJOmEJI$F@fKDmcYvOLJjaDakDIRLr3d*tf4 z%UwZFhASu%VG{l7M!VpFnMzc~Vp=lK#rJMCPDmYxP^(Cu3QmTC5w)6#ARiwcN7Lb~ z9c#h4AmUlh1*@qehH>xl6&$h)y;Pm$2PgRTb%90glgD9}k>nPCnxSs>k*YfS*(dNc z$iCd+&mnLfUPY&gTZVpSn>?9qs_b6_UWA!rKKlB6?T_al6syOqD4&zB{8E{&^P6Kn zw9oPSF<_mfn&Ay3PPdx9JkNL46XM*Fn6|GBaH#)7rMCOkWspqQ_JY z?8MVhJGO?s@n~AZr7USlUJR>gZ`vC6%DwAZxrbmi(0r(5FN6`#ilbrcJi4|6hocx4 zW@W>z;I{D5@aPJ2>__9hA}4?r$;^Jzc^xQ(O?22cN=l_*-rNluq>H?kf0 zf}(BzdqZ*!GP}A8h-Dit9VW$nc`YdOwIXhkWihEs*jx{3TMJ9fM?gy=}%!)=Yl^aQs-jXLYl|l5!?kG;3#Sqka%0a z56)lX*vkjtP=cRee=h9Pyw8Cr_-m*Sg1zYl_6CS!+ag$@5UkpiS8zt+oTt13!1G59 z`20at@E>RPHUTrtmB;CSWWXOk+K%fS_ME5w>!{$qr+Q8|)_3bFw&i8sN z{A$`89Ez~FKTb#-E;L=(D?S~G_Nd+(NG;T@2+*ydSOBC4YDb6mPIwq8AsbV|nrMW( z9@QK)XZc2FyTZ5yN5MiBr*WuWM>f)vBJ`b1Xsf_;;Qo=W|Nj4_l5vS&-1kR zT3BU}>%VV2>yHiYwRN5+pwA!L*JIM7^AFR9Www$YqiBtg3u!7rUgSiMj`A=Q+<-RL zA4qu8I-2p=;2pUCn5rN`;bg=>4Te=I0pEb;B5_L2g)PeJ07#v_vu2-KF=W#vBU991 zQn}+<*&J{kAy}oB1g#2_h{gEd{D=R6#_zHa-?=vyX*ygFXQQ0?ChkU=$?@pFaCxT*-S`HWajr4R>r?ZGV*D&k<4I}X6MlcZ z>bRff9)Fa0uVFunxcGRHo_`XcfBv}t{n39ZNcsK0u37ZGbgFZpzrJw*-w8Z3@aFq+ z{O`klN?wB!5;|DdOJ(X2dgGD8GZ@j3G!s;(a@BqClJOF|LU3UIY{*)F2ww$d9UV>V zu98?XR#PI^jFKe!je#kHEYevW({hND%Q>_G)ImeQ{s}erZ{u34Lz#w zZdGvSlCf~4*~~~BKVWV8<-gp|mmi@woVwOY)g5|-GI_=^zQG!JjKRUA!>pn3;y~9a zmVbTol9--;C?@KU()ERcuCsTv{wQ)^OyzAh#mkSc`XP=zW*@phWgMii!1MT}Mp)|x z9iR=YPBUExoQl>8-+&4o!a}`f%TSp;fCGx`qrFN}HZMdm6;q~+IGT>Gy`fefuDzic z!!kLnuM+@hZ;@K4IMhcJc_xZ^Nyzj>98J|TYU8u>*>%pma->n5i(eOZ*|YK4v4=}; zql?!SB-Vm8e7BfB?c@|Ff!^a8(u8T^8O!ZgO?3EjZxd4)&KJ8Xx4!NMNsYglW1cbCs|(+L#& zMOOZpWaTocr?2*3n{DRbK%aHrIyue!p?%%wRHsQq&eMQdz~=<69>6EC!QRksW2Nc_ z+@P1WC-WPUA!q(BExZBtv8rDogYr-w-9Smm?0=4UY;IEChRmnneh70)T zxDRuK_hx(L@76&SN!wIB`ckIrYA6n$O|y0LfXOKogcgW zqGjR>H{b+cVI8^;TO0hRx#gXwvNR6b*9n(Df#1M?nr!CVyx+vfX*w(4r(hMcR6Nan zE&p&O{Q&;IgPHgp!V_)d>ufwffnUHKilZTc6?%gg;2k)?&+&}>=kCQ|MW=5HLPH2l(AmJ6%qx0NB1UFdFy*ZfjjOLP0u}z)K%yq&`d6J@DKzW<~M=z4r zGU0~f$NGx}m!<&v{DWY4{4g4Qkq1wJpat;@dTh95u)d_p_qvpE6C&iJ4az*HGANU4 z3jZJ_0#E~X=<}OErhqq33Gw&*A`i|c7~BCO*+}+U4A~^YJp$n@bT|^oP;J4WVu-w@ z?$|qWMeXRGv6!%UsJoU763y{!76~GwHxw$ROeI8abwjN?dFJ{-moP0?* zC7P*r-gB_62Uoi)K7#uP~OTo}(GBh4^E^ns7>3ZS2Tj^Xxd# z6T`WHl8BQjkzL$8?991!9UUN+lX0F^cO2(NFk9ij?a=l@TJ7p)l+X+efJOZH06F-LgXk}n6_DMrnSF8Z*tH5nw5jO3iqtR^C+ice{@ z2+hLER@0+)#O4f!G|;Czt^J_x+o|>IwRfVK0KH&87chNKc)}7{ecOj9?7URGbK5dxhtC3To81<84qtgH+>& z;4+P7Vh6%GH`vC(y@@feVIEH>b-_EjB+WB}?4lEyEEzdrNuHCH z3|EL+(S*H@kfxH5P06?z5|qI@l8Nj9U)bX^_(l)ZoLzJrx=+H6QX&IV?Z26Dht`1d_Ui9e5N-?NSeeVu5M{^jEOa^2s7a0I3+|rt( zHa16hB_I(-m8_GHP0=+Du3l@Xeb53DWsDdl0B8+O2c@!5D;bj^_%Fj8gOAPrlTQ4h(%D}#ls1-LL{61ms$0Q=(CJXsB{+NQ* zHpc_F4h?FY=Tv|@^a)mI2kx*t{0v^9AoK+@yN+g*Ht-obQpYuWZ0;*?9to=&tecKU z!+p0k`6=U^l(SCI1rYQ|xJ$cZ@3&Ytkv< zoN+R(Ny+el->V5as-DfZsx|dBWt60A!TYMaxmP=?YUi`+^I%Cd!|E{NRPerfqFF_E zJR0`O&&qp)h@5eTO2#GeAAzkKH>!0$Dt_%DM&p`g^9T|Ns}+8S?OmU{eH?1ebk;cq zfX;tR^O-OnegeNXc1b4|6Tvh3+i2IY!9!R53H&;6Eh1mEVErSu8u)?KfhY7A_-fq* ztndeb*~WRy;_k0`0Dlp-0zkja!}U*UfY#w-r# z4n$<@KO6qY;R2$F?)?KeCeb6>)xS2jE}f8yuFwj9gWkqg>vy1be(n0}sY?b{tcE=L z`aT7#0ife!$Ft&nWhO!db}Rm7OjPRwVSiS9JdqOK3l@XXPsMLVnGA~GQ`p_Us=ju- z6~0nv{uPqeIDAZgF#tqFIzUatH!xh{8v_|9d^hBl_20;phKi`gPanmG?dpgXn-(vo3!REJS(#tkeWOAu^$rIpJ-}Kwa*$b&+773 znMO07umXJzE2YsZb{_=Gow@TtOLCG@-*NDqd2+6LDKe1ePQds^e*L z5YQcL5{Wh8t!OozvPuNpcYGaeNzaPCK~Ss*NQQ`@hKpM_>`q{-s1ktH{8o^pHLIkI zuvXhA78OlLGZyn?j10@}e0J51mf#pi!X+V@&f^;ZIvRbb3(=)676S^_0z!H6thXsa z@mYbdSvfI&w@eVKBW^xu!NV>10xyXO_8L0qktF(bB7+#F<93x zPID)Cf~SF{`9A)B)Q5NS(1DdaVtmttWb0V^5k?eQ4Zd=uR0bvCt8*g+w2tO7VNFOY zx+^md732rnD0 zZxCTphwX(9I81}?tk#M5QqmXRE$Cu|#17Tba6kJ4}b5sSM0(7wiz{{_>pldt@oj~?@zGE}C~QuGso z;-Uxm0G`kjs)O`AFp)rdH{c0Ha`*;5fGKWP9`Ql4Njh!7)3JAd9yn*6GM1z=n5Agc zBXNiJBO-Jt>6Ek@)}*y)C9>&R;|+=sByLrUVKFTUrxcFb@(?6f935Nd-q5>B!WscP zHi*kx!`?Eh<5BU|cyrLOWF+F8^}c#@Bhah5^I7>-)xmeMBvD+mZW-4FUzKWM!pyIO zUrpx(5=%lhT$28P1p5TL@!7F8eIDE$?_##Vopl4=fjgqZV+Ztg@Z->8)JaQ1f}epu zz&y~%A=Lccct6xvS_+d4U7f;X6ucHlSg8+e~cdY;l& zOrcnxMC1zm`2(i^V_>`k9NA|G&w1?55hCY*00MtO)9*jdns|q&!IJ1#;7{oH+)M+q z|GhCMe=mXF`2~81ht*;OJG6Iv?Dn;*uMS{I(Tvv{6n_Ra8Y&gPcM|f#yttW8rniI@ zvO;$}grnnY*XNE)=56s}NW`V+R!}+~E#mbi^oV0||Gx z>I`seO>90w{Q}&ounY+5oqNOmV9z==^+X#tEfjErMxRdHDn1V`S(gMrX+~#ZxVx&y zskQ;YX$fL`{6UlO6_z2NaK@)l7-Z#e!5bfCb`Q5{4s)6gHhHQ{S0KSKA%-tNzy<1% zL1pYs7VFF>#PFwXgk<~*cQ6P-d(*vY={%WxLhxtKK!Uc>WJGm558MwdhI0}m z;}GLJSm1JYVQ+X=L0C=AHQq${34EGI?rNLN1tZQLXKpMO;Wv6#8q~uLu(3Ldp=WRy zQQ@4mCq0m{BwQlaH)9A^J08`{MxK}pW;!LQpo5o;Vu;v`uY+E2Z`dm^1gikFhX0YF zIiJ#BWXM_~E9I2@edWn{D=H>;+f8BJ9>txYLc~{u)y9SO*N4Xc$3je{{kwUz!~-@bSk4yT0$_+eHDb!@O5k*ALNsKG*t(ol5i`4bV`ceadkW! zw4pn<7P>;63%aX0E+fqphvQMvosX*FntU^@rjofBAa=*IsVO{U)SQVp1t*$Vv%-aT z@AL!DhURFJ#3eakOGX0L1PZm|aj<0pR;AjREJAqHg(YE>xS*h8Q1c)RI&3i}Q?!68 z5ZHRai48PhglmJ-~f1iB-_U@G?UM9!;B9Wx9Xc#CIZAm6pg1|JK+bM7+_2E{hBvJ+3y- zUKoN^1ck|#cCrW-0R};N=J|9A9y?k#Nh%g761S$-n9TRa+9hF0LO~2D2?jqJzU_toj=cV0B)k9k#}|Cc08Yoq zf8iwu+ePCt#s`5{B+ht-G2ysYpG;y5C{=n5!RSHzn9(6<{2PMQ48Y;vbmUh~j{=N+ z309Yc2G!06)UMWe$g+)qot#vX*22U%c(Dt6j~1qu%;+&KNlQXWbfPv?VRy8S!%1?< zI29G*99GTI<&_TL2mT?mI1K5Xe zyY^|_z5+jnDG#+ApcY>$V6BOHw8-g}24`W)FC+ z)?JUvuL>is3zFfKycpl174`+)i5=WJ9tS@gZ;Rf@vV;?Bczft;x{5s-zN)(O?IcUF zCiDj0;GeKhXrG+s&qL?Lw-f{iU1nBFaGE2~`vcgachI2otW5ua#h7D+j_?!6-&8GK zpf@1Hf5Uv5czpt2z&jA~m|$AnpXwS82-72F2N z-7ml!bO4{w0X5jO`Nxhf+=?S(O}@Zy(>3`s1k(-o17ADW)GrySC}%%sT_^!xV0U@N z-u1ch=(@VD872FY{F-qsxbJ{G=ns#|uU(0_WTg?rife&E_aidraddlBf9yIHTyw@^ zxEB3m)yFZGXLCF&fA3g33^*4g)2ZNXQBLOIF@2IgD?Sebk)f!PaLM`;d}MUuQBgY{ z&3^9@6QFaa5ohQfI70#}^eNVkkBWajA+Z>4%Mfb*13X546`Js@`1NF$j5u9_E2lT; z4_Mrd2<))09slXcw?*m9D?I^M=+B{?;S=7Fp5X7s$057CL|1wP6Z{<(t1~*s|8Z)+ zf|nBVQGlT`?E!fJ|E#VO<}h9ceIxG5yh9cC1^lx)9JcTbCHM;b2_;Ct6Beh;kE;Lp zKtD0BewkDK2^{bSKEMvYAN;+cx+ts$ruY^7Z4fF&@aXtD@Xsf&3lnrLO2nD?Gm7ps z<;0br2c8vjECz6_hd;9jtHS+Ybv+LJ-kCw3d@-2el>Jte4er_+Bs;o34}R?U15;PH zRemHqDr;94j9im$3yOugtzPLmsbgzuoumqQEe`OKm5mTu$JY3{aC6_QIh4p#>bF8O zo(zd{9|0$I5FkY<6PFBMaVc683rItmB5EbH<-5 zP6a1ACsm<9fIUYy$rsq$6bF~l72y~3C-^nmj&88az^h^@445jssUoM-par^unl9o3 zD)a!#;FPKZ8NLE`{HMkQ9mFx1yI| z)rF(;QDM~H(YnTMB>^kWNrgGG;Mj?yp$PyAb~^qrw1!CXn+a2WEd&vlwZBV z(dLVj2Y>>_Nl`awN5eq?QGKg=Nst&%=$EPbkjy zPw0RETcLMo9fv|;@@+zAyFndF;1$e}rkzQj&}Eu+qTmbgMwXK=(-xr372JmGOa@$v z406Ysf+im2B%iSf3V=uOdp6I+Vj|Q62rxq0Dw<@{n(;=RlNLiUxnu8ex4rA=*t;ZT z>XcxsGY(iB>0jMpz*c9%s^PMrBov|~{%`+_|3@&1AsGykfmEcd5@vh_<5&t^XcQp^ z!0|0owGgh({8RxFVU&NDeu=O&zKL?pHR`R`JSWx%0RwG(4SWb5 zoSspIjkMKQFE7m!&*yUq5G;L#)RJ)t1kDButSPEk;phYyVwro2*Zh1Oj1b_ z%%SRZY47Y!0J5}n#34&sVlDOnB z$C=jFViT%+bxVe!+8zZU0EP!}ovAWyph_cPC+edHby&klo(@iP85S;B2ld%2Y$`8a z?rM7JOBbM^0~WDA$5hh#bP5e!XdawC?E~@BF=P%wXdVpX0>rVh&f9Q>w;y8)aDiTS zaDlM}C)>soy*>laL!}O>cGPCgJrmhHLrYSoazS&|j-#t})z0b;XEskjHeU=miHsT0 z&8Ex4{I z$&2v@U13k)0d?T$d^CF;NQUc*>mq~BV5sx%zysXDO?*^58?UQwX^_OPz-`cc(P0g` zgO4tdH;X=?PQVRX!8`muaEf3U>jJ)w7%5%BH?YIMU=Of?Px$9R-g$#B&zMoP-WxoD*x4NqkpUH8L24|F0C;nIA`_+w=iBpj|* zZSVLv=n_sUi7Z%?u0?MvK6Y!;v$J;H5B@%MDTB?N%-4iJOh7_GoEf)@k0VZ3UXtC) zDE0q@=b>F@?YtlOYYScx&RNNH8s;zrw8I2!O}{t$s&X-(buqj+&Ck)tRRy2Uzc!HK znJZ=B8T}o+0t64ZkOnRIiJ3Y%d|hrJhL2b3@H^}mP|z49-qK_kH~xBpbSPBwIwidoohZ2-T@sJ3&z-+_e=D$6CwZnW8Skqf z&E)>9k+{pRoktgnis78Jn65?F4D4v#V1yZ_NDBlccA-jbNPGZ@LV_Ek;R-=N z0M_VGoh+q6*j3!m@k#@1W5bGwhd34tEHTXWG3Zc(8r3E~Ztw(8Gw4CX#a|feps?Qv z8PcF(VX~&eI<*g^eq4N}Y#e>m;cZ4s^ntl6!4r^%H7Da7R-q8;Op%$4C?*4l@NCjIxPmtB zLmk+`-{5m{c?qoW8!Rs&&ks(szJ@X}EQge!^C%RCpQWHDK-dBQ0yh8yfB;u4)8;CQ zI{|`62R%V&xEG$2&Pip^qwz8Ds^OZPfol;EnqfCE8l3_OJ%;C&)`a)f*QC{=3C-%d zlbt$*t-^&&T#Ag6>y(iV5}#ezk!V}@!vXkWycQX>CM-!5s@t=ncXar(qDuyxGa&Dd z(CRo)JHEu)@vMF{{@4H0{~KK8af1t%mnkwh}fhGa~}&L~CcIE+#GqjC;+;~P=H>U~;Xs8IsfIjQQalZl5 zz(V60HE+)WM#MZ}WFI*tL2Fiz@!t_QuV9>T-BEM8yf$`u>v6Nu+!Ka1L2Kyp*4W^^ z0f5nsFv+My1nslAT0=)f=x9WqFw87r=HAgY0&|+HcezFakD1ev=myn}F8;w`uzxpZ zaGLYj;KqL1CxgCEadSi_n{0NvIRiUE{N>g|n6`+&v6# z5#}t#B6C-dP$$VGV^&ExWt=h&XLW6TeBHYu1@lyN&Ri2u*%R%Mo{haL1gnShoN+2h z*)#33XiezAv*K_b;mhkJ{M7Bds9)INRu4m`obxL+wWQLWzz|XJ_JwZ^< z&aK(A!G-gJOI9(Rz%#Hy&p}h>0X{pPjZ4-!;WGEHFr|F}8>|khv6^^h5RtWvRv^2Ky6T1;!wl7^@4({(uare~!QYtm|-lhza{yq*VkM23>K zimhTz7=qPH!P~+|(^n%qYPV;_=V2u|z$L}ONN)?X>8rB2Z`JnB&%>V0`vNnb5{l`P z^|oSf2|_)F*75TIjSiIzqn{Gq6HdTKVwaxc-uboLXVu#(vj_&l1^5HrV1O#vosWu- z1Kr~ghKq#~8t>pQD7d_b>+7(OL+4DMbV|rG&j$eJ{_+HV@7%inT$z&2;0nJ1{{TKf z4ITvVz^@;9J_cN&KgOMAxSMW~=dkW zYiRJfyMJu_z3XieskIFBIa?&N^ZPn+F?s_(K$K$}qp+vnE<$_eSCfycKAcW=+ za5UTx`#SoqfXFZ?h53TZUXeJC>H^SRAx$(!c;-;<#v!S99gVFFicoCHOF|1Lf5@F( zI2?w!my!(FP_eU+jH#OY*6dWgJE382Q9>dIBjiH&fcVheyIT~PWq_ii{_4)=+8UCn zcPRxxABZ9|!U>37sE(ttEiXV^WgM+!Am;fd@_bsx^z8peL}yjV*06U!8d@GTT82;i ziP(bK6rMb)-May!x*R7tgB;#Enq#jxXZ0?XP&KMR8g7^Fj@EF5hey|p#6cO+e8Y0n zU9Gb^@(c<9U_=fU97T;cu{wA6(~ zk8UEMz4LIm6b(KsN;V94yKAfbO(bILesm+f7;h_5(lxUrfjBxJ2Oz7`v(lq~S?~@R zaY{(0?%cY58CS!jqc%WV%&&`?`K4gZ<7V)fZ%J6PreM}WE?pKB^A7IN$7uTU2u`yF zrx|PJsf6+H;4}lg50#&Z zd~7lrqMse$Rvon9i2KGl4SyTFT=sxANYcpgGmr}~gS+|&x{-ZPg~gl+>nUtM9m2uE zgc&8LGf5{yS|p*EUM=AUK1{anK;~2(H`WePwV`$aTntvQ8Zwp0|IPpG|7suv+EkX>KuRsFkwHkDRNjGV z1}{0nbK+4&cX)hZvN&+9dn;4<2a zIvg_8`221p|1?yN_V$D>M|*qrq=#U2PBrARn(b}PW-ulj_|=n+NoG%4KcUMXSvSBi zi5QQ*thO+k&2i=K6W#3^-QwU)N7os6oiu{591UZ+G@Abu1V*12>KzC;RB)Ff78Ndm zbWC=#&(bg4lwXe;pnOLB)*_u8#0 zh^G*^X0BOl^2O{_yqHy27&=tP(RnztY0X@V7uqTLl1VaDuZQ#K+MN!q##7Nkt%;|s zHM7c&?t8cD2oqn6q9$Pt>l`o*HgN3SJUaI7Yqp5-$uo+oz2nzC*1!B>uxz@RB>fx;Ma8}^OdrLCd6 z)}+O-8dmrMEnxhDn^e2)4SRzjUUMv2YtrzVPY5^mt>b7sdh~E3*9fbj7@BLVJR<9+ zB1oExX-x>vzNIKZTjSnv1Z%ltuPn(+LP+L|sU)~#Z>aKT58|@9E3B7`VNITilC)PG zJ!9{DR6Hs#ivY$gaZP$#*yZ@rua9wq;301Y@Xt-B?HJvg6 zWn(UWN_b!8uzN+XjQotRilgIgm62=KVz_3!17CC`+q>7suY+F)OO_mI9d1%@K!SY+ zHOfO&s7JH6)eR`?khQ!4JBSEE7G6;tZ!1#q$aQ)LPQVAup$*!=k7i$0w<6`R#pV_M zJ`&D@6vaF6>8hQ76cIQ<)9M(X@LzLZ{%ZQY^PHg7GnIe~{0-3HnbD!G;bX_v^j7e` z;$&XnQ3HO?-MKd14}EONNpFQ|jl~+T13tnU?v-4!c6Zs)M>+Ym^HS`pUJ6piIpbQ;U7uiA@bhp#R2|n0%UGwV@RIcj z3K^~IS^2RGKuK~T0jGp(L3393XR|JB4POT$lVZ(+xEL-)Z^c}`Hv<%Pz{ifZXfa%h z6Fg;IixJ-4o;6Bbd>weSXjHqLCHVz-hXFV!ijmOrYu8$lF?taTa03gxflruATf^th z--i=e6K+zW&d?u7VY%@YHq?jx-T)|*gS8F6fmg7@H$dPnyI1}54nJc_=u`sE@OQ8c z>t%Lm6Mt_!x@T(5!mx-LIW~8I&;i^J{(5>X1I@|sh~*V{04dC_4*S^ftd`JL!!4^| zbdDXiL4-BeSK$) zd8`&59)4SJO6nbZ^H3%~4*uR*z=)Ee6sPb;*7!Y~A;s z!=wfP&qakKR2`2>Bf7LVb}3Y*t(fTN%tX4hHGUm*;a*X@yIV;*XLsO~xFn8BDka+249oiGS-A^8Bx4@s!5S~I^68Z`f=PYAb2;n!hgP-uAp|136f}i=eYUQZNzCZ$fbmf?!6ZO8J zyDnKJZanZ`BgbY4RttDt++AzNDZ!v{a|k`=^Cei#dS7u$LuDFyryqcTPiTkSJ;0}b zJ4ZzZGj!=OTvBicjy~LoZbe313swWDqw}i+iJQlUJ6zVggYeTUVYTyP*Jij!^eM5} z@M=57oeVlUo+Nj*9=&6j>6FnIG}mczN+YzZ_29T?6ch3w)2&I6b=Na^Ay9L6SE3i= z`yvO|tP~S9eSv#N?OxpgFR<&PY|II(fl%vw5bbF+9c_9tnRB7UC0sXekjJB`WhU@|?~PCdT*ob4nUF^MR|OjwG&+NwizfqtlB@s?{s8;rl2>>T zk#7sv?8UIaY_MO(wzY!|gR)|In1Td;7p?B;O%-)tza-|9GRKYK6|odn1H&~r`Flaj zSX1aou@f4?SJjt%xyUel4-(ZHpHk1Du=l|kSrXn>ttoPi1mSRDx0d~AI6AtJsdIv@ zf>6v8BQqS{MW8y57Swg!R+fZNgMny`52-nO$I%gj)suk>Tq;C1xubS{2^(>A9gY9% z|Lp%VN;Xm$YEv@<5hg!F7D_^+{xUO6PBLjD;~TSz9HLX3kvyZ6GaBTfVx^|Eb!c4i z63s%PU&U~l<5jv_*+#1AgZu8Ao9_Dou_v&`Sq9 z^Mx>K)u}8U)6E%N6D-yIihp&`8|Flqmml@xsI&l^27KY6Kc6NFwD|C$e5E)CPj%=^ zRyrzp3&zr*JblYpBL@}mp<<1>^*tgUbq6FDIBUHa6cy+U*!iBA<03$~D;~{QOgW*X zfmv5)gSTp3B3Y6m1Z6Rn?1XiA?bfBk(JLCb7)w@3o?%P&l7i5T=4{UDe1TPK@eEtD zN>U<++pbupqgsawxnz|gd_~D{XA^5jbylf%xVUB%^Ce?3E=2|LD4R$6E2|jQ%92$Q z7TO8`9tKGj+8wpCgG<6x{$Y4`JI?`+ylT4BO4mNq=EAD2*;L>zJB?Bj3!a1`@Q6w{K%_byh~(R6gy&gu$sQ9xNsLMh5bbscS# z=TS~2^Ng^pMm7{m!qHJXkH+f0S2$3J!9^x=L7tG<(NKlfadd>9Y8YuJlq5K!qtF_T zL46K+evZ6dT{5?hM`aUQ;EX4c&2F zbX%g?8MI(~8om$+g*}??hnCE@MTs~iUeK=qz&lLv&G9_!-g$Jt6VrjZsZ9%!EXb3A3NX%epNjVUJI_pGsCA@*FkqyLu4}Wa~Gw{f?LsQgVS8V zufXd)N-f+Ek1DJz%GB9(0~`I5Xbs)5QNjrS(aRrPi7e)wXzW*KoR zIw!vrxZ_df9tUOIE03m2(K#U(h4u9*VKdwhG^%wy4&G~IpYU9~AZ8PR=OK3-!r{0d z+`69(mz-ZjWbt5=!mH?6@wuxsq_frx15T!E;ef^6T-d68RebFLloBseA+M#sFSd8@ zyKNykYW&y+fVyOd?3Ddh?3x|0qf^pR`E}s09WLagvm=|%34a0=^2}$IJ02CkcQ#j~ z;{gh?e3VE#EPAV78~?fUx+sU2$;^O=?PLRcPtT6uPk&Uy)k}hs7w`uC8}J)eAs`)& z`=NhsSP}@F7fp{YW%z{Y?b-Bu={keLkpQE^g{($dbC7ujjvVL!99RL<{WGtqe=?$igqvL*PZ@eG)web?G zD$Af#!5^!4H;0~;UDz7Gc03y;ogy!~W`q-I`ELxLN#+r0nlt~Cj z5BDJiCh)!@TSk|T&SyjI>Yae7pxHC$VZqov4tMB|qYYo*WGJ+AQ3?A>sX30$z2Vt{ zFk}W5`kF{0lO_OuH0<30+ec6WNEPBT$`BH2uEX^-R>U)sL@})iiOQr!>$-;<6E?7o z%mpjPbN1B~z4u_}Jpq9S)B(~HxF!l-=q4(l1R&T75x{8-6Q$@`DO9Eh`~ej3n1K;H2?EwO0SJfWGH@}Ti^t)bP}8U=D^x`(q5!Za#vT`a zgYFDGHufWlQE#1+!ulXiNOA80)EZpjkHwPUk#I?u!=ZP5H38cS_jE<7UA7PX(M+%16xYkDryH5I0X_t5vLSNXgn&rOCebGh=|wQ zf>ZKf7z^4P;HZ6gfe0SkC<&7gVvuSWbyo*RYYZ^Pg^iKf(0y9j3c-^eA`w_hGQODBbihT4(WlGtJCe!1U2%Of zo2M&okd^gH&fzeVjZ_~v6pj)vajZ@AqLE|cabbuJA*d!s7^5vmmwHzpN`&D&YYb9T zlwBBJ)IJz#qrFHZ49%*MF12vXoix$$5MGA1lGJ-Jfj#VQyMGUh#2ylIHHXW4pKV0F z9C#y#2f>!{;h(E6c^4@nqjuk#2}o4Dso9hanG)DFuHZOKlsj`8**lS_X=V=ZZcZJI z9dxH96hlg$U?qDtLwN3rz4HLQ!l_J_9AlJC*@9sav>t9?cYw-V7M+i4UT$&B1Whn8R&@}|B&4c0={B)eM5<#iCs)yGQYeRP@f_^uw z)e<6VNwvYHy$&vnMY;}93?~yaT&iJiyEW{Mr=nBVi7ciy>6Fc*H`%c{x2C;O)G6Zx zWU7$o!nOETZKrR|s%vZ58kWp+!HHOtugNZpL$*s>4O3oholU$Hoy6i*0>8 zT3wIEt%b8H&IKt)^$H`Nl}}mi*qa^=d&7CrrN9bKK*WJo*w*xDsLi&HM-!oQw#({a zD|G=^;6Xfr+PODI0een57v5G6%aH5H8VN3!9tWNk4Y=lrQ`8DSLn|1TMs;MF@_8Vv z_s>bW=mdq=?Zfcsh?D5EVQ;z=T(WWwX(-OrQ+!hW&>sBY7Qz@_idOSA;gVt0t=K!ZhStXcU^Ohs7xOi7Yk)Fp=cD0kS9eD8gHfk~x8hwUg`Qe_v(Jj|#7Wu6 zf?~Q9-4+_$ciZSk%lC@U1LrQ1YYJ=A{+3C@$8LwIS8R=+M;J~pnagci`z70-tAA8; zaq9|t^zR+T1fZC#;FR!Q5M7|^-ki_M&z)aYe?mdh%?mCGe*hcYjZau}+z`rhgML8`l(^TZ z0d-2jvI^H^{W0KE?qmnHhTj{uN=RY6v6wEzpO8_F6xg~RmA{@WX|(p3amsotNC@vn z=)m6iwd-@&`wD|jhC;s-{IUAuVDH$#=8BgT4y;;&)136aU@=gtorq+L%8!k=WgLIQ z{`9t>yWF`qHAi%5TbD})oRTl*mx5anf!6akmh2e1P(W0K&}*tP2}#Z$kn2wp6G4}o z;P9zbeYq1N$_NZ=paIu1a9+KDV7g!vGNv#d{Q*}Cf)5Cs-;g$Z(2O*(Y`pMf1o|vd za)pn6K*Iyo9|D+h!On?54_w?|bgAG-xw*T4N7+a-GJfLl!;3KqRu6}B zz6kPHw)|ACzJ|HzK3>rn256=kiSxPQ05>mce)V`mgG)T%arbX#)eF97)QGQn$JJnV z8HRLr;PmsS;ywD&iGbm?U^14ZvuM;Q1#8i|+oO7j4fhW3Q9j_dz=cy*g2`v-ieqa! zoCt5K;)p161A*px9`TC%vsrUD*_x!qSK*S8DHo59uZ`{q#g0oEcFv%Xh?Bv9-u0{m zVbHVTXhHJfwXhh@MGGOXk!3`Ah> z_=I}m)Ag+K&SJWh0C#i>ud=R3l?w(u!|FJi&NoOUYiM49Z-;OWZ)?)Cjdx{uuTh>w(w_mKvGE_UZVypSp-|h13DZaUEX9gUt!tg z2&pQh2;tGQQ}E{ILN>q5_H#}!qKc}h4o0AG{CY{5Y8jcxB*4R68#bdeByX1J=gg8o zC>cVZJs=FT4t1BD3u#5?tVCu5fuqX}J0ofuT{7XEQ8iVZ9gr82IglD< zVwCz}f~7c;i_&V$i@L|rUhZK$j3?DPnjm-{#1&A;$w#hHMeTxKQI}dwDdTJi1wCRZ z$B{^A4%cv3E2dbciE!8EZ0;1A0&(?XKn_?-29P=$ec+cv!I8*QQY5&TkSy9nYK|=~ z-uYksPySC#Kj4OWU!7jagFrkg{9q>!JVJxD92h}xnr-x`A(#khB<+Mo2ya4R1-UaOjQuWf4JuwYeQ%xe7G_#~fDs&*C-QYM1fy;BtsUPi!T;D78^uZ$I-AmkIpqKVtk@9T{C<{xiUi1w+4q! z8K;DlRSf5>V%$6T&d5sGn)Z%Do)@h^$v7pPOQ3(;9eW?~u+4EUShJrE#c(P-QwR8L zJcPYtZ`k4wwCI#jB7qGsU?ZO5?%0~PrlXDe=#(Q~#@FB-1AS-Car9eY*4^r!4OQbJN-k}*}NOyTg=g0!tA#F&P?YpdLWS)q@zAcn0eT4C6# zLP)$fg~R)jMsm(#T8K6K-WaUt=Gq&!3L}@q#YP`}F_G9C_BP(fz1v=~CNGvz63)eM z**3zV!>t9$v#O9csF;jcvu;IZ_NWTge2|r&mA6$!E@{ZcZVQj@U)5^&+U(i+wS$ya zCevA5vtKgKMW07<)84Rk+z);=-4+5`5)yeSep}GpJ`Pk@b3P7!RdmtUNhdeIW?mP4 zR``xh+MC@Ed>%Z7m&S^#;hg=g5U?+*?ITs@>)_VW9VV^Dbx4auOAM(XdWnC7wYG-g&QnEB?MgWptd z5O8#TKKWU3E5M>~MY|Ne6;#(Ja5S{3GHv49g2aAuECsjh=ghB)-nBLD75B=ool6o{ z6!XB@-xs(5XLWeh-tf6=Yq%}4j8pPLTo+vn?sRwVQj5ghor!)aNJTWPMVEnrv3ET^ zLU{0~x)xkZRwCD|Q}HIt`;v~k;jU_?ncCjiXd z0drul*xC>>cou*RoU_)H_T#n`?ez=5FqQX4aaGB8$5n*0?IJWs>ykr1wLuJnne}a-V=h6JJv*e*5wM8!j z`VBJBokzp-(ASPawjx1Btnf3ane*End&Bbppw)26Kp=|n6?~G(Bu8!BI_?KDwI(Ur z?bL}f;z{G6_2Svsysw6qfD*3*E=5OIf?;esxHm{xllKGyt6?<=*psZHJCCks(~eaAvu1w2-Sh-kwSk;NYs(=Bmjn-cxzsWHRa)!2FJ7eUQJLT!f7bN zr2&hyr|5gc4nkh0 zG8ZEiVbTVoyFV*>C&kt5eN}f2p{B4md~9lk_n|-WLSB-zhGBu|KdedTCH zbL;Y<`Gl{+1iM{&R#{;&KAP{1fYzj20fbA@k`NA#_bLcgwl!}Z2|Q)IE#4jHtZZ`E zUhxUlP^q{iWYeV(QZZi>NVTqe1L@xRXlTxGL4I4bnx7MjNkZ-VI)a>o-PMImKPA4e zGGa9(p!e~N20oi=M}+WP%Aj0_Ycjo}c0{$}9ocZs$b=;oBEfsNo#q0_?xA&LF)?G! zD2x)huQuMQ32M-UTA12S*qfuH6 zGtUP;=+UY!IYS9ug1u-U<1Yubk%sDOU4)&IjEp>=Yzhl}7xskaszUQHlZm##aI8iYtVzW}xT~Y-)3F4JM$3 z*6@(k=H2~>;?8_E+5$kCu|~N!cj4J4!&q1-B$PEebqI>ecBnNf5>~qcyhVJV@BD0pmBC!y@+Q#pIp;`F_TU$)Kx|<_WdFCjUk+ z|KLo9-39@g}4T6 z8dsbBXciRVVPKp*8%nY@x`~}l2rg{xl%b4aSdxk{o9g5=SNEe@my&VGS`wCwC2>g( zS%ueb4PmZ~E-r~{R!LrHYxa_?D>}G59Mx4jNG!%RYw&b42sX#zRvpzDQ5uV>1j#sa z$-%V7;ix@$J~}$V5vg6Gy_I`19?dF-C^8s9OHu@iE{PEkZ>SzDWQ9$9C{aDe zR8;BcIAZ6avJLHPF;8UeI(o*@{n_l=qj=t?{f zT^9u%trT2}E+zO?s+~a-|Ei#LDX^?Hk|`D}NnZ!NhWrWl%12dbOLImP`*ECqRJ4XJ zZHOZcyCq=}q@YmoiTD4-=i z5dgYAcRm^b6#BJj;mEN8tTsHVYQxvg-@6Kxs8dp=P8sj3jB2i}Lcm`2wew>Kz%V&3 z=9jEL7CacNNp#1v@naJtLaPN?T-Tygp4?y`?nA#ez7-{CHD&6Y{8rGCT4%BmFY>vo zc0er2gXkB%Y6^SH%JfsRUi_4-gteu#wfK48n>l1uFjH=%GM=Urd=|9^-~J!vs%Z!A{BIC zZ;_Dg#dytV(kUZFce3HjmRqftU3;%{Iz6$7N&wN-vm5}x(dhY0~KPRTP7;+cCD zVb7|g$(_k~%6@Z%fdawqzEyn!M(j<^1!qY-=RjCgOmZC!4}&o{Q3wV>Fr?bCqWpf#%#M z3R>M;vj9j*2v|~-xVCo#P&*E>dayCW;aJ(QW*JmgLd`W4z$5#LM;b`CI}>$H$m_s_jHn&=L#;!=-q5-e zSdCb4cC8sXxeI#(WUc#Fqu@n=dA7)aC8B$s&jxqUv>icK4(LYFy>1%#Irj#=EB%aMuQS-Zo>wPM7~MnIh#(qeUldP$7Fit5@-Xv}79=USyP*!9 zb=l}1PTsRL5^NNgH!f!QvyblK(3}p|jgLZlzKKynawuaJPVRVh4`XHMMY{=yqwe8V z1bllK3DeZ6JAkZA=B!M0Sr?is)LqR%A{%p3rjpr`0Vrs`O{iV1QW$*SFp>;4qbtU+ z$$Pa90SsAevG~S~))ia^?G0V*ilCklmM9qt;b0dB5!ux%94dy)5YNQrA&{r;tWtB- zj%3KjGH;*RATTJuwV^v3>8@;ClCq%$-+EDZHgQG+Sr6++Q%(#wpJE_Th3=@}-W4ed zQ_P8MDjA6gkBu%=SESKGN-0b?1G$D7y8F=>@$t=BU5Us<84(JDpVPuIyX){ljZaW$ zP!o|dGQ(AdE%F~an!_SChl8;l+=uR?HlHrbVbSJ^SPaROGWvLw&DpwI7lOYIBqHbd zoAEkA!8tE4R0!ccoOmwSyKmJT*t>7dHb)M52DB8c$U$%MrQrTy)OLWHFtK zPRW||Z1j%3aqHL`!$yJ_Av~9iCHte=PJdRbu4m)3X|Rw@iM(W-GrII_dOB<8v)b0- z&^hZ;R5a{#PsO4rqwRu8ROA<3gOXUl)5e zJbUzx?9udSNaS_lg~8aywTK*nGwym;J}b6{Q`R*jmvL3+gd^f>4z$Kc#j}#YxyXta z#-@W}cr<7rBY0Fj4xO?t8J4xs&smp*CO)eAfhKMZk3%k=GtNb2#N=vCcve24>Zo0h z!=BCKSu86kcjxTxe0FxnQ3v(8x{pdTD--9ebHcOfSelhOqeLE)1+fd)rDsb3s>>^n&U?lEkQ~`?nkf=* zi*MbcBJIMn;;RY(PAW!9OTx9_Q~-F}P0-%bz2aksyNo<#CF*2&Ur?Ry+`|yD`^S#% z&^q3gCHrl`t$0XPA8xhde&F}cbMbK6P1L2}eT{Rd_NLysHTycS4P+VTtekKy{=UFy z-SHG__xoWV$1piwOw3vnZUu#acyxUoK}5#Kp+8n+MwX(V6aHB7Y}Or5#@mdK4KPLL z;F595x)q%=Ak=E^*ekzw{MzuoB2mFMyQGn0(>r#KX3OUhzQfA&OB!daTVeS3L#U1S zLmxZOB^-x?=Adf!Pwd0q>0)#5{RLMeg?!4y;519!8A>2cFAgIN zq=}+gP;Ak|Iw7=AZU(0;Pf`&CIeG|MJjlBV62-(gNDW-rJ8IKGzKFRHjS8=`5iA&+ zLLVojK#D_PnIM2Rh`(_&M|1Daa8$IJhrDIh=O+RY)Dwp_f!%xUR-3mD zISEGK40>-l!95+B{^D;-+5$5W|ML7vONSpSxs;cwzAAEo02&~85YDZ34Kzc2~q||2Z_u& zI$70ySO~>Fx@He@U!fV`8csu&u(xnc#*(DMlC)-&MZtL5y(DMIhJglsT|9 zkt|J{qqYGr-HKArs(p$+2N8rk>^A#NTGcNTF0{@G*4Sob!c#!nW=M8F}Q1Q zAguSu*jDeMw#C~5Vid66wKWLJ2e-!B1*!m-L^~;LDFD^R`#2iMvQ{>kJP+>nO+JbCaEZP-%)HqplZ~wol&L}r>Bu1hUWTsRuyXWxxv8PyI&#=H= zXuDlik}}EI4`z90&_4#+kkcwznIt1#Xa>x%dx2rF8w#Z~63?L-xPq&<4%~W@36xcT zHKZgFER+(VGS}4d8u{P<`M)rtd5w)L_+))egJUI{_>XcDth0IPFjH`^Z-aA5F-tia zLgq4vg5?c_(Y(n)UoOJ(zOFBvRzl&dNZ|UMonAa#$16YNY!Cq>mq-z z4ZylWtUtKQYeD1s1)cEfVXFRj*(%GpThnMS9Vt*)^BF7kDpkw=NuH6D5~h$U_uuky z7>lL;wymOW6lT2+vnsOp@5suufrJoZrP*jEP+)LVc@itIWM*BY?n8MSWp9hD8ytcV zP=w0WSc`YS>?b{Cfz#g~VwRC}`D5QpDmis3Bl*rp!8?Sft+FMrN|qA=clL4@)k7vl z*m#%IM!L%((psPYIcAbjH>EcfoZElSOmGysss~A)h)B;a%ywB zsfziKMd$_@6MN%F zPXfK;qwD5%65tU!g2&V`6p35M?)qqJz`Q%oiPylKIw#J_*Q}f(?S|fPv%GamI0jDX zHSr2NCugb_@17mFHSFyz!WL)Z7&u~`1UAWsWW(t+CD9f6Og?w(g5u0ZxPs2G| zmAH6J-uoiy7DDK=v+^d##Q@I0_gKxnk_C6ey~n+~52SR24Hf1}H|H0$`Py;6HUY*_ z8E7~szbD4z*Dg1{M``-C@i{YxU4fB&UifpN8?>n#y<>O%>T5^70!p00?~Bi&U;9!> zcE`Qr*REqq!ZEDCTHn`dPBs(0M3TC7Gav#IuZhQn-xt5C&24C=o8hl+0pY?mQNzdY zlQWe-v-0GiCdYro(hXmekAdGOZ!MMTtHjH%j`H4(M1tqc-v`dXUmJ+riQe(K=~u^} z3mH72YvMWi`&1`X90%8C`fHN`zr|6--Nc_$&w;NE>`P>JcYSSoP2_=dWk=%ARU#QR zf{v}}zE~!jQN%|+2EI?b_cUhbN>cjl2vu@U&fq!mr>0>IzJcp`z}@wIF|#41Lgs~+ zuVZZ)jeuCij%vFtVnTUbA-?O5;(!pyK!wk^k0}Rxb;DN-s$%MzoT=#w2in?Rdz}bVnUpXhuL%RvS46E_4O^0c#EjZ~3Inu^ zE>!8Q`SS~=FoPoiRx}V$*agBtCs2onP=vz9!M#?f`Kxu z=2u4oH?s=o9B*jRYvdUws5?GH?$`{wC(@!c%_l`3^G)-1d~FytE2Ig!0tH|`LRV0z z(KxcB5!-TC@-;-j46mUvYp9%`-J0b`FWaPz%*Vi*iB3ky$Xj1xxV_7fRop>53Z)dH z*s0GZf**a2y|3hRq=bYYflyMobtW=Gw^lh&I0g)wVb7r}Ak{n@*tMBa3F4VV042UW8z#=cO^1o%p`NEpLWKty$qT31?;n zLKn|STiu7O=j5Cqbds;oh|*W(y@A5+>b`pGPpbZmuT`OQZz*B^gteBF@j@)tT0^%q zunN~k+A{gGYU!B@&<#7(j1roqkv+GuyB=HP%n$2z`s!q^MED3Sl>RhuSJ8YH}RnbLN~Vn_eS69Nl20qBczB zW2~&9AuIFU?sB2P)s7`ukyNmanaV^XK3cT*9%4cyPLw(vGx09<@!52@v=vZ=v|$md);QVlHax!b zbN-d*^CJ}|f0AhaDXB$yQ2Cyut_2tRAm6HB`25t3RP`mIyhvk43r~-+_JJ!+=Yn`*S^xs$;&;mu&BpC1RZY}!_3S5oO zf1s4t2pKE-Z>8&$yt&M@1S+}5{_&Y=Ibhe->c?T}x2vJbpNmwdHseRao$tl#?=`;z zcIqG5&<)+Oxt9Joi$IJKFtE3kB(@pfz7ZS36*-1YU`1NM?No8rwFnoEdG)WFfTz16pyb1Yu6uD}&`MK&v8 zG&W*0?HvHG$pM`8ol{fT9h=*&<`ocYwCvm9Se9R{?4&UyFx1o$FaL=6rEVE*IA|aRH_8c zS~780V+pKrE@d;WsCf=IlN-9{R-A>v2+fH_k52Vv2GLf}gO%P!S8y(|GAj0BGc?Ps zj+G4~c$RxPP@v^TbZ=_Ld(V$%$JBGM2Gp- zzTU>o@X_<$Z6==37>vX@`8{Od=Psve^S*a==Zkm_I}_*RbN(yO$A}Ndy(5y}!ZaL# z*VN-u3il3f*d3eUbJIt|V<-ns*_C`=cud@tNB3d)+$uWI#>5Q0rhN|p zS)iYNLkW?)<8d*FLl|j~q3;X#2K4mmAvJw<%*3~NC5m_TxR6pbe0J0I363y#bk&+{<7~0iu1ki{N z*VmTEupwA*CXc{lpnx2=2D37t;iIW;fwWF_mFKfHrB+bX*H+4WJAeqB!yXqR3$m?} zJAOF-+7`7Jz?^zc{NJH_W3!A#H|$NH9Rfzuxgu*H7hZ#o+?;n7hFX8^$rI<28(5*d zx@F_SknYso(Vb)Bm`oIgTEDNA(R%l6#7Eb!4Q=q6A~mO#be$--CJ1fRz2l?3`$K8x z%ttAVcPxD=w43e?BY2q%T=(I`ER(GP!e;vD`PCSKi$Yf81HVsw^va|Vl{d#{R}ms# zP^O&&&%q;-#AXr}v-H;vtN=>Q!0Y1o#b#>2%|T`(?hZFZ;G9TQ2oL^T1gu%ZNIWNS z*pUS@m4mmI2{xkgTW0VKeGl2dD{Km&y5(m#xBPIcAk2|^Oya^h^B9(yZnisrZ2+}5 z5thkw<~Ml-pA#bh{439=fm|e304T;+jc9g{ug=s`GG*eLd=Mc$hR#W45d$P(H*F?L zbK-Tv1b_vZA#`(_ottNQK9M*l9v37O#85!9+?~HVnqhAs6^U2ShHT{HvTG)UZus0t z>a(jappU*!DRE7nBjQ|4 zTNPP%NO?|tADm5(YyE+BF5=SWxmjtu`I=?-!uvj8cYU_(#D~jS?+ZN#Bvg@`2_rw6 zGUbN7r4bRlOy8HBd`-+uB%HiA0=lwG#&^$ct- z79!WO@n4$e5Jo7HCGM$SQFl0Vrk!C4_~cB?w^4KD`PA@r(Sk7oVqFSl!(}gdG@2oE z#nc`XLmUAi9k@Fh;NvWD3eck`wutI(!|#=6v+G*?AEqT0A&K z{`|9(&CG6gv%8bL=iYOkH_bp#{W$>*0RRAauBoA7gnl3Y{|g@zy=In{ngCz`0GcXF zCShgP5Bu-gzPGa{N4xIO)3?DUt&7DD_g8!dlbc+z9+VRpl}I%Wl2kNFKX9;y{aXpV zS{2)B-Fcb#U-5p5Izp;h*@49~rLi|f9b)d_x~BN_5PQu~Ko8`XTLNoON3aaEt(xPQ zTUz(=T1%7gP=@pw_NHAyBoMUu@lhM?f)>oYHb7tjKlxJrE~5mu#2Zo|I}agY;mb{E z9mbk@OPv|F1iu90Qyyqy?sa+4zQcaaQ2u%TrP?+$!pU@T4msz%?{F!P+-AUngWzE8 z1YTK)P67IaJn6(=1A5zSHGQr5AuLO9=WU052bcENo`BwL+xiuAfjYA(Gj2>MF?n9l}=<}~9s zo73qQv0}S~Z87mFYFW>}OlB^69n4Qy2znRy*<^(uw_<^AErV+Y?bc$JaZW$EBoDj)9i}&Ah5_bY|%fU9!I&cy<_J?UD~CLAuNnl zK{KX6C^y!C#JwAc09K01ncq*%2dc=8m=#yJSVx9&f571=#M5RFl{(EZ^pMq*O1_^& zf-W`5d763o2En7xDCz!jYXu;hjN^XCQU^ew=~q!SM@bq~!>USaYCo z-7 zN-W0{8{gaxZwf3+87%6LYsIiX(7?V3`omx>v~T$J*&eiQMXL-i^3TT~xo=N4y8Y7h zLJ^{)*TC3rpN-8Si*`&m{x#@L$_l`ed8qaD)OlYZ{ET~k{BFnCbxr$`g$P@vQN}j` z1w%IG95)N02r1qAG;ir)v4j#JKAjME>C>qayWnu8itG5p@mp;wwRVHBdc!htdWF0T z3oGmu^Gc!TkQU)bxs{MSqwGj!Wc#n1-cA6)Qd+ zBeV@K`U>yes4S7V{cTiAo|%=M-ntonXO2Za*0#>~WVitDf|=YSHasF<*~>aT4Lz%L zi~qJduc(G_LUvGO4Y*NTvcpO44(+uR8OP20Isl@&$clt@<_KiXDf*13n&hu&GiNm> zK0^eAuOR9ZEVS{`xpW+SVV#|wLn@antBzC})7BKJthDKsojisb)<_9QZJ%j%r30Ji@{b^hEoI8h*tKtzvcCz}=X*AcUB;`z3} z#p-=MA4j;P3J=Yg4HF1=rmT4h&1J)+=i|2q(3oH6luDNMSet`M%a3_u=0>ZU$M#Ho z8ww?fU4zevcx7eZ8r{@NXk$Cj{2&&N_J3@QUT^-EiEv#U7z283QO{A`+mH)6{j(OjN`3Lu1q@L=mysBQn$1Vt$Fazc-;1`A~98D zz9u#$ig3RpBkguPoYk#nYDQas^KQ7P=w zLz~c(5)%xGgcn0dKj-B4`wyN|5%4T6JK+hzaBwm{<%=AEC{(mb^pk;QvJhS7Fh?2t zIeTL3o(!*e_w;1&i32U6wj17O$ePEYs;~8D>kPC|bg;+cbRuRX-P#kklCL=MVO!r9;023^l)iL>T~PB9%P{6EkV;dw&*yL6OMf&?u3hh9Z%04|&GAU!n{a zAbymI5%XCp04WV1i2Ji13@pYo07%&jI!W65IfW{E*=CTEGwKCv;+E=T5GyJko?9yu zO=3~lev_0+Jdk>4{3qp_E)H65jq$Njjg>fn84u&c-+BYL=y%keUa)N9%5JS#-Y`a1 zE`Z1tPX<6WyuS1Kd{tVejT~#MsZsC*YZ(8pYuta+W_UWpA*Aby{vtzy`nrJMQFIf- z_C19W@#}9WN!&=O|EjX4#QkNu?0e=z9I^K9I-4l8Hsa1U^w+A{OP@NH1C5F@ON{^z zn;hcb{icYGPpy@m-Lq@}Mj+!uReQpF7A+jCs<$R=LNm3rDt7*Bb zBc7FM9npR#i#yXBgx{>ayHcWZI<#C%Ic3kA(D#5L-OdHkTgd5T*JK+=A&@{|=|@h40#63g;1m0+ za|2_~LR3~$_LW06`*%N(9*Z8A6`%{FYlN5F;B9B2Z1#2D8Y_ddWs$7;yY(bL-!ofU zfUocomtAj})K|@83-p=9_?UPINtO>GQc3-VWkOeVk<@F-K4qcHhcm3{*Yu$Xl}57( zUx&VITa`6uX}?vA6)tJ-0)8278PCrqwo+f)bs>=xEy9?K`J*tNT$xN6UBdBC`Yp;> zV6(Xe!2wi|n}6d6+fsFH8E;{<7=RC<5nK0AC-&bS5eAlhUc85prMFSJ`!DA?rBest z7tr}RXEUQ9Js<;Q$pbmW(_nT*crktpKF|NIH&49B3t{{(ho1LX>g$;#4sDhl+gEr| zS!hXuf52)%PlsCBnsb!PiG_f*t%tPM;KGf8(Qdy%c1+4hhHO0v+ zZ@vWmahCox2v^nuF-VZLn`!5aU6Ca&#ry8}9I?c{}6`s9ZdB{HL+3HV6) zSo4^iZe%eOd})fRJbTmWnfHapiUcj3{NB?$86Ek&F*%^(_N$A(%-`eQ{x2go{Yz!1b{3r@x|X}J+K&)t`>$0`l%Dm8 zI=SMl3qSS@Y?I?izK~*w#Ugq)y5Q_&BgB_0;Y3RZe!YBe4UD7p+o;Lt$P<`jkis&T z>~L_|NNlt_X9mf49LbRkuR?Dkd-z1LXO>x|e?_|wsr2M<-}7$&N3<3u8q_>7FvbSe zn-^Ffm^E3PvVHq&J^cdUKMa3u0^y6{_3+FVBvM+#m*}RXe#(nceoNph*9|9GjY5d# zQ2SNaY`RUYIls~{oRR7f=OJX^jppPdWbbBF#QG~Ms^^HE02PL~m5vjHN4sUN11A-+ zg%&Yf82&^oOn%-1U`i&)Ae~He{jJvx)ojoj~ATxS1c{gS}XD5oAw2mCr-DWk+cXtS^< z0tOA4ly^~0x}uf_=8>c`DlzM`2^c|JWoW%ZFcTb0`N)RgGg@0z3b}TZ?|y2+Nh{UN_V9Cx2+Yu2bhH@GK7nQrkljjt7vW zKu$Y|LeVSdzBaPfi&Mkj*sJC%VH7ipcTlG^+i^W3;aZHfNEIcf|IQanIB!9hR#d*u zc+|euii7A%RG0T>uUGT4De~X+OBi^>IU=y zJP4*{Jv@aHgl`RnF)&|AW!5=%W>=K}f!#nL{raA&ouF$w5BxTo;aE%<@D1UJNeKmA zMp9)KWai;<6IqtXGOO<9Pt38%WI`f!v_7}8Z0pdMiPK3lzVcz9k-!$E~rF~Ko8E8JUsEQ?p$*N^`({Z`0^-A(->Tm<d+XA8F~zuu{tjEL^9HQn+}@)RBPqde6v) zacm#=-?>VXZ~hB@%Q$O+U)pN+L@t^kp<37vge_gD?c!fT)Nr_7IT7)JbjtlA@e&$)rVYK|lS)uYZZO2BJP? z8{^L8UKQDL|1Au>%}5LkAebVU3_a=>#4~7d4|-dcm>b6)2D_K~;7Rx>PqZQ_#(x*X z+2L~S|5#=qH|&1?!{nqjjrU)__=nJLe{38ie!z8vt=RHb!%$RiJW^K7MLF5UeZY|2 z{6QEDL&+zX#YFXYcs}Gua0bzL1I2*?)>Aq9TV@FIU6x(^)we6mYTI3)<}t;fx+t~c z1e*`9r0i6_044CPkT_7pCSp@DLPaWI&`3T&UK7`E_XlDV8t%QJ=Y%JvDaFk2y0^W8 zl|j;%^h9(u(#z(!xwpgIGe;dRF@-mUH=z~d_G4g7&&Bfx0twq3ZXDRsL3A9sNC(&| z9(VS>UMX6!>hIVa8a`J-fe)!JhK%(i+|F!Eo%@A9^q!`nx7s#{{Ek1j4G3DX>YMLr z58M3_oi^+t5I&6@ig5TdAG8_Oi2efi{-EB4Ft>fJ?V(%F+l2nYsCAO?9`bc%tEU;Up&))9!#<18~WR?j)XrI%jJ8Yxee|(!8Oqy7lp26tb-T#zv z=^b57reuZg;k?T%I6F?V1-b%xoe<)Z-4vAEnafd#)s46ya_w#5P*VEgA;8T zbac`B4%W2nJO3De%oyR&9ro~Sd%fs!r};aZLPY}cEQIJ*f1g8~Z&hhD>}aE-n?dWJ zo3o38;b7We(thU5n#D*}7ijC=e!p-|I@?b{5qvZ{U+Ewj@TmGa}Up$1wmPme!!woxf`V_wp+0%aGyx-U_sS$$W zL2*8^-%ihv$7M{7loc0*I0+>)bsRnWztwQh^}yjh=Hb*9xDe^LOnIvs#bFH@Ici~W)dd}JR<`@Xw5 zaXYmM-7+lIUmh55a-`hKKGH>fnUR2TUd9X!d~2LT$T+jgFx#oxg+&ycu`C0K4=KPh zg}BzA2K2_AS$ME4{$NPr)NHLNk`ZD7^1PW3EILYlJi`%NM@YWFV-As&%>{cAQKV3( za*}?b2cC$KX>5@HR&=Rx-vW%z#ueaqdGgo`5=7aTE)w+q8hzIjY@tY|GNe-HOujTE z-3JVDOEtvu(FCZlJUb+Esa%ZU&n@M~r${9a+n-}n;b0e5*2Pq;+lnKXjFbLJBaG+g z?Um^zfk^v7#MsKh#QOr*9UIHpkB!#+*|?X_RF&ciGq0@Z`m&ROx$A#vV0n&ZqR(dE z)@O^0%M2FP+OtJVsmq!MZ?tyH7!OsF?)YU=Lr7g%0x&r?v2jTiF(s?E$bXNQESX?1 zlA`aBZK{`>y0;zd*ZMNV*sV2AW)mhU9oT#`BJz8vV9A7UrKulun8C8k^9gg})|UK* zM3uLPif{3{iadn+8WXpxNX&Rexr20lpudZpA=lQ#_9_j9;B5KW7UVQ{ z%lBuc>iyPgjtd~HHLolm zT?wXNbD%x6Rh44*?Ty6l%^=?&%L$}l$UjLTrzAQy$}p_K`6flC-xhxv)g-kaacO$` zHR#Rh%$W~)4Xf)xU{$7y@vE{I_CwjQ-}`{@G2cY_jcg;S&@@dX+fBYH!ZiXh->eF!Z^ZZqWO{qpx3m+ zkr2m>K&0^suUXA2w@2U|Tc_?Zt4;`16SY?Sq9#n@s5J%RhE6@}dM5Y0jtG4w(q=xj z-AGSqBru*@!e}IHCubtUok^cv=DoI)q@_lJiTN)o(FD(LY4Q2r>^s{GWNegwb__c9 zwWG}@uje~sGBbk;ll;~Mw-t>Th+MLHC`h!KSEUibCi&~j`-)%j7$puEi(wh?cMbkN zHd|a(7u|RJM#a$+8@C2& zq{8M;`j0a!zjqk^94sp~=L!>%DxR+5hdO30RB-;17b1G|)dF*9is&A{K2RO;mZWEp zeTRe91U<(U#OM@%ILc+rAORa6_ zM`s>Fo^;KoiUSesVlVWjIQY>EHzk6+Fn22-EsWsv`$R2=vcJ}O`ephi1pi>0 zAIFnN(Cg9q^WwKnQIQNQeGonfAFt?VJ}+KO$pCp{d4H)u`9NyT1>geu65i0fp_c&i zTkGWsSbsM8d$$|iI^$tp4B^9`NxOvJs)Q)_Y7FLl7K4z!0Rq`Q2?_JF4^?gx<~r<} z$~Z^bge_S3P2K?C0BKHfwxQd~+i=TR^GSfGMgK@U;h|Q3v>iS>;IHM1`p8>6;Na63?5SSI$Y0 zx}{F;cj?xNFhr`a0i-D$GjlU*$q~UmB@f){KyS9Ki{j<40>kphG7IEA{_(Ov!<^_A zZAUKnGMdjgsyYm2OVR4jxCX5{W!V-vSP<+_-Z%E3?mTNX37@;L_?=5p&`bNoeVcxv za$)R|`#td-Q8HcsCj#v;BOi6PnYT-c?4YMg4W7esg#Zj_>`fH1w&NmW_V)0E0Hp@ym9umy1<)HfP>*6`_K1P@sPzh5E}{)z3HK zNDkdft$#LZNq63!0uJ}wPP_LXsziK-&@J%KZj9JVrV$eq+nyP{oy(nxRBVeBP?OXtC^J{9?B{c8%B3(nZK82ZcbY>q>ly4?gJ~no_ECd1cPC z{vKSwj((E)-B~s&@g9tSzF)8r*Dez%{h&QXpo@Wc1N})VO8#kwl|a4q|HzhF<7D67 zsmeH7+hCn(M6BPd@0kICSseP{bF~pSZ>yxVpy^yJvx#YkdlsS>LA$fh>7cpwYe8q5 zNbq+;SlR<4+8|16^;-)6$T&HTI1<%!#+$nI`CR16>?KPTp5A)CvoL345!r3VK=@k| zwIFD%Ne)d^$Mq(akNBs3EPT&eOpUegN%chkuW=5-%N?Gu5_z5*Ld;-(E&g)2`21RO z;H*gF_@F?Up6{W7kfYB$yujaHM&q&LIC0{=5e{DLT%Jy{J6`cnPe4o>vQku~7K|^- z$4EjS%WpFh;PP^lNJjG!h#T;iccmDwu`5O0^SFz8;(fs|mCChnbT-BiG|@t5y?HFN zo=(HJ4v(JD&mnrlqiRl3TuQh}B>ZA0w;Ly9o2-C8bD4BwxTGFWTn7?a$!hPY5Wv5c z9rlTd#pTj+Ky;n?jt;4E#XbKVCyAg^eVE4IiHTI#E3%kbDDItAi@<)RsJE=F<;RIX z`RMjI?F@=k{b^4Jt!3j|m0q(VFXw2l%~KFmneiNFDFt|@D_9f~#Pa@`!%B=moH*D+ zvr&ctOhN1F`fqXVce$h}+p%^PoMN-@d5!HvjMFPc<4@~6oWP_cCbrH5+3elXMeJ9& zQ78M9UD<~dB~yuQl|51U@*My8k;MdYY@6!(wyg-iU7wG0E?!|z_H;SPQe+o=isC&pDRGWex|siN&kUgfk@M~)T?9ja(82r5`uMzGcp zSZ;*L1jq*(wwGvZ&t)T5odVumi4>kV^tBH9A1|f4J8Wo@$3=R-p|7hkcOkP+D3^3Y z;d}ALG=wC{yU$B`+VtzwJb)T_@>>PN>pD5B11(Af{ZG1gW!t#?kk;chXFwroE{C+N zGVs0D(%6)d52u+SfN*@uC?%_`kRL-fn}L-w1kcBj+!NcE7dt3-368|XKu5`h4yOT5 z1FaE%3_O>i7@a7pG?9Pw#;OoI$?H1h{>yRD7YZ|a1U-I_e>iSLTiT(H#YFCRJ*NP6 zDBKax@XDCe^&vg5{)5mwZal;)zo)ZRjnrWJO4(_Q)wYMC8@8?Fguc2rz*qxrMM+C3 zvl`mgfU`M%NmgV%$PyKn>+cwNjUH}wh(c2_M6*rjiZCdr0H5QqYmd zVnrY^`}*A-&y;6o-QruwxIObl9lGjj%BZ7kA|u;cH4OX!y z`>%LD>L;C#JV%ZnUK1w4su@AxQycd+Lt{EaDIVU+ksK|~FT<+qgVC@x|AgL!qH`%k zn>?9XY9&uoSQOr2TQXfVkz^QEzLGGie#i8TFn7w?LrF3J zJiJ=Eov5|A$Fm*P>bGwq{O{#9R3!RB>)kcAOnD(?88;mYU5RXKMX;1pR|BPUL8#2= zrc%GxgW23p)%}9|vJg_~e8eqoGtpchszOWjSVy{0&t+q-MAGl|{=OVd{f3>f znc^VWOPgqxqh2Csi6($I-A=!shg>QWm$t|HKw}oeQfSk`17+{w_QSS8qC(iK?wp5P#%_&ug%6ZUC*g|h~LMUXC?gz-k#DwOSH({H2 z-VD6*-!CR#lMMKWzeh@-i*Eal14n{o>FfEUZuA@RoOv>_+J( zKkMGz2RHf(lbtFVbM{yF{Mykhtp~YLS9W!6fAvdKvw9DPBR1WR$heI^Qr$D(*(A3(Bt_r} zeVf~!nDbp8V500u+)DGFMl$G5t6}tCQk8!JDtJb=JTLNX!0++|d_ih3{zU8kgnBv?(~@y?rG&}KeKtl|79 zi2qvn8AzOhrN`C2JZXI=C4K+xquQSTT!F>5My@A<)cGuzg@cTp_-dHQ%_;{v8=goSHyNTL9>yqdNI!vX9+~8bvlM3CH{|aWJ!ZZb$xms> zcEWg#NDa_U%MD~w@WVx}-||Kvd)2RIXI@%ZSz9>!>0fc@w!1C*!%(P1Rg4dJuubR~ zz8gY8$ktrHtOY`B#}qY_S4N2+3S@C-jm`B6Vp}Ig4bco=(`&YM?5vi)WX3Nv7(@xS zm$Oz%(Jn!^6C2)X4Rp93zf7KZ_M)>99eB)?tEKq9^J=z;bgr?zkbz})y2%&{T_M8F za`1DVJgXb-IGpiTi%4?*X_+gA8O?{^OGEcxh6Wgva6kK28#k1w%N?0jJ;(p+$V#Yi^TYnq>)wpq~B~xbVu# zLBy!Vt6|Lyg7A>}zL$#ehUMc-O$T@w)F)=t=MBH?NaPN(y^`2IhWYvM9Bc6)tkh9y zhic;OQZteqegU>&UKzB0Y;7i=_p?Pi@EWl{ROe`q0bH(Lh`0S|(mB+sC?l@}LCUT4 zCnVFs`4Y+zae9ZCALrS|VN%8T?#^^*cp(k0QL@BSD68~_KF5^*>w-}2UK$)9iz)s; zxb*d6L~2!haME*UN`5TJW}vj6u&rW_SaSyk%K?DaV%nKS$6=z^$jbBM%X0NOdhwhq zBVuPcQIjCc`fh0s7C?T6bdHUx`rM|tz-o`tPVU*bxUzb8{GmoT5lk;%sibTHNM1x| z`pwmOpgN<5g_l}ls_XrtyABN0oTA$rALK|o3TR;jZS{AOf-%G5^jfnI)uf>?`!+}F z468zE^Z1PLGl}jOu3NJ`LT_C&XmF5e-U*<0g7QiIZDA=?eBG%cO4$!X^Gc}v!|`4? zaK&oHa-IpoyW+XRNH1q*ehR*1yd9dy+*sXA6nmN3)q$HNho%i_FIf8uKX631y6)<_ zwO`#-{g|4^n72iJ(ofu@)kiloVU7F4CE&9}F_My+dHF3f>d3{kbNMYT^XM@B+K`eE zgmrJfR?J8kbL7SupDX4^#cB9RVq-ZB1p1O?=lsgO&o4ato*OwZhGq*y37^a8X3}t6 znN`|4%NmCx_r-Lm-;70|<31XTmi z)XPie?B=n(QQIBMl^#6~TM$8wU(qzi5`M8f{LN_6+p-oE-gxF4MBCI)FjZsc^t9mj zuRch3gS!|tJO6dBrscz@EuC(X`88-WhiO$J_6VZ1Qu|seR0!q%2uEvYB-Io5mvS-8 zKAtu{bU5SN2Qi%_^mI_rd=w#$ETLHKYi;aG&Rl+Y)2EOm^6$lY!J}0VA0KJh5mWq0 z*R3h#L{VA`6LX~HhZ9TsL zpNN0HI)&fyA{iWR3~2mUOS-Zm(-k}yUYGk_)||5Jwm4APznMXsoAn@)68Qr0B&PHq zrq=%qAIc9FL^e|tPsYql{Ej2*Bjqh!WC5p{WLJ@(9%5(a$&sDA{}$fLKBYbq6V=3; zAokUtm8_-@ifA3G>&DuW{rz~liU$zNo{5wy-BVX_yKibn7j zgCO~fUx=h!nIA4FOLL9{(xTL-50OHJ-_rWuoTl+$W;~N^p?G|}evr_>Cu(3gU`NG% zgil9mo!5yz1%CdQxT_tvY~SQ|y}DYIiOQ58%~Vsh2^m|QBK6{^L?Q^U2cP^%2SUXF zLu*!)3N#Go+aCv@>=esk=Cx#Rf-`3~iXXc7)`*bHOMN2N zAhz|MrlFJq*PHjg&ITFfdp1RjaqT4_j9Ij38(ub^bDqdytke1}r+~iffpuG-2;K015-=w#Ln*ITf>?bKxp92hbm}^C5_H=YYl1yiPsYId#(2U#E&4)V6mGIM| zGLhdxTWimTZ@ZwQZLPvD2v^?2_vhLv3QO1o2;T;i1oK@`JVKDo{m%Y1m7g<<2P^~Nk#K7B{i z`#5RB2`R2FddpTRHTNg}BjI)zb5HBFwcpoC_M=fjRl-@|IwCzdUrz(O>Anx^r;h?y zS|s1=z?uguKjUB%Va&7+SXy+lt;1P6Le^`WiRT*9JyTKyK}o89!af-}+AhY@UU9n4 zEISVpVZuJvImXD99+ld(AlAmGji*}%Pn6vOCV^RxFojyu`l}&KY)5~`8q2hzPXIqR ze0O@}tF*-27kM@ga85rb0DjWmt5i>>I1CrgV#G4G1yj;>nSvx<&E8hiy$9#Cra;eU zf;M6-9D`<+pKq1pd8oQS*;EkZ!E6mk&e6<(6#K9EZn)GOM1_WHyk(XOYjpDh5TgIo- z67nR0Va;Po7kk@eC@{+6V!ZfSe$tW>I{ID?T4yOV9_N6g(Niw<39ED~&u$o@Nsa4x z5;-dS9Aldbp55NQX0hV#CFjMr8g6YR=_d~gSdZEa*ow;X*g(@b<>EXfp)@B0{_Cvs z@#hs6=;(f)F{JTF`IwBSca+plI#GG6M)-K^LmTrD)gqy$BCLOf=8#sAtYv`77zT%KKVl%4B zqgmuK6zPBl5|oqaWEmvwmh{R#p?i-f_hg$!% z9-$?7QFX9j7QIwu50Nc`UYyN`J8uQL49$nfqo{A;Z-kZ{`^7C-y3uI`0?53V8n6@4 z5VaAo6UAgx3K31t|9?0C_L{kN)-Ul2jV7)+yK548I4}V}^UmYmgJF{)*!($PCvIq9 z`pa#OPSt_vwlB9EZ<^v8y`{fKY;tydB?TQT#o+u7ho=N^5N7xzGp7Y&=W;`qqQ4wa z{Ty0znk)Wwu_on__ySTKEilh8m$~)Ty>!T^_41}SsB++eZondTJqn59Bl?>1xJtu` zpznj~SHy79#VIJtSyi8rqD~wnPcLZs95?VrmeEan%=bTqk_rB20Z7y<)JcH%3)xU@ zlC&NIj4xBVJucm5C3-ne_z#rSF=Nb}Yg}lq(Bj(j*w&*imB;hw7f zrX$3PFjl>C>8h;7dQjsja!;Y~y*3*pnZq-N--e`q=DMahO5pZ-#?2h@**{!x+49C> z-bpi7qs5D3CjUa}eQZE1$Mc2|&72{$9u^`tVgW1%6^EnS=@%SRmD-fxFF>;_k^=ed z{Njeka%V;X%m)c6AQ|guqkwM6J17l*I+~A;3>ne_=>H@)vY+c#OF=n%Ba@XTY`| z!q&JI&yLr9CF~9WtlygOYr){GayAiPQt?z7T{CXHEdV!~t&y0(I-qkDck{zTdkQ9V z#c*17_6%nZu4&^0S$A3g@L_y=d%0xPt8c1*jMTXMyLJrc^S`flNb>wPh0E(;1tFPO+KhjZ z-&CQ=m|q+pZA{=T!Wcb;P48gg;L~-m%=@y$wr9AA*W-~oJj62ZRW$gm()AJOcwibj zzGcQAS!_9;Y&wD6sj_H!Xw7d+Ly7lR;?@)f`i|hesGAn1zGu8u{+oetahnY+H1DRT zZB&-@OQWKhk>AP&my4%XcIvKkc*YJnR0@&#?F78|p?H8=2LlDsDTH$k8a@zcQ-};F zMuPL7(UMelZD(+3(~`vZG@>S1)aflgS=%G~I~tl?ItaLgP~?RQuNB&(3(ufSYrj$f zUb3s<8C7XVVmcTS%>Bu-?YPKD-LGwb!td*j;A3f1)`Q8b&jf@k>Lve?p_Fn*a?cYR zU|hKa$!!=Cuxa5d=XiI|Gs>f!^TxT)a)Ns>OVbbfWhBBcuZU6ZA1LtlCX5LAPiwan zW*FFF3(sKi4DeWGr^~wGJd76ivSwPIOt6(+lCm8;rj^}o+F8FqI)@8-`rzxU3`gwK*0GCN;EGW@hauH!vwH zkC=_;BW;#Vokf(^f5$}k`~tFXpnt)pOFT05wTkcSwF#$AjmO`v+JD5CXSNNuuMakT zrDAVS8oj+z%5~4qw($H{L%;{KRJw%hN=aHL-&^=LOe-TF&j=#-(^VUr#7m$^O?+q? z!eTKJbs_{T88_qS!5*5fS>JdCM_aB&aX3(QPqWnFRuv5j?%luyycv?Pi*hlH3wwW4 zu|5Nr&wfZF8C6_grmi`q_w^t|V*5$9hy^mLVXi|sY&%}-zwRDE3v<$$p(|b_xJ#IV z9R+jQF~Z`>oig9pH6VzZzE!@36F}iOB?atY(;`W*m#^@9$W9Df`FO%P%*mj_L?#zK z-GK-Fgf@)I*~>mb!{6#+cM5(OKg``CBCqCwD{@zLsTd(x%LvYwSWn_zm^LBA>1mOhcdc3*Y{j zpBz%ad@LG?)!70}K5`X2IXO)}#*2rfe64h08}5_(q3CI@s`uYQ<hA8=?w;;e zBeW$JAvyaGz=ehe;LrN!dahdM(90E|s@+uJe7(4}uf0{+!o%Fky4c!$dYqD9qMNXg zJb$mVv-PUgLTKh%Gl5aQX{eKR|kD7NMT*rmN-M|X6g)DrXx zmVZqwNo2g`Ej&+m1wFP0wI2D=ln=*|N}G~({^?R*W=X}!&2y*e5agK!ti|DQs8Z`U zwS?+%*Db_5A?o>SCIzNSh06@grF1N)!JLH zKgK?f_#>1TFCFgri0tatEbn#9osX^M!|tpt1E0u}Cu7#5*6-Oa+z|S`F6wN7v4~?Q zO>{QS+>`xW>FfNB7!jITI5OIxD=DuhsrOd23*+1}?f=U|;wv0o2c+i7sfVk3D&z&# z-RFN3+EeTJajF-pCfx3CeBOc_1>UJs^n_&`0$a>fiA z1aN-&{cdtzrEgwM3*8rbM0H-A9`BO-)U3JOTLpd(zjEA@l{LT9{qK|25x?6R)~o zfJ-#0`pOv>;a2fT)1vazIp&li?S${~4X~LFZ_1i;eR4Z<=Bece8>L;uP1B#b?b>bz zIE}UNKc0q3^pwVyA4h65ilIQvvvTpTTRs-R(V%S<2u54z>u_&3a#`CjHImyvu<;Zc z?r{noytW=EW_qGeaigDTI~&rnB2nidKCq5YIWnVR6SPjH zsVRhuLyNx`O5XF!#pUA}LuBRiuhw?QLa8I?%o@`!O&ivnNL~x}bx^&uN>}i>wx3<6 zoMP=`w! z%Rl&fz88O1C4~5v7R^RLRhMedY0hR#CZZ48;w3lK?%?F)5AGttQ`Z%0UCm|9QxX%t8o;}|NfBP1%oU$lFrSjEejI2 zvUO8GJ-)z~(a+bHNF7}KnLJqVEiaoflsdd} z|JE{+0;^KRasC+Z^}bHfa@&d4FE3RAj#eg6jyT!Uf6kKNoPFswp-Dh&fCC|+A<#1FD;@sc`x%Y=lrQ7lhe@9#X%gMjPh^p>xOan;uj2f1sF2{>Qa=L*9 z_-g3jOl^eG(#|DsCOk~IZgS&Kj91ctrg$<{IqNm#a!K=DGkRu%m}6H0I$$$|aLB;x zoXgL18*r6}%D(}tNr{D}H-3Ff+~T2RUp2o-z=5hE%hfTi9oO887P$kZb2)Z7wA=i= z2l-#*`4fTmLN=q;_o4L#vhtB%IGKLvy3^G4I~s)qDg@9ka?h2Z=Turf=fM_4mt0j} z#Ucu#8XSi(HxlbD*B4F91%Jysvr#sZ?<(n(b<<#YHNS&k$Nj5X6C$pY*vn4O30=oa zf2q`WmW8GrImg`Hb>HVjhNq_`N(y%F!b?iVo>r zplW#M`=sy$4$K!S*-pY1)y5Q}5UdFH`$*pxS7iPwz9=4mV0fz}%7Z7w8AnB-WZL%` z(>|lWrudVZepDu7ky2j=+tf;`%F95v##s8-RjAj7djtL!XYEf#FRa0#6rZsZUt+ql z$q?uT9*`R(4-@tdR@TNPnG?lJ#*IExbTI1?dS~Sym=NY&tTc4UN(?HDB`{r~%HlTM zGL=tTIa|$Y<`bvV8S45f{^f7n^7to=mp)C=eM>Y=dg_X2)O5C!2RQ z=}%6YT08Or70-WlrYI8d9GenrP7o=A*Pr~T15*0(`zm+f$2+Fb58Og+iRF3yJt_6y z-t>~a`DFe-iq1Nk?*EVDOwH8BbTge}x?{S#ru*uyiE)iDS9hD{>h7F&akc3-Ox@}6 z`~3cO&b=J>bKmid$Lm>=--Bw*mNrP?q^n{lYN&ZdJSvyv);hEL)f-lsUYR4-hJsa? zjw{7SL16_Op_(s5u>SUku~?_{Oa^0NJj!Ae-}4-GhVxBTKQ$+T$_U+Kn%uEh^=vsb zV#j@}(~e4ujr=cr-y5Odt`_E%pmt)jpQ2P78_T^CAbiT{uz|i3rn8>`DXbXyp&fZ( zun1o68x*mX)TT0z(lyWHG2v{*LbmwatAPR3PTd{mlRU(*QrtM!nF&8*t}=Iz=CPsc zOk)aF3BI23E^Gk5knfKQP#DEd%~C$NSS)s|t$w>Y0J(-Vl_@cCiW#4i_2+6f%#Z)Gi;n=485W49rFs$D?c6dN@!@bEmOrZ zH1KO^Y6KSY{}dgB>3YWytOW1GjOf!Am2QcASJ}n7z{lX>o-EpN;9`%Vte%xr0-nGC z{u}JdcI!*j$aEkUp2dvSnv!&bFNBdbMTXY2x0Zw66$lg^Nbf>@H|3F+v-U- z638C5Q80uYZZoJ*D?fy`Xd8n3;E2LvAah5;8y}cy>X(CA#UMuOtkiW2&=gX^uA)IB z25fwretv279TSY{;PGUBAW>jF%|k?5g)+?>Pq30)T9%~uxrNM!VcqZvW;Lbn0-fd& zzXl2b#Z$2M&ub2Ah8`nW@m!*LLivKdNG% zimugm#q7UG>t@HnYDIh8dlF6CPW@LsgJ=8>RSg3Cnh?gOLH!A1aib{5*|EJNJp+Il z^3hY3+Q_c-S?Q+h$H~qWqs9cy#PM6*_z1p;Tp)0aseKQ3`SoA8#<`%DJ^~ME-?$XC*$z)#n7~TUcWo~ zRJF7h{7dqUxihWCssRvppDsyNKsmu0#ySxoeIcufXZT#kVd=49_`u=&r*6w`9Q-tT zk9UmsiEO6*^gXZ-^ZiTec!`Sk_!?w|=x>*>9;5?T(AZ7SLMuaR$n>~8^m73d(QZ3=GhSV@OMQ#yO@4!;znS*^zh5A(RXE@!*XAH39s^!tw+eE+D zdyw3U+8F#*lb53nsk7aNMkJ?5bV<sTz z!rmgkTKDa5zP`DMr$e5$tNzOl?`cRj9Tc{(B@}#UgwKTZ_is|c@p(o&)jz=)5BblB zFY|%|366g?m#;c2FbVizIPSc^=Igjs7Y_E(G|1%2^4LX`CuH1+R=W+nL!_Nm*pEm zed(xd%jC=%cXZdTWsP3{RppgR^2BnX`Fkxq;FyyLq2#dT9UZT;Dnd4j$2FB}aNJoS z;Tt}tl+0O2Z+Is>3!TK3-@OW7OwSqeFUXt|=qU=;=KKB8MTOPWq`PKi*uNM?p}u>x zw(R7{(}CkHZ1B(MZQu)k-AV&m-|Ot(59^FPV0}=5d5SF_VNE<7Q+W2tpoBVDd>Gi| zDKdk+CY*{uj1%I}2n5M6%2rRxedU^0FipFC%UA!RS|QCza6ScTk{7Lz9j%jAuChYT8Tsi+ zQO@UQR%oIqBslM7h1+c!%-3{!nGT1U1=&`P(#DwVBO%sqlYfL$ot!B`XREfSoqqDR zf0k#k&^Ine^0*cL(jCUr-Z4d_2HSZLDKV1om-dDUDH;a06_EtBeC}?{AY~c{8iz-h z`Cpwx8Pl7={KsQ4VEB#g4oA@a%!m z+YT%n0~D8pm$WGg6z;z}Ot<7&HQ}*zSkJEZsJggR$nwA@VR+p4<--fc4HurvEts zLs@_oK<(HFd;0Gmt1`XYj;|0fRyIAqHJT~=gfbX|qZDQodJQdDQp6p0_5=TtB>DMtf zNq+`n&Mh%J=MYb6I=s{^6@bZex~7=fIK@(zx63zb1=k&Hkh$xy&4(dI_aP$$se#Ua zl)B_i+SeRB%Py5{rsuL%P)=#)$fqI}MB+KDt$;=(sNwLq&;Q5qz`dmZ^xUu|Sl*Y> z80**XI;DH=$NN3{L+oFUjqZxWAT07+iyiqa!07NK>5aGyFGVt~@MQ$_4Uj;+<`ALH z0DHY~eP)2M-*;Q9{}&BE{Zo{o6;bMO_s5(&FAS+0Rbq?hxYL}QE}@Uq*o;{)-KH*- zaC=r2BV5s}EDUCgk=Qlg)BUgu-~h1x!O?7dfD@Aw|JnUl}QcUZ@_p-0zg@ z8Rv@l*zod|ZqL0gS(6E1TIldY04-#SY#{fU|*Ysuk(3=Qn&TJX3Km21~(y;k2mbEw(MA~n)LGm!Er6T(L=su zA*}0qGT5K`Z*;YkhBr%I$`#-6>oDZc9m3;^->xa}0)@7G9_$)4s_JfxT6W+}r=vyx z^&Os)c+z@#?E5SBb}7s*L?1JxF*GO9fgh<>OCAaBaM60dkS|(`67#Edr^hkPN~O8P z=LtmkP6uz$vkVK>jq;ZZ#W{o?)L{s1Z z{ZNNA4A4?a)(TLn5A{Bc&1Vk?7mWcCeOpu@^c}jHV&h8*7 zN%~`Qb^I;az)ZOYR!l_9L-+_2D4mL;P2v9A#;7Sn{s;292vG-VDW0CClmpZ4_wJy+ zX$z8{uK@303C{5r&?AgL{9psbIn?b@8?NTFQFR90r7gTHVFHF<-=73JYWyFFBC%M) zTc`jh3`xSM<5n)TQf|nLYRuFoYZ-q}Q#&kvMtzY(lw^f=ueT_~`rr6qCU0mexH7Dz z-p!RI6l0N?v^}h|cT})}Z|HUrI49znh#OSit|^WaW4{SWyBtk+=L0z>CcgE_O7gTB ze<6RcM^FsE5$kTeB-E!dyW0z?w{2x$`1xbY>a?_xUDfU&*|Pl?wDX$4vb@G%?w*`W?>d zJ=Lg4MC*DiyQCma<`Z?p$1qDQ&AV6d%z0RSl73*CFLm|>a+i+-4OTKzWqPq4TH$xS z=uMHB3O5TgKLbf8{@25p{^lp`53LdLa@j1XJ3mD@ZXl(O9~K+GRPYpL%k9s4I~4L- z{D>)^b=yf=seyu_*BAZutjGl=%JRT>Gm{aH9z@?A&0}x%G4#CK(7-_Q)nzIo8=II@ zu1#xfZ|n|}cP-eW;i4d-Xb&66at-fGm%Q?8^CFLdTn~Ks7T9ub(dFS@VCi2p7tTK> zI7sxGa%dBhgeSUQAfSiF>SgCFl~ZZ9iW*qOxfz+)OlIp`9X*U^pO&zQ+NX*j$I+dH zmT8f0i?|Xo^mX$pa+3P&i6&ysNe0k|&yBwlspe=Ju6EZI4EgC5?O2!RMHjy%5;JBn zX1q^ixkt>&XKwZ{=y~MjUIOgf=h|HA?@AK>`h~lm){@C~`B4+&w>kQ6&Fxi&+`q3K zMOMsV&7u6QIizoGYvjaG>GM&NureH6%qK+Nwy)mJ<^)-W~g_Ggk1`kTHI4Civ9m|60 z0Uc?a$WZD}n9Z5HvE@k+?!N3k#d!4J$$N_N;Q@5_DtB;Ob6s-==3zp7N+1gpj0rZr zY|wSx)(r3r^mc~_!zQAyY4?mvvOP@iChwsaJ0kI@6hhR+6oUEE;#c#@>xQ0(z`KAh zf%L&of^@4<44C{Z${~vSyP)&bC9+ns7P9c`Ft%H7VTGFcnd+aN_^o96-i{CfIQ=2Y z;e@E|H!IMT9*{$?;@j{Pzx3J*`k_@(OpZm4W$et)NRDF+Vq8uHgfRMFi4%zp1N=l) zxeh)=~V(#Lz^I1?nCw3oJ@_05v47Ci^u*!)UNh8HdpzawzL3iRSk`OUm^mJ@RC9}zG!qT+3sEve|gd&nl5}H z|Et^lXnX`518{%*6iFVw3vZT4ui<+(?oz#25(Lf@`o|%eM5j&lfCAC()tllnJ-0b{ zCT;Tpz!sdt2`)S@QG-AAwB9NIX(0;169DTDAgJqKav!HxpS3!amhQ{X)JskbU)&JI z1i+novn1bK0`yBzf@IVG$z*jT>G^dxrW&&V=ce@?-JssCojO)BZo}N&$5z}Ix=#&+ zdAK>fqi)+z^-ViXQU+OoUs3NhElRWXTNpKPAFw{gjsR8JbFypUPU@F6pvXiI{|>nn z!{+)FJaZFHuM?fLIsT25n6)+|F*!t`_i9GyT=etI@Sxq9@aT|Flam&$_h5b@@x?I8 zJEC#*G~l>ItRk?uuJ)bLAnnz;Y<3`+zud*&MtXNa2wbh zjERscdu^TB{!u-i^YCwBsH-doJV80Gen%hg?PEpeAp$diUr{5u%0U**)1gVWp5_qzLUAK!An_A8+^`JDgNx>TRE_6NFG0)}%+mv_%K zqp;mg_@RXKreN>oeB(!p6X0w+wqI0|iuqb#@tlX}i2YtC5X>2$=JAnn!!S7(>-6mv z_0e?Aw0l<)zWv!{qff?Ba;q^2)r;XDRjERH-s#)Y#Af#u!>9CyoMqr3FR3BT=kd_@ zY)7J&L}@_(TwJXVpi;v5`T^bst`&G%eBx8x=fhk9p!SkGlHc?t&}|^`8hCKQcg9Dz zIjKR>7Zpw8d9l=d3=z?13@VsQu)XY9{TfHv?N&G+Od{RoED@8K(`@IC;0OpxdC;E6 z<^%VRJsr$QQoxftSMBAzuR`dvU_&{cOoWlBIo5R(%@)ty-)pEp5DlxO^4FOr#9J4g9t`Z6@k<^* zP?yY{5Z2|YjMsP_iVe=&t#M)L@XIVZ;tdZIe*=RLTS^b?R_Zp^y$Y)C?GMYLb(fW6 z5#e@Ne*HQeQH8`bxUzGylWdQY#&+*Fro_DG z269S8#&lj({6u6s;}aRn$Q1r$isU~qK+>g&+I#}g(PN47-uYI7F*yUHyV$0j4{ta9 z6=3xDF)E~t1qA!##K=_a_1E1%?+79<&Eb#GXB9h61pd1;fY!oEcm!{Mf7669BoLLNYKk6KYN=nQWd;foMVnTlT0$@85rEB9 zu>f^^|CiN2ROm^?CKSC4BIk2z&W5E-tfPeHR_FmXWhU=xuJcqMeq~zuNw)|~J9;=0 zE1has4McF&#A9f0&_45W_wr92o7)yc>nY)kUZ+keHKNEc`}_+D?jOV-0~uMh$wsLY zJiUFq``-W9&0mGJkMF&kdwj_+IkNqaJ;F}O$vX%waj>dl3Qw7WE+BoHKCAv?quv)? zq@eV(?A<4tomYDco8B!u6+I0)4mB#~hn04A=QmQ`7N_R6H@?3pzPCT-Xf0q@9cX)A z-G}=+y8Jm`xx^bjKK0hteLJ@Pv|c*=w60DVI=yF%-gRJeT_+@;&2YnAhS=lwrLSdh z3ZIHf3u#!)#4O>THXxR8t(tQG%>ZRGxHb!H#k;ykeUZw_RrTBW>W59^`3h|Od8fgL zlX3uVv%Ns_9pXk$IaFDw#N~M57^z()NEl=Cu0!A`_3v=|AzX0jBO4x8GHY=#{aHAS zpUVmC>|hc7+lnBKN{=d#r8z=dv08u=xeHO}VQ6GR3*~rynL4h^`lemSZi!HuA>3&r zc`o{tZvSbp=wLk^WMdHyAj}$OgkN6T9_A@}(Xz2T{*78vD!(XXPaEBo-h<9za0bOb$qX@#we#dZyA!{Wn@ zmRNpAsxWj?C2nR(NvyeiPlQE;O@z~U%s54we@TNN8hP=YU;T3_@_o;0vii@y{ zaH1TWlng`>F?RFuCZqn+UXi-hxyiZJKuX=4%Y=#|SRvPWtixreB@_yHI!39a#avnr z%DkzsBoh8;#@W-`hy7(F)YO)s6xj_s4W;nW$s0s`m>bSgmZ@D6GBfb3P_?Z+?#;Yr zQ;+AdX<$2Xgbj@Eq_!Mxh$;lUAt`LWe|TG30w#AhPEy;4|2l!c+Z8Xy$leg_b??D) z;M!k&0R2<~APbO|)>R3*by@&#XJEN~&2hf`6HuYvacYlKv%f#Ca^shQ^QwIsbWZQ(8qA(*>M z+@|R_$(E%SHQRcR>Z?o*wIm*OOmO*3@$VK9!R%so!i{b92Qm(|P5kXshyUq@-&Ao@)Sa2Gvv&`V# zdf#>_@^0r!(T*mZJGS`Et@A>ls+NpUIF9Tf{|pIkTLhw`=Ry#k4{)Y2U(ux9tW}NG z5`AZ15&ib`y__4Z8>nv%6@xRgsl%@Z#Ai+=&x$kDz=Tir-P$#j2-MD*8~hBAfsx>n zZP8_7nf#60))mcMtwsJ+$K>HWB6y7n7n*tcZ$9FgB60}8>rgG%!QG7O%i|Kyq)Jha zzorfv{gQ@t|Ec=b`+E{+;iKND8AC|iV2t&6*98*LL{MK1$s*!#w+xgfGdP!dFka($ zm#qlvc1Y!d{$t8*j6pe1!g(IQZ{>a>!^`^`cXZ$h@Ngt1CU{BZ7DoheobYJ>Rj&{z zFbV@L`<{y%tIWaG_`bNmAd1blCo0^R>Xmq>fA3wO#(sANU-Hw%(kE~B=04moAD>(F z+S!!xLXf-a@4{gpr^JPBG<(O|lCSu1UpSmxn?OuG^DQ;?;s-*nm2NDB2J;zS$nfHG z9EqdKCFU+Z-X7Y_qLPhLS&J5|DL(`*bD8|OZs+@w=;{2dcnGQg+~ui>?Wz@wH|Xl& zHZXbr<_tbq?en7JFJ31eiWW&LkHQFtMJ2$zT%m38Op4pwYco}ByGOR+TP75_mfTdPF%eEev^hy4D*nY9(VH^v(eB?>)^E`{!6s3{>AW$h>}pP7 z(Pz2i!fNL^@>)!?hwWqFW?nqrLnJNf)O`djkTbKdV8h?pea65>$yck{AU5(CUORM~mfVzf27qQePL*@`ns{SU zMgKL<@;3dk-W89UF$+E0MT;E8$@o3!K$H|-y!lOX+-39ee(6r z%pm23z}G)sn;Hn-3O3FJsv?@C5Gx*7HGXOUJ;;to-Z7oA8jFCjfim50%+&;4k4g3d zyWujDf;U|fdJ%T^W&Z1`C(9lZSuJXz&v9XOr0#OwMD`xC%?DkST0#AH z`*GJ;*Kyu-SXi=bM>*-H*)yLSbU(xmfQ(c>n1ZxX6sARQID=8;Ee;m7N4;Xe)|}5_WifpruNVzQGjmifz!u{=d)2>eR>F;ICn}cP)YZJFNr-$%hH}Y# z6I#(n`8=d;8N*2q>3d2VZyyF@V03%l(+$oX#i+RE;E3P4Svef?q3^bB+;J5(7uOE0n*sEFAj@1L$^UVX{1x`jQWWObsoWjtmUn${Lci*I4EjsC^X zgkIe-1@1YT+11vq$hkM`5I%~Q>Euv|k&j&^m_UV7^)eCiOpVpWP3IQtU;Ubl`{;Ft z=2eyimNX4645wa@&m7rN*x7;&l|dU_gwDNW=hGGvV?kZ2(vk(&o*Y%bw}JMUkh#_S z2i*FwhD2?d_m%u)6#cS)V|`Mxd6XbQH32$1=JVfD#i+kiGC@W2{U{Ux)v{``V@C5a zYb^fvuS!F{ICG|2;RRNMDK{}pw<1sOn)}A&U+$s5WYgABDJW)zNYD$Ve>Z$j zc%SNI9+>*X%F>Y&==sOpqMoRM{DQY^DFfq(|ERIpmy>ugN87k{F?}NsBpTI2BXQlt z@HOpNlZSw_+5(hLB(P{=BqHGd-#sQv{aLZ7N5Gr8b^-lW{$bvD{f!03zg7zIpSrdE z_l`dTfy~M#{SDn;dyrO;bN&ahh!g|g9O?nYTR426*=K1nFWUsn-fiYzDuE2&@&qS09bU2D=gkq6 zoxn{~Tbg~qeidh_Eygh4oIgL&VR$)zY$A#}RMM$n%AUHb?Gs{U7>dCBh%vkzDxqBC zK=6&0L+R!Csw4}$y+2{B*y^skK6#UWmefJ1>{ zA3)7ygrH15&&Om#5csdiwAa~c?+jO=in=uU*FO!+C6{R;GOu{c>;VjfW>yiIo)veE z`3CY_+ys`YYt9mx01=3w<6k{uQ(CL$M|qJ&v;3BdGLGt5Mp_R&qq&!MF~^~6(jRN~ z1JyLFq4u%VmXL*&WOX^eThS!3aRi8$TM`W`e%4`kD&D50p5!iJnd+mn5O7Z7a(^j; z86SGO9#GXNKc0JQ(#{yOL_Z0sNQ`{73i*r;?wEr=Uqrc2as&2fWb#$+w1|dXApWS93g+9t#m>);f1s zs`QA&x%11JOd2Z-+JJSno9d4!808qXSqHT|!9T=pZ6EUT?#c{?&dmdIaC84_M7T!k zsxCwu$e3V?hFI?8L{cjEctKzEWG+~mFV%nE{#SwQ2CWSLmvMaeRcR1Y10_g8ZlvW}Vgi4_kd~uuu6cpk;$-$UICPfTR z*`|iOdM{wof`AY-A*Y!(j|U7+O7+Paj`NB9?t^R3VcWYWN?TL z?{HD>Fbi)&HdG?=Qv?4NmUGi2S9RyCk3&D^d5*-$cGj5?uuBpG3}($oZg-TPmQwKi zxeYSFREfpV`zYLcm(G)K+{SV?{t8)y71->zj5)b--rQqrIUKr~fQ*Y$Or>!JCk-6Y zQQuWg0oRTh9~;QqbHj56L+!si+7?w`zfKGC7plfSr8Y)b$nQ(R)82d}B668UD+B8e zvO?;{uPf>&PD5HDi8!Rid?zk$U|?t@DvY-elHzs!=&kl$E~mzSH^R-zvh% zNT-_UEvqXe<*{|JcFq@2fO@THBF+qeG~Y*JC}{3jOoNqZ<8C1fYmknjv!ZyJpFoV$ zP1}FEyM@IUqa5EZjr09hF-nG2%)QP1o%VxsTmA@1OxWsd^x7eI?IYa1lUrK8;Z(lH z?#qCHT(#o2IKnqxvALS)%}N}_^^T=B=&X_sZd2AMIEBbhH16GZ5yOU5guUS%9cp`#g(8kcM5*qIXBOV{H-JZ+V$t(RTjxYnD&b~i6|*D%)uvd>%5cO-pbVdmu>Zj$B$`waT0Z!sNnMwR3^bv3F6mlDH_oo zsa{5G#G6uLnZI#2w_d|8QLihsQyovl-uYpPQiK71DarfTI9c;nmArMHSfrYLbPaAx zdgKKxJ&KX{cke2#z}Rcv8pqfXEk%*G zq&{&Pr9$~g{!H#>jsPz2jSdB4|Eyyq*6LCt-&GoH=Oc&k;T;*4itQ7_xN?46%Vk6OLBK))RmN7E=IOpb z4BRN~e=g-nZKjeE^BnTV1UcX6vQ{>+HG@FO3zJ78g^s@p|g+ zG#?Ys$Y&)7Kimue?l5CR{9^0y;bM*<&@^cFHXAq+?V+bOI3K(diaT7Ctd~4WsfGS4 z7JF?*$I!}jm7V~sPmpVMVGve+k)i*S&MLL{^8yCFQwc@!+IL3-8)hO#$aRUgL|V`H zCnXunz=Gq{GGK@TA8rT-5f+StlOw3%nSc5=Dav7@q=hmhE)bn%`oNIPb(-V3vx_E% zSD|!JJ7WV#M|=+%8pN|1&V*GP(gicGcT7q#E}t7}*Nr4RGd_kP@~^u1dP;%a+01Kk zFZiGn|4FErBONGoF#MTT*1ioD+Z%r9-7`gwehgEh6&-o1IyDn~vB~;egaw)w4Q5?0 z<9T7l!1}Ha!Kex|_n#8NZxJ4%^WeyW%>J`DZ(O-!ls+lZ^^v%*(z7Y_EInP;m% z`ON-9xWYqML-PJjKU`x>-d7$&l~d)~P(%849&ya9+ZNMu9i=V@vhYgCEj|oN3MY1t zBfuj=K3Fj&#`-EXKKdp1bVcZR(N0VcAGGm=e7&#jn=ag3ruzSW@u1<{!{Fr8@=49c zCXhZUycxcQa)~e0{^CfN&wTCWqFQ~i_{8zOR~gqF_;}0&CBRKLf|~LLu)E3ZnkLX9 zll3dc247aZB>Vv|u}!>^XR^0LnA`9@?&%(i10+NI`e4-vsX6d9=rE#P6**^Yvt3ky z?uVx`39XiL5YV9# zt)G*_vh=SRTB=jNb9-|h7B94Q*0~j)QSCz-k>tb^dK9V3*@dhH-+9B> zu!vVr+qy`;gMkwuc8+mp9Zf;l87V48g2Thoc69NVxT0`W3BH?Ccq{n0+khmr*zm(sA7|I7Iuh zzZ^>NSft|I=t{FGEiC!d-|BLN=Y%G|Nun__szs~E@(HO+IXEq6#TM4O>S&6;t@kT) z0yQvAbkKrfPM`EvE5ogHo9S#&R$$e+>D^4QH|dA8xXzfv*f-uP+=XG|EP$Ons< zAtcdZ@l-(P&tP5km3_RfMUdVOm=DMAZQ$z)BM7x1#5ys~8|vvIZr_VQ8qm8+7Yq&! zNk%ZPEFTiNH1YX`?A=qy1c$ib&K`*aqBy}Vj#xLhxEBp%IXBrd2pj|h zi`|w5t$0-MzQxGru@)$S|Di{bv#UvH30Ua2UI=SHwST283wIikc%hkLxh84qZUEPA z7#4*wCw-H9PhAT-H^(RTN}{NkNMNzUwHaC2_8f)yc;fXt6c!>gEsk*G0DeyyPhIq` ziWNys+got1!=MVKy-f@c5w2^(^Ev6JFygYh+BQ6~j_m+x@iB62n`=e=W->;ShJ?cA)Ky@cWN-xmjDW-t^@%fVJSDGq24trI#Mi zsKHfv%kgPTmFP8SLq%yF&*p@F;lhev{|Q*`Nc^)Rv_yF-gp2D&R4mF=sXa_P<(xaY z``)seiL0TtQSvQ@=F?o3UHWu!`+g_Qfja)El5A%!qbwuW^d9^BMF=SZJT|%WO3Tnh zgcAeaeUzsxI`)m&G>n^WC~&qrwc9>b2{+Yh*J9ryIO!Ugm#8DBTC!tJS6RB~7$SDP zEWCs)lEQJ!zsHeY0w%QN^W+q(VQ1c5zrIlj$*r6!eBhlH%`@~ou-M+to#59Ax7moi zlCwGR-Xxn=Sp;STMQhx)oYMjp>0!>09@*jsG`A|=EBp>tf?GwFr=Lf*^LNawgLQlI zhhXmi*u6}lS=2mxiRfr9Gst^YNm6U<0AXF<06D#%eqS7!dyB%t}8?g zBz5~wapSnG#^ad$0*3bGWS5!a@Ik8mP8{zEfAx~eds{{<2=8uYC z8w=V=_6>u;>N9NxyitrrR=%Lu72fSFEzLDIZ)%m7@Hee^E*$|8{!&P#bv5xX7LF&@ z(qiyTFxx$ONusmm*Ay>e{CDE^o6Pxvjk5vMH%bofQ+k$ z@oM}kQ$3eO&T^gswaf#BmhGcXN9celY>u=|Fl*44~MeJYPS{VQPhoS&b3I|qk| zuE{*4d8z$tO0=I~R2;K<(jP&-;U#;}>95tDW}jwKGw(nVR$m@*j~+P`8XcdXX4g=q z4k{^><7AcI2pLtYO5x7tVe01dx3P7p&0Bf}P_u!%&DApu4&HR*lYn&c6H8O1HjA&gbFzL( zPw{OpMEK$S8%Rx3os(i$hIm56|A5v90uUE!ZH+A`mR6goYMP}C`}Y2O%4|dnIXF(Y zy-Tk{bF=NAtray*r@D7y85BAeP^4e^qVR(6i(N^X9eFpf1LjP~j*nO>C5iOq%-_8* z+pS5MP7c~~NgJ&8J`pwZRJ6v+!$189C@cSvstjR&|8ntz%6j<2do7pUpNWP;Af4on zffuPQ-4m$-Ayd5Gd&7BRc6a3Jz2CQ^2~d<{P;)*_T}S=PyF!8Y-Mqiz^2o^iQ~=?J z%o+WPFFA)`o#w{$w`%>7e)xjh7j%G+3;0=lTj|_qij?-b0*fCOV1sZgRN@xjS&?G& z`&7?wn6m?W<3@Uwg=exP2KgVnx8D5IlSA3?dsKvkHUC66F?ZGJ0XOjkR>o-TJm@Di zt{b%?F1|AHT>tC4VPqJj^V8m8`opxK3=$!r57~Vp8CD+tq9CG&F-5ynq6|G;tpP>~ z$O7Het`6i&A=+(=_eo z9WrBW5<2IrN)aBU)>RHs9*gM*{JG)V`L{Lj z6aKP?N(radt^Vw%Og$u!QjQTQITz9)Nk&0AAt+nEKv50kVVb|$l=rH>9Jl;1PUv`Q zWp%|U)SuyJnw`-H=Id5m_G~|_FTI}!e?9lGsAn{v=P|0(Bd9xO0^Bjyy@BjQzCaZoeqWp7xISjGJ z2=CW0z)`Qo6kq5gy+d85rAz3~jn9-C=BA;b6=nBQVR@zd3Qx_60z;D~N!wh5#xlVj zN6mvN#VYolBHCZ>7@0o7VcM1GWfTn5a&C%3dfPI7>Qrc+8YXrnF%fITNOT6Pk^ERr zVQ4a@K~%WDAwPyR@~HyMoq;(vD!kB?LeOmK$Hv$0|@* ze?VHP-?wu?s|i-Iv&mdoY}Ed@tYR8pGM8CHd)6~9Y-|jKZ#XF6nX68?bvkY8JyzX257J$dA^Bg~{6Fc&GHki`)4a5@O~a)8mEibmm@;1-L_I=1D~>o6U{ ztL}MKECX4?0f#OOL4#KCId?<`t%Dzi!4kMAmMSn7$Qd}>KK3*k55dC2!h2JNzABc^ zF&_6{!?aR23SfM?z>SyPHwsTHoJvkLeTpHP>(*0ZlPb2KDVDW`p4mENGR+CCg$0DJ z1sk~qR%Gx@ZoIl$PzZhUNc9J|R(Dmvk}}?z9zrzd?btfDL;=YgeinuL$GJ?)R3!nS z7)PdWLQP9>jg3xY$!Dm96Q~qgb#RMin5*5(;MbZnv)S*LL$y2?a82YEE#<+V?Ygua zXsb0T-`;2e?B^r^Ea{*MTI)0k2&|ZreWrlZ?{n-gaf^)??-4JW8aCFs9ZaS2k%Oo{ zij94uqip+sj=_I>dv$fOt<}%r4B}%h>KCwuP`lT?`l5ib2y%9ar;}TN62MrE45PV)!o#HtNWU}Kj4G|!yo*d*GJ$}>_8-M{!b}l z{6+}d%rEH2F>NuIXsk7LMeh`lsI5C_@d7zhTi=ZjN{z?;jfpk02F@CVUJ&1}2gWBZ zo^}_mJVEb5_Me94TDiN5)*OA4e}TaezNM0Gmb0%4o7{0fFj#z(dM;;l<${j+$J1BW z?1>?)({?ccDTA`iPEEh0lT-B^03Rs*VsqYP3EBNLn=wS?(1C{;3Hp={oGO9AW6hZk zegL+zR4hIB2qhj*6eynlXqggibSu34(G-1}nCuZC6O45qUHTsJqv??9&>nDCn%C`v zwh$k*m$lo|5yljZXGZ&wX5RD|{1Etk-_PaElKIlzL+%fH@7ZagIz@33sfK-p9V)jY zKIhxxzZe0(|IA?mGg3aJRqI=?!m}9ebW*o@;x5Eu|1#M}-+xw$v4v?*EWMNa8MMYB z8fgUmZsPE0m51``2S*kBg7yEI2K-wk@$jI!mH@L~U8l~IPU?BM*50hI1m{+>%Y!O_ zh(+PL{DtXzi=h4ECAYiUshj*5SdMG;7r!9Ptohj59zkOGRSpTZ{Ij~ z8Kw(eowCBke-kSibM}sG_x`-iUgLwMuTH*mX)^x(3O8JTaoAHqVq_3So&SCyB2^Cn z9~e%?zaxYUH;272h!DIft-jfQPDzL4egZ^?DFXZG*ZGtJ=Le4#bmnEoM zqnvmRtVd~UF9b1OW)OZe>6HnablF4wZwqEEwhp^rjB zVQirzqaesmBoGw-n@}>+5=o5$lv|oj`uO{En31ZlCnKVb>Oyn46T@(7GMoF5WZe$6 z>f_#-q>GO;LIr!|>$H`5e31)1iRiiCP(aPmGLzoXB6TZ6xSYCbek80Qq0u*zI^JC- z{#=s!#`_M)J9&_4O5gM&4D~fk3^ne^gm8O-%9lIW zT#2t=wUekzuCa+mmVQM$M@1~T7i<#f2m)y;j0tRb!J4!Fg8il+Sp7%P%8qi-yXvyW zWa*E?Rhs9n2Ihu{q{tz0D<$d5fb7tnRxltK-8+haEj*IBG{t0sbfmBpq49Zw8mMBC z$9=4Q!{i)22q1toP9K_^!bQT^B6i|ARVv-ak^7dw%|`WH%RHV3^JXI9kIzGFsTI|ROXAN1QguElyjSa-BTTj(8o&qwhMm1 zO6W{@&)q7oSY&|u#eO%#tf+h5Cwi+7&_75(;s|m(G@{q7t7sY^k7HF;)f!Q1_u!pR zQRq9(KdF^^=lu%Z9l|6r08vP#j&ffgM!G1&*<4LpoDFX>X9!G=rkG||_xi7gzkQ*H z&lD)@6`9sC>9%>aKQ;f-wC%BwapQhYXP4B3U&jCOq2NfL;sGCYj@ z5EuT9*RZljqh&J9TxDL$=tbP3{P{AAMWUX;o~X7U`&=Ps@iSZSclKyKGQ3ctkWr}d zu0oCi)76l$t{ok;NLc15$5;VRk0zP1{vCf3M1$TnMMPr9MflJ@r##l0o_%{X5_@Yg zPHA(vy+Y4xiC*P>mN^)z>2mTNn4dgP5?>eXj9|rTLA3$iDsZPLfxcgh(xHUM{D-F1 zi2o0FFV4EXGzF$g36jYoPtW2!3I_&E;e{1eNi-rg`4bSgPmThIOKQuHKafTeBZ&dc zZ`XVLQpX`LTraKY@VC^egQo{Y8MVqM3*TTc>X6eu?MdHk^VcBXiX9^YMF>^+LAJwg$y_71gc zs}&lAqOtehYP81tynld@eB`}*@3=l-0L;kt2sO#^d5 z@?Q%&sa1nyqrYSaKd6#OQWy$k$X2Bd-{)!fcC-*nk6xK)jZ3C!y(b6XN94UwHD)&5 z+GXwa2oC4hrL`$$9{rl=>5P(Y7W{oMU`CeI#ECIg;R9}7#-}PyuUk}}!?*q%XlKwo zG*u~LWUWZ6p?KSG1 z4Rq(ZOp4v*p45mC)$25~v;)+#iJwtF)W^8gHQ~grbH{UHE3W)sO1@K7!>g=WegTWj zD|C)uMiA}EZ!32B5&sEt%&hkI8Q%zxI<2R4vR)lo;`295WkESi9C;9+az;b^TUFC6 zXCIS{oND0CUGMa_lF=i*1&C|lNcJGa70LfnFK}}&Zd&`Ct;|skLbQX1Ie+uAa_)rB zju!wGicKn&xzkucRJDt29Vs;x&<<7_uyr?HnbMRI-J`jDg>paZ{ShuCi(Q^5DZh8OxIS@~GGEX}ClOna zJD_7vh40>!ZQeF@TyTEai*G#!m_Ihpc06c)t7l(RxiQeYhVtKQIx=37|7I(b$^bkl zLG$kd*t8vIy%AESU5NM(IE#wkZi*Aa((m<0^c#>j9o~*q@>@*yo*S`|OW!7`w&D{W zQHR@t7|1dj%R2S%Fe>3&3NW)e9`If#8Xq|r9s?e^$YvB0d;pP}C`?0N}y811qC(#^h}QJnQX zr0n(}78hSt$;Oey1k40ZD?x3IzBUb2R40mFUj?#^M+3+2;XpXo@q5mM&AI5L9{M+pAIXCF3 z{mehyn7qKLb^e$#9dW5mW~=cLq=u!w5nOjxaDLYh>>LFID*o|py=15xd1oJ7RGBgn zAG}G7Cm~s@%VZ7UO9|{lem3*Eq^IpeJ*Z%Z^9FBcXKP@&K^H>;H%3gzYQdK`%@#yy zK}#8R5F}hhodp%CuVuzHtUgd)NnLz^s;RAn!QE}dua%6Nmuk zh4?D%UbAPp%``7^*Vk|+=N#EQL|s}rw2~dW9JT&M&~E~4y`;Y+5S!c%nl8hdAdQ@k z0NzcIAP!*-mbq}pOp9OkXCaI2|6+Si4d(M@fJEj-7q>jg6< z@7SZv{B>Ko_xCNMkeL+;iCKY;~Nv8~t%S@a!LC`A%v(|gE z_pCG)zmI-&cq$*c;=cFAt}4|K!j7eVg@=R1ecI4Y|LN&-17)I&uKq9zras00Jhn~^ z+;YD$ugPqhi4i9}(Z?98Bz?HA5FsqX#w=NH)FECrds@q-*V^yV`gZDt@{@HlRc{KD z2+9{9fSw4eicm-+P9SCFYZFf8y&aid6sf z@==vz{FLxSLD}g0>hV*fGwEaNdSkKvsknhoX0wdukV#90$om0Ch#p4cZ1%em? zv-I#BoZV+XIVaLPV_yp18X|Ic)a{nkP0bfgzMVO^6(NjqP;-Ie8OEdaFuZw>MH7fy zBS4in92cSAzvJj(1^A2cX|(N|FZsYl-C;v3qU+=N;k2`=4(y#B0^TgSLnY;el&EVq z1qW{%B$k=y0LVjXrSWgz)!QVOGum2qdkMB2^R4^?i|$y#&lj9zr`Z^t41u01zAfWy zD;|0M(DXY+eeaimhuh!5ruJvHvSg=vKk@?m(hVbfL*YC7yF?PPk>urT zL~S!QIv5eMahJ=i$F1|S%i}?g;h6nC1tiKZ$6w>d_0KW8R~k-SLIUglNE(w|8jqka zZyqFRH#faGw6&>cx^x!}g|1aK9e=65TDX+P*k?Q}6khdZ{^}a)rF<6dw`m6;kav`!Z?;OfJG}*ozGU z*AcLdmwsT$t>Gng&b;U9`N-Z*+dEU3Mw_5(^SWgw(-1W`iEQP~_e~&L)sT3~sg@|5 zc2jRbE4x|wL?jHt-bjt?8N*O^_fm7ks0G}-51l{yj!Lr`<{<$omm1P-wl;kupi||I zVbn1XgDSJM{S9abq!z?mdmh6Ea-b4yy8rSW??GFJpWnhfR@0b?ny#HpLMHlC++8$e zFwup78>M4MJqu)!`WK%Y#whx7fro#GXUEVVr|8Nzy@pOe{>uFKh3Pes&z4r4{8Y{Q z4=O4`|KZCwIO1(2dr(fF`bq`-OMq8W@?Z@rX-Hgr5tiOmuE!@Qzs)x6P#O^~0Prh! z7*%V;*`1Jf)Kvi&SHB?`MAB?L|1Y#}I)rAKXU=LZxgGcP)pv;VkA|JQ=L3eXpMTHF zPz9Yfw>-)UD5H`~bE_$a$#pK^Cxr{rozLlm!E41=_UDkq9lGMPUSFX-{Y9C(q~VAp z-q|q3H=<~g(p+=lMk!=Z>^)a&y=b?Wp!9NV^GDDI6Ohi`+!x2jfBlt^DVWiC1_&|SjMCwth-h0ELeDU-* zr|6urPmMzS-l0m@FK$6eCfEiHPGG)GNc3}U%JNJTOth!kxeA)dy}xA=d~a5 zxeFg&YJ7iS`sc{FRp{^#cOR2|&IsFX;zh*ga3hY!4T}xL28s>VV)4>;K9#uUBtxu5 ztQ%?RsHo&jkmngGH)RlcEqIdFYOyLk{cPN*{5d&}yKeWnw9?N_cc46E_NK9EN_t>+ zc3gmBo`5U9JL4|$l5;Qu8Uw_EuzMr;;z{R=gVWa(o+cS1vDC#o6!^5Ic9H!2{9iT_ zq>oR^18?$P4`CM&*ac7NE@3*V zEU&D|zmskYR3{?#`lhdG)n#*RP>g@%FNc3k-h|7=x3^bfpj8#>m2UKWf*CJ7GHwNWbRs6|&ON@5YbWg;77RPFlwDz~$Eu`fVy+CP%w!kzSyg)76@C@~%R7yFL2p z6A;nYsNKG?SC_q#X@buoBw|0JN1xan+q?(09k&x&V1m>Ynq(gBqyjC{9Wz?R}ez;?cES!As(&-=J>JjNDvlemJ%ENYkpi!IO zAQKok+jPqFnULmX_i9XLlMMJNT-fvj%-kh$MaG@yq@r`0R0AYsYVw8JlmR-Mw$x(a zTLMBrU8_%{5sQjXseTGv4uNJFp_Zk83lCMz0rS~etBdILsvBrl4v~b&_ldRGnt~8? zG5wkCLiDOUnTQz6_fBS2c&F$t3fW6^b>VX-RpDByIHau<5(CDFC(rGL$bDk3erq_Yn!AGuJt>ax?Emub0Ycu|(a5hqJ zs^lNPe?MH?{IwIuwW;fu@7@`5_>bw107fCX#?J<39e1RQ zniF<7Cqb+28GUjlU{((+J!<{Z{eC{xtuh#T=FBiR8~pYlrERRXy&dJO1 z=`3L&JR|*zxz@b!o$1Y&eXPvfxe?fr+*Di8bknn@aE3) zoPI}0G&uFFtckhvB+l`T+d)#oB>{;{30Di3_B(snh}+cCi`xGt_yM@HOdLQ&p$+Ms z#XvZtyJ$YRlgH9|(X?~sszdzvhO_chS1+&`7~050Xo2eq#Z-?9-$A$4%0NsiQ)p0K z%r6c1$kxQc=0OeD;xjBR@)edNU^2<6b#Nb*O4;bf<-AB1)dbWHXYP^uHDQ%!(G&cV zNczNrruwux0qXdct-Civ6E+@$mb|mOt6vM* zYw+w=oThnaPGA01)6GUG!|?D;S=h(>m5pW2cdGEn_85}V*JgRqYZzVWd%b~Nd+#=q z7}gDpFRAJ3FBs6F7|SV%XUN-Y;k#=%$Ty-Qk7Y6A*vl;3>of2lzMy#j-CF%OKQjA z{gN9zc_kDuD@{@)>qTcx0t-zI(P5#<(aVms*-1CSa<=1rDrGy&XGx)|lc_GIL)nr~un0 z7BP1{tbX7I5%94+XrmM5VTeu~%EpW0+D*FPD6dNUGBWSv=4Hhi4jmktU&KW*?nD!2 zU*v!8qc4ZX9H5XEnN--Yr50|8+VeVVY_DVJgbY)KrLzkZlYJhPWk{2E5fR@Zp{$Xv z;ks&K_6&)?@QqmZPm(b&8!cw-S@xi_>l|H>qo`(`IWkxHDCOEhR91SMN|J6TB|3T| zbcbu=Pc4O@mKwF?rEcBd?pD)Zkf z2*J*bx)R;!+!S;QV0r_ytdEZ%ahL^Q>7@|(Ct8A&N?amlrqeX` z^L&o>$(lYrnuVoLzqORZy-mMNK3;|0sbIc&4-$bKQV5L|s#0{8A@ndVuDKW34u+t7 z!P_+U3vlf6eMW%1#={8|?YFl353#w7R$jfCymODaRBLs8qF!M{8*{=JDe7YHzEVB%nWiLCd)!12Vui-Z!@=UzZ zE(w~|Et8j)MAnYtYZ)trM+h_|!Sgniaz=p9z{k{N*TCT!?J)L9#Gh=4{qWB!o;iPe zEnF~cIOkm8Dn|BmqQQ%g%k8n_a+ldb*jUOkLm@q?OsWSfo+pbyFxsx>i+Z~$QMj9_ zN(mO&dtdGn*@b8yM*djCs(AuldBa!Igz^ehjrQ^}N|lyO0S+~FSbRV#)34gj^GPb3 zVTDrlb>9q?45ekdU-70DO-u`{YEe#U4W=N+rJfvEQA zmN?cz^0y%NCHu+tFmnCrM#tr5vE9r63Vzj%Of0d{*?M#CJkp#@Kh?qsSVhg#e_PoF z7InsUd4%FsVo)!`%*7z40c~(!*E3U;*p6ck@ADHiRR2b))Yo8#wZ$AhXAD`jP<(Lg zx#lg8ChjbsvrtnukRnqfy6&i^V-rZRz&t8b=~E}14IPe0S%9fuC8sedqH#k??`Tl* zn!jKHM~!fg(xc`U5D&?h&n3o>Bt^U^pQe4Tm>cgrCD(Uk_;D5pPRb*x2stWK+CaO&npR{RY3`8U9*IwH;J|* zmJ*wt0e#&nld6}o^q;jmtiZox$5Ug=Y@r&3R0qhB*<on;skN~6#y*goE?1`T8huPc_4IZ%mIO$O1&~U1g;Le^zl2T z+1Y@N_A7X`kuqfcQmL}#PHMIWHX%``k^Z|NCI5%$0)f`AhHpsE;)d52A56@@p-vU2 z#meDqA6ray-nBL67@ZmVTi4+|x+Wre&UAuTSAA(;*3wq(yAe0m-D%X@`{Cr-)ke3fU?aKFMlG__&-RvZz%xH_Uy0wZD;~3Z(uNQ z$gkV1MTpgkOB%ff{mUi*I?@J#D__s(+O@RiDX)Q<+1=X?l7P@>`j}P$bZ?LC?}8TR z(EF(O9xvvugxa~>pNf05zYg3w52AUHIDV`u73tn=5jrnw8f(O^?0YB8wTq<_M(|IL z5>jA(6Ygev77LD9eEjd4ZI7|MW9aW(+jqfQnga7ftvX0hIyDCW4M@lIF1x&7V=ay= zuXE0WNdDWl?Ve=76hcrXXcMgSS8E8k!@{B&`G{&SqKA4m0}c|x1)!0a>bFv~-7#nN zFP*gnS2fZXP!AjvOwwAXjtI)Q3&>(RCNK~%%(8BHuASrg#j&waNf%PIz}^PSNA!$V z(cR1Dhy+dYfw!eJO{PojAul%7pz9z(Xi|_Lz=d0yUU9$T3%n;$kkz)|qQl+`OX8LN zWvdhM$*|(hW>^Af3nzd7r`5rdip2yN2c}5XqZ2}yx%v2*ek(F^8q`3)8K!x6|KS0n z>x;R-1#{8Cu;MB6=%=tc$_<^{q)>jnxy~Wmso#&>dSQ?9NxwfUmmmDQkSKU78p;d# z$BdgK5OvbJ9yGprJyt38WLWf?8Ir&L{IN{}>h?HXI6WzENf`2&EI%SsZu~gyy}~B^ z=)Iytn!19^l#BbIvaqq@V6u+Q@|UTac3aT6+40zOEh2)hb9*!UEk{n`1=>uXVla9b zSsK$8!a+B0#eSs92q2fEKQxjZ(VwPNuN3ewiDe;7qmeeYx{xrppQVz9k@wnwF-!DN zLeo8iNOIcaHDi>SJgJdQvZ#nJ={YyJkTt0}hS{kF?g2hRB-u?(h*C5%LLKu(P2Igp z1vvi$mRqxJDRRIj<-N_cTsb2(jS-zZ6i{TE++1}T0LQ4kxW7YB7Eil!arI)w1o>~R zJqNmsyXbRwn=tL$q-y?oYPy$2fP~r?_|8AINir_%mgDX0EE5AmsHT zPKrEeebxF5f|{5+(aA3`=V_Ycx@1vZC6DebPX)XrK&6}fX;@d2U5zoX*G>Q|*20R^ zY!c5(CI9rvOf)>DzNSV}T0gSQ!uSwo$28@2o;0oUSk_DxwiL`uMK+ z4p$&c4XhBb-MOLpc>Q=MZ}3q&ssp$ntD2KLYFgyE<(GQ7c(9tPYoOZ2k<-ko4E2); zf7Vk2c5Rg>2Kl9lC6q+08u_4!F$X276*mZlyW^(%P7U2=jkY_Fzq={ z`i(6K$@l78lFgIENi1(WdR?4GY&ktizMPphb($FU$&W@}#Nmi>aI&%~*-i($4)*{! zV40>FSqu3yEvdYpKf>$uEs&RTIY(T%)>9VkS1EY9_jmzhjAMNMAt7C*=SgTaAN?E| z(bkt*H(k_2hMr;(VA<}?=FX!m$((f zGGw4mw`~GOK4J_-0juyRW?fm84&oYNUiw&_r;*kb_DQzw5f;hej8Z1AhsPeQ`lVR{ zld$s@wY_I?p{K(_wErPZ2vZx}K{>qcX~r zb9~xGk%9a6-{;P;X-kxSBX|{YW1dWZo|TCRNfur~mszqMo2<0EaGdb;q<6WQYpj6#y0>{h`hBt*H*9Hu1$0lbas|xA}Kj3n&DrQ%3m(|Z)#{gdx!~2KYb}^ z_~LHpHV+up^{}~6rFJC08<0~_*>O*uO>8Fwdl!H>+~IJWbkW?`_T4&*E;k+(8vatU zXLvr|4+J2zYKZ5OP1IuUa%k3z%CYrKUXqOQ&kPH7{!$$Qn|7$3HEmbASN-nm1o`T6EHc^Exei{vTn`kEkCbHEcq)O*y#f z<&_G_y7KgRgqF%eOr0&9VPF$ySg1cv#NG6^sExt|J{arz6#bc(-n7>D^Gk z>RrqorwmQ4c-?=0$+D=B{GZPFfQ$W)>CAJ`jsVmiPb1mJ&8zlE<=~hj;8boW;*h7r zUBqWddDpNiZ=={(KpF>mIPuc(&-QE80(ItIM=IxqGu*r`1U4OTAzVn`obY_E(0l?b zJ|9}=I+CIayJkrT3c-$a55-r9!7(QF`{lAAk4nJ`_NyOztSQ^Kpxthoc9ROS_O4 za$F?ciH1yacMP~*LN5=r>KN%=AM_lm$wCPRu!9Kq^8W9D!TYCE>X=(EK67=TQ@WC# zX01~iV{lIwGdh<1r8QfqMrL|jf3IHsB1oE|lFGCz{qj2@eWJ&>fWhHv`6B4K7fqBy zqcO00zd_#G9)CT{9xfd|SPbR8Z%xsJ|B+Q><_Jk`u)lqFl2ILTTjrhD@Qe&feUteo zX}YV#yh)E+36!RX(DWrWkZJVQ6ZJT^^K3gT9# zo!q3oVmdBg7JW0Ac|@knatTw4TH!or{R>ipiCnm3dwc-Z`%~7!Q{>NTQzN{kEK1g# zs$9?95{A<#F^o49lYQPU@%6~;yo=+B@;v8KY~ZTVbm-qsu(8HLX6KSH+3_k8z(=dkh$GZWMsbX+Z z?UNsElO`8-fJ`HIo@+eS^u)yEE(L^R>HK}Bw-5{J4&!FHg zS`U;1l)t5DTPzs5;ipAS7=UYD0;fFUC`td*;VHn%X6$;`oe5356#v9MqM{@8-`KnM zxOvtCLPWZ{1)G~i`K4$8ih|PLkxINpnJ}o0-(t3;y!OTHrtKb5w)YeXoH67v>R|=k z_N~ZGG+LB4yc%_d#Jl=YNz}P|_XgE+g)b4RsG~iH&NsEQp4iG|S7NZ9fK}C>er-xO z=lss=s^wAh7nX`JW;zI|*fYQY9CheV7pi}`)nEWCQjSdkWMs)hL*J|oq1)pJ{6<#n z#D}rU1*oI^s063J1Z^1Zdl9zYGsFx5xL5^_a4~_(f^CJC6JVmO!2+{f0%tAwj; zL}keFVDS+pxY>Iq!97TaBaWChBH~fH*i$s`-ntOb17G{<%261>UG}tQ6a4IXTP29l!8HM)&PB3>QSD$4e-Ci2Zng^5$`Qq4}HbCdM+cW=rxuS)a{l>$pGWT?#kNwP515>Ed| zamol~6CTU4mh}`f&Ndac9v%$$<2ht-AWrCZ$Sl!}+(|ES!z!u`S!wjE$xB=+gcDWk$gp81iF zENMl|Q>Gmmy`T^GiQ1afFId}kp4d+^A08Bo|GxjOO84ilC$I2}Q(RpJN=jmQaW~Od zGbilSFrn`A)Rz0aXr%WO+z?}o$M)5caL`mieC4p$!C4)wDqbS%)PS`vTK7C~=O7G& z>zNLtDPO~}A+1Yu+lS5Jb)mO=FPgvZt&B~C75Y32OMxW)$WLFL$GA%0zVU7kt!kXj zNIc2e&_B8~sl6BUl>E0LIj|QLH_NaVRB=jJw4V&hY9B=vH=dZ1NECcQyqb9?;qMqOQ~T;62C;9MJCgA$@jOT zG95eTNSPNxay3B4>WspzLKFFtUZ{MU)p>rind|=*O#*t9HWvh3rXzp;^x7AB0)c3h32X%MSl+{1dFM$!8UY&k*X=RUhSA=zT=5|g z62xncV$2eN%0ZXyLMc9tjoa6~vN-`$sk%Svpy*aSs*no`T{Xl`o9DOvxJr2X`wPNaQ992#@F?>qOMwJv~K`9MbHKb zx>b-mC2=SjSo|e%%<}spYQ4K>Hej&3^PaTpnJR?$c7>i3W38w=q2Xg5=;GE zhM(=ge12zsN0x5uzj3EMO-&1AQz(O`Lv?n%*-?Qva3h62I# z>m=xvj4KFD=*61AW^IO$=p9oG@QZ2lG=O3$#=1T9vm3!HS&$(@LpJ`=VzD!N41^`{dP7-tZX8 z3Y=TmzrmjK+e$`Wm9EGb4KK_4eEZ@5J4aBlTNn#zd z+a?jLs~YjlP5)A;NxcibVmHw1?l!HL^NNB^wP3NZQLzY$b7LgOYGV0HzzxSCCLqAJ zK%fgK_w)B0VC$e$aRp|Xd%0tbs?PsJ&`$qeXBT<5_R{NY`vM1W4Q$P-Nhjpr)&0x-3V1MIo6Qto<9<1f+=vDfY zb7GB#zB=-|V?J=I!p$B5m!^i70%%A<`C$1-5bp|h5U(H0z19^0ao*V*u-S$d_(AWl zwdk9mBz+cxhP!$%4EUtS#>-Z~MbI;L5u1XOp`wFz7&k3+rjX>+S;jdNsI?~~&U={G zIN)b++<$uQF`^RpZs9x3`2wItCMk}x%lNMlfPBL6b{^apK_H;z22c$kZ04GeNIP4R ztmDP?@vS!7tUDrG)&*T2JD-cNT31QX{|E2zmM$l5K0Bl8(iClhd2VBEttka*dE6ls zX#dQ+gF@bu5BK-`>^YxN2P&VmiN!=OY1O4L&i!dUhi!j)Wz)Wc`hIk4GBqVk!VcQ3 z%);!gE+OSKdKCS)++Ql$6^BVFf5C(5B0Mpm*tHN;zrzfvZ$#0+I9vRX?_Pgao`9kD zURq>PCB>tVnyccco^!VVEu;}4wc0$G+>Z5D>K}esxfgQ`dX-*P_jP=Y*5HR066OQ- zX{oi;%REQ~?oR2L512fI4M&rSFK^L$SK`LepK~ z*`v*^wVuK+zs-lM%&BP8asuV)Sh+N{+#R;1XXE{fSmBK4Qm>9AyLAOmkvC5gX-MJx zMLwgydkx6Vc zEK$bd=u?KI>{n2O0c~GGrYHEOOI-J08b;fMc}ijbN>ye>k5ir?RfTn~wC_?)Eom3+q5hvQ=0`!X_p=HUJN6@A-?AV-p}# zkv3{Or9C!aYn~x7$9}buYe{eUwaV6e*fwc>WmRV*A$g;L{Z=C#p%r$tWZE@_29fQTmfIk=BvClkWLwUmoyhC+t-lu@9F)^8vA`4n9@(mxR0Le0^w8d@kG_scGe zD?f7jDViWzBN_0ebKqnF`<^snZV<1IY}cfBooAHfxTT=RMf%lB3TKOy!N7;V0tt|; z)h5ONipAoYHCA5#M*>jZ3tqRJ1Fgbl`F{kdpNeITp&kq!C(^`jb9Xu{{z(uL{x>BW zYuyPnPF(KHdX!+zu)9_U6Aj4svp~&Eoq~3%Q4ilmSH4jlz6+@0;p_PrVn`vtf4W!Y z)>MC07BrMUX3X@+bY;A(e0n=Gi#(Ip`j*3cgA9o5@&H06neD4$LQH}j&h(EZ?Wba2 zvxcnhDFEgSARt2GFu+x7BiJ;D`J92%BkZ;A5P??D`P!U6w}QJ@qVL*yk+<>mI)6g? z0h@E(*8(6U`STx%iBMaI%K;8e74J(I5b)9Bd z6ukc{!$39@0&K&vtiX2}|44wo(AdJ&rq|u+Ys_mN5t1(obX~LnE>Yx~xZ(!1rFbQH z`;AZt_N&vcUEv$t-!i8F(Rs%5G~{g0$vP<(X#&f9!|GIfR*Zb%*v6r`pBhtbLyp9%s8e*D9eME?Kso zp%c*+c9LWuWgJI&TXJCpFzL=-(7CV=D+d#DYX!o*$?_h8f;3B(aa8O5+4bbtNR^ zKL)`>Mfs{9x*qd)XyBum%%4`D;$1xz5wniM9#z>aeC+bG-(pERUc(jBrzExd6ksHg z!mVWQR8?7R?*HX;O>_5@))K}iUB^yqr1E=6?+`X9sHK5XOrQj8VRS3V{yv zMfg##pM=@{Upw}{B4KxLU)uxCsal)r|NA%&SIIh_d9n%N>=Y#_J29U=90SQMw~ zb;6%(oXWjKHcQ!lajmrlux(dKbvwU-fxbHb9Bu2jYA1UI^Mh3JSn58M+PIQk=|1V# z(;L;U`L5xO%%iMR(rnF%*NE;p8;PXOw<={)voSG$m|^t+Uj^r@g`G||8n+nd^O`z( zFTB8@3@ztCS^8N#MqhxM9kUN8QY|z4_%!BbpAK*1at>gAbj-(@wF{nZv_NGnQgJdjm*6qpEO#ISl>YTaah!Z9*6vGk{uy>LXsGTd;4UtR z9YQA6)XN%~c-~H`-`y;=)U_GR6BwVK#SN==;Ck5aLCh)A1DF+5KCIYRz~e5n51t+M zw$_S8^}DZ&P&_C@$%z;9ot9&tA#{)tuQXT17QSgt)dj49*|m`78lMLfx9JZQ)jSIS zS~{^Wd4`lr(i@qR7GtA72(IF_Z0zIxzJ->FB_z)Blhj@gng7%v|6Bi9@MycUnEG+{ zjBCV>b%XZHz|)!bA3I80zrV^fL=QDadH3x+PpYIa`pxw@HO$MUal#g#9TOVtkPSC( zOy!4jKSkY+-+2su%C077V_d$~T-}QlRg_Ilo_xWk6ZanrK6xaIKoYF3&<~ z=-aa)t|r?O6DYA8+i#_uqsCJ0-)-SU&%#f}CnD$qj0BMp-+5N;#QVAM_fE&V)UD0W1zSIYR$isg9am`%0Kqqx%NRXG#;#Hz8dvtV6w{$xzTlEPfRy;85+N zybBYnPNfBC3Mw`t455Ci%ig+J9oH zm|tRLu2UxUhGjkJpDGLa7Am~odg}6#4lv237ZU$?kI>O1^6zjtewJ(U+MDuPMIqHe zmE46j53FK$)}EjDBFlf^^XL!iPei61^dZ`9&t#{c#zhrm*}g+?-UUN)@OIR7u1n4qe_tpc1$ECP0-%I&zAB7VqrMSeBf+uNsYr zpOK8b>*_AbFX>Vv+P$vzky`%4X`Ja^^Zna#;(>Wpz4&okmwHHQC8WFg7}?QW_Dl?k ztgnng9VG%A)_*Ba&EbKYMq_zC<-g@XN0nWwA*pfUpaZvNemP6??rAssJr1pjFUt8> zi$H)y>fTU?`Oj;s%>0w)@89&o&V$?J&TiOkqgTLw)l2<|W}nvDg%5$Le}8PmYvR@c zGjpV^(YtzU_8eLc5@^j?I^*9E(@_D}TNDJyrY?Qx{&hU-Pp&pz3p81A{G!g$p2@H5 zE)$_&F#}!>v1#<3{^yg>qP^^4@>a%HYP#!1H?!`mze6YB(4f-pe z)~uj$PCb8@=h9Thdf%=yP#eK5*l2ER0Li+3J(KfIEMP%e@L; z*v(rTP#u@siv3Mm4E@+Rx;Y~RF$T=)#KHz0DZq*|2Xhh9ywz4ywahP4^2Y$D8Hxb<7N*hC@=I%9j z-ZKYHP2Wga*nH@pmY==_D!;YHL|^-($~$g?%ofbd7VrqVtyUB zwr~%n?JE5oS*ZwB+c^<^pr=aRXq&mz9jl*ShjL+ERXEN%=08BSH|=(*IoCUX-Dw=P zW`;Mo`hz^F>3t5u~;!H!Eivm|fX8h>?p;~0E{iRGLo-zt6E{9G`k!MHM~Oue7p1RqPsLy)Zm}=x+2bGU+ZSaz~#hXV#e@%_c;Z5OA~e^iPJIp;g76AED!eL zXc2yDdmDv9c!W!`kt(MNcfsc|)F30H7ziedC_kyd0!Q`9U9p&2&1cY_X4gSVaQd;u zqzQlfgDYtUMFfzCj*VDoTBG0VZN{2L`8ZBj(oX+Id|5dZ-<%Tt$3xGjGbm%Td>e7t z>pIq61$w?((|L)FUq?#&c8zPd*Hu(s8gq2&JHO=%a?%ng0+&}0_+pN{VI0Z#FG(P6 z*)Usbw5>L^fqLv%ib&4q?@O&k9C9eo^`bVTsPcF58-HblWB%=D}St@QG@71L3%! zKGzB)2wK_k=0js2UfUcBWPB5!KpQ+bO+p(5ZEUz}r^GyNb`cl35t3yNTKDwkTV0sF z|1PA`l3e?ao6m*oj~~okt>*&1vwd1xrZbanv#~ei<@GtiM_u?@g;wPY&AZk+dMc?! zxhAsxpK`y1L=9S1vK6N~PA`k7Xjt1`&}+Hqh?1owFi-n)augG7y*qf{cUJ^$=KRdS z{nETeZa>MK<6YZg3vzs|tpPxbLQkjhbVPWHTG_(~XI4GavW~JVzAr0f z`Avk}9O7Z$$C}ZEvD@G_+{?a_&8qFwg~HVj{lc}ch%{KstPfHv1k>~{Y}8Ktu#IRD z`5qs8-_@Qc;)#!Jzf}ni^S-99g9egbi!rm+Ad^#rJ*m=T8REK0db>y;=Cp*MEi6?# zL5*0o5yM%7-xIJ+LQ7|;<}#`CjWRcTHf~o(Tv^A4uDJ=awyE0t)%{DscK4~nH#G5S zxO0s*d$6n=!NG;IaQtzz<;}L{Is@YRE7T8$lf|ln<#T@^1{?;yn9|tf=hr;v&n!T` zrFx+UO69b+Cxi`8{VS}JaTbnrVQYa#4Z-ssQl3G zw-yF{{PZbd^|bdyX;b(OTjs9f21_hxU{!l62uJ42*J;B4PqzPcbl%}`^-mj*@E{05 z^qLS7HF~dMb%I1$y)4%1ef2K7RaS`_UG&}w(R+#BSMNQD@}A%8A6(bLUT2T*%-r{9 zW*pv}(mxXsH{vRI9{l5zwW32{7dq!iijb)HZN;x#p6F+&PCsAPN(nr-&ViTZo2s9s z@7up~?gYH}(HOBl$r(mWFC#sSnJU|xH?ic(BhBl%)6V%VSB=_0ukjZNEzQ;|klcYl zZyW>VzA(YX%{!7KTO7(UQIaTSnu%t992@-KLf~nxB*PRTOx}jI{g0B#tX+hOv=_Tu zV;!XfoHP)upxnMvJHmWx=2`5p zZq^MY4J=IcCJ55V5-j0Qu1w%7s7+h!RTlD1f-aH@5w`YM?}a0Snz(icfp2vwmL>zu z)vn?eGWSIeT582+S;unz8Zg-M*|PNw@aA>r?7rMnP1lwF)LLJQy3X9sT#Q+W+4r)> zRiaYU8+sEo?}=H7YEEu0Y|gDm2}juS8t64#wKheG$}cK-p#=Xai$Ez_>s-pR9$ZKPV-KE zVKZuP@Vpmz^}P@?cy3etQ8$Fewa-?q?iYVQ)ezNAbV2l1e$N-%u`7Ata=D{l+U!P6 zHf$AqW$eGi+?-x`K}iHRKeevwK_F?aVwTVwq~?gEpWT$ zQg}OCzsvr>no(drCOX2bN#UFOACrw}nTmM*qw~?K#}Dd`e+#)$Mw@u!_CQb++4+w2 zvyH49NOrN?u-E_lBf=TTyGk~&CgmtP`d_{JeKX?o^R}VcTN#D8ROm&! zW|<-r=TR?q3W}$uQpp1Q6&g6W4mFw(Hqd~UORp%`A%e2=Wi8<3HN8O4fSRB|J~Uq`M%BC zEozEMI%{`LZ6$=eb$B1*Fr?70fLMfduwgfT0yI^qr3Gd={O`|PY_Sh&-A_r*T_1Wk zCwiIhXFnv?z_3R^C0CUkchN$c3p;L{NZP_W^2@kexTX3^M4c1M{lJhlTF0g<{&_E| zqV8Y*HKFqPZ?h}GfR|&UknT`!|NO$1nFl?CrZvfEa`buJSShGRChko|PR3JzPQccb4NBZau~E9TS%#7cmEBl(ANLrF=dcw8Y|8^Ewvehy@0M zx8!qg&w#$ds{4j|YLmZZdj3iG(FL4)yiy$lH>!VzwVCMj>`%+K4v;;8gxs4l^r8bE zp%&eB$PUDRW0p`N)#laP&3V7PGZkxRJr7T-d<02?$kB81TNzE&zLl+(C`%1A1HDIE zuuE^&!NwpFHPCzmWgMqctI%g|Sh+DA!e;1eb8Q>I@JZTpm#Bc>4R(K+d!FW-LmLxY zX2VuBMR+7akiM&Yr)W5*XeRo!(A*44RTE#&MnBP)!?HTmilX3uBO#th`lvLJ zycz$E*UvPVBHmiMdZ9`-|8rV%GY>JdeL)gn)_5)hvINS3^aQPI^gjb-&h2IID5&lS zHSH&t+<2RASpNWz`&VXybIJE>{F(8n;A_U$6nQ7pm@^pdPz7%;jd_fxF55o7`m4@n zIn5jCtzSwf@fj6tkR9wEssyHSalD_Q?A-pa5p85SN9Z4kP48?V+1;7(=$%tc&=7rgo2(xFLZGEnvMzowllwNybqGU^G{(vxX6jaqeKlzA)f zp5zx`wp8rUOzyv`24MW?uXSUqo=UQS!XvU;YXLE(A$LW&OOQZMky~z^E6+b z{TI~zt15Ns)*_+AL^adQ^m*6AfQ;xt<`cEeGamA_)88PgwJk=$MdlaD;he;wVoCQq zjNdfhs87Fu8j?GNPvIu2&^wUR?^HIOtM##u$SvsT-Ix7l#pSe`d*uAb+B@TlK&o4=BSy-Z&#(`c~8Y7d7QubqYKBf7j&3$Se{YyfNrqxt01C zqgd#jyDY~#zbltUJJm?G==|`e8+SHVpBAj^2~P8#K35;gypp5D+@(L#?LFb{I(s3T z*pO{Il;u)&b~zGy0u`0_D!j`GvxnXrZ!z43oJ$X3v3Bg5GCsuQM5yRzLGO{FT!Q>F z_K13i+cKI5I_*^4RYKaHaPwc=q0 z4gSmY!aP**TD5G)Q}Vm~`fijqlK`@UjfB{#MVs-E0!)SyCgi-9`jtMf>ygpp%yd$_FVCyT9l{TSDkx2 zeP=9Vh(bDvuZ$P!MQ7&XE{>d|A*?yKwTa%5sX?qxfEMeTxDL~-TYAcMCo*!jldE{Q_?9H5eu0I{x?@-+KF|FOqU$<18eBOA*Hg9a0$%MA8K>WKUlm?)|?dL@UlC`nI zAs4;eEOztt$YhRfTK|IpTTa_Cl@T&Vy1*SXZ(AXemlk8Zx=v^(jUelDP=ZNSz37EE zHI}u6d3t|LsTcH*dfHMB@kf8XksiR78eQE*;>NGW`5%{ zHD;LJNHBz4@u7y-Ki00ff1_~VO%oEynxKVXpY^kC+UJ2pp;8WI zY~7{ESL;=yUct|LqrK%`LcMeLq7TBsqM@O(ZnjX{u1<<;HcjWBn<8mU=Qg#nq3}rL&mwgHM_j|B z_MhS!29Bk$Y|ra|A-@o$nZXE<&$6bm*7nj(#t zl$Oe{_`@u0RNv*^MkMxProIti)8vUws$PD9RE>Kp#5H>Wq{yzOo!__Z!|i2g2Dh>9$c`Z%RO&5Hph>FVrM zC1flhb7nK$U*ZM!+@~aQct6fMpIREPQi^w+9^o8dKJwpiwkKf{LEalL&NzJiPNgJi z{q&?)T^r;)2*O-)vOLpTnf+fcc;mIM3EdileaSutT*eu0r7>O#G5o`(()nBYA|gX4D(B;B&|+iToRHOFJi8@#`-UV( z&2wY_&@WH@u8g)D8IC*C6cvaXM@wF5=JOZAajJRfLKHaf_4EwXb`avG{%3y?8dwzRhJ& zDVgfXu2jU)E8!00YVMVP#`hI-IlG0g^m9E^0~i^n4H$^{11l4T5KrXZOp6}-yw&<` z{gwzT;opn5Q?x)OiK`ZUuhk;5nLpHfVK78BRH0#HPTdoupOr6u(Fkgv<&O#Tr;shR+9*CCn7{Y!T6s#768A=Rs13=gCcwU`H_$r< z^^QOLR=;!CkD^j@2Oqb!@EE2pLEQ_tB#%=2SWr}ZJZfs9&l_i*7S9JK>$XK$ag!`l zGs%OLPrhUoiw}^)$K10GFEX}8*e!Q|Di1zpF7T*Si1M9NjR2aO{!H3&>7tb<@=hA{ z-g5)^`;p45Y7OkG9t~&5Aix7T{${g{UY9XVmNuFP+%3Mo!tQ7{0pw~?``{%Wm8?-w z`x&FMKw3jTtbgXb&V67vq=06Y2RI0m3dQQ!^VyxiX-lx%rMnaHX`7Sr0AA@xQe&r5 z_N}4YR{!^?;gVCaKPTMxacA0W&Aob?Ap;r6RqzuNABG;orR+YiO!_TvDSh!IsKp5E zccjbx(q>GYw$Ufy%;=Vv|0TrM9*~YZ>UzSJm;X*PRcV(z4ek(HY!0!QH)`B|`DbKv zrY7++Z%m(H{6tj7x>}GQ3GBfbd72@`qeofUM!cpKYEvvbZad3xKR}8@pZ+%Ar;Q~Y z{@GVwh~<5h6Xp>8wHx7tJ@%xP+{T55#S8Jv-HS{IYIJPuHUP2PGh_9u_{oeP0i}@v z#yiOg6Jf`^Q^2%k_bZQt4Luju^a?yF_DQ;sINxh%mLHx?OCJ3Tek|jN$y1$E&(L4Z zd*sPr;=bDIA`-G?^Rs^V#2!CtW;d2>IpUW;WqT0p2q}&v_B5azUXE>IS&S*D*t-W^ z34mXtU@ret$bIZ0W5RH}684nux=>^kI4RUhN~Wz>_e$(N!5HYpg!oIekUNfU&bqPD zUtS%FO`O4r5()q1&Uh9}KZRF2hK&h@Z2QH?WZQ70h9oQexbx1b$BOU?J=Gta;@Z|Y z$4|ET%{nUU9ENCW`t^u$D7f9#{**Ts%z_QNNrho&u}+ie5-yEwPhMo9MQ%EaZ;W+t zN5XVl!TRH(&L1QmH+IB_Nsey*=_+11r#ilC$#xtT!;Bj#^Vca~FT5FW4EKsc_72~@ z_%F$fBiyV$?vd^9(~Ir^D&yDpp2P2Ml+3z0U;QZB*84KU>5yafaeQnKjiIG=A~{=e zr%B^P!YFqha-rc81Ht*# zAX;@?%=dTn2EL#gn65)Ff}^ZfU3ZP0o*jU7^Eg1-*(RXt9nZ1 zfVybkedek+hwX-Cho`|ZbEP;{xBt~|=n*tmNOzMX)-hN7f;TQ=qJGN=3LiN#Y{^%g z<7hwq=xQR9y5Rkm6>l{AJF*5?d&WjARDD6L!mQyYb9y>C)wW%SgNIeV3bC>yyk0eK zI~S||7w^BgK!U>b+X@fKgnDkA$-f+hsbqbwo+@)YK=wOW_*_zEoD1^{%C>j~gqg|6?`8L8kWu`J5)D0kTU1A+nE(PQ zNBN2Mbo8r9&n7;Nz_+s*C;swEF>TdC^Lu`?cU9cC{_W09^{u=)Pgfm}Y9{~E`{nTU z(zWUlVxm40S&6tQl1VO%fTLWG;2W)4=Z;2*1o!3nlkxXWy(~rVnzLhovM~uJ;wEqCuUlF(%%|Fz zi*>KjCgzxGM0q)I<0KEJ+Q>v!M23VR8JhC3VCm@nAgfl8y9)>ne?L9a5i4~J=k*Q& zO*X{^<9|yc?xV-Fy|V$ljRJpcuhl8Zau4-^K9XlN^Pt!uM7+BDFGIJ{`4p+-lLhRT z=m01oH1)LA@puxIV}5wgqtC*EuliXAYFtjZ7O$1mxse!7fuPwUdrd$o$`!83MC9P4 zC^J$0r-^p`C_a{iaWyL`67(@mt%i#Vtt!QwEnDV-OGG1$<-Y489O7(F%J}13RK&Bg z_sY)*@BAscJ~65~mc1`{?-e9x@acIt`e@A}Kfg)u^s{e*tf>g`R}SBW_^W)ixno|V ze|9tdr2KW+1rtLT1CpN_*1hp67X#nz^OskYY=Pqm&N8;|m>r+X`^7sO6QU#2|N9;4 zf6KI^M4DVT_eyYWV5gsppOM)~zq93$2N4<2xm`IzO&d$$O*?LkZ`r~aOo71`imB}( z?C8ZTmRDcx0&&`cZ&jbQ*5@6bOs_P()cBisq90w!Kks=g%E$qaeqHq&%Z_>G+szTX z?R$GR_6z}}K<2ZE-HkW&qD!Ee@e@1I3gz;)MX+x&Amgj~Zc{dO&BG7S)>A1spD#G$ zBF;o+1n?VF;wO4>KHc3b$(h!jXOrCTXF_Mn6#De2?|ko9T& z{j3SE;8{8LqDL>nbdh3cwG%E7IIMNT8`9*yGEw`zJLwafVKTd|pgk|UN;#WRvCOPT ztg!rY4sGMtxuk+`&W5@xDQvtwcpvgICCpn3rQfrTI7Z#g-325OVNMR%GGB$^5iiOe zMV@O}I*n$yN=%wpS{+K9-Kd1ZMy+%ZE{Xza5>SFJ0b@q5kPzzYjKyH_fQB^fOj_{Y zNDf+`%P4o47=Z4*YHfTKpAr1cNcS$bKLR4Pha1YmJk2MQ+& z3nSR_E`Aj6&cA%gmyYw>SeM5+QfiP&0>Q$=4ARnWQxNh} zWAbEAG~V}Gw!WtLDb2#%9F4fhba?BdiXs!@Wb?6W|1tmqs%wpZc%(wH=A1?ASza5! zq$yJXyun5N)AEHrP-(0A5=D>h2?%wcMRGNQqkCx9`NWG`}xhYjm6m#`#`~3)#nQdqyMaxZmrg_2cUsnX~lj4dSb*vJTB6 z$JW~TNHw~ImauHJku1W`ac%}D+uWFE1lHxBdlp`I5##BNmU%iErY-60oQesYshd~= zk5q+zg=n;e!)32FQoNSCx}7{>eDfOLXTuS)msVr#LNKM}eA2p;_U#7`ph1}N*T6QV z^r6ia{{?E7ye+D9pVm%&wxE-?L|)4~U++=@=_{*w5y)c`c4yFQ>IBnW78wUm84NLR z3uMB@r6`0Ec7m}V1wFT-w+QMMcYuK6kFXg#QU_t#P4LNam$EH`9oPO?JJ}t}O={B` zHI^$JH)ZFL+p~*V32Ay2AX1qCE1p=5b(TH9mm``CDBdG4VyyYOQ(KB+xyzM7F8G{G zFco+3(peWV;nynSeI6C%+I9V62044+={8%Iy8009FV}G%-q+QdZzJhusM}sA`l>^n zBrDP3?V^HMLOJ`_5s80E?h6^?hT&6_o8=___G}ejuz7pASaRZJFGNM`*=M&0-Es}c z?w;4uaetY#ESGz~);7@Q_N-jgKv&g70W~NXcmr6G%IN}`zEDW_9tZZ%81%XmQE)Hr zth+VliNSF#j|ZB)o+=3aGNd>z9MU$P7~-z)cj_P+^lxD^;hJ}{&Gq}*oMgvEKLx`rj|xMrb31g|UPpEOpYD{6 zSFzs>+yN+CY5y!CSqR=A`$C{FA#}nQ9M91=%+oT;`JVP8*>_^KNC&qcM~{Bu?E{H<3CD{MZl1bZdzC1zP^{`e zapt_G?N4bMZjR1^`iN6S0Q0Rj1`o(VbWM%du75MctCi;ns)e%Wmpp8G!kQYbsF@+9 zfL%8l`jxvByl;SHS`YT!5{{Ei*M6rI%I@UG-$S$%M0MXkvi48@$~>Cfy0*GDQHoWK zaQvbRB}k>^>Ox$oGPG`E2*)_S%Pe`Z!l_yOPx^MWCBKHeLe!OKxfs+q8NTqrLmWAO z3kI->KEx#!0hTrKe7IipsN+yiij-3F=(~6(7PzBuM5g>e)#T+w6+T4CzQmK%-X&A=zZ}-einVY?y^^L*aP(mj|X#bJuL2%~MO{^WqHCo0*dEZhhpnun&|)CT9`=Z2w^S-a;Q=d};#ig;^7ua%Rb zkLTwP8g}vJ)UsSYl=I;W>X(w9o0K*sb%g*c;Ot#h>$2vy z=E*3g27e_ zpG{Y4&I#a)c3Y}0Z8*Wk4pOBV80G^O0~QI73@$rKV(JD4oxW+zWL6KMnP5WY?AGt~ z!Qd8|yYq#qg*>#AFJ|*t)>t?`F{NTk=f)VPluS2SN-jCXCSws^5(%`iu) zhj^{uy=Nfy`K+{3Gcg00cYKoxv9SXLKj4t z-c0?zt|Ga99IUiEH-2byU4>vcycW}N5D$yq!Ag9uy#jum^JKnzvy;a5jb_zc(BYp9 zu2$(ARwcSR@5x6*A070Y(aTtF-yP>Sw|PG5stX3Nzg1T~H+q!c=VBJ|ufF4raf{bJ zCR_ooh$}&v_hfbQ^`9`FOSZdVlzmzx$u_LH@a|JD!$H_gm1)R0uR9$WzOkp^KuROH^7{?dDl9pwW~Xf1i*;akUJl|% zCg$X|y%*9a!dheihBwb13m9xFqwhtIrvlRqB{o|xUpIVttuDUzLy*ED+j;}5#F0a` zyK74|_eBO!r>k*CmsW@aTO4_P6wuKp+(uMkN`QSD4LOk}J(RPSn7motd>t1{u-TRm z@Lgpbu}h#~0_%$Zm3FCLqRQDKQG@4&Gfy*~LxRET2>{dZgoyd871$G(WM6wfL;8&J zFbPKNmkY3#S(;lBNrTLZb%USSpNh*h`YdPUzN`MfSASdUvKM8K5Xt>M1L*%s$)I|a z!t%8!kWgjq?E;T-5He&iZ05ns05}B)d1lsAd;JC}V$2&s7KLToW44ZF8E7pYgL&6t z8BYx^CC6d|Sc#@U3D+_ECtxAvDisz2%({5@lA)N~_I)@?aVrNoR)*!U2?`|MONe@s zFKp2gj@Q%SYX5WJboJ(^XKwMY+{=ruBs^A?Z&<&z04%f1rJy%h>N2Eob!$m8ZEFGq z7(1{%72f&Gv?iKHvB6W>QLQR^1xxD+4W3ZTw9!(0&e88kiR{OQKa&o)&{!-Vjv2k=@b+F;H%*FI8ykm%F2KZe}jfkFxV*wpW#TUT52lKmb zxc_m}S8m7V$xDAb(~kOSA%Qtyzy!$MZ+j1eFFVDi?jIfjQHDQgE@t1ImIh$OLJk`9 zMH0JO|LCXF2qM}~6H~Gv!U&dDo`uhMbBb=ddZZ{!z;0ulBs^+T$-^*A(+BVhfi$l| zmq2kK$;_0GwF(uAD2Ao`*X@{pG4U#4>Rn@KKqTV92A|D*odH%0_d8nnbn#Y4SEASL zYyEFLWG}sqsC)0rxeJVQ%bf(PMk1|D+S=biJqy87mXn=B{MGK(gfE3Jyw|jmkyTx* zO=vs)G(y>F{{Ul3Em*gD#C#%+x-)a%L1?oYg|s<$jL&6=Cm?zp{$j3;f6#q^)1Y)x3L!bL5qibAfko!e{Dncfk416+9_ z6=J+!e1Y$}Ni2COKN#tPQ&Qls+|}~rCb5kr~@l;fSgqX z$plNtXTIZnI`Cuq{F{8_V|xGAdUmlsQAlSEOOR-n&td#m-flffJjE2VDa*u{#)p)* zGRg4md2$@VPbR)E@FMK!gMJGUk{?zIZCR?)KlhhF2P~_n@FY36SjY6wrd%$+hMpzY z7oZK2f|KA17~vdL+pUb~Q7UK*g{f_yoSzfE8bA3)jk6ma&&-U8LH%o2>Vn_nH^F~@ zLthPNWkpfSY_Hw#zrv=mjMK@(AK{$hRF}GtU6w+8llfIei1lyy9*Y02hGI&QXkI}T zQN1bN(Gi-Og?eUGBscZVR>TAG^n0%LCSN- zV^A*}qXWW7GcUI*@&_^UX=rWf6Ou_bAB%vDq%(E#+4nhaE81-hUUvF#*j6)$!+!os z{+s8MpGf6p;p>w@fEZ(AETTyzkHwF6#f0nd!u_4#%{h8Qz=OQ)YbujAr6Nouhfl&v z)2~mNuaHk@IL2suDx{+aNV2#?(K!4c=ztRbj7Eo35$jmxZK_5tww!R~aS^^b&Vd-a zKItgcP@7`_Udl)tvz_H64_go^ljB6Rv;Fg%+aC}?XBy*ZZ!Ht@3IorvwjoKkQ2bI$ zYc9j|h_kMDHuzNpmc!=}=zp*e@Zl~e)t9fGwdyso5uExAf}Y8*KFbgpI8k;r;EDWr z39O*wIyMk4T#>eXgF`3nhbC5;p^!075mITouFvKULbowjk=q5z_+qM|hP3WVPusnj zA(^|uuj&M*Ugew`Nk>{k(OZJQFk?^H|7cUlRrBnz&T6M3Gwpa+JzwN*L_^-TI{Adq zX)db!AcQMdtlBTCKO1_r*Ev-z|5UEfkSn*GOy(84m=;>isob&}U(r(-<>VGam&0Kh z1*}QSEmh|e$ez>eV1^r(9pK_4g%tNvnVFWLO(?r%^W59f=A;3ok}+~MqJpY3p+8h3 zf3<|!C*&I&xPKX*U;b|YcIq=_COJITCglB((et#EKu@mT@T>&@|rdebIdxxUW6<5apx-7ni#_oy$ z)kDuMAjH?=*&rRvGmJ%wSEt~?=sJQ4?g8eWRy61gd#rzm4|RJvp^f$F84aWq3Afq? zf=fL3OC|p@540&(nkY#lncUwiC1J65)XBP~8CPhGjWeeKxV}1DQ=m&WY^0;MU9jb! zR|)czrot(}#z;-V2`#n{VN)#0N6C4tq!+I`cryCXNXgTb>H%s-_F{?x` zd#tCJJbG=Dkv>KD#*)LXQ1YjxTvh50dYCYa$y=<_32MtB0;Qs-!)>_M7OJGW@^N zTDt#}2fd@VQ2nUg0OIe$6G!|M!84uay5gW1_HPkr2tVXypdDWNPd*0+?UE@hFx2M0$s>zcERsiPGw>li`yjw2@IyMaseEsUkjPo--T4dt_&>N* zj_q{cqCSjtXKxa_1Z$-r3X}4^&X;xvHL}5SlVs%q3JdCGl9*USU*>^!zp7uKj2z!C zJBtDTyGN$Iyq}Q4L!EXxVxn&Ra_t=z zrvX2|rHj~9(T0DAdPYA+ZJoKTBYIoCU5;sIz@h+MXenBwz+Y}>n>d5|H13Z8eNnyn z;TmmF6*fW_Kr*D|EEAhPP76slW}c)`iQYCe!59thYDAngNuTbwCV1un{R~4`2j?={ z$XO)z1Zz64ZipPQu!t=?TD~=T%Dn%$QO3YZ6RrH-(`Cnf?0PSr97HbOhe<~e{;pyj z7xMFC*qG$&&!5$*8G5HbYjd-t3JN#->vqnEe`9H_QaSA<<(R^s6mtJfcKu?u@vT?L z*O?cp*@1AeU*aa?GQtS$;HL?aOfI!}PBzw;+*t5@<1j(A3{9*7p0ePOqORwqd{zJ5 z0Xxn?G@Hzyda#Lg&8XIs*w1G~b`B-9Wrfyw&V(ETo)|w{CURCHN69;7gyXe`9T1?E z{{;Sl5-rzRNwIw>&tyPYY+yYjA9sh>Fbc8CyGC3ZR%4JOpsY$ri!3jHt!!DD1L;*50q(;rwO6Y3u26?EYHns?EF@FF(1dNc(BI%wR-=;B9!U7 zXJvyQn33p z;sMYKI`xM15~AIe)U?y;GqGmG8pImVXWh%4!IfKOJBAPx+zcAPYe}vo_IX)pQDHGf z-)o+w;?p$D0J5sSY$9BJly{t`e!09QU6)AP`sZ^;MuU zrU8tEkJ@=Qv7)TS(NGufU?u;kvHb^a(~*V`DlNla)JU(P)+HDI^Mg>w*(H?+PGIkpj};_7iT>kN&a=9_KgXchbWzh*LG94c7rA=q}3Xf6eC&=L$nHKP{;z zHYg7CD6t)Sq&1%#>E0DRB;_Z5tZK`lmG?Wn;d_}?E01DT3{bx*jpQk279oCCnMiG~eWl=YgT`H27`6cVClx1efX~plVlC1gjA03Fh3FK-RD_ zSYb;@@X4!$VV-AJ;)dEXH$>rn+}HY{w>s|vo9~)o7GTm4qgh~1kalLofbD_rpPq1V z-bhR(pe+=b1VU>}y(3#S;8t6zE%xGHs%ZXT&)lVr&My3_a{91a4nXKvs;Ys+wc$ri zKBzN;{lXc`+_J)ufwrXBI?;&tr>aNFK$0Usfm3BtRe8y?RG;!~>b=F6Sis@-+*oIT zTPI?Ci6UhR5fW$a=i^js8veR zDu2YiDb%!Yy-bV_VkoIZTw+AeVPDL{>p#B8WD!c$P3jjsMSK}p5_^_|tCTVJg(4)n zT&|XOx<9(pdCC7-f3J;$R1iTavo%Ap@H4W)Q4i=+>Nl>X?q&o3IlPO8o=?KgQzJMgqIYQ&Ld< zz^>hQUMSD(f{7?OH@R>6)mSEVRRrO?>>3GDXk;fTz-4K9#KnUim;7#b3~R$F@MXa(nV z$!H2wlzIME_f6pc_F@3iBxDOIq2 zC>hh6kzB`R)lUQRF_{__*|-6T-#uBNW}vY(9*&$fp6-m^R+>_~SM^@c+oa8=rPtZu zZHSX{PIfQH{0Br?@_S}4W;cM$KMcIA>gdni`P(ne7}M{IuNeP)o8MAfPVer==a^ZK zff9!xrB=}Q8ruFHc9lZ;9f$#WMVvN=&#ntQUv=&-q35NixmY-hH_h#DdDbLjr{LE& z{kHUCpG6`_cj^F<{iK>-SMT{$z&^qipLUxc5n}4G1>J(@pKE81r5^Pkb+QM{vb?!% zbJEpS4MvAr!B^qPIXl4+ZVxDtQIyTe68@4Zmmtv{yKUSj!`ACB=_tJmI_r~3Ee_bw z*>_&**690A_I=+I{nh*)as3hSrVHdlRNBdx)uxQb_Jnq&gJ0T6EhH&&Cas)J=+#fk z;^Sf(-{YVHzycVR-bArQ^@bma)VY_;!+mt;79eG*G*~l#g;4En&LX*G>=g#U&yK=| zSQF4Ft+#82i^uGAS^!T$y4iM8s6!L54T?Z`7Xgb-q&kHgt=zi08t3SB#0~B;Z(U)h zLWdN7)@h%JGJwu|h-dtnmdJZ#+z%()+h2q7*Sk}RY>KsNqFP;IBVP75A} zb(h&&szdG+DuT1Z!2fm#=z=I`~L(hO#E)7lvuQ z<(tQls|Da9+K!<{2Vbjq+?>A0pB!x5>Jt(yo;|}*SCEnVQgrggum5InDr_bJNix|r zX*)y!zMkywbG9Z1)}+eOhVKQr&3m9XSG%k>CvC}5yhcem{J8#&BA~FJ5EJxtIJuo^ zZqZ_TkISU9)x2}}eoDr3Rrn3~I~)5ltOo}&R~@BsKK7~wgHs` z@rE9r3k2^i@5It^zHawixS8#FP7>7!@q8u|qXa_S@gX^#TIc6d)0ivHky?SJ6;YIWz_0bO=?UOjaNb~=)BJ}B z)h?fh2Vrzi3T~u}{R^OcF=}4nvQC-0RK%S1H%AcI9h?^R(0SKCB_I?zv7jMJzO3`N zm|Zw4MqwTveAMKd96;S;6*&x2O7dc#UHDop#%GqE%_;iu#BY$H8G7|{;mC>o|3gjSIQjuO^l)#d)sn-2p{TR^sSxJJ11`u0scx?s|jwGv#m2U7&y2_NcDO$x`6s)o-)cT1X~$t=0|D z#R3rpXqQzRc_CB312!@Bmc7lr!)Tc(7tp#vyHamNNSt{{E8!-HxJ0r5GOY9JPi5lo zU1~p)#Cm=@ao_Yl6hm*D_W4GzGoKbA(c z&^6s=iDp?KCbpVBGLH{xnrpUA@P;#YAzb{49P(4s`4fX2q_PER_iSeSHZU(gN5#a5TKMDy)$hU%)!pCKkO)T5ljrUZ6eZy1D#3rbCU)j zbk-!6zs1QZ%HyzW!*_&8$YVZloGIG|(&&EIOCPUsUJ}c24mm02uUGc|;l`BznP}Qh zs`?{Xnw(t6$cHi;F>CKpJ67#kLCvD}rqoK2Qlk_l_NHbjirQ+{9jGcbE6){eGU;6Q!fAN<=_M0001yy4njp^!vd7Uw9bkEt|B|AOHdY^%n{T zK3SUgZ?_KGChWY%fVe3;=py7&Sa z)U&+>b>i$_RZA%WoKjh*>Rn=@m|PeNjzj` z&{Icroz|Y!>NX$Cz{z%U`~bGFtv&=fi)9ljG-k3=dhXP0%xIDPMTY;H2pm_XnEGbR zZS9h6N@zvG8kIehy^YI{%V?#DK?ph3*h`&!S>nfkZ9V7=yD8aH=<0eMO7{yK1}1sM z2CgCz)Bhm@%irp6c;0ZycFJI9KgjUCC7?_+cQRUQUH{@FC?C=L3X*v%8Sa|pAQ(wjVi1b*beUk3INI}KN1*(jBR18dN} z!fe08VUGvPwOgTE;U&X5{Z>DY4*H^-wL9PB4Tgm~t|^*uf0IOFK?km~xeQ(pr9<6%JXzUvVctybQ4}~BORb6fqqDf^->jIVd5Y0y z?Th|=-eMwGNn_FA!T5F#FOBuDzXBzs%OCv-)_S3pGPnjyH@9=!9h5ADrgy(N^rgd= zPSjQF@wQ4x^O#&7N}Vta2v1_e&xSUxB_C+#%s_;JFh+a zuP7unf6p4P6H-VG>bv9=ekyHx?mJa4u4Uvpg{hP8wsyv2T7AjXMEayoeKrCI>&D8< z6Pl#iliB3c7Cl0!!h~e>yqN%U7fV!Gez|R(aa@imkA{XyD>ToVng_sIL|9f8&)D@b zMpFd3<5-}rXICDD!B&qfUJ@H~H>TSMy? z%ZS4x+w^1y*+~T`92Bs@RwNBG1i)3%TTi`|jPOPl$ggBIR!mq(s*G}o|H8f<6iVA8 zL$dPJ@H1GKgStfK_w@_PgK<$QX>=9Q0$9FNiVh1cMPgzD-HxSb+52Ej~O{`t5>@kbBYPlY%Fr1R}amW31x$59g|n z4OKD2+-v|s<8^RE7^#lxFiF{4FGV~HQ83p~L~Z>jm|K=hunB)NS`JMs8|F27_` zWA;Z;Jwj?6%$O15&H9cmPcK-=p0#uaxmw;Orv*MmH}=1P50sI5b*68 zdKp^_ybru(9tRO2P_sww5rC30LL2?C+>{>QC&VA)ZLXSQ0v{Rg7i+hKugHt&Id9N_U9+uVleGf=$FF(SXBEU~Y4vPOgGA1{E%1ooLR!l> zKL$NLV@A=d>kvEG-C@w~jdT-dZP$ghG!1a7k(41aIKh?G#F?~%yJ++d@SPa|(DLM~2TD5( zI=M44Fi2wZ4}|$}j^a_?COI8;{d`+)P^x{Dsztn+k|^?CW#k2| zR6eo8cp;J1aUFx$H>vEJlQPew%RZ{yMR96pzX}Pn<0+bns15aQ0%3jMjZ=ZGhOMV2 z!i;9^)9%GK+ow2};TBR^?8s*FX9v z+nw>!t%9t$Em+(1eN(I5+MN%w_owEyhmqT@RIjqE!kiy@Q`W-xp#dm=WAjVjsjUXH z(@WmHu%3~#?ma{F`tA4ITPvbSW*B{}G7BlBuo1yY`Z7E6C+22r8guS(-7>7*S=!V$ z^)JRxcN1=;nt!T$`HePz!&hJ9INl=TBI?>R=GF2uspM1PIQbQdoQ6RNO7^yb9_3JV1gMH$hGvN#l~Q@f-m)Gini=MZ4gjWH)vUR z48J!xhy#7M3r6=u5j)lYgUY%yxqlb=v^LSV!8&*sS;AWy$v8==IaX zT;7;vRr8F}uIr3Lv*VZl0*j*DR~3l2^rP80h&BAjXT7$8OR+xk{Ji*YAWz4Goewwl znt?b@DcTA~bXIoP2_^Y5I}MI8{LG#=g?rYKqz;Nb=w;8GrUU1)d~mOF&-y0scgM`B zLpjZg0>LlxR~=kjn86L+BsvKV{%@~Jh&#bu;Gxt>kGXrL?VL`w6q(8KVdQ9s(YHjp z@LK&}J_M7q&oocLEq#vPWtAmRwaHSZ|FIa#GW>L9a&J6DoFPzzqYOi!U1#g$a_@!yHvZ6huY?z#$cq$bl@25zvX^{WIpThXEW| z5)tn*q3}C{=-#sqYscx5ky>=J?ZVO)=RjnXC2UpfVWodCY0Ut7!brXrk))@z>a3=w zbct*rjC_^ZanWWlDXY|b4pUlC$rEWH@0p1^{bCY5CTkKIWl~r(sTc-eeTgOALbOem z#lUE)&dUlIvpt0Z?_XBtn*yYOqUT}qPHHt94FJNb9%typkOa}`Df4Xp*Gxu>@f~a; z#JEJ>1azv_qU#+GD?n=ErgaRXVxS?7q$o`)pGzRXf*mqJaj&tM81Om~bQ(nu!3>Db z5NA<3RItobAomY>q8^9AZiF_`F{X)-Bkl{gP67*3L@65$+xJ>?H~OXTGMNJ!JwMbI z+`H_o$A{n^dl7*i@5@M+X#q>wb`eLcvlbB_7ik6LxcEEMkiTpu3eln9{9rCY)g!Lo zzCtnD(Q6u~TI;R7lH>}K-}$rjlgR6YoJ*>KNZvm0yl^HYlP8XKp*!q3KobtW zY3vl~7a3k`J-^Fkf~x+Ia5^;L&cSTM zb_v;Pb--e3WBN_*R_OBvvD?+7&izzqh92sSu3M-U5g;Y3-*Gkkr+bqS&)ZjcWB^pI zjDsuRlkD&I+KV&3wkK?L**mYC@b}{ykW$U%S<4JWrPi_{#y^3h86y`|E|Xz$zGBm< z8j}NoBe4hw5x<-~2uC$YY-V&!q zDTlz00H~lL9}y47Cyz~JMlYb`wE$D+cXJ`f+~~Q_e#0sTWHfx~IMu6EBbWg61ovMg zrOsf8xlr6{mu6?MK4zsRQOOgdTn(u8f?@3{)#7-~yB-Blr5ce~QnwEI3f-KqugRwD{ouHJB;zV7Y!I?fC3gpJ(Wonew zq+%!haTS7JYCZy#*Z`keiyUJaf`GFKqd`u!7MRLic`n`=Jq3_zLVszFVA9aDn&2Xkclnc zk~IQUi@$(Gh_151=0j&JA40WpRsIio1N{0@eDPK(tX;%c0TVDevyF=4)yan|2b&*) zkLEr%RH&FB=s}3S<#JaFZxF8Az5!0hNvt`XA_;D7&zW1XAl8NLum4%S$2zLr_me>6>*hayd|>Lt;oa^s zTm(WWmO;g;v~WY8ksjKnB^M*W~-nx4ow-cg+^ zO>=GJjGd~Sse&o*u#TaQX&P%XqbKT3n$Mcgw%eLJ%H3tl$d5IT$@~@8Mn+HSdelY~ zD376z!LZ+m#LCs2p6?rbcKQmp1 z%njA-<@%obPwvNsOK3ahN+g9%M)gE_)jh9isr8+5cUdJJd$JNq9Zwz4wVgVoFbsz% zENBnw4v(*AbmRXWxzj!yS?figXWgP%MjQJ0Uqvoowz)UyNQ%6!W)fxo%IJGpaf7le za@+o^Evhf8FDZi937MgXDLMN=B%DIRM0zrIHHG!jrDMBc);&L91CDUdzf!5miCmTv z;B$;UiH+VWnx>!Jlz!Vh-q3ie?e35mHW@>>!Y)Dg_$%jD z_^T6_8wUS*URvP|zr&dlvTQPDFG3IW+_?wKVkT1a=Y<$7Eaw^pq|5eqOx>yKO>++C zcs`UCC4Ww~$Pg})$OuS)B8*(l`AkT>9`p_r;>Xp4o4oND&e z60UULqGI!|?%iC5clszn2;+jjGu|HWBFz%(yy=h`URAB%m-g-*Jc8 z**HbxL|PN3HI$&RNlA&C676u@oe;ze-fx7pR=X8c#G9}^gx}_Sv1=l0T0FQmHP3q0)F?M(^q-Pgy`vyf z<6-twWUwn*<8dpxoINa*U&XE`tFLe@*K}~OD$=uv)F6jzBi_{@2axysvNVK?cJF6%DG7PAr7s&4L zG}#qeC^o{~m8y{;^V6@tl|3<`sX&cZgTGVfXV>~=Zqif5jhE0DmFc5F5HEj_c&^5l zf|wLtI5=(v!!de{O@tM3BrE^b_N|OFE@qb%9WEAthdky)s}y$z!wMJ3eLH|%B<>Z6 zaw0PnOorg#zQ&moHIXa9&evG$m5Jv3wwx{^qqGDGz;v#)BD{-KICWe-#aE+mO2j2; z22v-$`f+EyZ9nVA5enXwgM3n?sA&8bMqEmxYRFw5omW65-ESORrDmO1N|!$gfrjy{ zug4?3a5vlB?z7M~VL*-bnEpUT4nw@ION^yJ=d!2DB)5DC8M{t}65f%xEzMgeX-TQD7@hn}hc>nfEU5HNbp7!_aO0Fd6V1vCBa8?u zn&X4quF|0R%0c{GW|HnOKUTchc^G1u^XOoetnf+J3t?IXK~2y{aFAJ0(ukJaOztI$)J%yiQct^maff*J$eQd7$MAoorn zC_6eLilp^AmjhTqL7#_@Uy)pJ^jF!y% zD<&4nknF}E{xmd7XB@R1*K2KKxaSFxTS|>kRE~h_vm4Rc{2mPM3U|zUW})mrC^8t< zZ3yHYYhBNL(D5$wo7`L*S|eB+vf1{rZ+2TSbu}us%Jp=j5ugxwVnkp}Os(>(W%k3y zhkUexS=Hjv?AGMt<7kRr?whJPo#oy!BAL*gfs#?T%r(wgcUH}D#c@4D-EsYr3G$3T zwk3CjL4abpIj|)KIZa>j&&YM8x2O4aq1)Q2wyf=f`G3w!=9y;5nxFckG|TD&49m|f zUI<_TUR7SMEv|6aD-|){Cby=~=z}F$a9cDTl^@n0Rm4?{eRg_{yZzEtX+iq1;<)bE zd?}N-kD7ow34HbwiL$d_*&p>pv`n_>yM2KShiww9X}H_)&Ix)^)E`&G4?zaQHZ|I; zSDy5tq|asQiSs_-eB(i1tzP5(Ds&HIH^B)Zfqz0>4u#IWyxohN^r+tbA@)i~iC@Bq zDKn~&RP9;2ZPV!~!+Pdsf6J4)?7iI^tJ!|KWo%L@{VGRqlhfPMExawAgRYrZhSx&= zxWWX~DH##PLIL0d+ox0ZW#Ya8s4b6V%~Q)JA+cC4+79f>rhs=Z%dha@t_NSznCJiU ze~$36XtaLn$QT8kRD zO;zt^jH>1H*;8$8 zHi$>wU(U(KRbY6>sdNT$HM8@o{>bGol@3Ri)TP(op#v^#AX_te=U+p>yR7jJ0>^cY zJ-&@uDCLgeuY&&+7M5qn#8&oCEeAL(OpG)Hg#$=Fu8=|_=GVrDi*dF$$aSy-NY=6= zxYi&Q3A=S<7&HGGWE(EKF(dh2&~B)QbIkxZWPB~SB@!*q%dqLcrHh7o6N>aZYFGVy zZqUgo?b|-RRUD1?(~Uh>agA@|8ig}W=A=)JLJE**CF>S?J`vgsn}~^BQH=N$lut|_ zKK(r+b(N^(jn9`eb3lJf>6{3CbI^GrG$19ruI+g&-WuD{B^ZFipHZUWzBaPa2*norC`E@?hul)lmN#~y8O6f-i8|$+%n3Ty;VNuBLZr(Z zS6fv(qJ?htG1hN$!LvxIhIZzeb_?Tu$MWZI(DG!Dtq5qzFQ7!4#*p9yC%kRqlyhTt z^$_mJCPE|_8+m5for=okvP5-ZOd-DlJmKC<9nDe25^K?&s1NM{Wpr(eKeXq^Gkaoy zk4+j)LUf*?XA^X!Dfwm?=#nA)u(!4pVZ0WWn0w^^sT?nbx$JleUvl!44xuX?maL;3 zqmv;0Xi)kFX-v;R+0&}If`AaMa9Cs@JnQaE#&efpQt7oXw=OyV(6c~g@hOG>xKC~E z%)cx5cM_-VrdkAbp7O1+*%e@J;{Gy{``By<)+U-%KO~vm-7~ebw|0?e@aN(D)&X0} zcp9qQ=ZK3T<>BKfT=%|54%4UI`I|V);9s#&Z>Db?e4A4%?r}g`gi)gzYvGsG*sNz+ z*z{(nzRn&M2COST3W>2&&wl9Utwq^W0;s`RTx>!6;v?(P(bRQ%dM?jbTzM)2Cf6+i zeJ!)@#nN=r=$ZMxqcbWOs|L@q3ZK^7I}B|e!mA((t!Ls+^fC--tCR(#l!PL-{pZW2 z9JoL>G(S;KQs!;-96tYMB;1i!p}1VeH5rs=$7Iz|RpG|*ZnNv4LJ<&}$lhPwrK!?< zofjB2FtUoiZ-@pmKGTKL>y&C0g$ zd>IyMR2ZiXwUlMrW?ZhxnEG7$I(=|P-VaVuxVT6CB)cfabDHJ)94~3v7Fkh7gM74c zu`ARHP3>g0NCXG@AfIgvrS6wVOJjtFt(r>r$2cl-(3dXFnJ}xV`>?Q z>LX8u5*g?GhVj$KKd&Diy(R?XhG`)(|!wz}@x;9edz9#IB`T+u6H zp46~Pn!M(#ehzWNbz5}!_e^3XjbgPw;4iGkCK1&6dk+&!Ap3L>;)ILERg3S566dBJ z)M#@-u?@!JNc+%h;?9n{xG~1gF2{Cv-`6Xn#wA!zVB#RepUI^1#n(E&0t~s(me8nI zdE3u&?wA41pSk7hE^yCmP1UjFhH)s=At}thsQNP>AEaLW04A=mR2o0S`DOmUR6dc2 zup13%Wqzaj0?cbdyjgi+APYR4YQHU{&*jmeyD%!FkPs`Kq3=LooP@1gBjSDl^ZF@W z%8?&O+xpD?BWH|}s&oGQCcI9XHhs9ejqIH|Rc|!B4vy-&y|m*v&gNr58zc+TcQElX zk%8F78zgv8GhJ8JIiz76{Un&u#}b?>A~~uw@AIFPYA@qdpaBK&a*ptCZpcM&+h9$(8y;1pF{#92hlbN01fgyAq%T%Ogv3LVS_!pZ zpaF%otGu<4{mOdePDIP|{ZqPd>O?|TeP5!zD1L4&FMk5PP;e17Q#+XS!?$AQ@LsZ2()p*I%LfWyB8-j~PUF_31~h~(PAw;D zr;rm$wVRAKZO_F4nr|#T8!~+&#g2QS(|4%((fznBG%#W2yS7H_qikA`Y;6AXs=czy zw?atX0Q~uzj}Kd$b(@<1w$J)i`!=qN?KtD6pXJF93vM~EAu*SRYu2~_NY6i6Hs3Cz z&DQIRxUW|1NW=&l2ceFyvWQPP`KsKwxmCF(Q;4x=2$iy6L3;Sxm!-R!7Zs6DWv9vT z_orD&w&Ns*O}tDGAStjOJbPA0h; zXCNjTav*M9(Q9^Q%44egLbm;y&Nty#7DbO~pX;-BGGJ~KI`^j~VCJBM0*@tZl@eBX zIr1-%J-cn=kWZl<%?wQAs7AQi2&0*SPcf}48^1j0iJ0=Vs{Nh51b&IwVM(3LRFB^? z{L{gq>h{OC+R#jH|L)~)Z-Pi08-L<6-pOmvi`VP*R4=7gLWt0u!_^9PMpWvAddY+v zLF)>eAl@e26+G*^aWHmt`|^G4PXbvR6CZ!#e~oiAA1EMbbXaW@`8^l{5gT!5Rl zi*)YOX^XK&Nrd1}y<1`@+8h2nxqzFVi@qYcrx>;D7&H!xf$Z)5KL*Fu++(@E(PJ_q{M^Wt5x9s<$q*41iv7K z#`x6Rny_7v=g!uLe;UFcgg&Qk$e3?e3yZk}FRlKlc+dZFAOnIR!>JRd-C>0+Kud1C z5%Kn}bW?5e^=U8&N>vmM<^{&Nw?Wo#OE7Lwu?UL&WfwPt$l6u%@UR}4h_JjKo0DnG zxz(%fDpKk=6l=RH;i|9Bi}L^W6=cYzEoj>@siRMx2)xjS&q<0iu`qwVGFzk1=b|Rz zT8{iGL2Tu9vNdPZ#S%mKYJl?NmQNZ#TdVPB0!Ah|NuHuw;Eiv+Cvje}?4NHPqA!=< zw~VqtNXACvsug7M4S(WYX;ovaIHy0?qcnFG$m%FJ~acYS!_! zpF$%E>;@pLgD$`c`ODuR8({27jc^SzCOBabh>bV5qg%wB3i%k?j{Xx5Ze(zf<4qyE z(Ovjf<~&-mL<@I199BYY-s_dA3vv3U@1~wuhxkzbCE%&aiZaHTPa)v@m~FOj(5Ls& z)}R+>ExR-iy95{0$>cqRPC7he4d0Hl`SVEVfzp3dN!X<}eE;41{IUPBj4A!pY$6W^P@9|ZJY|5hU&!|P;lM1~jffA{gCMZWw zRf7eZd>-FoKp8P&kk7=R%GB40zT5y9D`)McLN)nd6Bd0_4&BYXm<(PSX3zDc-84JVqD9Cp4t?95oAn?V$g0V~YC?S2H1%W@ujJv@z!~Zd+YL7OOemJ2 z>^e9Pqq6)Z`IM?4_NNY?CM_KE$~?xwZx*%+#V%p7|E$c7$?G)dFrDOVK;DCs5=G$2 zz;xw>=g=h@q~$bD7(}3>Qu%_mhLn2Bj!MmQ!oS-0$C~EZNDaPYG*{HgVV>>Br4L3V z6^mbM`)hm2L-`nO7z8Zd)iYJ7!1JeNAgV-=eu+q~bx5H^6qgFZ|A(97$6~ZP*|4{} zr!|3JXr0c1)R0z}s&jXgDk1)MBD%t399xyNEMz75jU9={GxdKwpdVenjw=|dNW)_O_3nlQ!Ix~9s_PmlwhrFlX8LAF@o4unqCJ@Y87P64amTV&s+x;>R zJLqk%Trg`cWJl?TYRTe$+;;v~pNJ?AoMv}feV;Gxu&rD@RkU96P)e*& zV&fALXMZc^B#b+YFJ~e*f8K27&h>fZG<=PBL!Tz6r=0Rlh3Yi^`KQdlw|jPIo(i>7 z_fHOlVLfdbmV1?Z@T!7=vZ)_2r;j=5YIC0UU!#!vBE1Dsl7*lMnMK2uGPXE zAaGA>7u?LivV$*9pr)FRAU@gWVfXTSf}Cmj&J+GsUplDWp@$rxSjXjirb+tO<-685 zp#3=h*ZW(q_m8hx&{N#-&;}YAFrVo9oO|>`wd(rAz4^EuLYGRR=Tu;0R_LBqfKtr2 z9p2J-S7;efu{S-S*akQrFB-D|z0w)#5HxBC-$ETSLm?ACLeb)~-7UZFaVpL%**Rxn zs7%b7h5=9e;Bf*pgETs>fnX}L;bAH*LOQH7Y=S-_Biu0~faIp6ukhIL>6A=%VA-w^ zXh3u7|Gg%Efk?=APPCP>b5rwMp7Ng4gta~SlHfK+AsN)9Jzwf`uu~R-iBXZlu%*$X zPxDQ&N=A1qwMTW?|D~nOgIaOGW;F-fx8eqlpZR z!wW1;_a|JOyu5EuWMCxCyT*w})Wtx^fRUhh3+m?BK(cMcx=7jw8DCWe)e z9Iog(!Cr5{CfRvKFr`z_<;C0z}la0@pJ(5V*uV^WPFcf}r@MRk`1b6ns1r3U} z;Yqs(dA_N{B0~=q%hd|)&PXE~!NZmBd}yS!iV%uM5AjBgxSVl4_Flip8_Sb_L83zv zjdKOvGJ+p!q{+(Cza`)zHpWnT`Pp@v%s^UpzWKes1dGs_&l9WhL75`ckT14BlGg+8 zUOgtO&hAY-xsopwGGelQmsEP3ctf!)if>CLO zy!DL3!7}(Pa%n3=SrE;iuG;f>{CNJzsbt`ZK`Mdc2rU21ErCYE%&ke#O&DywbN5Xr zUbIUc2PfUEQ2b0to{*87=Km&{8)0Q2(O((YSgTcv$t zKjRnCcFa*Y|Mgw1!d?($L%~FI&tXEJ%2!9N?aD*t9LFz+<1E@7%?~%QLC~>xE?x47 zkU=U-Kj5iI%{SO?(5Ep9$(tF?#s6INo95h!N}zF_{`tN?Z&WuD_%N+8ccYjVC!pr^ z;;OkSa#{!?-wB0Z*-MQBE3u4}I-rMABIp=P(2Gg7yVqLMzkaU-O($A-j#>^4T+ zv`Nk9+K0@PyWOKnZC1=h!phr-#K@Hb=$0w=Uh_sbw4>~)2UZJ-Lt4%at+OtoaXB{`|C%4DtwxgrCDLZddUqECo-C<$T@#MB_x`pn zItgDB%;GB+>wKqtZP((uGbZW#!4VR~T>GKZ{w^)G?sfh!fE3LRP#8tYeKRX%KobT2 zm|m_|xm&sJMd))Za@%s-_IU#~dWYr}V$JEPPrh{HZzy-uZYgf%ZWX1{PpV(U&1Ck0 z!$iWanJ|;G2GL1?gZ90+Ke$WZBfRGyeotlABey>N@PlJcA=5q`;7_=*2B7ECW>TYa zzY4#SuKm&Z<^8E!4m1GZLDTUvz@UGgbFyH|=*yTPL02P-X|*D{M40Dl+<2JlLHf)5 z%%4x6TW=V1#rP;^y!FA~m^C4RgCf{Kq*cB;PDJ zKa^jLdEHT=SglNrG|?j`o%#8%80|{k;fm1?iWs4LkVWD$OV-C*{k~$K`)0(HFJ{a2 zl}Bb^?M3AAGwa^c?X4}|yklkd<8f~thdT$a7U^G6wwc5%XB>R{ONC8^0l_< zJ-&}pq|#;x@wd%}=CT&O{|zXbNTL%Dd&?zkq)z7_F0a}LNA@--4sS#M8f9r6pBO$(VtM_o7}|M7V4CAw{0^2wSa?Va}5;f|KL;ugI* zWQ0mZo&-JKZ)GY-aMb9Wku_KPn89mtK_EyNdXihmyUJ}Q6WX=gGP=m``|)4QQ-oc- zBW(vRJ>LpM%H;Bc?SU;AQdp}16($fVHcrey+fLu1*7>RC<{fozg@4#0xl<=vV^^>V z53&=*NOWBNKf&;5RzCV*h!VyWNJLdxxbhie@_lV%k_*%`Rez0z-~6Uc&6oIRt?xp0 z5bjj=j$bWoP4N$(9jS1?NWxg&k?0CJU~=i3e`E76))S|U!hz1}*T6wgsW=O2{Gei6 zDH-w~gax3EMTdq8^8-OTX!&tC`&?t~4U4vhrFM`pdY3amXVNTkOC~kra8u7ajhT)m z#T?#B61=XCs0qY&Tj-8ZrZ*gEbjoDoPguzU6OFNfS)rMt@}i36G8MSk?*&qp3z9P< zB=TaJs+s0*$?HRQ`e!)Nvd`98CZgx>lPyJ9!P8A#j;gfs#WLj`bdumsq7iRH zFE~Uiw-geKDHZ0OY_AV~m%pProoxA@qG+e4Gn0?K^3TFFIT=XapkKY;sD z|I4v_fY&JzC1JHfh&*(V`O&rYG|}+^arv%PV9v|o@|UO3|z_?r(|3I7KU zzX$Q);ClBEJsduOWNiHy;Er`jx4$I(f`!MU@|ZlT5D<%a7vdK9FaQI;Vn@6_!47 zIeiE~=OB%vjT6!SyG&KRbNMW?K6?ha7l(jE*;Ig{ zYO%DSuX^0HQC#b-ZALhFSY{}!N7266tE&ES(R_)=@y?O1%mN>nA3aBh`Lwk1hf{lG z{tTkG*bAfk+6Pmfu3nB_dQ%C5uhj*5jXA?wX2stwnJ(R*UMRFzTiiz!Ca4_1{deqL zTJ$A$b0XcBe0~|^YFYKql#-$oov@!zUQ1|tq(?b;hD(cQm&Y?M!?lXNb9{v(ffJ zz=WHP55}lw*aRfu)i~MAtFKBGxM-V?dN~_-3qTfEawhD^Id6zVk-xK#a6G|Z(w&!eO2hV-i@ADximE3PQip| zkqxQqpM2)5Ms3wTmEq()YuaA7RV*z#_+qZ+1_^nIhUYJIJSOf?X=8@TTCXuPdPVwc zHDBBMe!qEX9>5ECgzp^epwR=gR58nv!G3YdhPH`;;V<92_A6#W1YSEWEu4zwsyFGh zouV@4?Wt{%bl%h7Jts0>wRk!j*L1-#I_Xr}FDVe&;x~JNFpVg1Q-e ziq516SDF@gZ%Z5Uoa%h5hLx}pmvQ}ce|yie!;4v{&6r~3KQvTqq3xE2ze9Vir$c(^ zUw_JACgh9YFpz=D&HKI8dX+Xa6QJhhM?O=Z?uP?~I4x!NW_Aa?1 zp(3s&z-cxx=O$ay)|av}W!dN2d|#*k!|sp}ntQ8~HwN%TFcq^t-U<8*)EZW*x4WtQ zZ}modr^6T}ps>UPv$+-NHU4nkBJ!eK#$5hj%hf)K1$^`4bg0KUJpe4-f(=nUin!h? zp2tyDZYHG(&xkk?zNhWXjpJ;4BOCK6#Pf+MSvH@K%-q*$G%wQ(@cwy{q#S=Tl9~nO z8uKOshHL)Y1y~@3ilR1zWZZn(!|b#dC36mMa7OZ$t(kkaHJ zgMx6O$J{4OD|G=)4W?Z5b5y8TRM|bL8?(m)*!U933D=KbShhYWUd_zMwMrVsqjRNu z0O^<}b{6v3>weMmbVADq=uQp)lG|}}YH8;nIt4mM_rz1;CUPcR<$d0?9ewG1$QnD0 z;D^LlGw1mY*_cUuSypp>G%M^DE$vy2`2zA{P{Do&vN`S%QGZ7(eP3`J3(NlKaER5* z-w9>OnE3|kT<}22DjLCT`~9oF3$EXW!@6QpJm=_x0>IwYQ$=Rk6}l}w;`u+@KS7=m zt~1_362gC4Ca-MtCC@ikNrj7z8)zozFEs36~n%)v$tm^CL}MEv{!c7hp?* zi81O$Zmhx+yIWSQ2C6WL8L^D@3{(iwlVvGSts;6$!0S9<@jcF9);EN-&DDs-c<`(Y zQll{Z3Y|;i?Gt%w{pxE(48k^>u%m=XSyeD%8zbqx55DC~{%U1lT|44SSCq}`gWC%Oa| zv1cO%1tC=lPBoG~QY9Sy(R=*4dBjZG?2xC53k!FJ`!M^eBb7#uPsA3qyrJapm0zZx zOwFm4GMUX5MNT z&hpgY(A_IDhY+MD;n!7>0iw+VnFJt?`x)A#>GQYh{ml zD6E3_TQ`v~FDOx|Y75T)DVf|!K3oY9omUb4A4O*!*VNmF@zLEsnvn`h3rLqBpdj51 zf^@@Rj?pEJbd8iyx(18}rKL-{yStS4y#Ef)K4<&vJkR~y*L8hw0cL)0tw8L&FZ+$P#rPppr>RN6mdNMYqCXroT8hG_B2T&X?iJ(Hf z(Pv>|8{v42t-E9#|LwE1s;)%`*E*2kr2`-wr~=@5d<@%)Fm za_)><t3owaau^VaJ?`c=rjhgGDMyH+#)27XU5&CaeuYd z+yAA@L3Kin>*Dyh(L|2rdWs#IA-_qO-ewF>2Jt-hEMjYu$G*{P6=DUxKnGQeoj!Av za2)s$12mFaSx1KnG}wu@NFi_pWlQ zkC=eC#}ikuSForgVfk5r!-0Imn}d<_l2j(+CO6pm8DPp@Q}8F%6KsH4ZK++9=yA~J zK9|DEc-7_!!{6{3xS2o5cdoxms?4RgrO9RW?}HXxcK6%_V$JlS{P#Wjk7_;iX6*1}el4s`{7Z~;V5U%{I_CbjfeKlRVd>6$2 z?t$sh&9sl1i;zscxE&Dh?5}z?7l;8FBI2E93$ZiKzxx5Zq=+I{-j_KwlJgU z>^s_6!64+l=$S4i6|uzRezz#(!Vw5Bxv0|BV=wU^i{@Z_!ZpFoN4jehn03@|X&?RL zS-N;3b@7ks)k;?MbfNtvykxc`B~FJ>|Cm#9l8FU@F78#U$yZ|Xujnw*vuKS73K+s% z|3P-g<)!T6hj;_Hghfdq7hi69TV&QRm6|yBSMT0Hc7}kA^S z*NGId-~$Sj`O1#%EMD1jZp+lOvco5p!T2Mb9YLA>t(7g_8(>q5U4QT0(RZtCH|4!O zwQrV|yYSGFywveohWrfp_79&L=e%tWx5l_(?T)h@)Un3HZ>WG2hD^_~qwJCLw+fXX zW>0z(bqR7%wh@-L!As-a$T6fgfd(<))Vs(>e{S|tD#XP8ab(iU~<=`q! znae`HnOQdyh=cxTHn4bL*Qwz%Q}>Jli}Oujmv9;;2KJ#Ie^eHqd=IaW<;43GL|}ux zsf7Y(XsrJi=FFyEmt+tSVwegPU}YA5%OUHA9a}kIg4`6Q)s!FTkF9P&OMECMI^-n| z{malx`89zv&+25*N`L=I!$J%YP*DVXkL?=*ce)yQMKd{K~@~wMqJ@^EFWxUSqz8%u+E@)y=gahqRJ5C z-7ikh6gXcrTaAMl5;}iYRQ2H4WYTG|g9;V1Xr9qy+6|yCFhB`tx_PyK)SY0@(5c$w zTTtojbpEGqAc(xq!uIs)2r(dx``~*lO-TjaONpc2+%TP1(9ZhzDtu2`v$|M4>fN`F z8_8HN3nbIWJqab^F_79vr=(9cp6(iu=|3tj9jvCR^|2#VdHG={8iRy zgB1lSl2*;LNI}d50(El?eL`1;Wh^3~R8B(uN0fRp1=Dv$2eIdvDd>4z!%l(18W2c- z9HaDTsl!A4|LlTIVWMD9t)? zdwM45^J7k%(e4E`oq^piC~F4ZQ^eB&5aJu?>uuRk^&*H{HkHTadM|PTnph>3F%f4q za65L!f4^`#i12eTO^|{$dOv?Y@-tTWfwWNV-Q_OTn?m1U;>hiZEHX+^!ASK5?tF{f zPPfTd@s(;XXuYvl^zwuKcqy9xe%qBHnkaD53 zL`X8v8_&1=W7URoM!Wv0h)bO0p!+Yhv274;SIp@7j#kl|40&6=U~dt=NsCmI5W`FV z6nu+b{}5uA0ih;59)KS)s@xOKh+H)QKSZcvS7Ks;P(uk2{%LTO4gzYHCmA0rhWW8ZrehVNAmJSb z5*IXd`@x!@**?%?%@xnBDR(Av>aaiA7dYl<0vX-xuvX0*8_1N4Nb_pwSVBbSi7l>cj zee@IHMBd$brS4rHA*FPPWEe8bjo(@Z1zh`fuk+?PwQ-%que6QYdfIWyM)BDBgz_Vg zS;B})y%!h`7hELvzci;qSVeCm6iA$Sj2n$SzE6fT66?RW1-yQGF(>4sn`nbw`6`sVEI8RWuGF$Y3_ha3@UQ$2@J!lQa`DW9(R1l=Lm> zG_ogb^8G|ak3(~vutS^kotc=nxC%@m!xBpHU8%Uy=$I$If}wuVUd#@bbjf+C3@=(! zohYjxIB!dp_$`uoV$`e+q@fbcG^nCDXw4LCI00SXxcvq;ISA}=bm}Z^{B2lblc%hE zuMJM&D}#QHA{xhDZB?8(W-p|0%wA=GhNhhM-nDN7Y@oIyNSouG*%kl+Ss#jU=%>f% zge{ySW&nK4*20g%KK-~V2J`2D=gtEL5DD5c01tu?6TRL$S8{VvlUJ?EuunQK8Z%vu zX?d9HmmU5z-uAAgXg|*oYqf-J2pdXYR=q20%#6q1UW=WK?CxG0UW>IZg4=DC(p4M* zS1@L_`s8q)$*uid8|F20F_MOX+cv(%^0aD0tvLU)A-2UoF>x^xE8VS65tFcbX%h5* zY*Yuf3b6*ngCH{=^*ALdj=3uLZHz>5!!zCSYV~Rr^5ZUPL?*?H9Q}(R#K29zLZNg9 ztQYV7w`ivD-nBC&TpO2~t|NTO)%~s+auCJq3At+sO<5DcrB1CKH~>_JmFU>lG9Sfu zuhMECzqJI2>M|@p8xim)cnDCrQwvgF$cjy6y1KuK36u!0PLK>+Q@wto+MqXo3gb?J zlN|MKn_r&aNd8^3eud269Nv2dm=SK2;7<~n z$sQ~F%QJje=Qr7Am_+Nohv>sC0R&Ri-;=ghxAdw4%C^S5Sv*+aL4ZOsTK%Au9Z>w6 z{$u@Cjp>y)2mh&TabFAJ?QU&=Tu+ z1#kzp(JO?g2^5~VCNY}Z_2(C+Q1kKB@}FN|1mOd=4u556_ z;sAiovkXsmEs)#0yrfybx;K*O%wrLMzY&j6l6B(2Pmw-ujhG|2aXK1Q#QJNxHPKvH zc1hDAdjs5}qy<`4W3L-4Q$U-ktw$Ba#cZ;&9^Vvet4$090?I=Ub|J3ynF=E4LhHd< zxbBKNLZIm4qz3xQu2>?p(!}!rc)6oJo`VGTKK{T4E%jleHEZb)EU#;zD8 zYnGLwmSWaLSK=7M6*rP$Mwjp^oJz4)90)ZP2{TP?V(r# zhd;yqmKVrbMB1V&{NL;o@s#2_y*b64{plV&VL0KL5QfNG0*so$vdyy|8f*zEy&P}e zj?4uWQgN@mv@e>UQE~>ieO_NWc~zd>uF{GtifrRCrz4$eOELCD8%WN%4JSwcX1hiS zbannTOv6eJN@l#{0?)czR@h$CnLk5d5jmYd8jdFT8V!-Vo#n>o!dQKmLvGoD9#RI-Wtn@_77T~4 z?B}ETa%h8O^@mIFsahBJiYOh@nd)Q1iFz`;1F#L&x&Kus`*A6~_U27D z`|~Q;7fvx~E%OL>ar3hi=Y;vZ@zf!4WdNN16zNOcvQn8?dCF(QYF!0=`rDL5ZO2Y` zIpiar2`19t)$hSOkW?2X0OZ^zCrkzaRqyT;_U<0Cw85&%^|CbBs3_! z@2i}NEH`$7UV;HinVGJGng(m}W{Upc9_?f3e928Jk>>u;`*aVroEyA_xEM zS@QV6=Qksmo6aS?dH__)NZ|40Y2&FenjOSajlq)eP^=2FX7Uyp3n;i56hb3~TR)M4 z#{*+vM82M@mb-k&N``UYaH0V`aAS;ll?Vms#y_Fe_zyGfeFUyt6@`y8?!1#NX@#vs zmpzw-1RB19zWwd#`8A|eqECLy-K@jeEK+{1W zt+SqFpoMi?Z0P5ZM?gjgg!BbFaJ7o^+TdA~S3dMeH#u(W3MI1Sxa6C~Z6cz`#Yf-L zpl#OjS~UPI@Qig0@$u{F2ta3Q0z!)8uxeDJcj474n22FT%|FS(?&qX=TajQI z{Q-NK^UC1(P>p7f7xCF!k8Nmy+sASP;syr5D=1|kU5|A1NQHL0rQTXb8{r&nPI%0D z1&m2$KhJ)d-834j$BhFh0wT-TnXX1sc1@SEG3&bBv^|DG2F>f z)IP8s`bQ6`U+p(6=>XnllgbXgmzW*-qN5Ku<}wX;JLqv6C!JymAK@EIOs`rm9zC0D0ox;RMl#vSJ-F3n z2Q`zAio)XotU;{s6QQ_Hbn5?sfUj%zM)_wzu8XR?6BMH|;~$ESvw&r8ahvaXHWYIW z>!k{8>rxj4>c|V<2ef2B(1BF#l_dmc%geloU-{%`2O8^DEp%in_owE4=ep#rz~6I^ z7t;p()SNz-ADGhTSn~ruo3_E@_%CzwYIWb)Pvn$qH4I+1x=StMI*fdIwpt90UUUK)VDdNp4TKAFw0d+BV(I&T%QMmP(jPHx327xc|K+H`&Mx zU@K4l@yO}F_tPQKh(kSUrK(qOyae$BZ2~%%f3rc^fY)+<-tMl>?4LZIexgG7Nq5S6 z^x+fF0Hx3$*h=N*)$Y*f)!!9Lr)0J5sg$;!-vM~%vb_F$zf>q4%l&aDTU zdKS+w=_8Yi4T88HQ2RZR&;tIV_?X1+eD*l&Jn;^IMUJ;4IW=3bx1AXHD#Dj!f+N$i zklJI<$1b;>(Gs-6I zEC9xU&x#}enIky=Pt(NXvm-n2%Fa^*^0?7yut z2q3(SZRbXorAjP8!}N376?lcDBiufLrV!hG*T>D^R`B#6F)P?t-k#U3$~Vg2l@I}y zSF6Bg&d!F@Jb3#X%^e=Kh8WXOGG?N8oUy)I=JoD7-OEBNg08PIy!-xqGZB{#@{-583Bsv(I>XW#sK^MoqCrK9OyHZN`m(kyjct{*9@Twr2RNs zxn+vR?e(Y|#tbz8$_f~zGQQ`t58V)PfsEQ+>Ch;9GJFEUPe-h5!E93qp4=?7O`Hl} zPen6#DA7pP0FUne$j*hjY|5bN!NxjWxNZE=JkHpr>#p&Q{Q(ZKeH^%vj+Ca24j)$C3@-pVK%!+N7hs3 zXA#?U?Jo<7>PJ<{HS`1?SE;RR$s^}3+Au1MAN+R;_=sY48&a^qh zNa?Sk-31y(BmEsG|OlOWE zf|+rZNoXv52+zLSMDAx957WYi^h?D?96PmW!9Cm19@#O)*@2dhG_`#)XmNF?P19@7 z!|GLpE4#47BtkwUP9{$9?1MX%j@?77qVct!k4@4*ipc%JFu+ex&TKtuJpw=oN8-{r zn}cmZ*)L5Z@f#2jc4w)2h|tWioyhx3He1uswO5e+@am|?Aa;M>t}28FU686#cBXN zY?UOxLrQjJ`QGa9D*EpIcP{@sSBGPAU`E~9&*`ii&}h4}-Jt|vs%)7(&I(3jsr~!! z4Q=u2K{?DLi;tl|{Dj{>{xZC$EC%Qp8nxG7c{<{7^&$Od zu4+_Q(BWZEGKK-D&3Cod_Q9=@UpR#qmVR5cH0xYRT#;UlU3%$4##Ct6t}GVG*mXYc%dfY zh7mZlj78=YJt5yXUY3ck6ok)n4PQ7zB5H;TeHgrjB%`w3Q1$>{$`WFKp^9)dg0HO^ zz7Vuk<^w{T!K1UKBGbZV!kJZBQAAbbxev1<#rly|lI9{!9`-6(F7ta4s4ty>C-(I1 zSxQ<*uUT^?eVxTt0YX|A%mDJ$v6mb>B~3L)r`yGaF3oH0WWgS5kotQtA;5+Oy>i?q zJ!j0)ZW8zcrl81ouRav5NghtUNdzpFoGLOAuR%uEs zqs;W*r{t>>UI3rLOu@(4{i}l*Vo$Z>QDF-8zm1rn!pF88vZHBiedOT@h_lc(p1aIP zHmEW!{L9_Be6bVuG~82H{zT>LV%sc4QJMz3&mWm3T74A%DHWgl>0Je3a zkBrTq$;N42_}X;US6i=I)VSH-T#bD$Dlg(Fs+V?ENA~xAIs% z4$Q{Si0p?p(h`>E!1How`4vv>&Jnria_F`(Rl^k5*8wUv6RHq1Vdr}t~ys9<#qXX53tjZWo{o1&B8rsh>Pm^qq?r~(#t&A9C4P+;GLP3g@} z*cBt|j|r1v-1+X&-PN=4(0D$ZKEMmFCYsajAUt=)3bgP^HCh zA;}!75??dMaapHQcCuy^XNy`uw1AG;IA*+ULWb*n3d_GkHpK2(y!%Pp^Jb#%XGQ;8 z>)mzdy}Ln>YTEI-U8mqL1V~ntRCm8heqj!vuo*eKF-z`*wkh8{C7|=~b`SMJ-lZ{_fd;ZiYx5*^sO$0c|8JPh8IcMFWQtv zUr}RXQ0&gitNaLo_~u&UOZ0w$v+iSWuR7ar$t_H92Zlzj(KaVA7{&$1NwuyNd8^c8 zZA97kVOk%$k4om(%{Gi^K^ z>7>T-^CBa+9D8`8%exP*Zv?Uo+O>j>Twa?uAcfKKea+x;l0Im(NpDQ&E^AMgjB_=gwo$#ivP^ML$Xq z4K}eWHwSt!YCOr3zTC;kkSk&6ZBL<>pE=y>N9n*tgE*zr9D>;TKcDqYOIt9(SfNsJ zOY!)@+sbSdr&y*w6=!V3qKl?2g5s3mUD< zz~1d(#zib<=G{A9=?#}sTPi5X_GYfmJ&3c0ysczVOP;hED$E82Q7dr(h{>9Q7ZCG6 zoJ00#-f!4@EXcn*ci8+!)&AQ6J(3ypx*NUxZEQ6wZTo>$*D|DfDuMH(!ro&x5JL7y zHRSSPPemxCQ&xkJ?RbrK*=ZFI;hJmZlNIl-%9)Sk%qR|&RXFn0X7})iqo!nw`nEIi z($i}xKsw(9iy}&|15FQtIyjHJQewn)N?3*R(4{Q&f5ldiXt=wTglmkhtJ|rCA2C!o zp4hj}^kpXnaLLNciXa8;-YxcLGpvLaju}c3!8j}XBTEISYv;ChmJ|QXOTC0rhp_1r z_wnjPFt${XIXUNyq@*ym@NjG^Cyry-VbYsWTw3sUGk#aq%2?6BPby%qUK_5du@8Wm`J)`*jQ?OTR=tK7V!autej){P&B8g4imcuzaon1CWxQTc^v4P8RKxqCC zwYa7v-l!}^hF4=rqvk;o(i$X7aSq6fhhGIh_AriB3=Gc0;%+iJ1q(mCy?dk_Pc$CI zFnUI5f~gc=`UA8_!7*kTJ$Q?zF_;5i~$LP zr_~tex>?Z?9&*q11+TqJ#v+0Z`VbU{80ru#hkaz_h%#1N(3myiZ7>0x5xmB2T0fGJ z!LH=$G(O}j>GUaOIU?oGM|ZW;vBa({?U6bOcoDM+%LZvVRYEuoZzS@tgMht~?;S-i zf{^bGJLha>l`&&^1zXOJLaFOmeCK*@~o69sgGL1$wW2h&Tjvk zqz4=Vi~HF|#zyVVcWOOB5jzPvfsF#vSBRIxjn3`Us2Ptx=Qunn^tk}Q!7|RBuct63 zp2hs&G5?P#4*|k;;W1zH*V!w=_-}+Q{ z2-j_K7QTf~Zf9+Sdf19em~nvkemgFcdwb=D^JLcnYAZ|FyzzDrIOAH1X~MQIxijJI zm3O@lwS49x6zY75IToT?bDps6rj$F>rX!-#0l4LfJyf{VFa0<^8e}#g@>H{JmWi9| znnRbM?LTPbq27Q-XJU{o`l*3g}5^?ynR2&ca zHzo<9ycEIXV9fb^!<6=mhE2--r?ccn?Kq*d3AhSI<45BexR(*v~X5Z`?&O7 zb3Q8D4xV^5DsTKk!=Ap*UAAd?|eOE0~cqG$XC5gag3DGB)w1iZ+ve3s0V@Y+rA56x7sf z|M{*{91+e>sF@6ff!q1|n0|!GW=tgYn^Boh?gRU_vy@}KNd8U0fCVU_d%Su4lzqrt z4o2ZH_mJ;wRiggsN!#piW|JIT%GRsGKMrCkYbG+ER?(NMJbIEwvBvfj%qP=#rqYR@ zDPZzuC702k`z*36uPSsRn%kd97IX};GRohjc`VzO-x8po4`l%>crOB;I()euSy#qyLGWIWXol}*CiJ3 zF-rvPw;!Lb&F};G90LfP;UyK>Pft=hXE9q{KC!bR^(0;?=^IQ=8LmzAu-p}2IhL;- zCHmJ%dq1;Wtw3YD4Ayr$CGS_ddC69~1fbqw-rr&{&`)!Gk`18r2vC6yPjT<#91(2XZL$p<^$;a1P@# z46W6yl~cZ34DGE>J43TR?q90Y^laBon9$P`#$Q}$%-@MErrwTWY&Ah9y=hMNn4Gs; zrHPaD4;s-Rl3*!B0%;u(z!#nU;U{s|Ejz$UsJ>Laf29>)u|IL)?C6LE`ZIa^{9}(> zay`M62F_5UGtedid_n^-3OfJrHHF?jQsPa(&DD2OrZ6g^$2a{Du`VxH;wj+uJYIN3 zm_HBwuCk#h|IOmyek1SDc72*lTkdgL-E_m2%4_!lAxXSW&~Z=QJ9dJcs{iUY9kX3C zdBF_UqZ?^sT)Or{)^k*uCz(l(mlGn*Sd-D9;K&k=)JR$J(UPgK?JOAaoz(gItGthM zRxpm=-Z}9hI|rVE(#LaR;UcPh3~HO;D?fc8m|Tw(;3&xm*GI!S?jBbh)2=7VlWW#c zQN#DxJnQ=0d&|D|_SXE#^=Tp&vC;~W_OgyD+-O-#5>1+lJ9Jms#uI8*Jhe7y!eB2V z8JTMMyF|B-=jHZxb=dFqZvgABbuQS~>ld0jthoCn>mo`bHzdu=3%rOu3lJl5&qK8g zY_^**yn*9y7sQLcmB=O}m->W4nQGuC1xpb7iH8}uHFg_avg3r3JrTg$s<;&Te0Nb# zRP0&aTgUs{P2A`bg3RyhFJ*UqU$pX?A{SOqVCSZ~96p165NrxsrL~tH?V_+2kzN)pel*fs?6t7Kr5ku9+ogy6=pXWkz?C`CZ&PGa zJAXS0>f{eC7*4;8#0Adr)UNy>2eI#ZTt|3y@`~(#F`n^k?xN+Pxs;1+!U2gELPlh` z5(~pdF0d$ezfzQ+^e#nBCD5aJ$GG|=pdt}9%`3v!l+|k@f+Yk(udL(`lFd3{y;mro z)vB!B&sOUGydpxK;Ra;%t@4nOcjiQj*AZ;V$)|^M$U3I0n03gHlf31)1A7Zw_^F6V z71|}*PKcbRn~-p!pm|d+s0^0NLbMHmn7v1Oa zNT*e~(#(`9()4(z6iJNLS`v`lzG^K#J^Mv7DnmmvzsnYrPP~)Z)m#}?FzKhb_|lBD zxY9ED8eD|h2CGx*DgS5zJ_vSHHN0qRu>J(im5?D^pV)X%KeNiA{jzleK7Iaa zYopmO^_tx5C4#7|!36m^6#jjypkaKy?3+k|KCy(Fahz-NsDxJ)!4P$Yi7+Q%)o#}m zy?Pal|9Nu1X#dl!RwHWSbZ{+pJ+(V>Gj>96e-3y^d3aon+BEpnM4}{!1;fF8;I$Y? z#plVv;)bFvNSWgnMla96Ke%pxoJn~(P<7LnPeLS{4o40VZmfT57)mRR4Zqiijf#l- zm2Y^;lC1ShYQw&6$=eMG){oFvQo~SHj9ne*`rSOC@&?lVrwqmM4Q0ji6Xy}$_d1ip zq#B~Z)^uhY>z=ZqlRkD>MLoenysC=8j#c!u3Pc)TQjP1E5HHHvJ0p-qP(<`jDbUE_C zYB($EPyE1SOFf!4uP44VyAdze$`879`~Az);86;M_75bUj`Kp_`!+u{8u|FEwD+?6 ztTTGl{mxO;pHr=<&tQaUe(eER<1js z^9s!}syyD;D@fGXEhilsxEpBBP@8`=Y`l}ll2tY18$nyWf2{nqGjY?JUD zzR$%1m1-tjTf%0v(9|_|sh$+v+XpL{`E_(|NCz{yJje6&)4c zu<#v=00KC+*o0uZkvoTc-T@jZA9DX!bU!FB|Iw6t#Abg zVt~8CN8jppvbXg*iQEH*$B5fS)wg^AXlUI?H*hv*5kiA4np6!wVr?Yh=16~lZ*RL3 z36w_c$JY2i@_;F+2V1wDa7TQh0+qMj1BEg z#mEP8(nx!9#0nV<==LlC5v{OU-dF?-;`-*C7nS*Kk_(jYGWpZS!3z z4e^wO>xHi4fJP0k5q%6{Ph1*Lk;qZ-n^3dYc92gz>AcfFM>`5A&_PUJ1dRe=`BX9Z zGnx-2@}jS#S(!B0*V*z4Vsok-RS_S?RTxRVV<;IAw(F7Et-RCyLxU(9Qa}{BGH*|z z`a0(O=EM{p6Tq45M?rQY!0tVGwbb~PGd9s|F?!vbZvd<&}ZOJa~$YfXIpxddr zWikKaNH~7FlG}owJ@!5;k}J2wh7rQ&yRP#xH*R;B*q0S!XiGfJVfS=NRK_ zvvSvg$he55ayco_xmfYHIX9Z~x13f{BpMY8$l+ zU?64~9;I{-h&W|#qD7C&F6DwjB+G0T>`?V6H{nB{f$vLy@>eEpBBXcu;6`v|flf4pF5BkQdicTrsyQi2*lZXm8j6eEx}Aje&j~eBVTj2&pqPa9)Lx7`gx`;n6Nh>1Cx%a~z)_`t-xKrahR?M2?^z!6#>txs zv)%O@S?O=!UT~Gadi2WrWzG6cLq$37!d`n$dsX&$Kyj#GIRG<{?)+6r!sxm zqfQA4Pu+Cg4u!8+(o2y@`<0fcQw~#i;QU}|vw)@iI(g&$Y$b&)rM3%I zv)2wj8M;mB8`X>hW<@Y|uRGekSI>#)0<%u_cE_JqNb@iZ? zHk0a%Dw_nz+0aK$0R-jFhW@M5Jq&LSn?Jjc`Kd*5=CnfnLES;UeF^R7aQO?ZyJVcVoX%189&qPWv1W~x8B z%9W(8PU%x>%mO=!_Y;dRL(k8DG}Z-|%vl{pC;`Kk&87mj6sxW>ST=!i~=Sar+4t{BWlmmY;wc_s&Ie4qb~k-j*dpRk%A zI&XyDJ<%6w82`Bh?@g3EAphpthzZy-G9n1#fXimz#Ob{~n+yKJocWw1wRZ#PO5;@q5`l1=zR!{j}s9%>JQXkfZ6rUQ6vme4PrR(s>mt z2P4y`zpmdabdpAAeJWPN{PgY4DG$2oo|nG*iteuAweu9bXiB;Hl_?FmMsL%`8Oyt3s71L&*MV|L%V5fd z;%hp(!N>`1P~Ii0Bn$e!#htQx(Uxi%mnRx$Iazi~lYXwb8H0%pkz2vhnl9mE#Wt$5V?vJHFMM=uz`v7pWV z4XgUy4XcF01glXQ@sT1f6gNm0*R}PQ{52G|$7tc`m@BQrHq@x6bg+i(5p;|>i|x)S z{i;xvChqqm+)U(mL7k;Y)6m-*bp?yUtt@4t3+L%D3^d9pV>5puQTaK+mzhxGKk(TX zRvbGC7`ae5QDDOITXu5OIk+)|-_)?<^1eNp;Oj?GT;22Cs|hu&f%?i1N*rNOi^t$I z<{DQA(89!pX&sr@?xFT-#zdWl!rQ2&3)(yr8jT^5nT6$Dnj6gAkn9)7V#ip73wD#H z&I2s6eX0NuTjAX}&{MQ#<=~@^8iT#;s9edaGB5bREm*>%El=;)?#PG+a)^h!h_>R1 z?foB6=ZhWck*`$MhNoFc#~&I=ZC+q~jIGaWJ#bMWZd@lXq7EC{;O>P@c#p)@`NxqJJT}uKIOC6 zF)iPk>OQxRZ_BwbB80b5b`a;K>P)jxe9I6w=JL|6p)fH@I|KcBY@8l9X3!d2IK~j( zS;s$_e^{|2r?lcq+47_EC+!*~o=yoq52YA4rXUw>S;0`!uvPNty;$=dPp@{7u(Y^0HSt9!G!@GynFl%o$!&*VYlB;(x z5LSdIC@J4>$YOsLtRV~G$Ann$3mq^p3ULIGsG!&SYv7!Ge!oqKJ;Q_^ZpRF<6#l`U z=0Qc^#`1@36f+nRY87%Y=j6q4h`*GO;Z0NPR$OOh5sKsoPb-#0C1%*B(psnTzXI(} zEC8f?LlN*2dOtAGI_DiRD@9nO*CExP<7pvd?*dbOs)WNAA3~Lprzn0?149v00By~_ zr}EFuLhS1Y0E9Mi-`}cXOa~hL88E*?uD_3*6E|w9MmeF}GM?sehrVw1^H!>qskjo9 zMbA)eJHfxXJ(DgtG*J7=QBL5j;z+=CFhixMwBex^^OfRk?}I@FffPlWh+bdu8sW>7 zNNc{o-e6TFN2{G;2V)wYG>QvM57wM7>R+&(>s>Zo%i?NZWdy3f5E+QaKQ2WaI zSe8+B20MwDjaP){8i?7r7hKYX>(5|bDevU*IJ8Z{E2u1>lrTKEZm)z(@(I23*zGKv z!u^SotW?+6Id;(CnyDqBDJ<#1qE;a61m8o!13op&?wF6t&Bf6GBT>ULMwRwnwjNcDH z!!c~1oa`$Yr!q%}ll_SRAed?Vk^_6~ADEQsRcHP04FIph;>4|PFP-(VF%R15p1hPF zuo&E-RGAzMk!LJ~<_d8PHv;gjHI~f<7>X;ioX6>Ythi;6f-qh{5))Q<*}Wm(89wQp zAp=xy9{H2bzthB}JzxoziEiI6fA(0t0IU(h1gSXbmB#JP7CAYhQjv%J&SFwE*>))V zJM4Ws=T8@qA(7XuZZN9BXFwn&a@477+p+$@D0o(7G)*Do7xnwmVI_PVwJL^XQS%14 zZV``jdqoM;KC7s{vT<_E9$=4P2Oss%(I(t=tF25|mg6TS$jx1>s~Eszt$!(w7DFuW z@h!?Yl-ywTbf(Kue7Fr#_Pd3z@%ngCzNAE zz~I_j>;D?N!zSy>{nad40l7n*EIHcyu|3DXoKdzmM*W2nW5>_vC(m?gp?D1!V|qW7 z<3m6u+85Ad>O-8<-y2bBh4aN!VY1}d9RJdVC((lygkY>XuaX%YFYU>%T;+9;hjZ#a zeBt^jTcVHaFp}=4h~ZOWstk_Pm}1C-k)F8UtoM^735gu#qzW+ZQ|Zs+!s@P~25%;ifl$gwm8f>tHAXQIU$Ovx^i%j~}FsXz3GWMIv7* zB;-sFyv%vtG*6*w{?SWHDhjOU)ado!>wM99wUQYZ6=hGqDnf`uYc6(3!!S5ltp2-a zaRyLHf-gSw$TM@e(d2~L?&nhBj9wtNv*z`}iS0SAvplyiy+O+P=_-jR6Jp5)z*Oj^+j^m%e`#^?*Nj_!ctCWJK~b-1u8D4>)G6+A;z7 z`cyY-j>Gfa)N+$XSiUSNJ0m0Jf-G$W^_ubuRJt^w%7MDco8z6xX1`fyzDPcgfvKI6 z#?Xfzf)Fe(LcXarGeAKi_9(hga4ZbTC3~Oz>Tow(R~Xu^OU=Jml)D^i6IkkG-Q3(*(sx~+|^mkK~Cm*v#795^9m{6#!{h9;DuFt&M)6BO}`joRBI+NFo~-fn;) zXe38kR0Tp{=M}qy_7_`sRapqbW|PoB{9fU8v!Y{uRRBV{U_FK+avwT!8WuRI{4d(98!08W#g zn6eZ^*$HF(A4O*w*HjzE;n7_p-6A0{K)NNQq>-MKILXligehIpA}Jf)-Jx_!cXyXG zlEQo5Pkupvhk@t0pMPBU_AHvhi@Hh;<NB0OV_E~EcfDY4qjFGpIC)MgtrHV}knIWu3fgPD|Xl>cH=vt1ZGkhl+`72J& zauLqh;%pTk5|>}%28)po$zqLZXM1GW_}W7%9(vMyKjZ}T9KS!=q^!ll5PO^ErBtLM z_#Pw5`lc~h@G=|#NDrz|h_gcZT_f_W)8Zj|3Xj-P66Venl81$@|NcGk_g0c|LE~(r zSjsT3-5Ge<5T_G-74hwa&~}{tVP^pM4(uZRKD+YxyUYX(2JbXE>Wdi@4`#@yO8R4b_-su_61Kg>6g6_1hrO>GQF8; zG-2HDX5!7={6JXY6_a?dpeM8Rp#r3X$TUAEU$$0JBb5ewTt5|c#Cr(Lb#g#a}; z9hz)4JASh0lLube2WZk+L!Q7nS|%j*`{ZdyVu-bBjK9F3C%mO}!s4b%qaJKNeX2U1 ztsUZwyB8O_qn%hf@peIRKos6$yE^LmVU2k&Wn!*ketV(lcfV5pL8?%-Qk7 zwjB^^KY2RstAU&`O0sM3hcEmy8h}-=rrCO(HEe8^S3N8^-)1&#BBu6%mm>60%UF|; zzl-5*``Sx~2jTIc$&BcICT8=x4U+SR-mFJT768(<9Ax%ScDaNXRBt#0eg6m2zv{UmK*aIBqx86#Xuo_(10 z=hBnN!1j~tb{9eya*+kWi(~~=*}3rF_zlepdD9JL-S`N}P<_XPcM(5cJfO)W!_`!k zT?`J{Wcq`M7MHMq{|TdsU0op1WMOO?wRRz$NU)XJ#;&xhs{U82J zByuV1zEn_V?Pn%OfB$&l;Y=~3b5M}FIJ?L|JE~sAfkNZ8zB7 zz(5J;cUBscM|=C!5k{6^bI-(|2l z5me(UVYf|!1pD#C$?K|xGy)GSKn1ReVU~)i;T$>M1~KBE6~AnStYhm&hXqQLOcJ*- zh2DBoyv})J$!#=-4h)C_SxQ??dls{IN#-M6TaHGh*~3g+q|?Lnq6@J`dLYovln4B zc1UM-UnC=LG`_SgpCj)!Wf5V_Hf*OyEMUu^7PQOS4|x7njp%y+1GYiH?5sgFJ%R z^}Xx&@PaJGfuszpqh@tFG@_2^hHrot_N}p3d*OL$NlA7`T9oyh5tcM+(hpBiV}VH; z)th>%RE`@rv~1lKTSp9v7^c_mh6iutDx&h*D`dUNPz5_QS2e3BzbRxFTu3%nnuy&} z`5mXaJP~|!kMfpcvHCt!-kT!THj5nNRY)$1v@q<>*Q_a^qSvDe1Z^JG9rK-x7wv>0U>r>vTKlD|GWO|sjz$s!%=mn)ic3tjI zpV^lNk$lq3PjxcS5ob-}5C)AvwY&=+#50Z^^1j!a1|k}PL!zTf2i=gljoE<1F#I#T z%7HGYU(wjBFm1JvKapK86OS_CeoaEGe8tm}f||pE-PUX5a&D+tE}&_XnMz;d>mk7z zL>?E?08RDh=y*I!f9%HdJEao|9d@9XNA%8IcnF9ye`7Uq(qz3%tX@rlD}cuLB!ZTG z#y?Y|GxN7KsuB)|VU8AVf1dTZn%~mer1#+8Enu=c&S8)}z(g(AQ}Vl?32x9v64@!t)Xe&`6tpjVNpr56PBh14ne!RFrOKLwo~yN`-=x zcA;a{d!u6OTFFw`QtdSAr-+1kLz&5(&9YDt^)lz- zHR0NvfDkbH%#^}1-iFM}cWO$!l#QmZd+IT%#0`8BCNtA4QWm7dJP>?ILLXwEEWG}n z{vtSw4d4?Bi^m>{AI3#XFU2I3meue;)KG>dNp|lowW{(*1#?LHl=r_{+X7Kc_uJ7P zs`lQte8-*GQI-MOu|S5c64o8) zr}_r1T@BEOOxh#_7IY~(eg8DS>Hdj9>^f@eb!Sq=gYZ5mG~E@F+#@r!sAT?+zEBpi zea%&D-f=B{=sWnC#0c3ej=Th4} zPp9FS&4jWOnXpas=!EH*&4yt+Z3pqDY$q`P5o!R9&pc!ccMz#2`iLyeh5@B{0Pj2H z5ks5xEe4+#(!_Jj^tN8#w~ogGXQHwcAhQVlm{)o}ALZs88(F3VFs%EnKb-u|)jpyYmO}vlEMCmX_aVSAFDr7B@}epNwlKdR?#8 zGVxENhD@Wyr2222TyAIgo5rMVs&0xHeFs-bHKk*Ox<%gsnABe9qgdw2Tur8d2d0mp zFeitn*FhWcJdddoxeiU`V563jJ0>*!NEZCU!Tee!t3Kw?;85RQ;pBCy)Rfnr%!STIdy;`u~`hkB=>tDI+M1 zD`_Sbbgd3Hn&Zrv(b@R{1Z|q+#FEL~fKAd7Bbib2N?XMr(cz^NfSZ062^3-IHPcX? z>z*%9t1R|v@=^9DK;;RcuhTwJZ^n`bp4(YPTPL50RMG~*JXBizOH*}v%CW2@F=)vh z(H)v9m24w3e@1bK$HYU3Iy4hoy%*=NsW(+*wGF&~@qze1+dwA>N0L(A)>Fm_t{CSK zrq{}wfPFKsq;T1guvM;<(o_EOFbvdRg_JQ68ca$ppPaSnIMv~K{+gaKg+s3nQTj7| z8}YxmW6VVz#K7kp1>*lgRC(u2>D|OP+J^nZaoICZtLmn{ATY)}NXzEKjXcS#4^bYs zEt_yRAiUP?)NUDBo@Pc}T;HDeQwi#Eu~%j%P!ekf{pa?T@7FbLM;v`d+2ysVNX4Gj z5S{RaS+9VqYu1JOQiX)M=sjM6ysteF@?1Zw?<0>k4>$ybRZT)m4e`HUcUrCDslGT$!M6dz?UVv9 zYBlV$Gv9kDTqG~66Z7D>Ue(oXe0Efu8atTh0gWUx1`D9c&J&F6zCVWw{uQrp8f$Xp zkB~⁢%=a6zu(InNLz1J&jQyL`y-9!X%*fS#%Nmmc2Ewy?fKN1?Q%NJI?_zv{;Ps z*DlI>g=_Q#LuL6grcxwU)cFEq9ddFb4{d^-z$ zU(`*I>uVWiuD{1P41>S-<-uaYVUl^+NG=&e0jRGH?L8M8MG3af&0*#w&c0L5x_ zqv(*M6;v1r zDjf?!HQ1|z!auwhuT+1kS@Ih;me6iMRR*|N{NeO_>NDba6k=9xiSvo0i6%*u9NXmG z*?oAOaa&!(W=Tcd$0{jx0y~aze@r#^ai((XbK!y(kfySzGtuY7!Q=ySq?zE-(o%49 znF*vYmvOmkjdSN|KI=?yZ9;u*g8oEpQo=V~DQ&T@hc6g9Qh1uG>ZYqEo2Fa(qjBOo zMde=%FapW3@hS&66h1b*o+aJy--))RQbko{L}em@axaAy!YvtokVij1#@4Ye2P~V? z2tm`{-#032VTkAAv1vhoVPhXrO;me#@q(2}RnvW1H@(8Q4Cu3Bxd%lnW@7~7HI8`5 zOXyH>rt42;Pq&ZCYN{y5hVMRSu+he`x0)C`koS3&QJkU}E%ZN*yI+4mG&LUBI|;}W zJt-kcvQak5dr_g*nf+Uu$o*ecRnv(4OWjbaP>#58Z_T3<>V2hiq-~XeS4-hd8QSPI z=46n^x8)Cr@6MYyfy1-&Zw`updf`Q86i_Q6O-a`J&Im=|CL(T)@<$KH&)`TIkqG`T z!0tO2s*S|nau(?U_myo;SIGQc%P;E{iZyxPV zs;Iq6DANKrnVLCN-Yq)k{x)B*M630bkJWd{y9{54x3m1ogxlf}*uNJ(; zK4L`Tf$>__a%96Ah)UjMA&>0UrgeWD&!4sg+^tvh(5@GEQ32D=uim|uTjgVwG~l4T z)ea2>9uXB51JqGZ^xZ4=6e=^$DS$G`XB$d~d#(aG59?)H#M+I5^wK9&Bhxweg**~r z2V2C`;b+F<5ji;67khPc$OQO|P*Tl24>CEIT!p00_KzzU3%b9R4-=&*h?a15fvo}oox#b)i`)-bY(0C0 z2EU4#3;3p^`jyI~!N!6OqoX8BhNI*jtoD zv_TA3=Ri{8s^T7;rSNCC@&EDTfyvF=f{Pjz&Y?c?>w!%?IWCDP#cO$TBR`doyWyOy zT`pQkDrjru)TojTSzgdBU|!!zqOa*k(UDm3e)bHA0trfdGUd!j53H3*z``8nq|7W6 zGOulEz{a%e(v)i^oL@Nu zXs>q0pLDJDO}5Q0WNq0yvVO1i2!E2!`Rj~dWmZ4~7XD|Z<0uQ`iwQ29~KZ75bF<6H_9Q_i&!RH7-*Ub36ue8&+ zJtdi!VIk)1z20DjijCxv1!8}5pkLr&)kLYci)3P+eP&L>E#|=9c}bcVXW6^J?)xH07|*b(~0 zmg|vgcV0XL@k^Wc1wGQu|@aF16$(}eq5Gr zdO{-Pf+1!1?%1P(#XHg$luf5=BXJFy4}Z)`aEDaKc2^YFoBV!QxjA4`6o_+qxWwU6 zr&NmntW?0#jjhurSp8jqyxfyYSKQUKC?uFNP5P*SfzHd5!1;DDU3l9!$BnOq(D8R8 z61tHVe$~||IMK8`voJ19gPGw}x!|)ex0t9NTD_seSK67+MsB@LXvvpG7Ii57tI5G+ zz^3%$?OLUoFcZTNwZoXTk?=}?qr5Yirt^^)nAx7Ynd9y5 z!Y=A;C8%SsHeo3$#N+X0@QN02k(#}z22M7ULG3p8Q~}J^6h^NF zY!UbNPZn=JIpG4umJ6>G@Cut7H9Ep9JMF1aDLb4v^ky9=JX>$hON}c;Jc28A+fR+h z3A#*G_@tz8?8H`VTFPK(Tk_``+=i(D90I%lN%S|=2d~7sGsHqwjko1F?8os_`W}D{ z%1r;>E4SMXS2@*DctwPvrUcefe2&bcqDe=m*d+H1isk^KESj~S*fXX~&n70G zO`0|BH1Q!a{iuWi6#MikV@_wkDsmc{C<7|aY414Asb%j@!G<|HDcWX>2_F@3;{zM+ z+&^3#y6{DeRNcbGJ{$5(yM{O8eZDU2d%j8fHxg??&FJ3~n~xPG*{I5bl>|V(0V_~( z{f+~;Apfp_9Dc;kz%(|}>EMAc*G+u0&xob@Y<-8n1=B{_wqOe``Ni<+QH;-*;g(T5 zS_qL4(VADsFWW~oA21{edn9R$`nc*UD}?9t>s~*x_4#dnWBJa0fAkgnG3NZ_xi$-c z*`#Os@UMQBARnH~p2&A_+AC#VSL>$^B6;Fjb4_pHt8veodhKosAd}0EzVxrD6p+@b zP;3CtOkW_|oAuZE`$WFLX9q5S!Fht;;h{J{B6IuT;|C~4s+9TE1_{>SQapWJY7hfh zCiJAIAeU(0a5+va^w^E#JV`T_*;Y$)Ra#yp4Zo-K!gtS%n8U^%DKjl%(p=Z12f_t{u)$Bax?I$dR)VHUjN8U# zQ(2bX4bVq$o}n6_e+(`zbV`$Htm9o-ZHb9>Hi;G*QK1Ebtf+wOOkY~eq8qU=Z)3w) zS9QI#1@z5>r2Q2jyBC#WK9IRzwmrjco+;?hh_wdEQ-NM~&i}8B={h?LMvt0%Y3=Sc z;Vy8TJOljJ$iMB$=D|lfK=P9s2mkU^f!b5PB)Wob1(4w67Gkpa&2eFkJ z5hFgLX!>ivJw>k=3vDV`69y3G0{_UHJgrz?wTLwfBcOrI30)7LvuzdUsVT^ck6&}@ zu{gY-rzUd0K;(kT+WUixs13p-T`-C0%~Pz=&zgjOm4ZzgOPZYTR~`<0t9NPrf!$ra z>R7n~P*C2{UiGGkpJJe+(GaITkWt9`nkakcH>oTk^8Ma%df<65D8q_RxRJ;)kS-7* zcrmm?QSULm0h)$a1_rWd?YvA27yM>*W~;$v%7p z0$c-;Y2maBs}jjk%c{a65<7zDx*yk5*s9|%N6Q6Gt@&A#_72%&Q*7ji3$kll{!nY+ zI0e2}OevUn`3W6`M>;>cmpn~2VA`;_^-GFXgOlbipjr9ntOb~ccJ%eQxRfC3ljCpU zLX;)|HwLdE8A-CQd7Od5 zzt%i-aXFTn`|=J=C_`yhtMENe&LduFAg^!go67Ti)!)=oO#?TBU=W;c@J=rCS(E28 zZGb$_esqYmaATbCA!b6oYV2*&)OHhE4N{KT)NGh-|l89#vrF ziCrQI-mtmVc+~Hl#5#j%I0b z_J$VC{>gCO+sYbBDmAk~BwTdt>2Csa{zh?4?$$tRxw;{Mrf}i{{l7`EjlA1X)k&Qk zFiQA@&Fzfs8y(K`dXQa)KrdDE>9SZ0lH964c!yvJfG7PB3=)0g1YkWAZzBwNYaL9M zy&(3DfW+#RH7h)X^Hmbh33GKTYb&ZQDlsZSV`|g1m%ffZ`nhDZB$pbHa}X_38#pi# zoxT&V$`{K#6g#A$+te?%uK;QybFWDoVg9s(!}4QuzMG5wzrvP9{ zItW86y$FlX@c-nXL+^3_8Ot}zML{hfG;&ryt0ZY$N-(v1t}p%B90s}**3P>?cj*Pt z68E$*ubx_!Q_Uwz0PPVbJ8wyH46)EtvXRH!&lEr z=WUYvtse5%J0k{2==ZZh`vB+XsV-iLTO)BFyO`R)4b8;zU0f@OFC|U!;n@?GKld?4 zgb$c^AeP!n%Sv)3mL@kyXcqq^z2=}V%AqoQpzNe$@C6Zxn9G^&om$B}7*Vy-8R7nH zBPSxMx(3&bwf%}JYCo%GY%QjAc;PSDLv^H*cF~r9TpYI*HJz*Bd3jyfCF(+e_|X3y za8l^$K|}|uyxP2grjuA3)hbv^y)5CO-7{j@R2+>;n#UfPk@(CbG~uWIHsg&;?_Pwn z(lv;Z#}ju1hIE=gY5O3@uOO!F4b?E<%~@IY!%v1Vt6UmT%?Eh) zjZ&xTLNNx20@vpaA0aLxH^ZiV0f@?cjdoF^#2kcXo%D46m`u>o$Eo-LUE2Q1PM)hn zh{O+(&bMC6-7Z!lLNwIIsyc||Pu5%fF z@wIa20N$*wBKtcvzjIGT_nI8NMN3(M<9qnr_75PVudhKk3C+6h=oC!S*oXv`WhW2- z=A6uX?@hBWggCUQ96)#=<4l%?*t9sN3LU8^wxw|pItj_BnsS?y``Oo2Ro&$I%XwRJ zWPe5ETy$v0imG5mzQY02A306F|y$}M=lb8NQLe~Z6^Cc46 zSa&eGteV{T4EOUM14}Cj5^J@0w@XQ*2-eS`olGyy*Y~VS)i6RUI=hoVAsc}~(sAjZ z4=hHphYW|ha<#n^rbhDQ#^X=aHAfGOBmhj>bOO4U7;xmTzBnvAAZtpk?@if0_={o$ zM~v`F(xz`V8y1}7I0xKRO(saB41PD8<=4)wfEL-b4=9~7Hdyc#XJymdBJgLOfn~|h z3JCxjfmun^G4DiDTYOyRpgIMQNsD$w^w+wJ#9`jIlY$5(b`Oy0d{8Y|Bl}=H68Z5f z-%gi^_{$*+Lg<8)*wi#-9zo~uLMruLGCDf| zLU6i>IUYS@&tJ9wT0;_F5TOOhu3FD~k;FWBWL%y1KCXRVjr{3yfHmy)ubLIQJCZx~ z>gdmwxi6nj2TjGsN>S~xF9SW=<2$EIUR#k@+3v#>gHEIOG+7?*R7zp78b~X=I8^;hhzrYwmcnzPFnDe%&mrfb zu|%J{mTTMJBU+eRsXcdb2v&#x$n+>Kw` z0qYCyDKolHl#n~|j6l_u@s+W$9b_L!CN3p4K<}h^IM!)GIRM8a#JPzNTwp2>*dZ~E zC9oSdKmS9Ozrd9`gipY?!1);7B{IKPr+yX1ZiK)SBB0Q868J({S}pYCsMg)EbCA5Oqme{2uAL2cj%JpDsJ)^eM@+G z$#06C^Dg=$R$o8Si<+G_D|i(R!@<{LpZ>-y1cg9Gfc=FAnOGprZYk-g#h}XP7|O@e@Ba(k6p&(?h-ZoM>`QO=Dk#a zQIo*@n=umbhC-%VyN_so*B7+sb1yxz)dyP!pD4`&V6gR>np+6yq{`0O ze1AMI26{Jge$6bj26!o!-ruHHzGbHX`WU4{OF=Kw0bf#q3V2-^#uJW(W%)1rF^ZelNW)3^kksxuFk-c2gG1^}4yrFb<>Q-?s%znkuq?#b?fSp#%Kh1- zkk=tgZBh@6gU!)gQkDpEHB$4&fdEKFRppJs)Fv#Kl8`$H;DtDZZzMKmumZ3qIxNl` zlLZSqbRdzi}G> zBAOz86vkx(BsY6wo*NI;)_t&8ng)YnQAX_Yy&|&+(-&6FlTG8*bazpd>8zkG!#sr9 zA5A9v|GVHKwBDkMRk>n_1ZUZ^2X3<)oN=IfxG%n$MA;ge$kS5s>#9$asp_ZJ(m7rm z#~Urn1fCYxS(hur;iRb60l!$jTC8Avmyr#sHC93`c@Ff8Iv^JDzJ0H3Dpvw+h}zss z{I!hb;w3K22wg%95y9p_9$AJQFn^NrYw-19Pp{HjFRzd1;pv4DC~>xqwe@Wc*n!!&^C4r|cm^BEo+C ziT2l;LQ)Y=j|Ld{E5^?B&sQlkN+-JtQKoskoH$vUlkfI0bITgaYQPLlrFSf&>MU-v zp0eMD3`_ItYoj1~cGUGjl)k$M^&oI#gB1K6pj3`T zWOu_n>MZyz@RH39@eFVURU)TA!8z;%U`W_~+#~zz|`N4PQ?ze6N=3)Sffo zl=}B#*AScNh3X=lI&MZ^a><9Twxre}HT!??rn6ihspnvVkV%Wfa5O%2NuopS&<2g= zu)wMZEdxA{*h#I)JI{&*g0=xzq_Q5b6Vx*t2`e_$p-b}x7QD)u=Kh+a(ru#|5l@6t zfqxuFQD@PGWHt`tG)Q(i5#O66q%qm3BLd{8vwgpP$qVm#*-rSTWOH+`zoEatHq-1xQIbc zHlHpgb^KDPhj{a|i1P6}hFi+7lef($%FlFH7!J~(B|dE%9#b3sh#7r!uiQu0QteIu zPl~X;&u?+`5%fUq*F-1Qm`%VmLW>!7#9A|{k1@|W_FQm?8h-+ngG+1UN@t2wKk4os zMOmd?7aJbqm53GL$)!m*s5G$|=9S1l`1J4dltL7X6pSC@AN?`gvkiM>F?-7ES?sx# zgvpW--O_L9#}rleH_DlKZ1K^{p|#y9WeT<2PmS2Wzfj>DkIW-*%AQi(xuH(y{1Ar+ z)e@*w&rzs9^oAHgl6li;RX&Qp)cU;9nPaAW@WR@AY~BV|fl6fOz*qhj{^=RT#MnXs zEE6{B_I%zwWUVi{^Yy4K&VgVJU{UVPN~d>`p9Z<$3;4gR88fjnbuh(|JWtl@BkxK1 znb*h$%eJ?J?ZI}#_>Rv{B8A-e43I+wdnMKUFOQmb!Z$IcSchzWo4EcH;i08jCH#iR zp>FJqt>+X7sYx_p$W)xNNsIeP3Lqs3_M#4g6S!+LKK-Bki~=xFwBPU<_+f0#_`-uT zCfaaIXz7;HKu?IF7T>d!j;=k$akbHeZTq2i`*B3>O%och2JrgHrk@MPp7DCu1f1J* zp3=ZD)oB4y+(|$(;xBlL7ivv|%86e*teYl4mb!h=`v6o+X3^0yByGR2a-}}gn{)e`>#6% z`D8*H3l#aNihiFb0O*ZHqGB9>e9PVlz7Ath74Kl*LVw;*i6v3%jmQTsMAk)DvAI=? zBa*QA_Zd|3UVF@+zSG~wZ}!YB(uokeiNC?W$zh_``}ze$U5~T*>)?0BPnT{EYJz`V z{Q*(9c7wzi2efN(Md|@496;-``6GkWO5Jjh%sm@Pc^qwzXgtjX5PD=pBjcQ@<(hGw zi(c75WZTnzSU)Wu&`eC<*e?&?c|Z0u@x!>c5ew@7YfpP0K$SiRP?@Uqh zOMfU+gxdNrP%}SaD|rNOEleAoCmiga!xkQeuDU`i6iVnSrkg6*Dq`?0pe5o7!eEQ9*f@1FLL@YM)A6jx(k-~p5WfQ8 zsCq0dWB|eV!=?SM|7WNwyBVK*6W^x^dVdaetzl(NlB#PU^ifVYNi!0__q^A=4; z<{>A*52I}Nxp$bl}6qlgY#u)bV(+2r88)PVMpn<(cmSkD`XDh{bHa|KOASu__ z9ak-0Q`jhh@~3t9j~u|pbo$veKQR2rC~{J4uIvI~*aS@LP6>s*g4U{2HkwMcA zBFOTHCNio@R0)JXCl<^L0!U7mOt6W6hDYd zhi#Z44pUe8htrR4Hze&fvY=3fXd*f@OOcySv7o?+Z}6L3zVFMR@Ck#>u+WL zg^vB6NPmG~Lt_b$wzpNkMfYr5bO?DUpPmKmNdN(3V2hR(fTZ}O(bWM4XdI)&gW<7++riwS}k z=1Xc<)&Z|U^%4%c05<0sK6M&XDRTqSc)-Q9Hx?4b1+wCp{jp|jN7RD=>jHK_vvE^Z zYw`VMOaJ&%*95_UdXL%6AFpG8i~@ym!*}_!{3y0mEPHb%$^ZE+f+PqdX}iGUJ^VI1 zf6(PjxfcEN%x(>jyOs>GHB8IZDZD3_@%*?h2+gH%PG4%hI0U!?k2k&#zHSO-AKIle z*qkdhyIDAjR45uHUlGK`V;x8WmC<%7+5AjxtfE1RpNDVbeZ)4@rO@R?-JTg{$?M`h zgmh)B^n@BiUX4mn5>bq(e_z~t0rF!s zm6Tvh0PGvt9Bac#&*F$nW=nue7?BM<9@+^n((0{ZU$6Xo_4taiZNtvS>^M{DIc^YTvzimj zWyE|!i)@ri7?$cTpD2xo#oH^+>ibXT=zbi#iJy-9IR1XYxFo*2TaM}0Ty;?+4q2>N zfi05KJ;_k2-{l_XFkUfUyS0Ax&L!c6xs!1OF$lnYz772HDl*#k)-~lGEds zz(l$?;cT8lFu* z41g%*vTo+bg=x98JHPlkD>~pFD8eCyVvY`zw;I!*#AH7+b|j>bFU^8LCdWh-mWCqs z6~u;BvnzM~AD{SP1CJ>tpTA{f#IU>+^|{ubRqxown}Bit;}lJ=T3^1Oa%8X%Zlz)| zj+3Zec70$SonRdz`ZV5k%`5Nz_vxVYVH+`X_B5nalvZ+SD{M{uhBe1ZHpn&mj{$Vj z+x}7seuCJ%Cp+WlaqDAZ@eT3LzMS4Kt&uxGCP3CgfG>_A<%ncrX%)n)ljQc)#V*Au z_0%OvToLyT(x<#?alH}OffyRMi!~<0dem?nD4CzY2(woL$S8D;A#tBz$BNpGFi=LZ~J?RUh zuddu%b*gn$Gp^iK6W8r~$a9>KaLFqrC2+l+sG}rzsDa~C`gNQwt?lrQxHIJpto^9O zz}cwUsPDih7tZmOi9Uv9I5~#pOBNO<&M8J8=VeCo_wmNvN?9>CvG-CgOKQ?Ku~7*) zDJ}ii>yy>@)`Q1VUq})eWZkVOOBeg@HKZi((e$4D@{u|}VU6Z;=JMYnE4~l|kN_si zmQ;nw^3GnJ$^StI{OQwZ(+nWs+>pTUeB^^KTSNY|a>(KoSB zBN}Z@>$@{lZhIRXX)mrq2m4ZxGDRvEnWxgy)eq|9*9kTg=DV1IP~54)z@F7RV-a zyxw2d;g>xkbAQ*`S#D3B6ChRkzyfkc*I=jH=;kpiL}7KR`^i$swv$eG&lIFKAHT?E z=Bs(;LW}Mvs8S>15gmmgp6aH6iY3sIi*0drr>TMIhg!6^GfXvVH&hU7CbWV2z@O-d z+Ig@zfQ93vA0w%90t#?fd-4KnOZzh@>2YPJ%i0p~GaKVPXM>{IefFhn7Y5w^ONc+ae`= z>Pp!8cQYp2=L^2g1xSK8bu;Bnt_hC2@>m%!FDMFcbU`z} zd?+AEvef4#2<3tx0+G^g#mG{C+g-U&NOG{Zbl^hTVam%7s1EfF`!FhOKY%`32p7?8 zCL;(T*sibO!1259e^-&MG3?vxntlG31m5jM{9}cIBD9_~hVZMv{Jl|o`#12FM!Z|@ z1+B-2R0{;2I~uDKPRc_FSncK+jKhy~SO`Jl$f%XJOhds2`9#VOs@XDo4pFXwJtT}v zdcMO4^$qiy7gvF=#{Z5lMRW@O%-7~@eW_Q0xuvO%M#mGwH77Ss&xvAg?Q&*6>{;sl zXag&rF=5H|T-L=5yl=0`z$*7?cWV3m!=2PQjEdF_y(u?adC76m7|A56us!J-xn5%@(ufbA#EOF`7h;b=1GG$W5-IOp%!s;Zr76>FZ7bZ8@`lZ-bzASXn-5*Nu%=jJZ6QNV&q z#y^QPGOZpWDUDhORaG+fB5$Xn{5c2(#pM?+)3E+1GP3TZoT+UJW}}b1CK5Jog#Z2; zA_0Iyu%(S8TK-Bc5JvGOVe- zjgK51(u@=kq@`0*z@QO$XhdPsQjYGF6iMl>Nskr=IJ%nw64G5#6W;UkfiIk0>^j$W z{`dV$XJl~0XY9P`D~If^yV4FxkQlD|q{5w;*N!lQ8uw>xH(b-c-&jhZafRFe@W9wR z;%=dh%}4)S3I6;OGkTZ9PXCpopV4cTB!26U+Bk8?^4}GO!E+u*O>z6P?;R#>LYrcg zKdr+ebg*-uYR1O2wpB!au8@TmmOSkh?Grs!J$1(jn{bV z1j4ALR#;!|lguY6W#Bg$1oee4+xd(kKTk_vLgeCeK>O|`C zx$G>_xI;>dEPG0O$VDZz;YO0t+Tfzy_B>P;iZ_iX<)I2Bi>>gK=BU0ZyFCoA2Dn3b57cnsMVMMYz4 zr(13SYdzAIg86M-is^qj-}r9o!@t%jJwH2n)Ut-*q|HBs1Eri_&+<0NRbHPeTNhxu zHxf9(=0AgCZ3l+TO@9*68*6-z;K_Ra2}8M&aZ@?W?^*3sc}|zn*?21L1oH9n2q4^G zolwuMdU<3%aM5TIa_Y;Oe=)k&|NZzAEc(0&f4Y_G^UY&(+V=c@s!hDeIpKR2%C$3M zxF5ra>RG`9UgzW=cPMAyk&6ou9*5AMz@4HlH;yQ{|!6$Eeg3H zHgRnW^-0`KlL<^Ztfu7ewdw1LIBha^p$;f_8c%IlY8n!vVUlFmi)&HFtd1N%%YxqH z#WImCdWrad1P)bDBGUxS!=;y!P#l$v&E%DlDy@=|^iV zqPF@Z{NcOFSjyxP{m0fYGO}^3tIb)o#kLUK>BBXpI^pT`e@{PMBR4JlF3({tQ#ZAr zdN83az4JUQK#r7wRlvcR{i2tQf<{XkCUn9kimLeYB8CMk)3Ju$9^sa_>kuaz$+aJ; z+v8ers=gXR+p(OUG=v%~eDj-;5S2_uAxmX@XUc+6%`!7ijb;j5h=QTkWRLGt_>JWW zK>cMy{_+p?BsL^;EX{L@usa72T!yNpFSTi*7C%$Z@|O7|Gk=Yq-;6E5-8~f}0RQ0n zuyqMg@PWKm`fkagT{Mwu3Ti;i?K;RlM264+=ERQQq-}w(&utta#oP@CL)m8cx=Kmh z{ncTN8{F}okr)&$oT(SNXqeXLb4!lL7EVP<-K-O^aoE|1Xavr~pC22%3a5lL3noKu zvX!3Ycwe(fbiS~u^u;<3bxG@_8weIkx5S}NN|VM~vt z{|*&({dMH|t?ZI5&80ssHQq(+*n!niO3pp2fBD0PKLeMqgYT!mI>Mc`k+@_xp)Gm! zbHMGHX`S2DMdz({aWi$QgXk^Z$x-rX%x)^_DAv!QE2~ekKR?7UvMac!56ll*T+>bN zm=6(K`Q@*v3y1lcsF;iI`~9xL!saK}tWQ$B&pYhYli9n@?#TcF(@$`kkO|rPd+U%j zX?i=sZx#&1e>F~~6zBxS0zZl{(wAs2Vra|Pw|rx{v2hj_F~uRiXonUWn+@e2K2r_8 zK3nz=mB5^<4hQG3es`Q^?um{(Mq;71DYRpW1okmJWjy~4Y1Tsxgnv$L{Vv2CtqvxV z_FmxgugrA1e_Z!gk${R!Xky~d(hlk%CL;j~+bsF$MjfMmbe#yWt-Z|N;ExQXDR3E-5tfgOB*^Tnp~XQOXO<&>qP zz>0XwEu1Rhu*WqN+SDaobjpzuL~=n}?-o3_2P268Bq%nj3}x_sJn@0D#1aqvsP31u zp#Q0o&SS>op|J}cQrX`FEtIPj#+=6Gy|B};+hT~#JDMp^4c!^tH)NJGbG@d7J^n#I z7E2>$>b*1c652LX!>9l&v=U;^k+SFq?HOXeH^DvoQm9T;dlI@t3*O0yz8!}SIq6Fn zILZRJik#n>A-jJSOZCr9EX($|k`@JOnUO>bY+Bqdn5sorNLnZlgMtqFKM3h^Plg1A z>^q(uLK=^TvvJNZV5o27kG4P?`<*{)s&b*VjUAx>q@xZRoQ7}Lj~2WK4f1dt@810` zU{FSvm5>d;`&Klu9wtZ0)~}Yv?NYdl@(Gd^O8?#R+I&51e!L*9gC4?zh}#3Pu?U6X z`&lf|UI#vO{_A|WaP^|&f|F^7@zM5`aW7MTWvBRo&|?EDi(z&T&7O(llEsHqXyX6Nt`Tiib8Ed*|8eRWz0x92xcV_W8gMCEtcyt%q3pgBDo8NWY5lOR4GeW5b81 z#@cMXGeJaTxRp04tsB&3L2{o9cU0Of-22Uo=g~U*TF7DFlVkJaV{QSa@e= zF}YW5Y9gDBf0+1}xI4cq`!ejIfz%!{UJI`S!fe`qVyQBWNCfzMCX9-Phi?pjdXmE< zSQWZI+ZxmyR{>Ee1`s4B+d-;G2Hjel@18bJHVDrF7F!akz6|dIVco2L5wpf$k0Db6 z7ug5}@8_br=2x|gz~kN1rmj&~ANT||OA^z$;V)!5Yf4n+PT_FCJ8bTUa(b;k zGkX4E+8CYwgjj$3AAg|nfl zzLx|yBN0~wbTM|L$L#(QK0=#V9u&*QEpul)r*CfLKfS0(T=9mH1{t#y*Icg*Sqv5S zqavE5+7+{Sfc&Pop4VkpG72&8)0Bonhqb%IfkjiSh+Kk!676B(iOpg}Nih3G@=hN)*H3d#W+n_u2&H^z-4WGwZQ`?iIt z^TL6d0Yeb~Q!Zcr|7nVR=Qhdk&23?y)z?vWd)C84Dxuuz^+P&ocM=MOLSk}}`Pkxv ztXa7kxZ9Do+AB?-KyA452N>ZES1i?8?>~Pu;q&W9=JhFPLzZ8pfPofUS6S-p1Q_^Q zT+UUJNr5jY_`f650P@|G^KLV?PIn)h1mWLrZCu(6uS|}96%@}U#&-99B05c(ysk>GNN zrOLK`|14%;->_8Z@`80=f^jU-GTm-a$oeX`Ft!9a1UETz<4X%PU?5@Yrc_^p^&TEu zpI74&IZbcYdS>!~e|Z$qUDuy3>9WQSP00_9#9tEWJ`8Ffh^50THFnK+%LY@ z5hmBiR(U>k@(6WINh0Q(7qOQpMz%qc2ikQct5QRNeu+^blE9{B^VkGXDB(p*XDBwB#!b~&_ZN_Y@JL6n&5{Gk?-FnIKoP6 zgvY{&P)`>2EqH8z#F$`dx>)Y7l4RUP*sJDEPcKvVEKF(D)s=qgU^qdmgt}e*Tn@{8 zG6=Ya7?{A}FD2>{HzL<37!Fx@ym<#Kl0GhF2(H9k0;!-<;P8*z|aB zQ5LDR2Oy6iMaaxTR~FqXb^J(IcKbi8kKl(@OActsku3sab~E7s*YqSiRW6$}a-5X(Y#G=Vlug;e;?R4FQATcb{1?u@r#i;Wn5#wQc0c;ODJpcee5 zAe|M>Yek0}J3DI2@Q!BX|UaK^hF<`h)x(lTh=#5?#cSX9cxw7kgI}(XIIyf9B zWXirHW?{?55rDq`z;S}>Jju1Lrz1V2fe zSVZ2&IKph|aLIN>PeKL_$*@5~9Sx>4@B-;vD2An3M@A2$YLJLb?OXKbywti)Rrj%} zd5@e@9~-FgDReG&EMC??Gq9axM6d?)o`vm(-j)owajP8>T(V`7LQv$3us1lR+FQgw zeq9T({f9;_Y8mzHIqYP%c^vTRS2wNW@~n{YhK4Fjtw%k};qiA%r)SzLy9P0utHF(W z?0v}PN5%X_=xRWhY-Bplz{X^ka$3wW#byRumLD)V%2SU;bU?+Z6S!HJ<>&(+(TKP$ z?7kBWo#_}vopkJJ@&OmYfN5xYnF29;VOC6-GAJvUPVrv z*g^Sub&V2HjmSlA8Av`GasFfCg7rr5jt8R+I5LO#ONhJ-Eyj*h&=}VybiBtd30K#L zSJ0;`1w=Ks0=oYiiQbh_Qz-n{!B-#Zxus1WcBp6E#aG6yJZFqe|8o1rV~f0duy!}Z zbjRzF!RTTzlk`br2U z7CvhDv1*>|6i>VUX19jSYvFs1l<1dCx~ z8|S%WDif%6F`Msn*sNygP9XHj6@2b}=D$UJ?F3_JijS@08t@q8DSuL{ zNP>7OB-qx(8DlfYGP)J(L=&Mn+}Uvx4^qv+$B%Fb#%DJ3DRMK2-QrSL_huTtF4yJT zB*3?nPkYS>sKwgeH##0#rJCD}oknPhX>z$Lkvb3fnt92m|MfPO8H`xZD5H34BJr|< z(8KPlYO=11MNRe8Mu-{EE^nCsZ{(9Gt0Mf?y;4nyk^wOpA~zh~UOXG6 zDw5{GLavP1l9#a^m6x&;JhZDZjME|-Vgt4veC`!tcx6g*RFX%auD8(6#`vlNd;=g* zelmK>F0o?<0@pSD>t%DPrXlQ)FN2@O#%xrtE;Rn?FJi{a!Kr#T`TW@=_i4y(=($~D zT%)Ogq^&Gp)1)&q=uEvomjaN2ygFv5-qY>N>~Jn#{@60(LDJ*PM))uIStoeN!g=Os z$!pQs*X;41&k+fUcJZZ&zol8qS3b5#zJ6RdBP(zv@J6m3>_=|Bg+aEQ`yCZ6nWF8b zHT-oJj03*h$a@r91Q6c{Oq-e?{W@xlH90C?;v@8Acazig+rTgy*DMXW9emJnyywjX!;3As1ae&^?I})>y>d=1#SR&Om zj!8g6+0&+{pW?E{Cnjb4$k)65P!|Kcq5Bql@V&T&)lIei{Cun1)e9xDa9B5nvc|h* z!mE%=1r3#lqF>+sxqit$nq|4MFyvZKdjAA8STgs0dU_f?F>#YtAO%OLqLJ$1y6wsJbMbdNM z`G1*EH652i21IM}|Dh5GM!+|C)kU?%+J4t$aP+Hx$U@At#U(9J4CI>N$L`3a0L2KD zkmJKe(tj(V2QP{(?k5nPc)&TXx5GDOX#-g(n}ypq0E0s3Tg@Yik6JwRV*vDgBdzHE z62IxOjS+p*g;w5ECWg7pk8Wb%G+lm0Bl@`x$ETBzu%xuaeuk}G^=m_sdt_n`9ZqR3 zal9cu&76)o@t=V8P3fd!0fX|i+pHbYes?hb_{I{UUky#?`(Voj*ucz#b88rltxx3r z$A2`_KZqud%VwgG|LpqLZ{2?$QCs#<+&!-g#xb`c_LVEZS-e!2ZO0=qY`?qx{hqnl zW^VYG_{2%fhX>I*%3;jn_nXW4`L{2A-dCHGH^dJaTI>IQbu7E3Kq%oLRv>#Z-tSs{x*G3nR5UgiCfOUXKF=ojWjPrRX zKWXkuGfL(j7ymNv^_6G+J)`FC9RI*RKjg>LZ~iQlu3U@@V?Nl%>O^q&LnR5rqwn=i zp#!tAv2<@(v6#xOWkhBhC2;Y}=A9cN(PzALwpjQ9bd5?d=oGZu**dD?`a8I zDxq@r?a4-|NQEeAdQ^AaxvB&|k1S)=E=8kQ_FkE4?W&ynu8Ly$p!Y5s|GV&UaN=J1 zaw+0I? z@`l*BCSH)Zsd?!&ga!ogQ^!fTQ@#Y;`0mV3-UdA{lG99QpayLIH7a$hH`(4#xB+UR znypaaGu&xpNtxVF{|_;WDp~QNV!yLVUXB!)8RCG6+>axNunVnrO4*v-=``J6KBUKQ z9SVErXg-mbj79hjGUK=dd=%aO08hbnRe&UCeW2s*kCSV)ZDT|uzZSypWd$ogkuwP_ z*w+nJPI!E<_%W;VN14U&Z@g{IpXVScSFVcrWT$4zkAds>%u8QyKwsrAB*L4k{_3*r z3^TnJT;TV;;_x8T4$Lcw$y}~m0A)jL7BtGyg32F$%u7owrahTchY_>zx+|H?_A^`P zOcCwfM59%YQv{C;Gz90bK(Yhs?yTvjOSz}f#FHWUiTG2FeD|W?ZE;SXSLEzGA_~4R zqdUY&KFIvGw@5RxpZv4-vrh5f;x`i9mf8=k(7cfSvL9139dY}VcMdO30;uZ`9=)w+ zko|0{br|%fDp+7EpBU7BWa&{WLQv(w{KEBsc*D~ugt=KLI;kju^yNT*{;}BwYU#oG(Vz^B7FT_H zA0KRLcbP~va2a)*yuFdFzI0^>B5kB{Orq9_B8j#BHTPqLiS#7}wFbqnHd55Ww}aN` zjR>un{cek-UL}g_>is}r30F3(X$886)t$hPTL)^2^7gNTe5O+qtL3s*hN~Rf0wtj1 zp>_O0^_N`&cAq7#_iL$jCak%(FE;)%RmJ1uA96>P?bn7lw;yI62$=EYNL!?H$Ji0s zMSz^DodEKD?y;s6nMNL`K0r7 zNFPTjc?rvt`M5SPTyor5Rl<FMh-1E90h$jj` z!4J*UO@YEf-d$=C+nZ?GepWe5R1^q5b7X!|Xi<9_43&FakO5^7rfE8+if^Ce1w2>_n2v3uOlDC@(R6+DHgb@yJ1me zXGyYSvH%vDedH>nA@0Au9~<~v9BRCjzu9vDhkUQ-8lAAjyb5~$Eblxm(-Pa5!0y2G zZ%;zr!qV+OHb6z7KeN-55G2sc5kXu`$Fj1HF^H3cHXs_^N|_7R3Fg_fzCHg>-O-mz z#du%8f^a>9znM=5>AH0>>Qv~VvN}E>y$K{h-EwlMDCGzT;wrlMswi=%Id0}18m@<* zwZThfsWy#L4?HSY^K{W_Lr(j57Nfz`J#Usp-d@GffXwS=AsMWUxlfB%cMP6pJ?#_; znln{au}Rh)>IhN66b;A5Fh5WJ-E!DqZ~)BW+?%!G%4a{wf*DbweUb%~=(u-6{>}|c z(Ikus?}x3_M0?2xh0L0UuW&njny1djLHs|b6tN&-#9NYHVQy^ptA9jHS|;4k*I_Co z;}eS9gF;I98>VLa0DX02qCu@790?+lvko9Ps67m;uq-u5jieQ%_&smkA#)=xr6CRC zp>K0+SR#<>rGivzWO@9#7^r*Jx<9S$AZvb|%1;8P|>pie;{eaw*@iwnwuEOkO{NVyh=+k7~o~ofoy3;pZ*PSwvelc^0A_ zx){?J!EU7@*O}HB|8Va<@g>7F@F&*=dvs;J{x1v?MM<(QtBXah^Et#a|Iou5Dk75} z>1-^n&B`=}OC(d}U>$97<#U;F)`fh$Ii^UA?Sp2NN8}`M7lsQ{8k0~(hQrv6#sSo6 z&q{G#tsZ17$3kejqpZL?ub-UVaoA?LLYigAxWYE7O6vVYtY&A^kRJ!MGdnAF#F1R^ zVux2$9SXt1UFMg+sV{XXp#y*yfN2OxZC@&TqTb`orQ8F1(vbdKdYD@951Eqz%wwVK zLt^c@pKu4I5GANb)!^2|grENH-kH24fgSdjwP88^Ec$8B@iUN2W_=UbN0COIe8`%q?g0`3!}iBUQsONes~Q&6Sw0jyPL#O^J#L8RZb#sN-1T5EbJn zB9j^)P#lUBZ6!lbkBaU}7n+;b+qWf3e6J-4so&wu(FzmChK#8aGqyNR4=j!@=E>0C zOFmpaTx`#7Y7YJt9LgSl7XJJ#b{ zqD8Eel-$r0%Zrt_E!T98e{WHgl$6zCt{CaoPOU_n49^H#1lxGuBVL*EdA*)(-Q*uL)g35h>FPi z&uc=`Vc|W~#SzrDTM>1i0F1uf$)E|Kz11IauUGQVWADtqFEsj4gJYV0Tgq;6Bk-^9 zL#a%wBitz#Z9lT(v>p!9MXVqeJyA{$shC%H$RkSv{Tcw!Z|oQ>s}o(2;q84rh9qAL zS-uv6IGCm!A(qn}#j>O={;{ofuf0iyI~@|$)*|$U3FujlJS{73G6 z1~$#UK&tG_5`VR)nRC|fAjZjPL;hkbZylQx^W^Ll-*QQrc05?9aJaCI(CpsmPzTga z)5N(!jtG0ps3)~RQ7#e(b&OHzUU<(Cn|Hobpj|85-s1gI1Kf~sJVP@U6QOyx5VP> zY`nE-{+_Qf?&XEg7rwJUX(is`x%ql>Qzsmb0SVdPu@fFcOj-V5SYHLiWz$V^$V+zO zcU_iuFQAo5T^d*T=+6k%$=8%`WL+NSG)O&8HuLw7&^Nh_3Q0vx;%D9%alkP@OZE=x z#62}9^RFWqU|SU+n$Hv>mme|*Lp2a?-2WK%F;^jE#_R#YjT8zWG4flVz0MGCagyWs zwGXc?Q_O{UIz+V7Ek52=Pa~cLx;ehTHx&1-t|Q0yE5T$-2C9P6;<|DA=a&&&op_n- z9inu@xqxetc^Oz<>3uD|zd`V#{qh}Io-kUhZ~f+o8OnnZXI3rkZKll@x@~ahD*_W4 z$61(s(87dg<&gjPp9lfY9ARjkkFdR-vnqI>Fn2d9m4jwo^lK0}5iUsHO}e-u#>*I% zaVCq^doj??2GW@IQgL^vo05n*Cpu@&!I45yx#PS@juX7nte=BSI9h3mZc6^8Kj-Vq zK(=c?_J6T2$LeJdY?AFYFSK%1@v^J5SwY`qcY#TgJzzZX-E+5g;ivXzb#wvBY-PSP z&^$l}kfZV-LL5%g{^7r)Xhs2YxKj~b{5m8~+U=L?-YW;VY(|bSb%o?46;n_68F8CR zz=s?ViDQiqcUs6Hn-d3Wwz}_HKFCJq(Ocoah{l`RT|iFP=KW-t`ZtWqCcx%rRYkSW z&YqhCn&m0pn(B=->;m>DrK@fCrHYR8i+Wjl&vciVQw_Oi4AAL1Dj(H8Ex}KEBy@v9 z!KpO(IJh$NZc}+mEe^L;LBcXH~WJ5SY@^u8hoQ)58JcU9uG5!KQ ztp0LfASj3!l@Juy&z8l2CsQ+4mK5wb@-?hDnq>QM&)Z>C=dq`yoL1JVQa z!Pu(^kV9HQdDJP{19?{TLbyV~cgaf(tCm^LGBLSJ@a_lll}XpMXAkvUa5 zxxgWY+>ALKbVR_iA9BINbqXb8lbxE6%fw}wlr0rK#{(&PArz;O@9msiB2c29Mg)YY z^S88q99r?%PSqmxjA2v>iQNn9gg3EdD{A5DiSK0=iDFEIJ3npD_loN8zJPve&?`H9 zs}2S~pCWk1Pp?I-6*ikp`a(Y!JhL;st%Rgsr@WJ!&TjQZ>!Lq?X6wtqh+o*-$We*a z5L~MH@@u2Z)Iy(=)2@U2h)-h?0jHrP6_8_71wcN5$BVlMw6Tqc&UHwOQzXXOi@5%Y zb|;T%wMr*=`2H~U5S6W~!uPhM&?alPJ!f==z4XWF4uhiFz35mO7<5U`ET;P6y>Lk9 z77208rIiJZT;;1iv_log5EM zUOKfa`}b<@CgbgUM@6eSeb+M&IAogzDmIA0}=WCtW+PhL}m*WwPdeH9KPNuouQh_V8 ztcRAfl2kBsU?6%1iHkV%f`W>DfA|KN zJXfi($yA^U5#BoI!@=?_(DfEK=c$>Le*~<+%i$7V>`T0bOYsUc{i#3h*Kr%`Np;0A zpUM;i#OzahCQ}1Q; z0;0xbx6(_sbKf1g-2370ze61x+G5hT|M(4FPw#H_nQtOI)wG5UQ1d}Ms3gaZvjk3XPv7jyhlLMn@_i=4 zY0zzZBNw1|yK2y!raGlQ4j|wMz=#Dv{Bia*7l8M{dkcmHB$vs9a0G-1cF zKkrdM!?7jg={-$~Llb*ED*9)x=AS^S>E!AM^2{o}*gGmR?JNk2id;eY_PtRWa+TI& zV@RdV&%uUdT9_r8_7$r&M!@(lv9$9{$XvFTwkFseoI|+M?pqzX9W={tqR3&d`bDoT zCV{XD{kq`4<_K*9R~1nAmV=&9Fi?KS*dD1?^(TvH8Z;vEQT3+PRFWXa;z6k>8@!xg#=q*UDswxTnuWZwpdf4_S7ZR~ z>V6p~qwTnr)+$*Z5PTzdVMkD!l2tg7HDaX3?)E~l7vY@E2iKE|MofB=lqFPvqS|hV z%3hLz2A!d<*7n2Mn+eftRLL6Kj>=7e_HnL zv`%`qM=HJRvzM~MIT#pmq#Y44aXr?rm@Oxmznwxi{^zB+b_TjAOw{DYdBfmpE&wteFA~7sJMQ?6N%w$`QkS5JYpF$@c;V*P7Il+7= zsy=r~`$f08+rt@WO&jeZu1Kqcn`Cb_j^yl7OC<>tm&Q2zRRHmSq$E5_oq#pNwcv(s z75uqU#-$$Yp&FUE@-)CLy&t(}xJt=s0w|p`Y#!FFr{BzM*r{KcbWnoTf6d(OQN)X_ z^0Mul6-w}~gw_r~J%!XzG*jHcc%Z1c<(LmrvhCLa+un#^pYS+Y!bNLGr0`;rYKOL ziI|ZT5fMxksLoDV7WEO<;Y8BZ6i&N1eK|VizU<9jTZ}L!goL5yBuXgdT3)E^FHv_L zSy1DGP47O%kxj^&HE+Dts7cnntv=WbiOrh`IP;qgq@goYX~J?u=?-zG7>dtndd z8|{~CRc$JRUL@P}#MQvPv00RCSRZJ->vGtvI3Bs0K%lM(wn*kIM(ffXF*bIc9crp$ z)no#`vm*A-m9BVu`h!LuuOz3wy5p27D$kSi^3mb}6USO0TmDalKS+Tf^Q`)`(KYpJ9&Bir&a{|$7eP0X3`@=Zu8@!oci(73vEua8={$(+s<0} z*Q4jUj7#12Rw(?++BPhZ8GL^KBrD&vRwZ33`)N*#QzIDXWgS9NnqDHRG;x&4j)40O zpyzUO@vP2lFtYdDKAoodF-*M4(I>h~0AT+vhzZ1;j}GpEQ#awdbT3EbEBU?ouY;)8 zzmhpT+3#eqh1i*;nL}SxgPkNzB;`-$vjv!?Syal#@w88s53Me(4%y&1USyAGM@uOb zYQNBKBw^((L*>ifyZAaa@h(gyO>&oVoT}a=ZzO%NyHrERHD)6qE|MYHa32!uhzsOt zvThA?(NY%aXAoad5<>7>ej~S(U!}*{2Bi-!*9E$uhntD&pA?niQ`<| zBWPfD{5znld+p#0c_1)g_jePTb-s@pN~SkOw|o%#444W(u?JDxc6Xm9OLT&H#U8Mi zozMsw|MH<^V0oTq^VbtXxdeRKG>mI^(ya;vUgmWH z2FG=7m!DvDV;WS`3LyNSL5LDlIwbg^09fU!S&mJ|0h025Q*FBxMZ^4fES9u8T2cX< zHmft}NoXhnENH0+X#aPq_($EI0%&NGG=(rIkonWHL*sQrzIq~cxiy@Wr?9ZqI4kXSU$Y-7!O7FbzJA-h%}s3Si9=ro8p0Op@W01WUPxcJOAk0?W;et4Rn@5V(qvF{pw_NYCU{oePTY#mEck}-~*KX`)sr! zD5)`9&@z*>Qk&Ik!u(|rzF$6O5s!_@mPqDSc~Zhb9G{|D=Qc=~ir!7>;B*LF&k3~(br3O# zrAk7<%tW=jl+^il>Yf4IRCW+=k@or{teP)^a>nRjKn*$cqcGSveU{lskeVo@<$b7Z z5>WW^1-FmrwBLXNrupt!7-EKH(K*yX0=&vl|Ebw*p&};LsU<~%hi!f}HH&((ymVcd z2FTx7D64PEwwGX7>VhFLYM)}P=!vX7Ne#&~3krhce=Kwfdk~C)&qLZh{;Q!kMniwU ztOFSccTkO43zSmpNJs^};EVZc?mh>4WFKW$g6EBNc(#I8lkG!=Bw1ld491Zy6o13c zvw3BIiw%_E1o`Gh!qgo5KbZ420)hgv6@NGn#b}fO%xce4mp~-5uz~q+7%O1WIR#`3 z!mD`st#~fJyWvlm&5}b^n%Q2(+HK&KgYM@ZwjYeh_YV#IaEqLgO>dtqRd&kHH1BH} zg^a|6u(RQGYqcvKg>TSMPqpp+$!e@wo{C!V6=)H)7(WRdI%jt``OsUFT095C1|3kO zD@05B|DFNGj^FuuU>iRZa_G3Rn?dC6YKtW%%XZUz#`!Z|EA8O4Qah%7{D*N9^hZHg zf-h#+<^069XR7YGtM^$hd=?9G6_9>#REbdA*InKIelNL9IE}zQE`iFjTR*>1r)vHZ|Y$ME1}= z*L4lH1`9qy#L>+%9gw`w}0v>lzW_%TKkJ@QQ20U?s4v zoE+Y4wuTvmI01?~p6Zuqq-Z!$Ko3wShVSj*cfL)7Dcu=83>)2R9-5jf_GlBdPnx)C z-CG)e>z_Ju?&;7Oc^6Fy3&~cuI6-Pb7Q1+=^9)7vCgY|OQ>ZNP_(ry_GmKH&#-?@A zO&`?lPHs19*W@PMQUDxAL5#WiGJ?0T5x%SDt@hkKD~j%bVR*EIZ!T_t$H}2yNp{8 z0%Pj+X{JvT;&@5veRx%+^qPj&lj*;+njru`x?Ab8GtFo}u*VA$BhIGZ?*Q_lP68Pc zAuQ9_Zh*WO?Q=KIStQD3@bpf+DUUm*Wb=A%8nC@4ZS3Z!_u3ioIBs!IIBp~;GH!sw zMajn4J0mvBr86Bh)qtL+v*KSIx-P=V&!bv@PJ}jQ3tWxh=i#6B zI#WCuJht{DV^NeKV-u;eF!hzR=>H9;GKpZVbwAvVh<$-*m3t-6L)c4&1G|3MzTt!e zsR$BBbk`ggWyx#Ot}k9&T&=G092U19`G)~4Dv~zC9L8uo7o@K&7ARUs+B)xecE;!b`vMr`2r^qUJ&|3 z0C;!bgr8|X1*1@F{eTOKRQ#j#>Yz9q}Fq!b?GXWRc28Cr%cfo%AN53X`$wN3ERD@`z9zI+cI2CR)Me&nN1 zOo`ipupE#^F1yxJ+{vM#okMEJ;WW0@FOSE*@w5W|!Zg@tT0sctBwTFAZN&$0hSg z>6Ty7T0)olpv%%Os&3*YpP>qE6R)+Lq!`Wji{r|>Ofm-UHQ#K@9SYp6&~il|(oc_r zjznlAfv1J+Gq=4wIuGD(EMZ+axeVz$neu*~tP7FW2801pMdT)%69a>B1rlFoy()~n zFRq#RO)yr1&_94=gM8HRsF*anhKPN*H{AP)Yt6x?npklCE&**Ubx)EyJNHI0m7x*> zfBwDpWMDp4cgP6~EI&t`=v`|0O4$qbUWp2La2qZozfXDwo!dpOTrT3-a&zz$_HNuq zB{34Jq@akD-y!iLnNPsst|driIsJ60Q6R@xr};{vjB6b3S?hOCGED$lSDo$(Y3h(s zX-SFq+_5l(5oUj96rBHn1X3&!g1k*u#?JyCBUVY)lq-whRYn+o<~L2zw9L>8z{*K_ zWhtxjn=NJjDsH&|UiUcesYx@%*mxikQ@h(-z~@6LnAW9i$pt;DaQF}=b5k4!LhAB s-e{{nisK(v#cMt4pOA%XO8kAmsoy%Y`T*mn00BQQUudcRP__#BA4l^%%>V!Z literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_rendering.camera1.narrow.png b/mujoco_py/test_imgs/test_rendering.camera1.narrow.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1a1129ba365d5df3f308c421b2295f0daa2f1c GIT binary patch literal 1480 zcmV;(1vmPMP)!MW`*%YBxMO|FAQUz=XAC8@Px|qb+p2^3B znXzxq`(RlU$BGZ(;mq-|Wre|T@Z$j#6chln0-%)Y4D5~eThpJW%}@RWBmjT}P(acc z7&I^kzWDx)B$I64B^s7h?!DGnrIdQx^8GGHYaL1fpWhKPS;K(DQkGD5y4qk>XRz}@ zm)T2g@tJ%b0}^Y=GH0nBt!gH!mTgwjQr5Vct|*pYMtuj+W@Xh|jkOxR4cb;UH)4m3 zMVaC-EU`MXVWa3;4J@m^%B@bKLfbRqkpYSICWJ$%w;eWEwN9yZlVE2(yt3dMW$;IazLSiTvSSgnrKd#&2>#89m!`s@cb{9%qs&Dt8*IY{xN&5x2oB-Z-2P^Wo=kRvAi<4Ga+}ba+O@`ta6*RZ64&D z=$8RyEUd4nnpUkV*lVjc_eh<3Io~25VPIe8537M4*DhOX?f?M)EngkCZ}Cfj6i9&) zkgk&U0+<1Rejs+zWMEU_4R8Yh(132g<=nE4?=~I8uH1Qg=$&Crg-dQC9fwwhV~}D+ zp>rjNmvsCh?#oox8cbRN5GPg>Wi7-Pa>e4c!k|bLtJ4<+Ggbg(iKW`(X8lgF{31&% zgHs@i*=K@iq$^M?uLu&$#-0s{FQkhF`Vc%P$lQpi%)4Etd1XKjH<^Vv%sfZa18qoFqw7RaH?G zd7eK!JVXv)1I$<+i6_?C+1Y3`GFDYpm92PsdU||(j24CsC&3Uz66^f@+*k!bYh6`U znx^%$Vzk!N>2%v?kZ*|?Vx6C#XIW-U0-&{CEEZ;9#)pT80O-~}5kssj%SNM-5$oXK zKxWm$H7e5{nZzrQbv!fZ@dM2KVqTlKoU zyaaG{brm6)Js`%PQ)`XY)Ax>!j`BR8&*x?%*;iuB0~Z$;>VM6wts7_&HDn@`y1NmSw4w(po1;vT!k< z&m)B4glRJnF{Z-FWKtAGS(YY6m1Q|!VYZlz6(JHQbSngrO6JLA^78VM=lN_lD~e*a zBG2>Z=Vvw=_K$d-_v`Cx0H>#?0JPR+S>}0ucXt;pfDPCW&Ltlt_O-&>+uO)T+={ja z~L!Sa6ODu!7S`1Zh zvFt4p#d1lHMaP|!;8EZq!in%HT zQp9pntM*IJf$Sl&#Bw&YNC;$!W$4`9@LQj;>@5<-A`y@)mdRV}T?Im%SlU{X5Qr12 zMgzb19m5_YS}YO{p<-#^kG^BrZ={IDn`9y*MXVZQ)n7eFvHu7Xi?=YuM37iDfA<}L z1jLEOq!kA#V$~hdFFgk$1rcH~OT|ZoST+Cj9e^BUiAACzNUVSR4nP!w#3IBqpZX3! iAk0{V5JCtc{`nu;hHn4)i>Mj^0000 z!EVz)5QhJ84SfQN`ly`31MwIfKpeOrAtWRY2wtGQR6;Qa$D6gs>v&6M%x}$C%i20s zHvT#@o^?`HZr|KO06;{5(Lf*64?VnnK*k-=000_5fF>LCbig0rCn#wk#m7pfMC5$r z_2oGv+xLU}=f2!+Y2_4Gr|)%qX;YKIN(2z#I1CtRfVHObfEpQ8!6j;(hZV1^HjQLB zh4Wx+DnE!7k+ly&Iqi^zG94&WRlX(xg|RzQS|tfsVXCC5lz@|c14>S5I8yd+zMz6g zmn~9Sq|>f9weo@}1#5J)=?tD>YK^QUC|Aash61rRmBun2(9!0(QEO^_8e%81%8seD^p#rcb5jmYTM*xniuah3|SY@mqJoy+tjR(wF**AJ+2Gs zG$vI>dJ*4-ZDf%~mdBf{3El+ki8QPrWL4ntR#-YhorBn_DP87pI2;ZKkC#$Oq+tbD z&W!uvPknEI255m6cmcc|wi}=Wo`Cn)o!AAx$XfXHAPcT($nGm@Rt4U&^oM(i*d`50 zeMK5p;3TUXk0Y{HL8_@|gEWlDS|Zu$vW*cdSy~6Lql9f_b*f!Bn$Bm;1~uzQt1Oz* z3jF%4ZaiSbJF=28My@QYQ{zr`49Ad_GpSA5ASvc)n2YPTxEfwyQr$oM%zABHJ9v;^ z4Lv^VFe&gK9j3J5`jNHJQt`%Ak9W=b;4_~M9yN=)5zTSE>+s2RGJE0;iwgYil#=#V zIfk-2wP(jEvc5P>V~>-pec-W>{$@Rg7bYG2?05&57x?dX6S!k_^KWM{)ni+;ewaSH zJLYM)C#(v5NBf_M7BGBwXMb3w;V+}--ITcNP=Sf8-xg2$9}tnX9d}#508=8ef*@ex YFAgJv^~0Z#fdBvi07*qoM6N<$g6&AiB>(^b literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_rendering.freecam.depth.png b/mujoco_py/test_imgs/test_rendering.freecam.depth.png new file mode 100644 index 0000000000000000000000000000000000000000..81f8dcdb57aac80781367928bbd7fc987d84b709 GIT binary patch literal 838 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 literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_resetting.loop1_1.png b/mujoco_py/test_imgs/test_resetting.loop1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a907f441f6bac1452df656be3b7f5da666bd00c GIT binary patch literal 53580 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 literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_resetting.loop2_1.png b/mujoco_py/test_imgs/test_resetting.loop2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bce68caf6ec702fbdaa53c38344ecec3b1ba6513 GIT binary patch literal 52811 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 OyrHLM1gX=oi~4_j^cN@q literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_textures.rand_all.png b/mujoco_py/test_imgs/test_textures.rand_all.png new file mode 100644 index 0000000000000000000000000000000000000000..016648410ae2e1a49f1dbcd97bae5a8e527cc582 GIT binary patch literal 34200 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 F{{Y@9*+T#T literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_textures.rgb.png b/mujoco_py/test_imgs/test_textures.rgb.png new file mode 100644 index 0000000000000000000000000000000000000000..fa1d5275150863c3452a5ae4c4f00d97b8ea391a GIT binary patch literal 2605 zcmZ`(XEYp$78VInR>)$M)nW&Rc9cLFbN6fvV~+n8i4SS7SZWZq&qEa#F!5iy6hdvu64r zDwZ(KQl#%5I+x#4KyaV#q#sOa}08|!p-RE9{aNwDeVcCthsfs#ahlp{trcdhbTAd#9ofnTOYfkDiX5=2nf(sw*^(P;9=hf|RTEdB z{8X@G5>#@AV;%e{q|(k!F2t-nbX&pgAkt3f$@VNmVZ5lj_EU-ZGY%hPyzkX(m4On& zpbGEoPOhcmBp*=@95Z9fx1Gb;pX@TaSflx$v2H}~OHyv)YRo+ln;^(k4A&Thfi(e3qb4J+%&n6euMx;eqO zCEI21y6#Ima}X8zYy@dL(@U~oig^LocE+;wuzCONF05(O3 z)`AuYd4t+nMj7_7Zp6DH zYj^*0nT`_Ryk8jT#`JpGs-Se9DFC+sL^UZzH;SRkV_HA}T#P^-pY}*piS;L_zVb|# zlh{r#V&HgqQ-U<`MN~=IsC!xgOafONmY$bzq%f8b7^J6c&-WuDMLRMebBxO0@hI&$ z=;gz&i$&Wplb01%Tr375x`_0hh%XhBE2Y{d0yK;Qs zQPe-T2iDb;NnpM6Kkc$hrLoWuN#-eZ&Ts1lS}aMICP(qKV}J! z+H_T<>kC#R$@e~|44I6&t1I6+Cpj)*V2N1p&zI{BO+BXT;ZE`zv8^`e!tLBn9)V7J zpKs*QvG|p%W%z8Uq~oy%0M6aQPRfBq<2O$e#99Q0&(fgj_>dM4MUPLnk^a#hsuT1} z9^cp&(iBrKsJDWc54(HqNA;E_)2x)w8Sty3Tvg<+gPW-;1y776To7_|QPz7Nn!)3; zxyi>vkM2gU_Fg*fgpC8oNzr8Af$2MqjYeuzs`Ez5 zXTzN}5i#Po;K`ILtm4d12KuC8uL%~x=3gjq`+m}UC7NMOkpZy;sR%F)l&=E~_y9=` zH;y9R;{&+8GLEXD5&^i~sI{k$rGl!9EmAu40+{HV!XPzN{cXP@iHSL(wv|0^e*{@VlVrlQ@;7}Z_djR$xg!SXy%#*+T()lSM(kj85ht8XKex- z`~f@ovFFU;=VSX(Yq4&#rN{!&Ji`m&$M`aB3r;6yUsa0u#U$TCy`gaE7{%^X!{XAd zn{0jObBUtTTGpOHi>pnDo`h@!c#8@t6ZGf4hJcsH65x)or;C=tJ86bD#z^Y4^uU?USeRvGoC~=5bUEp z10NdY83v&?f|T^rHdbx|=fTaJ1YReNCWqMQ@jld%ik(#Z@p3a z(8xwrqGKc*Dq~jGJr!nq-(Pg}nb_Bcw|JWscp!hqK>{EDE?9U!;Ygvc{bWT3@FL3V zqOwK=7WIH;&+Ho@s5J|aQwoX?x0;O%DD`n|qmR`!dC>lgUMt9q9f$E9vE5!UZ!<_J zON~8idm_NYV`#(Lm&=Qaj!16bi~!T_tk2c5si z8(a1?aR!dQ{unezYblG|C!*UOv28Y7fRcLKBr$tlL&D6x?;_vZCI@*O(-*JShwgnm zQscI?RJIGga`4H0J`O4-ddxoj{p9SBtuDh}o2uI^j}|6YTQpud=^&|RjvCJyAKO1e z?!64@yif&M%7#$15@HQ7DU9CwZ6b4OHOrLqn|?}oA7BNOPDmXPQQ(=b!Sm1a`&@c* Xo5Vp}w&yi<`-^<6ZKPGDX&?R{re_tE literal 0 HcmV?d00001 diff --git a/mujoco_py/test_imgs/test_textures.variety.png b/mujoco_py/test_imgs/test_textures.variety.png new file mode 100644 index 0000000000000000000000000000000000000000..216c222d1b69d23b31d45d1647ef6377580221eb GIT binary patch literal 27117 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

3LY3g5ftm+sAu)+lIF+#5fA{<0RKZ0ExPsVvm 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 literal 0 HcmV?d00001 diff --git a/xmls/fetch/forearm_roll_link_collision.stl b/xmls/fetch/forearm_roll_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..fe468c540639d27015b8859a235bc10ce931ab8e GIT binary patch literal 50084 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 literal 0 HcmV?d00001 diff --git a/xmls/fetch/gripper_link.stl b/xmls/fetch/gripper_link.stl new file mode 100644 index 0000000000000000000000000000000000000000..8a1487401a6b3f85edd115fd76419851d0001a6f GIT binary patch literal 75384 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 literal 0 HcmV?d00001 diff --git a/xmls/fetch/head_pan_link_collision.stl b/xmls/fetch/head_pan_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..c77b5b187257f0ca97da05b5222d6115e01eff09 GIT binary patch literal 105984 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

S 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 Nl1|_{uob2W`G1MO%DVsn literal 0 HcmV?d00001 diff --git a/xmls/fetch/l_wheel_link_collision.stl b/xmls/fetch/l_wheel_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..5c1752487efc163453d32996e667e63713a6a398 GIT binary patch literal 68684 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̇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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xmls/fetch/r_wheel_link_collision.stl b/xmls/fetch/r_wheel_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..3742b24694f3bcf542254754f452eb316006b35b GIT binary patch literal 68684 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 literal 0 HcmV?d00001 diff --git a/xmls/fetch/shoulder_lift_link_collision.stl b/xmls/fetch/shoulder_lift_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..c9aff0dda920b09c76639d737fbb6a3d83c29d10 GIT binary patch literal 45384 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 VJ(LleBYXSTaot@+6ah}G|1UjR{uBTJ literal 0 HcmV?d00001 diff --git a/xmls/fetch/shoulder_pan_link_collision.stl b/xmls/fetch/shoulder_pan_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..ac17a943757561c9d0d5b381af2cbc24b8b8b4c4 GIT binary patch literal 65684 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

FwCG{!W&l7R`tf$$rLsR2R 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 X`Bvofpwo$rScLi&XG`@Z(joCbPpt!` literal 0 HcmV?d00001 diff --git a/xmls/fetch/torso_fixed_link.stl b/xmls/fetch/torso_fixed_link.stl new file mode 100644 index 0000000000000000000000000000000000000000..7cf7fc147ebeae583d537a0a9842398921f8495f GIT binary patch literal 5884 zcmb`Le@vBC7{?z?Yf8=^OROX@ZT?8-6}#6q2lqyT;t#~M@JDW12$^N1XcCIPDk8?D zm=}aCm#yZoe_Y)A>T2BgYT+hYj;7@wY7n!qxk^wcCYwFadEXbm=TiU0Kb+ljKIb{l z@8{m^nX^a#pMM*P=-`4i(N_~M`u7y3`KGjvur}`LPI+@wO@nv*SZjUr*_3--ZT{iT z=YR8>=&w~To5At9VIm{?ZRL%~u*VXu_n2txBCGW16IKDQTMi9YpV#u5DAaG6xv6xA zA}WgeT2)4ZwIPPUn~1ixWtsdq{xhPv?GvmWSqCCHOvrj&)`1jR>oR`YRpP%?oE-Xd z*5>FBEWM?5q+g`>**ZYIBz!&?Lku}G?)b8mjni310JRfwITR@XeYaz*rh zN1s6Z2Qz%Qg9O@;2njru?8wOH7wUvq_vrXsuV^lMuyvIlCvEHc#kvvO>VC00(Zz#B z)*sUgqxH8Id(pc49p8u^n;fg#9<&_7Q#8+uc1HqlB6>UZW3w=LJrwJYOpcP`=ChGp ze#ybbldYS+VB|IRs=4VW&A6tB(gU>>LgGpYUGp_8BO`eIIgufEwfcf7au*Wle>--U zbL@I2>9LChdX}iApD(a#AB7+3?~7t&ly&!05z~61yrG)c64SCKdYygVzq3#DD*JpY z=Rwh)?ug{aINO7kSagK*xozENCe@g0h8*_A#?=P)LA8;f;tFGdXkx*%a8+cgBKA4H zmAjD8_2`@x+yl$3zC6 zLRz=(CtR-3YuZcZ(u}-%A+Vk!trJhN9_Lc){8w0W%sbKJ z`-EDR!J?nrONg4;y1&1YqbdUunDa=p9>LXSOI(?%3|I&2*$O)=?xu(pu*MJ#dHh4O zc+f;815cqmow&Cx-@NwX5+wsqA+1-R1h(!QwRuTmE8IZ>D>zXRTlf5&ylFz99(W3A zqT^hzJeik69Kn?K}(nO1ya3+}m)>kC(CZhSQd3k4syh_VK?8pJ9`^fx2G?MeeY8ny}~LZRa@$nRBgRpb#Slkh{T6a>?*P1m)JdZUi|ikF}#*J zLDra?L|2$7zv2mJmy}qzgM>b1%;c;s-Tic^@9fP1jL}1!+ahC5W1BzdR!$ z&QW+|j0`-5G|}FeN#C9Bu_j{e;ws8S%?!`8k{?)i@s!@9dvLU5@)g$KV!#{ z&t-a*&*iL6xI0Mb6F_x!70*33iTxE%Ax%^T1n!_tc#~b>92r{mK|jk{zBAYrZXegg zxKo~9H4zED`lNAOu?!bOK+6gmh;i z?0ycfGEfGdLRy!BJE)WHL6AYQ{&0POH|a8vz*D-6J6ubcGs-x=&{Igr=dL^=hoFBW z-0w9=6CKShj;0(QYW+GtTjjZ%wK!AbbpC+&dVx-0)*?-G%!yrhB9r%u&vB+g-}ENr z?Xd)U)}G~Q+4kieZ-!qrbSu(N4* z)glu;g+y$AJRtBC(z15_Pc)ZjhE-N_U>45|_^ldeL!23P0w-1^@Fvm2{WAjCCvaxK zzT%#i|Aw0S+zAp1oH%<3LkNsfBv5t_(IdnC=8n?~(mH|C@f6Bdgkf{`tK10*r&pY6 z?Tku1Jk&24g;DoRnS8g=me1*{?8W@3Ohrr)RkkI4G(OS(7 z_&o~eHk@kg^DIXZ_^TSuBE1O1B~S*QLRyny;P(uahqNMkWT3Wqs@j?1>|eZ?aR~z_ cOO%JSk|B`N9CuJ2T3r!6GH@0}d3Y1iKL9q?ivR!s literal 0 HcmV?d00001 diff --git a/xmls/fetch/torso_lift_link_collision.stl b/xmls/fetch/torso_lift_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..4ce5fcf9c58c885b37dc012f6a539f3e89776006 GIT binary patch literal 50084 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⪚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 DPXRSl literal 0 HcmV?d00001 diff --git a/xmls/fetch/upperarm_roll_link_collision.stl b/xmls/fetch/upperarm_roll_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..120793232e41601320be52e298be450de59e3b5f GIT binary patch literal 49984 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 z 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 literal 0 HcmV?d00001 diff --git a/xmls/fetch/wrist_flex_link_collision.stl b/xmls/fetch/wrist_flex_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..3215d2e1de0f271dfdfc8abb2c00c47cafaabe45 GIT binary patch literal 49784 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 bPe$Ds%8J6b4Q+IZ@b?qTvs4>tx$E$M!oHKv literal 0 HcmV?d00001 diff --git a/xmls/juggler.xml b/xmls/juggler.xml new file mode 100644 index 00000000..24540ccd --- /dev/null +++ b/xmls/juggler.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xmls/key.xml b/xmls/key.xml new file mode 100644 index 00000000..dd13f698 --- /dev/null +++ b/xmls/key.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/xmls/shelf.xml b/xmls/shelf.xml new file mode 100644 index 00000000..d749c611 --- /dev/null +++ b/xmls/shelf.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xmls/slider.xml b/xmls/slider.xml new file mode 100644 index 00000000..47d3f943 --- /dev/null +++ b/xmls/slider.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xmls/tosser.xml b/xmls/tosser.xml new file mode 100644 index 00000000..5b3a6a48 --- /dev/null +++ b/xmls/tosser.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

z@3aBI2mWinktLTGY-1bZwtNGmt$0yB{f~>oU@A?4 zd$vj&m{4r>WNUa~SI>D{L@ZlrUqfYjDKO=|s0{L=x{~O;jiqzc+b3m_uHE}`eSaiBV5U-#u!Pv`$~Sv%{BQ24Zug|HGZD`$DJutw ze1Ex~OIu+n*I>N*=rJ?!D*oX?{h{qg11}q zrb`I}@ouyG-CR6#ia2+lJHqVlEaLYw8LPjuE7@MSwGTt#Y&5VMoUZAL^kK^6-zHG} z72d|=)@Ed=^1q^2JMpb@#CIdqnRE;+&^T!N6XGXG zI+VB;bHiGRH>3XL?2p!=9yjr@}WoMZ3aTZqJ)f`@5&#ZmYprww5o{;-W=Uq)23 zM@Bo1jW5~^5PuVo-pDu_pHQY`ZgZ#1bonG3Z21z2QCjH--lj64RsyK9}Pd;h$jiDH-m=p~Ry6DYG z*j1BWbDhca)whOM>3e6z-h#~Q$CXz7*@+}1Y+HYFUg6)|G6W?CKFih98Y!%G8if;E zF^|ux=)VxMLRCu}FpS;o7nSesga(mB=0#L5QLiqw(!FwdyDN+6d=ky69n#X-X!i0p_EUO5jCst{MAfBn zPA6S-*U=7>H8F2foC;P+Jnc zXdtJt%}^rF%GPE5G+<)-Ig87S=fSf%Hpa+rP}sQgFXbn$r>v(euc^cl&Gk>*st0mX zEQ=1AWvr!QH39X#h^EoV=G!0O4$^*E1!e#5Y3m>Y$wt(dA0!Z3Jv|F-_Zd5Yo*E-w z+PQf>!@z)ti8)u^EaT{23FAG5KrqTXYO`EmChk^cWd2E33T%c1r@a#ztQchO_+J^A zj^l6NX!EJd?szDQj`7*5iF%&Eup%kQfA=je{Uhf90b?^|+~33A1#B$(eb88m=}D4C z)`^iY#{1&25p8T`wij{2x7IEiM~KnIe@-L8V&CP0aiwVFj)n!|^_4|)Zt=dCGpzL; zGjX)LB65%aE`b?Ue)o%cB4d>U?}|Ey;3wsCx($r}-d&vD9QFM~77SlOQ8nF}tsMFL z<`G6OdFX*_eT=8=0Me1Le$^`ZS-7ypocTgRiOed=D1Qc;JTfuzO%o?D5UCHW!>SE* zv6x-AYQls~;A=brvq#8e3?m(d#Uh&*=#Qnq3~N_w*F(Sj>H%puXqH^Oro&CC!khv) zcZ_n$Zw7Rk$#)F`Jaa=4P^$b+?gEAGuXM7$l(q6DC(GzJZn-M4Waw&wL5$`p@OQPPE-a-s^yLZOG|R$tFid zkb7eghC33XG>=<&FcLxpQ1_6Y@?#Gs5grA}XcI%blNKbzz(Q;5BGk;Vw!Ikl?C{>RB zUYhY0#Bxt`gB@XW=$KJu=}%r32HAo}dfJz{w#+Y&jqxBGf$fvEcNbBKCIz_n%S5@i zHRSoYXUbxG-ie}l&H&jEBg3oyJ)f&0yvD=>at$f!wpDY~!`DwqBGP}xeiIi=5@r5T zK8hG83vHM!%!n?di9#dk_)J+*^Hi1cPd&1Y6;MjjF9|LPofOR-BhJ8Xvrm{X)x{hMenJ zACZAY18-c3U$%HRu`JTI>D-%G(1qPKc-y-+{Gu|2*x-@m + + + + + + \ No newline at end of file diff --git a/mujoco_py/tests/test.xml b/mujoco_py/tests/test.xml new file mode 100644 index 00000000..f78fb3f1 --- /dev/null +++ b/mujoco_py/tests/test.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/mujoco_py/tests/test_cymj.py b/mujoco_py/tests/test_cymj.py new file mode 100644 index 00000000..ffd1eb05 --- /dev/null +++ b/mujoco_py/tests/test_cymj.py @@ -0,0 +1,691 @@ +import pytest +from numbers import Number +from io import BytesIO, StringIO +import numpy as np +from numpy.testing import assert_array_equal, assert_array_almost_equal +from mujoco_py import (MjSim, MjSimPool, load_model_from_xml, + load_model_from_path, MjSimState, + ignore_mujoco_warnings, + load_model_from_mjb) +from mujoco_py import const, cymj +from mujoco_py.tests.utils import compare_imgs, requires_rendering +import scipy.misc +import os +import shutil +import glob +from multiprocessing import get_context +import sys + + +BASIC_MODEL_XML = """ + + + + + + + + + + + + + + + + + + + +""" + +def test_nested(): + model = load_model_from_xml(BASIC_MODEL_XML) + model.vis.global_.fovy + model.vis.quality.shadowsize + + +def test_mj_sim_basics(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model, nsubsteps=2) + + sim.reset() + sim.step() + sim.reset() + sim.forward() + + +@requires_rendering +def test_arrays_of_objs(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + renderer = cymj.MjRenderContext(sim, offscreen=True) + assert len(renderer.scn.camera) == 2, "Expecting scn.camera to be available" + + +def test_model_save_load(): + model = load_model_from_xml(BASIC_MODEL_XML) + xml_from_model = model.get_xml() + model_from_xml = load_model_from_xml(xml_from_model) + assert(xml_from_model == model_from_xml.get_xml()) + mjb_from_model = model.get_mjb() + model_from_mjb = load_model_from_mjb(mjb_from_model) + assert(mjb_from_model == model_from_mjb.get_mjb()) + + +def test_sim_save(): + model = load_model_from_xml(BASIC_MODEL_XML) + assert model.nkey == 0 + sim = MjSim(model) + + with StringIO() as f: + sim.save(f) + + f.seek(0) + loaded_model = load_model_from_xml(f.read()) + + assert loaded_model.nkey == 1 + + with BytesIO() as f: + sim.save(f, format='mjb') + + f.seek(0) + loaded_model = load_model_from_mjb(f.read()) + assert loaded_model.nkey == 1 + + +def test_mj_sim_buffers(): + model = load_model_from_xml(BASIC_MODEL_XML) + + # test no callback + sim = MjSim(model, nsubsteps=2) + assert(sim.udd_state == {}) + + sim.step() + assert(sim.udd_state == {}) + + # test with callback + foo = 10 + d = {"foo": foo, + "foo_2": np.array([foo, foo])} + + def udd_callback(sim): + return d + + sim = MjSim(model, nsubsteps=2, udd_callback=udd_callback) + + assert(sim.udd_state is not None) + assert(sim.udd_state["foo"] == foo) + assert(sim.udd_state["foo_2"].shape[0] == 2) + assert(sim.udd_state["foo_2"][0] == foo) + + foo = 11 + d = {"foo": foo, + "foo_2": np.array([foo, foo])} + sim.step() + assert(sim.udd_state is not None) + assert(sim.udd_state["foo"] == foo) + assert(sim.udd_state["foo_2"][0] == foo) + + d = {} + with pytest.raises(AssertionError): + sim.step() + + d = {"foo": foo, + "foo_2": np.array([foo, foo]), + "foo_3": foo} + with pytest.raises(AssertionError): + sim.step() + + d = {"foo": foo, + "foo_2": np.array([foo, foo, foo])} + with pytest.raises(AssertionError): + sim.step() + + d = {"foo": "haha", + "foo_2": np.array([foo, foo, foo])} + with pytest.raises(AssertionError): + sim.step() + + +def test_mj_sim_pool_buffers(): + model = load_model_from_xml(BASIC_MODEL_XML) + + foo = 10 + + def udd_callback(sim): + return {"foo": foo} + + sims = [MjSim(model, udd_callback=udd_callback) for _ in range(2)] + sim_pool = MjSimPool(sims, nsubsteps=2) + + for i in range(len(sim_pool.sims)): + assert(sim_pool.sims[i].udd_state is not None) + assert(sim_pool.sims[i].udd_state["foo"] == 10) + + foo = 11 + sim_pool.step() + for i in range(len(sim_pool.sims)): + assert(sim_pool.sims[i].udd_state is not None) + assert(sim_pool.sims[i].udd_state["foo"] == 11) + + +def test_mj_sim_pool_basics(): + model = load_model_from_xml(BASIC_MODEL_XML) + sims = [MjSim(model) for _ in range(2)] + sim_pool = MjSimPool(sims, nsubsteps=2) + + sim_pool.reset() + sim_pool.step() + sim_pool.forward() + + +def test_data_attribute_getters(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + + assert_array_equal(sim.data.get_body_xpos("body1"), [0, 0, 1]) + with pytest.raises(ValueError): + sim.data.get_body_xpos("body_foo") + with pytest.raises(RuntimeError): + sim.data.get_xpos("body1") + assert len(sim.data.get_body_xquat("body1")) == 4 + assert_array_equal(sim.data.get_body_xmat("body1").shape, (3, 3)) + # At (0, 1, 1) since the geom is displaced in the body + assert_array_equal(sim.data.get_body_xipos("body1"), [0, 1, 1]) + + assert_array_equal(sim.data.get_site_xpos("site1"), [1, 0, 1]) + assert_array_equal(sim.data.get_site_xmat("site1").shape, (3, 3)) + assert_array_equal(sim.data.get_geom_xpos("geom1"), [0.5, 0.4, 0.3]) + assert_array_equal(sim.data.get_geom_xpos("geom2"), [0, 1, 1]) + assert_array_equal(sim.data.get_geom_xmat("geom2").shape, (3, 3)) + assert_array_equal(sim.data.get_light_xpos("light1"), [0, 0, 3]) + assert_array_equal(sim.data.get_light_xdir("light1"), [0, 0, -1]) + assert_array_equal(sim.data.get_camera_xpos("camera1"), [3, 0, 0]) + assert_array_equal(sim.data.get_camera_xmat("camera1").shape, (3, 3)) + + assert_array_equal(sim.data.get_joint_xaxis("joint1"), [0, 0, 1]) + assert_array_equal(sim.data.get_joint_xanchor("joint1"), [0, 0, 1]) + + +def test_joint_qpos_qvel_ops(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + + # Test setting one with a list + sim.data.set_joint_qpos("joint1", [1, 2, 3, 1, 0, 0, 0]) + # And the other with an np.ndarray + sim.data.set_joint_qvel("joint1", np.array([1, 2, 3, 0.1, 0.1, 0.1])) + sim.forward() + assert_array_equal(sim.data.get_joint_qpos( + "joint1"), [1, 2, 3, 1, 0, 0, 0]) + assert_array_equal(sim.data.get_joint_qvel( + "joint1"), [1, 2, 3, 0.1, 0.1, 0.1]) + + +def test_mocap_ops(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + + assert_array_equal(sim.data.get_body_xpos("mocap1"), [1, 0, 0]) + assert_array_equal(sim.data.get_mocap_pos("mocap1"), [1, 0, 0]) + assert_array_equal(sim.data.get_mocap_quat("mocap1"), [1, 0, 0, 0]) + new_pos = [2, 1, 1] + new_quat = [0.707107, 0.707107, 0, 0] + sim.data.set_mocap_pos("mocap1", new_pos) + sim.data.set_mocap_quat("mocap1", new_quat) + sim.forward() + assert_array_equal(sim.data.get_mocap_pos("mocap1"), new_pos) + assert_array_almost_equal(sim.data.get_mocap_quat("mocap1"), new_quat) + assert_array_equal(sim.data.get_body_xpos("mocap1"), new_pos) + assert_array_almost_equal(sim.data.get_body_xquat("mocap1"), new_quat) + assert_array_almost_equal(sim.data.get_body_xmat("mocap1"), + [[1, 0, 0], [0, 0, -1], [0, 1, 0]]) + + +def test_sim_state(): + model = load_model_from_xml(BASIC_MODEL_XML) + + foo = 10 + d = {"foo": foo, + "foo_array": np.array([foo, foo, foo]), + "foo_2darray": np.reshape(np.array([foo, foo, foo, foo]), (2, 2)), + } + + def udd_callback(sim): + return d + + sim = MjSim(model, nsubsteps=2, udd_callback=udd_callback) + + state = sim.get_state() + assert np.array_equal(state.time, sim.data.time) + assert np.array_equal(state.qpos, sim.data.qpos) + assert np.array_equal(state.qvel, sim.data.qvel) + assert np.array_equal(state.act, sim.data.act) + for k in state.udd_state.keys(): + if (isinstance(state.udd_state[k], Number)): + assert state.udd_state[k] == sim.udd_state[k] + else: + assert np.array_equal(state.udd_state[k], sim.udd_state[k]) + + # test flatten, unflatten + a = state.flatten() + + assert len(a) == (1 + sim.model.nq + sim.model.nv + sim.model.na + 8) + + state2 = MjSimState.from_flattened(a, sim) + + assert np.array_equal(state.time, sim.data.time) + assert np.array_equal(state.qpos, sim.data.qpos) + assert np.array_equal(state.qvel, sim.data.qvel) + assert np.array_equal(state.act, sim.data.act) + for k in state2.udd_state.keys(): + if (isinstance(state2.udd_state[k], Number)): + assert state2.udd_state[k] == sim.udd_state[k] + else: + assert np.array_equal(state2.udd_state[k], sim.udd_state[k]) + + assert state2 == state + assert not state2 != state + + # test equality with deleting keys + state2 = state2._replace(udd_state={"foo": foo}) + assert state2 != state + assert not (state2 == state) + + # test equality with changing contents of array + state2 = state2._replace( + udd_state={"foo": foo, "foo_array": np.array([foo, foo + 1])}) + assert state2 != state + assert not (state2 == state) + + # test equality with adding keys + d2 = dict(d) + d2.update({"not_foo": foo}) + state2 = state2._replace(udd_state=d2) + assert state2 != state + assert not (state2 == state) + + # test defensive copy + sim.set_state(state) + state.qpos[0] = -1 + assert not np.array_equal(state.qpos, sim.data.qpos) + + state3 = sim.get_state() + state3.qpos[0] = -1 + assert not np.array_equal(state3.qpos, sim.data.qpos) + state3.udd_state["foo_array"][0] = -1 + assert not np.array_equal( + state3.udd_state["foo_array"], sim.udd_state["foo_array"]) + + # test no callback + sim = MjSim(model, nsubsteps=2) + state = sim.get_state() + print("state.udd_state = %s" % state.udd_state) + + assert state.udd_state == {} + + # test flatten, unflatten + a = state.flatten() + + assert len(a) == 1 + sim.model.nq + sim.model.nv + sim.model.na + + state2 = MjSimState.from_flattened(a, sim) + + assert np.array_equal(state.time, sim.data.time) + assert np.array_equal(state.qpos, sim.data.qpos) + assert np.array_equal(state.qvel, sim.data.qvel) + assert np.array_equal(state.act, sim.data.act) + assert state.udd_state == sim.udd_state + + +def test_mj_warning_raises(): + ''' Test that MuJoCo warnings cause exceptions. ''' + # Two boxes on a plane need more than 1 contact (nconmax) + xml = ''' + + + + + + + + + ''' + model = load_model_from_xml(xml) + sim = MjSim(model) + + sim.reset() + with pytest.raises(Exception): + # This should raise an exception due to the mujoco warning callback + sim.step() + + +def test_ignore_mujoco_warnings(): + # Two boxes on a plane need more than 1 contact (nconmax) + xml = ''' + + + + + + + + + ''' + model = load_model_from_xml(xml) + sim = MjSim(model) + + sim.reset() + with ignore_mujoco_warnings(): + # This should raise an exception due to the mujoco warning callback, + # but it's suppressed by the context manager. + sim.step() + + sim.reset() + with pytest.raises(Exception): + # test to make sure previous warning callback restored. + sim.step() + + +def test_jacobians(): + xml = """ + + + + + + + + + + + + + + + + + + """ + model = load_model_from_xml(xml) + sim = MjSim(model) + sim.reset() + # After reset jacobians are all zeros + target_jacp = np.zeros(3 * sim.model.nv) + sim.data.get_site_jacp('target', jacp=target_jacp) + np.testing.assert_allclose(target_jacp, np.zeros(3 * sim.model.nv)) + # After first forward, jacobians are real + sim.forward() + sim.data.get_site_jacp('target', jacp=target_jacp) + target_test = np.array([0, 0, -1, 1, 0, 0]) + np.testing.assert_allclose(target_jacp, target_test) + # Should be unchanged after steps (zero action) + for _ in range(2): + sim.step() + sim.forward() + sim.data.get_site_jacp('target', jacp=target_jacp) + assert np.linalg.norm(target_jacp - target_test) < 1e-3 + # Apply a very large action, ensure jacobian unchanged after step + sim.reset() + sim.forward() + sim.data.ctrl[:] = np.ones(sim.model.nu) * 1e9 + sim.step() + sim.data.get_site_jacp('target', jacp=target_jacp) + np.testing.assert_allclose(target_jacp, target_test) + # After large action, ensure jacobian changed after forward + sim.forward() + sim.data.get_site_jacp('target', jacp=target_jacp) + assert not np.allclose(target_jacp, target_test) + # Test the `site_jacp` property, which gets all at once + np.testing.assert_allclose(target_jacp, sim.data.site_jacp[0]) + # Test not passing in array + sim.reset() + sim.forward() + target_jacp = sim.data.get_site_jacp('target') + np.testing.assert_allclose(target_jacp, target_test) + # Test passing in bad array (long instead of double) + target_jacp = np.zeros(3 * sim.model.nv, dtype=np.long) + with pytest.raises(ValueError): + sim.data.get_site_jacp('target', jacp=target_jacp) + # Test rotation jacobian - like above but 'jacr' instead of 'jacp' + # After reset jacobians are all zeros + sim.reset() + target_jacr = np.zeros(3 * sim.model.nv) + sim.data.get_site_jacr('target', jacr=target_jacr) + np.testing.assert_allclose(target_jacr, np.zeros(3 * sim.model.nv)) + # After first forward, jacobians are real + sim.forward() + sim.data.get_site_jacr('target', jacr=target_jacr) + target_test = np.array([1, 1, 0, 0, 0, 0]) + # Test allocating dedicated array + target_jacr = sim.data.get_site_jacr('target') + np.testing.assert_allclose(target_jacr, target_test) + # Test the batch getter (all sites at once) + np.testing.assert_allclose(target_jacr, sim.data.site_jacr[0]) + # Test passing in bad array + target_jacr = np.zeros(3 * sim.model.nv, dtype=np.long) + with pytest.raises(ValueError): + sim.data.get_site_jacr('target', jacr=target_jacr) + + +def test_xvelp(): # xvelp = positional velocity in world frame + xml = """ + + + + + + + + + + + + + + + + + + """ + model = load_model_from_xml(xml) + sim = MjSim(model) + sim.reset() + sim.forward() + # Check that xvelp starts out at zero (since qvel is zero) + site1_xvelp = sim.data.get_site_xvelp('site1') + np.testing.assert_allclose(site1_xvelp, np.zeros(3)) + # Push the base body and step forward to get it moving + sim.data.ctrl[0] = 1e9 + sim.step() + sim.forward() + # Check that the first body has nonzero xvelp + body1_xvelp = sim.data.get_body_xvelp('body1') + assert not np.allclose(body1_xvelp, np.zeros(3)) + # Check that the second body has zero xvelp (still) + body2_xvelp = sim.data.get_body_xvelp('body2') + np.testing.assert_allclose(body2_xvelp, np.zeros(3)) + # Check that this matches the batch (gathered) getter property + np.testing.assert_allclose(body2_xvelp, sim.data.body_xvelp[2]) + + +def test_xvelr(): # xvelr = rotational velocity in world frame + xml = """ + + + + + + + + + + + + + + + + + + """ + model = load_model_from_xml(xml) + sim = MjSim(model) + sim.reset() + sim.forward() + # Check that xvelr starts out at zero (since qvel is zero) + site1_xvelr = sim.data.get_site_xvelr('site1') + np.testing.assert_allclose(site1_xvelr, np.zeros(3)) + # Push the base body and step forward to get it moving + sim.data.ctrl[0] = 1e9 + sim.step() + sim.forward() + # Check that the first body has nonzero xvelr + body1_xvelr = sim.data.get_body_xvelr('body1') + assert not np.allclose(body1_xvelr, np.zeros(3)) + # Check that the second body has zero xvelr (still) + body2_xvelr = sim.data.get_body_xvelr('body2') + np.testing.assert_allclose(body2_xvelr, np.zeros(3)) + # Check that this matches the batch (gathered) getter property + np.testing.assert_allclose(body2_xvelr, sim.data.body_xvelr[2]) + + +@requires_rendering +def test_rendering(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + + img, depth = sim.render(200, 200, depth=True) + assert img.shape == (200, 200, 3) + compare_imgs(img, 'test_rendering.freecam.png') + + depth = (depth - np.min(depth)) / (np.max(depth) - np.min(depth)) + depth = np.asarray(depth * 255, dtype=np.uint8) + assert depth.shape == (200, 200) + compare_imgs(depth, 'test_rendering.freecam.depth.png') + + img = sim.render(100, 100, camera_name="camera1") + assert img.shape == (100, 100, 3) + compare_imgs(img, 'test_rendering.camera1.png') + + img = sim.render(200, 100, camera_name="camera1") + assert img.shape == (100, 200, 3) + compare_imgs(img, 'test_rendering.camera1.narrow.png') + + render_context = sim.render_contexts[0] + render_context.add_marker(size=np.array([.4, .5, .6]), + pos=np.array([.4, .5, .6]), + rgba=np.array([.7, .8, .9, 1.0]), + label="mark") + img = sim.render(200, 200, camera_name="camera1") + assert img.shape == (200, 200, 3) + compare_imgs(img, 'test_rendering_markers.camera1.png') + + +@requires_rendering +def test_rendering_failing(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + sim.render(100, 100) + render_context = sim.render_contexts[0] + render_context.add_marker(size=np.array([.4, .5, .6]), + pos=np.array([.4, .5, .6]), + rgba=np.array([.7, .8, .9, 1.0]), + label="blaaaa") + img = sim.render(200, 200, camera_name="camera1") + assert img.shape == (200, 200, 3) + try: + compare_imgs(img, 'test_rendering_markers.camera1.png') + assert False + except Exception as e: + pass + + +@requires_rendering +def test_viewercontext(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + renderer = cymj.MjRenderContext(sim, offscreen=True) + renderer.add_marker(type=const.GEOM_SPHERE, + size=np.ones(3) * 0.1, + pos=np.zeros(3), + mat=np.eye(3).flatten(), + rgba=np.ones(4), + label="mark") + + +@requires_rendering +def test_many_sims_rendering(): + model = load_model_from_xml(BASIC_MODEL_XML) + sims = [MjSim(model) for _ in range(5)] + pool = MjSimPool(sims) + pool.forward() + for sim in sims: + img, depth = sim.render(200, 200, depth=True) + assert img.shape == (200, 200, 3) + compare_imgs(img, 'test_rendering.freecam.png') + + +def test_xml_from_path(): + model = load_model_from_path("mujoco_py/tests/test.xml") + sim = MjSim(model) + xml = model.get_xml() + assert xml.find("blabla") > -1, "include should be embeeded" + assert xml.find("include") == - \ + 1, "include should be parsed and not present" + + +def test_sensors(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.model.sensor_names + sim.data.get_sensor("touchsensor") + + +@requires_rendering +def test_high_res(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + img = sim.render(1000, 1000) + img = scipy.misc.imresize(img, (200, 200, 3)) + assert img.shape == (200, 200, 3) + compare_imgs(img, 'test_rendering.freecam.png') + + +@pytest.mark.skipif(sys.platform.startswith("win"), reason="This test fails on windows.") +def test_multiprocess(): + ''' + Tests for importing mujoco_py from multiple processes. + ''' + ctx = get_context('spawn') + processes = [] + times = 3 + queue = ctx.Queue() + for idx in range(3): + processes.append(ctx.Process(target=import_process, args=(queue, ))) + for p in processes: + p.start() + for p in processes: + p.join() + for _ in range(times): + assert queue.get(), "One of processes failed." + + +def import_process(queue): + try: + from mujoco_py import builder + mjpro_path, key_path = builder.discover_mujoco() + builder.load_cython_ext(mjpro_path) + except Exception as e: + queue.put(False) + else: + queue.put(True) diff --git a/mujoco_py/tests/test_examples.py b/mujoco_py/tests/test_examples.py new file mode 100644 index 00000000..683edb3b --- /dev/null +++ b/mujoco_py/tests/test_examples.py @@ -0,0 +1,20 @@ +import subprocess +import glob +import os.path +import mujoco_py +import sys +from mujoco_py.tests.utils import requires_rendering +mujoco_py_root = os.path.dirname(os.path.dirname(mujoco_py.__file__)) + + +@requires_rendering +def test_examples(): + scripts = glob.glob("%s/examples/*.py" % mujoco_py_root) + env = os.environ.update({'TESTING': 'true'}) + assert len(scripts) > 0, 'No example scripts found!' + for tutorial_script in scripts: + if tutorial_script.find("mjvive") > -1: + continue + print("Executing %s" % tutorial_script) + + subprocess.check_call([sys.executable, tutorial_script], env=env) diff --git a/mujoco_py/tests/test_gen_wrappers.py b/mujoco_py/tests/test_gen_wrappers.py new file mode 100644 index 00000000..f51d0a97 --- /dev/null +++ b/mujoco_py/tests/test_gen_wrappers.py @@ -0,0 +1,15 @@ +import subprocess +import sys +import os +import pytest + + +@pytest.mark.skipif(sys.platform.startswith("win"), reason="This test fails on windows.") +def test_gen_wrappers(): + # Verifies that gen_wrappers can be executed. + if sys.platform.startswith("win"): + fname = "C:\generated_wrappers.pxi" + else: + fname = "/tmp/generated_wrappers.pxi" + subprocess.check_call([sys.executable, + os.path.join("scripts", "gen_wrappers.py"), fname]) diff --git a/mujoco_py/tests/test_modder.py b/mujoco_py/tests/test_modder.py new file mode 100644 index 00000000..49d77ef2 --- /dev/null +++ b/mujoco_py/tests/test_modder.py @@ -0,0 +1,173 @@ +from mujoco_py import MjSim, load_model_from_xml +from mujoco_py.modder import MaterialModder, TextureModder +from mujoco_py.tests.utils import compare_imgs, requires_rendering +import numpy as np + +BASIC_MODEL_XML = """ + + + + + + + + + + + + + + + + + + + + + + + + + +""" + +@requires_rendering +def test_textures(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_textures.premod.png') + + random_state = np.random.RandomState(0) + modder = TextureModder(sim, random_state=random_state) + modder.whiten_materials() + modder.whiten_materials(['g1', 'g2']) + + modder.set_rgb('g1', (255, 0, 0)) + modder.set_rgb('g2', (0, 255, 0)) + modder.set_rgb('g3', (0, 0, 255)) + modder.set_rgb('g4', (255, 0, 255)) + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_textures.rgb.png') + + modder.set_checker('g1', (255, 0, 0), (0, 255, 0)) + modder.set_gradient('g2', (0, 255, 0), (0, 0, 255), vertical=True) + modder.set_gradient('g3', (255, 255, 0), (0, 0, 255), vertical=False) + modder.set_noise('g4', (0, 0, 255), (255, 0, 0), 0.1) + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_textures.variety.png') + + modder.rand_checker('g1') + modder.rand_gradient('g2') + modder.rand_noise('g3') + modder.rand_rgb('g4') + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_textures.rand_specific.png') + + modder.rand_all('g1') + modder.rand_all('g2') + modder.rand_all('g3') + modder.rand_all('g4') + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_textures.rand_all.png') + + modder.rand_checker('g1') + modder.rand_checker('g2') + modder.rand_checker('g3') + modder.rand_checker('g4') + mat_modder = MaterialModder(sim, random_state=random_state) + mat_modder.rand_texrepeat('g1') + mat_modder.rand_texrepeat('g2') + mat_modder.rand_texrepeat('g3') + mat_modder.rand_texrepeat('g4') + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_textures.rand_texrepeat.png') + +@requires_rendering +def test_materials(): + model = load_model_from_xml(BASIC_MODEL_XML) + sim = MjSim(model) + sim.forward() + + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_materials.premod.png') + + random_state = np.random.RandomState(0) + modder = MaterialModder(sim, random_state=random_state) + + modder.set_specularity('g1', 1.0) + modder.set_reflectance('g2', 1.0) + modder.set_shininess('g3', 1.0) + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_materials.props.png') + + modder.rand_all('g4') + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_materials.rand_all.png') + +@requires_rendering +def test_multiple_sims(): + # Ensure that creating new simulators still produces good renderings. + xml = """ + + + + + + + + + + + + """ + + model = load_model_from_xml(xml) + random_state = np.random.RandomState(0) + + for i in range(3): + sim = MjSim(model) + sim.forward() + modder = TextureModder(sim, random_state=random_state) + for j in range(2): + modder.rand_checker('g1') + compare_imgs( + sim.render(200, 200, camera_name="topcam"), + 'test_multiple_sims.loop%d_%d.png' % (i, j)) + + +@requires_rendering +def test_resetting(): + # Ensure that resetting environment and creating new simulators + # still produces good renderings. + xml = """ + + + + + + + + + + + + """ + + def get_sim(seed): + geom_type = ["box", "sphere"][seed % 2] + model = load_model_from_xml(xml.format(geom_type=geom_type)) + return MjSim(model) + + random_state = np.random.RandomState(0) + + for i in range(3): + sim = get_sim(i - 1) + sim.forward() + modder = TextureModder(sim, random_state=random_state) + for j in range(2): + modder.rand_checker('g1') + compare_imgs(sim.render(200, 200, camera_name="topcam"), + 'test_resetting.loop%d_%d.png' % (i, j)) diff --git a/mujoco_py/tests/test_pymj_sim.py b/mujoco_py/tests/test_pymj_sim.py new file mode 100644 index 00000000..f5f2ef47 --- /dev/null +++ b/mujoco_py/tests/test_pymj_sim.py @@ -0,0 +1,16 @@ +import subprocess +import sys +import mujoco_py +import pytest +import os + + +def test_import_mujoco_py_as_cymj_with_shim(): + pip = 'pip3' if sys.executable.endswith('3') else 'pip' + cmd = [pip, 'install', '--verbose', os.path.join('vendor', 'pymj_shim')] + return_code = subprocess.check_call(cmd) + assert return_code == 0, "Failed to " + (" ".join(cmd)) + with pytest.warns(UserWarning): + import pymj + assert pymj.MjSim == mujoco_py.MjSim + assert pymj.__version__ == mujoco_py.__version__ diff --git a/mujoco_py/tests/test_vfs.py b/mujoco_py/tests/test_vfs.py new file mode 100644 index 00000000..59662e1f --- /dev/null +++ b/mujoco_py/tests/test_vfs.py @@ -0,0 +1,32 @@ +from tempfile import NamedTemporaryFile +from mujoco_py import functions +from mujoco_py.cymj import PyMjVFS + + +def test_vfs(): + ''' Test basic VFS functionality ''' + vfs = PyMjVFS() + functions.mj_defaultVFS(vfs) + functions.mj_deleteVFS(vfs) + + +def test_files(): + ''' Testing handling VFS files ''' + vfs = PyMjVFS() + functions.mj_defaultVFS(vfs) + f = NamedTemporaryFile(delete=False) + name = f.name + # Try to find file before added -> missing + assert functions.mj_findFileVFS(vfs, name) == -1 + # Add file -> success + assert functions.mj_addFileVFS(vfs, '', name) == 0 + # Add file again -> failure, duplicate + assert functions.mj_addFileVFS(vfs, '', name) == 2 + # Find file -> success (index 0) + assert functions.mj_findFileVFS(vfs, name) == 0 + # Delete file -> success + assert functions.mj_deleteFileVFS(vfs, name) == 0 + # Delete file again -> failure, missing + assert functions.mj_deleteFileVFS(vfs, name) == -1 + # Add a file which does not exist -> failure, missing + assert functions.mj_addFileVFS(vfs, 'bla', name) == -1 diff --git a/mujoco_py/tests/test_viewer.py b/mujoco_py/tests/test_viewer.py new file mode 100644 index 00000000..d86674e4 --- /dev/null +++ b/mujoco_py/tests/test_viewer.py @@ -0,0 +1,13 @@ +from mujoco_py import load_model_from_path, MjSim +from mujoco_py.mjviewer import MjViewer +from mujoco_py.tests.utils import requires_rendering + + +@requires_rendering +def test_viewer(): + model = load_model_from_path("mujoco_py/tests/test.xml") + sim = MjSim(model) + viewer = MjViewer(sim) + for _ in range(100): + sim.step() + viewer.render() diff --git a/mujoco_py/tests/utils.py b/mujoco_py/tests/utils.py new file mode 100644 index 00000000..bba5be30 --- /dev/null +++ b/mujoco_py/tests/utils.py @@ -0,0 +1,51 @@ +import os +from PIL import Image +from os.path import exists, join, dirname, abspath +from shutil import move +import numpy as np +from os.path import splitext +import imagehash +import pytest + +TEST_ASSET_DIR_PATH = abspath(join(dirname(__file__), '..', 'test_imgs')) + + +def save_test_image(filename, array): + Image.fromarray(array).save(filename) + + +def compare_imgs(img, truth_filename): + """ + PROTIP: run the following to re-generate the test images: + + REGENERATE_TEST_IMAGES=1 pytest mujoco_py/tests/test_modder.py + + Note: do this in Docker so that images will work for testing. + """ + assert isinstance(truth_filename, str) + truth_filename = join(TEST_ASSET_DIR_PATH, truth_filename) + if os.getenv('REGENERATE_TEST_IMAGES'): + if exists(truth_filename): + pre_path, ext = splitext(truth_filename) + backup_path = "%s_old%s" % (pre_path, ext) + move(truth_filename, backup_path) + save_test_image(truth_filename, img) + true_img = np.asarray(Image.open(truth_filename)) + assert img.shape == true_img.shape + hash0 = imagehash.dhash(Image.fromarray(img)) + hash1 = imagehash.dhash(Image.fromarray(true_img)) + diff = np.sum(hash0.hash != hash1.hash) + if diff != 0: + # If the assert fails, the best way to investigate is to run + # pytest for the particular test. For example, + # + # pytest -k test_something_something path/to/test.py + save_test_image("/tmp/img.png", img) + save_test_image("/tmp/true_img.png", true_img) + save_test_image("/tmp/diff_img.png", img - true_img) + assert diff <= 1 + + +# Skips test when RENDERING_OFF. +requires_rendering = pytest.mark.skipif(os.environ.get("RENDERING_OFF", False), + reason="Skip test when system doesn't support rendering") diff --git a/mujoco_py/util.py b/mujoco_py/util.py deleted file mode 100644 index acea3474..00000000 --- a/mujoco_py/util.py +++ /dev/null @@ -1,231 +0,0 @@ -import ctypes, os, sys -from ctypes import * -import six - -# MAXINT on Python 2, undefined on Python 3 -MAXINT = 9223372036854775807 - -class UserString: - def __init__(self, seq): - if isinstance(seq, basestring): - self.data = seq - elif isinstance(seq, UserString): - self.data = seq.data[:] - else: - self.data = str(seq) - def __str__(self): return str(self.data) - def __repr__(self): return repr(self.data) - def __int__(self): return int(self.data) - def __long__(self): return long(self.data) - def __float__(self): return float(self.data) - def __complex__(self): return complex(self.data) - def __hash__(self): return hash(self.data) - - def __cmp__(self, string): - if isinstance(string, UserString): - return cmp(self.data, string.data) - else: - return cmp(self.data, string) - def __contains__(self, char): - return char in self.data - - def __len__(self): return len(self.data) - def __getitem__(self, index): return self.__class__(self.data[index]) - def __getslice__(self, start, end): - start = max(start, 0); end = max(end, 0) - return self.__class__(self.data[start:end]) - - def __add__(self, other): - if isinstance(other, UserString): - return self.__class__(self.data + other.data) - elif isinstance(other, basestring): - return self.__class__(self.data + other) - else: - return self.__class__(self.data + str(other)) - def __radd__(self, other): - if isinstance(other, basestring): - return self.__class__(other + self.data) - else: - return self.__class__(str(other) + self.data) - def __mul__(self, n): - return self.__class__(self.data*n) - __rmul__ = __mul__ - def __mod__(self, args): - return self.__class__(self.data % args) - - # the following methods are defined in alphabetical order: - def capitalize(self): return self.__class__(self.data.capitalize()) - def center(self, width, *args): - return self.__class__(self.data.center(width, *args)) - def count(self, sub, start=0, end=MAXINT): - return self.data.count(sub, start, end) - def decode(self, encoding=None, errors=None): # XXX improve this? - if encoding: - if errors: - return self.__class__(self.data.decode(encoding, errors)) - else: - return self.__class__(self.data.decode(encoding)) - else: - return self.__class__(self.data.decode()) - def encode(self, encoding=None, errors=None): # XXX improve this? - if encoding: - if errors: - return self.__class__(self.data.encode(encoding, errors)) - else: - return self.__class__(self.data.encode(encoding)) - else: - return self.__class__(self.data.encode()) - def endswith(self, suffix, start=0, end=MAXINT): - return self.data.endswith(suffix, start, end) - def expandtabs(self, tabsize=8): - return self.__class__(self.data.expandtabs(tabsize)) - def find(self, sub, start=0, end=MAXINT): - return self.data.find(sub, start, end) - def index(self, sub, start=0, end=MAXINT): - return self.data.index(sub, start, end) - def isalpha(self): return self.data.isalpha() - def isalnum(self): return self.data.isalnum() - def isdecimal(self): return self.data.isdecimal() - def isdigit(self): return self.data.isdigit() - def islower(self): return self.data.islower() - def isnumeric(self): return self.data.isnumeric() - def isspace(self): return self.data.isspace() - def istitle(self): return self.data.istitle() - def isupper(self): return self.data.isupper() - def join(self, seq): return self.data.join(seq) - def ljust(self, width, *args): - return self.__class__(self.data.ljust(width, *args)) - def lower(self): return self.__class__(self.data.lower()) - def lstrip(self, chars=None): return self.__class__(self.data.lstrip(chars)) - def partition(self, sep): - return self.data.partition(sep) - def replace(self, old, new, maxsplit=-1): - return self.__class__(self.data.replace(old, new, maxsplit)) - def rfind(self, sub, start=0, end=MAXINT): - return self.data.rfind(sub, start, end) - def rindex(self, sub, start=0, end=MAXINT): - return self.data.rindex(sub, start, end) - def rjust(self, width, *args): - return self.__class__(self.data.rjust(width, *args)) - def rpartition(self, sep): - return self.data.rpartition(sep) - def rstrip(self, chars=None): return self.__class__(self.data.rstrip(chars)) - def split(self, sep=None, maxsplit=-1): - return self.data.split(sep, maxsplit) - def rsplit(self, sep=None, maxsplit=-1): - return self.data.rsplit(sep, maxsplit) - def splitlines(self, keepends=0): return self.data.splitlines(keepends) - def startswith(self, prefix, start=0, end=MAXINT): - return self.data.startswith(prefix, start, end) - def strip(self, chars=None): return self.__class__(self.data.strip(chars)) - def swapcase(self): return self.__class__(self.data.swapcase()) - def title(self): return self.__class__(self.data.title()) - def translate(self, *args): - return self.__class__(self.data.translate(*args)) - def upper(self): return self.__class__(self.data.upper()) - def zfill(self, width): return self.__class__(self.data.zfill(width)) - -class MutableString(UserString): - """mutable string objects - - Python strings are immutable objects. This has the advantage, that - strings may be used as dictionary keys. If this property isn't needed - and you insist on changing string values in place instead, you may cheat - and use MutableString. - - But the purpose of this class is an educational one: to prevent - people from inventing their own mutable string class derived - from UserString and than forget thereby to remove (override) the - __hash__ method inherited from UserString. This would lead to - errors that would be very hard to track down. - - A faster and better solution is to rewrite your program using lists.""" - def __init__(self, string=""): - self.data = string - def __hash__(self): - raise TypeError("unhashable type (it is mutable)") - def __setitem__(self, index, sub): - if index < 0: - index += len(self.data) - if index < 0 or index >= len(self.data): raise IndexError - self.data = self.data[:index] + sub + self.data[index+1:] - def __delitem__(self, index): - if index < 0: - index += len(self.data) - if index < 0 or index >= len(self.data): raise IndexError - self.data = self.data[:index] + self.data[index+1:] - def __setslice__(self, start, end, sub): - start = max(start, 0); end = max(end, 0) - if isinstance(sub, UserString): - self.data = self.data[:start]+sub.data+self.data[end:] - elif isinstance(sub, basestring): - self.data = self.data[:start]+sub+self.data[end:] - else: - self.data = self.data[:start]+str(sub)+self.data[end:] - def __delslice__(self, start, end): - start = max(start, 0); end = max(end, 0) - self.data = self.data[:start] + self.data[end:] - def immutable(self): - return UserString(self.data) - def __iadd__(self, other): - if isinstance(other, UserString): - self.data += other.data - elif isinstance(other, basestring): - self.data += other - else: - self.data += str(other) - return self - def __imul__(self, n): - self.data *= n - return self - -class String(MutableString, Union): - - _fields_ = [('raw', POINTER(c_char)), - ('data', c_char_p)] - - def __init__(self, obj=""): - if isinstance(obj, six.text_type): - self.data = obj.encode('ascii') - elif isinstance(obj, six.binary_type): - self.data = obj - elif isinstance(obj, UserString): - self.data = six.b(obj) - else: - self.raw = obj - - def __len__(self): - return self.data and len(self.data) or 0 - - def from_param(cls, obj): - # Convert None or 0 - if obj is None or obj == 0: - return cls(POINTER(c_char)()) - - # Convert from String - elif isinstance(obj, String): - return obj - - # Convert from str - elif isinstance(obj, str): - return cls(obj) - - # Convert from c_char_p - elif isinstance(obj, c_char_p): - return obj - - # Convert from POINTER(c_char) - elif isinstance(obj, POINTER(c_char)): - return obj - - # Convert from raw pointer - elif isinstance(obj, int): - return cls(cast(obj, POINTER(c_char))) - - # Convert from object - else: - return String.from_param(obj._as_parameter_) - from_param = classmethod(from_param) - -def ReturnString(obj, func=None, arguments=None): - return String.from_param(obj) diff --git a/mujoco_py/utils.py b/mujoco_py/utils.py new file mode 100644 index 00000000..cee9633f --- /dev/null +++ b/mujoco_py/utils.py @@ -0,0 +1,57 @@ +import copy +from os.path import join, expanduser + +import numpy as np + + + +def remove_empty_lines(string): + lines = [] + for line in string.splitlines(): + if line.strip(): + lines.append(line) + return "\n".join(lines) + + +def rec_assign(node, assign): + # Assigns values to node recursively. + # This is neccessary to avoid overriding pointers in MuJoCo. + for field in dir(node): + if field.find("__") == -1: + val = getattr(node, field) + if isinstance(val, (int, bool, float, None.__class__, str)): + setattr(node, field, assign[field]) + elif isinstance(val, np.ndarray): + val[:] = assign[field][:] + elif not hasattr(val, "__call__"): + rec_assign(val, assign[field]) + + +def rec_copy(node): + # Recursively copies object to dictionary. + # Applying directly copy.deepcopy causes seg fault. + ret = {} + for field in dir(node): + if field.find("__") == -1: + val = getattr(node, field) + if isinstance(val, (int, bool, float, None.__class__, str)): + ret[field] = val + elif isinstance(val, np.ndarray): + ret[field] = copy.deepcopy(val) + elif not hasattr(val, "__call__"): + ret[field] = rec_copy(val) + return ret + + +def discover_mujoco(): + """ + Discovers where MuJoCo is located in the file system. + Currently assumes path is in ~/.mujoco + + Returns: + - mjpro_path (str): Path to MuJoCo Pro 1.50 directory. + - key_path (str): Path to the MuJoCo license key. + """ + key_path = join(expanduser('~'), '.mujoco', 'mjkey.txt') + mjpro_path = join(expanduser('~'), '.mujoco', 'mjpro150') + return (mjpro_path, key_path) diff --git a/mujoco_py/vendor/osx/mujoco/mujoco.h b/mujoco_py/vendor/osx/mujoco/mujoco.h deleted file mode 100644 index e38c3cab..00000000 --- a/mujoco_py/vendor/osx/mujoco/mujoco.h +++ /dev/null @@ -1,829 +0,0 @@ -//-----------------------------------// -// This file is part of MuJoCo. // -// Copyright (C) 2016 Roboti LLC. // -//-----------------------------------// - - -#pragma once - - -// cross-platform import -#if defined(MJ_STATIC) - #define MJAPI -#else - #if defined(_WIN32) - #define MJAPI __declspec(dllimport) - #else - #define MJAPI - #endif -#endif - - -// this is a C-API -#if defined(__cplusplus) -extern "C" -{ -#endif - -// header version; should match the library version as returned by mj_version() -#define mjVERSION_HEADER 131 - - -// needed to define size_t, fabs and log10 -#include "stdlib.h" -#include "math.h" - - -// type definitions -#include "mjmodel.h" -#include "mjdata.h" -#include "mjvisualize.h" -#include "mjrender.h" - - -// macros -#define mjMARKSTACK int _mark = d->pstack; -#define mjFREESTACK d->pstack = _mark; -#define mjDISABLED(x) (m->opt.disableflags & (x)) -#define mjENABLED(x) (m->opt.enableflags & (x)) - - -// user error and memory handlers -MJAPI extern void (*mju_user_error)(const char*); -MJAPI extern void (*mju_user_warning)(const char*); -MJAPI extern void* (*mju_user_malloc)(size_t); -MJAPI extern void (*mju_user_free)(void*); - - -// callbacks extending computation pipeline -MJAPI extern mjfGeneric mjcb_endstep; -MJAPI extern mjfGeneric mjcb_passive; -MJAPI extern mjfGeneric mjcb_control; -MJAPI extern mjfTime mjcb_time; -MJAPI extern mjfAct mjcb_act_dyn; -MJAPI extern mjfAct mjcb_act_gain; -MJAPI extern mjfAct mjcb_act_bias; -MJAPI extern mjfMagnetic mjcb_magnetic; -MJAPI extern mjfSolImp mjcb_sol_imp; -MJAPI extern mjfSolRef mjcb_sol_ref; - -// collision function table -MJAPI extern mjfCollision mjCOLLISIONFUNC[mjNGEOMTYPES][mjNGEOMTYPES]; - - -// string names -MJAPI extern const char* mjVISSTRING[mjNVISFLAG][3]; -MJAPI extern const char* mjRNDSTRING[mjNRNDFLAG][3]; -MJAPI extern const char* mjDISABLESTRING[mjNDISABLE]; -MJAPI extern const char* mjENABLESTRING[mjNENABLE]; -MJAPI extern const char* mjTIMERSTRING[mjNTIMER]; - - -//---------------------- License activation and certificate (mutex-protected) ----------- - -// activate license, call mju_error on failure; return 1 if ok, 0 if failure -MJAPI int mj_activate(const char* filename); - -// deactivate license, free memory -MJAPI void mj_deactivate(void); - -// server: generate certificate question -MJAPI void mj_certQuestion(mjtNum question[16]); - -// client: generate certificate answer given question -MJAPI void mj_certAnswer(const mjtNum question[16], mjtNum answer[16]); - -// server: check certificate question-answer pair; return 1 if match, 0 if mismatch -MJAPI int mj_certCheck(const mjtNum question[16], const mjtNum answer[16]); - - -//---------------------- XML parser and C++ compiler (mutex-protected) ------------------ - -// parse XML file or string in MJCF or URDF format, compile it, return low-level model -// if xmlstring is not NULL, it has precedence over filename -// error can be NULL; otherwise assumed to have size error_sz -MJAPI mjModel* mj_loadXML(const char* filename, const char* xmlstring, - char* error, int error_sz); - -// update XML data structures with info from low-level model, save as MJCF -// error can be NULL; otherwise assumed to have size error_sz -MJAPI int mj_saveXML(const char* filename, const mjModel* m, char* error, int error_sz); - -// print internal XML schema as plain text or HTML, with style-padding or   -MJAPI int mj_printSchema(const char* filename, char* buffer, int buffer_sz, - int flg_html, int flg_pad); - - -//---------------------- Main entry points ---------------------------------------------- - -// advance simulation: use control callback, no external force, RK4 available -MJAPI void mj_step(const mjModel* m, mjData* d); - -// advance simulation in two steps: before external force/control is set by user -MJAPI void mj_step1(const mjModel* m, mjData* d); - -// advance simulation in two steps: after external force/control is set by user -MJAPI void mj_step2(const mjModel* m, mjData* d); - -// forward dynamics -MJAPI void mj_forward(const mjModel* m, mjData* d); - -// inverse dynamics -MJAPI void mj_inverse(const mjModel* m, mjData* d); - -// forward dynamics with skip: 0- no skip, 1- skip pos, 2- skip pos,vel -MJAPI void mj_forwardSkip(const mjModel* m, mjData* d, int skip); - -// inverse dynamics with skip: 0- no skip, 1- skip pos, 2- skip pos,vel -MJAPI void mj_inverseSkip(const mjModel* m, mjData* d, int skip); - -// sensor data -MJAPI void mj_sensor(const mjModel* m, mjData* d); - -// energy -MJAPI void mj_energy(const mjModel* m, mjData* d); - - -//---------------------- Model and data initialization ---------------------------------- - -// set default solver paramters -MJAPI void mj_defaultSolRefImp(mjtNum* solref, mjtNum* solimp); - -// set physics options to default values -MJAPI void mj_defaultOption(mjOption* opt); - -// set visual options to default values -MJAPI void mj_defaultVisual(mjVisual* vis); - -// copy mjModel; allocate new if dest is NULL -MJAPI mjModel* mj_copyModel(mjModel* dest, const mjModel* src); - -// save model to binary file or memory buffer (buffer has precedence if szbuf>0) -MJAPI void mj_saveModel(const mjModel* m, const char* filename, void* buffer, int buffer_sz); - -// load model from binary file or memory buffer (buffer has precedence if szbuf>0) -MJAPI mjModel* mj_loadModel(const char* filename, void* buffer, int buffer_sz); - -// de-allocate model -MJAPI void mj_deleteModel(mjModel* m); - -// size of buffer needed to hold model -MJAPI int mj_sizeModel(const mjModel* m); - -// allocate mjData correponding to given model -MJAPI mjData* mj_makeData(const mjModel* m); - -// copy mjData -MJAPI mjData* mj_copyData(mjData* dest, const mjModel* m, const mjData* src); - -// set data to defaults -MJAPI void mj_resetData(const mjModel* m, mjData* d); - -// set data to defaults, fill everything else with debug_value -MJAPI void mj_resetDataDebug(const mjModel* m, mjData* d, unsigned char debug_value); - -// mjData stack allocate -MJAPI mjtNum* mj_stackAlloc(mjData* d, int size); - -// de-allocate data -MJAPI void mj_deleteData(mjData* d); - -// reset callbacks to defaults -MJAPI void mj_resetCallbacks(void); - -// set constant fields of mjModel -MJAPI void mj_setConst(mjModel* m, mjData* d, int flg_actrange); - - -//---------------------- Printing ------------------------------------------------------- - -// print model to text file -MJAPI void mj_printModel(const mjModel* m, const char* filename); - -// print data to text file -MJAPI void mj_printData(const mjModel* m, mjData* d, const char* filename); - -// print matrix to screen -MJAPI void mju_printMat(const mjtNum* mat, int nr, int nc); - - -//---------------------- Components: forward dynamics ----------------------------------- - -// position-dependent computations -MJAPI void mj_fwdPosition(const mjModel* m, mjData* d); - -// velocity-dependent computations -MJAPI void mj_fwdVelocity(const mjModel* m, mjData* d); - -// compute actuator force -MJAPI void mj_fwdActuation(const mjModel* m, mjData* d); - -// add up all non-constraint forces, compute qacc_unc -MJAPI void mj_fwdAcceleration(const mjModel* m, mjData* d); - -// constraint solver -MJAPI void mj_fwdConstraint(const mjModel* m, mjData* d); - -// Euler integrator, semi-implicit in velocity -MJAPI void mj_Euler(const mjModel* m, mjData* d); - -// Runge-Kutta explicit order-N integrator -MJAPI void mj_RungeKutta(const mjModel* m, mjData* d, int N); - - -//---------------------- Components: inverse dynamics ----------------------------------- - -// position-dependent computations -MJAPI void mj_invPosition(const mjModel* m, mjData* d); - -// velocity-dependent computations -MJAPI void mj_invVelocity(const mjModel* m, mjData* d); - -// constraint solver -MJAPI void mj_invConstraint(const mjModel* m, mjData* d); - -// compare forward and inverse dynamics, without changing results of forward dynamics -MJAPI void mj_compareFwdInv(const mjModel* m, mjData* d); - - -//---------------------- Sub-components of the computation pipeline --------------------- - -// check positions; reset if bad -MJAPI void mj_checkPos(const mjModel* m, mjData* d); - -// check velocities; reset if bad -MJAPI void mj_checkVel(const mjModel* m, mjData* d); - -// check accelerations; reset if bad -MJAPI void mj_checkAcc(const mjModel* m, mjData* d); - -// forward kinematics -MJAPI void mj_kinematics(const mjModel* m, mjData* d); - -// map inertias and motion dofs to global frame centered at CoM -MJAPI void mj_comPos(const mjModel* m, mjData* d); - -// compute camera and light positions and orientations -MJAPI void mj_camlight(const mjModel* m, mjData* d); - -// compute tendon lengths, velocities and moment arms -MJAPI void mj_tendon(const mjModel* m, mjData* d); - -// compute actuator transmission lengths and moments -MJAPI void mj_transmission(const mjModel* m, mjData* d); - -// composite rigid body inertia algorithm -MJAPI void mj_crb(const mjModel* m, mjData* d); - -// sparse L'*D*L factorizaton of the inertia matrix -MJAPI void mj_factorM(const mjModel* m, mjData* d); - -// sparse backsubstitution: x = inv(L'*D*L)*y -MJAPI void mj_backsubM(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* y, int n); - -// half of sparse backsubstitution: x = sqrt(inv(D))*inv(L')*y -MJAPI void mj_backsubM2(const mjModel* m, mjData* d, mjtNum* x, const mjtNum* y, int n); - -// compute cvel, cdof_dot -MJAPI void mj_comVel(const mjModel* m, mjData* d); - -// spring-dampers and body viscosity -MJAPI void mj_passive(const mjModel* m, mjData* d); - -// RNE: compute M(qpos)*qacc + C(qpos,qvel); flg_acc=0 removes inertial term -MJAPI void mj_rne(const mjModel* m, mjData* d, int flg_acc, mjtNum* result); - -// RNE with complete data: compute cacc, cfrc_ext, cfrc_int -MJAPI void mj_rnePostConstraint(const mjModel* m, mjData* d); - -// collision detection -MJAPI void mj_collision(const mjModel* m, mjData* d); - -// construct constraints -MJAPI void mj_makeConstraint(const mjModel* m, mjData* d); - -// compute dense matrices: efc_AR, e_ARchol, fc_half, fc_AR -MJAPI void mj_projectConstraint(const mjModel* m, mjData* d); - -// compute efc_vel, efc_aref -MJAPI void mj_referenceConstraint(const mjModel* m, mjData* d); - - -//---------------------- Support functions ---------------------------------------------- - -// determine type of friction cone -MJAPI int mj_isPyramid(const mjModel* m); - -// determine type of constraint Jacobian -MJAPI int mj_isSparse(const mjModel* m); - -// multiply Jacobian by vector -MJAPI void mj_mulJacVec(const mjModel* m, mjData* d, - mjtNum* res, const mjtNum* vec); - -// multiply JacobianT by vector -MJAPI void mj_mulJacTVec(const mjModel* m, mjData* d, mjtNum* res, const mjtNum* vec); - -// compute 3/6-by-nv Jacobian of global point attached to given body -MJAPI void mj_jac(const mjModel* m, const mjData* d, - mjtNum* jacp, mjtNum* jacr, const mjtNum* point, int body); - -// compute body frame Jacobian -MJAPI void mj_jacBody(const mjModel* m, const mjData* d, - mjtNum* jacp, mjtNum* jacr, int body); - -// compute body center-of-mass Jacobian -MJAPI void mj_jacBodyCom(const mjModel* m, const mjData* d, - mjtNum* jacp, mjtNum* jacr, int body); - -// compute geom Jacobian -MJAPI void mj_jacGeom(const mjModel* m, const mjData* d, - mjtNum* jacp, mjtNum* jacr, int geom); - -// compute site Jacobian -MJAPI void mj_jacSite(const mjModel* m, const mjData* d, - mjtNum* jacp, mjtNum* jacr, int site); - -// compute translation Jacobian of point, and rotation Jacobian of axis -MJAPI void mj_jacPointAxis(const mjModel* m, mjData* d, - mjtNum* jacPoint, mjtNum* jacAxis, - const mjtNum* point, const mjtNum* axis, int body); - -// get id of object with specified name; -1: not found; type is mjtObj -MJAPI int mj_name2id(const mjModel* m, int type, const char* name); - -// get name of object with specified id; 0: invalid type or id; type is mjtObj -MJAPI const char* mj_id2name(const mjModel* m, int type, int id); - -// convert sparse inertia matrix M into full matrix -MJAPI void mj_fullM(const mjModel* m, mjtNum* dst, const mjtNum* M); - -// multiply vector by inertia matrix -MJAPI void mj_mulM(const mjModel* m, const mjData* d, mjtNum* res, const mjtNum* vec); - -// apply cartesian force and torque (outside xfrc_applied mechanism) -MJAPI void mj_applyFT(const mjModel* m, mjData* d, - const mjtNum* force, const mjtNum* torque, - const mjtNum* point, int body, mjtNum* qfrc_target); - -// compute object 6D velocity in object-centered frame, world/local orientation -MJAPI void mj_objectVelocity(const mjModel* m, const mjData* d, - int objtype, int objid, mjtNum* res, int flg_local); - -// compute object 6D acceleration in object-centered frame, world/local orientation -MJAPI void mj_objectAcceleration(const mjModel* m, const mjData* d, - int objtype, int objid, mjtNum* res, int flg_local); - -// compute velocity by finite-differencing two positions -MJAPI void mj_differentiatePos(const mjModel* m, mjtNum* qvel, mjtNum dt, - const mjtNum* qpos1, const mjtNum* qpos2); - -// extract 6D force:torque for one contact, in contact frame -MJAPI void mj_contactForce(const mjModel* m, const mjData* d, int id, mjtNum* result); - -// integrate position with given velocity -MJAPI void mj_integratePos(const mjModel* m, mjtNum* qpos, const mjtNum* qvel, mjtNum dt); - -// normalize all quaterions in qpos-type vector -MJAPI void mj_normalizeQuat(const mjModel* m, mjtNum* qpos); - -// map from body local to global Cartesian coordinates -MJAPI void mj_local2Global(mjData* d, mjtNum* xpos, mjtNum* xmat, - const mjtNum* pos, const mjtNum* quat, int body); - -// sum all body masses -MJAPI mjtNum mj_getTotalmass(const mjModel* m); - -// scale body masses and inertias to achieve specified total mass -MJAPI void mj_setTotalmass(mjModel* m, mjtNum newmass); - -// version number: 1.0.2 is encoded as 102 -MJAPI int mj_version(void); - - -//---------------------- Asbtract visualization: 3D -------------------------------------- - -// init visualization objects, allocate buffers -MJAPI void mjv_makeObjects(mjvObjects* obj, int maxgeom); - -// free visualization objects -MJAPI void mjv_freeObjects(mjvObjects* obj); - -// set default visualization options -MJAPI void mjv_defaultOption(mjvOption* vopt); - -// set default camera pose -MJAPI void mjv_defaultCameraPose(mjvCameraPose* pose); - -// set default camera -MJAPI void mjv_defaultCamera(mjvCamera* cam); - -// set high-level camera info, or pose for fixed camera -MJAPI void mjv_setCamera(const mjModel* m, const mjData* d, mjvCamera* cam); - -// update camera pose given high-level info -MJAPI void mjv_updateCameraPose(mjvCamera* cam, mjtNum aspect); - -// convert 3D vector to z-aligned world coordinates -MJAPI void mjv_convert3D(mjtNum* res, const mjtNum* vec, - mjtNum scale, const mjvCameraPose* campose); - -// convert 2D mouse motion to z-aligned 3D world coordinates; mode is mjtMouse -MJAPI void mjv_convert2D(mjtNum* res, int mode, mjtNum dx, mjtNum dy, - mjtNum scale, const mjvCameraPose* campose); - -// move camera; action is mjtMouse -MJAPI void mjv_moveCamera(int action, float dx, float dy, mjvCamera* cam, - float width, float height); - -// translate or rotate object; action is mjtMouse -MJAPI void mjv_moveObject(int action, float dx, float dy, const mjvCameraPose* campose, - float width, float height, mjtNum* pos, mjtNum* quat); - -// compute mouse perturbation: result = (3D force, 3D torque) -MJAPI void mjv_mousePerturb(const mjModel* m, mjData* d, int select, int perturb, - const mjtNum* refpos, const mjtNum* refquat, mjtNum* result); - -// move selected subtree or fixed body -MJAPI void mjv_mouseEdit(mjModel* m, mjData* d, int select, - int perturb, const mjtNum* refpos, const mjtNum* refquat); - -// make list of abstract geoms in mjvObjects -MJAPI void mjv_makeGeoms(const mjModel* m, mjData* d, mjvObjects* obj, - const mjvOption* vopt, int catmask, int select, - const mjtNum* refpos, const mjtNum* refquat, const mjtNum* localpos); - -// make list of abstract lights in mjvObjects -MJAPI void mjv_makeLights(const mjModel* m, mjData* d, mjvObjects* obj); - - -//---------------------- OpenGL rendering: 3D ------------------------------------------- - -// text overlay; gridpos is mjtGridPos -MJAPI void mjr_overlay(mjrRect viewport, int gridpos, int big, - const char* overlay, const char* overlay2, const mjrContext* con); - -// draw rectangle -MJAPI void mjr_rectangle(mjrRect viewport, - double left, double bottom, double rwidth, double rheight, - double r, double g, double b, double a); - -// plot 2d lines -MJAPI void mjr_lines(mjrRect viewport, int nline, const int* npoint, const mjtNum* data); - -// call glFinish -MJAPI void mjr_finish(void); - -// render text (normal or big) -MJAPI void mjr_text(const char* txt, const mjrContext* con, int big, - float x, float y, float z, float r, float g, float b); - -// render text with background clear (always normal) -MJAPI void mjr_textback(const char* txt, const mjrContext* con, - float x, float y, float z, float r, float g, float b); - -// compute text width (normal or big) -MJAPI int mjr_textWidth(const char* txt, const mjrContext* con, int big); - -// set default mjrOption -MJAPI void mjr_defaultOption(mjrOption* ropt); - -// set default mjrContext -MJAPI void mjr_defaultContext(mjrContext* con); - -// (re) upload texture to GPU -MJAPI void mjr_uploadTexture(const mjModel* m, const mjrContext* con, int texid); - -// (re) upload mesh to GPU -MJAPI void mjr_uploadMesh(const mjModel* m, const mjrContext* con, int meshid); - -// (re) upload height field to GPU -MJAPI void mjr_uploadHField(const mjModel* m, const mjrContext* con, int hfieldid); - -// allocate resources in custom OpenGL context; fontscale = 100, 150, 200 (%) -MJAPI void mjr_makeContext(const mjModel* m, mjrContext* con, int fontscale); - -// free resources in custom OpenGL context -MJAPI void mjr_freeContext(mjrContext* con); - -// 3D rendering -MJAPI void mjr_render(int flg_offscreen, mjrRect viewport, mjvObjects* obj, - const mjrOption* ropt, mjvCameraPose* campose, const mjrContext* con); - -// 3D selection -MJAPI int mjr_select(mjrRect viewport, mjvObjects* obj, - int mousex, int mousey, mjtNum* pos, mjtNum* depth, - const mjrOption* ropt, mjvCameraPose* campose, const mjrContext* con); - -// show offscreen image -MJAPI void mjr_showOffscreen(int left, int bottom, const mjrContext* con); - -// show image from RGB buffer -MJAPI void mjr_showBuffer(unsigned char* rgb, int rgbwidth, int rgbheight, - int left, int bottom, const mjrContext* con); - -// get offscreen image -MJAPI void mjr_getOffscreen(unsigned char* rgb, float* depth, - mjrRect viewport, const mjrContext* con); - -// get backbuffer image -MJAPI void mjr_getBackbuffer(unsigned char* rgb, float* depth, - mjrRect viewport, const mjrContext* con); - -// call glGetError internally and return result -MJAPI int mjr_getError(void); - - -//---------------------- Utility functions: error and memory ---------------------------- - -// main error function; does not return to caller -MJAPI void mju_error(const char* msg); - -// error function with int argument; msg is a printf format string -MJAPI void mju_error_i(const char* msg, int i); - -// error function with string argument -MJAPI void mju_error_s(const char* msg, const char* text); - -// main warning function; returns to caller -MJAPI void mju_warning(const char* msg); - -// warning function with int argument -MJAPI void mju_warning_i(const char* msg, int i); - -// warning function with string argument -MJAPI void mju_warning_s(const char* msg, const char* text); - -// clear user error and memory handlers -MJAPI void mju_clearHandlers(void); - -// allocate memory; byte-align on 8; pad size to multiple of 8 -MJAPI void* mju_malloc(size_t size); - -// free memory (with free() by default) -MJAPI void mju_free(void* ptr); - -// high-level warning function: count warnings in mjData, print only the first -MJAPI void mj_warning(mjData* d, int warning, int info); - - -//---------------------- Utility functions: basic math ---------------------------------- - -#define mjMAX(a,b) (((a) > (b)) ? (a) : (b)) -#define mjMIN(a,b) (((a) < (b)) ? (a) : (b)) - -#ifdef mjUSEDOUBLE - #define mju_sqrt sqrt - #define mju_exp exp - #define mju_sin sin - #define mju_cos cos - #define mju_tan tan - #define mju_asin asin - #define mju_acos acos - #define mju_atan2 atan2 - #define mju_tanh tanh - #define mju_pow pow - #define mju_abs fabs - #define mju_log log - #define mju_log10 log10 - #define mju_floor floor - #define mju_ceil ceil - -#else - #define mju_sqrt sqrtf - #define mju_exp expf - #define mju_sin sinf - #define mju_cos cosf - #define mju_tan tanf - #define mju_asin asinf - #define mju_acos acosf - #define mju_atan2 atan2f - #define mju_tanh tanhf - #define mju_pow powf - #define mju_abs fabsf - #define mju_log logf - #define mju_log10 log10f - #define mju_floor floorf - #define mju_ceil ceilf -#endif - -// set vector to zero -MJAPI void mju_zero3(mjtNum* res); - -// copy vector -MJAPI void mju_copy3(mjtNum* res, const mjtNum* data); - -// scale vector -MJAPI void mju_scl3(mjtNum* res, const mjtNum* vec, mjtNum scl); - -// add vectors -MJAPI void mju_add3(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2); - -// subtract vectors -MJAPI void mju_sub3(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2); - -// add to vector -MJAPI void mju_addTo3(mjtNum* res, const mjtNum* vec); - -// add scaled to vector -MJAPI void mju_addToScl3(mjtNum* res, const mjtNum* vec, mjtNum scl); - -// res = vec1 + scl*vec2 -MJAPI void mju_addScl3(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2, mjtNum scl); - -// normalize vector, return length before normalization -MJAPI mjtNum mju_normalize3(mjtNum* res); - -// compute vector length (without normalizing) -MJAPI mjtNum mju_norm3(const mjtNum* res); - -// vector dot-product -MJAPI mjtNum mju_dot3(const mjtNum* vec1, const mjtNum* vec2); - -// Cartesian distance between 3D vectors -MJAPI mjtNum mju_dist3(const mjtNum* pos1, const mjtNum* pos2); - -// multiply vector by 3D rotation matrix -MJAPI void mju_rotVecMat(mjtNum* res, const mjtNum* vec, const mjtNum* mat); - -// multiply vector by transposed 3D rotation matrix -MJAPI void mju_rotVecMatT(mjtNum* res, const mjtNum* vec, const mjtNum* mat); - -// vector cross-product, 3D -MJAPI void mju_cross(mjtNum* res, const mjtNum* a, const mjtNum* b); - -// set vector to zero -MJAPI void mju_zero(mjtNum* res, int n); - -// copy vector -MJAPI void mju_copy(mjtNum* res, const mjtNum* data, int n); - -// scale vector -MJAPI void mju_scl(mjtNum* res, const mjtNum* vec, mjtNum scl, int n); - -// add vectors -MJAPI void mju_add(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2, int n); - -// subtract vectors -MJAPI void mju_sub(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2, int n); - -// add to vector -MJAPI void mju_addTo(mjtNum* res, const mjtNum* vec, int n); - -// add scaled to vector -MJAPI void mju_addToScl(mjtNum* res, const mjtNum* vec, mjtNum scl, int n); - -// res = vec1 + scl*vec2 -MJAPI void mju_addScl(mjtNum* res, const mjtNum* vec1, const mjtNum* vec2, - mjtNum scl, int n); - -// normalize vector, return length before normalization -MJAPI mjtNum mju_normalize(mjtNum* res, int n); - -// compute vector length (without normalizing) -MJAPI mjtNum mju_norm(const mjtNum* res, int n); - -// vector dot-product -MJAPI mjtNum mju_dot(const mjtNum* vec1, const mjtNum* vec2, const int n); - -// multiply matrix and vector -MJAPI void mju_mulMatVec(mjtNum* res, const mjtNum* mat, const mjtNum* vec, - int nr, int nc); - -// multiply transposed matrix and vector -MJAPI void mju_mulMatTVec(mjtNum* res, const mjtNum* mat, const mjtNum* vec, - int nr, int nc); - -// transpose matrix -MJAPI void mju_transpose(mjtNum* res, const mjtNum* mat, int r, int c); - -// multiply matrices -MJAPI void mju_mulMatMat(mjtNum* res, const mjtNum* mat1, const mjtNum* mat2, - int r1, int c1, int c2); - -// multiply matrices, second argument transposed -MJAPI void mju_mulMatMatT(mjtNum* res, const mjtNum* mat1, const mjtNum* mat2, - int r1, int c1, int r2); - -// multiply matrices, first argument transposed -MJAPI void mju_mulMatTMat(mjtNum* res, const mjtNum* mat1, const mjtNum* mat2, - int r1, int c1, int c2); - -// compute M*M'; scratch must be at least r*c -MJAPI void mju_sqrMat(mjtNum* res, const mjtNum* mat, int r, int c, - mjtNum* scratch, int nscratch); - -// compute M'*diag*M (diag=NULL: compute M'*M) -MJAPI void mju_sqrMatTD(mjtNum* res, const mjtNum* mat, const mjtNum* diag, int r, int c); - -// coordinate transform of 6D motion or force vector in rotation:translation format -// rotnew2old is 3-by-3, NULL means no rotation; flg_force specifies force or motion type -MJAPI void mju_transformSpatial(mjtNum* res, const mjtNum* vec, int flg_force, - const mjtNum* newpos, const mjtNum* oldpos, - const mjtNum* rotnew2old); - - -//---------------------- Utility functions: quaternions --------------------------------- - -// rotate vector by quaternion -MJAPI void mju_rotVecQuat(mjtNum* res, const mjtNum* vec, const mjtNum* quat); - -// negate quaternion -MJAPI void mju_negQuat(mjtNum* res, const mjtNum* quat); - -// muiltiply quaternions -MJAPI void mju_mulQuat(mjtNum* res, const mjtNum* quat1, const mjtNum* quat2); - -// muiltiply quaternion and axis -MJAPI void mju_mulQuatAxis(mjtNum* res, const mjtNum* quat, const mjtNum* axis); - -// convert axisAngle to quaternion -MJAPI void mju_axisAngle2Quat(mjtNum* res, const mjtNum* axis, mjtNum angle); - -// convert quaternion (corresponding to orientation difference) to 3D velocity -MJAPI void mju_quat2Vel(mjtNum* res, const mjtNum* quat, mjtNum dt); - -// convert quaternion to 3D rotation matrix -MJAPI void mju_quat2Mat(mjtNum* res, const mjtNum* quat); - -// convert 3D rotation matrix to quaterion -MJAPI void mju_mat2Quat(mjtNum* quat, const mjtNum* mat); - -// time-derivative of quaternion, given 3D rotational velocity -MJAPI void mju_derivQuat(mjtNum* res, const mjtNum* quat, const mjtNum* vel); - -// integrate quaterion given 3D angular velocity -MJAPI void mju_quatIntegrate(mjtNum* quat, const mjtNum* vel, mjtNum scale); - -// compute quaternion performing rotation from given vector to z-axis -MJAPI void mju_quatVec2Z(mjtNum* quat, const mjtNum* vec); - - -//---------------------- Utility functions: matrix decomposition ------------------------ - -// Cholesky decomposition -MJAPI int mju_cholFactor(mjtNum* mat, mjtNum* diag, int n, - mjtNum minabs, mjtNum minrel, mjtNum* correct); - -// Cholesky backsubstitution: phase&i enables forward(i=1), backward(i=2) pass -MJAPI void mju_cholBacksub(mjtNum* res, const mjtNum* mat, const mjtNum* vec, - int n, int nvec, int phase); - -// eigenvalue decomposition of symmetric 3x3 matrix -MJAPI int mju_eig3(mjtNum* eigval, mjtNum* eigvec, mjtNum* quat, const mjtNum* mat); - - -//---------------------- Utility functions: miscellaneous ------------------------------- - -// muscle FVL curve: prm = (lminrel, lmaxrel, widthrel, vmaxrel, fmax, fvsat) -MJAPI mjtNum mju_muscleFVL(mjtNum len, mjtNum vel, mjtNum lmin, mjtNum lmax, mjtNum* prm); - -// muscle passive force: prm = (lminrel, lmaxrel, fpassive) -MJAPI mjtNum mju_musclePassive(mjtNum len, mjtNum lmin, mjtNum lmax, mjtNum* prm); - -// pneumatic cylinder dynamics -MJAPI mjtNum mju_pneumatic(mjtNum len, mjtNum len0, mjtNum vel, mjtNum* prm, - mjtNum act, mjtNum ctrl, mjtNum timestep, mjtNum* jac); - -// convert contact force to pyramid representation -MJAPI void mju_encodePyramid(mjtNum* pyramid, const mjtNum* force, - const mjtNum* mu, int dim); - -// convert pyramid representation to contact force -MJAPI void mju_decodePyramid(mjtNum* force, const mjtNum* pyramid, - const mjtNum* mu, int dim); - -// integrate spring-damper analytically, return pos(dt) -MJAPI mjtNum mju_springDamper(mjtNum pos0, mjtNum vel0, mjtNum Kp, mjtNum Kv, mjtNum dt); - -// min function, single evaluation of a and b -MJAPI mjtNum mju_min(mjtNum a, mjtNum b); - -// max function, single evaluation of a and b -MJAPI mjtNum mju_max(mjtNum a, mjtNum b); - -// sign function -MJAPI mjtNum mju_sign(mjtNum x); - -// round to nearest integer -MJAPI int mju_round(mjtNum x); - -// convert type id (mjtObj) to type name -MJAPI const char* mju_type2Str(int type); - -// convert type name to type id (mjtObj) -MJAPI int mju_str2Type(const char* str); - -// warning text -MJAPI const char* mju_warningText(int warning, int info); - -// return 1 if nan or abs(x)>mjMAXVAL, 0 otherwise -MJAPI int mju_isBad(mjtNum x); - -// return 1 if all elements are 0 -MJAPI int mju_isZero(mjtNum* vec, int n); - - -#if defined(__cplusplus) -} -#endif diff --git a/mujoco_py/version.py b/mujoco_py/version.py new file mode 100644 index 00000000..aa99ea4c --- /dev/null +++ b/mujoco_py/version.py @@ -0,0 +1,13 @@ +__all__ = ['__version__', 'get_version'] + +version_info = (1, 50, 0, 14) +# format: +# ('mujoco_major', 'mujoco_minor', 'mujoco_py_major', 'mujoco_py_minor') + + +def get_version(): + "Returns the version as a human-format string." + return '%d.%d.%d.%d' % version_info + + +__version__ = get_version() diff --git a/requirements.dev.txt b/requirements.dev.txt new file mode 100644 index 00000000..4412b0bf --- /dev/null +++ b/requirements.dev.txt @@ -0,0 +1,10 @@ +imagehash>=3.4 +ipdb +Pillow>=4.0.0 +pycparser>=2.17.0 +pytest>=3.0.5 +pytest-instafail==0.3.0 +scipy>=0.18.0 +sphinx +sphinx_rtd_theme +numpydoc diff --git a/requirements.txt b/requirements.txt index fa0d0aae..8542a941 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ -PyOpenGL==3.1.0 -numpy>=1.10.4 -nose>=1.3.7 +glfw>=1.4.0 +numpy>=1.11 +Cython>=0.25.2 +imageio>=2.1.2 diff --git a/scripts/gen_wrappers.py b/scripts/gen_wrappers.py new file mode 100644 index 00000000..2ee89e8d --- /dev/null +++ b/scripts/gen_wrappers.py @@ -0,0 +1,848 @@ +import os +import re +import subprocess +import tempfile +from collections import OrderedDict +import sys +import pycparser +from pycparser.c_ast import ArrayDecl, TypeDecl, PtrDecl +import sys + +c_compiler = "cc" +if sys.platform.startswith("win"): + c_compiler = "cl" + +def tryint(x): + try: + return int(x) + except: + return x + + +def get_struct_dict(struct, struct_name, array_shapes): + struct_dict = OrderedDict() + struct_dict[struct_name] = {'scalars': [], + 'arrays': [], + 'ptrs': [], + 'depends_on_model': False} + for child in struct.children(): + child_name = child[1].name + child_type = child[1].type + decl = child[1].children()[0][1] + if isinstance(child_type, ArrayDecl): + if hasattr(decl.type.type, "names"): + array_type = ' '.join(decl.type.type.names) + else: + # TODO: support 2d arrays in cython. + print("skipping 2d array: %s" % child_name) + continue + if isinstance(decl.dim, pycparser.c_ast.ID): + array_size = decl.dim.name + else: + array_size = int(decl.dim.value) + struct_dict[struct_name]['arrays'].append((child_name, + array_type, + array_size)) + elif isinstance(child_type, TypeDecl): + if isinstance(decl.type, pycparser.c_ast.Struct): + fixed_name = decl.declname + if fixed_name == "global": + fixed_name = "global_" + name = struct_name + "_" + fixed_name + child_struct_dict = get_struct_dict( + decl.type, name, array_shapes) + struct_dict = OrderedDict(struct_dict, **child_struct_dict) + struct_dict[struct_name]['scalars'].append((fixed_name, name)) + else: + field_type = ' '.join(decl.type.names) + struct_dict[struct_name]['scalars'].append( + (child_name, field_type)) + + elif isinstance(child_type, PtrDecl): + ptr_type = ' '.join(decl.type.type.names) + n = struct_name + '.' + child_name + if n not in array_shapes: + print('Warning: skipping {} due to unknown shape'.format(n)) + else: + struct_dict[struct_name]['ptrs'].append( + (child_name, ptr_type, array_shapes[n])) + # Structs needing array shapes must get them through mjModel + # but mjModel itself doesn't need to be passed an extra mjModel. + # TODO: depends_on_model should be set to True if any member of this struct depends on mjModel + # but currently that never happens. + if struct_name != 'mjModel': + struct_dict[struct_name]['depends_on_model'] = True + else: + raise NotImplementedError + return struct_dict + + +def get_full_scr_lines(HEADER_DIR, HEADER_FILES): + # ===== Read all header files ===== + file_contents = [] + for filename in HEADER_FILES: + with open(os.path.join(HEADER_DIR, filename), 'r') as f: + file_contents.append(f.read()) + full_src_lines = [line.strip() + for line in '\n'.join(file_contents).splitlines()] + return full_src_lines + + +def get_array_shapes(full_src_lines): + # ===== Parse array shape hints ===== + array_shapes = {} + curr_struct_name = None + for line in full_src_lines: + # Current struct name + m = re.match(r'struct (\w+)', line) + if m: + curr_struct_name = m.group(1) + continue + # Pointer with a shape comment + m = re.match(r'\s*\w+\s*\*\s+(\w+);\s*//.*\((.+) x (.+)\)$', line) + if m: + name = curr_struct_name[1:] + '.' + m.group(1) + assert name not in array_shapes + array_shapes[name] = (tryint(m.group(2)), tryint(m.group(3))) + return array_shapes + + +def get_processed_src(HEADER_DIR, full_src_lines): + # ===== Preprocess header files ===== + with tempfile.NamedTemporaryFile(suffix='.h', delete=False) as f: + f.write('\n'.join(full_src_lines).encode()) + f.flush() + print("Saved all header information to: %s" % f.name) + # -E: run preprocessor only + # -P: don't generate debug lines starting with # + # -I: include directory + processed_src = subprocess.check_output( + [c_compiler, '-E', '-P', '-I', HEADER_DIR, f.name]).decode() + return processed_src + + +def get_full_struct_dict(processed_src, array_shapes): + # ===== Parse and extract structs ===== + ast = pycparser.c_parser.CParser().parse(processed_src) + struct_dict = OrderedDict() + for node in ast.children(): + assert (node[1].name is None) == isinstance( + node[1].type, pycparser.c_ast.Struct) + if isinstance(node[1].type, pycparser.c_ast.Struct): + (_, struct), = node[1].children() + assert struct.name.startswith('_mj') + struct_name = struct.name[1:] # take out leading underscore + assert struct_name not in struct_dict + struct_dict = dict( + struct_dict, **get_struct_dict(struct, struct_name, array_shapes)) + return struct_dict + + +def get_const_from_enum(processed_src): + # ===== Parse and extract structs ===== + ast = pycparser.c_parser.CParser().parse(processed_src) + + lines = [] + for node in ast.children(): + assert (node[1].name is None) == isinstance( + node[1].type, pycparser.c_ast.Struct) + struct = node[1].children()[0][1] + if hasattr(struct, "type") and isinstance(struct.type, pycparser.c_ast.Enum): + lines.append(" # " + struct.type.name) + enumlist = struct.children()[0][1].children()[0][1].children() + last_value = None + for _, enum in enumlist: + var = enum.name[2:] + if enum.value is not None: + children = enum.value.children() + if len(children) > 0: + value = children[1][1].value + else: + value = enum.value.value + value = int(value) + last_value = value + new_line = str(var) + " = " + str(value) + lines.append(new_line) + else: + assert(last_value is not None) + last_value += 1 + lines.append(str(var) + " = " + str(last_value)) + lines.append("") + return lines + + +def get_struct_wrapper(struct_dict): + # ===== Generate code ===== + structname2wrappername = {} + structname2wrapfuncname = {} + for name in struct_dict: + assert name.startswith('mj') + structname2wrappername[name] = 'PyMj' + name[2:] + structname2wrapfuncname[name] = 'WrapMj' + name[2:] + return structname2wrappername, structname2wrapfuncname + + +def _add_named_access_methods(obj_type, attr_name, attr_name_short): + getter_name = obj_type + if attr_name_short is not None: + getter_name += "_" + attr_name_short + reshape_suffix = ".reshape((3, 3))" if attr_name.endswith('mat') else '' + code = """ + def get_{getter_name}(self, name): + id = self._model.{obj_type}_name2id(name) + return self._{attr_name}[id]{reshape_suffix}\n""".format( + obj_type=obj_type, getter_name=getter_name, attr_name=attr_name, reshape_suffix=reshape_suffix) + if getter_name != attr_name: + code += """ + def get_{attr_name}(self, name): + raise RuntimeError("get_{getter_name} should be used instead of get_{attr_name}")\n""".format( + getter_name=getter_name, attr_name=attr_name) + return code + + +def _add_named_jacobian_methods(obj_type): + cap_type = obj_type.title() # Capitalized + code = """ + def get_{obj_type}_jacp(self, name, np.ndarray[double, ndim=1, mode="c"] jacp = None): + id = self._model.{obj_type}_name2id(name) + if jacp is None: + jacp = np.zeros(3 * self._model.nv) + cdef double * jacp_view = &jacp[0] + mj_jac{cap_type}(self._model.ptr, self.ptr, jacp_view, NULL, id) + return jacp + + def get_{obj_type}_jacr(self, name, np.ndarray[double, ndim=1, mode="c"] jacr = None): + id = self._model.{obj_type}_name2id(name) + if jacr is None: + jacr = np.zeros(3 * self._model.nv) + cdef double * jacr_view = &jacr[0] + mj_jac{cap_type}(self._model.ptr, self.ptr, NULL, jacr_view, id) + return jacr + + def get_{obj_type}_xvelp(self, name): + id = self._model.{obj_type}_name2id(name) + jacp = self.get_{obj_type}_jacp(name).reshape((3, self._model.nv)) + xvelp = np.dot(jacp, self.qvel) + return xvelp + + def get_{obj_type}_xvelr(self, name): + id = self._model.{obj_type}_name2id(name) + jacr = self.get_{obj_type}_jacr(name).reshape((3, self._model.nv)) + xvelr = np.dot(jacr, self.qvel) + return xvelr\n""".format(obj_type=obj_type, cap_type=cap_type) + return code + + +def _add_jacobian_getters(obj_type): + cap_type = obj_type.title() # Capitalized + code = ''' + @property + def {obj_type}_jacp(self): + jacps = np.zeros((self._model.n{obj_type}, 3 * self._model.nv)) + cdef double [:] jacp_view + for i, jacp in enumerate(jacps): + jacp_view = jacp + mj_jac{cap_type}(self._model.ptr, self.ptr, &jacp_view[0], NULL, i) + return jacps + + @property + def {obj_type}_jacr(self): + jacrs = np.zeros((self._model.n{obj_type}, 3 * self._model.nv)) + cdef double [:] jacr_view + for i, jacr in enumerate(jacrs): + jacr_view = jacr + mj_jac{cap_type}(self._model.ptr, self.ptr, NULL, &jacr_view[0], i) + return jacrs + + @property + def {obj_type}_xvelp(self): + jacp = self.{obj_type}_jacp.reshape((self._model.n{obj_type}, 3, self._model.nv)) + xvelp = np.dot(jacp, self.qvel) + return xvelp + + @property + def {obj_type}_xvelr(self): + jacr = self.{obj_type}_jacr.reshape((self._model.n{obj_type}, 3, self._model.nv)) + xvelr = np.dot(jacr, self.qvel) + return xvelr\n'''.format(obj_type=obj_type, cap_type=cap_type) + return code + + +def _set_body_identifiers(short_name, addr_name, long_name, obj_name): + return (" self.{long_name}_names, self._{long_name}_name2id, self._{long_name}_id2name = " + "self._extract_mj_names(p, p.name_{addr_name}adr, p.n{short_name}, mjtObj.mjOBJ_{obj_name})\n" + ).format(short_name=short_name, + long_name=long_name, + obj_name=obj_name, + addr_name=addr_name) + + +def _add_getters(obj_type): + return ''' + def {obj_type}_id2name(self, id): + if id not in self._{obj_type}_id2name: + raise ValueError("No {obj_type} with id %d exists." % id) + return self._{obj_type}_id2name[id] + + def {obj_type}_name2id(self, name): + if name not in self._{obj_type}_name2id: + raise ValueError("No \\"{obj_type}\\" with name %s exists. Available \\"{obj_type}\\" names = %s." % (name, self.{obj_type}_names)) + return self._{obj_type}_name2id[name] +'''.format(obj_type=obj_type) + + +def get_const_from_define(full_src_lines): + define_code = [] + for line in full_src_lines: + define = "#define" + if line.find(define) > -1: + line = line[len(define):].strip() + last_len = 100000 + while last_len != len(line): + last_len = len(line) + line = line.replace(" ", " ") + line = line.replace("\t", " ") + comment = "" + if line.find("//") > -1: + line, comment = line.split("//") + line, comment = line.strip(), comment.strip() + if line.find(" ") > -1: + var, val = line.split(" ") + try: + val = float(val) + new_line = var[2:] + " = " + str(val) + new_line += " " * (35 - len(new_line)) + new_line += " # " + comment + define_code.append(new_line) + except: + print("Couldn't parse line: %s" % line) + return define_code + + +def get_funcs(fname): + src = subprocess.check_output([c_compiler, '-E', '-P', fname]).decode() + src = src[src.find("int mj_activat"):] + l = -1 + while l != len(src): + l = len(src) + src = src.replace(" ", " ") + src = src.replace("\t", " ") + src = src.replace("\n", " ") + src = src.replace("const ", "") + src = src.replace(", ", ",") + src = src.strip() + funcs = src.split(";") + funcs = [f.strip() for f in funcs if len(f) > 0] + ret = "" + count = 0 + for f in funcs: + ret_name = f.split(" ")[0] + func_name = f.split(" ")[1].split("(")[0] + args = f.split("(")[1][:-1] + skip = False + py_args_string = [] + c_args_string = [] + if args != "void": + args = args.split(",") + for arg in args: + arg = arg.strip() + data_type = " ".join(arg.split(" ")[:-1]) + var_name = arg.split(" ")[-1] + if var_name.find("[") > -1: + #arr_size = var_name[var_name.find("[") + 1:var_name.find("]")] + data_type = data_type + "*" + var_name = var_name[:var_name.find("[")] + + if data_type in ["char*"]: + py_args_string.append("str " + var_name) + c_args_string.append(var_name + ".encode()") + continue + if data_type in ["unsigned char"]: + skip = True + break + if data_type == "mjtNum": + py_args_string.append("float " + var_name) + c_args_string.append(var_name) + continue + if data_type == "mjtNum*": + py_args_string.append( + "np.ndarray[np.float64_t, mode=\"c\", ndim=1] " + var_name) + c_args_string.append("&%s[0]" % var_name) + continue + if data_type[:2] == "mj" and data_type[-1] == "*": + py_args_string.append( + "PyMj" + data_type[2:-1] + " " + var_name) + c_args_string.append(var_name + ".ptr") + continue + if data_type[:2] == 'mj' and '*' not in data_type: + py_args_string.append( + "PyMj" + data_type[2:] + " " + var_name) + c_args_string.append(var_name + ".ptr[0]") # dereference + continue + if data_type in "int": + py_args_string.append("int " + var_name) + c_args_string.append(var_name) + continue + # XXX + skip = True + + if not skip and ((ret_name in ["int", "mjtNum", "void"]) or + (ret_name[:2] == "mj" and ret_name[-1] == "*") and ret_name != "mjtNum*" and ret_name != "mjData*"): + + code = "def _%s(%s):\n" % (func_name, ", ".join(py_args_string)) + ret_val = "%s(%s)" % (func_name, ", ".join(c_args_string)) + code += " " + if ret_name in ["int", "mjtNum"]: + code += "return " + ret_val + elif ret_name == "void": + code += ret_val + elif ret_name[:2] == "mj": + code += "return WrapMj" + ret_name[2:-1] + "(" + ret_val + ")" + else: + import ipdb + ipdb.set_trace() + ret += code + "\n\n" + count += 1 + + print(ret) + print("Generated %d out of %d" % (count, len(funcs))) + return ret + + +def main(): + HEADER_DIR = os.path.expanduser(os.path.join('~', '.mujoco', 'mjpro150', 'include')) + HEADER_FILES = [ + 'mjmodel.h', + 'mjdata.h', + 'mjvisualize.h', + 'mjrender.h', + ] + if len(sys.argv) > 1: + OUTPUT = sys.argv[1] + else: + OUTPUT = os.path.join('mujoco_py', 'generated', 'wrappers.pxi') + OUTPUT_CONST = os.path.join('mujoco_py', 'generated', 'const.py') + funcs = get_funcs(os.path.join(HEADER_DIR, "mujoco.h")) + full_src_lines = get_full_scr_lines(HEADER_DIR, HEADER_FILES) + array_shapes = get_array_shapes(full_src_lines) + processed_src = get_processed_src(HEADER_DIR, full_src_lines) + struct_dict = get_full_struct_dict(processed_src, array_shapes) + structname2wrappername, structname2wrapfuncname = get_struct_wrapper( + struct_dict) + + define_const = get_const_from_define(full_src_lines) + enum_const = get_const_from_enum(processed_src) + const_code = "# Automatically generated. Do not modify!\n\n###### const from defines ######\n" + const_code += "\n".join(define_const) + const_code += "\n\n###### const from enums ######\n\n" + const_code += "\n".join(enum_const) + with open(OUTPUT_CONST, 'w') as f: + f.write(const_code) + + code = [] + needed_1d_wrappers = set() + needed_2d_wrappers = set() + # ===== Generate wrapper extension classes ===== + for name, fields in struct_dict.items(): + member_decls, member_initializers, member_getters = [], [], [] + + model_var_name = 'p' if name == 'mjModel' else 'model' + + # Disabling a few accessors that are unsafe due to ambiguous meaning. + REPLACEMENT_BY_ORIGINAL = { + 'xpos': 'body_xpos', + 'xmat': 'body_xmat', + 'xquat': 'body_xquat', + 'efc_pos': 'active_contacts_efc_pos', + } + + for scalar_name, scalar_type in fields['scalars']: + if scalar_type in ['float', 'int', 'mjtNum', 'mjtByte', 'unsigned int']: + member_getters.append( + ' @property\n def {name}(self): return self.ptr.{name}'.format(name=scalar_name)) + member_getters.append(' @{name}.setter\n def {name}(self, {type} x): self.ptr.{name} = x'.format( + name=scalar_name, type=scalar_type)) + elif scalar_type in struct_dict: + # This is a struct member + member_decls.append(' cdef {} _{}'.format( + structname2wrappername[scalar_type], scalar_name)) + member_initializers.append(' self._{scalar_name} = {wrap_func_name}(&p.{scalar_name}{model_arg})'.format( + scalar_name=scalar_name, + wrap_func_name=structname2wrapfuncname[scalar_type], + model_arg=( + ', ' + model_var_name) if struct_dict[scalar_type]['depends_on_model'] else '' + )) + member_getters.append( + ' @property\n def {name}(self): return self._{name}'.format(name=scalar_name)) + else: + print('Warning: skipping {} {}.{}'.format( + scalar_type, name, scalar_name)) + + # Pointer types + for ptr_name, ptr_type, (shape0, shape1) in fields['ptrs']: + if ptr_type in struct_dict: + assert shape0.startswith('n') and shape1 == 1 + member_decls.append(' cdef tuple _{}'.format(ptr_name)) + member_initializers.append( + ' self._{ptr_name} = tuple([{wrap_func_name}(&p.{ptr_name}[i]{model_arg}) for i in range({size0})])'.format( + ptr_name=ptr_name, + wrap_func_name=structname2wrapfuncname[ptr_type], + size0='{}.{}'.format(model_var_name, shape0), + model_arg=( + ', ' + model_var_name) if struct_dict[ptr_type]['depends_on_model'] else '' + )) + else: + assert name == 'mjModel' or fields['depends_on_model'] + member_decls.append(' cdef np.ndarray _{}'.format(ptr_name)) + if shape0 == 1 or shape1 == 1: + # Collapse to 1d for the user's convenience + size0 = shape1 if shape0 == 1 else shape0 + member_initializers.append( + ' self._{ptr_name} = _wrap_{ptr_type}_1d(p.{ptr_name}, {size0})'.format( + ptr_name=ptr_name, + ptr_type=ptr_type.replace(' ', '_'), + size0='{}.{}'.format(model_var_name, size0) if ( + isinstance(size0, str) and size0.startswith('n')) else size0, + )) + else: + member_initializers.append( + ' self._{ptr_name} = _wrap_{ptr_type}_2d(p.{ptr_name}, {size0}, {size1})'.format( + ptr_name=ptr_name, + ptr_type=ptr_type.replace(' ', '_'), + size0='{}.{}'.format(model_var_name, shape0) if ( + isinstance(shape0, str) and shape0.startswith('n')) else shape0, + size1='{}.{}'.format(model_var_name, shape1) if ( + isinstance(shape1, str) and shape1.startswith('n')) else shape1, + )) + needed_2d_wrappers.add(ptr_type) + + if ptr_name in REPLACEMENT_BY_ORIGINAL: + member_getters.append(""" + @property + def {name}(self): + raise RuntimeError("{replacement} should be used instead of {name}")\n""".format( + name=ptr_name, replacement=REPLACEMENT_BY_ORIGINAL[ptr_name])) + else: + member_getters.append( + ' @property\n def {name}(self): return self._{name}'.format(name=ptr_name)) + + # Array types: handle the same way as pointers + for array_name, array_type, array_size in fields['arrays']: + if array_type in struct_dict: + # This is a struct member + member_decls.append(' cdef list _{}'.format(array_name)) + member_initializers.append(' self._{array_name} = [{wrap_func_name}(&p.{array_name}{model_arg}[i]) for i in range({array_size})]'.format( + array_name=array_name, + array_size=array_size, + wrap_func_name=structname2wrapfuncname[array_type], + model_arg=( + ', ' + model_var_name) if struct_dict[array_type]['depends_on_model'] else '' + )) + member_getters.append( + ' @property\n def {name}(self): return self._{name}'.format(name=array_name)) + else: + member_decls.append( + ' cdef np.ndarray _{}'.format(array_name)) + member_initializers.append( + ' self._{array_name} = _wrap_{array_type}_1d(&p.{array_name}[0], {size})'.format( + array_name=array_name, + array_type=array_type.replace(' ', '_'), + size=array_size, + )) + member_getters.append( + ' @property\n def {name}(self): return self._{name}'.format(name=array_name)) + needed_1d_wrappers.add(array_type) + + member_getters = '\n'.join(member_getters) + member_decls = '\n' + '\n'.join(member_decls) if member_decls else '' + member_initializers = '\n' + \ + '\n'.join(member_initializers) if member_initializers else '' + model_decl = '\n cdef PyMjModel _model' if fields[ + 'depends_on_model'] else '' + model_param = ', PyMjModel model' if fields['depends_on_model'] else '' + model_setter = 'self._model = model' if fields[ + 'depends_on_model'] else '' + model_arg = ', model' if fields['depends_on_model'] else '' + + if name == "mjModel": + extra = ''' + cdef readonly tuple body_names, joint_names, geom_names, site_names, light_names, camera_names, actuator_names, sensor_names + cdef readonly dict _body_id2name, _joint_id2name, _geom_id2name, _site_id2name, _light_id2name, _camera_id2name, _actuator_id2name, _sensor_id2name + cdef readonly dict _body_name2id, _joint_name2id, _geom_name2id, _site_name2id, _light_name2id, _camera_name2id, _actuator_name2id, _sensor_name2id +''' + extra += _add_getters('body') + extra += _add_getters('joint') + extra += _add_getters('geom') + extra += _add_getters('site') + extra += _add_getters('light') + extra += _add_getters('camera') + extra += _add_getters('actuator') + extra += _add_getters('sensor') + extra += ''' + cdef inline tuple _extract_mj_names(self, mjModel* p, int*name_adr, int n, mjtObj obj_type): + cdef char *name + cdef int obj_id + + # objects don't need to be named in the XML, so name might be None + id2name = {i: None for i in range(n)} + name2id = {} + for i in range(n): + name = p.names + name_adr[i] + decoded_name = name.decode() + if decoded_name: + obj_id = mj_name2id(p, obj_type, name) + assert 0 <= obj_id < n and id2name[obj_id] is None + name2id[decoded_name] = obj_id + id2name[obj_id] = decoded_name + + # sort names by increasing id to keep order deterministic + return tuple(id2name[id] for id in sorted(name2id.values())), name2id, id2name + + def get_xml(self): + cdef char errstr[300] + cdef int ret + with TemporaryDirectory() as td: + filename = os.path.join(td, 'model.xml') + with wrap_mujoco_warning(): + ret = mj_saveLastXML(filename.encode(), self.ptr, errstr, 300) + if ret == 0: + raise Exception('Failed to save XML: {}'.format(errstr)) + return open(filename).read() + + def get_mjb(self): + with TemporaryDirectory() as td: + filename = os.path.join(td, 'model.mjb') + with wrap_mujoco_warning(): + mj_saveModel(self.ptr, filename.encode(), NULL, 0) + return open(filename, 'rb').read() + + def __dealloc__(self): + mj_deleteModel(self.ptr) +''' + extra_set = '\n' + # MuJoCo isn't very consistent in how it uses long and + # abbreviated names :( + extra_set += _set_body_identifiers('body', 'body', 'body', 'BODY') + extra_set += _set_body_identifiers('jnt', 'jnt', 'joint', 'JOINT') + extra_set += _set_body_identifiers('geom', 'geom', 'geom', 'GEOM') + extra_set += _set_body_identifiers('site', 'site', 'site', 'SITE') + extra_set += _set_body_identifiers('light', + 'light', 'light', 'LIGHT') + extra_set += _set_body_identifiers('cam', + 'cam', 'camera', 'CAMERA') + extra_set += _set_body_identifiers('u', + 'actuator', 'actuator', 'ACTUATOR') + extra_set += _set_body_identifiers('sensor', + 'sensor', 'sensor', 'SENSOR') + + for q_type in ('pos', 'vel'): + # Position dimensionality and degrees of freedom are different + # for free and ball joints. + if q_type == 'pos': + adr_name, free_ndim, ball_ndim = 'qpos', 7, 4 + else: + adr_name, free_ndim, ball_ndim = 'dof', 6, 3 + + extra += """ + def get_joint_q{q_type}_addr(self, name): + ''' + Returns the q{q_type} address for given joint. + + Returns: + - address (int, tuple): returns int address if 1-dim joint, otherwise + returns the a (start, end) tuple for {q_type}[start:end] access. + ''' + joint_id = self.joint_name2id(name) + joint_type = self.jnt_type[joint_id] + joint_addr = self.jnt_{adr_name}adr[joint_id] + if joint_type == mjtJoint.mjJNT_FREE: + ndim = {free_ndim} + elif joint_type == mjtJoint.mjJNT_BALL: + ndim = {ball_ndim} + else: + assert joint_type in (mjtJoint.mjJNT_HINGE, mjtJoint.mjJNT_SLIDE) + ndim = 1 + + if ndim == 1: + return joint_addr + else: + return (joint_addr, joint_addr + ndim)\n""".format( + q_type=q_type, adr_name=adr_name, + free_ndim=free_ndim, ball_ndim=ball_ndim) + + elif name == "mjData": + extra = ''' + @property + def body_xpos(self): + return self._xpos + + @property + def body_xquat(self): + return self._xquat + + @property + def body_xmat(self): + return self._xmat + + @property + def active_contacts_efc_pos(self): + return self._efc_pos[self.ne:self.nefc] + + def __dealloc__(self): + mj_deleteData(self.ptr) + +''' + extra += _add_named_access_methods('body', 'xpos', 'xpos') + extra += _add_named_access_methods('body', 'xquat', 'xquat') + extra += _add_named_access_methods('body', 'xmat', 'xmat') + extra += _add_named_access_methods('body', 'xipos', 'xipos') + extra += _add_named_access_methods('body', 'ximat', 'ximat') + extra += _add_named_jacobian_methods('body') + member_getters += _add_jacobian_getters('body') + extra += _add_named_access_methods('joint', 'xanchor', 'xanchor') + extra += _add_named_access_methods('joint', 'xaxis', 'xaxis') + extra += _add_named_access_methods('geom', 'geom_xpos', 'xpos') + extra += _add_named_access_methods('geom', 'geom_xmat', 'xmat') + extra += _add_named_jacobian_methods('geom') + member_getters += _add_jacobian_getters('geom') + extra += _add_named_access_methods('site', 'site_xpos', 'xpos') + extra += _add_named_access_methods('site', 'site_xmat', 'xmat') + extra += _add_named_jacobian_methods('site') + member_getters += _add_jacobian_getters('site') + extra += _add_named_access_methods('camera', 'cam_xpos', 'xpos') + extra += _add_named_access_methods('camera', 'cam_xmat', 'xmat') + extra += _add_named_access_methods('light', 'light_xpos', 'xpos') + extra += _add_named_access_methods('light', 'light_xdir', 'xdir') + extra += _add_named_access_methods('sensor', 'sensordata', None) + + for pose_type in ('pos', 'quat'): + extra += """ + def get_mocap_{pose_type}(self, name): + body_id = self._model.body_name2id(name) + mocap_id = self._model.body_mocapid[body_id] + return self.mocap_{pose_type}[mocap_id] + + def set_mocap_{pose_type}(self, name, value): + body_id = self._model.body_name2id(name) + mocap_id = self._model.body_mocapid[body_id] + self.mocap_{pose_type}[mocap_id] = value\n""".format( + pose_type=pose_type) + + for q_type in ('pos', 'vel'): + extra += """ + def get_joint_q{q_type}(self, name): + addr = self._model.get_joint_q{q_type}_addr(name) + if isinstance(addr, (int, np.int32, np.int64)): + return self.q{q_type}[addr] + else: + start_i, end_i = addr + return self.q{q_type}[start_i:end_i] + + def set_joint_q{q_type}(self, name, value): + addr = self._model.get_joint_q{q_type}_addr(name) + if isinstance(addr, (int, np.int32, np.int64)): + self.q{q_type}[addr] = value + else: + start_i, end_i = addr + value = np.array(value) + assert value.shape == (end_i - start_i,), ( + "Value has incorrect shape %s: %s" % (name, value)) + self.q{q_type}[start_i:end_i] = value\n""".format( + q_type=q_type) + + extra_set = "" + elif name in ["mjVFS", "mjrRect"]: + extra = ''' + def __cinit__(self): + self.ptr = <{name}*> PyMem_Malloc(sizeof({name})) + if not self.ptr: + raise MemoryError() + + def __dealloc__(self): + PyMem_Free(self.ptr) +'''.format(name=name) + extra_set = '' + elif name[:2] == 'mj': + extra = ''' + def __cinit__(self): + self.ptr = NULL +''' + extra_set = '' + else: + extra = "" + extra_set = "" + + code.append(''' +cdef class {wrapper_name}(object): + cdef {struct_name}* ptr + {model_decl} + {member_decls} + {extra} + cdef void _set(self, {struct_name}* p{model_param}): + {extra_set} + self.ptr = p + {model_setter} + {member_initializers} + \n{member_getters} + +cdef {wrapper_name} {wrap_func_name}({struct_name}* p{model_param}): + cdef {wrapper_name} o = {wrapper_name}() + o._set(p{model_arg}) + return o + + '''.format( + wrapper_name=structname2wrappername[name], + extra=extra, + extra_set=extra_set, + struct_name=name, + wrap_func_name=structname2wrapfuncname[name], + model_decl=model_decl, + model_param=model_param, + model_setter=model_setter, + model_arg=model_arg, + member_decls=member_decls, + member_initializers=member_initializers, + member_getters=member_getters, + ).strip()) + + # ===== Generate array-to-NumPy wrappers ===== + # TODO: instead of returning None for empty arrays, instead return NumPy arrays with the appropriate shape and type + # The only reason we're not doing this already is that cython's views don't work with 0-length axes, + # even though NumPy does. + # TODO: set NumPy array type explicitly (e.g. char will be viewed + # incorrectly as np.int64) + for type_name in sorted(needed_1d_wrappers): + code.append(''' +cdef inline np.ndarray _wrap_{type_name_nospaces}_1d({type_name}* a, int shape0): + if shape0 == 0: return None + cdef {type_name}[:] b = <{type_name}[:shape0]> a + return np.asarray(b) +'''.format(type_name_nospaces=type_name.replace(' ', '_'), type_name=type_name).strip()) + + for type_name in sorted(needed_2d_wrappers): + code.append(''' +cdef inline np.ndarray _wrap_{type_name_nospaces}_2d({type_name}* a, int shape0, int shape1): + if shape0 * shape1 == 0: return None + cdef {type_name}[:,:] b = <{type_name}[:shape0,:shape1]> a + return np.asarray(b) +'''.format(type_name_nospaces=type_name.replace(' ', '_'), type_name=type_name).strip()) + + header = '''# cython: language_level=3 +# Automatically generated. Do not modify! + +include "../pxd/mujoco.pxd" +from cpython.mem cimport PyMem_Malloc, PyMem_Free +cimport numpy as np +import numpy as np +from tempfile import TemporaryDirectory + +''' + code.append(funcs) + + code = header + '\n\n'.join(code) + '\n' + print(len(code.splitlines())) + with open(OUTPUT, 'w') as f: + f.write(code) + +if __name__ == "__main__": + main() diff --git a/setup.py b/setup.py index d390cd36..63990de2 100644 --- a/setup.py +++ b/setup.py @@ -1,19 +1,51 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 +import importlib.util +from distutils.command.build import build as DistutilsBuild +from os.path import abspath, join, dirname, realpath +from setuptools import find_packages, setup -from setuptools import setup +with open(join("mujoco_py", "version.py")) as version_file: + exec(version_file.read()) + + +class Build(DistutilsBuild): + def run(self): + # Pre-compile the Cython + current_path = abspath(dirname(__file__)) + builder_path = join(current_path, 'mujoco_py', 'builder.py') + spec = importlib.util.spec_from_file_location( + "mujoco_py.builder", builder_path) + builder = importlib.util.module_from_spec(spec) + spec.loader.exec_module(builder) + + DistutilsBuild.run(self) + + +def read_requirements_file(filename): + req_file_path = '%s/%s' % (dirname(realpath(__file__)), filename) + with open(req_file_path) as f: + return [line.strip() for line in f] + + +packages = find_packages() +# Ensure that we don't pollute the global namespace. +for p in packages: + assert p == 'mujoco_py' or p.startswith('mujoco_py.') setup( name='mujoco-py', - version='0.5.7', - description='Python wrapper for Mojoco', - author='OpenAI', - packages=['mujoco_py'], - install_requires=[ - 'PyOpenGL>=3.1.0', - 'numpy>=1.10.4', - 'six', - ], - tests_requires=[ - 'nose2' - ] + version=__version__, # noqa + author='OpenAI Robotics Team', + author_email='robotics@openai.com', + url='https://github.com/openai/mujoco-py', + packages=packages, + include_package_data=True, + install_requires=read_requirements_file('requirements.txt'), + tests_require=read_requirements_file('requirements.dev.txt'), + # Add requirements for mujoco_py/builder.py here since there's no + # guarantee that they've been installed before this setup script + # is run. (The install requirements only guarantee that those packages + # are installed as part of installation. No promises about order.) + setup_requires=read_requirements_file('requirements.txt'), + cmdclass={'build': Build}, ) diff --git a/tests/models/ant.xml b/tests/models/ant.xml deleted file mode 100644 index 18ad38b3..00000000 --- a/tests/models/ant.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - diff --git a/tests/models/cartpole.xml b/tests/models/cartpole.xml deleted file mode 100644 index c948cbda..00000000 --- a/tests/models/cartpole.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - diff --git a/tests/test_mjlib.py b/tests/test_mjlib.py deleted file mode 100644 index c33251c4..00000000 --- a/tests/test_mjlib.py +++ /dev/null @@ -1,91 +0,0 @@ -""" -Test mujoco function bindings in mjlib. -This includes basic tests to make sure the function calls work. -""" -import ctypes -import unittest - -from mujoco_py.mjlib import mjlib -from mujoco_py import mjtypes -from mujoco_py import glfw - - -class MjLibTest(unittest.TestCase): - xml_path = 'tests/models/cartpole.xml' - - def setUp(self): - self.buf = ctypes.create_string_buffer(300) - self.model_ptr = mjlib.mj_loadXML(self.xml_path, None, self.buf, 300) - self.data_ptr = mjlib.mj_makeData(self.model_ptr) - - def tearDown(self): - self.buf = None - mjlib.mj_deleteData(self.data_ptr) - mjlib.mj_deleteModel(self.model_ptr) - - def test_model(self): - self.assertEqual(len(self.buf.value), 0) - - self.assertIsInstance(self.model_ptr, ctypes.POINTER(mjtypes.MJMODEL)) - - def test_data(self): - self.assertIsNotNone(self.data_ptr) - - self.assertIsInstance(self.data_ptr, ctypes.POINTER(mjtypes.MJDATA)) - - def test_step(self): - start_time = self.data_ptr.contents.time - mjlib.mj_step(self.model_ptr, self.data_ptr) - self.assertGreater(self.data_ptr.contents.time, start_time) - - def test_forward(self): - start_moment = self.data_ptr.contents.actuator_moment.contents.value - mjlib.mj_forward(self.model_ptr, self.data_ptr) - self.assertGreater(self.data_ptr.contents.actuator_moment.contents.value, - start_moment) - - def test_make_objects(self): - objects = mjtypes.MJVOBJECTS() - mjlib.mjv_makeObjects(ctypes.byref(objects), 1000) - mjlib.mjv_freeObjects(ctypes.byref(objects)) - - def test_default_camera(self): - cam = mjtypes.MJVCAMERA() - mjlib.mjv_defaultCamera(ctypes.byref(cam)) - - def test_default_option(self): - vopt = mjtypes.MJVOPTION() - ropt = mjtypes.MJROPTION() - mjlib.mjv_defaultOption(ctypes.byref(vopt)) - mjlib.mjr_defaultOption(ctypes.byref(ropt)) - - def test_default_context(self): - context = mjtypes.MJRCONTEXT() - mjlib.mjr_defaultContext(ctypes.byref(context)) - - def test_context(self): - if not glfw.init(): - raise Exception('glfw failed to initialize') - - window = None - glfw.window_hint(glfw.VISIBLE, 0) - - _, _, refresh_rate = glfw.get_video_mode(glfw.get_primary_monitor()) - if refresh_rate >= 100: - glfw.window_hint(glfw.STEREO, 1) - window = glfw.create_window( - 100, 100, "Simulate", None, None) - - # no stereo: try mono - if not window: - glfw.window_hint(glfw.STEREO, 0) - window = glfw.create_window( - 100, 100, "Simulate", None, None) - - # Make the window's context current - glfw.make_context_current(window) - - context = mjtypes.MJRCONTEXT() - mjlib.mjr_makeContext(self.model_ptr, ctypes.byref(context), 150) - - mjlib.mjr_freeContext(ctypes.byref(context)) diff --git a/tests/test_mjmodel.py b/tests/test_mjmodel.py deleted file mode 100644 index f2ae7cfc..00000000 --- a/tests/test_mjmodel.py +++ /dev/null @@ -1,15 +0,0 @@ -import mujoco_py -import six - -def test_smoke(): - model = mujoco_py.MjModel('tests/models/ant.xml') - - # Try stepping - model.step() - - model._compute_subtree() - - # Try getting some data out of the model - n = model.body_names - idx = n.index(six.b('torso')) - com = model.data.com_subtree[idx] diff --git a/tests/test_mjviewer.py b/tests/test_mjviewer.py deleted file mode 100644 index 54069476..00000000 --- a/tests/test_mjviewer.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -Test mujoco viewer. -""" -import unittest - -from mujoco_py import mjviewer, mjcore - - -class MjLibTest(unittest.TestCase): - xml_path = 'tests/models/cartpole.xml' - - def setUp(self): - self.width = 100 - self.height = 100 - self.viewer = mjviewer.MjViewer(visible=False, - init_width=self.width, - init_height=self.height) - - def tearDown(self): - self.viewer.finish() - self.viewer = None - - def test_start(self): - self.viewer.start() - self.assertTrue(self.viewer.running) - - def test_render(self): - self.viewer.start() - - model = mjcore.MjModel(self.xml_path) - self.viewer.set_model(model) - - (data, width, height) = self.viewer.get_image() - - # check image size is consistent - # note that width and height may not equal self.width and self.height - # e.g. on a computer with retina screen, - # the width and height are scaled - self.assertEqual(len(data), 3 * width * height) - # make sure the image is not pitch black - self.assertTrue(any(map(lambda x: x > 0, data))) diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 179a2444..00000000 --- a/tox.ini +++ /dev/null @@ -1,25 +0,0 @@ -# Tox (http://tox.testrun.org/) is a tool for running tests -# in multiple virtualenvs. This configuration file will run the -# test suite on all supported python versions. To use it, "pip install tox" -# and then run "tox" from this directory. - -[tox] -envlist = py27, py35 - -[testenv:py35] -whitelist_externals=make -passenv=DISPLAY -deps = - nose2 -commands = - make test - python setup.py clean --all - -[testenv:py27] -whitelist_externals=make -passenv=DISPLAY -deps = - nose2 -commands = - make test - python setup.py clean --all diff --git a/vendor/10_nvidia.json b/vendor/10_nvidia.json new file mode 100644 index 00000000..2bfcca05 --- /dev/null +++ b/vendor/10_nvidia.json @@ -0,0 +1,6 @@ +{ + "file_format_version" : "1.0.0", + "ICD" : { + "library_path" : "libEGL_nvidia.so.0" + } +} diff --git a/vendor/Xdummy b/vendor/Xdummy new file mode 100644 index 00000000..1ffddfa4 --- /dev/null +++ b/vendor/Xdummy @@ -0,0 +1,1955 @@ +#!/bin/sh +# ---------------------------------------------------------------------- +# Copyright (C) 2005-2011 Karl J. Runge +# All rights reserved. +# +# This file is part of Xdummy. +# +# Xdummy is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or (at +# your option) any later version. +# +# Xdummy is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Xdummy; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA +# or see . +# ---------------------------------------------------------------------- +# +# +# Xdummy: an LD_PRELOAD hack to run a stock Xorg(1) or XFree86(1) server +# with the "dummy" video driver to make it avoid Linux VT switching, etc. +# +# Run "Xdummy -help" for more info. +# +install="" +uninstall="" +runit=1 +prconf="" +notweak="" +root="" +nosudo="" +xserver="" +geom="" +nomodelines="" +depth="" +debug="" +strace="" +cmdline_config="" + +PATH=$PATH:/bin:/usr/bin +export PATH + +program=`basename "$0"` + +help () { + ${PAGER:-more} << END +$program: + + A hack to run a stock Xorg(1) or XFree86(1) X server with the "dummy" + (RAM-only framebuffer) video driver such that it AVOIDS the Linux VT + switching, opening device files in /dev, keyboard and mouse conflicts, + and other problems associated with the normal use of "dummy". + + In other words, it tries to make Xorg/XFree86 with the "dummy" + device driver act more like Xvfb(1). + + The primary motivation for the Xdummy script is to provide a virtual X + server for x11vnc but with more features than Xvfb (or Xvnc); however + it could be used for other reasons (e.g. better automated testing + than with Xvfb.) One nice thing is the dummy server supports RANDR + dynamic resizing while Xvfb does not. + + So, for example, x11vnc+Xdummy terminal services are a little better + than x11vnc+Xvfb. + + To achieve this, while running the real Xserver $program intercepts + system and library calls via the LD_PRELOAD method and modifies + the behavior to make it work correctly (e.g. avoid the VT stuff.) + LD_PRELOAD tricks are usually "clever hacks" and so might not work + in all situations or break when something changes. + + WARNING: Take care in using Xdummy, although it never has it is + possible that it could damage hardware. One can use the -prconf + option to have it print out the xorg.conf config that it would use + and then inspect it carefully before actually using it. + + This program no longer needs to be run as root as of 12/2009. + However, if there are problems for certain situations (usually older + servers) it may perform better if run as root (use the -root option.) + When running as root remember the previous paragraph and that Xdummy + comes without any warranty. + + gcc/cc and other build tools are required for this script to be able + to compile the LD_PRELOAD shared object. Be sure they are installed + on the system. See -install and -uninstall described below. + + Your Linux distribution may not install the dummy driver by default, + e.g: + + /usr/lib/xorg/modules/drivers/dummy_drv.so + + some have it in a package named xserver-xorg-video-dummy you that + need to install. + +Usage: + + $program <${program}-args> + + (actually, the arguments can be supplied in any order.) + +Examples: + + $program -install + + $program :1 + + $program -debug :1 + + $program -tmpdir ~/mytmp :1 -nolisten tcp + +startx example: + + startx -e bash -- $program :2 -depth 16 + + (if startx needs to be run as root, you can su(1) to a normal + user in the bash shell and then launch ~/.xinitrc or ~/.xsession, + gnome-session, startkde, startxfce4, etc.) + +xdm example: + + xdm -config /usr/local/dummy/xdm-config -nodaemon + + where the xdm-config file has line: + + DisplayManager.servers: /usr/local/dummy/Xservers + + and /usr/local/dummy/Xservers has lines: + + :1 local /usr/local/dummy/Xdummy :1 -debug + :2 local /usr/local/dummy/Xdummy :2 -debug + + (-debug is optional) + +gdm/kdm example: + + TBD. + +Config file: + + If the file $program.cfg exists it will be sourced as shell + commands. Usually one will set some variables this way. + To disable sourcing, supply -nocfg or set XDUMMY_NOCFG=1. + +Root permission and x11vnc: + + Update: as of 12/2009 this program no longer must be run as root. + So try it as non-root before running it as root and/or the + following schemes. + + In some circumstances X server program may need to be run as root. + If so, one could run x11vnc as root with -unixpw (it switches + to the user that logs in) and that may be OK, some other ideas: + + - add this to sudo via visudo: + + ALL ALL = NOPASSWD: /usr/local/bin/Xdummy + + - use this little suid wrapper: +/* + * xdummy.c + * + cc -o ./xdummy xdummy.c + sudo cp ./xdummy /usr/local/bin/xdummy + sudo chown root:root /usr/local/bin/xdummy + sudo chmod u+s /usr/local/bin/xdummy + * + */ +#include +#include +#include +#include + +int main (int argc, char *argv[]) { + extern char **environ; + char str[100]; + sprintf(str, "XDUMMY_UID=%d", (int) getuid()); + putenv(str); + setuid(0); + setgid(0); + execv("/usr/local/bin/Xdummy", argv); + exit(1); + return 1; +} + + +Options: + + ${program}-args: + + -install Compile the LD_PRELOAD shared object and install it + next to the $program script file as: + + $0.so + + When that file exists it is used as the LD_PRELOAD + shared object without recompiling. Otherwise, + each time $program is run the LD_PRELOAD shared + object is compiled as a file in /tmp (or -tmpdir) + + If you set the environment variable + INTERPOSE_GETUID=1 when building, then when + $program is run as an ordinary user, the shared + object will interpose getuid() calls and pretend + to be root. Otherwise it doesn't pretend to + be root. + + You can also set the CFLAGS environment variable + to anything else you want on the compile cmdline. + + -uninstall Remove the file: + + $0.so + + The LD_PRELOAD shared object will then be compiled + each time this program is run. + + The X server is not started under -install, -uninstall, or -prconf. + + + :N The DISPLAY (e.g. :15) is often the first + argument. It is passed to the real X server and + also used by the Xdummy script as an identifier. + + -geom geom1[,geom2...] Take the geometry (e.g. 1024x768) or list + of geometries and insert them into the Screen + section of the tweaked X server config file. + Use this to have a different geometry than the + one(s) in the system config file. + + The option -geometry can be used instead of -geom; + x11vnc calls Xdummy and Xvfb this way. + + -nomodelines When you specify -geom/-geometry, $program will + create Modelines for each geometry and put them + in the Monitor section. If you do not want this + then supply -nomodelines. + + -depth n Use pixel color depth n (e.g. 8, 16, or 24). This + makes sure the X config file has a Screen.Display + subsection of this depth. Note this option is + ALSO passed to the X server. + + -DEPTH n Same as -depth, except not passed to X server. + + -tmpdir dir Specify a temporary directory, owned by you and + only writable by you. This is used in place of + /tmp/Xdummy.\$USER/.. to place the $program.so + shared object, tweaked config files, etc. + + -nonroot Run in non-root mode (working 12/2009, now default) + + -root Run as root (may still be needed in some + environments.) Same as XDUMMY_RUN_AS_ROOT=1. + + -nosudo Do not try to use sudo(1) when re-running as root, + use su(1) instead. + + -xserver path Specify the path to the Xserver to use. Default + is to try "Xorg" first and then "XFree86". If + those are not in \$PATH, it tries these locations: + /usr/bin/Xorg + /usr/X11R6/bin/Xorg + /usr/X11R6/bin/XFree86 + + -n Do not run the command to start the X server, + just show the command that $program would run. + The LD_PRELOAD shared object will be built, + if needed. Also note any XDUMMY* environment + variables that need to be set. + + -prconf Print, to stdout, the tweaked Xorg/XFree86 + config file (-config and -xf86config server + options, respectively.) The Xserver is not + started. + + -notweak Do not tweak (modify) the Xorg/XFree86 config file + (system or server command line) at all. The -geom + and similar config file modifications are ignored. + + It is up to you to make sure it is a working + config file (e.g. "dummy" driver, etc.) + Perhaps you want to use a file based on the + -prconf output. + + -nocfg Do not try to source $program.cfg even if it + exists. Same as setting XDUMMY_NOCFG=1. + + -debug Extra debugging output. + + -strace strace(1) the Xserver process (for troubleshooting.) + -ltrace ltrace(1) instead of strace (can be slow.) + + -h, -help Print out this help. + + + Xserver-args: + + Most of the Xorg and XFree86 options will work and are simply + passed along if you supply them. Important ones that may be + supplied if missing: + + :N X Display number for server to use. + + vtNN Linux virtual terminal (VT) to use (a VT is currently + still used, just not switched to and from.) + + -config file Driver "dummy" tweaked config file, a + -xf86config file number of settings are tweaked besides Driver. + + If -config/-xf86config is not given, the system one + (e.g. /etc/X11/xorg.conf) is used. If the system one cannot be + found, a built-in one is used. Any settings in the config file + that are not consistent with "dummy" mode will be overwritten + (unless -notweak is specified.) + + Use -config xdummy-builtin to force usage of the builtin config. + + If "file" is only a basename (e.g. "xorg.dummy.conf") with no /'s, + then no tweaking of it is done: the X server will look for that + basename via its normal search algorithm. If the found file does + not refer to the "dummy" driver, etc, then the X server will fail. + + You can set the env. var. XDUMMY_EXTRA_SERVER_ARGS to hold some + extra Xserver-args too. (Useful for cfg file.) + +Notes: + + The Xorg/XFree86 "dummy" driver is currently undocumented. It works + well in this mode, but it is evidently not intended for end-users. + So it could be removed or broken at any time. + + If the display Xserver-arg (e.g. :1) is not given, or ":" is given + that indicates $program should try to find a free one (based on + tcp ports.) + + If the display virtual terminal, VT, (e.g. vt9) is not given that + indicates $program should try to find a free one (or guess a high one.) + + This program is not completely secure WRT files in /tmp (but it tries + to a good degree.) Better is to use the -tmpdir option to supply a + directory only writable by you. Even better is to get rid of users + on the local machine you do not trust :-) + + Set XDUMMY_SET_XV=1 to turn on debugging output for this script. + +END +} + +warn() { + echo "$*" 1>&2 +} + +if [ "X$XDUMMY_SET_XV" != "X" ]; then + set -xv +fi + +if [ "X$XDUMMY_UID" = "X" ]; then + XDUMMY_UID=`id -u` + export XDUMMY_UID +fi +if [ "X$XDUMMY_UID" = "X0" ]; then + if [ "X$SUDO_UID" != "X" ]; then + XDUMMY_UID=$SUDO_UID + export XDUMMY_UID + fi +fi + +# check if root=1 first: +# +if [ "X$XDUMMY_RUN_AS_ROOT" = "X1" ]; then + root=1 +fi +for arg in $* +do + if [ "X$arg" = "X-nonroot" ]; then + root="" + elif [ "X$arg" = "X-root" ]; then + root=1 + elif [ "X$arg" = "X-nocfg" ]; then + XDUMMY_NOCFG=1 + export XDUMMY_NOCFG + fi +done + +if [ "X$XDUMMY_NOCFG" = "X" -a -f "$0.cfg" ]; then + . "$0.cfg" +fi + +# See if it really needs to be run as root: +# +if [ "X$XDUMMY_SU_EXEC" = "X" -a "X$root" = "X1" -a "X`id -u`" != "X0" ]; then + # this is to prevent infinite loop in case su/sudo doesn't work: + XDUMMY_SU_EXEC=1 + export XDUMMY_SU_EXEC + + dosu=1 + nosudo="" + + for arg in $* + do + if [ "X$arg" = "X-nonroot" ]; then + dosu="" + elif [ "X$arg" = "X-nosudo" ]; then + nosudo="1" + elif [ "X$arg" = "X-help" ]; then + dosu="" + elif [ "X$arg" = "X-h" ]; then + dosu="" + elif [ "X$arg" = "X-install" ]; then + dosu="" + elif [ "X$arg" = "X-uninstall" ]; then + dosu="" + elif [ "X$arg" = "X-n" ]; then + dosu="" + elif [ "X$arg" = "X-prconf" ]; then + dosu="" + fi + done + if [ $dosu ]; then + # we need to restart it with su/sudo: + if type sudo > /dev/null 2>&1; then + : + else + nosudo=1 + fi + if [ "X$nosudo" = "X" ]; then + warn "$program: supply the sudo password to restart as root:" + if [ "X$XDUMMY_UID" != "X" ]; then + exec sudo $0 -uid $XDUMMY_UID "$@" + else + exec sudo $0 "$@" + fi + else + warn "$program: supply the root password to restart as root:" + if [ "X$XDUMMY_UID" != "X" ]; then + exec su -c "$0 -uid $XDUMMY_UID $*" + else + exec su -c "$0 $*" + fi + fi + # DONE: + exit + fi +fi + +# This will hold the X display, e.g. :20 +# +disp="" +args="" +cmdline_config="" + +# Process Xdummy args: +# +while [ "X$1" != "X" ] +do + if [ "X$1" = "X-config" -o "X$1" = "X-xf86config" ]; then + cmdline_config="$2" + fi + case $1 in + ":"*) disp=$1 + ;; + "-install") install=1; runit="" + ;; + "-uninstall") uninstall=1; runit="" + ;; + "-n") runit="" + ;; + "-no") runit="" + ;; + "-norun") runit="" + ;; + "-prconf") prconf=1; runit="" + ;; + "-notweak") notweak=1 + ;; + "-noconf") notweak=1 + ;; + "-nonroot") root="" + ;; + "-root") root=1 + ;; + "-nosudo") nosudo=1 + ;; + "-xserver") xserver="$2"; shift + ;; + "-uid") XDUMMY_UID="$2"; shift + export XDUMMY_UID + ;; + "-geom") geom="$2"; shift + ;; + "-geometry") geom="$2"; shift + ;; + "-nomodelines") nomodelines=1 + ;; + "-depth") depth="$2"; args="$args -depth $2"; + shift + ;; + "-DEPTH") depth="$2"; shift + ;; + "-tmpdir") XDUMMY_TMPDIR="$2"; shift + ;; + "-debug") debug=1 + ;; + "-nocfg") : + ;; + "-nodebug") debug="" + ;; + "-strace") strace=1 + ;; + "-ltrace") strace=2 + ;; + "-h") help; exit 0 + ;; + "-help") help; exit 0 + ;; + *) args="$args $1" + ;; + esac + shift +done + +if [ "X$XDUMMY_EXTRA_SERVER_ARGS" != "X" ]; then + args="$args $XDUMMY_EXTRA_SERVER_ARGS" +fi + +# Try to get a username for use in our tmp directory, etc. +# +user="" +if [ X`id -u` = "X0" ]; then + user=root # this will also be used below for id=0 +elif [ "X$USER" != "X" ]; then + user=$USER +elif [ "X$LOGNAME" != "X" ]; then + user=$LOGNAME +fi + +# Keep trying... +# +if [ "X$user" = "X" ]; then + user=`whoami 2>/dev/null` +fi +if [ "X$user" = "X" ]; then + user=`basename "$HOME"` +fi +if [ "X$user" = "X" -o "X$user" = "X." ]; then + user="u$$" +fi + +if [ "X$debug" = "X1" -a "X$runit" != "X" ]; then + echo "" + echo "/usr/bin/env:" + env | egrep -v '^(LS_COLORS|TERMCAP)' | sort + echo "" +fi + +# Function to compile the LD_PRELOAD shared object: +# +make_so() { + # extract code embedded in this script into a tmp C file: + n1=`grep -n '^#code_begin' $0 | head -1 | awk -F: '{print $1}'` + n2=`grep -n '^#code_end' $0 | head -1 | awk -F: '{print $1}'` + n1=`expr $n1 + 1` + dn=`expr $n2 - $n1` + + tmp=$tdir/Xdummy.$RANDOM$$.c + rm -f $tmp + if [ -e $tmp -o -h $tmp ]; then + warn "$tmp still exists." + exit 1 + fi + touch $tmp || exit 1 + tail -n +$n1 $0 | head -n $dn > $tmp + + # compile it to Xdummy.so: + if [ -f "$SO" ]; then + mv $SO $SO.$$ + rm -f $SO.$$ + fi + rm -f $SO + touch $SO + if [ ! -f "$SO" ]; then + SO=$tdir/Xdummy.$user.so + warn "warning switching LD_PRELOAD shared object to: $SO" + fi + + if [ -f "$SO" ]; then + mv $SO $SO.$$ + rm -f $SO.$$ + fi + rm -f $SO + + # we assume gcc: + if [ "X$INTERPOSE_GETUID" = "X1" ]; then + CFLAGS="$CFLAGS -DINTERPOSE_GETUID" + fi + echo "$program:" cc -shared -fPIC $CFLAGS -o $SO $tmp -ldl + cc -shared -fPIC $CFLAGS -o $SO $tmp -ldl + rc=$? + rm -f $tmp + if [ $rc != 0 ]; then + warn "$program: cannot build $SO" + exit 1 + fi + if [ "X$debug" != "X" -o "X$install" != "X" ]; then + warn "$program: created $SO" + ls -l "$SO" + fi +} + +# Set tdir to tmp dir for make_so(): +if [ "X$XDUMMY_TMPDIR" != "X" ]; then + tdir=$XDUMMY_TMPDIR + mkdir -p $tdir +else + tdir="/tmp" +fi + +# Handle -install/-uninstall case: +SO=$0.so +if [ "X$install" != "X" -o "X$uninstall" != "X" ]; then + if [ -e "$SO" -o -h "$SO" ]; then + warn "$program: removing $SO" + fi + if [ -f "$SO" ]; then + mv $SO $SO.$$ + rm -f $SO.$$ + fi + rm -f $SO + if [ -e "$SO" -o -h "$SO" ]; then + warn "warning: $SO still exists." + exit 1 + fi + if [ $install ]; then + make_so + if [ ! -f "$SO" ]; then + exit 1 + fi + fi + exit 0 +fi + +# We need a tmp directory for the .so, tweaked config file, and for +# redirecting filenames we cannot create (under -nonroot) +# +tack="" +if [ "X$XDUMMY_TMPDIR" = "X" ]; then + XDUMMY_TMPDIR="/tmp/Xdummy.$user" + + # try to tack on a unique subdir (display number or pid) + # to allow multiple instances + # + if [ "X$disp" != "X" ]; then + t0=$disp + else + t0=$1 + fi + tack=`echo "$t0" | sed -e 's/^.*://'` + if echo "$tack" | grep '^[0-9][0-9]*$' > /dev/null; then + : + else + tack=$$ + fi + if [ "X$tack" != "X" ]; then + XDUMMY_TMPDIR="$XDUMMY_TMPDIR/$tack" + fi +fi + +tmp=$XDUMMY_TMPDIR +if echo "$tmp" | grep '^/tmp' > /dev/null; then + if [ "X$tmp" != "X/tmp" -a "X$tmp" != "X/tmp/" ]; then + # clean this subdir of /tmp out, otherwise leave it... + rm -rf $XDUMMY_TMPDIR + if [ -e $XDUMMY_TMPDIR ]; then + warn "$XDUMMY_TMPDIR still exists" + exit 1 + fi + fi +fi + +mkdir -p $XDUMMY_TMPDIR +chmod 700 $XDUMMY_TMPDIR +if [ "X$tack" != "X" ]; then + chmod 700 `dirname "$XDUMMY_TMPDIR"` 2>/dev/null +fi + +# See if we can write something there: +# +tfile="$XDUMMY_TMPDIR/test.file" +touch $tfile +if [ ! -f "$tfile" ]; then + XDUMMY_TMPDIR="/tmp/Xdummy.$$.$USER" + warn "warning: setting tmpdir to $XDUMMY_TMPDIR ..." + rm -rf $XDUMMY_TMPDIR || exit 1 + mkdir -p $XDUMMY_TMPDIR || exit 1 +fi +rm -f $tfile + +export XDUMMY_TMPDIR + +# Compile the LD_PRELOAD shared object if needed (needs XDUMMY_TMPDIR) +# +if [ ! -f "$SO" ]; then + SO="$XDUMMY_TMPDIR/Xdummy.so" + make_so +fi + +# Decide which X server to use: +# +if [ "X$xserver" = "X" ]; then + if type Xorg >/dev/null 2>&1; then + xserver="Xorg" + elif type XFree86 >/dev/null 2>&1; then + xserver="XFree86" + elif -x /usr/bin/Xorg; then + xserver="/usr/bin/Xorg" + elif -x /usr/X11R6/bin/Xorg; then + xserver="/usr/X11R6/bin/Xorg" + elif -x /usr/X11R6/bin/XFree86; then + xserver="/usr/X11R6/bin/XFree86" + fi + if [ "X$xserver" = "X" ]; then + # just let it fail below. + xserver="/usr/bin/Xorg" + warn "$program: cannot locate a stock Xserver... assuming $xserver" + fi +fi + +# See if the binary is suid or not readable under -nonroot mode: +# +if [ "X$BASH_VERSION" != "X" ]; then + xserver_path=`type -p $xserver 2>/dev/null` +else + xserver_path=`type $xserver 2>/dev/null | awk '{print $NF}'` +fi +if [ -e "$xserver_path" -a "X$root" = "X" -a "X$runit" != "X" ]; then + if [ ! -r $xserver_path -o -u $xserver_path -o -g $xserver_path ]; then + # XXX not quite correct with rm -rf $XDUMMY_TMPDIR ... + # we keep on a filesystem we know root can write to. + base=`basename "$xserver_path"` + new="/tmp/$base.$user.bin" + if [ -e $new ]; then + snew=`ls -l $new | awk '{print $5}' | grep '^[0-9][0-9]*$'` + sold=`ls -l $xserver_path | awk '{print $5}' | grep '^[0-9][0-9]*$'` + if [ "X$snew" != "X" -a "X$sold" != "X" -a "X$sold" != "X$snew" ]; then + warn "removing different sized copy:" + ls -l $new $xserver_path + rm -f $new + fi + fi + if [ ! -e $new -o ! -s $new ]; then + rm -f $new + touch $new || exit 1 + chmod 700 $new || exit 1 + if [ ! -r $xserver_path ]; then + warn "" + warn "NEED TO COPY UNREADABLE $xserver_path to $new as root:" + warn "" + ls -l $xserver_path 1>&2 + warn "" + warn "This only needs to be done once:" + warn " cat $xserver_path > $new" + warn "" + nos=$nosudo + if type sudo > /dev/null 2>&1; then + : + else + nos=1 + fi + if [ "X$nos" = "X1" ]; then + warn "Please supply root passwd to 'su -c'" + su -c "cat $xserver_path > $new" + else + warn "Please supply the sudo passwd if asked:" + sudo /bin/sh -c "cat $xserver_path > $new" + fi + else + warn "" + warn "COPYING SETUID $xserver_path to $new" + warn "" + ls -l $xserver_path 1>&2 + warn "" + cat $xserver_path > $new + fi + ls -l $new + if [ -s $new ]; then + : + else + rm -f $new + ls -l $new + exit 1 + fi + warn "" + warn "Please restart Xdummy now." + exit 0 + fi + if [ ! -O $new ]; then + warn "file \"$new\" not owned by us!" + ls -l $new + exit 1 + fi + xserver=$new + fi +fi + +# Work out display: +# +if [ "X$disp" != "X" ]; then + : +elif [ "X$1" != "X" ]; then + if echo "$1" | grep '^:[0-9]' > /dev/null; then + disp=$1 + shift + elif [ "X$1" = "X:" ]; then + # ":" means for us to find one. + shift + fi +fi +if [ "X$disp" = "X" -o "X$disp" = "X:" ]; then + # try to find an open display port: + # (tcp outdated...) + ports=`netstat -ant | grep LISTEN | awk '{print $4}' | sed -e 's/^.*://'` + n=0 + while [ $n -le 20 ] + do + port=`printf "60%02d" $n` + if echo "$ports" | grep "^${port}\$" > /dev/null; then + : + else + disp=":$n" + warn "$program: auto-selected DISPLAY $disp" + break + fi + n=`expr $n + 1` + done +fi + +# Work out which vt to use, try to find/guess an open one if necessary. +# +vt="" +for arg in $* +do + if echo "$arg" | grep '^vt' > /dev/null; then + vt=$arg + break + fi +done +if [ "X$vt" = "X" ]; then + if [ "X$user" = "Xroot" ]; then + # root can user fuser(1) to see if it is in use: + if type fuser >/dev/null 2>&1; then + # try /dev/tty17 thru /dev/tty32 + n=17 + while [ $n -le 32 ] + do + dev="/dev/tty$n" + if fuser $dev >/dev/null 2>&1; then + : + else + vt="vt$n" + warn "$program: auto-selected VT $vt => $dev" + break + fi + n=`expr $n + 1` + done + fi + fi + if [ "X$vt" = "X" ]; then + # take a wild guess... + vt=vt16 + warn "$program: selected fallback VT $vt" + fi +else + vt="" +fi + +# Decide flavor of Xserver: +# +stype=`basename "$xserver"` +if echo "$stype" | grep -i xfree86 > /dev/null; then + stype=xfree86 +else + stype=xorg +fi + +tweak_config() { + in="$1" + config2="$XDUMMY_TMPDIR/xdummy_modified_xconfig.conf" + if [ "X$disp" != "X" ]; then + d=`echo "$disp" | sed -e 's,/,,g' -e 's/:/_/g'` + config2="$config2$d" + fi + + # perl script to tweak the config file... add/delete options, etc. + # + env XDUMMY_GEOM=$geom \ + XDUMMY_DEPTH=$depth \ + XDUMMY_NOMODELINES=$nomodelines \ + perl > $config2 < $in -e ' + $n = 0; + $geom = $ENV{XDUMMY_GEOM}; + $depth = $ENV{XDUMMY_DEPTH}; + $nomodelines = $ENV{XDUMMY_NOMODELINES}; + $mode_str = ""; + $videoram = "24000"; + $HorizSync = "30.0 - 130.0"; + $VertRefresh = "50.0 - 250.0"; + if ($geom ne "") { + my $tmp = ""; + foreach $g (split(/,/, $geom)) { + $tmp .= "\"$g\" "; + if (!$nomodelines && $g =~ /(\d+)x(\d+)/) { + my $w = $1; + my $h = $2; + $mode_str .= " Modeline \"$g\" "; + my $dot = sprintf("%.2f", $w * $h * 70 * 1.e-6); + $mode_str .= $dot; + $mode_str .= " " . $w; + $mode_str .= " " . int(1.02 * $w); + $mode_str .= " " . int(1.10 * $w); + $mode_str .= " " . int(1.20 * $w); + $mode_str .= " " . $h; + $mode_str .= " " . int($h + 1); + $mode_str .= " " . int($h + 3); + $mode_str .= " " . int($h + 20); + $mode_str .= "\n"; + } + } + $tmp =~ s/\s*$//; + $geom = $tmp; + } + while (<>) { + if ($ENV{XDUMMY_NOTWEAK}) { + print $_; + next; + } + $n++; + if (/^\s*#/) { + # pass comments straight thru + print; + next; + } + if (/^\s*Section\s+(\S+)/i) { + # start of Section + $sect = $1; + $sect =~ s/\W//g; + $sect =~ y/A-Z/a-z/; + $sects{$sect} = 1; + print; + next; + } + if (/^\s*EndSection/i) { + # end of Section + if ($sect eq "serverflags") { + if (!$got_DontVTSwitch) { + print " ##Xdummy:##\n"; + print " Option \"DontVTSwitch\" \"true\"\n"; + } + if (!$got_AllowMouseOpenFail) { + print " ##Xdummy:##\n"; + print " Option \"AllowMouseOpenFail\" \"true\"\n"; + } + if (!$got_PciForceNone) { + print " ##Xdummy:##\n"; + print " Option \"PciForceNone\" \"true\"\n"; + } + } elsif ($sect eq "device") { + if (!$got_Driver) { + print " ##Xdummy:##\n"; + print " Driver \"dummy\"\n"; + } + if (!$got_VideoRam) { + print " ##Xdummy:##\n"; + print " VideoRam $videoram\n"; + } + } elsif ($sect eq "screen") { + if ($depth ne "" && !got_DefaultDepth) { + print " ##Xdummy:##\n"; + print " DefaultDepth $depth\n"; + } + if ($got_Monitor eq "") { + print " ##Xdummy:##\n"; + print " Monitor \"Monitor0\"\n"; + } + } elsif ($sect eq "monitor") { + if (!got_HorizSync) { + print " ##Xdummy:##\n"; + print " HorizSync $HorizSync\n"; + } + if (!got_VertRefresh) { + print " ##Xdummy:##\n"; + print " VertRefresh $VertRefresh\n"; + } + if (!$nomodelines) { + print " ##Xdummy:##\n"; + print $mode_str; + } + } + $sect = ""; + print; + next; + } + + if (/^\s*SubSection\s+(\S+)/i) { + # start of Section + $subsect = $1; + $subsect =~ s/\W//g; + $subsect =~ y/A-Z/a-z/; + $subsects{$subsect} = 1; + if ($sect eq "screen" && $subsect eq "display") { + $got_Modes = 0; + } + print; + next; + } + if (/^\s*EndSubSection/i) { + # end of SubSection + if ($sect eq "screen") { + if ($subsect eq "display") { + if ($depth ne "" && !$set_Depth) { + print " ##Xdummy:##\n"; + print " Depth\t$depth\n"; + } + if ($geom ne "" && ! $got_Modes) { + print " ##Xdummy:##\n"; + print " Modes\t$geom\n"; + } + } + } + $subsect = ""; + print; + next; + } + + $l = $_; + $l =~ s/#.*$//; + if ($sect eq "serverflags") { + if ($l =~ /^\s*Option.*DontVTSwitch/i) { + $_ =~ s/false/true/ig; + $got_DontVTSwitch = 1; + } + if ($l =~ /^\s*Option.*AllowMouseOpenFail/i) { + $_ =~ s/false/true/ig; + $got_AllowMouseOpenFail = 1; + } + if ($l =~ /^\s*Option.*PciForceNone/i) { + $_ =~ s/false/true/ig; + $got_PciForceNone= 1; + } + } + if ($sect eq "module") { + if ($l =~ /^\s*Load.*\b(dri|fbdevhw)\b/i) { + $_ = "##Xdummy## $_"; + } + } + if ($sect eq "monitor") { + if ($l =~ /^\s*HorizSync/i) { + $got_HorizSync = 1; + } + if ($l =~ /^\s*VertRefresh/i) { + $got_VertRefresh = 1; + } + } + if ($sect eq "device") { + if ($l =~ /^(\s*Driver)\b/i) { + $_ = "$1 \"dummy\"\n"; + $got_Driver = 1; + } + if ($l =~ /^\s*VideoRam/i) { + $got_VideoRam= 1; + } + } + if ($sect eq "inputdevice") { + if ($l =~ /^\s*Option.*\bDevice\b/i) { + print " ##Xdummy:##\n"; + $_ = " Option \"Device\" \"/dev/dilbert$n\"\n"; + } + } + if ($sect eq "screen") { + if ($l =~ /^\s*DefaultDepth\s+(\d+)/i) { + if ($depth ne "") { + print " ##Xdummy:##\n"; + $_ = " DefaultDepth\t$depth\n"; + } + $got_DefaultDepth = 1; + } + if ($l =~ /^\s*Monitor\s+(\S+)/i) { + $got_Monitor = $1; + $got_Monitor =~ s/"//g; + } + if ($subsect eq "display") { + if ($geom ne "") { + if ($l =~ /^(\s*Modes)\b/i) { + print " ##Xdummy:##\n"; + $_ = "$1 $geom\n"; + $got_Modes = 1; + } + } + if ($l =~ /^\s*Depth\s+(\d+)/i) { + my $d = $1; + if (!$set_Depth && $depth ne "") { + $set_Depth = 1; + if ($depth != $d) { + print " ##Xdummy:##\n"; + $_ = " Depth\t$depth\n"; + } + } + } + } + } + print; + } + if ($ENV{XDUMMY_NOTWEAK}) { + exit; + } + # create any crucial sections that are missing: + if (! exists($sects{serverflags})) { + print "\n##Xdummy:##\n"; + print "Section \"ServerFlags\"\n"; + print " Option \"DontVTSwitch\" \"true\"\n"; + print " Option \"AllowMouseOpenFail\" \"true\"\n"; + print " Option \"PciForceNone\" \"true\"\n"; + print "EndSection\n"; + } + if (! exists($sects{device})) { + print "\n##Xdummy:##\n"; + print "Section \"Device\"\n"; + print " Identifier \"Videocard0\"\n"; + print " Driver \"dummy\"\n"; + print " VideoRam $videoram\n"; + print "EndSection\n"; + } + if (! exists($sects{monitor})) { + print "\n##Xdummy:##\n"; + print "Section \"Monitor\"\n"; + print " Identifier \"Monitor0\"\n"; + print " HorizSync $HorizSync\n"; + print " VertRefresh $VertRefresh\n"; + print "EndSection\n"; + } + if (! exists($sects{screen})) { + print "\n##Xdummy:##\n"; + print "Section \"Screen\"\n"; + print " Identifier \"Screen0\"\n"; + print " Device \"Videocard0\"\n"; + if ($got_Monitor ne "") { + print " Monitor \"$got_Monitor\"\n"; + } else { + print " Monitor \"Monitor0\"\n"; + } + if ($depth ne "") { + print " DefaultDepth $depth\n"; + } else { + print " DefaultDepth 24\n"; + } + print " SubSection \"Display\"\n"; + print " Viewport 0 0\n"; + print " Depth 24\n"; + if ($got_Modes) { + ; + } elsif ($geom ne "") { + print " Modes $geom\n"; + } else { + print " Modes \"1280x1024\" \"1024x768\" \"800x600\"\n"; + } + print " EndSubSection\n"; + print "EndSection\n"; + } +'; +} + +# Work out config file and tweak it. +# +if [ "X$cmdline_config" = "X" ]; then + : +elif [ "X$cmdline_config" = "Xxdummy-builtin" ]; then + : +elif echo "$cmdline_config" | grep '/' > /dev/null; then + : +else + # ignore basename only case (let server handle it) + cmdline_config="" + notweak=1 +fi + +config=$cmdline_config + +if [ "X$notweak" = "X1" -a "X$root" = "X" -a -f "$cmdline_config" ]; then + # if not root we need to copy (but not tweak) the specified config. + XDUMMY_NOTWEAK=1 + export XDUMMY_NOTWEAK + notweak="" +fi + +if [ ! $notweak ]; then + # tweaked config will be put in $config2: + config2="" + if [ "X$config" = "X" ]; then + # use the default one: + if [ "X$stype" = "Xxorg" ]; then + config=/etc/X11/xorg.conf + else + if [ -f "/etc/X11/XF86Config-4" ]; then + config="/etc/X11/XF86Config-4" + else + config="/etc/X11/XF86Config" + fi + fi + if [ ! -f "$config" ]; then + for c in /etc/X11/xorg.conf /etc/X11/XF86Config-4 /etc/X11/XF86Config + do + if [ -f $c ]; then + config=$c + break + fi + done + fi + fi + + if [ "X$config" = "Xxdummy-builtin" ]; then + config="" + fi + + if [ ! -f "$config" ]; then + config="$XDUMMY_TMPDIR/xorg.conf" + warn "$program: using minimal built-in xorg.conf settings." + cat > $config < /dev/null; then + so=`echo "$so" | sed -e "s,^\.,$pwd,"` + fi + if echo "$so" | grep '/' > /dev/null; then + : + else + so="$pwd/$so" + fi + warn "env LD_PRELOAD=$so $xserver $disp $args $vt" + warn "" + if [ ! $runit ]; then + exit 0 + fi +fi + +if [ $strace ]; then + if [ "X$strace" = "X2" ]; then + ltrace -f env LD_PRELOAD=$SO $xserver $disp $args $vt + else + strace -f env LD_PRELOAD=$SO $xserver $disp $args $vt + fi +else + exec env LD_PRELOAD=$SO $xserver $disp $args $vt +fi + +exit $? + +######################################################################### + +code() { +#code_begin +#include +#define O_ACCMODE 0003 +#define O_RDONLY 00 +#define O_WRONLY 01 +#define O_RDWR 02 +#define O_CREAT 0100 /* not fcntl */ +#define O_EXCL 0200 /* not fcntl */ +#define O_NOCTTY 0400 /* not fcntl */ +#define O_TRUNC 01000 /* not fcntl */ +#define O_APPEND 02000 +#define O_NONBLOCK 04000 +#define O_NDELAY O_NONBLOCK +#define O_SYNC 010000 +#define O_FSYNC O_SYNC +#define O_ASYNC 020000 + +#include +#include +#include + +#include +#include + +#define __USE_GNU +#include + +static char tmpdir[4096]; +static char str1[4096]; +static char str2[4096]; + +static char devs[256][1024]; +static int debug = -1; +static int root = -1; +static int changed_uid = 0; +static int saw_fonts = 0; +static int saw_lib_modules = 0; + +static time_t start = 0; + +void check_debug(void) { + if (debug < 0) { + if (getenv("XDUMMY_DEBUG") != NULL) { + debug = 1; + } else { + debug = 0; + } + /* prevent other processes using the preload: */ + putenv("LD_PRELOAD="); + } +} +void check_root(void) { + if (root < 0) { + /* script tells us if we are root */ + if (getenv("XDUMMY_ROOT") != NULL) { + root = 1; + } else { + root = 0; + } + } +} + +void check_uid(void) { + if (start == 0) { + start = time(NULL); + if (debug) fprintf(stderr, "START: %u\n", (unsigned int) start); + return; + } else if (changed_uid == 0) { + if (saw_fonts || time(NULL) > start + 20) { + if (getenv("XDUMMY_UID")) { + int uid = atoi(getenv("XDUMMY_UID")); + if (debug) fprintf(stderr, "SETREUID: %d saw_fonts=%d\n", uid, saw_fonts); + if (uid >= 0) { + /* this will simply fail in -nonroot mode: */ + setreuid(uid, -1); + } + } + changed_uid = 1; + } + } +} + +#define CHECKIT if (debug < 0) check_debug(); \ + if (root < 0) check_root(); \ + check_uid(); + +static void set_tmpdir(void) { + char *s; + static int didset = 0; + if (didset) { + return; + } + s = getenv("XDUMMY_TMPDIR"); + if (! s) { + s = "/tmp"; + } + tmpdir[0] = '\0'; + strcat(tmpdir, s); + strcat(tmpdir, "/"); + didset = 1; +} + +static char *tmpdir_path(const char *path) { + char *str; + set_tmpdir(); + strcpy(str2, path); + str = str2; + while (*str) { + if (*str == '/') { + *str = '_'; + } + str++; + } + strcpy(str1, tmpdir); + strcat(str1, str2); + return str1; +} + +int open(const char *pathname, int flags, unsigned short mode) { + int fd; + char *store_dev = NULL; + static int (*real_open)(const char *, int , unsigned short) = NULL; + + CHECKIT + if (! real_open) { + real_open = (int (*)(const char *, int , unsigned short)) + dlsym(RTLD_NEXT, "open"); + } + + if (strstr(pathname, "lib/modules/")) { + /* not currently used. */ + saw_lib_modules = 1; + } + + if (!root) { + if (strstr(pathname, "/dev/") == pathname) { + store_dev = strdup(pathname); + } + if (strstr(pathname, "/dev/tty") == pathname && strcmp(pathname, "/dev/tty")) { + pathname = tmpdir_path(pathname); + if (debug) fprintf(stderr, "OPEN: %s -> %s (as FIFO)\n", store_dev, pathname); + /* we make it a FIFO so ioctl on it does not fail */ + unlink(pathname); + mkfifo(pathname, 0666); + } else if (0) { + /* we used to handle more /dev files ... */ + fd = real_open(pathname, O_WRONLY|O_CREAT, 0777); + close(fd); + } + } + + fd = real_open(pathname, flags, mode); + + if (debug) fprintf(stderr, "OPEN: %s %d %d fd=%d\n", pathname, flags, mode, fd); + + if (! root) { + if (store_dev) { + if (fd < 256) { + strcpy(devs[fd], store_dev); + } + free(store_dev); + } + } + + return(fd); +} + +int open64(const char *pathname, int flags, unsigned short mode) { + int fd; + + CHECKIT + if (debug) fprintf(stderr, "OPEN64: %s %d %d\n", pathname, flags, mode); + + fd = open(pathname, flags, mode); + return(fd); +} + +int rename(const char *oldpath, const char *newpath) { + static int (*real_rename)(const char *, const char *) = NULL; + + CHECKIT + if (! real_rename) { + real_rename = (int (*)(const char *, const char *)) + dlsym(RTLD_NEXT, "rename"); + } + + if (debug) fprintf(stderr, "RENAME: %s %s\n", oldpath, newpath); + + if (root) { + return(real_rename(oldpath, newpath)); + } + + if (strstr(oldpath, "/var/log") == oldpath) { + if (debug) fprintf(stderr, "RENAME: returning 0\n"); + return 0; + } + return(real_rename(oldpath, newpath)); +} + +FILE *fopen(const char *pathname, const char *mode) { + static FILE* (*real_fopen)(const char *, const char *) = NULL; + char *str; + + if (! saw_fonts) { + if (strstr(pathname, "/fonts/")) { + if (strstr(pathname, "fonts.dir")) { + saw_fonts = 1; + } else if (strstr(pathname, "fonts.alias")) { + saw_fonts = 1; + } + } + } + + CHECKIT + if (! real_fopen) { + real_fopen = (FILE* (*)(const char *, const char *)) + dlsym(RTLD_NEXT, "fopen"); + } + + if (debug) fprintf(stderr, "FOPEN: %s %s\n", pathname, mode); + + if (strstr(pathname, "xdummy_modified_xconfig.conf")) { + /* make our config appear to be in /etc/X11, etc. */ + char *q = strrchr(pathname, '/'); + if (q != NULL && getenv("XDUMMY_TMPDIR") != NULL) { + strcpy(str1, getenv("XDUMMY_TMPDIR")); + strcat(str1, q); + if (debug) fprintf(stderr, "FOPEN: %s -> %s\n", pathname, str1); + pathname = str1; + } + } + + if (root) { + return(real_fopen(pathname, mode)); + } + + str = (char *) pathname; + if (strstr(pathname, "/var/log") == pathname) { + str = tmpdir_path(pathname); + if (debug) fprintf(stderr, "FOPEN: %s -> %s\n", pathname, str); + } + return(real_fopen(str, mode)); +} + + +#define RETURN0 if (debug) \ + {fprintf(stderr, "IOCTL: covered %d 0x%x\n", fd, req);} return 0; +#define RETURN1 if (debug) \ + {fprintf(stderr, "IOCTL: covered %d 0x%x\n", fd, req);} return -1; + +int ioctl(int fd, int req, void *ptr) { + static int closed_xf86Info_consoleFd = 0; + static int (*real_ioctl)(int, int , void *) = NULL; + + CHECKIT + if (! real_ioctl) { + real_ioctl = (int (*)(int, int , void *)) + dlsym(RTLD_NEXT, "open"); + } + if (debug) fprintf(stderr, "IOCTL: %d 0x%x %p\n", fd, req, ptr); + + /* based on xorg-x11-6.8.1-dualhead.patch */ + if (req == VT_GETMODE) { + /* close(xf86Info.consoleFd) */ + if (0 && ! closed_xf86Info_consoleFd) { + /* I think better not to close it... */ + close(fd); + closed_xf86Info_consoleFd = 1; + } + RETURN0 + } else if (req == VT_SETMODE) { + RETURN0 + } else if (req == VT_GETSTATE) { + RETURN0 + } else if (req == KDSETMODE) { + RETURN0 + } else if (req == KDSETLED) { + RETURN0 + } else if (req == KDGKBMODE) { + RETURN0 + } else if (req == KDSKBMODE) { + RETURN0 + } else if (req == VT_ACTIVATE) { + RETURN0 + } else if (req == VT_WAITACTIVE) { + RETURN0 + } else if (req == VT_RELDISP) { + if (ptr == (void *) 1) { + RETURN1 + } else if (ptr == (void *) VT_ACKACQ) { + RETURN0 + } + } + + return(real_ioctl(fd, req, ptr)); +} + +typedef void (*sighandler_t)(int); +#define SIGUSR1 10 +#define SIG_DFL ((sighandler_t)0) + +sighandler_t signal(int signum, sighandler_t handler) { + static sighandler_t (*real_signal)(int, sighandler_t) = NULL; + + CHECKIT + if (! real_signal) { + real_signal = (sighandler_t (*)(int, sighandler_t)) + dlsym(RTLD_NEXT, "signal"); + } + + if (debug) fprintf(stderr, "SIGNAL: %d %p\n", signum, handler); + + if (signum == SIGUSR1) { + if (debug) fprintf(stderr, "SIGNAL: skip SIGUSR1\n"); + return SIG_DFL; + } + + return(real_signal(signum, handler)); +} + +int close(int fd) { + static int (*real_close)(int) = NULL; + + CHECKIT + if (! real_close) { + real_close = (int (*)(int)) dlsym(RTLD_NEXT, "close"); + } + + if (debug) fprintf(stderr, "CLOSE: %d\n", fd); + if (!root) { + if (fd < 256) { + devs[fd][0] = '\0'; + } + } + return(real_close(fd)); +} + +struct stat { + int foo; +}; + +int stat(const char *path, struct stat *buf) { + static int (*real_stat)(const char *, struct stat *) = NULL; + + CHECKIT + if (! real_stat) { + real_stat = (int (*)(const char *, struct stat *)) + dlsym(RTLD_NEXT, "stat"); + } + + if (debug) fprintf(stderr, "STAT: %s\n", path); + + return(real_stat(path, buf)); +} + +int stat64(const char *path, struct stat *buf) { + static int (*real_stat64)(const char *, struct stat *) = NULL; + + CHECKIT + if (! real_stat64) { + real_stat64 = (int (*)(const char *, struct stat *)) + dlsym(RTLD_NEXT, "stat64"); + } + + if (debug) fprintf(stderr, "STAT64: %s\n", path); + + return(real_stat64(path, buf)); +} + +int chown(const char *path, uid_t owner, gid_t group) { + static int (*real_chown)(const char *, uid_t, gid_t) = NULL; + + CHECKIT + if (! real_chown) { + real_chown = (int (*)(const char *, uid_t, gid_t)) + dlsym(RTLD_NEXT, "chown"); + } + + if (root) { + return(real_chown(path, owner, group)); + } + + if (debug) fprintf(stderr, "CHOWN: %s %d %d\n", path, owner, group); + + if (strstr(path, "/dev") == path) { + if (debug) fprintf(stderr, "CHOWN: return 0\n"); + return 0; + } + + return(real_chown(path, owner, group)); +} + +extern int *__errno_location (void); +#ifndef ENODEV +#define ENODEV 19 +#endif + +int ioperm(unsigned long from, unsigned long num, int turn_on) { + static int (*real_ioperm)(unsigned long, unsigned long, int) = NULL; + + CHECKIT + if (! real_ioperm) { + real_ioperm = (int (*)(unsigned long, unsigned long, int)) + dlsym(RTLD_NEXT, "ioperm"); + } + if (debug) fprintf(stderr, "IOPERM: %d %d %d\n", (int) from, (int) num, turn_on); + if (root) { + return(real_ioperm(from, num, turn_on)); + } + if (from == 0 && num == 1024 && turn_on == 1) { + /* we want xf86EnableIO to fail */ + if (debug) fprintf(stderr, "IOPERM: setting ENODEV.\n"); + *__errno_location() = ENODEV; + return -1; + } + return 0; +} + +int iopl(int level) { + static int (*real_iopl)(int) = NULL; + + CHECKIT + if (! real_iopl) { + real_iopl = (int (*)(int)) dlsym(RTLD_NEXT, "iopl"); + } + if (debug) fprintf(stderr, "IOPL: %d\n", level); + if (root) { + return(real_iopl(level)); + } + return 0; +} + +#ifdef INTERPOSE_GETUID + +/* + * we got things to work w/o pretending to be root. + * so we no longer interpose getuid(), etc. + */ + +uid_t getuid(void) { + static uid_t (*real_getuid)(void) = NULL; + CHECKIT + if (! real_getuid) { + real_getuid = (uid_t (*)(void)) dlsym(RTLD_NEXT, "getuid"); + } + if (root) { + return(real_getuid()); + } + if (debug) fprintf(stderr, "GETUID: 0\n"); + return 0; +} +uid_t geteuid(void) { + static uid_t (*real_geteuid)(void) = NULL; + CHECKIT + if (! real_geteuid) { + real_geteuid = (uid_t (*)(void)) dlsym(RTLD_NEXT, "geteuid"); + } + if (root) { + return(real_geteuid()); + } + if (debug) fprintf(stderr, "GETEUID: 0\n"); + return 0; +} +uid_t geteuid_kludge1(void) { + static uid_t (*real_geteuid)(void) = NULL; + CHECKIT + if (! real_geteuid) { + real_geteuid = (uid_t (*)(void)) dlsym(RTLD_NEXT, "geteuid"); + } + if (debug) fprintf(stderr, "GETEUID: 0 saw_libmodules=%d\n", saw_lib_modules); + if (root && !saw_lib_modules) { + return(real_geteuid()); + } else { + saw_lib_modules = 0; + return 0; + } +} + +uid_t getuid32(void) { + static uid_t (*real_getuid32)(void) = NULL; + CHECKIT + if (! real_getuid32) { + real_getuid32 = (uid_t (*)(void)) dlsym(RTLD_NEXT, "getuid32"); + } + if (root) { + return(real_getuid32()); + } + if (debug) fprintf(stderr, "GETUID32: 0\n"); + return 0; +} +uid_t geteuid32(void) { + static uid_t (*real_geteuid32)(void) = NULL; + CHECKIT + if (! real_geteuid32) { + real_geteuid32 = (uid_t (*)(void)) dlsym(RTLD_NEXT, "geteuid32"); + } + if (root) { + return(real_geteuid32()); + } + if (debug) fprintf(stderr, "GETEUID32: 0\n"); + return 0; +} + +gid_t getgid(void) { + static gid_t (*real_getgid)(void) = NULL; + CHECKIT + if (! real_getgid) { + real_getgid = (gid_t (*)(void)) dlsym(RTLD_NEXT, "getgid"); + } + if (root) { + return(real_getgid()); + } + if (debug) fprintf(stderr, "GETGID: 0\n"); + return 0; +} +gid_t getegid(void) { + static gid_t (*real_getegid)(void) = NULL; + CHECKIT + if (! real_getegid) { + real_getegid = (gid_t (*)(void)) dlsym(RTLD_NEXT, "getegid"); + } + if (root) { + return(real_getegid()); + } + if (debug) fprintf(stderr, "GETEGID: 0\n"); + return 0; +} +gid_t getgid32(void) { + static gid_t (*real_getgid32)(void) = NULL; + CHECKIT + if (! real_getgid32) { + real_getgid32 = (gid_t (*)(void)) dlsym(RTLD_NEXT, "getgid32"); + } + if (root) { + return(real_getgid32()); + } + if (debug) fprintf(stderr, "GETGID32: 0\n"); + return 0; +} +gid_t getegid32(void) { + static gid_t (*real_getegid32)(void) = NULL; + CHECKIT + if (! real_getegid32) { + real_getegid32 = (gid_t (*)(void)) dlsym(RTLD_NEXT, "getegid32"); + } + if (root) { + return(real_getegid32()); + } + if (debug) fprintf(stderr, "GETEGID32: 0\n"); + return 0; +} +#endif + +#if 0 +/* maybe we need to interpose on strcmp someday... here is the template */ +int strcmp(const char *s1, const char *s2) { + static int (*real_strcmp)(const char *, const char *) = NULL; + CHECKIT + if (! real_strcmp) { + real_strcmp = (int (*)(const char *, const char *)) dlsym(RTLD_NEXT, "strcmp"); + } + if (debug) fprintf(stderr, "STRCMP: '%s' '%s'\n", s1, s2); + return(real_strcmp(s1, s2)); +} +#endif + +#code_end +} diff --git a/vendor/Xdummy-entrypoint b/vendor/Xdummy-entrypoint new file mode 100755 index 00000000..2ac63383 --- /dev/null +++ b/vendor/Xdummy-entrypoint @@ -0,0 +1,20 @@ +#!/usr/bin/python +import argparse +import os +import sys +import subprocess + +parser = argparse.ArgumentParser() +args, extra_args = parser.parse_known_args() +subprocess.Popen(["nohup", "Xdummy"], stdout=open('/dev/null', 'w'), stderr=open('/dev/null', 'w')) +os.environ['DISPLAY'] = ':0' +if not extra_args: + sys.argv = ['/bin/bash'] +else: + sys.argv = extra_args +# Explicitly flush right before the exec since otherwise things might get +# lost in Python's buffers around stdout/stderr (!). +sys.stdout.flush() +sys.stderr.flush() +os.execvpe(sys.argv[0], sys.argv, os.environ) + diff --git a/vendor/pymj_shim/Makefile b/vendor/pymj_shim/Makefile new file mode 100644 index 00000000..c39b2ad8 --- /dev/null +++ b/vendor/pymj_shim/Makefile @@ -0,0 +1,6 @@ +.PHONY: upload + +upload: + rm -rf dist + python setup.py sdist + twine upload dist/* diff --git a/vendor/pymj_shim/README.md b/vendor/pymj_shim/README.md new file mode 100644 index 00000000..624314c4 --- /dev/null +++ b/vendor/pymj_shim/README.md @@ -0,0 +1,2 @@ +# PyMj +`mujoco-py` 1.5.0 and up used to be called `pymj` internally. This stub package allows to retain backwards compatibility so `pip install pymj` and `import pymj` keep working, but use `mujoco-py` internally. diff --git a/vendor/pymj_shim/pymj/__init__.py b/vendor/pymj_shim/pymj/__init__.py new file mode 100644 index 00000000..49fb23e8 --- /dev/null +++ b/vendor/pymj_shim/pymj/__init__.py @@ -0,0 +1,9 @@ +import warnings +import sys + +warnings.warn("""\ +`pymj` is deprecated and will be removed soon. Please switch to mujoco-py version 1.50.0.0 or later. +To do this, replace your dependency on `pymj` with `mujoco-py<1.50.1,>=1.50.0`, +and replace `import pymj` with `import mujoco_py`.""", UserWarning, stacklevel=2) + +sys.modules[__name__] = __import__('mujoco_py') diff --git a/vendor/pymj_shim/setup.py b/vendor/pymj_shim/setup.py new file mode 100644 index 00000000..39544956 --- /dev/null +++ b/vendor/pymj_shim/setup.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 +from setuptools import setup + +setup( + name='pymj', + version='2.0', + description='DEPRECATED -- use mujoco-py instead: https://github.com/openai/mujoco-py', + url='https://github.com/openai/mujoco-py', + author='OpenAI Robotics Team', + author_email='robotics@openai.com', + packages=['pymj'], + install_requires=['mujoco-py<1.50.1,>=1.50.0'], +) diff --git a/xmls/claw.xml b/xmls/claw.xml new file mode 100644 index 00000000..e2f33659 --- /dev/null +++ b/xmls/claw.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xmls/door.xml b/xmls/door.xml new file mode 100644 index 00000000..e12d1ff4 --- /dev/null +++ b/xmls/door.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xmls/fetch/base_link_collision.stl b/xmls/fetch/base_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..1ef459fd5bb63e2e5391b6166bc3231b37d07170 GIT binary patch literal 236084 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%0AM|5F3d$xrrRt*9quqJ+>`nQW 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 literal 0 HcmV?d00001 diff --git a/xmls/fetch/elbow_flex_link_collision.stl b/xmls/fetch/elbow_flex_link_collision.stl new file mode 100644 index 0000000000000000000000000000000000000000..b0eea0777a10b5aad2e9237c888883944492c42e GIT binary patch literal 48684 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 Y6^UnB`j9>c*2o*^q3|852u5k(*OVf literal 0 HcmV?d00001 diff --git a/xmls/fetch/estop_link.stl b/xmls/fetch/estop_link.stl new file mode 100644 index 0000000000000000000000000000000000000000..f6d1c72e85f9b028b8a6026278a1d99f1035f353 GIT binary patch literal 386884 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