Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
MUR Drupal
d3-library
Commits
00d7183a
Commit
00d7183a
authored
Apr 10, 2014
by
Mike Bostock
Browse files
Fix #1839 - sign of parsed timezone offset.
parent
92c9d9d8
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
11 additions
and
9 deletions
+11
-9
d3.js
d3.js
+1
-1
d3.min.js
d3.min.js
+1
-1
src/locale/time-format.js
src/locale/time-format.js
+1
-1
test/time/format-test.js
test/time/format-test.js
+3
-2
test/time/format-utc-test.js
test/time/format-utc-test.js
+3
-2
test/time/time.js
test/time/time.js
+2
-2
No files found.
d3.js
View file @
00d7183a
...
...
@@ -2675,7 +2675,7 @@
return
n
?
(
date
.
y
=
d3_time_expandYear
(
+
n
[
0
]),
i
+
n
[
0
].
length
)
:
-
1
;
}
function
d3_time_parseZone
(
date
,
string
,
i
)
{
return
/^
[
+-
]\d{4}
$/
.
test
(
string
=
string
.
substring
(
i
,
i
+
5
))
?
(
date
.
Z
=
+
string
,
return
/^
[
+-
]\d{4}
$/
.
test
(
string
=
string
.
substring
(
i
,
i
+
5
))
?
(
date
.
Z
=
-
string
,
i
+
5
)
:
-
1
;
}
function
d3_time_expandYear
(
d
)
{
...
...
d3.min.js
View file @
00d7183a
!
function
(){
function
n
(
n
,
t
){
return
t
>
n
?
-
1
:
n
>
t
?
1
:
n
>=
t
?
0
:
0
/
0
}
function
t
(
n
){
return
null
!=
n
&&!
isNaN
(
n
)}
function
e
(
n
){
return
{
left
:
function
(
t
,
e
,
r
,
u
){
for
(
arguments
.
length
<
3
&&
(
r
=
0
),
arguments
.
length
<
4
&&
(
u
=
t
.
length
);
u
>
r
;){
var
i
=
r
+
u
>>>
1
;
n
(
t
[
i
],
e
)
<
0
?
r
=
i
+
1
:
u
=
i
}
return
r
},
right
:
function
(
t
,
e
,
r
,
u
){
for
(
arguments
.
length
<
3
&&
(
r
=
0
),
arguments
.
length
<
4
&&
(
u
=
t
.
length
);
u
>
r
;){
var
i
=
r
+
u
>>>
1
;
n
(
t
[
i
],
e
)
>
0
?
u
=
i
:
r
=
i
+
1
}
return
r
}}}
function
r
(
n
){
return
n
.
length
}
function
u
(
n
){
for
(
var
t
=
1
;
n
*
t
%
1
;)
t
*=
10
;
return
t
}
function
i
(
n
,
t
){
try
{
for
(
var
e
in
t
)
Object
.
defineProperty
(
n
.
prototype
,
e
,{
value
:
t
[
e
],
enumerable
:
!
1
})}
catch
(
r
){
n
.
prototype
=
t
}}
function
o
(){}
function
a
(
n
){
return
ha
+
n
in
this
}
function
c
(
n
){
return
n
=
ha
+
n
,
n
in
this
&&
delete
this
[
n
]}
function
s
(){
var
n
=
[];
return
this
.
forEach
(
function
(
t
){
n
.
push
(
t
)}),
n
}
function
l
(){
var
n
=
0
;
for
(
var
t
in
this
)
t
.
charCodeAt
(
0
)
===
ga
&&++
n
;
return
n
}
function
f
(){
for
(
var
n
in
this
)
if
(
n
.
charCodeAt
(
0
)
===
ga
)
return
!
1
;
return
!
0
}
function
h
(){}
function
g
(
n
,
t
,
e
){
return
function
(){
var
r
=
e
.
apply
(
t
,
arguments
);
return
r
===
t
?
n
:
r
}}
function
p
(
n
,
t
){
if
(
t
in
n
)
return
t
;
t
=
t
.
charAt
(
0
).
toUpperCase
()
+
t
.
substring
(
1
);
for
(
var
e
=
0
,
r
=
pa
.
length
;
r
>
e
;
++
e
){
var
u
=
pa
[
e
]
+
t
;
if
(
u
in
n
)
return
u
}}
function
v
(){}
function
d
(){}
function
m
(
n
){
function
t
(){
for
(
var
t
,
r
=
e
,
u
=-
1
,
i
=
r
.
length
;
++
u
<
i
;)(
t
=
r
[
u
].
on
)
&&
t
.
apply
(
this
,
arguments
);
return
n
}
var
e
=
[],
r
=
new
o
;
return
t
.
on
=
function
(
t
,
u
){
var
i
,
o
=
r
.
get
(
t
);
return
arguments
.
length
<
2
?
o
&&
o
.
on
:(
o
&&
(
o
.
on
=
null
,
e
=
e
.
slice
(
0
,
i
=
e
.
indexOf
(
o
)).
concat
(
e
.
slice
(
i
+
1
)),
r
.
remove
(
t
)),
u
&&
e
.
push
(
r
.
set
(
t
,{
on
:
u
})),
n
)},
t
}
function
y
(){
Go
.
event
.
preventDefault
()}
function
x
(){
for
(
var
n
,
t
=
Go
.
event
;
n
=
t
.
sourceEvent
;)
t
=
n
;
return
t
}
function
M
(
n
){
for
(
var
t
=
new
d
,
e
=
0
,
r
=
arguments
.
length
;
++
e
<
r
;)
t
[
arguments
[
e
]]
=
m
(
t
);
return
t
.
of
=
function
(
e
,
r
){
return
function
(
u
){
try
{
var
i
=
u
.
sourceEvent
=
Go
.
event
;
u
.
target
=
n
,
Go
.
event
=
u
,
t
[
u
.
type
].
apply
(
e
,
r
)}
finally
{
Go
.
event
=
i
}}},
t
}
function
_
(
n
){
return
da
(
n
,
_a
),
n
}
function
b
(
n
){
return
"
function
"
==
typeof
n
?
n
:
function
(){
return
ma
(
n
,
this
)}}
function
w
(
n
){
return
"
function
"
==
typeof
n
?
n
:
function
(){
return
ya
(
n
,
this
)}}
function
S
(
n
,
t
){
function
e
(){
this
.
removeAttribute
(
n
)}
function
r
(){
this
.
removeAttributeNS
(
n
.
space
,
n
.
local
)}
function
u
(){
this
.
setAttribute
(
n
,
t
)}
function
i
(){
this
.
setAttributeNS
(
n
.
space
,
n
.
local
,
t
)}
function
o
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
this
.
removeAttribute
(
n
):
this
.
setAttribute
(
n
,
e
)}
function
a
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
this
.
removeAttributeNS
(
n
.
space
,
n
.
local
):
this
.
setAttributeNS
(
n
.
space
,
n
.
local
,
e
)}
return
n
=
Go
.
ns
.
qualify
(
n
),
null
==
t
?
n
.
local
?
r
:
e
:
"
function
"
==
typeof
t
?
n
.
local
?
a
:
o
:
n
.
local
?
i
:
u
}
function
k
(
n
){
return
n
.
trim
().
replace
(
/
\s
+/g
,
"
"
)}
function
E
(
n
){
return
new
RegExp
(
"
(?:^|
\\
s+)
"
+
Go
.
requote
(
n
)
+
"
(?:
\\
s+|$)
"
,
"
g
"
)}
function
N
(
n
){
return
n
.
trim
().
split
(
/^|
\s
+/
)}
function
A
(
n
,
t
){
function
e
(){
for
(
var
e
=-
1
;
++
e
<
u
;)
n
[
e
](
this
,
t
)}
function
r
(){
for
(
var
e
=-
1
,
r
=
t
.
apply
(
this
,
arguments
);
++
e
<
u
;)
n
[
e
](
this
,
r
)}
n
=
N
(
n
).
map
(
C
);
var
u
=
n
.
length
;
return
"
function
"
==
typeof
t
?
r
:
e
}
function
C
(
n
){
var
t
=
E
(
n
);
return
function
(
e
,
r
){
if
(
u
=
e
.
classList
)
return
r
?
u
.
add
(
n
):
u
.
remove
(
n
);
var
u
=
e
.
getAttribute
(
"
class
"
)
||
""
;
r
?(
t
.
lastIndex
=
0
,
t
.
test
(
u
)
||
e
.
setAttribute
(
"
class
"
,
k
(
u
+
"
"
+
n
))):
e
.
setAttribute
(
"
class
"
,
k
(
u
.
replace
(
t
,
"
"
)))}}
function
L
(
n
,
t
,
e
){
function
r
(){
this
.
style
.
removeProperty
(
n
)}
function
u
(){
this
.
style
.
setProperty
(
n
,
t
,
e
)}
function
i
(){
var
r
=
t
.
apply
(
this
,
arguments
);
null
==
r
?
this
.
style
.
removeProperty
(
n
):
this
.
style
.
setProperty
(
n
,
r
,
e
)}
return
null
==
t
?
r
:
"
function
"
==
typeof
t
?
i
:
u
}
function
T
(
n
,
t
){
function
e
(){
delete
this
[
n
]}
function
r
(){
this
[
n
]
=
t
}
function
u
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
delete
this
[
n
]:
this
[
n
]
=
e
}
return
null
==
t
?
e
:
"
function
"
==
typeof
t
?
u
:
r
}
function
q
(
n
){
return
"
function
"
==
typeof
n
?
n
:(
n
=
Go
.
ns
.
qualify
(
n
)).
local
?
function
(){
return
this
.
ownerDocument
.
createElementNS
(
n
.
space
,
n
.
local
)}:
function
(){
return
this
.
ownerDocument
.
createElementNS
(
this
.
namespaceURI
,
n
)}}
function
z
(
n
){
return
{
__data__
:
n
}}
function
R
(
n
){
return
function
(){
return
Ma
(
this
,
n
)}}
function
D
(
t
){
return
arguments
.
length
||
(
t
=
n
),
function
(
n
,
e
){
return
n
&&
e
?
t
(
n
.
__data__
,
e
.
__data__
):
!
n
-!
e
}}
function
P
(
n
,
t
){
for
(
var
e
=
0
,
r
=
n
.
length
;
r
>
e
;
e
++
)
for
(
var
u
,
i
=
n
[
e
],
o
=
0
,
a
=
i
.
length
;
a
>
o
;
o
++
)(
u
=
i
[
o
])
&&
t
(
u
,
o
,
e
);
return
n
}
function
U
(
n
){
return
da
(
n
,
wa
),
n
}
function
j
(
n
){
var
t
,
e
;
return
function
(
r
,
u
,
i
){
var
o
,
a
=
n
[
i
].
update
,
c
=
a
.
length
;
for
(
i
!=
e
&&
(
e
=
i
,
t
=
0
),
u
>=
t
&&
(
t
=
u
+
1
);
!
(
o
=
a
[
t
])
&&++
t
<
c
;);
return
o
}}
function
H
(){
var
n
=
this
.
__transition__
;
n
&&++
n
.
active
}
function
F
(
n
,
t
,
e
){
function
r
(){
var
t
=
this
[
o
];
t
&&
(
this
.
removeEventListener
(
n
,
t
,
t
.
$
),
delete
this
[
o
])}
function
u
(){
var
u
=
c
(
t
,
Qo
(
arguments
));
r
.
call
(
this
),
this
.
addEventListener
(
n
,
this
[
o
]
=
u
,
u
.
$
=
e
),
u
.
_
=
t
}
function
i
(){
var
t
,
e
=
new
RegExp
(
"
^__on([^.]+)
"
+
Go
.
requote
(
n
)
+
"
$
"
);
for
(
var
r
in
this
)
if
(
t
=
r
.
match
(
e
)){
var
u
=
this
[
r
];
this
.
removeEventListener
(
t
[
1
],
u
,
u
.
$
),
delete
this
[
r
]}}
var
o
=
"
__on
"
+
n
,
a
=
n
.
indexOf
(
"
.
"
),
c
=
O
;
a
>
0
&&
(
n
=
n
.
substring
(
0
,
a
));
var
s
=
ka
.
get
(
n
);
return
s
&&
(
n
=
s
,
c
=
I
),
a
?
t
?
u
:
r
:
t
?
v
:
i
}
function
O
(
n
,
t
){
return
function
(
e
){
var
r
=
Go
.
event
;
Go
.
event
=
e
,
t
[
0
]
=
this
.
__data__
;
try
{
n
.
apply
(
this
,
t
)}
finally
{
Go
.
event
=
r
}}}
function
I
(
n
,
t
){
var
e
=
O
(
n
,
t
);
return
function
(
n
){
var
t
=
this
,
r
=
n
.
relatedTarget
;
r
&&
(
r
===
t
||
8
&
r
.
compareDocumentPosition
(
t
))
||
e
.
call
(
t
,
n
)}}
function
Y
(){
var
n
=
"
.dragsuppress-
"
+
++
Na
,
t
=
"
click
"
+
n
,
e
=
Go
.
select
(
ea
).
on
(
"
touchmove
"
+
n
,
y
).
on
(
"
dragstart
"
+
n
,
y
).
on
(
"
selectstart
"
+
n
,
y
);
if
(
Ea
){
var
r
=
ta
.
style
,
u
=
r
[
Ea
];
r
[
Ea
]
=
"
none
"
}
return
function
(
i
){
function
o
(){
e
.
on
(
t
,
null
)}
e
.
on
(
n
,
null
),
Ea
&&
(
r
[
Ea
]
=
u
),
i
&&
(
e
.
on
(
t
,
function
(){
y
(),
o
()},
!
0
),
setTimeout
(
o
,
0
))}}
function
Z
(
n
,
t
){
t
.
changedTouches
&&
(
t
=
t
.
changedTouches
[
0
]);
var
e
=
n
.
ownerSVGElement
||
n
;
if
(
e
.
createSVGPoint
){
var
r
=
e
.
createSVGPoint
();
return
r
.
x
=
t
.
clientX
,
r
.
y
=
t
.
clientY
,
r
=
r
.
matrixTransform
(
n
.
getScreenCTM
().
inverse
()),[
r
.
x
,
r
.
y
]}
var
u
=
n
.
getBoundingClientRect
();
return
[
t
.
clientX
-
u
.
left
-
n
.
clientLeft
,
t
.
clientY
-
u
.
top
-
n
.
clientTop
]}
function
V
(){
return
Go
.
event
.
changedTouches
[
0
].
identifier
}
function
$
(){
return
Go
.
event
.
target
}
function
X
(){
return
ea
}
function
B
(
n
){
return
n
>
0
?
1
:
0
>
n
?
-
1
:
0
}
function
J
(
n
,
t
,
e
){
return
(
t
[
0
]
-
n
[
0
])
*
(
e
[
1
]
-
n
[
1
])
-
(
t
[
1
]
-
n
[
1
])
*
(
e
[
0
]
-
n
[
0
])}
function
W
(
n
){
return
n
>
1
?
0
:
-
1
>
n
?
Aa
:
Math
.
acos
(
n
)}
function
G
(
n
){
return
n
>
1
?
La
:
-
1
>
n
?
-
La
:
Math
.
asin
(
n
)}
function
K
(
n
){
return
((
n
=
Math
.
exp
(
n
))
-
1
/
n
)
/
2
}
function
Q
(
n
){
return
((
n
=
Math
.
exp
(
n
))
+
1
/
n
)
/
2
}
function
nt
(
n
){
return
((
n
=
Math
.
exp
(
2
*
n
))
-
1
)
/
(
n
+
1
)}
function
tt
(
n
){
return
(
n
=
Math
.
sin
(
n
/
2
))
*
n
}
function
et
(){}
function
rt
(
n
,
t
,
e
){
return
new
ut
(
n
,
t
,
e
)}
function
ut
(
n
,
t
,
e
){
this
.
h
=
n
,
this
.
s
=
t
,
this
.
l
=
e
}
function
it
(
n
,
t
,
e
){
function
r
(
n
){
return
n
>
360
?
n
-=
360
:
0
>
n
&&
(
n
+=
360
),
60
>
n
?
i
+
(
o
-
i
)
*
n
/
60
:
180
>
n
?
o
:
240
>
n
?
i
+
(
o
-
i
)
*
(
240
-
n
)
/
60
:
i
}
function
u
(
n
){
return
Math
.
round
(
255
*
r
(
n
))}
var
i
,
o
;
return
n
=
isNaN
(
n
)?
0
:(
n
%=
360
)
<
0
?
n
+
360
:
n
,
t
=
isNaN
(
t
)?
0
:
0
>
t
?
0
:
t
>
1
?
1
:
t
,
e
=
0
>
e
?
0
:
e
>
1
?
1
:
e
,
o
=
.
5
>=
e
?
e
*
(
1
+
t
):
e
+
t
-
e
*
t
,
i
=
2
*
e
-
o
,
yt
(
u
(
n
+
120
),
u
(
n
),
u
(
n
-
120
))}
function
ot
(
n
,
t
,
e
){
return
new
at
(
n
,
t
,
e
)}
function
at
(
n
,
t
,
e
){
this
.
h
=
n
,
this
.
c
=
t
,
this
.
l
=
e
}
function
ct
(
n
,
t
,
e
){
return
isNaN
(
n
)
&&
(
n
=
0
),
isNaN
(
t
)
&&
(
t
=
0
),
st
(
e
,
Math
.
cos
(
n
*=
za
)
*
t
,
Math
.
sin
(
n
)
*
t
)}
function
st
(
n
,
t
,
e
){
return
new
lt
(
n
,
t
,
e
)}
function
lt
(
n
,
t
,
e
){
this
.
l
=
n
,
this
.
a
=
t
,
this
.
b
=
e
}
function
ft
(
n
,
t
,
e
){
var
r
=
(
n
+
16
)
/
116
,
u
=
r
+
t
/
500
,
i
=
r
-
e
/
200
;
return
u
=
gt
(
u
)
*
Za
,
r
=
gt
(
r
)
*
Va
,
i
=
gt
(
i
)
*
$a
,
yt
(
vt
(
3.2404542
*
u
-
1.5371385
*
r
-
.
4985314
*
i
),
vt
(
-
.
969266
*
u
+
1.8760108
*
r
+
.
041556
*
i
),
vt
(.
0556434
*
u
-
.
2040259
*
r
+
1.0572252
*
i
))}
function
ht
(
n
,
t
,
e
){
return
n
>
0
?
ot
(
Math
.
atan2
(
e
,
t
)
*
Ra
,
Math
.
sqrt
(
t
*
t
+
e
*
e
),
n
):
ot
(
0
/
0
,
0
/
0
,
n
)}
function
gt
(
n
){
return
n
>
.
206893034
?
n
*
n
*
n
:(
n
-
4
/
29
)
/
7.787037
}
function
pt
(
n
){
return
n
>
.
008856
?
Math
.
pow
(
n
,
1
/
3
):
7.787037
*
n
+
4
/
29
}
function
vt
(
n
){
return
Math
.
round
(
255
*
(.
00304
>=
n
?
12.92
*
n
:
1.055
*
Math
.
pow
(
n
,
1
/
2.4
)
-
.
055
))}
function
dt
(
n
){
return
yt
(
n
>>
16
,
255
&
n
>>
8
,
255
&
n
)}
function
mt
(
n
){
return
dt
(
n
)
+
""
}
function
yt
(
n
,
t
,
e
){
return
new
xt
(
n
,
t
,
e
)}
function
xt
(
n
,
t
,
e
){
this
.
r
=
n
,
this
.
g
=
t
,
this
.
b
=
e
}
function
Mt
(
n
){
return
16
>
n
?
"
0
"
+
Math
.
max
(
0
,
n
).
toString
(
16
):
Math
.
min
(
255
,
n
).
toString
(
16
)}
function
_t
(
n
,
t
,
e
){
var
r
,
u
,
i
,
o
=
0
,
a
=
0
,
c
=
0
;
if
(
r
=
/
([
a-z
]
+
)\((
.*
)\)
/i
.
exec
(
n
))
switch
(
u
=
r
[
2
].
split
(
"
,
"
),
r
[
1
]){
case
"
hsl
"
:
return
e
(
parseFloat
(
u
[
0
]),
parseFloat
(
u
[
1
])
/
100
,
parseFloat
(
u
[
2
])
/
100
);
case
"
rgb
"
:
return
t
(
kt
(
u
[
0
]),
kt
(
u
[
1
]),
kt
(
u
[
2
]))}
return
(
i
=
Ja
.
get
(
n
))?
t
(
i
.
r
,
i
.
g
,
i
.
b
):(
null
==
n
||
"
#
"
!==
n
.
charAt
(
0
)
||
isNaN
(
i
=
parseInt
(
n
.
substring
(
1
),
16
))
||
(
4
===
n
.
length
?(
o
=
(
3840
&
i
)
>>
4
,
o
=
o
>>
4
|
o
,
a
=
240
&
i
,
a
=
a
>>
4
|
a
,
c
=
15
&
i
,
c
=
c
<<
4
|
c
):
7
===
n
.
length
&&
(
o
=
(
16711680
&
i
)
>>
16
,
a
=
(
65280
&
i
)
>>
8
,
c
=
255
&
i
)),
t
(
o
,
a
,
c
))}
function
bt
(
n
,
t
,
e
){
var
r
,
u
,
i
=
Math
.
min
(
n
/=
255
,
t
/=
255
,
e
/=
255
),
o
=
Math
.
max
(
n
,
t
,
e
),
a
=
o
-
i
,
c
=
(
o
+
i
)
/
2
;
return
a
?(
u
=
.
5
>
c
?
a
/
(
o
+
i
):
a
/
(
2
-
o
-
i
),
r
=
n
==
o
?(
t
-
e
)
/
a
+
(
e
>
t
?
6
:
0
):
t
==
o
?(
e
-
n
)
/
a
+
2
:(
n
-
t
)
/
a
+
4
,
r
*=
60
):(
r
=
0
/
0
,
u
=
c
>
0
&&
1
>
c
?
0
:
r
),
rt
(
r
,
u
,
c
)}
function
wt
(
n
,
t
,
e
){
n
=
St
(
n
),
t
=
St
(
t
),
e
=
St
(
e
);
var
r
=
pt
((.
4124564
*
n
+
.
3575761
*
t
+
.
1804375
*
e
)
/
Za
),
u
=
pt
((.
2126729
*
n
+
.
7151522
*
t
+
.
072175
*
e
)
/
Va
),
i
=
pt
((.
0193339
*
n
+
.
119192
*
t
+
.
9503041
*
e
)
/
$a
);
return
st
(
116
*
u
-
16
,
500
*
(
r
-
u
),
200
*
(
u
-
i
))}
function
St
(
n
){
return
(
n
/=
255
)
<=
.
04045
?
n
/
12.92
:
Math
.
pow
((
n
+
.
055
)
/
1.055
,
2.4
)}
function
kt
(
n
){
var
t
=
parseFloat
(
n
);
return
"
%
"
===
n
.
charAt
(
n
.
length
-
1
)?
Math
.
round
(
2.55
*
t
):
t
}
function
Et
(
n
){
return
"
function
"
==
typeof
n
?
n
:
function
(){
return
n
}}
function
Nt
(
n
){
return
n
}
function
At
(
n
){
return
function
(
t
,
e
,
r
){
return
2
===
arguments
.
length
&&
"
function
"
==
typeof
e
&&
(
r
=
e
,
e
=
null
),
Ct
(
t
,
e
,
n
,
r
)}}
function
Ct
(
n
,
t
,
e
,
r
){
function
u
(){
var
n
,
t
=
c
.
status
;
if
(
!
t
&&
c
.
responseText
||
t
>=
200
&&
300
>
t
||
304
===
t
){
try
{
n
=
e
.
call
(
i
,
c
)}
catch
(
r
){
return
o
.
error
.
call
(
i
,
r
),
void
0
}
o
.
load
.
call
(
i
,
n
)}
else
o
.
error
.
call
(
i
,
c
)}
var
i
=
{},
o
=
Go
.
dispatch
(
"
beforesend
"
,
"
progress
"
,
"
load
"
,
"
error
"
),
a
=
{},
c
=
new
XMLHttpRequest
,
s
=
null
;
return
!
ea
.
XDomainRequest
||
"
withCredentials
"
in
c
||!
/^
(
http
(
s
)?
:
)?\/\/
/
.
test
(
n
)
||
(
c
=
new
XDomainRequest
),
"
onload
"
in
c
?
c
.
onload
=
c
.
onerror
=
u
:
c
.
onreadystatechange
=
function
(){
c
.
readyState
>
3
&&
u
()},
c
.
onprogress
=
function
(
n
){
var
t
=
Go
.
event
;
Go
.
event
=
n
;
try
{
o
.
progress
.
call
(
i
,
c
)}
finally
{
Go
.
event
=
t
}},
i
.
header
=
function
(
n
,
t
){
return
n
=
(
n
+
""
).
toLowerCase
(),
arguments
.
length
<
2
?
a
[
n
]:(
null
==
t
?
delete
a
[
n
]:
a
[
n
]
=
t
+
""
,
i
)},
i
.
mimeType
=
function
(
n
){
return
arguments
.
length
?(
t
=
null
==
n
?
null
:
n
+
""
,
i
):
t
},
i
.
responseType
=
function
(
n
){
return
arguments
.
length
?(
s
=
n
,
i
):
s
},
i
.
response
=
function
(
n
){
return
e
=
n
,
i
},[
"
get
"
,
"
post
"
].
forEach
(
function
(
n
){
i
[
n
]
=
function
(){
return
i
.
send
.
apply
(
i
,[
n
].
concat
(
Qo
(
arguments
)))}}),
i
.
send
=
function
(
e
,
r
,
u
){
if
(
2
===
arguments
.
length
&&
"
function
"
==
typeof
r
&&
(
u
=
r
,
r
=
null
),
c
.
open
(
e
,
n
,
!
0
),
null
==
t
||
"
accept
"
in
a
||
(
a
.
accept
=
t
+
"
,*/*
"
),
c
.
setRequestHeader
)
for
(
var
l
in
a
)
c
.
setRequestHeader
(
l
,
a
[
l
]);
return
null
!=
t
&&
c
.
overrideMimeType
&&
c
.
overrideMimeType
(
t
),
null
!=
s
&&
(
c
.
responseType
=
s
),
null
!=
u
&&
i
.
on
(
"
error
"
,
u
).
on
(
"
load
"
,
function
(
n
){
u
(
null
,
n
)}),
o
.
beforesend
.
call
(
i
,
c
),
c
.
send
(
null
==
r
?
null
:
r
),
i
},
i
.
abort
=
function
(){
return
c
.
abort
(),
i
},
Go
.
rebind
(
i
,
o
,
"
on
"
),
null
==
r
?
i
:
i
.
get
(
Lt
(
r
))}
function
Lt
(
n
){
return
1
===
n
.
length
?
function
(
t
,
e
){
n
(
null
==
t
?
e
:
null
)}:
n
}
function
Tt
(){
var
n
=
qt
(),
t
=
zt
()
-
n
;
t
>
24
?(
isFinite
(
t
)
&&
(
clearTimeout
(
Qa
),
Qa
=
setTimeout
(
Tt
,
t
)),
Ka
=
0
):(
Ka
=
1
,
tc
(
Tt
))}
function
qt
(){
var
n
=
Date
.
now
();
for
(
nc
=
Wa
;
nc
;)
n
>=
nc
.
t
&&
(
nc
.
f
=
nc
.
c
(
n
-
nc
.
t
)),
nc
=
nc
.
n
;
return
n
}
function
zt
(){
for
(
var
n
,
t
=
Wa
,
e
=
1
/
0
;
t
;)
t
.
f
?
t
=
n
?
n
.
n
=
t
.
n
:
Wa
=
t
.
n
:(
t
.
t
<
e
&&
(
e
=
t
.
t
),
t
=
(
n
=
t
).
n
);
return
Ga
=
n
,
e
}
function
Rt
(
n
,
t
){
return
t
-
(
n
?
Math
.
ceil
(
Math
.
log
(
n
)
/
Math
.
LN10
):
1
)}
function
Dt
(
n
,
t
){
var
e
=
Math
.
pow
(
10
,
3
*
fa
(
8
-
t
));
return
{
scale
:
t
>
8
?
function
(
n
){
return
n
/
e
}:
function
(
n
){
return
n
*
e
},
symbol
:
n
}}
function
Pt
(
n
){
var
t
=
n
.
decimal
,
e
=
n
.
thousands
,
r
=
n
.
grouping
,
u
=
n
.
currency
,
i
=
r
?
function
(
n
){
for
(
var
t
=
n
.
length
,
u
=
[],
i
=
0
,
o
=
r
[
0
];
t
>
0
&&
o
>
0
;)
u
.
push
(
n
.
substring
(
t
-=
o
,
t
+
o
)),
o
=
r
[
i
=
(
i
+
1
)
%
r
.
length
];
return
u
.
reverse
().
join
(
e
)}:
Nt
;
return
function
(
n
){
var
e
=
rc
.
exec
(
n
),
r
=
e
[
1
]
||
"
"
,
o
=
e
[
2
]
||
"
>
"
,
a
=
e
[
3
]
||
""
,
c
=
e
[
4
]
||
""
,
s
=
e
[
5
],
l
=+
e
[
6
],
f
=
e
[
7
],
h
=
e
[
8
],
g
=
e
[
9
],
p
=
1
,
v
=
""
,
d
=
""
,
m
=!
1
;
switch
(
h
&&
(
h
=+
h
.
substring
(
1
)),(
s
||
"
0
"
===
r
&&
"
=
"
===
o
)
&&
(
s
=
r
=
"
0
"
,
o
=
"
=
"
,
f
&&
(
l
-=
Math
.
floor
((
l
-
1
)
/
4
))),
g
){
case
"
n
"
:
f
=!
0
,
g
=
"
g
"
;
break
;
case
"
%
"
:
p
=
100
,
d
=
"
%
"
,
g
=
"
f
"
;
break
;
case
"
p
"
:
p
=
100
,
d
=
"
%
"
,
g
=
"
r
"
;
break
;
case
"
b
"
:
case
"
o
"
:
case
"
x
"
:
case
"
X
"
:
"
#
"
===
c
&&
(
v
=
"
0
"
+
g
.
toLowerCase
());
case
"
c
"
:
case
"
d
"
:
m
=!
0
,
h
=
0
;
break
;
case
"
s
"
:
p
=-
1
,
g
=
"
r
"
}
"
$
"
===
c
&&
(
v
=
u
[
0
],
d
=
u
[
1
]),
"
r
"
!=
g
||
h
||
(
g
=
"
g
"
),
null
!=
h
&&
(
"
g
"
==
g
?
h
=
Math
.
max
(
1
,
Math
.
min
(
21
,
h
)):(
"
e
"
==
g
||
"
f
"
==
g
)
&&
(
h
=
Math
.
max
(
0
,
Math
.
min
(
20
,
h
)))),
g
=
uc
.
get
(
g
)
||
Ut
;
var
y
=
s
&&
f
;
return
function
(
n
){
var
e
=
d
;
if
(
m
&&
n
%
1
)
return
""
;
var
u
=
0
>
n
||
0
===
n
&&
0
>
1
/
n
?(
n
=-
n
,
"
-
"
):
a
;
if
(
0
>
p
){
var
c
=
Go
.
formatPrefix
(
n
,
h
);
n
=
c
.
scale
(
n
),
e
=
c
.
symbol
+
d
}
else
n
*=
p
;
n
=
g
(
n
,
h
);
var
x
=
n
.
lastIndexOf
(
"
.
"
),
M
=
0
>
x
?
n
:
n
.
substring
(
0
,
x
),
_
=
0
>
x
?
""
:
t
+
n
.
substring
(
x
+
1
);
!
s
&&
f
&&
(
M
=
i
(
M
));
var
b
=
v
.
length
+
M
.
length
+
_
.
length
+
(
y
?
0
:
u
.
length
),
w
=
l
>
b
?
new
Array
(
b
=
l
-
b
+
1
).
join
(
r
):
""
;
return
y
&&
(
M
=
i
(
w
+
M
)),
u
+=
v
,
n
=
M
+
_
,(
"
<
"
===
o
?
u
+
n
+
w
:
"
>
"
===
o
?
w
+
u
+
n
:
"
^
"
===
o
?
w
.
substring
(
0
,
b
>>=
1
)
+
u
+
n
+
w
.
substring
(
b
):
u
+
(
y
?
n
:
w
+
n
))
+
e
}}}
function
Ut
(
n
){
return
n
+
""
}
function
jt
(){
this
.
_
=
new
Date
(
arguments
.
length
>
1
?
Date
.
UTC
.
apply
(
this
,
arguments
):
arguments
[
0
])}
function
Ht
(
n
,
t
,
e
){
function
r
(
t
){
var
e
=
n
(
t
),
r
=
i
(
e
,
1
);
return
r
-
t
>
t
-
e
?
e
:
r
}
function
u
(
e
){
return
t
(
e
=
n
(
new
oc
(
e
-
1
)),
1
),
e
}
function
i
(
n
,
e
){
return
t
(
n
=
new
oc
(
+
n
),
e
),
n
}
function
o
(
n
,
r
,
i
){
var
o
=
u
(
n
),
a
=
[];
if
(
i
>
1
)
for
(;
r
>
o
;)
e
(
o
)
%
i
||
a
.
push
(
new
Date
(
+
o
)),
t
(
o
,
1
);
else
for
(;
r
>
o
;)
a
.
push
(
new
Date
(
+
o
)),
t
(
o
,
1
);
return
a
}
function
a
(
n
,
t
,
e
){
try
{
oc
=
jt
;
var
r
=
new
jt
;
return
r
.
_
=
n
,
o
(
r
,
t
,
e
)}
finally
{
oc
=
Date
}}
n
.
floor
=
n
,
n
.
round
=
r
,
n
.
ceil
=
u
,
n
.
offset
=
i
,
n
.
range
=
o
;
var
c
=
n
.
utc
=
Ft
(
n
);
return
c
.
floor
=
c
,
c
.
round
=
Ft
(
r
),
c
.
ceil
=
Ft
(
u
),
c
.
offset
=
Ft
(
i
),
c
.
range
=
a
,
n
}
function
Ft
(
n
){
return
function
(
t
,
e
){
try
{
oc
=
jt
;
var
r
=
new
jt
;
return
r
.
_
=
t
,
n
(
r
,
e
).
_
}
finally
{
oc
=
Date
}}}
function
Ot
(
n
){
function
t
(
n
){
function
t
(
t
){
for
(
var
e
,
u
,
i
,
o
=
[],
a
=-
1
,
c
=
0
;
++
a
<
r
;)
37
===
n
.
charCodeAt
(
a
)
&&
(
o
.
push
(
n
.
substring
(
c
,
a
)),
null
!=
(
u
=
cc
[
e
=
n
.
charAt
(
++
a
)])
&&
(
e
=
n
.
charAt
(
++
a
)),(
i
=
A
[
e
])
&&
(
e
=
i
(
t
,
null
==
u
?
"
e
"
===
e
?
"
"
:
"
0
"
:
u
)),
o
.
push
(
e
),
c
=
a
+
1
);
return
o
.
push
(
n
.
substring
(
c
,
a
)),
o
.
join
(
""
)}
var
r
=
n
.
length
;
return
t
.
parse
=
function
(
t
){
var
r
=
{
y
:
1900
,
m
:
0
,
d
:
1
,
H
:
0
,
M
:
0
,
S
:
0
,
L
:
0
,
Z
:
null
},
u
=
e
(
r
,
n
,
t
,
0
);
if
(
u
!=
t
.
length
)
return
null
;
"
p
"
in
r
&&
(
r
.
H
=
r
.
H
%
12
+
12
*
r
.
p
);
var
i
=
null
!=
r
.
Z
&&
oc
!==
jt
,
o
=
new
(
i
?
jt
:
oc
);
return
"
j
"
in
r
?
o
.
setFullYear
(
r
.
y
,
0
,
r
.
j
):
"
w
"
in
r
&&
(
"
W
"
in
r
||
"
U
"
in
r
)?(
o
.
setFullYear
(
r
.
y
,
0
,
1
),
o
.
setFullYear
(
r
.
y
,
0
,
"
W
"
in
r
?(
r
.
w
+
6
)
%
7
+
7
*
r
.
W
-
(
o
.
getDay
()
+
5
)
%
7
:
r
.
w
+
7
*
r
.
U
-
(
o
.
getDay
()
+
6
)
%
7
)):
o
.
setFullYear
(
r
.
y
,
r
.
m
,
r
.
d
),
o
.
setHours
(
r
.
H
+
Math
.
floor
(
r
.
Z
/
100
),
r
.
M
+
r
.
Z
%
100
,
r
.
S
,
r
.
L
),
i
?
o
.
_
:
o
},
t
.
toString
=
function
(){
return
n
},
t
}
function
e
(
n
,
t
,
e
,
r
){
for
(
var
u
,
i
,
o
,
a
=
0
,
c
=
t
.
length
,
s
=
e
.
length
;
c
>
a
;){
if
(
r
>=
s
)
return
-
1
;
if
(
u
=
t
.
charCodeAt
(
a
++
),
37
===
u
){
if
(
o
=
t
.
charAt
(
a
++
),
i
=
C
[
o
in
cc
?
t
.
charAt
(
a
++
):
o
],
!
i
||
(
r
=
i
(
n
,
e
,
r
))
<
0
)
return
-
1
}
else
if
(
u
!=
e
.
charCodeAt
(
r
++
))
return
-
1
}
return
r
}
function
r
(
n
,
t
,
e
){
b
.
lastIndex
=
0
;
var
r
=
b
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
w
=
w
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
u
(
n
,
t
,
e
){
M
.
lastIndex
=
0
;
var
r
=
M
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
w
=
_
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
i
(
n
,
t
,
e
){
E
.
lastIndex
=
0
;
var
r
=
E
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
m
=
N
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
o
(
n
,
t
,
e
){
S
.
lastIndex
=
0
;
var
r
=
S
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
m
=
k
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
a
(
n
,
t
,
r
){
return
e
(
n
,
A
.
c
.
toString
(),
t
,
r
)}
function
c
(
n
,
t
,
r
){
return
e
(
n
,
A
.
x
.
toString
(),
t
,
r
)}
function
s
(
n
,
t
,
r
){
return
e
(
n
,
A
.
X
.
toString
(),
t
,
r
)}
function
l
(
n
,
t
,
e
){
var
r
=
x
.
get
(
t
.
substring
(
e
,
e
+=
2
).
toLowerCase
());
return
null
==
r
?
-
1
:(
n
.
p
=
r
,
e
)}
var
f
=
n
.
dateTime
,
h
=
n
.
date
,
g
=
n
.
time
,
p
=
n
.
periods
,
v
=
n
.
days
,
d
=
n
.
shortDays
,
m
=
n
.
months
,
y
=
n
.
shortMonths
;
t
.
utc
=
function
(
n
){
function
e
(
n
){
try
{
oc
=
jt
;
var
t
=
new
oc
;
return
t
.
_
=
n
,
r
(
t
)}
finally
{
oc
=
Date
}}
var
r
=
t
(
n
);
return
e
.
parse
=
function
(
n
){
try
{
oc
=
jt
;
var
t
=
r
.
parse
(
n
);
return
t
&&
t
.
_
}
finally
{
oc
=
Date
}},
e
.
toString
=
r
.
toString
,
e
},
t
.
multi
=
t
.
utc
.
multi
=
ae
;
var
x
=
Go
.
map
(),
M
=
Yt
(
v
),
_
=
Zt
(
v
),
b
=
Yt
(
d
),
w
=
Zt
(
d
),
S
=
Yt
(
m
),
k
=
Zt
(
m
),
E
=
Yt
(
y
),
N
=
Zt
(
y
);
p
.
forEach
(
function
(
n
,
t
){
x
.
set
(
n
.
toLowerCase
(),
t
)});
var
A
=
{
a
:
function
(
n
){
return
d
[
n
.
getDay
()]},
A
:
function
(
n
){
return
v
[
n
.
getDay
()]},
b
:
function
(
n
){
return
y
[
n
.
getMonth
()]},
B
:
function
(
n
){
return
m
[
n
.
getMonth
()]},
c
:
t
(
f
),
d
:
function
(
n
,
t
){
return
It
(
n
.
getDate
(),
t
,
2
)},
e
:
function
(
n
,
t
){
return
It
(
n
.
getDate
(),
t
,
2
)},
H
:
function
(
n
,
t
){
return
It
(
n
.
getHours
(),
t
,
2
)},
I
:
function
(
n
,
t
){
return
It
(
n
.
getHours
()
%
12
||
12
,
t
,
2
)},
j
:
function
(
n
,
t
){
return
It
(
1
+
ic
.
dayOfYear
(
n
),
t
,
3
)},
L
:
function
(
n
,
t
){
return
It
(
n
.
getMilliseconds
(),
t
,
3
)},
m
:
function
(
n
,
t
){
return
It
(
n
.
getMonth
()
+
1
,
t
,
2
)},
M
:
function
(
n
,
t
){
return
It
(
n
.
getMinutes
(),
t
,
2
)},
p
:
function
(
n
){
return
p
[
+
(
n
.
getHours
()
>=
12
)]},
S
:
function
(
n
,
t
){
return
It
(
n
.
getSeconds
(),
t
,
2
)},
U
:
function
(
n
,
t
){
return
It
(
ic
.
sundayOfYear
(
n
),
t
,
2
)},
w
:
function
(
n
){
return
n
.
getDay
()},
W
:
function
(
n
,
t
){
return
It
(
ic
.
mondayOfYear
(
n
),
t
,
2
)},
x
:
t
(
h
),
X
:
t
(
g
),
y
:
function
(
n
,
t
){
return
It
(
n
.
getFullYear
()
%
100
,
t
,
2
)},
Y
:
function
(
n
,
t
){
return
It
(
n
.
getFullYear
()
%
1
e4
,
t
,
4
)},
Z
:
ie
,
"
%
"
:
function
(){
return
"
%
"
}},
C
=
{
a
:
r
,
A
:
u
,
b
:
i
,
B
:
o
,
c
:
a
,
d
:
Qt
,
e
:
Qt
,
H
:
te
,
I
:
te
,
j
:
ne
,
L
:
ue
,
m
:
Kt
,
M
:
ee
,
p
:
l
,
S
:
re
,
U
:
$t
,
w
:
Vt
,
W
:
Xt
,
x
:
c
,
X
:
s
,
y
:
Jt
,
Y
:
Bt
,
Z
:
Wt
,
"
%
"
:
oe
};
return
t
}
function
It
(
n
,
t
,
e
){
var
r
=
0
>
n
?
"
-
"
:
""
,
u
=
(
r
?
-
n
:
n
)
+
""
,
i
=
u
.
length
;
return
r
+
(
e
>
i
?
new
Array
(
e
-
i
+
1
).
join
(
t
)
+
u
:
u
)}
function
Yt
(
n
){
return
new
RegExp
(
"
^(?:
"
+
n
.
map
(
Go
.
requote
).
join
(
"
|
"
)
+
"
)
"
,
"
i
"
)}
function
Zt
(
n
){
for
(
var
t
=
new
o
,
e
=-
1
,
r
=
n
.
length
;
++
e
<
r
;)
t
.
set
(
n
[
e
].
toLowerCase
(),
e
);
return
t
}
function
Vt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
1
));
return
r
?(
n
.
w
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
$t
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
U
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Xt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
W
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Bt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
4
));
return
r
?(
n
.
y
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Jt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
y
=
Gt
(
+
r
[
0
]),
e
+
r
[
0
].
length
):
-
1
}
function
Wt
(
n
,
t
,
e
){
return
/^
[
+-
]\d{4}
$/
.
test
(
t
=
t
.
substring
(
e
,
e
+
5
))?(
n
.
Z
=
+
t
,
e
+
5
):
-
1
}
function
Gt
(
n
){
return
n
+
(
n
>
68
?
1900
:
2
e3
)}
function
Kt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
m
=
r
[
0
]
-
1
,
e
+
r
[
0
].
length
):
-
1
}
function
Qt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
d
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ne
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
3
));
return
r
?(
n
.
j
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
te
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
H
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ee
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
M
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
re
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
S
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ue
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
3
));
return
r
?(
n
.
L
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ie
(
n
){
var
t
=
n
.
getTimezoneOffset
(),
e
=
t
>
0
?
"
-
"
:
"
+
"
,
r
=~~
(
fa
(
t
)
/
60
),
u
=
fa
(
t
)
%
60
;
return
e
+
It
(
r
,
"
0
"
,
2
)
+
It
(
u
,
"
0
"
,
2
)}
function
oe
(
n
,
t
,
e
){
lc
.
lastIndex
=
0
;
var
r
=
lc
.
exec
(
t
.
substring
(
e
,
e
+
1
));
return
r
?
e
+
r
[
0
].
length
:
-
1
}
function
ae
(
n
){
for
(
var
t
=
n
.
length
,
e
=-
1
;
++
e
<
t
;)
n
[
e
][
0
]
=
this
(
n
[
e
][
0
]);
return
function
(
t
){
for
(
var
e
=
0
,
r
=
n
[
e
];
!
r
[
1
](
t
);)
r
=
n
[
++
e
];
return
r
[
0
](
t
)}}
function
ce
(){}
function
se
(
n
,
t
,
e
){
var
r
=
e
.
s
=
n
+
t
,
u
=
r
-
n
,
i
=
r
-
u
;
e
.
t
=
n
-
i
+
(
t
-
u
)}
function
le
(
n
,
t
){
n
&&
pc
.
hasOwnProperty
(
n
.
type
)
&&
pc
[
n
.
type
](
n
,
t
)}
function
fe
(
n
,
t
,
e
){
var
r
,
u
=-
1
,
i
=
n
.
length
-
e
;
for
(
t
.
lineStart
();
++
u
<
i
;)
r
=
n
[
u
],
t
.
point
(
r
[
0
],
r
[
1
],
r
[
2
]);
t
.
lineEnd
()}
function
he
(
n
,
t
){
var
e
=-
1
,
r
=
n
.
length
;
for
(
t
.
polygonStart
();
++
e
<
r
;)
fe
(
n
[
e
],
t
,
1
);
t
.
polygonEnd
()}
function
ge
(){
function
n
(
n
,
t
){
n
*=
za
,
t
=
t
*
za
/
2
+
Aa
/
4
;
var
e
=
n
-
r
,
o
=
e
>=
0
?
1
:
-
1
,
a
=
o
*
e
,
c
=
Math
.
cos
(
t
),
s
=
Math
.
sin
(
t
),
l
=
i
*
s
,
f
=
u
*
c
+
l
*
Math
.
cos
(
a
),
h
=
l
*
o
*
Math
.
sin
(
a
);
dc
.
add
(
Math
.
atan2
(
h
,
f
)),
r
=
n
,
u
=
c
,
i
=
s
}
var
t
,
e
,
r
,
u
,
i
;
mc
.
point
=
function
(
o
,
a
){
mc
.
point
=
n
,
r
=
(
t
=
o
)
*
za
,
u
=
Math
.
cos
(
a
=
(
e
=
a
)
*
za
/
2
+
Aa
/
4
),
i
=
Math
.
sin
(
a
)},
mc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
pe
(
n
){
var
t
=
n
[
0
],
e
=
n
[
1
],
r
=
Math
.
cos
(
e
);
return
[
r
*
Math
.
cos
(
t
),
r
*
Math
.
sin
(
t
),
Math
.
sin
(
e
)]}
function
ve
(
n
,
t
){
return
n
[
0
]
*
t
[
0
]
+
n
[
1
]
*
t
[
1
]
+
n
[
2
]
*
t
[
2
]}
function
de
(
n
,
t
){
return
[
n
[
1
]
*
t
[
2
]
-
n
[
2
]
*
t
[
1
],
n
[
2
]
*
t
[
0
]
-
n
[
0
]
*
t
[
2
],
n
[
0
]
*
t
[
1
]
-
n
[
1
]
*
t
[
0
]]}
function
me
(
n
,
t
){
n
[
0
]
+=
t
[
0
],
n
[
1
]
+=
t
[
1
],
n
[
2
]
+=
t
[
2
]}
function
ye
(
n
,
t
){
return
[
n
[
0
]
*
t
,
n
[
1
]
*
t
,
n
[
2
]
*
t
]}
function
xe
(
n
){
var
t
=
Math
.
sqrt
(
n
[
0
]
*
n
[
0
]
+
n
[
1
]
*
n
[
1
]
+
n
[
2
]
*
n
[
2
]);
n
[
0
]
/=
t
,
n
[
1
]
/=
t
,
n
[
2
]
/=
t
}
function
Me
(
n
){
return
[
Math
.
atan2
(
n
[
1
],
n
[
0
]),
G
(
n
[
2
])]}
function
_e
(
n
,
t
){
return
fa
(
n
[
0
]
-
t
[
0
])
<
Ta
&&
fa
(
n
[
1
]
-
t
[
1
])
<
Ta
}
function
be
(
n
,
t
){
n
*=
za
;
var
e
=
Math
.
cos
(
t
*=
za
);
we
(
e
*
Math
.
cos
(
n
),
e
*
Math
.
sin
(
n
),
Math
.
sin
(
t
))}
function
we
(
n
,
t
,
e
){
++
yc
,
Mc
+=
(
n
-
Mc
)
/
yc
,
_c
+=
(
t
-
_c
)
/
yc
,
bc
+=
(
e
-
bc
)
/
yc
}
function
Se
(){
function
n
(
n
,
u
){
n
*=
za
;
var
i
=
Math
.
cos
(
u
*=
za
),
o
=
i
*
Math
.
cos
(
n
),
a
=
i
*
Math
.
sin
(
n
),
c
=
Math
.
sin
(
u
),
s
=
Math
.
atan2
(
Math
.
sqrt
((
s
=
e
*
c
-
r
*
a
)
*
s
+
(
s
=
r
*
o
-
t
*
c
)
*
s
+
(
s
=
t
*
a
-
e
*
o
)
*
s
),
t
*
o
+
e
*
a
+
r
*
c
);
xc
+=
s
,
wc
+=
s
*
(
t
+
(
t
=
o
)),
Sc
+=
s
*
(
e
+
(
e
=
a
)),
kc
+=
s
*
(
r
+
(
r
=
c
)),
we
(
t
,
e
,
r
)}
var
t
,
e
,
r
;
Cc
.
point
=
function
(
u
,
i
){
u
*=
za
;
var
o
=
Math
.
cos
(
i
*=
za
);
t
=
o
*
Math
.
cos
(
u
),
e
=
o
*
Math
.
sin
(
u
),
r
=
Math
.
sin
(
i
),
Cc
.
point
=
n
,
we
(
t
,
e
,
r
)}}
function
ke
(){
Cc
.
point
=
be
}
function
Ee
(){
function
n
(
n
,
t
){
n
*=
za
;
var
e
=
Math
.
cos
(
t
*=
za
),
o
=
e
*
Math
.
cos
(
n
),
a
=
e
*
Math
.
sin
(
n
),
c
=
Math
.
sin
(
t
),
s
=
u
*
c
-
i
*
a
,
l
=
i
*
o
-
r
*
c
,
f
=
r
*
a
-
u
*
o
,
h
=
Math
.
sqrt
(
s
*
s
+
l
*
l
+
f
*
f
),
g
=
r
*
o
+
u
*
a
+
i
*
c
,
p
=
h
&&-
W
(
g
)
/
h
,
v
=
Math
.
atan2
(
h
,
g
);
Ec
+=
p
*
s
,
Nc
+=
p
*
l
,
Ac
+=
p
*
f
,
xc
+=
v
,
wc
+=
v
*
(
r
+
(
r
=
o
)),
Sc
+=
v
*
(
u
+
(
u
=
a
)),
kc
+=
v
*
(
i
+
(
i
=
c
)),
we
(
r
,
u
,
i
)}
var
t
,
e
,
r
,
u
,
i
;
Cc
.
point
=
function
(
o
,
a
){
t
=
o
,
e
=
a
,
Cc
.
point
=
n
,
o
*=
za
;
var
c
=
Math
.
cos
(
a
*=
za
);
r
=
c
*
Math
.
cos
(
o
),
u
=
c
*
Math
.
sin
(
o
),
i
=
Math
.
sin
(
a
),
we
(
r
,
u
,
i
)},
Cc
.
lineEnd
=
function
(){
n
(
t
,
e
),
Cc
.
lineEnd
=
ke
,
Cc
.
point
=
be
}}
function
Ne
(){
return
!
0
}
function
Ae
(
n
,
t
,
e
,
r
,
u
){
var
i
=
[],
o
=
[];
if
(
n
.
forEach
(
function
(
n
){
if
(
!
((
t
=
n
.
length
-
1
)
<=
0
)){
var
t
,
e
=
n
[
0
],
r
=
n
[
t
];
if
(
_e
(
e
,
r
)){
u
.
lineStart
();
for
(
var
a
=
0
;
t
>
a
;
++
a
)
u
.
point
((
e
=
n
[
a
])[
0
],
e
[
1
]);
return
u
.
lineEnd
(),
void
0
}
var
c
=
new
Le
(
e
,
n
,
null
,
!
0
),
s
=
new
Le
(
e
,
null
,
c
,
!
1
);
c
.
o
=
s
,
i
.
push
(
c
),
o
.
push
(
s
),
c
=
new
Le
(
r
,
n
,
null
,
!
1
),
s
=
new
Le
(
r
,
null
,
c
,
!
0
),
c
.
o
=
s
,
i
.
push
(
c
),
o
.
push
(
s
)}}),
o
.
sort
(
t
),
Ce
(
i
),
Ce
(
o
),
i
.
length
){
for
(
var
a
=
0
,
c
=
e
,
s
=
o
.
length
;
s
>
a
;
++
a
)
o
[
a
].
e
=
c
=!
c
;
for
(
var
l
,
f
,
h
=
i
[
0
];;){
for
(
var
g
=
h
,
p
=!
0
;
g
.
v
;)
if
((
g
=
g
.
n
)
===
h
)
return
;
l
=
g
.
z
,
u
.
lineStart
();
do
{
if
(
g
.
v
=
g
.
o
.
v
=!
0
,
g
.
e
){
if
(
p
)
for
(
var
a
=
0
,
s
=
l
.
length
;
s
>
a
;
++
a
)
u
.
point
((
f
=
l
[
a
])[
0
],
f
[
1
]);
else
r
(
g
.
x
,
g
.
n
.
x
,
1
,
u
);
g
=
g
.
n
}
else
{
if
(
p
){
l
=
g
.
p
.
z
;
for
(
var
a
=
l
.
length
-
1
;
a
>=
0
;
--
a
)
u
.
point
((
f
=
l
[
a
])[
0
],
f
[
1
])}
else
r
(
g
.
x
,
g
.
p
.
x
,
-
1
,
u
);
g
=
g
.
p
}
g
=
g
.
o
,
l
=
g
.
z
,
p
=!
p
}
while
(
!
g
.
v
);
u
.
lineEnd
()}}}
function
Ce
(
n
){
if
(
t
=
n
.
length
){
for
(
var
t
,
e
,
r
=
0
,
u
=
n
[
0
];
++
r
<
t
;)
u
.
n
=
e
=
n
[
r
],
e
.
p
=
u
,
u
=
e
;
u
.
n
=
e
=
n
[
0
],
e
.
p
=
u
}}
function
Le
(
n
,
t
,
e
,
r
){
this
.
x
=
n
,
this
.
z
=
t
,
this
.
o
=
e
,
this
.
e
=
r
,
this
.
v
=!
1
,
this
.
n
=
this
.
p
=
null
}
function
Te
(
n
,
t
,
e
,
r
){
return
function
(
u
,
i
){
function
o
(
t
,
e
){
var
r
=
u
(
t
,
e
);
n
(
t
=
r
[
0
],
e
=
r
[
1
])
&&
i
.
point
(
t
,
e
)}
function
a
(
n
,
t
){
var
e
=
u
(
n
,
t
);
d
.
point
(
e
[
0
],
e
[
1
])}
function
c
(){
y
.
point
=
a
,
d
.
lineStart
()}
function
s
(){
y
.
point
=
o
,
d
.
lineEnd
()}
function
l
(
n
,
t
){
v
.
push
([
n
,
t
]);
var
e
=
u
(
n
,
t
);
M
.
point
(
e
[
0
],
e
[
1
])}
function
f
(){
M
.
lineStart
(),
v
=
[]}
function
h
(){
l
(
v
[
0
][
0
],
v
[
0
][
1
]),
M
.
lineEnd
();
var
n
,
t
=
M
.
clean
(),
e
=
x
.
buffer
(),
r
=
e
.
length
;
if
(
v
.
pop
(),
p
.
push
(
v
),
v
=
null
,
r
)
if
(
1
&
t
){
n
=
e
[
0
];
var
u
,
r
=
n
.
length
-
1
,
o
=-
1
;
if
(
r
>
0
){
for
(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
i
.
lineStart
();
++
o
<
r
;)
i
.
point
((
u
=
n
[
o
])[
0
],
u
[
1
]);
i
.
lineEnd
()}}
else
r
>
1
&&
2
&
t
&&
e
.
push
(
e
.
pop
().
concat
(
e
.
shift
())),
g
.
push
(
e
.
filter
(
qe
))}
var
g
,
p
,
v
,
d
=
t
(
i
),
m
=
u
.
invert
(
r
[
0
],
r
[
1
]),
y
=
{
point
:
o
,
lineStart
:
c
,
lineEnd
:
s
,
polygonStart
:
function
(){
y
.
point
=
l
,
y
.
lineStart
=
f
,
y
.
lineEnd
=
h
,
g
=
[],
p
=
[]},
polygonEnd
:
function
(){
y
.
point
=
o
,
y
.
lineStart
=
c
,
y
.
lineEnd
=
s
,
g
=
Go
.
merge
(
g
);
var
n
=
De
(
m
,
p
);
g
.
length
?(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
Ae
(
g
,
Re
,
n
,
e
,
i
)):
n
&&
(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
i
.
lineStart
(),
e
(
null
,
null
,
1
,
i
),
i
.
lineEnd
()),
_
&&
(
i
.
polygonEnd
(),
_
=!
1
),
g
=
p
=
null
},
sphere
:
function
(){
i
.
polygonStart
(),
i
.
lineStart
(),
e
(
null
,
null
,
1
,
i
),
i
.
lineEnd
(),
i
.
polygonEnd
()}},
x
=
ze
(),
M
=
t
(
x
),
_
=!
1
;
return
y
}}
function
qe
(
n
){
return
n
.
length
>
1
}
function
ze
(){
var
n
,
t
=
[];
return
{
lineStart
:
function
(){
t
.
push
(
n
=
[])},
point
:
function
(
t
,
e
){
n
.
push
([
t
,
e
])},
lineEnd
:
v
,
buffer
:
function
(){
var
e
=
t
;
return
t
=
[],
n
=
null
,
e
},
rejoin
:
function
(){
t
.
length
>
1
&&
t
.
push
(
t
.
pop
().
concat
(
t
.
shift
()))}}}
function
Re
(
n
,
t
){
return
((
n
=
n
.
x
)[
0
]
<
0
?
n
[
1
]
-
La
-
Ta
:
La
-
n
[
1
])
-
((
t
=
t
.
x
)[
0
]
<
0
?
t
[
1
]
-
La
-
Ta
:
La
-
t
[
1
])}
function
De
(
n
,
t
){
var
e
=
n
[
0
],
r
=
n
[
1
],
u
=
[
Math
.
sin
(
e
),
-
Math
.
cos
(
e
),
0
],
i
=
0
,
o
=
0
;
dc
.
reset
();
for
(
var
a
=
0
,
c
=
t
.
length
;
c
>
a
;
++
a
){
var
s
=
t
[
a
],
l
=
s
.
length
;
if
(
l
)
for
(
var
f
=
s
[
0
],
h
=
f
[
0
],
g
=
f
[
1
]
/
2
+
Aa
/
4
,
p
=
Math
.
sin
(
g
),
v
=
Math
.
cos
(
g
),
d
=
1
;;){
d
===
l
&&
(
d
=
0
),
n
=
s
[
d
];
var
m
=
n
[
0
],
y
=
n
[
1
]
/
2
+
Aa
/
4
,
x
=
Math
.
sin
(
y
),
M
=
Math
.
cos
(
y
),
_
=
m
-
h
,
b
=
_
>=
0
?
1
:
-
1
,
w
=
b
*
_
,
S
=
w
>
Aa
,
k
=
p
*
x
;
if
(
dc
.
add
(
Math
.
atan2
(
k
*
b
*
Math
.
sin
(
w
),
v
*
M
+
k
*
Math
.
cos
(
w
))),
i
+=
S
?
_
+
b
*
Ca
:
_
,
S
^
h
>=
e
^
m
>=
e
){
var
E
=
de
(
pe
(
f
),
pe
(
n
));
xe
(
E
);
var
N
=
de
(
u
,
E
);
xe
(
N
);
var
A
=
(
S
^
_
>=
0
?
-
1
:
1
)
*
G
(
N
[
2
]);(
r
>
A
||
r
===
A
&&
(
E
[
0
]
||
E
[
1
]))
&&
(
o
+=
S
^
_
>=
0
?
1
:
-
1
)}
if
(
!
d
++
)
break
;
h
=
m
,
p
=
x
,
v
=
M
,
f
=
n
}}
return
(
-
Ta
>
i
||
Ta
>
i
&&
0
>
dc
)
^
1
&
o
}
function
Pe
(
n
){
var
t
,
e
=
0
/
0
,
r
=
0
/
0
,
u
=
0
/
0
;
return
{
lineStart
:
function
(){
n
.
lineStart
(),
t
=
1
},
point
:
function
(
i
,
o
){
var
a
=
i
>
0
?
Aa
:
-
Aa
,
c
=
fa
(
i
-
e
);
fa
(
c
-
Aa
)
<
Ta
?(
n
.
point
(
e
,
r
=
(
r
+
o
)
/
2
>
0
?
La
:
-
La
),
n
.
point
(
u
,
r
),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
a
,
r
),
n
.
point
(
i
,
r
),
t
=
0
):
u
!==
a
&&
c
>=
Aa
&&
(
fa
(
e
-
u
)
<
Ta
&&
(
e
-=
u
*
Ta
),
fa
(
i
-
a
)
<
Ta
&&
(
i
-=
a
*
Ta
),
r
=
Ue
(
e
,
r
,
i
,
o
),
n
.
point
(
u
,
r
),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
a
,
r
),
t
=
0
),
n
.
point
(
e
=
i
,
r
=
o
),
u
=
a
},
lineEnd
:
function
(){
n
.
lineEnd
(),
e
=
r
=
0
/
0
},
clean
:
function
(){
return
2
-
t
}}}
function
Ue
(
n
,
t
,
e
,
r
){
var
u
,
i
,
o
=
Math
.
sin
(
n
-
e
);
return
fa
(
o
)
>
Ta
?
Math
.
atan
((
Math
.
sin
(
t
)
*
(
i
=
Math
.
cos
(
r
))
*
Math
.
sin
(
e
)
-
Math
.
sin
(
r
)
*
(
u
=
Math
.
cos
(
t
))
*
Math
.
sin
(
n
))
/
(
u
*
i
*
o
)):(
t
+
r
)
/
2
}
function
je
(
n
,
t
,
e
,
r
){
var
u
;
if
(
null
==
n
)
u
=
e
*
La
,
r
.
point
(
-
Aa
,
u
),
r
.
point
(
0
,
u
),
r
.
point
(
Aa
,
u
),
r
.
point
(
Aa
,
0
),
r
.
point
(
Aa
,
-
u
),
r
.
point
(
0
,
-
u
),
r
.
point
(
-
Aa
,
-
u
),
r
.
point
(
-
Aa
,
0
),
r
.
point
(
-
Aa
,
u
);
else
if
(
fa
(
n
[
0
]
-
t
[
0
])
>
Ta
){
var
i
=
n
[
0
]
<
t
[
0
]?
Aa
:
-
Aa
;
u
=
e
*
i
/
2
,
r
.
point
(
-
i
,
u
),
r
.
point
(
0
,
u
),
r
.
point
(
i
,
u
)}
else
r
.
point
(
t
[
0
],
t
[
1
])}
function
He
(
n
){
function
t
(
n
,
t
){
return
Math
.
cos
(
n
)
*
Math
.
cos
(
t
)
>
i
}
function
e
(
n
){
var
e
,
i
,
c
,
s
,
l
;
return
{
lineStart
:
function
(){
s
=
c
=!
1
,
l
=
1
},
point
:
function
(
f
,
h
){
var
g
,
p
=
[
f
,
h
],
v
=
t
(
f
,
h
),
d
=
o
?
v
?
0
:
u
(
f
,
h
):
v
?
u
(
f
+
(
0
>
f
?
Aa
:
-
Aa
),
h
):
0
;
if
(
!
e
&&
(
s
=
c
=
v
)
&&
n
.
lineStart
(),
v
!==
c
&&
(
g
=
r
(
e
,
p
),(
_e
(
e
,
g
)
||
_e
(
p
,
g
))
&&
(
p
[
0
]
+=
Ta
,
p
[
1
]
+=
Ta
,
v
=
t
(
p
[
0
],
p
[
1
]))),
v
!==
c
)
l
=
0
,
v
?(
n
.
lineStart
(),
g
=
r
(
p
,
e
),
n
.
point
(
g
[
0
],
g
[
1
])):(
g
=
r
(
e
,
p
),
n
.
point
(
g
[
0
],
g
[
1
]),
n
.
lineEnd
()),
e
=
g
;
else
if
(
a
&&
e
&&
o
^
v
){
var
m
;
d
&
i
||!
(
m
=
r
(
p
,
e
,
!
0
))
||
(
l
=
0
,
o
?(
n
.
lineStart
(),
n
.
point
(
m
[
0
][
0
],
m
[
0
][
1
]),
n
.
point
(
m
[
1
][
0
],
m
[
1
][
1
]),
n
.
lineEnd
()):(
n
.
point
(
m
[
1
][
0
],
m
[
1
][
1
]),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
m
[
0
][
0
],
m
[
0
][
1
])))}
!
v
||
e
&&
_e
(
e
,
p
)
||
n
.
point
(
p
[
0
],
p
[
1
]),
e
=
p
,
c
=
v
,
i
=
d
},
lineEnd
:
function
(){
c
&&
n
.
lineEnd
(),
e
=
null
},
clean
:
function
(){
return
l
|
(
s
&&
c
)
<<
1
}}}
function
r
(
n
,
t
,
e
){
var
r
=
pe
(
n
),
u
=
pe
(
t
),
o
=
[
1
,
0
,
0
],
a
=
de
(
r
,
u
),
c
=
ve
(
a
,
a
),
s
=
a
[
0
],
l
=
c
-
s
*
s
;
if
(
!
l
)
return
!
e
&&
n
;
var
f
=
i
*
c
/
l
,
h
=-
i
*
s
/
l
,
g
=
de
(
o
,
a
),
p
=
ye
(
o
,
f
),
v
=
ye
(
a
,
h
);
me
(
p
,
v
);
var
d
=
g
,
m
=
ve
(
p
,
d
),
y
=
ve
(
d
,
d
),
x
=
m
*
m
-
y
*
(
ve
(
p
,
p
)
-
1
);
if
(
!
(
0
>
x
)){
var
M
=
Math
.
sqrt
(
x
),
_
=
ye
(
d
,(
-
m
-
M
)
/
y
);
if
(
me
(
_
,
p
),
_
=
Me
(
_
),
!
e
)
return
_
;
var
b
,
w
=
n
[
0
],
S
=
t
[
0
],
k
=
n
[
1
],
E
=
t
[
1
];
w
>
S
&&
(
b
=
w
,
w
=
S
,
S
=
b
);
var
N
=
S
-
w
,
A
=
fa
(
N
-
Aa
)
<
Ta
,
C
=
A
||
Ta
>
N
;
if
(
!
A
&&
k
>
E
&&
(
b
=
k
,
k
=
E
,
E
=
b
),
C
?
A
?
k
+
E
>
0
^
_
[
1
]
<
(
fa
(
_
[
0
]
-
w
)
<
Ta
?
k
:
E
):
k
<=
_
[
1
]
&&
_
[
1
]
<=
E
:
N
>
Aa
^
(
w
<=
_
[
0
]
&&
_
[
0
]
<=
S
)){
var
L
=
ye
(
d
,(
-
m
+
M
)
/
y
);
return
me
(
L
,
p
),[
_
,
Me
(
L
)]}}}
function
u
(
t
,
e
){
var
r
=
o
?
n
:
Aa
-
n
,
u
=
0
;
return
-
r
>
t
?
u
|=
1
:
t
>
r
&&
(
u
|=
2
),
-
r
>
e
?
u
|=
4
:
e
>
r
&&
(
u
|=
8
),
u
}
var
i
=
Math
.
cos
(
n
),
o
=
i
>
0
,
a
=
fa
(
i
)
>
Ta
,
c
=
gr
(
n
,
6
*
za
);
return
Te
(
t
,
e
,
c
,
o
?[
0
,
-
n
]:[
-
Aa
,
n
-
Aa
])}
function
Fe
(
n
,
t
,
e
,
r
){
return
function
(
u
){
var
i
,
o
=
u
.
a
,
a
=
u
.
b
,
c
=
o
.
x
,
s
=
o
.
y
,
l
=
a
.
x
,
f
=
a
.
y
,
h
=
0
,
g
=
1
,
p
=
l
-
c
,
v
=
f
-
s
;
if
(
i
=
n
-
c
,
p
||!
(
i
>
0
)){
if
(
i
/=
p
,
0
>
p
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
else
if
(
p
>
0
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
if
(
i
=
e
-
c
,
p
||!
(
0
>
i
)){
if
(
i
/=
p
,
0
>
p
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
else
if
(
p
>
0
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
if
(
i
=
t
-
s
,
v
||!
(
i
>
0
)){
if
(
i
/=
v
,
0
>
v
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
else
if
(
v
>
0
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
if
(
i
=
r
-
s
,
v
||!
(
0
>
i
)){
if
(
i
/=
v
,
0
>
v
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
else
if
(
v
>
0
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
return
h
>
0
&&
(
u
.
a
=
{
x
:
c
+
h
*
p
,
y
:
s
+
h
*
v
}),
1
>
g
&&
(
u
.
b
=
{
x
:
c
+
g
*
p
,
y
:
s
+
g
*
v
}),
u
}}}}}}
function
Oe
(
n
,
t
,
e
,
r
){
function
u
(
r
,
u
){
return
fa
(
r
[
0
]
-
n
)
<
Ta
?
u
>
0
?
0
:
3
:
fa
(
r
[
0
]
-
e
)
<
Ta
?
u
>
0
?
2
:
1
:
fa
(
r
[
1
]
-
t
)
<
Ta
?
u
>
0
?
1
:
0
:
u
>
0
?
3
:
2
}
function
i
(
n
,
t
){
return
o
(
n
.
x
,
t
.
x
)}
function
o
(
n
,
t
){
var
e
=
u
(
n
,
1
),
r
=
u
(
t
,
1
);
return
e
!==
r
?
e
-
r
:
0
===
e
?
t
[
1
]
-
n
[
1
]:
1
===
e
?
n
[
0
]
-
t
[
0
]:
2
===
e
?
n
[
1
]
-
t
[
1
]:
t
[
0
]
-
n
[
0
]}
return
function
(
a
){
function
c
(
n
){
for
(
var
t
=
0
,
e
=
d
.
length
,
r
=
n
[
1
],
u
=
0
;
e
>
u
;
++
u
)
for
(
var
i
,
o
=
1
,
a
=
d
[
u
],
c
=
a
.
length
,
s
=
a
[
0
];
c
>
o
;
++
o
)
i
=
a
[
o
],
s
[
1
]
<=
r
?
i
[
1
]
>
r
&&
J
(
s
,
i
,
n
)
>
0
&&++
t
:
i
[
1
]
<=
r
&&
J
(
s
,
i
,
n
)
<
0
&&--
t
,
s
=
i
;
return
0
!==
t
}
function
s
(
i
,
a
,
c
,
s
){
var
l
=
0
,
f
=
0
;
if
(
null
==
i
||
(
l
=
u
(
i
,
c
))
!==
(
f
=
u
(
a
,
c
))
||
o
(
i
,
a
)
<
0
^
c
>
0
){
do
s
.
point
(
0
===
l
||
3
===
l
?
n
:
e
,
l
>
1
?
r
:
t
);
while
((
l
=
(
l
+
c
+
4
)
%
4
)
!==
f
)}
else
s
.
point
(
a
[
0
],
a
[
1
])}
function
l
(
u
,
i
){
return
u
>=
n
&&
e
>=
u
&&
i
>=
t
&&
r
>=
i
}
function
f
(
n
,
t
){
l
(
n
,
t
)
&&
a
.
point
(
n
,
t
)}
function
h
(){
C
.
point
=
p
,
d
&&
d
.
push
(
m
=
[]),
S
=!
0
,
w
=!
1
,
_
=
b
=
0
/
0
}
function
g
(){
v
&&
(
p
(
y
,
x
),
M
&&
w
&&
N
.
rejoin
(),
v
.
push
(
N
.
buffer
())),
C
.
point
=
f
,
w
&&
a
.
lineEnd
()}
function
p
(
n
,
t
){
n
=
Math
.
max
(
-
Tc
,
Math
.
min
(
Tc
,
n
)),
t
=
Math
.
max
(
-
Tc
,
Math
.
min
(
Tc
,
t
));
var
e
=
l
(
n
,
t
);
if
(
d
&&
m
.
push
([
n
,
t
]),
S
)
y
=
n
,
x
=
t
,
M
=
e
,
S
=!
1
,
e
&&
(
a
.
lineStart
(),
a
.
point
(
n
,
t
));
else
if
(
e
&&
w
)
a
.
point
(
n
,
t
);
else
{
var
r
=
{
a
:{
x
:
_
,
y
:
b
},
b
:{
x
:
n
,
y
:
t
}};
A
(
r
)?(
w
||
(
a
.
lineStart
(),
a
.
point
(
r
.
a
.
x
,
r
.
a
.
y
)),
a
.
point
(
r
.
b
.
x
,
r
.
b
.
y
),
e
||
a
.
lineEnd
(),
k
=!
1
):
e
&&
(
a
.
lineStart
(),
a
.
point
(
n
,
t
),
k
=!
1
)}
_
=
n
,
b
=
t
,
w
=
e
}
var
v
,
d
,
m
,
y
,
x
,
M
,
_
,
b
,
w
,
S
,
k
,
E
=
a
,
N
=
ze
(),
A
=
Fe
(
n
,
t
,
e
,
r
),
C
=
{
point
:
f
,
lineStart
:
h
,
lineEnd
:
g
,
polygonStart
:
function
(){
a
=
N
,
v
=
[],
d
=
[],
k
=!
0
},
polygonEnd
:
function
(){
a
=
E
,
v
=
Go
.
merge
(
v
);
var
t
=
c
([
n
,
r
]),
e
=
k
&&
t
,
u
=
v
.
length
;(
e
||
u
)
&&
(
a
.
polygonStart
(),
e
&&
(
a
.
lineStart
(),
s
(
null
,
null
,
1
,
a
),
a
.
lineEnd
()),
u
&&
Ae
(
v
,
i
,
t
,
s
,
a
),
a
.
polygonEnd
()),
v
=
d
=
m
=
null
}};
return
C
}}
function
Ie
(
n
,
t
){
function
e
(
e
,
r
){
return
e
=
n
(
e
,
r
),
t
(
e
[
0
],
e
[
1
])}
return
n
.
invert
&&
t
.
invert
&&
(
e
.
invert
=
function
(
e
,
r
){
return
e
=
t
.
invert
(
e
,
r
),
e
&&
n
.
invert
(
e
[
0
],
e
[
1
])}),
e
}
function
Ye
(
n
){
var
t
=
0
,
e
=
Aa
/
3
,
r
=
ir
(
n
),
u
=
r
(
t
,
e
);
return
u
.
parallels
=
function
(
n
){
return
arguments
.
length
?
r
(
t
=
n
[
0
]
*
Aa
/
180
,
e
=
n
[
1
]
*
Aa
/
180
):[
180
*
(
t
/
Aa
),
180
*
(
e
/
Aa
)]},
u
}
function
Ze
(
n
,
t
){
function
e
(
n
,
t
){
var
e
=
Math
.
sqrt
(
i
-
2
*
u
*
Math
.
sin
(
t
))
/
u
;
return
[
e
*
Math
.
sin
(
n
*=
u
),
o
-
e
*
Math
.
cos
(
n
)]}
var
r
=
Math
.
sin
(
n
),
u
=
(
r
+
Math
.
sin
(
t
))
/
2
,
i
=
1
+
r
*
(
2
*
u
-
r
),
o
=
Math
.
sqrt
(
i
)
/
u
;
return
e
.
invert
=
function
(
n
,
t
){
var
e
=
o
-
t
;
return
[
Math
.
atan2
(
n
,
e
)
/
u
,
G
((
i
-
(
n
*
n
+
e
*
e
)
*
u
*
u
)
/
(
2
*
u
))]},
e
}
function
Ve
(){
function
n
(
n
,
t
){
zc
+=
u
*
n
-
r
*
t
,
r
=
n
,
u
=
t
}
var
t
,
e
,
r
,
u
;
jc
.
point
=
function
(
i
,
o
){
jc
.
point
=
n
,
t
=
r
=
i
,
e
=
u
=
o
},
jc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
$e
(
n
,
t
){
Rc
>
n
&&
(
Rc
=
n
),
n
>
Pc
&&
(
Pc
=
n
),
Dc
>
t
&&
(
Dc
=
t
),
t
>
Uc
&&
(
Uc
=
t
)}
function
Xe
(){
function
n
(
n
,
t
){
o
.
push
(
"
M
"
,
n
,
"
,
"
,
t
,
i
)}
function
t
(
n
,
t
){
o
.
push
(
"
M
"
,
n
,
"
,
"
,
t
),
a
.
point
=
e
}
function
e
(
n
,
t
){
o
.
push
(
"
L
"
,
n
,
"
,
"
,
t
)}
function
r
(){
a
.
point
=
n
}
function
u
(){
o
.
push
(
"
Z
"
)}
var
i
=
Be
(
4.5
),
o
=
[],
a
=
{
point
:
n
,
lineStart
:
function
(){
a
.
point
=
t
},
lineEnd
:
r
,
polygonStart
:
function
(){
a
.
lineEnd
=
u
},
polygonEnd
:
function
(){
a
.
lineEnd
=
r
,
a
.
point
=
n
},
pointRadius
:
function
(
n
){
return
i
=
Be
(
n
),
a
},
result
:
function
(){
if
(
o
.
length
){
var
n
=
o
.
join
(
""
);
return
o
=
[],
n
}}};
return
a
}
function
Be
(
n
){
return
"
m0,
"
+
n
+
"
a
"
+
n
+
"
,
"
+
n
+
"
0 1,1 0,
"
+-
2
*
n
+
"
a
"
+
n
+
"
,
"
+
n
+
"
0 1,1 0,
"
+
2
*
n
+
"
z
"
}
function
Je
(
n
,
t
){
Mc
+=
n
,
_c
+=
t
,
++
bc
}
function
We
(){
function
n
(
n
,
r
){
var
u
=
n
-
t
,
i
=
r
-
e
,
o
=
Math
.
sqrt
(
u
*
u
+
i
*
i
);
wc
+=
o
*
(
t
+
n
)
/
2
,
Sc
+=
o
*
(
e
+
r
)
/
2
,
kc
+=
o
,
Je
(
t
=
n
,
e
=
r
)}
var
t
,
e
;
Fc
.
point
=
function
(
r
,
u
){
Fc
.
point
=
n
,
Je
(
t
=
r
,
e
=
u
)}}
function
Ge
(){
Fc
.
point
=
Je
}
function
Ke
(){
function
n
(
n
,
t
){
var
e
=
n
-
r
,
i
=
t
-
u
,
o
=
Math
.
sqrt
(
e
*
e
+
i
*
i
);
wc
+=
o
*
(
r
+
n
)
/
2
,
Sc
+=
o
*
(
u
+
t
)
/
2
,
kc
+=
o
,
o
=
u
*
n
-
r
*
t
,
Ec
+=
o
*
(
r
+
n
),
Nc
+=
o
*
(
u
+
t
),
Ac
+=
3
*
o
,
Je
(
r
=
n
,
u
=
t
)}
var
t
,
e
,
r
,
u
;
Fc
.
point
=
function
(
i
,
o
){
Fc
.
point
=
n
,
Je
(
t
=
r
=
i
,
e
=
u
=
o
)},
Fc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
Qe
(
n
){
function
t
(
t
,
e
){
n
.
moveTo
(
t
,
e
),
n
.
arc
(
t
,
e
,
o
,
0
,
Ca
)}
function
e
(
t
,
e
){
n
.
moveTo
(
t
,
e
),
a
.
point
=
r
}
function
r
(
t
,
e
){
n
.
lineTo
(
t
,
e
)}
function
u
(){
a
.
point
=
t
}
function
i
(){
n
.
closePath
()}
var
o
=
4.5
,
a
=
{
point
:
t
,
lineStart
:
function
(){
a
.
point
=
e
},
lineEnd
:
u
,
polygonStart
:
function
(){
a
.
lineEnd
=
i
},
polygonEnd
:
function
(){
a
.
lineEnd
=
u
,
a
.
point
=
t
},
pointRadius
:
function
(
n
){
return
o
=
n
,
a
},
result
:
v
};
return
a
}
function
nr
(
n
){
function
t
(
n
){
return
(
a
?
r
:
e
)(
n
)}
function
e
(
t
){
return
rr
(
t
,
function
(
e
,
r
){
e
=
n
(
e
,
r
),
t
.
point
(
e
[
0
],
e
[
1
])})}
function
r
(
t
){
function
e
(
e
,
r
){
e
=
n
(
e
,
r
),
t
.
point
(
e
[
0
],
e
[
1
])}
function
r
(){
x
=
0
/
0
,
S
.
point
=
i
,
t
.
lineStart
()}
function
i
(
e
,
r
){
var
i
=
pe
([
e
,
r
]),
o
=
n
(
e
,
r
);
u
(
x
,
M
,
y
,
_
,
b
,
w
,
x
=
o
[
0
],
M
=
o
[
1
],
y
=
e
,
_
=
i
[
0
],
b
=
i
[
1
],
w
=
i
[
2
],
a
,
t
),
t
.
point
(
x
,
M
)}
function
o
(){
S
.
point
=
e
,
t
.
lineEnd
()}
function
c
(){
r
(),
S
.
point
=
s
,
S
.
lineEnd
=
l
}
function
s
(
n
,
t
){
i
(
f
=
n
,
h
=
t
),
g
=
x
,
p
=
M
,
v
=
_
,
d
=
b
,
m
=
w
,
S
.
point
=
i
}
function
l
(){
u
(
x
,
M
,
y
,
_
,
b
,
w
,
g
,
p
,
f
,
v
,
d
,
m
,
a
,
t
),
S
.
lineEnd
=
o
,
o
()}
var
f
,
h
,
g
,
p
,
v
,
d
,
m
,
y
,
x
,
M
,
_
,
b
,
w
,
S
=
{
point
:
e
,
lineStart
:
r
,
lineEnd
:
o
,
polygonStart
:
function
(){
t
.
polygonStart
(),
S
.
lineStart
=
c
},
polygonEnd
:
function
(){
t
.
polygonEnd
(),
S
.
lineStart
=
r
}};
return
S
}
function
u
(
t
,
e
,
r
,
a
,
c
,
s
,
l
,
f
,
h
,
g
,
p
,
v
,
d
,
m
){
var
y
=
l
-
t
,
x
=
f
-
e
,
M
=
y
*
y
+
x
*
x
;
if
(
M
>
4
*
i
&&
d
--
){
var
_
=
a
+
g
,
b
=
c
+
p
,
w
=
s
+
v
,
S
=
Math
.
sqrt
(
_
*
_
+
b
*
b
+
w
*
w
),
k
=
Math
.
asin
(
w
/=
S
),
E
=
fa
(
fa
(
w
)
-
1
)
<
Ta
||
fa
(
r
-
h
)
<
Ta
?(
r
+
h
)
/
2
:
Math
.
atan2
(
b
,
_
),
N
=
n
(
E
,
k
),
A
=
N
[
0
],
C
=
N
[
1
],
L
=
A
-
t
,
T
=
C
-
e
,
q
=
x
*
L
-
y
*
T
;(
q
*
q
/
M
>
i
||
fa
((
y
*
L
+
x
*
T
)
/
M
-
.
5
)
>
.
3
||
o
>
a
*
g
+
c
*
p
+
s
*
v
)
&&
(
u
(
t
,
e
,
r
,
a
,
c
,
s
,
A
,
C
,
E
,
_
/=
S
,
b
/=
S
,
w
,
d
,
m
),
m
.
point
(
A
,
C
),
u
(
A
,
C
,
E
,
_
,
b
,
w
,
l
,
f
,
h
,
g
,
p
,
v
,
d
,
m
))}}
var
i
=
.
5
,
o
=
Math
.
cos
(
30
*
za
),
a
=
16
;
return
t
.
precision
=
function
(
n
){
return
arguments
.
length
?(
a
=
(
i
=
n
*
n
)
>
0
&&
16
,
t
):
Math
.
sqrt
(
i
)},
t
}
function
tr
(
n
){
var
t
=
nr
(
function
(
t
,
e
){
return
n
([
t
*
Ra
,
e
*
Ra
])});
return
function
(
n
){
return
or
(
t
(
n
))}}
function
er
(
n
){
this
.
stream
=
n
}
function
rr
(
n
,
t
){
return
{
point
:
t
,
sphere
:
function
(){
n
.
sphere
()},
lineStart
:
function
(){
n
.
lineStart
()},
lineEnd
:
function
(){
n
.
lineEnd
()},
polygonStart
:
function
(){
n
.
polygonStart
()},
polygonEnd
:
function
(){
n
.
polygonEnd
()}}}
function
ur
(
n
){
return
ir
(
function
(){
return
n
})()}
function
ir
(
n
){
function
t
(
n
){
return
n
=
a
(
n
[
0
]
*
za
,
n
[
1
]
*
za
),[
n
[
0
]
*
h
+
c
,
s
-
n
[
1
]
*
h
]}
function
e
(
n
){
return
n
=
a
.
invert
((
n
[
0
]
-
c
)
/
h
,(
s
-
n
[
1
])
/
h
),
n
&&
[
n
[
0
]
*
Ra
,
n
[
1
]
*
Ra
]}
function
r
(){
a
=
Ie
(
o
=
sr
(
m
,
y
,
x
),
i
);
var
n
=
i
(
v
,
d
);
return
c
=
g
-
n
[
0
]
*
h
,
s
=
p
+
n
[
1
]
*
h
,
u
()
!
function
(){
function
n
(
n
,
t
){
return
t
>
n
?
-
1
:
n
>
t
?
1
:
n
>=
t
?
0
:
0
/
0
}
function
t
(
n
){
return
null
!=
n
&&!
isNaN
(
n
)}
function
e
(
n
){
return
{
left
:
function
(
t
,
e
,
r
,
u
){
for
(
arguments
.
length
<
3
&&
(
r
=
0
),
arguments
.
length
<
4
&&
(
u
=
t
.
length
);
u
>
r
;){
var
i
=
r
+
u
>>>
1
;
n
(
t
[
i
],
e
)
<
0
?
r
=
i
+
1
:
u
=
i
}
return
r
},
right
:
function
(
t
,
e
,
r
,
u
){
for
(
arguments
.
length
<
3
&&
(
r
=
0
),
arguments
.
length
<
4
&&
(
u
=
t
.
length
);
u
>
r
;){
var
i
=
r
+
u
>>>
1
;
n
(
t
[
i
],
e
)
>
0
?
u
=
i
:
r
=
i
+
1
}
return
r
}}}
function
r
(
n
){
return
n
.
length
}
function
u
(
n
){
for
(
var
t
=
1
;
n
*
t
%
1
;)
t
*=
10
;
return
t
}
function
i
(
n
,
t
){
try
{
for
(
var
e
in
t
)
Object
.
defineProperty
(
n
.
prototype
,
e
,{
value
:
t
[
e
],
enumerable
:
!
1
})}
catch
(
r
){
n
.
prototype
=
t
}}
function
o
(){}
function
a
(
n
){
return
ha
+
n
in
this
}
function
c
(
n
){
return
n
=
ha
+
n
,
n
in
this
&&
delete
this
[
n
]}
function
s
(){
var
n
=
[];
return
this
.
forEach
(
function
(
t
){
n
.
push
(
t
)}),
n
}
function
l
(){
var
n
=
0
;
for
(
var
t
in
this
)
t
.
charCodeAt
(
0
)
===
ga
&&++
n
;
return
n
}
function
f
(){
for
(
var
n
in
this
)
if
(
n
.
charCodeAt
(
0
)
===
ga
)
return
!
1
;
return
!
0
}
function
h
(){}
function
g
(
n
,
t
,
e
){
return
function
(){
var
r
=
e
.
apply
(
t
,
arguments
);
return
r
===
t
?
n
:
r
}}
function
p
(
n
,
t
){
if
(
t
in
n
)
return
t
;
t
=
t
.
charAt
(
0
).
toUpperCase
()
+
t
.
substring
(
1
);
for
(
var
e
=
0
,
r
=
pa
.
length
;
r
>
e
;
++
e
){
var
u
=
pa
[
e
]
+
t
;
if
(
u
in
n
)
return
u
}}
function
v
(){}
function
d
(){}
function
m
(
n
){
function
t
(){
for
(
var
t
,
r
=
e
,
u
=-
1
,
i
=
r
.
length
;
++
u
<
i
;)(
t
=
r
[
u
].
on
)
&&
t
.
apply
(
this
,
arguments
);
return
n
}
var
e
=
[],
r
=
new
o
;
return
t
.
on
=
function
(
t
,
u
){
var
i
,
o
=
r
.
get
(
t
);
return
arguments
.
length
<
2
?
o
&&
o
.
on
:(
o
&&
(
o
.
on
=
null
,
e
=
e
.
slice
(
0
,
i
=
e
.
indexOf
(
o
)).
concat
(
e
.
slice
(
i
+
1
)),
r
.
remove
(
t
)),
u
&&
e
.
push
(
r
.
set
(
t
,{
on
:
u
})),
n
)},
t
}
function
y
(){
Go
.
event
.
preventDefault
()}
function
x
(){
for
(
var
n
,
t
=
Go
.
event
;
n
=
t
.
sourceEvent
;)
t
=
n
;
return
t
}
function
M
(
n
){
for
(
var
t
=
new
d
,
e
=
0
,
r
=
arguments
.
length
;
++
e
<
r
;)
t
[
arguments
[
e
]]
=
m
(
t
);
return
t
.
of
=
function
(
e
,
r
){
return
function
(
u
){
try
{
var
i
=
u
.
sourceEvent
=
Go
.
event
;
u
.
target
=
n
,
Go
.
event
=
u
,
t
[
u
.
type
].
apply
(
e
,
r
)}
finally
{
Go
.
event
=
i
}}},
t
}
function
_
(
n
){
return
da
(
n
,
_a
),
n
}
function
b
(
n
){
return
"
function
"
==
typeof
n
?
n
:
function
(){
return
ma
(
n
,
this
)}}
function
w
(
n
){
return
"
function
"
==
typeof
n
?
n
:
function
(){
return
ya
(
n
,
this
)}}
function
S
(
n
,
t
){
function
e
(){
this
.
removeAttribute
(
n
)}
function
r
(){
this
.
removeAttributeNS
(
n
.
space
,
n
.
local
)}
function
u
(){
this
.
setAttribute
(
n
,
t
)}
function
i
(){
this
.
setAttributeNS
(
n
.
space
,
n
.
local
,
t
)}
function
o
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
this
.
removeAttribute
(
n
):
this
.
setAttribute
(
n
,
e
)}
function
a
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
this
.
removeAttributeNS
(
n
.
space
,
n
.
local
):
this
.
setAttributeNS
(
n
.
space
,
n
.
local
,
e
)}
return
n
=
Go
.
ns
.
qualify
(
n
),
null
==
t
?
n
.
local
?
r
:
e
:
"
function
"
==
typeof
t
?
n
.
local
?
a
:
o
:
n
.
local
?
i
:
u
}
function
k
(
n
){
return
n
.
trim
().
replace
(
/
\s
+/g
,
"
"
)}
function
E
(
n
){
return
new
RegExp
(
"
(?:^|
\\
s+)
"
+
Go
.
requote
(
n
)
+
"
(?:
\\
s+|$)
"
,
"
g
"
)}
function
N
(
n
){
return
n
.
trim
().
split
(
/^|
\s
+/
)}
function
A
(
n
,
t
){
function
e
(){
for
(
var
e
=-
1
;
++
e
<
u
;)
n
[
e
](
this
,
t
)}
function
r
(){
for
(
var
e
=-
1
,
r
=
t
.
apply
(
this
,
arguments
);
++
e
<
u
;)
n
[
e
](
this
,
r
)}
n
=
N
(
n
).
map
(
C
);
var
u
=
n
.
length
;
return
"
function
"
==
typeof
t
?
r
:
e
}
function
C
(
n
){
var
t
=
E
(
n
);
return
function
(
e
,
r
){
if
(
u
=
e
.
classList
)
return
r
?
u
.
add
(
n
):
u
.
remove
(
n
);
var
u
=
e
.
getAttribute
(
"
class
"
)
||
""
;
r
?(
t
.
lastIndex
=
0
,
t
.
test
(
u
)
||
e
.
setAttribute
(
"
class
"
,
k
(
u
+
"
"
+
n
))):
e
.
setAttribute
(
"
class
"
,
k
(
u
.
replace
(
t
,
"
"
)))}}
function
L
(
n
,
t
,
e
){
function
r
(){
this
.
style
.
removeProperty
(
n
)}
function
u
(){
this
.
style
.
setProperty
(
n
,
t
,
e
)}
function
i
(){
var
r
=
t
.
apply
(
this
,
arguments
);
null
==
r
?
this
.
style
.
removeProperty
(
n
):
this
.
style
.
setProperty
(
n
,
r
,
e
)}
return
null
==
t
?
r
:
"
function
"
==
typeof
t
?
i
:
u
}
function
T
(
n
,
t
){
function
e
(){
delete
this
[
n
]}
function
r
(){
this
[
n
]
=
t
}
function
u
(){
var
e
=
t
.
apply
(
this
,
arguments
);
null
==
e
?
delete
this
[
n
]:
this
[
n
]
=
e
}
return
null
==
t
?
e
:
"
function
"
==
typeof
t
?
u
:
r
}
function
q
(
n
){
return
"
function
"
==
typeof
n
?
n
:(
n
=
Go
.
ns
.
qualify
(
n
)).
local
?
function
(){
return
this
.
ownerDocument
.
createElementNS
(
n
.
space
,
n
.
local
)}:
function
(){
return
this
.
ownerDocument
.
createElementNS
(
this
.
namespaceURI
,
n
)}}
function
z
(
n
){
return
{
__data__
:
n
}}
function
R
(
n
){
return
function
(){
return
Ma
(
this
,
n
)}}
function
D
(
t
){
return
arguments
.
length
||
(
t
=
n
),
function
(
n
,
e
){
return
n
&&
e
?
t
(
n
.
__data__
,
e
.
__data__
):
!
n
-!
e
}}
function
P
(
n
,
t
){
for
(
var
e
=
0
,
r
=
n
.
length
;
r
>
e
;
e
++
)
for
(
var
u
,
i
=
n
[
e
],
o
=
0
,
a
=
i
.
length
;
a
>
o
;
o
++
)(
u
=
i
[
o
])
&&
t
(
u
,
o
,
e
);
return
n
}
function
U
(
n
){
return
da
(
n
,
wa
),
n
}
function
j
(
n
){
var
t
,
e
;
return
function
(
r
,
u
,
i
){
var
o
,
a
=
n
[
i
].
update
,
c
=
a
.
length
;
for
(
i
!=
e
&&
(
e
=
i
,
t
=
0
),
u
>=
t
&&
(
t
=
u
+
1
);
!
(
o
=
a
[
t
])
&&++
t
<
c
;);
return
o
}}
function
H
(){
var
n
=
this
.
__transition__
;
n
&&++
n
.
active
}
function
F
(
n
,
t
,
e
){
function
r
(){
var
t
=
this
[
o
];
t
&&
(
this
.
removeEventListener
(
n
,
t
,
t
.
$
),
delete
this
[
o
])}
function
u
(){
var
u
=
c
(
t
,
Qo
(
arguments
));
r
.
call
(
this
),
this
.
addEventListener
(
n
,
this
[
o
]
=
u
,
u
.
$
=
e
),
u
.
_
=
t
}
function
i
(){
var
t
,
e
=
new
RegExp
(
"
^__on([^.]+)
"
+
Go
.
requote
(
n
)
+
"
$
"
);
for
(
var
r
in
this
)
if
(
t
=
r
.
match
(
e
)){
var
u
=
this
[
r
];
this
.
removeEventListener
(
t
[
1
],
u
,
u
.
$
),
delete
this
[
r
]}}
var
o
=
"
__on
"
+
n
,
a
=
n
.
indexOf
(
"
.
"
),
c
=
O
;
a
>
0
&&
(
n
=
n
.
substring
(
0
,
a
));
var
s
=
ka
.
get
(
n
);
return
s
&&
(
n
=
s
,
c
=
I
),
a
?
t
?
u
:
r
:
t
?
v
:
i
}
function
O
(
n
,
t
){
return
function
(
e
){
var
r
=
Go
.
event
;
Go
.
event
=
e
,
t
[
0
]
=
this
.
__data__
;
try
{
n
.
apply
(
this
,
t
)}
finally
{
Go
.
event
=
r
}}}
function
I
(
n
,
t
){
var
e
=
O
(
n
,
t
);
return
function
(
n
){
var
t
=
this
,
r
=
n
.
relatedTarget
;
r
&&
(
r
===
t
||
8
&
r
.
compareDocumentPosition
(
t
))
||
e
.
call
(
t
,
n
)}}
function
Y
(){
var
n
=
"
.dragsuppress-
"
+
++
Na
,
t
=
"
click
"
+
n
,
e
=
Go
.
select
(
ea
).
on
(
"
touchmove
"
+
n
,
y
).
on
(
"
dragstart
"
+
n
,
y
).
on
(
"
selectstart
"
+
n
,
y
);
if
(
Ea
){
var
r
=
ta
.
style
,
u
=
r
[
Ea
];
r
[
Ea
]
=
"
none
"
}
return
function
(
i
){
function
o
(){
e
.
on
(
t
,
null
)}
e
.
on
(
n
,
null
),
Ea
&&
(
r
[
Ea
]
=
u
),
i
&&
(
e
.
on
(
t
,
function
(){
y
(),
o
()},
!
0
),
setTimeout
(
o
,
0
))}}
function
Z
(
n
,
t
){
t
.
changedTouches
&&
(
t
=
t
.
changedTouches
[
0
]);
var
e
=
n
.
ownerSVGElement
||
n
;
if
(
e
.
createSVGPoint
){
var
r
=
e
.
createSVGPoint
();
return
r
.
x
=
t
.
clientX
,
r
.
y
=
t
.
clientY
,
r
=
r
.
matrixTransform
(
n
.
getScreenCTM
().
inverse
()),[
r
.
x
,
r
.
y
]}
var
u
=
n
.
getBoundingClientRect
();
return
[
t
.
clientX
-
u
.
left
-
n
.
clientLeft
,
t
.
clientY
-
u
.
top
-
n
.
clientTop
]}
function
V
(){
return
Go
.
event
.
changedTouches
[
0
].
identifier
}
function
$
(){
return
Go
.
event
.
target
}
function
X
(){
return
ea
}
function
B
(
n
){
return
n
>
0
?
1
:
0
>
n
?
-
1
:
0
}
function
J
(
n
,
t
,
e
){
return
(
t
[
0
]
-
n
[
0
])
*
(
e
[
1
]
-
n
[
1
])
-
(
t
[
1
]
-
n
[
1
])
*
(
e
[
0
]
-
n
[
0
])}
function
W
(
n
){
return
n
>
1
?
0
:
-
1
>
n
?
Aa
:
Math
.
acos
(
n
)}
function
G
(
n
){
return
n
>
1
?
La
:
-
1
>
n
?
-
La
:
Math
.
asin
(
n
)}
function
K
(
n
){
return
((
n
=
Math
.
exp
(
n
))
-
1
/
n
)
/
2
}
function
Q
(
n
){
return
((
n
=
Math
.
exp
(
n
))
+
1
/
n
)
/
2
}
function
nt
(
n
){
return
((
n
=
Math
.
exp
(
2
*
n
))
-
1
)
/
(
n
+
1
)}
function
tt
(
n
){
return
(
n
=
Math
.
sin
(
n
/
2
))
*
n
}
function
et
(){}
function
rt
(
n
,
t
,
e
){
return
new
ut
(
n
,
t
,
e
)}
function
ut
(
n
,
t
,
e
){
this
.
h
=
n
,
this
.
s
=
t
,
this
.
l
=
e
}
function
it
(
n
,
t
,
e
){
function
r
(
n
){
return
n
>
360
?
n
-=
360
:
0
>
n
&&
(
n
+=
360
),
60
>
n
?
i
+
(
o
-
i
)
*
n
/
60
:
180
>
n
?
o
:
240
>
n
?
i
+
(
o
-
i
)
*
(
240
-
n
)
/
60
:
i
}
function
u
(
n
){
return
Math
.
round
(
255
*
r
(
n
))}
var
i
,
o
;
return
n
=
isNaN
(
n
)?
0
:(
n
%=
360
)
<
0
?
n
+
360
:
n
,
t
=
isNaN
(
t
)?
0
:
0
>
t
?
0
:
t
>
1
?
1
:
t
,
e
=
0
>
e
?
0
:
e
>
1
?
1
:
e
,
o
=
.
5
>=
e
?
e
*
(
1
+
t
):
e
+
t
-
e
*
t
,
i
=
2
*
e
-
o
,
yt
(
u
(
n
+
120
),
u
(
n
),
u
(
n
-
120
))}
function
ot
(
n
,
t
,
e
){
return
new
at
(
n
,
t
,
e
)}
function
at
(
n
,
t
,
e
){
this
.
h
=
n
,
this
.
c
=
t
,
this
.
l
=
e
}
function
ct
(
n
,
t
,
e
){
return
isNaN
(
n
)
&&
(
n
=
0
),
isNaN
(
t
)
&&
(
t
=
0
),
st
(
e
,
Math
.
cos
(
n
*=
za
)
*
t
,
Math
.
sin
(
n
)
*
t
)}
function
st
(
n
,
t
,
e
){
return
new
lt
(
n
,
t
,
e
)}
function
lt
(
n
,
t
,
e
){
this
.
l
=
n
,
this
.
a
=
t
,
this
.
b
=
e
}
function
ft
(
n
,
t
,
e
){
var
r
=
(
n
+
16
)
/
116
,
u
=
r
+
t
/
500
,
i
=
r
-
e
/
200
;
return
u
=
gt
(
u
)
*
Za
,
r
=
gt
(
r
)
*
Va
,
i
=
gt
(
i
)
*
$a
,
yt
(
vt
(
3.2404542
*
u
-
1.5371385
*
r
-
.
4985314
*
i
),
vt
(
-
.
969266
*
u
+
1.8760108
*
r
+
.
041556
*
i
),
vt
(.
0556434
*
u
-
.
2040259
*
r
+
1.0572252
*
i
))}
function
ht
(
n
,
t
,
e
){
return
n
>
0
?
ot
(
Math
.
atan2
(
e
,
t
)
*
Ra
,
Math
.
sqrt
(
t
*
t
+
e
*
e
),
n
):
ot
(
0
/
0
,
0
/
0
,
n
)}
function
gt
(
n
){
return
n
>
.
206893034
?
n
*
n
*
n
:(
n
-
4
/
29
)
/
7.787037
}
function
pt
(
n
){
return
n
>
.
008856
?
Math
.
pow
(
n
,
1
/
3
):
7.787037
*
n
+
4
/
29
}
function
vt
(
n
){
return
Math
.
round
(
255
*
(.
00304
>=
n
?
12.92
*
n
:
1.055
*
Math
.
pow
(
n
,
1
/
2.4
)
-
.
055
))}
function
dt
(
n
){
return
yt
(
n
>>
16
,
255
&
n
>>
8
,
255
&
n
)}
function
mt
(
n
){
return
dt
(
n
)
+
""
}
function
yt
(
n
,
t
,
e
){
return
new
xt
(
n
,
t
,
e
)}
function
xt
(
n
,
t
,
e
){
this
.
r
=
n
,
this
.
g
=
t
,
this
.
b
=
e
}
function
Mt
(
n
){
return
16
>
n
?
"
0
"
+
Math
.
max
(
0
,
n
).
toString
(
16
):
Math
.
min
(
255
,
n
).
toString
(
16
)}
function
_t
(
n
,
t
,
e
){
var
r
,
u
,
i
,
o
=
0
,
a
=
0
,
c
=
0
;
if
(
r
=
/
([
a-z
]
+
)\((
.*
)\)
/i
.
exec
(
n
))
switch
(
u
=
r
[
2
].
split
(
"
,
"
),
r
[
1
]){
case
"
hsl
"
:
return
e
(
parseFloat
(
u
[
0
]),
parseFloat
(
u
[
1
])
/
100
,
parseFloat
(
u
[
2
])
/
100
);
case
"
rgb
"
:
return
t
(
kt
(
u
[
0
]),
kt
(
u
[
1
]),
kt
(
u
[
2
]))}
return
(
i
=
Ja
.
get
(
n
))?
t
(
i
.
r
,
i
.
g
,
i
.
b
):(
null
==
n
||
"
#
"
!==
n
.
charAt
(
0
)
||
isNaN
(
i
=
parseInt
(
n
.
substring
(
1
),
16
))
||
(
4
===
n
.
length
?(
o
=
(
3840
&
i
)
>>
4
,
o
=
o
>>
4
|
o
,
a
=
240
&
i
,
a
=
a
>>
4
|
a
,
c
=
15
&
i
,
c
=
c
<<
4
|
c
):
7
===
n
.
length
&&
(
o
=
(
16711680
&
i
)
>>
16
,
a
=
(
65280
&
i
)
>>
8
,
c
=
255
&
i
)),
t
(
o
,
a
,
c
))}
function
bt
(
n
,
t
,
e
){
var
r
,
u
,
i
=
Math
.
min
(
n
/=
255
,
t
/=
255
,
e
/=
255
),
o
=
Math
.
max
(
n
,
t
,
e
),
a
=
o
-
i
,
c
=
(
o
+
i
)
/
2
;
return
a
?(
u
=
.
5
>
c
?
a
/
(
o
+
i
):
a
/
(
2
-
o
-
i
),
r
=
n
==
o
?(
t
-
e
)
/
a
+
(
e
>
t
?
6
:
0
):
t
==
o
?(
e
-
n
)
/
a
+
2
:(
n
-
t
)
/
a
+
4
,
r
*=
60
):(
r
=
0
/
0
,
u
=
c
>
0
&&
1
>
c
?
0
:
r
),
rt
(
r
,
u
,
c
)}
function
wt
(
n
,
t
,
e
){
n
=
St
(
n
),
t
=
St
(
t
),
e
=
St
(
e
);
var
r
=
pt
((.
4124564
*
n
+
.
3575761
*
t
+
.
1804375
*
e
)
/
Za
),
u
=
pt
((.
2126729
*
n
+
.
7151522
*
t
+
.
072175
*
e
)
/
Va
),
i
=
pt
((.
0193339
*
n
+
.
119192
*
t
+
.
9503041
*
e
)
/
$a
);
return
st
(
116
*
u
-
16
,
500
*
(
r
-
u
),
200
*
(
u
-
i
))}
function
St
(
n
){
return
(
n
/=
255
)
<=
.
04045
?
n
/
12.92
:
Math
.
pow
((
n
+
.
055
)
/
1.055
,
2.4
)}
function
kt
(
n
){
var
t
=
parseFloat
(
n
);
return
"
%
"
===
n
.
charAt
(
n
.
length
-
1
)?
Math
.
round
(
2.55
*
t
):
t
}
function
Et
(
n
){
return
"
function
"
==
typeof
n
?
n
:
function
(){
return
n
}}
function
Nt
(
n
){
return
n
}
function
At
(
n
){
return
function
(
t
,
e
,
r
){
return
2
===
arguments
.
length
&&
"
function
"
==
typeof
e
&&
(
r
=
e
,
e
=
null
),
Ct
(
t
,
e
,
n
,
r
)}}
function
Ct
(
n
,
t
,
e
,
r
){
function
u
(){
var
n
,
t
=
c
.
status
;
if
(
!
t
&&
c
.
responseText
||
t
>=
200
&&
300
>
t
||
304
===
t
){
try
{
n
=
e
.
call
(
i
,
c
)}
catch
(
r
){
return
o
.
error
.
call
(
i
,
r
),
void
0
}
o
.
load
.
call
(
i
,
n
)}
else
o
.
error
.
call
(
i
,
c
)}
var
i
=
{},
o
=
Go
.
dispatch
(
"
beforesend
"
,
"
progress
"
,
"
load
"
,
"
error
"
),
a
=
{},
c
=
new
XMLHttpRequest
,
s
=
null
;
return
!
ea
.
XDomainRequest
||
"
withCredentials
"
in
c
||!
/^
(
http
(
s
)?
:
)?\/\/
/
.
test
(
n
)
||
(
c
=
new
XDomainRequest
),
"
onload
"
in
c
?
c
.
onload
=
c
.
onerror
=
u
:
c
.
onreadystatechange
=
function
(){
c
.
readyState
>
3
&&
u
()},
c
.
onprogress
=
function
(
n
){
var
t
=
Go
.
event
;
Go
.
event
=
n
;
try
{
o
.
progress
.
call
(
i
,
c
)}
finally
{
Go
.
event
=
t
}},
i
.
header
=
function
(
n
,
t
){
return
n
=
(
n
+
""
).
toLowerCase
(),
arguments
.
length
<
2
?
a
[
n
]:(
null
==
t
?
delete
a
[
n
]:
a
[
n
]
=
t
+
""
,
i
)},
i
.
mimeType
=
function
(
n
){
return
arguments
.
length
?(
t
=
null
==
n
?
null
:
n
+
""
,
i
):
t
},
i
.
responseType
=
function
(
n
){
return
arguments
.
length
?(
s
=
n
,
i
):
s
},
i
.
response
=
function
(
n
){
return
e
=
n
,
i
},[
"
get
"
,
"
post
"
].
forEach
(
function
(
n
){
i
[
n
]
=
function
(){
return
i
.
send
.
apply
(
i
,[
n
].
concat
(
Qo
(
arguments
)))}}),
i
.
send
=
function
(
e
,
r
,
u
){
if
(
2
===
arguments
.
length
&&
"
function
"
==
typeof
r
&&
(
u
=
r
,
r
=
null
),
c
.
open
(
e
,
n
,
!
0
),
null
==
t
||
"
accept
"
in
a
||
(
a
.
accept
=
t
+
"
,*/*
"
),
c
.
setRequestHeader
)
for
(
var
l
in
a
)
c
.
setRequestHeader
(
l
,
a
[
l
]);
return
null
!=
t
&&
c
.
overrideMimeType
&&
c
.
overrideMimeType
(
t
),
null
!=
s
&&
(
c
.
responseType
=
s
),
null
!=
u
&&
i
.
on
(
"
error
"
,
u
).
on
(
"
load
"
,
function
(
n
){
u
(
null
,
n
)}),
o
.
beforesend
.
call
(
i
,
c
),
c
.
send
(
null
==
r
?
null
:
r
),
i
},
i
.
abort
=
function
(){
return
c
.
abort
(),
i
},
Go
.
rebind
(
i
,
o
,
"
on
"
),
null
==
r
?
i
:
i
.
get
(
Lt
(
r
))}
function
Lt
(
n
){
return
1
===
n
.
length
?
function
(
t
,
e
){
n
(
null
==
t
?
e
:
null
)}:
n
}
function
Tt
(){
var
n
=
qt
(),
t
=
zt
()
-
n
;
t
>
24
?(
isFinite
(
t
)
&&
(
clearTimeout
(
Qa
),
Qa
=
setTimeout
(
Tt
,
t
)),
Ka
=
0
):(
Ka
=
1
,
tc
(
Tt
))}
function
qt
(){
var
n
=
Date
.
now
();
for
(
nc
=
Wa
;
nc
;)
n
>=
nc
.
t
&&
(
nc
.
f
=
nc
.
c
(
n
-
nc
.
t
)),
nc
=
nc
.
n
;
return
n
}
function
zt
(){
for
(
var
n
,
t
=
Wa
,
e
=
1
/
0
;
t
;)
t
.
f
?
t
=
n
?
n
.
n
=
t
.
n
:
Wa
=
t
.
n
:(
t
.
t
<
e
&&
(
e
=
t
.
t
),
t
=
(
n
=
t
).
n
);
return
Ga
=
n
,
e
}
function
Rt
(
n
,
t
){
return
t
-
(
n
?
Math
.
ceil
(
Math
.
log
(
n
)
/
Math
.
LN10
):
1
)}
function
Dt
(
n
,
t
){
var
e
=
Math
.
pow
(
10
,
3
*
fa
(
8
-
t
));
return
{
scale
:
t
>
8
?
function
(
n
){
return
n
/
e
}:
function
(
n
){
return
n
*
e
},
symbol
:
n
}}
function
Pt
(
n
){
var
t
=
n
.
decimal
,
e
=
n
.
thousands
,
r
=
n
.
grouping
,
u
=
n
.
currency
,
i
=
r
?
function
(
n
){
for
(
var
t
=
n
.
length
,
u
=
[],
i
=
0
,
o
=
r
[
0
];
t
>
0
&&
o
>
0
;)
u
.
push
(
n
.
substring
(
t
-=
o
,
t
+
o
)),
o
=
r
[
i
=
(
i
+
1
)
%
r
.
length
];
return
u
.
reverse
().
join
(
e
)}:
Nt
;
return
function
(
n
){
var
e
=
rc
.
exec
(
n
),
r
=
e
[
1
]
||
"
"
,
o
=
e
[
2
]
||
"
>
"
,
a
=
e
[
3
]
||
""
,
c
=
e
[
4
]
||
""
,
s
=
e
[
5
],
l
=+
e
[
6
],
f
=
e
[
7
],
h
=
e
[
8
],
g
=
e
[
9
],
p
=
1
,
v
=
""
,
d
=
""
,
m
=!
1
;
switch
(
h
&&
(
h
=+
h
.
substring
(
1
)),(
s
||
"
0
"
===
r
&&
"
=
"
===
o
)
&&
(
s
=
r
=
"
0
"
,
o
=
"
=
"
,
f
&&
(
l
-=
Math
.
floor
((
l
-
1
)
/
4
))),
g
){
case
"
n
"
:
f
=!
0
,
g
=
"
g
"
;
break
;
case
"
%
"
:
p
=
100
,
d
=
"
%
"
,
g
=
"
f
"
;
break
;
case
"
p
"
:
p
=
100
,
d
=
"
%
"
,
g
=
"
r
"
;
break
;
case
"
b
"
:
case
"
o
"
:
case
"
x
"
:
case
"
X
"
:
"
#
"
===
c
&&
(
v
=
"
0
"
+
g
.
toLowerCase
());
case
"
c
"
:
case
"
d
"
:
m
=!
0
,
h
=
0
;
break
;
case
"
s
"
:
p
=-
1
,
g
=
"
r
"
}
"
$
"
===
c
&&
(
v
=
u
[
0
],
d
=
u
[
1
]),
"
r
"
!=
g
||
h
||
(
g
=
"
g
"
),
null
!=
h
&&
(
"
g
"
==
g
?
h
=
Math
.
max
(
1
,
Math
.
min
(
21
,
h
)):(
"
e
"
==
g
||
"
f
"
==
g
)
&&
(
h
=
Math
.
max
(
0
,
Math
.
min
(
20
,
h
)))),
g
=
uc
.
get
(
g
)
||
Ut
;
var
y
=
s
&&
f
;
return
function
(
n
){
var
e
=
d
;
if
(
m
&&
n
%
1
)
return
""
;
var
u
=
0
>
n
||
0
===
n
&&
0
>
1
/
n
?(
n
=-
n
,
"
-
"
):
a
;
if
(
0
>
p
){
var
c
=
Go
.
formatPrefix
(
n
,
h
);
n
=
c
.
scale
(
n
),
e
=
c
.
symbol
+
d
}
else
n
*=
p
;
n
=
g
(
n
,
h
);
var
x
=
n
.
lastIndexOf
(
"
.
"
),
M
=
0
>
x
?
n
:
n
.
substring
(
0
,
x
),
_
=
0
>
x
?
""
:
t
+
n
.
substring
(
x
+
1
);
!
s
&&
f
&&
(
M
=
i
(
M
));
var
b
=
v
.
length
+
M
.
length
+
_
.
length
+
(
y
?
0
:
u
.
length
),
w
=
l
>
b
?
new
Array
(
b
=
l
-
b
+
1
).
join
(
r
):
""
;
return
y
&&
(
M
=
i
(
w
+
M
)),
u
+=
v
,
n
=
M
+
_
,(
"
<
"
===
o
?
u
+
n
+
w
:
"
>
"
===
o
?
w
+
u
+
n
:
"
^
"
===
o
?
w
.
substring
(
0
,
b
>>=
1
)
+
u
+
n
+
w
.
substring
(
b
):
u
+
(
y
?
n
:
w
+
n
))
+
e
}}}
function
Ut
(
n
){
return
n
+
""
}
function
jt
(){
this
.
_
=
new
Date
(
arguments
.
length
>
1
?
Date
.
UTC
.
apply
(
this
,
arguments
):
arguments
[
0
])}
function
Ht
(
n
,
t
,
e
){
function
r
(
t
){
var
e
=
n
(
t
),
r
=
i
(
e
,
1
);
return
r
-
t
>
t
-
e
?
e
:
r
}
function
u
(
e
){
return
t
(
e
=
n
(
new
oc
(
e
-
1
)),
1
),
e
}
function
i
(
n
,
e
){
return
t
(
n
=
new
oc
(
+
n
),
e
),
n
}
function
o
(
n
,
r
,
i
){
var
o
=
u
(
n
),
a
=
[];
if
(
i
>
1
)
for
(;
r
>
o
;)
e
(
o
)
%
i
||
a
.
push
(
new
Date
(
+
o
)),
t
(
o
,
1
);
else
for
(;
r
>
o
;)
a
.
push
(
new
Date
(
+
o
)),
t
(
o
,
1
);
return
a
}
function
a
(
n
,
t
,
e
){
try
{
oc
=
jt
;
var
r
=
new
jt
;
return
r
.
_
=
n
,
o
(
r
,
t
,
e
)}
finally
{
oc
=
Date
}}
n
.
floor
=
n
,
n
.
round
=
r
,
n
.
ceil
=
u
,
n
.
offset
=
i
,
n
.
range
=
o
;
var
c
=
n
.
utc
=
Ft
(
n
);
return
c
.
floor
=
c
,
c
.
round
=
Ft
(
r
),
c
.
ceil
=
Ft
(
u
),
c
.
offset
=
Ft
(
i
),
c
.
range
=
a
,
n
}
function
Ft
(
n
){
return
function
(
t
,
e
){
try
{
oc
=
jt
;
var
r
=
new
jt
;
return
r
.
_
=
t
,
n
(
r
,
e
).
_
}
finally
{
oc
=
Date
}}}
function
Ot
(
n
){
function
t
(
n
){
function
t
(
t
){
for
(
var
e
,
u
,
i
,
o
=
[],
a
=-
1
,
c
=
0
;
++
a
<
r
;)
37
===
n
.
charCodeAt
(
a
)
&&
(
o
.
push
(
n
.
substring
(
c
,
a
)),
null
!=
(
u
=
cc
[
e
=
n
.
charAt
(
++
a
)])
&&
(
e
=
n
.
charAt
(
++
a
)),(
i
=
A
[
e
])
&&
(
e
=
i
(
t
,
null
==
u
?
"
e
"
===
e
?
"
"
:
"
0
"
:
u
)),
o
.
push
(
e
),
c
=
a
+
1
);
return
o
.
push
(
n
.
substring
(
c
,
a
)),
o
.
join
(
""
)}
var
r
=
n
.
length
;
return
t
.
parse
=
function
(
t
){
var
r
=
{
y
:
1900
,
m
:
0
,
d
:
1
,
H
:
0
,
M
:
0
,
S
:
0
,
L
:
0
,
Z
:
null
},
u
=
e
(
r
,
n
,
t
,
0
);
if
(
u
!=
t
.
length
)
return
null
;
"
p
"
in
r
&&
(
r
.
H
=
r
.
H
%
12
+
12
*
r
.
p
);
var
i
=
null
!=
r
.
Z
&&
oc
!==
jt
,
o
=
new
(
i
?
jt
:
oc
);
return
"
j
"
in
r
?
o
.
setFullYear
(
r
.
y
,
0
,
r
.
j
):
"
w
"
in
r
&&
(
"
W
"
in
r
||
"
U
"
in
r
)?(
o
.
setFullYear
(
r
.
y
,
0
,
1
),
o
.
setFullYear
(
r
.
y
,
0
,
"
W
"
in
r
?(
r
.
w
+
6
)
%
7
+
7
*
r
.
W
-
(
o
.
getDay
()
+
5
)
%
7
:
r
.
w
+
7
*
r
.
U
-
(
o
.
getDay
()
+
6
)
%
7
)):
o
.
setFullYear
(
r
.
y
,
r
.
m
,
r
.
d
),
o
.
setHours
(
r
.
H
+
Math
.
floor
(
r
.
Z
/
100
),
r
.
M
+
r
.
Z
%
100
,
r
.
S
,
r
.
L
),
i
?
o
.
_
:
o
},
t
.
toString
=
function
(){
return
n
},
t
}
function
e
(
n
,
t
,
e
,
r
){
for
(
var
u
,
i
,
o
,
a
=
0
,
c
=
t
.
length
,
s
=
e
.
length
;
c
>
a
;){
if
(
r
>=
s
)
return
-
1
;
if
(
u
=
t
.
charCodeAt
(
a
++
),
37
===
u
){
if
(
o
=
t
.
charAt
(
a
++
),
i
=
C
[
o
in
cc
?
t
.
charAt
(
a
++
):
o
],
!
i
||
(
r
=
i
(
n
,
e
,
r
))
<
0
)
return
-
1
}
else
if
(
u
!=
e
.
charCodeAt
(
r
++
))
return
-
1
}
return
r
}
function
r
(
n
,
t
,
e
){
b
.
lastIndex
=
0
;
var
r
=
b
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
w
=
w
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
u
(
n
,
t
,
e
){
M
.
lastIndex
=
0
;
var
r
=
M
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
w
=
_
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
i
(
n
,
t
,
e
){
E
.
lastIndex
=
0
;
var
r
=
E
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
m
=
N
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
o
(
n
,
t
,
e
){
S
.
lastIndex
=
0
;
var
r
=
S
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
m
=
k
.
get
(
r
[
0
].
toLowerCase
()),
e
+
r
[
0
].
length
):
-
1
}
function
a
(
n
,
t
,
r
){
return
e
(
n
,
A
.
c
.
toString
(),
t
,
r
)}
function
c
(
n
,
t
,
r
){
return
e
(
n
,
A
.
x
.
toString
(),
t
,
r
)}
function
s
(
n
,
t
,
r
){
return
e
(
n
,
A
.
X
.
toString
(),
t
,
r
)}
function
l
(
n
,
t
,
e
){
var
r
=
x
.
get
(
t
.
substring
(
e
,
e
+=
2
).
toLowerCase
());
return
null
==
r
?
-
1
:(
n
.
p
=
r
,
e
)}
var
f
=
n
.
dateTime
,
h
=
n
.
date
,
g
=
n
.
time
,
p
=
n
.
periods
,
v
=
n
.
days
,
d
=
n
.
shortDays
,
m
=
n
.
months
,
y
=
n
.
shortMonths
;
t
.
utc
=
function
(
n
){
function
e
(
n
){
try
{
oc
=
jt
;
var
t
=
new
oc
;
return
t
.
_
=
n
,
r
(
t
)}
finally
{
oc
=
Date
}}
var
r
=
t
(
n
);
return
e
.
parse
=
function
(
n
){
try
{
oc
=
jt
;
var
t
=
r
.
parse
(
n
);
return
t
&&
t
.
_
}
finally
{
oc
=
Date
}},
e
.
toString
=
r
.
toString
,
e
},
t
.
multi
=
t
.
utc
.
multi
=
ae
;
var
x
=
Go
.
map
(),
M
=
Yt
(
v
),
_
=
Zt
(
v
),
b
=
Yt
(
d
),
w
=
Zt
(
d
),
S
=
Yt
(
m
),
k
=
Zt
(
m
),
E
=
Yt
(
y
),
N
=
Zt
(
y
);
p
.
forEach
(
function
(
n
,
t
){
x
.
set
(
n
.
toLowerCase
(),
t
)});
var
A
=
{
a
:
function
(
n
){
return
d
[
n
.
getDay
()]},
A
:
function
(
n
){
return
v
[
n
.
getDay
()]},
b
:
function
(
n
){
return
y
[
n
.
getMonth
()]},
B
:
function
(
n
){
return
m
[
n
.
getMonth
()]},
c
:
t
(
f
),
d
:
function
(
n
,
t
){
return
It
(
n
.
getDate
(),
t
,
2
)},
e
:
function
(
n
,
t
){
return
It
(
n
.
getDate
(),
t
,
2
)},
H
:
function
(
n
,
t
){
return
It
(
n
.
getHours
(),
t
,
2
)},
I
:
function
(
n
,
t
){
return
It
(
n
.
getHours
()
%
12
||
12
,
t
,
2
)},
j
:
function
(
n
,
t
){
return
It
(
1
+
ic
.
dayOfYear
(
n
),
t
,
3
)},
L
:
function
(
n
,
t
){
return
It
(
n
.
getMilliseconds
(),
t
,
3
)},
m
:
function
(
n
,
t
){
return
It
(
n
.
getMonth
()
+
1
,
t
,
2
)},
M
:
function
(
n
,
t
){
return
It
(
n
.
getMinutes
(),
t
,
2
)},
p
:
function
(
n
){
return
p
[
+
(
n
.
getHours
()
>=
12
)]},
S
:
function
(
n
,
t
){
return
It
(
n
.
getSeconds
(),
t
,
2
)},
U
:
function
(
n
,
t
){
return
It
(
ic
.
sundayOfYear
(
n
),
t
,
2
)},
w
:
function
(
n
){
return
n
.
getDay
()},
W
:
function
(
n
,
t
){
return
It
(
ic
.
mondayOfYear
(
n
),
t
,
2
)},
x
:
t
(
h
),
X
:
t
(
g
),
y
:
function
(
n
,
t
){
return
It
(
n
.
getFullYear
()
%
100
,
t
,
2
)},
Y
:
function
(
n
,
t
){
return
It
(
n
.
getFullYear
()
%
1
e4
,
t
,
4
)},
Z
:
ie
,
"
%
"
:
function
(){
return
"
%
"
}},
C
=
{
a
:
r
,
A
:
u
,
b
:
i
,
B
:
o
,
c
:
a
,
d
:
Qt
,
e
:
Qt
,
H
:
te
,
I
:
te
,
j
:
ne
,
L
:
ue
,
m
:
Kt
,
M
:
ee
,
p
:
l
,
S
:
re
,
U
:
$t
,
w
:
Vt
,
W
:
Xt
,
x
:
c
,
X
:
s
,
y
:
Jt
,
Y
:
Bt
,
Z
:
Wt
,
"
%
"
:
oe
};
return
t
}
function
It
(
n
,
t
,
e
){
var
r
=
0
>
n
?
"
-
"
:
""
,
u
=
(
r
?
-
n
:
n
)
+
""
,
i
=
u
.
length
;
return
r
+
(
e
>
i
?
new
Array
(
e
-
i
+
1
).
join
(
t
)
+
u
:
u
)}
function
Yt
(
n
){
return
new
RegExp
(
"
^(?:
"
+
n
.
map
(
Go
.
requote
).
join
(
"
|
"
)
+
"
)
"
,
"
i
"
)}
function
Zt
(
n
){
for
(
var
t
=
new
o
,
e
=-
1
,
r
=
n
.
length
;
++
e
<
r
;)
t
.
set
(
n
[
e
].
toLowerCase
(),
e
);
return
t
}
function
Vt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
1
));
return
r
?(
n
.
w
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
$t
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
U
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Xt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
));
return
r
?(
n
.
W
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Bt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
4
));
return
r
?(
n
.
y
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
Jt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
y
=
Gt
(
+
r
[
0
]),
e
+
r
[
0
].
length
):
-
1
}
function
Wt
(
n
,
t
,
e
){
return
/^
[
+-
]\d{4}
$/
.
test
(
t
=
t
.
substring
(
e
,
e
+
5
))?(
n
.
Z
=
-
t
,
e
+
5
):
-
1
}
function
Gt
(
n
){
return
n
+
(
n
>
68
?
1900
:
2
e3
)}
function
Kt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
m
=
r
[
0
]
-
1
,
e
+
r
[
0
].
length
):
-
1
}
function
Qt
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
d
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ne
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
3
));
return
r
?(
n
.
j
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
te
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
H
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ee
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
M
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
re
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
2
));
return
r
?(
n
.
S
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ue
(
n
,
t
,
e
){
sc
.
lastIndex
=
0
;
var
r
=
sc
.
exec
(
t
.
substring
(
e
,
e
+
3
));
return
r
?(
n
.
L
=+
r
[
0
],
e
+
r
[
0
].
length
):
-
1
}
function
ie
(
n
){
var
t
=
n
.
getTimezoneOffset
(),
e
=
t
>
0
?
"
-
"
:
"
+
"
,
r
=~~
(
fa
(
t
)
/
60
),
u
=
fa
(
t
)
%
60
;
return
e
+
It
(
r
,
"
0
"
,
2
)
+
It
(
u
,
"
0
"
,
2
)}
function
oe
(
n
,
t
,
e
){
lc
.
lastIndex
=
0
;
var
r
=
lc
.
exec
(
t
.
substring
(
e
,
e
+
1
));
return
r
?
e
+
r
[
0
].
length
:
-
1
}
function
ae
(
n
){
for
(
var
t
=
n
.
length
,
e
=-
1
;
++
e
<
t
;)
n
[
e
][
0
]
=
this
(
n
[
e
][
0
]);
return
function
(
t
){
for
(
var
e
=
0
,
r
=
n
[
e
];
!
r
[
1
](
t
);)
r
=
n
[
++
e
];
return
r
[
0
](
t
)}}
function
ce
(){}
function
se
(
n
,
t
,
e
){
var
r
=
e
.
s
=
n
+
t
,
u
=
r
-
n
,
i
=
r
-
u
;
e
.
t
=
n
-
i
+
(
t
-
u
)}
function
le
(
n
,
t
){
n
&&
pc
.
hasOwnProperty
(
n
.
type
)
&&
pc
[
n
.
type
](
n
,
t
)}
function
fe
(
n
,
t
,
e
){
var
r
,
u
=-
1
,
i
=
n
.
length
-
e
;
for
(
t
.
lineStart
();
++
u
<
i
;)
r
=
n
[
u
],
t
.
point
(
r
[
0
],
r
[
1
],
r
[
2
]);
t
.
lineEnd
()}
function
he
(
n
,
t
){
var
e
=-
1
,
r
=
n
.
length
;
for
(
t
.
polygonStart
();
++
e
<
r
;)
fe
(
n
[
e
],
t
,
1
);
t
.
polygonEnd
()}
function
ge
(){
function
n
(
n
,
t
){
n
*=
za
,
t
=
t
*
za
/
2
+
Aa
/
4
;
var
e
=
n
-
r
,
o
=
e
>=
0
?
1
:
-
1
,
a
=
o
*
e
,
c
=
Math
.
cos
(
t
),
s
=
Math
.
sin
(
t
),
l
=
i
*
s
,
f
=
u
*
c
+
l
*
Math
.
cos
(
a
),
h
=
l
*
o
*
Math
.
sin
(
a
);
dc
.
add
(
Math
.
atan2
(
h
,
f
)),
r
=
n
,
u
=
c
,
i
=
s
}
var
t
,
e
,
r
,
u
,
i
;
mc
.
point
=
function
(
o
,
a
){
mc
.
point
=
n
,
r
=
(
t
=
o
)
*
za
,
u
=
Math
.
cos
(
a
=
(
e
=
a
)
*
za
/
2
+
Aa
/
4
),
i
=
Math
.
sin
(
a
)},
mc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
pe
(
n
){
var
t
=
n
[
0
],
e
=
n
[
1
],
r
=
Math
.
cos
(
e
);
return
[
r
*
Math
.
cos
(
t
),
r
*
Math
.
sin
(
t
),
Math
.
sin
(
e
)]}
function
ve
(
n
,
t
){
return
n
[
0
]
*
t
[
0
]
+
n
[
1
]
*
t
[
1
]
+
n
[
2
]
*
t
[
2
]}
function
de
(
n
,
t
){
return
[
n
[
1
]
*
t
[
2
]
-
n
[
2
]
*
t
[
1
],
n
[
2
]
*
t
[
0
]
-
n
[
0
]
*
t
[
2
],
n
[
0
]
*
t
[
1
]
-
n
[
1
]
*
t
[
0
]]}
function
me
(
n
,
t
){
n
[
0
]
+=
t
[
0
],
n
[
1
]
+=
t
[
1
],
n
[
2
]
+=
t
[
2
]}
function
ye
(
n
,
t
){
return
[
n
[
0
]
*
t
,
n
[
1
]
*
t
,
n
[
2
]
*
t
]}
function
xe
(
n
){
var
t
=
Math
.
sqrt
(
n
[
0
]
*
n
[
0
]
+
n
[
1
]
*
n
[
1
]
+
n
[
2
]
*
n
[
2
]);
n
[
0
]
/=
t
,
n
[
1
]
/=
t
,
n
[
2
]
/=
t
}
function
Me
(
n
){
return
[
Math
.
atan2
(
n
[
1
],
n
[
0
]),
G
(
n
[
2
])]}
function
_e
(
n
,
t
){
return
fa
(
n
[
0
]
-
t
[
0
])
<
Ta
&&
fa
(
n
[
1
]
-
t
[
1
])
<
Ta
}
function
be
(
n
,
t
){
n
*=
za
;
var
e
=
Math
.
cos
(
t
*=
za
);
we
(
e
*
Math
.
cos
(
n
),
e
*
Math
.
sin
(
n
),
Math
.
sin
(
t
))}
function
we
(
n
,
t
,
e
){
++
yc
,
Mc
+=
(
n
-
Mc
)
/
yc
,
_c
+=
(
t
-
_c
)
/
yc
,
bc
+=
(
e
-
bc
)
/
yc
}
function
Se
(){
function
n
(
n
,
u
){
n
*=
za
;
var
i
=
Math
.
cos
(
u
*=
za
),
o
=
i
*
Math
.
cos
(
n
),
a
=
i
*
Math
.
sin
(
n
),
c
=
Math
.
sin
(
u
),
s
=
Math
.
atan2
(
Math
.
sqrt
((
s
=
e
*
c
-
r
*
a
)
*
s
+
(
s
=
r
*
o
-
t
*
c
)
*
s
+
(
s
=
t
*
a
-
e
*
o
)
*
s
),
t
*
o
+
e
*
a
+
r
*
c
);
xc
+=
s
,
wc
+=
s
*
(
t
+
(
t
=
o
)),
Sc
+=
s
*
(
e
+
(
e
=
a
)),
kc
+=
s
*
(
r
+
(
r
=
c
)),
we
(
t
,
e
,
r
)}
var
t
,
e
,
r
;
Cc
.
point
=
function
(
u
,
i
){
u
*=
za
;
var
o
=
Math
.
cos
(
i
*=
za
);
t
=
o
*
Math
.
cos
(
u
),
e
=
o
*
Math
.
sin
(
u
),
r
=
Math
.
sin
(
i
),
Cc
.
point
=
n
,
we
(
t
,
e
,
r
)}}
function
ke
(){
Cc
.
point
=
be
}
function
Ee
(){
function
n
(
n
,
t
){
n
*=
za
;
var
e
=
Math
.
cos
(
t
*=
za
),
o
=
e
*
Math
.
cos
(
n
),
a
=
e
*
Math
.
sin
(
n
),
c
=
Math
.
sin
(
t
),
s
=
u
*
c
-
i
*
a
,
l
=
i
*
o
-
r
*
c
,
f
=
r
*
a
-
u
*
o
,
h
=
Math
.
sqrt
(
s
*
s
+
l
*
l
+
f
*
f
),
g
=
r
*
o
+
u
*
a
+
i
*
c
,
p
=
h
&&-
W
(
g
)
/
h
,
v
=
Math
.
atan2
(
h
,
g
);
Ec
+=
p
*
s
,
Nc
+=
p
*
l
,
Ac
+=
p
*
f
,
xc
+=
v
,
wc
+=
v
*
(
r
+
(
r
=
o
)),
Sc
+=
v
*
(
u
+
(
u
=
a
)),
kc
+=
v
*
(
i
+
(
i
=
c
)),
we
(
r
,
u
,
i
)}
var
t
,
e
,
r
,
u
,
i
;
Cc
.
point
=
function
(
o
,
a
){
t
=
o
,
e
=
a
,
Cc
.
point
=
n
,
o
*=
za
;
var
c
=
Math
.
cos
(
a
*=
za
);
r
=
c
*
Math
.
cos
(
o
),
u
=
c
*
Math
.
sin
(
o
),
i
=
Math
.
sin
(
a
),
we
(
r
,
u
,
i
)},
Cc
.
lineEnd
=
function
(){
n
(
t
,
e
),
Cc
.
lineEnd
=
ke
,
Cc
.
point
=
be
}}
function
Ne
(){
return
!
0
}
function
Ae
(
n
,
t
,
e
,
r
,
u
){
var
i
=
[],
o
=
[];
if
(
n
.
forEach
(
function
(
n
){
if
(
!
((
t
=
n
.
length
-
1
)
<=
0
)){
var
t
,
e
=
n
[
0
],
r
=
n
[
t
];
if
(
_e
(
e
,
r
)){
u
.
lineStart
();
for
(
var
a
=
0
;
t
>
a
;
++
a
)
u
.
point
((
e
=
n
[
a
])[
0
],
e
[
1
]);
return
u
.
lineEnd
(),
void
0
}
var
c
=
new
Le
(
e
,
n
,
null
,
!
0
),
s
=
new
Le
(
e
,
null
,
c
,
!
1
);
c
.
o
=
s
,
i
.
push
(
c
),
o
.
push
(
s
),
c
=
new
Le
(
r
,
n
,
null
,
!
1
),
s
=
new
Le
(
r
,
null
,
c
,
!
0
),
c
.
o
=
s
,
i
.
push
(
c
),
o
.
push
(
s
)}}),
o
.
sort
(
t
),
Ce
(
i
),
Ce
(
o
),
i
.
length
){
for
(
var
a
=
0
,
c
=
e
,
s
=
o
.
length
;
s
>
a
;
++
a
)
o
[
a
].
e
=
c
=!
c
;
for
(
var
l
,
f
,
h
=
i
[
0
];;){
for
(
var
g
=
h
,
p
=!
0
;
g
.
v
;)
if
((
g
=
g
.
n
)
===
h
)
return
;
l
=
g
.
z
,
u
.
lineStart
();
do
{
if
(
g
.
v
=
g
.
o
.
v
=!
0
,
g
.
e
){
if
(
p
)
for
(
var
a
=
0
,
s
=
l
.
length
;
s
>
a
;
++
a
)
u
.
point
((
f
=
l
[
a
])[
0
],
f
[
1
]);
else
r
(
g
.
x
,
g
.
n
.
x
,
1
,
u
);
g
=
g
.
n
}
else
{
if
(
p
){
l
=
g
.
p
.
z
;
for
(
var
a
=
l
.
length
-
1
;
a
>=
0
;
--
a
)
u
.
point
((
f
=
l
[
a
])[
0
],
f
[
1
])}
else
r
(
g
.
x
,
g
.
p
.
x
,
-
1
,
u
);
g
=
g
.
p
}
g
=
g
.
o
,
l
=
g
.
z
,
p
=!
p
}
while
(
!
g
.
v
);
u
.
lineEnd
()}}}
function
Ce
(
n
){
if
(
t
=
n
.
length
){
for
(
var
t
,
e
,
r
=
0
,
u
=
n
[
0
];
++
r
<
t
;)
u
.
n
=
e
=
n
[
r
],
e
.
p
=
u
,
u
=
e
;
u
.
n
=
e
=
n
[
0
],
e
.
p
=
u
}}
function
Le
(
n
,
t
,
e
,
r
){
this
.
x
=
n
,
this
.
z
=
t
,
this
.
o
=
e
,
this
.
e
=
r
,
this
.
v
=!
1
,
this
.
n
=
this
.
p
=
null
}
function
Te
(
n
,
t
,
e
,
r
){
return
function
(
u
,
i
){
function
o
(
t
,
e
){
var
r
=
u
(
t
,
e
);
n
(
t
=
r
[
0
],
e
=
r
[
1
])
&&
i
.
point
(
t
,
e
)}
function
a
(
n
,
t
){
var
e
=
u
(
n
,
t
);
d
.
point
(
e
[
0
],
e
[
1
])}
function
c
(){
y
.
point
=
a
,
d
.
lineStart
()}
function
s
(){
y
.
point
=
o
,
d
.
lineEnd
()}
function
l
(
n
,
t
){
v
.
push
([
n
,
t
]);
var
e
=
u
(
n
,
t
);
M
.
point
(
e
[
0
],
e
[
1
])}
function
f
(){
M
.
lineStart
(),
v
=
[]}
function
h
(){
l
(
v
[
0
][
0
],
v
[
0
][
1
]),
M
.
lineEnd
();
var
n
,
t
=
M
.
clean
(),
e
=
x
.
buffer
(),
r
=
e
.
length
;
if
(
v
.
pop
(),
p
.
push
(
v
),
v
=
null
,
r
)
if
(
1
&
t
){
n
=
e
[
0
];
var
u
,
r
=
n
.
length
-
1
,
o
=-
1
;
if
(
r
>
0
){
for
(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
i
.
lineStart
();
++
o
<
r
;)
i
.
point
((
u
=
n
[
o
])[
0
],
u
[
1
]);
i
.
lineEnd
()}}
else
r
>
1
&&
2
&
t
&&
e
.
push
(
e
.
pop
().
concat
(
e
.
shift
())),
g
.
push
(
e
.
filter
(
qe
))}
var
g
,
p
,
v
,
d
=
t
(
i
),
m
=
u
.
invert
(
r
[
0
],
r
[
1
]),
y
=
{
point
:
o
,
lineStart
:
c
,
lineEnd
:
s
,
polygonStart
:
function
(){
y
.
point
=
l
,
y
.
lineStart
=
f
,
y
.
lineEnd
=
h
,
g
=
[],
p
=
[]},
polygonEnd
:
function
(){
y
.
point
=
o
,
y
.
lineStart
=
c
,
y
.
lineEnd
=
s
,
g
=
Go
.
merge
(
g
);
var
n
=
De
(
m
,
p
);
g
.
length
?(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
Ae
(
g
,
Re
,
n
,
e
,
i
)):
n
&&
(
_
||
(
i
.
polygonStart
(),
_
=!
0
),
i
.
lineStart
(),
e
(
null
,
null
,
1
,
i
),
i
.
lineEnd
()),
_
&&
(
i
.
polygonEnd
(),
_
=!
1
),
g
=
p
=
null
},
sphere
:
function
(){
i
.
polygonStart
(),
i
.
lineStart
(),
e
(
null
,
null
,
1
,
i
),
i
.
lineEnd
(),
i
.
polygonEnd
()}},
x
=
ze
(),
M
=
t
(
x
),
_
=!
1
;
return
y
}}
function
qe
(
n
){
return
n
.
length
>
1
}
function
ze
(){
var
n
,
t
=
[];
return
{
lineStart
:
function
(){
t
.
push
(
n
=
[])},
point
:
function
(
t
,
e
){
n
.
push
([
t
,
e
])},
lineEnd
:
v
,
buffer
:
function
(){
var
e
=
t
;
return
t
=
[],
n
=
null
,
e
},
rejoin
:
function
(){
t
.
length
>
1
&&
t
.
push
(
t
.
pop
().
concat
(
t
.
shift
()))}}}
function
Re
(
n
,
t
){
return
((
n
=
n
.
x
)[
0
]
<
0
?
n
[
1
]
-
La
-
Ta
:
La
-
n
[
1
])
-
((
t
=
t
.
x
)[
0
]
<
0
?
t
[
1
]
-
La
-
Ta
:
La
-
t
[
1
])}
function
De
(
n
,
t
){
var
e
=
n
[
0
],
r
=
n
[
1
],
u
=
[
Math
.
sin
(
e
),
-
Math
.
cos
(
e
),
0
],
i
=
0
,
o
=
0
;
dc
.
reset
();
for
(
var
a
=
0
,
c
=
t
.
length
;
c
>
a
;
++
a
){
var
s
=
t
[
a
],
l
=
s
.
length
;
if
(
l
)
for
(
var
f
=
s
[
0
],
h
=
f
[
0
],
g
=
f
[
1
]
/
2
+
Aa
/
4
,
p
=
Math
.
sin
(
g
),
v
=
Math
.
cos
(
g
),
d
=
1
;;){
d
===
l
&&
(
d
=
0
),
n
=
s
[
d
];
var
m
=
n
[
0
],
y
=
n
[
1
]
/
2
+
Aa
/
4
,
x
=
Math
.
sin
(
y
),
M
=
Math
.
cos
(
y
),
_
=
m
-
h
,
b
=
_
>=
0
?
1
:
-
1
,
w
=
b
*
_
,
S
=
w
>
Aa
,
k
=
p
*
x
;
if
(
dc
.
add
(
Math
.
atan2
(
k
*
b
*
Math
.
sin
(
w
),
v
*
M
+
k
*
Math
.
cos
(
w
))),
i
+=
S
?
_
+
b
*
Ca
:
_
,
S
^
h
>=
e
^
m
>=
e
){
var
E
=
de
(
pe
(
f
),
pe
(
n
));
xe
(
E
);
var
N
=
de
(
u
,
E
);
xe
(
N
);
var
A
=
(
S
^
_
>=
0
?
-
1
:
1
)
*
G
(
N
[
2
]);(
r
>
A
||
r
===
A
&&
(
E
[
0
]
||
E
[
1
]))
&&
(
o
+=
S
^
_
>=
0
?
1
:
-
1
)}
if
(
!
d
++
)
break
;
h
=
m
,
p
=
x
,
v
=
M
,
f
=
n
}}
return
(
-
Ta
>
i
||
Ta
>
i
&&
0
>
dc
)
^
1
&
o
}
function
Pe
(
n
){
var
t
,
e
=
0
/
0
,
r
=
0
/
0
,
u
=
0
/
0
;
return
{
lineStart
:
function
(){
n
.
lineStart
(),
t
=
1
},
point
:
function
(
i
,
o
){
var
a
=
i
>
0
?
Aa
:
-
Aa
,
c
=
fa
(
i
-
e
);
fa
(
c
-
Aa
)
<
Ta
?(
n
.
point
(
e
,
r
=
(
r
+
o
)
/
2
>
0
?
La
:
-
La
),
n
.
point
(
u
,
r
),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
a
,
r
),
n
.
point
(
i
,
r
),
t
=
0
):
u
!==
a
&&
c
>=
Aa
&&
(
fa
(
e
-
u
)
<
Ta
&&
(
e
-=
u
*
Ta
),
fa
(
i
-
a
)
<
Ta
&&
(
i
-=
a
*
Ta
),
r
=
Ue
(
e
,
r
,
i
,
o
),
n
.
point
(
u
,
r
),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
a
,
r
),
t
=
0
),
n
.
point
(
e
=
i
,
r
=
o
),
u
=
a
},
lineEnd
:
function
(){
n
.
lineEnd
(),
e
=
r
=
0
/
0
},
clean
:
function
(){
return
2
-
t
}}}
function
Ue
(
n
,
t
,
e
,
r
){
var
u
,
i
,
o
=
Math
.
sin
(
n
-
e
);
return
fa
(
o
)
>
Ta
?
Math
.
atan
((
Math
.
sin
(
t
)
*
(
i
=
Math
.
cos
(
r
))
*
Math
.
sin
(
e
)
-
Math
.
sin
(
r
)
*
(
u
=
Math
.
cos
(
t
))
*
Math
.
sin
(
n
))
/
(
u
*
i
*
o
)):(
t
+
r
)
/
2
}
function
je
(
n
,
t
,
e
,
r
){
var
u
;
if
(
null
==
n
)
u
=
e
*
La
,
r
.
point
(
-
Aa
,
u
),
r
.
point
(
0
,
u
),
r
.
point
(
Aa
,
u
),
r
.
point
(
Aa
,
0
),
r
.
point
(
Aa
,
-
u
),
r
.
point
(
0
,
-
u
),
r
.
point
(
-
Aa
,
-
u
),
r
.
point
(
-
Aa
,
0
),
r
.
point
(
-
Aa
,
u
);
else
if
(
fa
(
n
[
0
]
-
t
[
0
])
>
Ta
){
var
i
=
n
[
0
]
<
t
[
0
]?
Aa
:
-
Aa
;
u
=
e
*
i
/
2
,
r
.
point
(
-
i
,
u
),
r
.
point
(
0
,
u
),
r
.
point
(
i
,
u
)}
else
r
.
point
(
t
[
0
],
t
[
1
])}
function
He
(
n
){
function
t
(
n
,
t
){
return
Math
.
cos
(
n
)
*
Math
.
cos
(
t
)
>
i
}
function
e
(
n
){
var
e
,
i
,
c
,
s
,
l
;
return
{
lineStart
:
function
(){
s
=
c
=!
1
,
l
=
1
},
point
:
function
(
f
,
h
){
var
g
,
p
=
[
f
,
h
],
v
=
t
(
f
,
h
),
d
=
o
?
v
?
0
:
u
(
f
,
h
):
v
?
u
(
f
+
(
0
>
f
?
Aa
:
-
Aa
),
h
):
0
;
if
(
!
e
&&
(
s
=
c
=
v
)
&&
n
.
lineStart
(),
v
!==
c
&&
(
g
=
r
(
e
,
p
),(
_e
(
e
,
g
)
||
_e
(
p
,
g
))
&&
(
p
[
0
]
+=
Ta
,
p
[
1
]
+=
Ta
,
v
=
t
(
p
[
0
],
p
[
1
]))),
v
!==
c
)
l
=
0
,
v
?(
n
.
lineStart
(),
g
=
r
(
p
,
e
),
n
.
point
(
g
[
0
],
g
[
1
])):(
g
=
r
(
e
,
p
),
n
.
point
(
g
[
0
],
g
[
1
]),
n
.
lineEnd
()),
e
=
g
;
else
if
(
a
&&
e
&&
o
^
v
){
var
m
;
d
&
i
||!
(
m
=
r
(
p
,
e
,
!
0
))
||
(
l
=
0
,
o
?(
n
.
lineStart
(),
n
.
point
(
m
[
0
][
0
],
m
[
0
][
1
]),
n
.
point
(
m
[
1
][
0
],
m
[
1
][
1
]),
n
.
lineEnd
()):(
n
.
point
(
m
[
1
][
0
],
m
[
1
][
1
]),
n
.
lineEnd
(),
n
.
lineStart
(),
n
.
point
(
m
[
0
][
0
],
m
[
0
][
1
])))}
!
v
||
e
&&
_e
(
e
,
p
)
||
n
.
point
(
p
[
0
],
p
[
1
]),
e
=
p
,
c
=
v
,
i
=
d
},
lineEnd
:
function
(){
c
&&
n
.
lineEnd
(),
e
=
null
},
clean
:
function
(){
return
l
|
(
s
&&
c
)
<<
1
}}}
function
r
(
n
,
t
,
e
){
var
r
=
pe
(
n
),
u
=
pe
(
t
),
o
=
[
1
,
0
,
0
],
a
=
de
(
r
,
u
),
c
=
ve
(
a
,
a
),
s
=
a
[
0
],
l
=
c
-
s
*
s
;
if
(
!
l
)
return
!
e
&&
n
;
var
f
=
i
*
c
/
l
,
h
=-
i
*
s
/
l
,
g
=
de
(
o
,
a
),
p
=
ye
(
o
,
f
),
v
=
ye
(
a
,
h
);
me
(
p
,
v
);
var
d
=
g
,
m
=
ve
(
p
,
d
),
y
=
ve
(
d
,
d
),
x
=
m
*
m
-
y
*
(
ve
(
p
,
p
)
-
1
);
if
(
!
(
0
>
x
)){
var
M
=
Math
.
sqrt
(
x
),
_
=
ye
(
d
,(
-
m
-
M
)
/
y
);
if
(
me
(
_
,
p
),
_
=
Me
(
_
),
!
e
)
return
_
;
var
b
,
w
=
n
[
0
],
S
=
t
[
0
],
k
=
n
[
1
],
E
=
t
[
1
];
w
>
S
&&
(
b
=
w
,
w
=
S
,
S
=
b
);
var
N
=
S
-
w
,
A
=
fa
(
N
-
Aa
)
<
Ta
,
C
=
A
||
Ta
>
N
;
if
(
!
A
&&
k
>
E
&&
(
b
=
k
,
k
=
E
,
E
=
b
),
C
?
A
?
k
+
E
>
0
^
_
[
1
]
<
(
fa
(
_
[
0
]
-
w
)
<
Ta
?
k
:
E
):
k
<=
_
[
1
]
&&
_
[
1
]
<=
E
:
N
>
Aa
^
(
w
<=
_
[
0
]
&&
_
[
0
]
<=
S
)){
var
L
=
ye
(
d
,(
-
m
+
M
)
/
y
);
return
me
(
L
,
p
),[
_
,
Me
(
L
)]}}}
function
u
(
t
,
e
){
var
r
=
o
?
n
:
Aa
-
n
,
u
=
0
;
return
-
r
>
t
?
u
|=
1
:
t
>
r
&&
(
u
|=
2
),
-
r
>
e
?
u
|=
4
:
e
>
r
&&
(
u
|=
8
),
u
}
var
i
=
Math
.
cos
(
n
),
o
=
i
>
0
,
a
=
fa
(
i
)
>
Ta
,
c
=
gr
(
n
,
6
*
za
);
return
Te
(
t
,
e
,
c
,
o
?[
0
,
-
n
]:[
-
Aa
,
n
-
Aa
])}
function
Fe
(
n
,
t
,
e
,
r
){
return
function
(
u
){
var
i
,
o
=
u
.
a
,
a
=
u
.
b
,
c
=
o
.
x
,
s
=
o
.
y
,
l
=
a
.
x
,
f
=
a
.
y
,
h
=
0
,
g
=
1
,
p
=
l
-
c
,
v
=
f
-
s
;
if
(
i
=
n
-
c
,
p
||!
(
i
>
0
)){
if
(
i
/=
p
,
0
>
p
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
else
if
(
p
>
0
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
if
(
i
=
e
-
c
,
p
||!
(
0
>
i
)){
if
(
i
/=
p
,
0
>
p
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
else
if
(
p
>
0
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
if
(
i
=
t
-
s
,
v
||!
(
i
>
0
)){
if
(
i
/=
v
,
0
>
v
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
else
if
(
v
>
0
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
if
(
i
=
r
-
s
,
v
||!
(
0
>
i
)){
if
(
i
/=
v
,
0
>
v
){
if
(
i
>
g
)
return
;
i
>
h
&&
(
h
=
i
)}
else
if
(
v
>
0
){
if
(
h
>
i
)
return
;
g
>
i
&&
(
g
=
i
)}
return
h
>
0
&&
(
u
.
a
=
{
x
:
c
+
h
*
p
,
y
:
s
+
h
*
v
}),
1
>
g
&&
(
u
.
b
=
{
x
:
c
+
g
*
p
,
y
:
s
+
g
*
v
}),
u
}}}}}}
function
Oe
(
n
,
t
,
e
,
r
){
function
u
(
r
,
u
){
return
fa
(
r
[
0
]
-
n
)
<
Ta
?
u
>
0
?
0
:
3
:
fa
(
r
[
0
]
-
e
)
<
Ta
?
u
>
0
?
2
:
1
:
fa
(
r
[
1
]
-
t
)
<
Ta
?
u
>
0
?
1
:
0
:
u
>
0
?
3
:
2
}
function
i
(
n
,
t
){
return
o
(
n
.
x
,
t
.
x
)}
function
o
(
n
,
t
){
var
e
=
u
(
n
,
1
),
r
=
u
(
t
,
1
);
return
e
!==
r
?
e
-
r
:
0
===
e
?
t
[
1
]
-
n
[
1
]:
1
===
e
?
n
[
0
]
-
t
[
0
]:
2
===
e
?
n
[
1
]
-
t
[
1
]:
t
[
0
]
-
n
[
0
]}
return
function
(
a
){
function
c
(
n
){
for
(
var
t
=
0
,
e
=
d
.
length
,
r
=
n
[
1
],
u
=
0
;
e
>
u
;
++
u
)
for
(
var
i
,
o
=
1
,
a
=
d
[
u
],
c
=
a
.
length
,
s
=
a
[
0
];
c
>
o
;
++
o
)
i
=
a
[
o
],
s
[
1
]
<=
r
?
i
[
1
]
>
r
&&
J
(
s
,
i
,
n
)
>
0
&&++
t
:
i
[
1
]
<=
r
&&
J
(
s
,
i
,
n
)
<
0
&&--
t
,
s
=
i
;
return
0
!==
t
}
function
s
(
i
,
a
,
c
,
s
){
var
l
=
0
,
f
=
0
;
if
(
null
==
i
||
(
l
=
u
(
i
,
c
))
!==
(
f
=
u
(
a
,
c
))
||
o
(
i
,
a
)
<
0
^
c
>
0
){
do
s
.
point
(
0
===
l
||
3
===
l
?
n
:
e
,
l
>
1
?
r
:
t
);
while
((
l
=
(
l
+
c
+
4
)
%
4
)
!==
f
)}
else
s
.
point
(
a
[
0
],
a
[
1
])}
function
l
(
u
,
i
){
return
u
>=
n
&&
e
>=
u
&&
i
>=
t
&&
r
>=
i
}
function
f
(
n
,
t
){
l
(
n
,
t
)
&&
a
.
point
(
n
,
t
)}
function
h
(){
C
.
point
=
p
,
d
&&
d
.
push
(
m
=
[]),
S
=!
0
,
w
=!
1
,
_
=
b
=
0
/
0
}
function
g
(){
v
&&
(
p
(
y
,
x
),
M
&&
w
&&
N
.
rejoin
(),
v
.
push
(
N
.
buffer
())),
C
.
point
=
f
,
w
&&
a
.
lineEnd
()}
function
p
(
n
,
t
){
n
=
Math
.
max
(
-
Tc
,
Math
.
min
(
Tc
,
n
)),
t
=
Math
.
max
(
-
Tc
,
Math
.
min
(
Tc
,
t
));
var
e
=
l
(
n
,
t
);
if
(
d
&&
m
.
push
([
n
,
t
]),
S
)
y
=
n
,
x
=
t
,
M
=
e
,
S
=!
1
,
e
&&
(
a
.
lineStart
(),
a
.
point
(
n
,
t
));
else
if
(
e
&&
w
)
a
.
point
(
n
,
t
);
else
{
var
r
=
{
a
:{
x
:
_
,
y
:
b
},
b
:{
x
:
n
,
y
:
t
}};
A
(
r
)?(
w
||
(
a
.
lineStart
(),
a
.
point
(
r
.
a
.
x
,
r
.
a
.
y
)),
a
.
point
(
r
.
b
.
x
,
r
.
b
.
y
),
e
||
a
.
lineEnd
(),
k
=!
1
):
e
&&
(
a
.
lineStart
(),
a
.
point
(
n
,
t
),
k
=!
1
)}
_
=
n
,
b
=
t
,
w
=
e
}
var
v
,
d
,
m
,
y
,
x
,
M
,
_
,
b
,
w
,
S
,
k
,
E
=
a
,
N
=
ze
(),
A
=
Fe
(
n
,
t
,
e
,
r
),
C
=
{
point
:
f
,
lineStart
:
h
,
lineEnd
:
g
,
polygonStart
:
function
(){
a
=
N
,
v
=
[],
d
=
[],
k
=!
0
},
polygonEnd
:
function
(){
a
=
E
,
v
=
Go
.
merge
(
v
);
var
t
=
c
([
n
,
r
]),
e
=
k
&&
t
,
u
=
v
.
length
;(
e
||
u
)
&&
(
a
.
polygonStart
(),
e
&&
(
a
.
lineStart
(),
s
(
null
,
null
,
1
,
a
),
a
.
lineEnd
()),
u
&&
Ae
(
v
,
i
,
t
,
s
,
a
),
a
.
polygonEnd
()),
v
=
d
=
m
=
null
}};
return
C
}}
function
Ie
(
n
,
t
){
function
e
(
e
,
r
){
return
e
=
n
(
e
,
r
),
t
(
e
[
0
],
e
[
1
])}
return
n
.
invert
&&
t
.
invert
&&
(
e
.
invert
=
function
(
e
,
r
){
return
e
=
t
.
invert
(
e
,
r
),
e
&&
n
.
invert
(
e
[
0
],
e
[
1
])}),
e
}
function
Ye
(
n
){
var
t
=
0
,
e
=
Aa
/
3
,
r
=
ir
(
n
),
u
=
r
(
t
,
e
);
return
u
.
parallels
=
function
(
n
){
return
arguments
.
length
?
r
(
t
=
n
[
0
]
*
Aa
/
180
,
e
=
n
[
1
]
*
Aa
/
180
):[
180
*
(
t
/
Aa
),
180
*
(
e
/
Aa
)]},
u
}
function
Ze
(
n
,
t
){
function
e
(
n
,
t
){
var
e
=
Math
.
sqrt
(
i
-
2
*
u
*
Math
.
sin
(
t
))
/
u
;
return
[
e
*
Math
.
sin
(
n
*=
u
),
o
-
e
*
Math
.
cos
(
n
)]}
var
r
=
Math
.
sin
(
n
),
u
=
(
r
+
Math
.
sin
(
t
))
/
2
,
i
=
1
+
r
*
(
2
*
u
-
r
),
o
=
Math
.
sqrt
(
i
)
/
u
;
return
e
.
invert
=
function
(
n
,
t
){
var
e
=
o
-
t
;
return
[
Math
.
atan2
(
n
,
e
)
/
u
,
G
((
i
-
(
n
*
n
+
e
*
e
)
*
u
*
u
)
/
(
2
*
u
))]},
e
}
function
Ve
(){
function
n
(
n
,
t
){
zc
+=
u
*
n
-
r
*
t
,
r
=
n
,
u
=
t
}
var
t
,
e
,
r
,
u
;
jc
.
point
=
function
(
i
,
o
){
jc
.
point
=
n
,
t
=
r
=
i
,
e
=
u
=
o
},
jc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
$e
(
n
,
t
){
Rc
>
n
&&
(
Rc
=
n
),
n
>
Pc
&&
(
Pc
=
n
),
Dc
>
t
&&
(
Dc
=
t
),
t
>
Uc
&&
(
Uc
=
t
)}
function
Xe
(){
function
n
(
n
,
t
){
o
.
push
(
"
M
"
,
n
,
"
,
"
,
t
,
i
)}
function
t
(
n
,
t
){
o
.
push
(
"
M
"
,
n
,
"
,
"
,
t
),
a
.
point
=
e
}
function
e
(
n
,
t
){
o
.
push
(
"
L
"
,
n
,
"
,
"
,
t
)}
function
r
(){
a
.
point
=
n
}
function
u
(){
o
.
push
(
"
Z
"
)}
var
i
=
Be
(
4.5
),
o
=
[],
a
=
{
point
:
n
,
lineStart
:
function
(){
a
.
point
=
t
},
lineEnd
:
r
,
polygonStart
:
function
(){
a
.
lineEnd
=
u
},
polygonEnd
:
function
(){
a
.
lineEnd
=
r
,
a
.
point
=
n
},
pointRadius
:
function
(
n
){
return
i
=
Be
(
n
),
a
},
result
:
function
(){
if
(
o
.
length
){
var
n
=
o
.
join
(
""
);
return
o
=
[],
n
}}};
return
a
}
function
Be
(
n
){
return
"
m0,
"
+
n
+
"
a
"
+
n
+
"
,
"
+
n
+
"
0 1,1 0,
"
+-
2
*
n
+
"
a
"
+
n
+
"
,
"
+
n
+
"
0 1,1 0,
"
+
2
*
n
+
"
z
"
}
function
Je
(
n
,
t
){
Mc
+=
n
,
_c
+=
t
,
++
bc
}
function
We
(){
function
n
(
n
,
r
){
var
u
=
n
-
t
,
i
=
r
-
e
,
o
=
Math
.
sqrt
(
u
*
u
+
i
*
i
);
wc
+=
o
*
(
t
+
n
)
/
2
,
Sc
+=
o
*
(
e
+
r
)
/
2
,
kc
+=
o
,
Je
(
t
=
n
,
e
=
r
)}
var
t
,
e
;
Fc
.
point
=
function
(
r
,
u
){
Fc
.
point
=
n
,
Je
(
t
=
r
,
e
=
u
)}}
function
Ge
(){
Fc
.
point
=
Je
}
function
Ke
(){
function
n
(
n
,
t
){
var
e
=
n
-
r
,
i
=
t
-
u
,
o
=
Math
.
sqrt
(
e
*
e
+
i
*
i
);
wc
+=
o
*
(
r
+
n
)
/
2
,
Sc
+=
o
*
(
u
+
t
)
/
2
,
kc
+=
o
,
o
=
u
*
n
-
r
*
t
,
Ec
+=
o
*
(
r
+
n
),
Nc
+=
o
*
(
u
+
t
),
Ac
+=
3
*
o
,
Je
(
r
=
n
,
u
=
t
)}
var
t
,
e
,
r
,
u
;
Fc
.
point
=
function
(
i
,
o
){
Fc
.
point
=
n
,
Je
(
t
=
r
=
i
,
e
=
u
=
o
)},
Fc
.
lineEnd
=
function
(){
n
(
t
,
e
)}}
function
Qe
(
n
){
function
t
(
t
,
e
){
n
.
moveTo
(
t
,
e
),
n
.
arc
(
t
,
e
,
o
,
0
,
Ca
)}
function
e
(
t
,
e
){
n
.
moveTo
(
t
,
e
),
a
.
point
=
r
}
function
r
(
t
,
e
){
n
.
lineTo
(
t
,
e
)}
function
u
(){
a
.
point
=
t
}
function
i
(){
n
.
closePath
()}
var
o
=
4.5
,
a
=
{
point
:
t
,
lineStart
:
function
(){
a
.
point
=
e
},
lineEnd
:
u
,
polygonStart
:
function
(){
a
.
lineEnd
=
i
},
polygonEnd
:
function
(){
a
.
lineEnd
=
u
,
a
.
point
=
t
},
pointRadius
:
function
(
n
){
return
o
=
n
,
a
},
result
:
v
};
return
a
}
function
nr
(
n
){
function
t
(
n
){
return
(
a
?
r
:
e
)(
n
)}
function
e
(
t
){
return
rr
(
t
,
function
(
e
,
r
){
e
=
n
(
e
,
r
),
t
.
point
(
e
[
0
],
e
[
1
])})}
function
r
(
t
){
function
e
(
e
,
r
){
e
=
n
(
e
,
r
),
t
.
point
(
e
[
0
],
e
[
1
])}
function
r
(){
x
=
0
/
0
,
S
.
point
=
i
,
t
.
lineStart
()}
function
i
(
e
,
r
){
var
i
=
pe
([
e
,
r
]),
o
=
n
(
e
,
r
);
u
(
x
,
M
,
y
,
_
,
b
,
w
,
x
=
o
[
0
],
M
=
o
[
1
],
y
=
e
,
_
=
i
[
0
],
b
=
i
[
1
],
w
=
i
[
2
],
a
,
t
),
t
.
point
(
x
,
M
)}
function
o
(){
S
.
point
=
e
,
t
.
lineEnd
()}
function
c
(){
r
(),
S
.
point
=
s
,
S
.
lineEnd
=
l
}
function
s
(
n
,
t
){
i
(
f
=
n
,
h
=
t
),
g
=
x
,
p
=
M
,
v
=
_
,
d
=
b
,
m
=
w
,
S
.
point
=
i
}
function
l
(){
u
(
x
,
M
,
y
,
_
,
b
,
w
,
g
,
p
,
f
,
v
,
d
,
m
,
a
,
t
),
S
.
lineEnd
=
o
,
o
()}
var
f
,
h
,
g
,
p
,
v
,
d
,
m
,
y
,
x
,
M
,
_
,
b
,
w
,
S
=
{
point
:
e
,
lineStart
:
r
,
lineEnd
:
o
,
polygonStart
:
function
(){
t
.
polygonStart
(),
S
.
lineStart
=
c
},
polygonEnd
:
function
(){
t
.
polygonEnd
(),
S
.
lineStart
=
r
}};
return
S
}
function
u
(
t
,
e
,
r
,
a
,
c
,
s
,
l
,
f
,
h
,
g
,
p
,
v
,
d
,
m
){
var
y
=
l
-
t
,
x
=
f
-
e
,
M
=
y
*
y
+
x
*
x
;
if
(
M
>
4
*
i
&&
d
--
){
var
_
=
a
+
g
,
b
=
c
+
p
,
w
=
s
+
v
,
S
=
Math
.
sqrt
(
_
*
_
+
b
*
b
+
w
*
w
),
k
=
Math
.
asin
(
w
/=
S
),
E
=
fa
(
fa
(
w
)
-
1
)
<
Ta
||
fa
(
r
-
h
)
<
Ta
?(
r
+
h
)
/
2
:
Math
.
atan2
(
b
,
_
),
N
=
n
(
E
,
k
),
A
=
N
[
0
],
C
=
N
[
1
],
L
=
A
-
t
,
T
=
C
-
e
,
q
=
x
*
L
-
y
*
T
;(
q
*
q
/
M
>
i
||
fa
((
y
*
L
+
x
*
T
)
/
M
-
.
5
)
>
.
3
||
o
>
a
*
g
+
c
*
p
+
s
*
v
)
&&
(
u
(
t
,
e
,
r
,
a
,
c
,
s
,
A
,
C
,
E
,
_
/=
S
,
b
/=
S
,
w
,
d
,
m
),
m
.
point
(
A
,
C
),
u
(
A
,
C
,
E
,
_
,
b
,
w
,
l
,
f
,
h
,
g
,
p
,
v
,
d
,
m
))}}
var
i
=
.
5
,
o
=
Math
.
cos
(
30
*
za
),
a
=
16
;
return
t
.
precision
=
function
(
n
){
return
arguments
.
length
?(
a
=
(
i
=
n
*
n
)
>
0
&&
16
,
t
):
Math
.
sqrt
(
i
)},
t
}
function
tr
(
n
){
var
t
=
nr
(
function
(
t
,
e
){
return
n
([
t
*
Ra
,
e
*
Ra
])});
return
function
(
n
){
return
or
(
t
(
n
))}}
function
er
(
n
){
this
.
stream
=
n
}
function
rr
(
n
,
t
){
return
{
point
:
t
,
sphere
:
function
(){
n
.
sphere
()},
lineStart
:
function
(){
n
.
lineStart
()},
lineEnd
:
function
(){
n
.
lineEnd
()},
polygonStart
:
function
(){
n
.
polygonStart
()},
polygonEnd
:
function
(){
n
.
polygonEnd
()}}}
function
ur
(
n
){
return
ir
(
function
(){
return
n
})()}
function
ir
(
n
){
function
t
(
n
){
return
n
=
a
(
n
[
0
]
*
za
,
n
[
1
]
*
za
),[
n
[
0
]
*
h
+
c
,
s
-
n
[
1
]
*
h
]}
function
e
(
n
){
return
n
=
a
.
invert
((
n
[
0
]
-
c
)
/
h
,(
s
-
n
[
1
])
/
h
),
n
&&
[
n
[
0
]
*
Ra
,
n
[
1
]
*
Ra
]}
function
r
(){
a
=
Ie
(
o
=
sr
(
m
,
y
,
x
),
i
);
var
n
=
i
(
v
,
d
);
return
c
=
g
-
n
[
0
]
*
h
,
s
=
p
+
n
[
1
]
*
h
,
u
()
}
function
u
(){
return
l
&&
(
l
.
valid
=!
1
,
l
=
null
),
t
}
var
i
,
o
,
a
,
c
,
s
,
l
,
f
=
nr
(
function
(
n
,
t
){
return
n
=
i
(
n
,
t
),[
n
[
0
]
*
h
+
c
,
s
-
n
[
1
]
*
h
]}),
h
=
150
,
g
=
480
,
p
=
250
,
v
=
0
,
d
=
0
,
m
=
0
,
y
=
0
,
x
=
0
,
M
=
Lc
,
_
=
Nt
,
b
=
null
,
w
=
null
;
return
t
.
stream
=
function
(
n
){
return
l
&&
(
l
.
valid
=!
1
),
l
=
or
(
M
(
o
,
f
(
_
(
n
)))),
l
.
valid
=!
0
,
l
},
t
.
clipAngle
=
function
(
n
){
return
arguments
.
length
?(
M
=
null
==
n
?(
b
=
n
,
Lc
):
He
((
b
=+
n
)
*
za
),
u
()):
b
},
t
.
clipExtent
=
function
(
n
){
return
arguments
.
length
?(
w
=
n
,
_
=
n
?
Oe
(
n
[
0
][
0
],
n
[
0
][
1
],
n
[
1
][
0
],
n
[
1
][
1
]):
Nt
,
u
()):
w
},
t
.
scale
=
function
(
n
){
return
arguments
.
length
?(
h
=+
n
,
r
()):
h
},
t
.
translate
=
function
(
n
){
return
arguments
.
length
?(
g
=+
n
[
0
],
p
=+
n
[
1
],
r
()):[
g
,
p
]},
t
.
center
=
function
(
n
){
return
arguments
.
length
?(
v
=
n
[
0
]
%
360
*
za
,
d
=
n
[
1
]
%
360
*
za
,
r
()):[
v
*
Ra
,
d
*
Ra
]},
t
.
rotate
=
function
(
n
){
return
arguments
.
length
?(
m
=
n
[
0
]
%
360
*
za
,
y
=
n
[
1
]
%
360
*
za
,
x
=
n
.
length
>
2
?
n
[
2
]
%
360
*
za
:
0
,
r
()):[
m
*
Ra
,
y
*
Ra
,
x
*
Ra
]},
Go
.
rebind
(
t
,
f
,
"
precision
"
),
function
(){
return
i
=
n
.
apply
(
this
,
arguments
),
t
.
invert
=
i
.
invert
&&
e
,
r
()}}
function
or
(
n
){
return
rr
(
n
,
function
(
t
,
e
){
n
.
point
(
t
*
za
,
e
*
za
)})}
function
ar
(
n
,
t
){
return
[
n
,
t
]}
function
cr
(
n
,
t
){
return
[
n
>
Aa
?
n
-
Ca
:
-
Aa
>
n
?
n
+
Ca
:
n
,
t
]}
function
sr
(
n
,
t
,
e
){
return
n
?
t
||
e
?
Ie
(
fr
(
n
),
hr
(
t
,
e
)):
fr
(
n
):
t
||
e
?
hr
(
t
,
e
):
cr
}
function
lr
(
n
){
return
function
(
t
,
e
){
return
t
+=
n
,[
t
>
Aa
?
t
-
Ca
:
-
Aa
>
t
?
t
+
Ca
:
t
,
e
]}}
function
fr
(
n
){
var
t
=
lr
(
n
);
return
t
.
invert
=
lr
(
-
n
),
t
}
function
hr
(
n
,
t
){
function
e
(
n
,
t
){
var
e
=
Math
.
cos
(
t
),
a
=
Math
.
cos
(
n
)
*
e
,
c
=
Math
.
sin
(
n
)
*
e
,
s
=
Math
.
sin
(
t
),
l
=
s
*
r
+
a
*
u
;
return
[
Math
.
atan2
(
c
*
i
-
l
*
o
,
a
*
r
-
s
*
u
),
G
(
l
*
i
+
c
*
o
)]}
var
r
=
Math
.
cos
(
n
),
u
=
Math
.
sin
(
n
),
i
=
Math
.
cos
(
t
),
o
=
Math
.
sin
(
t
);
return
e
.
invert
=
function
(
n
,
t
){
var
e
=
Math
.
cos
(
t
),
a
=
Math
.
cos
(
n
)
*
e
,
c
=
Math
.
sin
(
n
)
*
e
,
s
=
Math
.
sin
(
t
),
l
=
s
*
i
-
c
*
o
;
return
[
Math
.
atan2
(
c
*
i
+
s
*
o
,
a
*
r
+
l
*
u
),
G
(
l
*
r
-
a
*
u
)]},
e
}
function
gr
(
n
,
t
){
var
e
=
Math
.
cos
(
n
),
r
=
Math
.
sin
(
n
);
return
function
(
u
,
i
,
o
,
a
){
var
c
=
o
*
t
;
null
!=
u
?(
u
=
pr
(
e
,
u
),
i
=
pr
(
e
,
i
),(
o
>
0
?
i
>
u
:
u
>
i
)
&&
(
u
+=
o
*
Ca
)):(
u
=
n
+
o
*
Ca
,
i
=
n
-
.
5
*
c
);
for
(
var
s
,
l
=
u
;
o
>
0
?
l
>
i
:
i
>
l
;
l
-=
c
)
a
.
point
((
s
=
Me
([
e
,
-
r
*
Math
.
cos
(
l
),
-
r
*
Math
.
sin
(
l
)]))[
0
],
s
[
1
])}}
function
pr
(
n
,
t
){
var
e
=
pe
(
t
);
e
[
0
]
-=
n
,
xe
(
e
);
var
r
=
W
(
-
e
[
1
]);
return
((
-
e
[
2
]
<
0
?
-
r
:
r
)
+
2
*
Math
.
PI
-
Ta
)
%
(
2
*
Math
.
PI
)}
function
vr
(
n
,
t
,
e
){
var
r
=
Go
.
range
(
n
,
t
-
Ta
,
e
).
concat
(
t
);
return
function
(
n
){
return
r
.
map
(
function
(
t
){
return
[
n
,
t
]})}}
function
dr
(
n
,
t
,
e
){
var
r
=
Go
.
range
(
n
,
t
-
Ta
,
e
).
concat
(
t
);
return
function
(
n
){
return
r
.
map
(
function
(
t
){
return
[
t
,
n
]})}}
function
mr
(
n
){
return
n
.
source
}
function
yr
(
n
){
return
n
.
target
}
function
xr
(
n
,
t
,
e
,
r
){
var
u
=
Math
.
cos
(
t
),
i
=
Math
.
sin
(
t
),
o
=
Math
.
cos
(
r
),
a
=
Math
.
sin
(
r
),
c
=
u
*
Math
.
cos
(
n
),
s
=
u
*
Math
.
sin
(
n
),
l
=
o
*
Math
.
cos
(
e
),
f
=
o
*
Math
.
sin
(
e
),
h
=
2
*
Math
.
asin
(
Math
.
sqrt
(
tt
(
r
-
t
)
+
u
*
o
*
tt
(
e
-
n
))),
g
=
1
/
Math
.
sin
(
h
),
p
=
h
?
function
(
n
){
var
t
=
Math
.
sin
(
n
*=
h
)
*
g
,
e
=
Math
.
sin
(
h
-
n
)
*
g
,
r
=
e
*
c
+
t
*
l
,
u
=
e
*
s
+
t
*
f
,
o
=
e
*
i
+
t
*
a
;
return
[
Math
.
atan2
(
u
,
r
)
*
Ra
,
Math
.
atan2
(
o
,
Math
.
sqrt
(
r
*
r
+
u
*
u
))
*
Ra
]}:
function
(){
return
[
n
*
Ra
,
t
*
Ra
]};
return
p
.
distance
=
h
,
p
}
function
Mr
(){
function
n
(
n
,
u
){
var
i
=
Math
.
sin
(
u
*=
za
),
o
=
Math
.
cos
(
u
),
a
=
fa
((
n
*=
za
)
-
t
),
c
=
Math
.
cos
(
a
);
Oc
+=
Math
.
atan2
(
Math
.
sqrt
((
a
=
o
*
Math
.
sin
(
a
))
*
a
+
(
a
=
r
*
i
-
e
*
o
*
c
)
*
a
),
e
*
i
+
r
*
o
*
c
),
t
=
n
,
e
=
i
,
r
=
o
}
var
t
,
e
,
r
;
Ic
.
point
=
function
(
u
,
i
){
t
=
u
*
za
,
e
=
Math
.
sin
(
i
*=
za
),
r
=
Math
.
cos
(
i
),
Ic
.
point
=
n
},
Ic
.
lineEnd
=
function
(){
Ic
.
point
=
Ic
.
lineEnd
=
v
}}
function
_r
(
n
,
t
){
function
e
(
t
,
e
){
var
r
=
Math
.
cos
(
t
),
u
=
Math
.
cos
(
e
),
i
=
n
(
r
*
u
);
return
[
i
*
u
*
Math
.
sin
(
t
),
i
*
Math
.
sin
(
e
)]}
return
e
.
invert
=
function
(
n
,
e
){
var
r
=
Math
.
sqrt
(
n
*
n
+
e
*
e
),
u
=
t
(
r
),
i
=
Math
.
sin
(
u
),
o
=
Math
.
cos
(
u
);
return
[
Math
.
atan2
(
n
*
i
,
r
*
o
),
Math
.
asin
(
r
&&
e
*
i
/
r
)]},
e
}
function
br
(
n
,
t
){
function
e
(
n
,
t
){
o
>
0
?
-
La
+
Ta
>
t
&&
(
t
=-
La
+
Ta
):
t
>
La
-
Ta
&&
(
t
=
La
-
Ta
);
var
e
=
o
/
Math
.
pow
(
u
(
t
),
i
);
return
[
e
*
Math
.
sin
(
i
*
n
),
o
-
e
*
Math
.
cos
(
i
*
n
)]}
var
r
=
Math
.
cos
(
n
),
u
=
function
(
n
){
return
Math
.
tan
(
Aa
/
4
+
n
/
2
)},
i
=
n
===
t
?
Math
.
sin
(
n
):
Math
.
log
(
r
/
Math
.
cos
(
t
))
/
Math
.
log
(
u
(
t
)
/
u
(
n
)),
o
=
r
*
Math
.
pow
(
u
(
n
),
i
)
/
i
;
return
i
?(
e
.
invert
=
function
(
n
,
t
){
var
e
=
o
-
t
,
r
=
B
(
i
)
*
Math
.
sqrt
(
n
*
n
+
e
*
e
);
return
[
Math
.
atan2
(
n
,
e
)
/
i
,
2
*
Math
.
atan
(
Math
.
pow
(
o
/
r
,
1
/
i
))
-
La
]},
e
):
Sr
}
function
wr
(
n
,
t
){
function
e
(
n
,
t
){
var
e
=
i
-
t
;
return
[
e
*
Math
.
sin
(
u
*
n
),
i
-
e
*
Math
.
cos
(
u
*
n
)]}
var
r
=
Math
.
cos
(
n
),
u
=
n
===
t
?
Math
.
sin
(
n
):(
r
-
Math
.
cos
(
t
))
/
(
t
-
n
),
i
=
r
/
u
+
n
;
return
fa
(
u
)
<
Ta
?
ar
:(
e
.
invert
=
function
(
n
,
t
){
var
e
=
i
-
t
;
return
[
Math
.
atan2
(
n
,
e
)
/
u
,
i
-
B
(
u
)
*
Math
.
sqrt
(
n
*
n
+
e
*
e
)]},
e
)}
function
Sr
(
n
,
t
){
return
[
n
,
Math
.
log
(
Math
.
tan
(
Aa
/
4
+
t
/
2
))]}
function
kr
(
n
){
var
t
,
e
=
ur
(
n
),
r
=
e
.
scale
,
u
=
e
.
translate
,
i
=
e
.
clipExtent
;
return
e
.
scale
=
function
(){
var
n
=
r
.
apply
(
e
,
arguments
);
return
n
===
e
?
t
?
e
.
clipExtent
(
null
):
e
:
n
},
e
.
translate
=
function
(){
var
n
=
u
.
apply
(
e
,
arguments
);
return
n
===
e
?
t
?
e
.
clipExtent
(
null
):
e
:
n
},
e
.
clipExtent
=
function
(
n
){
var
o
=
i
.
apply
(
e
,
arguments
);
if
(
o
===
e
){
if
(
t
=
null
==
n
){
var
a
=
Aa
*
r
(),
c
=
u
();
i
([[
c
[
0
]
-
a
,
c
[
1
]
-
a
],[
c
[
0
]
+
a
,
c
[
1
]
+
a
]])}}
else
t
&&
(
o
=
null
);
return
o
},
e
.
clipExtent
(
null
)}
function
Er
(
n
,
t
){
return
[
Math
.
log
(
Math
.
tan
(
Aa
/
4
+
t
/
2
)),
-
n
]}
function
Nr
(
n
){
return
n
[
0
]}
function
Ar
(
n
){
return
n
[
1
]}
function
Cr
(
n
){
for
(
var
t
=
n
.
length
,
e
=
[
0
,
1
],
r
=
2
,
u
=
2
;
t
>
u
;
u
++
){
for
(;
r
>
1
&&
J
(
n
[
e
[
r
-
2
]],
n
[
e
[
r
-
1
]],
n
[
u
])
<=
0
;)
--
r
;
e
[
r
++
]
=
u
}
return
e
.
slice
(
0
,
r
)}
function
Lr
(
n
,
t
){
return
n
[
0
]
-
t
[
0
]
||
n
[
1
]
-
t
[
1
]}
function
Tr
(
n
,
t
,
e
){
return
(
e
[
0
]
-
t
[
0
])
*
(
n
[
1
]
-
t
[
1
])
<
(
e
[
1
]
-
t
[
1
])
*
(
n
[
0
]
-
t
[
0
])}
function
qr
(
n
,
t
,
e
,
r
){
var
u
=
n
[
0
],
i
=
e
[
0
],
o
=
t
[
0
]
-
u
,
a
=
r
[
0
]
-
i
,
c
=
n
[
1
],
s
=
e
[
1
],
l
=
t
[
1
]
-
c
,
f
=
r
[
1
]
-
s
,
h
=
(
a
*
(
c
-
s
)
-
f
*
(
u
-
i
))
/
(
f
*
o
-
a
*
l
);
return
[
u
+
h
*
o
,
c
+
h
*
l
]}
function
zr
(
n
){
var
t
=
n
[
0
],
e
=
n
[
n
.
length
-
1
];
return
!
(
t
[
0
]
-
e
[
0
]
||
t
[
1
]
-
e
[
1
])}
function
Rr
(){
tu
(
this
),
this
.
edge
=
this
.
site
=
this
.
circle
=
null
}
function
Dr
(
n
){
var
t
=
ns
.
pop
()
||
new
Rr
;
return
t
.
site
=
n
,
t
}
function
Pr
(
n
){
$r
(
n
),
Gc
.
remove
(
n
),
ns
.
push
(
n
),
tu
(
n
)}
function
Ur
(
n
){
var
t
=
n
.
circle
,
e
=
t
.
x
,
r
=
t
.
cy
,
u
=
{
x
:
e
,
y
:
r
},
i
=
n
.
P
,
o
=
n
.
N
,
a
=
[
n
];
Pr
(
n
);
for
(
var
c
=
i
;
c
.
circle
&&
fa
(
e
-
c
.
circle
.
x
)
<
Ta
&&
fa
(
r
-
c
.
circle
.
cy
)
<
Ta
;)
i
=
c
.
P
,
a
.
unshift
(
c
),
Pr
(
c
),
c
=
i
;
a
.
unshift
(
c
),
$r
(
c
);
for
(
var
s
=
o
;
s
.
circle
&&
fa
(
e
-
s
.
circle
.
x
)
<
Ta
&&
fa
(
r
-
s
.
circle
.
cy
)
<
Ta
;)
o
=
s
.
N
,
a
.
push
(
s
),
Pr
(
s
),
s
=
o
;
a
.
push
(
s
),
$r
(
s
);
var
l
,
f
=
a
.
length
;
for
(
l
=
1
;
f
>
l
;
++
l
)
s
=
a
[
l
],
c
=
a
[
l
-
1
],
Kr
(
s
.
edge
,
c
.
site
,
s
.
site
,
u
);
c
=
a
[
0
],
s
=
a
[
f
-
1
],
s
.
edge
=
Wr
(
c
.
site
,
s
.
site
,
null
,
u
),
Vr
(
c
),
Vr
(
s
)}
function
jr
(
n
){
for
(
var
t
,
e
,
r
,
u
,
i
=
n
.
x
,
o
=
n
.
y
,
a
=
Gc
.
_
;
a
;)
if
(
r
=
Hr
(
a
,
o
)
-
i
,
r
>
Ta
)
a
=
a
.
L
;
else
{
if
(
u
=
i
-
Fr
(
a
,
o
),
!
(
u
>
Ta
)){
r
>-
Ta
?(
t
=
a
.
P
,
e
=
a
):
u
>-
Ta
?(
t
=
a
,
e
=
a
.
N
):
t
=
e
=
a
;
break
}
if
(
!
a
.
R
){
t
=
a
;
break
}
a
=
a
.
R
}
var
c
=
Dr
(
n
);
if
(
Gc
.
insert
(
t
,
c
),
t
||
e
){
if
(
t
===
e
)
return
$r
(
t
),
e
=
Dr
(
t
.
site
),
Gc
.
insert
(
c
,
e
),
c
.
edge
=
e
.
edge
=
Wr
(
t
.
site
,
c
.
site
),
Vr
(
t
),
Vr
(
e
),
void
0
;
if
(
!
e
)
return
c
.
edge
=
Wr
(
t
.
site
,
c
.
site
),
void
0
;
$r
(
t
),
$r
(
e
);
var
s
=
t
.
site
,
l
=
s
.
x
,
f
=
s
.
y
,
h
=
n
.
x
-
l
,
g
=
n
.
y
-
f
,
p
=
e
.
site
,
v
=
p
.
x
-
l
,
d
=
p
.
y
-
f
,
m
=
2
*
(
h
*
d
-
g
*
v
),
y
=
h
*
h
+
g
*
g
,
x
=
v
*
v
+
d
*
d
,
M
=
{
x
:(
d
*
y
-
g
*
x
)
/
m
+
l
,
y
:(
h
*
x
-
v
*
y
)
/
m
+
f
};
Kr
(
e
.
edge
,
s
,
p
,
M
),
c
.
edge
=
Wr
(
s
,
n
,
null
,
M
),
e
.
edge
=
Wr
(
n
,
p
,
null
,
M
),
Vr
(
t
),
Vr
(
e
)}}
function
Hr
(
n
,
t
){
var
e
=
n
.
site
,
r
=
e
.
x
,
u
=
e
.
y
,
i
=
u
-
t
;
if
(
!
i
)
return
r
;