162 Commits
Author SHA1 Message Date
Earle LoweandGitHub c32a4a7493 Add Python 3.14 support (#20195)
* First pass add 3.14

* Update bitarray

* Update markupsafe

* Update zstd

* Update tach to version with 3.14 support

* Changes for 3.14 related things

* Refactor shutdown handling in sync method

* Ignore unclosed database ResourceWarning

Added a new warning to ignore for unclosed database resources.

* Update pytest.ini to ignore additional warnings

* ignore resourcewarnings about tempdir cleanup

* Minor cleanup for tests running under python 3.14

* Reduce consensus tests for test_ban_for_mismatched_tx_cost_fee

* make sure to close RPC client at end of test

* different idea for TempFile

* oh, no cleanup function

* small fixes for tests detected by 3.14

* update pytest.ini

* ignore sqlite errors during closing in __del__

* add code to ignore deprecatewarnings for loop policy

* Pass in ClientSession to wschiaconnection for proper cleanup

* Some more resource cleanup

* Trying to find unclosed sessions

* One more time needing a close

* wait for harvesters to connect to the farmer

* properly teardown vdf_server using context manager

* Testing cleanup for simulator tests

* Add in a sleep to allow sockets time to cleanup

* Revert "Testing cleanup for simulator tests"

This reverts commit c5a4ef0cc3.

* Revert "properly teardown vdf_server using context manager"

This reverts commit 18b456a7b6.

* Revert "Revert "Testing cleanup for simulator tests""

This reverts commit 8c8efc2e03.

* vdf_server cleanup

* attempt 47 of timelord cleanup

* Some other cleanup fixes in tests

* yet another attempt at timelord shutdown

* Some more adjustments for 3.14

* ignore unclosed socket resource warnings

* some more adjustments and cleanup

* remove commented code

* correct poetry.lock file

* Address some review comments

* fix merge indentation

* fix install script print

* update requests

* fix problems with timelord tests on 3.14

* Make sure to close dummy session on any exception

* Use different cleanup pattern to help with flakes on Windows

* better shutdown handling

* hopefully better awaiting for cleanup

* yet more better timelord cleanup

* some test adjustments

* more time for cleanup
2026-05-13 09:32:01 -05:00
matt-o-howandGitHub 554f084d70 Add unhide .venv step to install.sh on macOS (#20484)
add unhide venv to install.sh
2026-02-11 10:02:49 -08:00
e8f5a17888 python 3.13 support (#19123)
* python 3.13 support

* some more

* 3.13 for dep checks

* more 3.13  *confused*

* fixup

* fixup

* update expected signature in 3.13

* fixup _attach/_detach hinting and testing

* ban freethreading

* Fix trailing comma in list

* replace legacy kw_only_dataclass decorator

* Adjust check for python version

* Remove debugging output

* Use reruns for 3.13+Windows flakes only

* re-lock poetry

---------

Co-authored-by: Earle Lowe <e.lowe@chia.net>
Co-authored-by: Matt Hauff <quexington@gmail.com>
2025-10-23 15:41:26 -05:00
Matt HauffandGitHub f4f7fad91b [LABS-247] Move defaults from 3.10 to 3.12 (#20115)
* initial changes

* poetry fix

* Address ruff

* Install scripts issues

* Experiment a little bit

* Okay now try for rocky linux and use 3.12 instead

* Remove the now unused thing

* Move defaults from 3.10 to 3.12

* Setup python3.12

* debug

* debug

* whoops

* listen I really dont know what Im doing

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* Use Chia action

* Use an upstream change

* debug

* Move the python setup to the install action

* try something dumb

* back to sh

* debug

* Cleanup after extensive debug

* Add SQLite version report

* test with new images

* remove python setup

* try this image?

* back to this

* Try hyphenless

* Use published pyhon312 tags
2025-10-17 06:32:03 -07:00
e947dd14c7 [LABS-244] Remove python 3.9 support (#20099)
* initial changes

* poetry fix

* Address ruff

* Install scripts issues

* Experiment a little bit

* Okay now try for rocky linux and use 3.12 instead

* Remove the now unused thing

* Use dnf for consistency

* Simplify installations

* Still need git

* relock poetry with 2.2.0

* relock poetry with 2.2.0

* try `git checkout main poetry.lock && .penv/bin/poetry lock` on altendky's system

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>
2025-10-14 07:19:52 -07:00
Richard KissandGitHub a8d7d32d53 Remove mozilla ca submodule and subsume this functionality (#19850)
<!-- Merging Requirements:
- Please give your PR a title that is release-note friendly
- In order to be merged, you must add the most appropriate category
Label (Added, Changed, Fixed) to your PR
-->
<!-- Explain why this is an improvement (Does this add missing
functionality, improve performance, or reduce complexity?) -->

### Purpose:

<!-- Does this PR introduce a breaking change? -->

### Current Behavior:

### New Behavior:

<!-- As we aim for complete code coverage, please include details
regarding unit, and regression tests -->

### Testing Notes:

<!-- Attach any visual examples, or supporting evidence (attach any
.gif/video/console output below) -->
2025-07-30 11:05:13 -07:00
Kyle AltendorfandGitHub 1fa28872e2 use poetry sync in install scripts (#19762) 2025-06-26 16:29:15 -07:00
Kyle AltendorfandGitHub 4cdf86f2c0 ensure poetry version via install scripts (#19369)
* ensure poetry version via install scripts

* Update Setup-poetry.ps1
2025-03-31 09:18:59 -05:00
Earle LoweandGitHub e07d1eb5de Use #!/usr/bin/env bash (#18762)
* Use #!/usr/bin/env bash

* Update setup-poetry.sh

* Use #!/usr/bin/env bash for shebang

* fix up typo for leading space

* For consistency fix up a few other scripts
2024-11-04 15:22:52 -07:00
Kyle AltendorfandGitHub 6a0344fb0b only attempt poetry install when not present (#18811) 2024-11-04 12:33:51 -07:00
Kyle AltendorfandGitHub 6a20ef2bb6 tidy venv usage in install.sh (#18778)
* tidy venv usage in `install.sh`

* Update install.sh

* Update install.sh
2024-10-30 09:27:53 -07:00
Kyle AltendorfandGitHub 9c8557a1f8 Remove Python 3.8 support and update source to 3.9 standards (#18687)
* manual python 3.8 removals

* poetry

* pyupgrade

* black

* isort

* manually tidy imports

* work around shadowed type

* catch up build network protocol files for pyupgrade changes

* placate pylint

* re-enable 20.04

* placate flake8
2024-10-16 14:21:15 -07:00
William AllenandGitHub 5041c8ce2d Fix install.sh upgrade issue (#18673) 2024-10-11 12:52:20 -07:00
Kyle AltendorfandGitHub 18438883f1 move poetry plugin installation to poetry setup scripts (#18360) 2024-07-25 15:31:35 -07:00
ClydeWallace22andGitHub 54ff8ba7a1 update link for chia guide during install (#18358) 2024-07-24 12:03:27 -07:00
6d9219b0c4 CHIA-597: Use poetry for package management (#11057)
* preliminary setup with poetry

* don't worry about locking the poetry env for the exploration right now

* recover black config in pyproject.toml

* install.sh for linting workflow

* pull chiavdf version from poetry in install-timelord.sh

* activate etc in upload and lint workflow

* debug poetry show output on macos

* update to clvm-tools 0.4.4

* add back setproctitle

* catchup deps

* lock

* allow 3.10

* debug

* make Install.ps1 use poetry as well

* -ErrorAction Ignore

* more todo about python version selection

* make install-timelord.sh modifications more posix compliant

* gitignore .penv* and .venv* as well

* remove requirements.penv.txt

* get artifact check requirements from poetry

* fix .gitignore for venv symlink

* separate out poetry setup

* :

* comment out code to be worked on

* setup poetry for dependency check

* ignore new poetry symlink

* chia_rs==0.1.4

* a few updates

* some missed updates `:[`

* update some types libs

* fix extras

* activate

* just use `python` somewhere

* for windows

* less symlinking for windows

* oops

* s

* more

* # shellcheck disable=SC2086

* activate action

* more python version

* lock up

* include ipython (for python >=3.8)

* add miniupnpc extra

* add poetry-dynamic-versioning

* type it out

* better match dev versioning

* catch up and delete setup.py again

* lock

* add pytest-cov

* .penv/bin/poetry

* .venv for windows activation

* update pytest-xdist

* install upnp extra

* upnp

* quote

* maybe update some deps

* mandatory and string

* oops

* slighty tidy

* debug pip list

* debug

* pybind11 maybe instead?

* remove pip install debugging

* debug without upnp nor pypi.chia.net

* chiavdf==1.0.8

* bring back upnp

* re-enable upnp

* diagnostic exception reraise

* .exe?

* diagnostics

* .cmd...?

* light tidy

* more cleanup

* make dependency check script not cwd dependent for finding the poetry env

* correct sh substitution

* lock

* coverage 7

* todo cleanup

* poetry update

* interesting

* windows too

* support non-editable install via scripts again

* oops

* again

* sheesh

* fixup

* more

* more

* Update dependencies

* various pre-commit linter updates

* add pyupgrade to extras list

* use priority=supplemental instead of secondary

* Add in some missing deps

* update setuptools and pyinstaller to match main

* venv->.venv

* lint fixes

* update a few packages for 3.12 support

* get zstd from chia resource for python 3.12

* Adjustments to dynamic versioning

* experiments with versioning

* test fixes

Signed-off-by: Earle Lowe <e.lowe@chia.net>

* fixup last commit

* include upnp as extra when installing on windows

* include mozilla-ca as a package for the cacert.pem file

* some windows tweaks

* use SPECPATH as anchor path in pyinstaller.spec file

* Add lxml as dev dependency

* Fixup typo in lxml version

* Update some packages to resolve GH vuln reports

* Update more packages to resolve GH vulns

* Ignore pylint license in depedency checker

* match installation of the dynamic version plugin on windows

* Fix issues with setting windows environment and use pip to install plugin per poetry docs recommendation

* properly apply non-editable option with -i

* use -f with ln to remove existing file as needed

* use shell=true for subprocess to help windows run chia if it's a .cmd

* Update .coveragerc

* use shutil.which() to find chia executable in a cross platform way

* mypy fixes

* Address conflicts for numpy based on python version

* Update lock file

* Remove troublesome reference to pypi source

* Add TODOs for manual install of poetry-dynamic-versioning plugin

* Use poetry dynamic versioning to figure out the version rather than setuptools_scm

* Update .github/workflows/reflow-version.yml

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update .github/workflows/test-single.yml

Co-authored-by: Kyle Altendorf <sda@fstab.net>

* Update urllib3

* Attempts to get dynamic versioning to output something semver

* more versioning finangling

* lint pyproject.toml

* Update certifi

---------

Signed-off-by: Earle Lowe <e.lowe@chia.net>
Co-authored-by: Earle Lowe <e.lowe@chia.net>
Co-authored-by: Earle Lowe <30607889+emlowe@users.noreply.github.com>
2024-07-10 08:47:11 -07:00
Kyle AltendorfandGitHub abb0b04142 move shfmt execution from the super linter to pre-commit (#17913)
* move shfmt execution from the super linter to pre-commit

* actually apply...
2024-04-29 09:03:10 -07:00
Kyle AltendorfandGitHub 6adb099f9b switch to legacy-keyring as the extra name so it works (#17770) 2024-03-25 12:02:23 -07:00
13b75e8a39 Add Python 3.12 support (#14423)
* start adding python 3.12 support

* add missing comma

* include 3.12

* allow 3.12 in install.sh

* Bump chia wheels for python 3.12

* bump chiabip158

* Use datetime.timezone.UTC

* Update create_ssl.py

* UTC->utc

* Use datetime.timezone.utc

* bump chiavdf

---------

Co-authored-by: Earle Lowe <e.lowe@chia.net>
Co-authored-by: Earle Lowe <30607889+emlowe@users.noreply.github.com>
2024-03-08 19:00:02 -08:00
Earle LoweandGitHub e50e1e6956 Remove all install.sh code that installs python and leave it to the user (#16000)
* Remove all install.sh code that installs python and leave it to the user to install as needed

* A little cleanup

* some install workflow updates

* install python for rocky

* cleanup some unused bits
2024-02-14 13:02:53 -08:00
Aurélien MoraandGitHub c05fd88913 Check dependencies to avoid a useless sudo on Archlinux (#17158) 2024-01-12 10:04:10 -06:00
Arvid NorbergandGitHub 95e5b97557 Use bls from chia rs (#16715)
* replace blspy imports with chia_rs imports for BLS types

* remove blspy-stubs, since we're dropping the blspy dependency. chia_rs has type stubs already
2023-11-07 09:06:52 -08:00
Arvid NorbergandGitHub 7b0bea4043 various typing fixes (#15899)
* add blspy-stubs to improve mypy

* various typing fixes

* avoid cast

* use ValueError exception instead of assert when aborting picking a wallet key
2023-08-17 19:10:40 -05:00
d1m1trusandGitHub 6dd3a4d740 Fixed python3-venv into install.sh (#15920)
* Fix python3.11-venv into install.sh

Fix Installation aborted due to not being able to install an older version of python3.10-venv

* Fixed python3.11-venv into install.sh rev2

Fixed Installation aborted due to not being able to install an older version of python3.10-venv

* Fixed python3.11-venv into install.sh rev3

Fixed Installation aborted due to not being able to install an older version of python3.10-venv
2023-08-03 09:24:34 -05:00
Kyle AltendorfandGitHub 74b02fa44e test installed code, not source (#15532)
* explore testing installed code, not source

* non-editable install

* hmm

* yup

* bash it up

* test-single.yml: defaults: run: shell: bash

* try removing windows specific steps

* env.GITHUB_WORKSPACE

* Update test-single.yml

* Update test-single.yml

* Update test-single.yml

* also Install.ps1

* ,

* more

* Update test-single.yml

* Update .coveragerc

* whitespace
2023-07-24 20:02:00 -05:00
Kyle AltendorfandGitHub 42a6d1afa6 remove support for Python 3.7 (#14611)
* remove support for Python 3.7

* python_requires=">=3.8, <4"

* 3.8.1+

* catchup

* remove todos handled in https://github.com/Chia-Network/chia-blockchain/pull/15755
2023-07-14 12:49:58 -05:00
Gene HoffmanandGitHub b0072fdce0 Move to Discord in docs and install scripts (#15193) 2023-05-04 13:18:33 -05:00
Kyle AltendorfandGitHub 523a5d4cf5 Add support for Python 3.11 (#11407)
* Add Python 3.11 to CI

* 3.11 in the install scripts

* ${{ format('{0}.0-alpha - {0}.X', matrix.python) }}

* bump chiavdf and chiabip158 for releases with 3.11 wheels

* also bump blspy and clvm-tools-rs

* drop the extra .X for the python setup version

* chia_rs==0.1.13

* Update install.sh

* pyinstaller==5.5

* less mutable defaults

* memory_profiler

* assert sqlite3.threadsafety >= 1

* create tasks for stopping services

(cherry picked from commit 3384714f2e3e0bdc8c3d3741027e9e4fb69a6002)

* psutil==5.9.4

* drop memory_profiler transitive dep since it now supports 3.11

* drop redundant pre-release python getting incantation

* watchdog==2.2.0

* black for py311
2023-01-27 17:16:03 -06:00
Kyle AltendorfandGitHub 419342ed22 reorder gui install command instructions in install.sh/ps1 (#14180)
* reorder gui install command instructions in install.sh

* reorder gui install command instructions in Install.ps1
2022-12-19 10:55:07 -06:00
b916275540 tools: Implement and test tools/legacy_keyring.py (#13947)
* Add `-l` option to `install.sh` and use it for linux tests on CI

* Implement and test `tools/legacy_keyring.py`

* Update install.sh

Co-authored-by: Jeff <paninaro@gmail.com>

Co-authored-by: Jeff <paninaro@gmail.com>
2022-12-03 23:31:51 -06:00
d73e979720 Deprecate chia plotters install command (#13584) (#13643)
* Deprecated `chia plotters install` command

* Fixed lint errors

* Made it able to recognize plotter executables in venv

* Added install-plotter.sh

* Removed strings for debug

* Added install-plotter.ps1

* Fixed an issue where madmax plotter under venv dir was not recognized by 'chia plotters' command

* Added exec permission to install-plotter.sh

* Fixed issues found in install-plotter.sh

* Fixed lint errors

* Added `-p` option to install.sh/install.ps1

* Fixed lint errors

* Added nice deprecated warning

* Fixed a lint error

* Slightly improved branching

* Made log messages look nice

* Fixed an issue where install.sh/ps1 -p failed if virtual env is not acivated

Co-authored-by: Izumi Hoshino <admin@chiamine.jp>
2022-10-17 14:29:02 -05:00
Izumi HoshinoandGitHub 9fa965bab2 Minimized a chance where sudo prompts users for password (#13219)
* Minimized a chance where `sudo xxx install ...` is executed and prompts users for password

* Fixed install issue on Ubuntu/Debian

* (Retry) Fixed install issue on Ubuntu/Debian

* Fixed an issue where `install.sh` exits unexpectedly on Ubuntu/Debian

* Added `set +e` and `set -e` to find_xxx functions

* Improve code structure

* Fixed an issue where `install.sh` fails if Python < 3.7 is already installed

* Added `-s` option and overwhaul entire construction

* `-d` and `-s` can be both specified at once
2022-10-04 11:19:15 -05:00
c3272fa84c Write python version error to stderr (#11239)
Co-authored-by: wjblanke <wjb98672@gmail.com>
2022-05-14 02:04:18 -07:00
Kyle AltendorfandGitHub 619c539e2a Corect install.sh usage short options list (#11387) 2022-05-02 13:01:29 -07:00
9dc4e15905 Only Ubuntu 18 needs distutils (#11308)
Co-authored-by: wjblanke <wjb98672@gmail.com>
2022-04-28 09:15:31 -07:00
Kyle AltendorfandGitHub 28d9dbfd3a More general Ubuntu references in install.sh (#11325)
* More general Ubuntu references in install.sh

* oops
2022-04-27 11:37:21 -07:00
7892148bdc Support for Python 3.10 (#9930)
* Support for Python 3.10

* Update install.sh to block Python 3.11

* websockets to 10.1

* Update workflows for Python 3.10

* single quote 3.10

* Enable fedora:35 (py3.10) installer script testing

* rebuild workflows

* fixup test-install-scripts.yml

* add ignore for distutils deprecation in tests for now

* asyncio.get_event_loop().run_until_complete() -> asyncio.run()

* aiohttp==3.8.1 for python 3.10 support

* use ssl.Purpose.CLIENT_AUTH for ssl_context_for_server()

* rebuild workflows

* use ssl_context_for_client() in BlockTools.get_daemon_ssl_context()

* create a client context for the RpcServer to connect to the daemon

* go back to asyncio.get_event_loop().run_until_complete() for now to recover 3.7

* ignore:There is no current event loop:DeprecationWarning

* Ms.plot load perf2 (#10978)

* 2.7 seconds -> 0.45 seconds

* Merge

* Work on create_plots refactor

* Try to fix tests

* Try to fix tests

* Use new functions

* Fix block_tools by adding dir

* Extra argument

* Try to fix cyclic import

* isort

* Drop warning

* Some cleanups around `exclude_final_dir` and directory adding

* Cleanup `min_mainnet_k_size` checks

* Drop unrelated changes

* Fixes after rebase

* Fix cyclic import

* Update tests/block_tools.py

Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>

* Update tests/block_tools.py

Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>

Co-authored-by: xdustinface <xdustinfacex@gmail.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>

* remove 3.10 avoidance step from debian:bookworm installer testing

* add 3.10 to wheel availability check workflow

* add 3.10 to Install.ps1 supported Python versions for Windows

* add jammy jellyfish to the install script test matrix

* correct ubuntu:jammy job name

* add 22.04 with Python 3.10 to install.sh

Co-authored-by: Gene Hoffman <hoffmang@hoffmang.com>
Co-authored-by: Yostra <straya@chia.net>
Co-authored-by: Mariano Sorgente <3069354+mariano54@users.noreply.github.com>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
Co-authored-by: dustinface <35775977+xdustinface@users.noreply.github.com>
2022-04-26 12:37:01 -07:00
Kyle AltendorfandGitHub bcaa5e6088 simplify install.sh ubuntu version tracking (#11288)
* simplify install.sh ubuntu version tracking

* quotes for bash

* undo some unintended changes
2022-04-25 11:08:26 -07:00
131bd4e2f3 install.sh is not upgrading OpenSSL on MacOS (#11003)
* MacOS isn't updating OpenSSL in install.sh

* Exit if no brew on MacOS

* Code the if tree like a pro instead.

Co-authored-by: Kyle Altendorf <sda@fstab.net>

Co-authored-by: Kyle Altendorf <sda@fstab.net>
2022-04-01 21:22:56 -07:00
Gene HoffmanandGitHub e3e814b9ec Compile python 3.9.11 which is aware of the openssl issue (#11001) 2022-04-01 21:06:32 -07:00
Gene HoffmanandGitHub 3e2b979751 install/upgrade openssl on Arch Linux also (#10999) 2022-04-01 19:28:20 -07:00
Gene HoffmanandGitHub 14627d8a6e apt show not needed (#10997) 2022-04-01 18:01:30 -07:00
Gene HoffmanandGitHub 58abb35114 Check for vulnerable openssl (#10988)
* Check for vulnerable openssl

* Update OpenSSL on MacOS

* First attempt - openssl Ubuntu 18.04 and 20.04

* place local/bin ahead in PATH

* specify install openssl

* correct path

* run ldconfig

* stop building and check for patched openssl

* spell sudo right by removing it

* Remove openssl building - 1st attempt RHs

* Test Windows OpenSSL version HT @AmineKhaldi
2022-04-01 13:20:29 -07:00
William AllenandGitHub b1acb5597b Adding check for python3.9 alongside python3.10 on Arch (#10363)
* Adding check for python3.9 alongside python3.10 on Arch

* Adjusting install.sh instructions for Arch

* Disabling prescribed python install for Arch

* Setting Arch install script to exit 0 to pass tests

* Adding workflow step for functional Arch install testing

* Adding noconfirm to pacman install command

* Relocating Arch support message for install.sh
2022-03-22 16:22:17 -07:00
Kyle AltendorfandGitHub 161a838b6a more set -o errexit (#10468)
* more set -o errexit -o pipefail

* no pipefail, too fancy for dash at least...
2022-03-17 09:13:27 -07:00
Gene HoffmanandGitHub f6af022728 Improve SQLite version string (#10387) 2022-02-23 00:39:31 -08:00
Kyle AltendorfandGitHub bd845f5d3a Test CLI installer on Rocky (#10134)
* Test CLI installer on Rocky

* Add Rocky support to install.sh

* Update test-install-scripts.yml

* oops

* also sudo for rocky install.sh testing

* fix indentation

* oops
2022-02-14 22:24:19 -08:00
fc95c638a3 Update to handle the NodeJS 16 dependency (#9921)
* preliminary testing of in-directory n on ubuntu always

* Use more n chiaminejp (#9971)

* Added n as a local npm dependency

* Fixed an issue where `install.sh` always tried to run `sudo apt install bc -y` even if `bc` is installed already

* Added validations and useful outputs for `start-gui.sh`

* Fixed lint error and use shell functions for readability

* Replace tags with spaces

* Skip installing python39 on RH like OS if it is already installed

* Fixed an issue where start-gui.sh failed silently if venv is not activated

* Suppressed message from pacman

* Support CentOS7

* Fixed typo

* Reduced unnecessary install messages

* Fixed end of file

* Added npm_global/__init__.py to pass CI

* Fixed lint errors

* Install python/sqlite from source on AMZN2. Clear old venv when changing python version on install

* Suppress unnecessary command outputs

* Suppress outputs

* Added centos7/8 to install test

* A minor fix

* Fixed yaml syntax error

* Fixed an issue where test-install-scripts failed in CentOS

Co-authored-by: ChiaMineJP <admin@chiamine.jp>
2022-02-11 18:30:19 -08:00
Kyle AltendorfandGitHub 405b7238e0 Revert "pip==21.3.1 for now (#10035)" (#10055)
This reverts commit fedae0cc97.
2022-02-01 10:26:08 -08:00
Kyle AltendorfandGitHub fedae0cc97 pip==21.3.1 for now (#10035)
* pip==21.3.1 for now

* More pip pinning

* Pip

* Pip
2022-01-30 16:05:34 -05:00