"""LCM type definitions
This file automatically generated by lcm.
DO NOT MODIFY BY HAND!!!!
"""

try:
    import cStringIO.StringIO as BytesIO
except ImportError:
    from io import BytesIO
import struct

class entropy_path_trend_data(object):
    __slots__ = ["agent_idx_", "num_iteration_", "entropy_path_"]

    __typenames__ = ["int32_t", "int32_t", "double"]

    __dimensions__ = [None, None, ["num_iteration_"]]

    def __init__(self):
        self.agent_idx_ = 0
        self.num_iteration_ = 0
        self.entropy_path_ = []

    def encode(self):
        buf = BytesIO()
        buf.write(entropy_path_trend_data._get_packed_fingerprint())
        self._encode_one(buf)
        return buf.getvalue()

    def _encode_one(self, buf):
        buf.write(struct.pack(">ii", self.agent_idx_, self.num_iteration_))
        buf.write(struct.pack('>%dd' % self.num_iteration_, *self.entropy_path_[:self.num_iteration_]))

    def decode(data):
        if hasattr(data, 'read'):
            buf = data
        else:
            buf = BytesIO(data)
        if buf.read(8) != entropy_path_trend_data._get_packed_fingerprint():
            raise ValueError("Decode error")
        return entropy_path_trend_data._decode_one(buf)
    decode = staticmethod(decode)

    def _decode_one(buf):
        self = entropy_path_trend_data()
        self.agent_idx_, self.num_iteration_ = struct.unpack(">ii", buf.read(8))
        self.entropy_path_ = struct.unpack('>%dd' % self.num_iteration_, buf.read(self.num_iteration_ * 8))
        return self
    _decode_one = staticmethod(_decode_one)

    _hash = None
    def _get_hash_recursive(parents):
        if entropy_path_trend_data in parents: return 0
        tmphash = (0xcc821e30b337ce82) & 0xffffffffffffffff
        tmphash  = (((tmphash<<1)&0xffffffffffffffff) + (tmphash>>63)) & 0xffffffffffffffff
        return tmphash
    _get_hash_recursive = staticmethod(_get_hash_recursive)
    _packed_fingerprint = None

    def _get_packed_fingerprint():
        if entropy_path_trend_data._packed_fingerprint is None:
            entropy_path_trend_data._packed_fingerprint = struct.pack(">Q", entropy_path_trend_data._get_hash_recursive([]))
        return entropy_path_trend_data._packed_fingerprint
    _get_packed_fingerprint = staticmethod(_get_packed_fingerprint)


e7e50082d11459c2637b8a41a77a4d5609da3f9c
<mask token>


class entropy_path_trend_data(object):
    <mask token>
    <mask token>
    <mask token>

    def __init__(self):
        self.agent_idx_ = 0
        self.num_iteration_ = 0
        self.entropy_path_ = []

    def encode(self):
        buf = BytesIO()
        buf.write(entropy_path_trend_data._get_packed_fingerprint())
        self._encode_one(buf)
        return buf.getvalue()
    <mask token>

    def decode(data):
        if hasattr(data, 'read'):
            buf = data
        else:
            buf = BytesIO(data)
        if buf.read(8) != entropy_path_trend_data._get_packed_fingerprint():
            raise ValueError('Decode error')
        return entropy_path_trend_data._decode_one(buf)
    <mask token>

    def _decode_one(buf):
        self = entropy_path_trend_data()
        self.agent_idx_, self.num_iteration_ = struct.unpack('>ii', buf.read(8)
            )
        self.entropy_path_ = struct.unpack('>%dd' % self.num_iteration_,
            buf.read(self.num_iteration_ * 8))
        return self
    <mask token>
    <mask token>

    def _get_hash_recursive(parents):
        if entropy_path_trend_data in parents:
            return 0
        tmphash = 14736374125223726722 & 18446744073709551615
        tmphash = (tmphash << 1 & 18446744073709551615) + (tmphash >> 63
            ) & 18446744073709551615
        return tmphash
    <mask token>
    <mask token>
    <mask token>
    <mask token>

<mask token>


