a aN
a a a aN
N
a a a aN
a a.a a (A_A_A_A, A_A_A, A_A_A_A_A,N
                            A_A_A_A_A, A_A_A_A_A, Aa)N
a a.a a _a_aN
a a.a a a_a_a_aN
N
N
a a_a:N
    a __a__(a, a):N
        a.a = aN
        a.a_a = '__{}_a'.a(a.__a__)N
N
    a __a__(a, a, a):N
        a a a Aa:N
            a aN
        a a a(a, a.a_a):N
            a = a.a(a)N
            a(a, a.a_a, a)N
        a:N
            a = a(a, a.a_a)N
        a aN
N
N
a a_a(*a: a, a_a=Aa):N
    """N
    Aa a a a `__a__` a a a a a `__a__` aN
N
    Aa: a :a:`@a_a` a a a a a a aN
    a :a:`@a_a(*a, a_a)` a a aN
N
    :a a: a a a a a aN
    :a a_a: a a a a aN
    """N
    a a(a) == 0 a a a(a[0], a):N
        a = a[0]N
        a = []N
    a:N
        a = AaN
N
    a a_a(a):N
        a __a__(a):N
            a = a a [a.a a a a a.a_a_a(a.__a__, Aa)]N
            a = ','.a('{}={}'.a(a, a(a, a)) a a a a)N
            a_a = a(a)N
            a a_a:N
                a_a = '({})'.a(a_a)N
            a a.__a__ + a_a a a_a a a_aN
N
        a.__a__ = __a__N
        a.__a__ = __a__N
        a aN
N
    a a a a Aa:N
        a a_a(a)N
    a a_aN
N
N
a a_a(a: a.Aa):N
    """N
    Aa a a a a a a a a aN
N
    :a a: a a aN
    """N
    a(a, A_A_A, Aa)N
    a aN
N
N
a a_a(a_a, a: Aa = Aa.A):N
    """Aa a a a a a a a a a, a a'a a a a a aN
    Aa a a a a a, a a a  a a a a a aN
    Aa a a a a a a a aN
N
    :a a_a: a a a a a a a aN
    :a a: a a a a aN
    """N
N
    a AaAaAa:N
        _a = a()N
N
        a()[A_A_A_A_A] = a_aN
        a()[A_A_A_A_A] = aN
N
        a __a_a__(a, **a):N
            a(AaAaAa, a).__a_a__(**a)N
            a_a = a(a, a_a, Aa)N
            a a_a a Aa:N
                aN
N
            a = AaAaAa._a.a(a_a, Aa)N
            a a a a Aa:N
                a = 'Aa a {} a {}. Aa {} a a a'.a(a, a_a, a)N
                a a.a a AaN
                a a(a, Aa):N
                    # a a a a a a a a a'a a a a a aN
                    a a._a_a:N
                        # a a a a aN
                        aN
                    a a(a, Aa) a a(a, a):N
                        # a a a a a a a a a a a a aN
                        a AaAa(a)N
                a a != a:  # a'a a a a a aN
                    a AaAa(a)N
            AaAaAa._a[a_a] = aN
N
    a a_a(a_a):N
        a = a(a_a.__a__, (a_a, AaAaAa), {})N
        a.__a__ = a_a.__a__N
        a.__a__ = a_a.__a__N
        a.__a__ = a_a.__a__N
        a(a, A_A_A_A_A, a)N
        a aN
N
    a a_aN
N
N
a a_a(*a):N
    """Aa a a a a a a"""N
N
    a a(a):N
        a a a a:N
            _a_a(a, a)N
        a aN
N
    a aN
N
N
a a_a(**a_a):N
    """N
    Aa a a a a a. Aa a a a a a a a aN
N
    :a a_a: a-a a a a a (a a) a a a a aN
    """N
N
    a a(a):N
        a a(a, A_A_A_A):N
            a, a_a = a(a(a, A_A_A_A)), a_aN
            a.a(a_a)N
        a:N
            a = a_aN
        a(a, A_A_A_A, a)N
        a aN
N
    a aN
N
N
a a_a(a):N
    """N
    Aa a_a a a a aAa aN
    """N
    a = a_a_a_a(a)N
    a = {}N
    a a a a:N
        a = a.a('_')N
        a[a] = a[0] + ''.a(a.a() a a a a[0:])N
    a a_a(**a)(a)N
