Picochess on the RasPi

221 views
Skip to first unread message

Tom Emmelot

unread,
Apr 4, 2019, 5:54:12 PM4/4/19
to PicoChess
Hi all,

I try to put picochess on a Pi 3b and followed all the instructions at the last point it goes wrong.
sudo python3 ./build/engines.py , gives me this error:

pi@raspberrypi:/opt/picochess $ sudo python3 ./build/engines.py
Traceback (most recent call last):
  File "./build/engines.py", line 24, in <module>
    from uci.write import write_engine_ini
  File "/opt/picochess/uci/write.py", line 21, in <module>
    from uci.engine import UciShell, UciEngine
  File "/opt/picochess/uci/engine.py", line 27, in <module>
    import chess.uci
ImportError: No module named 'chess'
Can anybody give a hint?

Kind regards,
Tom

Scally

unread,
Apr 5, 2019, 5:26:00 AM4/5/19
to PicoChess
Hi Tom,

It sounds as though you haven’t run requirements.txt

Type and enter:

cd /opt/picochess
sudo pip3 install --upgrade -r requirements.txt

Then run build engines:

sudo python3 ./build_engines.py


Al.






Tom Emmelot

unread,
Apr 5, 2019, 8:21:32 AM4/5/19
to PicoChess
Hi Scally,

Thanks for the fast response, did the run but i overlooks some error there!

Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.5/dist-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko==2.4.0->-r requirements.txt (line 3)) (2.19)
pyopenssl 17.5.0 has requirement cryptography>=2.1.4, but you'll have cryptography 1.7.1 which is incompatible.
Installing collected packages: pyserial, python-chess, pyOpenSSL, chardet, idna, urllib3, certifi, requests, tornado
  Found existing installation: pyserial 3.2.1
Cannot uninstall 'pyserial'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

Op vrijdag 5 april 2019 11:26:00 UTC+2 schreef Scally:

Scally

unread,
Apr 5, 2019, 9:17:14 AM4/5/19
to PicoChess
Hi Tom,

My requirements.txt look like this:

Al@PicoChess:/opt/picochess $ cat requirements.txt
ConfigArgParse==0.14.0
Flask==1.0.2
paramiko==2.4.2
pyserial==3.4
python-chess==0.22.1
#python-chess==0.25.1 (0.25.1 breaks Webserver)
pyOpenSSL==19.0.0
requests==2.21.0
spur==0.3.20
tornado==4.5.1
#tornado==5.1.1 (5.1.1 breaks Webserver - DJ)
configobj==5.0.6
pycrypto==2.6.1
numpy

Please give me all the output from running yours

Al.

Tom Emmelot

unread,
Apr 5, 2019, 10:35:24 AM4/5/19
to PicoChess
Hi Al,

Mine get stuck on:

ConfigArgParse==0.12.0
Flask==0.12.2
paramiko==2.4.0
pyserial==3.4
python-chess==0.22.1
pyOpenSSL==17.5.0
requests==2.18.4
spur==0.3.20
tornado==4.5.1
configobj==5.0.6

But the error is about Cryptography versions, i try to update but that was not working, new in this way of working, but i am learning ;)

Here from you, thanks for coming back!

Regards,
Tom

Op vrijdag 5 april 2019 15:17:14 UTC+2 schreef Scally:

Scally

unread,
Apr 5, 2019, 10:56:55 AM4/5/19
to PicoChess
Hi Tom,

From previous experience try this:

sudo pip3 install -U cffi

Then:

cd /opt/picochess

sudo pip3 install --upgrade -r requirements.txt

If you receive any error messages please attach all here.
If it works then run build engines:

sudo python3 ./build/engines.py

Al.

Tom Emmelot

unread,
Apr 5, 2019, 11:13:54 AM4/5/19
to pico...@googlegroups.com
Hi Al

Same error  about cryptography 2.1.4 that's is incompatible. It say's I got version 1.7.1

Can I update that somehow?

Kind regards,
Tom



