GithubHelp home page GithubHelp logo

pwitab / iec62056-21 Goto Github PK

View Code? Open in Web Editor NEW
64.0 9.0 18.0 42 KB

A Python library for IEC62056-21, Local Data Readout of Energy Meters. Former IEC1107

License: BSD 3-Clause "New" or "Revised" License

Python 100.00%
smart-meter smart-meters smart-grid metering amr

iec62056-21's People

Contributors

krolken avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iec62056-21's Issues

ZMD energy meter

Hi

I can't connect to Landis ZMD meter. In my opinion it responds not starting with "" so i cant get read_identification() def work. If i send init_request it responds:
b'\xaf' b'\xcc' b'G' b'Z' b'5' b'\\' b'\xb2' b'Z' b'M' b'D' b'\xb4' b'0' b'5' b'\xb4' b'\xb4' b'5' b'9' b'.' b'B' b'\xb4' b'0' b'\x8d' b'\n' b'\x82' b'\xc6' b'.' b'\xc6' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'9' b'.' b'\xb1' b'(' b'\xb2' b'3' b':' b'\xb1' b'6' b':' b'\xb4' b'3' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'9' b'.' b'\xb2' b'(' b'\xb2' b'\xb1' b'-' b'0' b'\xb1' b'-' b'0' b'\xb4' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'0' b'.' b'0' b'(' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb1' b'.' b'0' b'(' b'5' b'\xb4' b'\xb8' b'0' b'0' b'\xb1' b'0' b'\xb2' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'9' b'0' b'.' b'\xb1' b'(' b'5' b'\xb4' b'\xb8' b'0' b'0' b'\xb1' b'0' b'\xb2' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'9' b'0' b'.' b'\xb2' b'(' b'0' b'\xb1' b'\xb1' b'0' b'\xb2' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb2' b'.' b'\xb2' b'(' b'B' b'\xb2' b'\xb1' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb1' b'.' b'0' b'(' b'0' b'\xb4' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb1' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'\xb2' b'\xb1' b'-' b'0' b'\xb1' b'-' b'0' b'\xb1' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb1' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'\xb2' b'0' b'-' b'\xb1' b'\xb2' b'-' b'3' b'0' b'\xa0' b'\xb1' b'6' b':' b'0' b'\xb2' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb1' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb1' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb1' b'.' b'\xb2' b'(' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb1' b'.' b'3' b'(' b'\xb2' b'\xb1' b'-' b'0' b'\xb1' b'-' b'0' b'\xb1' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb1' b'(' b'0' b'3' b'0' b'\xb2' b'.' b'\xb8' b'\xb2' b'6' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'\xb7' b'5' b'.' b'5' b'3' b'\xb4' b'\xb1' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb1' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb2' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'3' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'3' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'3' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'0' b'(' b'0' b'3' b'0' b'\xb2' b'.' b'\xb8' b'\xb2' b'6' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'\xb7' b'5' b'.' b'5' b'3' b'\xb4' b'\xb1' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb1' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb1' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb2' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'3' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'3' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'3' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb1' b'(' b'0' b'0' b'6' b'\xb4' b'.' b'3' b'\xb7' b'\xb1' b'\xb4' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'\xb1' b'6' b'.' b'0' b'5' b'9' b'9' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb1' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb2' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'3' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'3' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'3' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'0' b'(' b'0' b'0' b'6' b'\xb4' b'.' b'3' b'\xb7' b'\xb1' b'\xb4' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'\xb1' b'6' b'.' b'0' b'5' b'9' b'9' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'5' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb1' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'\xb4' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'\xb4' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb1' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb2' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'3' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'3' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'3' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'\xb4' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'\xb4' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'6' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb1' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb1' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb2' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'3' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'3' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'3' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb7' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb1' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb1' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb2' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'3' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'3' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'3' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xf6' b'\xe1' b'r' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'6' b'.' b'0' b'(' b'\xb2' b'.' b'3' b'9' b'6' b'6' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'\xb2' b'\xb1' b'-' b'0' b'\xb1' b'-' b'0' b'3' b'\xa0' b'\xb1' b'\xb1' b':' b'\xb4' b'5' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'6' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'\xb2' b'.' b'3' b'9' b'3' b'9' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'\xb2' b'0' b'-' b'\xb1' b'\xb2' b'-' b'3' b'\xb1' b'\xa0' b'\xb2' b'0' b':' b'\xb1' b'5' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'6' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'6' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'6' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'6' b'.' b'0' b'(' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'6' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'.' b'0' b'0' b'0' b'\xb1' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'\xb2' b'0' b'-' b'\xb1' b'\xb2' b'-' b'3' b'0' b'\xa0' b'\xb1' b'6' b':' b'\xb1' b'3' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'6' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'6' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'6' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa0' b'0' b'0' b':' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'(' b'0' b'0' b'0' b'0' b'.' b'\xb4' b'\xb4' b'5' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'\xb1' b'\xb1' b'0' b'\xb8' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb4' b'(' b'0' b'0' b'0' b'0' b'.' b'\xb2' b'\xb1' b'6' b'3' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb4' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'5' b'\xb4' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb4' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb4' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb4' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'5' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'5' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'5' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'5' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'5' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'0' b'(' b'0' b'0' b'0' b'\xb4' b'.' b'\xb4' b'5' b'0' b'\xb4' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'\xb1' b'.' b'\xb1' b'0' b'\xb8' b'9' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb2' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'9' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'\xb2' b'\xb1' b'6' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'9' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'5' b'\xb4' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'9' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'9' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb8' b'3' b'.' b'\xb8' b'.' b'\xb1' b'9' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'\xb2' b'\xb8' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'\xb2' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'\xb1' b'0' b'\xb1' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'\xb1' b'6' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'\xb8' b'.' b'\xb1' b'\xb2' b'\xb8' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'\xb2' b'.' b'\xb7' b'.' b'\xb1' b'\xb2' b'\xb8' b'(' b'0' b'0' b'.' b'0' b'0' b'9' b'\xa9' b'\x8d' b'\n' b'\xb1' b'\xb1' b'.' b'\xb7' b'.' b'\xb1' b'\xb2' b'\xb8' b'(' b'0' b'0' b'.' b'0' b'\xb1' b'3' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb2' b'.' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xb4' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb2' b'.' b'\xb1' b'(' b'\xb2' b'0' b'-' b'\xb1' b'\xb2' b'-' b'3' b'0' b'\xa0' b'\xb1' b'6' b':' b'\xb1' b'\xb4' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb2' b'.' b'\xb2' b'(' b'\xb2' b'0' b'-' b'\xb1' b'\xb2' b'-' b'\xb2' b'9' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'6' b'.' b'0' b'(' b'0' b'0' b'0' b'\xb1' b'5' b'5' b'\xaa' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'6' b'.' b'3' b'(' b'6' b'.' b'5' b'\xaa' b'V' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb7' b'.' b'\xb1' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xb1' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb7' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb7' b'.' b'3' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb7' b'.' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'9' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'0' b'(' b'0' b'0' b'0' b'0' b'\xb8' b'\xb1' b'5' b'\xb1' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'0' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'\xb2' b'\xb4' b'3' b'5' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'0' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'5' b'\xb1' b'\xb7' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'0' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb1' b'(' b'0' b'0' b'0' b'0' b'\xb7' b'9' b'3' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'\xb2' b'\xb2' b'\xb1' b'\xb4' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb1' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'\xb2' b'9' b'6' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb1' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb2' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'\xb2' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'3' b'(' b'0' b'0' b'0' b'0' b'0' b'\xb2' b'\xb2' b'\xb1' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'3' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'\xb2' b'\xb2' b'\xb1' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'3' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'\xb2' b'\xb2' b'\xb1' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'3' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'3' b'\xb2' b'.' b'\xb7' b'.' b'0' b'(' b'\xb2' b'3' b'6' b'.' b'9' b'\xaa' b'V' b'\xa9' b'\x8d' b'\n' b'5' b'\xb2' b'.' b'\xb7' b'.' b'0' b'(' b'\xb2' b'3' b'\xb8' b'.' b'\xb1' b'\xaa' b'V' b'\xa9' b'\x8d' b'\n' b'\xb7' b'\xb2' b'.' b'\xb7' b'.' b'0' b'(' b'\xb2' b'3' b'\xb7' b'.' b'\xb4' b'\xaa' b'V' b'\xa9' b'\x8d' b'\n' b'3' b'\xb1' b'.' b'\xb7' b'.' b'0' b'(' b'0' b'3' b'.' b'\xb4' b'\xb7' b'\xaa' b'A' b'\xa9' b'\x8d' b'\n' b'5' b'\xb1' b'.' b'\xb7' b'.' b'0' b'(' b'0' b'3' b'.' b'3' b'\xb1' b'\xaa' b'A' b'\xa9' b'\x8d' b'\n' b'\xb7' b'\xb1' b'.' b'\xb7' b'.' b'0' b'(' b'0' b'3' b'.' b'\xb4' b'3' b'\xaa' b'A' b'\xa9' b'\x8d' b'\n' b'9' b'\xb1' b'.' b'\xb7' b'.' b'0' b'(' b'0' b'0' b'.' b'3' b'3' b'\xaa' b'A' b'\xa9' b'\x8d' b'\n' b'\xb1' b'\xb4' b'.' b'\xb7' b'(' b'\xb4' b'9' b'.' b'9' b'\xb7' b'\xaa' b'H' b'\xfa' b'\xa9' b'\x8d' b'\n' b'3' b'\xb2' b'.' b'3' b'\xb2' b'.' b'0' b'(' b'0' b'0' b'0' b'\xb1' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'\xb1' b'-' b'0' b'\xb1' b'\xa0' b'0' b'0' b':' b'0' b'9' b'\xa9' b'\x8d' b'\n' b'5' b'\xb2' b'.' b'3' b'\xb2' b'.' b'0' b'(' b'0' b'0' b'0' b'\xb1' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'\xb1' b'-' b'0' b'\xb1' b'\xa0' b'0' b'0' b':' b'0' b'9' b'\xa9' b'\x8d' b'\n' b'\xb7' b'\xb2' b'.' b'3' b'\xb2' b'.' b'0' b'(' b'0' b'0' b'0' b'\xb1' b'\xa9' b'(' b'0' b'0' b'-' b'0' b'\xb1' b'-' b'0' b'\xb1' b'\xa0' b'0' b'0' b':' b'0' b'9' b'\xa9' b'\x8d' b'\n' b'3' b'\xb2' b'.' b'3' b'6' b'.' b'0' b'(' b'0' b'0' b'0' b'\xb1' b'\xa9' b'(' b'\xb2' b'0' b'-' b'\xb1' b'\xb2' b'-' b'3' b'0' b'\xa0' b'\xb1' b'6' b':' b'\xb2' b'\xb4' b'\xa9' b'\x8d' b'\n' b'5' b'\xb2' b'.' b'3' b'6' b'.' b'0' b'(' b'0' b'0' b'0' b'\xb1' b'\xa9' b'(' b'\xb2' b'0' b'-' b'\xb1' b'\xb2' b'-' b'3' b'0' b'\xa0' b'\xb1' b'6' b':' b'\xb2' b'\xb4' b'\xa9' b'\x8d' b'\n' b'\xb7' b'\xb2' b'.' b'3' b'6' b'.' b'0' b'(' b'0' b'0' b'0' b'\xb1' b'\xa9' b'(' b'\xb2' b'0' b'-' b'\xb1' b'\xb2' b'-' b'3' b'0' b'\xa0' b'\xb1' b'6' b':' b'\xb2' b'\xb4' b'\xa9' b'\x8d' b'\n' b'\xb8' b'\xb1' b'.' b'\xb7' b'.' b'0' b'(' b'\xa0' b'\xa0' b'\xa0' b'0' b'\xaa' b'D' b'e' b'\xe7' b'\xa9' b'\x8d' b'\n' b'\xb8' b'\xb1' b'.' b'\xb7' b'.' b'\xb1' b'(' b'\xa0' b'\xb1' b'\xb2' b'0' b'\xaa' b'D' b'e' b'\xe7' b'\xa9' b'\x8d' b'\n' b'\xb8' b'\xb1' b'.' b'\xb7' b'.' b'\xb2' b'(' b'\xa0' b'\xb2' b'\xb4' b'0' b'\xaa' b'D' b'e' b'\xe7' b'\xa9' b'\x8d' b'\n' b'\xb8' b'\xb1' b'.' b'\xb7' b'.' b'\xb4' b'(' b'\xa0' b'\xa0' b'\xb1' b'\xb4' b'\xaa' b'D' b'e' b'\xe7' b'\xa9' b'\x8d' b'\n' b'\xb8' b'\xb1' b'.' b'\xb7' b'.' b'5' b'(' b'\xa0' b'\xb1' b'\xb2' b'9' b'\xaa' b'D' b'e' b'\xe7' b'\xa9' b'\x8d' b'\n' b'\xb8' b'\xb1' b'.' b'\xb7' b'.' b'6' b'(' b'\xa0' b'\xb2' b'5' b'\xb4' b'\xaa' b'D' b'e' b'\xe7' b'\xa9' b'\x8d' b'\n' b'0' b'.' b'\xb2' b'.' b'\xb7' b'(' b'B' b'\xb2' b'\xb1' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb2' b'.' b'\xb7' b'(' b'0' b'0' b'-' b'0' b'0' b'-' b'0' b'0' b'\xa9' b'\x8d' b'\n' b'\xb1' b'3' b'.' b'\xb7' b'.' b'0' b'(' b'\xa0' b'0' b'.' b'9' b'\xb7' b'6' b'\xa9' b'\x8d' b'\n' b'\xb1' b'3' b'.' b'0' b'.' b'0' b'(' b'0' b'.' b'9' b'\xb7' b'6' b'\xa9' b'\x8d' b'\n' b'\xb1' b'3' b'.' b'3' b'.' b'\xb1' b'(' b'0' b'.' b'9' b'\xb7' b'5' b'\xa9' b'(' b'\xb2' b'\xb1' b'-' b'0' b'\xb1' b'-' b'0' b'\xb1' b'\xa0' b'0' b'\xb2' b':' b'\xb4' b'5' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'5' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'5' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'5' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'5' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xc3' b'.' b'\xb8' b'.' b'5' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'0' b'\xaa' b'\xed' b'i' b'\xee' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'5' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'5' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'5' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'5' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb1' b'.' b'\xb8' b'.' b'5' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'5' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'5' b'\xaa' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'5' b'\xa6' b'\xb1' b'\xb2' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'5' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'\xb2' b'.' b'\xb8' b'.' b'5' b'\xaa' b'0' b'0' b'(' b'0' b'0' b'0' b'0' b'.' b'0' b'0' b'0' b'0' b'\xaa' b'\xeb' b'\xd7' b'\xe8' b'\xa9' b'\x8d' b'\n' b'!' b'\x8d' b'\n' b'\x03' b':' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b''

.......
TimeoutError: Read in TcpTransport timed out

trying to readout EMH - LZQJ-XC but cant build up connection

I am using the default example to conect to the EMH - LZQJ-XC, as it is connectat over a D0 Serial USB port.
when using default example:
from iec62056_21.client import Iec6205621Client client = Iec6205621Client.with_serial_transport(port='COM8') client.connect() print(client.standard_readout())

where i changed the Port, it does not seem to connect at all.
do i have to set some parameters in the Client definition?

Thanks for any advices

ISk5MT174 - TimeoutError: Read in SerialTransport timed out

I would like to read the data from the MT174 smart meter via the optical interface using the Weidmann 'IR Schreib/Lesekopf USB (Optokopf)', but I get an error message

#!/usr/bin/python3

from iec62056_21.client import Iec6205621Client
import logging

# set up logging so you get a bit nicer printout of what is happening.
logging.basicConfig(
    level=logging.DEBUG,
    format="%(asctime)s,%(msecs)d %(levelname)s: %(message)s",
    datefmt="%H:%M:%S",
)
client = Iec6205621Client.with_serial_transport(port='/dev/ttyUSB0')
client.connect()
print(client.standard_readout())

Errormessage

09:53:52,112 INFO: Staring init sequence
09:53:52,112 INFO: Sending request message: RequestMessage(device_address='')
09:53:52,218 DEBUG: Sent b'/?!\r\n' over transport: SerialTransport
09:53:52,218 DEBUG: Resting for 0.25 seconds
09:53:52,893 DEBUG: Received b'/ISk5MT174-0001\r\n' over transport: SerialTransport
09:53:52,893 INFO: Received identification message: IdentificationMessage(identification='T174-0001', manufacturer='ISk', switchover_baudrate_char='5')
09:53:52,893 INFO: Sending AckOptionsSelect message: AckOptionSelectMessage(baud_char='5', mode_char='0')
09:53:52,998 DEBUG: Sent b'\x06050\r\n' over transport: SerialTransport
09:53:52,998 DEBUG: Resting for 0.025 seconds
09:53:53,524 INFO: Reading standard readout from device.
Traceback (most recent call last):
  File "test2.py", line 17, in <module>
    print(client.standard_readout())
  File "/usr/local/lib/python3.8/dist-packages/iec62056_21/client.py", line 183, in standard_readout
    response = self.read_response()
  File "/usr/local/lib/python3.8/dist-packages/iec62056_21/client.py", line 296, in read_response
    data = self.transport.read()
  File "/usr/local/lib/python3.8/dist-packages/iec62056_21/transports.py", line 58, in read
    raise TimeoutError(f"Read in {self.__class__.__name__} timed out")
TimeoutError: Read in SerialTransport timed out

When I query the interface with the following script, I get data.

#!/usr/bin/env python3
import serial
import time

SERIALPORT = "/dev/ttyUSB0"
BAUDRATE = 300

ser = serial.Serial(SERIALPORT, BAUDRATE, serial.SEVENBITS, serial.PARITY_EVEN)
ser.write(b"\x2F\x3F\x21\x0D\x0A")

time.sleep(0.5)
numberOfLine = 0

while True:
  response = ser.readline()
  print(response)
  numberOfLine = numberOfLine + 1
  if (numberOfLine >= 11):
     break
ser.close()

Results:

b'ISk5MT174-0001\r\n'
 b'\x020.9.1(150802)\r\n'
 b'0.9.2(1200702)\r\n'
 b'0.0.0(00339188)\r\n'
 b'0.2.0(1.03)\r\n'
 b'C.1.6(FDF5)\r\n'
 b'1.8.1(0011400.587*kWh)\r\n'
 b'1.8.2(0023806.592*kWh)\r\n'
 b'2.8.1(0015608.024*kWh)\r\n'
 b'2.8.2(0000900.569*kWh)\r\n'
 b'F.F.0(0000000)\r\n'

What can I do so that I can get all the data?

Update README example to an accurate one.

The example given in the README is not correct. It is a mix of LIS-200 and standard IEC6256-21 code.

the code should reflect the simplest use-case : the standard readout.

support protocol mode = 2 in AckOptionSelectMessage

Hi,

I changed:

def to_representation(self): return f"{constants.ACK}2{self.baud_char}{self.mode_char}{constants.LINE_END}"
and the meter responds with standard readout.
16:14:30,929 DEBUG: Connecting to ('192.168.200.222', 2222) 16:14:30,931 INFO: Staring init sequence 16:14:30,931 INFO: Sending request message: RequestMessage(device_address='') 16:14:30,931 DEBUG: Sent b'/?!\r\n' over transport: TcpTransport 16:14:30,931 DEBUG: Resting for 0.25 seconds 16:14:31,182 DEBUG: Received b'/APA5\\2NORAX30\r\n' over transport: TcpTransport 16:14:31,182 INFO: Received identification message: IdentificationMessage(identification='2NORAX30', manufacturer='APA', switchover_baudrate_char='5') 16:14:31,182 INFO: Sending AckOptionsSelect message: AckOptionSelectMessage(baud_char='5', mode_char='6') 16:14:31,182 DEBUG: Sent b'\x06256\r\n' over transport: TcpTransport 16:14:31,182 DEBUG: Resting for 0.25 seconds 16:14:31,433 INFO: Reading standard readout from device. 16:14:33,220 DEBUG: Received b'\x020-0:C.1.0(72432595)\r

party is set to 7E1. The converter is set manually. If i switch to 8N1 the meter stops responding.

Using manufacturers software I can read via IEC mode C additional registers. Registers hold energy consumption every 15 and 60 minutes but they are protected with the password. I dont know how to read them with Your library.

UPDATE

I think that support for LOAD_PROFILE is missing

connecting via GSM

Hi,

im trying to connect to meter but i get timeout error. Here is my code:
`from iec62056_21.client import Iec6205621Client
import logging

logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s,%(msecs)d %(levelname)s: %(message)s",
datefmt="%H:%M:%S",
)

client = Iec6205621Client.with_tcp_transport(address=('xx.xx.xx.xx', 2222), device_address='523.1028490',password='00000000')

client.connect()
data = client.standard_readout()
`

22:00:43,454 INFO: Staring init sequence
22:00:43,454 INFO: Sending request message: RequestMessage(device_address='523.1028490')
22:00:43,455 DEBUG: Sent b'/?523.1028490!\r\n' over transport: TcpTransport
22:00:43,455 DEBUG: Resting for 0.25 seconds
Traceback (most recent call last):
File "/home/pi/.local/lib/python3.7/site-packages/iec62056_21/transports.py", line 339, in _recv
b = self.socket.recv(chars)
socket.timeout: timed out

In my opinion there is a problem in timeout or something. I'm able to connect to the meter with native manufacturer app. So connection options are correct but it takes few seconds to estabilish connection. Connection to the meter is realized via transparent gsm to rs485 gateway.

Greeting dawid

Problem with client.read_value

Hello,

I am trying to connect with my energy meter using your library. When I use standard_redout() I get all the information on one line and they are correct.
Can you tell me how can I read only one address for example '1.8.0' , which function to use and how to write the address in it.

I can't find any information in documentation about that and "Example usage:"
from iec62056_21.client import Iec6205621Client

client = Iec6205621Client.with_tcp_transport(address=('192.168.0.1', 8000), device_address='12345678', password='00000000')
password_challange = client.access_programming_mode()
client.send_password('00000000') # Common standard password
data_answer = client.read_value('1.8.0')

is incorrect because I can't import data_answer =client.read_value('1.8.0').
I can use only read_single_value, read_response, read_identification.

read_single_value

Hi
i cant read single value from meter.
Function read_standard_readout works but i get huge amount of data.
i would like to get only one value eq. (1.8.0)

my code:
`#!/usr/bin/python3

from iec62056_21.client import Iec6205621Client
import logging

logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s,%(msecs)d %(levelname)s: %(message)s",
datefmt="%H:%M:%S",
)

client = Iec6205621Client.with_tcp_transport(address=('192.168.200.123', 2222), device_address='035 0000101', password='00000000')
client.connect()
password_challange = client.access_programming_mode()
client.send_password('00000000') # Common standard password
data_answer = client.read_value('1.8.0')
print(data_answer)`

output:
20:30:10,157 DEBUG: Connecting to ('192.168.200.123', 2222) 20:30:10,157 INFO: Staring init sequence 20:30:10,157 INFO: Sending request message: RequestMessage(device_address='035 0000101') 20:30:10,158 DEBUG: Sent b'/?035 0000101!\r\n' over transport: TcpTransport 20:30:10,158 DEBUG: Resting for 0.25 seconds 20:30:11,294 DEBUG: Received b'/POZ4LP1-VP02.04*\r\n' over transport: TcpTransport 20:30:11,294 INFO: Received identification message: IdentificationMessage(identification='P1-VP02.04*', manufacturer='POZ', switchover_baudrate_char='4') 20:30:11,295 INFO: Sending AckOptionsSelect message: AckOptionSelectMessage(baud_char='4', mode_char='1') 20:30:11,295 DEBUG: Sent b'\x06041\r\n' over transport: TcpTransport 20:30:11,295 DEBUG: Resting for 0.25 seconds 20:30:11,546 DEBUG: Received b'\x01P0\x02(0000)\x03' over transport: TcpTransport
Traceback (most recent call last):
File "./iec_net.py", line 26, in
client.send_password('00000000') # Common standard password
File "/home/pi/.local/lib/python3.7/site-packages/iec62056_21/client.py", line 193, in send_password
data_set = messages.DataSet(value=_pw)
TypeError: init() missing 1 required positional argument: 'address'
`

Dependencies are broken.

Pyserial is not listed in requirments and gives module not found error on using after install.
Attr is not listed

Not able to enter programming mode on EMH meter - serial transport

After checking some errors reported by users, #4 I found that it is not possible to enter programming mode on an EMH meter.

A quick look suggests it is a combined error of the ASCII representation of a command and that we are not preforming a baudrate switch that the meter proposes. (Or telling the meter that we want to stay at our current baudrate.)

The baudrate issue is only contained to the serial transport as it doesn't have effect on the TCP transport. But the client still needs to call the switch for both of the transport to work.

Socket Timeout

Hello,

I am trying to implement this code but every time I try I am having 'Socket Timeout' warning.

The meter is Kohler AEL.TF.19 which is using IEC62056-21 protocol to communicate. I am sure that the both the meter and the modem are running perfectly since when I tried it with HW-Group's Hercules Software it connects and gets the data.

If you can help me about the process I'll be glad.

from iec62056_21.client import Iec6205621Client client = Iec6205621Client.with_tcp_transport(address=('5.26.220.136', 502), dev$ password_challange = client.access_programming_mode() client.send_password('00000000') # Common standard password data_answer = client.read_value('1.8.0')

Request support for HAN-NVE (a.k.a. Norwegian RJ45 HAN-port standard) interface over M-Bus

Requesting support for Kamstrup Omnipower HAN-module and Aidon AMI system smart meters with "HAN-NVE" RJ45 interface.

"HAN-NVE" has a physical RJ45 port which in Sweden and Scandinavia is referred to as the "Norwegian RJ45 HAN-port standard".

https://hanporten.se/norska/porten/

https://hanporten.se/norska/protokollet/

https://hanporten.se/norska/kretsschema/

Google search says that they at least sell an Kamstrup HAN-module with "HAN-NVE" RJ45 HAN interface with part number 6840004 which according to its specifications listed in the data sheet it looks like the reader needs to comply with MBUS EN-13757-2 standard as per recommendation from NVE (Norwegian Water Resources and Energy Directorate) for Norway, a.k.a. AMS+HAN version 2.0 or IEC 62056-7-5, annex D ”MBUS” slave, e.g. an IEC 62056-21 protocol mode B client.

https://www.nek.no/wp-content/uploads/2018/10/Kamstrup-HAN-NVE-interface-description_rev_3_1.pdf

https://www.nek.no/wp-content/uploads/2017/10/AMS-HAN-personvernnotat-h%C3%B8ringsversjon.pdf

https://byggebolig.no/imageoriginals/88b3d1774ecb41e6a3fe067ae9e6a893.pdf

https://www.energiforetagen.se/globalassets/energiforetagen/det-erbjuder-vi/publikationer/branschrekommendation-lokalt-granssnitt-v1-2-2018.pdf

https://www.utomhusliv.se/wp-content/uploads/2020/10/Specifikation-f%C3%B6r-HAN-modulen-f%C3%B6r-elm%C3%A4tare-engelska.pdf

Google also says that Aidon AMI system smart meters use the same type of HAN-NVE HAN with RJ45 port with M-Bus interface:

https://www.skekraft.se/wp-content/uploads/2021/03/Aidon_Feature_description_RJ45_HAN_Interface_EN.pdf

https://www.tekniskaverken.se/siteassets/tekniska-verken/elnat/aidonfd-rj45-han-interface-se-v13a.pdf

There looks to be some guides for parsing the protocol and getting the data through some kind of M-Bus converter here:

https://www.kode24.no/guider/smart-meter-part-1-getting-the-meter-data/71287300

https://xipher.dk/posts/2020-05-17-using-esp8266-to-monitor-kamstrup-omnipower/

https://github.com/Claustn/esp8266-kamstrup-mqtt

https://github.com/roarfred/AmsToMqttBridge/blob/master/Samples/Kaifa/readme.md

https://github.com/roarfred/AmsToMqttBridge/blob/master/Samples/Kamstrup/obisdata.md

https://hanporten.se/norska/protokollet/

"The meter acts as Mbus master pushing data. To read the information, a circuit for Mbus' slave is needed."

"They are following the DLMS (Device Language Message Specification) protocol and are sent inside HDLC frames and contains OBIS (Object Identification System) codes that describe the electricity usage. Everything is part of IEC 62056 which is a set of standards for electricity metering data exchange."

switch baudrate

How we can reopen serial port? may be need only setbaudrate?

read 1.8.0

Hi how can i read 1.8.0 adress? i cant see on examples

Update Pypi

Hello!

I installed the library with pip, but this source code is different.

For example the method connect of SerialTransport class in the lib no has baudrate param.

It posible that not is update?.

Thank you.

AttributeError: 'NoneType' object has no attribute 'write'

Hi,
I am trying to read my Smart Meter using this libraray.
I am using a USB to IR adapter and I am trying to read it via the d0 interface.
I made a fresh install on a raspberry pi 4 with raspian buster lite and I continue to get the above failure message. Do you have any ideas on how to resolve the issue ?

It would be great, if anyone coulde help.

Thank you

Marc

Actual code:
from iec62056_21.client import Iec6205621Client
client = Iec6205621Client.with_serial_transport(port='/dev/ttyUSB0')
password_challange = client.access_programming_mode()
client.send_password('00000000') # Common standard password
data_answer = client.read_value('1.8.0')
print("Result:")
print(data_answer)

Full Error message:
Traceback (most recent call last):
File "reader.py", line 5, in
password_challange = client.access_programming_mode()
File "/home/pi/.local/lib/python3.7/site-packages/iec62056_21/client.py", line 164, in access_programming_mode
self.startup()
File "/home/pi/.local/lib/python3.7/site-packages/iec62056_21/client.py", line 143, in startup
self.send_init_request()
File "/home/pi/.local/lib/python3.7/site-packages/iec62056_21/client.py", line 239, in send_init_request
self.transport.send(request.to_bytes())
File "/home/pi/.local/lib/python3.7/site-packages/iec62056_21/transports.py", line 174, in send
self._send(data)
File "/home/pi/.local/lib/python3.7/site-packages/iec62056_21/transports.py", line 256, in _send
self.port.write(data)
AttributeError: 'NoneType' object has no attribute 'write'

PS: During the install I was only able to install the libraray using pip3 instead of pip.

Not able to send address in init request over serial transport

Usually there is no need for an address when initiating communication over the Optical port of a meter, since it is the only meter available.

But the serial transport can also be used för RS485 which allows for multiple meters to be connected to the loop.

So we need support for sending the address over serial transport too. Some manufactures might also enforce and address on the optical port.

Issue raised from discussion in #4

EMH meter is only responding with ACK on read.

When trying to solve some user issues: #4 I found (after some other fixes #7 ) that my test EMH meter is responding with only an ACK on a read command (R1). As I read the standard read commands should be answered directly with the data.
If I wait i get a BREAK message from the meter so it seems that the meter expects me to send more data in the read-command. But it is not a partial blocks command (R3/R4) so it seems wrong.

I have check with the manufacturers documentation.

readout of landis + gyr120AP

I tried to read the landis + gyr ZM120 and had some issues (on osx)
With the code in the repository, no readout is possible. The read timouts.
But if i remove the code to switch the baud rate, by commenting out self.transport.switch_baudrate(self.switchover_baudrate), everything works as expected.

should i prepare a pr with a flag for the client or transport to disable the baud rate switch ?

attached transcript without the actual data of my readings

INFO:iec62056_21.client:Staring init sequence
INFO:iec62056_21.client:Sending request message: RequestMessage(device_address='')
DEBUG:iec62056_21.transports:Sent b'/?!\r\n' over transport: SerialTransport
DEBUG:iec62056_21.client:Resting for 0.25 seconds
DEBUG:iec62056_21.transports:Received b'/LGZ4\\2ZMD120APt.G03\r\n' over transport: SerialTransport
INFO:iec62056_21.client:Received identification message: IdentificationMessage(identification='2ZMD120APt.G03', manufacturer='LGZ', switchover_baudrate_char='4')
INFO:iec62056_21.client:Sending AckOptionsSelect message: AckOptionSelectMessage(baud_char='4', mode_char='0')
DEBUG:iec62056_21.transports:Sent b'\x06040\r\n' over transport: SerialTransport
DEBUG:iec62056_21.client:Resting for 0.25 seconds
INFO:iec62056_21.client:Reading standard readout from device.

rest() from Iec6205621Client

def rest(self, duration=None):
    """
    The protocol needs some timeouts between reads and writes to enable the device
    to properly parse a message and return the result.
    """

    _duration = duration or (self.reaction_time * 1.25)
    logger.debug(f"Resting for {_duration} seconds")
    time.sleep(_duration)

For self.use_short_reaction_time = True dont work. At first need decide time of writing message:

def time_write(self, msg):
    """
    return need time of write
    """
    return (1 / self.port.get_settings()['baudrate'] * len(msg)) 
    #or return (1 / self._current_baudrate * len(msg)*10) 

where msg is the ack_message.to_bytes() or 6

After self.rest(self.reaction_time +self.transport.time_write(ack_message.to_bytes()))
or

Issue " connection being refused after dockerize and running mininet "

I have atask to implement the client server model using the protocol for IoT. my server and client file were good when i check in the teriminal of my virtual machine. The packet traffic acks and syns are good too. But after creating docker images for my client and server and running them in a mininet topology with two switches and a controller, My client side connection establishment leaves an error 111.

But when i run in m teriminal the data packets were being transferred good.

Here is how it shows up:

Traceback (most recent call last):
client-container_1 | File "/tmp/./Client.py", line 83, in
client-container_1 | Run_client()
client-container_1 | File "/tmp/./Client.py", line 44, in Run_client
client-container_1 | client.connect()
client-container_1 | File "/env/lib/python3.9/site-packages/iec62056_21/client.py", line 126, in connect
client-container_1 | self.transport.connect()
client-container_1 | File "/env/lib/python3.9/site-packages/iec62056_21/transports.py", line 315, in connect
client-container_1 | self.socket.connect(self.address)
client-container_1 | ConnectionRefusedError: [Errno 111] Connection refused

Any lead will be very help full. Thanks in advance

Implementing protocol to my client file.

Hi
I want to read a single value from my smart meter,
I did the code for basic server.py and client,py, I need to use this iec62056-21 for local data exchange.

from iec62056_21.client import Iec6205621Client

client = Iec6205621Client.with_tcp_transport(address=('192.168.0.1', 8000), device_address='12345678', password='00000000')

password_challange = client.access_programming_mode()

client.send_password('00000000') # Common standard password

data_answer = client.read_value('1.8.0')

I'm not getting any lead to assign this protocol to my client.py file.
*
*
*

MY SERVER.PY FILE

import socket

SMGW = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #socket created

""" socket.AF_INET corresponds to the internet address family for IPv4
and socket.SOCK_STREAM is the socket type for TCP i.e connection oriented. """

print("socket created")

host = 'localhost'
port = 9999
address = (host, port)

SMGW.bind(address)
SMGW.listen(5) #waiting for connections

print("waiting for connections")

while True:
SM, addr = SMGW.accept()

name = SM.recv(1024)
name.decode('utf-8')

print("connected with", addr, name)

SM.send(bytes("welcome to smart meter gateway"))

data_exchange = SM.recv(1024)
print(data_exchange.decode('utf-8'))

SM.close

print("SM disconnected")

MY CLIENT.PY FILE

import socket

SM = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

""" socket.AF_INET corresponds to the internet address family for IPv4
and socket.SOCK_STREAM is the socket type for TCP i.e connection oriented. """

print("socket created")

host = 'localhost'
port = 9999

SM.connect((host, port))

SM.send(bytes('smart meter'))

data = SM.recv(1024)
print(data.decode('utf-8'))

SM.send(bytes("This is smart meter"))

Any lead's will be helpful !!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.