Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
db-game-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
崔立强
db-game-template
Commits
c073463f
Commit
c073463f
authored
Nov 09, 2018
by
wildfirecode
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
9672a67b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
544 additions
and
0 deletions
+544
-0
.DS_Store
egret/.DS_Store
+0
-0
egret.all.js
egret/libs/egret.all.js
+23
-0
zepto_security_downloadApp.min.js
egret/libs/zepto_security_downloadApp.min.js
+521
-0
No files found.
egret/.DS_Store
View file @
c073463f
No preview for this file type
egret/libs/egret.all.js
0 → 100644
View file @
c073463f
This source diff could not be displayed because it is too large. You can
view the blob
instead.
egret/libs/zepto_security_downloadApp.min.js
0 → 100644
View file @
c073463f
// Zepto 1.1.4 (generated with Zepto Builder) - zepto event ajax form ie selector - zeptojs.com/license
var
Zepto
=
function
(){
function
t
(
t
){
return
null
==
t
?
t
+
""
:
U
[
J
.
call
(
t
)]
||
"object"
}
function
e
(
e
){
return
"function"
==
t
(
e
)}
function
n
(
t
){
return
null
!=
t
&&
t
==
t
.
window
}
function
r
(
t
){
return
null
!=
t
&&
t
.
nodeType
==
t
.
DOCUMENT_NODE
}
function
i
(
e
){
return
"object"
==
t
(
e
)}
function
o
(
t
){
return
i
(
t
)
&&!
n
(
t
)
&&
Object
.
getPrototypeOf
(
t
)
==
Object
.
prototype
}
function
s
(
t
){
return
"number"
==
typeof
t
.
length
}
function
a
(
t
){
return
P
.
call
(
t
,
function
(
t
){
return
null
!=
t
})}
function
u
(
t
){
return
t
.
length
>
0
?
j
.
fn
.
concat
.
apply
([],
t
):
t
}
function
c
(
t
){
return
t
.
replace
(
/::/g
,
"/"
).
replace
(
/
([
A-Z
]
+
)([
A-Z
][
a-z
])
/g
,
"$1_$2"
).
replace
(
/
([
a-z
\d])([
A-Z
])
/g
,
"$1_$2"
).
replace
(
/_/g
,
"-"
).
toLowerCase
()}
function
l
(
t
){
return
t
in
$
?
$
[
t
]:
$
[
t
]
=
RegExp
(
"(^|
\\
s)"
+
t
+
"(
\\
s|$)"
)}
function
f
(
t
,
e
){
return
"number"
!=
typeof
e
||
L
[
c
(
t
)]?
e
:
e
+
"px"
}
function
h
(
t
){
var
e
,
n
;
return
Z
[
t
]
||
(
e
=
A
.
createElement
(
t
),
A
.
body
.
appendChild
(
e
),
n
=
getComputedStyle
(
e
,
""
).
getPropertyValue
(
"display"
),
e
.
parentNode
.
removeChild
(
e
),
"none"
==
n
&&
(
n
=
"block"
),
Z
[
t
]
=
n
),
Z
[
t
]}
function
p
(
t
){
return
"children"
in
t
?
O
.
call
(
t
.
children
):
j
.
map
(
t
.
childNodes
,
function
(
t
){
return
1
==
t
.
nodeType
?
t
:
w
})}
function
d
(
t
,
e
,
n
){
for
(
E
in
e
)
n
&&
(
o
(
e
[
E
])
||
G
(
e
[
E
]))?(
o
(
e
[
E
])
&&!
o
(
t
[
E
])
&&
(
t
[
E
]
=
{}),
G
(
e
[
E
])
&&!
G
(
t
[
E
])
&&
(
t
[
E
]
=
[]),
d
(
t
[
E
],
e
[
E
],
n
)):
e
[
E
]
!==
w
&&
(
t
[
E
]
=
e
[
E
])}
function
m
(
t
,
e
){
return
null
==
e
?
j
(
t
):
j
(
t
).
filter
(
e
)}
function
v
(
t
,
n
,
r
,
i
){
return
e
(
n
)?
n
.
call
(
t
,
r
,
i
):
n
}
function
g
(
t
,
e
,
n
){
null
==
n
?
t
.
removeAttribute
(
e
):
t
.
setAttribute
(
e
,
n
)}
function
y
(
t
,
e
){
var
n
=
t
.
className
||
""
,
r
=
n
&&
n
.
baseVal
!==
w
;
return
e
===
w
?
r
?
n
.
baseVal
:
n
:(
r
?
n
.
baseVal
=
e
:
t
.
className
=
e
,
w
)}
function
x
(
t
){
var
e
;
try
{
return
t
?
"true"
==
t
||
(
"false"
==
t
?
!
1
:
"null"
==
t
?
null
:
/^0/
.
test
(
t
)
||
isNaN
(
e
=
Number
(
t
))?
/^
[\[\{]
/
.
test
(
t
)?
j
.
parseJSON
(
t
):
t
:
e
):
t
}
catch
(
n
){
return
t
}}
function
b
(
t
,
e
){
e
(
t
);
for
(
var
n
=
0
,
r
=
t
.
childNodes
.
length
;
r
>
n
;
n
++
)
b
(
t
.
childNodes
[
n
],
e
)}
var
w
,
E
,
j
,
N
,
C
,
T
,
S
=
[],
O
=
S
.
slice
,
P
=
S
.
filter
,
A
=
window
.
document
,
Z
=
{},
$
=
{},
L
=
{
"column-count"
:
1
,
columns
:
1
,
"font-weight"
:
1
,
"line-height"
:
1
,
opacity
:
1
,
"z-index"
:
1
,
zoom
:
1
},
_
=
/^
\s
*<
(\w
+|!
)[^
>
]
*>/
,
D
=
/^<
(\w
+
)\s
*
\/?
>
(?:
<
\/\1
>|
)
$/
,
R
=
/<
(?!
area|br|col|embed|hr|img|input|link|meta|param
)(([\w
:
]
+
)[^
>
]
*
)\/
>/gi
,
k
=
/^
(?:
body|html
)
$/i
,
q
=
/
([
A-Z
])
/g
,
M
=
[
"val"
,
"css"
,
"html"
,
"text"
,
"data"
,
"width"
,
"height"
,
"offset"
],
z
=
[
"after"
,
"prepend"
,
"before"
,
"append"
],
F
=
A
.
createElement
(
"table"
),
H
=
A
.
createElement
(
"tr"
),
I
=
{
tr
:
A
.
createElement
(
"tbody"
),
tbody
:
F
,
thead
:
F
,
tfoot
:
F
,
td
:
H
,
th
:
H
,
"*"
:
A
.
createElement
(
"div"
)},
V
=
/complete|loaded|interactive/
,
B
=
/^
[\w
-
]
*$/
,
U
=
{},
J
=
U
.
toString
,
X
=
{},
W
=
A
.
createElement
(
"div"
),
Y
=
{
tabindex
:
"tabIndex"
,
readonly
:
"readOnly"
,
"for"
:
"htmlFor"
,
"class"
:
"className"
,
maxlength
:
"maxLength"
,
cellspacing
:
"cellSpacing"
,
cellpadding
:
"cellPadding"
,
rowspan
:
"rowSpan"
,
colspan
:
"colSpan"
,
usemap
:
"useMap"
,
frameborder
:
"frameBorder"
,
contenteditable
:
"contentEditable"
},
G
=
Array
.
isArray
||
function
(
t
){
return
t
instanceof
Array
};
return
X
.
matches
=
function
(
t
,
e
){
if
(
!
e
||!
t
||
1
!==
t
.
nodeType
)
return
!
1
;
var
n
=
t
.
webkitMatchesSelector
||
t
.
mozMatchesSelector
||
t
.
oMatchesSelector
||
t
.
matchesSelector
;
if
(
n
)
return
n
.
call
(
t
,
e
);
var
r
,
i
=
t
.
parentNode
,
o
=!
i
;
return
o
&&
(
i
=
W
).
appendChild
(
t
),
r
=~
X
.
qsa
(
i
,
e
).
indexOf
(
t
),
o
&&
W
.
removeChild
(
t
),
r
},
C
=
function
(
t
){
return
t
.
replace
(
/-+
(
.
)?
/g
,
function
(
t
,
e
){
return
e
?
e
.
toUpperCase
():
""
})},
T
=
function
(
t
){
return
P
.
call
(
t
,
function
(
e
,
n
){
return
t
.
indexOf
(
e
)
==
n
})},
X
.
fragment
=
function
(
t
,
e
,
n
){
var
r
,
i
,
s
;
return
D
.
test
(
t
)
&&
(
r
=
j
(
A
.
createElement
(
RegExp
.
$1
))),
r
||
(
t
.
replace
&&
(
t
=
t
.
replace
(
R
,
"<$1></$2>"
)),
e
===
w
&&
(
e
=
_
.
test
(
t
)
&&
RegExp
.
$1
),
e
in
I
||
(
e
=
"*"
),
s
=
I
[
e
],
s
.
innerHTML
=
""
+
t
,
r
=
j
.
each
(
O
.
call
(
s
.
childNodes
),
function
(){
s
.
removeChild
(
this
)})),
o
(
n
)
&&
(
i
=
j
(
r
),
j
.
each
(
n
,
function
(
t
,
e
){
M
.
indexOf
(
t
)
>-
1
?
i
[
t
](
e
):
i
.
attr
(
t
,
e
)})),
r
},
X
.
Z
=
function
(
t
,
e
){
return
t
=
t
||
[],
t
.
__proto__
=
j
.
fn
,
t
.
selector
=
e
||
""
,
t
},
X
.
isZ
=
function
(
t
){
return
t
instanceof
X
.
Z
},
X
.
init
=
function
(
t
,
n
){
var
r
;
if
(
!
t
)
return
X
.
Z
();
if
(
"string"
==
typeof
t
)
if
(
t
=
t
.
trim
(),
"<"
==
t
[
0
]
&&
_
.
test
(
t
))
r
=
X
.
fragment
(
t
,
RegExp
.
$1
,
n
),
t
=
null
;
else
{
if
(
n
!==
w
)
return
j
(
n
).
find
(
t
);
r
=
X
.
qsa
(
A
,
t
)}
else
{
if
(
e
(
t
))
return
j
(
A
).
ready
(
t
);
if
(
X
.
isZ
(
t
))
return
t
;
if
(
G
(
t
))
r
=
a
(
t
);
else
if
(
i
(
t
))
r
=
[
t
],
t
=
null
;
else
if
(
_
.
test
(
t
))
r
=
X
.
fragment
(
t
.
trim
(),
RegExp
.
$1
,
n
),
t
=
null
;
else
{
if
(
n
!==
w
)
return
j
(
n
).
find
(
t
);
r
=
X
.
qsa
(
A
,
t
)}}
return
X
.
Z
(
r
,
t
)},
j
=
function
(
t
,
e
){
return
X
.
init
(
t
,
e
)},
j
.
extend
=
function
(
t
){
var
e
,
n
=
O
.
call
(
arguments
,
1
);
return
"boolean"
==
typeof
t
&&
(
e
=
t
,
t
=
n
.
shift
()),
n
.
forEach
(
function
(
n
){
d
(
t
,
n
,
e
)}),
t
},
X
.
qsa
=
function
(
t
,
e
){
var
n
,
i
=
"#"
==
e
[
0
],
o
=!
i
&&
"."
==
e
[
0
],
s
=
i
||
o
?
e
.
slice
(
1
):
e
,
a
=
B
.
test
(
s
);
return
r
(
t
)
&&
a
&&
i
?(
n
=
t
.
getElementById
(
s
))?[
n
]:[]:
1
!==
t
.
nodeType
&&
9
!==
t
.
nodeType
?[]:
O
.
call
(
a
&&!
i
?
o
?
t
.
getElementsByClassName
(
s
):
t
.
getElementsByTagName
(
e
):
t
.
querySelectorAll
(
e
))},
j
.
contains
=
A
.
documentElement
.
contains
?
function
(
t
,
e
){
return
t
!==
e
&&
t
.
contains
(
e
)}:
function
(
t
,
e
){
for
(;
e
&&
(
e
=
e
.
parentNode
);)
if
(
e
===
t
)
return
!
0
;
return
!
1
},
j
.
type
=
t
,
j
.
isFunction
=
e
,
j
.
isWindow
=
n
,
j
.
isArray
=
G
,
j
.
isPlainObject
=
o
,
j
.
isEmptyObject
=
function
(
t
){
var
e
;
for
(
e
in
t
)
return
!
1
;
return
!
0
},
j
.
inArray
=
function
(
t
,
e
,
n
){
return
S
.
indexOf
.
call
(
e
,
t
,
n
)},
j
.
camelCase
=
C
,
j
.
trim
=
function
(
t
){
return
null
==
t
?
""
:
String
.
prototype
.
trim
.
call
(
t
)},
j
.
uuid
=
0
,
j
.
support
=
{},
j
.
expr
=
{},
j
.
map
=
function
(
t
,
e
){
var
n
,
r
,
i
,
o
=
[];
if
(
s
(
t
))
for
(
r
=
0
;
t
.
length
>
r
;
r
++
)
n
=
e
(
t
[
r
],
r
),
null
!=
n
&&
o
.
push
(
n
);
else
for
(
i
in
t
)
n
=
e
(
t
[
i
],
i
),
null
!=
n
&&
o
.
push
(
n
);
return
u
(
o
)},
j
.
each
=
function
(
t
,
e
){
var
n
,
r
;
if
(
s
(
t
)){
for
(
n
=
0
;
t
.
length
>
n
;
n
++
)
if
(
e
.
call
(
t
[
n
],
n
,
t
[
n
])
===!
1
)
return
t
}
else
for
(
r
in
t
)
if
(
e
.
call
(
t
[
r
],
r
,
t
[
r
])
===!
1
)
return
t
;
return
t
},
j
.
grep
=
function
(
t
,
e
){
return
P
.
call
(
t
,
e
)},
window
.
JSON
&&
(
j
.
parseJSON
=
JSON
.
parse
),
j
.
each
(
"Boolean Number String Function Array Date RegExp Object Error"
.
split
(
" "
),
function
(
t
,
e
){
U
[
"[object "
+
e
+
"]"
]
=
e
.
toLowerCase
()}),
j
.
fn
=
{
forEach
:
S
.
forEach
,
reduce
:
S
.
reduce
,
push
:
S
.
push
,
sort
:
S
.
sort
,
indexOf
:
S
.
indexOf
,
concat
:
S
.
concat
,
map
:
function
(
t
){
return
j
(
j
.
map
(
this
,
function
(
e
,
n
){
return
t
.
call
(
e
,
n
,
e
)}))},
slice
:
function
(){
return
j
(
O
.
apply
(
this
,
arguments
))},
ready
:
function
(
t
){
return
V
.
test
(
A
.
readyState
)
&&
A
.
body
?
t
(
j
):
A
.
addEventListener
(
"DOMContentLoaded"
,
function
(){
t
(
j
)},
!
1
),
this
},
get
:
function
(
t
){
return
t
===
w
?
O
.
call
(
this
):
this
[
t
>=
0
?
t
:
t
+
this
.
length
]},
toArray
:
function
(){
return
this
.
get
()},
size
:
function
(){
return
this
.
length
},
remove
:
function
(){
return
this
.
each
(
function
(){
null
!=
this
.
parentNode
&&
this
.
parentNode
.
removeChild
(
this
)})},
each
:
function
(
t
){
return
S
.
every
.
call
(
this
,
function
(
e
,
n
){
return
t
.
call
(
e
,
n
,
e
)
!==!
1
}),
this
},
filter
:
function
(
t
){
return
e
(
t
)?
this
.
not
(
this
.
not
(
t
)):
j
(
P
.
call
(
this
,
function
(
e
){
return
X
.
matches
(
e
,
t
)}))},
add
:
function
(
t
,
e
){
return
j
(
T
(
this
.
concat
(
j
(
t
,
e
))))},
is
:
function
(
t
){
return
this
.
length
>
0
&&
X
.
matches
(
this
[
0
],
t
)},
not
:
function
(
t
){
var
n
=
[];
if
(
e
(
t
)
&&
t
.
call
!==
w
)
this
.
each
(
function
(
e
){
t
.
call
(
this
,
e
)
||
n
.
push
(
this
)});
else
{
var
r
=
"string"
==
typeof
t
?
this
.
filter
(
t
):
s
(
t
)
&&
e
(
t
.
item
)?
O
.
call
(
t
):
j
(
t
);
this
.
forEach
(
function
(
t
){
0
>
r
.
indexOf
(
t
)
&&
n
.
push
(
t
)})}
return
j
(
n
)},
has
:
function
(
t
){
return
this
.
filter
(
function
(){
return
i
(
t
)?
j
.
contains
(
this
,
t
):
j
(
this
).
find
(
t
).
size
()})},
eq
:
function
(
t
){
return
-
1
===
t
?
this
.
slice
(
t
):
this
.
slice
(
t
,
+
t
+
1
)},
first
:
function
(){
var
t
=
this
[
0
];
return
t
&&!
i
(
t
)?
t
:
j
(
t
)},
last
:
function
(){
var
t
=
this
[
this
.
length
-
1
];
return
t
&&!
i
(
t
)?
t
:
j
(
t
)},
find
:
function
(
t
){
var
e
,
n
=
this
;
return
e
=
t
?
"object"
==
typeof
t
?
j
(
t
).
filter
(
function
(){
var
t
=
this
;
return
S
.
some
.
call
(
n
,
function
(
e
){
return
j
.
contains
(
e
,
t
)})}):
1
==
this
.
length
?
j
(
X
.
qsa
(
this
[
0
],
t
)):
this
.
map
(
function
(){
return
X
.
qsa
(
this
,
t
)}):[]},
closest
:
function
(
t
,
e
){
var
n
=
this
[
0
],
i
=!
1
;
for
(
"object"
==
typeof
t
&&
(
i
=
j
(
t
));
n
&&!
(
i
?
i
.
indexOf
(
n
)
>=
0
:
X
.
matches
(
n
,
t
));)
n
=
n
!==
e
&&!
r
(
n
)
&&
n
.
parentNode
;
return
j
(
n
)},
parents
:
function
(
t
){
for
(
var
e
=
[],
n
=
this
;
n
.
length
>
0
;)
n
=
j
.
map
(
n
,
function
(
t
){
return
(
t
=
t
.
parentNode
)
&&!
r
(
t
)
&&
0
>
e
.
indexOf
(
t
)?(
e
.
push
(
t
),
t
):
w
});
return
m
(
e
,
t
)},
parent
:
function
(
t
){
return
m
(
T
(
this
.
pluck
(
"parentNode"
)),
t
)},
children
:
function
(
t
){
return
m
(
this
.
map
(
function
(){
return
p
(
this
)}),
t
)},
contents
:
function
(){
return
this
.
map
(
function
(){
return
O
.
call
(
this
.
childNodes
)})},
siblings
:
function
(
t
){
return
m
(
this
.
map
(
function
(
t
,
e
){
return
P
.
call
(
p
(
e
.
parentNode
),
function
(
t
){
return
t
!==
e
})}),
t
)},
empty
:
function
(){
return
this
.
each
(
function
(){
this
.
innerHTML
=
""
})},
pluck
:
function
(
t
){
return
j
.
map
(
this
,
function
(
e
){
return
e
[
t
]})},
show
:
function
(){
return
this
.
each
(
function
(){
"none"
==
this
.
style
.
display
&&
(
this
.
style
.
display
=
""
),
"none"
==
getComputedStyle
(
this
,
""
).
getPropertyValue
(
"display"
)
&&
(
this
.
style
.
display
=
h
(
this
.
nodeName
))})},
replaceWith
:
function
(
t
){
return
this
.
before
(
t
).
remove
()},
wrap
:
function
(
t
){
var
n
=
e
(
t
);
if
(
this
[
0
]
&&!
n
)
var
r
=
j
(
t
).
get
(
0
),
i
=
r
.
parentNode
||
this
.
length
>
1
;
return
this
.
each
(
function
(
e
){
j
(
this
).
wrapAll
(
n
?
t
.
call
(
this
,
e
):
i
?
r
.
cloneNode
(
!
0
):
r
)})},
wrapAll
:
function
(
t
){
if
(
this
[
0
]){
j
(
this
[
0
]).
before
(
t
=
j
(
t
));
for
(
var
e
;(
e
=
t
.
children
()).
length
;)
t
=
e
.
first
();
j
(
t
).
append
(
this
)}
return
this
},
wrapInner
:
function
(
t
){
var
n
=
e
(
t
);
return
this
.
each
(
function
(
e
){
var
r
=
j
(
this
),
i
=
r
.
contents
(),
o
=
n
?
t
.
call
(
this
,
e
):
t
;
i
.
length
?
i
.
wrapAll
(
o
):
r
.
append
(
o
)})},
unwrap
:
function
(){
return
this
.
parent
().
each
(
function
(){
j
(
this
).
replaceWith
(
j
(
this
).
children
())}),
this
},
clone
:
function
(){
return
this
.
map
(
function
(){
return
this
.
cloneNode
(
!
0
)})},
hide
:
function
(){
return
this
.
css
(
"display"
,
"none"
)},
toggle
:
function
(
t
){
return
this
.
each
(
function
(){
var
e
=
j
(
this
);(
t
===
w
?
"none"
==
e
.
css
(
"display"
):
t
)?
e
.
show
():
e
.
hide
()})},
prev
:
function
(
t
){
return
j
(
this
.
pluck
(
"previousElementSibling"
)).
filter
(
t
||
"*"
)},
next
:
function
(
t
){
return
j
(
this
.
pluck
(
"nextElementSibling"
)).
filter
(
t
||
"*"
)},
html
:
function
(
t
){
return
0
in
arguments
?
this
.
each
(
function
(
e
){
var
n
=
this
.
innerHTML
;
j
(
this
).
empty
().
append
(
v
(
this
,
t
,
e
,
n
))}):
0
in
this
?
this
[
0
].
innerHTML
:
null
},
text
:
function
(
t
){
return
0
in
arguments
?
this
.
each
(
function
(
e
){
var
n
=
v
(
this
,
t
,
e
,
this
.
textContent
);
this
.
textContent
=
null
==
n
?
""
:
""
+
n
}):
0
in
this
?
this
[
0
].
textContent
:
null
},
attr
:
function
(
t
,
e
){
var
n
;
return
"string"
!=
typeof
t
||
1
in
arguments
?
this
.
each
(
function
(
n
){
if
(
1
===
this
.
nodeType
)
if
(
i
(
t
))
for
(
E
in
t
)
g
(
this
,
E
,
t
[
E
]);
else
g
(
this
,
t
,
v
(
this
,
e
,
n
,
this
.
getAttribute
(
t
)))}):
this
.
length
&&
1
===
this
[
0
].
nodeType
?
!
(
n
=
this
[
0
].
getAttribute
(
t
))
&&
t
in
this
[
0
]?
this
[
0
][
t
]:
n
:
w
},
removeAttr
:
function
(
t
){
return
this
.
each
(
function
(){
1
===
this
.
nodeType
&&
g
(
this
,
t
)})},
prop
:
function
(
t
,
e
){
return
t
=
Y
[
t
]
||
t
,
1
in
arguments
?
this
.
each
(
function
(
n
){
this
[
t
]
=
v
(
this
,
e
,
n
,
this
[
t
])}):
this
[
0
]
&&
this
[
0
][
t
]},
data
:
function
(
t
,
e
){
var
n
=
"data-"
+
t
.
replace
(
q
,
"-$1"
).
toLowerCase
(),
r
=
1
in
arguments
?
this
.
attr
(
n
,
e
):
this
.
attr
(
n
);
return
null
!==
r
?
x
(
r
):
w
},
val
:
function
(
t
){
return
0
in
arguments
?
this
.
each
(
function
(
e
){
this
.
value
=
v
(
this
,
t
,
e
,
this
.
value
)}):
this
[
0
]
&&
(
this
[
0
].
multiple
?
j
(
this
[
0
]).
find
(
"option"
).
filter
(
function
(){
return
this
.
selected
}).
pluck
(
"value"
):
this
[
0
].
value
)},
offset
:
function
(
t
){
if
(
t
)
return
this
.
each
(
function
(
e
){
var
n
=
j
(
this
),
r
=
v
(
this
,
t
,
e
,
n
.
offset
()),
i
=
n
.
offsetParent
().
offset
(),
o
=
{
top
:
r
.
top
-
i
.
top
,
left
:
r
.
left
-
i
.
left
};
"static"
==
n
.
css
(
"position"
)
&&
(
o
.
position
=
"relative"
),
n
.
css
(
o
)});
if
(
!
this
.
length
)
return
null
;
var
e
=
this
[
0
].
getBoundingClientRect
();
return
{
left
:
e
.
left
+
window
.
pageXOffset
,
top
:
e
.
top
+
window
.
pageYOffset
,
width
:
Math
.
round
(
e
.
width
),
height
:
Math
.
round
(
e
.
height
)}},
css
:
function
(
e
,
n
){
if
(
2
>
arguments
.
length
){
var
r
=
this
[
0
],
i
=
getComputedStyle
(
r
,
""
);
if
(
!
r
)
return
;
if
(
"string"
==
typeof
e
)
return
r
.
style
[
C
(
e
)]
||
i
.
getPropertyValue
(
e
);
if
(
G
(
e
)){
var
o
=
{};
return
j
.
each
(
e
,
function
(
t
,
e
){
o
[
e
]
=
r
.
style
[
C
(
e
)]
||
i
.
getPropertyValue
(
e
)}),
o
}}
var
s
=
""
;
if
(
"string"
==
t
(
e
))
n
||
0
===
n
?
s
=
c
(
e
)
+
":"
+
f
(
e
,
n
):
this
.
each
(
function
(){
this
.
style
.
removeProperty
(
c
(
e
))});
else
for
(
E
in
e
)
e
[
E
]
||
0
===
e
[
E
]?
s
+=
c
(
E
)
+
":"
+
f
(
E
,
e
[
E
])
+
";"
:
this
.
each
(
function
(){
this
.
style
.
removeProperty
(
c
(
E
))});
return
this
.
each
(
function
(){
this
.
style
.
cssText
+=
";"
+
s
})},
index
:
function
(
t
){
return
t
?
this
.
indexOf
(
j
(
t
)[
0
]):
this
.
parent
().
children
().
indexOf
(
this
[
0
])},
hasClass
:
function
(
t
){
return
t
?
S
.
some
.
call
(
this
,
function
(
t
){
return
this
.
test
(
y
(
t
))},
l
(
t
)):
!
1
},
addClass
:
function
(
t
){
return
t
?
this
.
each
(
function
(
e
){
if
(
"className"
in
this
){
N
=
[];
var
n
=
y
(
this
),
r
=
v
(
this
,
t
,
e
,
n
);
r
.
split
(
/
\s
+/g
).
forEach
(
function
(
t
){
j
(
this
).
hasClass
(
t
)
||
N
.
push
(
t
)},
this
),
N
.
length
&&
y
(
this
,
n
+
(
n
?
" "
:
""
)
+
N
.
join
(
" "
))}}):
this
},
removeClass
:
function
(
t
){
return
this
.
each
(
function
(
e
){
if
(
"className"
in
this
){
if
(
t
===
w
)
return
y
(
this
,
""
);
N
=
y
(
this
),
v
(
this
,
t
,
e
,
N
).
split
(
/
\s
+/g
).
forEach
(
function
(
t
){
N
=
N
.
replace
(
l
(
t
),
" "
)}),
y
(
this
,
N
.
trim
())}})},
toggleClass
:
function
(
t
,
e
){
return
t
?
this
.
each
(
function
(
n
){
var
r
=
j
(
this
),
i
=
v
(
this
,
t
,
n
,
y
(
this
));
i
.
split
(
/
\s
+/g
).
forEach
(
function
(
t
){(
e
===
w
?
!
r
.
hasClass
(
t
):
e
)?
r
.
addClass
(
t
):
r
.
removeClass
(
t
)})}):
this
},
scrollTop
:
function
(
t
){
if
(
this
.
length
){
var
e
=
"scrollTop"
in
this
[
0
];
return
t
===
w
?
e
?
this
[
0
].
scrollTop
:
this
[
0
].
pageYOffset
:
this
.
each
(
e
?
function
(){
this
.
scrollTop
=
t
}:
function
(){
this
.
scrollTo
(
this
.
scrollX
,
t
)})}},
scrollLeft
:
function
(
t
){
if
(
this
.
length
){
var
e
=
"scrollLeft"
in
this
[
0
];
return
t
===
w
?
e
?
this
[
0
].
scrollLeft
:
this
[
0
].
pageXOffset
:
this
.
each
(
e
?
function
(){
this
.
scrollLeft
=
t
}:
function
(){
this
.
scrollTo
(
t
,
this
.
scrollY
)})}},
position
:
function
(){
if
(
this
.
length
){
var
t
=
this
[
0
],
e
=
this
.
offsetParent
(),
n
=
this
.
offset
(),
r
=
k
.
test
(
e
[
0
].
nodeName
)?{
top
:
0
,
left
:
0
}:
e
.
offset
();
return
n
.
top
-=
parseFloat
(
j
(
t
).
css
(
"margin-top"
))
||
0
,
n
.
left
-=
parseFloat
(
j
(
t
).
css
(
"margin-left"
))
||
0
,
r
.
top
+=
parseFloat
(
j
(
e
[
0
]).
css
(
"border-top-width"
))
||
0
,
r
.
left
+=
parseFloat
(
j
(
e
[
0
]).
css
(
"border-left-width"
))
||
0
,{
top
:
n
.
top
-
r
.
top
,
left
:
n
.
left
-
r
.
left
}}},
offsetParent
:
function
(){
return
this
.
map
(
function
(){
for
(
var
t
=
this
.
offsetParent
||
A
.
body
;
t
&&!
k
.
test
(
t
.
nodeName
)
&&
"static"
==
j
(
t
).
css
(
"position"
);)
t
=
t
.
offsetParent
;
return
t
})}},
j
.
fn
.
detach
=
j
.
fn
.
remove
,[
"width"
,
"height"
].
forEach
(
function
(
t
){
var
e
=
t
.
replace
(
/./
,
function
(
t
){
return
t
[
0
].
toUpperCase
()});
j
.
fn
[
t
]
=
function
(
i
){
var
o
,
s
=
this
[
0
];
return
i
===
w
?
n
(
s
)?
s
[
"inner"
+
e
]:
r
(
s
)?
s
.
documentElement
[
"scroll"
+
e
]:(
o
=
this
.
offset
())
&&
o
[
t
]:
this
.
each
(
function
(
e
){
s
=
j
(
this
),
s
.
css
(
t
,
v
(
this
,
i
,
e
,
s
[
t
]()))})}}),
z
.
forEach
(
function
(
e
,
n
){
var
r
=
n
%
2
;
j
.
fn
[
e
]
=
function
(){
var
e
,
i
,
o
=
j
.
map
(
arguments
,
function
(
n
){
return
e
=
t
(
n
),
"object"
==
e
||
"array"
==
e
||
null
==
n
?
n
:
X
.
fragment
(
n
)}),
s
=
this
.
length
>
1
;
return
1
>
o
.
length
?
this
:
this
.
each
(
function
(
t
,
e
){
i
=
r
?
e
:
e
.
parentNode
,
e
=
0
==
n
?
e
.
nextSibling
:
1
==
n
?
e
.
firstChild
:
2
==
n
?
e
:
null
;
var
a
=
j
.
contains
(
A
.
documentElement
,
i
);
o
.
forEach
(
function
(
t
){
if
(
s
)
t
=
t
.
cloneNode
(
!
0
);
else
if
(
!
i
)
return
j
(
t
).
remove
();
i
.
insertBefore
(
t
,
e
),
a
&&
b
(
t
,
function
(
t
){
null
==
t
.
nodeName
||
"SCRIPT"
!==
t
.
nodeName
.
toUpperCase
()
||
t
.
type
&&
"text/javascript"
!==
t
.
type
||
t
.
src
||
window
.
eval
.
call
(
window
,
t
.
innerHTML
)})})})},
j
.
fn
[
r
?
e
+
"To"
:
"insert"
+
(
n
?
"Before"
:
"After"
)]
=
function
(
t
){
return
j
(
t
)[
e
](
this
),
this
}}),
X
.
Z
.
prototype
=
j
.
fn
,
X
.
uniq
=
T
,
X
.
deserializeValue
=
x
,
j
.
zepto
=
X
,
j
}();
window
.
Zepto
=
Zepto
,
void
0
===
window
.
$
&&
(
window
.
$
=
Zepto
),
function
(
t
){
function
e
(
e
,
n
,
r
){
var
i
=
t
.
Event
(
n
);
return
t
(
e
).
trigger
(
i
,
r
),
!
i
.
isDefaultPrevented
()}
function
n
(
t
,
n
,
r
,
i
){
return
t
.
global
?
e
(
n
||
y
,
r
,
i
):
void
0
}
function
r
(
e
){
e
.
global
&&
0
===
t
.
active
++&&
n
(
e
,
null
,
"ajaxStart"
)}
function
i
(
e
){
e
.
global
&&!--
t
.
active
&&
n
(
e
,
null
,
"ajaxStop"
)}
function
o
(
t
,
e
){
var
r
=
e
.
context
;
return
e
.
beforeSend
.
call
(
r
,
t
,
e
)
===!
1
||
n
(
e
,
r
,
"ajaxBeforeSend"
,[
t
,
e
])
===!
1
?
!
1
:(
n
(
e
,
r
,
"ajaxSend"
,[
t
,
e
]),
void
0
)}
function
s
(
t
,
e
,
r
,
i
){
var
o
=
r
.
context
,
s
=
"success"
;
r
.
success
.
call
(
o
,
t
,
s
,
e
),
i
&&
i
.
resolveWith
(
o
,[
t
,
s
,
e
]),
n
(
r
,
o
,
"ajaxSuccess"
,[
e
,
r
,
t
]),
u
(
s
,
e
,
r
)}
function
a
(
t
,
e
,
r
,
i
,
o
){
var
s
=
i
.
context
;
i
.
error
.
call
(
s
,
r
,
e
,
t
),
o
&&
o
.
rejectWith
(
s
,[
r
,
e
,
t
]),
n
(
i
,
s
,
"ajaxError"
,[
r
,
i
,
t
||
e
]),
u
(
e
,
r
,
i
)}
function
u
(
t
,
e
,
r
){
var
o
=
r
.
context
;
r
.
complete
.
call
(
o
,
e
,
t
),
n
(
r
,
o
,
"ajaxComplete"
,[
e
,
r
]),
i
(
r
)}
function
c
(){}
function
l
(
t
){
return
t
&&
(
t
=
t
.
split
(
";"
,
2
)[
0
]),
t
&&
(
t
==
j
?
"html"
:
t
==
E
?
"json"
:
b
.
test
(
t
)?
"script"
:
w
.
test
(
t
)
&&
"xml"
)
||
"text"
}
function
f
(
t
,
e
){
return
""
==
e
?
t
:(
t
+
"&"
+
e
).
replace
(
/
[
&?
]{1,2}
/
,
"?"
)}
function
h
(
e
){
e
.
processData
&&
e
.
data
&&
"string"
!=
t
.
type
(
e
.
data
)
&&
(
e
.
data
=
t
.
param
(
e
.
data
,
e
.
traditional
)),
!
e
.
data
||
e
.
type
&&
"GET"
!=
e
.
type
.
toUpperCase
()
||
(
e
.
url
=
f
(
e
.
url
,
e
.
data
),
e
.
data
=
void
0
)}
function
p
(
e
,
n
,
r
,
i
){
return
t
.
isFunction
(
n
)
&&
(
i
=
r
,
r
=
n
,
n
=
void
0
),
t
.
isFunction
(
r
)
||
(
i
=
r
,
r
=
void
0
),{
url
:
e
,
data
:
n
,
success
:
r
,
dataType
:
i
}}
function
d
(
e
,
n
,
r
,
i
){
var
o
,
s
=
t
.
isArray
(
n
),
a
=
t
.
isPlainObject
(
n
);
t
.
each
(
n
,
function
(
n
,
u
){
o
=
t
.
type
(
u
),
i
&&
(
n
=
r
?
i
:
i
+
"["
+
(
a
||
"object"
==
o
||
"array"
==
o
?
n
:
""
)
+
"]"
),
!
i
&&
s
?
e
.
add
(
u
.
name
,
u
.
value
):
"array"
==
o
||!
r
&&
"object"
==
o
?
d
(
e
,
u
,
r
,
n
):
e
.
add
(
n
,
u
)})}
var
m
,
v
,
g
=
0
,
y
=
window
.
document
,
x
=
/<script
\b[^
<
]
*
(?:(?!
<
\/
script>
)
<
[^
<
]
*
)
*<
\/
script>/gi
,
b
=
/^
(?:
text|application
)\/
javascript/i
,
w
=
/^
(?:
text|application
)\/
xml/i
,
E
=
"application/json"
,
j
=
"text/html"
,
N
=
/^
\s
*$/
;
t
.
active
=
0
,
t
.
ajaxJSONP
=
function
(
e
,
n
){
if
(
!
(
"type"
in
e
))
return
t
.
ajax
(
e
);
var
r
,
i
,
u
=
e
.
jsonpCallback
,
c
=
(
t
.
isFunction
(
u
)?
u
():
u
)
||
"jsonp"
+
++
g
,
l
=
y
.
createElement
(
"script"
),
f
=
window
[
c
],
h
=
function
(
e
){
t
(
l
).
triggerHandler
(
"error"
,
e
||
"abort"
)},
p
=
{
abort
:
h
};
return
n
&&
n
.
promise
(
p
),
t
(
l
).
on
(
"load error"
,
function
(
o
,
u
){
clearTimeout
(
i
),
t
(
l
).
off
().
remove
(),
"error"
!=
o
.
type
&&
r
?
s
(
r
[
0
],
p
,
e
,
n
):
a
(
null
,
u
||
"error"
,
p
,
e
,
n
),
window
[
c
]
=
f
,
r
&&
t
.
isFunction
(
f
)
&&
f
(
r
[
0
]),
f
=
r
=
void
0
}),
o
(
p
,
e
)
===!
1
?(
h
(
"abort"
),
p
):(
window
[
c
]
=
function
(){
r
=
arguments
},
l
.
src
=
e
.
url
.
replace
(
/
\?(
.+
)
=
\?
/
,
"?$1="
+
c
),
y
.
head
.
appendChild
(
l
),
e
.
timeout
>
0
&&
(
i
=
setTimeout
(
function
(){
h
(
"timeout"
)},
e
.
timeout
)),
p
)},
t
.
ajaxSettings
=
{
type
:
"GET"
,
beforeSend
:
c
,
success
:
c
,
error
:
c
,
complete
:
c
,
context
:
null
,
global
:
!
0
,
xhr
:
function
(){
return
new
window
.
XMLHttpRequest
},
accepts
:{
script
:
"text/javascript, application/javascript, application/x-javascript"
,
json
:
E
,
xml
:
"application/xml, text/xml"
,
html
:
j
,
text
:
"text/plain"
},
crossDomain
:
!
1
,
timeout
:
0
,
processData
:
!
0
,
cache
:
!
0
},
t
.
ajax
=
function
(
e
){
var
n
=
t
.
extend
({},
e
||
{}),
i
=
t
.
Deferred
&&
t
.
Deferred
();
for
(
m
in
t
.
ajaxSettings
)
void
0
===
n
[
m
]
&&
(
n
[
m
]
=
t
.
ajaxSettings
[
m
]);
r
(
n
),
n
.
crossDomain
||
(
n
.
crossDomain
=
/^
([\w
-
]
+:
)?\/\/([^\/]
+
)
/
.
test
(
n
.
url
)
&&
RegExp
.
$2
!=
window
.
location
.
host
),
n
.
url
||
(
n
.
url
=
""
+
window
.
location
),
h
(
n
);
var
u
=
n
.
dataType
,
p
=
/
\?
.+=
\?
/
.
test
(
n
.
url
);
if
(
p
&&
(
u
=
"jsonp"
),
n
.
cache
!==!
1
&&
(
e
&&
e
.
cache
===!
0
||
"script"
!=
u
&&
"jsonp"
!=
u
)
||
(
n
.
url
=
f
(
n
.
url
,
"_="
+
Date
.
now
())),
"jsonp"
==
u
)
return
p
||
(
n
.
url
=
f
(
n
.
url
,
n
.
jsonp
?
n
.
jsonp
+
"=?"
:
n
.
jsonp
===!
1
?
""
:
"callback=?"
)),
t
.
ajaxJSONP
(
n
,
i
);
var
d
,
g
=
n
.
accepts
[
u
],
y
=
{},
x
=
function
(
t
,
e
){
y
[
t
.
toLowerCase
()]
=
[
t
,
e
]},
b
=
/^
([\w
-
]
+:
)\/\/
/
.
test
(
n
.
url
)?
RegExp
.
$1
:
window
.
location
.
protocol
,
w
=
n
.
xhr
(),
E
=
w
.
setRequestHeader
;
if
(
i
&&
i
.
promise
(
w
),
n
.
crossDomain
||
x
(
"X-Requested-With"
,
"XMLHttpRequest"
),
x
(
"Accept"
,
g
||
"*/*"
),(
g
=
n
.
mimeType
||
g
)
&&
(
g
.
indexOf
(
","
)
>-
1
&&
(
g
=
g
.
split
(
","
,
2
)[
0
]),
w
.
overrideMimeType
&&
w
.
overrideMimeType
(
g
)),(
n
.
contentType
||
n
.
contentType
!==!
1
&&
n
.
data
&&
"GET"
!=
n
.
type
.
toUpperCase
())
&&
x
(
"Content-Type"
,
n
.
contentType
||
"application/x-www-form-urlencoded"
),
n
.
headers
)
for
(
v
in
n
.
headers
)
x
(
v
,
n
.
headers
[
v
]);
if
(
w
.
setRequestHeader
=
x
,
w
.
onreadystatechange
=
function
(){
if
(
4
==
w
.
readyState
){
w
.
onreadystatechange
=
c
,
clearTimeout
(
d
);
var
e
,
r
=!
1
;
if
(
w
.
status
>=
200
&&
300
>
w
.
status
||
304
==
w
.
status
||
0
==
w
.
status
&&
"file:"
==
b
){
u
=
u
||
l
(
n
.
mimeType
||
w
.
getResponseHeader
(
"content-type"
)),
e
=
w
.
responseText
;
try
{
"script"
==
u
?(
1
,
eval
)(
e
):
"xml"
==
u
?
e
=
w
.
responseXML
:
"json"
==
u
&&
(
e
=
N
.
test
(
e
)?
null
:
t
.
parseJSON
(
e
))}
catch
(
o
){
r
=
o
}
r
?
a
(
r
,
"parsererror"
,
w
,
n
,
i
):
s
(
e
,
w
,
n
,
i
)}
else
a
(
w
.
statusText
||
null
,
w
.
status
?
"error"
:
"abort"
,
w
,
n
,
i
)}},
o
(
w
,
n
)
===!
1
)
return
w
.
abort
(),
a
(
null
,
"abort"
,
w
,
n
,
i
),
w
;
if
(
n
.
xhrFields
)
for
(
v
in
n
.
xhrFields
)
w
[
v
]
=
n
.
xhrFields
[
v
];
var
j
=
"async"
in
n
?
n
.
async
:
!
0
;
w
.
open
(
n
.
type
,
n
.
url
,
j
,
n
.
username
,
n
.
password
);
for
(
v
in
y
)
E
.
apply
(
w
,
y
[
v
]);
return
n
.
timeout
>
0
&&
(
d
=
setTimeout
(
function
(){
w
.
onreadystatechange
=
c
,
w
.
abort
(),
a
(
null
,
"timeout"
,
w
,
n
,
i
)},
n
.
timeout
)),
w
.
send
(
n
.
data
?
n
.
data
:
null
),
w
},
t
.
get
=
function
(){
return
t
.
ajax
(
p
.
apply
(
null
,
arguments
))},
t
.
post
=
function
(){
var
e
=
p
.
apply
(
null
,
arguments
);
return
e
.
type
=
"POST"
,
t
.
ajax
(
e
)},
t
.
getJSON
=
function
(){
var
e
=
p
.
apply
(
null
,
arguments
);
return
e
.
dataType
=
"json"
,
t
.
ajax
(
e
)},
t
.
fn
.
load
=
function
(
e
,
n
,
r
){
if
(
!
this
.
length
)
return
this
;
var
i
,
o
=
this
,
s
=
e
.
split
(
/
\s
/
),
a
=
p
(
e
,
n
,
r
),
u
=
a
.
success
;
return
s
.
length
>
1
&&
(
a
.
url
=
s
[
0
],
i
=
s
[
1
]),
a
.
success
=
function
(
e
){
o
.
html
(
i
?
t
(
"<div>"
).
html
(
e
.
replace
(
x
,
""
)).
find
(
i
):
e
),
u
&&
u
.
apply
(
o
,
arguments
)},
t
.
ajax
(
a
),
this
};
var
C
=
encodeURIComponent
;
t
.
param
=
function
(
t
,
e
){
var
n
=
[];
return
n
.
add
=
function
(
t
,
e
){
this
.
push
(
C
(
t
)
+
"="
+
C
(
e
))},
d
(
n
,
t
,
e
),
n
.
join
(
"&"
).
replace
(
/%20/g
,
"+"
)}}(
Zepto
),
function
(
t
){
function
e
(
t
){
return
t
.
_zid
||
(
t
.
_zid
=
h
++
)}
function
n
(
t
,
n
,
o
,
s
){
if
(
n
=
r
(
n
),
n
.
ns
)
var
a
=
i
(
n
.
ns
);
return
(
v
[
e
(
t
)]
||
[]).
filter
(
function
(
t
){
return
!
(
!
t
||
n
.
e
&&
t
.
e
!=
n
.
e
||
n
.
ns
&&!
a
.
test
(
t
.
ns
)
||
o
&&
e
(
t
.
fn
)
!==
e
(
o
)
||
s
&&
t
.
sel
!=
s
)})}
function
r
(
t
){
var
e
=
(
""
+
t
).
split
(
"."
);
return
{
e
:
e
[
0
],
ns
:
e
.
slice
(
1
).
sort
().
join
(
" "
)}}
function
i
(
t
){
return
RegExp
(
"(?:^| )"
+
t
.
replace
(
" "
,
" .* ?"
)
+
"(?: |$)"
)}
function
o
(
t
,
e
){
return
t
.
del
&&!
y
&&
t
.
e
in
x
||!!
e
}
function
s
(
t
){
return
b
[
t
]
||
y
&&
x
[
t
]
||
t
}
function
a
(
n
,
i
,
a
,
u
,
l
,
h
,
p
){
var
d
=
e
(
n
),
m
=
v
[
d
]
||
(
v
[
d
]
=
[]);
i
.
split
(
/
\s
/
).
forEach
(
function
(
e
){
if
(
"ready"
==
e
)
return
t
(
document
).
ready
(
a
);
var
i
=
r
(
e
);
i
.
fn
=
a
,
i
.
sel
=
l
,
i
.
e
in
b
&&
(
a
=
function
(
e
){
var
n
=
e
.
relatedTarget
;
return
!
n
||
n
!==
this
&&!
t
.
contains
(
this
,
n
)?
i
.
fn
.
apply
(
this
,
arguments
):
f
}),
i
.
del
=
h
;
var
d
=
h
||
a
;
i
.
proxy
=
function
(
t
){
if
(
t
=
c
(
t
),
!
t
.
isImmediatePropagationStopped
()){
t
.
data
=
u
;
var
e
=
d
.
apply
(
n
,
t
.
_args
==
f
?[
t
]:[
t
].
concat
(
t
.
_args
));
return
e
===!
1
&&
(
t
.
preventDefault
(),
t
.
stopPropagation
()),
e
}},
i
.
i
=
m
.
length
,
m
.
push
(
i
),
"addEventListener"
in
n
&&
n
.
addEventListener
(
s
(
i
.
e
),
i
.
proxy
,
o
(
i
,
p
))})}
function
u
(
t
,
r
,
i
,
a
,
u
){
var
c
=
e
(
t
);(
r
||
""
).
split
(
/
\s
/
).
forEach
(
function
(
e
){
n
(
t
,
e
,
i
,
a
).
forEach
(
function
(
e
){
delete
v
[
c
][
e
.
i
],
"removeEventListener"
in
t
&&
t
.
removeEventListener
(
s
(
e
.
e
),
e
.
proxy
,
o
(
e
,
u
))})})}
function
c
(
e
,
n
){
return
(
n
||!
e
.
isDefaultPrevented
)
&&
(
n
||
(
n
=
e
),
t
.
each
(
N
,
function
(
t
,
r
){
var
i
=
n
[
t
];
e
[
t
]
=
function
(){
return
this
[
r
]
=
w
,
i
&&
i
.
apply
(
n
,
arguments
)},
e
[
r
]
=
E
}),(
n
.
defaultPrevented
!==
f
?
n
.
defaultPrevented
:
"returnValue"
in
n
?
n
.
returnValue
===!
1
:
n
.
getPreventDefault
&&
n
.
getPreventDefault
())
&&
(
e
.
isDefaultPrevented
=
w
)),
e
}
function
l
(
t
){
var
e
,
n
=
{
originalEvent
:
t
};
for
(
e
in
t
)
j
.
test
(
e
)
||
t
[
e
]
===
f
||
(
n
[
e
]
=
t
[
e
]);
return
c
(
n
,
t
)}
var
f
,
h
=
1
,
p
=
Array
.
prototype
.
slice
,
d
=
t
.
isFunction
,
m
=
function
(
t
){
return
"string"
==
typeof
t
},
v
=
{},
g
=
{},
y
=
"onfocusin"
in
window
,
x
=
{
focus
:
"focusin"
,
blur
:
"focusout"
},
b
=
{
mouseenter
:
"mouseover"
,
mouseleave
:
"mouseout"
};
g
.
click
=
g
.
mousedown
=
g
.
mouseup
=
g
.
mousemove
=
"MouseEvents"
,
t
.
event
=
{
add
:
a
,
remove
:
u
},
t
.
proxy
=
function
(
n
,
r
){
var
i
=
2
in
arguments
&&
p
.
call
(
arguments
,
2
);
if
(
d
(
n
)){
var
o
=
function
(){
return
n
.
apply
(
r
,
i
?
i
.
concat
(
p
.
call
(
arguments
)):
arguments
)};
return
o
.
_zid
=
e
(
n
),
o
}
if
(
m
(
r
))
return
i
?(
i
.
unshift
(
n
[
r
],
n
),
t
.
proxy
.
apply
(
null
,
i
)):
t
.
proxy
(
n
[
r
],
n
);
throw
new
TypeError
(
"expected function"
)},
t
.
fn
.
bind
=
function
(
t
,
e
,
n
){
return
this
.
on
(
t
,
e
,
n
)},
t
.
fn
.
unbind
=
function
(
t
,
e
){
return
this
.
off
(
t
,
e
)},
t
.
fn
.
one
=
function
(
t
,
e
,
n
,
r
){
return
this
.
on
(
t
,
e
,
n
,
r
,
1
)};
var
w
=
function
(){
return
!
0
},
E
=
function
(){
return
!
1
},
j
=
/^
([
A-Z
]
|returnValue$|layer
[
XY
]
$
)
/
,
N
=
{
preventDefault
:
"isDefaultPrevented"
,
stopImmediatePropagation
:
"isImmediatePropagationStopped"
,
stopPropagation
:
"isPropagationStopped"
};
t
.
fn
.
delegate
=
function
(
t
,
e
,
n
){
return
this
.
on
(
e
,
t
,
n
)},
t
.
fn
.
undelegate
=
function
(
t
,
e
,
n
){
return
this
.
off
(
e
,
t
,
n
)},
t
.
fn
.
live
=
function
(
e
,
n
){
return
t
(
document
.
body
).
delegate
(
this
.
selector
,
e
,
n
),
this
},
t
.
fn
.
die
=
function
(
e
,
n
){
return
t
(
document
.
body
).
undelegate
(
this
.
selector
,
e
,
n
),
this
},
t
.
fn
.
on
=
function
(
e
,
n
,
r
,
i
,
o
){
var
s
,
c
,
h
=
this
;
return
e
&&!
m
(
e
)?(
t
.
each
(
e
,
function
(
t
,
e
){
h
.
on
(
t
,
n
,
r
,
e
,
o
)}),
h
):(
m
(
n
)
||
d
(
i
)
||
i
===!
1
||
(
i
=
r
,
r
=
n
,
n
=
f
),(
d
(
r
)
||
r
===!
1
)
&&
(
i
=
r
,
r
=
f
),
i
===!
1
&&
(
i
=
E
),
h
.
each
(
function
(
h
,
d
){
o
&&
(
s
=
function
(
t
){
return
u
(
d
,
t
.
type
,
i
),
i
.
apply
(
this
,
arguments
)}),
n
&&
(
c
=
function
(
e
){
var
r
,
o
=
t
(
e
.
target
).
closest
(
n
,
d
).
get
(
0
);
return
o
&&
o
!==
d
?(
r
=
t
.
extend
(
l
(
e
),{
currentTarget
:
o
,
liveFired
:
d
}),(
s
||
i
).
apply
(
o
,[
r
].
concat
(
p
.
call
(
arguments
,
1
)))):
f
}),
a
(
d
,
e
,
i
,
r
,
n
,
c
||
s
)}))},
t
.
fn
.
off
=
function
(
e
,
n
,
r
){
var
i
=
this
;
return
e
&&!
m
(
e
)?(
t
.
each
(
e
,
function
(
t
,
e
){
i
.
off
(
t
,
n
,
e
)}),
i
):(
m
(
n
)
||
d
(
r
)
||
r
===!
1
||
(
r
=
n
,
n
=
f
),
r
===!
1
&&
(
r
=
E
),
i
.
each
(
function
(){
u
(
this
,
e
,
r
,
n
)}))},
t
.
fn
.
trigger
=
function
(
e
,
n
){
return
e
=
m
(
e
)
||
t
.
isPlainObject
(
e
)?
t
.
Event
(
e
):
c
(
e
),
e
.
_args
=
n
,
this
.
each
(
function
(){
"dispatchEvent"
in
this
?
this
.
dispatchEvent
(
e
):
t
(
this
).
triggerHandler
(
e
,
n
)})},
t
.
fn
.
triggerHandler
=
function
(
e
,
r
){
var
i
,
o
;
return
this
.
each
(
function
(
s
,
a
){
i
=
l
(
m
(
e
)?
t
.
Event
(
e
):
e
),
i
.
_args
=
r
,
i
.
target
=
a
,
t
.
each
(
n
(
a
,
e
.
type
||
e
),
function
(
t
,
e
){
return
o
=
e
.
proxy
(
i
),
i
.
isImmediatePropagationStopped
()?
!
1
:
f
})}),
o
},
"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error"
.
split
(
" "
).
forEach
(
function
(
e
){
t
.
fn
[
e
]
=
function
(
t
){
return
t
?
this
.
bind
(
e
,
t
):
this
.
trigger
(
e
)}}),[
"focus"
,
"blur"
].
forEach
(
function
(
e
){
t
.
fn
[
e
]
=
function
(
t
){
return
t
?
this
.
bind
(
e
,
t
):
this
.
each
(
function
(){
try
{
this
[
e
]()}
catch
(
t
){}}),
this
}}),
t
.
Event
=
function
(
t
,
e
){
m
(
t
)
||
(
e
=
t
,
t
=
e
.
type
);
var
n
=
document
.
createEvent
(
g
[
t
]
||
"Events"
),
r
=!
0
;
if
(
e
)
for
(
var
i
in
e
)
"bubbles"
==
i
?
r
=!!
e
[
i
]:
n
[
i
]
=
e
[
i
];
return
n
.
initEvent
(
t
,
r
,
!
0
),
c
(
n
)}}(
Zepto
),
function
(
t
){
t
.
fn
.
serializeArray
=
function
(){
var
e
,
n
,
r
=
[];
return
t
([].
slice
.
call
(
this
.
get
(
0
).
elements
)).
each
(
function
(){
e
=
t
(
this
),
n
=
e
.
attr
(
"type"
),
"fieldset"
!=
this
.
nodeName
.
toLowerCase
()
&&!
this
.
disabled
&&
"submit"
!=
n
&&
"reset"
!=
n
&&
"button"
!=
n
&&
(
"radio"
!=
n
&&
"checkbox"
!=
n
||
this
.
checked
)
&&
r
.
push
({
name
:
e
.
attr
(
"name"
),
value
:
e
.
val
()})}),
r
},
t
.
fn
.
serialize
=
function
(){
var
t
=
[];
return
this
.
serializeArray
().
forEach
(
function
(
e
){
t
.
push
(
encodeURIComponent
(
e
.
name
)
+
"="
+
encodeURIComponent
(
e
.
value
))}),
t
.
join
(
"&"
)},
t
.
fn
.
submit
=
function
(
e
){
if
(
e
)
this
.
bind
(
"submit"
,
e
);
else
if
(
this
.
length
){
var
n
=
t
.
Event
(
"submit"
);
this
.
eq
(
0
).
trigger
(
n
),
n
.
isDefaultPrevented
()
||
this
.
get
(
0
).
submit
()}
return
this
}}(
Zepto
),
function
(
t
){
"__proto__"
in
{}
||
t
.
extend
(
t
.
zepto
,{
Z
:
function
(
e
,
n
){
return
e
=
e
||
[],
t
.
extend
(
e
,
t
.
fn
),
e
.
selector
=
n
||
""
,
e
.
__Z
=!
0
,
e
},
isZ
:
function
(
e
){
return
"array"
===
t
.
type
(
e
)
&&
"__Z"
in
e
}});
try
{
getComputedStyle
(
void
0
)}
catch
(
e
){
var
n
=
getComputedStyle
;
window
.
getComputedStyle
=
function
(
t
){
try
{
return
n
(
t
)}
catch
(
e
){
return
null
}}}}(
Zepto
),
function
(
t
){
function
e
(
e
){
return
e
=
t
(
e
),
!
(
!
e
.
width
()
&&!
e
.
height
())
&&
"none"
!==
e
.
css
(
"display"
)}
function
n
(
t
,
e
){
t
=
t
.
replace
(
/=#
\]
/g
,
'="#"]'
);
var
n
,
r
,
i
=
a
.
exec
(
t
);
if
(
i
&&
i
[
2
]
in
s
&&
(
n
=
s
[
i
[
2
]],
r
=
i
[
3
],
t
=
i
[
1
],
r
)){
var
o
=
Number
(
r
);
r
=
isNaN
(
o
)?
r
.
replace
(
/^
[
"'
]
|
[
"'
]
$/g
,
""
):
o
}
return
e
(
t
,
n
,
r
)}
var
r
=
t
.
zepto
,
i
=
r
.
qsa
,
o
=
r
.
matches
,
s
=
t
.
expr
[
":"
]
=
{
visible
:
function
(){
return
e
(
this
)?
this
:
void
0
},
hidden
:
function
(){
return
e
(
this
)?
void
0
:
this
},
selected
:
function
(){
return
this
.
selected
?
this
:
void
0
},
checked
:
function
(){
return
this
.
checked
?
this
:
void
0
},
parent
:
function
(){
return
this
.
parentNode
},
first
:
function
(
t
){
return
0
===
t
?
this
:
void
0
},
last
:
function
(
t
,
e
){
return
t
===
e
.
length
-
1
?
this
:
void
0
},
eq
:
function
(
t
,
e
,
n
){
return
t
===
n
?
this
:
void
0
},
contains
:
function
(
e
,
n
,
r
){
return
t
(
this
).
text
().
indexOf
(
r
)
>-
1
?
this
:
void
0
},
has
:
function
(
t
,
e
,
n
){
return
r
.
qsa
(
this
,
n
).
length
?
this
:
void
0
}},
a
=
RegExp
(
"(.*):(
\\
w+)(?:
\\
(([^)]+)
\\
))?$
\\
s*"
),
u
=
/^
\s
*>/
,
c
=
"Zepto"
+
+
new
Date
;
r
.
qsa
=
function
(
e
,
o
){
return
n
(
o
,
function
(
n
,
s
,
a
){
try
{
var
l
;
!
n
&&
s
?
n
=
"*"
:
u
.
test
(
n
)
&&
(
l
=
t
(
e
).
addClass
(
c
),
n
=
"."
+
c
+
" "
+
n
);
var
f
=
i
(
e
,
n
)}
catch
(
h
){
throw
console
.
error
(
"error performing selector: %o"
,
o
),
h
}
finally
{
l
&&
l
.
removeClass
(
c
)}
return
s
?
r
.
uniq
(
t
.
map
(
f
,
function
(
t
,
e
){
return
s
.
call
(
t
,
e
,
f
,
a
)})):
f
})},
r
.
matches
=
function
(
t
,
e
){
return
n
(
e
,
function
(
e
,
n
,
r
){
return
!
(
e
&&!
o
(
t
,
e
)
||
n
&&
n
.
call
(
t
,
null
,
r
)
!==
t
)})}}(
Zepto
);
/**
* @note 函数 window.downloadApp
* @modify by zsl@duiba.com.cn
* @date 2016-07-31
* @modify 2016-09-01
*/
;
(
function
(
$
)
{
var
ua
=
navigator
.
userAgent
.
toLowerCase
();
// -------------------------- downloadApp主要函数 --------------------------//
var
downloadApp
=
function
()
{
if
(
window
.
downloadAppConfig
)
{
if
(
ua
.
match
(
/iphone/ig
)
||
ua
.
match
(
/ipad/ig
)){
//ios
download
();
}
else
{
if
(
window
.
downloadAppConfig
.
confirm
||
window
.
downloadAppConfig
.
confirm
==
'true'
)
{
$
.
modal
({
type
:
'confirm'
,
title
:
'下载确认'
,
section
:
'即将开始下载,是否继续'
,
callback
:
{
save
:
function
()
{
if
(
window
.
downloadAppConfig
.
stats
)
{
$
.
ajax
({
url
:
window
.
downloadAppConfig
.
stats
,
complete
:
function
()
{
download
();
}
})
}
else
{
download
();
}
}
}
})
}
else
{
download
();
}
}
}
else
{
console
.
error
(
'请先配置参数window.downloadAppConfig'
);
}
}
// -------------------------- format函数 --------------------------//
var
formatUrl
=
function
(
downloadUrl
)
{
if
(
downloadUrl
.
indexOf
(
'dbnewopen'
)
!=
-
1
)
{
window
.
location
.
href
=
downloadUrl
;
}
else
{
if
(
downloadUrl
.
indexOf
(
'?'
)
!==
-
1
)
{
// modify by zsl date2016-07-28
if
(
downloadUrl
.
indexOf
(
'#'
)
!==
-
1
)
{
// 如果包含#号
window
.
location
.
href
=
downloadUrl
.
split
(
'#'
)[
0
]
+
'&dbnewopen#'
+
downloadUrl
.
split
(
'#'
)[
1
];
}
else
{
window
.
location
.
href
=
downloadUrl
+
'&dbnewopen'
;
}
}
else
if
(
downloadUrl
!==
''
)
{
window
.
location
.
href
=
downloadUrl
+
'?dbnewopen'
;
}
}
}
// -------------------------- URL处理函数 --------------------------//
var
download
=
function
()
{
var
openUrl
=
window
.
downloadAppConfig
.
openUrl
||
''
;
var
downloadUrl
=
''
;
// 淘客url处理 start ------------------------------------------------------------
var
TKHelper
,
isSpecial
=
false
;
if
(
window
.
TBSDK_ADA
!==
undefined
)
{
TKHelper
=
function
(
downloadUrl
)
{
var
isTBSDK
=
function
()
{
isSpecial
=
true
;
if
(
window
.
isSpecialApp
)
{
window
.
location
.
href
=
downloadUrl
;
}
else
{
window
.
BC_SDK
.
openPage
({
url
:
downloadUrl
});
}
};
// 如果包含手淘url 唤起手淘App的功能
if
(
downloadUrl
.
indexOf
(
'taoquan.taobao.com'
)
!==
-
1
||
downloadUrl
.
indexOf
(
'shop.m.taobao.com'
)
!==
-
1
)
{
window
.
BC_SDK
=
TBSDK_ADA
.
init
({
"appkey"
:
'23402401'
,
openTBAPP
:
true
});
isTBSDK
();
}
// 如果是s.click.taobao.com的URL,点击则调用百川goTaoke方法唤起手淘
if
(
downloadUrl
.
indexOf
(
's.click.taobao.com'
)
!==
-
1
)
{
window
.
BC_SDK
=
TBSDK_ADA
.
init
({
"appkey"
:
'23454468'
,
"appSecret"
:
'3846ae97316a0b31321a8f493f826986'
,
openTBAPP
:
true
});
isTBSDK
();
}
};
}
// 淘客url处理 end -----------------------------------------------------------
// 特殊处理
var
handleSpecial
=
function
(
downloadUrl
)
{
// 如果downloadUrl是weixin直接打开url(加了&dbnewopen SDK唤起weixin 中间会产生一个空白页)
if
(
downloadUrl
&&
downloadUrl
.
indexOf
(
'weixin://'
)
!==
-
1
)
{
isSpecial
=
true
;
window
.
location
.
href
=
downloadUrl
;
return
;
}
// @special openUrl为微信服务,
if
(
openUrl
&&
openUrl
.
indexOf
(
'weixin://'
)
!==
-
1
)
{
return
;
}
// 如果含有手淘url 唤起手淘App的功能
if
(
window
.
TBSDK_ADA
!==
undefined
)
{
TKHelper
(
downloadUrl
);
}
};
if
(
ua
.
match
(
/iphone/ig
)
||
ua
.
match
(
/ipad/ig
))
{
// ios
downloadUrl
=
window
.
downloadAppConfig
.
iosDownloadUrl
;
handleSpecial
(
downloadUrl
);
if
(
isSpecial
){
return
;
}
if
(
ua
.
match
(
/MicroMessenger/ig
))
{
formatUrl
(
downloadUrl
);
}
else
{
if
(
openUrl
)
{
window
.
location
.
href
=
openUrl
;
}
else
{
if
(
downloadUrl
.
indexOf
(
'itunes.apple.com'
)
!=
-
1
)
{
var
ifr
=
document
.
createElement
(
'iframe'
);
ifr
.
src
=
downloadUrl
;
ifr
.
style
.
display
=
'none'
;
window
.
setTimeout
(
function
()
{
document
.
body
.
appendChild
(
ifr
);
},
300
)
}
else
{
formatUrl
(
downloadUrl
);
}
}
}
}
else
{
// android
downloadUrl
=
window
.
downloadAppConfig
.
androidDownloadUrl
;
handleSpecial
(
downloadUrl
);
if
(
isSpecial
){
return
;
}
// 如果有oepnUrl
if
(
openUrl
)
{
window
.
location
.
href
=
openUrl
;
return
;
}
if
(
downloadUrl
.
indexOf
(
'.apk'
)
!=
-
1
||
downloadUrl
.
indexOf
(
'dbnewopen'
)
!=
-
1
)
{
window
.
location
.
href
=
downloadUrl
;
}
else
{
formatUrl
(
downloadUrl
);
}
}
}
window
.
downloadApp
=
downloadApp
;
})(
Zepto
);
;
(
function
(
$
)
{
function
safe_add
(
x
,
y
)
{
var
lsw
=
(
x
&
65535
)
+
(
y
&
65535
),
msw
=
(
x
>>
16
)
+
(
y
>>
16
)
+
(
lsw
>>
16
);
return
(
msw
<<
16
)
|
(
lsw
&
65535
)
}
function
bit_rol
(
num
,
cnt
)
{
return
(
num
<<
cnt
)
|
(
num
>>>
(
32
-
cnt
))
}
function
md5_cmn
(
q
,
a
,
b
,
x
,
s
,
t
)
{
return
safe_add
(
bit_rol
(
safe_add
(
safe_add
(
a
,
q
),
safe_add
(
x
,
t
)),
s
),
b
)
}
function
md5_ff
(
a
,
b
,
c
,
d
,
x
,
s
,
t
)
{
return
md5_cmn
((
b
&
c
)
|
((
~
b
)
&
d
),
a
,
b
,
x
,
s
,
t
)
}
function
md5_gg
(
a
,
b
,
c
,
d
,
x
,
s
,
t
)
{
return
md5_cmn
((
b
&
d
)
|
(
c
&
(
~
d
)),
a
,
b
,
x
,
s
,
t
)
}
function
md5_hh
(
a
,
b
,
c
,
d
,
x
,
s
,
t
)
{
return
md5_cmn
(
b
^
c
^
d
,
a
,
b
,
x
,
s
,
t
)
}
function
md5_ii
(
a
,
b
,
c
,
d
,
x
,
s
,
t
)
{
return
md5_cmn
(
c
^
(
b
|
(
~
d
)),
a
,
b
,
x
,
s
,
t
)
}
function
binl_md5
(
x
,
len
)
{
x
[
len
>>
5
]
|=
128
<<
((
len
)
%
32
);
x
[(((
len
+
64
)
>>>
9
)
<<
4
)
+
14
]
=
len
;
var
i
,
olda
,
oldb
,
oldc
,
oldd
,
a
=
1732584193
,
b
=
-
271733879
,
c
=
-
1732584194
,
d
=
271733878
;
for
(
i
=
0
;
i
<
x
.
length
;
i
+=
16
)
{
olda
=
a
;
oldb
=
b
;
oldc
=
c
;
oldd
=
d
;
a
=
md5_ff
(
a
,
b
,
c
,
d
,
x
[
i
],
7
,
-
680876936
);
d
=
md5_ff
(
d
,
a
,
b
,
c
,
x
[
i
+
1
],
12
,
-
389564586
);
c
=
md5_ff
(
c
,
d
,
a
,
b
,
x
[
i
+
2
],
17
,
606105819
);
b
=
md5_ff
(
b
,
c
,
d
,
a
,
x
[
i
+
3
],
22
,
-
1044525330
);
a
=
md5_ff
(
a
,
b
,
c
,
d
,
x
[
i
+
4
],
7
,
-
176418897
);
d
=
md5_ff
(
d
,
a
,
b
,
c
,
x
[
i
+
5
],
12
,
1200080426
);
c
=
md5_ff
(
c
,
d
,
a
,
b
,
x
[
i
+
6
],
17
,
-
1473231341
);
b
=
md5_ff
(
b
,
c
,
d
,
a
,
x
[
i
+
7
],
22
,
-
45705983
);
a
=
md5_ff
(
a
,
b
,
c
,
d
,
x
[
i
+
8
],
7
,
1770035416
);
d
=
md5_ff
(
d
,
a
,
b
,
c
,
x
[
i
+
9
],
12
,
-
1958414417
);
c
=
md5_ff
(
c
,
d
,
a
,
b
,
x
[
i
+
10
],
17
,
-
42063
);
b
=
md5_ff
(
b
,
c
,
d
,
a
,
x
[
i
+
11
],
22
,
-
1990404162
);
a
=
md5_ff
(
a
,
b
,
c
,
d
,
x
[
i
+
12
],
7
,
1804603682
);
d
=
md5_ff
(
d
,
a
,
b
,
c
,
x
[
i
+
13
],
12
,
-
40341101
);
c
=
md5_ff
(
c
,
d
,
a
,
b
,
x
[
i
+
14
],
17
,
-
1502002290
);
b
=
md5_ff
(
b
,
c
,
d
,
a
,
x
[
i
+
15
],
22
,
1236535329
);
a
=
md5_gg
(
a
,
b
,
c
,
d
,
x
[
i
+
1
],
5
,
-
165796510
);
d
=
md5_gg
(
d
,
a
,
b
,
c
,
x
[
i
+
6
],
9
,
-
1069501632
);
c
=
md5_gg
(
c
,
d
,
a
,
b
,
x
[
i
+
11
],
14
,
643717713
);
b
=
md5_gg
(
b
,
c
,
d
,
a
,
x
[
i
],
20
,
-
373897302
);
a
=
md5_gg
(
a
,
b
,
c
,
d
,
x
[
i
+
5
],
5
,
-
701558691
);
d
=
md5_gg
(
d
,
a
,
b
,
c
,
x
[
i
+
10
],
9
,
38016083
);
c
=
md5_gg
(
c
,
d
,
a
,
b
,
x
[
i
+
15
],
14
,
-
660478335
);
b
=
md5_gg
(
b
,
c
,
d
,
a
,
x
[
i
+
4
],
20
,
-
405537848
);
a
=
md5_gg
(
a
,
b
,
c
,
d
,
x
[
i
+
9
],
5
,
568446438
);
d
=
md5_gg
(
d
,
a
,
b
,
c
,
x
[
i
+
14
],
9
,
-
1019803690
);
c
=
md5_gg
(
c
,
d
,
a
,
b
,
x
[
i
+
3
],
14
,
-
187363961
);
b
=
md5_gg
(
b
,
c
,
d
,
a
,
x
[
i
+
8
],
20
,
1163531501
);
a
=
md5_gg
(
a
,
b
,
c
,
d
,
x
[
i
+
13
],
5
,
-
1444681467
);
d
=
md5_gg
(
d
,
a
,
b
,
c
,
x
[
i
+
2
],
9
,
-
51403784
);
c
=
md5_gg
(
c
,
d
,
a
,
b
,
x
[
i
+
7
],
14
,
1735328473
);
b
=
md5_gg
(
b
,
c
,
d
,
a
,
x
[
i
+
12
],
20
,
-
1926607734
);
a
=
md5_hh
(
a
,
b
,
c
,
d
,
x
[
i
+
5
],
4
,
-
378558
);
d
=
md5_hh
(
d
,
a
,
b
,
c
,
x
[
i
+
8
],
11
,
-
2022574463
);
c
=
md5_hh
(
c
,
d
,
a
,
b
,
x
[
i
+
11
],
16
,
1839030562
);
b
=
md5_hh
(
b
,
c
,
d
,
a
,
x
[
i
+
14
],
23
,
-
35309556
);
a
=
md5_hh
(
a
,
b
,
c
,
d
,
x
[
i
+
1
],
4
,
-
1530992060
);
d
=
md5_hh
(
d
,
a
,
b
,
c
,
x
[
i
+
4
],
11
,
1272893353
);
c
=
md5_hh
(
c
,
d
,
a
,
b
,
x
[
i
+
7
],
16
,
-
155497632
);
b
=
md5_hh
(
b
,
c
,
d
,
a
,
x
[
i
+
10
],
23
,
-
1094730640
);
a
=
md5_hh
(
a
,
b
,
c
,
d
,
x
[
i
+
13
],
4
,
681279174
);
d
=
md5_hh
(
d
,
a
,
b
,
c
,
x
[
i
],
11
,
-
358537222
);
c
=
md5_hh
(
c
,
d
,
a
,
b
,
x
[
i
+
3
],
16
,
-
722521979
);
b
=
md5_hh
(
b
,
c
,
d
,
a
,
x
[
i
+
6
],
23
,
76029189
);
a
=
md5_hh
(
a
,
b
,
c
,
d
,
x
[
i
+
9
],
4
,
-
640364487
);
d
=
md5_hh
(
d
,
a
,
b
,
c
,
x
[
i
+
12
],
11
,
-
421815835
);
c
=
md5_hh
(
c
,
d
,
a
,
b
,
x
[
i
+
15
],
16
,
530742520
);
b
=
md5_hh
(
b
,
c
,
d
,
a
,
x
[
i
+
2
],
23
,
-
995338651
);
a
=
md5_ii
(
a
,
b
,
c
,
d
,
x
[
i
],
6
,
-
198630844
);
d
=
md5_ii
(
d
,
a
,
b
,
c
,
x
[
i
+
7
],
10
,
1126891415
);
c
=
md5_ii
(
c
,
d
,
a
,
b
,
x
[
i
+
14
],
15
,
-
1416354905
);
b
=
md5_ii
(
b
,
c
,
d
,
a
,
x
[
i
+
5
],
21
,
-
57434055
);
a
=
md5_ii
(
a
,
b
,
c
,
d
,
x
[
i
+
12
],
6
,
1700485571
);
d
=
md5_ii
(
d
,
a
,
b
,
c
,
x
[
i
+
3
],
10
,
-
1894986606
);
c
=
md5_ii
(
c
,
d
,
a
,
b
,
x
[
i
+
10
],
15
,
-
1051523
);
b
=
md5_ii
(
b
,
c
,
d
,
a
,
x
[
i
+
1
],
21
,
-
2054922799
);
a
=
md5_ii
(
a
,
b
,
c
,
d
,
x
[
i
+
8
],
6
,
1873313359
);
d
=
md5_ii
(
d
,
a
,
b
,
c
,
x
[
i
+
15
],
10
,
-
30611744
);
c
=
md5_ii
(
c
,
d
,
a
,
b
,
x
[
i
+
6
],
15
,
-
1560198380
);
b
=
md5_ii
(
b
,
c
,
d
,
a
,
x
[
i
+
13
],
21
,
1309151649
);
a
=
md5_ii
(
a
,
b
,
c
,
d
,
x
[
i
+
4
],
6
,
-
145523070
);
d
=
md5_ii
(
d
,
a
,
b
,
c
,
x
[
i
+
11
],
10
,
-
1120210379
);
c
=
md5_ii
(
c
,
d
,
a
,
b
,
x
[
i
+
2
],
15
,
718787259
);
b
=
md5_ii
(
b
,
c
,
d
,
a
,
x
[
i
+
9
],
21
,
-
343485551
);
a
=
safe_add
(
a
,
olda
);
b
=
safe_add
(
b
,
oldb
);
c
=
safe_add
(
c
,
oldc
);
d
=
safe_add
(
d
,
oldd
)
}
return
[
a
,
b
,
c
,
d
]
}
function
binl2rstr
(
input
)
{
var
i
,
output
=
""
;
for
(
i
=
0
;
i
<
input
.
length
*
32
;
i
+=
8
)
{
output
+=
String
.
fromCharCode
((
input
[
i
>>
5
]
>>>
(
i
%
32
))
&
255
)
}
return
output
}
function
rstr2binl
(
input
)
{
var
i
,
output
=
[];
output
[(
input
.
length
>>
2
)
-
1
]
=
undefined
;
for
(
i
=
0
;
i
<
output
.
length
;
i
+=
1
)
{
output
[
i
]
=
0
}
for
(
i
=
0
;
i
<
input
.
length
*
8
;
i
+=
8
)
{
output
[
i
>>
5
]
|=
(
input
.
charCodeAt
(
i
/
8
)
&
255
)
<<
(
i
%
32
)
}
return
output
}
function
rstr_md5
(
s
)
{
return
binl2rstr
(
binl_md5
(
rstr2binl
(
s
),
s
.
length
*
8
))
}
function
rstr_hmac_md5
(
key
,
data
)
{
var
i
,
bkey
=
rstr2binl
(
key
),
ipad
=
[],
opad
=
[],
hash
;
ipad
[
15
]
=
opad
[
15
]
=
undefined
;
if
(
bkey
.
length
>
16
)
{
bkey
=
binl_md5
(
bkey
,
key
.
length
*
8
)
}
for
(
i
=
0
;
i
<
16
;
i
+=
1
)
{
ipad
[
i
]
=
bkey
[
i
]
^
909522486
;
opad
[
i
]
=
bkey
[
i
]
^
1549556828
}
hash
=
binl_md5
(
ipad
.
concat
(
rstr2binl
(
data
)),
512
+
data
.
length
*
8
);
return
binl2rstr
(
binl_md5
(
opad
.
concat
(
hash
),
512
+
128
))
}
function
rstr2hex
(
input
)
{
var
hex_tab
=
"0123456789abcdef"
,
output
=
""
,
x
,
i
;
for
(
i
=
0
;
i
<
input
.
length
;
i
+=
1
)
{
x
=
input
.
charCodeAt
(
i
);
output
+=
hex_tab
.
charAt
((
x
>>>
4
)
&
15
)
+
hex_tab
.
charAt
(
x
&
15
)
}
return
output
}
function
str2rstr_utf8
(
input
)
{
return
unescape
(
encodeURIComponent
(
input
))
}
function
raw_md5
(
s
)
{
return
rstr_md5
(
str2rstr_utf8
(
s
))
}
function
hex_md5
(
s
)
{
return
rstr2hex
(
raw_md5
(
s
))
}
function
raw_hmac_md5
(
k
,
d
)
{
return
rstr_hmac_md5
(
str2rstr_utf8
(
k
),
str2rstr_utf8
(
d
))
}
function
hex_hmac_md5
(
k
,
d
)
{
return
rstr2hex
(
raw_hmac_md5
(
k
,
d
))
}
duiba_md5
=
function
(
string
,
key
,
raw
)
{
if
(
!
key
)
{
if
(
!
raw
)
{
return
hex_md5
(
string
)
}
else
{
return
raw_md5
(
string
)
}
}
if
(
!
raw
)
{
return
hex_hmac_md5
(
key
,
string
)
}
else
{
return
raw_hmac_md5
(
key
,
string
)
}
};
var
hexcase
=
0
;
var
b64pad
=
""
;
var
chrsz
=
8
;
$
.
extend
({
duiba_b64_sha
:
function
(
input
)
{
return
binb2b64
(
core_sha1
(
str2binb
(
input
),
input
.
length
*
chrsz
))
}
});
function
core_sha1
(
x
,
len
)
{
x
[
len
>>
5
]
|=
128
<<
(
24
-
len
%
32
);
x
[((
len
+
64
>>
9
)
<<
4
)
+
15
]
=
len
;
var
w
=
Array
(
80
);
var
a
=
1732584193
;
var
b
=
-
271733879
;
var
c
=
-
1732584194
;
var
d
=
271733878
;
var
e
=
-
1009589776
;
for
(
var
i
=
0
;
i
<
x
.
length
;
i
+=
16
)
{
var
olda
=
a
;
var
oldb
=
b
;
var
oldc
=
c
;
var
oldd
=
d
;
var
olde
=
e
;
for
(
var
j
=
0
;
j
<
80
;
j
++
)
{
if
(
j
<
16
)
{
w
[
j
]
=
x
[
i
+
j
]
}
else
{
w
[
j
]
=
rol
(
w
[
j
-
3
]
^
w
[
j
-
8
]
^
w
[
j
-
14
]
^
w
[
j
-
16
],
1
)
}
var
t
=
safe_add
(
safe_add
(
rol
(
a
,
5
),
sha1_ft
(
j
,
b
,
c
,
d
)),
safe_add
(
safe_add
(
e
,
w
[
j
]),
sha1_kt
(
j
)));
e
=
d
;
d
=
c
;
c
=
rol
(
b
,
30
);
b
=
a
;
a
=
t
}
a
=
safe_add
(
a
,
olda
);
b
=
safe_add
(
b
,
oldb
);
c
=
safe_add
(
c
,
oldc
);
d
=
safe_add
(
d
,
oldd
);
e
=
safe_add
(
e
,
olde
)
}
return
Array
(
a
,
b
,
c
,
d
,
e
)
}
function
sha1_ft
(
t
,
b
,
c
,
d
)
{
if
(
t
<
20
)
{
return
(
b
&
c
)
|
((
~
b
)
&
d
)
}
if
(
t
<
40
)
{
return
b
^
c
^
d
}
if
(
t
<
60
)
{
return
(
b
&
c
)
|
(
b
&
d
)
|
(
c
&
d
)
}
return
b
^
c
^
d
}
function
sha1_kt
(
t
)
{
return
(
t
<
20
)
?
1518500249
:
(
t
<
40
)
?
1859775393
:
(
t
<
60
)
?
-
1894007588
:
-
899497514
}
function
core_hmac_sha1
(
key
,
data
)
{
var
bkey
=
str2binb
(
key
);
if
(
bkey
.
length
>
16
)
{
bkey
=
core_sha1
(
bkey
,
key
.
length
*
chrsz
)
}
var
ipad
=
Array
(
16
),
opad
=
Array
(
16
);
for
(
var
i
=
0
;
i
<
16
;
i
++
)
{
ipad
[
i
]
=
bkey
[
i
]
^
909522486
;
opad
[
i
]
=
bkey
[
i
]
^
1549556828
}
var
hash
=
core_sha1
(
ipad
.
concat
(
str2binb
(
data
)),
512
+
data
.
length
*
chrsz
);
return
core_sha1
(
opad
.
concat
(
hash
),
512
+
160
)
}
function
safe_add
(
x
,
y
)
{
var
lsw
=
(
x
&
65535
)
+
(
y
&
65535
);
var
msw
=
(
x
>>
16
)
+
(
y
>>
16
)
+
(
lsw
>>
16
);
return
(
msw
<<
16
)
|
(
lsw
&
65535
)
}
function
rol
(
num
,
cnt
)
{
return
(
num
<<
cnt
)
|
(
num
>>>
(
32
-
cnt
))
}
function
str2binb
(
str
)
{
var
bin
=
Array
();
var
mask
=
(
1
<<
chrsz
)
-
1
;
for
(
var
i
=
0
;
i
<
str
.
length
*
chrsz
;
i
+=
chrsz
)
{
bin
[
i
>>
5
]
|=
(
str
.
charCodeAt
(
i
/
chrsz
)
&
mask
)
<<
(
32
-
chrsz
-
i
%
32
)
}
return
bin
}
function
binb2str
(
bin
)
{
var
str
=
""
;
var
mask
=
(
1
<<
chrsz
)
-
1
;
for
(
var
i
=
0
;
i
<
bin
.
length
*
32
;
i
+=
chrsz
)
{
str
+=
String
.
fromCharCode
((
bin
[
i
>>
5
]
>>>
(
32
-
chrsz
-
i
%
32
))
&
mask
)
}
return
str
}
function
binb2hex
(
binarray
)
{
var
hex_tab
=
hexcase
?
"0123456789ABCDEF"
:
"0123456789abcdef"
;
var
str
=
""
;
for
(
var
i
=
0
;
i
<
binarray
.
length
*
4
;
i
++
)
{
str
+=
hex_tab
.
charAt
((
binarray
[
i
>>
2
]
>>
((
3
-
i
%
4
)
*
8
+
4
))
&
15
)
+
hex_tab
.
charAt
((
binarray
[
i
>>
2
]
>>
((
3
-
i
%
4
)
*
8
))
&
15
)
}
return
str
}
function
binb2b64
(
binarray
)
{
var
tab
=
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
;
var
str
=
""
;
for
(
var
i
=
0
;
i
<
binarray
.
length
*
4
;
i
+=
3
)
{
var
triplet
=
(((
binarray
[
i
>>
2
]
>>
8
*
(
3
-
i
%
4
))
&
255
)
<<
16
)
|
(((
binarray
[
i
+
1
>>
2
]
>>
8
*
(
3
-
(
i
+
1
)
%
4
))
&
255
)
<<
8
)
|
((
binarray
[
i
+
2
>>
2
]
>>
8
*
(
3
-
(
i
+
2
)
%
4
))
&
255
);
for
(
var
j
=
0
;
j
<
4
;
j
++
)
{
if
(
i
*
8
+
j
*
6
>
binarray
.
length
*
32
)
{
str
+=
b64pad
}
else
{
str
+=
tab
.
charAt
((
triplet
>>
6
*
(
3
-
j
))
&
63
)
}
}
}
str
=
str
+
"="
;
return
str
}
window
.
duiba_md5
=
duiba_md5
;
}(
Zepto
));
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment