Corsair RMi, HXi, AXi PSU Statistics - CyanLabs's fork


Fma965

Recommended Posts

@Fma965 have you seen this? https://github.com/ka87/cpsumon

I know it is probably a bit out of the scope, but seems like it is working with the AXi family.

 

A guy posted about it on the opencorsairlink issues: https://github.com/audiohacked/OpenCorsairLink/issues/34

 

for anyone else who wants to read data from a AX series PSU using https://github.com/ka87/cpsumon

if, like me, your usb device is missing you just need to bind the driver.

you need to bind the driver:

lsusb -t

you'll see output similar to this:

root@RIG1:~/cpsumon# lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
|__ Port 6: Dev 2, If 0, Class=Vendor Specific Class, Driver=rt2800usb, 480M
|__ Port 11: Dev 3, If 0, Class=Vendor Specific Class, Driver=cp210x, 12M

only your Driver=cp210x will probably just say Driver=, 12M

you need to bind /dev/ttyUSB0 with the driver using the following command:

echo -n "1-11:1.0" > /sys/bus/usb/drivers/cp210x/bind

1-11:1.0 was my case because the device is on bus 1 port 11, substitute your bus / port number in place of my "1-11"

i also had to do echo -n "1-11:1.0" > /sys/bus/usb/drivers/cp210x/unbind

then

echo -n "1-11:1.0" > /sys/bus/usb/drivers/cp210x/bind

again before the device would answer.

then you device will appear in /dev/ttyUSB0

then you can use the command

~/cpsumon# ./cpsumoncli /dev/ttyUSB0
Corsair AXi Series PSU Monitor
(c) 2014 Andras Kovacs - [email protected]

Dongle name: USB to SMB Bridge (Firmware by Ross Fosler)
Dongle version: 0.9
PSU type: AX1200i
Fan mode: Auto
Fan speed: 0.00 RPM
Temperature: 43.75 °C
Voltage: 236.50 V
Current: 2.42 A
Input power: 566.39 W
Output power: 538.00 W
Efficiency: 94.99 %
PCIe 00 Rail: 11.92 V, 0.00 A, 0.00 W, OCP enabled (Limit: 0.00 A)
PCIe 01 Rail: 11.97 V, 0.00 A, 0.00 W, OCP enabled (Limit: 39.94 A)
PCIe 02 Rail: 11.97 V, 0.00 A, 0.00 W, OCP enabled (Limit: 39.94 A)
PCIe 03 Rail: 11.91 V, 0.00 A, 0.00 W, OCP enabled (Limit: 40.00 A)
PCIe 04 Rail: 11.97 V, 0.00 A, 0.00 W, OCP enabled (Limit: 39.94 A)
PCIe 05 Rail: 11.97 V, 12.75 A, 151.00 W, OCP enabled (Limit: 39.94 A)
PCIe 06 Rail: 11.97 V, 7.12 A, 86.00 W, OCP enabled (Limit: 39.94 A)
PCIe 07 Rail: 11.97 V, 11.75 A, 139.00 W, OCP enabled (Limit: 39.94 A)
ATX Rail: 11.97 V, 0.00 A, 0.00 W, OCP enabled (Limit: 40.00 A)
Peripheral Rail: 11.95 V, 15.06 A, 179.00 W, OCP enabled (Limit: 40.00 A)
5V Rail: 5.05 V, 0.00 A, 0.00 W
3.3V Rail: 3.28 V, 0.00 A, 0.00 W

 

Link to comment
On 1/12/2020 at 12:51 AM, LintHart said:

Hey @Fma965 I asked willnnotdan on discord how he tackled the new auth on 6.8 for Unraid-API if you ever think you’d like to give it a go. 
 

“Hey, I got it working with the new Auth but it was a pain! Essentially it makes a post request to /login and blocks the attempt to redirect (it'll redirect to main, find you don't have the cookie and then redirect you back to login) it then grabs the cookie from the headers and stores it so it can be used in future requests. Happy for him to message me directly if I can be of assistance :)”

 

