244 captures
23 Sep 2013 - 16 Jan 2026
Nov
DEC
Jan
05
2019
2020
2021
success
fail
About this capture
COLLECTED BY
Collection:
Save Page Now
TIMESTAMPS
T
h
e
W
a
y
b
a
c
k
M
a
c
h
i
n
e
-
h
t
t
p
:
/
/
w
e
b
.
a
r
c
h
i
v
e
.
o
r
g
/
w
e
b
/
2
0
2
0
1
2
0
5
1
4
0
9
4
4
/
h
t
t
p
s
:
/
/
g
i
t
h
u
b
.
c
o
m
/
s
p
r
i
n
g
-
p
r
o
j
e
c
t
s
/
s
p
r
i
n
g
-
f
r
a
m
e
w
o
r
k
S
k
i
p
t
o
c
o
n
t
e
n
t
/
;
r
e
f
_
c
t
a
:
S
i
g
n
u
p
;
r
e
f
_
l
o
c
:
h
e
a
d
e
r
l
o
g
g
e
d
o
u
t
"
>
S
i
g
n
up
●
W
h
y
G
i
t
H
u
b
?
F
e
a
t
u
r
e
s
→
●
C
o
d
e
r
e
v
i
e
w
●
P
r
o
j
e
c
t
m
a
n
a
g
e
m
e
n
t
●
I
n
t
e
g
r
a
t
i
o
n
s
●
A
c
t
i
o
n
s
●
P
a
c
k
a
g
e
s
●
S
e
c
u
r
i
t
y
●
T
e
a
m
m
a
n
a
g
e
m
e
n
t
●
H
o
s
t
i
n
g
●
M
o
b
i
l
e
●
C
u
s
t
o
m
e
r
s
t
o
r
i
e
s
→
●
S
e
c
u
r
i
t
y
→
●
T
e
a
m
●
E
n
t
e
r
p
r
i
s
e
●
E
x
p
l
o
r
e
●
E
x
p
l
o
r
e
G
i
t
H
u
b
→
L
e
a
r
n
&
c
o
n
t
r
i
b
u
t
e
●
T
o
p
i
c
s
●
C
o
l
l
e
c
t
i
o
n
s
●
T
r
e
n
d
i
n
g
●
L
e
a
r
n
i
n
g
L
a
b
●
O
p
e
n
s
o
u
r
c
e
g
u
i
d
e
s
C
o
n
n
e
c
t
w
i
t
h
o
t
h
e
r
s
●
E
v
e
n
t
s
●
C
o
m
m
u
n
i
t
y
f
o
r
u
m
●
G
i
t
H
u
b
E
d
u
c
a
t
i
o
n
●
G
i
t
H
u
b
S
t
a
r
s
p
r
o
g
r
a
m
●
M
a
r
k
e
t
p
l
a
c
e
●
P
r
i
c
i
n
g
P
l
a
n
s
→
●
C
o
m
p
a
r
e
p
l
a
n
s
●
C
o
n
t
a
c
t
S
a
l
e
s
●
N
o
n
p
r
o
f
i
t
→
●
E
d
u
c
a
t
i
o
n
→
In this repository
All GitHub
↵
Jump to
↵
No suggested jump to results
In this repository
All GitHub
↵
Jump to
↵
In this repository
All GitHub
↵
Jump to
↵
S
i
g
n
in
/
;
r
e
f
_
c
t
a
:
S
i
g
n
u
p
;
r
e
f
_
l
o
c
:
h
e
a
d
e
r
l
o
g
g
e
d
o
u
t
"
>
S
i
g
n
up
{
{
m
e
s
s
a
g
e
}
}
s
p
r
i
n
g
-
p
r
o
j
e
c
t
s
/
s
p
r
i
n
g
-
f
r
a
m
e
w
o
r
k
●
W
a
t
c
h
3
.
5
k
●
S
t
a
r
4
0
.
5
k
●
F
o
r
k
2
7
.
9
k
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
s
p
r
i
n
g
.
i
o
/
p
r
o
j
e
c
t
s
/
s
p
r
i
n
g
-
f
r
a
m
e
w
o
r
k
A
p
a
c
h
e
-
2
.
0
L
i
c
e
n
s
e
4
0
.
5
k
s
t
a
r
s
2
7
.
9
k
f
o
r
k
s
S
t
a
r
W
a
t
c
h
●
C
o
d
e
●
I
s
s
u
e
s
9
2
6
●
P
u
l
l
r
e
q
u
e
s
t
s
2
5
1
●
A
c
t
i
o
n
s
●
P
r
o
j
e
c
t
s
0
●
W
i
k
i
●
S
e
c
u
r
i
t
y
●
I
n
s
i
g
h
t
s
M
o
r
e
●
C
o
d
e
●
I
s
s
u
e
s
●
P
u
l
l
r
e
q
u
e
s
t
s
●
A
c
t
i
o
n
s
●
P
r
o
j
e
c
t
s
●
W
i
k
i
●
S
e
c
u
r
i
t
y
●
I
n
s
i
g
h
t
s
D
i
s
m
i
s
s
J
o
i
n
G
i
t
H
u
b
t
o
d
a
y
G
i
t
H
u
b
i
s
h
o
m
e
t
o
o
v
e
r
5
0
m
i
l
l
i
o
n
d
e
v
e
l
o
p
e
r
s
w
o
r
k
i
n
g
t
o
g
e
t
h
e
r
t
o
h
o
s
t
a
n
d
r
e
v
i
e
w
c
o
d
e
,
m
a
n
a
g
e
p
r
o
j
e
c
t
s
,
a
n
d
b
u
i
l
d
s
o
f
t
w
a
r
e
t
o
g
e
t
h
e
r
.
S
i
g
n
u
p
G
i
t
H
u
b
i
s
w
h
e
r
e
t
h
e
w
o
r
l
d
b
u
i
l
d
s
s
o
f
t
w
a
r
e
M
i
l
l
i
o
n
s
o
f
d
e
v
e
l
o
p
e
r
s
a
n
d
c
o
m
p
a
n
i
e
s
b
u
i
l
d
,
s
h
i
p
,
a
n
d
m
a
i
n
t
a
i
n
t
h
e
i
r
s
o
f
t
w
a
r
e
o
n
G
i
t
H
u
b
—
t
h
e
l
a
r
g
e
s
t
a
n
d
m
o
s
t
a
d
v
a
n
c
e
d
d
e
v
e
l
o
p
m
e
n
t
p
l
a
t
f
o
r
m
i
n
t
h
e
w
o
r
l
d
.
S
i
g
n
u
p
f
o
r
f
r
e
e
D
i
s
m
i
s
s
m
a
s
t
e
r
15
b
r
a
n
c
h
e
s
1
9
7
t
a
g
s
G
o
t
o
f
i
l
e
C
o
d
e
C
l
o
n
e
HTTPS
GitHub CLI
U
s
e
G
i
t
o
r
c
h
e
c
k
o
u
t
w
i
t
h
S
V
N
u
s
i
n
g
t
h
e
w
e
b
U
R
L
.
W
o
r
k
f
a
s
t
w
i
t
h
o
u
r
o
f
f
i
c
i
a
l
C
L
I
.
L
e
a
r
n
m
o
r
e
.
●
O
p
e
n
w
i
t
h
G
i
t
H
u
b
D
e
s
k
t
o
p
●
D
o
w
n
l
o
a
d
Z
I
P
L
a
u
n
c
h
i
n
g
G
i
t
H
u
b
D
e
s
k
t
o
p
I
f
n
o
t
h
i
n
g
h
a
p
p
e
n
s
,
d
o
w
n
l
o
a
d
G
i
t
H
u
b
D
e
s
k
t
o
p
a
n
d
t
r
y
a
g
a
i
n
.
G
o
b
a
c
k
L
a
u
n
c
h
i
n
g
G
i
t
H
u
b
D
e
s
k
t
o
p
I
f
n
o
t
h
i
n
g
h
a
p
p
e
n
s
,
d
o
w
n
l
o
a
d
G
i
t
H
u
b
D
e
s
k
t
o
p
a
n
d
t
r
y
a
g
a
i
n
.
G
o
b
a
c
k
L
a
u
n
c
h
i
n
g
X
c
o
d
e
I
f
n
o
t
h
i
n
g
h
a
p
p
e
n
s
,
d
o
w
n
l
o
a
d
X
c
o
d
e
a
n
d
t
r
y
a
g
a
i
n
.
G
o
b
a
c
k
L
a
u
n
c
h
i
n
g
V
i
s
u
a
l
S
t
u
d
i
o
I
f
n
o
t
h
i
n
g
h
a
p
p
e
n
s
,
d
o
w
n
l
o
a
d
t
h
e
G
i
t
H
u
b
e
x
t
e
n
s
i
o
n
f
o
r
V
i
s
u
a
l
S
t
u
d
i
o
a
n
d
t
r
y
a
g
a
i
n
.
G
o
b
a
c
k
L
a
t
e
s
t
c
o
m
m
i
t
j
h
o
e
l
l
e
r
U
p
g
r
a
d
e
t
o
G
r
o
o
v
y
3
.
0
.
7
,
R
x
J
a
v
a
3
.
0
.
8
,
M
o
c
k
i
t
o
3
.
6
.
2
8
…
3
c
8
5
c
2
6
D
e
c
4
,
2
0
2
0
U
p
g
r
a
d
e
t
o
G
r
o
o
v
y
3
.
0
.
7
,
R
x
J
a
v
a
3
.
0
.
8
,
M
o
c
k
i
t
o
3
.
6
.
2
8
3
c
8
5
c
2
6
G
i
t
s
t
a
t
s
●
2
1
,
9
7
4
c
o
m
m
i
t
s
F
i
l
e
s
P
e
r
m
a
l
i
n
k
F
a
i
l
e
d
t
o
l
o
a
d
l
a
t
e
s
t
c
o
m
m
i
t
i
n
f
o
r
m
a
t
i
o
n
.
T
y
p
e
N
a
m
e
L
a
t
e
s
t
c
o
m
m
i
t
m
e
s
s
a
g
e
C
o
m
m
i
t
t
i
m
e
.
g
i
t
h
u
b
C
o
n
f
i
g
u
r
e
G
r
a
d
l
e
w
r
a
p
p
e
r
v
a
l
i
d
a
t
i
o
n
a
c
t
i
o
n
J
u
n
2
,
2
0
2
0
b
u
i
l
d
S
r
c
U
p
g
r
a
d
e
t
o
G
r
a
d
l
e
E
n
t
e
r
p
r
i
s
e
3
.
2
A
p
r
2
9
,
2
0
2
0
ci
D
o
n
'
t
s
w
a
l
l
o
w
l
o
g
s
d
u
r
i
n
g
p
r
o
m
o
t
i
o
n
j
o
b
i
n
C
I
N
o
v
1
6
,
2
0
2
0
f
r
a
m
e
w
o
r
k
-
b
o
m
R
e
m
o
v
e
B
O
M
w
o
r
k
a
r
o
u
n
d
A
p
r
2
8
,
2
0
2
0
g
r
a
d
l
e
F
i
x
c
o
m
m
e
n
t
N
o
v
2
3
,
2
0
2
0
i
n
t
e
g
r
a
t
i
o
n
-
t
e
s
t
s
D
r
o
p
e
x
p
l
i
c
i
t
z
e
r
o
i
n
g
a
t
i
n
s
t
a
n
t
i
a
t
i
o
n
o
f
A
t
o
m
i
c
*
o
b
j
e
c
t
s
O
c
t
6
,
2
0
2
0
s
p
r
i
n
g
-
a
o
p
R
e
m
o
v
e
T
O
D
O
f
r
o
m
A
b
s
t
r
a
c
t
A
s
p
e
c
t
J
A
d
v
i
c
e
N
o
v
2
0
,
2
0
2
0
s
p
r
i
n
g
-
a
s
p
e
c
t
s
P
o
l
i
s
h
i
n
g
N
o
v
1
6
,
2
0
2
0
s
p
r
i
n
g
-
b
e
a
n
s
P
o
l
i
s
h
i
n
g
N
o
v
2
7
,
2
0
2
0
s
p
r
i
n
g
-
c
o
n
t
e
x
t
-
i
n
d
e
x
e
r
P
o
l
i
s
h
c
o
n
t
r
i
b
u
t
i
o
n
J
u
l
2
2
,
2
0
2
0
s
p
r
i
n
g
-
c
o
n
t
e
x
t
-
s
u
p
p
o
r
t
R
e
q
u
a
l
i
f
y
t
e
s
t
s
a
s
L
O
N
G
_
R
U
N
N
I
N
G
S
e
p
2
5
,
2
0
2
0
s
p
r
i
n
g
-
c
o
n
t
e
x
t
R
e
m
o
v
e
s
p
r
i
n
g
.
e
v
e
n
t
.
i
n
v
o
k
e
-
l
i
s
t
e
n
e
r
s
t
a
r
t
u
p
e
v
e
n
t
D
e
c
3
,
2
0
2
0
s
p
r
i
n
g
-
c
o
r
e
P
o
l
i
s
h
i
n
g
c
o
n
t
r
i
b
u
t
i
o
n
D
e
c
3
,
2
0
2
0
s
p
r
i
n
g
-
e
x
p
r
e
s
s
i
o
n
P
o
l
i
s
h
S
p
e
l
P
a
r
s
e
r
T
e
s
t
s
D
e
c
4
,
2
0
2
0
s
p
r
i
n
g
-
i
n
s
t
r
u
m
e
n
t
D
e
l
e
t
e
o
b
s
o
l
e
t
e
l
o
g
4
j
c
o
n
f
i
g
M
a
r
1
8
,
2
0
2
0
s
p
r
i
n
g
-
j
c
l
P
o
l
i
s
h
i
n
g
J
a
n
2
8
,
2
0
2
0
s
p
r
i
n
g
-
j
d
b
c
I
n
d
i
v
i
d
u
a
l
l
y
a
p
p
l
y
t
h
e
S
Q
L
t
y
p
e
f
r
o
m
e
a
c
h
S
q
l
P
a
r
a
m
e
t
e
r
S
o
u
r
c
e
a
r
g
u
m
e
n
t
N
o
v
1
2
,
2
0
2
0
s
p
r
i
n
g
-
j
m
s
C
o
m
p
a
t
i
b
i
l
i
t
y
w
i
t
h
J
a
c
k
s
o
n
2
.
1
2
(
t
e
s
t
e
d
a
g
a
i
n
s
t
2
.
1
2
.
0
-
r
c
1
)
O
c
t
1
3
,
2
0
2
0
s
p
r
i
n
g
-
m
e
s
s
a
g
i
n
g
M
a
t
c
h
i
n
g
u
p
d
a
t
e
f
o
r
c
o
p
y
H
e
a
d
e
r
s
I
f
A
b
s
e
n
t
N
o
v
2
6
,
2
0
2
0
s
p
r
i
n
g
-
o
r
m
E
a
r
l
y
l
o
g
e
n
t
r
y
f
o
r
a
s
y
n
c
E
n
t
i
t
y
M
a
n
a
g
e
r
F
a
c
t
o
r
y
i
n
i
t
i
a
l
i
z
a
t
i
o
n
f
a
i
l
u
r
e
N
o
v
1
3
,
2
0
2
0
s
p
r
i
n
g
-
o
x
m
M
e
r
g
e
b
r
a
n
c
h
'
5
.
2
.
x
'
A
u
g
3
0
,
2
0
2
0
s
p
r
i
n
g
-
r
2
d
b
c
I
m
p
r
o
v
e
U
R
I
/
q
u
e
r
y
s
t
r
i
n
g
s
s
a
n
i
t
i
z
a
t
i
o
n
N
o
v
4
,
2
0
2
0
s
p
r
i
n
g
-
t
e
s
t
E
n
s
u
r
e
b
o
t
h
m
o
c
k
f
i
l
e
s
a
n
d
p
a
r
t
s
c
a
n
b
e
p
r
o
v
i
d
e
d
D
e
c
3
,
2
0
2
0
s
p
r
i
n
g
-
t
x
D
o
c
u
m
e
n
t
t
h
a
t
@
t
r
a
n
s
a
c
t
i
o
n
a
l
d
o
e
s
n
o
t
p
r
o
p
a
g
a
t
e
t
o
n
e
w
t
h
r
e
a
d
s
N
o
v
1
7
,
2
0
2
0
s
p
r
i
n
g
-
w
e
b
F
i
x
t
y
p
o
i
n
j
a
v
a
d
o
c
f
o
r
R
e
s
p
o
n
s
e
E
x
t
r
a
c
t
o
r
D
e
c
4
,
2
0
2
0
s
p
r
i
n
g
-
w
e
b
f
l
u
x
S
u
p
p
o
r
t
f
o
r
M
e
d
i
a
T
y
p
e
m
a
p
p
i
n
g
s
i
n
R
e
s
o
u
r
c
e
W
e
b
H
a
n
d
l
e
r
N
o
v
3
0
,
2
0
2
0
s
p
r
i
n
g
-
w
e
b
m
v
c
E
x
p
o
s
e
f
u
t
u
r
e
r
e
s
p
o
n
s
e
i
n
n
e
w
A
s
y
n
c
S
e
r
v
e
r
R
e
s
p
o
n
s
e
D
e
c
3
,
2
0
2
0
s
p
r
i
n
g
-
w
e
b
s
o
c
k
e
t
E
x
p
o
s
e
a
l
l
o
w
e
d
O
r
i
g
i
n
P
a
t
t
e
r
n
s
i
n
S
o
c
k
e
t
J
S
X
M
L
c
o
n
f
i
g
N
o
v
1
8
,
2
0
2
0
s
r
c
R
e
m
o
v
e
s
p
r
i
n
g
.
e
v
e
n
t
.
i
n
v
o
k
e
-
l
i
s
t
e
n
e
r
s
t
a
r
t
u
p
e
v
e
n
t
D
e
c
3
,
2
0
2
0
.
e
d
i
t
o
r
c
o
n
f
i
g
A
d
d
E
d
i
t
o
r
C
o
n
f
i
g
J
u
n
1
2
,
2
0
1
7
.
g
i
t
a
t
t
r
i
b
u
t
e
s
E
n
s
u
r
e
l
i
n
e
e
n
d
i
n
g
s
f
o
r
b
i
n
a
r
y
f
i
l
e
s
a
r
e
n
o
t
m
o
d
i
f
i
e
d
i
n
G
i
t
O
c
t
1
8
,
2
0
1
9
.
g
i
t
i
g
n
o
r
e
R
e
n
a
m
e
n
o
n
-
F
r
a
m
e
w
o
r
k
p
r
o
j
e
c
t
m
o
d
u
l
e
s
A
u
g
2
1
,
2
0
1
9
.
m
a
i
l
m
a
p
C
h
a
n
g
e
g
o
p
i
v
o
t
a
l
.
c
o
m
t
o
p
i
v
o
t
a
l
.
i
o
O
c
t
5
,
2
0
1
4
C
O
D
E
_
O
F
_
C
O
N
D
U
C
T
.
a
d
o
c
U
R
L
C
l
e
a
n
u
p
M
a
r
2
1
,
2
0
1
9
C
O
N
T
R
I
B
U
T
I
N
G
.
m
d
U
p
d
a
t
e
S
t
a
c
k
O
v
e
r
f
l
o
w
l
i
n
k
A
p
r
2
0
,
2
0
2
0
L
I
C
E
N
S
E
.
t
x
t
A
d
d
L
I
C
E
N
S
E
.
t
x
t
f
i
l
e
A
u
g
2
0
,
2
0
1
9
R
E
A
D
M
E
.
m
d
A
d
d
J
M
H
b
e
n
c
h
m
a
r
k
i
n
f
r
a
s
t
r
u
c
t
u
r
e
M
a
y
1
3
,
2
0
2
0
S
E
C
U
R
I
T
Y
.
m
d
C
r
e
a
t
e
S
E
C
U
R
I
T
Y
.
m
d
M
a
y
2
3
,
2
0
1
9
b
u
i
l
d
.
g
r
a
d
l
e
U
p
g
r
a
d
e
t
o
G
r
o
o
v
y
3
.
0
.
7
,
R
x
J
a
v
a
3
.
0
.
8
,
M
o
c
k
i
t
o
3
.
6
.
2
8
D
e
c
4
,
2
0
2
0
g
r
a
d
l
e
.
p
r
o
p
e
r
t
i
e
s
N
e
x
t
d
e
v
e
l
o
p
m
e
n
t
v
e
r
s
i
o
n
(
v
5
.
3
.
2
-
S
N
A
P
S
H
O
T
)
N
o
v
1
0
,
2
0
2
0
g
r
a
d
l
e
w
U
p
g
r
a
d
e
t
o
G
r
a
d
l
e
6
.
6
A
u
g
1
1
,
2
0
2
0
g
r
a
d
l
e
w
.
b
a
t
U
p
g
r
a
d
e
t
o
G
r
a
d
l
e
6
.
6
A
u
g
1
1
,
2
0
2
0
i
m
p
o
r
t
-
i
n
t
o
-
e
c
l
i
p
s
e
.
m
d
P
o
l
i
s
h
i
n
g
r
e
g
a
r
d
i
n
g
A
J
D
T
v
e
r
s
i
o
n
s
J
a
n
1
3
,
2
0
2
0
i
m
p
o
r
t
-
i
n
t
o
-
i
d
e
a
.
m
d
U
R
L
C
l
e
a
n
u
p
M
a
r
2
1
,
2
0
1
9
s
e
t
t
i
n
g
s
.
g
r
a
d
l
e
I
n
c
l
u
d
e
m
o
d
u
l
e
n
a
m
e
s
i
n
t
o
a
l
p
h
a
b
e
t
i
c
a
l
o
r
d
e
r
J
u
n
2
4
,
2
0
2
0
V
i
e
w
c
o
d
e
R
E
A
D
M
E
.
m
d
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
T
h
i
s
i
s
t
h
e
h
o
m
e
o
f
t
h
e
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
:
t
h
e
f
o
u
n
d
a
t
i
o
n
f
o
r
a
l
l
S
p
r
i
n
g
p
r
o
j
e
c
t
s
.
C
o
l
l
e
c
t
i
v
e
l
y
t
h
e
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
a
n
d
t
h
e
f
a
m
i
l
y
o
f
S
p
r
i
n
g
p
r
o
j
e
c
t
s
a
r
e
o
f
t
e
n
r
e
f
e
r
r
e
d
t
o
s
i
m
p
l
y
a
s
"
S
p
r
i
n
g
"
.
S
p
r
i
n
g
p
r
o
v
i
d
e
s
e
v
e
r
y
t
h
i
n
g
r
e
q
u
i
r
e
d
b
e
y
o
n
d
t
h
e
J
a
v
a
p
r
o
g
r
a
m
m
i
n
g
l
a
n
g
u
a
g
e
f
o
r
c
r
e
a
t
i
n
g
e
n
t
e
r
p
r
i
s
e
a
p
p
l
i
c
a
t
i
o
n
s
f
o
r
a
w
i
d
e
r
a
n
g
e
o
f
s
c
e
n
a
r
i
o
s
a
n
d
a
r
c
h
i
t
e
c
t
u
r
e
s
.
P
l
e
a
s
e
r
e
a
d
t
h
e
O
v
e
r
v
i
e
w
s
e
c
t
i
o
n
a
s
r
e
f
e
r
e
n
c
e
f
o
r
a
m
o
r
e
c
o
m
p
l
e
t
e
i
n
t
r
o
d
u
c
t
i
o
n
.
C
o
d
e
o
f
C
o
n
d
u
c
t
T
h
i
s
p
r
o
j
e
c
t
i
s
g
o
v
e
r
n
e
d
b
y
t
h
e
S
p
r
i
n
g
C
o
d
e
o
f
C
o
n
d
u
c
t
.
B
y
p
a
r
t
i
c
i
p
a
t
i
n
g
,
y
o
u
a
r
e
e
x
p
e
c
t
e
d
t
o
u
p
h
o
l
d
t
h
i
s
c
o
d
e
o
f
c
o
n
d
u
c
t
.
P
l
e
a
s
e
r
e
p
o
r
t
u
n
a
c
c
e
p
t
a
b
l
e
b
e
h
a
v
i
o
r
t
o
s
p
r
i
n
g
-
c
o
d
e
-
o
f
-
c
o
n
d
u
c
t
@
p
i
v
o
t
a
l
.
i
o
.
A
c
c
e
s
s
t
o
B
i
n
a
r
i
e
s
F
o
r
a
c
c
e
s
s
t
o
a
r
t
i
f
a
c
t
s
o
r
a
d
i
s
t
r
i
b
u
t
i
o
n
z
i
p
,
s
e
e
t
h
e
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
A
r
t
i
f
a
c
t
s
w
i
k
i
p
a
g
e
.
D
o
c
u
m
e
n
t
a
t
i
o
n
T
h
e
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
m
a
i
n
t
a
i
n
s
r
e
f
e
r
e
n
c
e
d
o
c
u
m
e
n
t
a
t
i
o
n
(
p
u
b
l
i
s
h
e
d
a
n
d
s
o
u
r
c
e
)
,
G
i
t
h
u
b
w
i
k
i
p
a
g
e
s
,
a
n
d
a
n
A
P
I
r
e
f
e
r
e
n
c
e
.
T
h
e
r
e
a
r
e
a
l
s
o
g
u
i
d
e
s
a
n
d
t
u
t
o
r
i
a
l
s
a
c
r
o
s
s
S
p
r
i
n
g
p
r
o
j
e
c
t
s
.
M
i
c
r
o
-
B
e
n
c
h
m
a
r
k
s
S
e
e
t
h
e
M
i
c
r
o
-
B
e
n
c
h
m
a
r
k
s
W
i
k
i
p
a
g
e
.
B
u
i
l
d
f
r
o
m
S
o
u
r
c
e
S
e
e
t
h
e
B
u
i
l
d
f
r
o
m
S
o
u
r
c
e
W
i
k
i
p
a
g
e
a
n
d
t
h
e
C
O
N
T
R
I
B
U
T
I
N
G
.
m
d
f
i
l
e
.
S
t
a
y
i
n
T
o
u
c
h
F
o
l
l
o
w
@
S
p
r
i
n
g
C
e
n
t
r
a
l
,
@
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
,
a
n
d
i
t
s
t
e
a
m
m
e
m
b
e
r
s
o
n
T
w
i
t
t
e
r
.
I
n
-
d
e
p
t
h
a
r
t
i
c
l
e
s
c
a
n
b
e
f
o
u
n
d
a
t
T
h
e
S
p
r
i
n
g
B
l
o
g
,
a
n
d
r
e
l
e
a
s
e
s
a
r
e
a
n
n
o
u
n
c
e
d
v
i
a
o
u
r
n
e
w
s
f
e
e
d
.
L
i
c
e
n
s
e
T
h
e
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
i
s
r
e
l
e
a
s
e
d
u
n
d
e
r
v
e
r
s
i
o
n
2
.
0
o
f
t
h
e
A
p
a
c
h
e
L
i
c
e
n
s
e
.
A
b
o
u
t
S
p
r
i
n
g
F
r
a
m
e
w
o
r
k
s
p
r
i
n
g
.
i
o
/
p
r
o
j
e
c
t
s
/
s
p
r
i
n
g
-
f
r
a
m
e
w
o
r
k
T
o
p
i
c
s
f
r
a
m
e
w
o
r
k
s
p
r
i
n
g
s
p
r
i
n
g
-
f
r
a
m
e
w
o
r
k
R
e
s
o
u
r
c
e
s
R
e
a
d
m
e
L
i
c
e
n
s
e
A
p
a
c
h
e
-
2
.
0
L
i
c
e
n
s
e
R
e
l
e
a
s
e
s
1
9
7
v
5
.
3
.
1
L
a
t
e
s
t
N
o
v
1
0
,
2
0
2
0
+
1
9
6
r
e
l
e
a
s
e
s
P
a
c
k
a
g
e
s
0
N
o
p
a
c
k
a
g
e
s
p
u
b
l
i
s
h
e
d
U
s
e
d
b
y
1
5
6
k
+
1
5
6
,
3
6
3
C
o
n
t
r
i
b
u
t
o
r
s
5
1
7
+
5
0
6
c
o
n
t
r
i
b
u
t
o
r
s
L
a
n
g
u
a
g
e
s
●
J
a
v
a
9
8
.
5
%
●
K
o
t
l
i
n
1
.
2
%
●
G
r
o
o
v
y
0
.
1
%
●
A
s
p
e
c
t
J
0
.
1
%
●
F
r
e
e
M
a
r
k
e
r
0
.
1
%
●
C
S
S
0
.
0
%
●
©
2
0
2
0
G
i
t
H
u
b
,
I
n
c
.
●
T
e
r
m
s
●
P
r
i
v
a
c
y
●
C
o
o
k
i
e
P
r
e
f
e
r
e
n
c
e
s
●
S
e
c
u
r
i
t
y
●
S
t
a
t
u
s
●
H
e
l
p
●
C
o
n
t
a
c
t
G
i
t
H
u
b
●
P
r
i
c
i
n
g
●
A
P
I
●
T
r
a
i
n
i
n
g
●
B
l
o
g
●
A
b
o
u
t
Y
o
u
c
a
n
’
t
p
e
r
f
o
r
m
t
h
a
t
a
c
t
i
o
n
a
t
t
h
i
s
t
i
m
e
.
Y
o
u
s
i
g
n
e
d
i
n
w
i
t
h
a
n
o
t
h
e
r
t
a
b
o
r
w
i
n
d
o
w
.
R
e
l
o
a
d
t
o
r
e
f
r
e
s
h
y
o
u
r
s
e
s
s
i
o
n
.
Y
o
u
s
i
g
n
e
d
o
u
t
i
n
a
n
o
t
h
e
r
t
a
b
o
r
w
i
n
d
o
w
.
R
e
l
o
a
d
t
o
r
e
f
r
e
s
h
y
o
u
r
s
e
s
s
i
o
n
.
W
e
u
s
e
o
p
t
i
o
n
a
l
t
h
i
r
d
-
p
a
r
t
y
a
n
a
l
y
t
i
c
s
c
o
o
k
i
e
s
t
o
u
n
d
e
r
s
t
a
n
d
h
o
w
y
o
u
u
s
e
G
i
t
H
u
b
.
c
o
m
s
o
w
e
c
a
n
b
u
i
l
d
b
e
t
t
e
r
p
r
o
d
u
c
t
s
.
L
e
a
r
n
m
o
r
e
.
A
c
c
e
p
t
R
e
j
e
c
t
W
e
u
s
e
o
p
t
i
o
n
a
l
t
h
i
r
d
-
p
a
r
t
y
a
n
a
l
y
t
i
c
s
c
o
o
k
i
e
s
t
o
u
n
d
e
r
s
t
a
n
d
h
o
w
y
o
u
u
s
e
G
i
t
H
u
b
.
c
o
m
s
o
w
e
c
a
n
b
u
i
l
d
b
e
t
t
e
r
p
r
o
d
u
c
t
s
.
Y
o
u
c
a
n
a
l
w
a
y
s
u
p
d
a
t
e
y
o
u
r
s
e
l
e
c
t
i
o
n
b
y
c
l
i
c
k
i
n
g
C
o
o
k
i
e
P
r
e
f
e
r
e
n
c
e
s
a
t
t
h
e
b
o
t
t
o
m
o
f
t
h
e
p
a
g
e
.
F
o
r
m
o
r
e
i
n
f
o
r
m
a
t
i
o
n
,
s
e
e
o
u
r
P
r
i
v
a
c
y
S
t
a
t
e
m
e
n
t
.
E
s
s
e
n
t
i
a
l
c
o
o
k
i
e
s
W
e
u
s
e
e
s
s
e
n
t
i
a
l
c
o
o
k
i
e
s
t
o
p
e
r
f
o
r
m
e
s
s
e
n
t
i
a
l
w
e
b
s
i
t
e
f
u
n
c
t
i
o
n
s
,
e
.
g
.
t
h
e
y
'
r
e
u
s
e
d
t
o
l
o
g
y
o
u
i
n
.
L
e
a
r
n
m
o
r
e
A
l
w
a
y
s
a
c
t
i
v
e
A
n
a
l
y
t
i
c
s
c
o
o
k
i
e
s
W
e
u
s
e
a
n
a
l
y
t
i
c
s
c
o
o
k
i
e
s
t
o
u
n
d
e
r
s
t
a
n
d
h
o
w
y
o
u
u
s
e
o
u
r
w
e
b
s
i
t
e
s
s
o
w
e
c
a
n
m
a
k
e
t
h
e
m
b
e
t
t
e
r
,
e
.
g
.
t
h
e
y
'
r
e
u
s
e
d
t
o
g
a
t
h
e
r
i
n
f
o
r
m
a
t
i
o
n
a
b
o
u
t
t
h
e
p
a
g
e
s
y
o
u
v
i
s
i
t
a
n
d
h
o
w
m
a
n
y
c
l
i
c
k
s
y
o
u
n
e
e
d
t
o
a
c
c
o
m
p
l
i
s
h
a
t
a
s
k
.
L
e
a
r
n
m
o
r
e
A
c
c
e
p
t
R
e
j
e
c
t
S
a
v
e
p
r
e
f
e
r
e
n
c
e
s