论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
逆向
[6312] 2019-11-28_Java反序列化过程深究
文档创建者:
s7ckTeam
浏览次数:
9
最后更新:
2025-01-17
逆向
9 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-56
6万
主题
-6万
回帖
-56
积分
管理员
积分
-56
发消息
2019-11-28_Java反序列化过程深究
J
a
v
a
反
序
列
化
过
程
深
究
l
1
n
k
3
r
雷
神
众
测
E
安
全
2
0
1
9
-
1
1
-
2
8
N
o
.
1
N
o
.
1
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
由
于
传
播
、
利
用
此
文
所
提
供
的
信
息
而
造
成
的
任
何
直
接
或
者
间
接
的
后
果
及
损
失
,
均
由
使
用
者
本
人
负
责
,
雷
神
众
测
以
及
文
章
作
者
不
为
此
承
担
任
何
责
任
。
雷
神
众
测
拥
有
对
此
文
章
的
修
改
和
解
释
权
。
如
欲
转
载
或
传
播
此
文
章
,
必
须
保
证
此
文
章
的
完
整
性
,
包
括
版
权
声
明
等
全
部
内
容
。
未
经
雷
神
众
测
允
许
,
不
得
任
意
修
改
或
者
增
减
此
文
章
内
容
,
不
得
以
任
何
方
式
将
其
用
于
商
业
目
的
。
N
o
.
2
N
o
.
2
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
概
述
互
联
网
上
大
家
针
对
J
a
v
a
反
序
列
化
的
讨
论
有
很
多
了
,
但
是
这
里
我
还
是
想
聊
聊
,
这
里
仅
仅
记
录
一
下
自
己
的
学
习
笔
记
,
之
前
我
在
J
a
v
a
反
序
列
化
深
究
中
讨
论
了
为
什
么
,
通
过
重
写
r
e
a
d
O
b
j
e
c
t
方
法
会
导
致
反
序
列
化
的
问
题
,
当
然
后
续
整
个
过
程
我
们
也
没
继
续
,
当
然
现
在
继
续
回
来
讨
论
这
个
事
情
。
N
o
.
3
N
o
.
3
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
反
序
列
化
过
程
这
里
需
要
配
合
我
们
的
反
序
列
化
字
节
流
里
面
的
数
据
来
看
。
而
下
面
是
整
个
过
程
的
调
用
栈
,
我
们
一
点
点
来
看
。
e
x
e
c
:
3
4
7
,
R
u
n
t
i
m
e
(
j
a
v
a
.
l
a
n
g
)
r
e
a
d
O
b
j
e
c
t
:
1
1
,
O
b
j
e
c
t
C
a
l
c
i
n
v
o
k
e
0
:
-
1
,
N
a
t
i
v
e
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
(
s
u
n
.
r
e
f
l
e
c
t
)
i
n
v
o
k
e
:
6
2
,
N
a
t
i
v
e
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
(
s
u
n
.
r
e
f
l
e
c
t
)
i
n
v
o
k
e
:
4
3
,
D
e
l
e
g
a
t
i
n
g
M
e
t
h
o
d
A
c
c
e
s
s
o
r
I
m
p
l
(
s
u
n
.
r
e
f
l
e
c
t
)
i
n
v
o
k
e
:
4
9
7
,
M
e
t
h
o
d
(
j
a
v
a
.
l
a
n
g
.
r
e
f
l
e
c
t
)
i
n
v
o
k
e
R
e
a
d
O
b
j
e
c
t
:
1
0
1
7
,
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
(
j
a
v
a
.
i
o
)
r
e
a
d
S
e
r
i
a
l
D
a
t
a
:
1
8
9
6
,
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
(
j
a
v
a
.
i
o
)
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
:
1
8
0
1
,
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
(
j
a
v
a
.
i
o
)
r
e
a
d
O
b
j
e
c
t
0
:
1
3
5
1
,
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
(
j
a
v
a
.
i
o
)
r
e
a
d
O
b
j
e
c
t
:
3
7
1
,
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
(
j
a
v
a
.
i
o
)
m
a
i
n
:
1
1
,
u
n
S
e
r
i
a
l
i
z
a
b
l
e
C
a
l
c
在
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
#
r
e
a
d
O
b
j
e
c
t
0
,
会
根
据
t
c
的
b
y
t
e
值
进
入
s
w
i
t
c
h
中
,
选
择
相
关
的
c
a
s
e
进
行
下
一
步
操
作
。
回
到
之
前
反
序
列
化
字
节
流
中
,
我
们
可
以
看
到
这
里
的
T
C
_
O
B
J
E
C
T
为
0
x
7
3
,
所
以
这
里
会
进
入
c
a
s
e
为
T
C
_
O
B
J
E
C
T
中
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
的
进
行
字
节
流
的
处
理
。
S
T
R
E
A
M
_
M
A
G
I
C
-
0
x
a
c
e
d
S
T
R
E
A
M
_
V
E
R
S
I
O
N
-
0
x
0
0
0
5
C
o
n
t
e
n
t
s
T
C
_
O
B
J
E
C
T
-
0
x
7
3
T
C
_
C
L
A
S
S
D
E
S
C
-
0
x
7
2
c
l
a
s
s
N
a
m
e
L
e
n
g
t
h
-
1
0
-
0
x
0
0
0
a
V
a
l
u
e
-
O
b
j
e
c
t
C
a
l
c
-
0
x
4
f
6
2
6
a
6
5
6
3
7
4
4
3
6
1
6
c
6
3
s
e
r
i
a
l
V
e
r
s
i
o
n
U
I
D
-
0
x
3
3
7
3
1
c
2
0
a
c
f
0
1
8
3
b
n
e
w
H
a
n
d
l
e
0
x
0
0
7
e
0
0
0
0
c
l
a
s
s
D
e
s
c
F
l
a
g
s
-
0
x
0
2
-
S
C
_
S
E
R
I
A
L
I
Z
A
B
L
E
f
i
e
l
d
C
o
u
n
t
-
0
-
0
x
0
0
0
0
c
l
a
s
s
A
n
n
o
t
a
t
i
o
n
s
T
C
_
E
N
D
B
L
O
C
K
D
A
T
A
-
0
x
7
8
s
u
p
e
r
C
l
a
s
s
D
e
s
c
T
C
_
N
U
L
L
-
0
x
7
0
n
e
w
H
a
n
d
l
e
0
x
0
0
7
e
0
0
0
1
c
l
a
s
s
d
a
t
a
O
b
j
e
c
t
C
a
l
c
v
a
l
u
e
s
跟
进
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
,
在
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
中
会
根
据
字
节
流
中
的
下
一
个
关
键
字
T
C
_
C
L
A
S
S
D
E
S
C
进
行
相
关
处
理
,
这
个
T
C
_
C
L
A
S
S
D
E
S
C
是
一
个
类
描
述
符
标
识
,
我
们
可
以
看
到
T
C
_
C
L
A
S
S
D
E
S
C
中
的
c
l
a
s
s
n
a
m
e
的
v
a
l
u
e
正
是
我
们
前
面
测
试
代
码
中
的
O
b
j
e
c
t
C
a
l
c
这
个
类
名
字
。
T
C
_
C
L
A
S
S
D
E
S
C
-
0
x
7
2
c
l
a
s
s
N
a
m
e
L
e
n
g
t
h
-
1
0
-
0
x
0
0
0
a
V
a
l
u
e
-
O
b
j
e
c
t
C
a
l
c
-
0
x
4
f
6
2
6
a
6
5
6
3
7
4
4
3
6
1
6
c
6
3
而
处
理
上
述
这
些
东
西
的
方
法
自
然
是
r
e
a
d
C
l
a
s
s
D
e
s
c
,
这
里
画
个
重
点
,
下
面
反
序
列
化
的
一
些
修
复
方
法
其
实
和
这
个
里
面
的
一
些
有
关
系
,
当
然
这
里
面
还
有
个
T
C
_
P
R
O
X
Y
C
L
A
S
S
D
E
S
C
引
起
了
我
的
注
意
,
这
个
T
C
_
P
R
O
X
Y
C
L
A
S
S
D
E
S
C
是
代
理
类
描
述
符
,
看
到
代
理
类
这
三
个
字
相
信
熟
悉
反
序
列
化
的
朋
友
们
可
能
不
会
陌
生
,
当
然
不
太
熟
悉
的
朋
友
可
以
了
解
一
下
y
s
o
s
e
r
i
a
l
这
个
项
目
,
这
个
项
目
中
大
量
使
用
了
动
态
代
理
方
式
,
这
种
方
式
反
序
列
化
利
用
本
次
不
会
深
入
探
讨
,
所
以
话
说
回
来
。
/
/
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
#
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
p
r
i
v
a
t
e
O
b
j
e
c
t
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
(
b
o
o
l
e
a
n
u
n
s
h
a
r
e
d
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
{
i
f
(
b
i
n
.
r
e
a
d
B
y
t
e
(
)
!
=
T
C
_
O
B
J
E
C
T
)
{
t
h
r
o
w
n
e
w
I
n
t
e
r
n
a
l
E
r
r
o
r
(
)
;
}
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
d
e
s
c
=
r
e
a
d
C
l
a
s
s
D
e
s
c
(
f
a
l
s
e
)
;
d
e
s
c
.
c
h
e
c
k
D
e
s
e
r
i
a
l
i
z
e
(
)
;
/
/
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
#
r
e
a
d
C
l
a
s
s
D
e
s
c
p
r
i
v
a
t
e
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
r
e
a
d
C
l
a
s
s
D
e
s
c
(
b
o
o
l
e
a
n
u
n
s
h
a
r
e
d
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
{
b
y
t
e
t
c
=
b
i
n
.
p
e
e
k
B
y
t
e
(
)
;
s
w
i
t
c
h
(
t
c
)
{
c
a
s
e
T
C
_
N
U
L
L
:
r
e
t
u
r
n
(
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
)
r
e
a
d
N
u
l
l
(
)
;
c
a
s
e
T
C
_
R
E
F
E
R
E
N
C
E
:
r
e
t
u
r
n
(
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
)
r
e
a
d
H
a
n
d
l
e
(
u
n
s
h
a
r
e
d
)
;
c
a
s
e
T
C
_
P
R
O
X
Y
C
L
A
S
S
D
E
S
C
:
r
e
t
u
r
n
r
e
a
d
P
r
o
x
y
D
e
s
c
(
u
n
s
h
a
r
e
d
)
;
c
a
s
e
T
C
_
C
L
A
S
S
D
E
S
C
:
r
e
t
u
r
n
r
e
a
d
N
o
n
P
r
o
x
y
D
e
s
c
(
u
n
s
h
a
r
e
d
)
;
d
e
f
a
u
l
t
:
t
h
r
o
w
n
e
w
S
t
r
e
a
m
C
o
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
(
S
t
r
i
n
g
.
f
o
r
m
a
t
(
"
i
n
v
a
l
i
d
t
y
p
e
c
o
d
e
:
%
0
2
X
"
,
t
c
)
)
;
}
这
里
我
们
分
别
跟
进
一
下
r
e
a
d
P
r
o
x
y
D
e
s
c
和
r
e
a
d
N
o
n
P
r
o
x
y
D
e
s
c
方
法
,
首
先
跟
进
r
e
a
d
N
o
n
P
r
o
x
y
D
e
s
c
方
法
,
我
删
除
部
分
代
码
,
可
以
看
看
下
面
代
码
中
的
r
e
s
o
l
v
e
C
l
a
s
s
,
r
e
s
o
l
v
e
C
l
a
s
s
处
理
的
r
e
a
d
D
e
s
c
正
是
我
们
要
利
用
的
一
个
类
O
j
e
c
t
C
l
a
c
。
p
r
i
v
a
t
e
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
r
e
a
d
N
o
n
P
r
o
x
y
D
e
s
c
(
b
o
o
l
e
a
n
u
n
s
h
a
r
e
d
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
.
.
.
C
l
a
s
s
<
?
>
c
l
=
n
u
l
l
;
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
r
e
s
o
l
v
e
E
x
=
n
u
l
l
;
b
i
n
.
s
e
t
B
l
o
c
k
D
a
t
a
M
o
d
e
(
t
r
u
e
)
;
f
i
n
a
l
b
o
o
l
e
a
n
c
h
e
c
k
s
R
e
q
u
i
r
e
d
=
i
s
C
u
s
t
o
m
S
u
b
c
l
a
s
s
(
)
;
t
r
y
{
i
f
(
(
c
l
=
r
e
s
o
l
v
e
C
l
a
s
s
(
r
e
a
d
D
e
s
c
)
)
=
=
n
u
l
l
)
{
r
e
s
o
l
v
e
E
x
=
n
e
w
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
(
"
n
u
l
l
c
l
a
s
s
"
)
;
}
e
l
s
e
i
f
(
c
h
e
c
k
s
R
e
q
u
i
r
e
d
)
{
R
e
f
l
e
c
t
U
t
i
l
.
c
h
e
c
k
P
a
c
k
a
g
e
A
c
c
e
s
s
(
c
l
)
;
}
}
而
继
续
跟
进
r
e
s
o
l
v
e
C
l
a
s
s
方
法
,
可
以
看
到
通
过
C
l
a
s
s
.
f
o
r
N
a
m
e
方
法
反
射
调
用
我
们
的
利
用
类
O
b
j
c
e
t
C
a
l
c
。
p
r
o
t
e
c
t
e
d
C
l
a
s
s
<
?
>
r
e
s
o
l
v
e
C
l
a
s
s
(
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
d
e
s
c
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
,
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
{
S
t
r
i
n
g
n
a
m
e
=
d
e
s
c
.
g
e
t
N
a
m
e
(
)
;
t
r
y
{
r
e
t
u
r
n
C
l
a
s
s
.
f
o
r
N
a
m
e
(
n
a
m
e
,
f
a
l
s
e
,
l
a
t
e
s
t
U
s
e
r
D
e
f
i
n
e
d
L
o
a
d
e
r
(
)
)
;
}
再
回
头
看
看
r
e
a
d
P
r
o
x
y
D
e
s
c
这
个
类
,
其
实
r
e
a
d
P
r
o
x
y
D
e
s
c
和
r
e
a
d
N
o
n
P
r
o
x
y
D
e
s
c
在
写
法
上
会
发
现
很
像
,
唯
一
的
区
别
就
是
在
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
这
个
类
上
。
p
r
i
v
a
t
e
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
r
e
a
d
P
r
o
x
y
D
e
s
c
(
b
o
o
l
e
a
n
u
n
s
h
a
r
e
d
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
.
.
.
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
d
e
s
c
=
n
e
w
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
(
)
;
.
.
.
t
r
y
{
i
f
(
(
c
l
=
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
(
i
f
a
c
e
s
)
)
=
=
n
u
l
l
)
{
r
e
s
o
l
v
e
E
x
=
n
e
w
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
(
"
n
u
l
l
c
l
a
s
s
"
)
;
}
跟
进
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
中
,
这
个
方
法
最
后
会
调
用
P
r
o
x
y
.
g
e
t
P
r
o
x
y
C
l
a
s
s
来
处
理
,
比
如
获
取
代
理
类
这
些
操
作
。
p
r
o
t
e
c
t
e
d
C
l
a
s
s
<
?
>
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
(
S
t
r
i
n
g
[
]
i
n
t
e
r
f
a
c
e
s
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
,
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
{
.
.
.
t
r
y
{
r
e
t
u
r
n
P
r
o
x
y
.
g
e
t
P
r
o
x
y
C
l
a
s
s
(
h
a
s
N
o
n
P
u
b
l
i
c
I
n
t
e
r
f
a
c
e
?
n
o
n
P
u
b
l
i
c
L
o
a
d
e
r
:
l
a
t
e
s
t
L
o
a
d
e
r
,
c
l
a
s
s
O
b
j
s
)
;
当
然
经
过
r
e
a
d
P
r
o
x
y
D
e
s
c
或
者
r
e
a
d
N
o
n
P
r
o
x
y
D
e
s
c
处
理
之
后
实
际
上
完
成
了
类
的
实
例
化
,
也
就
说
经
过
r
e
a
d
C
l
a
s
s
D
e
s
c
处
理
之
后
,
完
成
了
类
的
实
例
化
,
代
码
继
续
向
下
处
理
,
标
记
了
一
些
注
释
,
这
里
自
然
是
进
入
到
r
e
a
d
S
e
r
i
a
l
D
a
t
a
中
。
p
r
i
v
a
t
e
O
b
j
e
c
t
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
(
b
o
o
l
e
a
n
u
n
s
h
a
r
e
d
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
d
e
s
c
=
r
e
a
d
C
l
a
s
s
D
e
s
c
(
f
a
l
s
e
)
;
/
/
实
例
化
对
象
d
e
s
c
.
c
h
e
c
k
D
e
s
e
r
i
a
l
i
z
e
(
)
;
/
/
判
断
对
应
类
是
否
反
序
列
化
C
l
a
s
s
<
?
>
c
l
=
d
e
s
c
.
f
o
r
C
l
a
s
s
(
)
;
/
/
获
取
类
对
象
,
这
里
是
O
b
j
e
c
t
C
a
l
c
O
b
j
e
c
t
o
b
j
;
t
r
y
{
o
b
j
=
d
e
s
c
.
i
s
I
n
s
t
a
n
t
i
a
b
l
e
(
)
?
d
e
s
c
.
n
e
w
I
n
s
t
a
n
c
e
(
)
:
n
u
l
l
;
/
/
判
断
是
否
存
在
构
造
器
,
如
果
,
然
后
获
取
类
对
象
实
例
化
,
所
以
这
里
是
实
例
化
的
O
b
j
e
c
t
C
a
l
c
对
象
。
}
.
.
.
i
f
(
d
e
s
c
.
i
s
E
x
t
e
r
n
a
l
i
z
a
b
l
e
(
)
)
{
/
/
如
果
序
列
化
的
接
口
是
E
x
t
e
r
n
a
l
i
z
a
b
l
e
类
型
,
就
进
入
r
e
a
d
E
x
t
e
r
n
a
l
D
a
t
a
,
否
则
进
入
r
e
a
d
S
e
r
i
a
l
D
a
t
a
r
e
a
d
E
x
t
e
r
n
a
l
D
a
t
a
(
(
E
x
t
e
r
n
a
l
i
z
a
b
l
e
)
o
b
j
,
d
e
s
c
)
;
}
e
l
s
e
{
r
e
a
d
S
e
r
i
a
l
D
a
t
a
(
o
b
j
,
d
e
s
c
)
;
}
E
x
t
e
r
n
a
l
i
z
a
b
l
e
类
型
的
反
序
列
化
类
型
,
可
以
通
过
w
r
i
t
e
E
x
t
e
r
n
a
l
(
)
和
r
e
a
d
E
x
t
e
r
n
a
l
(
)
方
法
指
定
一
个
类
的
部
分
数
据
进
行
序
列
化
与
反
序
列
化
。
S
e
r
i
a
l
i
z
a
b
l
e
接
口
也
可
以
实
现
类
似
的
机
制
:
将
不
想
要
序
列
化
的
部
分
添
加
一
个
关
键
字
:
t
r
a
n
s
i
e
n
t
(
临
时
的
)
。
它
声
明
的
变
量
实
行
序
列
化
操
作
的
时
候
不
会
写
入
到
序
列
化
文
件
中
去
。
在
r
e
a
d
S
e
r
i
a
l
D
a
t
a
中
有
一
个
s
l
o
t
D
e
s
c
.
h
a
s
R
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
判
断
,
而
我
们
在
《
J
a
v
a
反
序
列
化
深
究
》
讨
论
过
就
是
它
判
断
是
否
反
序
列
化
,
跟
进
h
a
s
R
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
实
际
上
是
判
断
r
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
是
否
为
n
u
l
l
,
并
且
结
果
是
b
o
o
l
e
a
n
型
。
b
o
o
l
e
a
n
h
a
s
R
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
(
)
{
r
e
t
u
r
n
(
r
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
!
=
n
u
l
l
)
;
}
这
个
r
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
如
何
来
的
,
实
际
上
需
要
追
溯
到
前
面
r
e
a
d
C
l
a
s
s
D
e
s
c
和
r
e
a
d
N
o
n
P
r
o
x
y
D
e
s
c
中
,
实
际
上
,
这
两
个
方
法
实
例
化
类
之
后
,
都
有
一
个
d
e
s
c
.
i
n
i
t
N
o
n
P
r
o
x
y
构
造
方
法
来
处
理
结
果
。
/
/
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
#
r
e
a
d
N
o
n
P
r
o
x
y
D
e
s
c
t
r
y
{
i
f
(
(
c
l
=
r
e
s
o
l
v
e
C
l
a
s
s
(
r
e
a
d
D
e
s
c
)
)
=
=
n
u
l
l
)
{
r
e
s
o
l
v
e
E
x
=
n
e
w
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
(
"
n
u
l
l
c
l
a
s
s
"
)
;
}
e
l
s
e
i
f
(
c
h
e
c
k
s
R
e
q
u
i
r
e
d
)
{
R
e
f
l
e
c
t
U
t
i
l
.
c
h
e
c
k
P
a
c
k
a
g
e
A
c
c
e
s
s
(
c
l
)
;
}
}
c
a
t
c
h
(
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
e
x
)
{
r
e
s
o
l
v
e
E
x
=
e
x
;
}
s
k
i
p
C
u
s
t
o
m
D
a
t
a
(
)
;
d
e
s
c
.
i
n
i
t
N
o
n
P
r
o
x
y
(
r
e
a
d
D
e
s
c
,
c
l
,
r
e
s
o
l
v
e
E
x
,
r
e
a
d
C
l
a
s
s
D
e
s
c
(
f
a
l
s
e
)
)
;
/
/
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
#
r
e
a
d
C
l
a
s
s
D
e
s
c
t
r
y
{
i
f
(
(
c
l
=
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
(
i
f
a
c
e
s
)
)
=
=
n
u
l
l
)
{
r
e
s
o
l
v
e
E
x
=
n
e
w
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
(
"
n
u
l
l
c
l
a
s
s
"
)
;
}
e
l
s
e
i
f
(
!
P
r
o
x
y
.
i
s
P
r
o
x
y
C
l
a
s
s
(
c
l
)
)
{
t
h
r
o
w
n
e
w
I
n
v
a
l
i
d
C
l
a
s
s
E
x
c
e
p
t
i
o
n
(
"
N
o
t
a
p
r
o
x
y
"
)
;
}
e
l
s
e
{
/
/
R
e
f
l
e
c
t
U
t
i
l
.
c
h
e
c
k
P
r
o
x
y
P
a
c
k
a
g
e
A
c
c
e
s
s
m
a
k
e
s
a
t
e
s
t
/
/
e
q
u
i
v
a
l
e
n
t
t
o
i
s
C
u
s
t
o
m
S
u
b
c
l
a
s
s
s
o
t
h
e
r
e
'
s
n
o
n
e
e
d
/
/
t
o
c
o
n
d
i
t
i
o
n
t
h
i
s
c
a
l
l
t
o
i
s
C
u
s
t
o
m
S
u
b
c
l
a
s
s
=
=
t
r
u
e
h
e
r
e
.
R
e
f
l
e
c
t
U
t
i
l
.
c
h
e
c
k
P
r
o
x
y
P
a
c
k
a
g
e
A
c
c
e
s
s
(
g
e
t
C
l
a
s
s
(
)
.
g
e
t
C
l
a
s
s
L
o
a
d
e
r
(
)
,
c
l
.
g
e
t
I
n
t
e
r
f
a
c
e
s
(
)
)
;
}
}
c
a
t
c
h
(
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
e
x
)
{
r
e
s
o
l
v
e
E
x
=
e
x
;
}
s
k
i
p
C
u
s
t
o
m
D
a
t
a
(
)
;
d
e
s
c
.
i
n
i
t
P
r
o
x
y
(
c
l
,
r
e
s
o
l
v
e
E
x
,
r
e
a
d
C
l
a
s
s
D
e
s
c
(
f
a
l
s
e
)
)
;
跟
进
i
n
i
t
N
o
n
P
r
o
x
y
构
造
方
法
,
实
际
上
这
两
个
方
法
都
会
调
用
l
o
o
k
u
p
方
法
处
理
c
l
,
而
c
l
实
际
上
就
是
我
们
实
例
化
的
那
个
类
,
在
这
个
例
子
中
是
O
b
j
e
c
t
C
a
l
c
类
。
v
o
i
d
i
n
i
t
N
o
n
P
r
o
x
y
(
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
m
o
d
e
l
,
C
l
a
s
s
<
?
>
c
l
,
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
r
e
s
o
l
v
e
E
x
,
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
s
u
p
e
r
D
e
s
c
)
t
h
r
o
w
s
I
n
v
a
l
i
d
C
l
a
s
s
E
x
c
e
p
t
i
o
n
{
t
h
i
s
.
c
l
=
c
l
;
i
f
(
c
l
!
=
n
u
l
l
)
{
l
o
c
a
l
D
e
s
c
=
l
o
o
k
u
p
(
c
l
,
t
r
u
e
)
;
v
o
i
d
i
n
i
t
P
r
o
x
y
(
C
l
a
s
s
<
?
>
c
l
,
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
r
e
s
o
l
v
e
E
x
,
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
s
u
p
e
r
D
e
s
c
)
t
h
r
o
w
s
I
n
v
a
l
i
d
C
l
a
s
s
E
x
c
e
p
t
i
o
n
{
t
h
i
s
.
c
l
=
c
l
;
i
f
(
c
l
!
=
n
u
l
l
)
{
l
o
c
a
l
D
e
s
c
=
l
o
o
k
u
p
(
c
l
,
t
r
u
e
)
;
跟
进
l
o
o
k
u
p
在
实
例
化
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
,
处
理
了
c
l
对
象
,
而
这
个
c
l
在
我
们
这
里
面
就
是
O
b
j
e
c
t
C
a
l
c
。
s
t
a
t
i
c
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
l
o
o
k
u
p
(
C
l
a
s
s
<
?
>
c
l
,
b
o
o
l
e
a
n
a
l
l
)
{
i
f
(
!
(
a
l
l
|
|
S
e
r
i
a
l
i
z
a
b
l
e
.
c
l
a
s
s
.
i
s
A
s
s
i
g
n
a
b
l
e
F
r
o
m
(
c
l
)
)
)
{
r
e
t
u
r
n
n
u
l
l
;
}
.
.
.
i
f
(
e
n
t
r
y
=
=
n
u
l
l
)
{
t
r
y
{
e
n
t
r
y
=
n
e
w
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
(
c
l
)
;
}
c
a
t
c
h
(
T
h
r
o
w
a
b
l
e
t
h
)
{
e
n
t
r
y
=
t
h
;
}
跟
进
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
,
可
以
看
到
而
这
个
c
l
在
我
们
这
里
面
就
是
O
b
j
e
c
t
C
a
l
c
,
而
这
里
会
有
个
判
断
是
否
e
x
t
e
r
n
a
l
i
z
a
b
l
e
,
这
个
属
性
我
们
前
面
说
过
了
。
p
r
i
v
a
t
e
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
(
f
i
n
a
l
C
l
a
s
s
<
?
>
c
l
)
{
t
h
i
s
.
c
l
=
c
l
;
n
a
m
e
=
c
l
.
g
e
t
N
a
m
e
(
)
;
i
s
P
r
o
x
y
=
P
r
o
x
y
.
i
s
P
r
o
x
y
C
l
a
s
s
(
c
l
)
;
i
s
E
n
u
m
=
E
n
u
m
.
c
l
a
s
s
.
i
s
A
s
s
i
g
n
a
b
l
e
F
r
o
m
(
c
l
)
;
s
e
r
i
a
l
i
z
a
b
l
e
=
S
e
r
i
a
l
i
z
a
b
l
e
.
c
l
a
s
s
.
i
s
A
s
s
i
g
n
a
b
l
e
F
r
o
m
(
c
l
)
;
e
x
t
e
r
n
a
l
i
z
a
b
l
e
=
E
x
t
e
r
n
a
l
i
z
a
b
l
e
.
c
l
a
s
s
.
i
s
A
s
s
i
g
n
a
b
l
e
F
r
o
m
(
c
l
)
;
.
.
.
i
f
(
s
e
r
i
a
l
i
z
a
b
l
e
)
{
A
c
c
e
s
s
C
o
n
t
r
o
l
l
e
r
.
d
o
P
r
i
v
i
l
e
g
e
d
(
n
e
w
P
r
i
v
i
l
e
g
e
d
A
c
t
i
o
n
<
V
o
i
d
>
(
)
{
p
u
b
l
i
c
V
o
i
d
r
u
n
(
)
{
.
.
.
i
f
(
e
x
t
e
r
n
a
l
i
z
a
b
l
e
)
{
/
/
判
断
接
口
是
不
是
c
o
n
s
=
g
e
t
E
x
t
e
r
n
a
l
i
z
a
b
l
e
C
o
n
s
t
r
u
c
t
o
r
(
c
l
)
;
}
e
l
s
e
{
c
o
n
s
=
g
e
t
S
e
r
i
a
l
i
z
a
b
l
e
C
o
n
s
t
r
u
c
t
o
r
(
c
l
)
;
w
r
i
t
e
O
b
j
e
c
t
M
e
t
h
o
d
=
g
e
t
P
r
i
v
a
t
e
M
e
t
h
o
d
(
c
l
,
"
w
r
i
t
e
O
b
j
e
c
t
"
,
/
/
不
是
获
取
c
l
对
象
w
r
i
t
e
O
b
j
e
c
t
的
私
有
属
性
n
e
w
C
l
a
s
s
<
?
>
[
]
{
O
b
j
e
c
t
O
u
t
p
u
t
S
t
r
e
a
m
.
c
l
a
s
s
}
,
V
o
i
d
.
T
Y
P
E
)
;
r
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
=
g
e
t
P
r
i
v
a
t
e
M
e
t
h
o
d
(
c
l
,
"
r
e
a
d
O
b
j
e
c
t
"
,
/
/
不
是
获
取
c
l
对
象
r
e
a
d
O
b
j
e
c
t
的
私
有
属
性
n
e
w
C
l
a
s
s
<
?
>
[
]
{
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
.
c
l
a
s
s
}
,
V
o
i
d
.
T
Y
P
E
)
;
跟
进
g
e
t
P
r
i
v
a
t
e
M
e
t
h
o
d
方
法
,
可
以
看
到
他
会
对
一
些
属
性
进
行
判
断
。
p
r
i
v
a
t
e
s
t
a
t
i
c
M
e
t
h
o
d
g
e
t
P
r
i
v
a
t
e
M
e
t
h
o
d
(
C
l
a
s
s
<
?
>
c
l
,
S
t
r
i
n
g
n
a
m
e
,
C
l
a
s
s
<
?
>
[
]
a
r
g
T
y
p
e
s
,
C
l
a
s
s
<
?
>
r
e
t
u
r
n
T
y
p
e
)
{
t
r
y
{
M
e
t
h
o
d
m
e
t
h
=
c
l
.
g
e
t
D
e
c
l
a
r
e
d
M
e
t
h
o
d
(
n
a
m
e
,
a
r
g
T
y
p
e
s
)
;
m
e
t
h
.
s
e
t
A
c
c
e
s
s
i
b
l
e
(
t
r
u
e
)
;
i
n
t
m
o
d
s
=
m
e
t
h
.
g
e
t
M
o
d
i
f
i
e
r
s
(
)
;
r
e
t
u
r
n
(
(
m
e
t
h
.
g
e
t
R
e
t
u
r
n
T
y
p
e
(
)
=
=
r
e
t
u
r
n
T
y
p
e
)
&
&
(
(
m
o
d
s
&
M
o
d
i
f
i
e
r
.
S
T
A
T
I
C
)
=
=
0
)
&
&
(
(
m
o
d
s
&
M
o
d
i
f
i
e
r
.
P
R
I
V
A
T
E
)
!
=
0
)
)
?
m
e
t
h
:
n
u
l
l
;
}
c
a
t
c
h
(
N
o
S
u
c
h
M
e
t
h
o
d
E
x
c
e
p
t
i
o
n
e
x
)
{
r
e
t
u
r
n
n
u
l
l
;
}
}
比
如
拿
下
面
这
个
例
子
为
例
子
:
r
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
=
g
e
t
P
r
i
v
a
t
e
M
e
t
h
o
d
(
c
l
,
"
r
e
a
d
O
b
j
e
c
t
"
,
n
e
w
C
l
a
s
s
<
?
>
[
]
{
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
.
c
l
a
s
s
}
,
方
法
名
为
r
e
a
d
O
b
j
e
c
t
返
回
类
型
为
v
o
i
d
传
入
参
数
为
一
个
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
.
c
l
a
s
s
类
型
参
数
修
饰
符
不
能
包
含
s
t
a
t
i
c
修
饰
符
必
须
包
含
p
r
i
v
a
t
e
所
以
说
满
足
这
种
情
况
下
才
会
进
入
反
序
列
化
的
下
一
步
核
心
s
l
o
t
D
e
s
c
.
i
n
v
o
k
e
R
e
a
d
O
b
j
e
c
t
中
,
否
则
会
进
入
d
e
f
a
u
l
t
R
e
a
d
F
i
e
l
d
s
进
行
处
理
。
p
r
i
v
a
t
e
v
o
i
d
r
e
a
d
S
e
r
i
a
l
D
a
t
a
(
O
b
j
e
c
t
o
b
j
,
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
d
e
s
c
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
{
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
.
C
l
a
s
s
D
a
t
a
S
l
o
t
[
]
s
l
o
t
s
=
d
e
s
c
.
g
e
t
C
l
a
s
s
D
a
t
a
L
a
y
o
u
t
(
)
;
f
o
r
(
i
n
t
i
=
0
;
i
<
s
l
o
t
s
.
l
e
n
g
t
h
;
i
+
+
)
{
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
s
l
o
t
D
e
s
c
=
s
l
o
t
s
[
i
]
.
d
e
s
c
;
i
f
(
s
l
o
t
s
[
i
]
.
h
a
s
D
a
t
a
)
{
i
f
(
o
b
j
!
=
n
u
l
l
&
&
s
l
o
t
D
e
s
c
.
h
a
s
R
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
(
)
&
&
h
a
n
d
l
e
s
.
l
o
o
k
u
p
E
x
c
e
p
t
i
o
n
(
p
a
s
s
H
a
n
d
l
e
)
=
=
n
u
l
l
)
{
S
e
r
i
a
l
C
a
l
l
b
a
c
k
C
o
n
t
e
x
t
o
l
d
C
o
n
t
e
x
t
=
c
u
r
C
o
n
t
e
x
t
;
t
r
y
{
c
u
r
C
o
n
t
e
x
t
=
n
e
w
S
e
r
i
a
l
C
a
l
l
b
a
c
k
C
o
n
t
e
x
t
(
o
b
j
,
s
l
o
t
D
e
s
c
)
;
b
i
n
.
s
e
t
B
l
o
c
k
D
a
t
a
M
o
d
e
(
t
r
u
e
)
;
s
l
o
t
D
e
s
c
.
i
n
v
o
k
e
R
e
a
d
O
b
j
e
c
t
(
o
b
j
,
t
h
i
s
)
;
}
c
a
t
c
h
(
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
e
x
)
{
.
.
.
}
e
l
s
e
{
d
e
f
a
u
l
t
R
e
a
d
F
i
e
l
d
s
(
o
b
j
,
s
l
o
t
D
e
s
c
)
;
}
跟
进
i
n
v
o
k
e
R
e
a
d
O
b
j
e
c
t
,
最
后
可
以
看
到
调
用
r
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
.
i
n
v
o
k
e
实
际
上
再
往
下
走
就
是
一
些
反
射
方
法
了
。
v
o
i
d
i
n
v
o
k
e
R
e
a
d
O
b
j
e
c
t
(
O
b
j
e
c
t
o
b
j
,
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
i
n
)
t
h
r
o
w
s
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
,
I
O
E
x
c
e
p
t
i
o
n
,
U
n
s
u
p
p
o
r
t
e
d
O
p
e
r
a
t
i
o
n
E
x
c
e
p
t
i
o
n
{
i
f
(
r
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
!
=
n
u
l
l
)
{
t
r
y
{
r
e
a
d
O
b
j
e
c
t
M
e
t
h
o
d
.
i
n
v
o
k
e
(
o
b
j
,
n
e
w
O
b
j
e
c
t
[
]
{
i
n
}
)
;
}
}
再
回
到
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
#
r
e
a
d
S
e
r
i
a
l
D
a
t
a
中
,
我
们
讨
论
了
s
l
o
t
s
[
i
]
.
h
a
s
D
a
t
a
为
t
r
u
e
的
情
况
下
,
实
际
上
当
这
个
i
f
为
f
a
l
s
e
的
时
候
来
到
的
是
s
l
o
t
D
e
s
c
.
i
n
v
o
k
e
R
e
a
d
O
b
j
e
c
t
N
o
D
a
t
a
。
p
r
i
v
a
t
e
v
o
i
d
r
e
a
d
S
e
r
i
a
l
D
a
t
a
(
O
b
j
e
c
t
o
b
j
,
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
d
e
s
c
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
{
i
f
(
s
l
o
t
s
[
i
]
.
h
a
s
D
a
t
a
)
{
b
i
n
.
s
e
t
B
l
o
c
k
D
a
t
a
M
o
d
e
(
t
r
u
e
)
;
s
l
o
t
D
e
s
c
.
i
n
v
o
k
e
R
e
a
d
O
b
j
e
c
t
(
o
b
j
,
t
h
i
s
)
;
}
i
f
(
s
l
o
t
D
e
s
c
.
h
a
s
W
r
i
t
e
O
b
j
e
c
t
D
a
t
a
(
)
)
{
s
k
i
p
C
u
s
t
o
m
D
a
t
a
(
)
;
}
e
l
s
e
{
b
i
n
.
s
e
t
B
l
o
c
k
D
a
t
a
M
o
d
e
(
f
a
l
s
e
)
;
}
}
e
l
s
e
{
i
f
(
o
b
j
!
=
n
u
l
l
&
&
s
l
o
t
D
e
s
c
.
h
a
s
R
e
a
d
O
b
j
e
c
t
N
o
D
a
t
a
M
e
t
h
o
d
(
)
&
&
h
a
n
d
l
e
s
.
l
o
o
k
u
p
E
x
c
e
p
t
i
o
n
(
p
a
s
s
H
a
n
d
l
e
)
=
=
n
u
l
l
)
{
s
l
o
t
D
e
s
c
.
i
n
v
o
k
e
R
e
a
d
O
b
j
e
c
t
N
o
D
a
t
a
(
o
b
j
)
;
}
而
这
个
判
断
是
实
际
是
根
据
序
列
化
的
时
候
是
不
是
重
写
了
r
e
a
d
O
b
j
e
c
t
N
o
D
a
t
a
来
进
行
反
序
列
化
。
r
e
a
d
O
b
j
e
c
t
N
o
D
a
t
a
M
e
t
h
o
d
=
g
e
t
P
r
i
v
a
t
e
M
e
t
h
o
d
(
c
l
,
"
r
e
a
d
O
b
j
e
c
t
N
o
D
a
t
a
"
,
n
u
l
l
,
V
o
i
d
.
T
Y
P
E
)
;
h
a
s
W
r
i
t
e
O
b
j
e
c
t
D
a
t
a
=
(
w
r
i
t
e
O
b
j
e
c
t
M
e
t
h
o
d
!
=
n
u
l
l
)
;
再
回
到
我
们
前
面
讨
论
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
,
我
们
讨
论
了
序
列
化
接
口
不
是
E
x
t
e
r
n
a
l
i
z
a
b
l
e
类
型
,
如
果
是
的
话
自
然
会
进
入
r
e
a
d
E
x
t
e
r
n
a
l
D
a
t
a
中
。
p
r
i
v
a
t
e
O
b
j
e
c
t
r
e
a
d
O
r
d
i
n
a
r
y
O
b
j
e
c
t
(
b
o
o
l
e
a
n
u
n
s
h
a
r
e
d
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
d
e
s
c
=
r
e
a
d
C
l
a
s
s
D
e
s
c
(
f
a
l
s
e
)
;
/
/
实
例
化
对
象
d
e
s
c
.
c
h
e
c
k
D
e
s
e
r
i
a
l
i
z
e
(
)
;
/
/
判
断
对
应
类
是
否
反
序
列
化
C
l
a
s
s
<
?
>
c
l
=
d
e
s
c
.
f
o
r
C
l
a
s
s
(
)
;
/
/
获
取
类
对
象
,
这
里
是
O
b
j
e
c
t
C
a
l
c
O
b
j
e
c
t
o
b
j
;
t
r
y
{
o
b
j
=
d
e
s
c
.
i
s
I
n
s
t
a
n
t
i
a
b
l
e
(
)
?
d
e
s
c
.
n
e
w
I
n
s
t
a
n
c
e
(
)
:
n
u
l
l
;
/
/
判
断
是
否
存
在
构
造
器
,
如
果
,
然
后
获
取
类
对
象
实
例
化
,
所
以
这
里
是
实
例
化
的
O
b
j
e
c
t
C
a
l
c
对
象
。
}
.
.
.
i
f
(
d
e
s
c
.
i
s
E
x
t
e
r
n
a
l
i
z
a
b
l
e
(
)
)
{
/
/
如
果
序
列
化
的
接
口
是
类
型
,
就
进
入
r
e
a
d
E
x
t
e
r
n
a
l
D
a
t
a
,
否
则
进
入
r
e
a
d
S
e
r
i
a
l
D
a
t
a
r
e
a
d
E
x
t
e
r
n
a
l
D
a
t
a
(
(
E
x
t
e
r
n
a
l
i
z
a
b
l
e
)
o
b
j
,
d
e
s
c
)
;
}
e
l
s
e
{
r
e
a
d
S
e
r
i
a
l
D
a
t
a
(
o
b
j
,
d
e
s
c
)
;
}
跟
进
r
e
a
d
E
x
t
e
r
n
a
l
D
a
t
a
方
法
,
这
个
方
法
调
用
了
o
b
j
.
r
e
a
d
E
x
t
e
r
n
a
l
进
行
处
理
,
也
就
是
说
构
造
p
a
y
l
o
a
d
的
时
候
要
达
到
这
个
触
发
点
,
需
要
用
w
r
i
t
e
E
x
t
e
r
n
a
l
(
)
和
r
e
a
d
E
x
t
e
r
n
a
l
(
)
方
法
指
定
一
个
类
的
部
分
数
据
进
行
序
列
化
与
反
序
列
化
。
p
r
i
v
a
t
e
v
o
i
d
r
e
a
d
E
x
t
e
r
n
a
l
D
a
t
a
(
E
x
t
e
r
n
a
l
i
z
a
b
l
e
o
b
j
,
O
b
j
e
c
t
S
t
r
e
a
m
C
l
a
s
s
d
e
s
c
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
{
S
e
r
i
a
l
C
a
l
l
b
a
c
k
C
o
n
t
e
x
t
o
l
d
C
o
n
t
e
x
t
=
c
u
r
C
o
n
t
e
x
t
;
c
u
r
C
o
n
t
e
x
t
=
n
u
l
l
;
t
r
y
{
b
o
o
l
e
a
n
b
l
o
c
k
e
d
=
d
e
s
c
.
h
a
s
B
l
o
c
k
E
x
t
e
r
n
a
l
D
a
t
a
(
)
;
i
f
(
b
l
o
c
k
e
d
)
{
b
i
n
.
s
e
t
B
l
o
c
k
D
a
t
a
M
o
d
e
(
t
r
u
e
)
;
}
i
f
(
o
b
j
!
=
n
u
l
l
)
{
t
r
y
{
o
b
j
.
r
e
a
d
E
x
t
e
r
n
a
l
(
t
h
i
s
)
;
在
廖
师
傅
的
反
序
列
攻
击
时
序
图
,
补
充
了
一
些
我
的
理
解
。
N
o
.
4
N
o
.
4
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
漏
洞
场
景
拿
w
e
b
l
o
g
i
c
t
3
反
序
列
化
举
例
子
,
可
以
看
到
基
本
上
做
修
复
的
方
式
都
是
针
对
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
和
r
e
s
o
l
v
e
C
l
a
s
s
进
行
的
修
复
黑
名
单
处
理
。
C
V
E
-
2
0
1
7
-
3
2
4
8
这
个
漏
洞
修
复
方
式
针
对
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
,
进
行
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
R
e
g
i
s
t
r
y
的
黑
名
单
拦
截
。
p
r
o
t
e
c
t
e
d
C
l
a
s
s
<
?
>
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
(
S
t
r
i
n
g
[
]
v
a
r
1
)
t
h
r
o
w
s
I
O
E
x
c
e
p
t
i
o
n
,
C
l
a
s
s
N
o
t
F
o
u
n
d
E
x
c
e
p
t
i
o
n
{
S
t
r
i
n
g
[
]
v
a
r
2
=
v
a
r
1
;
i
n
t
v
a
r
3
=
v
a
r
1
.
l
e
n
g
t
h
;
f
o
r
(
i
n
t
v
a
r
4
=
0
;
v
a
r
4
<
v
a
r
3
;
+
+
v
a
r
4
)
{
S
t
r
i
n
g
v
a
r
5
=
v
a
r
2
[
v
a
r
4
]
;
i
f
(
v
a
r
5
.
e
q
u
a
l
s
(
"
j
a
v
a
.
r
m
i
.
r
e
g
i
s
t
r
y
.
R
e
g
i
s
t
r
y
"
)
)
{
t
h
r
o
w
n
e
w
I
n
v
a
l
i
d
O
b
j
e
c
t
E
x
c
e
p
t
i
o
n
(
"
U
n
a
u
t
h
o
r
i
z
e
d
p
r
o
x
y
d
e
s
e
r
i
a
l
i
z
a
t
i
o
n
"
)
;
}
}
r
e
t
u
r
n
s
u
p
e
r
.
r
e
s
o
l
v
e
P
r
o
x
y
C
l
a
s
s
(
v
a
r
1
)
;
}
C
V
E
-
2
0
1
9
-
2
8
9
0
这
个
漏
洞
修
复
方
式
针
对
r
e
s
o
l
v
e
C
l
a
s
s
,
进
行
黑
名
单
拦
截
。
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页