Permutations 2 - Boise State University

advertisement
Permutations
2
Marion
Scheepers
Permutations 2
Marion Scheepers
Boise State University
Summer 2012
Permutations review
Permutations
2
Marion
Scheepers
Permutations review
Permutations
2
Marion
Scheepers
f =
1
f(1)
2
f(2)
···
···
n-1
f(n-1)
n
f(n)
Permutations review
Permutations
2
Marion
Scheepers
f =
1
f(1)
2
f(2)
···
···
n-1
f(n-1)
n
f(n)
Permutation: A one-to-one function from a finite set S to S.
Permutations review
Permutations
2
Marion
Scheepers
f =
1
f(1)
2
f(2)
···
···
n-1
f(n-1)
n
f(n)
Permutation: A one-to-one function from a finite set S to S.
Sn :
Permutations review
Permutations
2
Marion
Scheepers
f =
1
f(1)
2
f(2)
···
···
n-1
f(n-1)
n
f(n)
Permutation: A one-to-one function from a finite set S to S.
Sn : The set of permutations of {1, 2, · · · , n}.
Permutations review
Permutations
2
Marion
Scheepers
f =
1
f(1)
2
f(2)
···
···
n-1
f(n-1)
n
f(n)
Permutation: A one-to-one function from a finite set S to S.
Sn : The set of permutations of {1, 2, · · · , n}.
Fundamental Fact 1:
Permutations review
Permutations
2
Marion
Scheepers
f =
1
f(1)
2
f(2)
···
···
n-1
f(n-1)
n
f(n)
Permutation: A one-to-one function from a finite set S to S.
Sn : The set of permutations of {1, 2, · · · , n}.
Fundamental Fact 1:Under functional composition, Sn is a
group.
Permutations review
Permutations
2
Marion
Scheepers
f =
1
f(1)
2
f(2)
···
···
n-1
f(n-1)
n
f(n)
Permutation: A one-to-one function from a finite set S to S.
Sn : The set of permutations of {1, 2, · · · , n}.
Fundamental Fact 1:Under functional composition, Sn is a
group.
Fundamental Fact 2 (Cayley’s Theorem):
Permutations review
Permutations
2
Marion
Scheepers
f =
1
f(1)
2
f(2)
···
···
n-1
f(n-1)
n
f(n)
Permutation: A one-to-one function from a finite set S to S.
Sn : The set of permutations of {1, 2, · · · , n}.
Fundamental Fact 1:Under functional composition, Sn is a
group.
Fundamental Fact 2 (Cayley’s Theorem): Every finite group
is a subgroup of some Sn .
Reversals
Permutations
2
Marion
Scheepers
Reversals
Permutations
2
Marion
Scheepers
For fixed i < j in {1, 2, · · · , n}
Reversals
Permutations
2
Marion
Scheepers
For fixed i < j in {1, 2, · · · , n} the function f that maps
Reversals
Permutations
2
Marion
Scheepers
For fixed i < j in {1, 2, · · · , n} the function f that maps
1
2
···
i-1
i
i+1
···
j-1
j
j+1
···
n
Reversals
Permutations
2
Marion
Scheepers
For fixed i < j in {1, 2, · · · , n} the function f that maps
1
2
···
i-1
i
i+1
···
to
j-1
j
j+1
···
n
Reversals
Permutations
2
Marion
Scheepers
For fixed i < j in {1, 2, · · · , n} the function f that maps
1
2
···
i-1
i
i+1
···
j-1
j
j+1
···
n
i+1
i
j+1
···
n
to
1
2
···
i-1
j
j-1
···
Reversals
Permutations
2
Marion
Scheepers
For fixed i < j in {1, 2, · · · , n} the function f that maps
1
2
···
i-1
i
i+1
···
j-1
j
j+1
···
n
i+1
i
j+1
···
n
to
1
2
···
i-1
j
is said to be a reversal.
j-1
···
Reversals
Permutations
2
Marion
Scheepers
For fixed i < j in {1, 2, · · · , n} the function f that maps
1
2
···
i-1
i
i+1
···
j-1
j
j+1
···
n
i+1
i
j+1
···
n
to
1
2
···
i-1
j
j-1
···
is said to be a reversal.
With i = 1, it is said to be a prefix reversal.
Reversals 2
Permutations
2
Marion
Scheepers
Reversals 2
Permutations
2
Marion
Scheepers
The subset Rn of Sn consisting of the reversals generates Sn .
Reversals 2
Permutations
2
Marion
Scheepers
The subset Rn of Sn consisting of the reversals generates Sn .
The reversal distance problem Given positive integer n,
Reversals 2
Permutations
2
Marion
Scheepers
The subset Rn of Sn consisting of the reversals generates Sn .
The reversal distance problem Given positive integer n,
and given permutations f and g from Sn ,
Reversals 2
Permutations
2
Marion
Scheepers
The subset Rn of Sn consisting of the reversals generates Sn .
The reversal distance problem Given positive integer n,
and given permutations f and g from Sn ,
what is the length of the shortest sequence ρ1 , · · · , ρk of
reversals such that
Reversals 2
Permutations
2
Marion
Scheepers
The subset Rn of Sn consisting of the reversals generates Sn .
The reversal distance problem Given positive integer n,
and given permutations f and g from Sn ,
what is the length of the shortest sequence ρ1 , · · · , ρk of
reversals such that
f = ρk ◦ · · · ◦ ρ1 ◦ g ?
Reversals 2
Permutations
2
Marion
Scheepers
The subset Rn of Sn consisting of the reversals generates Sn .
The reversal distance problem Given positive integer n,
and given permutations f and g from Sn ,
what is the length of the shortest sequence ρ1 , · · · , ρk of
reversals such that
f = ρk ◦ · · · ◦ ρ1 ◦ g ?
Theorem: (Even and Goldreich, 1981) The reversal distance
problem is NP-complete.
Reversals 3: Gollan’s Conjecture
Permutations
2
Marion
Scheepers
Reversals 3: Gollan’s Conjecture
Permutations
2
Marion
Scheepers
Conjecture: (Gollan) The maximum reversal distance for Sn is
n − 1.
Reversals 3: Gollan’s Conjecture
Permutations
2
Marion
Scheepers
Conjecture: (Gollan) The maximum reversal distance for Sn is
n − 1.
Theorem: (Bafna and Pevzner, 1996) Gollan’s conjecture is
true.
Constrained Reversals
Permutations
2
Marion
Scheepers
Constrained Reversals
Permutations
2
Marion
Scheepers
Fundamental Fact: The set Pn of prefix reversals of Sn
generates Sn .
Constrained Reversals
Permutations
2
Marion
Scheepers
Fundamental Fact: The set Pn of prefix reversals of Sn
generates Sn .
Theorem (Gates and Papadimitriou, 1978) For each positive
integer n, it requires at most 5n+5
prefix reversals to generate
3
an element of Sn
Constrained Reversals
Permutations
2
Marion
Scheepers
Fundamental Fact: The set Pn of prefix reversals of Sn
generates Sn .
Theorem (Gates and Papadimitriou, 1978) For each positive
integer n, it requires at most 5n+5
prefix reversals to generate
3
an element of Sn
Theorem (Even and Goldreich, 1981) The prefix reversal
distance problem is NP-complete.
Constrained Reversals
Permutations
2
Marion
Scheepers
Fundamental Fact: The set Pn of prefix reversals of Sn
generates Sn .
Theorem (Gates and Papadimitriou, 1978) For each positive
integer n, it requires at most 5n+5
prefix reversals to generate
3
an element of Sn
Theorem (Even and Goldreich, 1981) The prefix reversal
distance problem is NP-complete.
Theorem (Gates and Papadimitriou, 1978) For each positive
integer multiple n of 16, there is a member of Sn that is not
generated by fewer than 17n
16 prefix reversals.
Block Swaps
Permutations
2
Marion
Scheepers
Block Swaps
Permutations
2
Marion
Scheepers
For fixed i ≤ j < k ≤ m in {1, 2, · · · , n}
Block Swaps
Permutations
2
Marion
Scheepers
For fixed i ≤ j < k ≤ m in {1, 2, · · · , n} the function f that
swaps
Block Swaps
Permutations
2
Marion
Scheepers
For fixed i ≤ j < k ≤ m in {1, 2, · · · , n} the function f that
swaps the blocks
i i + 1 ···j
and
k k + 1 ···m
Block Swaps
Permutations
2
Marion
Scheepers
For fixed i ≤ j < k ≤ m in {1, 2, · · · , n} the function f that
swaps the blocks
i i + 1 ···j
and
k k + 1 ···m
and leaves the rest of its domain unchanged, is a block
interchange.
Block Swaps
Permutations
2
Marion
Scheepers
For fixed i ≤ j < k ≤ m in {1, 2, · · · , n} the function f that
swaps the blocks
i i + 1 ···j
and
k k + 1 ···m
and leaves the rest of its domain unchanged, is a block
interchange.
Fundamental Fact: The set Bn of block interchanges of Sn
generates Sn .
Block Swaps 2
Permutations
2
Marion
Scheepers
Block Swaps 2
Permutations
2
Marion
Scheepers
Theorem: (Christie, 1996) For a positive integer n:
Block Swaps 2
Permutations
2
Marion
Scheepers
Theorem: (Christie, 1996) For a positive integer n:
(a) There are elements of Sn which cannot be represented by
fewer than b n2 c block interchange operations.
Block Swaps 2
Permutations
2
Marion
Scheepers
Theorem: (Christie, 1996) For a positive integer n:
(a) There are elements of Sn which cannot be represented by
fewer than b n2 c block interchange operations.
(b) Every element of Sn is representable by at most b n2 c block
interchanges.
Block Swaps 2
Permutations
2
Marion
Scheepers
Theorem: (Christie, 1996) For a positive integer n:
(a) There are elements of Sn which cannot be represented by
fewer than b n2 c block interchange operations.
(b) Every element of Sn is representable by at most b n2 c block
interchanges.
(c) A sequence of block interchanges of minimal length
representing an element of Sn can be found in time polynomial
in n.
Block Swaps 2
Permutations
2
Marion
Scheepers
Theorem: (Christie, 1996) For a positive integer n:
(a) There are elements of Sn which cannot be represented by
fewer than b n2 c block interchange operations.
(b) Every element of Sn is representable by at most b n2 c block
interchanges.
(c) A sequence of block interchanges of minimal length
representing an element of Sn can be found in time polynomial
in n.
Thus, the Block swap distance problem is solvable in
polynomial time.
An illustration. (n=11)
Permutations
2
Marion
Scheepers
An illustration. (n=11)
Permutations
2
Marion
Scheepers
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using reversals:
An illustration. (n=11)
Permutations
2
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using reversals:
Marion
Scheepers
Step 0: 3 5 8 6 4 7 9 2 1 10 11
An illustration. (n=11)
Permutations
2
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using reversals:
Marion
Scheepers
Step 0: 3 5 8 6 4 7 9 2 1 10 11
Step 1: 3 5 4 6 8 7 9 2 1 10 11
An illustration. (n=11)
Permutations
2
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using reversals:
Marion
Scheepers
Step 0: 3 5 8 6 4 7 9 2 1 10 11
Step 1: 3 5 4 6 8 7 9 2 1 10 11
Step 2: 3 4 5 6 8 7 9 2 1 10 11
An illustration. (n=11)
Permutations
2
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using reversals:
Marion
Scheepers
Step 0: 3 5 8 6 4 7 9 2 1 10 11
Step 1: 3 5 4 6 8 7 9 2 1 10 11
Step 2: 3 4 5 6 8 7 9 2 1 10 11
Step 3: 3 4 5 6 7 8 9 2 1 10 11
An illustration. (n=11)
Permutations
2
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using reversals:
Marion
Scheepers
Step 0: 3 5 8 6 4 7 9 2 1 10 11
Step 1: 3 5 4 6 8 7 9 2 1 10 11
Step 2: 3 4 5 6 8 7 9 2 1 10 11
Step 3: 3 4 5 6 7 8 9 2 1 10 11
Step 4: 9 8 7 6 5 4 3 2 1 10 11
An illustration. (n=11)
Permutations
2
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using reversals:
Marion
Scheepers
Step 0: 3 5 8 6 4 7 9 2 1 10 11
Step 1: 3 5 4 6 8 7 9 2 1 10 11
Step 2: 3 4 5 6 8 7 9 2 1 10 11
Step 3: 3 4 5 6 7 8 9 2 1 10 11
Step 4: 9 8 7 6 5 4 3 2 1 10 11
Step 5: 1 2 3 4 5 6 7 8 9 10 11
An illustration. (n=11)
Permutations
2
Marion
Scheepers
An illustration. (n=11)
Permutations
2
Marion
Scheepers
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using block swaps:
An illustration. (n=11)
Permutations
2
Marion
Scheepers
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using block swaps:
Step 0: 3 5 8 6 4 7 9 2 1 10 11
An illustration. (n=11)
Permutations
2
Marion
Scheepers
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using block swaps:
Step 0: 3 5 8 6 4 7 9 2 1 10 11
Step 1: 3 5 6 4 7 8 9 2 1 10 11
An illustration. (n=11)
Permutations
2
Marion
Scheepers
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using block swaps:
Step 0: 3 5 8 6 4 7 9 2 1 10 11
Step 1: 3 5 6 4 7 8 9 2 1 10 11
Step 2: 1 2 3 5 6 4 7 8 9 10 11
An illustration. (n=11)
Permutations
2
Marion
Scheepers
Rearranging 3 5 8 6 4 7 9 2 1 10 11 using block swaps:
Step 0: 3 5 8 6 4 7 9 2 1 10 11
Step 1: 3 5 6 4 7 8 9 2 1 10 11
Step 2: 1 2 3 5 6 4 7 8 9 10 11
Step 3: 1 2 3 4 5 6 7 8 9 10 11
The break point graph
Permutations
2
Marion
Scheepers
The break point graph
Permutations
2
Marion
Scheepers
Given:
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
For 1 ≤ i < n, (ai , ai+1 ) is a break point if |ai − ai+1 | > 1.
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
For 1 ≤ i < n, (ai , ai+1 ) is a break point if |ai − ai+1 | > 1.
b(λ) : The number of break points of λ
Define a graph:
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
For 1 ≤ i < n, (ai , ai+1 ) is a break point if |ai − ai+1 | > 1.
b(λ) : The number of break points of λ
Define a graph:
V (λ) = {0, 1, · · · , n, n + 1}, the vertex set.
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
For 1 ≤ i < n, (ai , ai+1 ) is a break point if |ai − ai+1 | > 1.
b(λ) : The number of break points of λ
Define a graph:
V (λ) = {0, 1, · · · , n, n + 1}, the vertex set. a0 = 0,
an+1 = n + 1.
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
For 1 ≤ i < n, (ai , ai+1 ) is a break point if |ai − ai+1 | > 1.
b(λ) : The number of break points of λ
Define a graph:
V (λ) = {0, 1, · · · , n, n + 1}, the vertex set. a0 = 0,
an+1 = n + 1.
Eλb = {{ai , aj } :
(ai , aj ) or (aj , ai ) a breakpoint or adjacent in λ}
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
For 1 ≤ i < n, (ai , ai+1 ) is a break point if |ai − ai+1 | > 1.
b(λ) : The number of break points of λ
Define a graph:
V (λ) = {0, 1, · · · , n, n + 1}, the vertex set. a0 = 0,
an+1 = n + 1.
Eλb = {{ai , aj } :
(ai , aj ) or (aj , ai ) a breakpoint or adjacent in λ}
Eλg = {{ai , aj } : |i − j| > 1 but |aj − ai | = 1}
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
For 1 ≤ i < n, (ai , ai+1 ) is a break point if |ai − ai+1 | > 1.
b(λ) : The number of break points of λ
Define a graph:
V (λ) = {0, 1, · · · , n, n + 1}, the vertex set. a0 = 0,
an+1 = n + 1.
Eλb = {{ai , aj } :
(ai , aj ) or (aj , ai ) a breakpoint or adjacent in λ}
Eλg = {{ai , aj } : |i − j| > 1 but |aj − ai | = 1}
S
Eλ = Eλb Eλg , the edge set.
The break point graph
Permutations
2
Marion
Scheepers
Given: a repetition free listing λ = a1 a2 · · · an of {1, · · · , n}.
For 1 ≤ i < n, (ai , ai+1 ) is a break point if |ai − ai+1 | > 1.
b(λ) : The number of break points of λ
Define a graph:
V (λ) = {0, 1, · · · , n, n + 1}, the vertex set. a0 = 0,
an+1 = n + 1.
Eλb = {{ai , aj } :
(ai , aj ) or (aj , ai ) a breakpoint or adjacent in λ}
Eλg = {{ai , aj } : |i − j| > 1 but |aj − ai | = 1}
S
Eλ = Eλb Eλg , the edge set.
(V , Eλ ) is the break point graph of λ.
The break point graph 2
Permutations
2
Marion
Scheepers
The break point graph 2
Permutations
2
Marion
Scheepers
A cycle in the breakpoint graph: (x1 , x2 , · · · , xn ) where:
The break point graph 2
Permutations
2
Marion
Scheepers
A cycle in the breakpoint graph: (x1 , x2 , · · · , xn ) where:
Each {xi , xi+1 } and {x1 , xn } are edges in the break point
graph and
The break point graph 2
Permutations
2
Marion
Scheepers
A cycle in the breakpoint graph: (x1 , x2 , · · · , xn ) where:
Each {xi , xi+1 } and {x1 , xn } are edges in the break point
graph and
the path goes through alternating “b” and “g” edges.
The break point graph 2
Permutations
2
Marion
Scheepers
A cycle in the breakpoint graph: (x1 , x2 , · · · , xn ) where:
Each {xi , xi+1 } and {x1 , xn } are edges in the break point
graph and
the path goes through alternating “b” and “g” edges.
c(λ)
The break point graph 2
Permutations
2
Marion
Scheepers
A cycle in the breakpoint graph: (x1 , x2 , · · · , xn ) where:
Each {xi , xi+1 } and {x1 , xn } are edges in the break point
graph and
the path goes through alternating “b” and “g” edges.
c(λ)
The maximum number of edge-disjoint cycles that cover the
vertex set of the break point graph.
The break point graph 2
Permutations
2
Marion
Scheepers
A cycle in the breakpoint graph: (x1 , x2 , · · · , xn ) where:
Each {xi , xi+1 } and {x1 , xn } are edges in the break point
graph and
the path goes through alternating “b” and “g” edges.
c(λ)
The maximum number of edge-disjoint cycles that cover the
vertex set of the break point graph.
The break point graph 3
Permutations
2
Marion
Scheepers
The break point graph 3
Permutations
2
Marion
Scheepers
Theorem (Bafna and Pevzner, 1996) The reversal distance for
a permutation f ∈ Sn is at least n + 1 − c(f ).
The cycle graph
Permutations
2
Marion
Scheepers
The cycle graph for [f1 f2 · · · fn−1 fn ] is a directed graph defined
to have vertex set {0, 1, · · · , n, n + 1} where we set f0 = 0
and fn+1 = n + 1, and directed edge set
Efb = {(fi+1 , fi ) : 0 ≤ i ≤ n}
and
Efg = {(i, i + 1) : 0 ≤ i ≤ n}.
The cycle graph
Permutations
2
Marion
Scheepers
The cycle graph for [f1 f2 · · · fn−1 fn ] is a directed graph defined
to have vertex set {0, 1, · · · , n, n + 1} where we set f0 = 0
and fn+1 = n + 1, and directed edge set
Efb = {(fi+1 , fi ) : 0 ≤ i ≤ n}
and
Efg = {(i, i + 1) : 0 ≤ i ≤ n}.
For permutation f , cg (f ) denotes the number of alternating
cycles in the cycle graph of f .
Theorem (Christi, 1996) The block interchange distance for a
permutation f ∈ Sn is 21 (n + 1 − cg (f )).
Exercises
Permutations
2
Marion
Scheepers
Exercises
Permutations
2
Marion
Scheepers
1. Construct the break point graphs for the examples given in
these talks.
Exercises
Permutations
2
Marion
Scheepers
1. Construct the break point graphs for the examples given in
these talks.
2. Compute the quantities b(λ) and c(λ) for these examples.
Exercises
Permutations
2
Marion
Scheepers
1. Construct the break point graphs for the examples given in
these talks.
2. Compute the quantities b(λ) and c(λ) for these examples.
3. Construct the cycle graphs for the examples given in these
talks.
Exercises
Permutations
2
Marion
Scheepers
1. Construct the break point graphs for the examples given in
these talks.
2. Compute the quantities b(λ) and c(λ) for these examples.
3. Construct the cycle graphs for the examples given in these
talks.
4. Compute the quantity cg (λ) for these examples.
Exercises
Permutations
2
Marion
Scheepers
1. Construct the break point graphs for the examples given in
these talks.
2. Compute the quantities b(λ) and c(λ) for these examples.
3. Construct the cycle graphs for the examples given in these
talks.
4. Compute the quantity cg (λ) for these examples.
Upcoming talk
Permutations
2
Marion
Scheepers
Upcoming talk
Permutations
2
Marion
Scheepers
Upcoming talk
Permutations
2
Marion
Scheepers
1. Combining reversals and block swaps.
Upcoming talk
Permutations
2
Marion
Scheepers
1. Combining reversals and block swaps.
2. Another set of constrained reversals and constrained block
swaps.
Upcoming talk
Permutations
2
Marion
Scheepers
1. Combining reversals and block swaps.
2. Another set of constrained reversals and constrained block
swaps.
3. Open problems.
Literature
Permutations
2
Marion
Scheepers
Literature
Permutations
2
Marion
Scheepers
V. Bafna and P.A. Pevzner, Genome rearrangements and
sorting by reversals, SIAM Journal of Computation 25:2
(1996), 272 - 289.
Literature
Permutations
2
Marion
Scheepers
V. Bafna and P.A. Pevzner, Genome rearrangements and
sorting by reversals, SIAM Journal of Computation 25:2
(1996), 272 - 289.
D.A. Christie, Sorting permutations by block interchanges,
Information Processing Letters 60 (1996), 165 - 169.
Literature
Permutations
2
Marion
Scheepers
V. Bafna and P.A. Pevzner, Genome rearrangements and
sorting by reversals, SIAM Journal of Computation 25:2
(1996), 272 - 289.
D.A. Christie, Sorting permutations by block interchanges,
Information Processing Letters 60 (1996), 165 - 169.
W.H. Gates and C.H. Papadimitriou, Bounds for sorting by
prefix reversal, Discrete Mathematics 27 (1979), 47 - 57.
Literature
Permutations
2
Marion
Scheepers
V. Bafna and P.A. Pevzner, Genome rearrangements and
sorting by reversals, SIAM Journal of Computation 25:2
(1996), 272 - 289.
D.A. Christie, Sorting permutations by block interchanges,
Information Processing Letters 60 (1996), 165 - 169.
W.H. Gates and C.H. Papadimitriou, Bounds for sorting by
prefix reversal, Discrete Mathematics 27 (1979), 47 - 57.
S. Even and O. Goldreich, The minimum length generator
sequence problem is NP-hard, Journal of Algorithms 2
(1981), 311 - 313.
Download