name: spelling run_id: install_deps env HOME: /home/jenkins env LANG: C.UTF-8 env PATH: /w/workspace/docs-tox-verify-calcium/.tox/spelling/bin:/opt/pyenv/bin:/tmp/venv-mPct/bin:/opt/pyenv/shims:/home/jenkins/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/puppetlabs/bin env PYTHONHASHSEED: 932232266 env PIP_DISABLE_PIP_VERSION_CHECK: 1 env PYTHONIOENCODING: utf-8 env TOX_ENV_NAME: spelling env TOX_WORK_DIR: /w/workspace/docs-tox-verify-calcium/.tox env TOX_ENV_DIR: /w/workspace/docs-tox-verify-calcium/.tox/spelling env VIRTUAL_ENV: /w/workspace/docs-tox-verify-calcium/.tox/spelling metadata pid: 29277 cwd: /w/workspace/docs-tox-verify-calcium allow: /w/workspace/docs-tox-verify-calcium/.tox/spelling/bin/*:sh cmd: python -I -m pip install PyEnchant sphinxcontrib-spelling -r docs/requirements.txt exit_code: 0 Looking in indexes: https://nexus3.opendaylight.org/repository/PyPi/simple Collecting PyEnchant Downloading https://nexus3.opendaylight.org/repository/PyPi/packages/pyenchant/3.2.2/pyenchant-3.2.2-py3-none-any.whl (55 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.7/55.7 kB 7.3 MB/s eta 0:00:00 Collecting sphinxcontrib-spelling Downloading https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-spelling/8.0.0/sphinxcontrib_spelling-8.0.0-py3-none-any.whl (16 kB) Collecting lfdocs-conf>0.6.1 (from -r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/lfdocs-conf/0.9.0/lfdocs_conf-0.9.0-py2.py3-none-any.whl (8.4 kB) Collecting jira (from -r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/jira/3.8.0/jira-3.8.0-py3-none-any.whl (77 kB) Collecting Sphinx>=3.0.0 (from sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinx/7.3.7/sphinx-7.3.7-py3-none-any.whl (3.3 MB) Collecting PyYAML (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/pyyaml/6.0.1/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (757 kB) Collecting sphinx-bootstrap-theme (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinx-bootstrap-theme/0.8.1/sphinx_bootstrap_theme-0.8.1-py2.py3-none-any.whl (1.2 MB) Collecting sphinx-tabs (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinx-tabs/3.4.5/sphinx_tabs-3.4.5-py3-none-any.whl (9.9 kB) Collecting sphinxcontrib-blockdiag (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-blockdiag/3.0.0/sphinxcontrib_blockdiag-3.0.0-py2.py3-none-any.whl (6.8 kB) Collecting sphinxcontrib-needs (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-needs/0.7.9/sphinxcontrib_needs-0.7.9-py3-none-any.whl (2.6 MB) Collecting sphinxcontrib.plantuml (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached sphinxcontrib_plantuml-0.30-py3-none-any.whl Collecting sphinxcontrib-nwdiag (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-nwdiag/2.0.0/sphinxcontrib_nwdiag-2.0.0-py2.py3-none-any.whl (13 kB) Collecting sphinxcontrib-seqdiag (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-seqdiag/3.0.0/sphinxcontrib_seqdiag-3.0.0-py2.py3-none-any.whl (6.9 kB) Collecting sphinxcontrib-swaggerdoc (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-swaggerdoc/0.1.7/sphinxcontrib_swaggerdoc-0.1.7-py2.py3-none-any.whl (7.6 kB) Collecting sphinx-rtd-theme (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinx-rtd-theme/2.0.0/sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl (2.8 MB) Collecting funcparserlib>=1.0.0a0 (from lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/funcparserlib/2.0.0a0/funcparserlib-2.0.0a0-py3-none-any.whl (16 kB) Collecting defusedxml (from jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/defusedxml/0.7.1/defusedxml-0.7.1-py2.py3-none-any.whl (25 kB) Collecting packaging (from jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/packaging/24.1/packaging-24.1-py3-none-any.whl (53 kB) Collecting Pillow>=2.1.0 (from jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/pillow/10.3.0/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl (4.5 MB) Collecting requests-oauthlib>=1.1.0 (from jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/requests-oauthlib/2.0.0/requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB) Collecting requests>=2.10.0 (from jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/requests/2.32.3/requests-2.32.3-py3-none-any.whl (64 kB) Collecting requests-toolbelt (from jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/requests-toolbelt/1.0.0/requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB) Collecting typing-extensions>=3.7.4.2 (from jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/typing-extensions/4.12.2/typing_extensions-4.12.2-py3-none-any.whl (37 kB) Collecting charset-normalizer<4,>=2 (from requests>=2.10.0->jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/charset-normalizer/3.3.2/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (140 kB) Collecting idna<4,>=2.5 (from requests>=2.10.0->jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/idna/3.7/idna-3.7-py3-none-any.whl (66 kB) Collecting urllib3<3,>=1.21.1 (from requests>=2.10.0->jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/urllib3/2.2.2/urllib3-2.2.2-py3-none-any.whl (121 kB) Collecting certifi>=2017.4.17 (from requests>=2.10.0->jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/certifi/2024.6.2/certifi-2024.6.2-py3-none-any.whl (164 kB) Collecting oauthlib>=3.0.0 (from requests-oauthlib>=1.1.0->jira->-r docs/requirements.txt (line 2)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/oauthlib/3.2.2/oauthlib-3.2.2-py3-none-any.whl (151 kB) Collecting sphinxcontrib-applehelp (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-applehelp/1.0.8/sphinxcontrib_applehelp-1.0.8-py3-none-any.whl (120 kB) Collecting sphinxcontrib-devhelp (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-devhelp/1.0.6/sphinxcontrib_devhelp-1.0.6-py3-none-any.whl (83 kB) Collecting sphinxcontrib-jsmath (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-jsmath/1.0.1/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Collecting sphinxcontrib-htmlhelp>=2.0.0 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-htmlhelp/2.0.5/sphinxcontrib_htmlhelp-2.0.5-py3-none-any.whl (99 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-serializinghtml/1.1.10/sphinxcontrib_serializinghtml-1.1.10-py3-none-any.whl (92 kB) Collecting sphinxcontrib-qthelp (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-qthelp/1.0.7/sphinxcontrib_qthelp-1.0.7-py3-none-any.whl (89 kB) Collecting Jinja2>=3.0 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/jinja2/3.1.4/jinja2-3.1.4-py3-none-any.whl (133 kB) Collecting Pygments>=2.14 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/pygments/2.18.0/pygments-2.18.0-py3-none-any.whl (1.2 MB) Collecting docutils<0.22,>=0.18.1 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/docutils/0.21.2/docutils-0.21.2-py3-none-any.whl (587 kB) Collecting snowballstemmer>=2.0 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/snowballstemmer/2.2.0/snowballstemmer-2.2.0-py2.py3-none-any.whl (93 kB) Collecting babel>=2.9 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/babel/2.15.0/Babel-2.15.0-py3-none-any.whl (9.6 MB) Collecting alabaster~=0.7.14 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/alabaster/0.7.16/alabaster-0.7.16-py3-none-any.whl (13 kB) Collecting imagesize>=1.3 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/imagesize/1.4.1/imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB) Collecting docutils<0.22,>=0.18.1 (from Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/docutils/0.20.1/docutils-0.20.1-py3-none-any.whl (572 kB) Collecting sphinxcontrib-jquery<5,>=4 (from sphinx-rtd-theme->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinxcontrib-jquery/4.1/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Collecting blockdiag>=1.5.0 (from sphinxcontrib-blockdiag->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/blockdiag/3.0.0/blockdiag-3.0.0-py3-none-any.whl (2.7 MB) Collecting jsonschema==3.2.0 (from sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/jsonschema/3.2.0/jsonschema-3.2.0-py2.py3-none-any.whl (56 kB) Collecting matplotlib>3.1.0 (from sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/matplotlib/3.9.0/matplotlib-3.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB) Collecting requests-file<2.0.0,>=1.5.1 (from sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/requests-file/1.5.1/requests_file-1.5.1-py2.py3-none-any.whl (3.7 kB) Collecting sphinx-data-viewer<0.2.0,>=0.1.1 (from sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/sphinx-data-viewer/0.1.4/sphinx_data_viewer-0.1.4-py3-none-any.whl (8.2 kB) Collecting attrs>=17.4.0 (from jsonschema==3.2.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/attrs/23.2.0/attrs-23.2.0-py3-none-any.whl (60 kB) Collecting pyrsistent>=0.14.0 (from jsonschema==3.2.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/pyrsistent/0.20.0/pyrsistent-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (120 kB) Requirement already satisfied: setuptools in ./.tox/spelling/lib/python3.11/site-packages (from jsonschema==3.2.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) (70.1.0) Collecting six>=1.11.0 (from jsonschema==3.2.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/six/1.16.0/six-1.16.0-py2.py3-none-any.whl (11 kB) Collecting nwdiag>=1.0.3 (from sphinxcontrib-nwdiag->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/nwdiag/3.0.0/nwdiag-3.0.0-py3-none-any.whl (7.7 MB) Collecting seqdiag>=0.9.3 (from sphinxcontrib-seqdiag->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/seqdiag/3.0.0/seqdiag-3.0.0-py3-none-any.whl (2.6 MB) Collecting future (from sphinxcontrib-swaggerdoc->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/future/1.0.0/future-1.0.0-py3-none-any.whl (491 kB) Collecting webcolors (from blockdiag>=1.5.0->sphinxcontrib-blockdiag->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/webcolors/24.6.0/webcolors-24.6.0-py3-none-any.whl (14 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.0->Sphinx>=3.0.0->sphinxcontrib-spelling) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/markupsafe/2.1.5/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (28 kB) Collecting contourpy>=1.0.1 (from matplotlib>3.1.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/contourpy/1.2.1/contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (306 kB) Collecting cycler>=0.10 (from matplotlib>3.1.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/cycler/0.12.1/cycler-0.12.1-py3-none-any.whl (8.3 kB) Collecting fonttools>=4.22.0 (from matplotlib>3.1.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/fonttools/4.53.0/fonttools-4.53.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB) Collecting kiwisolver>=1.3.1 (from matplotlib>3.1.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/kiwisolver/1.4.5/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB) Collecting numpy>=1.23 (from matplotlib>3.1.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/numpy/2.0.0/numpy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.3 MB) Collecting pyparsing>=2.3.1 (from matplotlib>3.1.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/pyparsing/3.1.2/pyparsing-3.1.2-py3-none-any.whl (103 kB) Collecting python-dateutil>=2.7 (from matplotlib>3.1.0->sphinxcontrib-needs->lfdocs-conf>0.6.1->-r docs/requirements.txt (line 1)) Using cached https://nexus3.opendaylight.org/repository/PyPi/packages/python-dateutil/2.9.0.post0/python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) Installing collected packages: sphinx-bootstrap-theme, snowballstemmer, webcolors, urllib3, typing-extensions, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, sphinx-data-viewer, six, PyYAML, pyrsistent, pyparsing, Pygments, PyEnchant, Pillow, packaging, oauthlib, numpy, MarkupSafe, kiwisolver, imagesize, idna, future, funcparserlib, fonttools, docutils, defusedxml, cycler, charset-normalizer, certifi, babel, attrs, alabaster, requests, python-dateutil, jsonschema, Jinja2, contourpy, blockdiag, Sphinx, seqdiag, requests-toolbelt, requests-oauthlib, requests-file, nwdiag, matplotlib, sphinxcontrib-swaggerdoc, sphinxcontrib-spelling, sphinxcontrib-seqdiag, sphinxcontrib.plantuml, sphinxcontrib-nwdiag, sphinxcontrib-needs, sphinxcontrib-jquery, sphinxcontrib-blockdiag, sphinx-tabs, jira, sphinx-rtd-theme, lfdocs-conf Successfully installed Jinja2-3.1.4 MarkupSafe-2.1.5 Pillow-10.3.0 PyEnchant-3.2.2 PyYAML-6.0.1 Pygments-2.18.0 Sphinx-7.3.7 alabaster-0.7.16 attrs-23.2.0 babel-2.15.0 blockdiag-3.0.0 certifi-2024.6.2 charset-normalizer-3.3.2 contourpy-1.2.1 cycler-0.12.1 defusedxml-0.7.1 docutils-0.20.1 fonttools-4.53.0 funcparserlib-2.0.0a0 future-1.0.0 idna-3.7 imagesize-1.4.1 jira-3.8.0 jsonschema-3.2.0 kiwisolver-1.4.5 lfdocs-conf-0.9.0 matplotlib-3.9.0 numpy-2.0.0 nwdiag-3.0.0 oauthlib-3.2.2 packaging-24.1 pyparsing-3.1.2 pyrsistent-0.20.0 python-dateutil-2.9.0.post0 requests-2.32.3 requests-file-1.5.1 requests-oauthlib-2.0.0 requests-toolbelt-1.0.0 seqdiag-3.0.0 six-1.16.0 snowballstemmer-2.2.0 sphinx-bootstrap-theme-0.8.1 sphinx-data-viewer-0.1.4 sphinx-rtd-theme-2.0.0 sphinx-tabs-3.4.5 sphinxcontrib-applehelp-1.0.8 sphinxcontrib-blockdiag-3.0.0 sphinxcontrib-devhelp-1.0.6 sphinxcontrib-htmlhelp-2.0.5 sphinxcontrib-jquery-4.1 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-needs-0.7.9 sphinxcontrib-nwdiag-2.0.0 sphinxcontrib-qthelp-1.0.7 sphinxcontrib-seqdiag-3.0.0 sphinxcontrib-serializinghtml-1.1.10 sphinxcontrib-spelling-8.0.0 sphinxcontrib-swaggerdoc-0.1.7 sphinxcontrib.plantuml-0.30 typing-extensions-4.12.2 urllib3-2.2.2 webcolors-24.6.0