论坛
BBS
空间测绘
发表
发布文章
提问答疑
搜索
您还未登录
登录后即可体验更多功能
立即登录
我的收藏
提问答疑
我要投稿
逆向
[6453] 2020-01-25_JAVA反序列化-commons-collections-1
文档创建者:
s7ckTeam
浏览次数:
10
最后更新:
2025-01-17
逆向
10 人阅读
|
0 人回复
s7ckTeam
s7ckTeam
当前离线
积分
-56
6万
主题
-6万
回帖
-56
积分
管理员
积分
-56
发消息
2020-01-25_JAVA反序列化-commons-collections-1
J
A
V
A
反
序
列
化
-
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
1
E
安
全
2
0
2
0
-
0
1
-
2
5
以
下
文
章
来
源
于
雷
神
众
测
,
作
者
l
a
l
a
N
o
.
1
N
o
.
1
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
声
明
由
于
传
播
、
利
用
此
文
所
提
供
的
信
息
而
造
成
的
任
何
直
接
或
者
间
接
的
后
果
及
损
失
,
均
由
使
用
者
本
人
负
责
,
雷
神
众
测
以
及
文
章
作
者
不
为
此
承
担
任
何
责
任
。
雷
神
众
测
拥
有
对
此
文
章
的
修
改
和
解
释
权
。
如
欲
转
载
或
传
播
此
文
章
,
必
须
保
证
此
文
章
的
完
整
性
,
包
括
版
权
声
明
等
全
部
内
容
。
未
经
雷
神
众
测
允
许
,
不
得
任
意
修
改
或
者
增
减
此
文
章
内
容
,
不
得
以
任
何
方
式
将
其
用
于
商
业
目
的
。
N
o
.
2
N
o
.
2
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
前
言
这
是
个
人
学
习
j
a
v
a
反
序
列
化
的
第
一
篇
利
用
链
的
文
章
,
就
好
像
P
牛
说
的
不
知
道
为
什
么
网
上
讲
到
j
a
v
a
反
序
列
化
学
习
,
上
来
就
是
c
c
链
,
你
知
道
这
个
链
它
有
多
复
杂
么
.
j
p
g
。
萌
新
也
是
理
所
当
然
的
踩
了
这
个
坑
,
然
后
…
.
.
在
一
路
质
疑
自
己
智
商
和
"
我
不
服
"
的
情
况
下
趟
了
过
去
。
路
难
行
,
难
行
,
总
归
要
走
。
走
来
,
回
望
去
,
呵
,
牛
逼
。
在
此
文
中
是
以
一
个
只
了
解
j
a
v
a
反
射
机
制
和
反
序
列
化
利
用
点
(
r
e
a
d
O
b
j
e
c
t
)
的
视
角
去
一
点
点
复
现
推
导
了
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
、
j
d
k
1
.
7
的
p
o
c
的
构
造
。
同
时
记
录
下
了
一
个
个
踩
的
坑
,
再
爬
出
来
,
再
跳
进
去
,
再
爬
出
来
的
历
程
。
如
果
你
具
备
了
反
射
机
制
和
反
序
列
化
基
本
原
理
的
知
识
,
同
时
想
学
习
c
c
链
的
话
,
个
人
感
觉
是
这
篇
文
是
再
适
合
不
过
了
。
那
么
开
始
。
了
解
反
射
机
制
的
话
,
我
们
会
发
现
若
存
在
一
个
固
有
的
反
射
机
制
时
,
输
入
可
控
,
就
可
能
形
成
任
意
函
数
调
用
的
情
况
,
具
有
极
大
的
危
害
。
但
实
际
上
真
的
有
存
在
这
种
情
况
:
这
就
是
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
j
a
r
包
,
c
v
e
编
号
:
c
v
e
-
2
0
1
5
-
4
8
5
2
在
开
始
之
前
我
们
需
要
理
一
下
反
序
列
化
漏
洞
的
攻
击
流
程
:
1
.
客
户
端
构
造
p
a
y
l
o
a
d
(
有
效
载
荷
)
,
并
进
行
一
层
层
的
封
装
,
完
成
最
后
的
e
x
p
(
e
x
p
l
o
i
t
-
利
用
代
码
)
2
.
e
x
p
发
送
到
服
务
端
,
进
入
一
个
服
务
端
自
主
复
写
(
也
可
能
是
也
有
组
件
复
写
)
的
r
e
a
d
o
b
j
e
c
t
函
数
,
它
会
反
序
列
化
恢
复
我
们
构
造
的
e
x
p
去
形
成
一
个
恶
意
的
数
据
格
式
e
x
p
_
1
(
剥
去
第
一
层
)
3
.
这
个
恶
意
数
据
e
x
p
_
1
在
接
下
来
的
处
理
流
程
(
可
能
是
在
自
主
复
写
的
r
e
a
d
o
b
j
e
c
t
中
、
也
可
能
是
在
外
面
的
逻
辑
中
)
,
会
执
行
一
个
e
x
p
_
1
这
个
恶
意
数
据
类
的
一
个
方
法
,
在
方
法
中
会
根
据
e
x
p
_
1
的
内
容
进
行
函
处
理
,
从
而
一
层
层
地
剥
去
(
或
者
说
变
形
、
解
析
)
我
们
e
x
p
_
1
变
成
e
x
p
_
2
、
e
x
p
_
3
…
…
4
.
最
后
在
一
个
可
执
行
任
意
命
令
的
函
数
中
执
行
最
后
的
p
a
y
l
o
a
d
,
完
成
远
程
代
码
执
行
。
那
么
以
上
大
概
可
以
分
成
三
个
主
要
部
分
:
1
.
p
a
y
l
o
a
d
:
需
要
让
服
务
端
执
行
的
语
句
:
比
如
说
弹
计
算
器
还
是
执
行
远
程
访
问
等
;
我
把
它
称
为
:
p
a
y
l
o
a
d
2
.
反
序
列
化
利
用
链
:
服
务
端
中
存
在
的
反
序
列
化
利
用
链
,
会
一
层
层
拨
开
我
们
的
e
x
p
,
最
后
执
行
p
a
y
l
o
a
d
。
(
在
此
篇
中
就
是
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
利
用
链
)
3
.
r
e
a
d
O
b
j
e
c
t
复
写
利
用
点
:
服
务
端
中
存
在
的
可
以
与
我
们
漏
洞
链
相
接
的
并
且
可
以
从
外
部
访
问
的
r
e
a
d
O
b
j
e
c
t
函
数
复
写
点
;
我
把
它
称
为
r
e
a
d
O
b
j
e
c
t
复
写
利
用
点
(
自
创
名
称
…
)
N
o
.
3
N
o
.
3
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
-
3
.
1
首
先
来
看
看
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
项
目
吧
雷
神
众
测
雷
神
众
测
.
雷
神
众
测
,
专
注
于
渗
透
测
试
技
术
及
全
球
最
新
网
络
攻
击
技
术
的
分
析
。
官
网
第
一
段
:
J
a
v
a
c
o
m
m
o
n
s
-
c
o
l
l
e
c
t
i
o
n
s
是
J
D
K
1
.
2
中
的
一
个
主
要
新
增
部
分
。
它
添
加
了
许
多
强
大
的
数
据
结
构
,
可
以
加
速
大
多
数
重
要
J
a
v
a
应
用
程
序
的
开
发
。
从
那
时
起
,
它
已
经
成
为
J
a
v
a
中
公
认
的
集
合
处
理
标
准
。
A
p
a
c
h
e
C
o
m
m
o
n
s
C
o
l
l
e
c
t
i
o
n
s
是
一
个
扩
展
了
J
a
v
a
标
准
库
里
的
C
o
l
l
e
c
t
i
o
n
结
构
的
第
三
方
基
础
库
,
它
提
供
了
很
多
强
有
力
的
数
据
结
构
类
型
并
且
实
现
了
各
种
集
合
工
具
类
。
作
为
A
p
a
c
h
e
开
源
项
目
的
重
要
组
件
,
C
o
m
m
o
n
s
C
o
l
l
e
c
t
i
o
n
s
被
广
泛
应
用
于
各
种
J
a
v
a
应
用
的
开
发
。
它
是
一
个
基
础
数
据
结
构
包
,
同
时
封
装
了
很
多
功
能
,
其
中
我
们
需
要
关
注
一
个
功
能
:
T
r
a
n
s
f
o
r
m
i
n
g
d
e
c
o
r
a
t
o
r
s
t
h
a
t
a
l
t
e
r
e
a
c
h
o
b
j
e
c
t
a
s
i
t
i
s
a
d
d
e
d
t
o
t
h
e
c
o
l
l
e
c
t
i
o
n
转
化
装
饰
器
:
修
改
每
一
个
添
加
到
c
o
l
l
e
c
t
i
o
n
中
的
o
b
j
e
c
t
C
o
m
m
o
n
s
C
o
l
l
e
c
t
i
o
n
s
实
现
了
一
个
T
r
a
n
s
f
o
r
m
e
d
M
a
p
类
,
该
类
是
对
J
a
v
a
标
准
数
据
结
构
M
a
p
接
口
的
一
个
扩
展
。
该
类
可
以
在
一
个
元
素
被
加
入
到
集
合
内
时
,
自
动
对
该
元
素
进
行
特
定
的
修
饰
变
换
,
具
体
的
变
换
逻
辑
由
T
r
a
n
s
f
o
r
m
e
r
类
定
义
,
T
r
a
n
s
f
o
r
m
e
r
在
T
r
a
n
s
f
o
r
m
e
d
M
a
p
实
例
化
时
作
为
参
数
传
入
。
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
T
r
a
n
s
f
o
r
m
e
r
这
个
类
可
以
满
足
固
定
的
类
型
转
化
需
求
,
其
转
化
函
数
可
以
自
定
义
实
现
,
我
们
的
漏
洞
触
发
函
数
就
是
在
于
这
个
点
。
漏
洞
复
现
需
要
下
载
3
.
1
版
本
,
进
去
寻
觅
一
下
源
码
和
j
a
r
包
都
有
。
由
于
没
有
找
到
漏
洞
版
本
3
.
1
的
a
p
i
说
明
,
我
们
可
以
参
考
3
.
2
.
2
的
a
p
i
文
档
N
o
.
4
N
o
.
4
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
P
O
C
-
>
利
用
链
利
用
链
我
们
将
通
过
调
试
P
O
C
得
到
漏
洞
利
用
链
的
调
用
栈
,
顺
便
介
绍
一
下
各
个
类
,
再
通
过
分
析
调
用
栈
的
函
数
,
反
推
出
P
O
C
来
探
究
其
中
的
利
用
原
理
。
我
们
先
看
一
下
网
上
的
P
O
C
代
码
,
如
下
:
好
好
看
代
码
的
同
学
肯
定
会
意
识
到
,
以
上
的
p
o
c
其
实
只
包
括
我
总
结
三
要
素
的
p
a
y
l
o
a
d
和
反
序
列
化
利
用
链
两
者
。
而
关
键
的
r
e
a
d
O
b
j
e
c
t
复
写
利
用
点
没
有
包
含
在
内
。
事
实
确
实
如
此
。
这
个
p
o
c
的
复
写
利
用
点
是
s
u
n
.
r
e
f
l
e
c
t
.
a
n
n
o
t
a
t
i
o
n
.
A
n
n
o
t
a
t
i
o
n
I
n
v
o
c
a
t
i
o
n
H
a
n
d
l
e
r
的
r
e
a
d
O
b
j
e
c
t
(
)
,
但
是
我
们
先
精
简
代
码
关
注
p
a
y
l
o
a
d
和
利
用
链
,
最
后
再
加
上
r
e
a
d
O
b
j
e
c
t
复
写
点
。
调
试
以
上
P
O
C
,
得
到
两
种
调
用
栈
:
漏
洞
链
漏
洞
链
M
a
p
.
E
n
t
r
y
其
实
就
是
键
值
对
的
数
据
格
式
,
其
s
e
t
V
a
l
u
e
函
数
如
下
A
b
s
t
r
a
c
I
n
p
u
t
C
h
e
c
k
e
d
M
a
p
D
e
c
o
r
a
t
o
r
.
c
l
a
s
s
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
*
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
f
u
n
c
t
o
r
s
.
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
;
i
m
p
o
r
t
o
r
g
.
a
p
a
c
h
e
.
c
o
m
m
o
n
s
.
c
o
l
l
e
c
t
i
o
n
s
.
m
a
p
.
T
r
a
n
s
f
o
r
m
e
d
M
a
p
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
H
a
s
h
M
a
p
;
i
m
p
o
r
t
j
a
v
a
.
u
t
i
l
.
M
a
p
;
p
u
b
l
i
c
c
l
a
s
s
c
o
m
m
o
n
s
_
c
o
l
l
e
c
t
i
o
n
s
_
3
_
1
{
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
/
/
此
处
构
建
了
一
个
t
r
a
n
s
f
o
r
m
e
r
s
的
数
组
,
在
其
中
构
建
了
任
意
函
数
执
行
的
核
心
代
码
T
r
a
n
s
f
o
r
m
e
r
[
]
t
r
a
n
s
f
o
r
m
e
r
s
=
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
R
u
n
t
i
m
e
.
c
l
a
s
s
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
g
e
t
M
e
t
h
o
d
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
,
C
l
a
s
s
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
g
e
t
R
u
n
t
i
m
e
"
,
n
e
w
C
l
a
s
s
[
0
]
}
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
i
n
v
o
k
e
"
,
n
e
w
C
l
a
s
s
[
]
{
O
b
j
e
c
t
.
c
l
a
s
s
,
O
b
j
e
c
t
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
n
u
l
l
,
n
e
w
O
b
j
e
c
t
[
0
]
}
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
}
;
/
/
将
t
r
a
n
s
f
o
r
m
e
r
s
数
组
存
入
C
h
a
n
i
e
d
T
r
a
n
s
f
o
r
m
e
r
这
个
继
承
类
T
r
a
n
s
f
o
r
m
e
r
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
=
n
e
w
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
t
r
a
n
s
f
o
r
m
e
r
s
)
;
/
/
创
建
M
a
p
并
绑
定
t
r
a
n
s
f
o
r
m
e
r
C
h
i
n
a
M
a
p
i
n
n
e
r
M
a
p
=
n
e
w
H
a
s
h
M
a
p
(
)
;
i
n
n
e
r
M
a
p
.
p
u
t
(
"
v
a
l
u
e
"
,
"
v
a
l
u
e
"
)
;
/
/
给
予
m
a
p
数
据
转
化
链
M
a
p
o
u
t
e
r
M
a
p
=
T
r
a
n
s
f
o
r
m
e
d
M
a
p
.
d
e
c
o
r
a
t
e
(
i
n
n
e
r
M
a
p
,
n
u
l
l
,
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
)
;
/
/
触
发
漏
洞
M
a
p
.
E
n
t
r
y
o
n
l
y
E
l
e
m
e
n
t
=
(
M
a
p
.
E
n
t
r
y
)
o
u
t
e
r
M
a
p
.
e
n
t
r
y
S
e
t
(
)
.
i
t
e
r
a
t
o
r
(
)
.
n
e
x
t
(
)
;
/
/
o
u
t
e
r
M
a
p
后
一
串
东
西
,
其
实
就
是
获
取
这
个
m
a
p
的
第
一
个
键
值
对
(
v
a
l
u
e
,
v
a
l
u
e
)
;
然
后
转
化
成
M
a
p
.
E
n
t
r
y
形
式
,
这
是
m
a
p
的
键
值
对
数
据
格
式
o
n
l
y
E
l
e
m
e
n
t
.
s
e
t
V
a
l
u
e
(
"
f
o
o
b
a
r
"
)
;
}
}
p
u
b
l
i
c
O
b
j
e
c
t
s
e
t
V
a
l
u
e
(
O
b
j
e
c
t
v
a
l
u
e
)
{
v
a
l
u
e
=
t
h
i
s
.
p
a
r
e
n
t
.
c
h
e
c
k
S
e
t
V
a
l
u
e
(
v
a
l
u
e
)
;
/
/
进
入
此
处
r
e
t
u
r
n
s
u
p
e
r
.
e
n
t
r
y
.
s
e
t
V
a
l
u
e
(
v
a
l
u
e
)
;
}
T
r
a
n
s
f
o
r
m
e
d
M
a
p
是
一
种
重
写
m
a
p
类
型
的
s
e
t
函
数
和
M
a
p
.
E
n
t
r
y
类
型
的
s
e
t
V
a
l
u
e
函
数
去
调
用
转
换
链
的
M
a
p
类
型
。
T
r
a
n
s
f
o
r
m
e
d
M
a
p
.
c
l
a
s
s
p
r
o
t
e
c
t
e
d
O
b
j
e
c
t
c
h
e
c
k
S
e
t
V
a
l
u
e
(
O
b
j
e
c
t
v
a
l
u
e
)
{
r
e
t
u
r
n
t
h
i
s
.
v
a
l
u
e
T
r
a
n
s
f
o
r
m
e
r
.
t
r
a
n
s
f
o
r
m
(
v
a
l
u
e
)
;
/
/
进
入
此
处
}
由
于
T
r
a
n
s
f
o
r
m
e
d
M
a
p
具
有
c
o
m
m
o
n
s
_
c
o
l
l
e
c
t
i
o
n
s
的
转
变
特
性
,
当
赋
值
一
个
键
值
对
的
时
候
会
自
动
对
输
入
值
进
行
预
设
的
T
r
a
n
s
f
o
r
m
e
r
的
调
用
。
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
.
c
l
a
s
s
:
这
里
有
一
个
p
u
b
l
i
c
O
b
j
e
c
t
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
o
b
j
e
c
t
)
{
f
o
r
(
i
n
t
i
=
0
;
i
<
t
h
i
s
.
i
T
r
a
n
s
f
o
r
m
e
r
s
.
l
e
n
g
t
h
;
+
+
i
)
{
/
/
循
环
进
入
此
处
,
先
进
入
1
次
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
.
c
l
a
s
s
,
再
3
次
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
.
c
l
a
s
s
o
b
j
e
c
t
=
t
h
i
s
.
i
T
r
a
n
s
f
o
r
m
e
r
s
[
i
]
.
t
r
a
n
s
f
o
r
m
(
o
b
j
e
c
t
)
;
/
/
另
外
需
要
注
意
在
数
组
的
循
环
中
,
前
一
次
t
r
a
n
s
f
o
r
m
函
数
的
返
回
值
,
会
作
为
下
一
次
t
r
a
n
s
f
o
r
m
函
数
的
o
b
j
e
c
t
参
数
输
入
。
}
r
e
t
u
r
n
o
b
j
e
c
t
;
}
t
r
a
n
s
f
o
r
m
(
)
函
数
是
一
个
接
口
函
数
,
在
上
面
的
循
环
中
进
入
了
不
同
的
函
数
。
先
是
1
次
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
.
c
l
a
s
s
p
u
b
l
i
c
O
b
j
e
c
t
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
i
n
p
u
t
)
{
r
e
t
u
r
n
t
h
i
s
.
i
C
o
n
s
t
a
n
t
;
}
再
是
进
入
了
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
.
c
l
a
s
s
,
看
到
这
个
就
会
发
现
有
点
东
西
了
。
p
u
b
l
i
c
O
b
j
e
c
t
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
i
n
p
u
t
)
{
i
f
(
i
n
p
u
t
=
=
n
u
l
l
)
{
r
e
t
u
r
n
n
u
l
l
;
}
e
l
s
e
{
t
r
y
{
/
/
获
取
i
n
p
u
t
对
象
的
c
l
a
s
s
C
l
a
s
s
c
l
s
=
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
;
/
/
根
据
i
M
e
t
h
o
d
N
a
m
e
、
i
P
a
r
a
m
T
y
p
e
s
选
择
c
l
s
中
的
一
个
方
法
M
e
t
h
o
d
m
e
t
h
o
d
=
c
l
s
.
g
e
t
M
e
t
h
o
d
(
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
,
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
)
;
/
/
根
据
i
A
r
g
s
参
数
调
用
这
个
方
法
r
e
t
u
r
n
m
e
t
h
o
d
.
i
n
v
o
k
e
(
i
n
p
u
t
,
t
h
i
s
.
i
A
r
g
s
)
;
}
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
v
a
r
5
)
{
t
h
r
o
w
n
e
w
F
u
n
c
t
o
r
E
x
c
e
p
t
i
o
n
(
"
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
:
T
h
e
m
e
t
h
o
d
'
"
+
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
+
"
'
o
n
'
"
+
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
+
"
'
d
o
e
s
n
o
t
e
x
i
s
t
"
)
;
}
c
a
t
c
h
(
I
l
l
e
g
a
l
A
c
c
e
s
s
E
x
c
e
p
t
i
o
n
v
a
r
6
)
{
t
h
r
o
w
n
e
w
F
u
n
c
t
o
r
E
x
c
e
p
t
i
o
n
(
"
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
:
T
h
e
m
e
t
h
o
d
'
"
+
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
+
"
'
o
n
'
"
+
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
+
"
'
c
a
n
n
o
t
b
e
a
c
c
e
s
s
e
d
"
)
;
}
c
a
t
c
h
(
I
n
v
o
c
a
t
i
o
n
T
a
r
g
e
t
E
x
c
e
p
t
i
o
n
v
a
r
7
)
{
t
h
r
o
w
n
e
w
F
u
n
c
t
o
r
E
x
c
e
p
t
i
o
n
(
"
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
:
T
h
e
m
e
t
h
o
d
'
"
+
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
+
"
'
o
n
'
"
+
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
+
"
'
t
h
r
e
w
a
n
e
x
c
e
p
t
i
o
n
"
,
v
a
r
7
)
;
}
}
}
}
明
显
的
反
射
机
制
,
可
见
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
就
是
我
们
的
触
发
任
意
代
码
执
行
处
,
我
们
看
看
源
码
中
的
文
件
描
述
:
先
看
看
我
们
需
要
关
注
的
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
的
描
述
(
在
j
a
r
包
中
是
找
不
到
描
述
信
息
的
,
可
以
通
过
下
载
官
方
源
码
得
到
)
:
/
*
*
*
T
r
a
n
s
f
o
r
m
e
r
i
m
p
l
e
m
e
n
t
a
t
i
o
n
t
h
a
t
c
r
e
a
t
e
s
a
n
e
w
o
b
j
e
c
t
i
n
s
t
a
n
c
e
b
y
r
e
f
l
e
c
t
i
o
n
.
*
通
过
反
射
机
制
创
建
一
个
新
的
对
象
实
例
的
转
换
器
实
现
我
们
可
以
这
里
有
经
典
的
反
射
机
制
调
用
,
在
细
节
分
析
前
我
们
先
整
理
一
下
调
用
栈
,
但
不
需
要
很
理
解
。
M
a
p
.
E
n
t
r
y
类
型
s
e
t
V
a
l
u
e
(
"
f
o
o
b
a
r
"
)
=
>
A
b
s
t
r
a
c
I
n
p
u
t
C
h
e
c
k
e
d
M
a
p
D
e
c
o
r
a
t
o
r
.
s
e
t
V
a
l
u
e
(
)
=
>
T
r
a
n
s
f
o
r
m
e
d
M
a
p
.
c
h
e
c
k
S
e
t
V
a
l
u
e
(
)
=
>
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
.
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
o
b
j
e
c
t
)
根
据
数
组
,
先
进
入
=
>
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
.
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
i
n
p
u
t
)
再
进
入
=
>
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
.
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
i
n
p
u
t
)
N
o
.
5
N
o
.
5
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
重
构
重
构
P
O
C
首
先
明
确
我
们
的
最
终
目
的
是
为
了
执
行
语
句
R
u
n
t
i
m
e
.
g
e
t
R
u
n
t
i
m
e
(
)
.
e
x
e
c
(
"
c
a
l
c
.
e
x
e
"
)
;
R
u
n
t
i
m
e
.
g
e
t
R
u
n
t
i
m
e
:
获
取
一
个
R
u
n
t
i
m
e
的
实
例
e
x
e
c
(
)
:
调
用
实
例
的
e
x
e
c
函
数
因
为
漏
洞
函
数
最
后
是
通
过
反
射
机
制
调
用
任
意
这
个
语
句
先
转
化
成
反
射
机
制
如
下
(
后
面
需
要
用
到
)
:
至
于
如
何
构
造
反
射
机
制
的
语
句
,
参
考
往
期
文
章
j
a
v
a
反
射
机
制
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
e
x
e
c
"
,
S
t
r
i
n
g
.
c
l
a
s
s
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
/
/
此
处
在
获
取
实
例
,
"
c
a
l
c
.
e
x
e
"
)
第
一
步
第
一
步
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
再
回
看
反
射
机
制
触
发
函
数
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
的
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
i
n
p
u
t
)
(
做
了
简
化
处
理
,
只
留
取
重
点
部
分
)
:
p
u
b
l
i
c
O
b
j
e
c
t
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
i
n
p
u
t
)
{
C
l
a
s
s
c
l
s
=
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
;
M
e
t
h
o
d
m
e
t
h
o
d
=
c
l
s
.
g
e
t
M
e
t
h
o
d
(
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
,
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
)
;
r
e
t
u
r
n
m
e
t
h
o
d
.
i
n
v
o
k
e
(
i
n
p
u
t
,
t
h
i
s
.
i
A
r
g
s
)
;
通
过
构
造
的
反
射
机
制
以
及
以
上
代
码
进
行
填
空
,
可
以
得
出
当
变
量
等
于
以
下
值
时
,
可
形
成
命
令
执
行
:
O
b
j
e
c
t
i
n
p
u
t
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
;
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
=
"
e
x
e
c
"
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
=
S
t
r
i
n
g
.
c
l
a
s
s
t
h
i
s
.
i
A
r
g
s
=
"
c
a
l
c
.
e
x
e
"
那
么
在
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
源
码
中
我
们
可
以
找
到
赋
值
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
,
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
,
t
h
i
s
.
i
A
r
g
s
的
构
造
函
数
:
p
u
b
l
i
c
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
S
t
r
i
n
g
m
e
t
h
o
d
N
a
m
e
,
C
l
a
s
s
[
]
p
a
r
a
m
T
y
p
e
s
,
O
b
j
e
c
t
[
]
a
r
g
s
)
{
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
=
m
e
t
h
o
d
N
a
m
e
;
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
=
p
a
r
a
m
T
y
p
e
s
;
t
h
i
s
.
i
A
r
g
s
=
a
r
g
s
;
}
我
们
就
可
以
构
建
以
下
测
试
代
码
直
接
调
用
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
通
过
反
射
执
行
任
意
命
令
:
下
面
开
始
试
一
下
:
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
/
/
通
过
构
造
函
数
,
输
入
对
应
格
式
的
参
数
,
对
i
M
e
t
h
o
d
N
a
m
e
、
i
P
a
r
a
m
T
y
p
e
s
、
i
A
r
g
s
进
行
赋
值
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
a
=
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
S
t
r
i
n
g
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
;
/
/
构
造
i
n
p
u
t
O
b
j
e
c
t
i
n
p
u
t
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
;
/
/
执
行
a
.
t
r
a
n
s
f
o
r
m
(
i
n
p
u
t
)
;
}
在
第
二
步
之
前
在
第
二
步
之
前
弹
出
了
计
算
器
!
好
像
很
厉
害
的
样
子
!
然
后
我
们
来
模
拟
一
下
利
用
场
景
:
为
了
方
便
,
攻
击
者
受
害
者
写
在
同
一
函
数
中
使
用
文
件
写
入
,
代
替
网
络
传
输
由
于
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
继
承
了
S
e
r
i
a
l
i
z
a
b
l
e
类
,
是
可
以
成
功
序
列
化
的
p
u
b
l
i
c
s
t
a
t
i
c
v
o
i
d
m
a
i
n
(
S
t
r
i
n
g
[
]
a
r
g
s
)
t
h
r
o
w
s
E
x
c
e
p
t
i
o
n
{
/
/
模
拟
攻
击
/
/
1
.
客
户
端
构
造
序
列
化
p
a
y
l
o
a
d
,
使
用
写
入
文
件
模
拟
发
包
攻
击
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
a
=
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
S
t
r
i
n
g
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
;
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
f
=
n
e
w
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
(
"
p
a
y
l
o
a
d
.
b
i
n
"
)
;
O
b
j
e
c
t
O
u
t
p
u
t
S
t
r
e
a
m
f
o
u
t
=
n
e
w
O
b
j
e
c
t
O
u
t
p
u
t
S
t
r
e
a
m
(
f
)
;
f
o
u
t
.
w
r
i
t
e
O
b
j
e
c
t
(
a
)
;
/
/
2
.
服
务
端
从
文
件
中
读
取
p
a
y
l
o
a
d
模
拟
接
受
包
,
然
后
触
发
漏
洞
/
/
服
务
端
反
序
列
化
p
a
y
l
o
a
d
读
取
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
f
i
=
n
e
w
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
(
"
p
a
y
l
o
a
d
.
b
i
n
"
)
;
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
f
i
n
=
n
e
w
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
(
f
i
)
;
/
/
神
奇
第
一
处
:
服
务
端
需
要
自
主
构
造
恶
意
i
n
p
u
t
O
b
j
e
c
t
i
n
p
u
t
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
;
/
/
神
奇
第
二
处
:
服
务
端
需
要
将
客
户
端
输
入
反
序
列
化
成
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
格
式
,
并
在
服
务
端
自
主
传
入
恶
意
参
数
i
n
p
u
t
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
a
_
i
n
=
(
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
)
f
i
n
.
r
e
a
d
O
b
j
e
c
t
(
)
;
a
_
i
n
.
t
r
a
n
s
f
o
r
m
(
i
n
p
u
t
)
;
}
我
们
会
发
现
如
果
我
们
要
直
接
利
用
这
个
反
射
机
制
作
为
漏
洞
的
话
,
需
要
服
务
端
的
开
发
人
员
:
1
.
帮
我
们
写
一
个
p
a
y
l
o
a
d
作
为
i
n
p
u
t
;
2
.
接
受
客
户
端
输
入
参
数
,
反
序
列
化
成
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
3
.
再
刻
意
调
用
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
的
t
r
a
n
s
f
o
r
m
函
数
实
际
上
…
.
.
只
有
开
发
人
员
是
自
己
人
的
情
况
下
才
满
足
条
件
吧
…
…
所
以
我
们
面
临
一
些
问
题
:
1
.
p
a
y
l
o
a
d
肯
定
需
要
在
客
户
端
可
以
自
定
义
构
造
,
再
传
输
进
入
服
务
端
2
.
服
务
端
需
要
把
我
们
的
输
入
e
x
p
反
序
列
化
成
一
个
在
代
码
中
可
能
使
用
到
的
类
3
.
并
且
在
代
码
正
常
操
作
中
会
调
用
这
个
类
中
的
一
个
可
触
发
漏
洞
地
函
数
(
当
然
这
个
函
数
最
后
会
进
入
我
们
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
的
t
r
a
n
s
f
o
r
m
函
数
,
从
而
形
成
命
令
执
行
)
4
.
如
果
这
个
反
序
列
化
的
类
和
这
个
类
触
发
命
令
执
行
的
方
法
可
以
在
一
个
r
e
a
d
O
b
j
e
c
t
复
写
函
数
中
恰
好
触
发
,
就
对
于
服
务
端
上
下
文
语
句
没
有
要
求
了
!
这
边
假
如
像
预
期
这
样
,
是
对
服
务
端
上
下
文
没
有
要
求
,
因
为
只
要
执
行
r
e
a
d
O
b
j
e
c
t
就
肯
定
会
命
令
执
行
,
不
需
要
其
他
上
下
文
条
件
。
但
是
对
于
服
务
端
版
本
环
境
是
有
要
求
的
,
之
后
会
说
到
那
么
我
们
一
个
个
来
解
决
问
题
:
首
先
使
客
户
端
自
定
义
p
a
y
l
a
o
d
!
第
二
步
第
二
步
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
下
面
我
们
需
要
关
注
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
这
个
类
,
首
先
看
一
下
这
个
类
的
描
述
:
/
*
*
*
T
r
a
n
s
f
o
r
m
e
r
i
m
p
l
e
m
e
n
t
a
t
i
o
n
t
h
a
t
c
h
a
i
n
s
t
h
e
s
p
e
c
i
f
i
e
d
t
r
a
n
s
f
o
r
m
e
r
s
t
o
g
e
t
h
e
r
.
*
<
p
>
*
T
h
e
i
n
p
u
t
o
b
j
e
c
t
i
s
p
a
s
s
e
d
t
o
t
h
e
f
i
r
s
t
t
r
a
n
s
f
o
r
m
e
r
.
T
h
e
t
r
a
n
s
f
o
r
m
e
d
r
e
s
u
l
t
*
i
s
p
a
s
s
e
d
t
o
t
h
e
s
e
c
o
n
d
t
r
a
n
s
f
o
r
m
e
r
a
n
d
s
o
o
n
.
*
将
指
定
的
转
换
器
连
接
在
一
起
的
转
化
器
实
现
。
输
入
的
对
象
将
被
传
递
到
第
一
个
转
化
器
,
转
换
结
果
将
会
输
入
到
第
二
个
转
化
器
,
并
以
此
类
推
可
以
知
道
他
会
把
我
们
的
T
r
a
n
s
f
o
r
m
e
r
变
成
一
个
串
,
再
逐
一
执
行
,
其
中
这
个
操
作
对
应
的
就
是
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
类
的
t
r
a
n
s
f
o
r
m
函
数
/
*
*
*
T
r
a
n
s
f
o
r
m
s
t
h
e
i
n
p
u
t
t
o
r
e
s
u
l
t
v
i
a
e
a
c
h
d
e
c
o
r
a
t
e
d
t
r
a
n
s
f
o
r
m
e
r
*
*
@
p
a
r
a
m
o
b
j
e
c
t
t
h
e
i
n
p
u
t
o
b
j
e
c
t
p
a
s
s
e
d
t
o
t
h
e
f
i
r
s
t
t
r
a
n
s
f
o
r
m
e
r
*
@
r
e
t
u
r
n
t
h
e
t
r
a
n
s
f
o
r
m
e
d
r
e
s
u
l
t
*
/
p
u
b
l
i
c
O
b
j
e
c
t
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
o
b
j
e
c
t
)
{
f
o
r
(
i
n
t
i
=
0
;
i
<
i
T
r
a
n
s
f
o
r
m
e
r
s
.
l
e
n
g
t
h
;
i
+
+
)
{
o
b
j
e
c
t
=
i
T
r
a
n
s
f
o
r
m
e
r
s
[
i
]
.
t
r
a
n
s
f
o
r
m
(
o
b
j
e
c
t
)
;
}
r
e
t
u
r
n
o
b
j
e
c
t
;
}
这
里
会
遍
历
i
T
r
a
n
s
f
o
r
m
e
r
s
数
组
,
依
次
调
用
这
个
数
组
中
每
一
个
T
r
a
n
s
f
o
r
m
e
r
的
t
r
a
n
s
f
o
r
m
,
并
串
行
传
递
执
行
结
果
。
首
先
确
定
i
T
r
a
n
s
f
o
r
m
e
r
s
可
控
,
i
T
r
a
n
s
f
o
r
m
e
r
s
数
组
是
通
过
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
类
的
构
造
函
数
赋
值
的
:
/
*
*
*
C
o
n
s
t
r
u
c
t
o
r
t
h
a
t
p
e
r
f
o
r
m
s
n
o
v
a
l
i
d
a
t
i
o
n
.
*
U
s
e
<
c
o
d
e
>
g
e
t
I
n
s
t
a
n
c
e
<
/
c
o
d
e
>
i
f
y
o
u
w
a
n
t
t
h
a
t
.
*
*
@
p
a
r
a
m
t
r
a
n
s
f
o
r
m
e
r
s
t
h
e
t
r
a
n
s
f
o
r
m
e
r
s
t
o
c
h
a
i
n
,
n
o
t
c
o
p
i
e
d
,
n
o
n
u
l
l
s
*
/
p
u
b
l
i
c
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
T
r
a
n
s
f
o
r
m
e
r
[
]
t
r
a
n
s
f
o
r
m
e
r
s
)
{
s
u
p
e
r
(
)
;
/
/
这
个
s
u
p
e
r
不
清
楚
做
了
啥
,
i
T
r
a
n
s
f
o
r
m
e
r
s
=
t
r
a
n
s
f
o
r
m
e
r
s
;
}
那
么
我
们
知
道
可
以
自
定
义
i
T
r
a
n
s
f
o
r
m
e
r
s
的
内
容
,
我
们
已
有
条
件
如
下
:
/
/
最
终
执
行
目
标
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
e
x
e
c
"
,
S
t
r
i
n
g
.
c
l
a
s
s
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
/
/
此
处
在
获
取
实
例
,
"
c
a
l
c
.
e
x
e
"
)
/
/
I
n
v
o
k
e
T
r
a
n
s
f
o
r
m
e
r
关
键
语
句
:
p
u
b
l
i
c
O
b
j
e
c
t
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
i
n
p
u
t
)
{
C
l
a
s
s
c
l
s
=
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
;
M
e
t
h
o
d
m
e
t
h
o
d
=
c
l
s
.
g
e
t
M
e
t
h
o
d
(
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
,
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
)
;
r
e
t
u
r
n
m
e
t
h
o
d
.
i
n
v
o
k
e
(
i
n
p
u
t
,
t
h
i
s
.
i
A
r
g
s
)
;
}
再
看
到
I
n
v
o
k
e
T
r
a
n
s
f
o
r
m
e
r
代
码
我
们
需
要
引
出
一
个
注
意
点
:
这
里
我
们
需
要
注
意
到
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
这
个
方
法
使
用
上
的
一
些
区
别
:
当
i
n
p
u
t
是
一
个
类
的
实
例
对
象
时
,
获
取
到
的
是
这
个
类
当
i
n
p
u
t
是
一
个
类
时
,
获
取
到
的
是
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
可
以
使
用
如
下
代
码
验
证
,
这
里
不
再
赘
述
O
b
j
e
c
t
a
=
R
u
n
t
i
m
e
.
g
e
t
R
u
n
t
i
m
e
(
)
;
C
l
a
s
s
b
=
R
u
n
t
i
m
e
.
c
l
a
s
s
;
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
a
.
g
e
t
C
l
a
s
s
(
)
)
;
S
y
s
t
e
m
.
o
u
t
.
p
r
i
n
t
l
n
(
b
.
g
e
t
C
l
a
s
s
(
)
)
;
/
/
结
果
/
/
c
l
a
s
s
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
/
/
c
l
a
s
s
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
基
于
之
前
写
的
代
码
:
/
/
只
调
用
I
n
v
o
k
e
T
r
a
n
s
f
o
r
m
e
r
的
情
况
如
下
:
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
a
=
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
S
t
r
i
n
g
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
;
O
b
j
e
c
t
i
n
p
u
t
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
;
我
们
也
可
以
知
道
i
n
p
u
t
的
为
R
u
n
t
i
m
e
类
的
对
象
,
所
以
c
l
s
就
是
R
u
n
t
i
m
e
类
,
所
以
c
l
s
.
g
e
t
M
e
t
h
o
d
可
以
找
到
e
x
e
c
方
法
,
直
接
进
行
调
用
。
先
把
a
封
装
成
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
格
式
,
但
是
p
a
y
l
o
a
d
还
是
在
外
面
/
/
客
户
端
构
造
p
a
y
l
o
a
d
T
r
a
n
s
f
o
r
m
e
r
[
]
t
r
a
n
s
f
o
r
m
e
r
s
=
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
S
t
r
i
n
g
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
;
}
T
r
a
n
s
f
o
r
m
e
r
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
=
n
e
w
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
t
r
a
n
s
f
o
r
m
e
r
s
)
;
/
/
服
务
端
触
发
所
需
内
容
O
b
j
e
c
t
i
n
p
u
t
=
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
;
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
.
t
r
a
n
s
f
o
r
m
(
i
n
p
u
t
)
;
/
/
此
处
必
须
为
i
n
p
u
t
,
作
为
第
一
个
输
入
把
p
a
y
l
o
a
d
放
入
T
r
a
n
s
f
o
r
m
e
r
数
组
中
,
需
要
转
化
成
特
定
的
T
r
a
n
s
f
o
r
m
e
r
格
式
才
行
。
第
二
点
五
步
第
二
点
五
步
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
-
>
R
u
n
t
i
m
e
实
例
序
列
化
实
例
序
列
化
我
们
找
到
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
类
跟
I
n
v
o
k
k
e
r
T
r
a
n
s
f
o
r
m
e
r
一
样
继
承
T
r
a
n
s
f
o
r
m
e
父
类
,
可
以
进
入
数
组
顾
名
思
义
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
类
其
实
就
只
会
存
放
一
个
常
量
;
它
的
构
造
函
数
会
写
入
这
个
变
量
,
他
的
t
r
a
n
s
f
o
r
m
函
数
会
返
回
这
个
变
量
。
把
R
u
n
t
i
m
e
实
例
写
入
这
个
变
量
:
T
r
a
n
s
f
o
r
m
e
r
[
]
t
r
a
n
s
f
o
r
m
e
r
s
=
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
/
/
以
下
两
个
语
句
等
同
,
一
个
是
通
过
反
射
机
制
得
到
,
一
个
是
直
接
调
用
得
到
R
u
n
t
i
m
e
实
例
/
/
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
)
,
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
R
u
n
t
i
m
e
.
g
e
t
R
u
n
t
i
m
e
(
)
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
}
;
T
r
a
n
s
f
o
r
m
e
r
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
=
n
e
w
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
t
r
a
n
s
f
o
r
m
e
r
s
)
;
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
.
t
r
a
n
s
f
o
r
m
(
n
u
l
l
)
;
/
/
此
处
输
入
可
以
为
任
意
值
,
因
为
不
会
被
使
用
到
,
相
当
于
初
始
第
一
个
输
入
为
我
们
设
置
的
常
量
以
上
代
码
可
以
成
功
弹
框
执
行
!
那
么
我
们
模
拟
一
下
序
列
化
与
反
序
列
化
过
程
!
/
/
客
户
端
构
造
p
a
y
l
o
a
d
T
r
a
n
s
f
o
r
m
e
r
[
]
t
r
a
n
s
f
o
r
m
e
r
s
=
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
)
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
}
;
T
r
a
n
s
f
o
r
m
e
r
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
=
n
e
w
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
t
r
a
n
s
f
o
r
m
e
r
s
)
;
/
/
p
a
y
l
o
a
d
序
列
化
写
入
文
件
,
模
拟
网
络
传
输
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
f
=
n
e
w
F
i
l
e
O
u
t
p
u
t
S
t
r
e
a
m
(
"
p
a
y
l
o
a
d
.
b
i
n
"
)
;
O
b
j
e
c
t
O
u
t
p
u
t
S
t
r
e
a
m
f
o
u
t
=
n
e
w
O
b
j
e
c
t
O
u
t
p
u
t
S
t
r
e
a
m
(
f
)
;
f
o
u
t
.
w
r
i
t
e
O
b
j
e
c
t
(
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
)
;
/
/
服
务
端
反
序
列
化
p
a
y
l
o
a
d
读
取
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
f
i
=
n
e
w
F
i
l
e
I
n
p
u
t
S
t
r
e
a
m
(
"
p
a
y
l
o
a
d
.
b
i
n
"
)
;
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
f
i
n
=
n
e
w
O
b
j
e
c
t
I
n
p
u
t
S
t
r
e
a
m
(
f
i
)
;
/
/
服
务
端
反
序
列
化
成
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
格
式
,
并
在
服
务
端
自
主
传
入
恶
意
参
数
i
n
p
u
t
T
r
a
n
s
f
o
r
m
e
r
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
_
n
o
w
=
(
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
)
f
i
n
.
r
e
a
d
O
b
j
e
c
t
(
)
;
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
_
n
o
w
.
t
r
a
n
s
f
o
r
m
(
n
u
l
l
)
;
但
是
很
遗
憾
的
告
诉
以
为
快
要
成
功
的
你
,
成
功
的
本
地
测
试
加
上
序
列
化
、
反
序
列
化
过
程
之
后
就
会
失
败
。
因
为
R
u
n
t
i
m
e
类
的
定
义
没
有
继
承
S
e
r
i
a
l
i
z
a
b
l
e
类
,
所
以
是
不
支
持
反
序
列
化
的
。
那
么
我
们
在
p
a
y
l
o
a
d
写
入
R
u
n
t
i
m
e
实
例
的
计
划
就
泡
汤
了
。
第
二
点
八
步
第
二
点
八
步
在
服
务
端
生
成
在
服
务
端
生
成
R
u
n
t
i
m
e
实
例
实
例
既
然
我
们
没
法
在
客
户
端
序
列
化
写
入
R
u
n
t
i
m
e
的
实
例
,
那
就
让
服
务
端
执
行
我
们
的
命
令
生
成
一
个
R
u
n
t
i
m
e
实
例
呗
?
我
们
知
道
R
u
n
t
i
m
e
的
实
例
是
通
过
R
u
n
t
i
m
e
.
g
e
t
R
u
n
t
i
m
e
(
)
来
获
取
的
,
而
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
里
面
的
反
射
机
制
可
以
执
行
任
意
函
数
。
同
时
,
我
们
已
经
成
功
执
行
过
R
u
n
t
i
m
e
类
里
面
的
e
x
e
c
函
数
。
讲
道
理
肯
定
是
没
问
题
的
.
我
们
先
看
g
e
t
R
u
n
t
i
i
m
e
方
法
的
参
数
p
u
b
l
i
c
s
t
a
t
i
c
R
u
n
t
i
m
e
g
e
t
R
u
n
t
i
m
e
(
)
{
r
e
t
u
r
n
c
u
r
r
e
n
t
R
u
n
t
i
m
e
;
}
没
有
参
数
,
那
就
非
常
简
单
了
T
r
a
n
s
f
o
r
m
e
r
[
]
t
r
a
n
s
f
o
r
m
e
r
s
=
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
R
u
n
t
i
m
e
.
c
l
a
s
s
)
,
/
/
得
到
R
u
n
t
i
m
e
c
l
a
s
s
/
/
由
于
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
的
构
造
函
数
要
求
传
入
C
l
a
s
s
类
型
的
参
数
类
型
,
和
O
b
j
e
c
t
类
型
的
参
数
数
值
,
所
以
封
装
一
下
,
下
面
也
一
样
/
/
上
面
传
入
R
u
n
t
i
m
e
.
c
l
a
s
s
,
调
用
R
u
n
t
i
m
e
c
l
a
s
s
的
g
e
t
R
u
n
t
i
m
e
方
法
(
由
于
是
一
个
静
态
方
法
,
i
n
v
o
k
e
调
用
静
态
方
法
,
传
入
类
即
可
)
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
g
e
t
R
u
n
t
i
m
e
"
,
n
e
w
C
l
a
s
s
[
]
{
}
,
n
e
w
O
b
j
e
c
t
[
]
{
}
)
,
/
/
上
面
R
u
n
t
i
m
e
.
g
e
t
R
u
n
t
i
m
e
(
)
得
到
了
实
例
,
作
为
这
边
的
输
入
(
i
n
v
o
k
e
调
用
普
通
方
法
,
需
要
传
入
类
的
实
例
)
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
}
;
T
r
a
n
s
f
o
r
m
e
r
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
=
n
e
w
C
h
a
i
n
e
d
T
r
a
n
s
f
o
r
m
e
r
(
t
r
a
n
s
f
o
r
m
e
r
s
)
;
t
r
a
n
s
f
o
r
m
e
r
C
h
a
i
n
.
t
r
a
n
s
f
o
r
m
(
n
u
l
l
)
;
在
这
里
,
之
前
自
己
陷
入
了
一
个
很
傻
逼
的
问
题
,
即
:
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
t
r
a
n
s
f
o
r
m
方
法
中
r
e
t
u
r
n
m
e
t
h
o
d
.
i
n
v
o
k
e
(
)
这
个
语
句
i
n
v
o
k
e
(
)
调
用
到
底
r
e
t
u
r
n
了
啥
?
因
为
在
这
里
形
成
了
一
个
调
用
r
e
t
u
r
n
的
结
果
,
再
调
用
的
链
。
为
什
么
就
可
以
上
一
个
输
出
作
为
下
一
个
输
入
时
,
可
以
成
功
调
用
了
呢
?
一
开
始
以
为
i
n
v
o
k
e
会
统
一
返
回
一
个
对
象
作
为
下
一
个
输
入
什
么
的
,
并
且
在
调
试
的
时
候
每
次
i
n
v
o
k
e
的
结
果
都
不
一
样
,
源
码
看
的
头
晕
。
实
际
上
是
钻
了
死
胡
同
:
i
n
v
o
k
e
的
r
e
t
u
r
n
是
根
据
被
调
用
的
函
数
r
e
t
u
r
n
啥
,
i
n
v
o
k
e
就
r
e
t
u
r
n
啥
。
就
好
比
我
i
n
v
o
k
e
一
个
我
自
定
义
的
方
法
a
,
在
a
中
,
我
r
e
t
u
r
n
了
字
符
串
"
1
"
。
那
么
就
是
i
n
v
o
k
e
的
结
果
就
是
字
符
串
"
1
"
。
看
以
上
的
过
程
就
是
第
一
次
R
u
n
t
i
m
e
.
g
e
t
R
u
n
t
i
m
e
(
)
的
结
果
输
入
了
下
一
个
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
以
上
感
觉
是
万
事
大
吉
了
!
但
是
实
际
上
并
不
是
…
回
想
之
前
对
于
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
中
C
l
a
s
s
c
l
s
=
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
;
的
解
释
这
里
我
们
需
要
注
意
到
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
这
个
方
法
使
用
上
的
一
些
区
别
:
当
i
n
p
u
t
是
一
个
类
的
实
例
对
象
时
,
获
取
到
的
是
这
个
类
当
i
n
p
u
t
是
一
个
类
时
,
获
取
到
的
是
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
我
们
来
推
演
第
一
次
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
的
反
射
调
用
,
即
得
到
R
u
n
t
i
m
e
类
对
象
的
g
e
t
R
u
n
t
i
m
e
方
法
调
用
:
/
/
I
n
v
o
k
e
T
r
a
n
s
f
o
r
m
e
r
关
键
语
句
:
p
u
b
l
i
c
O
b
j
e
c
t
t
r
a
n
s
f
o
r
m
(
O
b
j
e
c
t
i
n
p
u
t
)
{
/
/
i
n
p
u
t
为
我
们
设
置
的
常
量
R
u
n
t
i
m
e
.
c
l
a
s
s
C
l
a
s
s
c
l
s
=
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
;
/
/
!
!
!
这
里
由
于
i
n
p
u
t
是
一
个
类
,
会
得
到
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
/
/
在
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
类
中
去
寻
找
g
e
t
R
u
n
t
i
m
e
方
法
企
图
得
到
R
u
n
t
i
m
e
类
对
象
,
此
处
报
错
!
!
M
e
t
h
o
d
m
e
t
h
o
d
=
c
l
s
.
g
e
t
M
e
t
h
o
d
(
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
,
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
)
;
r
e
t
u
r
n
m
e
t
h
o
d
.
i
n
v
o
k
e
(
i
n
p
u
t
,
t
h
i
s
.
i
A
r
g
s
)
;
}
那
么
我
们
好
像
陷
入
了
一
个
死
胡
同
:
得
到
R
u
n
t
i
m
e
类
实
例
才
能
调
用
e
x
e
c
方
法
。
而
得
到
R
u
n
t
i
m
e
类
实
例
作
为
i
n
p
u
t
,
才
能
得
到
R
u
n
t
i
m
e
c
l
a
s
s
,
才
能
找
到
g
e
t
R
u
n
t
i
m
e
方
法
,
得
到
R
u
n
t
i
m
e
类
实
例
…
…
…
…
…
…
…
…
…
…
非
常
的
尴
尬
…
…
…
…
…
…
…
.
.
第
二
点
九
步
第
二
点
九
步
还
是
反
射
机
制
还
是
反
射
机
制
那
么
我
们
通
过
直
接
调
用
R
u
n
t
i
m
e
.
g
e
t
R
u
n
t
i
m
e
方
法
好
像
是
行
不
通
了
,
有
没
有
其
他
方
法
呢
?
还
是
反
射
机
制
还
是
反
射
机
制
已
知
:
1
.
我
们
开
头
不
能
获
得
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
,
只
能
得
到
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
"
)
2
.
我
们
可
以
有
任
意
的
反
射
机
制
求
:
3
.
我
们
要
获
取
到
R
u
n
t
i
m
e
.
g
e
t
R
u
n
i
m
e
函
数
,
并
执
行
它
。
解
:
4
.
通
过
反
射
机
制
获
取
反
射
机
制
中
的
g
e
t
M
e
t
h
o
d
类
,
由
于
g
e
t
M
e
t
h
o
d
类
是
存
在
C
l
a
s
s
类
中
,
就
符
合
开
头
C
l
a
s
s
类
的
限
制
5
.
通
过
g
e
t
M
e
t
h
o
d
函
数
获
取
R
u
n
t
i
m
e
类
中
的
g
e
t
R
u
n
t
i
m
e
函
数
在
哪
个
类
中
调
用
g
e
t
M
e
t
h
o
d
去
获
取
方
法
,
实
际
上
是
由
i
n
v
o
k
e
函
数
里
面
的
的
第
一
个
参
数
o
b
j
决
定
的
6
.
再
通
过
反
射
机
制
获
取
反
射
机
制
中
的
i
n
v
o
k
e
类
,
执
行
上
面
获
取
的
g
e
t
R
u
n
t
i
m
e
函
数
7
.
i
n
v
o
k
e
调
用
g
e
t
R
u
n
t
i
m
e
函
数
,
获
取
R
u
n
t
i
m
e
类
的
实
例
这
里
在
使
用
反
射
机
制
调
用
g
e
t
R
u
n
t
i
m
e
静
态
类
时
,
i
n
v
o
k
e
里
面
第
一
个
参
数
o
b
j
其
实
可
以
任
意
改
为
n
u
l
l
,
或
者
其
他
类
,
而
不
一
定
要
是
R
u
n
t
i
m
e
类
具
体
变
化
细
节
,
我
选
择
把
它
放
在
反
射
机
制
一
文
中
说
明
,
这
边
给
出
结
果
。
我
们
的
最
终
目
的
是
执
行
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
先
来
获
取
g
e
t
R
u
n
t
i
m
e
类
/
/
目
标
语
句
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
R
u
n
t
i
m
e
"
)
/
/
使
用
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
开
头
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
"
)
.
g
e
t
M
e
t
h
o
d
(
"
g
e
t
M
e
t
h
o
d
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
,
C
l
a
s
s
[
]
.
c
l
a
s
s
}
)
.
i
n
v
o
k
e
(
C
l
a
s
s
.
f
o
r
N
a
m
e
(
"
j
a
v
a
.
l
a
n
g
.
R
u
n
t
i
m
e
"
)
,
"
g
e
t
R
u
n
t
i
m
e
"
,
n
e
w
C
l
a
s
s
[
0
]
)
;
/
/
i
n
v
o
k
e
函
数
的
第
一
个
参
数
是
R
u
n
t
i
m
e
类
,
我
们
需
要
在
R
u
n
t
i
m
e
类
中
去
执
行
g
e
t
M
e
t
h
o
d
,
获
取
g
e
t
R
u
n
t
i
m
e
参
数
对
照
着
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
转
变
为
t
r
a
n
s
f
o
r
m
e
r
s
格
式
C
l
a
s
s
c
l
s
=
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
;
/
/
c
l
s
=
j
a
v
a
.
l
a
n
g
.
C
l
a
s
s
M
e
t
h
o
d
m
e
t
h
o
d
=
c
l
s
.
g
e
t
M
e
t
h
o
d
(
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
,
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
)
;
/
/
g
e
t
M
e
t
h
o
d
方
法
r
e
t
u
r
n
m
e
t
h
o
d
.
i
n
v
o
k
e
(
i
n
p
u
t
,
t
h
i
s
.
i
A
r
g
s
)
;
/
/
在
R
u
n
t
i
m
e
中
找
g
e
t
R
u
n
t
i
m
e
方
法
,
并
返
回
这
个
方
法
T
r
a
n
s
f
o
r
m
e
r
[
]
t
r
a
n
s
f
o
r
m
e
r
s
=
n
e
w
T
r
a
n
s
f
o
r
m
e
r
[
]
{
n
e
w
C
o
n
s
t
a
n
t
T
r
a
n
s
f
o
r
m
e
r
(
R
u
n
t
i
m
e
.
c
l
a
s
s
)
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
g
e
t
M
e
t
h
o
d
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
,
C
l
a
s
s
[
]
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
g
e
t
R
u
n
t
i
m
e
"
,
n
e
w
C
l
a
s
s
[
0
]
}
)
,
/
/
还
需
要
填
充
调
用
g
e
t
R
u
n
t
i
m
e
得
到
R
u
n
t
i
m
e
实
例
,
n
e
w
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
(
"
e
x
e
c
"
,
n
e
w
C
l
a
s
s
[
]
{
S
t
r
i
n
g
.
c
l
a
s
s
}
,
n
e
w
O
b
j
e
c
t
[
]
{
"
c
a
l
c
.
e
x
e
"
}
)
}
;
还
差
执
行
获
取
到
的
g
e
t
R
u
n
t
i
m
e
,
下
一
个
i
n
p
u
t
是
上
一
个
执
行
接
口
,
继
续
对
照
/
/
i
n
p
u
t
=
g
e
t
R
u
n
t
i
m
e
这
个
方
法
C
l
a
s
s
c
l
s
=
i
n
p
u
t
.
g
e
t
C
l
a
s
s
(
)
;
/
/
c
l
s
=
j
a
v
a
.
l
a
n
g
.
M
e
t
h
o
d
(
g
e
t
R
u
n
t
i
m
e
方
法
是
m
e
t
h
o
d
类
)
M
e
t
h
o
d
m
e
t
h
o
d
=
c
l
s
.
g
e
t
M
e
t
h
o
d
(
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
,
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
)
;
/
/
在
m
e
t
h
o
d
类
中
找
到
i
n
v
o
k
e
方
法
,
m
e
t
h
o
d
=
i
n
v
o
k
e
方
法
r
e
t
u
r
n
m
e
t
h
o
d
.
i
n
v
o
k
e
(
i
n
p
u
t
,
t
h
i
s
.
i
A
r
g
s
)
;
/
/
调
用
i
n
v
o
k
e
方
法
,
i
n
p
u
t
=
g
e
t
R
u
n
t
i
m
e
这
个
方
法
,
传
入
自
定
义
的
参
数
以
上
最
后
一
步
有
点
复
杂
,
m
e
t
h
o
d
就
是
i
n
v
o
k
e
方
法
,
相
当
于
使
用
i
n
v
o
k
e
调
用
了
i
n
v
o
k
e
函
数
。
首
先
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
,
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
是
根
据
i
n
v
o
k
e
接
口
而
定
的
:
p
u
b
l
i
c
O
b
j
e
c
t
i
n
v
o
k
e
(
O
b
j
e
c
t
o
b
j
,
O
b
j
e
c
t
.
.
.
a
r
g
s
)
/
/
t
h
i
s
.
i
M
e
t
h
o
d
N
a
m
e
=
"
i
n
v
o
k
e
"
/
/
t
h
i
s
.
i
P
a
r
a
m
T
y
p
e
s
=
n
e
w
C
l
a
s
s
[
]
{
O
b
j
e
c
t
.
c
l
a
s
s
,
O
b
j
e
c
t
[
]
.
c
l
a
s
s
}
/
/
外
面
c
l
a
s
s
、
O
b
j
e
c
t
封
装
是
I
n
v
o
k
e
r
T
r
a
n
s
f
o
r
m
e
r
类
的
构
造
函
数
要
求
按
照
i
n
v
o
k
e
中
的
i
n
p
u
t
才
是
它
要
调
用
的
环
境
的
准
则
。
i
n
v
o
k
e
方
法
.
i
n
v
o
k
e
(
i
n
p
u
t
,
t
h
i
s
.
i
A
r
g
s
)
实
际
上
等
于
i
n
p
u
t
.
i
n
v
o
k
e
(
t
h
i
s
.
i
A
r
g
s
)
,
而
i
n
p
u
t
=
g
e
t
R
u
n
t
i
m
e
方
法
,
那
么
只
要
填
入
t
h
i
s
.
i
A
r
g
s
就
好
了
又
由
于
g
e
t
R
u
n
t
i
m
e
是
个
静
态
函
数
,
不
用
太
纠
结
输
入
o
b
j
,
写
作
n
u
l
l
。
g
e
t
R
u
n
t
i
m
e
方
法
不
需
要
参
数
。
t
h
i
s
.
i
A
r
g
s
=
n
u
l
l
,
n
e
w
O
b
j
e
c
t
[
0
]
那
么
整
合
就
如
下
:
回复
举报
上一个主题
下一个主题
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
!disable!!post_parseurl!
使用Markdown编辑器编辑
使用富文本编辑器编辑
回帖后跳转到最后一页