https://discord.gg/Qa3Bjr9

I've spoke to him and have some idea on what to do, it's a little more difficult for me than his as he uses a docker container. i will see what i can do when i get time, if anyone wants to implement it and send a PR thats fine.

  • Like 1
Link to comment
15 hours ago, FranciumF said:

Bus 003 Device 003:ID 1b1c:1c00 Corsair Controller for Corsair Link

 

Hi can you add support for corsair ax860i? 

Thank you:)

AX PSU's use a different method, i am looking in to what can be done based on the information above.

 

Difficult to implement without having my own AX psu though.

Edited by Fma965
Link to comment
18 hours ago, rasmus said:

@Fma965 have you seen this? https://github.com/ka87/cpsumon

I know it is probably a bit out of the scope, but seems like it is working with the AXi family.

 

A guy posted about it on the opencorsairlink issues: https://github.com/audiohacked/OpenCorsairLink/issues/34

 


for anyone else who wants to read data from a AX series PSU using https://github.com/ka87/cpsumon

 

echo -n "1-11:1.0" > /sys/bus/usb/drivers/cp210x/bind

 

is the 1-11:1.0 the same after you reboot? i presume it is. if so a simple edit to your /boot/config/go file will allow set that driver correctly on boot each time and then the rest could be handled in my plugin.

Edited by Fma965
Link to comment
Quote

/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/14p, 480M
    |__ Port 3: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
    |__ Port 12: Dev 3, If 0, Class=Vendor Specific Class, Driver=cp210x, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M

output for lsusb -t


 

Quote

 

echo -n "3-12:1.0" > /sys/bus/usb/drivers/cp210x/unbind

echo -n "3-12:1.0" > /sys/bus/usb/drivers/cp210x/bind

 

works for me

 

can anyone guide me on how to get the cpsumon working?
from downloading to running it.

Link to comment

So guys, i've made some progress with the help of @rasmus

 

This is running on UnRAID

unknown.png

 

Here is a compiled version of just the CLI application, extract and dump it in /usr/local/bin via SCP (SSH), windows users can use WinSCP for example. the path of the binary needs to be /usr/local/bin/cpsumon/cpsumoncli

https://drive.google.com/file/d/1LqRRKbqku96GYuQ8oHc9_TQDSY58uQKi/view?usp=sharing

 

you will still need to do the unbind/bind

 

THIS IS NOT A USER INTERFACE THIS IS MERELY THE COMPILED BINARY, I AM WORKING ON ADDING SUPPORT BUT THIS IS JUST A PROGRESS UPDATE.

 

 

Edited by Fma965
Link to comment
10 hours ago, FranciumF said:

image.png.f44c09e086fc54fe55108870a591d2bc.png

having some issues with the cpsumon XD

you can just try this plugin now anyway https://raw.githubusercontent.com/Cyanlabs/corsairpsu-unraid/dual/corsairpsu.plg

 

Settings > Utilities > Corsair PSU set type to AXi

 

Please let me know the outcome, this is a BETA, the table will show uptime and stuff as 0 as the AX psu's don't support this. i will remove this section on the actual release.

Edited by Fma965
Link to comment

Firstly great work, thank you!

 

I have an AX1600i and have loaded the new plugin and selected AX but don't get any readings from the PSU. Do I have to first load the driver with the following command?

 

echo -n "3-12:1.0" > /sys/bus/usb/drivers/cp210x/bind

 

I don't have a cp210x folder in my usb drivers directory though.

 

Any ideas appreciated 

 

Thanks

Link to comment
18 minutes ago, dwarfer said:

Firstly great work, thank you!

 

I have an AX1600i and have loaded the new plugin and selected AX but don't get any readings from the PSU. Do I have to first load the driver with the following command?

 