class entropy_path_trend_data(object):
    <mask token>
    <mask token>
    <mask token>

    def __init__(self):
        self.agent_idx_ = 0
        self.num_iteration_ = 0
        self.entropy_path_ = []

    def encode(self):
        buf = BytesIO()
        buf.write(entropy_path_trend_data._get_packed_fingerprint())
        self._encode_one(buf)
        return buf.getvalue()
    <mask token>

    def decode(data):
        if hasattr(data, 'read'):
            buf = data
        else:
            buf = BytesIO(data)
        if buf.read(8) != entropy_path_trend_data._get_packed_fingerprint():
            raise ValueError('Decode error')
        return entropy_path_trend_data._decode_one(buf)
    <mask token>

    def _decode_one(buf):
        self = entropy_path_trend_data()
        self.agent_idx_, self.num_iteration_ = struct.unpack('>ii', buf.read(8)
            )
        self.entropy_path_ = struct.unpack('>%dd' % self.num_iteration_,
            buf.read(self.num_iteration_ * 8))
        return self
    <mask token>
    <mask token>

    def _get_hash_recursive(parents):
        if entropy_path_trend_data in parents:
            return 0
        tmphash = 14736374125223726722 & 18446744073709551615
        tmphash = (tmphash << 1 & 18446744073709551615) + (tmphash >> 63
            ) & 18446744073709551615
        return tmphash
    <mask token>
    <mask token>

    def _get_packed_fingerprint():
        if entropy_path_trend_data._packed_fingerprint is None:
            entropy_path_trend_data._packed_fingerprint = struct.pack('>Q',
                entropy_path_trend_data._get_hash_recursive([]))
        return entropy_path_trend_data._packed_fingerprint
    <mask token>

<mask token>
try:
    import cStringIO.StringIO as BytesIO
except ImportError:
    from io import BytesIO
<mask token>


class entropy_path_trend_data(object):
    __slots__ = ['agent_idx_', 'num_iteration_', 'entropy_path_']
    __typenames__ = ['int32_t', 'int32_t', 'double']
    __dimensions__ = [None, None, ['num_iteration_']]

    def __init__(self):
        self.agent_idx_ = 0
        self.num_iteration_ = 0
        self.entropy_path_ = []

    def encode(self):
        buf = BytesIO()
        buf.write(entropy_path_trend_data._get_packed_fingerprint())
        self._encode_one(buf)
        return buf.getvalue()

    def _encode_one(self, buf):
        buf.write(struct.pack('>ii', self.agent_idx_, self.num_iteration_))
        buf.write(struct.pack('>%dd' % self.num_iteration_, *self.
            entropy_path_[:self.num_iteration_]))

    def decode(data):
        if hasattr(data, 'read'):
            buf = data
        else:
            buf = BytesIO(data)
        if buf.read(8) != entropy_path_trend_data._get_packed_fingerprint():
            raise ValueError('Decode error')
        return entropy_path_trend_data._decode_one(buf)
    decode = staticmethod(decode)

    def _decode_one(buf):
        self = entropy_path_trend_data()
        self.agent_idx_, self.num_iteration_ = struct.unpack('>ii', buf.read(8)
            )
        self.entropy_path_ = struct.unpack('>%dd' % self.num_iteration_,
            buf.read(self.num_iteration_ * 8))
        return self
    _decode_one = staticmethod(_decode_one)
    _hash = None

    def _get_hash_recursive(parents):
        if entropy_path_trend_data in parents:
            return 0
        tmphash = 14736374125223726722 & 18446744073709551615
        tmphash = (tmphash << 1 & 18446744073709551615) + (tmphash >> 63
            ) & 18446744073709551615
        return tmphash
    _get_hash_recursive = staticmethod(_get_hash_recursive)
    _packed_fingerprint = None

    def _get_packed_fingerprint():
        if entropy_path_trend_data._packed_fingerprint is None:
            entropy_path_trend_data._packed_fingerprint = struct.pack('>Q',
                entropy_path_trend_data._get_hash_recursive([]))
        return entropy_path_trend_data._packed_fingerprint
    _get_packed_fingerprint = staticmethod(_get_packed_fingerprint)

<mask token>
try:
    import cStringIO.StringIO as BytesIO
except ImportError:
    from io import BytesIO
import struct


