Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
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
link33
plugin
Commits
ce15f935
Commit
ce15f935
authored
Jan 28, 2021
by
madengji
Committed by
vipwzw
Sep 18, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add role
parent
6e5bf601
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
277 additions
and
235 deletions
+277
-235
authorize.go
plugin/dapp/mix/executor/authorize.go
+1
-1
committree.go
plugin/dapp/mix/executor/committree.go
+15
-15
config.go
plugin/dapp/mix/executor/config.go
+4
-4
query.go
plugin/dapp/mix/executor/query.go
+4
-4
mix.proto
plugin/dapp/mix/proto/mix.proto
+16
-10
mix.pb.go
plugin/dapp/mix/types/mix.pb.go
+220
-188
mixbizdb.go
plugin/dapp/mix/wallet/mixbizdb.go
+7
-3
proof.go
plugin/dapp/mix/wallet/proof.go
+10
-10
No files found.
plugin/dapp/mix/executor/authorize.go
View file @
ce15f935
...
...
@@ -38,7 +38,7 @@ func (a *action) authParamCheck(input *mixTy.AuthorizePublicInput) error {
//authorize pubkey hash should be configured already
var
found
bool
for
_
,
k
:=
range
authPubKeys
.
Data
{
for
_
,
k
:=
range
authPubKeys
.
Pks
{
if
input
.
AuthorizePubKey
==
k
{
found
=
true
break
...
...
plugin/dapp/mix/executor/committree.go
View file @
ce15f935
...
...
@@ -87,7 +87,7 @@ func getNewTree() *merkletree.Tree {
func
calcTreeRoot
(
leaves
*
mixTy
.
CommitTreeLeaves
)
[]
byte
{
tree
:=
getNewTree
()
for
_
,
leaf
:=
range
leaves
.
Data
{
for
_
,
leaf
:=
range
leaves
.
Leaves
{
tree
.
Push
(
leaf
)
}
return
tree
.
Root
()
...
...
@@ -100,8 +100,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
//第一个叶子节点都是固定的"00"字节
leaf
:=
[]
byte
(
"00"
)
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
)
roots
.
Data
=
append
(
roots
.
Data
,
calcTreeRoot
(
leaves
))
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
)
roots
.
Roots
=
append
(
roots
.
Roots
,
calcTreeRoot
(
leaves
))
return
leaves
,
roots
}
...
...
@@ -109,8 +109,8 @@ func getNewCommitLeaves() (*mixTy.CommitTreeLeaves, *mixTy.CommitTreeRoots) {
func
initNewLeaves
(
leaf
[][]
byte
)
*
types
.
Receipt
{
leaves
,
roots
:=
getNewCommitLeaves
()
if
len
(
leaf
)
>
0
{
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
...
)
roots
.
Data
=
append
(
roots
.
Data
,
calcTreeRoot
(
leaves
))
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
...
)
roots
.
Roots
=
append
(
roots
.
Roots
,
calcTreeRoot
(
leaves
))
}
return
makeCurrentTreeReceipt
(
leaves
,
roots
)
...
...
@@ -127,7 +127,7 @@ func archiveRoots(db dbm.KV, root []byte, leaves *mixTy.CommitTreeLeaves) (*type
if
err
!=
nil
{
return
nil
,
err
}
archiveRoots
.
Data
=
append
(
archiveRoots
.
Data
,
root
)
archiveRoots
.
Roots
=
append
(
archiveRoots
.
Roots
,
root
)
receiptArch
:=
makeTreeArchiveRootsReceipt
(
archiveRoots
)
return
mergeReceipt
(
receiptRootLeaves
,
receiptArch
),
nil
}
...
...
@@ -158,13 +158,13 @@ func pushTree(db dbm.KV, leaf [][]byte) (*types.Receipt, error) {
return
nil
,
err
}
leaves
.
Data
=
append
(
leaves
.
Data
,
leaf
...
)
leaves
.
Leaves
=
append
(
leaves
.
Leaves
,
leaf
...
)
currentRoot
:=
calcTreeRoot
(
leaves
)
roots
.
Data
=
append
(
roots
.
Data
,
currentRoot
)
roots
.
Roots
=
append
(
roots
.
Roots
,
currentRoot
)
r
:=
makeCurrentTreeReceipt
(
leaves
,
roots
)
//归档
if
len
(
leaves
.
Data
)
>=
mixTy
.
MaxTreeLeaves
{
if
len
(
leaves
.
Leaves
)
>=
mixTy
.
MaxTreeLeaves
{
receiptArch
,
err
:=
archiveRoots
(
db
,
currentRoot
,
leaves
)
if
err
!=
nil
{
return
nil
,
err
...
...
@@ -184,12 +184,12 @@ func checkTreeRootHashExist(db dbm.KV, hash []byte) bool {
var
roots
[][]
byte
currentRoots
,
err
:=
getCurrentCommitTreeRoots
(
db
)
if
err
==
nil
{
roots
=
append
(
roots
,
currentRoots
.
Data
...
)
roots
=
append
(
roots
,
currentRoots
.
Roots
...
)
}
archiveRoots
,
err
:=
getArchiveCommitRoots
(
db
)
if
err
==
nil
{
roots
=
append
(
roots
,
archiveRoots
.
Data
...
)
roots
=
append
(
roots
,
archiveRoots
.
Roots
...
)
}
for
_
,
k
:=
range
roots
{
...
...
@@ -250,7 +250,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
}
leaves
,
err
:=
getCurrentCommitTreeLeaves
(
db
)
if
err
==
nil
{
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
==
nil
{
return
p
,
nil
}
...
...
@@ -261,7 +261,7 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
if
err
!=
nil
{
return
nil
,
err
}
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
!=
nil
{
return
nil
,
errors
.
Wrapf
(
err
,
"hash=%s,leaf=%s"
,
rootHash
,
leaf
)
}
...
...
@@ -270,10 +270,10 @@ func CalcTreeProve(db dbm.KV, rootHash, leaf string) (*mixTy.CommitTreeProve, er
roots
,
err
:=
getArchiveCommitRoots
(
db
)
if
err
==
nil
{
for
_
,
root
:=
range
roots
.
Data
{
for
_
,
root
:=
range
roots
.
Roots
{
leaves
,
err
:=
getCommitRootLeaves
(
db
,
transferFr2String
(
root
))
if
err
==
nil
{
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Data
)
p
,
err
:=
getProveData
(
transferFr2Bytes
(
leaf
),
leaves
.
Leaves
)
if
err
==
nil
{
return
p
,
nil
}
...
...
plugin/dapp/mix/executor/config.go
View file @
ce15f935
...
...
@@ -129,14 +129,14 @@ func (a *action) ConfigAddAuthPubKey(key string) (*types.Receipt, error) {
keys
,
err
:=
a
.
getAuthKeys
()
if
isNotFound
(
errors
.
Cause
(
err
))
{
keys
:=
&
mixTy
.
AuthPubKeys
{}
keys
.
Data
=
append
(
keys
.
Data
,
key
)
keys
.
Pks
=
append
(
keys
.
Pks
,
key
)
return
makeConfigAuthKeyReceipt
(
keys
),
nil
}
if
err
!=
nil
{
return
nil
,
err
}
keys
.
Data
=
append
(
keys
.
Data
,
key
)
keys
.
Pks
=
append
(
keys
.
Pks
,
key
)
return
makeConfigAuthKeyReceipt
(
keys
),
nil
}
...
...
@@ -147,11 +147,11 @@ func (a *action) ConfigDeleteAuthPubKey(key string) (*types.Receipt, error) {
}
var
newKeys
mixTy
.
AuthPubKeys
for
_
,
v
:=
range
keys
.
Data
{
for
_
,
v
:=
range
keys
.
Pks
{
if
key
==
v
{
continue
}
newKeys
.
Data
=
append
(
newKeys
.
Data
,
v
)
newKeys
.
Pks
=
append
(
newKeys
.
Pks
,
v
)
}
return
makeConfigAuthKeyReceipt
(
&
newKeys
),
nil
...
...
plugin/dapp/mix/executor/query.go
View file @
ce15f935
...
...
@@ -34,8 +34,8 @@ func (m *Mix) Query_GetLeavesList(in *mixTy.TreeInfoReq) (types.Message, error)
return
nil
,
err
}
var
resp
mixTy
.
TreeListResp
for
_
,
k
:=
range
leaves
.
Data
{
resp
.
Datas
=
append
(
resp
.
Data
s
,
transferFr2String
(
k
))
for
_
,
k
:=
range
leaves
.
Leaves
{
resp
.
Leaves
=
append
(
resp
.
Leave
s
,
transferFr2String
(
k
))
}
return
&
resp
,
nil
...
...
@@ -49,8 +49,8 @@ func (m *Mix) Query_GetRootList(in *types.ReqNil) (types.Message, error) {
return
nil
,
err
}
var
resp
mixTy
.
TreeListResp
for
_
,
k
:=
range
roots
.
Data
{
resp
.
Datas
=
append
(
resp
.
Data
s
,
transferFr2String
(
k
))
for
_
,
k
:=
range
roots
.
Roots
{
resp
.
Leaves
=
append
(
resp
.
Leave
s
,
transferFr2String
(
k
))
}
return
&
resp
,
nil
...
...
plugin/dapp/mix/proto/mix.proto
View file @
ce15f935
...
...
@@ -27,7 +27,7 @@ message ZkVerifyKeys{
}
message
AuthPubKeys
{
repeated
string
data
=
1
;
repeated
string
pks
=
1
;
}
message
PaymentKey
{
...
...
@@ -167,11 +167,11 @@ message ExistValue {
}
message
CommitTreeLeaves
{
repeated
bytes
data
=
1
;
repeated
bytes
leaves
=
1
;
}
message
CommitTreeRoots
{
repeated
bytes
data
=
1
;
repeated
bytes
roots
=
1
;
}
...
...
@@ -189,7 +189,7 @@ message TreeInfoReq{
}
message
TreeListResp
{
repeated
string
data
s
=
1
;
repeated
string
leave
s
=
1
;
}
// mix wallet part
...
...
@@ -289,8 +289,8 @@ message WithdrawProofResp{
string
authorizeSpendHash
=
3
;
string
noteHash
=
4
;
string
spendPrivKey
=
5
;
uint32
spendFlag
=
6
;
uint32
authorizeFlag
=
7
;
string
spendFlag
=
6
;
string
authorizeFlag
=
7
;
TreePathProof
treeProof
=
8
;
}
...
...
@@ -306,7 +306,7 @@ message AuthProofResp{
string
authHash
=
4
;
string
authorizeSpendHash
=
5
;
string
noteHash
=
6
;
uint32
spendFlag
=
7
;
string
spendFlag
=
7
;
TreePathProof
treeProof
=
8
;
}
...
...
@@ -331,8 +331,8 @@ message TransferInputProof{
string
authorizeSpendHash
=
3
;
string
noteHash
=
4
;
string
spendPrivKey
=
5
;
uint32
spendFlag
=
6
;
uint32
authorizeFlag
=
7
;
string
spendFlag
=
6
;
string
authorizeFlag
=
7
;
TreePathProof
treeProof
=
8
;
ShieldAmount
shieldAmount
=
9
;
string
amountRandom
=
10
;
...
...
@@ -372,11 +372,17 @@ enum NoteStatus{
USED
=
3
;
//已使用
}
enum
Role
{
SPENDER
=
0
;
RETURNER
=
1
;
AUTHORIZER
=
2
;
}
message
WalletIndexInfo
{
string
noteHash
=
1
;
string
nullifier
=
2
;
string
authorizeSpendHash
=
3
;
bool
isReturner
=
4
;
Role
role
=
4
;
string
account
=
5
;
//账户地址
NoteStatus
status
=
6
;
SecretData
secret
=
7
;
...
...
plugin/dapp/mix/types/mix.pb.go
View file @
ce15f935
...
...
@@ -147,6 +147,34 @@ func (NoteStatus) EnumDescriptor() ([]byte, []int) {
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
3
}
}
type
Role
int32
const
(
Role_SPENDER
Role
=
0
Role_RETURNER
Role
=
1
Role_AUTHORIZER
Role
=
2
)
var
Role_name
=
map
[
int32
]
string
{
0
:
"SPENDER"
,
1
:
"RETURNER"
,
2
:
"AUTHORIZER"
,
}
var
Role_value
=
map
[
string
]
int32
{
"SPENDER"
:
0
,
"RETURNER"
:
1
,
"AUTHORIZER"
:
2
,
}
func
(
x
Role
)
String
()
string
{
return
proto
.
EnumName
(
Role_name
,
int32
(
x
))
}
func
(
Role
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
}
}
type
MixWalletRescanStatus
int32
const
(
...
...
@@ -172,7 +200,7 @@ func (x MixWalletRescanStatus) String() string {
}
func
(
MixWalletRescanStatus
)
EnumDescriptor
()
([]
byte
,
[]
int
)
{
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
4
}
return
fileDescriptor_5c21d519a9be369a
,
[]
int
{
5
}
}
type
ZkVerifyKey
struct
{
...
...
@@ -262,7 +290,7 @@ func (m *ZkVerifyKeys) GetData() []*ZkVerifyKey {
}
type
AuthPubKeys
struct
{
Data
[]
string
`protobuf:"bytes,1,rep,name=data,proto3" json:"data
,omitempty"`
Pks
[]
string
`protobuf:"bytes,1,rep,name=pks,proto3" json:"pks
,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
...
...
@@ -293,9 +321,9 @@ func (m *AuthPubKeys) XXX_DiscardUnknown() {
var
xxx_messageInfo_AuthPubKeys
proto
.
InternalMessageInfo
func
(
m
*
AuthPubKeys
)
Get
Data
()
[]
string
{
func
(
m
*
AuthPubKeys
)
Get
Pks
()
[]
string
{
if
m
!=
nil
{
return
m
.
Data
return
m
.
Pks
}
return
nil
}
...
...
@@ -1288,7 +1316,7 @@ func (m *ExistValue) GetData() bool {
}
type
CommitTreeLeaves
struct
{
Data
[][]
byte
`protobuf:"bytes,1,rep,name=data,proto3" json:"data
,omitempty"`
Leaves
[][]
byte
`protobuf:"bytes,1,rep,name=leaves,proto3" json:"leaves
,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
...
...
@@ -1319,15 +1347,15 @@ func (m *CommitTreeLeaves) XXX_DiscardUnknown() {
var
xxx_messageInfo_CommitTreeLeaves
proto
.
InternalMessageInfo
func
(
m
*
CommitTreeLeaves
)
Get
Data
()
[][]
byte
{
func
(
m
*
CommitTreeLeaves
)
Get
Leaves
()
[][]
byte
{
if
m
!=
nil
{
return
m
.
Data
return
m
.
Leaves
}
return
nil
}
type
CommitTreeRoots
struct
{
Data
[][]
byte
`protobuf:"bytes,1,rep,name=data,proto3" json:"data
,omitempty"`
Roots
[][]
byte
`protobuf:"bytes,1,rep,name=roots,proto3" json:"roots
,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
...
...
@@ -1358,9 +1386,9 @@ func (m *CommitTreeRoots) XXX_DiscardUnknown() {
var
xxx_messageInfo_CommitTreeRoots
proto
.
InternalMessageInfo
func
(
m
*
CommitTreeRoots
)
Get
Data
()
[][]
byte
{
func
(
m
*
CommitTreeRoots
)
Get
Roots
()
[][]
byte
{
if
m
!=
nil
{
return
m
.
Data
return
m
.
Roots
}
return
nil
}
...
...
@@ -1484,7 +1512,7 @@ func (m *TreeInfoReq) GetLeafHash() string {
}
type
TreeListResp
struct
{
Datas
[]
string
`protobuf:"bytes,1,rep,name=datas,proto3" json:"data
s,omitempty"`
Leaves
[]
string
`protobuf:"bytes,1,rep,name=leaves,proto3" json:"leave
s,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_sizecache
int32
`json:"-"`
...
...
@@ -1515,9 +1543,9 @@ func (m *TreeListResp) XXX_DiscardUnknown() {
var
xxx_messageInfo_TreeListResp
proto
.
InternalMessageInfo
func
(
m
*
TreeListResp
)
Get
Data
s
()
[]
string
{
func
(
m
*
TreeListResp
)
Get
Leave
s
()
[]
string
{
if
m
!=
nil
{
return
m
.
Data
s
return
m
.
Leave
s
}
return
nil
}
...
...
@@ -2250,8 +2278,8 @@ type WithdrawProofResp struct {
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
NoteHash
string
`protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
SpendPrivKey
string
`protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
SpendFlag
uint32
`protobuf:"varint
,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
AuthorizeFlag
uint32
`protobuf:"varint
,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
SpendFlag
string
`protobuf:"bytes
,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
AuthorizeFlag
string
`protobuf:"bytes
,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
...
...
@@ -2318,18 +2346,18 @@ func (m *WithdrawProofResp) GetSpendPrivKey() string {
return
""
}
func
(
m
*
WithdrawProofResp
)
GetSpendFlag
()
uint32
{
func
(
m
*
WithdrawProofResp
)
GetSpendFlag
()
string
{
if
m
!=
nil
{
return
m
.
SpendFlag
}
return
0
return
""
}
func
(
m
*
WithdrawProofResp
)
GetAuthorizeFlag
()
uint32
{
func
(
m
*
WithdrawProofResp
)
GetAuthorizeFlag
()
string
{
if
m
!=
nil
{
return
m
.
AuthorizeFlag
}
return
0
return
""
}
func
(
m
*
WithdrawProofResp
)
GetTreeProof
()
*
TreePathProof
{
...
...
@@ -2393,7 +2421,7 @@ type AuthProofResp struct {
AuthHash
string
`protobuf:"bytes,4,opt,name=authHash,proto3" json:"authHash,omitempty"`
AuthorizeSpendHash
string
`protobuf:"bytes,5,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
NoteHash
string
`protobuf:"bytes,6,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
SpendFlag
uint32
`protobuf:"varint
,7,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
SpendFlag
string
`protobuf:"bytes
,7,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
XXX_NoUnkeyedLiteral
struct
{}
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
...
...
@@ -2467,11 +2495,11 @@ func (m *AuthProofResp) GetNoteHash() string {
return
""
}
func
(
m
*
AuthProofResp
)
GetSpendFlag
()
uint32
{
func
(
m
*
AuthProofResp
)
GetSpendFlag
()
string
{
if
m
!=
nil
{
return
m
.
SpendFlag
}
return
0
return
""
}
func
(
m
*
AuthProofResp
)
GetTreeProof
()
*
TreePathProof
{
...
...
@@ -2606,8 +2634,8 @@ type TransferInputProof struct {
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
NoteHash
string
`protobuf:"bytes,4,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
SpendPrivKey
string
`protobuf:"bytes,5,opt,name=spendPrivKey,proto3" json:"spendPrivKey,omitempty"`
SpendFlag
uint32
`protobuf:"varint
,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
AuthorizeFlag
uint32
`protobuf:"varint
,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
SpendFlag
string
`protobuf:"bytes
,6,opt,name=spendFlag,proto3" json:"spendFlag,omitempty"`
AuthorizeFlag
string
`protobuf:"bytes
,7,opt,name=authorizeFlag,proto3" json:"authorizeFlag,omitempty"`
TreeProof
*
TreePathProof
`protobuf:"bytes,8,opt,name=treeProof,proto3" json:"treeProof,omitempty"`
ShieldAmount
*
ShieldAmount
`protobuf:"bytes,9,opt,name=shieldAmount,proto3" json:"shieldAmount,omitempty"`
AmountRandom
string
`protobuf:"bytes,10,opt,name=amountRandom,proto3" json:"amountRandom,omitempty"`
...
...
@@ -2676,18 +2704,18 @@ func (m *TransferInputProof) GetSpendPrivKey() string {
return
""
}
func
(
m
*
TransferInputProof
)
GetSpendFlag
()
uint32
{
func
(
m
*
TransferInputProof
)
GetSpendFlag
()
string
{
if
m
!=
nil
{
return
m
.
SpendFlag
}
return
0
return
""
}
func
(
m
*
TransferInputProof
)
GetAuthorizeFlag
()
uint32
{
func
(
m
*
TransferInputProof
)
GetAuthorizeFlag
()
string
{
if
m
!=
nil
{
return
m
.
AuthorizeFlag
}
return
0
return
""
}
func
(
m
*
TransferInputProof
)
GetTreeProof
()
*
TreePathProof
{
...
...
@@ -2920,7 +2948,7 @@ type WalletIndexInfo struct {
NoteHash
string
`protobuf:"bytes,1,opt,name=noteHash,proto3" json:"noteHash,omitempty"`
Nullifier
string
`protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"`
AuthorizeSpendHash
string
`protobuf:"bytes,3,opt,name=authorizeSpendHash,proto3" json:"authorizeSpendHash,omitempty"`
IsReturner
bool
`protobuf:"varint,4,opt,name=isReturner,proto3" json:"isReturner
,omitempty"`
Role
Role
`protobuf:"varint,4,opt,name=role,proto3,enum=types.Role" json:"role
,omitempty"`
Account
string
`protobuf:"bytes,5,opt,name=account,proto3" json:"account,omitempty"`
Status
NoteStatus
`protobuf:"varint,6,opt,name=status,proto3,enum=types.NoteStatus" json:"status,omitempty"`
Secret
*
SecretData
`protobuf:"bytes,7,opt,name=secret,proto3" json:"secret,omitempty"`
...
...
@@ -2975,11 +3003,11 @@ func (m *WalletIndexInfo) GetAuthorizeSpendHash() string {
return
""
}
func
(
m
*
WalletIndexInfo
)
Get
IsReturner
()
bool
{
func
(
m
*
WalletIndexInfo
)
Get
Role
()
Role
{
if
m
!=
nil
{
return
m
.
IsReturner
return
m
.
Role
}
return
false
return
Role_SPENDER
}
func
(
m
*
WalletIndexInfo
)
GetAccount
()
string
{
...
...
@@ -3581,6 +3609,7 @@ func init() {
proto
.
RegisterEnum
(
"types.MixConfigType"
,
MixConfigType_name
,
MixConfigType_value
)
proto
.
RegisterEnum
(
"types.MixConfigAct"
,
MixConfigAct_name
,
MixConfigAct_value
)
proto
.
RegisterEnum
(
"types.NoteStatus"
,
NoteStatus_name
,
NoteStatus_value
)
proto
.
RegisterEnum
(
"types.Role"
,
Role_name
,
Role_value
)
proto
.
RegisterEnum
(
"types.MixWalletRescanStatus"
,
MixWalletRescanStatus_name
,
MixWalletRescanStatus_value
)
proto
.
RegisterType
((
*
ZkVerifyKey
)(
nil
),
"types.ZkVerifyKey"
)
proto
.
RegisterType
((
*
ZkVerifyKeys
)(
nil
),
"types.ZkVerifyKeys"
)
...
...
@@ -3648,164 +3677,167 @@ func init() {
}
var
fileDescriptor_5c21d519a9be369a
=
[]
byte
{
// 25
04
bytes of a gzipped FileDescriptorProto
// 25
56
bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x02
,
0xff
,
0xec
,
0x59
,
0xcd
,
0x6e
,
0x1b
,
0xc9
,
0xf1
,
0xd7
,
0xf0
,
0x53
,
0x2c
,
0x91
,
0x
12
,
0xd9
,
0xf6
,
0x6a
,
0xb9
,
0xc2
,
0x7f
,
0xfd
,
0x57
,
0x7a
,
0x
bd
,
0x5e
,
0x45
,
0x0e
,
0xb4
,
0x1b
,
0xda
,
0x71
,
0x92
,
0x43
,
0x76
,
0xc1
,
0x98
,
0x94
,
0xc9
,
0xb5
,
0x45
,
0x11
,
0x4d
,
0x
fa
,
0x33
,
0x48
,
0x80
,
0x31
,
0xd9
,
0x12
,
0x07
,
0x26
,
0x39
,
0xe3
,
0x99
,
0xa1
,
0x
4c
,
0xe5
,
0x14
,
0x20
,
0x01
,
0xf6
,
0x10
,
0xe4
,
0x14
,
0xe4
,
0x1a
,
0x20
,
0xa7
,
0xe4
,
0x01
,
0x16
,
0x39
,
0xe4
,
0x19
,
0x72
,
0xcc
,
0x03
,
0x04
,
0xc8
,
0x21
,
0xd7
,
0x3c
,
0x42
,
0xd0
,
0x5f
,
0x33
,
0x
d
d
,
0xf1
,
0xd7
,
0xf0
,
0x53
,
0x2c
,
0x91
,
0x
d4
,
0xb0
,
0xed
,
0xd5
,
0xd2
,
0xc2
,
0x7f
,
0xd7
,
0x42
,
0xaf
,
0x
ff
,
0xb6
,
0x22
,
0x07
,
0xda
,
0x5d
,
0xda
,
0x71
,
0x92
,
0x43
,
0x76
,
0xc1
,
0x98
,
0x94
,
0xc9
,
0xb5
,
0x45
,
0x11
,
0x4d
,
0x
ca
,
0x5f
,
0x41
,
0x02
,
0x8c
,
0xc9
,
0x96
,
0x38
,
0x30
,
0xc9
,
0x19
,
0xcf
,
0x0c
,
0x
65
,
0x2a
,
0xa7
,
0x00
,
0x09
,
0xb0
,
0x97
,
0xe4
,
0x14
,
0xe4
,
0x1a
,
0x20
,
0xa7
,
0xe4
,
0x01
,
0x16
,
0x39
,
0xe4
,
0x19
,
0x72
,
0xcc
,
0x03
,
0x04
,
0xc8
,
0x21
,
0xd7
,
0x3c
,
0x42
,
0xd0
,
0x5f
,
0x33
,
0x
3
d
,
0x43
,
0xd2
,
0x92
,
0x9c
,
0xcd
,
0x2d
,
0xb7
,
0xa9
,
0xea
,
0x5f
,
0x77
,
0x57
,
0xfd
,
0xaa
,
0xba
,
0xbb
,
0xba
,
0x07
,
0x0a
,
0x13
,
0x67
,
0x7e
,
0xe0
,
0xf9
,
0x6e
,
0xe8
,
0xa2
,
0x6c
,
0x78
,
0xee
,
0xd1
,
0x60
,
0xa7
,
0x38
,
0x70
,
0x27
,
0x13
,
0x77
,
0x2a
,
0x94
,
0x3b
,
0x95
,
0xd0
,
0xb7
,
0xa7
,
0x81
,
0x3d
,
0x08
,
0x1d
,
0xa5
,
0xc2
,
0x5f
,
0xc2
,
0xc6
,
0x8b
,
0x57
,
0x4f
,
0xa8
,
0xef
,
0x9c
,
0x9c
,
0x3f
,
0xa4
,
0xe7
,
0xe8
,
0x63
,
0xc8
,
0xb0
,
0x8e
,
0x55
,
0x6b
,
0xd7
,
0xda
,
0xdb
,
0xac
,
0x55
,
0x0e
,
0xf8
,
0x28
,
0x07
,
0xa2
,
0xbd
,
0x7f
,
0xee
,
0x51
,
0xc2
,
0x9b
,
0xd1
,
0x75
,
0xc8
,
0x9e
,
0xd9
,
0xe3
,
0x19
,
0xad
,
0xa6
,
0x76
,
0xad
,
0xbd
,
0x02
,
0x11
,
0x02
,
0xbe
,
0x07
,
0x45
,
0x6d
,
0xac
,
0x00
,
0xdd
,
0x82
,
0xcc
,
0xd0
,
0x0e
,
0xed
,
0xaa
,
0xb5
,
0x9b
,
0xde
,
0xdb
,
0xa8
,
0x21
,
0x39
,
0x98
,
0x06
,
0x21
,
0xbc
,
0x1d
,
0x7f
,
0x0b
,
0x36
,
0xea
,
0xb3
,
0x70
,
0xd4
,
0x9d
,
0xbd
,
0xe4
,
0xdd
,
0x90
,
0xd6
,
0xad
,
0x20
,
0x21
,
0x2e
,
0x40
,
0xd7
,
0x3e
,
0x9f
,
0xd0
,
0x69
,
0xc8
,
0xac
,
0x44
,
0x90
,
0xb1
,
0x87
,
0x43
,
0x9f
,
0x5b
,
0x59
,
0x20
,
0xfc
,
0x1b
,
0xed
,
0xc2
,
0x86
,
0x4f
,
0x07
,
0xd4
,
0x39
,
0xa3
,
0xfe
,
0x43
,
0x7a
,
0x2e
,
0x0d
,
0xd3
,
0x55
,
0xe8
,
0x36
,
0x14
,
0x02
,
0x3a
,
0xf0
,
0x29
,
0x1b
,
0xa2
,
0x9a
,
0xde
,
0xb5
,
0xf6
,
0x36
,
0x6a
,
0x25
,
0x69
,
0x93
,
0x98
,
0x9a
,
0xc4
,
0xed
,
0xf8
,
0x5f
,
0x16
,
0x6c
,
0x1d
,
0x39
,
0xf3
,
0xfb
,
0xee
,
0xf4
,
0xc4
,
0x39
,
0xad
,
0x73
,
0xc6
,
0xd0
,
0x4d
,
0x48
,
0xf5
,
0xcf
,
0x25
,
0x35
,
0xd7
,
0x65
,
0xcf
,
0x08
,
0xc3
,
0xd9
,
0x49
,
0xf5
,
0xd9
,
0x34
,
0x39
,
0x81
,
0xe7
,
0x36
,
0x6c
,
0xd6
,
0xae
,
0x25
,
0x91
,
0xf5
,
0x41
,
0x48
,
0x24
,
0x04
,
0xd5
,
0xa0
,
0x70
,
0xa6
,
0xd8
,
0x90
,
0x36
,
0x2d
,
0xe1
,
0xa9
,
0xb5
,
0x46
,
0x62
,
0x18
,
0xaa
,
0x42
,
0xce
,
0x66
,
0x74
,
0xbd
,
0xaa
,
0x66
,
0x98
,
0x93
,
0xad
,
0x35
,
0x22
,
0x65
,
0x74
,
0x07
,
0xc0
,
0x8b
,
0x58
,
0xaa
,
0x66
,
0xf9
,
0x70
,
0x2a
,
0x86
,
0x31
,
0x7d
,
0xad
,
0x35
,
0xa2
,
0xc1
,
0x7e
,
0x9c
,
0x97
,
0xb1
,
0xc4
,
0xf7
,
0x61
,
0xbd
,
0xd1
,
0xea
,
0x71
,
0x06
,
0xd0
,
0xff
,
0x43
,
0x9a
,
0x7a
,
0xaf
,
0xb8
,
0xaf
,
0x0b
,
0x2c
,
0xb1
,
0x16
,
0xb4
,
0x0d
,
0x39
,
0x41
,
0x16
,
0xb7
,
0xba
,
0x40
,
0xa4
,
0x84
,
0x29
,
0x94
,
0xd4
,
0x20
,
0x0f
,
0x7c
,
0x77
,
0xe6
,
0xa1
,
0x1d
,
0x58
,
0x57
,
0x41
,
0x90
,
0xf1
,
0x8a
,
0x64
,
0xd1
,
0x16
,
0xce
,
0xfc
,
0x29
,
0xf5
,
0x65
,
0xc0
,
0x22
,
0x19
,
0xfd
,
0x1f
,
0x14
,
0x98
,
0x57
,
0xae
,
0xef
,
0xfc
,
0x9c
,
0xca
,
0x39
,
0x62
,
0x05
,
0x9e
,
0xb1
,
0xb4
,
0xed
,
0xfa
,
0xae
,
0x7b
,
0xd2
,
0x9e
,
0x9e
,
0xb8
,
0x2c
,
0x1f
,
0x3d
,
0x26
,
0xc8
,
0x19
,
0x84
,
0xc0
,
0x52
,
0xc2
,
0x9b
,
0xbd
,
0x1c
,
0x3b
,
0x83
,
0xf6
,
0xd4
,
0x9b
,
0x85
,
0x2a
,
0x25
,
0x34
,
0x15
,
0x3a
,
0x80
,
0xbc
,
0xb0
,
0x3b
,
0x90
,
0xe4
,
0xab
,
0xb0
,
0x1a
,
0x3e
,
0x10
,
0x05
,
0xc2
,
0x7d
,
0x28
,
0x1f
,
0x39
,
0xf3
,
0x06
,
0xf5
,
0xdc
,
0xc0
,
0x09
,
0x65
,
0x08
,
0xb7
,
0x21
,
0x67
,
0x4f
,
0xdc
,
0xd9
,
0x34
,
0xe4
,
0x93
,
0x67
,
0x88
,
0x94
,
0xd0
,
0x9e
,
0xb2
,
0x29
,
0x95
,
0x08
,
0x6b
,
0x64
,
0xb6
,
0xb4
,
0x13
,
0xff
,
0xce
,
0x82
,
0xca
,
0x91
,
0x33
,
0xef
,
0xb3
,
0xc5
,
0x79
,
0x42
,
0x7d
,
0x39
,
0xee
,
0x1e
,
0x64
,
0x1d
,
0x6e
,
0xb7
,
0xb5
,
0xba
,
0x3f
,
0x07
,
0xa0
,
0x7d
,
0xc8
,
0xb9
,
0xb3
,
0x50
,
0xb9
,
0xb8
,
0x1c
,
0x2a
,
0x11
,
0x0c
,
0x3b
,
0x18
,
0xd9
,
0xd3
,
0x53
,
0xba
,
0x90
,
0x6d
,
0x1a
,
0x56
,
0x20
,
0xf0
,
0x80
,
0x9b
,
0xf5
,
0xd4
,
0x09
,
0x47
,
0x43
,
0xdf
,
0x7e
,
0x73
,
0x81
,
0xbb
,
0xf7
,
0xa0
,
0x18
,
0x78
,
0x74
,
0x3a
,
0xbc
,
0xef
,
0x4e
,
0x26
,
0x4e
,
0x18
,
0x54
,
0x53
,
0x89
,
0x45
,
0x1f
,
0x0f
,
0x6f
,
0xe0
,
0xf0
,
0x97
,
0x80
,
0x8e
,
0x9c
,
0x79
,
0x5d
,
0x45
,
0x56
,
0xce
,
0x72
,
0x17
,
0x36
,
0x58
,
0xb0
,
0xd5
,
0x60
,
0xd6
,
0xca
,
0xc1
,
0x74
,
0x18
,
0xfe
,
0x73
,
0x0a
,
0x0a
,
0x6c
,
0x30
,
0x31
,
0xc6
,
0x26
,
0xa4
,
0x42
,
0xb1
,
0x5c
,
0xb3
,
0x24
,
0x15
,
0x9e
,
0xa3
,
0xcf
,
0x20
,
0x37
,
0xe0
,
0x0b
,
0x50
,
0xd2
,
0xb4
,
0xbd
,
0x64
,
0x61
,
0x3a
,
0xee
,
0x94
,
0xad
,
0x27
,
0x81
,
0x43
,
0x77
,
0x20
,
0x3f
,
0x14
,
0xb1
,
0x96
,
0x6c
,
0xbd
,
0x1f
,
0x77
,
0x31
,
0x92
,
0xa0
,
0xb5
,
0x46
,
0x14
,
0x12
,
0xdd
,
0x83
,
0xf5
,
0x37
,
0x92
,
0x32
,
0xbe
,
0x40
,
0x37
,
0x6a
,
0xd5
,
0xb8
,
0x97
,
0x49
,
0x66
,
0x6b
,
0x8d
,
0x44
,
0x58
,
0xd6
,
0x2f
,
0x94
,
0x19
,
0x20
,
0x97
,
0xae
,
0xd6
,
0xcf
,
0xcc
,
0x0d
,
0xd6
,
0x4f
,
0x61
,
0xd1
,
0x0f
,
0xf5
,
0x85
,
0x92
,
0xe3
,
0x1d
,
0x3f
,
0x88
,
0x3b
,
0x26
,
0x88
,
0x65
,
0x3b
,
0x49
,
0x84
,
0x8e
,
0x97
,
0x7e
,
0x0b
,
0x90
,
0xf4
,
0xa7
,
0xab
,
0xad
,
0x8e
,
0x1d
,
0x58
,
0x9f
,
0xba
,
0x21
,
0x6d
,
0xd9
,
0xc1
,
0x48
,
0x2d
,
0x5d
,
0x25
,
0x6b
,
0x69
,
0x20
,
0x96
,
0x95
,
0x94
,
0xf0
,
0x1f
,
0x2d
,
0xb8
,
0xa6
,
0x9c
,
0xd4
,
0xc7
,
0xc2
,
0x50
,
0x0c
,
0x7d
,
0x4a
,
0x89
,
0xeb
,
0x86
,
0xda
,
0x78
,
0x86
,
0x0e
,
0xdd
,
0x84
,
0xd2
,
0x74
,
0x36
,
0x1e
,
0x3b
,
0x27
,
0x0e
,
0xf5
,
0x39
,
0x48
,
0x0c
,
0x6d
,
0x2a
,
0xd1
,
0x01
,
0xa0
,
0xc8
,
0x83
,
0x1e
,
0xcb
,
0x24
,
0x0e
,
0x15
,
0x3b
,
0xc4
,
0x92
,
0x16
,
0xcd
,
0xd2
,
0x8c
,
0x61
,
0xe9
,
0xdf
,
0x2d
,
0xa8
,
0x2a
,
0x5a
,
0xb9
,
0x8d
,
0xef
,
0x60
,
0x6e
,
0x30
,
0x72
,
0xe8
,
0x78
,
0x58
,
0xe7
,
0x03
,
0x3e
,
0x53
,
0xe6
,
0x1a
,
0xca
,
0x24
,
0xea
,
0xb9
,
0xb4
,
0xd4
,
0x54
,
0xae
,
0x70
,
0x2a
,
0xb3
,
0xd2
,
0xa9
,
0x05
,
0xaa
,
0xb2
,
0x4b
,
0xa8
,
0xc2
,
0xbf
,
0xb4
,
0xe0
,
0x03
,
0xe5
,
0xe2
,
0x31
,
0x5f
,
0xff
,
0x97
,
0x0d
,
0xef
,
0x37
,
0xe8
,
0x1b
,
0xfe
,
0x8b
,
0x05
,
0xd7
,
0xa3
,
0x34
,
0xbc
,
0x2a
,
0xc9
,
0x7b
,
0xb0
,
0x65
,
0x6b
,
0x7d
,
0xe3
,
0xa3
,
0x3d
,
0xa9
,
0x66
,
0xc6
,
0x44
,
0x2a
,
0x2d
,
0x25
,
0x4c
,
0xe5
,
0x55
,
0x89
,
0xc6
,
0xbb
,
0x00
,
0xcd
,
0xb9
,
0x13
,
0x84
,
0x4f
,
0xd8
,
0x3a
,
0xd1
,
0x4a
,
0x13
,
0x6b
,
0x6f
,
0x5d
,
0x96
,
0x26
,
0xb7
,
0xa0
,
0x2c
,
0xf6
,
0x9f
,
0xbe
,
0x4f
,
0xe9
,
0x23
,
0x6a
,
0x9f
,
0x51
,
0xb3
,
0x84
,
0x29
,
0x4a
,
0xdc
,
0xc7
,
0xb0
,
0x15
,
0xe3
,
0x98
,
0x7f
,
0xcb
,
0x61
,
0x7f
,
0xb0
,
0x74
,
0x5c
,
0xd7
,
0x77
,
0xcf
,
0x28
,
0x3f
,
0x27
,
0x4d
,
0x92
,
0x22
,
0x99
,
0xb5
,
0xf1
,
0x53
,
0xa4
,
0x47
,
0x43
,
0xbe
,
0xe7
,
0x16
,
0x48
,
0x24
,
0xa3
,
0x1b
,
0x00
,
0x9e
,
0xd8
,
0x29
,
0x87
,
0x74
,
0xce
,
0xf9
,
0x28
,
0x11
,
0x4d
,
0xc3
,
0xce
,
0xd8
,
0xe9
,
0x6c
,
0x22
,
0x6c
,
0xe6
,
0x1c
,
0x94
,
0x48
,
0xac
,
0x40
,
0x55
,
0xc8
,
0x8f
,
0xe8
,
0xd8
,
0xa3
,
0x7e
,
0x50
,
0xcd
,
0xee
,
0xa6
,
0xf7
,
0x4a
,
0x44
,
0x89
,
0xb8
,
0x09
,
0x1b
,
0xcc
,
0x38
,
0xbe
,
0x01
,
0xd3
,
0xd7
,
0x17
,
0x99
,
0x37
,
0xa6
,
0xf6
,
0x89
,
0xb6
,
0x9c
,
0x23
,
0x19
,
0xdf
,
0x84
,
0x22
,
0xe7
,
0xcc
,
0x09
,
0x42
,
0x42
,
0x03
,
0x8f
,
0x9d
,
0xe2
,
0x8c
,
0x82
,
0x40
,
0x56
,
0x7e
,
0x42
,
0xc0
,
0x2f
,
0x60
,
0x33
,
0xae
,
0x5d
,
0xba
,
0xb6
,
0xe3
,
0xa3
,
0x5b
,
0xb0
,
0xa9
,
0x4a
,
0x08
,
0x99
,
0x12
,
0x62
,
0xd6
,
0x84
,
0x96
,
0x9d
,
0xff
,
0xfc
,
0xa8
,
0xe9
,
0xfa
,
0x8e
,
0x56
,
0x12
,
0x6a
,
0x2a
,
0x7c
,
0x13
,
0x72
,
0x12
,
0x5b
,
0x04
,
0xeb
,
0x99
,
0x1c
,
0xc6
,
0x7a
,
0xc6
,
0xa4
,
0xe7
,
0x12
,
0x6f
,
0x3d
,
0xc7
,
0x1f
,
0x42
,
0xbe
,
0xeb
,
0x3b
,
0x67
,
0xb2
,
0xf2
,
0x8c
,
0x12
,
0x20
,
0xae
,
0x4d
,
0x51
,
0x6f
,
0x64
,
0xfb
,
0xb4
,
0xa7
,
0x8a
,
0x47
,
0x6e
,
0xe4
,
0x1e
,
0xe4
,
0x3d
,
0xd1
,
0x49
,
0x1e
,
0xe0
,
0x9b
,
0xaa
,
0x8a
,
0x12
,
0x5a
,
0xa2
,
0x9a
,
0xd1
,
0xa7
,
0xaa
,
0x72
,
0x75
,
0xa6
,
0xa7
,
0xdd
,
0x57
,
0xf2
,
0x70
,
0x4a
,
0xd4
,
0x5c
,
0x3a
,
0x02
,
0xff
,
0xc6
,
0x82
,
0x4a
,
0x7d
,
0x30
,
0x60
,
0xab
,
0x8b
,
0x0d
,
0x66
,
0x0f
,
0x78
,
0x59
,
0xf8
,
0x3d
,
0xa3
,
0xf8
,
0x13
,
0x73
,
0xbe
,
0xb7
,
0x50
,
0xfc
,
0x31
,
0xdb
,
0xf4
,
0xf2
,
0x0f
,
0xd5
,
0x61
,
0x33
,
0x30
,
0xac
,
0x97
,
0x06
,
0xa8
,
0x33
,
0x64
,
0xd1
,
0x35
,
0x92
,
0xe8
,
0x80
,
0x7f
,
0x02
,
0x95
,
0xa7
,
0xf6
,
0x78
,
0x4c
,
0xc3
,
0xfa
,
0x70
,
0xe8
,
0x4b
,
0x8b
,
0x50
,
0x4d
,
0xf8
,
0x6f
,
0x0f
,
0x94
,
0x2d
,
0xea
,
0x34
,
0x5b
,
0xb0
,
0x9c
,
0x28
,
0x60
,
0x54
,
0xd7
,
0xa7
,
0xe2
,
0xba
,
0x9e
,
0xed
,
0x1e
,
0x20
,
0xa6
,
0x6a
,
0xd8
,
0xa1
,
0x7d
,
0xe9
,
0xd8
,
0x63
,
0x28
,
0x8a
,
0x52
,
0xd2
,
0xd8
,
0x34
,
0x0c
,
0xdd
,
0xb2
,
0xbd
,
0x25
,
0xbd
,
0x7c
,
0x6f
,
0x59
,
0x71
,
0x86
,
0xb0
,
0x05
,
0xc6
,
0xb6
,
0x4c
,
0x62
,
0x4f
,
0x87
,
0xee
,
0x44
,
0xee
,
0xc1
,
0x9a
,
0x06
,
0xbf
,
0x80
,
0x4a
,
0x73
,
0x3a
,
0x70
,
0x87
,
0x74
,
0xa8
,
0xb9
,
0x50
,
0x85
,
0x3c
,
0x15
,
0x4a
,
0x69
,
0xbb
,
0x12
,
0xd1
,
0x6d
,
0xc8
,
0xfb
,
0xf6
,
0x1b
,
0x06
,
0x92
,
0x41
,
0x50
,
0xc5
,
0x7b
,
0xdc
,
0x9b
,
0x28
,
0x04
,
0xfe
,
0x19
,
0x1f
,
0xdb
,
0x3f
,
0xf7
,
0x42
,
0x6d
,
0xec
,
0xb8
,
0x2c
,
0xb7
,
0xf4
,
0xb2
,
0x1c
,
0x7d
,
0x17
,
0x8a
,
0x02
,
0xa5
,
0xd1
,
0xb1
,
0x90
,
0x64
,
0x06
,
0x04
,
0xff
,
0xc2
,
0x82
,
0x4a
,
0x83
,
0x5e
,
0x76
,
0x82
,
0x5a
,
0x34
,
0x41
,
0xbc
,
0xd8
,
0x16
,
0x73
,
0xde
,
0xc0
,
0xa8
,
0x4b
,
0x46
,
0x7a
,
0xd5
,
0x25
,
0x03
,
0xff
,
0xd6
,
0x82
,
0x2d
,
0x55
,
0x97
,
0xb0
,
0x5d
,
0x8b
,
0x6d
,
0x36
,
0x3c
,
0xb0
,
0x22
,
0xd4
,
0xf5
,
0xf8
,
0x0e
,
0x68
,
0xe8
,
0x58
,
0x58
,
0x44
,
0xa0
,
0xeb
,
0x71
,
0x36
,
0x69
,
0x1a
,
0xe3
,
0xa8
,
0xe0
,
0x90
,
0xe4
,
0x51
,
0xc1
,
0x51
,
0x66
,
0xd0
,
0xa3
,
0x4a
,
0x17
,
0x7f
,
0x65
,
0x41
,
0xd9
,
0xb4
,
0x2a
,
0xf0
,
0xde
,
0x7a
,
0x98
,
0x7e
,
0x62
,
0xde
,
0x04
,
0x96
,
0x04
,
0x55
,
0x5e
,
0x58
,
0xae
,
0x7a
,
0x1d
,
0xf9
,
0xca
,
0x82
,
0x12
,
0x3f
,
0x25
,
0xec
,
0x70
,
0xc4
,
0x4d
,
0xb9
,
0xd4
,
0x91
,
0xba
,
0xc3
,
0x0a
,
0x4d
,
0xd1
,
0x49
,
0x9d
,
0x18
,
0x4a
,
0xd6
,
0xf7
,
0xfc
,
0xb4
,
0xb1
,
0xe7
,
0xb3
,
0xb3
,
0xe2
,
0xcc
,
0x1e
,
0x3b
,
0x43
,
0xde
,
0x2d
,
0xc3
,
0xdb
,
0x62
,
0x05
,
0x3e
,
0x80
,
0x72
,
0x54
,
0xf5
,
0xa9
,
0x48
,
0xbd
,
0x85
,
0x12
,
0xfc
,
0xd7
,
0x14
,
0x54
,
0x12
,
0x1d
,
0x02
,
0x0f
,
0x7d
,
0xdb
,
0x48
,
0xae
,
0xa5
,
0x4c
,
0xa9
,
0x7c
,
0xfb
,
0xef
,
0xd4
,
0x8a
,
0xba
,
0xc9
,
0x99
,
0x44
,
0x14
,
0xb1
,
0xbc
,
0xe0
,
0xc8
,
0x5c
,
0x96
,
0xab
,
0xdd
,
0xd0
,
0x31
,
0x92
,
0xb8
,
0x7c
,
0x38
,
0xb6
,
0x4f
,
0x79
,
0x2d
,
0x5e
,
0x22
,
0xb1
,
0xc2
,
0x48
,
0x3b
,
0x8e
,
0xc8
,
0x73
,
0x84
,
0xa9
,
0x44
,
0x35
,
0x28
,
0x84
,
0xe2
,
0xe4
,
0x77
,
0x4f
,
0xaa
,
0xeb
,
0x46
,
0x1a
,
0x18
,
0xb1
,
0x26
,
0x31
,
0x0c
,
0x1f
,
0x42
,
0x91
,
0xbf
,
0xa0
,
0x5c
,
0x82
,
0x7a
,
0x1e
,
0x7e
,
0x97
,
0xf0
,
0xc5
,
0xc0
,
0x49
,
0x2b
,
0x91
,
0x48
,
0xc6
,
0x5f
,
0xa7
,
0xa0
,
0xa4
,
0x0d
,
0x14
,
0x78
,
0x71
,
0xee
,
0x5a
,
0x17
,
0xe4
,
0xee
,
0x0d
,
0x00
,
0x3b
,
0x7a
,
0xc4
,
0x51
,
0x6b
,
0x2e
,
0xd6
,
0xb0
,
0xc3
,
0x98
,
0x4b
,
0x92
,
0x3d
,
0x11
,
0x03
,
0x5d
,
0xc5
,
0x0c
,
0x63
,
0xa2
,
0x4e
,
0xbe
,
0x92
,
0x57
,
0x04
,
0x32
,
0x7b
,
0xa9
,
0x40
,
0xe6
,
0x12
,
0x04
,
0x18
,
0x41
,
0xca
,
0x27
,
0x83
,
0xf4
,
0x2e
,
0xf4
,
0xff
,
0xde
,
0x82
,
0xb2
,
0xaa
,
0xb3
,
0x2f
,
0x15
,
0x83
,
0x6d
,
0xc8
,
0x85
,
0xae
,
0xb6
,
0x39
,
0x49
,
0x89
,
0x91
,
0x18
,
0xba
,
0x2c
,
0x00
,
0xda
,
0xae
,
0xa4
,
0x69
,
0x12
,
0x1b
,
0x5b
,
0x66
,
0x61
,
0x63
,
0x8b
,
0xb7
,
0xac
,
0xac
,
0xb1
,
0x65
,
0xed
,
0x43
,
0xb1
,
0xa7
,
0xd5
,
0xe4
,
0x6f
,
0xad
,
0x76
,
0xfe
,
0x94
,
0x06
,
0x64
,
0xde
,
0x8b
,
0x78
,
0x7c
,
0x2f
,
0x9d
,
0x08
,
0xff
,
0x5b
,
0x99
,
0x5a
,
0x6a
,
0xa0
,
0xef
,
0x43
,
0x51
,
0xbf
,
0x0d
,
0x55
,
0x0b
,
0xbc
,
0xdb
,
0xb5
,
0xa8
,
0xb8
,
0x8a
,
0x9b
,
0x88
,
0x01
,
0x64
,
0x4e
,
0x89
,
0xe0
,
0xc9
,
0xe2
,
0x02
,
0x84
,
0x53
,
0xba
,
0x0e
,
0xff
,
0xd3
,
0x82
,
0x6b
,
0x89
,
0xfb
,
0xdd
,
0xd5
,
0x62
,
0xa5
,
0xb3
,
0x9a
,
0x4a
,
0xb0
,
0x7a
,
0xc5
,
0xc3
,
0x68
,
0xc1
,
0xd3
,
0xcc
,
0xbb
,
0x7a
,
0x9a
,
0x5d
,
0xe2
,
0xe9
,
0xdf
,
0x2c
,
0xa8
,
0x24
,
0x56
,
0x58
,
0xe0
,
0xa1
,
0x2f
,
0xa0
,
0x14
,
0xea
,
0x99
,
0x2a
,
0xfd
,
0xfd
,
0x20
,
0x0a
,
0x4a
,
0x32
,
0x8b
,
0x89
,
0x89
,
0x47
,
0x9f
,
0x43
,
0x31
,
0xb4
,
0xfd
,
0x53
,
0x1a
,
0x1e
,
0xeb
,
0xef
,
0x67
,
0x3b
,
0x89
,
0xfe
,
0x1a
,
0xb5
,
0xc4
,
0xc0
,
0xb3
,
0xfe
,
0xe2
,
0xad
,
0x4c
,
0xf6
,
0x4f
,
0x5f
,
0xdc
,
0x5f
,
0xc7
,
0xe3
,
0x5f
,
0xa5
,
0x60
,
0xcb
,
0x60
,
0x26
,
0x48
,
0xd6
,
0x94
,
0x56
,
0xb2
,
0xa6
,
0x64
,
0x15
,
0xb0
,
0x72
,
0x42
,
0x62
,
0x44
,
0xe4
,
0x12
,
0x5a
,
0x46
,
0xab
,
0x98
,
0x4b
,
0xa2
,
0xc4
,
0xda
,
0x32
,
0x74
,
0xe8
,
0x13
,
0xc8
,
0xb0
,
0x91
,
0xdf
,
0x16
,
0x2b
,
0x0e
,
0x40
,
0x9f
,
0x2e
,
0x3c
,
0x4e
,
0x2d
,
0x05
,
0xc7
,
0xaf
,
0x52
,
0xb7
,
0xa3
,
0x77
,
0xc6
,
0xdc
,
0x6a
,
0xb8
,
0x7a
,
0x68
,
0xfc
,
0x75
,
0x0a
,
0xb6
,
0xc4
,
0x0d
,
0x82
,
0xdf
,
0x4b
,
0xf9
,
0x93
,
0xee
,
0xdb
,
0xb6
,
0x4f
,
0x7e
,
0x6f
,
0x95
,
0xbb
,
0x89
,
0xf4
,
0x3e
,
0x56
,
0x5c
,
0x79
,
0x6b
,
0xb9
,
0x01
,
0xe0
,
0x04
,
0x44
,
0xbd
,
0x43
,
0x67
,
0xf8
,
0xd5
,
0x5e
,
0xd3
,
0xb0
,
0x9a
,
0xc8
,
0x16
,
0x77
,
0x16
,
0x99
,
0x9a
,
0x4a
,
0xe4
,
0xf5
,
0x4a
,
0x68
,
0x87
,
0xb3
,
0x80
,
0x3b
,
0x19
,
0xff
,
0x2f
,
0xe9
,
0xb8
,
0x21
,
0xed
,
0xf1
,
0x06
,
0x22
,
0x01
,
0x5a
,
0x69
,
0x93
,
0xbf
,
0xa0
,
0xb4
,
0xc1
,
0x4f
,
0x15
,
0x19
,
0x8d
,
0x97
,
0x47
,
0x8e
,
0x20
,
0x63
,
0x1f
,
0x32
,
0xce
,
0xf4
,
0xc4
,
0x95
,
0xf9
,
0xad
,
0x1e
,
0x2e
,
0x13
,
0x94
,
0x11
,
0x8e
,
0x61
,
0xe6
,
0x86
,
0x73
,
0x71
,
0xe3
,
0x17
,
0xd4
,
0x28
,
0x11
,
0xff
,
0xc3
,
0x52
,
0x17
,
0x35
,
0x3e
,
0xee
,
0x90
,
0xce
,
0x2f
,
0x3a
,
0xa7
,
0xbe
,
0x59
,
0xa2
,
0x57
,
0x13
,
0xb9
,
0x6d
,
0x10
,
0x99
,
0x8d
,
0x58
,
0xbb
,
0x0e
,
0x59
,
0x81
,
0xcf
,
0x73
,
0xb5
,
0x10
,
0x98
,
0x55
,
0x43
,
0xc7
,
0xa7
,
0xe2
,
0x27
,
0xcb
,
0x3a
,
0x6f
,
0x89
,
0x15
,
0xf8
,
0x0b
,
0x23
,
0x97
,
0xf8
,
0x3e
,
0xf1
,
0x1d
,
0xc8
,
0x32
,
0x97
,
0xd4
,
0x3b
,
0xf2
,
0x2a
,
0xfe
,
0x04
,
0x08
,
0xdf
,
0x82
,
0x4d
,
0xd1
,
0x42
,
0xe8
,
0x6b
,
0x76
,
0xaa
,
0x72
,
0x33
,
0xd8
,
0x5d
,
0x34
,
0x7a
,
0x98
,
0xe0
,
0x02
,
0x26
,
0xb0
,
0x2d
,
0x70
,
0xcd
,
0xa9
,
0xfd
,
0x72
,
0x4c
,
0xe5
,
0x85
,
0x96
,
0x2d
,
0xe1
,
0x65
,
0xff
,
0xa7
,
0x10
,
0x64
,
0x9c
,
0xe0
,
0xf8
,
0x21
,
0x67
,
0x71
,
0x9d
,
0xf0
,
0x6f
,
0x54
,
0x86
,
0xf4
,
0x24
,
0x38
,
0x95
,
0x8c
,
0xb1
,
0x4f
,
0xdc
,
0x81
,
0xf7
,
0x97
,
0x8d
,
0xc9
,
0x9c
,
0xb8
,
0x03
,
0x59
,
0x9f
,
0x06
,
0x9e
,
0x72
,
0xe2
,
0x43
,
0xc3
,
0x89
,
0xa4
,
0x09
,
0x44
,
0x60
,
0x71
,
0x07
,
0xe0
,
0x91
,
0x3b
,
0xb0
,
0xc7
,
0x47
,
0xce
,
0xbc
,
0x3f
,
0x67
,
0x36
,
0x8c
,
0xe2
,
0x30
,
0xf3
,
0x6f
,
0x46
,
0xfd
,
0x88
,
0x3a
,
0xa7
,
0x23
,
0xb1
,
0xf9
,
0xa5
,
0x89
,
0x94
,
0x98
,
0xcf
,
0x4e
,
0xf4
,
0x6c
,
0x94
,
0x26
,
0x42
,
0x60
,
0x95
,
0x4e
,
0x91
,
0x8f
,
0x25
,
0x1e
,
0x6d
,
0x5e
,
0xeb
,
0xd9
,
0x66
,
0x19
,
0xd9
,
0x16
,
0x4d
,
0x96
,
0x5a
,
0x3a
,
0x59
,
0x7a
,
0xf9
,
0x64
,
0x19
,
0x6d
,
0xb2
,
0x38
,
0xfa
,
0xd9
,
0x95
,
0xd1
,
0xcf
,
0x25
,
0xa3
,
0x7f
,
0x17
,
0x4a
,
0x9a
,
0x7d
,
0x81
,
0x87
,
0x3e
,
0x82
,
0x74
,
0x38
,
0x57
,
0xa4
,
0xa9
,
0x55
,
0x17
,
0x73
,
0x42
,
0x58
,
0x2b
,
0x3e
,
0x82
,
0x8a
,
0xe4
,
0x8e
,
0x05
,
0x9c
,
0xd0
,
0x60
,
0x36
,
0xfe
,
0x4f
,
0xa2
,
0xd8
,
0x86
,
0x6b
,
0x84
,
0xbe
,
0x5e
,
0x48
,
0x8b
,
0x1a
,
0xe4
,
0x7d
,
0x3e
,
0xb4
,
0x32
,
0xa7
,
0xaa
,
0x5d
,
0x8f
,
0x8d
,
0xb9
,
0x89
,
0x02
,
0xee
,
0xff
,
0x14
,
0x20
,
0xfe
,
0xfb
,
0x8a
,
0x36
,
0x20
,
0xdf
,
0x68
,
0x76
,
0x8f
,
0x7b
,
0xed
,
0x7e
,
0x79
,
0x0d
,
0x15
,
0x61
,
0xfd
,
0x69
,
0xbb
,
0xdf
,
0x6a
,
0x90
,
0xfa
,
0xd3
,
0xb2
,
0x85
,
0x2a
,
0x50
,
0xea
,
0x93
,
0x7a
,
0xa7
,
0x77
,
0xd8
,
0x24
,
0xed
,
0x4e
,
0xf7
,
0x71
,
0xbf
,
0x9c
,
0x42
,
0x08
,
0x36
,
0x95
,
0xea
,
0xf8
,
0x71
,
0x9f
,
0xe9
,
0xd2
,
0xa8
,
0x04
,
0x85
,
0xfa
,
0xe3
,
0x7e
,
0xeb
,
0x98
,
0xb4
,
0x5f
,
0x34
,
0xcb
,
0x99
,
0xfd
,
0x3a
,
0xa7
,
0x2b
,
0xfe
,
0x83
,
0xc9
,
0xda
,
0xa3
,
0xdf
,
0x8e
,
0xe5
,
0x35
,
0xb4
,
0x09
,
0x10
,
0xff
,
0x9a
,
0x15
,
0xb3
,
0xc8
,
0xb7
,
0x24
,
0xa9
,
0x4a
,
0xed
,
0x7f
,
0xc4
,
0x33
,
0x22
,
0xfa
,
0x83
,
0x82
,
0xf2
,
0x90
,
0xae
,
0x0f
,
0x87
,
0xe5
,
0x35
,
0x04
,
0x90
,
0x6b
,
0xd0
,
0x31
,
0x0d
,
0x69
,
0xd9
,
0xda
,
0xff
,
0x01
,
0x40
,
0xbc
,
0x29
,
0xa2
,
0x02
,
0x64
,
0x1f
,
0x77
,
0x1a
,
0xcd
,
0xc3
,
0xf2
,
0x1a
,
0xfb
,
0x7c
,
0x52
,
0x7f
,
0xd4
,
0x6e
,
0x94
,
0x2d
,
0x86
,
0x3f
,
0x24
,
0xc7
,
0x2f
,
0x9a
,
0x9d
,
0x72
,
0x0a
,
0xad
,
0x43
,
0xe6
,
0x71
,
0xaf
,
0xd9
,
0x28
,
0xa7
,
0xf7
,
0x7f
,
0x04
,
0xef
,
0x1d
,
0x39
,
0x73
,
0xb5
,
0x20
,
0x83
,
0x81
,
0x3d
,
0x95
,
0x83
,
0xac
,
0x43
,
0xa6
,
0xdd
,
0x78
,
0xd4
,
0x14
,
0x44
,
0xf4
,
0xee
,
0xd7
,
0x3b
,
0x9d
,
0x76
,
0xe7
,
0x41
,
0xd9
,
0x62
,
0xd2
,
0x61
,
0xbb
,
0xd3
,
0xee
,
0xb5
,
0x9a
,
0x8d
,
0x72
,
0xaa
,
0xf6
,
0xb5
,
0x05
,
0x30
,
0x71
,
0xe6
,
0xea
,
0x55
,
0xea
,
0x2e
,
0x6c
,
0x3d
,
0x48
,
0x8c
,
0xa3
,
0x1e
,
0x1e
,
0x08
,
0x7d
,
0xdd
,
0x71
,
0xc6
,
0x3b
,
0xe5
,
0x58
,
0xec
,
0x85
,
0xbe
,
0x33
,
0x3d
,
0xc5
,
0x6b
,
0xe8
,
0x33
,
0xd8
,
0x10
,
0x5d
,
0x98
,
0x0f
,
0x97
,
0xea
,
0xf1
,
0x39
,
0x94
,
0x8c
,
0xf0
,
0xa3
,
0xad
,
0x18
,
0xc4
,
0xf7
,
0x94
,
0x9d
,
0x9d
,
0x58
,
0x91
,
0x4c
,
0x14
,
0xbc
,
0xf6
,
0x32
,
0xc7
,
0xff
,
0xce
,
0xdf
,
0xf9
,
0x77
,
0x00
,
0x00
,
0x00
,
0xff
,
0xff
,
0x53
,
0x45
,
0xb1
,
0xbd
,
0xd2
,
0x1f
,
0x00
,
0x00
,
0xba
,
0x07
,
0x0a
,
0x13
,
0x7b
,
0xbe
,
0xef
,
0x7a
,
0x4e
,
0xe0
,
0xa0
,
0x6c
,
0x70
,
0xee
,
0x52
,
0x7f
,
0xbb
,
0x38
,
0x70
,
0x26
,
0x13
,
0x67
,
0x2a
,
0x94
,
0xdb
,
0x95
,
0xc0
,
0xb3
,
0xa6
,
0xbe
,
0x35
,
0x08
,
0x6c
,
0xa5
,
0xc2
,
0x5f
,
0xc1
,
0xc6
,
0xcb
,
0xd7
,
0x4f
,
0xa9
,
0x67
,
0x9f
,
0x9c
,
0x3f
,
0xa6
,
0xe7
,
0xe8
,
0xff
,
0x21
,
0xc3
,
0x3a
,
0x56
,
0x8d
,
0x1d
,
0x63
,
0xb7
,
0x5c
,
0xab
,
0xec
,
0xf3
,
0x51
,
0xf6
,
0x45
,
0x7b
,
0xff
,
0xdc
,
0xa5
,
0x84
,
0x37
,
0xa3
,
0xeb
,
0x90
,
0x3d
,
0xb3
,
0xc6
,
0x33
,
0x5a
,
0x4d
,
0xed
,
0x18
,
0xbb
,
0x05
,
0x22
,
0x04
,
0xfc
,
0x00
,
0x8a
,
0xda
,
0x58
,
0x3e
,
0xba
,
0x0d
,
0x99
,
0xa1
,
0x15
,
0x58
,
0x55
,
0x63
,
0x27
,
0xbd
,
0xbb
,
0x51
,
0x43
,
0x72
,
0x30
,
0x0d
,
0x42
,
0x78
,
0x3b
,
0xbe
,
0x09
,
0x1b
,
0xf5
,
0x59
,
0x30
,
0xea
,
0xce
,
0x5e
,
0xf1
,
0x6e
,
0x26
,
0xa4
,
0xdd
,
0xd7
,
0x3e
,
0xef
,
0x55
,
0x20
,
0xec
,
0x13
,
0x3b
,
0x00
,
0x5d
,
0xeb
,
0x7c
,
0x42
,
0xa7
,
0x01
,
0xb3
,
0x11
,
0x41
,
0xc6
,
0x1a
,
0x0e
,
0x3d
,
0x6e
,
0x63
,
0x81
,
0xf0
,
0x6f
,
0xb4
,
0x03
,
0x1b
,
0x1e
,
0x1d
,
0x50
,
0xfb
,
0x8c
,
0x7a
,
0x8f
,
0xe9
,
0xb9
,
0x34
,
0x4b
,
0x57
,
0xa1
,
0xbb
,
0x50
,
0xf0
,
0xe9
,
0xc0
,
0xa3
,
0x6c
,
0x88
,
0x6a
,
0x7a
,
0xc7
,
0xd8
,
0xdd
,
0xa8
,
0x95
,
0xa4
,
0x45
,
0x62
,
0x62
,
0x12
,
0xb5
,
0xe3
,
0x7f
,
0x19
,
0xb0
,
0x79
,
0x68
,
0xcf
,
0x1f
,
0x3a
,
0xd3
,
0x13
,
0xfb
,
0xb4
,
0xce
,
0xf9
,
0x42
,
0xb7
,
0x20
,
0xd5
,
0x3f
,
0x97
,
0xc4
,
0x5c
,
0x97
,
0x3d
,
0x43
,
0x0c
,
0xe7
,
0x26
,
0xd5
,
0x67
,
0xd3
,
0xe4
,
0x04
,
0x9e
,
0xdb
,
0x50
,
0xae
,
0x5d
,
0x4b
,
0x22
,
0xeb
,
0x83
,
0x80
,
0x48
,
0x08
,
0xaa
,
0x41
,
0xe1
,
0x4c
,
0x71
,
0x21
,
0x6d
,
0x5a
,
0xc2
,
0x52
,
0x6b
,
0x8d
,
0x44
,
0x30
,
0x54
,
0x85
,
0x9c
,
0xc5
,
0xc8
,
0x7a
,
0x5d
,
0xcd
,
0x30
,
0x27
,
0x5b
,
0x6b
,
0x44
,
0xca
,
0xe8
,
0x1e
,
0x80
,
0x1b
,
0xb2
,
0x54
,
0xcd
,
0xf2
,
0xe1
,
0x54
,
0x04
,
0x23
,
0xfa
,
0x5a
,
0x6b
,
0x44
,
0x83
,
0xfd
,
0x38
,
0x2f
,
0x23
,
0x89
,
0x1f
,
0xc2
,
0x7a
,
0xa3
,
0xd5
,
0xe3
,
0x0c
,
0xa0
,
0x9b
,
0x90
,
0xa6
,
0xee
,
0x6b
,
0xee
,
0xeb
,
0x02
,
0x4b
,
0xac
,
0x05
,
0x6d
,
0x41
,
0x4e
,
0x90
,
0xc5
,
0xad
,
0x2e
,
0x10
,
0x29
,
0x61
,
0x0a
,
0x25
,
0x35
,
0xc8
,
0x23
,
0xcf
,
0x99
,
0xb9
,
0x68
,
0x1b
,
0xd6
,
0x55
,
0x10
,
0x64
,
0xbc
,
0x42
,
0x59
,
0xb4
,
0x05
,
0x33
,
0x6f
,
0x4a
,
0x3d
,
0x19
,
0xb0
,
0x50
,
0x46
,
0xff
,
0x07
,
0x05
,
0xe6
,
0x95
,
0xe3
,
0xd9
,
0x3f
,
0xa7
,
0x72
,
0x8e
,
0x48
,
0x81
,
0x67
,
0x2c
,
0x69
,
0xbb
,
0x9e
,
0xe3
,
0x9c
,
0xb4
,
0xa7
,
0x27
,
0x0e
,
0xcb
,
0x46
,
0x97
,
0x09
,
0x72
,
0x06
,
0x21
,
0xb0
,
0x94
,
0x70
,
0x67
,
0xaf
,
0xc6
,
0xf6
,
0xa0
,
0x3d
,
0x75
,
0x67
,
0x81
,
0x4a
,
0x09
,
0x4d
,
0x85
,
0xf6
,
0x21
,
0x2f
,
0xec
,
0xf6
,
0x25
,
0xf9
,
0x2a
,
0xac
,
0x31
,
0x1f
,
0x88
,
0x02
,
0xe1
,
0x3e
,
0x98
,
0x87
,
0xf6
,
0xbc
,
0x41
,
0x5d
,
0xc7
,
0xb7
,
0x03
,
0x19
,
0xc2
,
0x2d
,
0xc8
,
0x59
,
0x13
,
0x67
,
0x36
,
0x0d
,
0xf8
,
0xe4
,
0x19
,
0x22
,
0x25
,
0xb4
,
0xab
,
0x6c
,
0x4a
,
0x25
,
0xc2
,
0x1a
,
0x9a
,
0x2d
,
0xed
,
0xc4
,
0xbf
,
0x33
,
0xa0
,
0x72
,
0x68
,
0xcf
,
0xfb
,
0x6c
,
0x69
,
0x9e
,
0x50
,
0x4f
,
0x8e
,
0xbb
,
0x0b
,
0x59
,
0x9b
,
0xdb
,
0x6d
,
0xac
,
0xee
,
0xcf
,
0x01
,
0x68
,
0x0f
,
0x72
,
0xce
,
0x2c
,
0x50
,
0x2e
,
0x2e
,
0x87
,
0x4a
,
0x04
,
0xc3
,
0x0e
,
0x46
,
0xd6
,
0xf4
,
0x94
,
0x2e
,
0x64
,
0x9b
,
0x86
,
0x15
,
0x08
,
0x3c
,
0xe0
,
0x66
,
0x3d
,
0xb3
,
0x83
,
0xd1
,
0xd0
,
0xb3
,
0xde
,
0x5e
,
0xe0
,
0xee
,
0x03
,
0x28
,
0xfa
,
0x2e
,
0x9d
,
0x0e
,
0x1f
,
0x3a
,
0x93
,
0x89
,
0x1d
,
0xf8
,
0xd5
,
0x54
,
0x62
,
0xc9
,
0x47
,
0xc3
,
0xc7
,
0x70
,
0xf8
,
0x2b
,
0x40
,
0x87
,
0xf6
,
0xbc
,
0xae
,
0x22
,
0x2b
,
0x67
,
0xb9
,
0x0f
,
0x1b
,
0x2c
,
0xd8
,
0x6a
,
0x30
,
0x63
,
0xe5
,
0x60
,
0x3a
,
0x0c
,
0xff
,
0x39
,
0x05
,
0x05
,
0x36
,
0x98
,
0x18
,
0xa3
,
0x0c
,
0xa9
,
0x40
,
0x2c
,
0xd7
,
0x2c
,
0x49
,
0x05
,
0xe7
,
0xe8
,
0x33
,
0xc8
,
0x0d
,
0xf8
,
0x02
,
0x94
,
0x34
,
0x6d
,
0x2d
,
0x59
,
0x98
,
0xb6
,
0x33
,
0x65
,
0xeb
,
0x49
,
0xe0
,
0xd0
,
0x3d
,
0xc8
,
0x0f
,
0x45
,
0xac
,
0x25
,
0x5b
,
0x1f
,
0x46
,
0x5d
,
0x62
,
0x49
,
0xd0
,
0x5a
,
0x23
,
0x0a
,
0x89
,
0x1e
,
0xc0
,
0xfa
,
0x5b
,
0x49
,
0x19
,
0x5f
,
0xa0
,
0x1b
,
0xb5
,
0x6a
,
0xd4
,
0x2b
,
0x4e
,
0x66
,
0x6b
,
0x8d
,
0x84
,
0x58
,
0xd6
,
0x2f
,
0x90
,
0x19
,
0x20
,
0x97
,
0xae
,
0xd6
,
0x2f
,
0x9e
,
0x1b
,
0xac
,
0x9f
,
0xc2
,
0xa2
,
0x1f
,
0xea
,
0x0b
,
0x25
,
0xc7
,
0x3b
,
0xde
,
0x88
,
0x3a
,
0x26
,
0x88
,
0x65
,
0x3b
,
0x49
,
0x88
,
0x8e
,
0x96
,
0x7e
,
0x0b
,
0x90
,
0xf4
,
0xa7
,
0xab
,
0xad
,
0x8e
,
0x6d
,
0x58
,
0x9f
,
0x3a
,
0x01
,
0x6d
,
0x59
,
0xfe
,
0x48
,
0x2d
,
0x5d
,
0x25
,
0x6b
,
0x69
,
0x20
,
0x96
,
0x95
,
0x94
,
0xf0
,
0x1f
,
0x0d
,
0xb8
,
0xa6
,
0x9c
,
0xd4
,
0xc7
,
0xc2
,
0x50
,
0x0c
,
0x3c
,
0x4a
,
0x89
,
0xe3
,
0x04
,
0xda
,
0x78
,
0x31
,
0x1d
,
0xba
,
0x05
,
0xa5
,
0xe9
,
0x6c
,
0x3c
,
0xb6
,
0x4f
,
0x6c
,
0xea
,
0x71
,
0x90
,
0x18
,
0x3a
,
0xae
,
0x44
,
0xfb
,
0x80
,
0x42
,
0x0f
,
0x7a
,
0x2c
,
0x93
,
0x38
,
0x54
,
0xec
,
0x10
,
0x4b
,
0x5a
,
0x34
,
0x4b
,
0x33
,
0x31
,
0x4b
,
0xff
,
0x6e
,
0x40
,
0x55
,
0xd1
,
0xca
,
0x6d
,
0x7c
,
0x0f
,
0x73
,
0xfd
,
0x91
,
0x4d
,
0xc7
,
0xc3
,
0x3a
,
0x1f
,
0xf0
,
0xb9
,
0x32
,
0x37
,
0xa6
,
0x4c
,
0xa2
,
0x5e
,
0x48
,
0x4b
,
0xe3
,
0xca
,
0x15
,
0x4e
,
0x65
,
0x56
,
0x3a
,
0xb5
,
0x40
,
0x55
,
0x76
,
0x09
,
0x55
,
0xf8
,
0x97
,
0x06
,
0xdc
,
0x50
,
0x2e
,
0x1e
,
0xf1
,
0xf5
,
0x7f
,
0xd9
,
0xf0
,
0x7e
,
0x8b
,
0xbe
,
0xe1
,
0xbf
,
0x18
,
0x70
,
0x3d
,
0x4c
,
0xc3
,
0xab
,
0x92
,
0xbc
,
0x0b
,
0x9b
,
0x96
,
0xd6
,
0x37
,
0x3a
,
0xda
,
0x93
,
0x6a
,
0x66
,
0x4c
,
0xa8
,
0xd2
,
0x52
,
0x22
,
0xae
,
0xbc
,
0x2a
,
0xd1
,
0x78
,
0x07
,
0xa0
,
0x39
,
0xb7
,
0xfd
,
0xe0
,
0x29
,
0x5b
,
0x27
,
0xac
,
0xf0
,
0x90
,
0xf5
,
0x8c
,
0xb1
,
0xbb
,
0x2e
,
0x6b
,
0x97
,
0x3d
,
0x30
,
0xc5
,
0xfe
,
0xd3
,
0xf7
,
0x28
,
0x7d
,
0x42
,
0xad
,
0x33
,
0xea
,
0xb3
,
0x9c
,
0x1b
,
0xf3
,
0x2f
,
0xbe
,
0x73
,
0x15
,
0x89
,
0x94
,
0xf0
,
0x1d
,
0xd8
,
0x8c
,
0xb0
,
0xcc
,
0x47
,
0x9f
,
0x1d
,
0x5d
,
0x1e
,
0xfb
,
0x90
,
0x48
,
0x21
,
0xe0
,
0x3f
,
0x18
,
0x3a
,
0xb2
,
0xeb
,
0x39
,
0x67
,
0x94
,
0x9f
,
0x96
,
0x71
,
0xaa
,
0x42
,
0x99
,
0xb5
,
0xf1
,
0xb3
,
0xa4
,
0x47
,
0x03
,
0xbe
,
0xf3
,
0x16
,
0x48
,
0x28
,
0xa3
,
0x8f
,
0x01
,
0x5c
,
0xb1
,
0x5f
,
0x0e
,
0xe9
,
0x9c
,
0xb3
,
0x52
,
0x22
,
0x9a
,
0x86
,
0x9d
,
0xb4
,
0xd3
,
0xd9
,
0x44
,
0x58
,
0xce
,
0x99
,
0x28
,
0x91
,
0x48
,
0x81
,
0xaa
,
0x90
,
0x1f
,
0xd1
,
0xb1
,
0x4b
,
0x3d
,
0xbf
,
0x9a
,
0xdd
,
0x49
,
0xef
,
0x96
,
0x88
,
0x12
,
0x71
,
0x13
,
0x36
,
0x98
,
0x71
,
0x7c
,
0x1b
,
0xa6
,
0x6f
,
0x2e
,
0x32
,
0x6f
,
0x4c
,
0xad
,
0x13
,
0x6d
,
0x51
,
0x87
,
0x32
,
0xbe
,
0x0d
,
0x45
,
0xce
,
0x9c
,
0xed
,
0x07
,
0x84
,
0xfa
,
0x6e
,
0x82
,
0xbb
,
0x42
,
0xc8
,
0xdd
,
0x4b
,
0x28
,
0x47
,
0x35
,
0x4c
,
0xd7
,
0xb2
,
0x3d
,
0x74
,
0x1b
,
0xca
,
0xaa
,
0x94
,
0x90
,
0xa9
,
0x21
,
0xe6
,
0x4d
,
0x68
,
0x59
,
0x1d
,
0xc0
,
0x8f
,
0x9c
,
0xae
,
0x67
,
0x6b
,
0xa5
,
0xa1
,
0xa6
,
0xc2
,
0xb7
,
0x20
,
0x27
,
0xb1
,
0x45
,
0x30
,
0x9e
,
0xcb
,
0x61
,
0x8c
,
0xe7
,
0x4c
,
0x7a
,
0x21
,
0xf1
,
0xc6
,
0x0b
,
0xfc
,
0x11
,
0xe4
,
0xbb
,
0x9e
,
0x7d
,
0x26
,
0x2b
,
0xd0
,
0x30
,
0x11
,
0x0a
,
0x32
,
0x11
,
0x1c
,
0x40
,
0xbd
,
0x91
,
0xe5
,
0xd1
,
0x9e
,
0x2a
,
0x22
,
0xb9
,
0x91
,
0xbb
,
0x90
,
0x77
,
0x45
,
0x27
,
0x79
,
0x90
,
0x97
,
0x55
,
0x35
,
0x25
,
0xb4
,
0x44
,
0x35
,
0xa3
,
0x4f
,
0x55
,
0x05
,
0x6b
,
0x4f
,
0x4f
,
0xbb
,
0xaf
,
0xe5
,
0x21
,
0x95
,
0xa8
,
0xbd
,
0x74
,
0x04
,
0xfe
,
0x8d
,
0x01
,
0x95
,
0xfa
,
0x60
,
0xc0
,
0x56
,
0x19
,
0x1b
,
0xcc
,
0x1a
,
0xf0
,
0xf2
,
0xf0
,
0x7b
,
0xb1
,
0x22
,
0x50
,
0xcc
,
0xf9
,
0xc1
,
0x42
,
0x11
,
0xc8
,
0x6c
,
0xd3
,
0xcb
,
0x40
,
0x54
,
0x87
,
0xb2
,
0x1f
,
0xb3
,
0x5e
,
0x1a
,
0xa0
,
0xce
,
0x92
,
0x45
,
0xd7
,
0x48
,
0xa2
,
0x03
,
0xfe
,
0x09
,
0x54
,
0x9e
,
0x59
,
0xe3
,
0x31
,
0x0d
,
0xea
,
0xc3
,
0xa1
,
0x27
,
0x2d
,
0x42
,
0x35
,
0xe1
,
0xbf
,
0x35
,
0x50
,
0xb6
,
0xa8
,
0x53
,
0x6d
,
0xc1
,
0x72
,
0xa2
,
0x80
,
0x61
,
0x7d
,
0x9f
,
0x8a
,
0xea
,
0x7b
,
0xb6
,
0x8b
,
0x80
,
0x98
,
0xaa
,
0x61
,
0x05
,
0xd6
,
0xa5
,
0x63
,
0x8f
,
0xa1
,
0x28
,
0x4a
,
0xca
,
0xd8
,
0xe6
,
0x11
,
0xd3
,
0x2d
,
0xdb
,
0x63
,
0xd2
,
0xcb
,
0xf7
,
0x98
,
0x15
,
0x67
,
0x09
,
0x5b
,
0x62
,
0x6c
,
0xeb
,
0x24
,
0xd6
,
0x74
,
0xe8
,
0x4c
,
0xe4
,
0x5e
,
0xac
,
0x69
,
0xf0
,
0x4b
,
0xa8
,
0x34
,
0xa7
,
0x03
,
0x67
,
0x48
,
0x87
,
0x9a
,
0x0b
,
0x55
,
0xc8
,
0x53
,
0xa1
,
0x94
,
0xb6
,
0x2b
,
0x11
,
0xdd
,
0x85
,
0xbc
,
0x67
,
0xbd
,
0x65
,
0x20
,
0x19
,
0x04
,
0x55
,
0xc4
,
0x47
,
0xbd
,
0x89
,
0x42
,
0xe0
,
0x9f
,
0xf1
,
0xb1
,
0xbd
,
0x73
,
0x37
,
0xd0
,
0xc6
,
0x8e
,
0xca
,
0x73
,
0x43
,
0x2f
,
0xcf
,
0xd1
,
0xe7
,
0x50
,
0x14
,
0x28
,
0x8d
,
0x8e
,
0x85
,
0x24
,
0x8b
,
0x41
,
0xf0
,
0x2f
,
0x0c
,
0xa8
,
0x34
,
0xe8
,
0x65
,
0x27
,
0xa8
,
0x85
,
0x13
,
0x44
,
0x8b
,
0x6d
,
0x31
,
0xe7
,
0x63
,
0x18
,
0x75
,
0xd9
,
0x48
,
0xaf
,
0xba
,
0x6c
,
0xe0
,
0xdf
,
0x1a
,
0xb0
,
0xa9
,
0xea
,
0x13
,
0xb6
,
0x6f
,
0xb1
,
0xed
,
0x86
,
0x07
,
0x56
,
0x84
,
0xba
,
0x1e
,
0xdd
,
0x05
,
0x63
,
0x3a
,
0x16
,
0x16
,
0x11
,
0xe8
,
0x7a
,
0x94
,
0x4d
,
0x9a
,
0x26
,
0x76
,
0x64
,
0x70
,
0x48
,
0xf2
,
0xc8
,
0xe0
,
0xa8
,
0x78
,
0xd0
,
0xc3
,
0x8a
,
0x17
,
0x7f
,
0x6d
,
0x80
,
0x19
,
0xb7
,
0xca
,
0x77
,
0xdf
,
0x79
,
0xa8
,
0xde
,
0x89
,
0xdf
,
0x08
,
0x96
,
0x04
,
0x55
,
0x5e
,
0x5c
,
0xae
,
0x7a
,
0x2d
,
0xf9
,
0xda
,
0x80
,
0x12
,
0x3f
,
0x27
,
0xac
,
0x60
,
0xc4
,
0x4d
,
0xb9
,
0xd4
,
0xd1
,
0xba
,
0xcd
,
0x0a
,
0x4e
,
0xd1
,
0x49
,
0x9d
,
0x19
,
0x4a
,
0xd6
,
0x77
,
0xfd
,
0x74
,
0x6c
,
0xd7
,
0x67
,
0xa7
,
0xc5
,
0x99
,
0x35
,
0xb6
,
0x87
,
0xbc
,
0x5b
,
0x86
,
0xb7
,
0x45
,
0x0a
,
0xbc
,
0x0f
,
0x66
,
0x58
,
0xfd
,
0xa9
,
0x48
,
0xbd
,
0x83
,
0x12
,
0xfc
,
0xd7
,
0x14
,
0x54
,
0x12
,
0x1d
,
0x7c
,
0x17
,
0x7d
,
0x27
,
0x96
,
0x5c
,
0x4b
,
0x99
,
0x52
,
0xf9
,
0xf6
,
0xdf
,
0xa9
,
0x19
,
0x75
,
0x93
,
0x33
,
0x89
,
0x28
,
0x62
,
0x79
,
0xd1
,
0x91
,
0xb9
,
0x2c
,
0x57
,
0x7b
,
0x4c
,
0xc7
,
0x48
,
0xe2
,
0xf2
,
0xc1
,
0xd8
,
0x3a
,
0xe5
,
0x35
,
0x79
,
0x81
,
0x44
,
0x8a
,
0x58
,
0xda
,
0x71
,
0x44
,
0x3e
,
0x91
,
0x76
,
0x1c
,
0x55
,
0x83
,
0x42
,
0x20
,
0xce
,
0x7e
,
0xe7
,
0xa4
,
0xba
,
0x1e
,
0x4b
,
0x83
,
0x58
,
0xac
,
0x49
,
0x04
,
0xc3
,
0x07
,
0x50
,
0xe4
,
0xef
,
0x28
,
0x97
,
0xa0
,
0x9e
,
0x87
,
0xdf
,
0x21
,
0x7c
,
0x31
,
0x70
,
0xd2
,
0x4a
,
0x24
,
0x94
,
0xf1
,
0x37
,
0x29
,
0x28
,
0x69
,
0x03
,
0xf9
,
0x6e
,
0x94
,
0xbb
,
0xc6
,
0x05
,
0xb9
,
0xfb
,
0x31
,
0x80
,
0x15
,
0x3e
,
0xe5
,
0xa8
,
0x35
,
0x17
,
0x69
,
0xd8
,
0x61
,
0xcc
,
0x25
,
0xc9
,
0x9e
,
0x88
,
0x81
,
0xae
,
0x62
,
0x86
,
0x31
,
0x51
,
0x27
,
0x5f
,
0xc9
,
0x2b
,
0x02
,
0x99
,
0xbd
,
0x54
,
0x20
,
0x73
,
0x09
,
0x02
,
0x62
,
0x41
,
0xca
,
0x27
,
0x83
,
0xf4
,
0x3e
,
0xf4
,
0xff
,
0xde
,
0x00
,
0x53
,
0xd5
,
0xdb
,
0x97
,
0x8a
,
0xc1
,
0x16
,
0xe4
,
0x02
,
0x47
,
0xdb
,
0x9c
,
0xa4
,
0xc4
,
0x48
,
0x0c
,
0x1c
,
0x16
,
0x00
,
0x6d
,
0x57
,
0xd2
,
0x34
,
0x89
,
0x8d
,
0x2d
,
0xb3
,
0xb0
,
0xb1
,
0x45
,
0x5b
,
0x56
,
0x36
,
0xb6
,
0x65
,
0xed
,
0x41
,
0xb1
,
0xa7
,
0xd5
,
0xe6
,
0xef
,
0xac
,
0x76
,
0xfe
,
0x94
,
0x06
,
0x14
,
0xbf
,
0x1f
,
0xf1
,
0xf8
,
0x5e
,
0x3a
,
0x11
,
0xfe
,
0xb7
,
0x32
,
0xb5
,
0xd4
,
0x40
,
0xdf
,
0x87
,
0xa2
,
0x7e
,
0x2b
,
0xaa
,
0x16
,
0x78
,
0xb7
,
0x6b
,
0x61
,
0x71
,
0x15
,
0x35
,
0x91
,
0x18
,
0x90
,
0x39
,
0x25
,
0x82
,
0x27
,
0x8b
,
0x0b
,
0x10
,
0x4e
,
0xe9
,
0x3a
,
0xfc
,
0x4f
,
0x03
,
0xae
,
0x25
,
0xee
,
0x79
,
0x57
,
0x8b
,
0x95
,
0xce
,
0x6a
,
0x2a
,
0xc1
,
0xea
,
0x15
,
0x0f
,
0xa3
,
0x05
,
0x4f
,
0x33
,
0xef
,
0xeb
,
0x69
,
0x76
,
0x89
,
0xa7
,
0x7f
,
0x33
,
0xa0
,
0x92
,
0x58
,
0x61
,
0xbe
,
0x8b
,
0xbe
,
0x84
,
0x52
,
0xa0
,
0x67
,
0xaa
,
0xf4
,
0xf7
,
0x46
,
0x18
,
0x94
,
0x64
,
0x16
,
0x93
,
0x38
,
0x1e
,
0x7d
,
0x01
,
0xc5
,
0xc0
,
0xf2
,
0x4e
,
0x69
,
0x70
,
0xa4
,
0xbf
,
0xa3
,
0x6d
,
0x27
,
0xfa
,
0x6b
,
0xd4
,
0x92
,
0x18
,
0x9e
,
0xf5
,
0x17
,
0x6f
,
0x66
,
0xb2
,
0x7f
,
0xfa
,
0xe2
,
0xfe
,
0x3a
,
0x1e
,
0xff
,
0x2a
,
0x05
,
0x9b
,
0x31
,
0x66
,
0xfc
,
0x64
,
0x4d
,
0x69
,
0x24
,
0x6b
,
0x4a
,
0x56
,
0x01
,
0x2b
,
0x27
,
0x24
,
0x46
,
0x44
,
0x2e
,
0xa1
,
0x65
,
0xb4
,
0x8a
,
0xb9
,
0x24
,
0x4a
,
0xac
,
0xad
,
0x98
,
0x0e
,
0xdd
,
0x81
,
0x0c
,
0x1b
,
0xf9
,
0x5d
,
0xb1
,
0xe2
,
0x00
,
0xf4
,
0xe9
,
0xc2
,
0x23
,
0xd5
,
0x52
,
0x70
,
0xf4
,
0x3a
,
0x75
,
0x37
,
0x7c
,
0x6f
,
0xcc
,
0xad
,
0x86
,
0xab
,
0x07
,
0xc7
,
0x5f
,
0xa7
,
0x60
,
0x53
,
0xdc
,
0x20
,
0xf8
,
0xcd
,
0x94
,
0x3f
,
0xed
,
0xbe
,
0x6b
,
0xfb
,
0xe4
,
0x37
,
0x57
,
0xb9
,
0x9b
,
0x48
,
0xef
,
0x23
,
0xc5
,
0x95
,
0xb7
,
0x96
,
0x9b
,
0x90
,
0xf1
,
0x9c
,
0xb1
,
0x20
,
0xa1
,
0x5c
,
0xdb
,
0x90
,
0x86
,
0x12
,
0x67
,
0x4c
,
0x09
,
0x6f
,
0x60
,
0x45
,
0x91
,
0x25
,
0x2e
,
0x2d
,
0x32
,
0x37
,
0x95
,
0xc8
,
0x0b
,
0x96
,
0xc0
,
0x0a
,
0x66
,
0x3e
,
0xf7
,
0x32
,
0xfa
,
0x6d
,
0xd2
,
0x71
,
0x02
,
0xda
,
0xe3
,
0x0d
,
0x44
,
0x02
,
0xb4
,
0xda
,
0x26
,
0x7f
,
0x41
,
0x6d
,
0x83
,
0x9f
,
0x29
,
0x36
,
0x1a
,
0xaf
,
0x0e
,
0x6d
,
0xc1
,
0xc6
,
0x1e
,
0x64
,
0xec
,
0xe9
,
0x89
,
0x23
,
0x13
,
0x5c
,
0xbd
,
0x60
,
0x26
,
0x38
,
0x23
,
0x1c
,
0xc3
,
0xcc
,
0x0d
,
0xe6
,
0xe2
,
0xd2
,
0x2f
,
0xb8
,
0x51
,
0x22
,
0xfe
,
0x87
,
0xa1
,
0x6e
,
0x6a
,
0x7c
,
0xdc
,
0x21
,
0x9d
,
0x5f
,
0x74
,
0x50
,
0x7d
,
0xbb
,
0x4c
,
0xaf
,
0x26
,
0x72
,
0x2b
,
0x46
,
0x64
,
0x36
,
0x64
,
0xed
,
0x3a
,
0x64
,
0x05
,
0x3e
,
0xcf
,
0xd5
,
0x42
,
0x60
,
0x56
,
0x0d
,
0x6d
,
0x8f
,
0x8a
,
0xbf
,
0x2d
,
0xeb
,
0xbc
,
0x25
,
0x52
,
0xe0
,
0x2f
,
0x63
,
0xc9
,
0xc4
,
0x37
,
0x8a
,
0xef
,
0x42
,
0x96
,
0xb9
,
0xa4
,
0x1e
,
0x94
,
0x57
,
0xf1
,
0x27
,
0x40
,
0xf8
,
0x36
,
0x94
,
0x45
,
0x0b
,
0xa1
,
0x6f
,
0xd8
,
0xb1
,
0xca
,
0xcd
,
0x60
,
0x97
,
0x51
,
0xf5
,
0x34
,
0x21
,
0x04
,
0x4c
,
0x60
,
0x4b
,
0xe0
,
0x9a
,
0x53
,
0xeb
,
0xd5
,
0x98
,
0xca
,
0x1b
,
0x2d
,
0x5b
,
0xc3
,
0xcb
,
0x7e
,
0x54
,
0x21
,
0xc8
,
0xd8
,
0xfe
,
0xd1
,
0x63
,
0xce
,
0xe2
,
0x3a
,
0xe1
,
0xdf
,
0xc8
,
0x84
,
0xf4
,
0xc4
,
0x3f
,
0x95
,
0x8c
,
0xb1
,
0x4f
,
0xdc
,
0x81
,
0x0f
,
0x97
,
0x8d
,
0xc9
,
0x9c
,
0xb8
,
0x07
,
0x59
,
0x8f
,
0xfa
,
0xae
,
0x72
,
0xe2
,
0xa3
,
0x98
,
0x13
,
0x49
,
0x13
,
0x88
,
0xc0
,
0xe2
,
0x0e
,
0xc0
,
0x13
,
0x67
,
0x60
,
0x8d
,
0x0f
,
0xed
,
0x79
,
0x7f
,
0xce
,
0x6c
,
0x18
,
0x45
,
0x61
,
0xe6
,
0xdf
,
0x8c
,
0xfa
,
0x11
,
0xb5
,
0x4f
,
0x47
,
0x62
,
0xf7
,
0x4b
,
0x13
,
0x29
,
0x31
,
0x9f
,
0xed
,
0xf0
,
0xe5
,
0x28
,
0x4d
,
0x84
,
0xc0
,
0x4a
,
0x9d
,
0x22
,
0x1f
,
0x4b
,
0xbc
,
0xdb
,
0xbc
,
0xd1
,
0xb3
,
0xcd
,
0x88
,
0x65
,
0x5b
,
0x38
,
0x59
,
0x6a
,
0xe9
,
0x64
,
0xe9
,
0xe5
,
0x93
,
0x65
,
0xb4
,
0xc9
,
0xa2
,
0xe8
,
0x67
,
0x57
,
0x46
,
0x3f
,
0x97
,
0x8c
,
0xfe
,
0x7d
,
0x28
,
0x69
,
0xf6
,
0xf9
,
0x2e
,
0xfa
,
0x04
,
0xd2
,
0xc1
,
0x5c
,
0x91
,
0xa6
,
0x56
,
0x5d
,
0xc4
,
0x09
,
0x61
,
0xad
,
0xf8
,
0x10
,
0x2a
,
0x92
,
0x3b
,
0x16
,
0x70
,
0x42
,
0xfd
,
0xd9
,
0xf8
,
0x3f
,
0x89
,
0x62
,
0x1b
,
0xae
,
0x11
,
0xfa
,
0x66
,
0x21
,
0x2d
,
0x6a
,
0x90
,
0xf7
,
0xf8
,
0xd0
,
0xca
,
0x9c
,
0xaa
,
0x76
,
0x3f
,
0x8e
,
0xcd
,
0x4d
,
0x14
,
0x70
,
0xef
,
0xa7
,
0x00
,
0xd1
,
0x4f
,
0x58
,
0xb4
,
0x01
,
0xf9
,
0x46
,
0xb3
,
0x7b
,
0xd4
,
0x6b
,
0xf7
,
0xcd
,
0x35
,
0x54
,
0x84
,
0xf5
,
0x67
,
0xed
,
0x7e
,
0xab
,
0x41
,
0xea
,
0xcf
,
0x4c
,
0x03
,
0x55
,
0xa0
,
0xd4
,
0x27
,
0xf5
,
0x4e
,
0xef
,
0xa0
,
0x49
,
0xda
,
0x9d
,
0xee
,
0x71
,
0xdf
,
0x4c
,
0x21
,
0x04
,
0x65
,
0xa5
,
0x3a
,
0x3a
,
0xee
,
0x33
,
0x5d
,
0x1a
,
0x95
,
0xa0
,
0x50
,
0x3f
,
0xee
,
0xb7
,
0x8e
,
0x48
,
0xfb
,
0x65
,
0xd3
,
0xcc
,
0xec
,
0xd5
,
0x39
,
0x5d
,
0xd1
,
0xaf
,
0x4c
,
0xd6
,
0x1e
,
0xfe
,
0x7f
,
0x34
,
0xd7
,
0x50
,
0x19
,
0x20
,
0xfa
,
0x43
,
0x2b
,
0x66
,
0x91
,
0x8f
,
0x49
,
0x52
,
0x95
,
0xda
,
0xfb
,
0x84
,
0x67
,
0x44
,
0xf8
,
0x2b
,
0x05
,
0xe5
,
0x21
,
0x5d
,
0x1f
,
0x0e
,
0xcd
,
0x35
,
0x04
,
0x90
,
0x6b
,
0xd0
,
0x31
,
0x0d
,
0xa8
,
0x69
,
0xec
,
0xfd
,
0x00
,
0x20
,
0xda
,
0x14
,
0x51
,
0x01
,
0xb2
,
0xc7
,
0x9d
,
0x46
,
0xf3
,
0xc0
,
0x5c
,
0x63
,
0x9f
,
0x4f
,
0xeb
,
0x4f
,
0xda
,
0x0d
,
0xd3
,
0x60
,
0xf8
,
0x03
,
0x72
,
0xf4
,
0xb2
,
0xd9
,
0x31
,
0x53
,
0x68
,
0x1d
,
0x32
,
0xc7
,
0xbd
,
0x66
,
0xc3
,
0x4c
,
0xef
,
0x7d
,
0x0e
,
0x19
,
0xb6
,
0x17
,
0x33
,
0xd7
,
0x7b
,
0xdd
,
0x66
,
0xa7
,
0xd1
,
0x24
,
0xc2
,
0x75
,
0xd2
,
0xec
,
0x1f
,
0x93
,
0x4e
,
0x93
,
0x98
,
0x06
,
0x37
,
0x52
,
0xf9
,
0x44
,
0xcc
,
0xd4
,
0xde
,
0x8f
,
0xe0
,
0x83
,
0x43
,
0x7b
,
0xae
,
0xd6
,
0xb0
,
0x3f
,
0xb0
,
0xa6
,
0x72
,
0xde
,
0x75
,
0xc8
,
0xb4
,
0x1b
,
0x4f
,
0x9a
,
0x62
,
0x80
,
0xde
,
0xc3
,
0x7a
,
0xa7
,
0xd3
,
0xee
,
0x3c
,
0x32
,
0x0d
,
0x26
,
0x1d
,
0xb4
,
0x3b
,
0xed
,
0x5e
,
0xab
,
0xd9
,
0x30
,
0x53
,
0xb5
,
0x6f
,
0x0c
,
0x80
,
0x89
,
0x3d
,
0x57
,
0x2f
,
0x59
,
0xf7
,
0x61
,
0xf3
,
0x51
,
0x62
,
0x1c
,
0xf5
,
0x58
,
0x41
,
0xe8
,
0x9b
,
0x8e
,
0x3d
,
0xde
,
0x36
,
0x23
,
0xb1
,
0x17
,
0x78
,
0xf6
,
0xf4
,
0x14
,
0xaf
,
0xa1
,
0xcf
,
0x60
,
0x43
,
0x74
,
0x61
,
0x6e
,
0x5f
,
0xaa
,
0xc7
,
0x17
,
0x50
,
0x8a
,
0x65
,
0x0c
,
0xda
,
0x8c
,
0x40
,
0x7c
,
0x1b
,
0xda
,
0xde
,
0x8e
,
0x14
,
0xc9
,
0xdc
,
0xc2
,
0x6b
,
0xaf
,
0x72
,
0xfc
,
0xbf
,
0xfe
,
0xbd
,
0x7f
,
0x07
,
0x00
,
0x00
,
0xff
,
0xff
,
0x1d
,
0x09
,
0x71
,
0xcc
,
0x0c
,
0x20
,
0x00
,
0x00
,
}
// Reference imports to suppress errors if they are not otherwise used.
...
...
plugin/dapp/mix/wallet/mixbizdb.go
View file @
ce15f935
...
...
@@ -350,11 +350,15 @@ func (p *mixPolicy) decodeSecret(noteHash string, secretData string, privacyKeys
//如果授权为returnerAuthHash,则returner更新本地为VALID,spender侧仍为FROZEN,
info
.
AuthorizeSpendHash
=
"0"
if
len
(
rawData
.
AuthorizePubKey
)
>
LENNULLKEY
{
if
rawData
.
ReceiverPubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
switch
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
case
rawData
.
ReceiverPubKey
:
info
.
Role
=
mixTy
.
Role_SPENDER
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReceiverPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
}
else
if
rawData
.
ReturnPubKey
==
key
.
Privacy
.
PaymentKey
.
ReceiverPubKey
{
info
.
IsReturner
=
true
case
rawData
.
ReturnPubKey
:
info
.
Role
=
mixTy
.
Role_RETURNER
info
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
rawData
.
ReturnPubKey
,
rawData
.
Amount
,
rawData
.
NoteRandom
}))
case
rawData
.
AuthorizePubKey
:
info
.
Role
=
mixTy
.
Role_AUTHORIZER
}
}
...
...
plugin/dapp/mix/wallet/proof.go
View file @
ce15f935
...
...
@@ -210,12 +210,12 @@ func (policy *mixPolicy) withdrawProof(req *mixTy.WithdrawProofReq) (*mixTy.With
resp
.
NullifierHash
=
note
.
Nullifier
resp
.
AuthorizeSpendHash
=
note
.
AuthorizeSpendHash
resp
.
NoteHash
=
note
.
NoteHash
resp
.
SpendFlag
=
1
if
note
.
IsReturner
{
resp
.
SpendFlag
=
0
resp
.
SpendFlag
=
"1"
if
note
.
Role
==
mixTy
.
Role_RETURNER
{
resp
.
SpendFlag
=
"0"
}
if
len
(
resp
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
resp
.
AuthorizeFlag
=
1
resp
.
AuthorizeFlag
=
"1"
}
//get spend privacy key
...
...
@@ -260,10 +260,10 @@ func (policy *mixPolicy) authProof(req *mixTy.AuthProofReq) (*mixTy.AuthProofRes
resp
.
AuthHash
=
getFrString
(
mimcHashString
([]
string
{
resp
.
AuthPubKey
,
note
.
Secret
.
NoteRandom
}))
//default auto to paymenter
resp
.
SpendFlag
=
1
resp
.
SpendFlag
=
"1"
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReceiverPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
if
req
.
ToReturn
!=
0
{
resp
.
SpendFlag
=
0
resp
.
SpendFlag
=
"0"
//auth to returner
resp
.
AuthorizeSpendHash
=
getFrString
(
mimcHashString
([]
string
{
note
.
Secret
.
ReturnPubKey
,
note
.
Secret
.
Amount
,
note
.
Secret
.
NoteRandom
}))
}
...
...
@@ -313,12 +313,12 @@ func (policy *mixPolicy) getTransferInputPart(note *mixTy.WalletIndexInfo) (*mix
return
nil
,
errors
.
Wrapf
(
types
.
ErrInvalidParam
,
"payment pubkey from note=%s not match from privacyKey=%s,for account =%s"
,
note
.
Secret
.
ReceiverPubKey
,
privacyKey
.
Privacy
.
PaymentKey
.
ReceiverPubKey
,
note
.
Account
)
}
input
.
SpendFlag
=
1
if
note
.
IsReturner
{
input
.
SpendFlag
=
0
input
.
SpendFlag
=
"1"
if
note
.
Role
==
mixTy
.
Role_RETURNER
{
input
.
SpendFlag
=
"0"
}
if
len
(
input
.
AuthorizeSpendHash
)
>
LENNULLKEY
{
input
.
AuthorizeFlag
=
1
input
.
AuthorizeFlag
=
"1"
}
treeProof
,
err
:=
policy
.
getTreeProof
(
note
.
NoteHash
)
...
...
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