echo -n "3-12:1.0" > /sys/bus/usb/drivers/cp210x/bind

 

I don't have a cp210x folder in my usb drivers directory though.

 

Any ideas appreciated 

 

Thanks

Others haven't needed to, try it, any issues let me know your unraid version etc.

Link to comment
1 hour ago, dwarfer said:

Firstly great work, thank you!

 

I have an AX1600i and have loaded the new plugin and selected AX but don't get any readings from the PSU. Do I have to first load the driver with the following command?

 

echo -n "3-12:1.0" > /sys/bus/usb/drivers/cp210x/bind

 

I don't have a cp210x folder in my usb drivers directory though.

 

Any ideas appreciated 

 

Thanks

Exactly same problem , no such file or directory error with AX1500i PSU . Unraid 6.8.1

Edited by ingux16
Link to comment
22 minutes ago, ingux16 said:

Exactly same problem , no such file or directory error with AX1500i PSU . Unraid 6.8.1

 

2 hours ago, dwarfer said:

Firstly great work, thank you!

 

I have an AX1600i and have loaded the new plugin and selected AX but don't get any readings from the PSU. Do I have to first load the driver with the following command?

 

echo -n "3-12:1.0" > /sys/bus/usb/drivers/cp210x/bind

 

I don't have a cp210x folder in my usb drivers directory though.

 

Any ideas appreciated 

 

Thanks

Please can you provide some screenshots, info on your usb devices etc. 

Link to comment
10 minutes ago, Fma965 said:

 

Please can you provide some screenshots, info on your usb devices etc. 

These are my usb devices

 

root@Tower:/sys/bus/usb/drivers/usbhid# lsusb
Bus 006 Device 003: ID 05e3:0626 Genesys Logic, Inc. USB3.1 Hub
Bus 006 Device 002: ID 05e3:0620 Genesys Logic, Inc. USB3.1 Hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 004: ID 413c:2107 Dell Computer Corp. 
Bus 005 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 005 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1b1c:1c11 Corsair USB API
Bus 001 Device 002: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
Bus 001 Device 008: ID 0b05:18b8 ASUSTek Computer, Inc. Channel AURA MOTHERBOARD
Bus 001 Device 007: ID 8087:0025 Intel Corp. 
Bus 001 Device 006: ID 051d:0003 American Power Conversion UPS
Bus 001 Device 005: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

Here is what I have under /sys/bus/usb/drivers

 

