python-netgear-switch-library 0.0.post344__tar.gz → 0.0.post345__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/PKG-INFO +1 -1
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/_version.py +2 -2
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli_read.py +14 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/models.py +17 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/cli/commands.py +6 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/cli/parse.py +71 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/.github/workflows/ci.yml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/.github/workflows/deb.yml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/.github/workflows/publish-pypi.yml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/.gitignore +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/.readthedocs.yaml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/CLAUDE.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/LICENSE +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/README.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/RELEASING.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/debian/changelog +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/debian/control +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/debian/copyright +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/debian/rules +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/debian/source/format +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/Makefile +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_ext/filelinks.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_ext/support_tables.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/models/gs105pe.png +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/models/gs110emx.png +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/models/gs305ep.png +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/models/gs728tpp.png +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/models/gsm7228ps.jpg +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/models/gsm7252ps.jpg +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/models/m4300-16x.png +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/models/m4300-24x.png +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/_static/ngsw.css +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/core.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/facades.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/index.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/mcp.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/operations.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/protocols.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/transport.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/api/virtual.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/conf.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/development.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/fake/index.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/fake/internals.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/fake/serving.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/fake/testing.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/guide/concepts.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/guide/configuration.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/guide/installation.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/guide/principles.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/guide/quickstart.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/guide/reading.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/guide/writing.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/index.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/mcp.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/gs105pe.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/gs110emx.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/gs305ep.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/gs728tpp.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/gsm7228ps.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/gsm7252ps.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/index.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/m4300-16x.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/m4300-24x.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/models/support.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/http/cheetah-form.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/http/cheetah-v1.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/http/gambit.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/http/merge-hash-cgi.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/http/xml-api.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/http.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/index.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/nsdp.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/protocols/snmp.rst +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-15-foundation.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-17-slice-02-snmp-read-core.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-17-slice-03-read-apis.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-18-slice-04-snmp-write.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-18-slice-05-nsdp.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-18-slice-06-http.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-18-slice-07-cli.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-18-slice-08-packaging-ci.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/plans/2026-07-23-gsm7252ps-http-xe-dialect.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/specs/2026-07-15-netgear-control-library-design.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/specs/2026-07-23-gsm7252ps-http-xe-dialect-design.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/superpowers/specs/2026-08-02-snmp-surface-findings.md +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/packaging/apt-index.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/packaging/ci-build.sh +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/packaging/deb-version.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/pyproject.toml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/aio_api.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/capabilities.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli/capture.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli/context.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli/format.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli/main.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli/resolve.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli/safety.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/cli_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/config.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/errors.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/http_read.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/http_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/mcp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/mcp/server.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/nsdp_read.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/nsdp_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/http/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/http/crypt.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/http/endpoints.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/http/forms.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/http/parse.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/http/session.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/http/types.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/nsdp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/nsdp/auth.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/nsdp/client.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/nsdp/parsers.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/nsdp/protocol.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/nsdp/types.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/nsdp/write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/snmp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/snmp/client.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/snmp/oids.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/snmp/parse.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/protocols/snmp/write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/py.typed +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/registry.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/snmp_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/sync_api.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/aio/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/aio/nsdp_udp.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/aio/snmp_pysnmp.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/cli/console.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/cli/session.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/cli/ssh.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/cli/telnet.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/http/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/http/client.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/sync/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/sync/nsdp_udp.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/transport/sync/snmp_netsnmp_cli.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/cli_fastpath.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/faces/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/faces/cli.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/faces/http.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/faces/mibview.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/faces/nsdp.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/faces/snmp.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/seed.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/server.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/state.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_fastpath_vlan.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_fastpath_xui.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_gs105pe.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_gs110emx.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_gs110emx_templates.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_gs728tpp.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_gsm7228ps.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_gsm7252ps.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/src/netgear_switch/virtual/web_m4300.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/capture_parity.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_capture.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_cli_integration.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_control_poe_port.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_control_vlan_ip.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_format.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_main_framework.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_new_commands.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_op_coverage.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_prompt_wiring.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_read_commands.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_resolve.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_safety.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/cli/test_serve.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/conftest.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/captures/gsm7228ps.json +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/captures/gsm7252ps.json +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/captures/m4300-16x.json +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/captures/m4300-24x.json +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_lldp.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_mac_table.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_network.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_poe.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_vlan_brief.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7228ps_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_network.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_poe_port_info_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_vlan_90.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_vlan_brief.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/gsm7252ps_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_ip_management.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_poe_port_info_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_vlan_1.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_vlan_4.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_vlan_5.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_16x_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_ip_management.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_vlan_5.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_vlan_90.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/cli/m4300_24x_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs105pe_membership.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs105pe_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs105pe_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs105pe_status.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs105pe_switch_info.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs105pe_vlancfg.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs110emx_cf8021q.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs110emx_interface_stats.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs110emx_login.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs110emx_port_settings.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs110emx_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs110emx_redirect.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs110emx_sysinfo.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs110emx_vlanmembership.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs305ep_dashboard.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs305ep_login.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs305ep_membership.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs305ep_poestatus.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs305ep_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs305ep_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs305ep_vlancfg.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_device_info_and_sensors.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_lldp.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_macs.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_mgmt_ip.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_poe.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_ports.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_pvids_membership.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_vlan_membership_per_vlan.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gs728tpp_vlans.xml +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_basicAddressTable.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_ipConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_portPvidConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_portStatistics.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_sysInfo.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_vlanPortCfg_vlan5.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7228ps_vlanStatus.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_basicAddressTable.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_ipConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_login.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_portPvidConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_portStatistics.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_sysInfo.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan1.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan141.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/gsm7252ps_vlanStatus.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_16x_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_16x_mgmtVlanIpv4Configuration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_16x_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_16x_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_16x_vlanportcfg_vlan4.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_24x_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_addresstable.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_mgmtVlanIpv4Configuration.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_ports.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_sysinfo.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_vlanportcfg_vlan1.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/http/m4300_vlanstatus.html +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/snmp/gsm7252ps_fans.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/snmp/gsm7252ps_ifhighspeed.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/snmp/gsm7252ps_ifoperstatus.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/fixtures/snmp/gsm7252ps_psu.txt +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/http_specs.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/cli/test_cli_parse.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/http/test_crypt.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/http/test_endpoints.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/http/test_forms.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/http/test_parse.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/nsdp/test_auth.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/nsdp/test_parsers.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/nsdp/test_protocol.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/nsdp/test_write_frame.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_client.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_oids.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_parse_lldp_macs.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_parse_mgmt_ip.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_parse_poe_sensors.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_parse_ports.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_parse_system_info.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_parse_vlans.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/protocols/snmp/test_write_encode.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_aio_api.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_capabilities.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_cli_read.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_cli_vlan_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_cli_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_config.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_cross_backend_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_deb_version.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_docs_coverage.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_errors.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_facade_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_http_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_http_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_http_read.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_http_vlan_membership.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_http_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_http_xui_writes.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_import.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_mcp_server.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_models.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_models_snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_nsdp_integration.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_nsdp_read.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_nsdp_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_public_api.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_quality_gates.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_registry.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_snmp_integration.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_snmp_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_sync_api.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_version.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/test_write_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/_fastpath_fake.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_cli_console.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_cli_scp_cert.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_cli_telnet.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_http_client.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_nsdp_udp_sync.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_set_transport.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_snmp_netsnmp_cli.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_snmp_pysnmp.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/transport/test_value_parity.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_cli_cross_backend.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_cli_gsm7228ps_parity.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_gsm7228ps_seed.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_hostname.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_m4300_seeds.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_mibview.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_mutable_state.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_nsdp_state.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_serve_daemon.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_snmp_write_face.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_state_seed.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_switchport_vlan_write.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_virtual_http_face.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_virtual_nsdp_face.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_virtual_snmp_face.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/tests/virtual/test_web_projection.py +0 -0
- {python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/uv.lock +0 -0
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-netgear-switch-library
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.post345
|
|
4
4
|
Summary: Python library and CLI to query and control Netgear switches over SNMP, NSDP and HTTP.
|
|
5
5
|
Author-email: Tim Ansell <me@mith.ro>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 0, '
|
|
21
|
+
__version__ = version = '0.0.post345'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 0, 'post345')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -36,6 +36,7 @@ if TYPE_CHECKING:
|
|
|
36
36
|
PortStats,
|
|
37
37
|
PortStatus,
|
|
38
38
|
Sensor,
|
|
39
|
+
ServiceStatus,
|
|
39
40
|
SwitchUser,
|
|
40
41
|
SyslogConfig,
|
|
41
42
|
VLANInfo,
|
|
@@ -105,6 +106,19 @@ class CliReader:
|
|
|
105
106
|
def get_mgmt_ip(self) -> MgmtIpConfig:
|
|
106
107
|
return parse.parse_mgmt_ip(self.session.run(self._spec.network_cmd))
|
|
107
108
|
|
|
109
|
+
def get_services(self) -> list[ServiceStatus]:
|
|
110
|
+
"""Which management services are enabled, and on which ports.
|
|
111
|
+
|
|
112
|
+
Three commands, because the switch splits it that way -- and the telnet
|
|
113
|
+
one is ``show telnetcon``, not ``show telnet``. See
|
|
114
|
+
``parse.parse_services`` for why that distinction matters.
|
|
115
|
+
"""
|
|
116
|
+
return parse.parse_services(
|
|
117
|
+
self.session.run(self._spec.http_service_cmd),
|
|
118
|
+
self.session.run(self._spec.telnet_service_cmd),
|
|
119
|
+
self.session.run(self._spec.ssh_service_cmd),
|
|
120
|
+
)
|
|
121
|
+
|
|
108
122
|
def get_users(self) -> list[SwitchUser]:
|
|
109
123
|
"""The switch's local login accounts, from ``show users``.
|
|
110
124
|
|
|
@@ -119,6 +119,23 @@ class MgmtIpConfig:
|
|
|
119
119
|
base_mac: str | None = None
|
|
120
120
|
|
|
121
121
|
|
|
122
|
+
@dataclass(frozen=True)
|
|
123
|
+
class ServiceStatus:
|
|
124
|
+
"""One management service the switch offers, and whether it is on.
|
|
125
|
+
|
|
126
|
+
Covers the four protocols an operator turns on or off to control how the
|
|
127
|
+
switch itself can be reached: ``http``, ``https``, ``telnet`` and ``ssh``.
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
#: One of ``http``, ``https``, ``telnet``, ``ssh``.
|
|
131
|
+
name: str
|
|
132
|
+
enabled: bool
|
|
133
|
+
#: The TCP port the service listens on, or ``None`` where the firmware does
|
|
134
|
+
#: not report one. Measured: gsm7252ps omits the ``SSH Port`` line that
|
|
135
|
+
#: m4300-24x prints, so this is genuinely absent rather than defaulted to 22.
|
|
136
|
+
port: int | None = None
|
|
137
|
+
|
|
138
|
+
|
|
122
139
|
@dataclass(frozen=True)
|
|
123
140
|
class SwitchUser:
|
|
124
141
|
"""One local login account on the switch."""
|
|
@@ -106,6 +106,12 @@ class CliModelSpec:
|
|
|
106
106
|
# Local login accounts. Present on both FASTPATH images measured; the
|
|
107
107
|
# ACCESS-MODE vocabulary differs between them (see parse.parse_users).
|
|
108
108
|
users_cmd: str = "show users"
|
|
109
|
+
# Management services. `show ip http` covers BOTH web servers; the inbound
|
|
110
|
+
# telnet server is `show telnetcon` and NOT `show telnet`, which reports
|
|
111
|
+
# the switch as an outbound telnet CLIENT (measured 2026-08-02).
|
|
112
|
+
http_service_cmd: str = "show ip http"
|
|
113
|
+
telnet_service_cmd: str = "show telnetcon"
|
|
114
|
+
ssh_service_cmd: str = "show ip ssh"
|
|
109
115
|
# Remote logging. `show syslog` does NOT exist -- all three FASTPATH
|
|
110
116
|
# switches answered "% Invalid input detected" on 2026-08-02.
|
|
111
117
|
logging_cmd: str = "show logging"
|
|
@@ -42,6 +42,7 @@ from ...models import (
|
|
|
42
42
|
PortStats,
|
|
43
43
|
PortStatus,
|
|
44
44
|
Sensor,
|
|
45
|
+
ServiceStatus,
|
|
45
46
|
SwitchUser,
|
|
46
47
|
SyslogConfig,
|
|
47
48
|
SyslogServer,
|
|
@@ -609,6 +610,76 @@ def parse_environment(text: str) -> list[Sensor]:
|
|
|
609
610
|
return out
|
|
610
611
|
|
|
611
612
|
|
|
613
|
+
# ---------------------------------------------------------------------------
|
|
614
|
+
# show ip http / show telnetcon / show ip ssh -> management services
|
|
615
|
+
# ---------------------------------------------------------------------------
|
|
616
|
+
|
|
617
|
+
|
|
618
|
+
def _enabled(text: str) -> bool:
|
|
619
|
+
"""FASTPATH spells this two ways: "Enabled" and "Enable"."""
|
|
620
|
+
return text.strip().lower() in {"enabled", "enable", "yes"}
|
|
621
|
+
|
|
622
|
+
|
|
623
|
+
def parse_services(
|
|
624
|
+
http_text: str, telnet_text: str, ssh_text: str
|
|
625
|
+
) -> list[ServiceStatus]:
|
|
626
|
+
"""The four management services, from the three commands that report them.
|
|
627
|
+
|
|
628
|
+
Captured 2026-08-02 from m4300-24x (10.1.5.13) and gsm7252ps (10.1.5.22).
|
|
629
|
+
|
|
630
|
+
``show ip http`` carries BOTH the plain and secure web servers::
|
|
631
|
+
|
|
632
|
+
HTTP Mode (Unsecure)........................... Enabled
|
|
633
|
+
HTTP Port...................................... 80
|
|
634
|
+
HTTP Mode (Secure)............................. Enabled
|
|
635
|
+
Secure Port.................................... 443
|
|
636
|
+
|
|
637
|
+
``show telnetcon`` -- NOT ``show telnet`` -- reports the INBOUND server::
|
|
638
|
+
|
|
639
|
+
Telnet Server Admin Mode....................... Enable
|
|
640
|
+
Telnet Server Port............................. 23
|
|
641
|
+
|
|
642
|
+
``show telnet`` describes the switch as a telnet *client* ("Allow New
|
|
643
|
+
Outbound Telnet Sessions"), which says nothing about whether the server this
|
|
644
|
+
library's TELNET backend connects to is running. Reading it as the server
|
|
645
|
+
state would be wrong in the way that looks right.
|
|
646
|
+
|
|
647
|
+
``show ip ssh`` reports SSH, and its field set differs by firmware: the
|
|
648
|
+
gsm7252ps prints no ``SSH Port`` line at all, so that port is honestly None
|
|
649
|
+
rather than assumed to be 22.
|
|
650
|
+
"""
|
|
651
|
+
http = labelled_values(http_text)
|
|
652
|
+
telnet = labelled_values(telnet_text)
|
|
653
|
+
# `show ip ssh` writes its labels WITH a trailing colon before the dotted
|
|
654
|
+
# leader ("Administrative Mode: ......... Enabled"), unlike every other
|
|
655
|
+
# FASTPATH scalar command. Measured on both m4300-24x and gsm7252ps. Without
|
|
656
|
+
# stripping it the lookup misses and SSH reads as disabled on a switch whose
|
|
657
|
+
# own output says Enabled -- which is exactly what the first live run did.
|
|
658
|
+
ssh = {k.rstrip(":").strip(): v for k, v in labelled_values(ssh_text).items()}
|
|
659
|
+
return [
|
|
660
|
+
ServiceStatus(
|
|
661
|
+
name="http",
|
|
662
|
+
enabled=_enabled(http.get("HTTP Mode (Unsecure)", "")),
|
|
663
|
+
port=_int(http.get("HTTP Port", "")),
|
|
664
|
+
),
|
|
665
|
+
ServiceStatus(
|
|
666
|
+
name="https",
|
|
667
|
+
enabled=_enabled(http.get("HTTP Mode (Secure)", "")),
|
|
668
|
+
port=_int(http.get("Secure Port", "")),
|
|
669
|
+
),
|
|
670
|
+
ServiceStatus(
|
|
671
|
+
name="telnet",
|
|
672
|
+
enabled=_enabled(telnet.get("Telnet Server Admin Mode", "")),
|
|
673
|
+
port=_int(telnet.get("Telnet Server Port", "")),
|
|
674
|
+
),
|
|
675
|
+
ServiceStatus(
|
|
676
|
+
name="ssh",
|
|
677
|
+
enabled=_enabled(ssh.get("Administrative Mode", "")),
|
|
678
|
+
port=_int(ssh.get("SSH Port", "")),
|
|
679
|
+
),
|
|
680
|
+
]
|
|
681
|
+
|
|
682
|
+
|
|
612
683
|
# ---------------------------------------------------------------------------
|
|
613
684
|
# show users -> local login accounts
|
|
614
685
|
# ---------------------------------------------------------------------------
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/.gitignore
RENAMED
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/CLAUDE.md
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/LICENSE
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/README.md
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/RELEASING.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/debian/rules
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/cli.rst
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/conf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post344 → python_netgear_switch_library-0.0.post345}/docs/mcp.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|