from axelrod.action import Action
from axelrod.player import Player
IIlIIllllllllllIIIl, IlIIIlIl = Action.C, Action.D
class IllllIIlIllI(Player):
    llllllIll = "strategy"
    lIIllIIIIIIIlIlllI = {
        "memory_depth": 3,
        "stochastic": False,
        "long_run_time": False,
        "inspects_source": False,
        "manipulates_source": False,
        "manipulates_state": False,
    }
    def lIlIIIIIll(IIIIlIIIlll, lIlIIllIllllI: Player) -> Action:
        IllllIll = list(zip(IIIIlIIIlll.history[-3:], lIlIIllIllllI.history[-3:]))
        while len(IllllIll) < 3:
            IllllIll.insert(0, (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl))
        if IllllIll == [(IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:  
            return IIlIIllllllllllIIIl
        if IllllIll == [(IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IlIIIlIl, IIlIIllllllllllIIIl)]:  
            return IIlIIllllllllllIIIl
        if IllllIll == [(IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IlIIIlIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IlIIIlIl)]:
            return IIlIIllllllllllIIIl
        if IllllIll == [(IlIIIlIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IlIIIlIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:
            return IIlIIllllllllllIIIl
        if IllllIll == [(IIlIIllllllllllIIIl, IlIIIlIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:  
            return IIlIIllllllllllIIIl
        if IllllIll == [(IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IlIIIlIl)]:  
            return IlIIIlIl
        if IllllIll == [(IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IlIIIlIl), (IlIIIlIl, IIlIIllllllllllIIIl)]:
            return IIlIIllllllllllIIIl
        if IllllIll == [(IIlIIllllllllllIIIl, IlIIIlIl), (IlIIIlIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:
            return IIlIIllllllllllIIIl
        if IllllIll == [(IlIIIlIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:  
            return IIlIIllllllllllIIIl
        if IllllIll == [(IlIIIlIl, IlIIIlIl), (IlIIIlIl, IlIIIlIl), (IlIIIlIl, IIlIIllllllllllIIIl)]:  
            return IIlIIllllllllllIIIl
        if IllllIll == [(IlIIIlIl, IlIIIlIl), (IlIIIlIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:
            return IIlIIllllllllllIIIl
        if IllllIll == [(IlIIIlIl, IlIIIlIl), (IlIIIlIl, IlIIIlIl), (IIlIIllllllllllIIIl, IlIIIlIl)]:  
            return IIlIIllllllllllIIIl
        if IllllIll == [(IlIIIlIl, IlIIIlIl), (IIlIIllllllllllIIIl, IlIIIlIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:
            return IIlIIllllllllllIIIl
        if IllllIll == [(IlIIIlIl, IlIIIlIl), (IlIIIlIl, IlIIIlIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:  
            return IIlIIllllllllllIIIl
        if IllllIll == [(IlIIIlIl, IlIIIlIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl), (IIlIIllllllllllIIIl, IIlIIllllllllllIIIl)]:
            return IIlIIllllllllllIIIl
        return IlIIIlIl