root@Tower:/sys/bus/usb/drivers# ls -al
total 0
drwxr-xr-x 9 root root 0 Jan  7 13:31 ./
drwxr-xr-x 4 root root 0 Jan  7 13:31 ../
drwxr-xr-x 2 root root 0 Jan  7 13:31 btusb/
drwxr-xr-x 2 root root 0 Jan  7 13:31 hub/
drwxr-xr-x 2 root root 0 Jan  7 13:31 synaptics_usb/
drwxr-xr-x 2 root root 0 Jan  7 13:31 usb/
drwxr-xr-x 2 root root 0 Jan  7 13:31 usb-storage/
drwxr-xr-x 2 root root 0 Jan  7 13:31 usbfs/
drwxr-xr-x 2 root root 0 Jan  7 13:31 usbhid/
root@Tower:/sys/bus/usb/drivers# cd btusb
root@Tower:/sys/bus/usb/drivers/btusb# ls -al
total 0
drwxr-xr-x 2 root root    0 Jan  7 13:31 ./
drwxr-xr-x 9 root root    0 Jan  7 13:31 ../
lrwxrwxrwx 1 root root    0 Jan 22 12:01 1-13:1.0 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-13/1-13:1.0/
lrwxrwxrwx 1 root root    0 Jan 22 12:01 1-13:1.1 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-13/1-13:1.1/
--w------- 1 root root 4096 Jan 22 12:01 bind
lrwxrwxrwx 1 root root    0 Jan 22 12:01 module -> ../../../../module/btusb/
-rw-r--r-- 1 root root 4096 Jan 22 12:01 new_id
-rw-r--r-- 1 root root 4096 Jan 22 12:01 remove_id
--w------- 1 root root 4096 Jan  7 13:31 uevent
--w------- 1 root root 4096 Jan 22 12:01 unbind
root@Tower:/sys/bus/usb/drivers/btusb# cd ../hub
root@Tower:/sys/bus/usb/drivers/hub# ls -al
total 0
drwxr-xr-x 2 root root    0 Jan  7 13:31 ./
drwxr-xr-x 9 root root    0 Jan  7 13:31 ../
lrwxrwxrwx 1 root root    0 Jan  7 13:47 1-0:1.0 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-0:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 1-6:1.0 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 2-0:1.0 -> ../../../../devices/pci0000:00/0000:00:14.0/usb2/2-0:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 2-6:1.0 -> ../../../../devices/pci0000:00/0000:00:14.0/usb2/2-6/2-6:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 3-0:1.0 -> ../../../../devices/pci0000:00/0000:00:1c.0/0000:03:00.0/usb3/3-0:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 4-0:1.0 -> ../../../../devices/pci0000:00/0000:00:1c.0/0000:03:00.0/usb4/4-0:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 5-0:1.0 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb5/5-0:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 5-2.1:1.0 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb5/5-2/5-2.1/5-2.1:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 5-2:1.0 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb5/5-2/5-2:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 6-0:1.0 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb6/6-0:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 6-2.2:1.0 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb6/6-2/6-2.2/6-2.2:1.0/
lrwxrwxrwx 1 root root    0 Jan  7 13:47 6-2:1.0 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb6/6-2/6-2:1.0/
--w------- 1 root root 4096 Jan  7 13:47 bind
lrwxrwxrwx 1 root root    0 Jan  7 13:47 module -> ../../../../module/usbcore/
-rw-r--r-- 1 root root 4096 Jan  7 13:47 new_id
-rw-r--r-- 1 root root 4096 Jan  7 13:47 remove_id
--w------- 1 root root 4096 Jan  7 13:31 uevent
--w------- 1 root root 4096 Jan  7 13:47 unbind
root@Tower:/sys/bus/usb/drivers/hub# cd ../synaptics_usb/
root@Tower:/sys/bus/usb/drivers/synaptics_usb# ls -al
total 0
drwxr-xr-x 2 root root    0 Jan  7 13:31 ./
drwxr-xr-x 9 root root    0 Jan  7 13:31 ../
--w------- 1 root root 4096 Jan 22 09:44 bind
-rw-r--r-- 1 root root 4096 Jan 22 09:44 new_id
-rw-r--r-- 1 root root 4096 Jan 22 09:44 remove_id
--w------- 1 root root 4096 Jan  7 13:31 uevent
--w------- 1 root root 4096 Jan 22 09:44 unbind
root@Tower:/sys/bus/usb/drivers/synaptics_usb# cd ../usb
root@Tower:/sys/bus/usb/drivers/usb# ls -al
total 0
drwxr-xr-x 2 root root    0 Jan  7 13:31 ./
drwxr-xr-x 9 root root    0 Jan  7 13:31 ../
lrwxrwxrwx 1 root root    0 Jan 22 09:37 1-11 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-11/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 1-12 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-12/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 1-13 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-13/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 1-14 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-14/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 1-6 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-6/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 1-7 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-7/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 2-6 -> ../../../../devices/pci0000:00/0000:00:14.0/usb2/2-6/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 5-2 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb5/5-2/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 5-2.1 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb5/5-2/5-2.1/
lrwxrwxrwx 1 root root    0 Jan 22 12:02 5-2.1.3 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb5/5-2/5-2.1/5-2.1.3/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 6-2 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb6/6-2/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 6-2.2 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb6/6-2/6-2.2/
--w------- 1 root root 4096 Jan 22 09:37 bind
--w------- 1 root root 4096 Jan  7 13:31 uevent
--w------- 1 root root 4096 Jan 22 09:37 unbind
lrwxrwxrwx 1 root root    0 Jan 22 09:37 usb1 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 usb2 -> ../../../../devices/pci0000:00/0000:00:14.0/usb2/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 usb3 -> ../../../../devices/pci0000:00/0000:00:1c.0/0000:03:00.0/usb3/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 usb4 -> ../../../../devices/pci0000:00/0000:00:1c.0/0000:03:00.0/usb4/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 usb5 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb5/
lrwxrwxrwx 1 root root    0 Jan 22 09:37 usb6 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb6/
root@Tower:/sys/bus/usb/drivers/usb# cd ../usb-storage
root@Tower:/sys/bus/usb/drivers/usb-storage# ls -al
total 0
drwxr-xr-x 2 root root    0 Jan  7 13:31 ./
drwxr-xr-x 9 root root    0 Jan  7 13:31 ../
lrwxrwxrwx 1 root root    0 Jan 22 12:02 1-11:1.0 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11:1.0/
--w------- 1 root root 4096 Jan 22 12:02 bind
lrwxrwxrwx 1 root root    0 Jan 22 12:02 module -> ../../../../module/usb_storage/
-rw-r--r-- 1 root root 4096 Jan 22 12:02 new_id
-rw-r--r-- 1 root root 4096 Jan 22 12:02 remove_id
--w------- 1 root root 4096 Jan  7 13:31 uevent
--w------- 1 root root 4096 Jan 22 12:02 unbind
root@Tower:/sys/bus/usb/drivers/usb-storage# cd ../usbfs
root@Tower:/sys/bus/usb/drivers/usbfs# ls -al
total 0
drwxr-xr-x 2 root root    0 Jan  7 13:31 ./
drwxr-xr-x 9 root root    0 Jan  7 13:31 ../
--w------- 1 root root 4096 Jan 22 12:03 bind
lrwxrwxrwx 1 root root    0 Jan 22 12:03 module -> ../../../../module/usbcore/
-rw-r--r-- 1 root root 4096 Jan 22 12:03 new_id
-rw-r--r-- 1 root root 4096 Jan 22 12:03 remove_id
--w------- 1 root root 4096 Jan  7 13:31 uevent
--w------- 1 root root 4096 Jan 22 12:03 unbind
root@Tower:/sys/bus/usb/drivers/usbfs# cd ../usbhid
root@Tower:/sys/bus/usb/drivers/usbhid# ls -al
total 0
drwxr-xr-x 2 root root    0 Jan  7 13:31 ./
drwxr-xr-x 9 root root    0 Jan  7 13:31 ../
lrwxrwxrwx 1 root root    0 Jan 22 09:44 1-12:1.0 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.0/
lrwxrwxrwx 1 root root    0 Jan 22 09:44 1-14:1.0 -> ../../../../devices/pci0000:00/0000:00:14.0/usb1/1-14/1-14:1.0/
lrwxrwxrwx 1 root root    0 Jan 22 12:03 5-2.1.3:1.0 -> ../../../../devices/pci0000:c0/0000:c0:00.0/0000:c1:00.2/usb5/5-2/5-2.1/5-2.1.3/5-2.1.3:1.0/
--w------- 1 root root 4096 Jan 22 09:44 bind
lrwxrwxrwx 1 root root    0 Jan 22 09:44 module -> ../../../../module/usbhid/
-rw-r--r-- 1 root root 4096 Jan 22 09:44 new_id
-rw-r--r-- 1 root root 4096 Jan 22 09:44 remove_id
--w------- 1 root root 4096 Jan  7 13:31 uevent
--w------- 1 root root 4096 Jan 22 09:44 unbind
root@Tower:/sys/bus/usb/drivers/usbhid#

 

Do you need any more info?

 

Thanks!

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.