class entropy_path_trend_data(object):
    __slots__ = ['agent_idx_', 'num_iteration_', 'entropy_path_']
    __typenames__ = ['int32_t', 'int32_t', 'double']
    __dimensions__ = [None, None, ['num_iteration_']]

    def __init__(self):
        self.agent_idx_ = 0
        self.num_iteration_ = 0
        self.entropy_path_ = []

    def encode(self):
        buf = BytesIO()
        buf.write(entropy_path_trend_data._get_packed_fingerprint())
        self._encode_one(buf)
        return buf.getvalue()

    def _encode_one(self, buf):
        buf.write(struct.pack('>ii', self.agent_idx_, self.num_iteration_))
        buf.write(struct.pack('>%dd' % self.num_iteration_, *self.
            entropy_path_[:self.num_iteration_]))

    def decode(data):
        if hasattr(data, 'read'):
            buf = data
        else:
            buf = BytesIO(data)
        if buf.read(8) != entropy_path_trend_data._get_packed_fingerprint():
            raise ValueError('Decode error')
        return entropy_path_trend_data._decode_one(buf)
    decode = staticmethod(decode)

    def _decode_one(buf):
        self = entropy_path_trend_data()
        self.agent_idx_, self.num_iteration_ = struct.unpack('>ii', buf.read(8)
            )
        self.entropy_path_ = struct.unpack('>%dd' % self.num_iteration_,
            buf.read(self.num_iteration_ * 8))
        return self
    _decode_one = staticmethod(_decode_one)
    _hash = None

    def _get_hash_recursive(parents):
        if entropy_path_trend_data in parents:
            return 0
        tmphash = 14736374125223726722 & 18446744073709551615
        tmphash = (tmphash << 1 & 18446744073709551615) + (tmphash >> 63
            ) & 18446744073709551615
        return tmphash
    _get_hash_recursive = staticmethod(_get_hash_recursive)
    _packed_fingerprint = None

    def _get_packed_fingerprint():
        if entropy_path_trend_data._packed_fingerprint is None:
            entropy_path_trend_data._packed_fingerprint = struct.pack('>Q',
                entropy_path_trend_data._get_hash_recursive([]))
        return entropy_path_trend_data._packed_fingerprint
    _get_packed_fingerprint = staticmethod(_get_packed_fingerprint)

"""LCM type definitions
This file automatically generated by lcm.
DO NOT MODIFY BY HAND!!!!
"""

try:
    import cStringIO.StringIO as BytesIO
except ImportError:
    from io import BytesIO
import struct

class entropy_path_trend_data(object):
    __slots__ = ["agent_idx_", "num_iteration_", "entropy_path_"]

    __typenames__ = ["int32_t", "int32_t", "double"]

    __dimensions__ = [None, None, ["num_iteration_"]]

    def __init__(self):
        self.agent_idx_ = 0
        self.num_iteration_ = 0
        self.entropy_path_ = []

    def encode(self):
        buf = BytesIO()
        buf.write(entropy_path_trend_data._get_packed_fingerprint())
        self._encode_one(buf)
        return buf.getvalue()

    def _encode_one(self, buf):
        buf.write(struct.pack(">ii", self.agent_idx_, self.num_iteration_))
        buf.write(struct.pack('>%dd' % self.num_iteration_, *self.entropy_path_[:self.num_iteration_]))

    def decode(data):
        if hasattr(data, 'read'):
            buf = data
        else:
            buf = BytesIO(data)
        if buf.read(8) != entropy_path_trend_data._get_packed_fingerprint():
            raise ValueError("Decode error")
        return entropy_path_trend_data._decode_one(buf)
    decode = staticmethod(decode)

    def _decode_one(buf):
        self = entropy_path_trend_data()
        self.agent_idx_, self.num_iteration_ = struct.unpack(">ii", buf.read(8))
        self.entropy_path_ = struct.unpack('>%dd' % self.num_iteration_, buf.read(self.num_iteration_ * 8))
        return self
    _decode_one = staticmethod(_decode_one)

    _hash = None
    def _get_hash_recursive(parents):
        if entropy_path_trend_data in parents: return 0
        tmphash = (0xcc821e30b337ce82) & 0xffffffffffffffff
        tmphash  = (((tmphash<<1)&0xffffffffffffffff) + (tmphash>>63)) & 0xffffffffffffffff
        return tmphash
    _get_hash_recursive = staticmethod(_get_hash_recursive)
    _packed_fingerprint = None

    def _get_packed_fingerprint():
        if entropy_path_trend_data._packed_fingerprint is None:
            entropy_path_trend_data._packed_fingerprint = struct.pack(">Q", entropy_path_trend_data._get_hash_recursive([]))
        return entropy_path_trend_data._packed_fingerprint
    _get_packed_fingerprint = staticmethod(_get_packed_fingerprint)