Op vr 5 apr. 2019 16:56 schreef Scally <scall...@gmail.com>:
--
You received this message because you are subscribed to the Google Groups "PicoChess" group.
To unsubscribe from this group and stop receiving emails from it, send an email to picochess+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Scally

unread,
Apr 5, 2019, 11:23:29 AM4/5/19
to PicoChess
Hi Tom,

I’m just googling the errors having not seen some of them, here’s a suggested fix:

sudo pip3 uninstall pyOpenSSL cryptography

sudo pip3 install pyOpenSSL cryptography


Al.

Tom Emmelot

unread,
Apr 5, 2019, 3:53:06 PM4/5/19
to PicoChess
Hi Al,

after the uninstall the install wont work  ;)
so i followed a reinstall from a other treat and up to compile a new SSL
That's is up and working again, but sniffff same error!
Version wrong.

So i go on tomorrow (never give up ;)  )

Hope to here more from you.

Kind regards,
Tom




Op vrijdag 5 april 2019 17:23:29 UTC+2 schreef Scally:

Scally

unread,
Apr 5, 2019, 4:52:03 PM4/5/19
to PicoChess
Hi Tom,

No problem we will get there. Your requirements.txt is out of date, but let’s get yours working before we apply mine.
Can you please run sudo pip3 install --upgrade -r requirements.txt again in /opt/picochess and cut and paste the whole output from it.

I’m pretty sure it means that pyOpenSSL has been installed outside of pip3 but I want to be sure.
We can try re-installing it using the ‘--ignore-installed’ option but I’d rather not do that yet.

I assume you’ve run all updates:

sudo apt-get update
sudo apt-get upgrade

There’s always the option to install picochess from my uploaded image if all else fails.

Al.
Message has been deleted

Tom Emmelot

unread,
Apr 8, 2019, 4:00:22 AM4/8/19
to PicoChess
Hi Al,

sorry was very busy with a phone that could not swim ;) I did unsuspected and luckily i can ;)
 

I did a complete new install Rasbian and update and then started with the install of picochess!
So i came without any error to this point.

pi@raspberrypi:/opt/picochess $ sudo pip3 install --upgrade -r requirements.txt
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting ConfigArgParse==0.12.0 (from -r requirements.txt (line 1))
  Downloading https://www.piwheels.org/simple/configargparse/ConfigArgParse-0.12.0-py3-none-any.whl
Collecting Flask==0.12.2 (from -r requirements.txt (line 2))
  Downloading https://files.pythonhosted.org/packages/77/32/e3597cb19ffffe724ad4bf0beca4153419918e7fa4ba6a34b04ee4da3371/Flask-0.12.2-py2.py3-none-any.whl (83kB)
    100% |████████████████████████████████| 92kB 2.7MB/s
Collecting paramiko==2.4.0 (from -r requirements.txt (line 3))
  Downloading https://files.pythonhosted.org/packages/be/9f/2b899b028aec1f3973253c0cf8dda6fbff65f4930f7ebedc43033e9f1b18/paramiko-2.4.0-py2.py3-none-any.whl (192kB)
    100% |████████████████████████████████| 194kB 4.0MB/s
Collecting pyserial==3.4 (from -r requirements.txt (line 4))
  Downloading https://files.pythonhosted.org/packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl (193kB)
    100% |████████████████████████████████| 194kB 4.1MB/s
Collecting python-chess==0.22.1 (from -r requirements.txt (line 5))
  Downloading https://www.piwheels.org/simple/python-chess/python_chess-0.22.1-py3-none-any.whl (114kB)
    100% |████████████████████████████████| 122kB 2.4MB/s
Collecting pyOpenSSL==17.5.0 (from -r requirements.txt (line 6))
  Downloading https://files.pythonhosted.org/packages/79/db/7c0cfe4aa8341a5fab4638952520d8db6ab85ff84505e12c00ea311c3516/pyOpenSSL-17.5.0-py2.py3-none-any.whl (53kB)
    100% |████████████████████████████████| 61kB 3.0MB/s
