active
from
X
mark
cons
X
from
s
X
active
first
0
Z
mark
nil
active
first
s
X
cons
Y
Z
mark
cons
Y
first
X
Z
active
sel
0
cons
X
Z
mark
X
active
sel
s
X
cons
Y
Z
mark
sel
X
Z
active
from
X
from
active
X
active
cons
X1
X2
cons
active
X1
X2
active
s
X
s
active
X
active
first
X1
X2
first
active
X1
X2
active
first
X1
X2
first
X1
active
X2
active
sel
X1
X2
sel
active
X1
X2
active
sel
X1
X2
sel
X1
active
X2
from
mark
X
mark
from
X
cons
mark
X1
X2
mark
cons
X1
X2
s
mark
X
mark
s
X
first
mark
X1
X2
mark
first
X1
X2
first
X1
mark
X2
mark
first
X1
X2
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
proper
from
X
from
proper
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
s
X
s
proper
X
proper
first
X1
X2
first
proper
X1
proper
X2
proper
0
ok
0
proper
nil
ok
nil
proper
sel
X1
X2
sel
proper
X1
proper
X2
from
ok
X
ok
from
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
s
ok
X
ok
s
X
first
ok
X1
ok
X2
ok
first
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
top
mark
X
top
proper
X
top
ok
X
top
active
X
2.2
active
from
X
from
active
X
active
from
X
cons
X
from
s
X
from
ok
X
from
X
proper
sel
X1
X2
proper
X1
active
s
X
s
active
X
active
first
s
X
cons
Y
Z
first
X
Z
active
first
s
X
cons
Y
Z
cons
Y
first
X
Z
proper
cons
X1
X2
cons
proper
X1
proper
X2
active
s
X
active
X
s
mark
X
s
X
proper
cons
X1
X2
proper
X1
active
first
X1
X2
active
X1
first
mark
X1
X2
first
X1
X2
active
sel
X1
X2
active
X2
proper
first
X1
X2
first
proper
X1
proper
X2
proper
first
X1
X2
proper
X2
top
ok
X
active
X
top
ok
X
top
active
X
active
from
X
s
X
active
sel
X1
X2
sel
X1
active
X2
top
mark
X
top
proper
X
sel
ok
X1
ok
X2
sel
X1
X2
first
X1
mark
X2
first
X1
X2
sel
mark
X1
X2
sel
X1
X2
active
sel
s
X
cons
Y
Z
sel
X
Z
active
cons
X1
X2
active
X1
active
sel
X1
X2
sel
active
X1
X2
proper
cons
X1
X2
proper
X2
proper
first
X1
X2
proper
X1
sel
X1
mark
X2
sel
X1
X2
active
first
X1
X2
first
active
X1
X2
active
from
X
from
s
X
proper
s
X
proper
X
active
first
X1
X2
active
X2
proper
sel
X1
X2
sel
proper
X1
proper
X2
proper
s
X
s
proper
X
proper
from
X
from
proper
X
top
mark
X
proper
X
active
cons
X1
X2
cons
active
X1
X2
cons
ok
X1
ok
X2
cons
X1
X2
proper
sel
X1
X2
proper
X2
active
first
X1
X2
first
X1
active
X2
first
ok
X1
ok
X2
first
X1
X2
active
from
X
active
X
s
ok
X
s
X
active
sel
X1
X2
active
X1
cons
mark
X1
X2
cons
X1
X2
from
mark
X
from
X
proper
from
X
proper
X
true
top
mark
X
top
proper
X
top
ok
X
top
active
X
true
cons
2
1
proper
1
1
ok
1
1
first
2
1
active
1
1
s
1
1
1
top
1
0
top
1
0
1
0
0
2
sel
2
0
from
1
4
1
sel
2
3
1
2
s
1
0
nil
0
2
mark
1
1
1
first
2
3
1
2
proper
1
0
from
1
0
cons
2
2
1
active
1
0
s
1
1
0
top
1
1
top
1
1
1
0
0
38608
sel
2
1
from
1
1
2243
sel
2
1
2
2241
s
1
1
nil
0
38607
mark
1
1
0
first
2
1
2
2242
proper
1
1
from
1
1
cons
2
1
2242
2
0
0
active
1
1
top
ok
X
top
active
X
sel
mark
X1
X2
mark
sel
X1
X2
active
sel
0
cons
X
Z
mark
X
s
mark
X
mark
s
X
active
s
X
s
active
X
active
from
X
mark
cons
X
from
s
X
active
first
s
X
cons
Y
Z
mark
cons
Y
first
X
Z
first
mark
X1
X2
mark
first
X1
X2
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
sel
X1
X2
sel
proper
X1
proper
X2
sel
X1
mark
X2
mark
sel
X1
X2
first
X1
mark
X2
mark
first
X1
X2
from
ok
X
ok
from
X
proper
s
X
s
proper
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
sel
s
X
cons
Y
Z
mark
sel
X
Z
active
first
X1
X2
first
X1
active
X2
active
cons
X1
X2
cons
active
X1
X2
proper
from
X
from
proper
X
proper
nil
ok
nil
first
ok
X1
ok
X2
ok
first
X1
X2
cons
mark
X1
X2
mark
cons
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
sel
X1
X2
sel
X1
active
X2
proper
first
X1
X2
first
proper
X1
proper
X2
proper
0
ok
0
active
sel
X1
X2
sel
active
X1
X2
active
first
X1
X2
first
active
X1
X2
from
mark
X
mark
from
X
active
from
X
from
active
X
s
ok
X
ok
s
X
active
first
0
Z
mark
nil
top
ok
X
top
active
X
true
cons
2
0
s
1
1
0
top
1
0
top
1
1
0
proper
1
3
ok
1
1
2
0
0
1
sel
2
0
from
1
1
0
sel
2
1
0
s
1
0
first
2
0
nil
0
1
mark
1
0
first
2
2
0
proper
1
0
from
1
0
active
1
1
1
cons
2
1
0
active
1
0
sel
mark
X1
X2
mark
sel
X1
X2
active
sel
0
cons
X
Z
mark
X
s
mark
X
mark
s
X
active
s
X
s
active
X
active
from
X
mark
cons
X
from
s
X
active
first
s
X
cons
Y
Z
mark
cons
Y
first
X
Z
first
mark
X1
X2
mark
first
X1
X2
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
sel
X1
X2
sel
proper
X1
proper
X2
sel
X1
mark
X2
mark
sel
X1
X2
first
X1
mark
X2
mark
first
X1
X2
from
ok
X
ok
from
X
proper
s
X
s
proper
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
active
sel
s
X
cons
Y
Z
mark
sel
X
Z
active
first
X1
X2
first
X1
active
X2
active
cons
X1
X2
cons
active
X1
X2
proper
from
X
from
proper
X
proper
nil
ok
nil
first
ok
X1
ok
X2
ok
first
X1
X2
cons
mark
X1
X2
mark
cons
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
sel
X1
X2
sel
X1
active
X2
proper
first
X1
X2
first
proper
X1
proper
X2
proper
0
ok
0
active
sel
X1
X2
sel
active
X1
X2
active
first
X1
X2
first
active
X1
X2
from
mark
X
mark
from
X
active
from
X
from
active
X
s
ok
X
ok
s
X
active
first
0
Z
mark
nil
top
ok
X
active
X
false
top
mark
X
proper
X
false
proper
from
X
proper
X
proper
sel
X1
X2
proper
X2
proper
first
X1
X2
proper
X2
proper
cons
X1
X2
proper
X1
proper
s
X
proper
X
proper
first
X1
X2
proper
X1
proper
cons
X1
X2
proper
X2
proper
sel
X1
X2
proper
X1
true
cons
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
3
0
0
1
sel
2
0
from
1
1
1
sel
2
1
2
7066
s
1
0
first
2
0
nil
0
1
mark
1
1
first
2
1
2
1
proper
1
1
0
from
1
0
active
1
1
cons
2
1
2
1
active
1
0
sel
mark
X1
X2
mark
sel
X1
X2
active
sel
0
cons
X
Z
mark
X
s
mark
X
mark
s
X
active
from
X
mark
cons
X
from
s
X
active
first
s
X
cons
Y
Z
mark
cons
Y
first
X
Z
first
mark
X1
X2
mark
first
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
active
sel
s
X
cons
Y
Z
mark
sel
X
Z
first
ok
X1
ok
X2
ok
first
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
proper
first
X1
X2
first
proper
X1
proper
X2
false
proper
from
X
from
proper
X
false
proper
s
X
s
proper
X
false
proper
sel
X1
X2
sel
proper
X1
proper
X2
false
proper
cons
X1
X2
cons
proper
X1
proper
X2
false
active
sel
X1
X2
active
X1
active
from
X
active
X
active
sel
X1
X2
active
X2
active
first
X1
X2
active
X1
active
first
X1
X2
active
X2
active
s
X
active
X
active
cons
X1
X2
active
X1
true
cons
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
3
0
0
1
sel
2
0
from
1
1
1
sel
2
1
2
1
s
1
0
first
2
0
nil
0
1
mark
1
1
first
2
1
2
12831
proper
1
0
from
1
0
active
1
1
cons
2
1
2
1
active
1
1
0
sel
mark
X1
X2
mark
sel
X1
X2
active
sel
0
cons
X
Z
mark
X
s
mark
X
mark
s
X
active
from
X
mark
cons
X
from
s
X
active
first
s
X
cons
Y
Z
mark
cons
Y
first
X
Z
first
mark
X1
X2
mark
first
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
active
sel
s
X
cons
Y
Z
mark
sel
X
Z
first
ok
X1
ok
X2
ok
first
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
active
from
X
from
active
X
false
active
first
X1
X2
first
active
X1
X2
false
active
sel
X1
X2
sel
active
X1
X2
false
active
sel
X1
X2
sel
X1
active
X2
false
active
cons
X1
X2
cons
active
X1
X2
false
active
first
X1
X2
first
X1
active
X2
false
active
sel
s
X
cons
Y
Z
sel
X
Z
false
sel
mark
X1
X2
sel
X1
X2
sel
ok
X1
ok
X2
sel
X1
X2
sel
X1
mark
X2
sel
X1
X2
true
cons
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
1
2
0
0
1
sel
2
1
0
from
1
1
1
sel
2
1
2
1
s
1
0
first
2
0
nil
0
0
mark
1
1
1
first
2
1
2
0
proper
1
0
from
1
0
active
1
4
cons
2
1
2
1
active
1
0
sel
X1
mark
X2
sel
X1
X2
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
sel
X1
mark
X2
sel
X1
X2
true
cons
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
1
2
0
0
1
sel
2
2
0
from
1
1
1
sel
2
1
2
1
s
1
0
first
2
0
nil
0
0
mark
1
1
1
first
2
1
2
0
proper
1
0
from
1
0
active
1
4
cons
2
1
2
1
active
1
0
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
active
first
s
X
cons
Y
Z
cons
Y
first
X
Z
false
active
first
s
X
cons
Y
Z
first
X
Z
false
first
X1
mark
X2
first
X1
X2
first
ok
X1
ok
X2
first
X1
X2
first
mark
X1
X2
first
X1
X2
true
cons
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
1
2
0
0
1
sel
2
0
from
1
1
1
sel
2
1
2
1
s
1
0
first
2
1
0
nil
0
0
mark
1
1
1
first
2
1
2
0
proper
1
0
from
1
0
active
1
4
cons
2
1
2
1
active
1
0
first
X1
mark
X2
first
X1
X2
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
first
X1
mark
X2
first
X1
X2
true
cons
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
1
2
0
0
1
sel
2
0
from
1
1
1
sel
2
1
2
3
s
1
0
first
2
2
0
nil
0
0
mark
1
1
1
first
2
1
2
0
proper
1
0
from
1
0
active
1
4
cons
2
1
2
1
active
1
0
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
active
from
X
cons
X
from
s
X
false
cons
mark
X1
X2
cons
X1
X2
cons
ok
X1
ok
X2
cons
X1
X2
true
cons
2
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
1
2
0
0
1
sel
2
0
from
1
1
1
sel
2
1
2
1
s
1
0
first
2
0
nil
0
0
mark
1
1
1
first
2
1
2
0
proper
1
0
from
1
0
active
1
4
cons
2
1
2
1
active
1
0
cons
mark
X1
X2
cons
X1
X2
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
cons
mark
X1
X2
cons
X1
X2
true
cons
2
1
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
1
2
0
0
1
sel
2
0
from
1
1
1
sel
2
1
2
1
s
1
0
first
2
0
nil
0
0
mark
1
1
1
first
2
1
2
0
proper
1
0
from
1
0
active
1
4
cons
2
1
2
1
active
1
0
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
active
from
X
from
s
X
false
from
mark
X
from
X
from
ok
X
from
X
true
cons
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
1
2
0
0
1
sel
2
0
from
1
1
1
sel
2
1
2
1
s
1
0
first
2
0
nil
0
0
mark
1
1
1
first
2
1
2
0
proper
1
0
from
1
1
0
active
1
4
cons
2
1
2
1
active
1
0
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
active
from
X
s
X
false
active
s
X
s
active
X
false
s
ok
X
s
X
s
mark
X
s
X
true
cons
2
0
s
1
1
1
top
1
0
top
1
0
proper
1
1
1
ok
1
1
2
0
0
1
sel
2
0
from
1
1
1
sel
2
1
2
1
s
1
1
0
first
2
0
nil
0
0
mark
1
1
1
first
2
1
2
0
proper
1
0
from
1
0
active
1
4
cons
2
1
2
1
active
1
0
sel
mark
X1
X2
mark
sel
X1
X2
sel
X1
mark
X2
mark
sel
X1
X2
sel
ok
X1
ok
X2
ok
sel
X1
X2
active
first
0
Z
mark
nil
NaTT
certifiable-1.6