1def b(a, b, c):
2    """
3    >>> b(1,2,3)
4    >>> b(1,2,3,4)
5    Traceback (most recent call last):
6    TypeError: b() takes exactly 3 positional arguments (4 given)
7    """
8    a, b, c = b, c, a
9
10def c(a, b, c=1):
11    """
12    >>> c(1,2)
13    >>> c(1,2,3)
14    >>> c(1,2,3,4)
15    Traceback (most recent call last):
16    TypeError: c() takes at most 3 positional arguments (4 given)
17    """
18    a, b, c = b, c, a
19
20def d(a, b, *, c = 88):
21    """
22    >>> d(1,2)
23    >>> d(1,2, c=1)
24    >>> d(1,2,3)
25    Traceback (most recent call last):
26    TypeError: d() takes exactly 2 positional arguments (3 given)
27    >>> d(1,2, d=1)
28    Traceback (most recent call last):
29    TypeError: d() got an unexpected keyword argument 'd'
30    """
31    a, b, c = b, c, a
32
33def e(a, b, c = 88, **kwds):
34    """
35    >>> e(1,2)
36    >>> e(1,2, c=1)
37    >>> e(1,2, d=1)
38    >>> e(1,2, c=1, d=2, e=3)
39    >>> e(1,2,3)
40    >>> e(1,2,3,4)
41    Traceback (most recent call last):
42    TypeError: e() takes at most 3 positional arguments (4 given)
43    """
44    a, b, c = b, c, a
45
46def f(a, b, *, c, d = 42):
47    """
48    >>> f(1,2, c=1)
49    >>> f(1,2, c=1, d=2)
50    >>> f(1,2,3)
51    Traceback (most recent call last):
52    TypeError: f() takes exactly 2 positional arguments (3 given)
53    >>> f(1,2)
54    Traceback (most recent call last):
55    TypeError: f() needs keyword-only argument c
56    >>> f(1,2, c=1, e=2)
57    Traceback (most recent call last):
58    TypeError: f() got an unexpected keyword argument 'e'
59    """
60    a, b, c, d = b, c, d, a
61
62def g(a, b, *, c, d = 42, e = 17, f, **kwds):
63    """
64    >>> g(1,2, c=1, f=2)
65    >>> g(1,2, c=1, e=0, f=2, d=11)
66    >>> g(1,2, c=1, f=2, e=0, x=25)
67    >>> g(1,2,3)
68    Traceback (most recent call last):
69    TypeError: g() takes exactly 2 positional arguments (3 given)
70    >>> g(1,2)
71    Traceback (most recent call last):
72    TypeError: g() needs keyword-only argument c
73    >>> g(1,2, c=1)
74    Traceback (most recent call last):
75    TypeError: g() needs keyword-only argument f
76    """
77    a, b, c, d, e, f = b, c, d, e, f, a
78
79def h(a, b, *args, c, d = 42, e = 17, f, **kwds):
80    """
81    >>> h(1,2, c=1, f=2)
82    >>> h(1,2, c=1, f=2, e=3)
83    >>> h(1,2,3,4,5,6, c=1, f=2)
84    >>> h(1,2,3,4,5,6, c=1, f=2, e=3, x=25, y=11)
85    >>> h(1,2,3)
86    Traceback (most recent call last):
87    TypeError: h() needs keyword-only argument c
88    >>> h(1,2, d=1)
89    Traceback (most recent call last):
90    TypeError: h() needs keyword-only argument c
91    """
92    a, b, c, d, e, f = b, c, d, e, f, a
93
94def k(a, b, c=1, *args, d = 42, e = 17, f, **kwds):
95    """
96    >>> k(1,2, c=1, f=2)
97    >>> k(1,2, c=1, f=2, e=3)
98    >>> k(1,2,3,4,5,6, d=1, f=2)
99    >>> k(1,2,3,4,5,6, d=1, f=2, e=3, x=25, y=11)
100    >>> k(1,2,3)
101    Traceback (most recent call last):
102    TypeError: k() needs keyword-only argument f
103    >>> k(1,2, d=1)
104    Traceback (most recent call last):
105    TypeError: k() needs keyword-only argument f
106    """
107    a, b, c, d, e, f = b, c, d, e, f, a
108
109def l(*, a, b, c = 88):
110    """
111    >>> l(a=1, b=2)
112    >>> l(a=1, b=2, c=1)
113    >>> l(1,2,3)
114    Traceback (most recent call last):
115    TypeError: l() takes exactly 0 positional arguments (3 given)
116    >>> l(1,2, d=1)
117    Traceback (most recent call last):
118    TypeError: l() takes exactly 0 positional arguments (2 given)
119    >>> l(1,2,3)
120    Traceback (most recent call last):
121    TypeError: l() takes exactly 0 positional arguments (3 given)
122    >>> l(1,2, d=1)
123    Traceback (most recent call last):
124    TypeError: l() takes exactly 0 positional arguments (2 given)
125    """
126    a, b, c = b, c, a
127
128def m(a, *, b, c = 88):
129    """
130    >>> m(1, b=2)
131    >>> m(a=1, b=2)
132    >>> m(a=1, b=2, c=1)
133    """
134    a, b, c = b, c, a
135
136def n(a, *, b, c = 88):
137    a, b, c = b, c, a
138