Collecting requests==2.18.4 (from -r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/49/df/50aa1999ab9bde74656c2919d9c0c085fd2b3775fd3eca826012bef76d8c/requests-2.18.4-py2.py3-none-any.whl (88kB)
    100% |████████████████████████████████| 92kB 4.5MB/s
Collecting spur==0.3.20 (from -r requirements.txt (line 8))
  Downloading https://files.pythonhosted.org/packages/24/7c/2c380820400dc9a852e7b1fd3396dc6d4adb7be0404c6783c3c88272c0d8/spur-0.3.20-py2.py3-none-any.whl
Collecting tornado==4.5.1 (from -r requirements.txt (line 9))
  Downloading https://www.piwheels.org/simple/tornado/tornado-4.5.1-cp35-cp35m-linux_armv7l.whl (430kB)
    100% |████████████████████████████████| 440kB 4.3MB/s
Collecting configobj==5.0.6 (from -r requirements.txt (line 10))
  Downloading https://www.piwheels.org/simple/configobj/configobj-5.0.6-py3-none-any.whl
Requirement already satisfied, skipping upgrade: click>=2.0 in /usr/lib/python3/dist-packages (from Flask==0.12.2->-r requirements.txt (line 2)) (6.6)
Requirement already satisfied, skipping upgrade: itsdangerous>=0.21 in /usr/lib/python3/dist-packages (from Flask==0.12.2->-r requirements.txt (line 2)) (0.24)
Requirement already satisfied, skipping upgrade: Werkzeug>=0.7 in /usr/lib/python3/dist-packages (from Flask==0.12.2->-r requirements.txt (line 2)) (0.11.15)
Requirement already satisfied, skipping upgrade: Jinja2>=2.4 in /usr/lib/python3/dist-packages (from Flask==0.12.2->-r requirements.txt (line 2)) (2.8)
Requirement already satisfied, skipping upgrade: pyasn1>=0.1.7 in /usr/lib/python3/dist-packages (from paramiko==2.4.0->-r requirements.txt (line 3)) (0.1.9)
Collecting bcrypt>=3.1.3 (from paramiko==2.4.0->-r requirements.txt (line 3))
  Downloading https://www.piwheels.org/simple/bcrypt/bcrypt-3.1.6-cp35-cp35m-linux_armv7l.whl (54kB)
    100% |████████████████████████████████| 61kB 1.3MB/s
Requirement already satisfied, skipping upgrade: cryptography>=1.5 in /usr/lib/python3/dist-packages (from paramiko==2.4.0->-r requirements.txt (line 3)) (1.7.1)
Collecting pynacl>=1.0.1 (from paramiko==2.4.0->-r requirements.txt (line 3))
  Downloading https://www.piwheels.org/simple/pynacl/PyNaCl-1.3.0-cp35-cp35m-linux_armv7l.whl (543kB)
    100% |████████████████████████████████| 552kB 4.0MB/s
Requirement already satisfied, skipping upgrade: six>=1.5.2 in /usr/lib/python3/dist-packages (from pyOpenSSL==17.5.0->-r requirements.txt (line 6)) (1.12.0)
Collecting urllib3<1.23,>=1.21.1 (from requests==2.18.4->-r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/63/cb/6965947c13a94236f6d4b8223e21beb4d576dc72e8130bd7880f600839b8/urllib3-1.22-py2.py3-none-any.whl (132kB)
    100% |████████████████████████████████| 133kB 4.4MB/s
Collecting idna<2.7,>=2.5 (from requests==2.18.4->-r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/27/cc/6dd9a3869f15c2edfab863b992838277279ce92663d334df9ecf5106f5c6/idna-2.6-py2.py3-none-any.whl (56kB)
    100% |████████████████████████████████| 61kB 3.8MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.18.4->-r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |████████████████████████████████| 143kB 4.1MB/s
Collecting certifi>=2017.4.17 (from requests==2.18.4->-r requirements.txt (line 7))
  Downloading https://files.pythonhosted.org/packages/60/75/f692a584e85b7eaba0e03827b3d51f45f571c2e793dd731e598828d380aa/certifi-2019.3.9-py2.py3-none-any.whl (158kB)
    100% |████████████████████████████████| 163kB 4.1MB/s
Requirement already satisfied, skipping upgrade: MarkupSafe in /usr/lib/python3/dist-packages (from Jinja2>=2.4->Flask==0.12.2->-r requirements.txt (line 2)) (0.23)
Collecting cffi>=1.1 (from bcrypt>=3.1.3->paramiko==2.4.0->-r requirements.txt (line 3))
  Downloading https://www.piwheels.org/simple/cffi/cffi-1.12.2-cp35-cp35m-linux_armv7l.whl (309kB)
    100% |████████████████████████████████| 317kB 4.1MB/s
Collecting pycparser (from cffi>=1.1->bcrypt>=3.1.3->paramiko==2.4.0->-r requirements.txt (line 3))
  Downloading https://www.piwheels.org/simple/pycparser/pycparser-2.19-py2.py3-none-any.whl (111kB)
    100% |████████████████████████████████| 112kB 2.2MB/s
pyopenssl 17.5.0 has requirement cryptography>=2.1.4, but you'll have cryptography 1.7.1 which is incompatible.
Installing collected packages: ConfigArgParse, Flask, pycparser, cffi, bcrypt, pynacl, paramiko, pyserial, python-chess, pyOpenSSL, urllib3, idna, chardet, certifi, requests, spur, tornado, configobj
  Found existing installation: Flask 0.12.1
    Uninstalling Flask-0.12.1:
      Successfully uninstalled Flask-0.12.1

  Found existing installation: pyserial 3.2.1
Cannot uninstall 'pyserial'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
pi@raspberrypi:/opt/picochess $

So looks better but not good?

Here from you.

Kind regards,
Tom


Op vrijdag 5 april 2019 22:52:03 UTC+2 schreef Scally:

Scally

unread,
Apr 8, 2019, 6:07:13 AM4/8/19
to PicoChess
Hi Tom,

No problem, try sudo -H pip3 install --ignore-installed -U pyserial 3.2.1

Then in /opt/picochess retry sudo pip3 install --upgrade -r requirements.txt

If that works, run sudo python3 ./build/engines.py


Cheers,

Al.

Tom Emmelot

unread,
Apr 8, 2019, 6:26:36 AM4/8/19
to PicoChess
Hi Al,
Thanks for the fast coming back to me.
This is the result:

pi@raspberrypi:~ $ sudo -H pip3 install --ignore-installed -U pyserial 3.2.1
Collecting pyserial
  Using cached https://files.pythonhosted.org/packages/0d/e4/2a744dd9e3be04a0c0907414e2a01a7c88bb3915cbe3c8cc06e209f59c30/pyserial-3.4-py2.py3-none-any.whl
Collecting 3.2.1
  Could not find a version that satisfies the requirement 3.2.1 (from versions: )
No matching distribution found for 3.2.1
pi@raspberrypi:~ $

Kind regards,
Tom


Op maandag 8 april 2019 12:07:13 UTC+2 schreef Scally:

Scally

unread,
Apr 8, 2019, 7:07:23 AM4/8/19
to PicoChess
My requirements.txt is like this:


Al@PicoChess:/opt/picochess $ cat requirements.txt

ConfigArgParse==0.14.0
Flask==1.0.2
paramiko==2.4.2
pyserial==3.4
python-chess==0.22.1
#python-chess==0.25.1 (0.25.1 breaks Webserver)
pyOpenSSL==19.0.0
requests==2.21.0
spur==0.3.20
tornado==4.5.1
#tornado==5.1.1 (5.1.1 breaks Webserver - DJ)
configobj==5.0.6
pycrypto==2.6.1
numpy

Al@PicoChess:/opt/picochess $

Try editing yours and changing pyserial==3.2.1 to pyserial==3.4 and rerunning the requirements command.

Al.

Tom Emmelot

unread,
Apr 14, 2019, 8:20:22 AM4/14/19
to pico...@googlegroups.com
Hi Al,

Back again, after install 3.4 and rerunning the requirements command.
( was still 1 error ) al the other went well, but when i run Pico i got this.

pi@raspberrypi:~ $ sudo python3 /opt/picochess/picochess.py -c
Traceback (most recent call last):
  File "/opt/picochess/picochess.py", line 1155, in <module>
    main()
  File "/opt/picochess/picochess.py", line 694, in main
    engine_file = eng_ini[engine_tries]['file']
IndexError: list index out of range

So hope on new suggestions.

Kind regards,
Tom

Op ma 8 apr. 2019 om 13:07 schreef Scally <scall...@gmail.com>:

Scally

unread,
Apr 14, 2019, 10:31:58 AM4/14/19
to PicoChess
Hi Tom,

Did you run sudo python3 ./build/engines.py in /opt/picochess After running sudo pip3 install --upgrade -r requirements.txt ?

It looks as Though there’s no engine list.


Al.

Tom Emmelot

unread,
Apr 16, 2019, 7:20:15 AM4/16/19
to PicoChess
Hi Al

Did a complete new install from a new card latest Raberian.
So all installs wel till the Requirements.txt there only 1 error and when i do the other  build commands all wend well
And when i do then the start line with -h i get all the options no error but when i do the normal start i got his with the USB board attached


pi@raspberrypi:~ $ sudo python3 /opt/picochess/picochess.py
Traceback (most recent call last):
  File "/opt/picochess/picochess.py", line 1155, in <module>
    main()
  File "/opt/picochess/picochess.py", line 694, in main
    engine_file = eng_ini[engine_tries]['file']
IndexError: list index out of range
WARNING:root:timeout in data reading
WARNING:root:illegal data in message 0x91 found
WARNING:root:ignore collected message data (49, 48, 48, 49)
WARNING:root:illegal length in message header 0x91 length: 1070
WARNING:root:illegal length in message header 0x91 length: 1070
WARNING:root:timeout in data reading


and my run of the requirements.txt is this

pi@raspberrypi:/opt/picochess $ sudo pip3 install --upgrade -r requirements.txtLooking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already up-to-date: ConfigArgParse==0.12.0 in /usr/local/lib/python3.5/dist-packages (from -r requirements.txt (line 1)) (0.12.0)
Requirement already up-to-date: Flask==0.12.2 in /usr/local/lib/python3.5/dist-packages (from -r requirements.txt (line 2)) (0.12.2)
Requirement already up-to-date: paramiko==2.4.0 in /usr/local/lib/python3.5/dist-packages (from -r requirements.txt (line 3)) (2.4.0)
Requirement already up-to-date: pyserial==3.4 in /usr/local/lib/python3.5/dist-packages (from -r requirements.txt (line 4)) (3.4)
Collecting python-chess==0.22.1 (from -r requirements.txt (line 5))
Collecting pyOpenSSL==17.5.0 (from -r requirements.txt (line 6))
Collecting requests==2.18.4 (from -r requirements.txt (line 7))
Collecting spur==0.3.20 (from -r requirements.txt (line 8))
Collecting tornado==4.5.1 (from -r requirements.txt (line 9))
Collecting configobj==5.0.6 (from -r requirements.txt (line 10))
Requirement already satisfied, skipping upgrade: Werkzeug>=0.7 in /usr/lib/python3/dist-packages (from Flask==0.12.2->-r requirements.txt (line 2)) (0.11.15)
Requirement already satisfied, skipping upgrade: click>=2.0 in /usr/lib/python3/dist-packages (from Flask==0.12.2->-r requirements.txt (line 2)) (6.6)
Requirement already satisfied, skipping upgrade: Jinja2>=2.4 in /usr/lib/python3/dist-packages (from Flask==0.12.2->-r requirements.txt (line 2)) (2.8)
Requirement already satisfied, skipping upgrade: itsdangerous>=0.21 in /usr/lib/python3/dist-packages (from Flask==0.12.2->-r requirements.txt (line 2)) (0.24)
Requirement already satisfied, skipping upgrade: cryptography>=1.5 in /usr/lib/python3/dist-packages (from paramiko==2.4.0->-r requirements.txt (line 3)) (1.7.1)
Requirement already satisfied, skipping upgrade: bcrypt>=3.1.3 in /usr/local/lib/python3.5/dist-packages (from paramiko==2.4.0->-r requirements.txt (line 3)) (3.1.6)
Requirement already satisfied, skipping upgrade: pynacl>=1.0.1 in /usr/local/lib/python3.5/dist-packages (from paramiko==2.4.0->-r requirements.txt (line 3)) (1.3.0)
Requirement already satisfied, skipping upgrade: pyasn1>=0.1.7 in /usr/lib/python3/dist-packages (from paramiko==2.4.0->-r requirements.txt (line 3)) (0.1.9)
Requirement already satisfied, skipping upgrade: six>=1.5.2 in /usr/lib/python3/dist-packages (from pyOpenSSL==17.5.0->-r requirements.txt (line 6)) (1.12.0)
Collecting urllib3<1.23,>=1.21.1 (from requests==2.18.4->-r requirements.txt (line 7))
Collecting certifi>=2017.4.17 (from requests==2.18.4->-r requirements.txt (line 7))
Collecting chardet<3.1.0,>=3.0.2 (from requests==2.18.4->-r requirements.txt (line 7))
Collecting idna<2.7,>=2.5 (from requests==2.18.4->-r requirements.txt (line 7))
Requirement already satisfied, skipping upgrade: MarkupSafe in /usr/lib/python3/dist-packages (from Jinja2>=2.4->Flask==0.12.2->-r requirements.txt (line 2)) (0.23)
Requirement already satisfied, skipping upgrade: cffi>=1.1 in /usr/local/lib/python3.5/dist-packages (from bcrypt>=3.1.3->paramiko==2.4.0->-r requirements.txt (line 3)) (1.12.2)
Requirement already satisfied, skipping upgrade: pycparser in /usr/local/lib/python3.5/dist-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko==2.4.0->-r requirements.txt (line 3)) (2.19)
pyopenssl 17.5.0 has requirement cryptography>=2.1.4, but you'll have cryptography 1.7.1 which is incompatible.
Installing collected packages: python-chess, pyOpenSSL, urllib3, certifi, chardet, idna, requests, spur, tornado, configobj
  Found existing installation: pyOpenSSL 16.2.0
    Uninstalling pyOpenSSL-16.2.0:
      Successfully uninstalled pyOpenSSL-16.2.0
  Found existing installation: urllib3 1.19.1
    Uninstalling urllib3-1.19.1:
      Successfully uninstalled urllib3-1.19.1
  Found existing installation: chardet 2.3.0
    Uninstalling chardet-2.3.0:
      Successfully uninstalled chardet-2.3.0
  Found existing installation: idna 2.2
    Uninstalling idna-2.2:
      Successfully uninstalled idna-2.2
  Found existing installation: requests 2.12.4
    Uninstalling requests-2.12.4:
      Successfully uninstalled requests-2.12.4
Successfully installed certifi-2019.3.9 chardet-3.0.4 configobj-5.0.6 idna-2.6 pyOpenSSL-17.5.0 python-chess-0.22.1 requests-2.18.4 spur-0.3.20 tornado-4.5.1 urllib3-1.22
pi@raspberrypi:/opt/picochess $ 

So still no luck.

Kind regards,
Tom

Op zondag 14 april 2019 16:31:58 UTC+2 schreef Scally:

Scally

unread,
Apr 16, 2019, 7:41:06 AM4/16/19
to PicoChess
Hi Tom,

You’re still using the old requirements.txt.

rename yours and create another looking like this and retry running requirements

cd /opt/picochess
sudo cp requirements.txt requirements.txt.old
sudo nano requirements .txt

Alter it to look like this:

ConfigArgParse==0.14.0
Flask==1.0.2
paramiko==2.4.2
pyserial==3.4
python-chess==0.22.1
pyOpenSSL==19.0.0
requests==2.21.0
spur==0.3.20
tornado==4.5.1
configobj==5.0.6
pycrypto==2.6.1

Run sudo pip3 install --upgrade -r requirements.txt

And let me know how it goes.

I have a Hospital appointment shortly, so won’t be back until this evening.

Al.
Reply all
Reply to author
Forward
0 new messages