diff --git a/Makefile b/Makefile
index 0e6e2c63..49ef29b8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,10 @@
all:
clone-injective-indexer:
- git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.17.16 --depth 1 --single-branch
+ git clone https://github.com/InjectiveLabs/injective-indexer.git -b v1.18.3 --depth 1 --single-branch
clone-injective-core:
- git clone https://github.com/InjectiveLabs/injective-core.git -b v1.17.0 --depth 1 --single-branch
+ git clone https://github.com/InjectiveLabs/injective-core.git -b v1.18.0 --depth 1 --single-branch
copy-exchange-client: clone-injective-indexer
rm -rf exchange/*
@@ -104,11 +104,11 @@ copy-chain-types: clone-injective-core
cp injective-core/injective-chain/modules/oracle/types/oracle.go chain/oracle/types && \
cp injective-core/injective-chain/modules/oracle/types/params.go chain/oracle/types && \
cp injective-core/injective-chain/modules/oracle/types/proposal.go chain/oracle/types && \
- cp injective-core/injective-chain/modules/oracle/types/stork_oracle.go chain/oracle/types && \
- cp -r injective-core/injective-chain/modules/oracle/bandchain chain/oracle
+ cp injective-core/injective-chain/modules/oracle/types/stork_oracle.go chain/oracle/types
mkdir -p chain/peggy/types && \
cp injective-core/injective-chain/modules/peggy/types/*.pb.go chain/peggy/types && \
cp injective-core/injective-chain/modules/peggy/types/abi_json.go chain/peggy/types && \
+ cp injective-core/injective-chain/modules/peggy/types/batch.go chain/peggy/types && \
cp injective-core/injective-chain/modules/peggy/types/codec.go chain/peggy/types && \
cp injective-core/injective-chain/modules/peggy/types/ethereum.go chain/peggy/types && \
cp injective-core/injective-chain/modules/peggy/types/ethereum_signer.go chain/peggy/types && \
@@ -206,9 +206,9 @@ extract-message-names:
# done
tests:
- go test -race ./client/... ./ethereum/...
+ go clean -testcache && go test -race ./client/... ./ethereum/...
coverage:
- go test -race -coverprofile=coverage.out -covermode=atomic ./client/... ./ethereum/...
+ go clean -testcache && go test -race -coverprofile=coverage.out -covermode=atomic ./client/... ./ethereum/...
lint: export GOPROXY=direct
lint:
diff --git a/NOTICE.md b/NOTICE.md
index 9e73b26c..6c764188 100644
--- a/NOTICE.md
+++ b/NOTICE.md
@@ -1,4 +1,4 @@
-Copyright © 2020 - 2022 Injective Labs Inc. (https://injectivelabs.org/)
+Copyright © 2020 - 2026 Injective Labs Inc. (https://injectivelabs.org/)
diff --git a/README.md b/README.md
index c07d3721..10fa8aa5 100644
--- a/README.md
+++ b/README.md
@@ -114,7 +114,7 @@ Reach out to us at one of the following places!
## License
-Copyright © 2020 - 2025 Injective Labs Inc. (https://injectivelabs.org/)
+Copyright © 2020 - 2026 Injective Labs Inc. (https://injectivelabs.org/)
diff --git a/chain/evm/precompiles/bank/fixed_supply_bank_erc20.abigen.go b/chain/evm/precompiles/bank/fixed_supply_bank_erc20.abigen.go
index 9cc00e26..950ebe09 100644
--- a/chain/evm/precompiles/bank/fixed_supply_bank_erc20.abigen.go
+++ b/chain/evm/precompiles/bank/fixed_supply_bank_erc20.abigen.go
@@ -31,8 +31,8 @@ var (
// FixedSupplyBankERC20MetaData contains all meta data concerning the FixedSupplyBankERC20 contract.
var FixedSupplyBankERC20MetaData = &bind.MetaData{
- ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"initial_supply_\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
- Bin: "0x6080604052606460055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405162001f3f38038062001f3f83398181016040528101906200006a9190620006ca565b83838360405180602001604052805f81525060405180602001604052805f81525081600390816200009c9190620009a5565b508060049081620000ae9190620009a5565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337d2c2f48484846040518463ffffffff1660e01b8152600401620001119392919062000aea565b6020604051808303815f875af11580156200012e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000154919062000b6d565b505050505f81111562000174576200017333826200017e60201b60201c565b5b5050505062000c8d565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620001f1575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620001e8919062000be0565b60405180910390fd5b620002045f83836200020860201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620002e45760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b81526004016200029a92919062000c0c565b6020604051808303815f875af1158015620002b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000b6d565b5062000466565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003c05760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b81526004016200037692919062000c0c565b6020604051808303815f875af115801562000393573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003b9919062000b6d565b5062000465565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b8152600401620004209392919062000c37565b6020604051808303815f875af11580156200043d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000463919062000b6d565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004c5919062000c72565b60405180910390a3505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200053382620004eb565b810181811067ffffffffffffffff82111715620005555762000554620004fb565b5b80604052505050565b5f62000569620004d2565b905062000577828262000528565b919050565b5f67ffffffffffffffff821115620005995762000598620004fb565b5b620005a482620004eb565b9050602081019050919050565b5f5b83811015620005d0578082015181840152602081019050620005b3565b5f8484015250505050565b5f620005f1620005eb846200057c565b6200055e565b90508281526020810184848401111562000610576200060f620004e7565b5b6200061d848285620005b1565b509392505050565b5f82601f8301126200063c576200063b620004e3565b5b81516200064e848260208601620005db565b91505092915050565b5f60ff82169050919050565b6200066e8162000657565b811462000679575f80fd5b50565b5f815190506200068c8162000663565b92915050565b5f819050919050565b620006a68162000692565b8114620006b1575f80fd5b50565b5f81519050620006c4816200069b565b92915050565b5f805f8060808587031215620006e557620006e4620004db565b5b5f85015167ffffffffffffffff811115620007055762000704620004df565b5b620007138782880162000625565b945050602085015167ffffffffffffffff811115620007375762000736620004df565b5b620007458782880162000625565b935050604062000758878288016200067c565b92505060606200076b87828801620006b4565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620007c657607f821691505b602082108103620007dc57620007db62000781565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000803565b6200084c868362000803565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200088d62000887620008818462000692565b62000864565b62000692565b9050919050565b5f819050919050565b620008a8836200086d565b620008c0620008b78262000894565b8484546200080f565b825550505050565b5f90565b620008d6620008c8565b620008e38184846200089d565b505050565b5b818110156200090a57620008fe5f82620008cc565b600181019050620008e9565b5050565b601f82111562000959576200092381620007e2565b6200092e84620007f4565b810160208510156200093e578190505b620009566200094d85620007f4565b830182620008e8565b50505b505050565b5f82821c905092915050565b5f6200097b5f19846008026200095e565b1980831691505092915050565b5f6200099583836200096a565b9150826002028217905092915050565b620009b08262000777565b67ffffffffffffffff811115620009cc57620009cb620004fb565b5b620009d88254620007ae565b620009e58282856200090e565b5f60209050601f83116001811462000a1b575f841562000a06578287015190505b62000a12858262000988565b86555062000a81565b601f19841662000a2b86620007e2565b5f5b8281101562000a545784890151825560018201915060208501945060208101905062000a2d565b8683101562000a74578489015162000a70601f8916826200096a565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b5f62000aa58262000777565b62000ab1818562000a89565b935062000ac3818560208601620005b1565b62000ace81620004eb565b840191505092915050565b62000ae48162000657565b82525050565b5f6060820190508181035f83015262000b04818662000a99565b9050818103602083015262000b1a818562000a99565b905062000b2b604083018462000ad9565b949350505050565b5f8115159050919050565b62000b498162000b33565b811462000b54575f80fd5b50565b5f8151905062000b678162000b3e565b92915050565b5f6020828403121562000b855762000b84620004db565b5b5f62000b948482850162000b57565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000bc88262000b9d565b9050919050565b62000bda8162000bbc565b82525050565b5f60208201905062000bf55f83018462000bcf565b92915050565b62000c068162000692565b82525050565b5f60408201905062000c215f83018562000bcf565b62000c30602083018462000bfb565b9392505050565b5f60608201905062000c4c5f83018662000bcf565b62000c5b602083018562000bcf565b62000c6a604083018462000bfb565b949350505050565b5f60208201905062000c875f83018462000bfb565b92915050565b6112a48062000c9b5f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610ce6565b60405180910390f35b6100cd60048036038101906100c89190610da4565b6102aa565b6040516100da9190610dfc565b60405180910390f35b6100eb6102cc565b6040516100f89190610e24565b60405180910390f35b61011b60048036038101906101169190610e3d565b61036b565b6040516101289190610dfc565b60405180910390f35b610139610399565b6040516101469190610ea8565b60405180910390f35b61016960048036038101906101649190610ec1565b610447565b6040516101769190610e24565b60405180910390f35b6101876104ea565b6040516101949190610ce6565b60405180910390f35b6101b760048036038101906101b29190610da4565b610598565b6040516101c49190610dfc565b60405180910390f35b6101e760048036038101906101e29190610eec565b6105ba565b6040516101f49190610e24565b60405180910390f35b60608060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b815260040161025a9190610f39565b5f60405180830381865afa158015610274573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061029c919061109a565b905050809150508091505090565b5f806102b461063c565b90506102c1818585610643565b600191505092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4dc2aa4306040518263ffffffff1660e01b81526004016103279190610f39565b602060405180830381865afa158015610342573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103669190611136565b905090565b5f8061037561063c565b9050610382858285610655565b61038d8585856106e8565b60019150509392505050565b5f8060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016103f59190610f39565b5f60405180830381865afa15801561040f573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610437919061109a565b9091509050809150508091505090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7888aec30846040518363ffffffff1660e01b81526004016104a4929190611161565b602060405180830381865afa1580156104bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e39190611136565b9050919050565b60608060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016105479190610f39565b5f60405180830381865afa158015610561573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610589919061109a565b90915050809150508091505090565b5f806105a261063c565b90506105af8185856106e8565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b61065083838360016107d8565b505050565b5f61066084846105ba565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106e257818110156106d3578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016106ca93929190611188565b60405180910390fd5b6106e184848484035f6107d8565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610758575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161074f9190610f39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107c8575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107bf9190610f39565b60405180910390fd5b6107d38383836109a7565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610848575f6040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161083f9190610f39565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108b8575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108af9190610f39565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156109a1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109989190610e24565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a7c5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610a369291906111bd565b6020604051808303815f875af1158015610a52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a76919061120e565b50610bf2565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b515760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b8152600401610b0b9291906111bd565b6020604051808303815f875af1158015610b27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4b919061120e565b50610bf1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b8152600401610baf93929190611239565b6020604051808303815f875af1158015610bcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bef919061120e565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c4f9190610e24565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610c93578082015181840152602081019050610c78565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610cb882610c5c565b610cc28185610c66565b9350610cd2818560208601610c76565b610cdb81610c9e565b840191505092915050565b5f6020820190508181035f830152610cfe8184610cae565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d4082610d17565b9050919050565b610d5081610d36565b8114610d5a575f80fd5b50565b5f81359050610d6b81610d47565b92915050565b5f819050919050565b610d8381610d71565b8114610d8d575f80fd5b50565b5f81359050610d9e81610d7a565b92915050565b5f8060408385031215610dba57610db9610d0f565b5b5f610dc785828601610d5d565b9250506020610dd885828601610d90565b9150509250929050565b5f8115159050919050565b610df681610de2565b82525050565b5f602082019050610e0f5f830184610ded565b92915050565b610e1e81610d71565b82525050565b5f602082019050610e375f830184610e15565b92915050565b5f805f60608486031215610e5457610e53610d0f565b5b5f610e6186828701610d5d565b9350506020610e7286828701610d5d565b9250506040610e8386828701610d90565b9150509250925092565b5f60ff82169050919050565b610ea281610e8d565b82525050565b5f602082019050610ebb5f830184610e99565b92915050565b5f60208284031215610ed657610ed5610d0f565b5b5f610ee384828501610d5d565b91505092915050565b5f8060408385031215610f0257610f01610d0f565b5b5f610f0f85828601610d5d565b9250506020610f2085828601610d5d565b9150509250929050565b610f3381610d36565b82525050565b5f602082019050610f4c5f830184610f2a565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b610f9082610c9e565b810181811067ffffffffffffffff82111715610faf57610fae610f5a565b5b80604052505050565b5f610fc1610d06565b9050610fcd8282610f87565b919050565b5f67ffffffffffffffff821115610fec57610feb610f5a565b5b610ff582610c9e565b9050602081019050919050565b5f61101461100f84610fd2565b610fb8565b9050828152602081018484840111156110305761102f610f56565b5b61103b848285610c76565b509392505050565b5f82601f83011261105757611056610f52565b5b8151611067848260208601611002565b91505092915050565b61107981610e8d565b8114611083575f80fd5b50565b5f8151905061109481611070565b92915050565b5f805f606084860312156110b1576110b0610d0f565b5b5f84015167ffffffffffffffff8111156110ce576110cd610d13565b5b6110da86828701611043565b935050602084015167ffffffffffffffff8111156110fb576110fa610d13565b5b61110786828701611043565b925050604061111886828701611086565b9150509250925092565b5f8151905061113081610d7a565b92915050565b5f6020828403121561114b5761114a610d0f565b5b5f61115884828501611122565b91505092915050565b5f6040820190506111745f830185610f2a565b6111816020830184610f2a565b9392505050565b5f60608201905061119b5f830186610f2a565b6111a86020830185610e15565b6111b56040830184610e15565b949350505050565b5f6040820190506111d05f830185610f2a565b6111dd6020830184610e15565b9392505050565b6111ed81610de2565b81146111f7575f80fd5b50565b5f81519050611208816111e4565b92915050565b5f6020828403121561122357611222610d0f565b5b5f611230848285016111fa565b91505092915050565b5f60608201905061124c5f830186610f2a565b6112596020830185610f2a565b6112666040830184610e15565b94935050505056fea2646970667358221220f46d089a4318bb946632ecd6859aaafd21c001203190b421f595ecd0e45f0f8b64736f6c63430008180033",
+ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"name_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"decimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"initial_supply_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Failure\",\"inputs\":[{\"name\":\"message\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]}]",
+ Bin: "0x60806040819052600580546001600160a01b031916606417905561143d38819003908190833981016040819052610035916104ac565b83838360405180602001604052805f81525060405180602001604052805f815250816003908161006591906105b3565b50600461007282826105b3565b5050505f8351118061008457505f8251115b8061009157505f8160ff16115b1561010c57600554604051630df4b0bd60e21b81526001600160a01b03909116906337d2c2f4906100ca90869086908690600401610698565b6020604051808303815f875af11580156100e6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010a91906106d0565b505b505081159050610120576101203382610129565b5050505061081e565b6001600160a01b0382166101575760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b6101625f8383610166565b5050565b6001600160a01b03831661028c576005546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044016020604051808303815f875af19250505080156101e2575060408051601f3d908101601f191682019092526101df918101906106d0565b60015b610286576101ee6106f6565b806308c379a003610244575061020261070f565b8061020d5750610246565b8060405160200161021e9190610791565b60408051601f198184030181529082905262461bcd60e51b825261014e916004016107c8565b505b3d80801561026f576040519150601f19603f3d011682016040523d82523d5f602084013e610274565b606091505b508060405160200161021e91906107da565b5061038c565b6001600160a01b03821661030e57600554604051632770a7eb60e21b81526001600160a01b0385811660048301526024820184905290911690639dc29fac906044016020604051808303815f875af11580156102ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028691906106d0565b6005546040516317d5759960e31b81526001600160a01b0385811660048301528481166024830152604482018490529091169063beabacc8906064016020604051808303815f875af1158015610366573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038a91906106d0565b505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103d191815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f191681016001600160401b0381118282101715610417576104176103de565b6040525050565b5f5b83811015610438578181015183820152602001610420565b50505f910152565b5f82601f83011261044f575f5ffd5b81516001600160401b03811115610468576104686103de565b60405161047f601f8301601f1916602001826103f2565b818152846020838601011115610493575f5ffd5b6104a482602083016020870161041e565b949350505050565b5f5f5f5f608085870312156104bf575f5ffd5b84516001600160401b038111156104d4575f5ffd5b6104e087828801610440565b602087015190955090506001600160401b038111156104fd575f5ffd5b61050987828801610440565b935050604085015160ff8116811461051f575f5ffd5b6060959095015193969295505050565b600181811c9082168061054357607f821691505b60208210810361056157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156105ae57805f5260205f20601f840160051c8101602085101561058c5750805b601f840160051c820191505b818110156105ab575f8155600101610598565b50505b505050565b81516001600160401b038111156105cc576105cc6103de565b6105e0816105da845461052f565b84610567565b6020601f821160018114610612575f83156105fb5750848201515b5f19600385901b1c1916600184901b1784556105ab565b5f84815260208120601f198516915b828110156106415787850151825560209485019460019092019101610621565b508482101561065e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f815180845261068481602086016020860161041e565b601f01601f19169290920160200192915050565b606081525f6106aa606083018661066d565b82810360208401526106bc818661066d565b91505060ff83166040830152949350505050565b5f602082840312156106e0575f5ffd5b815180151581146106ef575f5ffd5b9392505050565b5f60033d111561070c5760045f5f3e505f5160e01c5b90565b5f60443d101561071c5790565b6040513d600319016004823e80516001600160401b0381113d6024830111171561074557505090565b81810180516001600160401b03811115610760575050505090565b3d840160031901828201602001111561077a575050505090565b610789602082850101856103f2565b509392505050565b6f03330b4b632b2103a379036b4b73a1d160851b81525f82516107bb81601085016020870161041e565b9190910160100192915050565b602081525f6106ef602083018461066d565b7f6661696c656420746f206d696e743a20756e6b6e6f776e206572726f723a200081525f825161081181601f85016020870161041e565b91909101601f0192915050565b610c128061082b5f395ff3fe608060405234801561000f575f5ffd5b5060043610610090575f3560e01c8063313ce56711610063578063313ce567146100fe57806370a082311461011857806395d89b411461012b578063a9059cbb14610133578063dd62ed3e14610146575f5ffd5b806306fdde0314610094578063095ea7b3146100b257806318160ddd146100d557806323b872dd146100eb575b5f5ffd5b61009c61017e565b6040516100a99190610873565b60405180910390f35b6100c56100c03660046108c0565b6101f8565b60405190151581526020016100a9565b6100dd61020f565b6040519081526020016100a9565b6100c56100f93660046108e8565b61027e565b6101066102a1565b60405160ff90911681526020016100a9565b6100dd610126366004610922565b610319565b61009c610391565b6100c56101413660046108c0565b61040a565b6100dd610154366004610942565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546040516315d10ab960e11b815230600482015260609182916001600160a01b0390911690632ba21572906024015f60405180830381865afa1580156101c8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526101ef9190810190610a19565b50909392505050565b5f33610205818585610417565b5060019392505050565b6005546040516339370aa960e21b81523060048201525f916001600160a01b03169063e4dc2aa490602401602060405180830381865afa158015610255573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102799190610a96565b905090565b5f3361028b858285610429565b6102968585856104aa565b506001949350505050565b6005546040516315d10ab960e11b81523060048201525f9182916001600160a01b0390911690632ba21572906024015f60405180830381865afa1580156102ea573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526103119190810190610a19565b949350505050565b600554604051633de222bb60e21b81523060048201526001600160a01b0383811660248301525f92169063f7888aec90604401602060405180830381865afa158015610367573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038b9190610a96565b92915050565b6005546040516315d10ab960e11b815230600482015260609182916001600160a01b0390911690632ba21572906024015f60405180830381865afa1580156103db573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526104029190810190610a19565b509392505050565b5f336102058185856104aa565b6104248383836001610507565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156104a4578181101561049657604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6104a484848484035f610507565b50505050565b6001600160a01b0383166104d357604051634b637e8f60e11b81525f600482015260240161048d565b6001600160a01b0382166104fc5760405163ec442f0560e01b81525f600482015260240161048d565b6104248383836105d9565b6001600160a01b0384166105305760405163e602df0560e01b81525f600482015260240161048d565b6001600160a01b03831661055957604051634a1406b160e11b81525f600482015260240161048d565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156104a457826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105cb91815260200190565b60405180910390a350505050565b6001600160a01b0383166106ff576005546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044016020604051808303815f875af1925050508015610655575060408051601f3d908101601f1916820190925261065291810190610aad565b60015b6106f957610661610acc565b806308c379a0036106b75750610675610ae5565b8061068057506106b9565b806040516020016106919190610b61565b60408051601f198184030181529082905262461bcd60e51b825261048d91600401610873565b505b3d8080156106e2576040519150601f19603f3d011682016040523d82523d5f602084013e6106e7565b606091505b50806040516020016106919190610b98565b506107ff565b6001600160a01b03821661078157600554604051632770a7eb60e21b81526001600160a01b0385811660048301526024820184905290911690639dc29fac906044016020604051808303815f875af115801561075d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f99190610aad565b6005546040516317d5759960e31b81526001600160a01b0385811660048301528481166024830152604482018490529091169063beabacc8906064016020604051808303815f875af11580156107d9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107fd9190610aad565b505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161084491815260200190565b60405180910390a3505050565b5f5b8381101561086b578181015183820152602001610853565b50505f910152565b602081525f8251806020840152610891816040850160208701610851565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146108bb575f5ffd5b919050565b5f5f604083850312156108d1575f5ffd5b6108da836108a5565b946020939093013593505050565b5f5f5f606084860312156108fa575f5ffd5b610903846108a5565b9250610911602085016108a5565b929592945050506040919091013590565b5f60208284031215610932575f5ffd5b61093b826108a5565b9392505050565b5f5f60408385031215610953575f5ffd5b61095c836108a5565b915061096a602084016108a5565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f1916810167ffffffffffffffff811182821017156109ad576109ad610973565b6040525050565b5f82601f8301126109c3575f5ffd5b815167ffffffffffffffff8111156109dd576109dd610973565b6040516109f4601f8301601f191660200182610987565b818152846020838601011115610a08575f5ffd5b610311826020830160208701610851565b5f5f5f60608486031215610a2b575f5ffd5b835167ffffffffffffffff811115610a41575f5ffd5b610a4d868287016109b4565b935050602084015167ffffffffffffffff811115610a69575f5ffd5b610a75868287016109b4565b925050604084015160ff81168114610a8b575f5ffd5b809150509250925092565b5f60208284031215610aa6575f5ffd5b5051919050565b5f60208284031215610abd575f5ffd5b8151801515811461093b575f5ffd5b5f60033d1115610ae25760045f5f3e505f5160e01c5b90565b5f60443d1015610af25790565b6040513d600319016004823e80513d602482011167ffffffffffffffff82111715610b1c57505090565b808201805167ffffffffffffffff811115610b38575050505090565b3d8401600319018282016020011115610b52575050505090565b61040260208285010185610987565b6f03330b4b632b2103a379036b4b73a1d160851b81525f8251610b8b816010850160208701610851565b9190910160100192915050565b7f6661696c656420746f206d696e743a20756e6b6e6f776e206572726f723a200081525f8251610bcf81601f850160208701610851565b91909101601f019291505056fea2646970667358221220700a7c6e315d053531301f75f3f482db54f371f66e2d6d558a3b367b17af6b8164736f6c634300081e0033",
}
// FixedSupplyBankERC20ABI is the input ABI used to generate the binding from.
@@ -605,6 +605,141 @@ func (_FixedSupplyBankERC20 *FixedSupplyBankERC20Filterer) ParseApproval(log typ
return event, nil
}
+// FixedSupplyBankERC20FailureIterator is returned from FilterFailure and is used to iterate over the raw logs and unpacked data for Failure events raised by the FixedSupplyBankERC20 contract.
+type FixedSupplyBankERC20FailureIterator struct {
+ Event *FixedSupplyBankERC20Failure // Event containing the contract specifics and raw log
+
+ contract *bind.BoundContract // Generic contract to use for unpacking event data
+ event string // Event name to use for unpacking event data
+
+ logs chan types.Log // Log channel receiving the found contract events
+ sub ethereum.Subscription // Subscription for errors, completion and termination
+ done bool // Whether the subscription completed delivering logs
+ fail error // Occurred error to stop iteration
+}
+
+// Next advances the iterator to the subsequent event, returning whether there
+// are any more events found. In case of a retrieval or parsing error, false is
+// returned and Error() can be queried for the exact failure.
+func (it *FixedSupplyBankERC20FailureIterator) Next() bool {
+ // If the iterator failed, stop iterating
+ if it.fail != nil {
+ return false
+ }
+ // If the iterator completed, deliver directly whatever's available
+ if it.done {
+ select {
+ case log := <-it.logs:
+ it.Event = new(FixedSupplyBankERC20Failure)
+ if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
+ it.fail = err
+ return false
+ }
+ it.Event.Raw = log
+ return true
+
+ default:
+ return false
+ }
+ }
+ // Iterator still in progress, wait for either a data or an error event
+ select {
+ case log := <-it.logs:
+ it.Event = new(FixedSupplyBankERC20Failure)
+ if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
+ it.fail = err
+ return false
+ }
+ it.Event.Raw = log
+ return true
+
+ case err := <-it.sub.Err():
+ it.done = true
+ it.fail = err
+ return it.Next()
+ }
+}
+
+// Error returns any retrieval or parsing error occurred during filtering.
+func (it *FixedSupplyBankERC20FailureIterator) Error() error {
+ return it.fail
+}
+
+// Close terminates the iteration process, releasing any pending underlying
+// resources.
+func (it *FixedSupplyBankERC20FailureIterator) Close() error {
+ it.sub.Unsubscribe()
+ return nil
+}
+
+// FixedSupplyBankERC20Failure represents a Failure event raised by the FixedSupplyBankERC20 contract.
+type FixedSupplyBankERC20Failure struct {
+ Message string
+ Data []byte
+ Raw types.Log // Blockchain specific contextual infos
+}
+
+// FilterFailure is a free log retrieval operation binding the contract event 0x66c9257b5635d9c11609ab746e0972276ff2412ab2085de9630ecb2300a019a6.
+//
+// Solidity: event Failure(string message, bytes data)
+func (_FixedSupplyBankERC20 *FixedSupplyBankERC20Filterer) FilterFailure(opts *bind.FilterOpts) (*FixedSupplyBankERC20FailureIterator, error) {
+
+ logs, sub, err := _FixedSupplyBankERC20.contract.FilterLogs(opts, "Failure")
+ if err != nil {
+ return nil, err
+ }
+ return &FixedSupplyBankERC20FailureIterator{contract: _FixedSupplyBankERC20.contract, event: "Failure", logs: logs, sub: sub}, nil
+}
+
+// WatchFailure is a free log subscription operation binding the contract event 0x66c9257b5635d9c11609ab746e0972276ff2412ab2085de9630ecb2300a019a6.
+//
+// Solidity: event Failure(string message, bytes data)
+func (_FixedSupplyBankERC20 *FixedSupplyBankERC20Filterer) WatchFailure(opts *bind.WatchOpts, sink chan<- *FixedSupplyBankERC20Failure) (event.Subscription, error) {
+
+ logs, sub, err := _FixedSupplyBankERC20.contract.WatchLogs(opts, "Failure")
+ if err != nil {
+ return nil, err
+ }
+ return event.NewSubscription(func(quit <-chan struct{}) error {
+ defer sub.Unsubscribe()
+ for {
+ select {
+ case log := <-logs:
+ // New log arrived, parse the event and forward to the user
+ event := new(FixedSupplyBankERC20Failure)
+ if err := _FixedSupplyBankERC20.contract.UnpackLog(event, "Failure", log); err != nil {
+ return err
+ }
+ event.Raw = log
+
+ select {
+ case sink <- event:
+ case err := <-sub.Err():
+ return err
+ case <-quit:
+ return nil
+ }
+ case err := <-sub.Err():
+ return err
+ case <-quit:
+ return nil
+ }
+ }
+ }), nil
+}
+
+// ParseFailure is a log parse operation binding the contract event 0x66c9257b5635d9c11609ab746e0972276ff2412ab2085de9630ecb2300a019a6.
+//
+// Solidity: event Failure(string message, bytes data)
+func (_FixedSupplyBankERC20 *FixedSupplyBankERC20Filterer) ParseFailure(log types.Log) (*FixedSupplyBankERC20Failure, error) {
+ event := new(FixedSupplyBankERC20Failure)
+ if err := _FixedSupplyBankERC20.contract.UnpackLog(event, "Failure", log); err != nil {
+ return nil, err
+ }
+ event.Raw = log
+ return event, nil
+}
+
// FixedSupplyBankERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the FixedSupplyBankERC20 contract.
type FixedSupplyBankERC20TransferIterator struct {
Event *FixedSupplyBankERC20Transfer // Event containing the contract specifics and raw log
diff --git a/chain/evm/precompiles/bank/i_bank_module.abigen.go b/chain/evm/precompiles/bank/i_bank_module.abigen.go
index 756f9ecc..c6ba88d6 100644
--- a/chain/evm/precompiles/bank/i_bank_module.abigen.go
+++ b/chain/evm/precompiles/bank/i_bank_module.abigen.go
@@ -31,7 +31,7 @@ var (
// BankModuleMetaData contains all meta data concerning the BankModule contract.
var BankModuleMetaData = &bind.MetaData{
- ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"metadata\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"setMetadata\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"payable\",\"type\":\"function\"}]",
+ ABI: "[{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"metadata\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"setMetadata\",\"inputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"payable\"}]",
}
// BankModuleABI is the input ABI used to generate the binding from.
diff --git a/chain/evm/precompiles/bank/mint_burn_bank_erc20.abigen.go b/chain/evm/precompiles/bank/mint_burn_bank_erc20.abigen.go
index e20f4b5f..4cea7dca 100644
--- a/chain/evm/precompiles/bank/mint_burn_bank_erc20.abigen.go
+++ b/chain/evm/precompiles/bank/mint_burn_bank_erc20.abigen.go
@@ -31,8 +31,8 @@ var (
// MintBurnBankERC20MetaData contains all meta data concerning the MintBurnBankERC20 contract.
var MintBurnBankERC20MetaData = &bind.MetaData{
- ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
- Bin: "0x6080604052606460065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051620021933803806200219383398181016040528101906200006a9190620004ca565b82828260405180602001604052805f81525060405180602001604052805f815250885f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000ff575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000f6919062000588565b60405180910390fd5b6200011081620001e860201b60201c565b508160049081620001229190620007da565b508060059081620001349190620007da565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166337d2c2f48484846040518463ffffffff1660e01b815260040162000197939291906200091f565b6020604051808303815f875af1158015620001b4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001da9190620009a2565b5050505050505050620009d2565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620002e582620002ba565b9050919050565b620002f781620002d9565b811462000302575f80fd5b50565b5f815190506200031581620002ec565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200036b8262000323565b810181811067ffffffffffffffff821117156200038d576200038c62000333565b5b80604052505050565b5f620003a1620002a9565b9050620003af828262000360565b919050565b5f67ffffffffffffffff821115620003d157620003d062000333565b5b620003dc8262000323565b9050602081019050919050565b5f5b8381101562000408578082015181840152602081019050620003eb565b5f8484015250505050565b5f620004296200042384620003b4565b62000396565b9050828152602081018484840111156200044857620004476200031f565b5b62000455848285620003e9565b509392505050565b5f82601f8301126200047457620004736200031b565b5b81516200048684826020860162000413565b91505092915050565b5f60ff82169050919050565b620004a6816200048f565b8114620004b1575f80fd5b50565b5f81519050620004c4816200049b565b92915050565b5f805f8060808587031215620004e557620004e4620002b2565b5b5f620004f48782880162000305565b945050602085015167ffffffffffffffff811115620005185762000517620002b6565b5b62000526878288016200045d565b935050604085015167ffffffffffffffff8111156200054a5762000549620002b6565b5b62000558878288016200045d565b92505060606200056b87828801620004b4565b91505092959194509250565b6200058281620002d9565b82525050565b5f6020820190506200059d5f83018462000577565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005f257607f821691505b602082108103620006085762000607620005ad565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200066c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200062f565b6200067886836200062f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006c2620006bc620006b68462000690565b62000699565b62000690565b9050919050565b5f819050919050565b620006dd83620006a2565b620006f5620006ec82620006c9565b8484546200063b565b825550505050565b5f90565b6200070b620006fd565b62000718818484620006d2565b505050565b5b818110156200073f57620007335f8262000701565b6001810190506200071e565b5050565b601f8211156200078e5762000758816200060e565b620007638462000620565b8101602085101562000773578190505b6200078b620007828562000620565b8301826200071d565b50505b505050565b5f82821c905092915050565b5f620007b05f198460080262000793565b1980831691505092915050565b5f620007ca83836200079f565b9150826002028217905092915050565b620007e582620005a3565b67ffffffffffffffff81111562000801576200080062000333565b5b6200080d8254620005da565b6200081a82828562000743565b5f60209050601f83116001811462000850575f84156200083b578287015190505b620008478582620007bd565b865550620008b6565b601f19841662000860866200060e565b5f5b82811015620008895784890151825560018201915060208501945060208101905062000862565b86831015620008a95784890151620008a5601f8916826200079f565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b5f620008da82620005a3565b620008e68185620008be565b9350620008f8818560208601620003e9565b620009038162000323565b840191505092915050565b62000919816200048f565b82525050565b5f6060820190508181035f830152620009398186620008ce565b905081810360208301526200094f8185620008ce565b90506200096060408301846200090e565b949350505050565b5f8115159050919050565b6200097e8162000968565b811462000989575f80fd5b50565b5f815190506200099c8162000973565b92915050565b5f60208284031215620009ba57620009b9620002b2565b5b5f620009c9848285016200098c565b91505092915050565b6117b380620009e05f395ff3fe6080604052600436106100e7575f3560e01c806370a082311161008957806395d89b411161005857806395d89b41146102c9578063a9059cbb146102f3578063dd62ed3e1461032f578063f2fde38b1461036b576100e7565b806370a0823114610225578063715018a61461026157806379cc6790146102775780638da5cb5b1461029f576100e7565b806323b872dd116100c557806323b872dd1461017b578063313ce567146101b757806340c10f19146101e157806342966c68146101fd576100e7565b806306fdde03146100eb578063095ea7b31461011557806318160ddd14610151575b5f80fd5b3480156100f6575f80fd5b506100ff610393565b60405161010c91906111ca565b60405180910390f35b348015610120575f80fd5b5061013b60048036038101906101369190611288565b610440565b60405161014891906112e0565b60405180910390f35b34801561015c575f80fd5b50610165610462565b6040516101729190611308565b60405180910390f35b348015610186575f80fd5b506101a1600480360381019061019c9190611321565b610501565b6040516101ae91906112e0565b60405180910390f35b3480156101c2575f80fd5b506101cb61052f565b6040516101d8919061138c565b60405180910390f35b6101fb60048036038101906101f69190611288565b6105dd565b005b348015610208575f80fd5b50610223600480360381019061021e91906113a5565b6105f3565b005b348015610230575f80fd5b5061024b600480360381019061024691906113d0565b610607565b6040516102589190611308565b60405180910390f35b34801561026c575f80fd5b506102756106aa565b005b348015610282575f80fd5b5061029d60048036038101906102989190611288565b6106bd565b005b3480156102aa575f80fd5b506102b36106dd565b6040516102c0919061140a565b60405180910390f35b3480156102d4575f80fd5b506102dd610704565b6040516102ea91906111ca565b60405180910390f35b3480156102fe575f80fd5b5061031960048036038101906103149190611288565b6107b2565b60405161032691906112e0565b60405180910390f35b34801561033a575f80fd5b5061035560048036038101906103509190611423565b6107d4565b6040516103629190611308565b60405180910390f35b348015610376575f80fd5b50610391600480360381019061038c91906113d0565b610856565b005b60608060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b81526004016103f0919061140a565b5f60405180830381865afa15801561040a573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061043291906115a9565b905050809150508091505090565b5f8061044a6108da565b90506104578185856108e1565b600191505092915050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e4dc2aa4306040518263ffffffff1660e01b81526004016104bd919061140a565b602060405180830381865afa1580156104d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fc9190611645565b905090565b5f8061050b6108da565b90506105188582856108f3565b610523858585610986565b60019150509392505050565b5f8060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b815260040161058b919061140a565b5f60405180830381865afa1580156105a5573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906105cd91906115a9565b9091509050809150508091505090565b6105e5610a76565b6105ef8282610afd565b5050565b6106046105fe6108da565b82610b7c565b50565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7888aec30846040518363ffffffff1660e01b8152600401610664929190611670565b602060405180830381865afa15801561067f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a39190611645565b9050919050565b6106b2610a76565b6106bb5f610bfb565b565b6106cf826106c96108da565b836108f3565b6106d98282610b7c565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60608060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632ba21572306040518263ffffffff1660e01b8152600401610761919061140a565b5f60405180830381865afa15801561077b573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f820116820180604052508101906107a391906115a9565b90915050809150508091505090565b5f806107bc6108da565b90506107c9818585610986565b600191505092915050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61085e610a76565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036108ce575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016108c5919061140a565b60405180910390fd5b6108d781610bfb565b50565b5f33905090565b6108ee8383836001610cbc565b505050565b5f6108fe84846107d4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156109805781811015610971578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161096893929190611697565b60405180910390fd5b61097f84848484035f610cbc565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109f6575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016109ed919061140a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a66575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610a5d919061140a565b60405180910390fd5b610a71838383610e8b565b505050565b610a7e6108da565b73ffffffffffffffffffffffffffffffffffffffff16610a9c6106dd565b73ffffffffffffffffffffffffffffffffffffffff1614610afb57610abf6108da565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610af2919061140a565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b6d575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610b64919061140a565b60405180910390fd5b610b785f8383610e8b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bec575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610be3919061140a565b60405180910390fd5b610bf7825f83610e8b565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d2c575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610d23919061140a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d9c575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610d93919061140a565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610e85578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e7c9190611308565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f605760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610f1a9291906116cc565b6020604051808303815f875af1158015610f36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5a919061171d565b506110d6565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110355760065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac84836040518363ffffffff1660e01b8152600401610fef9291906116cc565b6020604051808303815f875af115801561100b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102f919061171d565b506110d5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc88484846040518463ffffffff1660e01b815260040161109393929190611748565b6020604051808303815f875af11580156110af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d3919061171d565b505b5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111339190611308565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561117757808201518184015260208101905061115c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61119c82611140565b6111a6818561114a565b93506111b681856020860161115a565b6111bf81611182565b840191505092915050565b5f6020820190508181035f8301526111e28184611192565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611224826111fb565b9050919050565b6112348161121a565b811461123e575f80fd5b50565b5f8135905061124f8161122b565b92915050565b5f819050919050565b61126781611255565b8114611271575f80fd5b50565b5f813590506112828161125e565b92915050565b5f806040838503121561129e5761129d6111f3565b5b5f6112ab85828601611241565b92505060206112bc85828601611274565b9150509250929050565b5f8115159050919050565b6112da816112c6565b82525050565b5f6020820190506112f35f8301846112d1565b92915050565b61130281611255565b82525050565b5f60208201905061131b5f8301846112f9565b92915050565b5f805f60608486031215611338576113376111f3565b5b5f61134586828701611241565b935050602061135686828701611241565b925050604061136786828701611274565b9150509250925092565b5f60ff82169050919050565b61138681611371565b82525050565b5f60208201905061139f5f83018461137d565b92915050565b5f602082840312156113ba576113b96111f3565b5b5f6113c784828501611274565b91505092915050565b5f602082840312156113e5576113e46111f3565b5b5f6113f284828501611241565b91505092915050565b6114048161121a565b82525050565b5f60208201905061141d5f8301846113fb565b92915050565b5f8060408385031215611439576114386111f3565b5b5f61144685828601611241565b925050602061145785828601611241565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61149f82611182565b810181811067ffffffffffffffff821117156114be576114bd611469565b5b80604052505050565b5f6114d06111ea565b90506114dc8282611496565b919050565b5f67ffffffffffffffff8211156114fb576114fa611469565b5b61150482611182565b9050602081019050919050565b5f61152361151e846114e1565b6114c7565b90508281526020810184848401111561153f5761153e611465565b5b61154a84828561115a565b509392505050565b5f82601f83011261156657611565611461565b5b8151611576848260208601611511565b91505092915050565b61158881611371565b8114611592575f80fd5b50565b5f815190506115a38161157f565b92915050565b5f805f606084860312156115c0576115bf6111f3565b5b5f84015167ffffffffffffffff8111156115dd576115dc6111f7565b5b6115e986828701611552565b935050602084015167ffffffffffffffff81111561160a576116096111f7565b5b61161686828701611552565b925050604061162786828701611595565b9150509250925092565b5f8151905061163f8161125e565b92915050565b5f6020828403121561165a576116596111f3565b5b5f61166784828501611631565b91505092915050565b5f6040820190506116835f8301856113fb565b61169060208301846113fb565b9392505050565b5f6060820190506116aa5f8301866113fb565b6116b760208301856112f9565b6116c460408301846112f9565b949350505050565b5f6040820190506116df5f8301856113fb565b6116ec60208301846112f9565b9392505050565b6116fc816112c6565b8114611706575f80fd5b50565b5f81519050611717816116f3565b92915050565b5f60208284031215611732576117316111f3565b5b5f61173f84828501611709565b91505092915050565b5f60608201905061175b5f8301866113fb565b61176860208301856113fb565b61177560408301846112f9565b94935050505056fea264697066735822122019ec31921e777a6c5f5d27b3afb27acc7727f7637b7555591c0b50efc95e6bc964736f6c63430008180033",
+ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"name_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol_\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"decimals_\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"burn\",\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"burnFrom\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"decimals\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"symbol\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Failure\",\"inputs\":[{\"name\":\"message\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"ERC20InsufficientAllowance\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"allowance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InsufficientBalance\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"needed\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidApprover\",\"inputs\":[{\"name\":\"approver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidReceiver\",\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSender\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"ERC20InvalidSpender\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableInvalidOwner\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"OwnableUnauthorizedAccount\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]}]",
+ Bin: "0x60806040819052600680546001600160a01b03191660641790556113c23881900390819083398101604081905261003591610257565b60408051602080820183525f8083528351918201909352918252849184918491886001600160a01b03811661008357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61008c8161014c565b5060046100998382610375565b5060056100a68282610375565b5050505f835111806100b857505f8251115b806100c557505f8160ff16115b1561014057600654604051630df4b0bd60e21b81526001600160a01b03909116906337d2c2f4906100fe9086908690869060040161045a565b6020604051808303815f875af115801561011a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013e9190610492565b505b505050505050506104b8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101c95781810151838201526020016101b1565b50505f910152565b5f82601f8301126101e0575f5ffd5b81516001600160401b038111156101f9576101f961019b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102275761022761019b565b60405281815283820160200185101561023e575f5ffd5b61024f8260208301602087016101af565b949350505050565b5f5f5f5f6080858703121561026a575f5ffd5b84516001600160a01b0381168114610280575f5ffd5b60208601519094506001600160401b0381111561029b575f5ffd5b6102a7878288016101d1565b604087015190945090506001600160401b038111156102c4575f5ffd5b6102d0878288016101d1565b925050606085015160ff811681146102e6575f5ffd5b939692955090935050565b600181811c9082168061030557607f821691505b60208210810361032357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561037057805f5260205f20601f840160051c8101602085101561034e5750805b601f840160051c820191505b8181101561036d575f815560010161035a565b50505b505050565b81516001600160401b0381111561038e5761038e61019b565b6103a28161039c84546102f1565b84610329565b6020601f8211600181146103d4575f83156103bd5750848201515b5f19600385901b1c1916600184901b17845561036d565b5f84815260208120601f198516915b8281101561040357878501518255602094850194600190920191016103e3565b508482101561042057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f81518084526104468160208601602086016101af565b601f01601f19169290920160200192915050565b606081525f61046c606083018661042f565b828103602084015261047e818661042f565b91505060ff83166040830152949350505050565b5f602082840312156104a2575f5ffd5b815180151581146104b1575f5ffd5b9392505050565b610efd806104c55f395ff3fe6080604052600436106100e4575f3560e01c806370a082311161008757806395d89b411161005757806395d89b4114610254578063a9059cbb14610268578063dd62ed3e14610287578063f2fde38b146102cb575f5ffd5b806370a08231146101dc578063715018a6146101fb57806379cc67901461020f5780638da5cb5b1461022e575f5ffd5b806323b872dd116100c257806323b872dd14610163578063313ce5671461018257806340c10f19146101a857806342966c68146101bd575f5ffd5b806306fdde03146100e8578063095ea7b31461011257806318160ddd14610141575b5f5ffd5b3480156100f3575f5ffd5b506100fc6102ea565b6040516101099190610b47565b60405180910390f35b34801561011d575f5ffd5b5061013161012c366004610b94565b610364565b6040519015158152602001610109565b34801561014c575f5ffd5b5061015561037b565b604051908152602001610109565b34801561016e575f5ffd5b5061013161017d366004610bbc565b6103ea565b34801561018d575f5ffd5b5061019661040d565b60405160ff9091168152602001610109565b6101bb6101b6366004610b94565b610485565b005b3480156101c8575f5ffd5b506101bb6101d7366004610bf6565b61049b565b3480156101e7575f5ffd5b506101556101f6366004610c0d565b6104a8565b348015610206575f5ffd5b506101bb610520565b34801561021a575f5ffd5b506101bb610229366004610b94565b610533565b348015610239575f5ffd5b505f546040516001600160a01b039091168152602001610109565b34801561025f575f5ffd5b506100fc610548565b348015610273575f5ffd5b50610131610282366004610b94565b6105c1565b348015610292575f5ffd5b506101556102a1366004610c2d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156102d6575f5ffd5b506101bb6102e5366004610c0d565b6105ce565b6006546040516315d10ab960e11b815230600482015260609182916001600160a01b0390911690632ba21572906024015f60405180830381865afa158015610334573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261035b9190810190610d04565b50909392505050565b5f3361037181858561060d565b5060019392505050565b6006546040516339370aa960e21b81523060048201525f916001600160a01b03169063e4dc2aa490602401602060405180830381865afa1580156103c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103e59190610d81565b905090565b5f336103f785828561061f565b61040285858561069b565b506001949350505050565b6006546040516315d10ab960e11b81523060048201525f9182916001600160a01b0390911690632ba21572906024015f60405180830381865afa158015610456573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261047d9190810190610d04565b949350505050565b61048d6106f8565b6104978282610724565b5050565b6104a53382610758565b50565b600654604051633de222bb60e21b81523060048201526001600160a01b0383811660248301525f92169063f7888aec90604401602060405180830381865afa1580156104f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051a9190610d81565b92915050565b6105286106f8565b6105315f61078c565b565b61053e82338361061f565b6104978282610758565b6006546040516315d10ab960e11b815230600482015260609182916001600160a01b0390911690632ba21572906024015f60405180830381865afa158015610592573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526105b99190810190610d04565b509392505050565b5f3361037181858561069b565b6105d66106f8565b6001600160a01b03811661060457604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6104a58161078c565b61061a83838360016107db565b505050565b6001600160a01b038381165f908152600260209081526040808320938616835292905220545f19811015610695578181101561068757604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064016105fb565b61069584848484035f6107db565b50505050565b6001600160a01b0383166106c457604051634b637e8f60e11b81525f60048201526024016105fb565b6001600160a01b0382166106ed5760405163ec442f0560e01b81525f60048201526024016105fb565b61061a8383836108ad565b5f546001600160a01b031633146105315760405163118cdaa760e01b81523360048201526024016105fb565b6001600160a01b03821661074d5760405163ec442f0560e01b81525f60048201526024016105fb565b6104975f83836108ad565b6001600160a01b03821661078157604051634b637e8f60e11b81525f60048201526024016105fb565b610497825f836108ad565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0384166108045760405163e602df0560e01b81525f60048201526024016105fb565b6001600160a01b03831661082d57604051634a1406b160e11b81525f60048201526024016105fb565b6001600160a01b038085165f908152600260209081526040808320938716835292905220829055801561069557826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089f91815260200190565b60405180910390a350505050565b6001600160a01b0383166109d3576006546040516340c10f1960e01b81526001600160a01b03848116600483015260248201849052909116906340c10f19906044016020604051808303815f875af1925050508015610929575060408051601f3d908101601f1916820190925261092691810190610d98565b60015b6109cd57610935610db7565b806308c379a00361098b5750610949610dd0565b80610954575061098d565b806040516020016109659190610e4c565b60408051601f198184030181529082905262461bcd60e51b82526105fb91600401610b47565b505b3d8080156109b6576040519150601f19603f3d011682016040523d82523d5f602084013e6109bb565b606091505b50806040516020016109659190610e83565b50610ad3565b6001600160a01b038216610a5557600654604051632770a7eb60e21b81526001600160a01b0385811660048301526024820184905290911690639dc29fac906044016020604051808303815f875af1158015610a31573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cd9190610d98565b6006546040516317d5759960e31b81526001600160a01b0385811660048301528481166024830152604482018490529091169063beabacc8906064016020604051808303815f875af1158015610aad573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad19190610d98565b505b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b1891815260200190565b60405180910390a3505050565b5f5b83811015610b3f578181015183820152602001610b27565b50505f910152565b602081525f8251806020840152610b65816040850160208701610b25565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610b8f575f5ffd5b919050565b5f5f60408385031215610ba5575f5ffd5b610bae83610b79565b946020939093013593505050565b5f5f5f60608486031215610bce575f5ffd5b610bd784610b79565b9250610be560208501610b79565b929592945050506040919091013590565b5f60208284031215610c06575f5ffd5b5035919050565b5f60208284031215610c1d575f5ffd5b610c2682610b79565b9392505050565b5f5f60408385031215610c3e575f5ffd5b610c4783610b79565b9150610c5560208401610b79565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f1916810167ffffffffffffffff81118282101715610c9857610c98610c5e565b6040525050565b5f82601f830112610cae575f5ffd5b815167ffffffffffffffff811115610cc857610cc8610c5e565b604051610cdf601f8301601f191660200182610c72565b818152846020838601011115610cf3575f5ffd5b61047d826020830160208701610b25565b5f5f5f60608486031215610d16575f5ffd5b835167ffffffffffffffff811115610d2c575f5ffd5b610d3886828701610c9f565b935050602084015167ffffffffffffffff811115610d54575f5ffd5b610d6086828701610c9f565b925050604084015160ff81168114610d76575f5ffd5b809150509250925092565b5f60208284031215610d91575f5ffd5b5051919050565b5f60208284031215610da8575f5ffd5b81518015158114610c26575f5ffd5b5f60033d1115610dcd5760045f5f3e505f5160e01c5b90565b5f60443d1015610ddd5790565b6040513d600319016004823e80513d602482011167ffffffffffffffff82111715610e0757505090565b808201805167ffffffffffffffff811115610e23575050505090565b3d8401600319018282016020011115610e3d575050505090565b6105b960208285010185610c72565b6f03330b4b632b2103a379036b4b73a1d160851b81525f8251610e76816010850160208701610b25565b9190910160100192915050565b7f6661696c656420746f206d696e743a20756e6b6e6f776e206572726f723a200081525f8251610eba81601f850160208701610b25565b91909101601f019291505056fea26469706673582212208bc73576e871a975e4d1b36ec8d562772efff0e5efcd79595bd22762d64b42c864736f6c634300081e0033",
}
// MintBurnBankERC20ABI is the input ABI used to generate the binding from.
@@ -741,6 +741,141 @@ func (_MintBurnBankERC20 *MintBurnBankERC20Filterer) ParseApproval(log types.Log
return event, nil
}
+// MintBurnBankERC20FailureIterator is returned from FilterFailure and is used to iterate over the raw logs and unpacked data for Failure events raised by the MintBurnBankERC20 contract.
+type MintBurnBankERC20FailureIterator struct {
+ Event *MintBurnBankERC20Failure // Event containing the contract specifics and raw log
+
+ contract *bind.BoundContract // Generic contract to use for unpacking event data
+ event string // Event name to use for unpacking event data
+
+ logs chan types.Log // Log channel receiving the found contract events
+ sub ethereum.Subscription // Subscription for errors, completion and termination
+ done bool // Whether the subscription completed delivering logs
+ fail error // Occurred error to stop iteration
+}
+
+// Next advances the iterator to the subsequent event, returning whether there
+// are any more events found. In case of a retrieval or parsing error, false is
+// returned and Error() can be queried for the exact failure.
+func (it *MintBurnBankERC20FailureIterator) Next() bool {
+ // If the iterator failed, stop iterating
+ if it.fail != nil {
+ return false
+ }
+ // If the iterator completed, deliver directly whatever's available
+ if it.done {
+ select {
+ case log := <-it.logs:
+ it.Event = new(MintBurnBankERC20Failure)
+ if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
+ it.fail = err
+ return false
+ }
+ it.Event.Raw = log
+ return true
+
+ default:
+ return false
+ }
+ }
+ // Iterator still in progress, wait for either a data or an error event
+ select {
+ case log := <-it.logs:
+ it.Event = new(MintBurnBankERC20Failure)
+ if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil {
+ it.fail = err
+ return false
+ }
+ it.Event.Raw = log
+ return true
+
+ case err := <-it.sub.Err():
+ it.done = true
+ it.fail = err
+ return it.Next()
+ }
+}
+
+// Error returns any retrieval or parsing error occurred during filtering.
+func (it *MintBurnBankERC20FailureIterator) Error() error {
+ return it.fail
+}
+
+// Close terminates the iteration process, releasing any pending underlying
+// resources.
+func (it *MintBurnBankERC20FailureIterator) Close() error {
+ it.sub.Unsubscribe()
+ return nil
+}
+
+// MintBurnBankERC20Failure represents a Failure event raised by the MintBurnBankERC20 contract.
+type MintBurnBankERC20Failure struct {
+ Message string
+ Data []byte
+ Raw types.Log // Blockchain specific contextual infos
+}
+
+// FilterFailure is a free log retrieval operation binding the contract event 0x66c9257b5635d9c11609ab746e0972276ff2412ab2085de9630ecb2300a019a6.
+//
+// Solidity: event Failure(string message, bytes data)
+func (_MintBurnBankERC20 *MintBurnBankERC20Filterer) FilterFailure(opts *bind.FilterOpts) (*MintBurnBankERC20FailureIterator, error) {
+
+ logs, sub, err := _MintBurnBankERC20.contract.FilterLogs(opts, "Failure")
+ if err != nil {
+ return nil, err
+ }
+ return &MintBurnBankERC20FailureIterator{contract: _MintBurnBankERC20.contract, event: "Failure", logs: logs, sub: sub}, nil
+}
+
+// WatchFailure is a free log subscription operation binding the contract event 0x66c9257b5635d9c11609ab746e0972276ff2412ab2085de9630ecb2300a019a6.
+//
+// Solidity: event Failure(string message, bytes data)
+func (_MintBurnBankERC20 *MintBurnBankERC20Filterer) WatchFailure(opts *bind.WatchOpts, sink chan<- *MintBurnBankERC20Failure) (event.Subscription, error) {
+
+ logs, sub, err := _MintBurnBankERC20.contract.WatchLogs(opts, "Failure")
+ if err != nil {
+ return nil, err
+ }
+ return event.NewSubscription(func(quit <-chan struct{}) error {
+ defer sub.Unsubscribe()
+ for {
+ select {
+ case log := <-logs:
+ // New log arrived, parse the event and forward to the user
+ event := new(MintBurnBankERC20Failure)
+ if err := _MintBurnBankERC20.contract.UnpackLog(event, "Failure", log); err != nil {
+ return err
+ }
+ event.Raw = log
+
+ select {
+ case sink <- event:
+ case err := <-sub.Err():
+ return err
+ case <-quit:
+ return nil
+ }
+ case err := <-sub.Err():
+ return err
+ case <-quit:
+ return nil
+ }
+ }
+ }), nil
+}
+
+// ParseFailure is a log parse operation binding the contract event 0x66c9257b5635d9c11609ab746e0972276ff2412ab2085de9630ecb2300a019a6.
+//
+// Solidity: event Failure(string message, bytes data)
+func (_MintBurnBankERC20 *MintBurnBankERC20Filterer) ParseFailure(log types.Log) (*MintBurnBankERC20Failure, error) {
+ event := new(MintBurnBankERC20Failure)
+ if err := _MintBurnBankERC20.contract.UnpackLog(event, "Failure", log); err != nil {
+ return nil, err
+ }
+ event.Raw = log
+ return event, nil
+}
+
// MintBurnBankERC20OwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the MintBurnBankERC20 contract.
type MintBurnBankERC20OwnershipTransferredIterator struct {
Event *MintBurnBankERC20OwnershipTransferred // Event containing the contract specifics and raw log
diff --git a/chain/evm/precompiles/exchange/i_exchange_module.abigen.go b/chain/evm/precompiles/exchange/i_exchange_module.abigen.go
index 53d7c6d9..1532408c 100644
--- a/chain/evm/precompiles/exchange/i_exchange_module.abigen.go
+++ b/chain/evm/precompiles/exchange/i_exchange_module.abigen.go
@@ -203,7 +203,7 @@ type IExchangeModuleTrimmedSpotLimitOrder struct {
// ExchangeModuleMetaData contains all meta data concerning the ExchangeModule contract.
var ExchangeModuleMetaData = &bind.MetaData{
- ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"granter\",\"type\":\"address\"},{\"internalType\":\"ExchangeTypes.MsgType\",\"name\":\"method\",\"type\":\"uint8\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"ExchangeTypes.MsgType\",\"name\":\"method\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin[]\",\"name\":\"spendLimit\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.Authorization[]\",\"name\":\"authorizations\",\"type\":\"tuple[]\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"int32\",\"name\":\"orderMask\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"internalType\":\"structIExchangeModule.OrderData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"batchCancelDerivativeOrders\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"success\",\"type\":\"bool[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"int32\",\"name\":\"orderMask\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"internalType\":\"structIExchangeModule.OrderData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"batchCancelSpotOrders\",\"outputs\":[{\"internalType\":\"bool[]\",\"name\":\"success\",\"type\":\"bool[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"feeRecipient\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"margin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"triggerPrice\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.DerivativeOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"batchCreateDerivativeLimitOrders\",\"outputs\":[{\"components\":[{\"internalType\":\"string[]\",\"name\":\"orderHashes\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"createdOrdersCids\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"failedOrdersCids\",\"type\":\"string[]\"}],\"internalType\":\"structIExchangeModule.BatchCreateDerivativeLimitOrdersResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"feeRecipient\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"triggerPrice\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.SpotOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"batchCreateSpotLimitOrders\",\"outputs\":[{\"components\":[{\"internalType\":\"string[]\",\"name\":\"orderHashes\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"createdOrdersCids\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"failedOrdersCids\",\"type\":\"string[]\"}],\"internalType\":\"structIExchangeModule.BatchCreateSpotLimitOrdersResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"spotMarketIDsToCancelAll\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"int32\",\"name\":\"orderMask\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"internalType\":\"structIExchangeModule.OrderData[]\",\"name\":\"spotOrdersToCancel\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"feeRecipient\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"triggerPrice\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.SpotOrder[]\",\"name\":\"spotOrdersToCreate\",\"type\":\"tuple[]\"},{\"internalType\":\"string[]\",\"name\":\"derivativeMarketIDsToCancelAll\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"int32\",\"name\":\"orderMask\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"internalType\":\"structIExchangeModule.OrderData[]\",\"name\":\"derivativeOrdersToCancel\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"feeRecipient\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"margin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"triggerPrice\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.DerivativeOrder[]\",\"name\":\"derivativeOrdersToCreate\",\"type\":\"tuple[]\"}],\"internalType\":\"structIExchangeModule.BatchUpdateOrdersRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"batchUpdateOrders\",\"outputs\":[{\"components\":[{\"internalType\":\"bool[]\",\"name\":\"spotCancelSuccess\",\"type\":\"bool[]\"},{\"internalType\":\"string[]\",\"name\":\"spotOrderHashes\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"createdSpotOrdersCids\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"failedSpotOrdersCids\",\"type\":\"string[]\"},{\"internalType\":\"bool[]\",\"name\":\"derivativeCancelSuccess\",\"type\":\"bool[]\"},{\"internalType\":\"string[]\",\"name\":\"derivativeOrderHashes\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"createdDerivativeOrdersCids\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"failedDerivativeOrdersCids\",\"type\":\"string[]\"}],\"internalType\":\"structIExchangeModule.BatchUpdateOrdersResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"int32\",\"name\":\"orderMask\",\"type\":\"int32\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"cancelDerivativeOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"cancelSpotOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"feeRecipient\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"margin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"triggerPrice\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.DerivativeOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"createDerivativeLimitOrder\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"internalType\":\"structIExchangeModule.CreateDerivativeLimitOrderResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"feeRecipient\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"margin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"triggerPrice\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.DerivativeOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"createDerivativeMarketOrder\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deltaExecutionQuantity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deltaExecutionMargin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deltaExecutionPrice\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"deltaIsLong\",\"type\":\"bool\"}],\"internalType\":\"structIExchangeModule.CreateDerivativeMarketOrderResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"feeRecipient\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"triggerPrice\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.SpotOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"createSpotLimitOrder\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"internalType\":\"structIExchangeModule.CreateSpotLimitOrderResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"feeRecipient\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"orderType\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"triggerPrice\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.SpotOrder\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"createSpotMarketOrder\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.CreateSpotMarketOrderResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"sourceSubaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"destinationSubaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"decreasePositionMargin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"orderHashes\",\"type\":\"string[]\"}],\"internalType\":\"structIExchangeModule.DerivativeOrdersRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"derivativeOrdersByHashes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"margin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fillable\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"internalType\":\"structIExchangeModule.TrimmedDerivativeLimitOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"sourceSubaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"destinationSubaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"externalTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"sourceSubaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"destinationSubaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"increasePositionMargin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"},{\"internalType\":\"ExchangeTypes.MsgType[]\",\"name\":\"methods\",\"type\":\"uint8[]\"}],\"name\":\"revoke\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"revoked\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"orderHashes\",\"type\":\"string[]\"}],\"internalType\":\"structIExchangeModule.SpotOrdersRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"spotOrdersByHashes\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fillable\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isBuy\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"orderHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"internalType\":\"structIExchangeModule.TrimmedSpotLimitOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"name\":\"subaccountDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"availableBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"trader\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"subaccountNonce\",\"type\":\"uint32\"}],\"name\":\"subaccountDeposits\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"availableBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalBalance\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.SubaccountDepositData[]\",\"name\":\"deposits\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"}],\"name\":\"subaccountPositions\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"marketID\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isLong\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"quantity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"entryPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"margin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cumulativeFundingEntry\",\"type\":\"uint256\"}],\"internalType\":\"structIExchangeModule.DerivativePosition[]\",\"name\":\"positions\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"sourceSubaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"destinationSubaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"subaccountTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"subaccountID\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
+ ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"grantee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"granter\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"method\",\"type\":\"uint8\",\"internalType\":\"ExchangeTypes.MsgType\"}],\"outputs\":[{\"name\":\"allowed\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"grantee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"authorizations\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.Authorization[]\",\"components\":[{\"name\":\"method\",\"type\":\"uint8\",\"internalType\":\"ExchangeTypes.MsgType\"},{\"name\":\"spendLimit\",\"type\":\"tuple[]\",\"internalType\":\"structCosmos.Coin[]\",\"components\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"duration\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"approved\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"batchCancelDerivativeOrders\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.OrderData[]\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderMask\",\"type\":\"int32\",\"internalType\":\"int32\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"batchCancelSpotOrders\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.OrderData[]\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderMask\",\"type\":\"int32\",\"internalType\":\"int32\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"batchCreateDerivativeLimitOrders\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"orders\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.DerivativeOrder[]\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"feeRecipient\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"margin\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"triggerPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}],\"outputs\":[{\"name\":\"response\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.BatchCreateDerivativeLimitOrdersResponse\",\"components\":[{\"name\":\"orderHashes\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"createdOrdersCids\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"failedOrdersCids\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"batchCreateSpotLimitOrders\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"orders\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.SpotOrder[]\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"feeRecipient\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"triggerPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}],\"outputs\":[{\"name\":\"response\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.BatchCreateSpotLimitOrdersResponse\",\"components\":[{\"name\":\"orderHashes\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"createdOrdersCids\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"failedOrdersCids\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"batchUpdateOrders\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"request\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.BatchUpdateOrdersRequest\",\"components\":[{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"spotMarketIDsToCancelAll\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"spotOrdersToCancel\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.OrderData[]\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderMask\",\"type\":\"int32\",\"internalType\":\"int32\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"spotOrdersToCreate\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.SpotOrder[]\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"feeRecipient\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"triggerPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]},{\"name\":\"derivativeMarketIDsToCancelAll\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"derivativeOrdersToCancel\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.OrderData[]\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderMask\",\"type\":\"int32\",\"internalType\":\"int32\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"derivativeOrdersToCreate\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.DerivativeOrder[]\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"feeRecipient\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"margin\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"triggerPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}]}],\"outputs\":[{\"name\":\"response\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.BatchUpdateOrdersResponse\",\"components\":[{\"name\":\"spotCancelSuccess\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"spotOrderHashes\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"createdSpotOrdersCids\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"failedSpotOrdersCids\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"derivativeCancelSuccess\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"derivativeOrderHashes\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"createdDerivativeOrdersCids\",\"type\":\"string[]\",\"internalType\":\"string[]\"},{\"name\":\"failedDerivativeOrdersCids\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cancelDerivativeOrder\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderMask\",\"type\":\"int32\",\"internalType\":\"int32\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"cancelSpotOrder\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createDerivativeLimitOrder\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"order\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.DerivativeOrder\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"feeRecipient\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"margin\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"triggerPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}],\"outputs\":[{\"name\":\"response\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.CreateDerivativeLimitOrderResponse\",\"components\":[{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createDerivativeMarketOrder\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"order\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.DerivativeOrder\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"feeRecipient\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"margin\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"triggerPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}],\"outputs\":[{\"name\":\"response\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.CreateDerivativeMarketOrderResponse\",\"components\":[{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"fee\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"payout\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"deltaExecutionQuantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"deltaExecutionMargin\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"deltaExecutionPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"deltaIsLong\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createSpotLimitOrder\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"order\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.SpotOrder\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"feeRecipient\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"triggerPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}],\"outputs\":[{\"name\":\"response\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.CreateSpotLimitOrderResponse\",\"components\":[{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createSpotMarketOrder\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"order\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.SpotOrder\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"feeRecipient\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"triggerPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}],\"outputs\":[{\"name\":\"response\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.CreateSpotMarketOrderResponse\",\"components\":[{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"fee\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"decreasePositionMargin\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"sourceSubaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"destinationSubaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deposit\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"derivativeOrdersByHashes\",\"inputs\":[{\"name\":\"request\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.DerivativeOrdersRequest\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderHashes\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"outputs\":[{\"name\":\"orders\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.TrimmedDerivativeLimitOrder[]\",\"components\":[{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"margin\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"fillable\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"isBuy\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"externalTransfer\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"sourceSubaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"destinationSubaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"increasePositionMargin\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"sourceSubaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"destinationSubaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"revoke\",\"inputs\":[{\"name\":\"grantee\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"methods\",\"type\":\"uint8[]\",\"internalType\":\"ExchangeTypes.MsgType[]\"}],\"outputs\":[{\"name\":\"revoked\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"spotOrdersByHashes\",\"inputs\":[{\"name\":\"request\",\"type\":\"tuple\",\"internalType\":\"structIExchangeModule.SpotOrdersRequest\",\"components\":[{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"orderHashes\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]}],\"outputs\":[{\"name\":\"orders\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.TrimmedSpotLimitOrder[]\",\"components\":[{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"fillable\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"isBuy\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"orderHash\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"cid\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"subaccountDeposit\",\"inputs\":[{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"availableBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"totalBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"subaccountDeposits\",\"inputs\":[{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"trader\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"subaccountNonce\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[{\"name\":\"deposits\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.SubaccountDepositData[]\",\"components\":[{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"availableBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"totalBalance\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"subaccountPositions\",\"inputs\":[{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"positions\",\"type\":\"tuple[]\",\"internalType\":\"structIExchangeModule.DerivativePosition[]\",\"components\":[{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"marketID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"isLong\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"quantity\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"entryPrice\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"margin\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"},{\"name\":\"cumulativeFundingEntry\",\"type\":\"uint256\",\"internalType\":\"ExchangeTypes.UFixed256x18\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"subaccountTransfer\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"sourceSubaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"destinationSubaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"subaccountID\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"}]",
}
// ExchangeModuleABI is the input ABI used to generate the binding from.
diff --git a/chain/evm/precompiles/staking/i_staking_module.abigen.go b/chain/evm/precompiles/staking/i_staking_module.abigen.go
index 5d9a4301..498c4a3d 100644
--- a/chain/evm/precompiles/staking/i_staking_module.abigen.go
+++ b/chain/evm/precompiles/staking/i_staking_module.abigen.go
@@ -37,7 +37,7 @@ type CosmosCoin struct {
// StakingModuleMetaData contains all meta data concerning the StakingModule contract.
var StakingModuleMetaData = &bind.MetaData{
- ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"validatorAddress\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"delegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatorAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"validatorAddress\",\"type\":\"string\"}],\"name\":\"delegation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin\",\"name\":\"balance\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"validatorSrcAddress\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"validatorDstAddress\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"redelegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"validatorAddress\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"undelegate\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"validatorAddress\",\"type\":\"string\"}],\"name\":\"withdrawDelegatorRewards\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"denom\",\"type\":\"string\"}],\"internalType\":\"structCosmos.Coin[]\",\"name\":\"amount\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
+ ABI: "[{\"type\":\"function\",\"name\":\"delegate\",\"inputs\":[{\"name\":\"validatorAddress\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[{\"name\":\"delegatorAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"validatorAddress\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"shares\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"balance\",\"type\":\"tuple\",\"internalType\":\"structCosmos.Coin\",\"components\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"redelegate\",\"inputs\":[{\"name\":\"validatorSrcAddress\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"validatorDstAddress\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"undelegate\",\"inputs\":[{\"name\":\"validatorAddress\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"success\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"withdrawDelegatorRewards\",\"inputs\":[{\"name\":\"validatorAddress\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"amount\",\"type\":\"tuple[]\",\"internalType\":\"structCosmos.Coin[]\",\"components\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"denom\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"nonpayable\"}]",
}
// StakingModuleABI is the input ABI used to generate the binding from.
diff --git a/chain/evm/types/events.go b/chain/evm/types/events.go
index d9e85928..55a8527f 100644
--- a/chain/evm/types/events.go
+++ b/chain/evm/types/events.go
@@ -4,7 +4,6 @@ package types
const (
EventTypeEthereumTx = TypeMsgEthereumTx
EventTypeBlockBloom = "block_bloom"
- EventTypeTxLog = "tx_log"
AttributeKeyContractAddress = "contract"
AttributeKeyRecipient = "recipient"
@@ -13,7 +12,7 @@ const (
AttributeKeyTxIndex = "txIndex"
AttributeKeyTxGasUsed = "txGasUsed"
AttributeKeyTxType = "txType"
- AttributeKeyTxLog = "txLog"
+
// tx failed in eth vm execution
AttributeKeyEthereumTxFailed = "ethereumTxFailed"
AttributeValueCategory = ModuleName
diff --git a/chain/evm/types/tx.pb.go b/chain/evm/types/tx.pb.go
index 741b1087..b015872d 100644
--- a/chain/evm/types/tx.pb.go
+++ b/chain/evm/types/tx.pb.go
@@ -316,6 +316,9 @@ type MsgEthereumTxResponse struct {
GasUsed uint64 `protobuf:"varint,5,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"`
// include the block hash for json-rpc to use
BlockHash []byte `protobuf:"bytes,6,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
+ // execution_gas_used specifies the actual gas consumed during EVM execution.
+ // This is used for accurate gas estimation.
+ ExecutionGasUsed uint64 `protobuf:"varint,7,opt,name=execution_gas_used,json=executionGasUsed,proto3" json:"execution_gas_used,omitempty"`
}
func (m *MsgEthereumTxResponse) Reset() { *m = MsgEthereumTxResponse{} }
@@ -459,75 +462,77 @@ func init() {
func init() { proto.RegisterFile("injective/evm/v1/tx.proto", fileDescriptor_7f62438576d4fe29) }
var fileDescriptor_7f62438576d4fe29 = []byte{
- // 1083 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x6f, 0x1b, 0xc5,
- 0x17, 0xcf, 0xda, 0xeb, 0x5f, 0x63, 0x37, 0xad, 0x46, 0x89, 0xba, 0xb6, 0xbe, 0xf1, 0xfa, 0xbb,
- 0x05, 0xe1, 0x16, 0x65, 0x57, 0x0d, 0xa8, 0x52, 0x73, 0xcb, 0x36, 0x09, 0x04, 0x25, 0xa2, 0x5a,
- 0xdc, 0x0b, 0x20, 0x59, 0x93, 0xdd, 0xc9, 0x7a, 0xa9, 0x77, 0x67, 0xb5, 0x33, 0x5e, 0x6c, 0x24,
- 0xa4, 0xaa, 0x27, 0x8e, 0x54, 0xfc, 0x03, 0x9c, 0x39, 0xf5, 0xd0, 0x33, 0x17, 0x2e, 0x15, 0xa7,
- 0x0a, 0x2e, 0xa8, 0x07, 0x83, 0x12, 0xa4, 0x8a, 0x1c, 0x39, 0x73, 0x40, 0x33, 0xb3, 0x8e, 0xe3,
- 0x9a, 0x24, 0x50, 0x09, 0x6e, 0xf3, 0xe6, 0x7d, 0xde, 0xcc, 0x7b, 0x9f, 0xcf, 0xec, 0x7b, 0x0b,
- 0xea, 0x41, 0xf4, 0x09, 0x76, 0x59, 0x90, 0x62, 0x0b, 0xa7, 0xa1, 0x95, 0xde, 0xb4, 0xd8, 0xd0,
- 0x8c, 0x13, 0xc2, 0x08, 0xbc, 0x72, 0xe2, 0x32, 0x71, 0x1a, 0x9a, 0xe9, 0xcd, 0xc6, 0x55, 0x97,
- 0xd0, 0x90, 0x50, 0x2b, 0xa4, 0x3e, 0x47, 0x86, 0xd4, 0x97, 0xd0, 0x46, 0x5d, 0x3a, 0xba, 0xc2,
- 0xb2, 0xa4, 0x91, 0xb9, 0x96, 0x7c, 0xe2, 0x13, 0xb9, 0xcf, 0x57, 0xd9, 0xee, 0xff, 0x7c, 0x42,
- 0xfc, 0x3e, 0xb6, 0x50, 0x1c, 0x58, 0x28, 0x8a, 0x08, 0x43, 0x2c, 0x20, 0xd1, 0x24, 0xa6, 0x9e,
- 0x79, 0x85, 0xb5, 0x3f, 0x38, 0xb0, 0x50, 0x34, 0xca, 0x5c, 0xd7, 0xe6, 0xf2, 0x45, 0xae, 0x8b,
- 0x29, 0xed, 0xb2, 0x41, 0xdc, 0xc7, 0x19, 0xa8, 0x31, 0x07, 0xea, 0x93, 0x49, 0xaa, 0x2b, 0x73,
- 0xbe, 0x18, 0x25, 0x28, 0xcc, 0xae, 0x36, 0x1e, 0xe4, 0xc0, 0xa5, 0x3d, 0xea, 0x6f, 0xb1, 0x1e,
- 0x4e, 0xf0, 0x20, 0xec, 0x0c, 0x61, 0x1b, 0xa8, 0x1e, 0x62, 0x48, 0x53, 0x5a, 0x4a, 0xbb, 0xba,
- 0xb6, 0x64, 0xca, 0xdc, 0xcc, 0x49, 0x6e, 0xe6, 0x46, 0x34, 0x72, 0x04, 0x02, 0xd6, 0x81, 0x4a,
- 0x83, 0xcf, 0xb0, 0x96, 0x6b, 0x29, 0x6d, 0xc5, 0x2e, 0x1c, 0x8f, 0x75, 0x65, 0xd5, 0x11, 0x5b,
- 0xf0, 0x6d, 0x70, 0xd9, 0xc3, 0x71, 0x82, 0x5d, 0xc4, 0xb0, 0xd7, 0xed, 0x21, 0xda, 0xd3, 0xf2,
- 0x2d, 0xa5, 0x5d, 0xb1, 0xab, 0xbf, 0x8f, 0xf5, 0x52, 0xd2, 0x8f, 0xd7, 0x8d, 0x55, 0xc3, 0x59,
- 0x9c, 0x62, 0xde, 0x45, 0xb4, 0x07, 0xdf, 0x9c, 0x89, 0x3a, 0x48, 0x48, 0xa8, 0xa9, 0x22, 0x2a,
- 0xa7, 0x29, 0xa7, 0xc1, 0xdb, 0x09, 0x09, 0x21, 0x04, 0xaa, 0x40, 0x14, 0x5a, 0x4a, 0xbb, 0xe6,
- 0x88, 0x35, 0x7c, 0x0d, 0xe4, 0x13, 0xf4, 0xa9, 0x56, 0xe4, 0x5b, 0x36, 0x7c, 0x3a, 0xd6, 0x17,
- 0x9e, 0x8f, 0x75, 0x30, 0x2d, 0xce, 0xe1, 0xee, 0xf5, 0x4b, 0x5f, 0x7c, 0xad, 0x2f, 0x3c, 0x7c,
- 0xf1, 0xf8, 0x86, 0x08, 0x32, 0x1e, 0xe5, 0x40, 0x79, 0x17, 0xfb, 0xc8, 0x1d, 0x75, 0x86, 0x70,
- 0x09, 0x14, 0x22, 0x12, 0xb9, 0x58, 0x94, 0xaf, 0x3a, 0xd2, 0x80, 0xb7, 0x40, 0xc5, 0x47, 0x5c,
- 0xee, 0xc0, 0x95, 0xe5, 0x56, 0xec, 0xfa, 0xf3, 0xb1, 0xbe, 0x2c, 0x95, 0xa7, 0xde, 0x7d, 0x33,
- 0x20, 0x56, 0x88, 0x58, 0xcf, 0xdc, 0x89, 0x98, 0x53, 0xf6, 0x11, 0xbd, 0xcb, 0xa1, 0xb0, 0x09,
- 0xf2, 0x3e, 0xa2, 0xa2, 0x74, 0xd5, 0xae, 0x1d, 0x8e, 0xf5, 0xf2, 0x3b, 0x88, 0xee, 0x06, 0x61,
- 0xc0, 0x1c, 0xee, 0x80, 0x8b, 0x20, 0xc7, 0x88, 0xac, 0xd1, 0xc9, 0x31, 0x02, 0x6f, 0x83, 0x42,
- 0x8a, 0xfa, 0x03, 0x2c, 0x8a, 0xaa, 0xd8, 0xd7, 0xce, 0xbc, 0xe3, 0x70, 0xac, 0x17, 0x37, 0x42,
- 0x32, 0x88, 0x98, 0x23, 0x23, 0x38, 0x1d, 0x42, 0xb6, 0xa2, 0xa4, 0x43, 0x08, 0x54, 0x03, 0x4a,
- 0xaa, 0x95, 0xc4, 0x86, 0x92, 0x72, 0x2b, 0xd1, 0xca, 0xd2, 0x4a, 0xb8, 0x45, 0xb5, 0x8a, 0xb4,
- 0xe8, 0xfa, 0x22, 0xa7, 0xe4, 0xfb, 0x27, 0xab, 0xc5, 0xce, 0x70, 0x13, 0x31, 0x64, 0x7c, 0x9b,
- 0x07, 0xb5, 0x0d, 0xf1, 0xd0, 0x76, 0x03, 0xca, 0x3a, 0x43, 0xf8, 0x1e, 0x28, 0xbb, 0x3d, 0x14,
- 0x44, 0xdd, 0xc0, 0x13, 0xd4, 0x54, 0x6c, 0xeb, 0xbc, 0xe4, 0x4a, 0x77, 0x38, 0x78, 0x67, 0xf3,
- 0x78, 0xac, 0x97, 0x5c, 0xb9, 0x74, 0xb2, 0x85, 0x37, 0xe5, 0x38, 0x77, 0x26, 0xc7, 0xf9, 0x7f,
- 0xcc, 0xb1, 0x7a, 0x3e, 0xc7, 0x85, 0x79, 0x8e, 0x8b, 0xaf, 0xcc, 0x71, 0xe9, 0x14, 0xc7, 0x1f,
- 0x81, 0xb2, 0xfc, 0x22, 0x31, 0xd5, 0xca, 0xad, 0x7c, 0xbb, 0xba, 0xb6, 0x62, 0xbe, 0xdc, 0x48,
- 0x4c, 0x49, 0x65, 0x87, 0x7f, 0xb2, 0x76, 0x8b, 0x3f, 0xcb, 0xe3, 0xb1, 0x0e, 0xd0, 0x09, 0xbf,
- 0xdf, 0xfc, 0xac, 0x83, 0x29, 0xdb, 0xce, 0xc9, 0x81, 0x52, 0xc0, 0xca, 0x8c, 0x80, 0x60, 0x46,
- 0xc0, 0xea, 0x59, 0x02, 0xfe, 0x91, 0x07, 0xb5, 0xcd, 0x51, 0x84, 0xc2, 0xc0, 0xdd, 0xc6, 0xf8,
- 0x3f, 0x11, 0xf0, 0x36, 0xa8, 0x72, 0x01, 0x59, 0x10, 0x77, 0x5d, 0x14, 0x5f, 0x2c, 0x21, 0x97,
- 0xbb, 0x13, 0xc4, 0x77, 0x50, 0x3c, 0x09, 0x3d, 0xc0, 0x58, 0x84, 0xaa, 0x7f, 0x27, 0x74, 0x1b,
- 0x63, 0x1e, 0x9a, 0xc9, 0x5f, 0x38, 0x5f, 0xfe, 0xe2, 0xbc, 0xfc, 0xa5, 0x57, 0x96, 0xbf, 0x7c,
- 0x86, 0xfc, 0x95, 0x7f, 0x45, 0x7e, 0x30, 0x23, 0x7f, 0x75, 0x46, 0xfe, 0xda, 0x59, 0xf2, 0x1b,
- 0xa0, 0xb1, 0x35, 0x64, 0x38, 0xa2, 0x01, 0x89, 0xde, 0x8f, 0xc5, 0xac, 0x99, 0x76, 0xc1, 0x75,
- 0x95, 0xa3, 0x8d, 0xef, 0x14, 0xb0, 0x3c, 0xd3, 0xfa, 0x1d, 0x4c, 0x63, 0x12, 0x51, 0x51, 0xa8,
- 0x68, 0xd9, 0xe2, 0x9d, 0x38, 0x62, 0x0d, 0xaf, 0x03, 0xb5, 0x4f, 0x7c, 0xaa, 0xe5, 0x44, 0x91,
- 0xcb, 0xf3, 0x45, 0xee, 0x12, 0xdf, 0x11, 0x10, 0x78, 0x05, 0xe4, 0x13, 0xcc, 0xc4, 0x03, 0xa8,
- 0x39, 0x7c, 0x09, 0xeb, 0xa0, 0x9c, 0x86, 0x5d, 0x9c, 0x24, 0x24, 0xc9, 0xba, 0x5d, 0x29, 0x0d,
- 0xb7, 0xb8, 0xc9, 0x5d, 0x5c, 0xfa, 0x01, 0xc5, 0x9e, 0x14, 0xd1, 0x29, 0xf9, 0x88, 0xde, 0xa3,
- 0xd8, 0x83, 0x2b, 0x00, 0xec, 0xf7, 0x89, 0x7b, 0x5f, 0xce, 0x0f, 0xd9, 0xd8, 0x2a, 0x62, 0x87,
- 0x4f, 0x8b, 0xac, 0x8a, 0x47, 0x0a, 0xb8, 0xbc, 0x47, 0xfd, 0x7b, 0xb1, 0x87, 0x18, 0xbe, 0x2b,
- 0x46, 0x1b, 0x6f, 0x25, 0x68, 0xc0, 0x7a, 0x24, 0x09, 0xd8, 0x28, 0x7b, 0xec, 0xda, 0x0f, 0x4f,
- 0x56, 0x97, 0xb2, 0x41, 0xbd, 0xe1, 0x79, 0x09, 0xa6, 0xf4, 0x03, 0x96, 0x04, 0x91, 0xef, 0x4c,
- 0xa1, 0xf0, 0x16, 0x28, 0xca, 0xe1, 0x28, 0x1e, 0x76, 0x75, 0x4d, 0x9b, 0xaf, 0x52, 0xde, 0x60,
- 0xab, 0x5c, 0x45, 0x27, 0x43, 0xaf, 0x2f, 0xf2, 0x61, 0x32, 0x3d, 0xc7, 0xa8, 0x83, 0xab, 0x2f,
- 0xa5, 0x34, 0xa1, 0x76, 0xed, 0x37, 0x05, 0xe4, 0xf7, 0xa8, 0x0f, 0x3f, 0x07, 0xa7, 0xc6, 0x12,
- 0xd4, 0xe7, 0x2f, 0x9a, 0x51, 0xa6, 0xf1, 0xc6, 0x05, 0x80, 0xc9, 0xf9, 0xc6, 0xeb, 0x0f, 0x7f,
- 0xfc, 0xf5, 0xab, 0x9c, 0x6e, 0xac, 0x58, 0x73, 0x73, 0x1f, 0x67, 0xe8, 0x2e, 0x1b, 0xc2, 0x8f,
- 0x41, 0x6d, 0x86, 0xb1, 0xff, 0xff, 0xe5, 0xf9, 0xa7, 0x21, 0x8d, 0xeb, 0x17, 0x42, 0x26, 0x49,
- 0x34, 0x0a, 0x0f, 0x5e, 0x3c, 0xbe, 0xa1, 0xd8, 0xee, 0xd3, 0xc3, 0xa6, 0xf2, 0xec, 0xb0, 0xa9,
- 0xfc, 0x72, 0xd8, 0x54, 0xbe, 0x3c, 0x6a, 0x2e, 0x3c, 0x3b, 0x6a, 0x2e, 0xfc, 0x74, 0xd4, 0x5c,
- 0xf8, 0x70, 0xc7, 0x0f, 0x58, 0x6f, 0xb0, 0x6f, 0xba, 0x24, 0xb4, 0x76, 0x26, 0xa7, 0xee, 0xa2,
- 0x7d, 0x3a, 0xcd, 0x7a, 0xd5, 0x25, 0x09, 0x3e, 0x6d, 0xf2, 0xde, 0x63, 0x85, 0xc4, 0x1b, 0xf4,
- 0x31, 0x15, 0x25, 0xb1, 0x51, 0x8c, 0xe9, 0x7e, 0x51, 0xfc, 0x98, 0xbc, 0xf5, 0x67, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0xd7, 0x70, 0xb1, 0xf4, 0xd9, 0x09, 0x00, 0x00,
+ // 1113 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x6f, 0x1b, 0x45,
+ 0x14, 0xce, 0xda, 0xeb, 0x5f, 0x63, 0x37, 0x8d, 0x46, 0x89, 0xb2, 0x36, 0xc4, 0x6b, 0x5c, 0x10,
+ 0x69, 0x21, 0xbb, 0x6a, 0x40, 0x95, 0x9a, 0x5b, 0xb6, 0x49, 0x4a, 0x50, 0x22, 0xaa, 0xc5, 0xbd,
+ 0x00, 0x92, 0x35, 0xd9, 0x9d, 0xac, 0x97, 0x7a, 0x77, 0x56, 0x3b, 0x63, 0x63, 0x23, 0x21, 0xa1,
+ 0x9e, 0xb8, 0x20, 0x81, 0x38, 0x23, 0x21, 0x8e, 0x9c, 0x7a, 0xe8, 0x1f, 0x51, 0x71, 0xa1, 0x82,
+ 0x0b, 0xea, 0xc1, 0xa0, 0x04, 0xa9, 0x22, 0x37, 0xf8, 0x0b, 0xd0, 0xcc, 0xac, 0xe3, 0xb8, 0x4b,
+ 0x7e, 0x50, 0x89, 0xde, 0xe6, 0xcd, 0xfb, 0xde, 0xec, 0x7b, 0xdf, 0xfb, 0x66, 0xde, 0x82, 0xaa,
+ 0x1f, 0x7e, 0x8c, 0x1d, 0xe6, 0xf7, 0xb1, 0x89, 0xfb, 0x81, 0xd9, 0xbf, 0x6e, 0xb2, 0x81, 0x11,
+ 0xc5, 0x84, 0x11, 0x38, 0x77, 0xec, 0x32, 0x70, 0x3f, 0x30, 0xfa, 0xd7, 0x6b, 0x8b, 0x0e, 0xa1,
+ 0x01, 0xa1, 0x66, 0x40, 0x3d, 0x8e, 0x0c, 0xa8, 0x27, 0xa1, 0xb5, 0xaa, 0x74, 0xb4, 0x85, 0x65,
+ 0x4a, 0x23, 0x71, 0xcd, 0x7b, 0xc4, 0x23, 0x72, 0x9f, 0xaf, 0x92, 0xdd, 0x97, 0x3d, 0x42, 0xbc,
+ 0x2e, 0x36, 0x51, 0xe4, 0x9b, 0x28, 0x0c, 0x09, 0x43, 0xcc, 0x27, 0xe1, 0x38, 0xa6, 0x9a, 0x78,
+ 0x85, 0xb5, 0xd7, 0xdb, 0x37, 0x51, 0x38, 0x4c, 0x5c, 0x57, 0x52, 0xf9, 0x22, 0xc7, 0xc1, 0x94,
+ 0xb6, 0x59, 0x2f, 0xea, 0xe2, 0x04, 0x54, 0x4b, 0x81, 0xba, 0x64, 0x9c, 0xea, 0x52, 0xca, 0x17,
+ 0xa1, 0x18, 0x05, 0xc9, 0xa7, 0x9b, 0xdf, 0x66, 0xc0, 0xa5, 0x5d, 0xea, 0x6d, 0xb2, 0x0e, 0x8e,
+ 0x71, 0x2f, 0x68, 0x0d, 0xe0, 0x26, 0x50, 0x5d, 0xc4, 0x90, 0xa6, 0x34, 0x94, 0xe5, 0xf2, 0xea,
+ 0xbc, 0x21, 0x73, 0x33, 0xc6, 0xb9, 0x19, 0xeb, 0xe1, 0xd0, 0x7a, 0xe9, 0xc7, 0x87, 0x2b, 0x8b,
+ 0xcf, 0xd2, 0x65, 0xb4, 0x06, 0x1b, 0x88, 0x21, 0x5b, 0x84, 0xc3, 0x2a, 0x50, 0xa9, 0xff, 0x29,
+ 0xd6, 0x32, 0x0d, 0x65, 0x59, 0xb1, 0x72, 0x47, 0x23, 0x5d, 0x59, 0xb1, 0xc5, 0x16, 0x7c, 0x1b,
+ 0x5c, 0x76, 0x71, 0x14, 0x63, 0x07, 0x31, 0xec, 0xb6, 0x3b, 0x88, 0x76, 0xb4, 0x6c, 0x43, 0x59,
+ 0x2e, 0x59, 0xe5, 0xbf, 0x47, 0x7a, 0x21, 0xee, 0x46, 0x6b, 0xcd, 0x95, 0xa6, 0x3d, 0x3b, 0xc1,
+ 0xbc, 0x83, 0x68, 0x07, 0xbe, 0x31, 0x15, 0xb5, 0x1f, 0x93, 0x40, 0x53, 0x45, 0x54, 0x46, 0x53,
+ 0x4e, 0x82, 0xb7, 0x62, 0x12, 0x40, 0x08, 0x54, 0x81, 0xc8, 0x35, 0x94, 0xe5, 0x8a, 0x2d, 0xd6,
+ 0xf0, 0x55, 0x90, 0x8d, 0xd1, 0x27, 0x5a, 0x9e, 0x6f, 0x59, 0xf0, 0xd1, 0x48, 0x9f, 0x79, 0x32,
+ 0xd2, 0xc1, 0xa4, 0x72, 0x9b, 0xbb, 0xd7, 0x2e, 0x7d, 0xf1, 0x9d, 0x3e, 0x73, 0xff, 0xe9, 0x83,
+ 0x6b, 0x22, 0xa8, 0xf9, 0x7d, 0x06, 0x14, 0x77, 0xb0, 0x87, 0x9c, 0x61, 0x6b, 0x00, 0xe7, 0x41,
+ 0x2e, 0x24, 0xa1, 0x83, 0x05, 0x37, 0xaa, 0x2d, 0x0d, 0x78, 0x03, 0x94, 0x3c, 0xc4, 0xb5, 0xe0,
+ 0x3b, 0xb2, 0xdc, 0x92, 0x55, 0x7d, 0x32, 0xd2, 0x17, 0xa4, 0x2c, 0xa8, 0x7b, 0xcf, 0xf0, 0x89,
+ 0x19, 0x20, 0xd6, 0x31, 0xb6, 0x43, 0x66, 0x17, 0x3d, 0x44, 0xef, 0x70, 0x28, 0xac, 0x83, 0xac,
+ 0x87, 0xa8, 0x28, 0x5d, 0xb5, 0x2a, 0x07, 0x23, 0xbd, 0x78, 0x1b, 0xd1, 0x1d, 0x3f, 0xf0, 0x99,
+ 0xcd, 0x1d, 0x70, 0x16, 0x64, 0x18, 0x91, 0x35, 0xda, 0x19, 0x46, 0xe0, 0x4d, 0x90, 0xeb, 0xa3,
+ 0x6e, 0x0f, 0x8b, 0xa2, 0x4a, 0xd6, 0x95, 0x53, 0xbf, 0x71, 0x30, 0xd2, 0xf3, 0xeb, 0x01, 0xe9,
+ 0x85, 0xcc, 0x96, 0x11, 0x9c, 0x0e, 0xd1, 0xd3, 0xbc, 0xa4, 0x43, 0x34, 0xa8, 0x02, 0x94, 0xbe,
+ 0x56, 0x10, 0x1b, 0x4a, 0x9f, 0x5b, 0xb1, 0x56, 0x94, 0x56, 0xcc, 0x2d, 0xaa, 0x95, 0xa4, 0x45,
+ 0xd7, 0x74, 0x4e, 0xc9, 0x19, 0x1d, 0x6f, 0xfe, 0x94, 0x05, 0x95, 0x75, 0x21, 0xcb, 0x1d, 0x9f,
+ 0xb2, 0xd6, 0x00, 0xbe, 0x0b, 0x8a, 0x4e, 0x07, 0xf9, 0x61, 0xdb, 0x77, 0x05, 0x57, 0x25, 0xcb,
+ 0x3c, 0x2b, 0xdb, 0xc2, 0x2d, 0x0e, 0xde, 0xde, 0x38, 0x1a, 0xe9, 0x05, 0x47, 0x2e, 0xed, 0x64,
+ 0xe1, 0x4e, 0x48, 0xcf, 0x9c, 0x4a, 0x7a, 0xf6, 0x3f, 0x93, 0xae, 0x9e, 0x4d, 0x7a, 0x2e, 0x4d,
+ 0x7a, 0xfe, 0xb9, 0x49, 0x2f, 0x9c, 0x20, 0xfd, 0x43, 0x50, 0x94, 0xf7, 0x17, 0x53, 0xad, 0xd8,
+ 0xc8, 0x2e, 0x97, 0x57, 0x97, 0x8c, 0x14, 0xab, 0x92, 0xca, 0x16, 0xbf, 0xe0, 0x56, 0x83, 0xeb,
+ 0xf4, 0x68, 0xa4, 0x03, 0x74, 0xcc, 0xef, 0x0f, 0xbf, 0xe9, 0x60, 0xc2, 0xb6, 0x7d, 0x7c, 0xa0,
+ 0xec, 0x68, 0x69, 0xaa, 0xa3, 0x60, 0xaa, 0xa3, 0xe5, 0x0b, 0x77, 0xf4, 0x4b, 0x15, 0x54, 0x36,
+ 0x86, 0x21, 0x0a, 0x7c, 0x67, 0x0b, 0xe3, 0x17, 0xd2, 0xd1, 0x9b, 0xa0, 0xcc, 0x3b, 0xca, 0xfc,
+ 0xa8, 0xed, 0xa0, 0xe8, 0xfc, 0x9e, 0xf2, 0xfe, 0xb7, 0xfc, 0xe8, 0x16, 0x8a, 0xc6, 0xa1, 0xfb,
+ 0x18, 0x8b, 0x50, 0xf5, 0x22, 0xa1, 0x5b, 0x18, 0xf3, 0xd0, 0x44, 0x0f, 0xb9, 0xb3, 0xf5, 0x90,
+ 0x4f, 0xeb, 0xa1, 0xf0, 0xdc, 0x7a, 0x28, 0x9e, 0xa2, 0x87, 0xd2, 0xff, 0xa2, 0x07, 0x30, 0xa5,
+ 0x87, 0xf2, 0x94, 0x1e, 0x2a, 0x17, 0xd6, 0x43, 0x13, 0xd4, 0x36, 0x07, 0x0c, 0x87, 0xd4, 0x27,
+ 0xe1, 0x7b, 0x91, 0x98, 0x5d, 0x93, 0x87, 0x73, 0x4d, 0xe5, 0xe1, 0xcd, 0xbf, 0x14, 0xb0, 0x30,
+ 0x35, 0x4a, 0x6c, 0x4c, 0x23, 0x12, 0x52, 0x51, 0xb9, 0x78, 0xe5, 0x85, 0x70, 0x6c, 0xb1, 0x86,
+ 0x57, 0x81, 0xda, 0x25, 0x1e, 0xd5, 0x32, 0xa2, 0xea, 0x85, 0x74, 0xd5, 0x3b, 0xc4, 0xb3, 0x05,
+ 0x04, 0xce, 0x81, 0x6c, 0x8c, 0x99, 0x50, 0x44, 0xc5, 0xe6, 0x4b, 0x58, 0x05, 0xc5, 0x7e, 0xd0,
+ 0xc6, 0x71, 0x4c, 0xe2, 0xe4, 0x81, 0x2c, 0xf4, 0x83, 0x4d, 0x6e, 0x72, 0x17, 0xd7, 0x42, 0x8f,
+ 0x62, 0x57, 0x76, 0xd5, 0x2e, 0x78, 0x88, 0xde, 0xa5, 0xd8, 0x85, 0x4b, 0x00, 0xec, 0x75, 0x89,
+ 0x73, 0x4f, 0x8e, 0x1c, 0xf9, 0x16, 0x96, 0xc4, 0x8e, 0x18, 0x30, 0x6f, 0x02, 0x88, 0x07, 0xd8,
+ 0xe9, 0xf1, 0xea, 0xda, 0xc7, 0x67, 0x14, 0xc4, 0x19, 0x73, 0xc7, 0x9e, 0xdb, 0xf2, 0xb0, 0xa4,
+ 0xe6, 0xaf, 0x15, 0x70, 0x79, 0x97, 0x7a, 0x77, 0x23, 0x17, 0x31, 0x7c, 0x47, 0x0c, 0x56, 0xfe,
+ 0x34, 0xa1, 0x1e, 0xeb, 0x90, 0xd8, 0x67, 0xc3, 0xe4, 0xae, 0x68, 0x3f, 0x3f, 0x5c, 0x99, 0x4f,
+ 0x7e, 0x13, 0xd6, 0x5d, 0x37, 0xc6, 0x94, 0xbe, 0xcf, 0x62, 0x3f, 0xf4, 0xec, 0x09, 0x14, 0xde,
+ 0x00, 0x79, 0x39, 0x9a, 0xc5, 0xbd, 0x28, 0xaf, 0x6a, 0x69, 0x4e, 0xe4, 0x17, 0x2c, 0x95, 0x8b,
+ 0xc0, 0x4e, 0xd0, 0x6b, 0xb3, 0x7c, 0x5a, 0x4d, 0xce, 0x69, 0x56, 0xc1, 0xe2, 0x33, 0x29, 0x8d,
+ 0x1b, 0xb1, 0xfa, 0xa7, 0x02, 0xb2, 0xbb, 0xd4, 0x83, 0x9f, 0x81, 0x13, 0x73, 0x0f, 0xea, 0xe9,
+ 0x0f, 0x4d, 0xf5, 0xb1, 0xf6, 0xfa, 0x39, 0x80, 0xf1, 0xf9, 0xcd, 0xd7, 0xee, 0xff, 0xf2, 0xc7,
+ 0x37, 0x19, 0xbd, 0xb9, 0x64, 0xa6, 0xfe, 0x3a, 0x70, 0x82, 0x6e, 0xb3, 0x01, 0xfc, 0x08, 0x54,
+ 0xa6, 0x18, 0x7b, 0xe5, 0x5f, 0xcf, 0x3f, 0x09, 0xa9, 0x5d, 0x3d, 0x17, 0x32, 0x4e, 0xa2, 0x96,
+ 0xfb, 0xfc, 0xe9, 0x83, 0x6b, 0x8a, 0xe5, 0x3c, 0x3a, 0xa8, 0x2b, 0x8f, 0x0f, 0xea, 0xca, 0xef,
+ 0x07, 0x75, 0xe5, 0xab, 0xc3, 0xfa, 0xcc, 0xe3, 0xc3, 0xfa, 0xcc, 0xaf, 0x87, 0xf5, 0x99, 0x0f,
+ 0xb6, 0x3d, 0x9f, 0x75, 0x7a, 0x7b, 0x86, 0x43, 0x02, 0x73, 0x7b, 0x7c, 0xea, 0x0e, 0xda, 0xa3,
+ 0x93, 0xac, 0x57, 0x1c, 0x12, 0xe3, 0x93, 0x26, 0x7f, 0xba, 0xcc, 0x80, 0xb8, 0xbd, 0x2e, 0xa6,
+ 0xa2, 0x24, 0x36, 0x8c, 0x30, 0xdd, 0xcb, 0x8b, 0xdf, 0xa2, 0xb7, 0xfe, 0x09, 0x00, 0x00, 0xff,
+ 0xff, 0x58, 0xcb, 0x01, 0xd0, 0x57, 0x0a, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1109,6 +1114,11 @@ func (m *MsgEthereumTxResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.ExecutionGasUsed != 0 {
+ i = encodeVarintTx(dAtA, i, uint64(m.ExecutionGasUsed))
+ i--
+ dAtA[i] = 0x38
+ }
if len(m.BlockHash) > 0 {
i -= len(m.BlockHash)
copy(dAtA[i:], m.BlockHash)
@@ -1456,6 +1466,9 @@ func (m *MsgEthereumTxResponse) Size() (n int) {
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
+ if m.ExecutionGasUsed != 0 {
+ n += 1 + sovTx(uint64(m.ExecutionGasUsed))
+ }
return n
}
@@ -3141,6 +3154,25 @@ func (m *MsgEthereumTxResponse) Unmarshal(dAtA []byte) error {
m.BlockHash = []byte{}
}
iNdEx = postIndex
+ case 7:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExecutionGasUsed", wireType)
+ }
+ m.ExecutionGasUsed = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTx
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ExecutionGasUsed |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := skipTx(dAtA[iNdEx:])
diff --git a/chain/evm/types/utils.go b/chain/evm/types/utils.go
index 9f250dab..3604ad3d 100644
--- a/chain/evm/types/utils.go
+++ b/chain/evm/types/utils.go
@@ -2,11 +2,9 @@ package types
import (
"encoding/hex"
- "encoding/json"
"fmt"
"math/big"
- abci "github.com/cometbft/cometbft/abci/types"
"github.com/cosmos/gogoproto/proto"
errorsmod "cosmossdk.io/errors"
@@ -86,64 +84,20 @@ func logsFromTxResponse(dst []*ethtypes.Log, rsp *MsgEthereumTxResponse, blockNu
return dst
}
-// DecodeMsgLogsFromEvents decodes a protobuf-encoded byte slice into ethereum logs, for a single message.
-func DecodeMsgLogsFromEvents(in []byte, events []abci.Event, msgIndex int, blockNumber uint64) ([]*ethtypes.Log, error) {
+// DecodeMsgLogs decodes a protobuf-encoded byte slice into ethereum logs, for a single message.
+func DecodeMsgLogs(in []byte, msgIndex int, blockNumber uint64) ([]*ethtypes.Log, error) {
txResponses, err := DecodeTxResponses(in)
if err != nil {
return nil, err
}
-
- var logs []*ethtypes.Log
- if msgIndex < len(txResponses) {
- logs = logsFromTxResponse(nil, txResponses[msgIndex], blockNumber)
- }
-
- if len(logs) == 0 {
- logs, err = TxLogsFromEvents(events, msgIndex)
+ if msgIndex >= len(txResponses) {
+ return nil, fmt.Errorf("invalid message index: %d", msgIndex)
}
-
- return logs, err
+ return logsFromTxResponse(nil, txResponses[msgIndex], blockNumber), nil
}
-// TxLogsFromEvents parses ethereum logs from cosmos events for specific msg index
-func TxLogsFromEvents(events []abci.Event, msgIndex int) ([]*ethtypes.Log, error) {
- for _, event := range events {
- if event.Type != EventTypeTxLog {
- continue
- }
-
- if msgIndex > 0 {
- // not the eth tx we want
- msgIndex--
- continue
- }
-
- return ParseTxLogsFromEvent(event)
- }
-
- return []*ethtypes.Log{}, nil
-}
-
-// ParseTxLogsFromEvent parse tx logs from one event
-func ParseTxLogsFromEvent(event abci.Event) ([]*ethtypes.Log, error) {
- logs := make([]*Log, 0, len(event.Attributes))
- for _, attr := range event.Attributes {
- if attr.Key != AttributeKeyTxLog {
- continue
- }
-
- var log Log
- if err := json.Unmarshal([]byte(attr.Value), &log); err != nil {
- return nil, err
- }
-
- logs = append(logs, &log)
- }
- return LogsToEthereum(logs), nil
-}
-
-// DecodeTxLogsFromEvents decodes a protobuf-encoded byte slice into ethereum logs
-func DecodeTxLogsFromEvents(in []byte, events []abci.Event, blockNumber uint64) ([]*ethtypes.Log, error) {
+// DecodeTxLogs decodes a protobuf-encoded byte slice into ethereum logs
+func DecodeTxLogs(in []byte, blockNumber uint64) ([]*ethtypes.Log, error) {
txResponses, err := DecodeTxResponses(in)
if err != nil {
return nil, err
@@ -152,18 +106,6 @@ func DecodeTxLogsFromEvents(in []byte, events []abci.Event, blockNumber uint64)
for _, response := range txResponses {
logs = logsFromTxResponse(logs, response, blockNumber)
}
- if len(logs) == 0 {
- for _, event := range events {
- if event.Type != EventTypeTxLog {
- continue
- }
- txLogs, err := ParseTxLogsFromEvent(event)
- if err != nil {
- return nil, err
- }
- logs = append(logs, txLogs...)
- }
- }
return logs, nil
}
diff --git a/chain/exchange/types/codec.go b/chain/exchange/types/codec.go
index 6db21664..41b9fcf7 100644
--- a/chain/exchange/types/codec.go
+++ b/chain/exchange/types/codec.go
@@ -15,6 +15,10 @@ import (
// RegisterLegacyAminoCodec registers the necessary x/exchange interfaces and concrete types
// on the provided LegacyAmino codec. These types are used for Amino JSON serialization.
func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
+ // Register oneof interfaces
+ cdc.RegisterInterface((*isOpenNotionalCap_Cap)(nil), nil)
+ cdc.RegisterInterface((*isFullDerivativeMarket_Info)(nil), nil)
+
cdc.RegisterConcrete(&MsgDeposit{}, "exchange/MsgDeposit", nil)
cdc.RegisterConcrete(&MsgWithdraw{}, "exchange/MsgWithdraw", nil)
cdc.RegisterConcrete(&MsgInstantSpotMarketLaunch{}, "exchange/MsgInstantSpotMarketLaunch", nil)
@@ -34,7 +38,11 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&MsgSubaccountTransfer{}, "exchange/MsgSubaccountTransfer", nil)
cdc.RegisterConcrete(&MsgExternalTransfer{}, "exchange/MsgExternalTransfer", nil)
cdc.RegisterConcrete(&MsgIncreasePositionMargin{}, "exchange/MsgIncreasePositionMargin", nil)
+ cdc.RegisterConcrete(&MsgDecreasePositionMargin{}, "exchange/MsgDecreasePositionMargin", nil)
cdc.RegisterConcrete(&MsgLiquidatePosition{}, "exchange/MsgLiquidatePosition", nil)
+ cdc.RegisterConcrete(&MsgEmergencySettleMarket{}, "exchange/MsgEmergencySettleMarket", nil)
+ cdc.RegisterConcrete(&MsgAuthorizeStakeGrants{}, "exchange/MsgAuthorizeStakeGrants", nil)
+ cdc.RegisterConcrete(&MsgActivateStakeGrant{}, "exchange/MsgActivateStakeGrant", nil)
cdc.RegisterConcrete(&MsgBatchUpdateOrders{}, "exchange/MsgBatchUpdateOrders", nil)
cdc.RegisterConcrete(&MsgPrivilegedExecuteContract{}, "exchange/MsgPrivilegedExecuteContract", nil)
cdc.RegisterConcrete(&MsgRewardsOptOut{}, "exchange/MsgRewardsOptOut", nil)
@@ -80,6 +88,14 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&BatchUpdateOrdersAuthz{}, "exchange/BatchUpdateOrdersAuthz", nil)
cdc.RegisterConcrete(&Params{}, "exchange/Params", nil)
+
+ // Register oneof implementations for OpenNotionalCap
+ cdc.RegisterConcrete(&OpenNotionalCap_Uncapped{}, "exchange/OpenNotionalCapUncapped", nil)
+ cdc.RegisterConcrete(&OpenNotionalCap_Capped{}, "exchange/OpenNotionalCapCapped", nil)
+
+ // Register oneof implementations for FullDerivativeMarket
+ cdc.RegisterConcrete(&FullDerivativeMarket_PerpetualInfo{}, "exchange/FullDerivativeMarketPerpetualInfo", nil)
+ cdc.RegisterConcrete(&FullDerivativeMarket_FuturesInfo{}, "exchange/FullDerivativeMarketFuturesInfo", nil)
}
func RegisterInterfaces(registry types.InterfaceRegistry) {
@@ -103,7 +119,11 @@ func RegisterInterfaces(registry types.InterfaceRegistry) {
&MsgSubaccountTransfer{},
&MsgExternalTransfer{},
&MsgIncreasePositionMargin{},
+ &MsgDecreasePositionMargin{},
&MsgLiquidatePosition{},
+ &MsgEmergencySettleMarket{},
+ &MsgAuthorizeStakeGrants{},
+ &MsgActivateStakeGrant{},
&MsgBatchUpdateOrders{},
&MsgPrivilegedExecuteContract{},
&MsgRewardsOptOut{},
diff --git a/chain/exchange/types/errors.go b/chain/exchange/types/errors.go
index d2c2185e..6697044b 100644
--- a/chain/exchange/types/errors.go
+++ b/chain/exchange/types/errors.go
@@ -117,4 +117,6 @@ var (
ErrPositionNotOffsettable = errors.Register(ModuleName, 109, "position not offsettable")
ErrOffsettingSubaccountIDsEmpty = errors.Register(ModuleName, 110, "offsetting subaccount IDs cannot be empty")
ErrInvalidOpenNotionalCap = errors.Register(ModuleName, 111, "invalid open notional cap")
+ ErrOpenNotionalCapBreached = errors.Register(ModuleName, 112, "open notional cap breached")
+ ErrNoOffsettingPositionsFound = errors.Register(ModuleName, 113, "no valid offsetting positions found")
)
diff --git a/chain/exchange/types/exchange.pb.go b/chain/exchange/types/exchange.pb.go
index 74abc83a..3ad2d6b3 100644
--- a/chain/exchange/types/exchange.pb.go
+++ b/chain/exchange/types/exchange.pb.go
@@ -156,6 +156,8 @@ const (
ExecutionType_LimitMatchNewOrder ExecutionType = 4
ExecutionType_MarketLiquidation ExecutionType = 5
ExecutionType_ExpiryMarketSettlement ExecutionType = 6
+ ExecutionType_OffsettingPosition ExecutionType = 7
+ ExecutionType_Synthetic ExecutionType = 8
)
var ExecutionType_name = map[int32]string{
@@ -166,6 +168,8 @@ var ExecutionType_name = map[int32]string{
4: "LimitMatchNewOrder",
5: "MarketLiquidation",
6: "ExpiryMarketSettlement",
+ 7: "OffsettingPosition",
+ 8: "Synthetic",
}
var ExecutionType_value = map[string]int32{
@@ -176,6 +180,8 @@ var ExecutionType_value = map[string]int32{
"LimitMatchNewOrder": 4,
"MarketLiquidation": 5,
"ExpiryMarketSettlement": 6,
+ "OffsettingPosition": 7,
+ "Synthetic": 8,
}
func (x ExecutionType) String() string {
@@ -3609,300 +3615,301 @@ func init() {
}
var fileDescriptor_2116e2804e9c53f9 = []byte{
- // 4675 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0xdb, 0x6f, 0x24, 0xd9,
- 0x59, 0x9f, 0xea, 0xf6, 0xa5, 0xfd, 0xf5, 0xc5, 0xed, 0xb2, 0xc7, 0x6e, 0xdb, 0x33, 0x76, 0x6f,
- 0xcf, 0x4e, 0x76, 0x76, 0x76, 0xd7, 0xde, 0x99, 0xb0, 0x61, 0x77, 0xa2, 0x28, 0xdb, 0xbe, 0xcd,
- 0x34, 0xeb, 0x5b, 0xaa, 0xed, 0x25, 0x9b, 0x28, 0x29, 0x8e, 0xab, 0x8e, 0xdd, 0x67, 0x5d, 0x97,
- 0x9e, 0x3a, 0xd5, 0x1e, 0x7b, 0x11, 0x12, 0x0f, 0x0b, 0x62, 0x0d, 0x88, 0xf0, 0x80, 0x90, 0x90,
- 0x06, 0x85, 0x07, 0x84, 0xe0, 0x85, 0x88, 0x27, 0x24, 0x78, 0x40, 0x42, 0x90, 0x3c, 0x04, 0x29,
- 0x0f, 0x3c, 0x20, 0x1e, 0x02, 0xda, 0x45, 0x0a, 0xe2, 0x6f, 0x40, 0x11, 0x3a, 0x97, 0xba, 0xf4,
- 0xc5, 0xed, 0x2e, 0x8f, 0x17, 0x02, 0xbc, 0xcc, 0xf4, 0xb9, 0x7c, 0xbf, 0xf3, 0x9d, 0xef, 0xfb,
- 0xce, 0xf7, 0x7d, 0xe7, 0x52, 0x86, 0x57, 0x89, 0xf3, 0x21, 0x36, 0x7c, 0x72, 0x82, 0x97, 0xf1,
- 0xa9, 0xd1, 0x40, 0xce, 0x11, 0x5e, 0x3e, 0x79, 0x70, 0x80, 0x7d, 0xf4, 0x20, 0xac, 0x58, 0x6a,
- 0x7a, 0xae, 0xef, 0xaa, 0x73, 0x61, 0xd7, 0xa5, 0xb0, 0x45, 0x76, 0x9d, 0x9b, 0x3a, 0x72, 0x8f,
- 0x5c, 0xde, 0x6d, 0x99, 0xfd, 0x12, 0x14, 0x73, 0x0b, 0x86, 0x4b, 0x6d, 0x97, 0x2e, 0x1f, 0x20,
- 0x1a, 0xa1, 0x1a, 0x2e, 0x71, 0x64, 0xfb, 0xdd, 0x68, 0x70, 0xd7, 0x43, 0x86, 0x15, 0x75, 0x12,
- 0x45, 0xd9, 0x6d, 0x02, 0xd9, 0xc4, 0x71, 0x97, 0xf9, 0xbf, 0xa2, 0xaa, 0xf2, 0x6b, 0x29, 0x18,
- 0xdf, 0x69, 0x62, 0x67, 0xdb, 0xf5, 0x89, 0xeb, 0x20, 0x6b, 0x15, 0x35, 0xd5, 0x5f, 0x82, 0x4c,
- 0xcb, 0x31, 0x50, 0xb3, 0x89, 0xcd, 0x92, 0x52, 0x56, 0xee, 0x65, 0x1f, 0x7e, 0x71, 0xe9, 0x62,
- 0x96, 0x97, 0x3a, 0xc8, 0xf7, 0x25, 0xe9, 0x4a, 0xfe, 0x2f, 0x7e, 0xf2, 0xbd, 0xfb, 0x21, 0xd2,
- 0x93, 0x1b, 0x5a, 0xf8, 0x5b, 0xfd, 0x3a, 0x8c, 0x48, 0xfc, 0x14, 0xc7, 0x7f, 0x90, 0x00, 0x7f,
- 0x55, 0xa0, 0x67, 0x19, 0xfa, 0x48, 0x88, 0x2d, 0x7f, 0x3d, 0x5a, 0x3e, 0xff, 0xc9, 0xf7, 0xee,
- 0xdf, 0x1f, 0x1c, 0x6d, 0x65, 0x18, 0xd2, 0x06, 0x6a, 0x56, 0x34, 0x98, 0xb9, 0x60, 0x1e, 0x8f,
- 0x7e, 0x9e, 0x41, 0x3e, 0x4c, 0x2e, 0x80, 0xca, 0x27, 0x0a, 0xdc, 0xec, 0xc9, 0xbc, 0xfa, 0x0e,
- 0x0c, 0x9f, 0x20, 0xab, 0x85, 0xb9, 0x78, 0xc7, 0x56, 0xee, 0xfc, 0xe0, 0xc7, 0x8b, 0x37, 0xfe,
- 0xf9, 0xc7, 0x8b, 0xf3, 0x42, 0xcd, 0xd4, 0x3c, 0x5e, 0x22, 0xee, 0xb2, 0x8d, 0xfc, 0xc6, 0xd2,
- 0x26, 0x3e, 0x42, 0xc6, 0xd9, 0x1a, 0x36, 0x34, 0x41, 0xf1, 0xe8, 0x2d, 0xc6, 0xcd, 0x9b, 0x49,
- 0xc5, 0x55, 0xf9, 0x64, 0x1a, 0x46, 0x76, 0x91, 0x87, 0x6c, 0xaa, 0x62, 0x58, 0xa4, 0x4d, 0xd7,
- 0xd7, 0x6d, 0xe4, 0x1d, 0x63, 0x5f, 0x27, 0x0e, 0xf5, 0x91, 0xe3, 0xeb, 0x16, 0xa1, 0x3e, 0x71,
- 0x8e, 0xf4, 0x43, 0x8c, 0xa5, 0xd6, 0x67, 0x97, 0x04, 0x3f, 0x4b, 0xcc, 0xec, 0x42, 0xfc, 0x55,
- 0x97, 0x38, 0x2b, 0x43, 0x8c, 0x63, 0x6d, 0x9e, 0xe1, 0x6c, 0x71, 0x98, 0x9a, 0x40, 0xd9, 0x14,
- 0x20, 0x1b, 0x18, 0xab, 0x4f, 0xe1, 0xae, 0x89, 0x3d, 0x72, 0x82, 0x18, 0x9b, 0xfd, 0x06, 0x4b,
- 0x0d, 0x36, 0xd8, 0x4b, 0x11, 0xda, 0x45, 0x43, 0x22, 0x98, 0x37, 0xf1, 0x21, 0x6a, 0x59, 0xbe,
- 0x2e, 0x67, 0x78, 0x8c, 0x3d, 0x36, 0x86, 0xee, 0x21, 0x1f, 0x97, 0xd2, 0x83, 0x0b, 0x7b, 0x46,
- 0xe2, 0xd4, 0xf9, 0x04, 0x8f, 0xb1, 0xb7, 0x81, 0xb1, 0x86, 0xfc, 0xee, 0x21, 0xfc, 0xf6, 0x21,
- 0x86, 0xae, 0x36, 0xc4, 0x5e, 0x7c, 0x08, 0x1b, 0x5e, 0x0a, 0x86, 0x68, 0x13, 0x60, 0xdb, 0x40,
- 0xc3, 0x83, 0x0f, 0x74, 0x5b, 0xa2, 0xad, 0xc5, 0xe4, 0x77, 0xe9, 0x70, 0x1d, 0xf3, 0x1a, 0x79,
- 0x91, 0xe1, 0xda, 0x66, 0x67, 0xc2, 0xad, 0x60, 0x38, 0xe2, 0x10, 0x9f, 0x20, 0x8b, 0xd9, 0xc6,
- 0x11, 0x71, 0xd8, 0x40, 0xc4, 0x2d, 0x8d, 0x0e, 0x3e, 0xd2, 0xac, 0x04, 0xaa, 0x09, 0x9c, 0x2d,
- 0x0e, 0xa3, 0x31, 0x14, 0xd5, 0x82, 0x72, 0x30, 0x8a, 0x8d, 0x88, 0xe3, 0x63, 0x07, 0x39, 0x06,
- 0x6e, 0x1f, 0x29, 0x93, 0x7c, 0x4e, 0x5b, 0x11, 0x56, 0x7c, 0xb4, 0xb7, 0xa1, 0x14, 0x8c, 0x76,
- 0xd8, 0x72, 0x4c, 0x66, 0xd8, 0xac, 0x9f, 0x77, 0x82, 0xac, 0xd2, 0x58, 0x59, 0xb9, 0x97, 0xd6,
- 0xa6, 0x65, 0xfb, 0x86, 0x68, 0xae, 0xc9, 0x56, 0xf5, 0x55, 0x28, 0x06, 0x14, 0x76, 0xcb, 0xf2,
- 0x49, 0xd3, 0xc2, 0x25, 0xe0, 0x14, 0xe3, 0xb2, 0x7e, 0x4b, 0x56, 0xab, 0x5f, 0x87, 0x69, 0x0f,
- 0x5b, 0xe8, 0x4c, 0xaa, 0x85, 0x36, 0x90, 0x27, 0x95, 0x93, 0x1d, 0x7c, 0x22, 0x93, 0x12, 0x62,
- 0x03, 0xe3, 0x3a, 0x03, 0xe0, 0x2a, 0x21, 0xb0, 0x18, 0xb0, 0xdf, 0x70, 0x5b, 0x9e, 0x75, 0x16,
- 0xce, 0x82, 0xc1, 0xeb, 0x06, 0x6a, 0x96, 0x72, 0x83, 0x0f, 0x11, 0xac, 0x8f, 0x27, 0x1c, 0x4a,
- 0x4e, 0x98, 0x8d, 0xc3, 0x42, 0x4b, 0x4c, 0xfb, 0x72, 0x28, 0x2e, 0x28, 0x4c, 0x7d, 0x31, 0x95,
- 0x7c, 0x72, 0xed, 0x8b, 0x71, 0x6a, 0x12, 0x86, 0x4f, 0x68, 0x0d, 0x16, 0x6d, 0x74, 0x1a, 0x37,
- 0x67, 0xd7, 0x33, 0xb1, 0xa7, 0x53, 0x62, 0x62, 0xdd, 0x70, 0x5b, 0x8e, 0x5f, 0x2a, 0x94, 0x95,
- 0x7b, 0x79, 0x6d, 0xde, 0x46, 0xa7, 0x91, 0x9d, 0xee, 0xb0, 0x4e, 0x75, 0x62, 0xe2, 0x55, 0xd6,
- 0x45, 0xa5, 0xf0, 0x0a, 0x71, 0x3e, 0xd4, 0x3d, 0xfc, 0x0c, 0x79, 0xa6, 0x4e, 0xd9, 0x8a, 0x30,
- 0x75, 0x0f, 0x3f, 0x6d, 0x11, 0x0f, 0xdb, 0xd8, 0xf1, 0x75, 0xbf, 0xe1, 0x61, 0xda, 0x70, 0x2d,
- 0xb3, 0x34, 0xce, 0xd9, 0xbe, 0x2d, 0xd9, 0xbe, 0xd9, 0xcd, 0x76, 0xcd, 0xf1, 0xb5, 0x3b, 0xc4,
- 0xf9, 0x50, 0xe3, 0x60, 0x75, 0x8e, 0xa5, 0x45, 0x50, 0x7b, 0x01, 0x92, 0xfa, 0x18, 0xca, 0xbe,
- 0x87, 0x84, 0xf0, 0x79, 0x5f, 0xaa, 0x9f, 0x60, 0xe1, 0x2b, 0xcd, 0x16, 0xb7, 0x5b, 0xa7, 0x54,
- 0xe4, 0x06, 0x72, 0x5b, 0xf6, 0x13, 0x90, 0xf4, 0x7d, 0xd1, 0x6b, 0x4d, 0x76, 0x62, 0x92, 0xb6,
- 0xc8, 0xd3, 0x16, 0x31, 0x91, 0xef, 0x7a, 0xe1, 0x24, 0x22, 0xa3, 0x99, 0x48, 0x20, 0xe9, 0x08,
- 0x48, 0xf2, 0x1f, 0x9a, 0xce, 0x29, 0xbc, 0x7a, 0x40, 0x1c, 0xe4, 0x9d, 0xe9, 0x6e, 0x93, 0x0d,
- 0x4b, 0xfb, 0x39, 0x7a, 0x75, 0x30, 0x47, 0xff, 0xb2, 0x40, 0xdc, 0x11, 0x80, 0x17, 0xf9, 0xfa,
- 0x5f, 0x55, 0xa0, 0x8c, 0x7c, 0xd7, 0x26, 0x46, 0x30, 0xa4, 0xd0, 0x31, 0x32, 0x0c, 0x4c, 0xa9,
- 0x6e, 0xe1, 0x13, 0x6c, 0x95, 0x26, 0xcb, 0xca, 0xbd, 0xc2, 0xc3, 0xb7, 0xfb, 0x65, 0x17, 0x55,
- 0x8e, 0x21, 0x46, 0xe1, 0x06, 0x50, 0xe5, 0x00, 0x9b, 0x8c, 0x5e, 0xbb, 0x85, 0xfa, 0xb4, 0xaa,
- 0xa7, 0xf0, 0x0a, 0x8f, 0x01, 0xbd, 0xd8, 0x60, 0x4b, 0x54, 0xae, 0x68, 0x82, 0xbd, 0xd2, 0xd4,
- 0xe0, 0xd2, 0xae, 0x30, 0xcc, 0x2e, 0xae, 0x36, 0x30, 0xde, 0x0a, 0xe1, 0xd4, 0x8f, 0x15, 0x78,
- 0x23, 0x66, 0xdd, 0x03, 0x30, 0x70, 0x73, 0x70, 0x06, 0xee, 0x45, 0xc8, 0x97, 0xb0, 0xf1, 0x9b,
- 0x0a, 0x3c, 0xe8, 0x50, 0xff, 0x00, 0xac, 0x4c, 0x0f, 0xce, 0xca, 0x6b, 0x6d, 0xa6, 0x70, 0x09,
- 0x37, 0xdf, 0x86, 0x59, 0x9b, 0x38, 0xc4, 0x46, 0x96, 0xce, 0x73, 0x5b, 0xc3, 0xb5, 0xa2, 0x00,
- 0x36, 0x33, 0xf8, 0xa0, 0xd3, 0x12, 0x65, 0x57, 0x82, 0x04, 0x91, 0xeb, 0x9b, 0xf0, 0x1a, 0xa1,
- 0xa1, 0x61, 0x77, 0xe7, 0x36, 0x16, 0x6a, 0x39, 0x46, 0x43, 0xc7, 0x0e, 0x3a, 0xb0, 0xb0, 0x59,
- 0x2a, 0x95, 0x95, 0x7b, 0x19, 0xed, 0x0b, 0x84, 0x4a, 0xdb, 0x5d, 0xeb, 0x48, 0x5f, 0x36, 0x79,
- 0xf7, 0x75, 0xd1, 0x9b, 0xb9, 0xac, 0xa6, 0x4b, 0x7d, 0xdd, 0x75, 0xac, 0x33, 0xdd, 0x76, 0x4d,
- 0xac, 0x37, 0x30, 0x39, 0x6a, 0xc4, 0x9d, 0xcc, 0x2c, 0x5f, 0xf6, 0xf3, 0xac, 0xdb, 0x8e, 0x63,
- 0x9d, 0x6d, 0xb9, 0x26, 0x7e, 0xc2, 0xfb, 0x44, 0xde, 0xe3, 0x08, 0x1e, 0xc8, 0x10, 0x67, 0x62,
- 0xc3, 0xc3, 0x88, 0x62, 0xbd, 0xe9, 0x11, 0x03, 0xeb, 0x3e, 0xb1, 0x31, 0xf5, 0x91, 0xdd, 0x8c,
- 0xf0, 0x74, 0x8a, 0x0d, 0xd7, 0x31, 0x69, 0x69, 0x8e, 0xe3, 0xbe, 0x2e, 0x08, 0xd7, 0x24, 0xdd,
- 0x2e, 0x23, 0xdb, 0x0b, 0xa8, 0xc2, 0x11, 0xea, 0x82, 0x46, 0x7d, 0x05, 0xc6, 0x83, 0x95, 0xa4,
- 0x23, 0xd3, 0x26, 0x0e, 0x2d, 0xcd, 0x97, 0xd3, 0xf7, 0xc6, 0xb4, 0x42, 0x50, 0x5d, 0xe5, 0xb5,
- 0xea, 0x26, 0x4c, 0x32, 0x27, 0x8a, 0x5a, 0x06, 0x53, 0xa1, 0xce, 0xdc, 0x32, 0x8b, 0x27, 0xb7,
- 0x06, 0x71, 0x98, 0x45, 0xe2, 0x7c, 0x58, 0x15, 0x84, 0x5b, 0xe8, 0x94, 0x85, 0x8f, 0xfb, 0x30,
- 0x71, 0x48, 0x4e, 0xb1, 0xa9, 0x1f, 0x21, 0x1a, 0x0a, 0xfa, 0x36, 0x17, 0xf4, 0x38, 0x6f, 0x78,
- 0x8c, 0xa8, 0x94, 0xe8, 0xa3, 0xd2, 0xbf, 0x7f, 0x77, 0x51, 0x61, 0xc9, 0x72, 0xc8, 0xe9, 0xb2,
- 0x48, 0x80, 0x2b, 0x1f, 0x2b, 0x30, 0x29, 0x74, 0xd0, 0x6e, 0x40, 0xf3, 0x30, 0x16, 0x78, 0x2f,
- 0xb1, 0xf1, 0x19, 0xd3, 0x32, 0xa2, 0xa2, 0x66, 0xaa, 0xbf, 0x00, 0x85, 0x0e, 0x3b, 0x4e, 0x0d,
- 0x6e, 0x52, 0xf9, 0xc3, 0xf8, 0x40, 0x8f, 0x86, 0x7e, 0xe3, 0xbb, 0x8b, 0x37, 0x2a, 0xdf, 0x07,
- 0x28, 0x76, 0x1a, 0x85, 0x3a, 0x0d, 0x23, 0x3e, 0x31, 0x8e, 0xb1, 0x27, 0x19, 0x90, 0x25, 0x75,
- 0x11, 0xb2, 0x62, 0x2b, 0xa7, 0x33, 0xb7, 0x29, 0xc6, 0xd6, 0x40, 0x54, 0xad, 0x20, 0x8a, 0xd5,
- 0x97, 0x20, 0x27, 0x3b, 0x3c, 0x6d, 0xb9, 0x41, 0xb2, 0xab, 0x49, 0xa2, 0xaf, 0xb1, 0x2a, 0x75,
- 0x3d, 0xc4, 0xf0, 0xcf, 0x9a, 0x22, 0x57, 0x2d, 0x3c, 0x7c, 0x39, 0xe6, 0x1c, 0xe5, 0x66, 0x31,
- 0xdc, 0x49, 0xf0, 0xe2, 0xde, 0x59, 0x13, 0x07, 0x23, 0xb1, 0xdf, 0xea, 0x12, 0x4c, 0x4a, 0x18,
- 0x6a, 0x20, 0x0b, 0xeb, 0x87, 0xc8, 0xf0, 0x5d, 0x8f, 0x67, 0xa4, 0x79, 0x6d, 0x42, 0x34, 0xd5,
- 0x59, 0xcb, 0x06, 0x6f, 0x60, 0xac, 0x73, 0x96, 0x74, 0x13, 0x3b, 0xae, 0x2d, 0x52, 0x49, 0x0d,
- 0x78, 0xd5, 0x1a, 0xab, 0x69, 0x97, 0xfb, 0x68, 0x87, 0xdc, 0xf7, 0x61, 0xaa, 0x67, 0x9e, 0x98,
- 0x20, 0x7b, 0x53, 0x49, 0x77, 0x82, 0xf8, 0x2d, 0x28, 0x5d, 0x98, 0x18, 0x8e, 0x25, 0xf1, 0x15,
- 0xbd, 0x33, 0xc2, 0x1a, 0x14, 0x3a, 0x12, 0x76, 0x18, 0x1c, 0x34, 0x67, 0xc7, 0x13, 0xe6, 0x1a,
- 0x14, 0x3a, 0x92, 0xf1, 0x04, 0xf9, 0x5e, 0xce, 0x8f, 0x43, 0x5d, 0x9c, 0x42, 0xe6, 0x5e, 0x30,
- 0x85, 0x2c, 0x43, 0x96, 0xd0, 0x5d, 0xec, 0x35, 0xb1, 0xdf, 0x42, 0x16, 0x4f, 0xe3, 0x32, 0x5a,
- 0xbc, 0x4a, 0x7d, 0x17, 0x46, 0xa8, 0x8f, 0xfc, 0x16, 0xe5, 0xa9, 0x57, 0xe1, 0xe1, 0xbd, 0x7e,
- 0x41, 0x59, 0x2c, 0x86, 0x3a, 0xef, 0xaf, 0x49, 0x3a, 0x55, 0x83, 0x49, 0x9b, 0x38, 0xa1, 0x43,
- 0x33, 0x8e, 0x75, 0x4a, 0x3e, 0xc2, 0x32, 0xf7, 0x1a, 0x88, 0xf5, 0xa2, 0x4d, 0x1c, 0xe9, 0xd8,
- 0x8c, 0xe3, 0x3a, 0xf9, 0x88, 0x4b, 0x84, 0x61, 0x3e, 0x6d, 0x21, 0xc7, 0x27, 0xfe, 0x59, 0x0c,
- 0xb6, 0x98, 0x40, 0x22, 0x36, 0x71, 0xbe, 0x26, 0x11, 0x42, 0xe4, 0x0d, 0xc8, 0x31, 0x64, 0x47,
- 0xee, 0xc4, 0x93, 0xe4, 0x5b, 0x59, 0x9b, 0x84, 0x3b, 0x78, 0x75, 0x0a, 0x86, 0xb9, 0x83, 0xe5,
- 0xd9, 0xd3, 0x98, 0x26, 0x0a, 0xea, 0x6b, 0x30, 0xc1, 0x7f, 0xe8, 0x4d, 0xec, 0xd9, 0x84, 0x52,
- 0x16, 0x1e, 0x79, 0xb6, 0x93, 0xd7, 0x8a, 0xbc, 0x61, 0x37, 0xaa, 0x57, 0xef, 0x42, 0x21, 0x58,
- 0x80, 0x06, 0x0b, 0x6c, 0x94, 0xa7, 0x23, 0x79, 0x2d, 0x2f, 0xd7, 0xa0, 0xa8, 0x54, 0xeb, 0x30,
- 0xe9, 0x61, 0xb3, 0xd5, 0xb9, 0x1a, 0x12, 0x64, 0x0e, 0x13, 0x82, 0xbe, 0x7d, 0x9d, 0x4d, 0xb8,
- 0x4d, 0x1c, 0xc9, 0x81, 0x7b, 0xff, 0x69, 0x9e, 0x08, 0xbe, 0x96, 0xe0, 0xd0, 0x47, 0xa6, 0x86,
- 0xe3, 0x6e, 0x7b, 0xb5, 0xf4, 0xa4, 0x3f, 0xcd, 0xc0, 0xe4, 0x4a, 0x77, 0xd2, 0x78, 0xa1, 0x33,
- 0xbd, 0x03, 0xf9, 0xc0, 0x83, 0x9d, 0xd9, 0x07, 0xae, 0x25, 0xdd, 0xa9, 0x74, 0xa0, 0x75, 0x5e,
- 0xc7, 0x42, 0x9c, 0xec, 0xd4, 0xf4, 0xdc, 0x13, 0x62, 0x62, 0x4f, 0xfa, 0xd4, 0x82, 0xa8, 0xde,
- 0x95, 0xb5, 0xff, 0x53, 0x6e, 0xf5, 0x01, 0x4c, 0xe1, 0xd3, 0x26, 0x11, 0xe9, 0x7e, 0x14, 0xe0,
- 0xb9, 0x7f, 0x4d, 0x6b, 0x93, 0x51, 0x5b, 0x18, 0xc5, 0x19, 0x09, 0xc5, 0xbe, 0x6f, 0xc9, 0xed,
- 0x4b, 0x48, 0x32, 0x2a, 0x48, 0xa2, 0xb6, 0x88, 0x24, 0x34, 0xbf, 0x4c, 0xdc, 0xfc, 0x3a, 0x5c,
- 0xfa, 0x58, 0x7f, 0x97, 0x0e, 0x1d, 0x2e, 0xbd, 0xdb, 0x39, 0x66, 0xaf, 0xcf, 0x39, 0xe6, 0xae,
- 0xdf, 0x39, 0xe6, 0x5f, 0xd0, 0x39, 0xfe, 0x7f, 0x73, 0x7d, 0xdb, 0x50, 0x8c, 0x99, 0x19, 0x67,
- 0x3a, 0xe6, 0xfe, 0x94, 0xcb, 0x30, 0xc7, 0x23, 0x62, 0xce, 0x71, 0x97, 0x2b, 0x55, 0xaf, 0xe8,
- 0x4a, 0x3f, 0x07, 0xa7, 0x29, 0x1d, 0xd0, 0xbf, 0xa5, 0x60, 0x66, 0x9d, 0x2d, 0xb8, 0xb3, 0x8d,
- 0x96, 0xdf, 0xf2, 0x70, 0xb8, 0x6b, 0x3d, 0x74, 0xfb, 0x67, 0x95, 0x17, 0x2d, 0xe2, 0xd4, 0xc5,
- 0x8b, 0xf8, 0x4d, 0x98, 0xf2, 0x9f, 0xa1, 0xa6, 0x4e, 0x7d, 0xe4, 0xc5, 0x17, 0x71, 0x9a, 0x93,
- 0xa8, 0xac, 0xad, 0xce, 0x9a, 0x22, 0x8a, 0x67, 0xf0, 0x85, 0xf8, 0x20, 0x11, 0xb1, 0xb0, 0x27,
- 0xa3, 0x65, 0xb7, 0x2c, 0x9e, 0x83, 0x26, 0x39, 0xbe, 0xac, 0xc4, 0x78, 0x0b, 0x86, 0xe4, 0xea,
- 0x5a, 0x0d, 0xe1, 0x7a, 0x1a, 0x42, 0x82, 0x83, 0xcb, 0x4e, 0x43, 0xa8, 0xfc, 0x7d, 0x0a, 0x26,
- 0xc3, 0x8c, 0x62, 0x50, 0x11, 0x7f, 0x03, 0x66, 0x2e, 0x3a, 0xd5, 0x4a, 0x90, 0xc1, 0x4f, 0x35,
- 0x7a, 0x1d, 0x67, 0xed, 0xc3, 0x54, 0xcf, 0x63, 0xac, 0x04, 0x27, 0xcd, 0x6a, 0xa3, 0xfb, 0xfc,
- 0xea, 0xe7, 0x60, 0xda, 0xc1, 0xa7, 0xd1, 0x61, 0x62, 0xa4, 0xe4, 0x21, 0xae, 0xe4, 0x29, 0xd6,
- 0x2a, 0x59, 0x89, 0xd4, 0x1c, 0x3b, 0x4b, 0x0c, 0x4f, 0x1f, 0x87, 0xdb, 0xce, 0x12, 0x83, 0x63,
- 0xc7, 0xca, 0x67, 0x0a, 0x4c, 0x77, 0x08, 0x52, 0xc2, 0xa9, 0x1a, 0xa8, 0x91, 0x41, 0x04, 0x1c,
- 0x24, 0xb9, 0xa7, 0x98, 0x88, 0xc8, 0x03, 0xcc, 0x6d, 0x28, 0xc6, 0x30, 0x85, 0x1d, 0x24, 0x90,
- 0xfd, 0x78, 0x44, 0x2c, 0x1c, 0xc2, 0x5d, 0x28, 0x58, 0x88, 0x76, 0x1b, 0x7f, 0x9e, 0xd5, 0x86,
- 0x02, 0xa9, 0xfc, 0xb6, 0x02, 0x0b, 0x9d, 0x1b, 0xac, 0x7a, 0x68, 0x52, 0x97, 0x5b, 0x4e, 0x2f,
- 0xf3, 0x4d, 0xbd, 0x80, 0xf9, 0x7e, 0x05, 0xa6, 0xb6, 0x7b, 0x29, 0xee, 0x2e, 0x14, 0xb8, 0xba,
- 0xa3, 0xe9, 0x28, 0x62, 0x3a, 0xac, 0x36, 0x9a, 0xce, 0x7f, 0x28, 0x50, 0xd8, 0x22, 0x26, 0xc7,
- 0xaa, 0x3a, 0xe6, 0xde, 0xce, 0x8a, 0xfa, 0x2e, 0x8c, 0xd9, 0xc4, 0x94, 0xac, 0x29, 0x83, 0xbb,
- 0xd8, 0x8c, 0x2d, 0x71, 0x58, 0x00, 0x3d, 0x60, 0x66, 0x7b, 0xd0, 0x3a, 0xeb, 0x9a, 0xe1, 0xa5,
- 0x30, 0x39, 0x46, 0xba, 0xd2, 0x3a, 0x13, 0x50, 0xef, 0xc1, 0x38, 0x87, 0xa2, 0xd8, 0xb2, 0x24,
- 0x56, 0x7a, 0x70, 0xac, 0x3c, 0xa3, 0xad, 0x63, 0xcb, 0x12, 0xb2, 0xfa, 0xcb, 0x11, 0x80, 0x7a,
- 0x78, 0xbb, 0x74, 0x61, 0x26, 0x77, 0x1b, 0x80, 0xed, 0x87, 0x65, 0x1e, 0x22, 0xd2, 0xb8, 0x31,
- 0x56, 0x23, 0xd2, 0x90, 0x8e, 0x3c, 0x25, 0xdd, 0x95, 0xa7, 0x74, 0xa7, 0x22, 0x43, 0xd7, 0x97,
- 0x8a, 0x0c, 0x5f, 0x7f, 0x2a, 0x32, 0xf2, 0x82, 0xa9, 0x48, 0xdf, 0xad, 0x76, 0x94, 0xa7, 0x64,
- 0xae, 0x37, 0x4f, 0x19, 0xfb, 0x7c, 0xf2, 0x14, 0xb8, 0xe6, 0x2d, 0x5a, 0xf6, 0x45, 0xb7, 0x68,
- 0xb9, 0x4b, 0xb7, 0x68, 0xf9, 0x0b, 0xb2, 0x8d, 0x3b, 0x90, 0x97, 0x76, 0x2c, 0x93, 0x0d, 0x71,
- 0x3f, 0x91, 0x13, 0xa6, 0x2c, 0x37, 0x68, 0xdd, 0x29, 0xc9, 0x78, 0x8f, 0x94, 0xa4, 0xf2, 0xc7,
- 0x0a, 0x8c, 0xae, 0xe1, 0xa6, 0x4b, 0x89, 0xaf, 0xee, 0xc2, 0x04, 0x3a, 0x41, 0xc4, 0x42, 0x07,
- 0xfc, 0xe4, 0xc8, 0x42, 0x8e, 0x91, 0xe8, 0xd2, 0xb9, 0x18, 0x52, 0xaf, 0x08, 0x62, 0xf5, 0x09,
- 0xe4, 0x7d, 0xd7, 0x47, 0x56, 0x88, 0x96, 0x4a, 0x62, 0xe5, 0x8c, 0x52, 0x22, 0x55, 0x5e, 0x87,
- 0xa9, 0x7a, 0xeb, 0x00, 0x19, 0xfc, 0x42, 0x66, 0xcf, 0x43, 0x26, 0xde, 0x76, 0xd9, 0x08, 0x53,
- 0x30, 0xec, 0xb8, 0x01, 0x9f, 0x79, 0x4d, 0x14, 0x58, 0xc8, 0x1a, 0xe3, 0x87, 0xbe, 0xdc, 0x6f,
- 0xdf, 0x81, 0x3c, 0x0d, 0x69, 0x23, 0xdf, 0x9d, 0x8b, 0x2a, 0x6b, 0x26, 0xeb, 0xc4, 0xd7, 0x22,
- 0x36, 0x48, 0x93, 0x60, 0xc7, 0x0f, 0xb6, 0x79, 0x87, 0x18, 0x6b, 0x41, 0x9d, 0xfa, 0x0e, 0x0c,
- 0x77, 0xfa, 0xaa, 0xcb, 0xaf, 0xe2, 0x39, 0x85, 0xfa, 0x55, 0xc8, 0x04, 0x56, 0x99, 0xc4, 0x6d,
- 0x84, 0x44, 0x6a, 0x11, 0xd2, 0x06, 0x31, 0x85, 0x9f, 0xd0, 0xd8, 0xcf, 0xca, 0xc7, 0x29, 0x18,
- 0x63, 0x6e, 0x8f, 0xcf, 0xf4, 0xb2, 0x03, 0x49, 0x10, 0xc7, 0xeb, 0xc4, 0x39, 0x74, 0xe5, 0x25,
- 0xfa, 0xdd, 0xbe, 0x5b, 0xea, 0x40, 0x7a, 0x72, 0x33, 0x3d, 0xe6, 0x86, 0xe2, 0x5c, 0x0b, 0xb0,
- 0xf8, 0x0e, 0x36, 0xcd, 0x57, 0xff, 0xe5, 0x58, 0x7c, 0x0b, 0x2b, 0x50, 0xf8, 0x0e, 0x96, 0x99,
- 0x86, 0x47, 0x8e, 0x8e, 0xb0, 0x27, 0xdd, 0xff, 0x50, 0x82, 0x50, 0x22, 0x29, 0x85, 0xf7, 0xff,
- 0x61, 0x0a, 0x0a, 0x4c, 0x0c, 0x9b, 0xc4, 0x26, 0x52, 0x16, 0xed, 0xd3, 0x55, 0xae, 0x71, 0xba,
- 0xa9, 0x2b, 0x4e, 0xf7, 0xab, 0x90, 0x39, 0x24, 0x16, 0x5f, 0x1c, 0x49, 0x8c, 0x27, 0x24, 0xba,
- 0x3e, 0x79, 0xb1, 0x30, 0x28, 0x26, 0xd4, 0x40, 0xb4, 0xc1, 0xed, 0x29, 0x27, 0x39, 0x7d, 0x82,
- 0x68, 0xa3, 0xf2, 0x8f, 0x29, 0x18, 0x8f, 0x82, 0xe9, 0xf5, 0xcb, 0x73, 0x03, 0x72, 0xd2, 0x1b,
- 0xe8, 0xfc, 0xa6, 0x22, 0x81, 0x4b, 0xc8, 0x4a, 0xc2, 0x27, 0xae, 0x65, 0x76, 0x4c, 0x23, 0xdd,
- 0x31, 0x8d, 0x0e, 0xb5, 0x0d, 0x5d, 0x97, 0x95, 0x0e, 0x5f, 0xd5, 0x4a, 0xbf, 0x9f, 0x82, 0xf1,
- 0x8e, 0xdb, 0xe3, 0xff, 0x6d, 0x4b, 0xf6, 0xcb, 0x30, 0x22, 0x0e, 0xfb, 0x92, 0x38, 0x30, 0x49,
- 0x72, 0x8d, 0x92, 0xfc, 0xcf, 0x34, 0xcc, 0x47, 0xb1, 0x80, 0x73, 0x7a, 0xe0, 0xba, 0xc7, 0x5b,
- 0xd8, 0x47, 0x26, 0xf2, 0x91, 0xfa, 0x0e, 0xcc, 0x9e, 0x20, 0x87, 0xad, 0x1b, 0xdd, 0x62, 0x2e,
- 0x41, 0x5e, 0x2c, 0x8a, 0xab, 0x7c, 0x11, 0x26, 0xa6, 0x65, 0x87, 0xc8, 0x65, 0x88, 0x5b, 0xfc,
- 0x77, 0xe1, 0xb6, 0x3c, 0xd5, 0xe4, 0x57, 0x6b, 0xdd, 0xe4, 0x29, 0x4e, 0x3e, 0x2b, 0x3a, 0xed,
- 0x38, 0xd6, 0x59, 0x27, 0x42, 0x03, 0x16, 0xd0, 0xd1, 0x91, 0x87, 0x8f, 0xd8, 0xb6, 0x31, 0x8e,
- 0x15, 0x3a, 0xff, 0x04, 0xab, 0x7f, 0x3e, 0x84, 0xd2, 0xc2, 0x01, 0x83, 0xc4, 0x44, 0x45, 0x30,
- 0x17, 0x8d, 0x14, 0x4c, 0xf8, 0x2a, 0x21, 0xa6, 0x14, 0xc2, 0xbc, 0x2f, 0x50, 0xc2, 0x21, 0xd6,
- 0x61, 0x31, 0x00, 0x36, 0x5c, 0xc7, 0x24, 0xf2, 0x54, 0x36, 0x2e, 0x10, 0x71, 0xe2, 0x78, 0x4b,
- 0x76, 0x5b, 0x8d, 0x7a, 0xc5, 0x64, 0xb2, 0x09, 0x77, 0xe2, 0x92, 0xb8, 0x08, 0x6a, 0x84, 0x43,
- 0x2d, 0x46, 0xb2, 0xed, 0x89, 0x56, 0xf9, 0x5b, 0x05, 0xc6, 0x3b, 0xd4, 0x1f, 0xc5, 0x65, 0xe5,
- 0x85, 0xe2, 0x72, 0xea, 0x2a, 0x71, 0xb9, 0x02, 0x39, 0x42, 0x23, 0xfd, 0x70, 0xfd, 0x66, 0xb4,
- 0xb6, 0xba, 0x20, 0x76, 0x0f, 0x45, 0xb1, 0xfb, 0x19, 0x4c, 0x76, 0x4c, 0x62, 0x8d, 0xd9, 0x6e,
- 0x15, 0x86, 0xb9, 0x48, 0xa4, 0x8f, 0xed, 0x7b, 0xea, 0xdd, 0x41, 0xaf, 0x09, 0xca, 0x0e, 0xbf,
- 0x98, 0xea, 0x74, 0xef, 0xbf, 0x93, 0x86, 0xa9, 0xc8, 0x0f, 0xfd, 0x4c, 0xc7, 0xcc, 0xc8, 0xdf,
- 0xa4, 0x93, 0xfb, 0x9b, 0x78, 0xc0, 0x1d, 0xba, 0x96, 0x80, 0x3b, 0x7c, 0x3d, 0x01, 0x77, 0xa4,
- 0x53, 0x23, 0xbf, 0x97, 0x86, 0x9b, 0x9d, 0x27, 0x0f, 0xff, 0x27, 0x55, 0xb2, 0x06, 0x59, 0x79,
- 0x59, 0xc4, 0x03, 0x7f, 0x02, 0xad, 0x80, 0xa0, 0xe3, 0x71, 0xff, 0xbf, 0x4d, 0x2f, 0x7f, 0x97,
- 0x82, 0xcc, 0x2e, 0xdb, 0x18, 0x11, 0xd7, 0x51, 0xa7, 0x61, 0x84, 0xd0, 0x4d, 0x57, 0x9e, 0x6e,
- 0x65, 0x34, 0x59, 0x7a, 0x71, 0xf7, 0xb1, 0x06, 0x59, 0xec, 0xf8, 0xde, 0x99, 0x9e, 0x78, 0x63,
- 0x01, 0x9c, 0x4e, 0x4c, 0xe5, 0x85, 0x42, 0xf3, 0xb7, 0xa0, 0xd4, 0x7d, 0x8a, 0xa7, 0x73, 0xf4,
- 0x24, 0xc7, 0x12, 0xd3, 0x5d, 0x67, 0x79, 0xeb, 0x0c, 0xa2, 0x52, 0x83, 0xa9, 0x98, 0x51, 0xd7,
- 0x1c, 0x93, 0x18, 0xc8, 0x77, 0x2f, 0xc9, 0x7e, 0xa6, 0x60, 0x98, 0xd0, 0x95, 0x96, 0x10, 0x6a,
- 0x46, 0x13, 0x85, 0xca, 0x3f, 0xa4, 0x20, 0xc3, 0x37, 0x7f, 0x9b, 0x6e, 0xbb, 0xe8, 0x95, 0xab,
- 0x88, 0x3e, 0x8c, 0x1a, 0xa9, 0xc4, 0x51, 0xa3, 0x6b, 0x4b, 0x29, 0xf2, 0xcf, 0xf6, 0x2d, 0xe5,
- 0x5b, 0x90, 0x3e, 0xc4, 0x89, 0xbc, 0x0f, 0xeb, 0x7f, 0x49, 0x7e, 0xae, 0xbe, 0x0d, 0x37, 0xdb,
- 0x36, 0xaa, 0x3a, 0x32, 0x4d, 0x0f, 0x53, 0x2a, 0x0c, 0x98, 0x2f, 0x7c, 0x45, 0x9b, 0x8c, 0x6f,
- 0x5b, 0xab, 0xa2, 0x43, 0x10, 0x85, 0x46, 0xa3, 0x28, 0xf4, 0x07, 0x29, 0xc8, 0x07, 0x26, 0xbe,
- 0x86, 0x2d, 0x1f, 0xa9, 0x33, 0x30, 0x4a, 0xa8, 0x6e, 0x75, 0x1b, 0xba, 0x06, 0x2a, 0x3e, 0xc5,
- 0x46, 0x8b, 0x5f, 0x0b, 0x5c, 0xc5, 0xe4, 0x27, 0x42, 0xf2, 0x30, 0xbf, 0xd8, 0x86, 0x62, 0x84,
- 0x99, 0xdc, 0xaf, 0x8c, 0x87, 0xc4, 0xe2, 0x12, 0x59, 0xdd, 0x84, 0xa8, 0xaa, 0x6b, 0x97, 0x74,
- 0x29, 0x5c, 0x21, 0xa4, 0x15, 0x79, 0xe6, 0x1f, 0xa5, 0x41, 0x8d, 0xbd, 0x4b, 0x0e, 0xcc, 0xae,
- 0xe7, 0x69, 0x42, 0xa7, 0xea, 0x77, 0xa1, 0xd0, 0x94, 0x72, 0xd5, 0x4d, 0x26, 0x58, 0x99, 0xc0,
- 0xbf, 0xda, 0xcf, 0xe3, 0xb6, 0x69, 0x42, 0xcb, 0x37, 0xdb, 0x14, 0xf3, 0x65, 0x18, 0x69, 0xa2,
- 0x33, 0xb7, 0xe5, 0x27, 0xf2, 0xbc, 0x82, 0xe4, 0x67, 0xdf, 0x12, 0x19, 0x87, 0x4d, 0xc7, 0x4a,
- 0xf2, 0x50, 0x87, 0xf5, 0xaf, 0xfc, 0x32, 0xa8, 0x51, 0x1a, 0x14, 0x3a, 0xeb, 0x77, 0x21, 0x13,
- 0x08, 0x4f, 0x46, 0xcd, 0x97, 0x07, 0x91, 0xbb, 0x16, 0x52, 0x75, 0x2b, 0x39, 0xd5, 0xad, 0xe4,
- 0xca, 0x33, 0x98, 0x88, 0x06, 0x0f, 0x0e, 0xd1, 0x06, 0x32, 0x8f, 0xaf, 0xc0, 0xa8, 0x29, 0xfa,
- 0x4b, 0xbb, 0xb8, 0xd3, 0x8f, 0x3f, 0x09, 0xad, 0x05, 0x34, 0x95, 0x26, 0xe4, 0x65, 0xdd, 0x7e,
- 0xd3, 0x44, 0x3e, 0x3f, 0x05, 0x13, 0x87, 0xd6, 0xc2, 0x8d, 0x8a, 0x82, 0x5a, 0x83, 0x8c, 0xa4,
- 0xa0, 0xa5, 0x54, 0x39, 0x7d, 0x2f, 0xfb, 0xf0, 0x8d, 0xc1, 0xf2, 0xc9, 0x60, 0xc0, 0x90, 0xbc,
- 0xf2, 0x43, 0x05, 0x8a, 0xbb, 0x2e, 0x71, 0x7c, 0x1a, 0x7b, 0x02, 0xf7, 0x4d, 0x98, 0x11, 0xe7,
- 0xe1, 0x4d, 0xde, 0x12, 0x7f, 0xee, 0x96, 0xc0, 0x1f, 0xdf, 0xe4, 0x18, 0xbd, 0xc0, 0xfd, 0x0b,
- 0xc0, 0x13, 0x38, 0x9d, 0x9b, 0x7e, 0x2f, 0xf0, 0xca, 0x4f, 0x53, 0xb0, 0xb0, 0x17, 0x7f, 0x11,
- 0xbd, 0x8a, 0xec, 0x26, 0x22, 0x47, 0xce, 0x8a, 0xeb, 0x52, 0x71, 0xd9, 0xf3, 0x16, 0xcc, 0x1c,
- 0xb0, 0x02, 0x36, 0xf5, 0xb6, 0x0f, 0x60, 0x4c, 0x5a, 0x52, 0xf8, 0xe3, 0xc5, 0x29, 0xd9, 0x1c,
- 0x9d, 0x95, 0xd4, 0x4c, 0xaa, 0x7e, 0x08, 0x33, 0xf1, 0xee, 0x11, 0xd7, 0x81, 0x0a, 0x5e, 0xef,
- 0x6f, 0x89, 0xed, 0x8c, 0xca, 0x34, 0xee, 0x66, 0xf4, 0xe9, 0x4c, 0xd4, 0x46, 0xd5, 0x2a, 0xdc,
- 0x0e, 0x58, 0xec, 0xf1, 0xf1, 0x8c, 0x49, 0x4b, 0x69, 0xce, 0xe8, 0x9c, 0xec, 0xd4, 0x99, 0x63,
- 0x32, 0x76, 0x4f, 0xe0, 0x76, 0x37, 0x69, 0x9c, 0xe9, 0xa1, 0x2b, 0x33, 0x3d, 0xdf, 0xf9, 0x09,
- 0x4e, 0x8c, 0xf5, 0xca, 0x5f, 0x2b, 0xa0, 0x06, 0x32, 0x17, 0x1a, 0xd8, 0x75, 0xc5, 0x33, 0x9a,
- 0xce, 0x9b, 0x6a, 0x71, 0xbb, 0x55, 0xa0, 0xed, 0xb7, 0xd4, 0xbf, 0x02, 0x53, 0xe2, 0x75, 0xa8,
- 0x80, 0x08, 0x9e, 0xbf, 0x4b, 0x19, 0xf7, 0x79, 0x35, 0xfe, 0x26, 0xe3, 0xed, 0xcf, 0xfe, 0x65,
- 0xf1, 0xde, 0x11, 0xf1, 0x1b, 0xad, 0x83, 0x25, 0xc3, 0xb5, 0x97, 0xe5, 0xf7, 0x72, 0xe2, 0xbf,
- 0x37, 0xa8, 0x79, 0xbc, 0xcc, 0x72, 0x64, 0xca, 0x09, 0xa8, 0xa6, 0xda, 0xe8, 0xb4, 0x9d, 0x55,
- 0x5a, 0xf9, 0xd3, 0x14, 0xcc, 0xf6, 0xb4, 0x1f, 0x6e, 0x3a, 0x8f, 0x60, 0x36, 0x64, 0x2c, 0x78,
- 0x87, 0x1f, 0x3e, 0xa0, 0x15, 0xf3, 0x99, 0x09, 0x3a, 0x04, 0x4f, 0xf0, 0x83, 0xb7, 0xb2, 0x2f,
- 0x41, 0x2e, 0x76, 0x09, 0x25, 0x26, 0x34, 0xa6, 0x65, 0xa3, 0x5b, 0x28, 0xaa, 0xb6, 0x60, 0xb6,
- 0xfd, 0xd5, 0xbf, 0xce, 0x15, 0x2c, 0x36, 0x09, 0x69, 0xee, 0x4e, 0x1e, 0xf5, 0xd3, 0x57, 0x7f,
- 0xc3, 0xd7, 0xa6, 0xdb, 0x3e, 0x15, 0x88, 0x16, 0xc4, 0x97, 0x60, 0xc6, 0x24, 0xf4, 0x69, 0x0b,
- 0x59, 0xe4, 0x90, 0x60, 0x33, 0x6e, 0x67, 0x43, 0x9c, 0xc9, 0x9b, 0xf1, 0xe6, 0xd0, 0xc4, 0x2a,
- 0x7f, 0x93, 0x82, 0xc9, 0x0d, 0x8c, 0xd7, 0x08, 0x15, 0x67, 0xf7, 0x44, 0x6e, 0x48, 0xea, 0x30,
- 0x29, 0xbc, 0x87, 0x29, 0x5b, 0xc4, 0xa5, 0x55, 0x92, 0xcb, 0x63, 0x4e, 0x1f, 0x00, 0xf3, 0x2b,
- 0xab, 0x3a, 0x4c, 0xfa, 0x3d, 0x40, 0x93, 0xa4, 0x29, 0x7e, 0x17, 0xe8, 0x0a, 0xe4, 0xe5, 0x07,
- 0x1d, 0xc8, 0xe6, 0x27, 0x15, 0xe9, 0x41, 0x1e, 0x24, 0xe7, 0x04, 0x4d, 0x95, 0x93, 0xb0, 0xf0,
- 0x7d, 0xe2, 0x5a, 0x2d, 0x3b, 0x51, 0x10, 0x96, 0x24, 0x95, 0xdf, 0x6a, 0x17, 0x61, 0xdd, 0x68,
- 0x60, 0xb3, 0x65, 0xf1, 0x67, 0xbc, 0x07, 0x2d, 0x83, 0x69, 0x21, 0x3a, 0xdc, 0x1a, 0xd2, 0xb2,
- 0xa2, 0x4e, 0x9c, 0xbd, 0xbc, 0x02, 0xe3, 0xb2, 0x4b, 0xf8, 0x45, 0x88, 0x78, 0x2e, 0x52, 0x10,
- 0xd5, 0xe1, 0x27, 0x20, 0x9d, 0x86, 0x97, 0xee, 0x36, 0xbc, 0x6d, 0x00, 0x9f, 0xc8, 0xdd, 0x68,
- 0xe0, 0x19, 0x96, 0xfb, 0x59, 0x5a, 0x0f, 0xb5, 0x6b, 0x63, 0xbe, 0xfc, 0x45, 0xfb, 0x59, 0xd4,
- 0x70, 0x3f, 0x8b, 0xda, 0x02, 0xb5, 0x03, 0x79, 0x6f, 0x6f, 0x53, 0x55, 0x61, 0xc8, 0x0f, 0x42,
- 0xcf, 0x90, 0xc6, 0x7f, 0xb3, 0x60, 0xec, 0xfb, 0x56, 0xd7, 0x53, 0x99, 0x9c, 0xef, 0x5b, 0xd1,
- 0x55, 0xf9, 0x1f, 0x2a, 0x90, 0x7b, 0x9f, 0x0b, 0x5a, 0xc3, 0x86, 0xeb, 0x99, 0xfc, 0xaa, 0x8f,
- 0x1b, 0x91, 0xd4, 0x98, 0x92, 0xe4, 0xaa, 0x8f, 0x11, 0x0a, 0x34, 0x86, 0xe3, 0xc7, 0x71, 0x92,
- 0x9c, 0x74, 0xfb, 0x11, 0x4e, 0xe5, 0x77, 0x15, 0x28, 0x54, 0x45, 0x64, 0x96, 0x0e, 0x48, 0x2d,
- 0xc1, 0xa8, 0x8c, 0xd5, 0x32, 0xe4, 0x07, 0x45, 0x15, 0xc3, 0xe8, 0xe7, 0xe8, 0x0c, 0x03, 0xec,
- 0xca, 0xaf, 0x2b, 0x90, 0xe3, 0x29, 0xb1, 0x90, 0x19, 0xed, 0xbf, 0x9b, 0xfb, 0x00, 0xa6, 0x2c,
- 0xe4, 0x63, 0xea, 0xeb, 0xcc, 0xb9, 0xf0, 0x94, 0xd1, 0x8d, 0x38, 0x7c, 0xe5, 0x32, 0x6f, 0x25,
- 0x07, 0xd1, 0x54, 0x01, 0x12, 0x1f, 0xb7, 0xf2, 0x25, 0xc8, 0x47, 0x89, 0x4b, 0x6d, 0x8d, 0x5f,
- 0x7c, 0xb6, 0x25, 0x60, 0x22, 0x5e, 0xe7, 0xb4, 0x7c, 0x3c, 0x03, 0xa3, 0x95, 0x3f, 0x51, 0x20,
- 0x1b, 0x03, 0x52, 0x6f, 0xc1, 0x58, 0x67, 0xd0, 0x89, 0x2a, 0x5e, 0x64, 0xab, 0x18, 0xdf, 0xa6,
- 0xa6, 0xaf, 0xb0, 0x4d, 0xad, 0xd8, 0x30, 0x2c, 0x3e, 0x21, 0x7a, 0x00, 0x4a, 0x33, 0x89, 0x31,
- 0x2a, 0x4d, 0x46, 0xf2, 0x34, 0x09, 0xcf, 0xca, 0xd3, 0xca, 0xef, 0x2b, 0xb0, 0x58, 0x0d, 0x4e,
- 0x84, 0x23, 0xd1, 0xb6, 0xad, 0x90, 0x81, 0x6e, 0x54, 0x77, 0xa0, 0x20, 0x2d, 0x42, 0xd8, 0x7f,
- 0xa0, 0xee, 0x01, 0x5e, 0x0a, 0xc8, 0xc1, 0xf2, 0x76, 0xac, 0x44, 0x2b, 0x9f, 0x28, 0x70, 0x2b,
- 0xe4, 0xac, 0xda, 0x83, 0xad, 0x8b, 0x57, 0xc5, 0xb5, 0xf3, 0x42, 0x21, 0x17, 0x6f, 0xee, 0x6f,
- 0xfe, 0x1b, 0xa1, 0xf3, 0x17, 0xd9, 0x7e, 0xdf, 0x51, 0xe3, 0x33, 0x92, 0xa9, 0x54, 0x10, 0x07,
- 0xaa, 0x2c, 0xef, 0x77, 0x5c, 0x3b, 0xbc, 0xe4, 0xef, 0x9d, 0xf7, 0xcf, 0xb1, 0xbc, 0x5f, 0x5e,
- 0xfa, 0xa7, 0xb8, 0x37, 0x0c, 0xcb, 0x15, 0x0c, 0xea, 0x63, 0x0f, 0x39, 0x7e, 0xb5, 0xe5, 0x37,
- 0x5c, 0x8f, 0x7c, 0x24, 0x9c, 0x7f, 0x09, 0x46, 0x8f, 0x58, 0xad, 0xfc, 0x9a, 0x7b, 0x4c, 0x0b,
- 0x8a, 0xea, 0x5b, 0x30, 0x22, 0x83, 0x5e, 0x6a, 0x90, 0xa0, 0x27, 0x3b, 0x57, 0xbe, 0x0d, 0xd9,
- 0x2a, 0x9f, 0x1f, 0x1f, 0x2c, 0xc2, 0xf7, 0xda, 0xf1, 0xbd, 0xab, 0xe2, 0x7f, 0x47, 0x81, 0xc2,
- 0xfa, 0xe1, 0x21, 0x1e, 0x68, 0x8c, 0x1a, 0x4c, 0x38, 0xd8, 0xd7, 0x45, 0x51, 0x7e, 0x9c, 0x39,
- 0xd8, 0x70, 0xe3, 0x0e, 0xf6, 0x1f, 0x0b, 0x32, 0xfe, 0x19, 0xa6, 0x3a, 0x0b, 0x19, 0x42, 0xf5,
- 0x13, 0x64, 0xc9, 0x23, 0x9f, 0x8c, 0x36, 0x4a, 0xe8, 0xfb, 0xac, 0x58, 0x69, 0x42, 0x91, 0x2b,
- 0x67, 0xab, 0xfd, 0xb1, 0x47, 0x0f, 0xfd, 0x74, 0x3e, 0x25, 0x49, 0x5d, 0xed, 0x29, 0xc9, 0x7d,
- 0x1f, 0x6e, 0xf5, 0xfb, 0x20, 0x51, 0x05, 0x18, 0xd9, 0x76, 0x0f, 0x5c, 0xf3, 0xac, 0x78, 0x43,
- 0xad, 0xc0, 0xc2, 0x0a, 0x3e, 0x22, 0xce, 0x8a, 0xe5, 0x1a, 0xc7, 0xd8, 0xab, 0xdb, 0xc8, 0xf3,
- 0x57, 0x5d, 0xc7, 0xf7, 0x90, 0xe1, 0xd3, 0x1d, 0xc7, 0x3a, 0x2b, 0x2a, 0xea, 0x34, 0xa8, 0x3d,
- 0xea, 0x53, 0x6a, 0x0e, 0x32, 0xeb, 0x27, 0xd8, 0x3b, 0x73, 0x1d, 0x5c, 0x4c, 0xdf, 0xdf, 0x0b,
- 0x2c, 0x5f, 0x3c, 0xe7, 0x51, 0xc7, 0x21, 0xbb, 0xef, 0xd0, 0x26, 0x36, 0x78, 0x94, 0x2e, 0xde,
- 0x60, 0xc3, 0x0a, 0xdd, 0x17, 0x15, 0xf6, 0x7b, 0x17, 0xb5, 0x28, 0x36, 0x8b, 0x29, 0xb5, 0x00,
- 0xb0, 0x86, 0x6d, 0xd7, 0x22, 0xb4, 0x81, 0xcd, 0x62, 0x5a, 0xcd, 0xc2, 0x28, 0x7f, 0x06, 0x8b,
- 0xcd, 0xe2, 0xd0, 0xfd, 0xbf, 0x4a, 0xc9, 0x17, 0x1b, 0xfc, 0x98, 0xb9, 0x0c, 0xd9, 0xfd, 0xed,
- 0xfa, 0xee, 0xfa, 0x6a, 0x6d, 0xa3, 0xb6, 0xbe, 0x56, 0xbc, 0x31, 0x37, 0x7e, 0xfe, 0xbc, 0x1c,
- 0xaf, 0x52, 0x8b, 0x90, 0x5e, 0xd9, 0xff, 0xa0, 0xa8, 0xcc, 0x8d, 0x9e, 0x3f, 0x2f, 0xb3, 0x9f,
- 0x2c, 0xfe, 0xd7, 0xd7, 0x37, 0x37, 0x8b, 0xa9, 0xb9, 0xcc, 0xf9, 0xf3, 0x32, 0xff, 0xcd, 0x56,
- 0x42, 0x7d, 0x6f, 0x67, 0x57, 0x67, 0x5d, 0xd3, 0x73, 0xb9, 0xf3, 0xe7, 0xe5, 0xb0, 0xcc, 0x1c,
- 0x3e, 0xff, 0xcd, 0x89, 0x86, 0xe6, 0xf2, 0xe7, 0xcf, 0xcb, 0x51, 0x05, 0xa3, 0xdc, 0xab, 0xbe,
- 0xb7, 0xce, 0x29, 0x87, 0x05, 0x65, 0x50, 0x66, 0x94, 0xfc, 0x37, 0xa7, 0x1c, 0x11, 0x94, 0x61,
- 0x85, 0x3a, 0x0d, 0x23, 0x2b, 0xfb, 0x1f, 0xe8, 0xbb, 0x3b, 0xc5, 0xd1, 0x39, 0x38, 0x7f, 0x5e,
- 0x96, 0x25, 0x66, 0x9f, 0xac, 0x9d, 0x35, 0x64, 0xe6, 0xb2, 0xe7, 0xcf, 0xcb, 0x41, 0x51, 0x5d,
- 0x00, 0x60, 0x7d, 0xaa, 0x7b, 0x3b, 0x5b, 0xb5, 0xd5, 0xe2, 0xd8, 0x5c, 0xe1, 0xfc, 0x79, 0x39,
- 0x56, 0xc3, 0xa4, 0xc1, 0xbb, 0xca, 0x0e, 0x20, 0xa4, 0x11, 0xab, 0xba, 0xff, 0xe7, 0x0a, 0xe4,
- 0xd7, 0x83, 0xd3, 0x2b, 0x2e, 0xc1, 0x5b, 0x50, 0x8a, 0x69, 0xa5, 0xad, 0x4d, 0xa8, 0x48, 0xe8,
- 0xb0, 0xa8, 0xa8, 0x79, 0x18, 0xe3, 0xb7, 0x40, 0x1b, 0xc4, 0xb2, 0x8a, 0x29, 0x75, 0x0e, 0xa6,
- 0x79, 0x71, 0x0b, 0xf9, 0x46, 0x43, 0x13, 0xdf, 0x09, 0x73, 0xc5, 0x14, 0xd3, 0xcc, 0x40, 0xa2,
- 0xb6, 0x6d, 0xfc, 0x4c, 0xd4, 0x0f, 0xa9, 0x37, 0x61, 0x42, 0x7e, 0xa6, 0x28, 0xbf, 0xfd, 0x25,
- 0xae, 0x53, 0x1c, 0x66, 0x50, 0xe2, 0x9d, 0x73, 0xe7, 0x6b, 0xca, 0xe2, 0xc8, 0xfd, 0x4f, 0x02,
- 0x7d, 0x6f, 0x21, 0x7a, 0xcc, 0x64, 0xb6, 0xbf, 0xbd, 0x5f, 0xe7, 0xaa, 0xe6, 0x32, 0x13, 0x25,
- 0xa6, 0xe5, 0xea, 0x76, 0xa8, 0xe5, 0xea, 0xf6, 0x07, 0x4c, 0x8a, 0xda, 0xfa, 0xe3, 0xfd, 0xcd,
- 0xaa, 0x56, 0x4c, 0x09, 0x29, 0xca, 0x22, 0x93, 0xd2, 0xea, 0xce, 0xf6, 0x5a, 0x6d, 0xaf, 0xb6,
- 0xb3, 0x5d, 0x65, 0x1a, 0xe5, 0x52, 0x8a, 0x55, 0xa9, 0x4b, 0x30, 0xb3, 0x56, 0xd3, 0xd6, 0x57,
- 0x59, 0x91, 0x29, 0x52, 0xdf, 0xd1, 0xf4, 0x27, 0xb5, 0xc7, 0x4f, 0xd6, 0xb5, 0x62, 0x66, 0x6e,
- 0xe2, 0xfc, 0x79, 0x39, 0xdf, 0x56, 0xd9, 0xde, 0x9f, 0x8b, 0x7b, 0x47, 0xd3, 0x37, 0x77, 0x7e,
- 0x71, 0x5d, 0x2b, 0x16, 0x45, 0xff, 0xb6, 0x4a, 0x75, 0x1e, 0xb2, 0x7b, 0x1f, 0xec, 0xae, 0xeb,
- 0x5b, 0x55, 0xed, 0xbd, 0xf5, 0xbd, 0x62, 0x59, 0x4c, 0x45, 0x94, 0xd4, 0x59, 0x00, 0xde, 0xb8,
- 0x59, 0xdb, 0xaa, 0xed, 0x15, 0xdf, 0x9d, 0x1b, 0x3b, 0x7f, 0x5e, 0x1e, 0xe6, 0x85, 0x95, 0xc6,
- 0x0f, 0x3e, 0x5d, 0x50, 0x7e, 0xf4, 0xe9, 0x82, 0xf2, 0xaf, 0x9f, 0x2e, 0x28, 0xdf, 0xf9, 0x6c,
- 0xe1, 0xc6, 0x8f, 0x3e, 0x5b, 0xb8, 0xf1, 0x4f, 0x9f, 0x2d, 0xdc, 0xf8, 0xc6, 0x76, 0x2c, 0x31,
- 0xab, 0x05, 0x21, 0x63, 0x13, 0x1d, 0xd0, 0xe5, 0x30, 0x80, 0xbc, 0x61, 0xb8, 0x1e, 0x8e, 0x17,
- 0x1b, 0x88, 0x38, 0xcb, 0xb6, 0xcb, 0x36, 0x08, 0x34, 0xfa, 0xeb, 0x32, 0x3c, 0x89, 0x3b, 0x18,
- 0xe1, 0xdf, 0xba, 0x7e, 0xf1, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x33, 0xb2, 0xf1, 0xde, 0x80,
- 0x46, 0x00, 0x00,
+ // 4704 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0xeb, 0x6f, 0x24, 0xd9,
+ 0x55, 0x9f, 0xea, 0xf6, 0xa3, 0xfb, 0xb8, 0xbb, 0xdd, 0x2e, 0x7b, 0xec, 0xb6, 0x3d, 0x63, 0xf7,
+ 0xf6, 0xec, 0x64, 0x67, 0x67, 0x77, 0xed, 0x9d, 0x09, 0x9b, 0xec, 0x4e, 0x14, 0x65, 0xdb, 0xaf,
+ 0x99, 0x66, 0xfd, 0x4a, 0xb5, 0xbd, 0xb0, 0x89, 0x92, 0xd2, 0x75, 0xd5, 0xb5, 0xfb, 0xae, 0xeb,
+ 0xd1, 0x53, 0xb7, 0xda, 0x63, 0x2f, 0x42, 0x42, 0x68, 0x85, 0x58, 0x03, 0x22, 0x7c, 0x40, 0x48,
+ 0x48, 0x83, 0xc2, 0x07, 0x84, 0xe0, 0x53, 0xc4, 0x27, 0x24, 0xf8, 0x80, 0x84, 0x20, 0xf9, 0x10,
+ 0xa4, 0x7c, 0x40, 0x08, 0x81, 0x14, 0xd0, 0x2e, 0x52, 0x10, 0x7f, 0x03, 0x8a, 0xd0, 0x7d, 0xd4,
+ 0xa3, 0x1f, 0x6e, 0x77, 0x79, 0xbc, 0x10, 0xe0, 0xcb, 0x4c, 0xdf, 0xc7, 0xf9, 0x9d, 0x73, 0xcf,
+ 0x3d, 0xf7, 0x9c, 0x73, 0x1f, 0x65, 0x78, 0x95, 0x38, 0x1f, 0x62, 0xc3, 0x27, 0x27, 0x78, 0x19,
+ 0x9f, 0x1a, 0x0d, 0xe4, 0x1c, 0xe1, 0xe5, 0x93, 0x07, 0x07, 0xd8, 0x47, 0x0f, 0xc2, 0x8a, 0xa5,
+ 0xa6, 0xe7, 0xfa, 0xae, 0x3a, 0x17, 0x76, 0x5d, 0x0a, 0x5b, 0x64, 0xd7, 0xb9, 0xa9, 0x23, 0xf7,
+ 0xc8, 0xe5, 0xdd, 0x96, 0xd9, 0x2f, 0x41, 0x31, 0xb7, 0x60, 0xb8, 0xd4, 0x76, 0xe9, 0xf2, 0x01,
+ 0xa2, 0x11, 0xaa, 0xe1, 0x12, 0x47, 0xb6, 0xdf, 0x8d, 0x98, 0xbb, 0x1e, 0x32, 0xac, 0xa8, 0x93,
+ 0x28, 0xca, 0x6e, 0x13, 0xc8, 0x26, 0x8e, 0xbb, 0xcc, 0xff, 0x15, 0x55, 0x95, 0x7f, 0x4e, 0xc1,
+ 0xf8, 0x4e, 0x13, 0x3b, 0xdb, 0xae, 0x4f, 0x5c, 0x07, 0x59, 0xab, 0xa8, 0xa9, 0x9e, 0x2b, 0x90,
+ 0x69, 0x39, 0x06, 0x6a, 0x36, 0xb1, 0x59, 0x52, 0xca, 0xca, 0xbd, 0xb1, 0x87, 0x5f, 0x5c, 0xba,
+ 0x58, 0xe6, 0xa5, 0x0e, 0xfa, 0x7d, 0x49, 0xba, 0xf2, 0xe5, 0x3f, 0xfb, 0xc9, 0xf7, 0xee, 0x3f,
+ 0x4c, 0x4e, 0xf8, 0xe4, 0x86, 0x16, 0xf2, 0x57, 0x7f, 0x55, 0x81, 0x11, 0x29, 0x4a, 0x8a, 0x8b,
+ 0xf2, 0x20, 0x81, 0x28, 0xab, 0x42, 0x90, 0xb7, 0x98, 0x20, 0x6f, 0x26, 0x25, 0x7b, 0x72, 0x43,
+ 0x93, 0x9c, 0x1f, 0x2d, 0x9f, 0xff, 0xe4, 0x7b, 0xf7, 0xef, 0x0f, 0x0e, 0xb0, 0x32, 0x0c, 0x69,
+ 0x03, 0x35, 0x2b, 0x1a, 0xcc, 0x5c, 0x30, 0xc6, 0x47, 0x5f, 0x3e, 0xbf, 0x9a, 0x72, 0x2a, 0x9f,
+ 0x28, 0x70, 0xb3, 0xa7, 0xbc, 0xea, 0x3b, 0x30, 0x7c, 0x82, 0xac, 0x16, 0xe6, 0x73, 0x96, 0x5d,
+ 0xb9, 0xf3, 0x83, 0x1f, 0x2f, 0xde, 0xf8, 0xa7, 0x1f, 0x2f, 0xce, 0x0b, 0xe3, 0xa1, 0xe6, 0xf1,
+ 0x12, 0x71, 0x97, 0x6d, 0xe4, 0x37, 0x96, 0x36, 0xf1, 0x11, 0x32, 0xce, 0xd6, 0xb0, 0xa1, 0x09,
+ 0x8a, 0x47, 0x6f, 0x9d, 0x5f, 0x45, 0x43, 0x95, 0x4f, 0xa6, 0x61, 0x64, 0x17, 0x79, 0xc8, 0xa6,
+ 0x2a, 0x86, 0x45, 0xda, 0x74, 0x7d, 0xdd, 0x46, 0xde, 0x31, 0xf6, 0x75, 0xe2, 0x50, 0x1f, 0x39,
+ 0xbe, 0x6e, 0x11, 0xea, 0x13, 0xe7, 0x48, 0x3f, 0xc4, 0x58, 0x9a, 0xd2, 0xec, 0x92, 0x90, 0x67,
+ 0x89, 0x19, 0x73, 0x88, 0xbf, 0xea, 0x12, 0x67, 0x65, 0x88, 0x49, 0xac, 0xcd, 0x33, 0x9c, 0x2d,
+ 0x0e, 0x53, 0x13, 0x28, 0x9b, 0x02, 0x64, 0x03, 0x63, 0xf5, 0x29, 0xdc, 0x35, 0xb1, 0x47, 0x4e,
+ 0x10, 0x13, 0xb3, 0x1f, 0xb3, 0xd4, 0x60, 0xcc, 0x5e, 0x8a, 0xd0, 0x2e, 0x62, 0x89, 0x60, 0xde,
+ 0xc4, 0x87, 0xa8, 0x65, 0xf9, 0xba, 0x1c, 0xe1, 0x31, 0xf6, 0x18, 0x0f, 0xdd, 0x43, 0x3e, 0x2e,
+ 0xa5, 0x07, 0x57, 0xf6, 0x8c, 0xc4, 0xa9, 0xf3, 0x01, 0x1e, 0x63, 0x6f, 0x03, 0x63, 0x0d, 0xf9,
+ 0xdd, 0x2c, 0xfc, 0x76, 0x16, 0x43, 0x57, 0x63, 0xb1, 0x17, 0x67, 0x61, 0xc3, 0x4b, 0x01, 0x8b,
+ 0x36, 0x05, 0xb6, 0x31, 0x1a, 0x1e, 0x9c, 0xd1, 0x6d, 0x89, 0xb6, 0x16, 0xd3, 0xdf, 0xa5, 0xec,
+ 0x3a, 0xc6, 0x35, 0xf2, 0x22, 0xec, 0xda, 0x46, 0x67, 0xc2, 0xad, 0x80, 0x1d, 0x71, 0x88, 0x4f,
+ 0x90, 0xc5, 0x6c, 0xe3, 0x88, 0x38, 0x8c, 0x11, 0x71, 0x4b, 0xa3, 0x83, 0x73, 0x9a, 0x95, 0x40,
+ 0x35, 0x81, 0xb3, 0xc5, 0x61, 0x34, 0x86, 0xa2, 0x5a, 0x50, 0x0e, 0xb8, 0xd8, 0x88, 0x38, 0x3e,
+ 0x76, 0x90, 0x63, 0xe0, 0x76, 0x4e, 0x99, 0xe4, 0x63, 0xda, 0x8a, 0xb0, 0xe2, 0xdc, 0xde, 0x86,
+ 0x52, 0xc0, 0xed, 0xb0, 0xe5, 0x98, 0xcc, 0xb0, 0x59, 0x3f, 0xef, 0x04, 0x59, 0xa5, 0x6c, 0x59,
+ 0xb9, 0x97, 0xd6, 0xa6, 0x65, 0xfb, 0x86, 0x68, 0xae, 0xc9, 0x56, 0xf5, 0x55, 0x28, 0x06, 0x14,
+ 0x76, 0xcb, 0xf2, 0x49, 0xd3, 0xc2, 0x25, 0xe0, 0x14, 0xe3, 0xb2, 0x7e, 0x4b, 0x56, 0xab, 0xbf,
+ 0x08, 0xd3, 0x1e, 0xb6, 0xd0, 0x99, 0x9c, 0x16, 0xda, 0x40, 0x9e, 0x9c, 0x9c, 0xb1, 0xc1, 0x07,
+ 0x32, 0x29, 0x21, 0x36, 0x30, 0xae, 0x33, 0x00, 0x3e, 0x25, 0x04, 0x16, 0x03, 0xf1, 0x1b, 0x6e,
+ 0xcb, 0xb3, 0xce, 0xc2, 0x51, 0x30, 0x78, 0xdd, 0x40, 0xcd, 0x52, 0x6e, 0x70, 0x16, 0xc1, 0xfa,
+ 0x78, 0xc2, 0xa1, 0xe4, 0x80, 0x19, 0x1f, 0x16, 0xb0, 0x62, 0xb3, 0x2f, 0x59, 0x71, 0x45, 0x61,
+ 0xea, 0x8b, 0xa1, 0xe4, 0x93, 0xcf, 0xbe, 0xe0, 0x53, 0x93, 0x30, 0x7c, 0x40, 0x6b, 0xb0, 0x68,
+ 0xa3, 0xd3, 0xb8, 0x39, 0xbb, 0x9e, 0x89, 0x3d, 0x9d, 0x12, 0x13, 0xeb, 0x86, 0xdb, 0x72, 0xfc,
+ 0x52, 0xa1, 0xac, 0xdc, 0xcb, 0x6b, 0xf3, 0x36, 0x3a, 0x8d, 0xec, 0x74, 0x87, 0x75, 0xaa, 0x13,
+ 0x13, 0xaf, 0xb2, 0x2e, 0x2a, 0x85, 0x57, 0x88, 0xf3, 0xa1, 0xee, 0xe1, 0x67, 0xc8, 0x33, 0x75,
+ 0xca, 0x56, 0x84, 0xa9, 0x7b, 0xf8, 0x69, 0x8b, 0x78, 0xd8, 0xc6, 0x8e, 0xaf, 0xfb, 0x0d, 0x0f,
+ 0xd3, 0x86, 0x6b, 0x99, 0xa5, 0x71, 0x2e, 0xf6, 0x6d, 0x29, 0xf6, 0xcd, 0x6e, 0xb1, 0x6b, 0x8e,
+ 0xaf, 0xdd, 0x21, 0xce, 0x87, 0x1a, 0x07, 0xab, 0x73, 0x2c, 0x2d, 0x82, 0xda, 0x0b, 0x90, 0xd4,
+ 0xc7, 0x50, 0xf6, 0x3d, 0x24, 0x94, 0xcf, 0xfb, 0x52, 0xfd, 0x04, 0x0b, 0x5f, 0x69, 0xb6, 0xb8,
+ 0xdd, 0x3a, 0xa5, 0x22, 0x37, 0x90, 0xdb, 0xb2, 0x9f, 0x80, 0xa4, 0xef, 0x8b, 0x5e, 0x6b, 0xb2,
+ 0x13, 0xd3, 0xb4, 0x45, 0x9e, 0xb6, 0x88, 0x89, 0x7c, 0xd7, 0x0b, 0x07, 0x11, 0x19, 0xcd, 0x44,
+ 0x02, 0x4d, 0x47, 0x40, 0x52, 0xfe, 0xd0, 0x74, 0x4e, 0xe1, 0xd5, 0x03, 0xe2, 0x20, 0xef, 0x4c,
+ 0x77, 0x9b, 0x8c, 0x2d, 0xed, 0xe7, 0xe8, 0xd5, 0xc1, 0x1c, 0xfd, 0xcb, 0x02, 0x71, 0x47, 0x00,
+ 0x5e, 0xe4, 0xeb, 0x7f, 0x45, 0x81, 0x32, 0xf2, 0x5d, 0x9b, 0x18, 0x01, 0x4b, 0x31, 0xc7, 0xc8,
+ 0x30, 0x30, 0xa5, 0xba, 0x85, 0x4f, 0xb0, 0x55, 0x9a, 0x2c, 0x2b, 0xf7, 0x0a, 0x0f, 0xdf, 0xee,
+ 0x97, 0x87, 0x54, 0x39, 0x86, 0xe0, 0xc2, 0x0d, 0xa0, 0xca, 0x01, 0x36, 0x19, 0xbd, 0x76, 0x0b,
+ 0xf5, 0x69, 0x55, 0x4f, 0xe1, 0x15, 0x1e, 0x03, 0x7a, 0x89, 0xc1, 0x96, 0xa8, 0x5c, 0xd1, 0x04,
+ 0x7b, 0xa5, 0xa9, 0xc1, 0xb5, 0x5d, 0x61, 0x98, 0x5d, 0x52, 0x6d, 0x60, 0xbc, 0x15, 0xc2, 0xa9,
+ 0x1f, 0x2b, 0xf0, 0x46, 0xcc, 0xba, 0x07, 0x10, 0xe0, 0xe6, 0xe0, 0x02, 0xdc, 0x8b, 0x90, 0x2f,
+ 0x11, 0xe3, 0x37, 0x14, 0x78, 0xd0, 0x31, 0xfd, 0x03, 0x88, 0x32, 0x3d, 0xb8, 0x28, 0xaf, 0xb5,
+ 0x99, 0xc2, 0x25, 0xd2, 0x7c, 0x1b, 0x66, 0x6d, 0xe2, 0x10, 0x1b, 0x59, 0x3a, 0xcf, 0x98, 0x0d,
+ 0xd7, 0x8a, 0x02, 0xd8, 0xcc, 0xe0, 0x4c, 0xa7, 0x25, 0xca, 0xae, 0x04, 0x09, 0x22, 0xd7, 0x37,
+ 0xe1, 0x35, 0x42, 0x43, 0xc3, 0xee, 0xce, 0x6d, 0x2c, 0xd4, 0x72, 0x8c, 0x86, 0x8e, 0x1d, 0x74,
+ 0x60, 0x61, 0xb3, 0x54, 0x2a, 0x2b, 0xf7, 0x32, 0xda, 0x17, 0x08, 0x95, 0xb6, 0xbb, 0xd6, 0x91,
+ 0xbe, 0x6c, 0xf2, 0xee, 0xeb, 0xa2, 0x37, 0x73, 0x59, 0x4d, 0x97, 0xfa, 0xba, 0xeb, 0x58, 0x67,
+ 0xba, 0xed, 0x9a, 0x58, 0x6f, 0x60, 0x72, 0xd4, 0x88, 0x3b, 0x99, 0x59, 0xbe, 0xec, 0xe7, 0x59,
+ 0xb7, 0x1d, 0xc7, 0x3a, 0xdb, 0x72, 0x4d, 0xfc, 0x84, 0xf7, 0x89, 0xbc, 0xc7, 0x11, 0x3c, 0x90,
+ 0x21, 0xce, 0xc4, 0x86, 0x87, 0x11, 0xc5, 0x7a, 0xd3, 0x23, 0x06, 0xd6, 0x7d, 0x62, 0x63, 0xea,
+ 0x23, 0xbb, 0x19, 0xe1, 0xe9, 0x14, 0x1b, 0xae, 0x63, 0xd2, 0xd2, 0x1c, 0xc7, 0x7d, 0x5d, 0x10,
+ 0xae, 0x49, 0xba, 0x5d, 0x46, 0xb6, 0x17, 0x50, 0x85, 0x1c, 0xea, 0x82, 0x46, 0x7d, 0x05, 0xc6,
+ 0x83, 0x95, 0xa4, 0x23, 0xd3, 0x26, 0x0e, 0x2d, 0xcd, 0x97, 0xd3, 0xf7, 0xb2, 0x5a, 0x21, 0xa8,
+ 0xae, 0xf2, 0x5a, 0x75, 0x13, 0x26, 0x99, 0x13, 0x45, 0x2d, 0x83, 0x4d, 0xa1, 0xce, 0xdc, 0x32,
+ 0x8b, 0x27, 0xb7, 0x06, 0x71, 0x98, 0x45, 0xe2, 0x7c, 0x58, 0x15, 0x84, 0x5b, 0xe8, 0x94, 0x85,
+ 0x8f, 0xfb, 0x30, 0x71, 0x48, 0x4e, 0xb1, 0xa9, 0x1f, 0x21, 0x1a, 0x2a, 0xfa, 0x36, 0x57, 0xf4,
+ 0x38, 0x6f, 0x78, 0x8c, 0xa8, 0xd4, 0xe8, 0xa3, 0xd2, 0xbf, 0x7f, 0x77, 0x51, 0x61, 0xc9, 0x72,
+ 0x28, 0xe9, 0xb2, 0x48, 0x80, 0x2b, 0x1f, 0x2b, 0x30, 0x29, 0xe6, 0xa0, 0xdd, 0x80, 0xe6, 0x21,
+ 0x1b, 0x78, 0x2f, 0xb1, 0x9b, 0xca, 0x6a, 0x19, 0x51, 0x51, 0x33, 0xd5, 0x9f, 0x87, 0x42, 0x87,
+ 0x1d, 0xa7, 0x06, 0x37, 0xa9, 0xfc, 0x61, 0x9c, 0xd1, 0xa3, 0xa1, 0x5f, 0xff, 0xee, 0xe2, 0x8d,
+ 0xca, 0xf7, 0x01, 0x8a, 0x9d, 0x46, 0xa1, 0x4e, 0xc3, 0x88, 0x4f, 0x8c, 0x63, 0xec, 0x49, 0x01,
+ 0x64, 0x49, 0x5d, 0x84, 0x31, 0xb1, 0x41, 0xd4, 0x99, 0xdb, 0x14, 0xbc, 0x35, 0x10, 0x55, 0x2b,
+ 0x88, 0x62, 0xf5, 0x25, 0xc8, 0xc9, 0x0e, 0x4f, 0x5b, 0x6e, 0x90, 0xec, 0x6a, 0x92, 0xe8, 0xeb,
+ 0xac, 0x4a, 0x5d, 0x0f, 0x31, 0xfc, 0xb3, 0xa6, 0xc8, 0x55, 0x0b, 0x0f, 0x5f, 0x8e, 0x39, 0x47,
+ 0xb9, 0x05, 0x0d, 0x77, 0x12, 0xbc, 0xb8, 0x77, 0xd6, 0xc4, 0x01, 0x27, 0xf6, 0x5b, 0x5d, 0x82,
+ 0x49, 0x09, 0x43, 0x0d, 0x64, 0x61, 0xfd, 0x10, 0x19, 0xbe, 0xeb, 0xf1, 0x8c, 0x34, 0xaf, 0x4d,
+ 0x88, 0xa6, 0x3a, 0x6b, 0xd9, 0xe0, 0x0d, 0x4c, 0x74, 0x2e, 0x92, 0x6e, 0x62, 0xc7, 0xb5, 0x45,
+ 0x2a, 0xa9, 0x01, 0xaf, 0x5a, 0x63, 0x35, 0xed, 0x7a, 0x1f, 0xed, 0xd0, 0xfb, 0x3e, 0x4c, 0xf5,
+ 0xcc, 0x13, 0x13, 0x64, 0x6f, 0x2a, 0xe9, 0x4e, 0x10, 0xbf, 0x05, 0xa5, 0x0b, 0x13, 0xc3, 0x6c,
+ 0x12, 0x5f, 0xd1, 0x3b, 0x23, 0xac, 0x41, 0xa1, 0x23, 0x61, 0x87, 0xc1, 0x41, 0x73, 0x76, 0x3c,
+ 0x61, 0xae, 0x41, 0xa1, 0x23, 0x19, 0x4f, 0x90, 0xef, 0xe5, 0xfc, 0x38, 0xd4, 0xc5, 0x29, 0x64,
+ 0xee, 0x05, 0x53, 0xc8, 0x32, 0x8c, 0x11, 0xba, 0x8b, 0xbd, 0x26, 0xf6, 0x5b, 0xc8, 0xe2, 0x69,
+ 0x5c, 0x46, 0x8b, 0x57, 0xa9, 0xef, 0xc2, 0x08, 0xf5, 0x91, 0xdf, 0xa2, 0x3c, 0xf5, 0x2a, 0x3c,
+ 0xbc, 0xd7, 0x2f, 0x28, 0x8b, 0xc5, 0x50, 0xe7, 0xfd, 0x35, 0x49, 0xa7, 0x6a, 0x30, 0x69, 0x13,
+ 0x27, 0x74, 0x68, 0xc6, 0xb1, 0x4e, 0xc9, 0x47, 0x58, 0xe6, 0x5e, 0x03, 0x89, 0x5e, 0xb4, 0x89,
+ 0x23, 0x1d, 0x9b, 0x71, 0x5c, 0x27, 0x1f, 0x71, 0x8d, 0x30, 0xcc, 0xa7, 0x2d, 0xe4, 0xf8, 0xc4,
+ 0x3f, 0x8b, 0xc1, 0x16, 0x13, 0x68, 0xc4, 0x26, 0xce, 0xd7, 0x25, 0x42, 0x88, 0xbc, 0x01, 0x39,
+ 0x86, 0xec, 0xc8, 0x9d, 0x78, 0x92, 0x7c, 0x6b, 0xcc, 0x26, 0xe1, 0x0e, 0x5e, 0x9d, 0x82, 0x61,
+ 0xee, 0x60, 0x79, 0xf6, 0x94, 0xd5, 0x44, 0x41, 0x7d, 0x0d, 0x26, 0xf8, 0x0f, 0xbd, 0x89, 0x3d,
+ 0x9b, 0x50, 0xca, 0xc2, 0x23, 0xcf, 0x76, 0xf2, 0x5a, 0x91, 0x37, 0xec, 0x46, 0xf5, 0xea, 0x5d,
+ 0x28, 0x04, 0x0b, 0xd0, 0x60, 0x81, 0x8d, 0xf2, 0x74, 0x24, 0xaf, 0xe5, 0xe5, 0x1a, 0x14, 0x95,
+ 0x6a, 0x1d, 0x26, 0x3d, 0x6c, 0xb6, 0x3a, 0x57, 0x43, 0x82, 0xcc, 0x61, 0x42, 0xd0, 0xb7, 0xaf,
+ 0xb3, 0x09, 0xb7, 0x89, 0x23, 0x3d, 0x70, 0xef, 0x3f, 0xcd, 0x13, 0xc1, 0xd7, 0x12, 0x1c, 0x0f,
+ 0xc9, 0xd4, 0x70, 0xdc, 0x6d, 0xaf, 0x96, 0x9e, 0xf4, 0xa7, 0x19, 0x98, 0x5c, 0xe9, 0x4e, 0x1a,
+ 0x2f, 0x74, 0xa6, 0x77, 0x20, 0x1f, 0x78, 0xb0, 0x33, 0xfb, 0xc0, 0xb5, 0xa4, 0x3b, 0x95, 0x0e,
+ 0xb4, 0xce, 0xeb, 0x58, 0x88, 0x93, 0x9d, 0x9a, 0x9e, 0x7b, 0x42, 0x4c, 0xec, 0x49, 0x9f, 0x5a,
+ 0x10, 0xd5, 0xbb, 0xb2, 0xf6, 0x7f, 0xca, 0xad, 0x3e, 0x80, 0x29, 0x7c, 0xda, 0x24, 0x22, 0xdd,
+ 0x8f, 0x02, 0x3c, 0xf7, 0xaf, 0x69, 0x6d, 0x32, 0x6a, 0x0b, 0xa3, 0x38, 0x23, 0xa1, 0xd8, 0xf7,
+ 0x2d, 0xb9, 0x7d, 0x09, 0x49, 0x46, 0x05, 0x49, 0xd4, 0x16, 0x91, 0x84, 0xe6, 0x97, 0x89, 0x9b,
+ 0x5f, 0x87, 0x4b, 0xcf, 0xf6, 0x77, 0xe9, 0xd0, 0xe1, 0xd2, 0xbb, 0x9d, 0xe3, 0xd8, 0xf5, 0x39,
+ 0xc7, 0xdc, 0xf5, 0x3b, 0xc7, 0xfc, 0x0b, 0x3a, 0xc7, 0xff, 0x6f, 0xae, 0x6f, 0x1b, 0x8a, 0x31,
+ 0x33, 0xe3, 0x42, 0xc7, 0xdc, 0x9f, 0x72, 0x19, 0xe6, 0x78, 0x44, 0xcc, 0x25, 0xee, 0x72, 0xa5,
+ 0xea, 0x15, 0x5d, 0xe9, 0xe7, 0xe0, 0x34, 0xa5, 0x03, 0xfa, 0xb7, 0x14, 0xcc, 0xac, 0xb3, 0x05,
+ 0x77, 0xb6, 0xd1, 0xf2, 0x5b, 0x1e, 0x0e, 0x77, 0xad, 0x87, 0x6e, 0xff, 0xac, 0xf2, 0xa2, 0x45,
+ 0x9c, 0xba, 0x78, 0x11, 0xbf, 0x09, 0x53, 0xfe, 0x33, 0xd4, 0xd4, 0xa9, 0x8f, 0xbc, 0xf8, 0x22,
+ 0x4e, 0x73, 0x12, 0x95, 0xb5, 0xd5, 0x59, 0x53, 0x44, 0xf1, 0x0c, 0xbe, 0x10, 0x67, 0x12, 0x11,
+ 0x0b, 0x7b, 0x32, 0x5a, 0x76, 0xcb, 0xe2, 0x39, 0x68, 0x92, 0xe3, 0xcb, 0x4a, 0x4c, 0xb6, 0x80,
+ 0x25, 0x9f, 0xae, 0xd5, 0x10, 0xae, 0xa7, 0x21, 0x24, 0x38, 0xb8, 0xec, 0x34, 0x84, 0xca, 0xdf,
+ 0xa6, 0x60, 0x32, 0xcc, 0x28, 0x06, 0x55, 0xf1, 0x37, 0x60, 0xe6, 0xa2, 0x53, 0xad, 0x04, 0x19,
+ 0xfc, 0x54, 0xa3, 0xd7, 0x71, 0xd6, 0x3e, 0x4c, 0xf5, 0x3c, 0xc6, 0x4a, 0x70, 0xd2, 0xac, 0x36,
+ 0xba, 0xcf, 0xaf, 0x7e, 0x0e, 0xa6, 0x1d, 0x7c, 0x1a, 0x1d, 0x26, 0x46, 0x93, 0x3c, 0xc4, 0x27,
+ 0x79, 0x8a, 0xb5, 0x4a, 0x51, 0xa2, 0x69, 0x8e, 0x9d, 0x25, 0x86, 0xa7, 0x8f, 0xc3, 0x6d, 0x67,
+ 0x89, 0xc1, 0xb1, 0x63, 0xe5, 0x33, 0x05, 0xa6, 0x3b, 0x14, 0x29, 0xe1, 0x54, 0x0d, 0xd4, 0xc8,
+ 0x20, 0x02, 0x09, 0x92, 0xdc, 0x53, 0x4c, 0x44, 0xe4, 0x01, 0xe6, 0x36, 0x14, 0x63, 0x98, 0xc2,
+ 0x0e, 0x12, 0xe8, 0x7e, 0x3c, 0x22, 0x16, 0x0e, 0xe1, 0x2e, 0x14, 0x2c, 0x44, 0xbb, 0x8d, 0x3f,
+ 0xcf, 0x6a, 0x43, 0x85, 0x54, 0x7e, 0x4b, 0x81, 0x85, 0xce, 0x0d, 0x56, 0x3d, 0x34, 0xa9, 0xcb,
+ 0x2d, 0xa7, 0x97, 0xf9, 0xa6, 0x5e, 0xc0, 0x7c, 0xbf, 0x0a, 0x53, 0xdb, 0xbd, 0x26, 0xee, 0x2e,
+ 0x14, 0xf8, 0x74, 0x47, 0xc3, 0x51, 0xc4, 0x70, 0x58, 0x6d, 0x34, 0x9c, 0xff, 0x50, 0xa0, 0xb0,
+ 0x45, 0x4c, 0x8e, 0x55, 0x75, 0xcc, 0xbd, 0x9d, 0x15, 0xf5, 0x5d, 0xc8, 0xda, 0xc4, 0x94, 0xa2,
+ 0x29, 0x83, 0xbb, 0xd8, 0x8c, 0x2d, 0x71, 0x58, 0x00, 0x3d, 0x60, 0x66, 0x7b, 0xd0, 0x3a, 0xeb,
+ 0x1a, 0xe1, 0xa5, 0x30, 0x39, 0x46, 0xba, 0xd2, 0x3a, 0x13, 0x50, 0xef, 0xc1, 0x38, 0x87, 0xa2,
+ 0xd8, 0xb2, 0x24, 0x56, 0x7a, 0x70, 0xac, 0x3c, 0xa3, 0xad, 0x63, 0xcb, 0x12, 0xba, 0xfa, 0xf3,
+ 0x11, 0x80, 0x7a, 0x78, 0xbb, 0x74, 0x61, 0x26, 0x77, 0x1b, 0x80, 0xed, 0x87, 0x65, 0x1e, 0x22,
+ 0xd2, 0xb8, 0x2c, 0xab, 0x11, 0x69, 0x48, 0x47, 0x9e, 0x92, 0xee, 0xca, 0x53, 0xba, 0x53, 0x91,
+ 0xa1, 0xeb, 0x4b, 0x45, 0x86, 0xaf, 0x3f, 0x15, 0x19, 0x79, 0xc1, 0x54, 0xa4, 0xef, 0x56, 0x3b,
+ 0xca, 0x53, 0x32, 0xd7, 0x9b, 0xa7, 0x64, 0x3f, 0x9f, 0x3c, 0x05, 0xae, 0x79, 0x8b, 0x36, 0xf6,
+ 0xa2, 0x5b, 0xb4, 0xdc, 0xa5, 0x5b, 0xb4, 0xfc, 0x05, 0xd9, 0xc6, 0x1d, 0xc8, 0x4b, 0x3b, 0x96,
+ 0xc9, 0x86, 0xb8, 0x9f, 0xc8, 0x09, 0x53, 0x96, 0x1b, 0xb4, 0xee, 0x94, 0x64, 0xbc, 0x47, 0x4a,
+ 0x52, 0xf9, 0x23, 0x05, 0x46, 0xd7, 0x70, 0xd3, 0xa5, 0xc4, 0x57, 0x77, 0x61, 0x02, 0x9d, 0x20,
+ 0x62, 0xa1, 0x03, 0x7e, 0x72, 0x64, 0x21, 0xc7, 0x48, 0x74, 0xe9, 0x5c, 0x0c, 0xa9, 0x57, 0x04,
+ 0xb1, 0xfa, 0x04, 0xf2, 0xbe, 0xeb, 0x23, 0x2b, 0x44, 0x4b, 0x25, 0xb1, 0x72, 0x46, 0x29, 0x91,
+ 0x2a, 0xaf, 0xc3, 0x54, 0xbd, 0x75, 0x80, 0x0c, 0x7e, 0x21, 0xb3, 0xe7, 0x21, 0x13, 0x6f, 0xbb,
+ 0x8c, 0xc3, 0x14, 0x0c, 0x3b, 0x6e, 0x20, 0x67, 0x5e, 0x13, 0x05, 0x16, 0xb2, 0xb2, 0xfc, 0xd0,
+ 0x97, 0xfb, 0xed, 0x3b, 0x90, 0xa7, 0x21, 0x6d, 0xe4, 0xbb, 0x73, 0x51, 0x65, 0xcd, 0x64, 0x9d,
+ 0xf8, 0x5a, 0xc4, 0x06, 0x69, 0x12, 0xec, 0xf8, 0xc1, 0x36, 0xef, 0x10, 0x63, 0x2d, 0xa8, 0x53,
+ 0xdf, 0x81, 0xe1, 0x4e, 0x5f, 0x75, 0xf9, 0x55, 0x3c, 0xa7, 0x50, 0xbf, 0x06, 0x99, 0xc0, 0x2a,
+ 0x93, 0xb8, 0x8d, 0x90, 0x48, 0x2d, 0x42, 0xda, 0x20, 0xa6, 0xf0, 0x13, 0x1a, 0xfb, 0x59, 0xf9,
+ 0x38, 0x05, 0x59, 0xe6, 0xf6, 0xf8, 0x48, 0x2f, 0x3b, 0x90, 0x04, 0x71, 0xbc, 0x4e, 0x9c, 0x43,
+ 0x57, 0x5e, 0xa2, 0xdf, 0xed, 0xbb, 0xa5, 0x0e, 0xb4, 0x27, 0x37, 0xd3, 0x59, 0x37, 0x54, 0xe7,
+ 0x5a, 0x80, 0xc5, 0x77, 0xb0, 0x69, 0xbe, 0xfa, 0x2f, 0xc7, 0xe2, 0x5b, 0x58, 0x81, 0xc2, 0x77,
+ 0xb0, 0xcc, 0x34, 0x3c, 0x72, 0x74, 0x84, 0x3d, 0xe9, 0xfe, 0x87, 0x12, 0x84, 0x12, 0x49, 0x29,
+ 0xbc, 0xff, 0x0f, 0x53, 0x50, 0x60, 0x6a, 0xd8, 0x24, 0x36, 0x91, 0xba, 0x68, 0x1f, 0xae, 0x72,
+ 0x8d, 0xc3, 0x4d, 0x5d, 0x71, 0xb8, 0x5f, 0x83, 0xcc, 0x21, 0xb1, 0xf8, 0xe2, 0x48, 0x62, 0x3c,
+ 0x21, 0xd1, 0xf5, 0xe9, 0x8b, 0x85, 0x41, 0x31, 0xa0, 0x06, 0xa2, 0x0d, 0x6e, 0x4f, 0x39, 0x29,
+ 0xe9, 0x13, 0x44, 0x1b, 0x95, 0xbf, 0x4f, 0xc1, 0x78, 0x14, 0x4c, 0xaf, 0x5f, 0x9f, 0x1b, 0x90,
+ 0x93, 0xde, 0x40, 0xe7, 0x37, 0x15, 0x09, 0x5c, 0xc2, 0x98, 0x24, 0x7c, 0xe2, 0x5a, 0x66, 0xc7,
+ 0x30, 0xd2, 0x1d, 0xc3, 0xe8, 0x98, 0xb6, 0xa1, 0xeb, 0xb2, 0xd2, 0xe1, 0xab, 0x5a, 0xe9, 0xf7,
+ 0x53, 0x30, 0xde, 0x71, 0x7b, 0xfc, 0xbf, 0x6d, 0xc9, 0x7e, 0x05, 0x46, 0xc4, 0x61, 0x5f, 0x12,
+ 0x07, 0x26, 0x49, 0xae, 0x51, 0x93, 0xff, 0x99, 0x86, 0xf9, 0x28, 0x16, 0x70, 0x49, 0x0f, 0x5c,
+ 0xf7, 0x78, 0x0b, 0xfb, 0xc8, 0x44, 0x3e, 0x52, 0xdf, 0x81, 0xd9, 0x13, 0xe4, 0xb0, 0x75, 0xa3,
+ 0x5b, 0xcc, 0x25, 0xc8, 0x8b, 0x45, 0x71, 0x95, 0x2f, 0xc2, 0xc4, 0xb4, 0xec, 0x10, 0xb9, 0x0c,
+ 0x71, 0x8b, 0xff, 0x2e, 0xdc, 0x96, 0xa7, 0x9a, 0xfc, 0x6a, 0xad, 0x9b, 0x3c, 0xc5, 0xc9, 0x67,
+ 0x45, 0xa7, 0x1d, 0xc7, 0x3a, 0xeb, 0x44, 0x68, 0xc0, 0x02, 0x3a, 0x3a, 0xf2, 0xf0, 0x11, 0xdb,
+ 0x36, 0xc6, 0xb1, 0x42, 0xe7, 0x9f, 0x60, 0xf5, 0xcf, 0x87, 0x50, 0x5a, 0xc8, 0x30, 0x48, 0x4c,
+ 0x54, 0x04, 0x73, 0x11, 0xa7, 0x60, 0xc0, 0x57, 0x09, 0x31, 0xa5, 0x10, 0xe6, 0x7d, 0x81, 0x12,
+ 0xb2, 0x58, 0x87, 0xc5, 0x00, 0xd8, 0x70, 0x1d, 0x93, 0xc8, 0x53, 0xd9, 0xb8, 0x42, 0xc4, 0x89,
+ 0xe3, 0x2d, 0xd9, 0x6d, 0x35, 0xea, 0x15, 0xd3, 0xc9, 0x26, 0xdc, 0x89, 0x6b, 0xe2, 0x22, 0xa8,
+ 0x11, 0x0e, 0xb5, 0x18, 0xe9, 0xb6, 0x27, 0x5a, 0xe5, 0xaf, 0x15, 0x18, 0xef, 0x98, 0xfe, 0x28,
+ 0x2e, 0x2b, 0x2f, 0x14, 0x97, 0x53, 0x57, 0x89, 0xcb, 0x15, 0xc8, 0x11, 0x1a, 0xcd, 0x0f, 0x9f,
+ 0xdf, 0x8c, 0xd6, 0x56, 0x17, 0xc4, 0xee, 0xa1, 0x28, 0x76, 0x3f, 0x83, 0xc9, 0x8e, 0x41, 0xac,
+ 0x31, 0xdb, 0xad, 0xc2, 0x30, 0x57, 0x89, 0xf4, 0xb1, 0x7d, 0x4f, 0xbd, 0x3b, 0xe8, 0x35, 0x41,
+ 0xd9, 0xe1, 0x17, 0x53, 0x9d, 0xee, 0xfd, 0xb7, 0xd3, 0x30, 0x15, 0xf9, 0xa1, 0x9f, 0xe9, 0x98,
+ 0x19, 0xf9, 0x9b, 0x74, 0x72, 0x7f, 0x13, 0x0f, 0xb8, 0x43, 0xd7, 0x12, 0x70, 0x87, 0xaf, 0x27,
+ 0xe0, 0x8e, 0x74, 0xce, 0xc8, 0xef, 0xa6, 0xe1, 0x66, 0xe7, 0xc9, 0xc3, 0xff, 0xc9, 0x29, 0x59,
+ 0x83, 0x31, 0x79, 0x59, 0xc4, 0x03, 0x7f, 0x82, 0x59, 0x01, 0x41, 0xc7, 0xe3, 0xfe, 0x7f, 0xdb,
+ 0xbc, 0xfc, 0x4d, 0x0a, 0x32, 0xbb, 0x6c, 0x63, 0x44, 0x5c, 0x47, 0x9d, 0x86, 0x11, 0x42, 0x37,
+ 0x5d, 0x79, 0xba, 0x95, 0xd1, 0x64, 0xe9, 0xc5, 0xdd, 0xc7, 0x1a, 0x8c, 0x61, 0xc7, 0xf7, 0xce,
+ 0xf4, 0xc4, 0x1b, 0x0b, 0xe0, 0x74, 0x62, 0x28, 0x2f, 0x14, 0x9a, 0xbf, 0x05, 0xa5, 0xee, 0x53,
+ 0x3c, 0x9d, 0xa3, 0x27, 0x39, 0x96, 0x98, 0xee, 0x3a, 0xcb, 0x5b, 0x67, 0x10, 0x95, 0x1a, 0x4c,
+ 0xc5, 0x8c, 0xba, 0xe6, 0x98, 0xc4, 0x40, 0xbe, 0x7b, 0x49, 0xf6, 0x33, 0x05, 0xc3, 0x84, 0xae,
+ 0xb4, 0x84, 0x52, 0x33, 0x9a, 0x28, 0x54, 0xfe, 0x2e, 0x05, 0x19, 0xbe, 0xf9, 0xdb, 0x74, 0xdb,
+ 0x55, 0xaf, 0x5c, 0x45, 0xf5, 0x61, 0xd4, 0x48, 0x25, 0x8e, 0x1a, 0x5d, 0x5b, 0x4a, 0x91, 0x7f,
+ 0xb6, 0x6f, 0x29, 0xdf, 0x82, 0xf4, 0x21, 0x4e, 0xe4, 0x7d, 0x58, 0xff, 0x4b, 0xf2, 0x73, 0xf5,
+ 0x6d, 0xb8, 0xd9, 0xb6, 0x51, 0xd5, 0x91, 0x69, 0x7a, 0x98, 0x52, 0x61, 0xc0, 0x7c, 0xe1, 0x2b,
+ 0xda, 0x64, 0x7c, 0xdb, 0x5a, 0x15, 0x1d, 0x82, 0x28, 0x34, 0x1a, 0x45, 0xa1, 0xdf, 0x4f, 0x41,
+ 0x3e, 0x30, 0xf1, 0x35, 0x6c, 0xf9, 0x48, 0x9d, 0x81, 0x51, 0x42, 0x75, 0xab, 0xdb, 0xd0, 0x35,
+ 0x50, 0xf1, 0x29, 0x36, 0x5a, 0xfc, 0x5a, 0xe0, 0x2a, 0x26, 0x3f, 0x11, 0x92, 0x87, 0xf9, 0xc5,
+ 0x36, 0x14, 0x23, 0xcc, 0xe4, 0x7e, 0x65, 0x3c, 0x24, 0x16, 0x97, 0xc8, 0xea, 0x26, 0x44, 0x55,
+ 0x5d, 0xbb, 0xa4, 0x4b, 0xe1, 0x0a, 0x21, 0xad, 0xc8, 0x33, 0xff, 0x30, 0x0d, 0x6a, 0xec, 0x5d,
+ 0x72, 0x60, 0x76, 0x3d, 0x4f, 0x13, 0x3a, 0xa7, 0x7e, 0x17, 0x0a, 0x4d, 0xa9, 0x57, 0xdd, 0x64,
+ 0x8a, 0x95, 0x09, 0xfc, 0xab, 0xfd, 0x3c, 0x6e, 0xdb, 0x4c, 0x68, 0xf9, 0x66, 0xdb, 0xc4, 0x7c,
+ 0x05, 0x46, 0x9a, 0xe8, 0xcc, 0x6d, 0xf9, 0x89, 0x3c, 0xaf, 0x20, 0xf9, 0xd9, 0xb7, 0x44, 0x26,
+ 0x61, 0xd3, 0xb1, 0x92, 0x3c, 0xd4, 0x61, 0xfd, 0x2b, 0xbf, 0x04, 0x6a, 0x94, 0x06, 0x85, 0xce,
+ 0xfa, 0x5d, 0xc8, 0x04, 0xca, 0x93, 0x51, 0xf3, 0xe5, 0x41, 0xf4, 0xae, 0x85, 0x54, 0xdd, 0x93,
+ 0x9c, 0xea, 0x9e, 0xe4, 0xca, 0x33, 0x98, 0x88, 0x98, 0x07, 0x87, 0x68, 0x03, 0x99, 0xc7, 0x57,
+ 0x61, 0xd4, 0x14, 0xfd, 0xa5, 0x5d, 0xdc, 0xe9, 0x27, 0x9f, 0x84, 0xd6, 0x02, 0x9a, 0x4a, 0x13,
+ 0xf2, 0xb2, 0x6e, 0xbf, 0x69, 0x22, 0x9f, 0x9f, 0x82, 0x89, 0x43, 0x6b, 0xe1, 0x46, 0x45, 0x41,
+ 0xad, 0x41, 0x46, 0x52, 0xd0, 0x52, 0xaa, 0x9c, 0xbe, 0x37, 0xf6, 0xf0, 0x8d, 0xc1, 0xf2, 0xc9,
+ 0x80, 0x61, 0x48, 0x5e, 0xf9, 0xa1, 0x02, 0xc5, 0x5d, 0x97, 0x38, 0x3e, 0x8d, 0x3d, 0x81, 0xfb,
+ 0x26, 0xcc, 0x88, 0xf3, 0xf0, 0x26, 0x6f, 0x89, 0x3f, 0x77, 0x4b, 0xe0, 0x8f, 0x6f, 0x72, 0x8c,
+ 0x5e, 0xe0, 0xfe, 0x05, 0xe0, 0x09, 0x9c, 0xce, 0x4d, 0xbf, 0x17, 0x78, 0xe5, 0xa7, 0x29, 0x58,
+ 0xd8, 0x8b, 0xbf, 0x88, 0x5e, 0x45, 0x76, 0x13, 0x91, 0x23, 0x67, 0xc5, 0x75, 0xa9, 0xb8, 0xec,
+ 0x79, 0x0b, 0x66, 0x0e, 0x58, 0x01, 0x9b, 0x7a, 0xdb, 0x07, 0x30, 0x26, 0x2d, 0x29, 0xfc, 0xf1,
+ 0xe2, 0x94, 0x6c, 0x8e, 0xce, 0x4a, 0x6a, 0x26, 0x55, 0x3f, 0x84, 0x99, 0x78, 0xf7, 0x48, 0xea,
+ 0x60, 0x0a, 0x5e, 0xef, 0x6f, 0x89, 0xed, 0x82, 0xca, 0x34, 0xee, 0x66, 0xf4, 0xe9, 0x4c, 0xd4,
+ 0x46, 0xd5, 0x2a, 0xdc, 0x0e, 0x44, 0xec, 0xf1, 0xf1, 0x8c, 0x49, 0x4b, 0x69, 0x2e, 0xe8, 0x9c,
+ 0xec, 0xd4, 0x99, 0x63, 0x32, 0x71, 0x4f, 0xe0, 0x76, 0x37, 0x69, 0x5c, 0xe8, 0xa1, 0x2b, 0x0b,
+ 0x3d, 0xdf, 0xf9, 0x09, 0x4e, 0x4c, 0xf4, 0xca, 0x5f, 0x2a, 0xa0, 0x06, 0x3a, 0x17, 0x33, 0xb0,
+ 0xeb, 0x8a, 0x67, 0x34, 0x9d, 0x37, 0xd5, 0xe2, 0x76, 0xab, 0x40, 0xdb, 0x6f, 0xa9, 0x7f, 0x19,
+ 0xa6, 0xc4, 0xeb, 0x50, 0x01, 0x11, 0x3c, 0x7f, 0x97, 0x3a, 0xee, 0xf3, 0x6a, 0xfc, 0x4d, 0x26,
+ 0xdb, 0x9f, 0xfe, 0xcb, 0xe2, 0xbd, 0x23, 0xe2, 0x37, 0x5a, 0x07, 0x4b, 0x86, 0x6b, 0x2f, 0xcb,
+ 0xaf, 0xf0, 0xc4, 0x7f, 0x6f, 0x50, 0xf3, 0x78, 0x99, 0xe5, 0xc8, 0x94, 0x13, 0x50, 0x4d, 0xb5,
+ 0xd1, 0x69, 0xbb, 0xa8, 0xb4, 0xf2, 0x27, 0x29, 0x98, 0xed, 0x69, 0x3f, 0xdc, 0x74, 0x1e, 0xc1,
+ 0x6c, 0x28, 0x58, 0xf0, 0x0e, 0x3f, 0x7c, 0x40, 0x2b, 0xc6, 0x33, 0x13, 0x74, 0x08, 0x9e, 0xe0,
+ 0x07, 0x6f, 0x65, 0x5f, 0x82, 0x5c, 0xec, 0x12, 0x4a, 0x0c, 0x28, 0xab, 0x8d, 0x45, 0xb7, 0x50,
+ 0x54, 0x6d, 0xc1, 0x6c, 0xfb, 0xab, 0x7f, 0x9d, 0x4f, 0xb0, 0xd8, 0x24, 0xa4, 0xb9, 0x3b, 0x79,
+ 0xd4, 0x6f, 0xbe, 0xfa, 0x1b, 0xbe, 0x36, 0xdd, 0xf6, 0xa9, 0x40, 0xb4, 0x20, 0xbe, 0x04, 0x33,
+ 0x26, 0xa1, 0x4f, 0x5b, 0xc8, 0x22, 0x87, 0x04, 0x9b, 0x71, 0x3b, 0x1b, 0xe2, 0x42, 0xde, 0x8c,
+ 0x37, 0x87, 0x26, 0x56, 0xf9, 0xab, 0x14, 0x4c, 0x6e, 0x60, 0xbc, 0x46, 0xa8, 0x38, 0xbb, 0x27,
+ 0x72, 0x43, 0x52, 0x87, 0x49, 0xe1, 0x3d, 0x4c, 0xd9, 0x22, 0x2e, 0xad, 0x92, 0x5c, 0x1e, 0x73,
+ 0xfa, 0x00, 0x98, 0x5f, 0x59, 0xd5, 0x61, 0xd2, 0xef, 0x01, 0x9a, 0x24, 0x4d, 0xf1, 0xbb, 0x40,
+ 0x57, 0x20, 0x2f, 0x3f, 0xe8, 0x40, 0x36, 0x3f, 0xa9, 0x48, 0x0f, 0xf2, 0x20, 0x39, 0x27, 0x68,
+ 0xaa, 0x9c, 0x84, 0x85, 0xef, 0x13, 0xd7, 0x6a, 0xd9, 0x89, 0x82, 0xb0, 0x24, 0xa9, 0xfc, 0x66,
+ 0xbb, 0x0a, 0xeb, 0x46, 0x03, 0x9b, 0x2d, 0x8b, 0x3f, 0xe3, 0x3d, 0x68, 0x19, 0x6c, 0x16, 0xa2,
+ 0xc3, 0xad, 0x21, 0x6d, 0x4c, 0xd4, 0x89, 0xb3, 0x97, 0x57, 0x60, 0x5c, 0x76, 0x09, 0xbf, 0x08,
+ 0x11, 0xcf, 0x45, 0x0a, 0xa2, 0x3a, 0xfc, 0x04, 0xa4, 0xd3, 0xf0, 0xd2, 0xdd, 0x86, 0xb7, 0x0d,
+ 0xe0, 0x13, 0xb9, 0x1b, 0x0d, 0x3c, 0xc3, 0x72, 0x3f, 0x4b, 0xeb, 0x31, 0xed, 0x5a, 0xd6, 0x97,
+ 0xbf, 0x68, 0x3f, 0x8b, 0x1a, 0xee, 0x67, 0x51, 0x5b, 0xa0, 0x76, 0x20, 0xef, 0xed, 0x6d, 0xaa,
+ 0x2a, 0x0c, 0xf9, 0x41, 0xe8, 0x19, 0xd2, 0xf8, 0x6f, 0x16, 0x8c, 0x7d, 0xdf, 0xea, 0x7a, 0x2a,
+ 0x93, 0xf3, 0x7d, 0x2b, 0xba, 0x2a, 0xff, 0x03, 0x05, 0x72, 0xef, 0x73, 0x45, 0x6b, 0xd8, 0x70,
+ 0x3d, 0x93, 0x5f, 0xf5, 0x71, 0x23, 0x92, 0x33, 0xa6, 0x24, 0xb9, 0xea, 0x63, 0x84, 0x02, 0x8d,
+ 0xe1, 0xf8, 0x71, 0x9c, 0x24, 0x27, 0xdd, 0x7e, 0x84, 0x53, 0xf9, 0x1d, 0x05, 0x0a, 0x55, 0x11,
+ 0x99, 0xa5, 0x03, 0x52, 0x4b, 0x30, 0x2a, 0x63, 0xb5, 0x0c, 0xf9, 0x41, 0x51, 0xc5, 0x30, 0xfa,
+ 0x39, 0x3a, 0xc3, 0x00, 0xbb, 0xf2, 0x6b, 0x0a, 0xe4, 0x78, 0x4a, 0x2c, 0x74, 0x46, 0xfb, 0xef,
+ 0xe6, 0x3e, 0x80, 0x29, 0x0b, 0xf9, 0x98, 0xfa, 0x3a, 0x73, 0x2e, 0x3c, 0x65, 0x74, 0x23, 0x09,
+ 0x5f, 0xb9, 0xcc, 0x5b, 0x49, 0x26, 0x9a, 0x2a, 0x40, 0xe2, 0x7c, 0x2b, 0x5f, 0x82, 0x7c, 0x94,
+ 0xb8, 0xd4, 0xd6, 0xf8, 0xc5, 0x67, 0x5b, 0x02, 0x26, 0xe2, 0x75, 0x4e, 0xcb, 0xc7, 0x33, 0x30,
+ 0x5a, 0xf9, 0x63, 0x05, 0xc6, 0x62, 0x40, 0xea, 0x2d, 0xc8, 0x76, 0x06, 0x9d, 0xa8, 0xe2, 0x45,
+ 0xb6, 0x8a, 0xf1, 0x6d, 0x6a, 0xfa, 0x0a, 0xdb, 0xd4, 0x8a, 0x0d, 0xc3, 0xe2, 0x13, 0xa2, 0x07,
+ 0xa0, 0x34, 0x93, 0x18, 0xa3, 0xd2, 0x64, 0x24, 0x4f, 0x93, 0xc8, 0xac, 0x3c, 0xad, 0xfc, 0x9e,
+ 0x02, 0x8b, 0xd5, 0xe0, 0x44, 0x38, 0x52, 0x6d, 0xdb, 0x0a, 0x19, 0xe8, 0x46, 0x75, 0x07, 0x0a,
+ 0xd2, 0x22, 0x84, 0xfd, 0x07, 0xd3, 0x3d, 0xc0, 0x4b, 0x01, 0xc9, 0x2c, 0x6f, 0xc7, 0x4a, 0xb4,
+ 0xf2, 0x89, 0x02, 0xb7, 0x42, 0xc9, 0xaa, 0x3d, 0xc4, 0xba, 0x78, 0x55, 0x5c, 0xbb, 0x2c, 0x14,
+ 0x72, 0xf1, 0xe6, 0xfe, 0xe6, 0xbf, 0x11, 0x3a, 0x7f, 0x91, 0xed, 0xf7, 0xe5, 0x1a, 0x1f, 0x91,
+ 0x4c, 0xa5, 0x82, 0x38, 0x50, 0x65, 0x79, 0xbf, 0xe3, 0xda, 0xe1, 0x25, 0x7f, 0xef, 0xbc, 0x7f,
+ 0x8e, 0xe5, 0xfd, 0xf2, 0xd2, 0x3f, 0xc5, 0xbd, 0x61, 0x58, 0xae, 0x60, 0x50, 0x1f, 0x7b, 0xc8,
+ 0xf1, 0xab, 0x2d, 0xbf, 0xe1, 0x7a, 0xe4, 0x23, 0xe1, 0xfc, 0x4b, 0x30, 0x7a, 0xc4, 0x6a, 0xe5,
+ 0xd7, 0xdc, 0x59, 0x2d, 0x28, 0xaa, 0x6f, 0xc1, 0x88, 0x0c, 0x7a, 0xa9, 0x41, 0x82, 0x9e, 0xec,
+ 0x5c, 0xf9, 0x36, 0x8c, 0x55, 0xf9, 0xf8, 0x38, 0xb3, 0x08, 0xdf, 0x6b, 0xc7, 0xf7, 0xae, 0x8a,
+ 0xff, 0x1d, 0x05, 0x0a, 0xeb, 0x87, 0x87, 0x78, 0x20, 0x1e, 0x35, 0x98, 0x70, 0xb0, 0xaf, 0x8b,
+ 0xa2, 0xfc, 0x38, 0x73, 0x30, 0x76, 0xe3, 0x0e, 0xf6, 0x1f, 0x0b, 0x32, 0xfe, 0x19, 0xa6, 0x3a,
+ 0x0b, 0x19, 0x42, 0xf5, 0x13, 0x64, 0xc9, 0x23, 0x9f, 0x8c, 0x36, 0x4a, 0xe8, 0xfb, 0xac, 0x58,
+ 0x69, 0x42, 0x91, 0x4f, 0xce, 0x56, 0xfb, 0x63, 0x8f, 0x1e, 0xf3, 0xd3, 0xf9, 0x94, 0x24, 0x75,
+ 0xb5, 0xa7, 0x24, 0xf7, 0x7d, 0xb8, 0xd5, 0xef, 0x83, 0x44, 0x15, 0x60, 0x64, 0xdb, 0x3d, 0x70,
+ 0xcd, 0xb3, 0xe2, 0x0d, 0xb5, 0x02, 0x0b, 0x2b, 0xf8, 0x88, 0x38, 0x2b, 0x96, 0x6b, 0x1c, 0x63,
+ 0xaf, 0x6e, 0x23, 0xcf, 0x5f, 0x75, 0x1d, 0xdf, 0x43, 0x86, 0x4f, 0x77, 0x1c, 0xeb, 0xac, 0xa8,
+ 0xa8, 0xd3, 0xa0, 0xf6, 0xa8, 0x4f, 0xa9, 0x39, 0xc8, 0xac, 0x9f, 0x60, 0xef, 0xcc, 0x75, 0x70,
+ 0x31, 0x7d, 0x7f, 0x2f, 0xb0, 0x7c, 0xf1, 0x9c, 0x47, 0x1d, 0x87, 0xb1, 0x7d, 0x87, 0x36, 0xb1,
+ 0xc1, 0xa3, 0x74, 0xf1, 0x06, 0x63, 0x2b, 0xe6, 0xbe, 0xa8, 0xb0, 0xdf, 0xbb, 0xa8, 0x45, 0xb1,
+ 0x59, 0x4c, 0xa9, 0x05, 0x80, 0x35, 0x6c, 0xbb, 0x16, 0xa1, 0x0d, 0x6c, 0x16, 0xd3, 0xea, 0x18,
+ 0x8c, 0xf2, 0x67, 0xb0, 0xd8, 0x2c, 0x0e, 0xdd, 0xff, 0x8b, 0x94, 0x7c, 0xb1, 0xc1, 0x8f, 0x99,
+ 0xcb, 0x30, 0xb6, 0xbf, 0x5d, 0xdf, 0x5d, 0x5f, 0xad, 0x6d, 0xd4, 0xd6, 0xd7, 0x8a, 0x37, 0xe6,
+ 0xc6, 0xcf, 0x9f, 0x97, 0xe3, 0x55, 0x6a, 0x11, 0xd2, 0x2b, 0xfb, 0x1f, 0x14, 0x95, 0xb9, 0xd1,
+ 0xf3, 0xe7, 0x65, 0xf6, 0x93, 0xc5, 0xff, 0xfa, 0xfa, 0xe6, 0x66, 0x31, 0x35, 0x97, 0x39, 0x7f,
+ 0x5e, 0xe6, 0xbf, 0xd9, 0x4a, 0xa8, 0xef, 0xed, 0xec, 0xea, 0xac, 0x6b, 0x7a, 0x2e, 0x77, 0xfe,
+ 0xbc, 0x1c, 0x96, 0x99, 0xc3, 0xe7, 0xbf, 0x39, 0xd1, 0xd0, 0x5c, 0xfe, 0xfc, 0x79, 0x39, 0xaa,
+ 0x60, 0x94, 0x7b, 0xd5, 0xf7, 0xd6, 0x39, 0xe5, 0xb0, 0xa0, 0x0c, 0xca, 0x8c, 0x92, 0xff, 0xe6,
+ 0x94, 0x23, 0x82, 0x32, 0xac, 0x50, 0xa7, 0x61, 0x64, 0x65, 0xff, 0x03, 0x7d, 0x77, 0xa7, 0x38,
+ 0x3a, 0x07, 0xe7, 0xcf, 0xcb, 0xb2, 0xc4, 0xec, 0x93, 0xb5, 0xb3, 0x86, 0xcc, 0xdc, 0xd8, 0xf9,
+ 0xf3, 0x72, 0x50, 0x54, 0x17, 0x00, 0x58, 0x9f, 0xea, 0xde, 0xce, 0x56, 0x6d, 0xb5, 0x98, 0x9d,
+ 0x2b, 0x9c, 0x3f, 0x2f, 0xc7, 0x6a, 0x98, 0x36, 0x78, 0x57, 0xd9, 0x01, 0x84, 0x36, 0x62, 0x55,
+ 0xf7, 0xff, 0x41, 0x81, 0xfc, 0x7a, 0x70, 0x7a, 0xc5, 0x35, 0x78, 0x0b, 0x4a, 0xb1, 0x59, 0x69,
+ 0x6b, 0x13, 0x53, 0x24, 0xe6, 0xb0, 0xa8, 0xa8, 0x79, 0xc8, 0xf2, 0x5b, 0xa0, 0x0d, 0x62, 0x59,
+ 0xc5, 0x94, 0x3a, 0x07, 0xd3, 0xbc, 0xb8, 0x85, 0x7c, 0xa3, 0xa1, 0x89, 0xef, 0x84, 0xf9, 0xc4,
+ 0x14, 0xd3, 0xcc, 0x40, 0xa2, 0xb6, 0x6d, 0xfc, 0x4c, 0xd4, 0x0f, 0xa9, 0x37, 0x61, 0x42, 0x7e,
+ 0xa6, 0x28, 0xbf, 0xfd, 0x25, 0xae, 0x53, 0x1c, 0x66, 0x50, 0xe2, 0x9d, 0x73, 0xe7, 0x6b, 0xca,
+ 0xe2, 0x08, 0x83, 0xda, 0x39, 0x3c, 0xa4, 0xd8, 0x67, 0xf8, 0xc1, 0x01, 0x4c, 0x71, 0x94, 0x49,
+ 0x53, 0x3f, 0x73, 0xfc, 0x06, 0xf6, 0x89, 0x51, 0xcc, 0xdc, 0xff, 0x24, 0x30, 0x8b, 0x2d, 0x44,
+ 0x8f, 0x99, 0x6a, 0xf7, 0xb7, 0xf7, 0xeb, 0xdc, 0x22, 0xb8, 0x6a, 0x45, 0x89, 0x19, 0x43, 0x75,
+ 0x3b, 0x34, 0x86, 0xea, 0xf6, 0x07, 0x4c, 0xd9, 0xda, 0xfa, 0xe3, 0xfd, 0xcd, 0xaa, 0x56, 0x4c,
+ 0x09, 0x65, 0xcb, 0x22, 0x53, 0xe6, 0xea, 0xce, 0xf6, 0x5a, 0x6d, 0xaf, 0xb6, 0xb3, 0x5d, 0x65,
+ 0x13, 0xcf, 0x95, 0x19, 0xab, 0x52, 0x97, 0x60, 0x66, 0xad, 0xa6, 0xad, 0xaf, 0xb2, 0x22, 0x9b,
+ 0x6f, 0x7d, 0x47, 0xd3, 0x9f, 0xd4, 0x1e, 0x3f, 0x59, 0xd7, 0x8a, 0x99, 0xb9, 0x89, 0xf3, 0xe7,
+ 0xe5, 0x7c, 0x5b, 0x65, 0x7b, 0x7f, 0x3e, 0x2b, 0x3b, 0x9a, 0xbe, 0xb9, 0xf3, 0x0b, 0xeb, 0x5a,
+ 0xb1, 0x28, 0xfa, 0xb7, 0x55, 0xaa, 0xf3, 0x30, 0xb6, 0xf7, 0xc1, 0xee, 0xba, 0xbe, 0x55, 0xd5,
+ 0xde, 0x5b, 0xdf, 0x2b, 0x96, 0xc5, 0x50, 0x44, 0x49, 0x9d, 0x05, 0xe0, 0x8d, 0x9b, 0xb5, 0xad,
+ 0xda, 0x5e, 0xf1, 0xdd, 0xb9, 0xec, 0xf9, 0xf3, 0xf2, 0x30, 0x2f, 0xac, 0x34, 0x7e, 0xf0, 0xe9,
+ 0x82, 0xf2, 0xa3, 0x4f, 0x17, 0x94, 0x7f, 0xfd, 0x74, 0x41, 0xf9, 0xce, 0x67, 0x0b, 0x37, 0x7e,
+ 0xf4, 0xd9, 0xc2, 0x8d, 0x7f, 0xfc, 0x6c, 0xe1, 0xc6, 0x37, 0xb6, 0x63, 0xf9, 0x5b, 0x2d, 0x88,
+ 0x2c, 0x9b, 0xe8, 0x80, 0x2e, 0x87, 0x71, 0xe6, 0x0d, 0xc3, 0xf5, 0x70, 0xbc, 0xd8, 0x40, 0xc4,
+ 0x59, 0xb6, 0x5d, 0xb6, 0x8f, 0xa0, 0xd1, 0x9f, 0xb6, 0xe1, 0xb9, 0xde, 0xc1, 0x08, 0xff, 0x24,
+ 0xf6, 0x8b, 0xff, 0x15, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x24, 0x31, 0x0d, 0xfd, 0x46, 0x00, 0x00,
}
func (this *Params) Equal(that interface{}) bool {
diff --git a/chain/exchange/types/expected_keepers.go b/chain/exchange/types/expected_keepers.go
index 827180b1..00acd6d6 100644
--- a/chain/exchange/types/expected_keepers.go
+++ b/chain/exchange/types/expected_keepers.go
@@ -30,10 +30,28 @@ type BankKeeper interface {
// OracleKeeper defines the expected oracle keeper methods.
type OracleKeeper interface {
GetPrice(ctx sdk.Context, oracletype oracletypes.OracleType, base string, quote string) *sdkmath.LegacyDec
- GetPricePairState(ctx sdk.Context, oracletype oracletypes.OracleType, base, quote string, scalingOptions *oracletypes.ScalingOptions) *oracletypes.PricePairState
- GetCumulativePrice(ctx sdk.Context, oracleType oracletypes.OracleType, base string, quote string) *sdkmath.LegacyDec
- GetHistoricalPriceRecords(ctx sdk.Context, oracleType oracletypes.OracleType, symbol string, from int64) (entry *oracletypes.PriceRecords, omitted bool)
- GetMixedHistoricalPriceRecords(ctx sdk.Context, baseOracleType, quoteOracleType oracletypes.OracleType, baseSymbol, quoteSymbol string, from int64) (mixed *oracletypes.PriceRecords, ok bool)
+ GetPricePairState(
+ ctx sdk.Context,
+ oracletype oracletypes.OracleType,
+ base, quote string, scalingOptions *oracletypes.ScalingOptions,
+ ) *oracletypes.PricePairState
+ GetCumulativePrice(
+ ctx sdk.Context,
+ oracleType oracletypes.OracleType,
+ base, quote string,
+ ) (baseCumulative, quoteCumulative *sdkmath.LegacyDec)
+ GetHistoricalPriceRecords(
+ ctx sdk.Context,
+ oracleType oracletypes.OracleType,
+ symbol string,
+ from int64,
+ ) (entry *oracletypes.PriceRecords, omitted bool)
+ GetMixedHistoricalPriceRecords(
+ ctx sdk.Context,
+ baseOracleType, quoteOracleType oracletypes.OracleType,
+ baseSymbol, quoteSymbol string,
+ from int64,
+ ) (mixed *oracletypes.PriceRecords, ok bool)
GetStandardDeviationForPriceRecords(priceRecords []*oracletypes.PriceRecord) *sdkmath.LegacyDec
GetProviderInfo(ctx sdk.Context, provider string) *oracletypes.ProviderInfo
GetProviderPrice(ctx sdk.Context, provider, symbol string) *sdkmath.LegacyDec
@@ -86,3 +104,8 @@ type DowntimeKeeper interface {
GetLastDowntimeOfLength(ctx sdk.Context, dur downtimetypes.Downtime) (time.Time, error)
GetLastBlockTime(ctx sdk.Context) (time.Time, error)
}
+
+type PermissionsKeeper interface {
+ IsEnforcedRestrictionsDenom(ctx sdk.Context, denom string) bool
+ SendRestrictionFn(ctx context.Context, fromAddr, toAddr sdk.AccAddress, amount sdk.Coin) (newToAddr sdk.AccAddress, err error)
+}
diff --git a/chain/exchange/types/key.go b/chain/exchange/types/key.go
index f6307cec..7e6a904e 100644
--- a/chain/exchange/types/key.go
+++ b/chain/exchange/types/key.go
@@ -124,6 +124,8 @@ var (
OrderExpirationsPrefix = []byte{0x85} // prefix to store order expirations
OrderExpirationMarketsPrefix = []byte{0x86} // prefix to store markets with order expirations
PostOnlyModeCancellationKey = []byte{0x87} // key to mark post-only mode cancellation for next BeginBlock
+
+ TransientAtomicPerpetualVwapPrefix = []byte{0x88} // prefix for transient atomic perpetual market VWAP data
)
func GetSubaccountCidKey(subaccountID common.Hash, cid string) []byte {
@@ -590,3 +592,8 @@ func GetOrderExpirationMarketPrefix(blockNumber int64) []byte {
return buf
}
+
+// GetTransientAtomicPerpetualVwapKey returns the transient store key for atomic perpetual VWAP data for a market
+func GetTransientAtomicPerpetualVwapKey(marketID common.Hash) []byte {
+ return append(TransientAtomicPerpetualVwapPrefix, marketID.Bytes()...)
+}
diff --git a/chain/exchange/types/msgs.go b/chain/exchange/types/msgs.go
index 9f0bccd4..d5120105 100644
--- a/chain/exchange/types/msgs.go
+++ b/chain/exchange/types/msgs.go
@@ -2096,6 +2096,8 @@ func (msg *MsgAuthorizeStakeGrants) ValidateBasic() error {
return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender)
}
+ seenGrantees := make(map[string]struct{})
+
for idx := range msg.Grants {
grant := msg.Grants[idx]
@@ -2103,6 +2105,11 @@ func (msg *MsgAuthorizeStakeGrants) ValidateBasic() error {
return errors.Wrap(sdkerrors.ErrInvalidAddress, grant.Grantee)
}
+ if _, ok := seenGrantees[grant.Grantee]; ok {
+ return errors.Wrapf(ErrInvalidStakeGrant, "duplicate grantee %s in MsgAuthorizeStakeGrants", grant.Grantee)
+ }
+ seenGrantees[grant.Grantee] = struct{}{}
+
if grant.Amount.IsNegative() || grant.Amount.GT(MaxTokenInt) {
return errors.Wrap(ErrInvalidStakeGrant, grant.Amount.String())
diff --git a/chain/exchange/types/proposal.go b/chain/exchange/types/proposal.go
index bf2e5e2f..58c95894 100644
--- a/chain/exchange/types/proposal.go
+++ b/chain/exchange/types/proposal.go
@@ -5,13 +5,13 @@ import (
"cosmossdk.io/errors"
"cosmossdk.io/math"
+ sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
+ gov "github.com/cosmos/cosmos-sdk/x/gov/types"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types"
chaintypes "github.com/InjectiveLabs/sdk-go/chain/types"
- sdk "github.com/cosmos/cosmos-sdk/types"
- gov "github.com/cosmos/cosmos-sdk/x/gov/types"
)
// constants
@@ -288,13 +288,8 @@ func (p *SpotMarketParamUpdateProposal) ValidateBasic() error {
}
if p.AdminInfo != nil {
- if p.AdminInfo.Admin != "" {
- if _, err := sdk.AccAddressFromBech32(p.AdminInfo.Admin); err != nil {
- return errors.Wrap(ErrInvalidAddress, err.Error())
- }
- }
- if p.AdminInfo.AdminPermissions > MaxPerm {
- return ErrInvalidPermissions
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
}
}
@@ -430,6 +425,12 @@ func (p *SpotMarketLaunchProposal) ValidateBasic() error {
return errors.Wrap(ErrInvalidDenomDecimal, "quote decimals is invalid")
}
+ if p.AdminInfo != nil {
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
+ }
+ }
+
return govtypes.ValidateAbstract(p)
}
@@ -532,13 +533,8 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error {
}
if p.AdminInfo != nil {
- if p.AdminInfo.Admin != "" {
- if _, err := sdk.AccAddressFromBech32(p.AdminInfo.Admin); err != nil {
- return errors.Wrap(ErrInvalidAddress, err.Error())
- }
- }
- if p.AdminInfo.AdminPermissions > MaxPerm {
- return ErrInvalidPermissions
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
}
}
@@ -681,9 +677,9 @@ func (p *OracleParams) ValidateBasic() error {
return ErrSameOracles
}
switch p.OracleType {
- case oracletypes.OracleType_Band, oracletypes.OracleType_PriceFeed, oracletypes.OracleType_Coinbase, oracletypes.OracleType_Chainlink, oracletypes.OracleType_Razor,
- oracletypes.OracleType_Dia, oracletypes.OracleType_API3, oracletypes.OracleType_Uma, oracletypes.OracleType_Pyth, oracletypes.OracleType_BandIBC, oracletypes.OracleType_Provider,
- oracletypes.OracleType_Stork:
+ case oracletypes.OracleType_PriceFeed, oracletypes.OracleType_Coinbase, oracletypes.OracleType_Chainlink, oracletypes.OracleType_Razor,
+ oracletypes.OracleType_Dia, oracletypes.OracleType_API3, oracletypes.OracleType_Uma, oracletypes.OracleType_Pyth, oracletypes.OracleType_Provider,
+ oracletypes.OracleType_Stork, oracletypes.OracleType_ChainlinkDataStreams:
default:
return errors.Wrap(ErrInvalidOracleType, p.OracleType.String())
@@ -803,6 +799,12 @@ func (p *PerpetualMarketLaunchProposal) ValidateBasic() error {
return errors.Wrap(ErrInvalidNotional, err.Error())
}
+ if p.AdminInfo != nil {
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
+ }
+ }
+
return govtypes.ValidateAbstract(p)
}
@@ -898,6 +900,12 @@ func (p *ExpiryFuturesMarketLaunchProposal) ValidateBasic() error {
return errors.Wrap(ErrInvalidNotional, err.Error())
}
+ if p.AdminInfo != nil {
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
+ }
+ }
+
return govtypes.ValidateAbstract(p)
}
@@ -1643,3 +1651,15 @@ func (p *DenomMinNotionalProposal) ValidateBasic() error {
}
return govtypes.ValidateAbstract(p)
}
+
+func (a *AdminInfo) ValidateBasic() error {
+ if a.Admin != "" {
+ if _, err := sdk.AccAddressFromBech32(a.Admin); err != nil {
+ return errors.Wrap(ErrInvalidAddress, err.Error())
+ }
+ }
+ if a.AdminPermissions > MaxPerm {
+ return ErrInvalidPermissions
+ }
+ return nil
+}
diff --git a/chain/exchange/types/query.pb.go b/chain/exchange/types/query.pb.go
index 932433b5..279ab383 100644
--- a/chain/exchange/types/query.pb.go
+++ b/chain/exchange/types/query.pb.go
@@ -7477,397 +7477,397 @@ func init() {
}
var fileDescriptor_523db28b8af54781 = []byte{
- // 6229 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7d, 0x8c, 0x1c, 0xc9,
- 0x55, 0xb8, 0x7b, 0xf6, 0xfb, 0xed, 0x77, 0xed, 0x7a, 0xbd, 0x1e, 0xdf, 0xf9, 0xa3, 0x1d, 0xe7,
- 0x7c, 0xce, 0x79, 0xd7, 0x5e, 0x7f, 0x7f, 0x7b, 0x67, 0xd7, 0x6b, 0xef, 0x79, 0xd7, 0x76, 0x66,
- 0xd7, 0x77, 0xc9, 0x25, 0xbf, 0xdf, 0xa4, 0x77, 0xa6, 0x77, 0xb6, 0xe3, 0x9e, 0xe9, 0xf1, 0x74,
- 0xcf, 0x9e, 0x17, 0xe3, 0x08, 0x08, 0x28, 0x01, 0x24, 0x40, 0x8a, 0x00, 0x21, 0x10, 0x02, 0xfe,
- 0xe0, 0x0f, 0x44, 0x84, 0x44, 0xc4, 0x87, 0x12, 0x29, 0x51, 0x38, 0x04, 0xe1, 0x82, 0xe0, 0x20,
- 0x47, 0x40, 0x11, 0x1c, 0xd1, 0x5d, 0x20, 0xca, 0x09, 0x24, 0xfe, 0x42, 0x42, 0xa0, 0x80, 0xba,
- 0xea, 0x55, 0x4d, 0x7f, 0x4f, 0xf5, 0xec, 0x9e, 0x7c, 0x81, 0xbf, 0xbc, 0x53, 0x5d, 0xef, 0xd5,
- 0x7b, 0xf5, 0x5e, 0xbd, 0x7a, 0x55, 0xf5, 0xde, 0x33, 0x7c, 0xd0, 0xa8, 0x7e, 0x52, 0x2f, 0x3a,
- 0xc6, 0xa6, 0x3e, 0xad, 0x3f, 0x2a, 0x6e, 0x68, 0xd5, 0xb2, 0x3e, 0xbd, 0x79, 0x72, 0x4d, 0x77,
- 0xb4, 0x93, 0xd3, 0x0f, 0x1b, 0x7a, 0x7d, 0x6b, 0xaa, 0x56, 0xb7, 0x1c, 0x8b, 0x64, 0x45, 0xbf,
- 0x29, 0xde, 0x6f, 0x0a, 0xfb, 0x65, 0x9f, 0x29, 0x5b, 0x56, 0xd9, 0xd4, 0xa7, 0xb5, 0x9a, 0x31,
- 0xad, 0x55, 0xab, 0x96, 0xa3, 0x39, 0x86, 0x55, 0xb5, 0x19, 0x64, 0xf6, 0xf9, 0x84, 0x11, 0x04,
- 0x2a, 0xd6, 0xf5, 0x68, 0x42, 0xd7, 0xb2, 0x5e, 0xd5, 0x6d, 0x83, 0x23, 0x3d, 0xd2, 0xec, 0x69,
- 0xd5, 0xb5, 0xa2, 0xd9, 0xec, 0xc7, 0x7e, 0x62, 0xb7, 0xf1, 0xb2, 0x55, 0xb6, 0xe8, 0x9f, 0xd3,
- 0xee, 0x5f, 0xac, 0x55, 0xbd, 0x0b, 0xb0, 0xd2, 0x58, 0xd3, 0x8a, 0x45, 0xab, 0x51, 0x75, 0xc8,
- 0x04, 0x74, 0x3b, 0x75, 0xad, 0xa4, 0xd7, 0x27, 0x95, 0x83, 0xca, 0xd1, 0xbe, 0x3c, 0xfe, 0x22,
- 0xcf, 0xc3, 0x88, 0x2d, 0x7a, 0x15, 0xaa, 0x56, 0xb5, 0xa8, 0x4f, 0x66, 0x0e, 0x2a, 0x47, 0x07,
- 0xf3, 0xc3, 0xcd, 0xf6, 0x3b, 0x6e, 0xb3, 0xfa, 0x09, 0x78, 0xe6, 0xc3, 0xee, 0x5c, 0x35, 0xb1,
- 0xde, 0xad, 0x97, 0xf4, 0xba, 0x9d, 0xd7, 0x1f, 0x36, 0x74, 0xdb, 0x21, 0x87, 0x61, 0xd0, 0x83,
- 0xca, 0x28, 0xe1, 0x48, 0x03, 0xcd, 0xc6, 0xc5, 0x12, 0xd9, 0x07, 0x7d, 0x15, 0xad, 0xfe, 0x40,
- 0xa7, 0x1d, 0x32, 0xb4, 0x43, 0x2f, 0x6b, 0x58, 0x2c, 0xa9, 0x5f, 0x55, 0xe0, 0xd9, 0x98, 0x21,
- 0xec, 0x9a, 0x55, 0xb5, 0x75, 0x72, 0x07, 0x60, 0xad, 0xb1, 0x55, 0xb0, 0x68, 0xeb, 0xa4, 0x72,
- 0xb0, 0xe3, 0x68, 0xff, 0xcc, 0xf4, 0x54, 0xbc, 0xd4, 0xa6, 0x02, 0x98, 0xe6, 0x35, 0x47, 0xcb,
- 0xf7, 0xad, 0x35, 0xb6, 0x18, 0x5e, 0x72, 0x0f, 0xfa, 0x6d, 0xdd, 0x34, 0x39, 0xc2, 0x4c, 0x7b,
- 0x08, 0xc1, 0xc5, 0xc1, 0x30, 0xaa, 0xbf, 0xa3, 0xc0, 0x91, 0x40, 0x9f, 0x35, 0xcb, 0x7a, 0xb0,
- 0xac, 0x3b, 0x5a, 0x49, 0x73, 0xb4, 0x97, 0x0d, 0x67, 0x63, 0x99, 0xf2, 0x4b, 0x56, 0xa0, 0xb7,
- 0x82, 0xad, 0x74, 0xaa, 0xfa, 0x67, 0xce, 0xa5, 0x18, 0xd8, 0x8b, 0x34, 0x2f, 0x10, 0x25, 0xce,
- 0x2f, 0x19, 0x87, 0x2e, 0xc3, 0xce, 0x35, 0xb6, 0x26, 0x3b, 0x0e, 0x2a, 0x47, 0x7b, 0xf3, 0xec,
- 0x87, 0xfa, 0x0c, 0x64, 0xe9, 0xa4, 0xdf, 0xc0, 0x11, 0xef, 0x69, 0x75, 0xad, 0xc2, 0xa5, 0xaa,
- 0x16, 0x60, 0x5f, 0xe4, 0x57, 0x14, 0xc8, 0x75, 0xe8, 0xae, 0xd1, 0x16, 0x64, 0x41, 0x4d, 0x62,
- 0x81, 0xc1, 0xe6, 0x3a, 0xbf, 0xf6, 0xd6, 0x81, 0x5d, 0x79, 0x84, 0x53, 0x3f, 0xa7, 0xc0, 0xfe,
- 0x80, 0xd0, 0xe7, 0xf5, 0x9a, 0x65, 0x1b, 0x4e, 0x3a, 0xcd, 0x5a, 0x02, 0x68, 0xfe, 0xa6, 0xac,
- 0xf7, 0xcf, 0x7c, 0x50, 0x6e, 0x42, 0x29, 0x45, 0x4a, 0xde, 0x03, 0xaf, 0xbe, 0xab, 0xc0, 0x81,
- 0x58, 0xaa, 0x90, 0x77, 0x1d, 0x7a, 0x4b, 0xd8, 0x86, 0xaa, 0xb8, 0x98, 0x34, 0x5e, 0x0b, 0x74,
- 0x53, 0xbc, 0xe1, 0x46, 0xd5, 0xa9, 0x6f, 0xe5, 0x05, 0xea, 0xec, 0x27, 0x60, 0xd0, 0xf7, 0x89,
- 0x8c, 0x40, 0xc7, 0x03, 0x7d, 0x0b, 0x27, 0xc1, 0xfd, 0x93, 0x5c, 0x80, 0xae, 0x4d, 0xcd, 0x6c,
- 0xe8, 0xc8, 0xf6, 0xe1, 0x24, 0x32, 0x10, 0x57, 0x9e, 0x41, 0x5c, 0xcc, 0x9c, 0x57, 0xd4, 0xfd,
- 0xb8, 0xb2, 0xb9, 0x8c, 0x73, 0x9a, 0xa9, 0x55, 0x8b, 0xba, 0xd0, 0x81, 0x75, 0x5c, 0x96, 0xe1,
- 0xef, 0x38, 0x13, 0x37, 0xa0, 0x77, 0x0d, 0xdb, 0x70, 0x26, 0x12, 0x49, 0x40, 0x78, 0x54, 0x04,
- 0x01, 0xaa, 0x9e, 0x43, 0x5d, 0x9b, 0x2d, 0x97, 0xeb, 0x7a, 0x59, 0x73, 0xf4, 0x97, 0x2c, 0xb3,
- 0x51, 0xd1, 0xb9, 0x1a, 0x4c, 0x42, 0x0f, 0x17, 0x2f, 0xe3, 0x9d, 0xff, 0x54, 0x1b, 0xc8, 0x40,
- 0x08, 0x10, 0xe9, 0xbb, 0x0f, 0xa3, 0x1a, 0xff, 0x54, 0xd8, 0xa4, 0xdf, 0x38, 0xa1, 0x47, 0x93,
- 0x08, 0x65, 0x2b, 0x15, 0x91, 0x8d, 0x68, 0x7e, 0xec, 0xb6, 0xfa, 0xd1, 0xe8, 0x61, 0x85, 0xde,
- 0x66, 0xa1, 0x17, 0x29, 0x64, 0xa3, 0xf5, 0xe5, 0xc5, 0x6f, 0xf2, 0x2c, 0x80, 0x58, 0xa8, 0xcc,
- 0xf0, 0xf4, 0xe5, 0xfb, 0xf8, 0x4a, 0xb5, 0xd5, 0xff, 0xe0, 0xa6, 0x30, 0x8c, 0x1b, 0x79, 0x72,
- 0x60, 0x6f, 0x93, 0x27, 0xbe, 0x36, 0xfc, 0xbc, 0x9d, 0x4f, 0xe2, 0x4d, 0x20, 0x9e, 0x65, 0xb0,
- 0x7c, 0xca, 0x8a, 0x56, 0xbd, 0x94, 0xdf, 0xa3, 0x45, 0x7e, 0xb5, 0xc9, 0x1a, 0x4c, 0x36, 0x47,
- 0x45, 0x06, 0xf8, 0xa0, 0x99, 0x94, 0x13, 0x3a, 0x21, 0x30, 0x79, 0x9b, 0x6d, 0xf5, 0x3a, 0x1c,
- 0xf2, 0xb3, 0xee, 0x83, 0xc2, 0xb9, 0xf5, 0x19, 0x3a, 0x25, 0xb0, 0x91, 0x98, 0xa0, 0x26, 0x61,
- 0xc0, 0x19, 0x5c, 0x80, 0x6e, 0x46, 0x3a, 0xda, 0xae, 0x44, 0xca, 0xbd, 0xd3, 0xc3, 0x2d, 0x18,
- 0x83, 0x56, 0x4f, 0xc0, 0x24, 0x1d, 0x6d, 0x5e, 0xaf, 0x5a, 0x95, 0x79, 0xbd, 0x68, 0x54, 0x34,
- 0x93, 0x93, 0x39, 0x0e, 0x5d, 0x25, 0xb7, 0x19, 0x49, 0x64, 0x3f, 0xd4, 0x33, 0xb0, 0x37, 0x02,
- 0x02, 0xc9, 0x9a, 0x84, 0x9e, 0x12, 0x6b, 0xa2, 0x40, 0x9d, 0x79, 0xfe, 0x53, 0x3d, 0x15, 0x01,
- 0x26, 0x94, 0x6d, 0x02, 0xba, 0x29, 0x72, 0xae, 0x6a, 0xf8, 0x4b, 0x75, 0xd0, 0xbc, 0x07, 0x80,
- 0x70, 0xb0, 0x97, 0x60, 0x88, 0xf6, 0x2b, 0xe0, 0x18, 0x5c, 0x75, 0x9e, 0x4f, 0x36, 0x21, 0x1e,
- 0x54, 0x38, 0x19, 0x83, 0x25, 0x6f, 0xa3, 0x3a, 0x97, 0x24, 0x01, 0x41, 0xb3, 0x7f, 0x11, 0x28,
- 0xc1, 0x45, 0x60, 0xc0, 0xe1, 0x44, 0x24, 0xc8, 0x43, 0x0e, 0x7a, 0xda, 0x5d, 0xd3, 0x1c, 0x50,
- 0x7d, 0x25, 0xe4, 0x79, 0x70, 0x3b, 0x99, 0x66, 0x0f, 0x12, 0xd2, 0xce, 0x78, 0xa5, 0xad, 0xc5,
- 0x6d, 0x70, 0x82, 0x83, 0x6b, 0xbe, 0x9d, 0x44, 0xda, 0x84, 0x0b, 0x20, 0xf5, 0x1e, 0xec, 0x61,
- 0x43, 0xd4, 0x2c, 0x87, 0x31, 0xe8, 0xd5, 0x0b, 0xdb, 0xd1, 0x9c, 0x86, 0xcd, 0x3d, 0x3f, 0xf6,
- 0xab, 0x95, 0x01, 0xfa, 0x38, 0x2a, 0xb5, 0x0f, 0xa3, 0xd8, 0xf4, 0x7b, 0x58, 0x47, 0x3e, 0xe1,
- 0xc9, 0xfb, 0xac, 0xc0, 0x90, 0xe7, 0x60, 0xea, 0x19, 0x98, 0x08, 0x60, 0x97, 0x5a, 0xd7, 0x1f,
- 0x0d, 0xb1, 0x29, 0x68, 0xba, 0x0a, 0xdd, 0xac, 0x1b, 0x4e, 0xa0, 0x2c, 0x49, 0x08, 0xa5, 0x7e,
- 0x33, 0x83, 0x8b, 0xcb, 0xfd, 0x26, 0x3c, 0x2c, 0x19, 0xaa, 0x5c, 0xa9, 0x9b, 0x46, 0xc5, 0x60,
- 0x4e, 0x47, 0x67, 0x9e, 0xfd, 0x20, 0xf3, 0x00, 0xd4, 0xab, 0x2c, 0xd8, 0x46, 0x49, 0xa7, 0x1e,
- 0xd7, 0xd0, 0xcc, 0x91, 0x24, 0xa2, 0xe8, 0xa0, 0x2b, 0x46, 0x49, 0xcf, 0xf7, 0x59, 0xfc, 0x4f,
- 0x52, 0x80, 0xbd, 0x14, 0x5d, 0xa1, 0xd8, 0xa8, 0x34, 0x4c, 0xcd, 0x85, 0x2c, 0x54, 0x2d, 0xf7,
- 0xe4, 0xa1, 0x99, 0x93, 0x9d, 0x2e, 0x21, 0xb9, 0xc3, 0xae, 0xf3, 0xf2, 0xad, 0xb7, 0x0e, 0xec,
- 0x2b, 0x5a, 0x76, 0xc5, 0xb2, 0xed, 0xd2, 0x83, 0x29, 0xc3, 0x9a, 0xae, 0x68, 0xce, 0xc6, 0xd4,
- 0x92, 0x5e, 0xd6, 0x8a, 0x5b, 0xf3, 0x7a, 0x31, 0xbf, 0x87, 0x62, 0x99, 0x13, 0x48, 0xee, 0x20,
- 0x8e, 0xc8, 0x01, 0x1e, 0x36, 0xb4, 0xaa, 0x63, 0x38, 0x5b, 0x93, 0x5d, 0xed, 0x0f, 0xf0, 0x61,
- 0xc4, 0xa1, 0xfe, 0xa1, 0x82, 0x06, 0x28, 0x30, 0xb1, 0x28, 0xb7, 0xdb, 0x30, 0xb2, 0xd6, 0xd8,
- 0xb2, 0x0b, 0xb5, 0xba, 0x51, 0xd4, 0x0b, 0xa6, 0xbe, 0xa9, 0x9b, 0xa8, 0x54, 0x87, 0x92, 0x26,
- 0x6b, 0xc9, 0xed, 0x98, 0x1f, 0x72, 0x41, 0xef, 0xb9, 0x90, 0xf4, 0x37, 0x59, 0x86, 0x51, 0xd7,
- 0x15, 0xf7, 0x63, 0xcb, 0xc8, 0x62, 0x1b, 0xa6, 0xb0, 0x4d, 0x74, 0xea, 0xe7, 0x15, 0x18, 0x5a,
- 0x68, 0x98, 0x66, 0x53, 0x5d, 0xb6, 0xab, 0x66, 0xe4, 0x63, 0x30, 0x5a, 0x31, 0x4a, 0x48, 0x9f,
- 0x56, 0x2d, 0x15, 0x1c, 0x6b, 0x0d, 0xbd, 0xb6, 0x63, 0x89, 0x56, 0xcb, 0x28, 0x51, 0xc2, 0x66,
- 0xab, 0xa5, 0xd5, 0xbb, 0x39, 0x74, 0x58, 0x87, 0x2a, 0x9e, 0x56, 0x6b, 0x4d, 0xfd, 0xac, 0x82,
- 0x0e, 0x94, 0x9f, 0xe8, 0x6d, 0x9a, 0x02, 0x32, 0x03, 0x13, 0xaf, 0x1a, 0xce, 0x46, 0x21, 0x4c,
- 0x38, 0x3b, 0x47, 0x10, 0xf7, 0xeb, 0xb2, 0x9f, 0x94, 0x12, 0xba, 0x46, 0x21, 0x4a, 0x50, 0xec,
- 0xf3, 0x41, 0x13, 0x92, 0xc8, 0xbd, 0x1f, 0x4b, 0xd3, 0x8c, 0x54, 0x50, 0xb5, 0x02, 0xdf, 0x65,
- 0x16, 0x6d, 0x3c, 0x53, 0x99, 0x58, 0xa6, 0xb4, 0xc8, 0xe9, 0xf5, 0xec, 0x43, 0x7e, 0xdd, 0x48,
- 0xc3, 0x12, 0x37, 0x43, 0x3f, 0x21, 0x4e, 0x43, 0x7c, 0xb5, 0xd8, 0xb9, 0xad, 0x5b, 0x9a, 0xbd,
- 0xd1, 0xdc, 0x34, 0x13, 0xd9, 0x0a, 0x6d, 0x53, 0x99, 0x88, 0x6d, 0xea, 0x10, 0x0c, 0x30, 0xd3,
- 0xb4, 0x41, 0x11, 0x4f, 0x76, 0x50, 0x89, 0xf7, 0xd3, 0x36, 0x36, 0x96, 0x6a, 0xf2, 0xe3, 0x4f,
- 0x04, 0x19, 0xc8, 0xee, 0x22, 0x74, 0xfb, 0xce, 0xe1, 0x27, 0x93, 0xd8, 0x5d, 0xad, 0x1b, 0x95,
- 0x8a, 0x5e, 0x72, 0xd1, 0x2d, 0xb9, 0x86, 0x82, 0xe2, 0xcc, 0x23, 0x02, 0x71, 0xb5, 0xb0, 0x4a,
- 0x2f, 0x25, 0x9a, 0x63, 0xee, 0x18, 0xcb, 0xaa, 0x09, 0x1f, 0x60, 0xae, 0x04, 0x6b, 0x99, 0x2d,
- 0x95, 0xea, 0xba, 0x6d, 0xa7, 0x1c, 0xe9, 0x39, 0x18, 0xe6, 0xc3, 0x68, 0x0c, 0x01, 0x8e, 0x35,
- 0xa4, 0xf9, 0xd0, 0xaa, 0xbf, 0x9c, 0x81, 0xdd, 0x91, 0x1c, 0xbb, 0x27, 0x35, 0xaa, 0x6d, 0x0c,
- 0x37, 0x35, 0xad, 0xbb, 0x5a, 0x99, 0x56, 0x06, 0xe1, 0x3a, 0x09, 0xc2, 0x30, 0x67, 0xe4, 0xa1,
- 0x05, 0x90, 0x8b, 0x60, 0xdd, 0x30, 0x4d, 0x6d, 0xcd, 0x64, 0xfb, 0x91, 0x2c, 0x02, 0x0e, 0xd4,
- 0xbc, 0x3f, 0xe8, 0xf4, 0xdc, 0x1f, 0xb8, 0xd6, 0xa3, 0xa9, 0x4d, 0x6c, 0xcb, 0xc0, 0x1d, 0xcc,
- 0x55, 0x18, 0xf7, 0xb4, 0x5a, 0x34, 0x4a, 0x93, 0xdd, 0xec, 0xb4, 0x5a, 0x34, 0x4a, 0xea, 0x27,
- 0xd1, 0xd7, 0x0a, 0x4b, 0x7b, 0xe7, 0x35, 0xab, 0x0e, 0x47, 0x5a, 0xc8, 0x7d, 0xe7, 0xc7, 0xbc,
- 0xe2, 0x59, 0xc2, 0x7e, 0xbb, 0x2d, 0xe5, 0xe4, 0xfc, 0xa7, 0xe2, 0x59, 0x7b, 0x41, 0x78, 0xe1,
- 0x81, 0xf5, 0x09, 0xc3, 0xe5, 0x51, 0xa5, 0x96, 0xbb, 0x74, 0x2f, 0xdf, 0x31, 0xc8, 0x22, 0x0c,
- 0xad, 0xe9, 0xb6, 0x53, 0x58, 0x6b, 0x6c, 0x21, 0x9a, 0x8c, 0x3c, 0x9a, 0x01, 0x17, 0x34, 0xd7,
- 0xd8, 0x62, 0xa8, 0x6e, 0xc3, 0x30, 0x45, 0x45, 0x6f, 0xd2, 0x18, 0xae, 0x0e, 0x79, 0x5c, 0x83,
- 0x2e, 0xec, 0x8a, 0x6e, 0x9a, 0x14, 0x99, 0x3a, 0x87, 0x0b, 0x75, 0x5e, 0xaf, 0x1b, 0x9b, 0xd4,
- 0x93, 0x68, 0x63, 0x0a, 0x7f, 0x34, 0x83, 0x62, 0x8f, 0xc7, 0xf2, 0xbf, 0x7e, 0x22, 0x7f, 0x8f,
- 0xab, 0x51, 0x73, 0x0e, 0x76, 0xc2, 0xad, 0x4d, 0x74, 0x48, 0x3b, 0xb6, 0xef, 0x90, 0xaa, 0x5f,
- 0x56, 0xe0, 0x60, 0x3c, 0xdd, 0x3f, 0x00, 0x5e, 0xe3, 0xaf, 0x74, 0xc0, 0x54, 0xa4, 0x7d, 0x5b,
- 0xb5, 0xe6, 0xb4, 0x6a, 0x51, 0x37, 0xef, 0xd7, 0x56, 0xad, 0xd9, 0x8a, 0x6b, 0x8e, 0x76, 0x6e,
- 0x4b, 0x9f, 0x87, 0xfe, 0x35, 0xcd, 0xd6, 0x0b, 0x1a, 0xc5, 0x9b, 0xc6, 0xbc, 0x83, 0x0b, 0xc7,
- 0xc8, 0x21, 0x0b, 0x30, 0xf0, 0xb0, 0x61, 0x39, 0x02, 0x4d, 0xa7, 0x3c, 0x9a, 0x7e, 0x0a, 0x88,
- 0x78, 0x96, 0xa0, 0xd7, 0x76, 0xea, 0x9a, 0xa3, 0x97, 0xd9, 0x19, 0x62, 0x68, 0xe6, 0x44, 0xd2,
- 0x44, 0xb2, 0x69, 0x31, 0xe9, 0x83, 0xca, 0x0a, 0xc2, 0xe5, 0x05, 0x06, 0xb2, 0x04, 0xc3, 0x75,
- 0x7d, 0x5d, 0xaf, 0xeb, 0xd5, 0xa2, 0x8e, 0xcb, 0xa2, 0x5b, 0x5e, 0xd1, 0x86, 0x04, 0x2c, 0x5b,
- 0x17, 0x7f, 0x9f, 0x81, 0xd3, 0x1e, 0xf1, 0x04, 0xb4, 0xec, 0x3d, 0x15, 0x52, 0x70, 0x7a, 0x3b,
- 0x76, 0x60, 0x7a, 0x3b, 0xdf, 0x8b, 0xe9, 0xed, 0x6a, 0x7f, 0x7a, 0xd7, 0xf1, 0xe2, 0x27, 0x7a,
- 0x76, 0x77, 0xce, 0xa1, 0xab, 0xc3, 0xb1, 0x88, 0x8d, 0xbd, 0xad, 0xf1, 0xa4, 0xdd, 0xba, 0xef,
- 0x65, 0x60, 0x1f, 0x6e, 0xfd, 0xcd, 0x81, 0xde, 0x27, 0xce, 0xdd, 0x25, 0x7a, 0xf8, 0x28, 0x1b,
- 0xd5, 0x34, 0x5a, 0x85, 0x20, 0x3e, 0xcf, 0xb0, 0xb3, 0x1d, 0xcf, 0xf0, 0x00, 0xf7, 0x0c, 0x5d,
- 0xcd, 0xe9, 0xcd, 0xf5, 0xbd, 0xfb, 0xd6, 0x01, 0xd6, 0x10, 0xed, 0x24, 0x76, 0xc7, 0x38, 0x89,
- 0x3d, 0x4d, 0x27, 0x71, 0x13, 0xef, 0xfe, 0xe2, 0xf4, 0x08, 0x37, 0x82, 0xbb, 0x01, 0xb7, 0xed,
- 0x9c, 0x84, 0xdb, 0x16, 0x25, 0x3b, 0xe1, 0xbc, 0x7d, 0x0a, 0x3e, 0x24, 0xa5, 0x57, 0xef, 0xd5,
- 0xf8, 0x3f, 0xad, 0x84, 0x1c, 0xa0, 0xa7, 0x78, 0x0c, 0x7c, 0x14, 0xf2, 0xa3, 0x62, 0x0e, 0x83,
- 0x3b, 0x3e, 0x0f, 0x3f, 0xc5, 0x1f, 0x40, 0x3c, 0x2e, 0xdc, 0x53, 0xbb, 0xcd, 0xf8, 0xac, 0x02,
- 0xe0, 0x71, 0x18, 0x9e, 0xe2, 0x3a, 0x57, 0xbf, 0xa2, 0xc0, 0xf8, 0x3d, 0xbd, 0x5e, 0xd3, 0x9d,
- 0x86, 0x66, 0xb2, 0x19, 0x59, 0x71, 0x34, 0x47, 0x27, 0xf7, 0xa0, 0x9f, 0xb3, 0x5d, 0x5d, 0xb7,
- 0xf0, 0x0a, 0x22, 0xf1, 0x29, 0x3b, 0x80, 0x66, 0xb1, 0xba, 0x6e, 0xe5, 0x71, 0xea, 0xdc, 0xbf,
- 0xc9, 0x7d, 0x18, 0x58, 0x6f, 0x54, 0x4b, 0x46, 0xb5, 0xcc, 0x50, 0xb2, 0x6b, 0xaa, 0x99, 0x14,
- 0x28, 0x17, 0x18, 0x78, 0xbe, 0x1f, 0xf1, 0xb8, 0x68, 0xd5, 0x2f, 0x76, 0xc0, 0xf8, 0x42, 0xc3,
- 0x34, 0x83, 0x82, 0x25, 0xf3, 0x81, 0xfb, 0x93, 0x17, 0x92, 0xef, 0xc0, 0xfd, 0xd0, 0xe2, 0x86,
- 0xed, 0xa3, 0x30, 0x54, 0xe3, 0x54, 0x78, 0xe9, 0x3e, 0x91, 0x82, 0x6e, 0x3a, 0xa3, 0xb7, 0x76,
- 0xe5, 0x07, 0x05, 0x26, 0x3a, 0x21, 0x1f, 0x71, 0x27, 0xc4, 0x69, 0xd4, 0x75, 0x9b, 0x21, 0xee,
- 0xa0, 0x88, 0x4f, 0x25, 0x21, 0xbe, 0xf1, 0xa8, 0x66, 0xd4, 0xb7, 0x16, 0x18, 0x54, 0x73, 0x9e,
- 0x6f, 0xed, 0x72, 0xe7, 0x84, 0x36, 0x52, 0xcc, 0x39, 0xa6, 0xb3, 0xb8, 0xfd, 0xa6, 0x30, 0xc1,
- 0x54, 0xb1, 0xd9, 0xe9, 0x21, 0xf2, 0x6a, 0xb1, 0x6b, 0x67, 0xae, 0x16, 0x73, 0xdd, 0xd0, 0xe9,
- 0xb2, 0xac, 0x9a, 0x78, 0xb6, 0x8d, 0x58, 0x95, 0x68, 0x09, 0x5e, 0x0c, 0xde, 0xec, 0x9d, 0x68,
- 0x75, 0x0d, 0x16, 0x12, 0xa5, 0xb8, 0xdf, 0xbb, 0x84, 0xf7, 0x42, 0xa1, 0x1e, 0x32, 0x87, 0x40,
- 0x23, 0xc6, 0x80, 0x08, 0x4a, 0x6f, 0x05, 0xf4, 0x2d, 0x3d, 0xa1, 0xfc, 0xd6, 0x2e, 0x87, 0x9b,
- 0x55, 0xb0, 0x03, 0xee, 0x1e, 0x52, 0xe4, 0xea, 0xe1, 0x83, 0xaf, 0x1f, 0x47, 0xf3, 0x79, 0x90,
- 0x7b, 0x29, 0xfc, 0x15, 0x9c, 0xfd, 0x94, 0xf3, 0x9b, 0x6e, 0xe2, 0xe9, 0xaa, 0xf9, 0x18, 0x45,
- 0x77, 0x58, 0x1a, 0xe2, 0x93, 0xe6, 0xad, 0x4b, 0x5d, 0x08, 0x05, 0x48, 0xdc, 0xb3, 0x6c, 0x83,
- 0xc6, 0x44, 0xa5, 0xc2, 0xf3, 0x49, 0xf8, 0x60, 0x0c, 0x9e, 0xc5, 0xaa, 0x5f, 0xda, 0xdb, 0x0f,
- 0x30, 0xb2, 0x61, 0x3a, 0x30, 0xd6, 0x8d, 0xf5, 0x75, 0x26, 0xf1, 0xf7, 0x6e, 0xd0, 0x17, 0x51,
- 0x39, 0x02, 0x01, 0x3c, 0x22, 0x78, 0x27, 0xcd, 0x64, 0x55, 0x43, 0xd2, 0xf3, 0x4c, 0xba, 0x58,
- 0x80, 0x5d, 0xee, 0x4e, 0xa8, 0xe3, 0xf2, 0x9b, 0x92, 0xb3, 0xa2, 0x1c, 0x0f, 0x3e, 0xe7, 0x32,
- 0x14, 0xea, 0x03, 0x78, 0xae, 0xa5, 0x70, 0xc4, 0x4d, 0x8a, 0x18, 0xd6, 0x5d, 0x4c, 0x1f, 0x48,
- 0x34, 0xb7, 0xde, 0xc1, 0x14, 0x3e, 0xd8, 0xa7, 0x33, 0x30, 0x1a, 0x92, 0x07, 0xd9, 0x03, 0x3d,
- 0x86, 0x5d, 0x30, 0xad, 0x6a, 0x99, 0x62, 0xee, 0xcd, 0x77, 0x1b, 0xf6, 0x92, 0x55, 0x2d, 0x6f,
- 0xdf, 0x65, 0x9e, 0x87, 0x7e, 0xbd, 0xea, 0xd4, 0xb7, 0x42, 0x57, 0x2d, 0xad, 0xcf, 0xcc, 0x14,
- 0x8e, 0x99, 0xdd, 0x3b, 0x30, 0xa2, 0x73, 0xa2, 0x0b, 0xe8, 0x82, 0xa7, 0x30, 0xe0, 0xc3, 0x02,
- 0x78, 0x99, 0xc2, 0xaa, 0x4f, 0xe0, 0x84, 0xbc, 0x8e, 0x8a, 0xcb, 0x4b, 0xdf, 0xdc, 0x1f, 0x4f,
- 0xdc, 0x91, 0x82, 0xd8, 0xfc, 0x42, 0xb8, 0x8a, 0xcb, 0x3a, 0xca, 0x39, 0x90, 0x31, 0x63, 0x15,
- 0xd4, 0xd0, 0x48, 0x78, 0x41, 0x6e, 0xe7, 0x36, 0x7c, 0x14, 0xd4, 0x50, 0xb6, 0x1f, 0x71, 0xcb,
- 0x1b, 0xb3, 0xcf, 0x4a, 0x91, 0xdc, 0x40, 0xcb, 0x1b, 0x8b, 0x03, 0xc9, 0x5e, 0xf6, 0x91, 0xdd,
- 0xce, 0xb6, 0xef, 0x23, 0x7d, 0x16, 0x4f, 0xca, 0x31, 0x3e, 0x93, 0x1c, 0xe5, 0x87, 0x13, 0x51,
- 0x88, 0xa8, 0x49, 0x9f, 0x7a, 0xb4, 0xe1, 0xc1, 0xf9, 0xad, 0x82, 0x38, 0xa3, 0xc4, 0x9a, 0x34,
- 0x1c, 0xb8, 0xe8, 0x0b, 0x71, 0x74, 0xad, 0xd1, 0x6c, 0x9b, 0x21, 0x8e, 0xcd, 0xb8, 0x49, 0x1e,
- 0x35, 0xc6, 0x11, 0xab, 0x17, 0x30, 0x5c, 0x28, 0x7a, 0x47, 0x43, 0x4a, 0xc6, 0xa1, 0x8b, 0x05,
- 0xb7, 0x2a, 0x34, 0xb8, 0x95, 0xfd, 0x50, 0xf7, 0x62, 0x3c, 0xc1, 0xb2, 0x55, 0x6a, 0x98, 0x3a,
- 0xf5, 0xfa, 0x78, 0xcc, 0xdb, 0x2b, 0x18, 0xff, 0xe0, 0xfb, 0x24, 0x62, 0x0d, 0x7c, 0xf3, 0x99,
- 0x18, 0x6e, 0x72, 0x93, 0x45, 0xf4, 0x32, 0x04, 0x38, 0x7f, 0x7b, 0x60, 0x37, 0x13, 0x5b, 0x60,
- 0xc3, 0x54, 0x4b, 0x18, 0x16, 0xf1, 0xde, 0x1a, 0xf5, 0x87, 0xde, 0xf7, 0x97, 0xbc, 0xfe, 0xaa,
- 0x56, 0x2f, 0xdd, 0xb3, 0x8c, 0xaa, 0x23, 0x15, 0xb7, 0x76, 0x1a, 0x26, 0x6a, 0x3a, 0x3b, 0x14,
- 0xd4, 0x2c, 0xcb, 0x2c, 0x38, 0x46, 0x45, 0xb7, 0x1d, 0xad, 0x52, 0xa3, 0x36, 0xb8, 0x23, 0x3f,
- 0x8e, 0x5f, 0xef, 0x59, 0x96, 0xb9, 0xca, 0xbf, 0xa9, 0x3f, 0xce, 0x9f, 0x35, 0x23, 0xc6, 0x44,
- 0x0e, 0xd7, 0x60, 0x1f, 0xdf, 0xfc, 0x68, 0x6c, 0x72, 0xa1, 0x4e, 0x7b, 0x15, 0x6a, 0xb4, 0x1b,
- 0xa3, 0x43, 0xce, 0xa4, 0x4e, 0x7a, 0xd5, 0xc0, 0x3b, 0x96, 0x7a, 0x08, 0x8d, 0x9b, 0xe7, 0xcb,
- 0x9c, 0x56, 0xa9, 0x69, 0x46, 0xb9, 0xca, 0x45, 0xf0, 0xfd, 0x4e, 0x34, 0x60, 0x91, 0x7d, 0x90,
- 0xd6, 0x4d, 0x78, 0xc6, 0xa5, 0xd1, 0x9d, 0x04, 0xa4, 0xb2, 0x88, 0x5d, 0xbc, 0x87, 0xaf, 0x33,
- 0xc9, 0x67, 0x60, 0x8d, 0xad, 0x51, 0xef, 0x00, 0xd4, 0xdc, 0xec, 0x75, 0xe2, 0x3e, 0x91, 0x1f,
- 0x51, 0xe0, 0x48, 0x60, 0x60, 0x2a, 0x04, 0x31, 0xba, 0x5d, 0xdc, 0xd0, 0x5d, 0x7d, 0xc5, 0xeb,
- 0xeb, 0xa9, 0xe4, 0x6b, 0x41, 0xce, 0x15, 0x9b, 0x21, 0xcb, 0xcc, 0x1f, 0xf2, 0x0d, 0xed, 0x36,
- 0xf1, 0x4e, 0x2b, 0x88, 0x98, 0xfc, 0x7f, 0xd8, 0xeb, 0x58, 0x8e, 0x66, 0x46, 0x0a, 0x29, 0xc5,
- 0x16, 0x3a, 0x41, 0xb1, 0x84, 0x44, 0x44, 0x7e, 0x56, 0x81, 0xe3, 0x5c, 0xc1, 0xe4, 0x58, 0xed,
- 0x6c, 0x8b, 0xd5, 0xa3, 0x38, 0xc8, 0x6a, 0x4b, 0x8e, 0x2b, 0x70, 0x48, 0x10, 0x14, 0xcb, 0x79,
- 0x97, 0xbc, 0x7a, 0x3e, 0xcb, 0x47, 0x8e, 0x9c, 0x00, 0xf5, 0x12, 0xea, 0xe8, 0xa2, 0x7d, 0xb7,
- 0xe6, 0xe8, 0xa5, 0xbb, 0x0d, 0xe7, 0xee, 0x3a, 0xeb, 0x60, 0xb7, 0x0e, 0x84, 0x9d, 0x47, 0xe5,
- 0x8d, 0x04, 0x46, 0xe5, 0x3d, 0x08, 0x03, 0x86, 0x5d, 0xb0, 0xdc, 0xef, 0x05, 0xab, 0xe1, 0xa0,
- 0x57, 0x05, 0x86, 0x00, 0x51, 0x9f, 0xc3, 0x5b, 0x9f, 0x10, 0x0e, 0xbc, 0x14, 0x13, 0xf6, 0x6a,
- 0x1e, 0x7d, 0xf7, 0x84, 0x8e, 0x38, 0x68, 0x82, 0x49, 0x51, 0xaf, 0xe2, 0x46, 0xb8, 0xa0, 0xeb,
- 0xf3, 0x86, 0xcd, 0xae, 0xdd, 0xd0, 0xe3, 0xf5, 0x6c, 0xe1, 0xf1, 0x4c, 0x7f, 0x4f, 0xc1, 0x6d,
- 0x30, 0x0e, 0x01, 0xd2, 0xf0, 0x2c, 0x80, 0x63, 0xe8, 0x75, 0xf1, 0x5c, 0xa4, 0x1c, 0xed, 0xcc,
- 0xf7, 0xb9, 0x2d, 0xec, 0x56, 0x27, 0x0f, 0x03, 0xc2, 0xfb, 0x6e, 0x5e, 0x1b, 0x24, 0x7a, 0x27,
- 0x9e, 0x01, 0x57, 0x0d, 0xbd, 0x4e, 0x47, 0xeb, 0xd7, 0x9a, 0x43, 0x93, 0xbb, 0xd0, 0x2f, 0x8c,
- 0x9a, 0x63, 0xe2, 0x85, 0xc1, 0x54, 0x0a, 0x94, 0xab, 0xab, 0x4b, 0x79, 0xe0, 0xf6, 0xcc, 0x31,
- 0x85, 0x05, 0xf3, 0x74, 0xe3, 0x8a, 0xca, 0x85, 0xf2, 0x19, 0xfe, 0x80, 0x16, 0xd9, 0x47, 0xec,
- 0xcc, 0xbb, 0xd7, 0x75, 0xbd, 0x50, 0xc2, 0xef, 0xcd, 0xd5, 0xa4, 0xa4, 0xe2, 0x5a, 0xe0, 0x1d,
- 0x5b, 0x0f, 0x37, 0xaa, 0xd7, 0x71, 0xa3, 0xc1, 0x78, 0xef, 0x65, 0xc3, 0xae, 0x68, 0x4e, 0xd1,
- 0x73, 0x87, 0x79, 0x00, 0xfa, 0x4b, 0x0d, 0xdb, 0x29, 0xac, 0x6b, 0x45, 0xc7, 0x62, 0xa9, 0x29,
- 0x1d, 0x79, 0x70, 0x9b, 0x16, 0x68, 0x8b, 0xfa, 0x1b, 0x1d, 0x30, 0x1c, 0x80, 0x26, 0x2a, 0xf8,
- 0xce, 0x44, 0xf2, 0x81, 0x98, 0x64, 0x16, 0xfa, 0xb4, 0x4d, 0xcd, 0x48, 0x1d, 0x01, 0xd1, 0x84,
- 0x22, 0x17, 0xa0, 0x8b, 0x1a, 0x81, 0x34, 0x2e, 0x3e, 0x83, 0x20, 0x0b, 0x30, 0x80, 0x91, 0xee,
- 0x85, 0x0d, 0xcb, 0x2c, 0x79, 0x1e, 0x59, 0x5a, 0xbf, 0xfe, 0x20, 0xe0, 0x2d, 0xcb, 0x2c, 0x91,
- 0x17, 0x61, 0x48, 0x7f, 0x54, 0xd3, 0x8b, 0xee, 0xfa, 0x65, 0xb4, 0x74, 0xcb, 0x63, 0x1a, 0xe4,
- 0xa0, 0xd4, 0xfa, 0x90, 0x39, 0x80, 0x92, 0xb1, 0x8e, 0x0f, 0x38, 0xec, 0xfa, 0x5d, 0xf2, 0x04,
- 0xd4, 0x04, 0x53, 0x7f, 0x18, 0xf7, 0xf6, 0x08, 0x31, 0xa3, 0xb6, 0xbd, 0x02, 0x84, 0xb3, 0x5e,
- 0x11, 0x5f, 0xd1, 0x95, 0xf9, 0x90, 0x44, 0xa6, 0x00, 0x47, 0x99, 0x1f, 0x5d, 0x0b, 0x8e, 0xa1,
- 0x1e, 0xc1, 0xc5, 0x8f, 0x5d, 0x5d, 0x47, 0x31, 0xd7, 0x9c, 0x2d, 0x61, 0xaa, 0x7e, 0x31, 0x03,
- 0xbb, 0x3d, 0x5d, 0xd8, 0x61, 0x8b, 0xce, 0xe7, 0xff, 0x71, 0x7d, 0x52, 0x7f, 0x81, 0x7b, 0xf3,
- 0xb1, 0x33, 0x88, 0x52, 0xac, 0x42, 0x96, 0x0f, 0x48, 0x6f, 0xd0, 0xbd, 0xa3, 0x4b, 0x85, 0xcd,
- 0x44, 0xce, 0x7f, 0x7e, 0xcf, 0x5a, 0xf4, 0xb8, 0x62, 0x1b, 0x0a, 0x98, 0x44, 0xd7, 0x95, 0x36,
- 0x6c, 0xc7, 0x28, 0x0a, 0xd9, 0x5e, 0x80, 0x41, 0xdf, 0x07, 0x42, 0xa0, 0xd3, 0xb5, 0xeb, 0x68,
- 0xe3, 0xe9, 0xdf, 0xae, 0x08, 0x9b, 0xa9, 0x41, 0x9d, 0x79, 0xf6, 0x43, 0xb5, 0x71, 0x07, 0x4b,
- 0x18, 0x43, 0x1c, 0x5a, 0xc1, 0x16, 0xad, 0x32, 0x51, 0xf2, 0x3e, 0x3c, 0x79, 0x0f, 0xb0, 0xeb,
- 0xff, 0x2f, 0x1b, 0x8e, 0xf5, 0x92, 0xd6, 0x30, 0xe9, 0x36, 0x21, 0x18, 0xf9, 0x63, 0x05, 0x26,
- 0x82, 0x5f, 0x70, 0xf8, 0xe7, 0x61, 0xa4, 0xa2, 0xd9, 0x8e, 0x5e, 0xe7, 0x6f, 0x94, 0x3a, 0xdf,
- 0x48, 0x87, 0x59, 0xfb, 0x2c, 0x6f, 0x26, 0x27, 0x61, 0xbc, 0x24, 0x8e, 0x00, 0x9e, 0xee, 0xec,
- 0x29, 0x64, 0xac, 0xf9, 0xad, 0x09, 0x72, 0x04, 0x86, 0xec, 0x9a, 0xe5, 0x78, 0x3a, 0xb3, 0xc7,
- 0xa0, 0x41, 0xb7, 0xd5, 0xd7, 0xad, 0xf8, 0xea, 0xcc, 0x09, 0x4f, 0xb7, 0x4e, 0xd6, 0xcd, 0x6d,
- 0x15, 0xdd, 0xd4, 0x79, 0xb4, 0xfb, 0x78, 0xf0, 0x9d, 0x5f, 0xa8, 0x5b, 0x15, 0xca, 0x92, 0xe7,
- 0xae, 0x6b, 0xd3, 0xfd, 0x5d, 0xf0, 0xdf, 0x64, 0x0e, 0xd0, 0x46, 0xfe, 0xda, 0xca, 0xc3, 0xa8,
- 0x22, 0xb0, 0xe0, 0x9c, 0x24, 0x9e, 0x8d, 0xf9, 0xf1, 0xfa, 0x96, 0x61, 0x3b, 0x56, 0xdd, 0x28,
- 0x0a, 0x5f, 0xab, 0x68, 0x79, 0x5c, 0xa9, 0x44, 0x14, 0x0e, 0x9a, 0x96, 0x38, 0x14, 0xe2, 0x5e,
- 0x60, 0x90, 0xbb, 0x84, 0xf4, 0x83, 0x4c, 0x16, 0x82, 0x0f, 0xd1, 0x80, 0xe3, 0xf9, 0xa5, 0xfe,
- 0x81, 0x02, 0x63, 0xf4, 0x33, 0x1b, 0xd6, 0x75, 0xae, 0xdc, 0xa3, 0x20, 0x79, 0x01, 0x08, 0x1b,
- 0xa6, 0x5c, 0xb7, 0x1a, 0x35, 0xd7, 0x1d, 0xb5, 0xf5, 0x22, 0xaa, 0xf8, 0x08, 0xfd, 0x72, 0x13,
- 0x3f, 0xac, 0xe8, 0x45, 0xb2, 0x07, 0x7a, 0x2a, 0xda, 0xa3, 0x82, 0x56, 0xd6, 0x51, 0xe1, 0xbb,
- 0x2b, 0xda, 0xa3, 0xd9, 0xb2, 0x4e, 0xa6, 0x60, 0xcc, 0xa8, 0x16, 0xcd, 0x86, 0x4b, 0xaf, 0xf6,
- 0x6a, 0x61, 0x83, 0x0d, 0x82, 0x21, 0x7d, 0xa3, 0xf8, 0x29, 0xaf, 0xbd, 0x8a, 0xa3, 0xbb, 0x8a,
- 0xc7, 0xfb, 0x8b, 0xb3, 0x3c, 0x7d, 0xe5, 0xcd, 0x0f, 0x63, 0x3b, 0x3f, 0xa3, 0xab, 0xbf, 0xa6,
- 0xe0, 0x7d, 0xbd, 0xc8, 0xb1, 0xd0, 0x1c, 0xc3, 0x34, 0x9c, 0x2d, 0xa9, 0x37, 0xcb, 0x22, 0xec,
- 0x66, 0xfc, 0x21, 0x49, 0xae, 0x8b, 0xea, 0x32, 0x2e, 0xe3, 0x88, 0x45, 0xcc, 0x57, 0x7e, 0xcc,
- 0x09, 0x37, 0xaa, 0x9f, 0xce, 0xf8, 0x74, 0xd3, 0x4b, 0xa2, 0xc8, 0xc5, 0x80, 0x4d, 0xd1, 0x8a,
- 0x2f, 0x7c, 0x07, 0x5a, 0x6e, 0x87, 0x4d, 0x10, 0xf2, 0x32, 0x8c, 0x70, 0x0e, 0xc4, 0x84, 0x65,
- 0x42, 0x0f, 0x5a, 0x98, 0xc1, 0x2b, 0x1e, 0x61, 0xb0, 0xa7, 0xc7, 0xf0, 0x0c, 0x23, 0x16, 0xfe,
- 0x89, 0xdc, 0x82, 0x7e, 0xaf, 0xc4, 0x3a, 0xa8, 0x96, 0x3d, 0x27, 0xa9, 0x65, 0x79, 0xa8, 0x0b,
- 0x99, 0x8a, 0x44, 0xa2, 0x9c, 0x51, 0xd5, 0xf8, 0x54, 0xb4, 0x7a, 0x57, 0x55, 0xcb, 0x18, 0x6c,
- 0x1d, 0x00, 0x12, 0xe6, 0x31, 0xf0, 0xec, 0x93, 0x28, 0x2f, 0x86, 0x03, 0x85, 0x12, 0x7c, 0xf5,
- 0x79, 0x08, 0xc7, 0x23, 0x9f, 0xfe, 0xe7, 0xac, 0x6a, 0xc9, 0x60, 0x51, 0x62, 0x3b, 0x9d, 0x79,
- 0xfc, 0xab, 0x1d, 0x70, 0x28, 0xf4, 0x2a, 0x1d, 0x1c, 0xef, 0x07, 0x37, 0xbe, 0xe3, 0x26, 0x0c,
- 0x38, 0x75, 0xa3, 0x5c, 0xd6, 0xeb, 0xf7, 0xd2, 0x3e, 0x30, 0xfa, 0x00, 0x5b, 0xc7, 0x79, 0x1c,
- 0x81, 0x1e, 0xc3, 0xa6, 0xcf, 0xf9, 0xd4, 0x2b, 0xed, 0xcd, 0xf5, 0xbf, 0xfb, 0xd6, 0x01, 0xde,
- 0x94, 0xe7, 0x7f, 0x04, 0xc2, 0x41, 0x7a, 0x62, 0xc2, 0x41, 0x7a, 0x9b, 0xe1, 0x20, 0x9f, 0x51,
- 0x7c, 0x41, 0x75, 0x89, 0x4a, 0x21, 0x92, 0x3e, 0xfd, 0x21, 0x09, 0x57, 0x52, 0x85, 0x24, 0x04,
- 0xf1, 0x8a, 0xc0, 0x84, 0xcb, 0x68, 0x40, 0x78, 0x00, 0x7f, 0xaa, 0xa0, 0x4a, 0xf5, 0x37, 0xf9,
- 0x45, 0x58, 0x04, 0x38, 0xd2, 0x3d, 0x0b, 0x9d, 0x39, 0x43, 0xec, 0x22, 0xc7, 0x25, 0xa8, 0xf6,
- 0x84, 0x4f, 0x50, 0x50, 0x17, 0xc5, 0xac, 0xfd, 0x80, 0x67, 0x64, 0xa6, 0x45, 0xe1, 0x82, 0x8a,
- 0x8b, 0x75, 0xff, 0xbb, 0x67, 0x3a, 0x66, 0x7f, 0x9b, 0x7b, 0x96, 0xb1, 0x48, 0xde, 0x57, 0x2c,
- 0x7f, 0x43, 0x81, 0xd1, 0xd0, 0xb7, 0xa7, 0xba, 0xe8, 0xfd, 0xcb, 0xa4, 0x23, 0xb8, 0x4c, 0x42,
- 0x76, 0xaf, 0x33, 0xe2, 0xc9, 0x70, 0x19, 0x17, 0x0e, 0xbe, 0x26, 0x3b, 0x56, 0xc5, 0x28, 0xde,
- 0x78, 0xa4, 0x17, 0x1b, 0xae, 0x72, 0x2f, 0xe8, 0xfa, 0x72, 0xc3, 0x74, 0x8c, 0x9a, 0x69, 0xe8,
- 0x75, 0x29, 0x99, 0x6e, 0xe2, 0x13, 0xaa, 0x0c, 0x3a, 0x94, 0xee, 0x1c, 0x40, 0x45, 0xb4, 0xa6,
- 0x99, 0x46, 0x0f, 0x98, 0x7a, 0x9e, 0xe7, 0x5a, 0x53, 0xa1, 0xae, 0x38, 0xda, 0x03, 0xfd, 0x66,
- 0x5d, 0x6b, 0x46, 0x67, 0x4e, 0x42, 0x4f, 0xd9, 0xfd, 0xad, 0xeb, 0xfc, 0x7a, 0x08, 0x7f, 0xaa,
- 0x5f, 0x10, 0xa9, 0xd4, 0x21, 0x50, 0x24, 0xf0, 0x0a, 0x74, 0xd1, 0xce, 0x78, 0xf9, 0x91, 0xb8,
- 0xa5, 0x32, 0x24, 0x0c, 0x9e, 0x41, 0x91, 0x15, 0x68, 0x3e, 0xe2, 0x15, 0x18, 0x22, 0x89, 0x8c,
- 0x2e, 0xf1, 0x0e, 0xc7, 0x70, 0x0d, 0xe9, 0xbe, 0xdf, 0xea, 0x2a, 0xda, 0x09, 0xfa, 0x6b, 0xb6,
- 0xe1, 0x6c, 0x58, 0x75, 0xe3, 0x87, 0x68, 0x08, 0x67, 0x88, 0xe3, 0xba, 0x9f, 0xe3, 0xba, 0x77,
- 0x2e, 0x32, 0xfe, 0xb9, 0xf8, 0x08, 0x5e, 0x1f, 0x45, 0x61, 0xc5, 0xc9, 0x38, 0x03, 0xdd, 0x18,
- 0x9e, 0xca, 0x24, 0xf5, 0x2c, 0x4a, 0x6a, 0x77, 0x58, 0x52, 0x8b, 0x55, 0x27, 0x8f, 0x9d, 0xc5,
- 0xb5, 0x65, 0x18, 0xb3, 0xdd, 0x92, 0x60, 0xd7, 0xe5, 0x3d, 0x18, 0x0f, 0x2d, 0x62, 0xbe, 0x09,
- 0xbb, 0x7f, 0xa5, 0x50, 0x85, 0x34, 0x44, 0x8e, 0x50, 0x40, 0x86, 0x9c, 0x47, 0x3a, 0x77, 0x53,
- 0x34, 0xb6, 0xcc, 0x4d, 0x79, 0xc4, 0x6c, 0x21, 0xb4, 0x7a, 0x1e, 0x3d, 0x29, 0x7c, 0x9b, 0x62,
- 0xc7, 0x57, 0xa9, 0x85, 0xa4, 0xa1, 0x3b, 0x15, 0x80, 0x14, 0x6b, 0xa6, 0x07, 0x8f, 0xc5, 0xa8,
- 0x94, 0xcf, 0xb7, 0xce, 0x69, 0xe6, 0x38, 0x38, 0xa4, 0xa8, 0xec, 0xe1, 0xfb, 0xec, 0x79, 0x6c,
- 0xda, 0x17, 0xf9, 0x35, 0xb6, 0xa6, 0x43, 0x0a, 0x12, 0x9a, 0x35, 0x1d, 0x1e, 0xc0, 0xa0, 0xef,
- 0x53, 0xf2, 0x19, 0xe0, 0x4a, 0x93, 0xed, 0x14, 0x06, 0x53, 0x30, 0x7c, 0x5a, 0xc4, 0x0b, 0x55,
- 0xad, 0xca, 0xb2, 0x51, 0xe5, 0x49, 0x05, 0xc9, 0xd9, 0xf8, 0x1f, 0x17, 0x81, 0x42, 0x41, 0x28,
- 0x9c, 0x8a, 0x4b, 0x81, 0x25, 0x21, 0xe7, 0x7b, 0xe1, 0xc2, 0x38, 0x10, 0x83, 0x5d, 0xc8, 0xe1,
- 0x53, 0x22, 0xa4, 0x2a, 0xd4, 0x01, 0xc7, 0xff, 0x38, 0x8c, 0xb1, 0x24, 0xfd, 0x8a, 0x51, 0x15,
- 0xc9, 0x16, 0x5c, 0x2a, 0x2f, 0xb4, 0xcc, 0xd4, 0xf7, 0xb2, 0x34, 0x5a, 0x0a, 0x8e, 0x72, 0xec,
- 0x34, 0xf4, 0x89, 0xd4, 0x63, 0x32, 0x0e, 0x23, 0xee, 0xbf, 0x85, 0xfb, 0x55, 0xbb, 0xa6, 0x17,
- 0x8d, 0x75, 0x43, 0x2f, 0x8d, 0xec, 0x22, 0x3d, 0xd0, 0x91, 0x6b, 0x6c, 0x8d, 0x28, 0xa4, 0x17,
- 0x3a, 0x57, 0x74, 0xd3, 0x1c, 0xc9, 0x1c, 0x7b, 0x09, 0xc6, 0xa3, 0xe2, 0xca, 0x5d, 0x04, 0x1e,
- 0x58, 0x8a, 0x78, 0x64, 0x17, 0x19, 0x83, 0x61, 0xf7, 0xf8, 0xfe, 0xb2, 0x55, 0xb7, 0x9d, 0x55,
- 0x2b, 0xa7, 0xdb, 0xce, 0x88, 0xc2, 0x1b, 0xdd, 0x5f, 0xab, 0x16, 0xfd, 0x34, 0x92, 0x99, 0xf9,
- 0x49, 0x0b, 0xba, 0xe8, 0x74, 0x90, 0xb7, 0x15, 0xd8, 0xbd, 0x74, 0x2a, 0xe0, 0x36, 0xe4, 0x2c,
- 0xeb, 0x01, 0xb9, 0xd6, 0xb2, 0xcc, 0x4a, 0xb2, 0xd7, 0x92, 0xbd, 0xde, 0x3e, 0x02, 0x26, 0x12,
- 0x75, 0xe1, 0xc7, 0xbe, 0xf1, 0x9d, 0xcf, 0x65, 0xae, 0x93, 0xab, 0xd3, 0x09, 0xd5, 0x9c, 0x9a,
- 0x37, 0x2d, 0xd3, 0x4b, 0xa7, 0x04, 0xf9, 0xd3, 0x8f, 0x85, 0xfe, 0x3f, 0x21, 0xaf, 0x2b, 0x30,
- 0xbc, 0x74, 0x4a, 0x38, 0x82, 0x94, 0xbd, 0x0b, 0x52, 0xd4, 0x45, 0xf9, 0x9e, 0xd9, 0x8b, 0xed,
- 0x80, 0x22, 0x4b, 0xd7, 0x29, 0x4b, 0x17, 0xc9, 0xf9, 0x24, 0x96, 0xec, 0x9a, 0xe5, 0xc4, 0x32,
- 0xf3, 0x45, 0x05, 0xc6, 0x22, 0x8a, 0x05, 0x91, 0xb3, 0x2d, 0xa9, 0x8a, 0xac, 0x3d, 0x94, 0x3d,
- 0x97, 0x1a, 0x0e, 0x59, 0x99, 0xa1, 0xac, 0xbc, 0x40, 0x8e, 0x4d, 0x4b, 0x94, 0xe5, 0x42, 0x22,
- 0xff, 0x42, 0x01, 0x12, 0xae, 0xce, 0x43, 0x2e, 0xb6, 0x55, 0xd2, 0x87, 0xd1, 0x7f, 0x69, 0x1b,
- 0xe5, 0x80, 0xd4, 0x6b, 0x94, 0x87, 0x0b, 0xe4, 0x9c, 0x0c, 0x0f, 0xd3, 0x76, 0x98, 0xf2, 0xd7,
- 0x15, 0x18, 0x0d, 0xe1, 0x97, 0x50, 0xae, 0xb8, 0x12, 0x18, 0xd9, 0x8b, 0xed, 0x80, 0x22, 0x37,
- 0x57, 0x29, 0x37, 0xe7, 0xc9, 0xd9, 0xf6, 0xb8, 0x21, 0x7f, 0xa2, 0xc0, 0x48, 0xb0, 0xfc, 0x10,
- 0x39, 0x2f, 0xad, 0x1f, 0x81, 0xbd, 0x2f, 0x7b, 0xa1, 0x0d, 0x48, 0xe4, 0xe4, 0x0a, 0xe5, 0xe4,
- 0x1c, 0x39, 0x23, 0xc5, 0x89, 0x1e, 0xa4, 0xf9, 0xcf, 0x15, 0x18, 0x0e, 0xd4, 0xf4, 0x21, 0xad,
- 0xf5, 0x3c, 0xba, 0x22, 0x52, 0xf6, 0x7c, 0x7a, 0xc0, 0x34, 0xf6, 0x4b, 0x34, 0x04, 0x2a, 0x1f,
- 0x4d, 0x3f, 0x46, 0xe9, 0x3c, 0xa1, 0x72, 0x09, 0x96, 0x28, 0x22, 0xa9, 0xc9, 0x4a, 0x21, 0x97,
- 0xb8, 0x7a, 0x48, 0x29, 0xe5, 0x12, 0xac, 0xe5, 0x44, 0xfe, 0x59, 0x81, 0xdd, 0x91, 0x75, 0x66,
- 0xc8, 0x15, 0x79, 0x9a, 0x22, 0x0a, 0x15, 0x65, 0xaf, 0xb6, 0x0b, 0x8e, 0x7c, 0xdd, 0xa1, 0x7c,
- 0xdd, 0x22, 0x0b, 0xe9, 0xf8, 0xf2, 0xe2, 0xf2, 0x19, 0xe9, 0xb7, 0x14, 0x98, 0x88, 0x2e, 0xa8,
- 0x43, 0xda, 0x24, 0x55, 0x48, 0xef, 0x5a, 0xdb, 0xf0, 0xc8, 0xeb, 0x1c, 0xe5, 0xf5, 0x0a, 0xb9,
- 0xd4, 0x3e, 0xaf, 0x36, 0xf9, 0x8a, 0x02, 0x03, 0xde, 0x0a, 0x45, 0xe4, 0x74, 0x4b, 0xb2, 0x22,
- 0x2a, 0x37, 0x65, 0xcf, 0xa4, 0x84, 0x42, 0x16, 0x72, 0x94, 0x85, 0xcb, 0xe4, 0xa2, 0x14, 0x0b,
- 0xbe, 0xda, 0x4b, 0xd3, 0x8f, 0xe9, 0xcf, 0x27, 0xe4, 0x4b, 0x0a, 0x0c, 0xfa, 0x6a, 0x2c, 0x91,
- 0x74, 0xc4, 0x08, 0x81, 0x9c, 0x4d, 0x0b, 0x86, 0x4c, 0x5c, 0xa2, 0x4c, 0x9c, 0x21, 0xa7, 0xd2,
- 0x33, 0x61, 0x93, 0xdf, 0x52, 0xa0, 0xdf, 0x53, 0xf2, 0x83, 0x9c, 0x6a, 0xbd, 0x6d, 0x84, 0x4a,
- 0x95, 0x64, 0x4f, 0xa7, 0x03, 0x42, 0xba, 0x4f, 0x50, 0xba, 0x8f, 0x91, 0xa3, 0x2d, 0x5d, 0x18,
- 0xbc, 0x6b, 0x26, 0x5f, 0x50, 0x00, 0x3c, 0xe5, 0x5d, 0x66, 0x52, 0x0c, 0xcb, 0x49, 0x3d, 0x95,
- 0x0a, 0x06, 0x29, 0xbd, 0x4c, 0x29, 0x3d, 0x4b, 0x4e, 0xcb, 0x52, 0xea, 0x5b, 0xc3, 0x5f, 0x52,
- 0x60, 0x38, 0x50, 0x59, 0x45, 0x62, 0x13, 0x89, 0xae, 0x0a, 0x23, 0xb1, 0x89, 0xc4, 0x14, 0x71,
- 0x51, 0xcf, 0x50, 0x26, 0xa6, 0xc9, 0xf1, 0x96, 0x4c, 0xac, 0x37, 0x4c, 0xb3, 0xc0, 0xe7, 0xfc,
- 0xb5, 0x70, 0x59, 0x9d, 0xb3, 0x29, 0x69, 0x90, 0xf7, 0x10, 0xa3, 0x6b, 0xb5, 0xa4, 0x70, 0x76,
- 0x3d, 0xa4, 0xfb, 0x64, 0xf0, 0x65, 0x05, 0x06, 0x7d, 0x8e, 0xb4, 0xc4, 0x22, 0x8d, 0xf4, 0xd9,
- 0xcf, 0xa6, 0x05, 0x4b, 0xe3, 0x52, 0x51, 0x16, 0x2c, 0x0e, 0xeb, 0x63, 0xe0, 0x4d, 0x05, 0x46,
- 0x82, 0x29, 0xea, 0x12, 0x5b, 0x77, 0x4c, 0x8d, 0x16, 0x89, 0xad, 0x3b, 0xae, 0xde, 0x87, 0x7a,
- 0x9b, 0x72, 0x72, 0x83, 0xcc, 0xc9, 0x71, 0xe2, 0x5b, 0x0b, 0xd3, 0x8f, 0x7d, 0x57, 0xa0, 0x4f,
- 0xc8, 0xbf, 0x2b, 0x30, 0x19, 0x57, 0xed, 0x83, 0xb4, 0x3e, 0xf8, 0xb5, 0x28, 0x10, 0x93, 0x9d,
- 0xdd, 0x06, 0x06, 0x64, 0xf7, 0x3e, 0x65, 0xf7, 0x2e, 0x59, 0x6e, 0x87, 0x5d, 0x64, 0x55, 0xb8,
- 0x60, 0xfc, 0x09, 0xfd, 0x09, 0xf9, 0x8e, 0x7b, 0x80, 0x09, 0x95, 0xeb, 0x91, 0x39, 0xc0, 0xc4,
- 0x95, 0x1a, 0x92, 0x39, 0xc0, 0xc4, 0xd6, 0x07, 0x4a, 0xcd, 0x66, 0x61, 0x6d, 0x0b, 0x33, 0x51,
- 0x13, 0xe5, 0xfb, 0x9a, 0x02, 0x23, 0xc1, 0xfa, 0xc0, 0x12, 0x6a, 0x1b, 0x53, 0xb5, 0x38, 0x7b,
- 0xa1, 0x0d, 0x48, 0x64, 0xf0, 0x22, 0x65, 0xf0, 0x34, 0x99, 0x49, 0x62, 0x90, 0x8b, 0x30, 0xc0,
- 0xc5, 0x77, 0x15, 0xd8, 0xdb, 0x5c, 0x0f, 0xab, 0x75, 0xad, 0x6a, 0x1b, 0x7a, 0xf5, 0xa9, 0xae,
- 0x42, 0x79, 0x79, 0x39, 0x9c, 0xdc, 0x82, 0xc4, 0x7a, 0xfc, 0x1b, 0x54, 0x4b, 0x7f, 0x9a, 0xa1,
- 0xa4, 0x5a, 0x46, 0xd6, 0x7e, 0x91, 0x54, 0xcb, 0xe8, 0x8a, 0x2f, 0x72, 0x27, 0x1f, 0xb6, 0xf3,
- 0x06, 0xb3, 0x29, 0x7d, 0xe6, 0xf3, 0x5f, 0x15, 0x98, 0x8c, 0x2b, 0x2f, 0x23, 0x61, 0x67, 0x5a,
- 0xd4, 0xb7, 0x91, 0xb0, 0x33, 0xad, 0x6a, 0xdb, 0xa8, 0x4b, 0x94, 0xd3, 0x05, 0x32, 0x2f, 0x79,
- 0x47, 0x95, 0xcc, 0xef, 0x37, 0x15, 0x18, 0x8b, 0xb8, 0x11, 0x23, 0x97, 0x52, 0x10, 0x1a, 0xda,
- 0xfb, 0x2e, 0xb7, 0x07, 0x8c, 0x0c, 0xce, 0x53, 0x06, 0xaf, 0x92, 0xcb, 0x92, 0x0c, 0x46, 0xef,
- 0x83, 0xff, 0xa2, 0xc0, 0x44, 0x74, 0x95, 0x01, 0x89, 0x03, 0x51, 0x62, 0x99, 0x0b, 0x89, 0x03,
- 0x51, 0x72, 0x79, 0x03, 0xf5, 0xc3, 0x94, 0xc3, 0xdb, 0x64, 0x31, 0x0d, 0x87, 0xc9, 0xeb, 0xf1,
- 0x67, 0x32, 0xb0, 0x3f, 0xb9, 0xb8, 0x01, 0x59, 0x48, 0xb9, 0xc7, 0xc5, 0xb1, 0x7f, 0x73, 0xdb,
- 0x78, 0x70, 0x1a, 0x3e, 0x46, 0xa7, 0xe1, 0x3e, 0x59, 0x69, 0x7f, 0x1a, 0xe2, 0xf7, 0xcd, 0xff,
- 0xf2, 0x2d, 0xe4, 0xc0, 0xee, 0x79, 0x3d, 0xad, 0x82, 0x86, 0xf6, 0xd0, 0xd9, 0x6d, 0x60, 0xd8,
- 0x16, 0xfb, 0x92, 0xfb, 0xe9, 0x7f, 0x2b, 0x70, 0x20, 0xa8, 0x85, 0xc1, 0xfd, 0xe8, 0xa9, 0xaf,
- 0x83, 0xb4, 0x33, 0x90, 0x6a, 0x87, 0xfa, 0x23, 0x05, 0x46, 0x43, 0xf9, 0xec, 0x12, 0x17, 0xa5,
- 0x71, 0x95, 0x29, 0x24, 0x2e, 0x4a, 0x63, 0xd3, 0xe7, 0xd5, 0xb3, 0x94, 0xd3, 0x13, 0x64, 0x4a,
- 0xd6, 0x68, 0x23, 0xb9, 0x5f, 0x57, 0x60, 0x24, 0x54, 0x51, 0xe1, 0x7c, 0x6a, 0x42, 0xe4, 0xfd,
- 0x88, 0xb8, 0xb4, 0x7a, 0xb9, 0x1b, 0x90, 0x30, 0x07, 0x3e, 0x9b, 0xfc, 0x5d, 0x05, 0xf6, 0xc4,
- 0x24, 0xc2, 0x4b, 0xbc, 0xfe, 0x24, 0xa7, 0xe1, 0x67, 0xaf, 0xb7, 0x8f, 0x00, 0x59, 0x5c, 0xa4,
- 0x2c, 0xce, 0x91, 0xd9, 0x54, 0x2c, 0x72, 0x93, 0xe3, 0xe3, 0xf4, 0xaf, 0x14, 0x18, 0x8f, 0xca,
- 0x5c, 0x24, 0x97, 0x53, 0x38, 0xa6, 0xa1, 0x14, 0xfe, 0xec, 0x95, 0x36, 0xa1, 0xd3, 0x5c, 0x4f,
- 0x88, 0x86, 0xe0, 0x82, 0xfa, 0x5d, 0x05, 0xc6, 0xf8, 0xfd, 0xb9, 0x27, 0x7f, 0x52, 0xe2, 0x26,
- 0x28, 0x9c, 0x88, 0x29, 0x71, 0x13, 0x14, 0x91, 0xa2, 0x29, 0x77, 0x13, 0x54, 0xa1, 0x80, 0x05,
- 0x9a, 0x15, 0x49, 0x7e, 0x5d, 0x81, 0x3e, 0x91, 0x77, 0x49, 0x4e, 0xb6, 0x1c, 0x35, 0x98, 0xbc,
- 0x99, 0x9d, 0x49, 0x03, 0x82, 0x64, 0x1e, 0xa7, 0x64, 0x3e, 0x47, 0x8e, 0x24, 0x91, 0x59, 0x13,
- 0x54, 0xfd, 0xa5, 0x02, 0x63, 0x11, 0xa9, 0xff, 0x24, 0xcd, 0x43, 0x53, 0x88, 0xee, 0xcb, 0xed,
- 0x01, 0xa7, 0xb9, 0x76, 0x17, 0x1c, 0x84, 0x54, 0xe5, 0xdf, 0x14, 0xc8, 0xc6, 0x17, 0x17, 0x20,
- 0xb9, 0x36, 0x68, 0x0b, 0x54, 0x70, 0xc8, 0xce, 0x6d, 0x0b, 0x47, 0x9a, 0x15, 0x1f, 0xcb, 0xa6,
- 0x6f, 0xc5, 0xff, 0x7c, 0x06, 0x0e, 0x4b, 0x24, 0xf7, 0x93, 0xdb, 0x29, 0xe8, 0x6e, 0x55, 0xc6,
- 0x22, 0xbb, 0xb4, 0x33, 0xc8, 0x70, 0x36, 0x56, 0xe8, 0x6c, 0x2c, 0x93, 0xdb, 0x89, 0xe6, 0x41,
- 0xc4, 0x44, 0xc9, 0xcd, 0xcb, 0xdf, 0x2a, 0x30, 0x16, 0x91, 0xee, 0x2f, 0xa1, 0xdc, 0xf1, 0xb5,
- 0x0a, 0x24, 0x94, 0x3b, 0xa1, 0x50, 0x81, 0x7a, 0x83, 0xf2, 0x79, 0x8d, 0x5c, 0x49, 0x94, 0xba,
- 0xa8, 0x36, 0xe4, 0xa9, 0xbf, 0xe4, 0xe3, 0xec, 0xdb, 0x0a, 0xec, 0x89, 0xa9, 0x08, 0x20, 0xb1,
- 0x9b, 0x25, 0x97, 0x36, 0x90, 0xd8, 0xcd, 0x5a, 0xd4, 0x35, 0x90, 0x7d, 0xb2, 0x70, 0x91, 0xc4,
- 0xb2, 0xf8, 0x8e, 0x02, 0x13, 0xd1, 0xa5, 0x03, 0x24, 0x9c, 0xc7, 0xc4, 0x0a, 0x08, 0x12, 0xce,
- 0x63, 0x72, 0xf9, 0x03, 0xf5, 0x16, 0xe5, 0x2f, 0x47, 0xae, 0xa7, 0x92, 0x22, 0x96, 0xac, 0x0a,
- 0x09, 0x32, 0xa6, 0xe6, 0x81, 0x84, 0x20, 0x93, 0x0b, 0xc0, 0x48, 0x08, 0xb2, 0x45, 0xb9, 0x05,
- 0x39, 0x41, 0xb2, 0x80, 0x52, 0x9e, 0x99, 0x10, 0x75, 0xbd, 0x36, 0x1a, 0xce, 0xca, 0x96, 0xbc,
- 0x56, 0x8a, 0x28, 0x26, 0x20, 0xe1, 0x0c, 0xc7, 0xd6, 0x04, 0x50, 0xcf, 0x51, 0x86, 0x4e, 0x92,
- 0xe9, 0x24, 0x86, 0x22, 0xd2, 0xb1, 0xc9, 0x5f, 0x2b, 0x30, 0x79, 0xaf, 0x99, 0xe0, 0xfd, 0xbe,
- 0x60, 0x46, 0x2a, 0xa0, 0xc3, 0x9b, 0xfa, 0x1e, 0x64, 0xea, 0xeb, 0x3c, 0x31, 0xc8, 0x5f, 0x19,
- 0x40, 0xc2, 0x40, 0xc6, 0xd7, 0x3b, 0x90, 0x30, 0x90, 0x09, 0x85, 0x10, 0xd4, 0x0b, 0x94, 0xa7,
- 0x53, 0xe4, 0xa4, 0xb4, 0x80, 0x78, 0xfe, 0x3e, 0x79, 0x5b, 0x81, 0x89, 0xe8, 0x84, 0x6d, 0x09,
- 0x8b, 0x91, 0x98, 0x2a, 0x2e, 0x61, 0x31, 0x92, 0x33, 0xc5, 0xd5, 0x9b, 0x94, 0xad, 0x59, 0x72,
- 0x2d, 0x89, 0x2d, 0x5f, 0xfe, 0xb4, 0x37, 0x73, 0xdc, 0x13, 0x1e, 0xe1, 0x8a, 0x2c, 0x22, 0x5d,
- 0x5a, 0x42, 0x64, 0xf1, 0x09, 0xde, 0x12, 0x22, 0x4b, 0xc8, 0xfc, 0x96, 0x13, 0x59, 0x64, 0x6e,
- 0x38, 0x79, 0x43, 0x81, 0xd1, 0x50, 0x92, 0xaf, 0xc4, 0x72, 0x8a, 0xcb, 0xff, 0x96, 0x58, 0x4e,
- 0xb1, 0x39, 0xc5, 0x72, 0x97, 0x7f, 0xe1, 0xac, 0xe3, 0xe9, 0xc7, 0x9e, 0x8c, 0xf3, 0x27, 0xe4,
- 0x1f, 0x14, 0xd8, 0x13, 0x93, 0xf7, 0x2a, 0x61, 0xd1, 0x93, 0x73, 0x8e, 0x25, 0x2c, 0x7a, 0x8b,
- 0x94, 0x5b, 0x39, 0x9b, 0xc1, 0x63, 0x6d, 0x23, 0xb2, 0x72, 0xc9, 0x3f, 0x2a, 0xb0, 0x37, 0x36,
- 0xb7, 0x95, 0xcc, 0xa6, 0xd1, 0xa4, 0xc8, 0xdc, 0xdb, 0x6c, 0x6e, 0x3b, 0x28, 0xd2, 0x84, 0x1b,
- 0xf8, 0x54, 0x92, 0xd6, 0x71, 0x70, 0xcf, 0x6d, 0x36, 0xf9, 0xbc, 0x02, 0x43, 0xfe, 0x9c, 0xd9,
- 0xe4, 0xc3, 0x5b, 0x64, 0xe6, 0x6d, 0xf2, 0xe1, 0x2d, 0x3a, 0x25, 0x57, 0x3d, 0x4d, 0xc9, 0x9e,
- 0x22, 0x2f, 0x24, 0x9e, 0x31, 0x0d, 0xc7, 0x2a, 0xb0, 0x64, 0x57, 0x83, 0x12, 0xf7, 0xa6, 0x82,
- 0x45, 0x7e, 0x42, 0x79, 0xad, 0x12, 0x2b, 0x29, 0x2e, 0xa3, 0x56, 0x62, 0x25, 0xc5, 0xa6, 0xd1,
- 0xca, 0x45, 0xdd, 0x30, 0x16, 0x84, 0x2f, 0x34, 0xfd, 0xd8, 0x97, 0xc0, 0x4b, 0xbd, 0xf7, 0x89,
- 0xe8, 0x3c, 0x59, 0x09, 0x73, 0x9e, 0x98, 0xa3, 0x2b, 0x61, 0xce, 0x93, 0x13, 0x74, 0xe5, 0x6e,
- 0x33, 0x36, 0x04, 0x8e, 0x82, 0x2f, 0x9b, 0x97, 0x9e, 0x4b, 0x22, 0xea, 0xa9, 0x48, 0xd8, 0xf0,
- 0xf8, 0x12, 0x2e, 0x12, 0x36, 0x3c, 0xa1, 0x84, 0x8b, 0xdc, 0xb9, 0xc4, 0x5b, 0xe4, 0xa5, 0x60,
- 0xad, 0xe3, 0x06, 0x6c, 0x7b, 0x76, 0xa7, 0x7f, 0x52, 0x60, 0x6f, 0x6c, 0xe9, 0x16, 0x09, 0xe3,
- 0xd0, 0xaa, 0x3e, 0x8c, 0x84, 0x71, 0x68, 0x59, 0x39, 0x46, 0x9d, 0xa5, 0xbc, 0x5e, 0x22, 0x17,
- 0x12, 0x9d, 0xda, 0x08, 0x46, 0x0b, 0xa2, 0x66, 0xd5, 0xeb, 0x0a, 0x8c, 0x04, 0xf3, 0x7d, 0x25,
- 0xee, 0x46, 0x63, 0xb2, 0x98, 0xb3, 0x17, 0xda, 0x80, 0x4c, 0xc3, 0x4c, 0xf3, 0xbf, 0x55, 0x44,
- 0x70, 0xdf, 0x19, 0xe4, 0xab, 0x0a, 0x8c, 0x47, 0xa4, 0xcf, 0xca, 0xc4, 0x88, 0x45, 0xa5, 0xfb,
- 0x4a, 0x84, 0x9f, 0x44, 0x26, 0xfc, 0xca, 0xbd, 0x7e, 0xaf, 0x51, 0x50, 0x9e, 0xc9, 0x2d, 0x2e,
- 0xab, 0x7f, 0x29, 0x03, 0x87, 0x5a, 0x26, 0x72, 0x92, 0xc5, 0xd4, 0xaf, 0x06, 0x71, 0x19, 0xc2,
- 0xd9, 0x17, 0x77, 0x02, 0x15, 0x32, 0xfe, 0xff, 0x28, 0xe3, 0x2f, 0x93, 0xfb, 0xe9, 0x1e, 0xa3,
- 0x8a, 0x4d, 0x84, 0x89, 0xaf, 0x11, 0xdf, 0x57, 0x40, 0x6d, 0x9d, 0x5c, 0x47, 0x5e, 0x94, 0x54,
- 0x42, 0x89, 0x84, 0xbf, 0xec, 0xed, 0x1d, 0xc1, 0x95, 0xc6, 0x65, 0xd1, 0x28, 0x26, 0xf6, 0x38,
- 0x53, 0x70, 0x77, 0xf6, 0x66, 0xa6, 0x1f, 0xf9, 0x33, 0x05, 0x46, 0x82, 0xa9, 0x7a, 0x32, 0x21,
- 0xc5, 0xd1, 0x89, 0x81, 0x32, 0x21, 0xc5, 0x31, 0x79, 0x81, 0x72, 0x41, 0x62, 0x1a, 0xbb, 0xe3,
- 0xb2, 0x5d, 0x70, 0x96, 0x9a, 0x36, 0xfd, 0x18, 0xd3, 0xed, 0x9e, 0x90, 0x6f, 0x29, 0x40, 0xc2,
- 0xd9, 0x63, 0x12, 0xc1, 0x0f, 0xb1, 0x69, 0x7f, 0x12, 0xc1, 0x0f, 0xf1, 0xc9, 0x7d, 0x72, 0x91,
- 0x56, 0x98, 0x5f, 0xe7, 0x45, 0xc0, 0x59, 0xaa, 0x3f, 0xf1, 0x30, 0xf7, 0xa6, 0x02, 0x63, 0x11,
- 0x09, 0x7b, 0xa4, 0x1d, 0x0a, 0x53, 0x6c, 0x8c, 0x09, 0x39, 0x82, 0x72, 0x37, 0x20, 0x11, 0xfc,
- 0xd9, 0x4d, 0x06, 0x69, 0x60, 0x9f, 0x3f, 0x65, 0xed, 0x8c, 0xe4, 0xfa, 0xf0, 0xa7, 0xff, 0x49,
- 0x58, 0xd6, 0xc8, 0xdc, 0x3f, 0xb9, 0xc0, 0x3e, 0xb4, 0x20, 0xe8, 0xed, 0xfb, 0x76, 0x88, 0xdf,
- 0x77, 0x3d, 0x62, 0x5f, 0x52, 0x1f, 0x49, 0x49, 0x4a, 0x8a, 0x0c, 0x9c, 0xe8, 0xec, 0x41, 0xf5,
- 0x14, 0xe5, 0xe1, 0x38, 0xf9, 0x90, 0x3c, 0x0f, 0x36, 0xf9, 0x53, 0xfa, 0x86, 0xe9, 0xcf, 0x4f,
- 0x93, 0x7a, 0xc3, 0x8c, 0xcc, 0xf6, 0x93, 0x7a, 0xc3, 0x8c, 0xce, 0xf8, 0x93, 0x13, 0x41, 0x38,
- 0x27, 0x4f, 0x44, 0x70, 0xbf, 0x46, 0x9f, 0x94, 0x03, 0x99, 0x76, 0x24, 0x3d, 0x41, 0xa9, 0x9e,
- 0x94, 0x63, 0xd2, 0x07, 0xe5, 0x6e, 0xd1, 0x22, 0x12, 0x0c, 0x73, 0x1b, 0x5f, 0x7b, 0x7b, 0xbf,
- 0xf2, 0xc6, 0xdb, 0xfb, 0x95, 0x6f, 0xbf, 0xbd, 0x5f, 0xf9, 0xb9, 0x77, 0xf6, 0xef, 0x7a, 0xe3,
- 0x9d, 0xfd, 0xbb, 0xfe, 0xee, 0x9d, 0xfd, 0xbb, 0x5e, 0xb9, 0x53, 0x36, 0x9c, 0x8d, 0xc6, 0xda,
- 0x54, 0xd1, 0xaa, 0x4c, 0x2f, 0x72, 0xa4, 0x4b, 0xda, 0x9a, 0xdd, 0x1c, 0xe2, 0x78, 0xd1, 0xaa,
- 0xeb, 0xde, 0x9f, 0x1b, 0x9a, 0x51, 0xc5, 0x27, 0x37, 0xbb, 0x39, 0xbe, 0xb3, 0x55, 0xd3, 0xed,
- 0xb5, 0xee, 0x5a, 0xdd, 0x72, 0xac, 0x53, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x2a, 0xe6,
- 0x46, 0xa9, 0x81, 0x00, 0x00,
+ // 6232 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3d, 0x6d, 0x8c, 0x1c, 0xc9,
+ 0x55, 0xee, 0xd9, 0xef, 0xb7, 0xdf, 0xb5, 0xeb, 0xf5, 0x7a, 0x7c, 0xe7, 0x8f, 0x76, 0x9c, 0xf3,
+ 0x39, 0xe7, 0x5d, 0x7b, 0xfd, 0xfd, 0xed, 0x9d, 0x5d, 0xaf, 0xbd, 0xe7, 0x5d, 0xdb, 0x99, 0x5d,
+ 0xdf, 0x25, 0x97, 0xc0, 0xa4, 0x77, 0xa6, 0x77, 0xb6, 0xe3, 0x9e, 0xe9, 0xf1, 0x74, 0xcf, 0x9e,
+ 0x17, 0xe3, 0x08, 0x08, 0x28, 0x11, 0x48, 0x80, 0x14, 0x3e, 0x84, 0x40, 0x08, 0xf8, 0xc1, 0x0f,
+ 0x44, 0x84, 0x44, 0xc4, 0x87, 0x12, 0x29, 0x51, 0x08, 0x82, 0x70, 0x41, 0xe8, 0x20, 0x47, 0x40,
+ 0x27, 0x38, 0xa2, 0xbb, 0x40, 0x94, 0x13, 0x48, 0xfc, 0x42, 0x42, 0xa0, 0x80, 0xba, 0xea, 0x55,
+ 0x4d, 0x7f, 0x4f, 0xf5, 0xec, 0x9e, 0x7c, 0x81, 0x5f, 0xde, 0xa9, 0xae, 0xf7, 0xea, 0xbd, 0x7a,
+ 0xaf, 0x5e, 0xbd, 0xaa, 0x7a, 0xef, 0x19, 0x3e, 0x68, 0x54, 0x3f, 0xa9, 0x17, 0x1d, 0x63, 0x53,
+ 0x9f, 0xd6, 0x1f, 0x15, 0x37, 0xb4, 0x6a, 0x59, 0x9f, 0xde, 0x3c, 0xb9, 0xa6, 0x3b, 0xda, 0xc9,
+ 0xe9, 0x87, 0x0d, 0xbd, 0xbe, 0x35, 0x55, 0xab, 0x5b, 0x8e, 0x45, 0xb2, 0xa2, 0xdf, 0x14, 0xef,
+ 0x37, 0x85, 0xfd, 0xb2, 0xcf, 0x94, 0x2d, 0xab, 0x6c, 0xea, 0xd3, 0x5a, 0xcd, 0x98, 0xd6, 0xaa,
+ 0x55, 0xcb, 0xd1, 0x1c, 0xc3, 0xaa, 0xda, 0x0c, 0x32, 0xfb, 0x7c, 0xc2, 0x08, 0x02, 0x15, 0xeb,
+ 0x7a, 0x34, 0xa1, 0x6b, 0x59, 0xaf, 0xea, 0xb6, 0xc1, 0x91, 0x1e, 0x69, 0xf6, 0xb4, 0xea, 0x5a,
+ 0xd1, 0x6c, 0xf6, 0x63, 0x3f, 0xb1, 0xdb, 0x78, 0xd9, 0x2a, 0x5b, 0xf4, 0xcf, 0x69, 0xf7, 0x2f,
+ 0xd6, 0xaa, 0xde, 0x05, 0x58, 0x69, 0xac, 0x69, 0xc5, 0xa2, 0xd5, 0xa8, 0x3a, 0x64, 0x02, 0xba,
+ 0x9d, 0xba, 0x56, 0xd2, 0xeb, 0x93, 0xca, 0x41, 0xe5, 0x68, 0x5f, 0x1e, 0x7f, 0x91, 0xe7, 0x61,
+ 0xc4, 0x16, 0xbd, 0x0a, 0x55, 0xab, 0x5a, 0xd4, 0x27, 0x33, 0x07, 0x95, 0xa3, 0x83, 0xf9, 0xe1,
+ 0x66, 0xfb, 0x1d, 0xb7, 0x59, 0xfd, 0x04, 0x3c, 0xf3, 0x61, 0x77, 0xae, 0x9a, 0x58, 0xef, 0xd6,
+ 0x4b, 0x7a, 0xdd, 0xce, 0xeb, 0x0f, 0x1b, 0xba, 0xed, 0x90, 0xc3, 0x30, 0xe8, 0x41, 0x65, 0x94,
+ 0x70, 0xa4, 0x81, 0x66, 0xe3, 0x62, 0x89, 0xec, 0x83, 0xbe, 0x8a, 0x56, 0x7f, 0xa0, 0xd3, 0x0e,
+ 0x19, 0xda, 0xa1, 0x97, 0x35, 0x2c, 0x96, 0xd4, 0xaf, 0x2a, 0xf0, 0x6c, 0xcc, 0x10, 0x76, 0xcd,
+ 0xaa, 0xda, 0x3a, 0xb9, 0x03, 0xb0, 0xd6, 0xd8, 0x2a, 0x58, 0xb4, 0x75, 0x52, 0x39, 0xd8, 0x71,
+ 0xb4, 0x7f, 0x66, 0x7a, 0x2a, 0x5e, 0x6a, 0x53, 0x01, 0x4c, 0xf3, 0x9a, 0xa3, 0xe5, 0xfb, 0xd6,
+ 0x1a, 0x5b, 0x0c, 0x2f, 0xb9, 0x07, 0xfd, 0xb6, 0x6e, 0x9a, 0x1c, 0x61, 0xa6, 0x3d, 0x84, 0xe0,
+ 0xe2, 0x60, 0x18, 0xd5, 0xdf, 0x53, 0xe0, 0x48, 0xa0, 0xcf, 0x9a, 0x65, 0x3d, 0x58, 0xd6, 0x1d,
+ 0xad, 0xa4, 0x39, 0xda, 0xcb, 0x86, 0xb3, 0xb1, 0x4c, 0xf9, 0x25, 0x2b, 0xd0, 0x5b, 0xc1, 0x56,
+ 0x3a, 0x55, 0xfd, 0x33, 0xe7, 0x52, 0x0c, 0xec, 0x45, 0x9a, 0x17, 0x88, 0x12, 0xe7, 0x97, 0x8c,
+ 0x43, 0x97, 0x61, 0xe7, 0x1a, 0x5b, 0x93, 0x1d, 0x07, 0x95, 0xa3, 0xbd, 0x79, 0xf6, 0x43, 0x7d,
+ 0x06, 0xb2, 0x74, 0xd2, 0x6f, 0xe0, 0x88, 0xf7, 0xb4, 0xba, 0x56, 0xe1, 0x52, 0x55, 0x0b, 0xb0,
+ 0x2f, 0xf2, 0x2b, 0x0a, 0xe4, 0x3a, 0x74, 0xd7, 0x68, 0x0b, 0xb2, 0xa0, 0x26, 0xb1, 0xc0, 0x60,
+ 0x73, 0x9d, 0x5f, 0x7f, 0xeb, 0xc0, 0xae, 0x3c, 0xc2, 0xa9, 0x9f, 0x53, 0x60, 0x7f, 0x40, 0xe8,
+ 0xf3, 0x7a, 0xcd, 0xb2, 0x0d, 0x27, 0x9d, 0x66, 0x2d, 0x01, 0x34, 0x7f, 0x53, 0xd6, 0xfb, 0x67,
+ 0x3e, 0x28, 0x37, 0xa1, 0x94, 0x22, 0x25, 0xef, 0x81, 0x57, 0xdf, 0x55, 0xe0, 0x40, 0x2c, 0x55,
+ 0xc8, 0xbb, 0x0e, 0xbd, 0x25, 0x6c, 0x43, 0x55, 0x5c, 0x4c, 0x1a, 0xaf, 0x05, 0xba, 0x29, 0xde,
+ 0x70, 0xa3, 0xea, 0xd4, 0xb7, 0xf2, 0x02, 0x75, 0xf6, 0x13, 0x30, 0xe8, 0xfb, 0x44, 0x46, 0xa0,
+ 0xe3, 0x81, 0xbe, 0x85, 0x93, 0xe0, 0xfe, 0x49, 0x2e, 0x40, 0xd7, 0xa6, 0x66, 0x36, 0x74, 0x64,
+ 0xfb, 0x70, 0x12, 0x19, 0x88, 0x2b, 0xcf, 0x20, 0x2e, 0x66, 0xce, 0x2b, 0xea, 0x7e, 0x5c, 0xd9,
+ 0x5c, 0xc6, 0x39, 0xcd, 0xd4, 0xaa, 0x45, 0x5d, 0xe8, 0xc0, 0x3a, 0x2e, 0xcb, 0xf0, 0x77, 0x9c,
+ 0x89, 0x1b, 0xd0, 0xbb, 0x86, 0x6d, 0x38, 0x13, 0x89, 0x24, 0x20, 0x3c, 0x2a, 0x82, 0x00, 0x55,
+ 0xcf, 0xa1, 0xae, 0xcd, 0x96, 0xcb, 0x75, 0xbd, 0xac, 0x39, 0xfa, 0x4b, 0x96, 0xd9, 0xa8, 0xe8,
+ 0x5c, 0x0d, 0x26, 0xa1, 0x87, 0x8b, 0x97, 0xf1, 0xce, 0x7f, 0xaa, 0x0d, 0x64, 0x20, 0x04, 0x88,
+ 0xf4, 0xdd, 0x87, 0x51, 0x8d, 0x7f, 0x2a, 0x6c, 0xd2, 0x6f, 0x9c, 0xd0, 0xa3, 0x49, 0x84, 0xb2,
+ 0x95, 0x8a, 0xc8, 0x46, 0x34, 0x3f, 0x76, 0x5b, 0xfd, 0x68, 0xf4, 0xb0, 0x42, 0x6f, 0xb3, 0xd0,
+ 0x8b, 0x14, 0xb2, 0xd1, 0xfa, 0xf2, 0xe2, 0x37, 0x79, 0x16, 0x40, 0x2c, 0x54, 0x66, 0x78, 0xfa,
+ 0xf2, 0x7d, 0x7c, 0xa5, 0xda, 0xea, 0x7f, 0x72, 0x53, 0x18, 0xc6, 0x8d, 0x3c, 0x39, 0xb0, 0xb7,
+ 0xc9, 0x13, 0x5f, 0x1b, 0x7e, 0xde, 0xce, 0x27, 0xf1, 0x26, 0x10, 0xcf, 0x32, 0x58, 0x3e, 0x65,
+ 0x45, 0xab, 0x5e, 0xca, 0xef, 0xd1, 0x22, 0xbf, 0xda, 0x64, 0x0d, 0x26, 0x9b, 0xa3, 0x22, 0x03,
+ 0x7c, 0xd0, 0x4c, 0xca, 0x09, 0x9d, 0x10, 0x98, 0xbc, 0xcd, 0xb6, 0x7a, 0x1d, 0x0e, 0xf9, 0x59,
+ 0xf7, 0x41, 0xe1, 0xdc, 0xfa, 0x0c, 0x9d, 0x12, 0xd8, 0x48, 0x4c, 0x50, 0x93, 0x30, 0xe0, 0x0c,
+ 0x2e, 0x40, 0x37, 0x23, 0x1d, 0x6d, 0x57, 0x22, 0xe5, 0xde, 0xe9, 0xe1, 0x16, 0x8c, 0x41, 0xab,
+ 0x27, 0x60, 0x92, 0x8e, 0x36, 0xaf, 0x57, 0xad, 0xca, 0xbc, 0x5e, 0x34, 0x2a, 0x9a, 0xc9, 0xc9,
+ 0x1c, 0x87, 0xae, 0x92, 0xdb, 0x8c, 0x24, 0xb2, 0x1f, 0xea, 0x19, 0xd8, 0x1b, 0x01, 0x81, 0x64,
+ 0x4d, 0x42, 0x4f, 0x89, 0x35, 0x51, 0xa0, 0xce, 0x3c, 0xff, 0xa9, 0x9e, 0x8a, 0x00, 0x13, 0xca,
+ 0x36, 0x01, 0xdd, 0x14, 0x39, 0x57, 0x35, 0xfc, 0xa5, 0x3a, 0x68, 0xde, 0x03, 0x40, 0x38, 0xd8,
+ 0x4b, 0x30, 0x44, 0xfb, 0x15, 0x70, 0x0c, 0xae, 0x3a, 0xcf, 0x27, 0x9b, 0x10, 0x0f, 0x2a, 0x9c,
+ 0x8c, 0xc1, 0x92, 0xb7, 0x51, 0x9d, 0x4b, 0x92, 0x80, 0xa0, 0xd9, 0xbf, 0x08, 0x94, 0xe0, 0x22,
+ 0x30, 0xe0, 0x70, 0x22, 0x12, 0xe4, 0x21, 0x07, 0x3d, 0xed, 0xae, 0x69, 0x0e, 0xa8, 0xbe, 0x12,
+ 0xf2, 0x3c, 0xb8, 0x9d, 0x4c, 0xb3, 0x07, 0x09, 0x69, 0x67, 0xbc, 0xd2, 0xd6, 0xe2, 0x36, 0x38,
+ 0xc1, 0xc1, 0x35, 0xdf, 0x4e, 0x22, 0x6d, 0xc2, 0x05, 0x90, 0x7a, 0x0f, 0xf6, 0xb0, 0x21, 0x6a,
+ 0x96, 0xc3, 0x18, 0xf4, 0xea, 0x85, 0xed, 0x68, 0x4e, 0xc3, 0xe6, 0x9e, 0x1f, 0xfb, 0xd5, 0xca,
+ 0x00, 0x7d, 0x1c, 0x95, 0xda, 0x87, 0x51, 0x6c, 0xfa, 0x3d, 0xac, 0x23, 0x9f, 0xf0, 0xe4, 0x7d,
+ 0x56, 0x60, 0xc8, 0x73, 0x30, 0xf5, 0x0c, 0x4c, 0x04, 0xb0, 0x4b, 0xad, 0xeb, 0x8f, 0x86, 0xd8,
+ 0x14, 0x34, 0x5d, 0x85, 0x6e, 0xd6, 0x0d, 0x27, 0x50, 0x96, 0x24, 0x84, 0x52, 0xbf, 0x95, 0xc1,
+ 0xc5, 0xe5, 0x7e, 0x13, 0x1e, 0x96, 0x0c, 0x55, 0xae, 0xd4, 0x4d, 0xa3, 0x62, 0x30, 0xa7, 0xa3,
+ 0x33, 0xcf, 0x7e, 0x90, 0x79, 0x00, 0xea, 0x55, 0x16, 0x6c, 0xa3, 0xa4, 0x53, 0x8f, 0x6b, 0x68,
+ 0xe6, 0x48, 0x12, 0x51, 0x74, 0xd0, 0x15, 0xa3, 0xa4, 0xe7, 0xfb, 0x2c, 0xfe, 0x27, 0x29, 0xc0,
+ 0x5e, 0x8a, 0xae, 0x50, 0x6c, 0x54, 0x1a, 0xa6, 0xe6, 0x42, 0x16, 0xaa, 0x96, 0x7b, 0xf2, 0xd0,
+ 0xcc, 0xc9, 0x4e, 0x97, 0x90, 0xdc, 0x61, 0xd7, 0x79, 0x79, 0xf3, 0xad, 0x03, 0xfb, 0x8a, 0x96,
+ 0x5d, 0xb1, 0x6c, 0xbb, 0xf4, 0x60, 0xca, 0xb0, 0xa6, 0x2b, 0x9a, 0xb3, 0x31, 0xb5, 0xa4, 0x97,
+ 0xb5, 0xe2, 0xd6, 0xbc, 0x5e, 0xcc, 0xef, 0xa1, 0x58, 0xe6, 0x04, 0x92, 0x3b, 0x88, 0x23, 0x72,
+ 0x80, 0x87, 0x0d, 0xad, 0xea, 0x18, 0xce, 0xd6, 0x64, 0x57, 0xfb, 0x03, 0x7c, 0x18, 0x71, 0xa8,
+ 0x7f, 0xac, 0xa0, 0x01, 0x0a, 0x4c, 0x2c, 0xca, 0xed, 0x36, 0x8c, 0xac, 0x35, 0xb6, 0xec, 0x42,
+ 0xad, 0x6e, 0x14, 0xf5, 0x82, 0xa9, 0x6f, 0xea, 0x26, 0x2a, 0xd5, 0xa1, 0xa4, 0xc9, 0x5a, 0x72,
+ 0x3b, 0xe6, 0x87, 0x5c, 0xd0, 0x7b, 0x2e, 0x24, 0xfd, 0x4d, 0x96, 0x61, 0xd4, 0x75, 0xc5, 0xfd,
+ 0xd8, 0x32, 0xb2, 0xd8, 0x86, 0x29, 0x6c, 0x13, 0x9d, 0xfa, 0x79, 0x05, 0x86, 0x16, 0x1a, 0xa6,
+ 0xd9, 0x54, 0x97, 0xed, 0xaa, 0x19, 0xf9, 0x18, 0x8c, 0x56, 0x8c, 0x12, 0xd2, 0xa7, 0x55, 0x4b,
+ 0x05, 0xc7, 0x5a, 0x43, 0xaf, 0xed, 0x58, 0xa2, 0xd5, 0x32, 0x4a, 0x94, 0xb0, 0xd9, 0x6a, 0x69,
+ 0xf5, 0x6e, 0x0e, 0x1d, 0xd6, 0xa1, 0x8a, 0xa7, 0xd5, 0x5a, 0x53, 0x3f, 0xab, 0xa0, 0x03, 0xe5,
+ 0x27, 0x7a, 0x9b, 0xa6, 0x80, 0xcc, 0xc0, 0xc4, 0xab, 0x86, 0xb3, 0x51, 0x08, 0x13, 0xce, 0xce,
+ 0x11, 0xc4, 0xfd, 0xba, 0xec, 0x27, 0xa5, 0x84, 0xae, 0x51, 0x88, 0x12, 0x14, 0xfb, 0x7c, 0xd0,
+ 0x84, 0x24, 0x72, 0xef, 0xc7, 0xd2, 0x34, 0x23, 0x15, 0x54, 0xad, 0xc0, 0x77, 0x99, 0x45, 0x1b,
+ 0xcf, 0x54, 0x26, 0x96, 0x29, 0x2d, 0x72, 0x7a, 0x3d, 0xfb, 0x90, 0x5f, 0x37, 0xd2, 0xb0, 0xc4,
+ 0xcd, 0xd0, 0x4f, 0x89, 0xd3, 0x10, 0x5f, 0x2d, 0x76, 0x6e, 0xeb, 0x96, 0x66, 0x6f, 0x34, 0x37,
+ 0xcd, 0x44, 0xb6, 0x42, 0xdb, 0x54, 0x26, 0x62, 0x9b, 0x3a, 0x04, 0x03, 0xcc, 0x34, 0x6d, 0x50,
+ 0xc4, 0x93, 0x1d, 0x54, 0xe2, 0xfd, 0xb4, 0x8d, 0x8d, 0xa5, 0x9a, 0xfc, 0xf8, 0x13, 0x41, 0x06,
+ 0xb2, 0xbb, 0x08, 0xdd, 0xbe, 0x73, 0xf8, 0xc9, 0x24, 0x76, 0x57, 0xeb, 0x46, 0xa5, 0xa2, 0x97,
+ 0x5c, 0x74, 0x4b, 0xae, 0xa1, 0xa0, 0x38, 0xf3, 0x88, 0x40, 0x5c, 0x2d, 0xac, 0xd2, 0x4b, 0x89,
+ 0xe6, 0x98, 0x3b, 0xc6, 0xb2, 0x6a, 0xc2, 0x07, 0x98, 0x2b, 0xc1, 0x5a, 0x66, 0x4b, 0xa5, 0xba,
+ 0x6e, 0xdb, 0x29, 0x47, 0x7a, 0x0e, 0x86, 0xf9, 0x30, 0x1a, 0x43, 0x80, 0x63, 0x0d, 0x69, 0x3e,
+ 0xb4, 0xea, 0xaf, 0x66, 0x60, 0x77, 0x24, 0xc7, 0xee, 0x49, 0x8d, 0x6a, 0x1b, 0xc3, 0x4d, 0x4d,
+ 0xeb, 0xae, 0x56, 0xa6, 0x95, 0x41, 0xb8, 0x4e, 0x82, 0x30, 0xcc, 0x19, 0x79, 0x68, 0x01, 0xe4,
+ 0x22, 0x58, 0x37, 0x4c, 0x53, 0x5b, 0x33, 0xd9, 0x7e, 0x24, 0x8b, 0x80, 0x03, 0x35, 0xef, 0x0f,
+ 0x3a, 0x3d, 0xf7, 0x07, 0xae, 0xf5, 0x68, 0x6a, 0x13, 0xdb, 0x32, 0x70, 0x07, 0x73, 0x15, 0xc6,
+ 0x3d, 0xad, 0x16, 0x8d, 0xd2, 0x64, 0x37, 0x3b, 0xad, 0x16, 0x8d, 0x92, 0xfa, 0x49, 0xf4, 0xb5,
+ 0xc2, 0xd2, 0xde, 0x79, 0xcd, 0xaa, 0xc3, 0x91, 0x16, 0x72, 0xdf, 0xf9, 0x31, 0xaf, 0x78, 0x96,
+ 0xb0, 0xdf, 0x6e, 0x4b, 0x39, 0x39, 0xff, 0xa5, 0x78, 0xd6, 0x5e, 0x10, 0x5e, 0x78, 0x60, 0x7d,
+ 0xc2, 0x70, 0x79, 0x54, 0xa9, 0xe5, 0x2e, 0xdd, 0xcb, 0x77, 0x0c, 0xb2, 0x08, 0x43, 0x6b, 0xba,
+ 0xed, 0x14, 0xd6, 0x1a, 0x5b, 0x88, 0x26, 0x23, 0x8f, 0x66, 0xc0, 0x05, 0xcd, 0x35, 0xb6, 0x18,
+ 0xaa, 0xdb, 0x30, 0x4c, 0x51, 0xd1, 0x9b, 0x34, 0x86, 0xab, 0x43, 0x1e, 0xd7, 0xa0, 0x0b, 0xbb,
+ 0xa2, 0x9b, 0x26, 0x45, 0xa6, 0xce, 0xe1, 0x42, 0x9d, 0xd7, 0xeb, 0xc6, 0x26, 0xf5, 0x24, 0xda,
+ 0x98, 0xc2, 0x1f, 0xcf, 0xa0, 0xd8, 0xe3, 0xb1, 0xfc, 0x9f, 0x9f, 0xc8, 0x3f, 0xe0, 0x6a, 0xd4,
+ 0x9c, 0x83, 0x9d, 0x70, 0x6b, 0x13, 0x1d, 0xd2, 0x8e, 0xed, 0x3b, 0xa4, 0xea, 0x97, 0x15, 0x38,
+ 0x18, 0x4f, 0xf7, 0x0f, 0x80, 0xd7, 0xf8, 0x6b, 0x1d, 0x30, 0x15, 0x69, 0xdf, 0x56, 0xad, 0x39,
+ 0xad, 0x5a, 0xd4, 0xcd, 0xfb, 0xb5, 0x55, 0x6b, 0xb6, 0xe2, 0x9a, 0xa3, 0x9d, 0xdb, 0xd2, 0xe7,
+ 0xa1, 0x7f, 0x4d, 0xb3, 0xf5, 0x82, 0x46, 0xf1, 0xa6, 0x31, 0xef, 0xe0, 0xc2, 0x31, 0x72, 0xc8,
+ 0x02, 0x0c, 0x3c, 0x6c, 0x58, 0x8e, 0x40, 0xd3, 0x29, 0x8f, 0xa6, 0x9f, 0x02, 0x22, 0x9e, 0x25,
+ 0xe8, 0xb5, 0x9d, 0xba, 0xe6, 0xe8, 0x65, 0x76, 0x86, 0x18, 0x9a, 0x39, 0x91, 0x34, 0x91, 0x6c,
+ 0x5a, 0x4c, 0xfa, 0xa0, 0xb2, 0x82, 0x70, 0x79, 0x81, 0x81, 0x2c, 0xc1, 0x70, 0x5d, 0x5f, 0xd7,
+ 0xeb, 0x7a, 0xb5, 0xa8, 0xe3, 0xb2, 0xe8, 0x96, 0x57, 0xb4, 0x21, 0x01, 0xcb, 0xd6, 0xc5, 0x3f,
+ 0x64, 0xe0, 0xb4, 0x47, 0x3c, 0x01, 0x2d, 0x7b, 0x4f, 0x85, 0x14, 0x9c, 0xde, 0x8e, 0x1d, 0x98,
+ 0xde, 0xce, 0xf7, 0x62, 0x7a, 0xbb, 0xda, 0x9f, 0xde, 0x75, 0xbc, 0xf8, 0x89, 0x9e, 0xdd, 0x9d,
+ 0x73, 0xe8, 0xea, 0x70, 0x2c, 0x62, 0x63, 0x6f, 0x6b, 0x3c, 0x69, 0xb7, 0xee, 0x7b, 0x19, 0xd8,
+ 0x87, 0x5b, 0x7f, 0x73, 0xa0, 0xf7, 0x89, 0x73, 0x77, 0x89, 0x1e, 0x3e, 0xca, 0x46, 0x35, 0x8d,
+ 0x56, 0x21, 0x88, 0xcf, 0x33, 0xec, 0x6c, 0xc7, 0x33, 0x3c, 0xc0, 0x3d, 0x43, 0x57, 0x73, 0x7a,
+ 0x73, 0x7d, 0xef, 0xbe, 0x75, 0x80, 0x35, 0x44, 0x3b, 0x89, 0xdd, 0x31, 0x4e, 0x62, 0x4f, 0xd3,
+ 0x49, 0xdc, 0xc4, 0xbb, 0xbf, 0x38, 0x3d, 0xc2, 0x8d, 0xe0, 0x6e, 0xc0, 0x6d, 0x3b, 0x27, 0xe1,
+ 0xb6, 0x45, 0xc9, 0x4e, 0x38, 0x6f, 0x9f, 0x82, 0x0f, 0x49, 0xe9, 0xd5, 0x7b, 0x35, 0xfe, 0xcf,
+ 0x28, 0x21, 0x07, 0xe8, 0x29, 0x1e, 0x03, 0x1f, 0x85, 0xfc, 0xa8, 0x98, 0xc3, 0xe0, 0x8e, 0xcf,
+ 0xc3, 0x4f, 0xf3, 0x07, 0x10, 0x8f, 0x0b, 0xf7, 0xd4, 0x6e, 0x33, 0x3e, 0xab, 0x00, 0x78, 0x1c,
+ 0x86, 0xa7, 0xb8, 0xce, 0xd5, 0xaf, 0x28, 0x30, 0x7e, 0x4f, 0xaf, 0xd7, 0x74, 0xa7, 0xa1, 0x99,
+ 0x6c, 0x46, 0x56, 0x1c, 0xcd, 0xd1, 0xc9, 0x3d, 0xe8, 0xe7, 0x6c, 0x57, 0xd7, 0x2d, 0xbc, 0x82,
+ 0x48, 0x7c, 0xca, 0x0e, 0xa0, 0x59, 0xac, 0xae, 0x5b, 0x79, 0x9c, 0x3a, 0xf7, 0x6f, 0x72, 0x1f,
+ 0x06, 0xd6, 0x1b, 0xd5, 0x92, 0x51, 0x2d, 0x33, 0x94, 0xec, 0x9a, 0x6a, 0x26, 0x05, 0xca, 0x05,
+ 0x06, 0x9e, 0xef, 0x47, 0x3c, 0x2e, 0x5a, 0xf5, 0x8b, 0x1d, 0x30, 0xbe, 0xd0, 0x30, 0xcd, 0xa0,
+ 0x60, 0xc9, 0x7c, 0xe0, 0xfe, 0xe4, 0x85, 0xe4, 0x3b, 0x70, 0x3f, 0xb4, 0xb8, 0x61, 0xfb, 0x28,
+ 0x0c, 0xd5, 0x38, 0x15, 0x5e, 0xba, 0x4f, 0xa4, 0xa0, 0x9b, 0xce, 0xe8, 0xad, 0x5d, 0xf9, 0x41,
+ 0x81, 0x89, 0x4e, 0xc8, 0x47, 0xdc, 0x09, 0x71, 0x1a, 0x75, 0xdd, 0x66, 0x88, 0x3b, 0x28, 0xe2,
+ 0x53, 0x49, 0x88, 0x6f, 0x3c, 0xaa, 0x19, 0xf5, 0xad, 0x05, 0x06, 0xd5, 0x9c, 0xe7, 0x5b, 0xbb,
+ 0xdc, 0x39, 0xa1, 0x8d, 0x14, 0x73, 0x8e, 0xe9, 0x2c, 0x6e, 0xbf, 0x29, 0x4c, 0x30, 0x55, 0x6c,
+ 0x76, 0x7a, 0x88, 0xbc, 0x5a, 0xec, 0xda, 0x99, 0xab, 0xc5, 0x5c, 0x37, 0x74, 0xba, 0x2c, 0xab,
+ 0x26, 0x9e, 0x6d, 0x23, 0x56, 0x25, 0x5a, 0x82, 0x17, 0x83, 0x37, 0x7b, 0x27, 0x5a, 0x5d, 0x83,
+ 0x85, 0x44, 0x29, 0xee, 0xf7, 0x2e, 0xe1, 0xbd, 0x50, 0xa8, 0x87, 0xcc, 0x21, 0xd0, 0x88, 0x31,
+ 0x20, 0x82, 0xd2, 0x5b, 0x01, 0x7d, 0x4b, 0x4f, 0x28, 0xbf, 0xb5, 0xcb, 0xe1, 0x66, 0x15, 0xec,
+ 0x80, 0xbb, 0x87, 0x14, 0xb9, 0x7a, 0xf8, 0xe0, 0xeb, 0xc7, 0xd1, 0x7c, 0x1e, 0xe4, 0x5e, 0x0a,
+ 0x7f, 0x05, 0x67, 0x3f, 0xe5, 0xfc, 0xa6, 0x9b, 0x78, 0xba, 0x6a, 0x3e, 0x46, 0xd1, 0x1d, 0x96,
+ 0x86, 0xf8, 0xa4, 0x79, 0xeb, 0x52, 0x17, 0x42, 0x01, 0x12, 0xf7, 0x2c, 0xdb, 0xa0, 0x31, 0x51,
+ 0xa9, 0xf0, 0x7c, 0x12, 0x3e, 0x18, 0x83, 0x67, 0xb1, 0xea, 0x97, 0xf6, 0xf6, 0x03, 0x8c, 0x6c,
+ 0x98, 0x0e, 0x8c, 0x75, 0x63, 0x7d, 0x9d, 0x49, 0xfc, 0xbd, 0x1b, 0xf4, 0x45, 0x54, 0x8e, 0x40,
+ 0x00, 0x8f, 0x08, 0xde, 0x49, 0x33, 0x59, 0xd5, 0x90, 0xf4, 0x3c, 0x93, 0x2e, 0x16, 0x60, 0x97,
+ 0xbb, 0x13, 0xea, 0xb8, 0xfc, 0xa6, 0xe4, 0xac, 0x28, 0xc7, 0x83, 0xcf, 0xb9, 0x0c, 0x85, 0xfa,
+ 0x00, 0x9e, 0x6b, 0x29, 0x1c, 0x71, 0x93, 0x22, 0x86, 0x75, 0x17, 0xd3, 0x07, 0x12, 0xcd, 0xad,
+ 0x77, 0x30, 0x85, 0x0f, 0xf6, 0xe9, 0x0c, 0x8c, 0x86, 0xe4, 0x41, 0xf6, 0x40, 0x8f, 0x61, 0x17,
+ 0x4c, 0xab, 0x5a, 0xa6, 0x98, 0x7b, 0xf3, 0xdd, 0x86, 0xbd, 0x64, 0x55, 0xcb, 0xdb, 0x77, 0x99,
+ 0xe7, 0xa1, 0x5f, 0xaf, 0x3a, 0xf5, 0xad, 0xd0, 0x55, 0x4b, 0xeb, 0x33, 0x33, 0x85, 0x63, 0x66,
+ 0xf7, 0x0e, 0x8c, 0xe8, 0x9c, 0xe8, 0x02, 0xba, 0xe0, 0x29, 0x0c, 0xf8, 0xb0, 0x00, 0x5e, 0xa6,
+ 0xb0, 0xea, 0x13, 0x38, 0x21, 0xaf, 0xa3, 0xe2, 0xf2, 0xd2, 0x37, 0xf7, 0xc7, 0x13, 0x77, 0xa4,
+ 0x20, 0x36, 0xbf, 0x10, 0xae, 0xe2, 0xb2, 0x8e, 0x72, 0x0e, 0x64, 0xcc, 0x58, 0x05, 0x35, 0x34,
+ 0x12, 0x5e, 0x90, 0xdb, 0xb9, 0x0d, 0x1f, 0x05, 0x35, 0x94, 0xed, 0x47, 0xdc, 0xf2, 0xc6, 0xec,
+ 0xb3, 0x52, 0x24, 0x37, 0xd0, 0xf2, 0xc6, 0xe2, 0x40, 0xb2, 0x97, 0x7d, 0x64, 0xb7, 0xb3, 0xed,
+ 0xfb, 0x48, 0x9f, 0xc5, 0x93, 0x72, 0x8c, 0xcf, 0x24, 0x47, 0xf9, 0xe1, 0x44, 0x14, 0x22, 0x6a,
+ 0xd2, 0xa7, 0x1e, 0x6d, 0x78, 0x70, 0x7e, 0xab, 0x20, 0xce, 0x28, 0xb1, 0x26, 0x0d, 0x07, 0x2e,
+ 0xfa, 0x42, 0x1c, 0x5d, 0x6b, 0x34, 0xdb, 0x66, 0x88, 0x63, 0x33, 0x6e, 0x92, 0x47, 0x8d, 0x71,
+ 0xc4, 0xea, 0x05, 0x0c, 0x17, 0x8a, 0xde, 0xd1, 0x90, 0x92, 0x71, 0xe8, 0x62, 0xc1, 0xad, 0x0a,
+ 0x0d, 0x6e, 0x65, 0x3f, 0xd4, 0xbd, 0x18, 0x4f, 0xb0, 0x6c, 0x95, 0x1a, 0xa6, 0x4e, 0xbd, 0x3e,
+ 0x1e, 0xf3, 0xf6, 0x0a, 0xc6, 0x3f, 0xf8, 0x3e, 0x89, 0x58, 0x03, 0xdf, 0x7c, 0x26, 0x86, 0x9b,
+ 0xdc, 0x64, 0x11, 0xbd, 0x0c, 0x01, 0xce, 0xdf, 0x1e, 0xd8, 0xcd, 0xc4, 0x16, 0xd8, 0x30, 0xd5,
+ 0x12, 0x86, 0x45, 0xbc, 0xb7, 0x46, 0xfd, 0xa1, 0xf7, 0xfd, 0x25, 0xaf, 0xbf, 0xaa, 0xd5, 0x4b,
+ 0xf7, 0x2c, 0xa3, 0xea, 0x48, 0xc5, 0xad, 0x9d, 0x86, 0x89, 0x9a, 0xce, 0x0e, 0x05, 0x35, 0xcb,
+ 0x32, 0x0b, 0x8e, 0x51, 0xd1, 0x6d, 0x47, 0xab, 0xd4, 0xa8, 0x0d, 0xee, 0xc8, 0x8f, 0xe3, 0xd7,
+ 0x7b, 0x96, 0x65, 0xae, 0xf2, 0x6f, 0xea, 0x4f, 0xf2, 0x67, 0xcd, 0x88, 0x31, 0x91, 0xc3, 0x35,
+ 0xd8, 0xc7, 0x37, 0x3f, 0x1a, 0x9b, 0x5c, 0xa8, 0xd3, 0x5e, 0x85, 0x1a, 0xed, 0xc6, 0xe8, 0x90,
+ 0x33, 0xa9, 0x93, 0x5e, 0x35, 0xf0, 0x8e, 0xa5, 0x1e, 0x42, 0xe3, 0xe6, 0xf9, 0x32, 0xa7, 0x55,
+ 0x6a, 0x9a, 0x51, 0xae, 0x72, 0x11, 0x7c, 0xbf, 0x13, 0x0d, 0x58, 0x64, 0x1f, 0xa4, 0x75, 0x13,
+ 0x9e, 0x71, 0x69, 0x74, 0x27, 0x01, 0xa9, 0x2c, 0x62, 0x17, 0xef, 0xe1, 0xeb, 0x4c, 0xf2, 0x19,
+ 0x58, 0x63, 0x6b, 0xd4, 0x3b, 0x00, 0x35, 0x37, 0x7b, 0x9d, 0xb8, 0x4f, 0xe4, 0xc7, 0x14, 0x38,
+ 0x12, 0x18, 0x98, 0x0a, 0x41, 0x8c, 0x6e, 0x17, 0x37, 0x74, 0x57, 0x5f, 0xf1, 0xfa, 0x7a, 0x2a,
+ 0xf9, 0x5a, 0x90, 0x73, 0xc5, 0x66, 0xc8, 0x32, 0xf3, 0x87, 0x7c, 0x43, 0xbb, 0x4d, 0xbc, 0xd3,
+ 0x0a, 0x22, 0x26, 0x3f, 0x0c, 0x7b, 0x1d, 0xcb, 0xd1, 0xcc, 0x48, 0x21, 0xa5, 0xd8, 0x42, 0x27,
+ 0x28, 0x96, 0x90, 0x88, 0xc8, 0xcf, 0x29, 0x70, 0x9c, 0x2b, 0x98, 0x1c, 0xab, 0x9d, 0x6d, 0xb1,
+ 0x7a, 0x14, 0x07, 0x59, 0x6d, 0xc9, 0x71, 0x05, 0x0e, 0x09, 0x82, 0x62, 0x39, 0xef, 0x92, 0x57,
+ 0xcf, 0x67, 0xf9, 0xc8, 0x91, 0x13, 0xa0, 0x5e, 0x42, 0x1d, 0x5d, 0xb4, 0xef, 0xd6, 0x1c, 0xbd,
+ 0x74, 0xb7, 0xe1, 0xdc, 0x5d, 0x67, 0x1d, 0xec, 0xd6, 0x81, 0xb0, 0xf3, 0xa8, 0xbc, 0x91, 0xc0,
+ 0xa8, 0xbc, 0x07, 0x61, 0xc0, 0xb0, 0x0b, 0x96, 0xfb, 0xbd, 0x60, 0x35, 0x1c, 0xf4, 0xaa, 0xc0,
+ 0x10, 0x20, 0xea, 0x73, 0x78, 0xeb, 0x13, 0xc2, 0x81, 0x97, 0x62, 0xc2, 0x5e, 0xcd, 0xa3, 0xef,
+ 0x9e, 0xd0, 0x11, 0x07, 0x4d, 0x30, 0x29, 0xea, 0x55, 0xdc, 0x08, 0x17, 0x74, 0x7d, 0xde, 0xb0,
+ 0xd9, 0xb5, 0x1b, 0x7a, 0xbc, 0x9e, 0x2d, 0x3c, 0x9e, 0xe9, 0xef, 0x29, 0xb8, 0x0d, 0xc6, 0x21,
+ 0x40, 0x1a, 0x9e, 0x05, 0x70, 0x0c, 0xbd, 0x2e, 0x9e, 0x8b, 0x94, 0xa3, 0x9d, 0xf9, 0x3e, 0xb7,
+ 0x85, 0xdd, 0xea, 0xe4, 0x61, 0x40, 0x78, 0xdf, 0xcd, 0x6b, 0x83, 0x44, 0xef, 0xc4, 0x33, 0xe0,
+ 0xaa, 0xa1, 0xd7, 0xe9, 0x68, 0xfd, 0x5a, 0x73, 0x68, 0x72, 0x17, 0xfa, 0x85, 0x51, 0x73, 0x4c,
+ 0xbc, 0x30, 0x98, 0x4a, 0x81, 0x72, 0x75, 0x75, 0x29, 0x0f, 0xdc, 0x9e, 0x39, 0xa6, 0xb0, 0x60,
+ 0x9e, 0x6e, 0x5c, 0x51, 0xb9, 0x50, 0x3e, 0xc3, 0x1f, 0xd0, 0x22, 0xfb, 0x88, 0x9d, 0x79, 0xf7,
+ 0xba, 0xae, 0x17, 0x4a, 0xf8, 0xbd, 0xb9, 0x9a, 0x94, 0x54, 0x5c, 0x0b, 0xbc, 0x63, 0xeb, 0xe1,
+ 0x46, 0xf5, 0x3a, 0x6e, 0x34, 0x18, 0xef, 0xbd, 0x6c, 0xd8, 0x15, 0xcd, 0x29, 0x7a, 0xee, 0x30,
+ 0x0f, 0x40, 0x7f, 0xa9, 0x61, 0x3b, 0x85, 0x75, 0xad, 0xe8, 0x58, 0x2c, 0x35, 0xa5, 0x23, 0x0f,
+ 0x6e, 0xd3, 0x02, 0x6d, 0x51, 0x7f, 0xab, 0x03, 0x86, 0x03, 0xd0, 0x44, 0x05, 0xdf, 0x99, 0x48,
+ 0x3e, 0x10, 0x93, 0xcc, 0x42, 0x9f, 0xb6, 0xa9, 0x19, 0xa9, 0x23, 0x20, 0x9a, 0x50, 0xe4, 0x02,
+ 0x74, 0x51, 0x23, 0x90, 0xc6, 0xc5, 0x67, 0x10, 0x64, 0x01, 0x06, 0x30, 0xd2, 0xbd, 0xb0, 0x61,
+ 0x99, 0x25, 0xcf, 0x23, 0x4b, 0xeb, 0xd7, 0x1f, 0x04, 0xbc, 0x65, 0x99, 0x25, 0xf2, 0x22, 0x0c,
+ 0xe9, 0x8f, 0x6a, 0x7a, 0xd1, 0x5d, 0xbf, 0x8c, 0x96, 0x6e, 0x79, 0x4c, 0x83, 0x1c, 0x94, 0x5a,
+ 0x1f, 0x32, 0x07, 0x50, 0x32, 0xd6, 0xf1, 0x01, 0x87, 0x5d, 0xbf, 0x4b, 0x9e, 0x80, 0x9a, 0x60,
+ 0xea, 0x8f, 0xe2, 0xde, 0x1e, 0x21, 0x66, 0xd4, 0xb6, 0x57, 0x80, 0x70, 0xd6, 0x2b, 0xe2, 0x2b,
+ 0xba, 0x32, 0x1f, 0x92, 0xc8, 0x14, 0xe0, 0x28, 0xf3, 0xa3, 0x6b, 0xc1, 0x31, 0xd4, 0x23, 0xb8,
+ 0xf8, 0xb1, 0xab, 0xeb, 0x28, 0xe6, 0x9a, 0xb3, 0x25, 0x4c, 0xd5, 0x2f, 0x67, 0x60, 0xb7, 0xa7,
+ 0x0b, 0x3b, 0x6c, 0xd1, 0xf9, 0xfc, 0x7f, 0xae, 0x4f, 0xea, 0x2f, 0x71, 0x6f, 0x3e, 0x76, 0x06,
+ 0x51, 0x8a, 0x55, 0xc8, 0xf2, 0x01, 0xe9, 0x0d, 0xba, 0x77, 0x74, 0xa9, 0xb0, 0x99, 0xc8, 0xf9,
+ 0xcf, 0xef, 0x59, 0x8b, 0x1e, 0x57, 0x6c, 0x43, 0x01, 0x93, 0xe8, 0xba, 0xd2, 0x86, 0xed, 0x18,
+ 0x45, 0x21, 0xdb, 0x0b, 0x30, 0xe8, 0xfb, 0x40, 0x08, 0x74, 0xba, 0x76, 0x1d, 0x6d, 0x3c, 0xfd,
+ 0xdb, 0x15, 0x61, 0x33, 0x35, 0xa8, 0x33, 0xcf, 0x7e, 0xa8, 0x36, 0xee, 0x60, 0x09, 0x63, 0x88,
+ 0x43, 0x2b, 0xd8, 0xa2, 0x55, 0x26, 0x4a, 0xde, 0x87, 0x27, 0xef, 0x01, 0x76, 0xfd, 0xff, 0x65,
+ 0xc3, 0xb1, 0x5e, 0xd2, 0x1a, 0x26, 0xdd, 0x26, 0x04, 0x23, 0x7f, 0xaa, 0xc0, 0x44, 0xf0, 0x0b,
+ 0x0e, 0xff, 0x3c, 0x8c, 0x54, 0x34, 0xdb, 0xd1, 0xeb, 0xfc, 0x8d, 0x52, 0xe7, 0x1b, 0xe9, 0x30,
+ 0x6b, 0x9f, 0xe5, 0xcd, 0xe4, 0x24, 0x8c, 0x97, 0xc4, 0x11, 0xc0, 0xd3, 0x9d, 0x3d, 0x85, 0x8c,
+ 0x35, 0xbf, 0x35, 0x41, 0x8e, 0xc0, 0x90, 0x5d, 0xb3, 0x1c, 0x4f, 0x67, 0xf6, 0x18, 0x34, 0xe8,
+ 0xb6, 0xfa, 0xba, 0x15, 0x5f, 0x9d, 0x39, 0xe1, 0xe9, 0xd6, 0xc9, 0xba, 0xb9, 0xad, 0xa2, 0x9b,
+ 0x3a, 0x8f, 0x76, 0x1f, 0x0f, 0xbe, 0xf3, 0x0b, 0x75, 0xab, 0x42, 0x59, 0xf2, 0xdc, 0x75, 0x6d,
+ 0xba, 0xbf, 0x0b, 0xfe, 0x9b, 0xcc, 0x01, 0xda, 0xc8, 0x5f, 0x5b, 0x79, 0x18, 0x55, 0x04, 0x16,
+ 0x9c, 0x93, 0xc4, 0xb3, 0x31, 0x3f, 0x5e, 0xdf, 0x32, 0x6c, 0xc7, 0xaa, 0x1b, 0x45, 0xe1, 0x6b,
+ 0x15, 0x2d, 0x8f, 0x2b, 0x95, 0x88, 0xc2, 0x41, 0xd3, 0x12, 0x87, 0x42, 0xdc, 0x0b, 0x0c, 0x72,
+ 0x97, 0x90, 0x7e, 0x90, 0xc9, 0x42, 0xf0, 0x21, 0x1a, 0x70, 0x3c, 0xbf, 0xd4, 0x3f, 0x52, 0x60,
+ 0x8c, 0x7e, 0x66, 0xc3, 0xba, 0xce, 0x95, 0x7b, 0x14, 0x24, 0x2f, 0x00, 0x61, 0xc3, 0x94, 0xeb,
+ 0x56, 0xa3, 0xe6, 0xba, 0xa3, 0xb6, 0x5e, 0x44, 0x15, 0x1f, 0xa1, 0x5f, 0x6e, 0xe2, 0x87, 0x15,
+ 0xbd, 0x48, 0xf6, 0x40, 0x4f, 0x45, 0x7b, 0x54, 0xd0, 0xca, 0x3a, 0x2a, 0x7c, 0x77, 0x45, 0x7b,
+ 0x34, 0x5b, 0xd6, 0xc9, 0x14, 0x8c, 0x19, 0xd5, 0xa2, 0xd9, 0x70, 0xe9, 0xd5, 0x5e, 0x2d, 0x6c,
+ 0xb0, 0x41, 0x30, 0xa4, 0x6f, 0x14, 0x3f, 0xe5, 0xb5, 0x57, 0x71, 0x74, 0x57, 0xf1, 0x78, 0x7f,
+ 0x71, 0x96, 0xa7, 0xaf, 0xbc, 0xf9, 0x61, 0x6c, 0xe7, 0x67, 0x74, 0xf5, 0x37, 0x14, 0xbc, 0xaf,
+ 0x17, 0x39, 0x16, 0x9a, 0x63, 0x98, 0x86, 0xb3, 0x25, 0xf5, 0x66, 0x59, 0x84, 0xdd, 0x8c, 0x3f,
+ 0x24, 0xc9, 0x75, 0x51, 0x5d, 0xc6, 0x65, 0x1c, 0xb1, 0x88, 0xf9, 0xca, 0x8f, 0x39, 0xe1, 0x46,
+ 0xf5, 0xd3, 0x19, 0x9f, 0x6e, 0x7a, 0x49, 0x14, 0xb9, 0x18, 0xb0, 0x29, 0x5a, 0xf1, 0x85, 0xef,
+ 0x40, 0xcb, 0xed, 0xb0, 0x09, 0x42, 0x5e, 0x86, 0x11, 0xce, 0x81, 0x98, 0xb0, 0x4c, 0xe8, 0x41,
+ 0x0b, 0x33, 0x78, 0xc5, 0x23, 0x0c, 0xf6, 0xf4, 0x18, 0x9e, 0x61, 0xc4, 0xc2, 0x3f, 0x91, 0x5b,
+ 0xd0, 0xef, 0x95, 0x58, 0x07, 0xd5, 0xb2, 0xe7, 0x24, 0xb5, 0x2c, 0x0f, 0x75, 0x21, 0x53, 0x91,
+ 0x48, 0x94, 0x33, 0xaa, 0x1a, 0x9f, 0x8a, 0x56, 0xef, 0xaa, 0x6a, 0x19, 0x83, 0xad, 0x03, 0x40,
+ 0xc2, 0x3c, 0x06, 0x9e, 0x7d, 0x12, 0xe5, 0xc5, 0x70, 0xa0, 0x50, 0x82, 0xaf, 0x3e, 0x0f, 0xe1,
+ 0x78, 0xe4, 0xd3, 0xff, 0x9c, 0x55, 0x2d, 0x19, 0x2c, 0x4a, 0x6c, 0xa7, 0x33, 0x8f, 0x7f, 0xbd,
+ 0x03, 0x0e, 0x85, 0x5e, 0xa5, 0x83, 0xe3, 0xfd, 0xe0, 0xc6, 0x77, 0xdc, 0x84, 0x01, 0xa7, 0x6e,
+ 0x94, 0xcb, 0x7a, 0xfd, 0x5e, 0xda, 0x07, 0x46, 0x1f, 0x60, 0xeb, 0x38, 0x8f, 0x23, 0xd0, 0x63,
+ 0xd8, 0xf4, 0x39, 0x9f, 0x7a, 0xa5, 0xbd, 0xb9, 0xfe, 0x77, 0xdf, 0x3a, 0xc0, 0x9b, 0xf2, 0xfc,
+ 0x8f, 0x40, 0x38, 0x48, 0x4f, 0x4c, 0x38, 0x48, 0x6f, 0x33, 0x1c, 0xe4, 0x33, 0x8a, 0x2f, 0xa8,
+ 0x2e, 0x51, 0x29, 0x44, 0xd2, 0xa7, 0x3f, 0x24, 0xe1, 0x4a, 0xaa, 0x90, 0x84, 0x20, 0x5e, 0x11,
+ 0x98, 0x70, 0x19, 0x0d, 0x08, 0x0f, 0xe0, 0x4f, 0x15, 0x54, 0xa9, 0xfe, 0x36, 0xbf, 0x08, 0x8b,
+ 0x00, 0x47, 0xba, 0x67, 0xa1, 0x33, 0x67, 0x88, 0x5d, 0xe4, 0xb8, 0x04, 0xd5, 0x9e, 0xf0, 0x09,
+ 0x0a, 0xea, 0xa2, 0x98, 0xb5, 0x1f, 0xf0, 0x8c, 0xcc, 0xb4, 0x28, 0x5c, 0x50, 0x71, 0xb1, 0xee,
+ 0x7f, 0xf7, 0x4c, 0xc7, 0xec, 0xef, 0x72, 0xcf, 0x32, 0x16, 0xc9, 0xfb, 0x8a, 0xe5, 0x6f, 0x2a,
+ 0x30, 0x1a, 0xfa, 0xf6, 0x54, 0x17, 0xbd, 0x7f, 0x99, 0x74, 0x04, 0x97, 0x49, 0xc8, 0xee, 0x75,
+ 0x46, 0x3c, 0x19, 0x2e, 0xe3, 0xc2, 0xc1, 0xd7, 0x64, 0xc7, 0xaa, 0x18, 0xc5, 0x1b, 0x8f, 0xf4,
+ 0x62, 0xc3, 0x55, 0xee, 0x05, 0x5d, 0x5f, 0x6e, 0x98, 0x8e, 0x51, 0x33, 0x0d, 0xbd, 0x2e, 0x25,
+ 0xd3, 0x4d, 0x7c, 0x42, 0x95, 0x41, 0x87, 0xd2, 0x9d, 0x03, 0xa8, 0x88, 0xd6, 0x34, 0xd3, 0xe8,
+ 0x01, 0x53, 0xcf, 0xf3, 0x5c, 0x6b, 0x2a, 0xd4, 0x15, 0x47, 0x7b, 0xa0, 0xdf, 0xac, 0x6b, 0xcd,
+ 0xe8, 0xcc, 0x49, 0xe8, 0x29, 0xbb, 0xbf, 0x75, 0x9d, 0x5f, 0x0f, 0xe1, 0x4f, 0xf5, 0x0b, 0x22,
+ 0x95, 0x3a, 0x04, 0x8a, 0x04, 0x5e, 0x81, 0x2e, 0xda, 0x19, 0x2f, 0x3f, 0x12, 0xb7, 0x54, 0x86,
+ 0x84, 0xc1, 0x33, 0x28, 0xb2, 0x02, 0xcd, 0x47, 0xbc, 0x02, 0x43, 0x24, 0x91, 0xd1, 0x25, 0xde,
+ 0xe1, 0x18, 0xae, 0x21, 0xdd, 0xf7, 0x5b, 0x5d, 0x45, 0x3b, 0x41, 0x7f, 0xcd, 0x36, 0x9c, 0x0d,
+ 0xab, 0x6e, 0xfc, 0x08, 0x0d, 0xe1, 0x0c, 0x71, 0x5c, 0xf7, 0x73, 0x5c, 0xf7, 0xce, 0x45, 0xc6,
+ 0x3f, 0x17, 0x1f, 0xc1, 0xeb, 0xa3, 0x28, 0xac, 0x38, 0x19, 0x67, 0xa0, 0x1b, 0xc3, 0x53, 0x99,
+ 0xa4, 0x9e, 0x45, 0x49, 0xed, 0x0e, 0x4b, 0x6a, 0xb1, 0xea, 0xe4, 0xb1, 0xb3, 0xb8, 0xb6, 0x0c,
+ 0x63, 0xb6, 0x5b, 0x12, 0xec, 0xba, 0xbc, 0x07, 0xe3, 0xa1, 0x45, 0xcc, 0x37, 0x61, 0xf7, 0xaf,
+ 0x14, 0xaa, 0x90, 0x86, 0xc8, 0x11, 0x0a, 0xc8, 0x90, 0xf3, 0x48, 0xe7, 0x6e, 0x8a, 0xc6, 0x96,
+ 0xb9, 0x29, 0x8f, 0x98, 0x2d, 0x84, 0x56, 0xcf, 0xa3, 0x27, 0x85, 0x6f, 0x53, 0xec, 0xf8, 0x2a,
+ 0xb5, 0x90, 0x34, 0x74, 0xa7, 0x02, 0x90, 0x62, 0xcd, 0xf4, 0xe0, 0xb1, 0x18, 0x95, 0xf2, 0xf9,
+ 0xd6, 0x39, 0xcd, 0x1c, 0x07, 0x87, 0x14, 0x95, 0x3d, 0x7c, 0x9f, 0x3d, 0x8f, 0x4d, 0xfb, 0x22,
+ 0xbf, 0xc6, 0xd6, 0x74, 0x48, 0x41, 0x42, 0xb3, 0xa6, 0xc3, 0x03, 0x18, 0xf4, 0x7d, 0x4a, 0x3e,
+ 0x03, 0x5c, 0x69, 0xb2, 0x9d, 0xc2, 0x60, 0x0a, 0x86, 0x4f, 0x8b, 0x78, 0xa1, 0xaa, 0x55, 0x59,
+ 0x36, 0xaa, 0x3c, 0xa9, 0x20, 0x39, 0x1b, 0xff, 0xe3, 0x22, 0x50, 0x28, 0x08, 0x85, 0x53, 0x71,
+ 0x29, 0xb0, 0x24, 0xe4, 0x7c, 0x2f, 0x5c, 0x18, 0x07, 0x62, 0xb0, 0x0b, 0x39, 0x7c, 0x4a, 0x84,
+ 0x54, 0x85, 0x3a, 0xe0, 0xf8, 0x1f, 0x87, 0x31, 0x96, 0xa4, 0x5f, 0x31, 0xaa, 0x22, 0xd9, 0x82,
+ 0x4b, 0xe5, 0x85, 0x96, 0x99, 0xfa, 0x5e, 0x96, 0x46, 0x4b, 0xc1, 0x51, 0x8e, 0x9d, 0x86, 0x3e,
+ 0x91, 0x7a, 0x4c, 0xc6, 0x61, 0xc4, 0xfd, 0xb7, 0x70, 0xbf, 0x6a, 0xd7, 0xf4, 0xa2, 0xb1, 0x6e,
+ 0xe8, 0xa5, 0x91, 0x5d, 0xa4, 0x07, 0x3a, 0x72, 0x8d, 0xad, 0x11, 0x85, 0xf4, 0x42, 0xe7, 0x8a,
+ 0x6e, 0x9a, 0x23, 0x99, 0x63, 0x2f, 0xc1, 0x78, 0x54, 0x5c, 0xb9, 0x8b, 0xc0, 0x03, 0x4b, 0x11,
+ 0x8f, 0xec, 0x22, 0x63, 0x30, 0xec, 0x1e, 0xdf, 0x5f, 0xb6, 0xea, 0xb6, 0xb3, 0x6a, 0xe5, 0x74,
+ 0xdb, 0x19, 0x51, 0x78, 0xa3, 0xfb, 0x6b, 0xd5, 0xa2, 0x9f, 0x46, 0x32, 0x33, 0xbf, 0x60, 0x41,
+ 0x17, 0x9d, 0x0e, 0xf2, 0xb6, 0x02, 0xbb, 0x97, 0x4e, 0x05, 0xdc, 0x86, 0x9c, 0x65, 0x3d, 0x20,
+ 0xd7, 0x5a, 0x96, 0x59, 0x49, 0xf6, 0x5a, 0xb2, 0xd7, 0xdb, 0x47, 0xc0, 0x44, 0xa2, 0x2e, 0xfc,
+ 0xc4, 0x37, 0xbf, 0xf3, 0xb9, 0xcc, 0x75, 0x72, 0x75, 0x3a, 0xa1, 0x9a, 0x53, 0xf3, 0xa6, 0x65,
+ 0x7a, 0xe9, 0x94, 0x20, 0x7f, 0xfa, 0xb1, 0xd0, 0xff, 0x27, 0xe4, 0x35, 0x05, 0x86, 0x97, 0x4e,
+ 0x09, 0x47, 0x90, 0xb2, 0x77, 0x41, 0x8a, 0xba, 0x28, 0xdf, 0x33, 0x7b, 0xb1, 0x1d, 0x50, 0x64,
+ 0xe9, 0x3a, 0x65, 0xe9, 0x22, 0x39, 0x9f, 0xc4, 0x92, 0x5d, 0xb3, 0x9c, 0x58, 0x66, 0xbe, 0xa8,
+ 0xc0, 0x58, 0x44, 0xb1, 0x20, 0x72, 0xb6, 0x25, 0x55, 0x91, 0xb5, 0x87, 0xb2, 0xe7, 0x52, 0xc3,
+ 0x21, 0x2b, 0x33, 0x94, 0x95, 0x17, 0xc8, 0xb1, 0x69, 0x89, 0xb2, 0x5c, 0x48, 0xe4, 0x5f, 0x29,
+ 0x40, 0xc2, 0xd5, 0x79, 0xc8, 0xc5, 0xb6, 0x4a, 0xfa, 0x30, 0xfa, 0x2f, 0x6d, 0xa3, 0x1c, 0x90,
+ 0x7a, 0x8d, 0xf2, 0x70, 0x81, 0x9c, 0x93, 0xe1, 0x61, 0xda, 0x0e, 0x53, 0xfe, 0x9a, 0x02, 0xa3,
+ 0x21, 0xfc, 0x12, 0xca, 0x15, 0x57, 0x02, 0x23, 0x7b, 0xb1, 0x1d, 0x50, 0xe4, 0xe6, 0x2a, 0xe5,
+ 0xe6, 0x3c, 0x39, 0xdb, 0x1e, 0x37, 0xe4, 0xcf, 0x14, 0x18, 0x09, 0x96, 0x1f, 0x22, 0xe7, 0xa5,
+ 0xf5, 0x23, 0xb0, 0xf7, 0x65, 0x2f, 0xb4, 0x01, 0x89, 0x9c, 0x5c, 0xa1, 0x9c, 0x9c, 0x23, 0x67,
+ 0xa4, 0x38, 0xd1, 0x83, 0x34, 0xff, 0xa5, 0x02, 0xc3, 0x81, 0x9a, 0x3e, 0xa4, 0xb5, 0x9e, 0x47,
+ 0x57, 0x44, 0xca, 0x9e, 0x4f, 0x0f, 0x98, 0xc6, 0x7e, 0x89, 0x86, 0x40, 0xe5, 0xa3, 0xe9, 0xc7,
+ 0x28, 0x9d, 0x27, 0x54, 0x2e, 0xc1, 0x12, 0x45, 0x24, 0x35, 0x59, 0x29, 0xe4, 0x12, 0x57, 0x0f,
+ 0x29, 0xa5, 0x5c, 0x82, 0xb5, 0x9c, 0xc8, 0xbf, 0x28, 0xb0, 0x3b, 0xb2, 0xce, 0x0c, 0xb9, 0x22,
+ 0x4f, 0x53, 0x44, 0xa1, 0xa2, 0xec, 0xd5, 0x76, 0xc1, 0x91, 0xaf, 0x3b, 0x94, 0xaf, 0x5b, 0x64,
+ 0x21, 0x1d, 0x5f, 0x5e, 0x5c, 0x3e, 0x23, 0xfd, 0x96, 0x02, 0x13, 0xd1, 0x05, 0x75, 0x48, 0x9b,
+ 0xa4, 0x0a, 0xe9, 0x5d, 0x6b, 0x1b, 0x1e, 0x79, 0x9d, 0xa3, 0xbc, 0x5e, 0x21, 0x97, 0xda, 0xe7,
+ 0xd5, 0x26, 0x5f, 0x51, 0x60, 0xc0, 0x5b, 0xa1, 0x88, 0x9c, 0x6e, 0x49, 0x56, 0x44, 0xe5, 0xa6,
+ 0xec, 0x99, 0x94, 0x50, 0xc8, 0x42, 0x8e, 0xb2, 0x70, 0x99, 0x5c, 0x94, 0x62, 0xc1, 0x57, 0x7b,
+ 0x69, 0xfa, 0x31, 0xfd, 0xf9, 0x84, 0x7c, 0x49, 0x81, 0x41, 0x5f, 0x8d, 0x25, 0x92, 0x8e, 0x18,
+ 0x21, 0x90, 0xb3, 0x69, 0xc1, 0x90, 0x89, 0x4b, 0x94, 0x89, 0x33, 0xe4, 0x54, 0x7a, 0x26, 0x6c,
+ 0xf2, 0x3b, 0x0a, 0xf4, 0x7b, 0x4a, 0x7e, 0x90, 0x53, 0xad, 0xb7, 0x8d, 0x50, 0xa9, 0x92, 0xec,
+ 0xe9, 0x74, 0x40, 0x48, 0xf7, 0x09, 0x4a, 0xf7, 0x31, 0x72, 0xb4, 0xa5, 0x0b, 0x83, 0x77, 0xcd,
+ 0xe4, 0x0b, 0x0a, 0x80, 0xa7, 0xbc, 0xcb, 0x4c, 0x8a, 0x61, 0x39, 0xa9, 0xa7, 0x52, 0xc1, 0x20,
+ 0xa5, 0x97, 0x29, 0xa5, 0x67, 0xc9, 0x69, 0x59, 0x4a, 0x7d, 0x6b, 0xf8, 0x4b, 0x0a, 0x0c, 0x07,
+ 0x2a, 0xab, 0x48, 0x6c, 0x22, 0xd1, 0x55, 0x61, 0x24, 0x36, 0x91, 0x98, 0x22, 0x2e, 0xea, 0x19,
+ 0xca, 0xc4, 0x34, 0x39, 0xde, 0x92, 0x89, 0xf5, 0x86, 0x69, 0x16, 0xf8, 0x9c, 0x7f, 0x2d, 0x5c,
+ 0x56, 0xe7, 0x6c, 0x4a, 0x1a, 0xe4, 0x3d, 0xc4, 0xe8, 0x5a, 0x2d, 0x29, 0x9c, 0x5d, 0x0f, 0xe9,
+ 0x3e, 0x19, 0x7c, 0x59, 0x81, 0x41, 0x9f, 0x23, 0x2d, 0xb1, 0x48, 0x23, 0x7d, 0xf6, 0xb3, 0x69,
+ 0xc1, 0xd2, 0xb8, 0x54, 0x94, 0x05, 0x8b, 0xc3, 0xfa, 0x18, 0x78, 0x43, 0x81, 0x91, 0x60, 0x8a,
+ 0xba, 0xc4, 0xd6, 0x1d, 0x53, 0xa3, 0x45, 0x62, 0xeb, 0x8e, 0xab, 0xf7, 0xa1, 0xde, 0xa6, 0x9c,
+ 0xdc, 0x20, 0x73, 0x72, 0x9c, 0xf8, 0xd6, 0xc2, 0xf4, 0x63, 0xdf, 0x15, 0xe8, 0x13, 0xf2, 0x1f,
+ 0x0a, 0x4c, 0xc6, 0x55, 0xfb, 0x20, 0xad, 0x0f, 0x7e, 0x2d, 0x0a, 0xc4, 0x64, 0x67, 0xb7, 0x81,
+ 0x01, 0xd9, 0xbd, 0x4f, 0xd9, 0xbd, 0x4b, 0x96, 0xdb, 0x61, 0x17, 0x59, 0x15, 0x2e, 0x18, 0x7f,
+ 0x42, 0x7f, 0x42, 0xbe, 0xe3, 0x1e, 0x60, 0x42, 0xe5, 0x7a, 0x64, 0x0e, 0x30, 0x71, 0xa5, 0x86,
+ 0x64, 0x0e, 0x30, 0xb1, 0xf5, 0x81, 0x52, 0xb3, 0x59, 0x58, 0xdb, 0xc2, 0x4c, 0xd4, 0x44, 0xf9,
+ 0x7e, 0x4d, 0x81, 0x91, 0x60, 0x7d, 0x60, 0x09, 0xb5, 0x8d, 0xa9, 0x5a, 0x9c, 0xbd, 0xd0, 0x06,
+ 0x24, 0x32, 0x78, 0x91, 0x32, 0x78, 0x9a, 0xcc, 0x24, 0x31, 0xc8, 0x45, 0x18, 0xe0, 0xe2, 0xbb,
+ 0x0a, 0xec, 0x6d, 0xae, 0x87, 0xd5, 0xba, 0x56, 0xb5, 0x0d, 0xbd, 0xfa, 0x54, 0x57, 0xa1, 0xbc,
+ 0xbc, 0x1c, 0x4e, 0x6e, 0x41, 0x62, 0x3d, 0xfe, 0x2d, 0xaa, 0xa5, 0x3f, 0xcd, 0x50, 0x52, 0x2d,
+ 0x23, 0x6b, 0xbf, 0x48, 0xaa, 0x65, 0x74, 0xc5, 0x17, 0xb9, 0x93, 0x0f, 0xdb, 0x79, 0x83, 0xd9,
+ 0x94, 0x3e, 0xf3, 0xf9, 0x6f, 0x0a, 0x4c, 0xc6, 0x95, 0x97, 0x91, 0xb0, 0x33, 0x2d, 0xea, 0xdb,
+ 0x48, 0xd8, 0x99, 0x56, 0xb5, 0x6d, 0xd4, 0x25, 0xca, 0xe9, 0x02, 0x99, 0x97, 0xbc, 0xa3, 0x4a,
+ 0xe6, 0xf7, 0x5b, 0x0a, 0x8c, 0x45, 0xdc, 0x88, 0x91, 0x4b, 0x29, 0x08, 0x0d, 0xed, 0x7d, 0x97,
+ 0xdb, 0x03, 0x46, 0x06, 0xe7, 0x29, 0x83, 0x57, 0xc9, 0x65, 0x49, 0x06, 0xa3, 0xf7, 0xc1, 0x7f,
+ 0x55, 0x60, 0x22, 0xba, 0xca, 0x80, 0xc4, 0x81, 0x28, 0xb1, 0xcc, 0x85, 0xc4, 0x81, 0x28, 0xb9,
+ 0xbc, 0x81, 0xfa, 0x61, 0xca, 0xe1, 0x6d, 0xb2, 0x98, 0x86, 0xc3, 0xe4, 0xf5, 0xf8, 0xb3, 0x19,
+ 0xd8, 0x9f, 0x5c, 0xdc, 0x80, 0x2c, 0xa4, 0xdc, 0xe3, 0xe2, 0xd8, 0xbf, 0xb9, 0x6d, 0x3c, 0x38,
+ 0x0d, 0x1f, 0xa3, 0xd3, 0x70, 0x9f, 0xac, 0xb4, 0x3f, 0x0d, 0xf1, 0xfb, 0xe6, 0x7f, 0xfb, 0x16,
+ 0x72, 0x60, 0xf7, 0xbc, 0x9e, 0x56, 0x41, 0x43, 0x7b, 0xe8, 0xec, 0x36, 0x30, 0x6c, 0x8b, 0x7d,
+ 0xc9, 0xfd, 0xf4, 0x7f, 0x14, 0x38, 0x10, 0xd4, 0xc2, 0xe0, 0x7e, 0xf4, 0xd4, 0xd7, 0x41, 0xda,
+ 0x19, 0x48, 0xb5, 0x43, 0xfd, 0x89, 0x02, 0xa3, 0xa1, 0x7c, 0x76, 0x89, 0x8b, 0xd2, 0xb8, 0xca,
+ 0x14, 0x12, 0x17, 0xa5, 0xb1, 0xe9, 0xf3, 0xea, 0x59, 0xca, 0xe9, 0x09, 0x32, 0x25, 0x6b, 0xb4,
+ 0x91, 0xdc, 0x6f, 0x28, 0x30, 0x12, 0xaa, 0xa8, 0x70, 0x3e, 0x35, 0x21, 0xf2, 0x7e, 0x44, 0x5c,
+ 0x5a, 0xbd, 0xdc, 0x0d, 0x48, 0x98, 0x03, 0x9f, 0x4d, 0xfe, 0xae, 0x02, 0x7b, 0x62, 0x12, 0xe1,
+ 0x25, 0x5e, 0x7f, 0x92, 0xd3, 0xf0, 0xb3, 0xd7, 0xdb, 0x47, 0x80, 0x2c, 0x2e, 0x52, 0x16, 0xe7,
+ 0xc8, 0x6c, 0x2a, 0x16, 0xb9, 0xc9, 0xf1, 0x71, 0xfa, 0xd7, 0x0a, 0x8c, 0x47, 0x65, 0x2e, 0x92,
+ 0xcb, 0x29, 0x1c, 0xd3, 0x50, 0x0a, 0x7f, 0xf6, 0x4a, 0x9b, 0xd0, 0x69, 0xae, 0x27, 0x44, 0x43,
+ 0x70, 0x41, 0xfd, 0xbe, 0x02, 0x63, 0xfc, 0xfe, 0xdc, 0x93, 0x3f, 0x29, 0x71, 0x13, 0x14, 0x4e,
+ 0xc4, 0x94, 0xb8, 0x09, 0x8a, 0x48, 0xd1, 0x94, 0xbb, 0x09, 0xaa, 0x50, 0xc0, 0x02, 0xcd, 0x8a,
+ 0x24, 0xbf, 0xa9, 0x40, 0x9f, 0xc8, 0xbb, 0x24, 0x27, 0x5b, 0x8e, 0x1a, 0x4c, 0xde, 0xcc, 0xce,
+ 0xa4, 0x01, 0x41, 0x32, 0x8f, 0x53, 0x32, 0x9f, 0x23, 0x47, 0x92, 0xc8, 0xac, 0x09, 0xaa, 0xde,
+ 0x54, 0x60, 0x2c, 0x22, 0xf5, 0x9f, 0xa4, 0x79, 0x68, 0x0a, 0xd1, 0x7d, 0xb9, 0x3d, 0x60, 0xe4,
+ 0xe0, 0x16, 0xe5, 0x20, 0x47, 0xae, 0x27, 0xba, 0xd3, 0x4d, 0xfd, 0x10, 0xcc, 0x84, 0xb4, 0xe6,
+ 0xdf, 0x15, 0xc8, 0xc6, 0xd7, 0x19, 0x20, 0xb9, 0x36, 0xc8, 0x0c, 0x14, 0x73, 0xc8, 0xce, 0x6d,
+ 0x0b, 0x47, 0x9a, 0xc5, 0x1f, 0xcb, 0xa6, 0x6f, 0xf1, 0xff, 0x62, 0x06, 0x0e, 0x4b, 0xe4, 0xf9,
+ 0x93, 0xdb, 0x29, 0xe8, 0x6e, 0x55, 0xd1, 0x22, 0xbb, 0xb4, 0x33, 0xc8, 0x70, 0x36, 0x56, 0xe8,
+ 0x6c, 0x2c, 0x93, 0xdb, 0x89, 0x96, 0x42, 0x84, 0x47, 0xc9, 0xcd, 0xcb, 0xdf, 0x29, 0x30, 0x16,
+ 0x91, 0xf9, 0x2f, 0xa1, 0xe7, 0xf1, 0x65, 0x0b, 0x24, 0xf4, 0x3c, 0xa1, 0x66, 0x81, 0x7a, 0x83,
+ 0xf2, 0x79, 0x8d, 0x5c, 0x49, 0x94, 0xba, 0x28, 0x3c, 0xe4, 0x29, 0xc5, 0xe4, 0xe3, 0xec, 0xdb,
+ 0x0a, 0xec, 0x89, 0x29, 0x0e, 0x20, 0xb1, 0xb1, 0x25, 0x57, 0x39, 0x90, 0xd8, 0xd8, 0x5a, 0x94,
+ 0x38, 0x90, 0x7d, 0xbd, 0x70, 0x91, 0xc4, 0xb2, 0xf8, 0x8e, 0x02, 0x13, 0xd1, 0x55, 0x04, 0x24,
+ 0xfc, 0xc8, 0xc4, 0x62, 0x08, 0x12, 0x7e, 0x64, 0x72, 0x25, 0x04, 0x39, 0x6b, 0x15, 0x92, 0x22,
+ 0x56, 0xaf, 0x0a, 0x09, 0x32, 0xa6, 0xfc, 0x81, 0x84, 0x20, 0x93, 0x6b, 0xc1, 0x48, 0x08, 0xb2,
+ 0x45, 0xe5, 0x05, 0x39, 0x41, 0xb2, 0xd8, 0x52, 0x9e, 0xa4, 0x10, 0x75, 0xd3, 0x36, 0x1a, 0x4e,
+ 0xd0, 0x96, 0xbc, 0x61, 0x8a, 0xa8, 0x2b, 0x20, 0xe1, 0x17, 0xc7, 0x96, 0x07, 0x50, 0xcf, 0x51,
+ 0x86, 0x4e, 0x92, 0xe9, 0x24, 0x86, 0x22, 0x32, 0xb3, 0xc9, 0xdf, 0x28, 0x30, 0x79, 0xaf, 0x99,
+ 0xeb, 0xfd, 0xbe, 0x60, 0x46, 0x2a, 0xb6, 0xc3, 0x9b, 0x05, 0x1f, 0x64, 0xea, 0x1b, 0x3c, 0x47,
+ 0xc8, 0x5f, 0x24, 0x40, 0xc2, 0x40, 0xc6, 0x97, 0x3e, 0x90, 0x30, 0x90, 0x09, 0x35, 0x11, 0xd4,
+ 0x0b, 0x94, 0xa7, 0x53, 0xe4, 0xa4, 0xb4, 0x80, 0x78, 0x2a, 0x3f, 0x79, 0x5b, 0x81, 0x89, 0xe8,
+ 0xdc, 0x6d, 0x09, 0x8b, 0x91, 0x98, 0x35, 0x2e, 0x61, 0x31, 0x92, 0x93, 0xc6, 0xd5, 0x9b, 0x94,
+ 0xad, 0x59, 0x72, 0x2d, 0x89, 0x2d, 0x5f, 0x2a, 0xb5, 0x37, 0x89, 0xdc, 0x13, 0x29, 0xe1, 0x8a,
+ 0x2c, 0x22, 0x73, 0x5a, 0x42, 0x64, 0xf1, 0xb9, 0xde, 0x12, 0x22, 0x4b, 0x48, 0x02, 0x97, 0x13,
+ 0x59, 0x64, 0x9a, 0x38, 0x79, 0x5d, 0x81, 0xd1, 0x50, 0xbe, 0xaf, 0xc4, 0x72, 0x8a, 0x4b, 0x05,
+ 0x97, 0x58, 0x4e, 0xb1, 0xe9, 0xc5, 0x72, 0xf7, 0x80, 0xe1, 0x04, 0xe4, 0xe9, 0xc7, 0x9e, 0xe4,
+ 0xf3, 0x27, 0xe4, 0x1f, 0x15, 0xd8, 0x13, 0x93, 0x02, 0x2b, 0x61, 0xd1, 0x93, 0xd3, 0x8f, 0x25,
+ 0x2c, 0x7a, 0x8b, 0xec, 0x5b, 0x39, 0x9b, 0xc1, 0xc3, 0x6e, 0x23, 0x12, 0x74, 0xc9, 0x3f, 0x29,
+ 0xb0, 0x37, 0x36, 0xcd, 0x95, 0xcc, 0xa6, 0xd1, 0xa4, 0xc8, 0x34, 0xdc, 0x6c, 0x6e, 0x3b, 0x28,
+ 0xd2, 0x44, 0x1e, 0xf8, 0x54, 0x92, 0x96, 0x74, 0x70, 0x8f, 0x70, 0x36, 0xf9, 0xbc, 0x02, 0x43,
+ 0xfe, 0xf4, 0xd9, 0xe4, 0x73, 0x5c, 0x64, 0x12, 0x6e, 0xf2, 0x39, 0x2e, 0x3a, 0x3b, 0x57, 0x3d,
+ 0x4d, 0xc9, 0x9e, 0x22, 0x2f, 0x24, 0x1e, 0x37, 0x0d, 0xc7, 0x2a, 0xb0, 0xbc, 0x57, 0x83, 0x12,
+ 0xf7, 0x86, 0x82, 0xf5, 0x7e, 0x42, 0x29, 0xae, 0x12, 0x2b, 0x29, 0x2e, 0xb9, 0x56, 0x62, 0x25,
+ 0xc5, 0x66, 0xd4, 0xca, 0x05, 0xe0, 0x30, 0x16, 0x84, 0x2f, 0x34, 0xfd, 0xd8, 0x97, 0xcb, 0x4b,
+ 0xbd, 0xf7, 0x89, 0xe8, 0x94, 0x59, 0x09, 0x73, 0x9e, 0x98, 0xae, 0x2b, 0x61, 0xce, 0x93, 0x73,
+ 0x75, 0xe5, 0x2e, 0x36, 0x36, 0x04, 0x8e, 0x82, 0x2f, 0xb1, 0x97, 0x9e, 0x4b, 0x22, 0x4a, 0xab,
+ 0x48, 0xd8, 0xf0, 0xf8, 0x6a, 0x2e, 0x12, 0x36, 0x3c, 0xa1, 0x9a, 0x8b, 0xdc, 0xb9, 0xc4, 0x5b,
+ 0xef, 0xa5, 0x60, 0xad, 0xe3, 0x06, 0x6c, 0x7b, 0x76, 0xa7, 0x7f, 0x56, 0x60, 0x6f, 0x6c, 0x15,
+ 0x17, 0x09, 0xe3, 0xd0, 0xaa, 0x54, 0x8c, 0x84, 0x71, 0x68, 0x59, 0x44, 0x46, 0x9d, 0xa5, 0xbc,
+ 0x5e, 0x22, 0x17, 0x12, 0x9d, 0xda, 0x08, 0x46, 0x0b, 0xa2, 0x7c, 0xd5, 0x6b, 0x0a, 0x8c, 0x04,
+ 0x53, 0x7f, 0x25, 0xae, 0x49, 0x63, 0x12, 0x9a, 0xb3, 0x17, 0xda, 0x80, 0x4c, 0xc3, 0x4c, 0xf3,
+ 0x7f, 0x58, 0x44, 0x70, 0xdf, 0x19, 0xe4, 0xab, 0x0a, 0x8c, 0x47, 0x64, 0xd2, 0xca, 0x84, 0x8b,
+ 0x45, 0x65, 0xfe, 0x4a, 0x44, 0xa2, 0x44, 0xe6, 0xfe, 0xca, 0x3d, 0x84, 0xaf, 0x51, 0x50, 0x9e,
+ 0xd4, 0x2d, 0xee, 0xad, 0x7f, 0x25, 0x03, 0x87, 0x5a, 0xe6, 0x74, 0x92, 0xc5, 0xd4, 0x0f, 0x08,
+ 0x71, 0xc9, 0xc2, 0xd9, 0x17, 0x77, 0x02, 0x15, 0x32, 0xfe, 0x43, 0x94, 0xf1, 0x97, 0xc9, 0xfd,
+ 0x74, 0xef, 0x52, 0xc5, 0x26, 0xc2, 0xc4, 0x87, 0x89, 0xef, 0x2b, 0xa0, 0xb6, 0xce, 0xb3, 0x23,
+ 0x2f, 0x4a, 0x2a, 0xa1, 0x44, 0xee, 0x5f, 0xf6, 0xf6, 0x8e, 0xe0, 0x4a, 0xe3, 0xb2, 0x68, 0x14,
+ 0x13, 0x7b, 0xa7, 0x29, 0xb8, 0x3b, 0x7b, 0x33, 0xe9, 0x8f, 0xfc, 0x85, 0x02, 0x23, 0xc1, 0xac,
+ 0x3d, 0x99, 0xe8, 0xe2, 0xe8, 0x1c, 0x41, 0x99, 0xe8, 0xe2, 0x98, 0x14, 0x41, 0xb9, 0x78, 0x31,
+ 0x8d, 0xdd, 0x71, 0xd9, 0x2e, 0x38, 0xcb, 0x52, 0x9b, 0x7e, 0x8c, 0x99, 0x77, 0x4f, 0xc8, 0x9b,
+ 0x0a, 0x90, 0x70, 0x22, 0x99, 0x44, 0x1c, 0x44, 0x6c, 0x06, 0xa0, 0x44, 0x1c, 0x44, 0x7c, 0x9e,
+ 0x9f, 0x5c, 0xd0, 0x15, 0xa6, 0xda, 0x79, 0x11, 0x70, 0x96, 0xea, 0x4f, 0x3c, 0xcc, 0xbd, 0xa1,
+ 0xc0, 0x58, 0x44, 0xee, 0x1e, 0x69, 0x87, 0xc2, 0x14, 0x1b, 0x63, 0x42, 0xba, 0xa0, 0xdc, 0x0d,
+ 0x48, 0x04, 0x7f, 0x76, 0x93, 0x41, 0x1a, 0xe3, 0xe7, 0xcf, 0x5e, 0x3b, 0x23, 0xb9, 0x3e, 0xfc,
+ 0x99, 0x80, 0x12, 0x96, 0x35, 0x32, 0x0d, 0x50, 0x2e, 0xc6, 0x0f, 0x2d, 0x08, 0x7a, 0xfb, 0xbe,
+ 0x1d, 0xe2, 0x0f, 0x5d, 0x8f, 0xd8, 0x97, 0xdf, 0x47, 0x52, 0x92, 0x92, 0x22, 0x19, 0x27, 0x3a,
+ 0x91, 0x50, 0x3d, 0x45, 0x79, 0x38, 0x4e, 0x3e, 0x24, 0xcf, 0x83, 0x4d, 0xfe, 0x9c, 0x3e, 0x67,
+ 0xfa, 0x53, 0xd5, 0xa4, 0x9e, 0x33, 0x23, 0x13, 0xff, 0xa4, 0x9e, 0x33, 0xa3, 0x93, 0xff, 0xe4,
+ 0x44, 0x10, 0x4e, 0xcf, 0x13, 0xc1, 0xdc, 0x5f, 0xa3, 0xaf, 0xcb, 0x81, 0xa4, 0x3b, 0x92, 0x9e,
+ 0xa0, 0x54, 0xaf, 0xcb, 0x31, 0x99, 0x84, 0x72, 0xb7, 0x68, 0x11, 0xb9, 0x86, 0xb9, 0x8d, 0xaf,
+ 0xbf, 0xbd, 0x5f, 0x79, 0xfd, 0xed, 0xfd, 0xca, 0xb7, 0xdf, 0xde, 0xaf, 0xfc, 0xfc, 0x3b, 0xfb,
+ 0x77, 0xbd, 0xfe, 0xce, 0xfe, 0x5d, 0x7f, 0xff, 0xce, 0xfe, 0x5d, 0xaf, 0xdc, 0x29, 0x1b, 0xce,
+ 0x46, 0x63, 0x6d, 0xaa, 0x68, 0x55, 0xa6, 0x17, 0x39, 0xd2, 0x25, 0x6d, 0xcd, 0x6e, 0x0e, 0x71,
+ 0xbc, 0x68, 0xd5, 0x75, 0xef, 0xcf, 0x0d, 0xcd, 0xa8, 0xe2, 0xeb, 0x9b, 0xdd, 0x1c, 0xdf, 0xd9,
+ 0xaa, 0xe9, 0xf6, 0x5a, 0x77, 0xad, 0x6e, 0x39, 0xd6, 0xa9, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff,
+ 0xe7, 0x6c, 0x75, 0xee, 0xb4, 0x81, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
diff --git a/chain/exchange/types/v2/authz_exchange_generic.go b/chain/exchange/types/v2/authz_exchange_generic.go
index f3756ad7..88c51f08 100644
--- a/chain/exchange/types/v2/authz_exchange_generic.go
+++ b/chain/exchange/types/v2/authz_exchange_generic.go
@@ -108,29 +108,26 @@ func (a GenericExchangeAuthorization) MsgTypeURL() string {
// the incoming message type, and it would not have been created if the
// message type was not allowed.
func (a GenericExchangeAuthorization) Accept(ctx context.Context, _ sdk.Msg) (authz.AcceptResponse, error) {
- newSpendLimit := a.SpendLimit
+ if noLimit := a.SpendLimit == nil; noLimit {
+ return authz.AcceptResponse{Accept: true, Updated: NewGenericExchangeAuthorization(a.Msg, nil)}, nil
+ }
+
+ hold, ok := getHold(ctx)
+ if !ok {
+ return authz.AcceptResponse{Accept: false}, nil
+ }
- // SpendLimit is optional, so we only check it if it is set
- if a.SpendLimit != nil {
- hold, ok := getHold(ctx)
- if !ok {
+ limit := a.SpendLimit
+ for _, coin := range hold {
+ allowance := limit.AmountOf(coin.Denom)
+ if allowance.LT(coin.Amount) {
return authz.AcceptResponse{Accept: false}, nil
}
- for _, coin := range hold {
- allowed := a.SpendLimit.AmountOf(coin.Denom)
- if allowed.LT(coin.Amount) {
- return authz.AcceptResponse{Accept: false}, nil
- }
- newSpendLimit = a.SpendLimit.Sub(sdk.NewCoin(coin.Denom, coin.Amount))
- }
- }
- updatedAuthorization := NewGenericExchangeAuthorization(
- a.Msg,
- newSpendLimit,
- )
+ limit = limit.Sub(sdk.NewCoin(coin.Denom, coin.Amount))
+ }
- return authz.AcceptResponse{Accept: true, Updated: updatedAuthorization}, nil
+ return authz.AcceptResponse{Accept: true, Updated: NewGenericExchangeAuthorization(a.Msg, limit)}, nil
}
// getHold returns the hold from the context. Hold is the amount of coins that
diff --git a/chain/exchange/types/v2/codec.go b/chain/exchange/types/v2/codec.go
index f90076d9..ca8f8b9d 100644
--- a/chain/exchange/types/v2/codec.go
+++ b/chain/exchange/types/v2/codec.go
@@ -35,6 +35,10 @@ func init() {
// RegisterLegacyAminoCodec registers the necessary x/exchange interfaces and concrete types
// on the provided LegacyAmino codec. These types are used for Amino JSON serialization.
func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
+ // Register oneof interfaces
+ cdc.RegisterInterface((*isOpenNotionalCap_Cap)(nil), nil)
+ cdc.RegisterInterface((*isFullDerivativeMarket_Info)(nil), nil)
+
cdc.RegisterConcrete(&MsgDeposit{}, "exchange/v2/MsgDeposit", nil)
cdc.RegisterConcrete(&MsgWithdraw{}, "exchange/v2/MsgWithdraw", nil)
cdc.RegisterConcrete(&MsgInstantSpotMarketLaunch{}, "exchange/v2/MsgInstantSpotMarketLaunch", nil)
@@ -54,7 +58,9 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&MsgSubaccountTransfer{}, "exchange/v2/MsgSubaccountTransfer", nil)
cdc.RegisterConcrete(&MsgExternalTransfer{}, "exchange/v2/MsgExternalTransfer", nil)
cdc.RegisterConcrete(&MsgIncreasePositionMargin{}, "exchange/v2/MsgIncreasePositionMargin", nil)
+ cdc.RegisterConcrete(&MsgDecreasePositionMargin{}, "exchange/v2/MsgDecreasePositionMargin", nil)
cdc.RegisterConcrete(&MsgLiquidatePosition{}, "exchange/v2/MsgLiquidatePosition", nil)
+ cdc.RegisterConcrete(&MsgEmergencySettleMarket{}, "exchange/v2/MsgEmergencySettleMarket", nil)
cdc.RegisterConcrete(&MsgOffsetPosition{}, "exchange/v2/MsgOffsetPosition", nil)
cdc.RegisterConcrete(&MsgBatchUpdateOrders{}, "exchange/v2/MsgBatchUpdateOrders", nil)
cdc.RegisterConcrete(&MsgPrivilegedExecuteContract{}, "exchange/v2/MsgPrivilegedExecuteContract", nil)
@@ -67,6 +73,26 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&MsgUpdateParams{}, "exchange/v2/MsgUpdateParams", nil)
cdc.RegisterConcrete(&MsgUpdateSpotMarket{}, "exchange/v2/MsgUpdateSpotMarket", nil)
cdc.RegisterConcrete(&MsgUpdateDerivativeMarket{}, "exchange/v2/MsgUpdateDerivativeMarket", nil)
+ cdc.RegisterConcrete(&MsgAuthorizeStakeGrants{}, "exchange/v2/MsgAuthorizeStakeGrants", nil)
+ cdc.RegisterConcrete(&MsgActivateStakeGrant{}, "exchange/v2/MsgActivateStakeGrant", nil)
+ cdc.RegisterConcrete(&MsgCancelPostOnlyMode{}, "exchange/v2/MsgCancelPostOnlyMode", nil)
+ cdc.RegisterConcrete(&MsgActivatePostOnlyMode{}, "exchange/v2/MsgActivatePostOnlyMode", nil)
+ cdc.RegisterConcrete(&MsgBatchExchangeModification{}, "exchange/v2/MsgBatchExchangeModification", nil)
+ cdc.RegisterConcrete(&MsgSpotMarketLaunch{}, "exchange/v2/MsgSpotMarketLaunch", nil)
+ cdc.RegisterConcrete(&MsgPerpetualMarketLaunch{}, "exchange/v2/MsgPerpetualMarketLaunch", nil)
+ cdc.RegisterConcrete(&MsgExpiryFuturesMarketLaunch{}, "exchange/v2/MsgExpiryFuturesMarketLaunch", nil)
+ cdc.RegisterConcrete(&MsgBinaryOptionsMarketLaunch{}, "exchange/v2/MsgBinaryOptionsMarketLaunch", nil)
+ cdc.RegisterConcrete(&MsgBatchCommunityPoolSpend{}, "exchange/v2/MsgBatchCommunityPoolSpend", nil)
+ cdc.RegisterConcrete(&MsgSpotMarketParamUpdate{}, "exchange/v2/MsgSpotMarketParamUpdate", nil)
+ cdc.RegisterConcrete(&MsgDerivativeMarketParamUpdate{}, "exchange/v2/MsgDerivativeMarketParamUpdate", nil)
+ cdc.RegisterConcrete(&MsgBinaryOptionsMarketParamUpdate{}, "exchange/v2/MsgBinaryOptionsMarketParamUpdate", nil)
+ cdc.RegisterConcrete(&MsgMarketForcedSettlement{}, "exchange/v2/MsgMarketForcedSettlement", nil)
+ cdc.RegisterConcrete(&MsgTradingRewardCampaignLaunch{}, "exchange/v2/MsgTradingRewardCampaignLaunch", nil)
+ cdc.RegisterConcrete(&MsgExchangeEnable{}, "exchange/v2/MsgExchangeEnable", nil)
+ cdc.RegisterConcrete(&MsgTradingRewardCampaignUpdate{}, "exchange/v2/MsgTradingRewardCampaignUpdate", nil)
+ cdc.RegisterConcrete(&MsgTradingRewardPendingPointsUpdate{}, "exchange/v2/MsgTradingRewardPendingPointsUpdate", nil)
+ cdc.RegisterConcrete(&MsgFeeDiscount{}, "exchange/v2/MsgFeeDiscount", nil)
+ cdc.RegisterConcrete(&MsgAtomicMarketOrderFeeMultiplierSchedule{}, "exchange/v2/MsgAtomicMarketOrderFeeMultiplierSchedule", nil)
cdc.RegisterConcrete(&ExchangeEnableProposal{}, "exchange/v2/ExchangeEnableProposal", nil)
cdc.RegisterConcrete(&BatchExchangeModificationProposal{}, "exchange/v2/BatchExchangeModificationProposal", nil)
@@ -93,6 +119,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
"exchange/v2/AtomicMarketOrderFeeMultiplierScheduleProposal",
nil,
)
+ cdc.RegisterConcrete(&MsgReclaimLockedFunds{}, "exchange/v2/MsgReclaimLockedFunds", nil)
+ cdc.RegisterConcrete(&DenomMinNotionalProposal{}, "exchange/v2/DenomMinNotionalProposal", nil)
cdc.RegisterConcrete(&CreateSpotLimitOrderAuthz{}, "exchange/v2/CreateSpotLimitOrderAuthz", nil)
cdc.RegisterConcrete(&CreateSpotMarketOrderAuthz{}, "exchange/v2/CreateSpotMarketOrderAuthz", nil)
@@ -108,6 +136,14 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&GenericExchangeAuthorization{}, "exchange/v2/GenericExchangeAuthorization", nil)
cdc.RegisterConcrete(&Params{}, "exchange/v2/Params", nil)
+
+ // Register oneof implementations for OpenNotionalCap
+ cdc.RegisterConcrete(&OpenNotionalCap_Uncapped{}, "exchange/v2/OpenNotionalCapUncapped", nil)
+ cdc.RegisterConcrete(&OpenNotionalCap_Capped{}, "exchange/v2/OpenNotionalCapCapped", nil)
+
+ // Register oneof implementations for FullDerivativeMarket
+ cdc.RegisterConcrete(&FullDerivativeMarket_PerpetualInfo{}, "exchange/v2/FullDerivativeMarketPerpetualInfo", nil)
+ cdc.RegisterConcrete(&FullDerivativeMarket_FuturesInfo{}, "exchange/v2/FullDerivativeMarketFuturesInfo", nil)
}
func RegisterInterfaces(registry types.InterfaceRegistry) {
@@ -131,7 +167,9 @@ func RegisterInterfaces(registry types.InterfaceRegistry) {
&MsgSubaccountTransfer{},
&MsgExternalTransfer{},
&MsgIncreasePositionMargin{},
+ &MsgDecreasePositionMargin{},
&MsgLiquidatePosition{},
+ &MsgEmergencySettleMarket{},
&MsgOffsetPosition{},
&MsgBatchUpdateOrders{},
&MsgPrivilegedExecuteContract{},
@@ -144,6 +182,11 @@ func RegisterInterfaces(registry types.InterfaceRegistry) {
&MsgUpdateParams{},
&MsgUpdateSpotMarket{},
&MsgUpdateDerivativeMarket{},
+ &MsgAuthorizeStakeGrants{},
+ &MsgActivateStakeGrant{},
+ &MsgCancelPostOnlyMode{},
+ &MsgActivatePostOnlyMode{},
+ &MsgReclaimLockedFunds{},
)
registry.RegisterImplementations(
diff --git a/chain/exchange/types/v2/common_utils.go b/chain/exchange/types/v2/common_utils.go
index 3b888332..57f7e359 100644
--- a/chain/exchange/types/v2/common_utils.go
+++ b/chain/exchange/types/v2/common_utils.go
@@ -2,9 +2,10 @@ package v2
import (
"cosmossdk.io/math"
- "github.com/InjectiveLabs/sdk-go/chain/exchange/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/ethereum/go-ethereum/common"
+
+ "github.com/InjectiveLabs/sdk-go/chain/exchange/types"
)
type SpotLimitOrderDelta struct {
diff --git a/chain/exchange/types/v2/deposit.go b/chain/exchange/types/v2/deposit.go
index aad9a3f6..5edd86c9 100644
--- a/chain/exchange/types/v2/deposit.go
+++ b/chain/exchange/types/v2/deposit.go
@@ -17,6 +17,10 @@ func (d *Deposit) IsEmpty() bool {
return d.AvailableBalance.IsZero() && d.TotalBalance.IsZero()
}
+func (d *Deposit) IsNegative() bool {
+ return d.AvailableBalance.IsNegative() || d.TotalBalance.IsNegative()
+}
+
func (d *Deposit) Display() string {
return fmt.Sprintf("Deposit Available: %s, Total: %s", getReadableDec(d.AvailableBalance), getReadableDec(d.TotalBalance))
}
diff --git a/chain/exchange/types/v2/derivative.go b/chain/exchange/types/v2/derivative.go
new file mode 100644
index 00000000..fe4d6cd4
--- /dev/null
+++ b/chain/exchange/types/v2/derivative.go
@@ -0,0 +1,1139 @@
+package v2 //nolint:revive // ok
+
+import (
+ "bytes"
+ "sort"
+
+ "cosmossdk.io/math"
+ "github.com/ethereum/go-ethereum/common"
+
+ "github.com/InjectiveLabs/sdk-go/chain/exchange/types"
+)
+
+// GetIsOrderLess returns true if the order is less than the other order
+func GetIsOrderLess( //nolint:revive // ok
+ referencePrice,
+ order1Price,
+ order2Price math.LegacyDec,
+ order1IsBuy,
+ order2IsBuy,
+ isSortingFromWorstToBest bool,
+) bool {
+ var firstDistanceToReferencePrice, secondDistanceToReferencePrice math.LegacyDec
+
+ if order1IsBuy {
+ firstDistanceToReferencePrice = referencePrice.Sub(order1Price)
+ } else {
+ firstDistanceToReferencePrice = order1Price.Sub(referencePrice)
+ }
+
+ if order2IsBuy {
+ secondDistanceToReferencePrice = referencePrice.Sub(order2Price)
+ } else {
+ secondDistanceToReferencePrice = order2Price.Sub(referencePrice)
+ }
+
+ if isSortingFromWorstToBest {
+ return firstDistanceToReferencePrice.GT(secondDistanceToReferencePrice)
+ }
+
+ return firstDistanceToReferencePrice.LT(secondDistanceToReferencePrice)
+}
+
+// GetDerivativeOrdersToCancelUpToAmount returns the Derivative orders to cancel up to a given amount
+func GetDerivativeOrdersToCancelUpToAmount(
+ market *DerivativeMarket,
+ orders []*TrimmedDerivativeLimitOrder,
+ strategy CancellationStrategy,
+ referencePrice *math.LegacyDec,
+ quoteAmount math.LegacyDec,
+) ([]*TrimmedDerivativeLimitOrder, bool) {
+ switch strategy {
+ case CancellationStrategy_FromWorstToBest:
+ sort.SliceStable(orders, func(i, j int) bool {
+ return GetIsOrderLess(*referencePrice, orders[i].Price, orders[j].Price, orders[i].IsBuy, orders[j].IsBuy, true)
+ })
+ case CancellationStrategy_FromBestToWorst:
+ sort.SliceStable(orders, func(i, j int) bool {
+ return GetIsOrderLess(*referencePrice, orders[i].Price, orders[j].Price, orders[i].IsBuy, orders[j].IsBuy, false)
+ })
+ default:
+ // do nothing
+ }
+
+ positiveMakerFeePart := math.LegacyMaxDec(math.LegacyZeroDec(), market.MakerFeeRate)
+
+ ordersToCancel := make([]*TrimmedDerivativeLimitOrder, 0)
+ cumulativeQuoteAmount := math.LegacyZeroDec()
+
+ for _, order := range orders {
+ hasSufficientQuote := cumulativeQuoteAmount.GTE(quoteAmount)
+ if hasSufficientQuote {
+ break
+ }
+
+ ordersToCancel = append(ordersToCancel, order)
+
+ notional := order.Fillable.Mul(order.Price)
+ fee := notional.Mul(positiveMakerFeePart)
+ remainingMargin := order.Margin.Mul(order.Fillable).Quo(order.Quantity)
+ cumulativeQuoteAmount = cumulativeQuoteAmount.Add(remainingMargin).Add(fee)
+ }
+
+ hasProcessedFullAmount := cumulativeQuoteAmount.GTE(quoteAmount)
+ return ordersToCancel, hasProcessedFullAmount
+}
+
+// ReduceOnlyOrdersTracker maps subaccountID => orders
+type ReduceOnlyOrdersTracker map[common.Hash][]*DerivativeLimitOrder
+
+func NewReduceOnlyOrdersTracker() ReduceOnlyOrdersTracker {
+ return make(map[common.Hash][]*DerivativeLimitOrder)
+}
+
+func (r ReduceOnlyOrdersTracker) GetSortedSubaccountIDs() []common.Hash {
+ subaccountIDs := make([]common.Hash, 0, len(r))
+ for subaccountID := range r {
+ subaccountIDs = append(subaccountIDs, subaccountID)
+ }
+
+ sort.SliceStable(subaccountIDs, func(i, j int) bool {
+ return bytes.Compare(subaccountIDs[i].Bytes(), subaccountIDs[j].Bytes()) < 0
+ })
+ return subaccountIDs
+}
+
+func (r ReduceOnlyOrdersTracker) GetCumulativeOrderQuantity(subaccountID common.Hash) math.LegacyDec {
+ cumulativeQuantity := math.LegacyZeroDec()
+ orders := r[subaccountID]
+
+ for idx := range orders {
+ cumulativeQuantity = cumulativeQuantity.Add(orders[idx].Fillable)
+ }
+
+ return cumulativeQuantity
+}
+
+func (r ReduceOnlyOrdersTracker) AppendOrder(subaccountID common.Hash, order *DerivativeLimitOrder) {
+ orders, ok := r[subaccountID]
+ if !ok {
+ r[subaccountID] = []*DerivativeLimitOrder{order}
+ return
+ }
+
+ r[subaccountID] = append(orders, order)
+}
+
+// ModifiedPositionCache maps marketID => subaccountID => position or nil indicator
+type ModifiedPositionCache map[common.Hash]map[common.Hash]*Position
+
+func NewModifiedPositionCache() ModifiedPositionCache {
+ return make(map[common.Hash]map[common.Hash]*Position)
+}
+
+func (c ModifiedPositionCache) SetPosition(marketID, subaccountID common.Hash, position *Position) {
+ if position == nil {
+ return
+ }
+
+ v, ok := c[marketID]
+ if !ok {
+ v = make(map[common.Hash]*Position)
+ c[marketID] = v
+ }
+
+ v[subaccountID] = position
+}
+
+func (c ModifiedPositionCache) SetPositionIndicator(marketID, subaccountID common.Hash) {
+ v, ok := c[marketID]
+ if !ok {
+ v = make(map[common.Hash]*Position)
+ c[marketID] = v
+ }
+
+ v[subaccountID] = nil
+}
+
+func (c ModifiedPositionCache) GetPosition(marketID, subaccountID common.Hash) *Position {
+ v, ok := c[marketID]
+ if !ok {
+ return nil
+ }
+ return v[subaccountID]
+}
+
+func (c ModifiedPositionCache) GetSortedSubaccountIDsByMarket(marketID common.Hash) []common.Hash {
+ v, ok := c[marketID]
+ if !ok {
+ return nil
+ }
+
+ subaccountIDs := make([]common.Hash, 0, len(v))
+ for subaccountID := range v {
+ subaccountIDs = append(subaccountIDs, subaccountID)
+ }
+
+ sort.SliceStable(subaccountIDs, func(i, j int) bool {
+ return bytes.Compare(subaccountIDs[i].Bytes(), subaccountIDs[j].Bytes()) < 0
+ })
+
+ return subaccountIDs
+}
+
+func (c ModifiedPositionCache) HasAnyModifiedPositionsInMarket(marketID common.Hash) bool {
+ _, found := c[marketID]
+ return found
+}
+
+func (c ModifiedPositionCache) HasPositionBeenModified(marketID, subaccountID common.Hash) bool {
+ v, ok := c[marketID]
+ if !ok {
+ return false
+ }
+ _, found := v[subaccountID]
+ return found
+}
+
+type DerivativeMatchingExpansionData struct {
+ TransientLimitBuyExpansions []*DerivativeOrderStateExpansion
+ TransientLimitSellExpansions []*DerivativeOrderStateExpansion
+ RestingLimitBuyExpansions []*DerivativeOrderStateExpansion
+ RestingLimitSellExpansions []*DerivativeOrderStateExpansion
+ RestingLimitBuyOrderCancels []*DerivativeLimitOrder
+ RestingLimitSellOrderCancels []*DerivativeLimitOrder
+ TransientLimitBuyOrderCancels []*DerivativeLimitOrder
+ TransientLimitSellOrderCancels []*DerivativeLimitOrder
+ ClearingPrice math.LegacyDec
+ ClearingQuantity math.LegacyDec
+ MarketBalanceDelta math.LegacyDec
+ OpenInterestDelta math.LegacyDec
+ NewRestingLimitBuyOrders []*DerivativeLimitOrder // transient buy orders that become new resting limit orders
+ NewRestingLimitSellOrders []*DerivativeLimitOrder // transient sell orders that become new resting limit orders
+ PartialCancelOrders map[common.Hash]struct{}
+}
+
+func NewDerivativeMatchingExpansionData(clearingPrice, clearingQuantity math.LegacyDec) *DerivativeMatchingExpansionData {
+ return &DerivativeMatchingExpansionData{
+ TransientLimitBuyExpansions: make([]*DerivativeOrderStateExpansion, 0),
+ TransientLimitSellExpansions: make([]*DerivativeOrderStateExpansion, 0),
+ RestingLimitBuyExpansions: make([]*DerivativeOrderStateExpansion, 0),
+ RestingLimitSellExpansions: make([]*DerivativeOrderStateExpansion, 0),
+ RestingLimitBuyOrderCancels: make([]*DerivativeLimitOrder, 0),
+ RestingLimitSellOrderCancels: make([]*DerivativeLimitOrder, 0),
+ TransientLimitBuyOrderCancels: make([]*DerivativeLimitOrder, 0),
+ TransientLimitSellOrderCancels: make([]*DerivativeLimitOrder, 0),
+ ClearingPrice: clearingPrice,
+ ClearingQuantity: clearingQuantity,
+ OpenInterestDelta: math.LegacyZeroDec(),
+ MarketBalanceDelta: math.LegacyZeroDec(),
+ NewRestingLimitBuyOrders: make([]*DerivativeLimitOrder, 0),
+ NewRestingLimitSellOrders: make([]*DerivativeLimitOrder, 0),
+ PartialCancelOrders: make(map[common.Hash]struct{}),
+ }
+}
+
+func (e *DerivativeMatchingExpansionData) AddExpansion(isBuy, isTransient bool, expansion *DerivativeOrderStateExpansion) {
+ e.MarketBalanceDelta = e.MarketBalanceDelta.Add(expansion.MarketBalanceDelta)
+
+ switch {
+ case isBuy && isTransient:
+ e.TransientLimitBuyExpansions = append(e.TransientLimitBuyExpansions, expansion)
+ case isBuy && !isTransient:
+ e.RestingLimitBuyExpansions = append(e.RestingLimitBuyExpansions, expansion)
+ case !isBuy && isTransient:
+ e.TransientLimitSellExpansions = append(e.TransientLimitSellExpansions, expansion)
+ case !isBuy && !isTransient:
+ e.RestingLimitSellExpansions = append(e.RestingLimitSellExpansions, expansion)
+ }
+}
+
+func (e *DerivativeMatchingExpansionData) AddNewBuyRestingLimitOrder(order *DerivativeLimitOrder) {
+ e.NewRestingLimitBuyOrders = append(e.NewRestingLimitBuyOrders, order)
+}
+
+func (e *DerivativeMatchingExpansionData) AddNewSellRestingLimitOrder(order *DerivativeLimitOrder) {
+ e.NewRestingLimitSellOrders = append(e.NewRestingLimitSellOrders, order)
+}
+
+func (e *DerivativeMatchingExpansionData) SetRestingLimitBuyOrderCancels(orders []*DerivativeLimitOrder) {
+ e.RestingLimitBuyOrderCancels = orders
+}
+
+func (e *DerivativeMatchingExpansionData) SetRestingLimitSellOrderCancels(orders []*DerivativeLimitOrder) {
+ e.RestingLimitSellOrderCancels = orders
+}
+
+func (e *DerivativeMatchingExpansionData) SetTransientLimitBuyOrderCancels(orders []*DerivativeLimitOrder) {
+ e.TransientLimitBuyOrderCancels = orders
+}
+
+func (e *DerivativeMatchingExpansionData) SetTransientLimitSellOrderCancels(orders []*DerivativeLimitOrder) {
+ e.TransientLimitSellOrderCancels = orders
+}
+
+func (e *DerivativeMatchingExpansionData) GetLimitMatchingDerivativeBatchExecutionData(
+ market DerivativeMarketI,
+ markPrice math.LegacyDec,
+ funding *PerpetualMarketFunding,
+ positionStates map[common.Hash]*PositionState,
+) *DerivativeBatchExecutionData {
+ depositDeltas := types.NewDepositDeltas()
+ tradingRewardPoints := types.NewTradingRewardPoints()
+
+ // process undermargined resting limit order forced cancellations
+ cancelLimitOrdersEvents, restingOrderCancelledDeltas, transientOrderCancelledDeltas :=
+ e.applyCancellationsAndGetDerivativeLimitCancelEvents(
+ market,
+ market.GetMakerFeeRate(),
+ market.GetTakerFeeRate(),
+ depositDeltas,
+ )
+
+ positions, positionSubaccountIDs := GetPositionSliceData(positionStates)
+
+ transientLimitBuyOrderBatchEvent, transientLimitBuyFilledDeltas := ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ true,
+ ExecutionType_LimitMatchNewOrder,
+ market,
+ funding,
+ e.TransientLimitBuyExpansions,
+ depositDeltas,
+ tradingRewardPoints,
+ false,
+ )
+ restingLimitBuyOrderBatchEvent, restingLimitBuyFilledDeltas := ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ true,
+ ExecutionType_LimitMatchRestingOrder,
+ market,
+ funding,
+ e.RestingLimitBuyExpansions,
+ depositDeltas,
+ tradingRewardPoints,
+ false,
+ )
+ transientLimitSellOrderBatchEvent, transientLimitSellFilledDeltas := ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ false,
+ ExecutionType_LimitMatchNewOrder,
+ market,
+ funding,
+ e.TransientLimitSellExpansions,
+ depositDeltas,
+ tradingRewardPoints,
+ false,
+ )
+ restingLimitSellOrderBatchEvent, restingLimitSellFilledDeltas := ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ false,
+ ExecutionType_LimitMatchRestingOrder,
+ market,
+ funding,
+ e.RestingLimitSellExpansions,
+ depositDeltas,
+ tradingRewardPoints,
+ false,
+ )
+
+ restingOrderFilledDeltas := mergeDerivativeLimitOrderFilledDeltas(restingLimitBuyFilledDeltas, restingLimitSellFilledDeltas)
+ transientOrderFilledDeltas := mergeDerivativeLimitOrderFilledDeltas(transientLimitBuyFilledDeltas, transientLimitSellFilledDeltas)
+
+ // sort keys since map iteration is non-deterministic
+ depositDeltaKeys := depositDeltas.GetSortedSubaccountKeys()
+
+ vwapData := NewVwapData()
+ vwapData = vwapData.ApplyExecution(e.ClearingPrice, e.ClearingQuantity)
+
+ var newOrdersEvent *EventNewDerivativeOrders
+ if len(e.NewRestingLimitBuyOrders) > 0 || len(e.NewRestingLimitSellOrders) > 0 {
+ newOrdersEvent = &EventNewDerivativeOrders{
+ MarketId: market.MarketID().String(),
+ BuyOrders: e.NewRestingLimitBuyOrders,
+ SellOrders: e.NewRestingLimitSellOrders,
+ }
+ }
+
+ // Final Step: Store the DerivativeBatchExecutionData for future reduction/processing
+ batch := &DerivativeBatchExecutionData{
+ Market: market,
+ MarkPrice: markPrice,
+ Funding: funding,
+ DepositDeltas: depositDeltas,
+ DepositSubaccountIDs: depositDeltaKeys,
+ TradingRewards: tradingRewardPoints,
+ Positions: positions,
+ MarketBalanceDelta: market.NotionalToChainFormat(e.MarketBalanceDelta),
+ OpenInterestDelta: e.OpenInterestDelta,
+ PositionSubaccountIDs: positionSubaccountIDs,
+ RestingLimitOrderFilledDeltas: restingOrderFilledDeltas,
+ TransientLimitOrderFilledDeltas: transientOrderFilledDeltas,
+ RestingLimitOrderCancelledDeltas: restingOrderCancelledDeltas,
+ TransientLimitOrderCancelledDeltas: transientOrderCancelledDeltas,
+ MarketBuyOrderExecutionEvent: nil,
+ MarketSellOrderExecutionEvent: nil,
+ RestingLimitBuyOrderExecutionEvent: restingLimitBuyOrderBatchEvent,
+ RestingLimitSellOrderExecutionEvent: restingLimitSellOrderBatchEvent,
+ TransientLimitBuyOrderExecutionEvent: transientLimitBuyOrderBatchEvent,
+ TransientLimitSellOrderExecutionEvent: transientLimitSellOrderBatchEvent,
+ NewOrdersEvent: newOrdersEvent,
+ CancelLimitOrderEvents: cancelLimitOrdersEvents,
+ CancelMarketOrderEvents: nil,
+ VwapData: vwapData,
+ PartialCancelOrders: e.PartialCancelOrders,
+ }
+
+ return batch
+}
+
+func (e *DerivativeMatchingExpansionData) applyCancellationsAndGetDerivativeLimitCancelEvents(
+ market DerivativeMarketI,
+ makerFeeRate math.LegacyDec,
+ takerFeeRate math.LegacyDec,
+ depositDeltas types.DepositDeltas,
+) (
+ cancelOrdersEvent []*EventCancelDerivativeOrder,
+ restingOrderCancelledDeltas []*DerivativeLimitOrderDelta,
+ transientOrderCancelledDeltas []*DerivativeLimitOrderDelta,
+) {
+ marketIDHex := market.MarketID().Hex()
+
+ cancelOrdersEvent = make(
+ []*EventCancelDerivativeOrder,
+ 0,
+ len(e.RestingLimitBuyOrderCancels)+
+ len(e.RestingLimitSellOrderCancels)+
+ len(e.TransientLimitBuyOrderCancels)+
+ len(e.TransientLimitSellOrderCancels),
+ )
+ restingOrderCancelledDeltas = make(
+ []*DerivativeLimitOrderDelta,
+ 0,
+ len(e.RestingLimitBuyOrderCancels)+len(e.RestingLimitSellOrderCancels),
+ )
+ transientOrderCancelledDeltas = make(
+ []*DerivativeLimitOrderDelta,
+ 0,
+ len(e.TransientLimitBuyOrderCancels)+len(e.TransientLimitSellOrderCancels),
+ )
+
+ for idx := range e.RestingLimitBuyOrderCancels {
+ order := e.RestingLimitBuyOrderCancels[idx]
+
+ applyDerivativeLimitCancellation(order, makerFeeRate, depositDeltas, market)
+ cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
+ MarketId: marketIDHex,
+ IsLimitCancel: true,
+ LimitOrder: order,
+ })
+ restingOrderCancelledDeltas = append(restingOrderCancelledDeltas, &DerivativeLimitOrderDelta{
+ Order: order,
+ FillQuantity: math.LegacyZeroDec(),
+ CancelQuantity: order.Fillable,
+ })
+ }
+
+ for idx := range e.RestingLimitSellOrderCancels {
+ order := e.RestingLimitSellOrderCancels[idx]
+
+ applyDerivativeLimitCancellation(order, makerFeeRate, depositDeltas, market)
+ cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
+ MarketId: marketIDHex,
+ IsLimitCancel: true,
+ LimitOrder: order,
+ })
+ restingOrderCancelledDeltas = append(restingOrderCancelledDeltas, &DerivativeLimitOrderDelta{
+ Order: order,
+ FillQuantity: math.LegacyZeroDec(),
+ CancelQuantity: order.Fillable,
+ })
+ }
+
+ for idx := range e.TransientLimitBuyOrderCancels {
+ order := e.TransientLimitBuyOrderCancels[idx]
+
+ applyDerivativeLimitCancellation(order, takerFeeRate, depositDeltas, market)
+ cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
+ MarketId: marketIDHex,
+ IsLimitCancel: true,
+ LimitOrder: order,
+ })
+ transientOrderCancelledDeltas = append(transientOrderCancelledDeltas, &DerivativeLimitOrderDelta{
+ Order: order,
+ FillQuantity: math.LegacyZeroDec(),
+ CancelQuantity: order.Fillable,
+ })
+ }
+
+ for idx := range e.TransientLimitSellOrderCancels {
+ order := e.TransientLimitSellOrderCancels[idx]
+ applyDerivativeLimitCancellation(order, takerFeeRate, depositDeltas, market)
+ cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
+ MarketId: marketIDHex,
+ IsLimitCancel: true,
+ LimitOrder: order,
+ })
+ transientOrderCancelledDeltas = append(transientOrderCancelledDeltas, &DerivativeLimitOrderDelta{
+ Order: order,
+ FillQuantity: math.LegacyZeroDec(),
+ CancelQuantity: order.Fillable,
+ })
+ }
+
+ return cancelOrdersEvent, restingOrderCancelledDeltas, transientOrderCancelledDeltas
+}
+
+func applyDerivativeLimitCancellation(
+ order *DerivativeLimitOrder,
+ orderFeeRate math.LegacyDec,
+ depositDeltas types.DepositDeltas,
+ market DerivativeMarketI,
+) {
+ // For vanilla orders, increment the available balance
+ if order.IsVanilla() {
+ depositDelta := order.GetCancelDepositDelta(orderFeeRate)
+ chainFormatDepositDelta := types.DepositDelta{
+ AvailableBalanceDelta: market.NotionalToChainFormat(depositDelta.AvailableBalanceDelta),
+ TotalBalanceDelta: market.NotionalToChainFormat(depositDelta.TotalBalanceDelta),
+ }
+ depositDeltas.ApplyDepositDelta(order.SubaccountID(), &chainFormatDepositDelta)
+ }
+}
+
+type DerivativeMarketOrderExpansionData struct {
+ MarketBuyExpansions []*DerivativeOrderStateExpansion
+ MarketSellExpansions []*DerivativeOrderStateExpansion
+ LimitBuyExpansions []*DerivativeOrderStateExpansion
+ LimitSellExpansions []*DerivativeOrderStateExpansion
+ RestingLimitBuyOrderCancels []*DerivativeLimitOrder
+ RestingLimitSellOrderCancels []*DerivativeLimitOrder
+ MarketBuyOrderCancels []*DerivativeMarketOrderCancel
+ MarketSellOrderCancels []*DerivativeMarketOrderCancel
+ MarketBuyClearingPrice math.LegacyDec
+ MarketSellClearingPrice math.LegacyDec
+ MarketBuyClearingQuantity math.LegacyDec
+ MarketSellClearingQuantity math.LegacyDec
+ MarketBalanceDelta math.LegacyDec
+ OpenInterestDelta math.LegacyDec
+}
+
+func (e *DerivativeMarketOrderExpansionData) SetSellExecutionData(
+ marketOrderClearingPrice, marketOrderClearingQuantity math.LegacyDec,
+ restingLimitOrderCancels []*DerivativeLimitOrder,
+ marketOrderStateExpansions,
+ restingLimitOrderStateExpansions []*DerivativeOrderStateExpansion,
+ marketOrderCancels []*DerivativeMarketOrderCancel,
+) {
+ e.MarketSellClearingPrice = marketOrderClearingPrice
+ e.MarketSellClearingQuantity = marketOrderClearingQuantity
+ e.RestingLimitBuyOrderCancels = restingLimitOrderCancels
+ e.MarketSellExpansions = marketOrderStateExpansions
+ e.LimitBuyExpansions = restingLimitOrderStateExpansions
+ e.MarketSellOrderCancels = marketOrderCancels
+
+ e.setExecutionData(marketOrderStateExpansions, restingLimitOrderStateExpansions)
+}
+
+func (e *DerivativeMarketOrderExpansionData) SetBuyExecutionData(
+ marketOrderClearingPrice, marketOrderClearingQuantity math.LegacyDec,
+ restingLimitOrderCancels []*DerivativeLimitOrder,
+ marketOrderStateExpansions,
+ restingLimitOrderStateExpansions []*DerivativeOrderStateExpansion,
+ marketOrderCancels []*DerivativeMarketOrderCancel,
+) {
+ e.MarketBuyClearingPrice = marketOrderClearingPrice
+ e.MarketBuyClearingQuantity = marketOrderClearingQuantity
+ e.RestingLimitSellOrderCancels = restingLimitOrderCancels
+ e.MarketBuyExpansions = marketOrderStateExpansions
+ e.LimitSellExpansions = restingLimitOrderStateExpansions
+ e.MarketBuyOrderCancels = marketOrderCancels
+
+ e.setExecutionData(marketOrderStateExpansions, restingLimitOrderStateExpansions)
+}
+
+func (e *DerivativeMarketOrderExpansionData) setExecutionData(
+ marketOrderStateExpansions,
+ restingLimitOrderStateExpansions []*DerivativeOrderStateExpansion,
+) {
+ if e.MarketBalanceDelta.IsNil() {
+ e.MarketBalanceDelta = math.LegacyZeroDec()
+ }
+
+ for idx := range marketOrderStateExpansions {
+ stateExpansion := marketOrderStateExpansions[idx]
+ e.MarketBalanceDelta = e.MarketBalanceDelta.Add(stateExpansion.MarketBalanceDelta)
+ }
+ for idx := range restingLimitOrderStateExpansions {
+ stateExpansion := restingLimitOrderStateExpansions[idx]
+ e.MarketBalanceDelta = e.MarketBalanceDelta.Add(stateExpansion.MarketBalanceDelta)
+ }
+}
+
+func (e *DerivativeMarketOrderExpansionData) GetMarketDerivativeBatchExecutionData( //nolint:revive // ok
+ market DerivativeMarketI,
+ markPrice math.LegacyDec,
+ funding *PerpetualMarketFunding,
+ positionStates map[common.Hash]*PositionState,
+ isLiquidation bool,
+) *DerivativeBatchExecutionData {
+ depositDeltas := types.NewDepositDeltas()
+ tradingRewardPoints := types.NewTradingRewardPoints()
+
+ // process undermargined limit order forced cancellations
+ cancelLimitOrdersEvents, restingOrderCancelledDeltas := e.applyCancellationsAndGetDerivativeLimitCancelEvents(
+ market,
+ market.GetMakerFeeRate(),
+ depositDeltas,
+ )
+
+ // process unfilled market order cancellations
+ cancelMarketOrdersEvents := e.getDerivativeMarketCancelEvents(market.MarketID())
+
+ positions, positionSubaccountIDs := GetPositionSliceData(positionStates)
+
+ buyMarketOrderBatchEvent, _ := ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ true,
+ ExecutionType_Market,
+ market,
+ funding,
+ e.MarketBuyExpansions,
+ depositDeltas,
+ tradingRewardPoints,
+ isLiquidation,
+ )
+ sellMarketOrderBatchEvent, _ := ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ false,
+ ExecutionType_Market,
+ market,
+ funding,
+ e.MarketSellExpansions,
+ depositDeltas,
+ tradingRewardPoints,
+ isLiquidation,
+ )
+
+ restingLimitBuyOrderBatchEvent, limitBuyFilledDeltas := ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ true,
+ ExecutionType_LimitFill,
+ market,
+ funding,
+ e.LimitBuyExpansions,
+ depositDeltas,
+ tradingRewardPoints,
+ false,
+ )
+ restingLimitSellOrderBatchEvent, limitSellFilledDeltas := ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ false,
+ ExecutionType_LimitFill,
+ market,
+ funding,
+ e.LimitSellExpansions,
+ depositDeltas,
+ tradingRewardPoints,
+ false,
+ )
+
+ filledDeltas := mergeDerivativeLimitOrderFilledDeltas(limitBuyFilledDeltas, limitSellFilledDeltas)
+
+ // sort keys since map iteration is non-deterministic
+ depositDeltaKeys := depositDeltas.GetSortedSubaccountKeys()
+
+ vwapData := NewVwapData()
+ vwapData = vwapData.ApplyExecution(e.MarketBuyClearingPrice, e.MarketBuyClearingQuantity)
+ vwapData = vwapData.ApplyExecution(e.MarketSellClearingPrice, e.MarketSellClearingQuantity)
+
+ // Final Step: Store the DerivativeBatchExecutionData for future reduction/processing
+ batch := &DerivativeBatchExecutionData{
+ Market: market,
+ MarkPrice: markPrice,
+ Funding: funding,
+ DepositDeltas: depositDeltas,
+ DepositSubaccountIDs: depositDeltaKeys,
+ TradingRewards: tradingRewardPoints,
+ Positions: positions,
+ MarketBalanceDelta: market.NotionalToChainFormat(e.MarketBalanceDelta),
+ PositionSubaccountIDs: positionSubaccountIDs,
+ TransientLimitOrderFilledDeltas: nil,
+ RestingLimitOrderFilledDeltas: filledDeltas,
+ TransientLimitOrderCancelledDeltas: nil,
+ RestingLimitOrderCancelledDeltas: restingOrderCancelledDeltas,
+ MarketBuyOrderExecutionEvent: buyMarketOrderBatchEvent,
+ MarketSellOrderExecutionEvent: sellMarketOrderBatchEvent,
+ RestingLimitBuyOrderExecutionEvent: restingLimitBuyOrderBatchEvent,
+ RestingLimitSellOrderExecutionEvent: restingLimitSellOrderBatchEvent,
+ TransientLimitBuyOrderExecutionEvent: nil,
+ TransientLimitSellOrderExecutionEvent: nil,
+ NewOrdersEvent: nil,
+ OpenInterestDelta: e.OpenInterestDelta,
+ CancelLimitOrderEvents: cancelLimitOrdersEvents,
+ CancelMarketOrderEvents: cancelMarketOrdersEvents,
+ VwapData: vwapData,
+ }
+ return batch
+}
+
+func (e *DerivativeMarketOrderExpansionData) getDerivativeMarketCancelEvents(marketID common.Hash) []*EventCancelDerivativeOrder {
+ marketIDHex := marketID.Hex()
+ cancelOrdersEvent := make([]*EventCancelDerivativeOrder, 0, len(e.MarketBuyOrderCancels)+len(e.MarketSellOrderCancels))
+
+ for idx := range e.MarketBuyOrderCancels {
+ orderCancel := e.MarketBuyOrderCancels[idx]
+ cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
+ MarketId: marketIDHex,
+ IsLimitCancel: false,
+ MarketOrderCancel: orderCancel,
+ })
+ }
+
+ for idx := range e.MarketSellOrderCancels {
+ orderCancel := e.MarketSellOrderCancels[idx]
+ cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
+ MarketId: marketIDHex,
+ IsLimitCancel: false,
+ MarketOrderCancel: orderCancel,
+ })
+ }
+ return cancelOrdersEvent
+}
+
+func (e *DerivativeMarketOrderExpansionData) applyCancellationsAndGetDerivativeLimitCancelEvents(
+ market DerivativeMarketI,
+ makerFeeRate math.LegacyDec,
+ depositDeltas types.DepositDeltas,
+) (
+ cancelOrdersEvent []*EventCancelDerivativeOrder,
+ restingOrderCancelledDeltas []*DerivativeLimitOrderDelta,
+) {
+ marketIDHex := market.MarketID().Hex()
+ cancelOrdersEvent = make([]*EventCancelDerivativeOrder, 0, len(e.RestingLimitBuyOrderCancels)+len(e.RestingLimitSellOrderCancels))
+
+ restingOrderCancelledDeltas = make(
+ []*DerivativeLimitOrderDelta, 0, len(e.RestingLimitBuyOrderCancels)+len(e.RestingLimitSellOrderCancels),
+ )
+
+ for idx := range e.RestingLimitBuyOrderCancels {
+ order := e.RestingLimitBuyOrderCancels[idx]
+ applyDerivativeLimitCancellation(order, makerFeeRate, depositDeltas, market)
+ cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
+ MarketId: marketIDHex,
+ IsLimitCancel: true,
+ LimitOrder: order,
+ })
+
+ restingOrderCancelledDeltas = append(restingOrderCancelledDeltas, &DerivativeLimitOrderDelta{
+ Order: order,
+ FillQuantity: math.LegacyZeroDec(),
+ CancelQuantity: order.Fillable,
+ })
+ }
+
+ for idx := range e.RestingLimitSellOrderCancels {
+ order := e.RestingLimitSellOrderCancels[idx]
+ applyDerivativeLimitCancellation(order, makerFeeRate, depositDeltas, market)
+ cancelOrdersEvent = append(cancelOrdersEvent, &EventCancelDerivativeOrder{
+ MarketId: marketIDHex,
+ IsLimitCancel: true,
+ LimitOrder: order,
+ })
+
+ restingOrderCancelledDeltas = append(restingOrderCancelledDeltas, &DerivativeLimitOrderDelta{
+ Order: order,
+ FillQuantity: math.LegacyZeroDec(),
+ CancelQuantity: order.Fillable,
+ })
+ }
+ return cancelOrdersEvent, restingOrderCancelledDeltas
+}
+
+func mergeDerivativeLimitOrderFilledDeltas(d1, d2 []*DerivativeLimitOrderDelta) []*DerivativeLimitOrderDelta {
+ filledDeltas := make([]*DerivativeLimitOrderDelta, 0, len(d1)+len(d2))
+ if len(d1) > 0 {
+ filledDeltas = append(filledDeltas, d1...)
+ }
+ if len(d2) > 0 {
+ filledDeltas = append(filledDeltas, d2...)
+ }
+ return filledDeltas
+}
+
+type VwapData struct {
+ Price math.LegacyDec
+ Quantity math.LegacyDec
+}
+
+func NewVwapData() *VwapData {
+ return &VwapData{
+ Price: math.LegacyZeroDec(),
+ Quantity: math.LegacyZeroDec(),
+ }
+}
+
+func (p *VwapData) ApplyExecution(price, quantity math.LegacyDec) *VwapData {
+ if p == nil {
+ p = NewVwapData()
+ }
+
+ if price.IsNil() || quantity.IsNil() || quantity.IsZero() {
+ return p
+ }
+
+ newQuantity := p.Quantity.Add(quantity)
+ newPrice := p.Price.Mul(p.Quantity).Add(price.Mul(quantity)).Quo(newQuantity)
+
+ return &VwapData{
+ Price: newPrice,
+ Quantity: newQuantity,
+ }
+}
+
+type VwapInfo struct {
+ MarkPrice *math.LegacyDec
+ VwapData *VwapData
+}
+
+func NewVwapInfo(markPrice *math.LegacyDec) *VwapInfo {
+ return &VwapInfo{
+ MarkPrice: markPrice,
+ VwapData: NewVwapData(),
+ }
+}
+
+type DerivativeVwapInfo struct {
+ PerpetualVwapInfo map[common.Hash]*VwapInfo
+ ExpiryVwapInfo map[common.Hash]*VwapInfo
+ BinaryOptionsVwapInfo map[common.Hash]*VwapInfo
+}
+
+func NewDerivativeVwapInfo() DerivativeVwapInfo {
+ return DerivativeVwapInfo{
+ PerpetualVwapInfo: make(map[common.Hash]*VwapInfo),
+ ExpiryVwapInfo: make(map[common.Hash]*VwapInfo),
+ BinaryOptionsVwapInfo: make(map[common.Hash]*VwapInfo),
+ }
+}
+
+func (p *DerivativeVwapInfo) ApplyVwap(marketID common.Hash, markPrice *math.LegacyDec, vwapData *VwapData, marketType types.MarketType) {
+ var vwapInfo *VwapInfo
+
+ switch marketType {
+ case types.MarketType_Perpetual:
+ vwapInfo = p.PerpetualVwapInfo[marketID]
+ if vwapInfo == nil {
+ vwapInfo = NewVwapInfo(markPrice)
+ p.PerpetualVwapInfo[marketID] = vwapInfo
+ }
+ case types.MarketType_Expiry:
+ vwapInfo = p.ExpiryVwapInfo[marketID]
+ if vwapInfo == nil {
+ vwapInfo = NewVwapInfo(markPrice)
+ p.ExpiryVwapInfo[marketID] = vwapInfo
+ }
+ case types.MarketType_BinaryOption:
+ vwapInfo = p.BinaryOptionsVwapInfo[marketID]
+ if vwapInfo == nil {
+ vwapInfo = NewVwapInfo(markPrice)
+ p.BinaryOptionsVwapInfo[marketID] = vwapInfo
+ }
+ default:
+ }
+
+ if !vwapData.Quantity.IsZero() {
+ vwapInfo.VwapData = vwapInfo.VwapData.ApplyExecution(vwapData.Price, vwapData.Quantity)
+ }
+}
+
+func (p *DerivativeVwapInfo) GetSortedPerpetualMarketIDs() []common.Hash {
+ perpetualMarketIDs := make([]common.Hash, 0)
+ for k := range p.PerpetualVwapInfo {
+ perpetualMarketIDs = append(perpetualMarketIDs, k)
+ }
+
+ sort.SliceStable(perpetualMarketIDs, func(i, j int) bool {
+ return bytes.Compare(perpetualMarketIDs[i].Bytes(), perpetualMarketIDs[j].Bytes()) < 0
+ })
+ return perpetualMarketIDs
+}
+
+func (p *DerivativeVwapInfo) GetSortedExpiryFutureMarketIDs() []common.Hash {
+ expiryFutureMarketIDs := make([]common.Hash, 0)
+ for k := range p.ExpiryVwapInfo {
+ expiryFutureMarketIDs = append(expiryFutureMarketIDs, k)
+ }
+
+ sort.SliceStable(expiryFutureMarketIDs, func(i, j int) bool {
+ return bytes.Compare(expiryFutureMarketIDs[i].Bytes(), expiryFutureMarketIDs[j].Bytes()) < 0
+ })
+ return expiryFutureMarketIDs
+}
+
+func (p *DerivativeVwapInfo) GetSortedBinaryOptionsMarketIDs() []common.Hash {
+ binaryOptionsMarketIDs := make([]common.Hash, 0)
+ for k := range p.BinaryOptionsVwapInfo {
+ binaryOptionsMarketIDs = append(binaryOptionsMarketIDs, k)
+ }
+
+ sort.SliceStable(binaryOptionsMarketIDs, func(i, j int) bool {
+ return bytes.Compare(binaryOptionsMarketIDs[i].Bytes(), binaryOptionsMarketIDs[j].Bytes()) < 0
+ })
+ return binaryOptionsMarketIDs
+}
+
+// ComputeSyntheticVwapUnitDelta returns (price - markPrice) / markPrice
+func (p *DerivativeVwapInfo) ComputeSyntheticVwapUnitDelta(marketID common.Hash) math.LegacyDec {
+ vwapInfo := p.PerpetualVwapInfo[marketID]
+ return vwapInfo.VwapData.Price.Sub(*vwapInfo.MarkPrice).Quo(*vwapInfo.MarkPrice)
+}
+
+// MergeAtomicPerpetualVwap merges accumulated atomic order VWAP data into this DerivativeVwapInfo.
+func (p *DerivativeVwapInfo) MergeAtomicPerpetualVwap(atomicVwapData map[common.Hash]*VwapInfo) {
+ for marketID, atomicInfo := range atomicVwapData {
+ if atomicInfo == nil || atomicInfo.MarkPrice == nil || atomicInfo.VwapData == nil {
+ continue
+ }
+
+ if atomicInfo.VwapData.Quantity.IsZero() {
+ continue
+ }
+
+ existingInfo := p.PerpetualVwapInfo[marketID]
+ if existingInfo == nil {
+ // No existing VWAP for this market, just use the atomic data
+ p.PerpetualVwapInfo[marketID] = atomicInfo
+ continue
+ }
+
+ // Merge the VWAP data: newVwap = (existingPrice * existingQty + atomicPrice * atomicQty) / (existingQty + atomicQty)
+ existingInfo.VwapData = existingInfo.VwapData.ApplyExecution(atomicInfo.VwapData.Price, atomicInfo.VwapData.Quantity)
+ }
+}
+
+type PositionState struct {
+ Position *Position
+}
+
+func NewPositionStates() map[common.Hash]*PositionState {
+ return make(map[common.Hash]*PositionState)
+}
+
+// ApplyFundingAndGetUpdatedPositionState updates the position to account for any funding payment and returns a PositionState.
+func ApplyFundingAndGetUpdatedPositionState(p *Position, funding *PerpetualMarketFunding) *PositionState {
+ p.ApplyFunding(funding)
+ positionState := &PositionState{
+ Position: p,
+ }
+ return positionState
+}
+
+func GetSortedSubaccountKeys(p map[common.Hash]*PositionState) []common.Hash {
+ subaccountKeys := make([]common.Hash, 0)
+ for k := range p {
+ subaccountKeys = append(subaccountKeys, k)
+ }
+ sort.SliceStable(subaccountKeys, func(i, j int) bool {
+ return bytes.Compare(subaccountKeys[i].Bytes(), subaccountKeys[j].Bytes()) < 0
+ })
+ return subaccountKeys
+}
+
+func GetPositionSliceData(p map[common.Hash]*PositionState) ([]*Position, []common.Hash) {
+ positionSubaccountIDs := GetSortedSubaccountKeys(p)
+ positions := make([]*Position, 0, len(positionSubaccountIDs))
+
+ nonNilPositionSubaccountIDs := make([]common.Hash, 0)
+ for idx := range positionSubaccountIDs {
+ subaccountID := positionSubaccountIDs[idx]
+ position := p[subaccountID]
+ if position.Position != nil {
+ positions = append(positions, position.Position)
+ nonNilPositionSubaccountIDs = append(nonNilPositionSubaccountIDs, subaccountID)
+ }
+ }
+
+ return positions, nonNilPositionSubaccountIDs
+}
+
+type DerivativeBatchExecutionData struct {
+ Market DerivativeMarketI
+
+ MarkPrice math.LegacyDec
+ Funding *PerpetualMarketFunding
+
+ // update the deposits for margin deductions, payouts and refunds
+ DepositDeltas types.DepositDeltas
+ DepositSubaccountIDs []common.Hash
+
+ TradingRewards types.TradingRewardPoints
+
+ // updated positions
+ Positions []*Position
+ MarketBalanceDelta math.LegacyDec
+ PositionSubaccountIDs []common.Hash
+ OpenInterestDelta math.LegacyDec
+
+ // resting limit order filled deltas to apply
+ TransientLimitOrderFilledDeltas []*DerivativeLimitOrderDelta
+ // resting limit order filled deltas to apply
+ RestingLimitOrderFilledDeltas []*DerivativeLimitOrderDelta
+ // transient limit order cancelled deltas to apply
+ TransientLimitOrderCancelledDeltas []*DerivativeLimitOrderDelta
+ // resting limit order cancelled deltas to apply
+ RestingLimitOrderCancelledDeltas []*DerivativeLimitOrderDelta
+
+ // events for batch market order and limit order execution
+ MarketBuyOrderExecutionEvent *EventBatchDerivativeExecution
+ MarketSellOrderExecutionEvent *EventBatchDerivativeExecution
+ RestingLimitBuyOrderExecutionEvent *EventBatchDerivativeExecution
+ RestingLimitSellOrderExecutionEvent *EventBatchDerivativeExecution
+ TransientLimitBuyOrderExecutionEvent *EventBatchDerivativeExecution
+ TransientLimitSellOrderExecutionEvent *EventBatchDerivativeExecution
+
+ // event for new orders to add to the orderbook
+ NewOrdersEvent *EventNewDerivativeOrders
+ CancelLimitOrderEvents []*EventCancelDerivativeOrder
+ CancelMarketOrderEvents []*EventCancelDerivativeOrder
+
+ VwapData *VwapData
+
+ // Orders that were partially filled then became invalid
+ // Used by persistence layer to handle partial cancellations correctly
+ PartialCancelOrders map[common.Hash]struct{}
+}
+
+func (d *DerivativeBatchExecutionData) GetAtomicDerivativeMarketOrderResults() *DerivativeMarketOrderResults {
+ var trade *DerivativeTradeLog
+
+ switch {
+ case d.MarketBuyOrderExecutionEvent != nil:
+ trade = d.MarketBuyOrderExecutionEvent.Trades[0]
+ case d.MarketSellOrderExecutionEvent != nil:
+ trade = d.MarketSellOrderExecutionEvent.Trades[0]
+ default:
+ return EmptyDerivativeMarketOrderResults()
+ }
+
+ return &DerivativeMarketOrderResults{
+ Quantity: trade.PositionDelta.ExecutionQuantity,
+ Price: trade.PositionDelta.ExecutionPrice,
+ Fee: trade.Fee,
+ PositionDelta: *trade.PositionDelta,
+ Payout: trade.Payout,
+ }
+}
+
+func ApplyDeltasAndGetDerivativeOrderBatchEvent(
+ isBuy bool,
+ executionType ExecutionType,
+ market DerivativeMarketI,
+ funding *PerpetualMarketFunding,
+ stateExpansions []*DerivativeOrderStateExpansion,
+ depositDeltas types.DepositDeltas,
+ tradingRewardPoints types.TradingRewardPoints,
+ isLiquidation bool,
+) (batch *EventBatchDerivativeExecution, filledDeltas []*DerivativeLimitOrderDelta) {
+ if len(stateExpansions) == 0 {
+ return
+ }
+
+ trades := make([]*DerivativeTradeLog, 0, len(stateExpansions))
+
+ if !executionType.IsMarket() {
+ filledDeltas = make([]*DerivativeLimitOrderDelta, 0, len(stateExpansions))
+ }
+
+ for idx := range stateExpansions {
+ expansion := stateExpansions[idx]
+
+ feeRecipientSubaccount := types.EthAddressToSubaccountID(expansion.FeeRecipient)
+ if bytes.Equal(feeRecipientSubaccount.Bytes(), common.Hash{}.Bytes()) {
+ feeRecipientSubaccount = types.AuctionSubaccountID
+ }
+
+ depositDeltas.ApplyDepositDelta(expansion.SubaccountID, &types.DepositDelta{
+ TotalBalanceDelta: market.NotionalToChainFormat(expansion.TotalBalanceDelta),
+ AvailableBalanceDelta: market.NotionalToChainFormat(expansion.AvailableBalanceDelta),
+ })
+ chainFormatFeeRecipientReward := market.NotionalToChainFormat(expansion.FeeRecipientReward)
+ chainFormatAuctionFeeReward := market.NotionalToChainFormat(expansion.AuctionFeeReward)
+ depositDeltas.ApplyUniformDelta(feeRecipientSubaccount, chainFormatFeeRecipientReward)
+ depositDeltas.ApplyUniformDelta(types.AuctionSubaccountID, chainFormatAuctionFeeReward)
+
+ sender := types.SubaccountIDToSdkAddress(expansion.SubaccountID)
+ tradingRewardPoints.AddPointsForAddress(sender.String(), expansion.TradingRewardPoints)
+
+ if !executionType.IsMarket() {
+ filledDeltas = append(filledDeltas, expansion.LimitOrderFilledDelta)
+ }
+
+ var realizedTradeFee math.LegacyDec
+
+ isSelfRelayedTrade := expansion.FeeRecipient == types.SubaccountIDToEthAddress(expansion.SubaccountID)
+ if isSelfRelayedTrade {
+ // if negative fee, equals the full negative rebate
+ // otherwise equals the fees going to auction
+ realizedTradeFee = expansion.AuctionFeeReward
+ } else {
+ realizedTradeFee = expansion.FeeRecipientReward.Add(expansion.AuctionFeeReward)
+ }
+
+ if expansion.PositionDelta != nil {
+ tradeLog := &DerivativeTradeLog{
+ SubaccountId: expansion.SubaccountID.Bytes(),
+ PositionDelta: expansion.PositionDelta,
+ Payout: expansion.Payout,
+ Fee: realizedTradeFee,
+ OrderHash: expansion.OrderHash.Bytes(),
+ FeeRecipientAddress: expansion.FeeRecipient.Bytes(),
+ Cid: expansion.Cid,
+ Pnl: expansion.Pnl,
+ }
+ trades = append(trades, tradeLog)
+ }
+ }
+
+ if len(trades) == 0 {
+ return nil, filledDeltas
+ }
+
+ batch = &EventBatchDerivativeExecution{
+ MarketId: market.MarketID().String(),
+ IsBuy: isBuy,
+ IsLiquidation: isLiquidation,
+ ExecutionType: executionType,
+ Trades: trades,
+ }
+ if funding != nil {
+ batch.CumulativeFunding = &funding.CumulativeFunding
+ }
+
+ return batch, filledDeltas
+}
+
+type DerivativeOrderStateExpansion struct {
+ SubaccountID common.Hash
+ PositionDelta *PositionDelta
+ Payout math.LegacyDec
+ Pnl math.LegacyDec
+ MarketBalanceDelta math.LegacyDec
+ OpenInterestDelta math.LegacyDec
+ TotalBalanceDelta math.LegacyDec
+ AvailableBalanceDelta math.LegacyDec
+ AuctionFeeReward math.LegacyDec
+ TradingRewardPoints math.LegacyDec
+ FeeRecipientReward math.LegacyDec
+ FeeRecipient common.Address
+ LimitOrderFilledDelta *DerivativeLimitOrderDelta
+ MarketOrderFilledDelta *DerivativeMarketOrderDelta
+ OrderHash common.Hash
+ Cid string
+}
+
+type DeficitPositions struct {
+ DerivativePosition *DerivativePosition
+ DeficitAmountAbs math.LegacyDec
+}
+
+type SocializedLossData struct {
+ PositionsReceivingHaircut []*Position
+ DeficitPositions []DeficitPositions
+ DeficitAmountAbs math.LegacyDec
+ SurplusAmount math.LegacyDec
+ TotalProfits math.LegacyDec
+ TotalPositivePayouts math.LegacyDec
+}
diff --git a/chain/exchange/types/v2/events.pb.go b/chain/exchange/types/v2/events.pb.go
index 523c1f8f..62e6033f 100644
--- a/chain/exchange/types/v2/events.pb.go
+++ b/chain/exchange/types/v2/events.pb.go
@@ -614,6 +614,50 @@ func (m *EventBinaryOptionsMarketUpdate) GetMarket() BinaryOptionsMarket {
return BinaryOptionsMarket{}
}
+type EventDerivativeMarketUpdate struct {
+ Market DerivativeMarket `protobuf:"bytes,1,opt,name=market,proto3" json:"market"`
+}
+
+func (m *EventDerivativeMarketUpdate) Reset() { *m = EventDerivativeMarketUpdate{} }
+func (m *EventDerivativeMarketUpdate) String() string { return proto.CompactTextString(m) }
+func (*EventDerivativeMarketUpdate) ProtoMessage() {}
+func (*EventDerivativeMarketUpdate) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8ac8f3da550fa1c4, []int{10}
+}
+func (m *EventDerivativeMarketUpdate) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventDerivativeMarketUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventDerivativeMarketUpdate.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventDerivativeMarketUpdate) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventDerivativeMarketUpdate.Merge(m, src)
+}
+func (m *EventDerivativeMarketUpdate) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventDerivativeMarketUpdate) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventDerivativeMarketUpdate.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventDerivativeMarketUpdate proto.InternalMessageInfo
+
+func (m *EventDerivativeMarketUpdate) GetMarket() DerivativeMarket {
+ if m != nil {
+ return m.Market
+ }
+ return DerivativeMarket{}
+}
+
type EventNewSpotOrders struct {
MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"`
BuyOrders []*SpotLimitOrder `protobuf:"bytes,2,rep,name=buy_orders,json=buyOrders,proto3" json:"buy_orders,omitempty"`
@@ -624,7 +668,7 @@ func (m *EventNewSpotOrders) Reset() { *m = EventNewSpotOrders{} }
func (m *EventNewSpotOrders) String() string { return proto.CompactTextString(m) }
func (*EventNewSpotOrders) ProtoMessage() {}
func (*EventNewSpotOrders) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{10}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{11}
}
func (m *EventNewSpotOrders) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -684,7 +728,7 @@ func (m *EventNewDerivativeOrders) Reset() { *m = EventNewDerivativeOrde
func (m *EventNewDerivativeOrders) String() string { return proto.CompactTextString(m) }
func (*EventNewDerivativeOrders) ProtoMessage() {}
func (*EventNewDerivativeOrders) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{11}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{12}
}
func (m *EventNewDerivativeOrders) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -743,7 +787,7 @@ func (m *EventCancelSpotOrder) Reset() { *m = EventCancelSpotOrder{} }
func (m *EventCancelSpotOrder) String() string { return proto.CompactTextString(m) }
func (*EventCancelSpotOrder) ProtoMessage() {}
func (*EventCancelSpotOrder) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{12}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{13}
}
func (m *EventCancelSpotOrder) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -794,7 +838,7 @@ func (m *EventSpotMarketUpdate) Reset() { *m = EventSpotMarketUpdate{} }
func (m *EventSpotMarketUpdate) String() string { return proto.CompactTextString(m) }
func (*EventSpotMarketUpdate) ProtoMessage() {}
func (*EventSpotMarketUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{13}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{14}
}
func (m *EventSpotMarketUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -840,7 +884,7 @@ func (m *EventPerpetualMarketUpdate) Reset() { *m = EventPerpetualMarket
func (m *EventPerpetualMarketUpdate) String() string { return proto.CompactTextString(m) }
func (*EventPerpetualMarketUpdate) ProtoMessage() {}
func (*EventPerpetualMarketUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{14}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{15}
}
func (m *EventPerpetualMarketUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -899,7 +943,7 @@ func (m *EventExpiryFuturesMarketUpdate) Reset() { *m = EventExpiryFutur
func (m *EventExpiryFuturesMarketUpdate) String() string { return proto.CompactTextString(m) }
func (*EventExpiryFuturesMarketUpdate) ProtoMessage() {}
func (*EventExpiryFuturesMarketUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{15}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{16}
}
func (m *EventExpiryFuturesMarketUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -954,7 +998,7 @@ func (m *EventPerpetualMarketFundingUpdate) Reset() { *m = EventPerpetua
func (m *EventPerpetualMarketFundingUpdate) String() string { return proto.CompactTextString(m) }
func (*EventPerpetualMarketFundingUpdate) ProtoMessage() {}
func (*EventPerpetualMarketFundingUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{16}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{17}
}
func (m *EventPerpetualMarketFundingUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1014,7 +1058,7 @@ func (m *EventSubaccountDeposit) Reset() { *m = EventSubaccountDeposit{}
func (m *EventSubaccountDeposit) String() string { return proto.CompactTextString(m) }
func (*EventSubaccountDeposit) ProtoMessage() {}
func (*EventSubaccountDeposit) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{17}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{18}
}
func (m *EventSubaccountDeposit) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1074,7 +1118,7 @@ func (m *EventSubaccountWithdraw) Reset() { *m = EventSubaccountWithdraw
func (m *EventSubaccountWithdraw) String() string { return proto.CompactTextString(m) }
func (*EventSubaccountWithdraw) ProtoMessage() {}
func (*EventSubaccountWithdraw) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{18}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{19}
}
func (m *EventSubaccountWithdraw) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1134,7 +1178,7 @@ func (m *EventSubaccountBalanceTransfer) Reset() { *m = EventSubaccountB
func (m *EventSubaccountBalanceTransfer) String() string { return proto.CompactTextString(m) }
func (*EventSubaccountBalanceTransfer) ProtoMessage() {}
func (*EventSubaccountBalanceTransfer) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{19}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{20}
}
func (m *EventSubaccountBalanceTransfer) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1192,7 +1236,7 @@ func (m *EventBatchDepositUpdate) Reset() { *m = EventBatchDepositUpdate
func (m *EventBatchDepositUpdate) String() string { return proto.CompactTextString(m) }
func (*EventBatchDepositUpdate) ProtoMessage() {}
func (*EventBatchDepositUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{20}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{21}
}
func (m *EventBatchDepositUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1237,7 +1281,7 @@ func (m *DerivativeMarketOrderCancel) Reset() { *m = DerivativeMarketOrd
func (m *DerivativeMarketOrderCancel) String() string { return proto.CompactTextString(m) }
func (*DerivativeMarketOrderCancel) ProtoMessage() {}
func (*DerivativeMarketOrderCancel) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{21}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{22}
}
func (m *DerivativeMarketOrderCancel) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1284,7 +1328,7 @@ func (m *EventCancelDerivativeOrder) Reset() { *m = EventCancelDerivativ
func (m *EventCancelDerivativeOrder) String() string { return proto.CompactTextString(m) }
func (*EventCancelDerivativeOrder) ProtoMessage() {}
func (*EventCancelDerivativeOrder) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{22}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{23}
}
func (m *EventCancelDerivativeOrder) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1349,7 +1393,7 @@ func (m *EventFeeDiscountSchedule) Reset() { *m = EventFeeDiscountSchedu
func (m *EventFeeDiscountSchedule) String() string { return proto.CompactTextString(m) }
func (*EventFeeDiscountSchedule) ProtoMessage() {}
func (*EventFeeDiscountSchedule) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{23}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{24}
}
func (m *EventFeeDiscountSchedule) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1394,7 +1438,7 @@ func (m *EventTradingRewardCampaignUpdate) Reset() { *m = EventTradingRe
func (m *EventTradingRewardCampaignUpdate) String() string { return proto.CompactTextString(m) }
func (*EventTradingRewardCampaignUpdate) ProtoMessage() {}
func (*EventTradingRewardCampaignUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{24}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{25}
}
func (m *EventTradingRewardCampaignUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1445,7 +1489,7 @@ func (m *EventTradingRewardDistribution) Reset() { *m = EventTradingRewa
func (m *EventTradingRewardDistribution) String() string { return proto.CompactTextString(m) }
func (*EventTradingRewardDistribution) ProtoMessage() {}
func (*EventTradingRewardDistribution) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{25}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{26}
}
func (m *EventTradingRewardDistribution) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1492,7 +1536,7 @@ func (m *EventNewConditionalDerivativeOrder) Reset() { *m = EventNewCond
func (m *EventNewConditionalDerivativeOrder) String() string { return proto.CompactTextString(m) }
func (*EventNewConditionalDerivativeOrder) ProtoMessage() {}
func (*EventNewConditionalDerivativeOrder) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{26}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{27}
}
func (m *EventNewConditionalDerivativeOrder) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1560,7 +1604,7 @@ func (m *EventCancelConditionalDerivativeOrder) Reset() { *m = EventCanc
func (m *EventCancelConditionalDerivativeOrder) String() string { return proto.CompactTextString(m) }
func (*EventCancelConditionalDerivativeOrder) ProtoMessage() {}
func (*EventCancelConditionalDerivativeOrder) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{27}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{28}
}
func (m *EventCancelConditionalDerivativeOrder) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1631,7 +1675,7 @@ func (m *EventConditionalDerivativeOrderTrigger) Reset() {
func (m *EventConditionalDerivativeOrderTrigger) String() string { return proto.CompactTextString(m) }
func (*EventConditionalDerivativeOrderTrigger) ProtoMessage() {}
func (*EventConditionalDerivativeOrderTrigger) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{28}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{29}
}
func (m *EventConditionalDerivativeOrderTrigger) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1706,7 +1750,7 @@ func (m *EventOrderFail) Reset() { *m = EventOrderFail{} }
func (m *EventOrderFail) String() string { return proto.CompactTextString(m) }
func (*EventOrderFail) ProtoMessage() {}
func (*EventOrderFail) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{29}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{30}
}
func (m *EventOrderFail) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1775,7 +1819,7 @@ func (m *EventAtomicMarketOrderFeeMultipliersUpdated) String() string {
}
func (*EventAtomicMarketOrderFeeMultipliersUpdated) ProtoMessage() {}
func (*EventAtomicMarketOrderFeeMultipliersUpdated) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{30}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{31}
}
func (m *EventAtomicMarketOrderFeeMultipliersUpdated) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1820,7 +1864,7 @@ func (m *EventOrderbookUpdate) Reset() { *m = EventOrderbookUpdate{} }
func (m *EventOrderbookUpdate) String() string { return proto.CompactTextString(m) }
func (*EventOrderbookUpdate) ProtoMessage() {}
func (*EventOrderbookUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{31}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{32}
}
func (m *EventOrderbookUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1872,7 +1916,7 @@ func (m *OrderbookUpdate) Reset() { *m = OrderbookUpdate{} }
func (m *OrderbookUpdate) String() string { return proto.CompactTextString(m) }
func (*OrderbookUpdate) ProtoMessage() {}
func (*OrderbookUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{32}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{33}
}
func (m *OrderbookUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1925,7 +1969,7 @@ func (m *Orderbook) Reset() { *m = Orderbook{} }
func (m *Orderbook) String() string { return proto.CompactTextString(m) }
func (*Orderbook) ProtoMessage() {}
func (*Orderbook) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{33}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{34}
}
func (m *Orderbook) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1984,7 +2028,7 @@ func (m *EventGrantAuthorizations) Reset() { *m = EventGrantAuthorizatio
func (m *EventGrantAuthorizations) String() string { return proto.CompactTextString(m) }
func (*EventGrantAuthorizations) ProtoMessage() {}
func (*EventGrantAuthorizations) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{34}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{35}
}
func (m *EventGrantAuthorizations) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2037,7 +2081,7 @@ func (m *EventGrantActivation) Reset() { *m = EventGrantActivation{} }
func (m *EventGrantActivation) String() string { return proto.CompactTextString(m) }
func (*EventGrantActivation) ProtoMessage() {}
func (*EventGrantActivation) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{35}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{36}
}
func (m *EventGrantActivation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2089,7 +2133,7 @@ func (m *EventInvalidGrant) Reset() { *m = EventInvalidGrant{} }
func (m *EventInvalidGrant) String() string { return proto.CompactTextString(m) }
func (*EventInvalidGrant) ProtoMessage() {}
func (*EventInvalidGrant) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{36}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{37}
}
func (m *EventInvalidGrant) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2144,7 +2188,7 @@ func (m *EventOrderCancelFail) Reset() { *m = EventOrderCancelFail{} }
func (m *EventOrderCancelFail) String() string { return proto.CompactTextString(m) }
func (*EventOrderCancelFail) ProtoMessage() {}
func (*EventOrderCancelFail) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{37}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{38}
}
func (m *EventOrderCancelFail) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2218,7 +2262,7 @@ func (m *EventDerivativeOrdersV2Migration) Reset() { *m = EventDerivativ
func (m *EventDerivativeOrdersV2Migration) String() string { return proto.CompactTextString(m) }
func (*EventDerivativeOrdersV2Migration) ProtoMessage() {}
func (*EventDerivativeOrdersV2Migration) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{38}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{39}
}
func (m *EventDerivativeOrdersV2Migration) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2287,7 +2331,7 @@ func (m *DerivativeOrderV2Changes) Reset() { *m = DerivativeOrderV2Chang
func (m *DerivativeOrderV2Changes) String() string { return proto.CompactTextString(m) }
func (*DerivativeOrderV2Changes) ProtoMessage() {}
func (*DerivativeOrderV2Changes) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{39}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{40}
}
func (m *DerivativeOrderV2Changes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2340,7 +2384,7 @@ func (m *EventSpotOrdersV2Migration) Reset() { *m = EventSpotOrdersV2Mig
func (m *EventSpotOrdersV2Migration) String() string { return proto.CompactTextString(m) }
func (*EventSpotOrdersV2Migration) ProtoMessage() {}
func (*EventSpotOrdersV2Migration) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{40}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{41}
}
func (m *EventSpotOrdersV2Migration) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2405,7 +2449,7 @@ func (m *EventTriggerConditionalMarketOrderFailed) Reset() {
func (m *EventTriggerConditionalMarketOrderFailed) String() string { return proto.CompactTextString(m) }
func (*EventTriggerConditionalMarketOrderFailed) ProtoMessage() {}
func (*EventTriggerConditionalMarketOrderFailed) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{41}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{42}
}
func (m *EventTriggerConditionalMarketOrderFailed) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2484,7 +2528,7 @@ func (m *EventTriggerConditionalLimitOrderFailed) Reset() {
func (m *EventTriggerConditionalLimitOrderFailed) String() string { return proto.CompactTextString(m) }
func (*EventTriggerConditionalLimitOrderFailed) ProtoMessage() {}
func (*EventTriggerConditionalLimitOrderFailed) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{42}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{43}
}
func (m *EventTriggerConditionalLimitOrderFailed) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2565,7 +2609,7 @@ func (m *SpotOrderV2Changes) Reset() { *m = SpotOrderV2Changes{} }
func (m *SpotOrderV2Changes) String() string { return proto.CompactTextString(m) }
func (*SpotOrderV2Changes) ProtoMessage() {}
func (*SpotOrderV2Changes) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{43}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{44}
}
func (m *SpotOrderV2Changes) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2616,7 +2660,7 @@ func (m *EventDerivativePositionV2Migration) Reset() { *m = EventDerivat
func (m *EventDerivativePositionV2Migration) String() string { return proto.CompactTextString(m) }
func (*EventDerivativePositionV2Migration) ProtoMessage() {}
func (*EventDerivativePositionV2Migration) Descriptor() ([]byte, []int) {
- return fileDescriptor_8ac8f3da550fa1c4, []int{44}
+ return fileDescriptor_8ac8f3da550fa1c4, []int{45}
}
func (m *EventDerivativePositionV2Migration) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2652,6 +2696,67 @@ func (m *EventDerivativePositionV2Migration) GetPosition() *DerivativePosition {
return nil
}
+type EventPositionTransfer struct {
+ MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"`
+ SourceSubaccountId string `protobuf:"bytes,2,opt,name=source_subaccount_id,json=sourceSubaccountId,proto3" json:"source_subaccount_id,omitempty"`
+ DestinationSubaccountId string `protobuf:"bytes,3,opt,name=destination_subaccount_id,json=destinationSubaccountId,proto3" json:"destination_subaccount_id,omitempty"`
+ Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"`
+}
+
+func (m *EventPositionTransfer) Reset() { *m = EventPositionTransfer{} }
+func (m *EventPositionTransfer) String() string { return proto.CompactTextString(m) }
+func (*EventPositionTransfer) ProtoMessage() {}
+func (*EventPositionTransfer) Descriptor() ([]byte, []int) {
+ return fileDescriptor_8ac8f3da550fa1c4, []int{46}
+}
+func (m *EventPositionTransfer) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventPositionTransfer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventPositionTransfer.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventPositionTransfer) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventPositionTransfer.Merge(m, src)
+}
+func (m *EventPositionTransfer) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventPositionTransfer) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventPositionTransfer.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventPositionTransfer proto.InternalMessageInfo
+
+func (m *EventPositionTransfer) GetMarketId() string {
+ if m != nil {
+ return m.MarketId
+ }
+ return ""
+}
+
+func (m *EventPositionTransfer) GetSourceSubaccountId() string {
+ if m != nil {
+ return m.SourceSubaccountId
+ }
+ return ""
+}
+
+func (m *EventPositionTransfer) GetDestinationSubaccountId() string {
+ if m != nil {
+ return m.DestinationSubaccountId
+ }
+ return ""
+}
+
func init() {
proto.RegisterType((*EventBatchSpotExecution)(nil), "injective.exchange.v2.EventBatchSpotExecution")
proto.RegisterType((*EventBatchDerivativeExecution)(nil), "injective.exchange.v2.EventBatchDerivativeExecution")
@@ -2663,6 +2768,7 @@ func init() {
proto.RegisterType((*EventMarketBeyondBankruptcy)(nil), "injective.exchange.v2.EventMarketBeyondBankruptcy")
proto.RegisterType((*EventAllPositionsHaircut)(nil), "injective.exchange.v2.EventAllPositionsHaircut")
proto.RegisterType((*EventBinaryOptionsMarketUpdate)(nil), "injective.exchange.v2.EventBinaryOptionsMarketUpdate")
+ proto.RegisterType((*EventDerivativeMarketUpdate)(nil), "injective.exchange.v2.EventDerivativeMarketUpdate")
proto.RegisterType((*EventNewSpotOrders)(nil), "injective.exchange.v2.EventNewSpotOrders")
proto.RegisterType((*EventNewDerivativeOrders)(nil), "injective.exchange.v2.EventNewDerivativeOrders")
proto.RegisterType((*EventCancelSpotOrder)(nil), "injective.exchange.v2.EventCancelSpotOrder")
@@ -2698,6 +2804,7 @@ func init() {
proto.RegisterType((*EventTriggerConditionalLimitOrderFailed)(nil), "injective.exchange.v2.EventTriggerConditionalLimitOrderFailed")
proto.RegisterType((*SpotOrderV2Changes)(nil), "injective.exchange.v2.SpotOrderV2Changes")
proto.RegisterType((*EventDerivativePositionV2Migration)(nil), "injective.exchange.v2.EventDerivativePositionV2Migration")
+ proto.RegisterType((*EventPositionTransfer)(nil), "injective.exchange.v2.EventPositionTransfer")
}
func init() {
@@ -2705,158 +2812,162 @@ func init() {
}
var fileDescriptor_8ac8f3da550fa1c4 = []byte{
- // 2401 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0xbb, 0x6f, 0x1c, 0xc7,
- 0x19, 0xd7, 0x1e, 0x29, 0x8a, 0xf7, 0x1d, 0x45, 0x8a, 0x2b, 0x51, 0xa6, 0x24, 0x8b, 0xa4, 0xd6,
- 0x7a, 0x59, 0xb6, 0xef, 0x2c, 0x1a, 0x81, 0x8b, 0xbc, 0xc0, 0xa7, 0x44, 0x83, 0x94, 0xe9, 0xa5,
- 0x64, 0x07, 0x09, 0x8c, 0xcd, 0xdc, 0xee, 0xf0, 0x6e, 0xcc, 0xbd, 0x9d, 0xe5, 0xce, 0xec, 0x49,
- 0x97, 0xce, 0x41, 0x0a, 0x77, 0x4e, 0x13, 0xc4, 0x4d, 0xba, 0x74, 0x69, 0x92, 0x2e, 0x40, 0x8a,
- 0x20, 0x6e, 0xe2, 0xd2, 0x49, 0x65, 0x18, 0x88, 0x11, 0x48, 0x55, 0xfe, 0x86, 0x34, 0xc1, 0x3c,
- 0xf6, 0x71, 0xef, 0x3b, 0x4a, 0x41, 0x02, 0x77, 0xbb, 0xb3, 0xdf, 0x6b, 0x7e, 0xdf, 0x63, 0xbe,
- 0x6f, 0xee, 0xc0, 0x22, 0xc1, 0x47, 0xd8, 0xe5, 0xa4, 0x89, 0x2b, 0xf8, 0x89, 0x5b, 0x47, 0x41,
- 0x0d, 0x57, 0x9a, 0xab, 0x15, 0xdc, 0xc4, 0x01, 0x67, 0xe5, 0x30, 0xa2, 0x9c, 0x9a, 0x0b, 0x29,
- 0x4d, 0x39, 0xa1, 0x29, 0x37, 0x57, 0x2f, 0x5f, 0xa8, 0xd1, 0x1a, 0x95, 0x14, 0x15, 0xf1, 0xa4,
- 0x88, 0x2f, 0x2f, 0xb9, 0x94, 0x35, 0x28, 0xab, 0x54, 0x11, 0xc3, 0x95, 0xe6, 0xdd, 0x2a, 0xe6,
- 0xe8, 0x6e, 0xc5, 0xa5, 0x24, 0xd0, 0xdf, 0x6f, 0x64, 0x0a, 0x69, 0x84, 0x5c, 0x3f, 0x23, 0x52,
- 0xaf, 0x9a, 0xec, 0x7a, 0x1f, 0xbb, 0x12, 0xfd, 0x8a, 0xaa, 0x8f, 0xf5, 0x0d, 0x14, 0x1d, 0x61,
- 0xae, 0x69, 0xae, 0xf5, 0xa6, 0xa1, 0x91, 0x87, 0x23, 0x45, 0x62, 0xfd, 0xdd, 0x80, 0x97, 0xb6,
- 0xc4, 0x8e, 0xd7, 0x11, 0x77, 0xeb, 0x07, 0x21, 0xe5, 0x5b, 0x4f, 0xb0, 0x1b, 0x73, 0x42, 0x03,
- 0xf3, 0x0a, 0x14, 0x95, 0x38, 0x87, 0x78, 0x8b, 0xc6, 0x8a, 0x71, 0xbb, 0x68, 0x4f, 0xab, 0x85,
- 0x1d, 0xcf, 0x5c, 0x80, 0x29, 0xc2, 0x9c, 0x6a, 0xdc, 0x5a, 0x2c, 0xac, 0x18, 0xb7, 0xa7, 0xed,
- 0xd3, 0x84, 0xad, 0xc7, 0x2d, 0xf3, 0x1d, 0x38, 0x8b, 0x13, 0x01, 0x0f, 0x5b, 0x21, 0x5e, 0x9c,
- 0x58, 0x31, 0x6e, 0xcf, 0xae, 0x5e, 0x2f, 0xf7, 0x04, 0xb2, 0xbc, 0x95, 0xa7, 0xb5, 0xdb, 0x59,
- 0xcd, 0xb7, 0x61, 0x8a, 0x47, 0xc8, 0xc3, 0x6c, 0x71, 0x72, 0x65, 0xe2, 0x76, 0x69, 0x75, 0xb9,
- 0x8f, 0x90, 0x87, 0x82, 0x68, 0x97, 0xd6, 0x6c, 0x4d, 0x6e, 0xfd, 0xa3, 0x00, 0x57, 0xb3, 0x4d,
- 0x6d, 0xe2, 0x88, 0x34, 0x91, 0xe0, 0x7a, 0xbe, 0xad, 0xdd, 0x80, 0x59, 0xc2, 0x1c, 0x9f, 0x1c,
- 0xc7, 0xc4, 0x43, 0x42, 0x8a, 0xdc, 0xdb, 0xb4, 0x7d, 0x96, 0xb0, 0xdd, 0x6c, 0xd1, 0xb4, 0xc1,
- 0x74, 0xe3, 0x46, 0xec, 0x4b, 0x8d, 0xce, 0x61, 0x1c, 0x78, 0x24, 0xa8, 0x2d, 0x4e, 0x0a, 0x1d,
- 0xeb, 0xaf, 0x7c, 0xf1, 0xcd, 0xb2, 0xf1, 0xf5, 0x37, 0xcb, 0x57, 0x54, 0xa4, 0x30, 0xef, 0xa8,
- 0x4c, 0x68, 0xa5, 0x81, 0x78, 0xbd, 0xbc, 0x8b, 0x6b, 0xc8, 0x6d, 0x6d, 0x62, 0xd7, 0x9e, 0xcf,
- 0xd8, 0xb7, 0x15, 0x77, 0x37, 0xaa, 0xa7, 0x4f, 0x8e, 0xea, 0x5a, 0x8a, 0xea, 0x94, 0x44, 0xf5,
- 0xd5, 0x3e, 0x42, 0x32, 0xd8, 0xba, 0xf0, 0xfd, 0x3c, 0xc1, 0x77, 0x97, 0x32, 0x2e, 0x6c, 0x64,
- 0xdb, 0x11, 0x6d, 0xe4, 0x41, 0x18, 0x88, 0xef, 0x2b, 0x70, 0x96, 0xc5, 0x55, 0xe4, 0xba, 0x34,
- 0x0e, 0x24, 0x81, 0x80, 0x79, 0xc6, 0x9e, 0xc9, 0x16, 0x77, 0x3c, 0xf3, 0x09, 0xdc, 0xf2, 0x29,
- 0xe3, 0x12, 0x40, 0xe6, 0x1c, 0x46, 0xb4, 0xe1, 0xa0, 0x26, 0x22, 0x3e, 0xaa, 0xfa, 0xd8, 0xf1,
- 0xe2, 0x88, 0x04, 0x35, 0x27, 0x44, 0x2d, 0x1a, 0x73, 0xe9, 0x06, 0x85, 0xed, 0xa9, 0x61, 0xd8,
- 0x5a, 0x7e, 0xde, 0xe2, 0xb5, 0x44, 0xe0, 0xa6, 0x94, 0xb7, 0x2f, 0xc5, 0x99, 0x18, 0xae, 0x76,
- 0x6a, 0x96, 0x19, 0xe3, 0xb8, 0x28, 0x70, 0xb1, 0xcf, 0x72, 0xbe, 0x1c, 0xaa, 0xef, 0x52, 0x9b,
- 0xbe, 0x77, 0x85, 0x98, 0x0d, 0x25, 0xc5, 0xfa, 0x85, 0x01, 0x2f, 0xf7, 0x0a, 0xd2, 0x7d, 0xca,
- 0xc8, 0x70, 0x0c, 0xef, 0x41, 0x31, 0xd4, 0x84, 0x6c, 0xb1, 0x30, 0xd0, 0x91, 0x07, 0x29, 0xac,
- 0x89, 0x68, 0x3b, 0xe3, 0xb5, 0xfe, 0x64, 0xc0, 0x15, 0x69, 0x46, 0x66, 0xc1, 0x9e, 0x54, 0xb2,
- 0x8f, 0x62, 0x86, 0xbd, 0xc1, 0x56, 0x5c, 0x83, 0x19, 0x86, 0x39, 0xf7, 0xb1, 0x13, 0x46, 0xc4,
- 0xc5, 0xd2, 0x91, 0x45, 0xbb, 0xa4, 0xd6, 0xf6, 0xc5, 0x92, 0x59, 0x86, 0xf3, 0x9c, 0x72, 0xe4,
- 0x3b, 0x0d, 0xc2, 0x98, 0x70, 0x9a, 0x84, 0x55, 0xf9, 0xcc, 0x9e, 0x97, 0x9f, 0xf6, 0xd4, 0x17,
- 0x09, 0x93, 0xf9, 0x3a, 0x98, 0x6d, 0x94, 0x4e, 0x84, 0x38, 0x56, 0x90, 0xdb, 0xe7, 0x1a, 0x39,
- 0x4a, 0x1b, 0x71, 0x6c, 0xed, 0xc3, 0x25, 0x69, 0xfc, 0x81, 0xd4, 0xe8, 0x29, 0xcb, 0xd7, 0x91,
- 0x2f, 0x30, 0x1e, 0x6c, 0xfa, 0x45, 0x98, 0x42, 0x0d, 0x01, 0x8a, 0x36, 0x5a, 0xbf, 0x59, 0x07,
- 0xda, 0x2b, 0x0f, 0xe8, 0x0b, 0x14, 0xfa, 0x69, 0x02, 0xb2, 0x96, 0x85, 0x5b, 0x34, 0xf0, 0xd6,
- 0x51, 0x70, 0x14, 0xc5, 0x21, 0x77, 0x5b, 0xcf, 0x0d, 0xf2, 0x9b, 0x70, 0x21, 0x01, 0x4d, 0xcb,
- 0xc9, 0xa3, 0x9c, 0x00, 0xaa, 0x94, 0x4b, 0xf0, 0xac, 0x4f, 0x0c, 0x58, 0x94, 0x16, 0xad, 0xf9,
- 0x7e, 0x12, 0x16, 0xec, 0x3e, 0x22, 0x91, 0x1b, 0xf3, 0xe7, 0x36, 0xa7, 0xb7, 0x0f, 0x27, 0xfa,
- 0xf8, 0xf0, 0x23, 0x58, 0x52, 0x79, 0x40, 0x02, 0x14, 0xb5, 0xde, 0x0d, 0xa5, 0x29, 0xca, 0xd6,
- 0x47, 0xa1, 0x87, 0x38, 0x36, 0xef, 0xc3, 0x94, 0x52, 0x2f, 0x8d, 0x29, 0xad, 0xde, 0xe9, 0x13,
- 0xe9, 0x3d, 0x24, 0xac, 0x4f, 0x8a, 0x34, 0xb5, 0x35, 0xbf, 0xf5, 0x67, 0x03, 0x4c, 0xe5, 0x5e,
- 0xfc, 0x58, 0x1c, 0x76, 0x32, 0x23, 0xd9, 0xe0, 0x0d, 0x6f, 0x02, 0x54, 0xe3, 0x96, 0xaa, 0x01,
- 0x49, 0xae, 0xdd, 0xe8, 0x97, 0x6b, 0x21, 0xe5, 0xbb, 0xa4, 0x41, 0x94, 0x60, 0xbb, 0x58, 0x8d,
- 0x5b, 0x5a, 0xc5, 0x36, 0x94, 0x18, 0xf6, 0xfd, 0x44, 0xcc, 0xc4, 0x38, 0x62, 0x40, 0x70, 0x2a,
- 0x39, 0xd6, 0xdf, 0x12, 0xc7, 0x3d, 0xc0, 0x8f, 0xb3, 0x94, 0x1d, 0x65, 0x1f, 0xef, 0xf4, 0xd8,
- 0xc7, 0x6b, 0x43, 0x8b, 0x7f, 0xef, 0xdd, 0xec, 0xf6, 0xda, 0xcd, 0x58, 0xc2, 0xf2, 0x7b, 0x6a,
- 0xc2, 0x05, 0xb9, 0x25, 0x55, 0x1a, 0x53, 0xbf, 0x0c, 0xde, 0xce, 0x1a, 0x9c, 0x96, 0xda, 0x65,
- 0x00, 0x8e, 0x0a, 0xa5, 0x0e, 0x07, 0xc5, 0x69, 0xfd, 0x08, 0x16, 0x54, 0xf5, 0x08, 0x29, 0x6f,
- 0x0b, 0xb8, 0x1f, 0x76, 0x04, 0xdc, 0xb5, 0x01, 0xc2, 0x7b, 0xc6, 0xd9, 0x67, 0x05, 0xb8, 0x2c,
- 0x45, 0xef, 0xe3, 0x28, 0xc4, 0x3c, 0x46, 0x7e, 0x9b, 0xfc, 0xad, 0x0e, 0xf9, 0xb7, 0x86, 0x22,
- 0xd7, 0x4b, 0x8b, 0xe9, 0xc1, 0x42, 0x98, 0xc8, 0x4f, 0x12, 0x9f, 0x04, 0x87, 0x54, 0x43, 0xd2,
- 0x2f, 0x4d, 0x3a, 0x6c, 0xda, 0x09, 0x0e, 0xa9, 0x14, 0x6c, 0xd8, 0xe7, 0xc3, 0xee, 0x4f, 0xe6,
- 0x1e, 0x9c, 0x49, 0xba, 0x98, 0x09, 0x29, 0xf7, 0x8d, 0xd1, 0xe4, 0xea, 0xe6, 0x45, 0x8b, 0x4e,
- 0x64, 0x58, 0x5f, 0x1b, 0x3a, 0xdf, 0xb7, 0x9e, 0x84, 0x24, 0x6a, 0x6d, 0xc7, 0x3c, 0x8e, 0x30,
- 0xfb, 0x6f, 0xc0, 0x73, 0x0c, 0x97, 0xb1, 0xd4, 0xe1, 0x1c, 0x2a, 0x25, 0x6d, 0x18, 0xa9, 0xbd,
- 0x94, 0xfb, 0xb6, 0x50, 0x5d, 0xc6, 0xe5, 0x70, 0x7a, 0x09, 0xf7, 0xfe, 0x6c, 0xfd, 0xb5, 0x00,
- 0xd7, 0x7a, 0xf9, 0x5d, 0x63, 0xa1, 0xf7, 0x37, 0x30, 0xae, 0x73, 0x70, 0x17, 0x4e, 0x0a, 0xf7,
- 0xa9, 0x14, 0x6e, 0xf3, 0x0e, 0xcc, 0x13, 0xe6, 0xd4, 0x69, 0x1c, 0xf9, 0x2d, 0x27, 0xef, 0xc7,
- 0x69, 0x7b, 0x8e, 0xb0, 0xfb, 0x72, 0x3d, 0x69, 0x33, 0xb7, 0x61, 0x46, 0x53, 0xe4, 0x4e, 0xdd,
- 0xd1, 0x9a, 0xd6, 0x92, 0x66, 0x14, 0x15, 0xdd, 0x5c, 0x07, 0x10, 0xdb, 0xd1, 0x07, 0xc4, 0xe9,
- 0xd1, 0xa5, 0x48, 0x58, 0xe4, 0x19, 0x62, 0xfd, 0xda, 0x80, 0x8b, 0x2a, 0x39, 0xd3, 0xf6, 0x65,
- 0x13, 0xcb, 0xb6, 0xc5, 0x5c, 0x86, 0x12, 0x8b, 0x5c, 0x07, 0x79, 0x5e, 0x84, 0x19, 0xd3, 0x00,
- 0x02, 0x8b, 0xdc, 0x35, 0xb5, 0x32, 0x5a, 0x83, 0xf9, 0x76, 0x7a, 0x56, 0xab, 0x48, 0xb8, 0x54,
- 0x56, 0x96, 0x95, 0xc5, 0xf8, 0x56, 0xd6, 0x93, 0x59, 0x79, 0x83, 0x92, 0x20, 0x09, 0x2b, 0x7d,
- 0x98, 0x7f, 0x96, 0x8c, 0x4c, 0x99, 0x65, 0x1f, 0x10, 0x5e, 0xf7, 0x22, 0xf4, 0xb8, 0x5b, 0xb3,
- 0xd1, 0x43, 0xf3, 0x32, 0x94, 0x3c, 0xc6, 0x53, 0xfb, 0xd5, 0x01, 0x0a, 0x1e, 0xe3, 0x89, 0xfd,
- 0x27, 0x36, 0xed, 0x0f, 0x49, 0x6e, 0x65, 0xa6, 0xe9, 0xbe, 0xe5, 0x61, 0x84, 0x02, 0x76, 0x88,
- 0x23, 0x11, 0x0f, 0x02, 0xbc, 0x6e, 0x2b, 0x8b, 0xf6, 0x1c, 0x8b, 0xdc, 0x83, 0xbc, 0xa1, 0x77,
- 0x60, 0x5e, 0x18, 0xda, 0x8d, 0x65, 0xd1, 0x9e, 0xf3, 0x18, 0x3f, 0x78, 0x21, 0x70, 0xd6, 0xf3,
- 0x03, 0xa8, 0x76, 0xb1, 0xce, 0x93, 0x3d, 0x98, 0xf3, 0xd4, 0x82, 0x13, 0xcb, 0x15, 0xe1, 0x6c,
- 0x71, 0xd2, 0x5c, 0xef, 0x5b, 0x10, 0x72, 0xec, 0xf6, 0xac, 0x97, 0x7f, 0x65, 0xd6, 0xe7, 0x06,
- 0x5c, 0xe9, 0x2c, 0x19, 0xb9, 0x96, 0xdc, 0x7c, 0x04, 0x33, 0x3a, 0x2d, 0xd5, 0xc1, 0xa2, 0x8a,
- 0xcf, 0xeb, 0x23, 0x16, 0x9f, 0xec, 0x7c, 0x31, 0xec, 0x52, 0x23, 0x5b, 0x32, 0x77, 0x61, 0x4e,
- 0x4d, 0x0e, 0xce, 0x71, 0x8c, 0x02, 0x4e, 0xb8, 0x9a, 0x2b, 0x47, 0x9c, 0x20, 0x66, 0x15, 0xef,
- 0x7b, 0x9a, 0xd5, 0xfa, 0x4d, 0x72, 0xb2, 0x28, 0xa3, 0x3b, 0x5a, 0x80, 0xc1, 0xa5, 0xe5, 0x3a,
- 0xc8, 0x59, 0xb5, 0x41, 0x34, 0xb3, 0x9e, 0x6f, 0xdb, 0x17, 0x4d, 0x1b, 0x4a, 0xbe, 0x78, 0xd5,
- 0x28, 0x28, 0x77, 0x8e, 0x73, 0xb6, 0x6b, 0x10, 0xc0, 0x4f, 0x57, 0xcc, 0x3a, 0x9c, 0xcf, 0x43,
- 0xab, 0x47, 0x29, 0x59, 0x60, 0x4a, 0xab, 0xab, 0xe3, 0x20, 0xac, 0x8c, 0xd4, 0x2a, 0xe6, 0x1b,
- 0x9d, 0x1f, 0xac, 0xaa, 0x6e, 0x8f, 0xb6, 0x31, 0xde, 0x24, 0x4c, 0x46, 0xe7, 0x81, 0x5b, 0xc7,
- 0x5e, 0xec, 0x63, 0x73, 0x1b, 0xa6, 0x99, 0x7e, 0x1e, 0xd2, 0x49, 0xf6, 0xe0, 0xb6, 0x53, 0x5e,
- 0xeb, 0x2b, 0x03, 0x56, 0xa4, 0x12, 0x31, 0x19, 0x8b, 0xa2, 0x87, 0x1f, 0xa3, 0xc8, 0xdb, 0x40,
- 0x8d, 0x10, 0x91, 0x5a, 0xa0, 0x83, 0xf7, 0x11, 0x9c, 0x75, 0xf5, 0x8a, 0x3a, 0x70, 0x94, 0xc6,
- 0x37, 0x07, 0x5c, 0x62, 0x74, 0x89, 0x12, 0x67, 0x8a, 0x3d, 0xe3, 0xe6, 0xde, 0xcc, 0x0f, 0x61,
- 0x21, 0x15, 0x1b, 0x49, 0x62, 0x27, 0xa4, 0xd4, 0x1f, 0x36, 0x04, 0x26, 0x12, 0x95, 0xfc, 0x7d,
- 0x4a, 0x7d, 0xfb, 0xbc, 0xdb, 0xb5, 0xc6, 0xac, 0x50, 0x17, 0x90, 0x36, 0x73, 0x36, 0x09, 0xe3,
- 0x11, 0xa9, 0xaa, 0xab, 0x93, 0x07, 0x30, 0x97, 0x54, 0x03, 0xa5, 0x3f, 0x49, 0xca, 0x7e, 0x1d,
- 0xd8, 0x9a, 0xa2, 0x56, 0xa2, 0x98, 0x3d, 0x8b, 0xda, 0xde, 0xad, 0xdf, 0x1b, 0x60, 0x25, 0x0d,
- 0xed, 0x06, 0x0d, 0x3c, 0x39, 0x8a, 0xa0, 0xf1, 0x02, 0xfb, 0x7b, 0xed, 0xbd, 0xe0, 0xcd, 0xa1,
- 0x01, 0xa5, 0x7a, 0x50, 0xc5, 0x64, 0x9a, 0x30, 0x59, 0x47, 0xac, 0x2e, 0x23, 0x7d, 0xc6, 0x96,
- 0xcf, 0x42, 0x1d, 0x49, 0xfa, 0x05, 0x19, 0xa6, 0xd3, 0xf6, 0x34, 0xd1, 0x27, 0xbd, 0xf5, 0xab,
- 0x02, 0xdc, 0xc8, 0xe5, 0xe0, 0x49, 0xad, 0xfe, 0xdf, 0xa5, 0x63, 0x67, 0xa5, 0x9b, 0x7c, 0x21,
- 0x95, 0xce, 0xfa, 0xb7, 0x01, 0x37, 0x15, 0x2e, 0x7d, 0x11, 0x79, 0x18, 0x91, 0x5a, 0xad, 0x17,
- 0x30, 0x33, 0x39, 0x60, 0x6e, 0xc2, 0xac, 0xc6, 0x40, 0x93, 0x6b, 0x64, 0x3a, 0x56, 0xc5, 0xd8,
- 0xcb, 0xd5, 0x23, 0xf6, 0x74, 0x61, 0xc9, 0x39, 0xd2, 0x4c, 0xbf, 0x49, 0xcd, 0xf7, 0x85, 0x5b,
- 0xef, 0xc0, 0x7c, 0xe8, 0x23, 0xb7, 0x9d, 0x7c, 0x52, 0x92, 0xcf, 0xa9, 0x0f, 0x19, 0x6d, 0x19,
- 0xce, 0x77, 0x4a, 0x77, 0x89, 0xa7, 0xda, 0x19, 0x7b, 0xbe, 0x5d, 0xf8, 0x06, 0xf1, 0x2c, 0x1f,
- 0x66, 0xe5, 0xe6, 0xe5, 0xc2, 0x36, 0x22, 0xbe, 0xb9, 0x08, 0x67, 0x74, 0xb0, 0xeb, 0x2d, 0x26,
- 0xaf, 0xe6, 0x45, 0x98, 0x12, 0xaa, 0xb1, 0x4a, 0xdb, 0x19, 0x5b, 0xbf, 0x99, 0x17, 0xe0, 0xf4,
- 0xa1, 0x8f, 0x6a, 0x6a, 0xa2, 0x3a, 0x6b, 0xab, 0x17, 0x11, 0xa0, 0x2e, 0xf1, 0xd4, 0x35, 0x68,
- 0xd1, 0x96, 0xcf, 0xd6, 0xa7, 0x06, 0xbc, 0xa6, 0x06, 0x78, 0x4e, 0x1b, 0xc4, 0xcd, 0x79, 0x66,
- 0x1b, 0xe3, 0xbd, 0xd8, 0xe7, 0x24, 0xf4, 0x09, 0x8e, 0x98, 0xaa, 0x46, 0x9e, 0xf9, 0x53, 0xb8,
- 0x98, 0x5c, 0x0d, 0x60, 0xec, 0x34, 0x32, 0x02, 0x9d, 0xbd, 0xfd, 0x2a, 0xa1, 0x6e, 0x2e, 0xf3,
- 0x32, 0xed, 0x0b, 0x8d, 0xee, 0x45, 0x66, 0xfd, 0xd1, 0xd0, 0x63, 0x9c, 0xb4, 0xa2, 0x4a, 0xe9,
- 0x91, 0xae, 0x84, 0x3b, 0x30, 0xc3, 0x42, 0xda, 0x79, 0x86, 0xf7, 0x4b, 0xd2, 0x0e, 0x6e, 0xbb,
- 0x24, 0x78, 0xf5, 0x11, 0x6e, 0x3e, 0x02, 0xd3, 0x4b, 0x03, 0x2a, 0x15, 0x58, 0x18, 0x4b, 0xe0,
- 0x7c, 0x26, 0x21, 0xe9, 0x0c, 0x5c, 0x98, 0xeb, 0x34, 0xfa, 0x1c, 0x4c, 0x30, 0x7c, 0x2c, 0xfd,
- 0x36, 0x69, 0x8b, 0x47, 0xf3, 0x07, 0x50, 0xa4, 0x09, 0x91, 0x2e, 0x34, 0x2b, 0xc3, 0x54, 0xda,
- 0x19, 0x8b, 0xf5, 0x5b, 0x03, 0x8a, 0xe9, 0x87, 0xc1, 0x09, 0xf0, 0x5d, 0x35, 0xaa, 0xfb, 0xb8,
- 0x89, 0xd3, 0xca, 0xfe, 0x72, 0x1f, 0x5d, 0xbb, 0x82, 0x48, 0xce, 0xe6, 0xf2, 0x89, 0x99, 0xdf,
- 0xd7, 0xb3, 0xb9, 0xe6, 0x9e, 0x18, 0x81, 0x5b, 0x0e, 0xe3, 0x8a, 0xdd, 0x7a, 0xac, 0x0f, 0xd0,
- 0x7b, 0x11, 0x0a, 0xf8, 0x5a, 0xcc, 0xeb, 0x34, 0x22, 0x3f, 0x93, 0xb7, 0xba, 0x4c, 0x04, 0x74,
- 0x4d, 0x2c, 0xeb, 0xe6, 0xa8, 0x68, 0x27, 0xaf, 0xe6, 0x1a, 0x4c, 0xc9, 0xc7, 0x61, 0xe7, 0x50,
- 0xb7, 0x54, 0x5b, 0x33, 0x5a, 0x1f, 0x27, 0xf1, 0xa3, 0x68, 0x04, 0xaf, 0xba, 0x4c, 0x4e, 0xb5,
- 0xe2, 0x76, 0xad, 0x38, 0x6f, 0x4f, 0xa1, 0xdd, 0x9e, 0xef, 0xb4, 0xb5, 0xa3, 0xc5, 0xf5, 0xab,
- 0xba, 0xd7, 0x5a, 0xe8, 0xee, 0xb5, 0x76, 0x02, 0x9e, 0x36, 0xa3, 0xf7, 0x60, 0x5e, 0x9a, 0xb0,
- 0x13, 0x34, 0x91, 0x4f, 0x3c, 0x69, 0xc9, 0x49, 0xf4, 0x5b, 0xbf, 0x6b, 0x4b, 0x06, 0x55, 0xca,
- 0x65, 0x4d, 0x18, 0xff, 0x66, 0xbc, 0xd8, 0x31, 0x3e, 0x5c, 0x05, 0xe8, 0xa8, 0x75, 0x45, 0x1d,
- 0x66, 0xb2, 0x6c, 0x9d, 0x83, 0x09, 0x51, 0xa6, 0xd4, 0x8d, 0xa9, 0x78, 0x34, 0x57, 0xa0, 0xe4,
- 0x61, 0xe6, 0x46, 0x44, 0x5e, 0x8c, 0xe9, 0x02, 0x96, 0x5f, 0x12, 0x85, 0x7b, 0xa5, 0xe3, 0x12,
- 0x58, 0x5d, 0xcd, 0xbc, 0xbf, 0xba, 0x47, 0x6a, 0xd1, 0x08, 0x77, 0xfa, 0x3f, 0x81, 0xf9, 0xf4,
- 0x72, 0xc9, 0x51, 0xee, 0x4e, 0x42, 0xa1, 0x32, 0xda, 0x69, 0xfc, 0xfe, 0xea, 0x86, 0x62, 0xb3,
- 0xe7, 0x92, 0x7b, 0x26, 0xbd, 0x60, 0x7e, 0x08, 0x66, 0x76, 0xdb, 0x94, 0x4a, 0x9f, 0x38, 0x99,
- 0xf4, 0x73, 0xe9, 0xc5, 0x93, 0x5e, 0xb1, 0xfe, 0x52, 0x80, 0xc5, 0x7e, 0xe4, 0x09, 0x9c, 0x46,
- 0x06, 0x67, 0xd2, 0x2e, 0x14, 0x72, 0xed, 0xc2, 0x5d, 0x30, 0xc2, 0x71, 0x7e, 0x87, 0x30, 0x42,
- 0xc1, 0x72, 0x3c, 0xce, 0x4f, 0x09, 0xc6, 0xb1, 0x60, 0x69, 0xe4, 0xc6, 0xe9, 0xe1, 0x2c, 0x0d,
- 0xc1, 0x72, 0xb8, 0x38, 0x35, 0x06, 0xcb, 0xa1, 0xf9, 0x16, 0x14, 0x78, 0xb8, 0x78, 0x66, 0xf4,
- 0xa9, 0xbd, 0xc0, 0x43, 0xeb, 0x5f, 0x86, 0x1e, 0x4b, 0xb2, 0x5b, 0xd5, 0x91, 0x63, 0xe7, 0x51,
- 0xff, 0xd8, 0x79, 0x75, 0xc0, 0xc5, 0xdb, 0xb0, 0xa8, 0xf9, 0x60, 0x40, 0xd4, 0x8c, 0x21, 0xb7,
- 0x3b, 0x5e, 0x7e, 0x5e, 0x80, 0xdb, 0xba, 0x49, 0x96, 0x3d, 0x40, 0xae, 0xdb, 0xc9, 0x1f, 0xc3,
- 0x88, 0xf8, 0xc3, 0x7e, 0x3f, 0x19, 0x29, 0xdf, 0xdb, 0x6f, 0x53, 0xc6, 0x08, 0xb2, 0xec, 0x36,
- 0xa5, 0xa3, 0x66, 0xa8, 0x86, 0x27, 0x57, 0x33, 0x96, 0xa1, 0xa4, 0xfb, 0x19, 0x07, 0x47, 0x91,
- 0xae, 0x10, 0xa0, 0x97, 0xb6, 0xa2, 0x28, 0xc9, 0x82, 0xa9, 0x34, 0x0b, 0xac, 0x8f, 0x0b, 0x70,
- 0xab, 0x0f, 0x08, 0x59, 0xeb, 0xf9, 0x2d, 0xc7, 0xe0, 0x93, 0x02, 0x98, 0xdd, 0x11, 0xf3, 0xff,
- 0x56, 0x32, 0x0e, 0xc7, 0x2a, 0x19, 0x49, 0xfe, 0x4f, 0x8d, 0x97, 0xff, 0x47, 0x7a, 0x88, 0xeb,
- 0xfe, 0x1d, 0x33, 0x5f, 0x06, 0xb6, 0x60, 0x3a, 0xf9, 0xe5, 0x51, 0x8f, 0xc3, 0xc3, 0x7f, 0x7d,
- 0x4e, 0x7f, 0xb4, 0x4c, 0x59, 0xd7, 0x8f, 0xbe, 0x78, 0xba, 0x64, 0x7c, 0xf9, 0x74, 0xc9, 0xf8,
- 0xe7, 0xd3, 0x25, 0xe3, 0x97, 0xcf, 0x96, 0x4e, 0x7d, 0xf9, 0x6c, 0xe9, 0xd4, 0x57, 0xcf, 0x96,
- 0x4e, 0xfd, 0xf8, 0xbd, 0x1a, 0xe1, 0xf5, 0xb8, 0x5a, 0x76, 0x69, 0xa3, 0xb2, 0x93, 0x08, 0xde,
- 0x45, 0x55, 0x56, 0x49, 0xd5, 0xbc, 0xe1, 0xd2, 0x08, 0xe7, 0x5f, 0xeb, 0x88, 0x04, 0x95, 0x06,
- 0x15, 0x93, 0x3d, 0xcb, 0xfe, 0x27, 0xc1, 0x5b, 0x21, 0x66, 0x95, 0xe6, 0x6a, 0x75, 0x4a, 0xfe,
- 0x51, 0xe2, 0xad, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x8b, 0x83, 0xca, 0x2f, 0x22, 0x00,
- 0x00,
+ // 2466 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x4b, 0x6f, 0x1c, 0xc7,
+ 0x11, 0xd6, 0x2c, 0x29, 0x9a, 0x5b, 0x4b, 0x91, 0xe2, 0x88, 0x94, 0x28, 0xc9, 0x22, 0xa9, 0xb1,
+ 0x5e, 0x96, 0xed, 0x5d, 0x89, 0x46, 0x60, 0x20, 0x2f, 0x83, 0x4f, 0x89, 0x06, 0x29, 0xd3, 0x43,
+ 0xc9, 0x0e, 0x12, 0x18, 0x93, 0xde, 0x99, 0xe6, 0x6e, 0x9b, 0xb3, 0xd3, 0xc3, 0xe9, 0x1e, 0x4a,
+ 0x9b, 0x9b, 0x83, 0x1c, 0x7c, 0x73, 0x2e, 0x41, 0x7c, 0xc9, 0x2d, 0xb7, 0x5c, 0x92, 0x5b, 0x80,
+ 0x1c, 0x82, 0xf8, 0x12, 0x1f, 0x9d, 0x9c, 0x0c, 0x03, 0x31, 0x02, 0xe9, 0x94, 0xdf, 0x90, 0x4b,
+ 0xd0, 0x8f, 0x79, 0xec, 0x7b, 0x97, 0x92, 0x91, 0x20, 0xb7, 0x99, 0x9e, 0x7a, 0xf5, 0xd7, 0x55,
+ 0xd5, 0x55, 0xb5, 0x0b, 0x16, 0x09, 0x3e, 0xc2, 0x2e, 0x27, 0xc7, 0xb8, 0x82, 0x9f, 0xb8, 0x75,
+ 0x14, 0xd4, 0x70, 0xe5, 0x78, 0xa5, 0x82, 0x8f, 0x71, 0xc0, 0x59, 0x39, 0x8c, 0x28, 0xa7, 0xe6,
+ 0x7c, 0x4a, 0x53, 0x4e, 0x68, 0xca, 0xc7, 0x2b, 0x97, 0xe6, 0x6a, 0xb4, 0x46, 0x25, 0x45, 0x45,
+ 0x3c, 0x29, 0xe2, 0x4b, 0x8b, 0x2e, 0x65, 0x0d, 0xca, 0x2a, 0x55, 0xc4, 0x70, 0xe5, 0xf8, 0x6e,
+ 0x15, 0x73, 0x74, 0xb7, 0xe2, 0x52, 0x12, 0xe8, 0xef, 0xd7, 0x33, 0x85, 0x34, 0x42, 0xae, 0x9f,
+ 0x11, 0xa9, 0x57, 0x4d, 0x76, 0xad, 0x87, 0x5d, 0x89, 0x7e, 0x45, 0xd5, 0xc3, 0xfa, 0x06, 0x8a,
+ 0x0e, 0x31, 0xd7, 0x34, 0x57, 0xbb, 0xd3, 0xd0, 0xc8, 0xc3, 0x91, 0x22, 0xb1, 0xfe, 0x6e, 0xc0,
+ 0x85, 0x4d, 0xb1, 0xe3, 0x35, 0xc4, 0xdd, 0xfa, 0x7e, 0x48, 0xf9, 0xe6, 0x13, 0xec, 0xc6, 0x9c,
+ 0xd0, 0xc0, 0xbc, 0x0c, 0x45, 0x25, 0xce, 0x21, 0xde, 0x82, 0xb1, 0x6c, 0xdc, 0x2a, 0xda, 0x93,
+ 0x6a, 0x61, 0xdb, 0x33, 0xe7, 0x61, 0x82, 0x30, 0xa7, 0x1a, 0x37, 0x17, 0x0a, 0xcb, 0xc6, 0xad,
+ 0x49, 0xfb, 0x34, 0x61, 0x6b, 0x71, 0xd3, 0x7c, 0x07, 0xce, 0xe0, 0x44, 0xc0, 0xc3, 0x66, 0x88,
+ 0x17, 0xc6, 0x96, 0x8d, 0x5b, 0xd3, 0x2b, 0xd7, 0xca, 0x5d, 0x81, 0x2c, 0x6f, 0xe6, 0x69, 0xed,
+ 0x56, 0x56, 0xf3, 0x2d, 0x98, 0xe0, 0x11, 0xf2, 0x30, 0x5b, 0x18, 0x5f, 0x1e, 0xbb, 0x55, 0x5a,
+ 0x59, 0xea, 0x21, 0xe4, 0xa1, 0x20, 0xda, 0xa1, 0x35, 0x5b, 0x93, 0x5b, 0xff, 0x28, 0xc0, 0x95,
+ 0x6c, 0x53, 0x1b, 0x38, 0x22, 0xc7, 0x48, 0x70, 0x3d, 0xdf, 0xd6, 0xae, 0xc3, 0x34, 0x61, 0x8e,
+ 0x4f, 0x8e, 0x62, 0xe2, 0x21, 0x21, 0x45, 0xee, 0x6d, 0xd2, 0x3e, 0x43, 0xd8, 0x4e, 0xb6, 0x68,
+ 0xda, 0x60, 0xba, 0x71, 0x23, 0xf6, 0xa5, 0x46, 0xe7, 0x20, 0x0e, 0x3c, 0x12, 0xd4, 0x16, 0xc6,
+ 0x85, 0x8e, 0xb5, 0x57, 0xbe, 0xf8, 0x66, 0xc9, 0xf8, 0xfa, 0x9b, 0xa5, 0xcb, 0xca, 0x53, 0x98,
+ 0x77, 0x58, 0x26, 0xb4, 0xd2, 0x40, 0xbc, 0x5e, 0xde, 0xc1, 0x35, 0xe4, 0x36, 0x37, 0xb0, 0x6b,
+ 0xcf, 0x66, 0xec, 0x5b, 0x8a, 0xbb, 0x13, 0xd5, 0xd3, 0x27, 0x47, 0x75, 0x35, 0x45, 0x75, 0x42,
+ 0xa2, 0xfa, 0x6a, 0x0f, 0x21, 0x19, 0x6c, 0x1d, 0xf8, 0x7e, 0x9e, 0xe0, 0xbb, 0x43, 0x19, 0x17,
+ 0x36, 0xb2, 0xad, 0x88, 0x36, 0xf2, 0x20, 0xf4, 0xc5, 0xf7, 0x15, 0x38, 0xc3, 0xe2, 0x2a, 0x72,
+ 0x5d, 0x1a, 0x07, 0x92, 0x40, 0xc0, 0x3c, 0x65, 0x4f, 0x65, 0x8b, 0xdb, 0x9e, 0xf9, 0x04, 0x6e,
+ 0xfa, 0x94, 0x71, 0x09, 0x20, 0x73, 0x0e, 0x22, 0xda, 0x70, 0xd0, 0x31, 0x22, 0x3e, 0xaa, 0xfa,
+ 0xd8, 0xf1, 0xe2, 0x88, 0x04, 0x35, 0x27, 0x44, 0x4d, 0x1a, 0x73, 0x79, 0x0c, 0x0a, 0xdb, 0x53,
+ 0x83, 0xb0, 0xb5, 0xfc, 0xbc, 0xc5, 0xab, 0x89, 0xc0, 0x0d, 0x29, 0x6f, 0x4f, 0x8a, 0x33, 0x31,
+ 0x5c, 0x69, 0xd7, 0x2c, 0x23, 0xc6, 0x71, 0x51, 0xe0, 0x62, 0x9f, 0xe5, 0xce, 0x72, 0xa0, 0xbe,
+ 0x8b, 0x2d, 0xfa, 0xde, 0x15, 0x62, 0xd6, 0x95, 0x14, 0xeb, 0x17, 0x06, 0xbc, 0xdc, 0xcd, 0x49,
+ 0xf7, 0x28, 0x23, 0x83, 0x31, 0xbc, 0x07, 0xc5, 0x50, 0x13, 0xb2, 0x85, 0x42, 0xdf, 0x83, 0xdc,
+ 0x4f, 0x61, 0x4d, 0x44, 0xdb, 0x19, 0xaf, 0xf5, 0x27, 0x03, 0x2e, 0x4b, 0x33, 0x32, 0x0b, 0x76,
+ 0xa5, 0x92, 0x3d, 0x14, 0x33, 0xec, 0xf5, 0xb7, 0xe2, 0x2a, 0x4c, 0x31, 0xcc, 0xb9, 0x8f, 0x9d,
+ 0x30, 0x22, 0x2e, 0x96, 0x07, 0x59, 0xb4, 0x4b, 0x6a, 0x6d, 0x4f, 0x2c, 0x99, 0x65, 0x38, 0xc7,
+ 0x29, 0x47, 0xbe, 0xd3, 0x20, 0x8c, 0x89, 0x43, 0x93, 0xb0, 0xaa, 0x33, 0xb3, 0x67, 0xe5, 0xa7,
+ 0x5d, 0xf5, 0x45, 0xc2, 0x64, 0xbe, 0x0e, 0x66, 0x0b, 0xa5, 0x13, 0x21, 0x8e, 0x15, 0xe4, 0xf6,
+ 0xd9, 0x46, 0x8e, 0xd2, 0x46, 0x1c, 0x5b, 0x7b, 0x70, 0x51, 0x1a, 0xbf, 0x2f, 0x35, 0x7a, 0xca,
+ 0xf2, 0x35, 0xe4, 0x0b, 0x8c, 0xfb, 0x9b, 0x7e, 0x1e, 0x26, 0x50, 0x43, 0x80, 0xa2, 0x8d, 0xd6,
+ 0x6f, 0xd6, 0xbe, 0x3e, 0x95, 0x07, 0xf4, 0x05, 0x0a, 0xfd, 0x34, 0x01, 0x59, 0xcb, 0xc2, 0x4d,
+ 0x1a, 0x78, 0x6b, 0x28, 0x38, 0x8c, 0xe2, 0x90, 0xbb, 0xcd, 0xe7, 0x06, 0xf9, 0x0e, 0xcc, 0x25,
+ 0xa0, 0x69, 0x39, 0x79, 0x94, 0x13, 0x40, 0x95, 0x72, 0x09, 0x9e, 0xf5, 0x89, 0x01, 0x0b, 0xd2,
+ 0xa2, 0x55, 0xdf, 0x4f, 0xdc, 0x82, 0xdd, 0x47, 0x24, 0x72, 0x63, 0xfe, 0xdc, 0xe6, 0x74, 0x3f,
+ 0xc3, 0xb1, 0x1e, 0x67, 0xf8, 0x11, 0x2c, 0xaa, 0x38, 0x20, 0x01, 0x8a, 0x9a, 0xef, 0x86, 0xd2,
+ 0x14, 0x65, 0xeb, 0xa3, 0xd0, 0x43, 0x1c, 0x9b, 0xf7, 0x61, 0x42, 0xa9, 0x97, 0xc6, 0x94, 0x56,
+ 0x6e, 0xf7, 0xf0, 0xf4, 0x2e, 0x12, 0xd6, 0xc6, 0x45, 0x98, 0xda, 0x9a, 0xdf, 0xf2, 0x7a, 0x38,
+ 0xbb, 0x56, 0xb4, 0xd9, 0xa6, 0xe8, 0xe6, 0xc0, 0xdc, 0xd8, 0x55, 0xcb, 0x9f, 0x0d, 0x30, 0x95,
+ 0x13, 0xe1, 0xc7, 0xe2, 0x4a, 0x95, 0x71, 0xcf, 0xfa, 0xc3, 0xba, 0x01, 0x50, 0x8d, 0x9b, 0x2a,
+ 0xd3, 0x24, 0x11, 0x7d, 0xbd, 0x57, 0x44, 0x87, 0x94, 0xef, 0x90, 0x06, 0x51, 0x82, 0xed, 0x62,
+ 0x35, 0x6e, 0x6a, 0x15, 0x5b, 0x50, 0x62, 0xd8, 0xf7, 0x13, 0x31, 0x63, 0xa3, 0x88, 0x01, 0xc1,
+ 0xa9, 0xe4, 0x58, 0x7f, 0x4b, 0xdc, 0xe3, 0x01, 0x7e, 0x9c, 0x6d, 0x76, 0x98, 0x7d, 0xbc, 0xd3,
+ 0x65, 0x1f, 0xaf, 0x0d, 0x84, 0xb1, 0xfb, 0x6e, 0x76, 0xba, 0xed, 0x66, 0x24, 0x61, 0xf9, 0x3d,
+ 0x1d, 0xc3, 0x9c, 0xdc, 0x92, 0x4a, 0xc0, 0xe9, 0xb9, 0xf4, 0xdf, 0xce, 0x2a, 0x9c, 0x96, 0xda,
+ 0xa5, 0x9b, 0x0f, 0x0b, 0xa5, 0x76, 0x07, 0xc5, 0x69, 0xfd, 0x08, 0xe6, 0x55, 0x8e, 0x0a, 0x29,
+ 0x6f, 0xf1, 0xb6, 0xb7, 0xdb, 0xbc, 0xed, 0x6a, 0x1f, 0xe1, 0x5d, 0xfd, 0xec, 0xb3, 0x02, 0x5c,
+ 0x92, 0xa2, 0xf7, 0x70, 0x14, 0x62, 0x1e, 0x23, 0xff, 0x5b, 0xf0, 0x66, 0xd3, 0x83, 0xf9, 0x30,
+ 0x91, 0x9f, 0xa4, 0x17, 0x12, 0x1c, 0x50, 0x0d, 0x49, 0xaf, 0x60, 0x6c, 0xb3, 0x69, 0x3b, 0x38,
+ 0xa0, 0x52, 0xb0, 0x61, 0x9f, 0x0b, 0x3b, 0x3f, 0x99, 0xbb, 0xf0, 0x52, 0x52, 0x2b, 0x8d, 0x49,
+ 0xb9, 0x6f, 0x0c, 0x27, 0x57, 0x97, 0x48, 0x5a, 0x74, 0x22, 0xc3, 0xfa, 0xda, 0xd0, 0x59, 0x65,
+ 0xf3, 0x49, 0x48, 0xa2, 0xe6, 0x56, 0xcc, 0xe3, 0x08, 0xb3, 0x6f, 0x03, 0x9e, 0x23, 0xb8, 0x84,
+ 0xa5, 0x0e, 0xe7, 0x40, 0x29, 0x69, 0xc1, 0x48, 0xed, 0xa5, 0xdc, 0xb3, 0x50, 0xeb, 0x30, 0x2e,
+ 0x87, 0xd3, 0x05, 0xdc, 0xfd, 0xb3, 0xf5, 0xd7, 0x02, 0x5c, 0xed, 0x76, 0xee, 0x1a, 0x0b, 0xbd,
+ 0xbf, 0xbe, 0x7e, 0x9d, 0x83, 0xbb, 0x70, 0x52, 0xb8, 0x4f, 0xa5, 0x70, 0x9b, 0xb7, 0x61, 0x96,
+ 0x30, 0xa7, 0x4e, 0xe3, 0xc8, 0x6f, 0x3a, 0xf9, 0x73, 0x9c, 0xb4, 0x67, 0x08, 0xbb, 0x2f, 0xd7,
+ 0x93, 0x62, 0x76, 0x0b, 0xa6, 0x34, 0x45, 0xee, 0x6e, 0x1f, 0xae, 0x34, 0x2e, 0x69, 0x46, 0x71,
+ 0x6f, 0x98, 0x6b, 0x00, 0x62, 0x3b, 0xfa, 0x1a, 0x3a, 0x3d, 0xbc, 0x14, 0x09, 0x8b, 0xbc, 0xa9,
+ 0xac, 0x5f, 0x1b, 0x70, 0x5e, 0x05, 0x67, 0x5a, 0x24, 0x6d, 0x60, 0x59, 0x1c, 0x99, 0x4b, 0x50,
+ 0x62, 0x91, 0xeb, 0x20, 0xcf, 0x8b, 0x30, 0x63, 0x1a, 0x40, 0x60, 0x91, 0xbb, 0xaa, 0x56, 0x86,
+ 0x2b, 0x63, 0xdf, 0x4a, 0x2b, 0x02, 0xe5, 0x09, 0x17, 0xcb, 0xca, 0xb2, 0xb2, 0x68, 0x12, 0xcb,
+ 0xba, 0xff, 0x2b, 0xaf, 0x53, 0x12, 0x24, 0x6e, 0xa5, 0x4b, 0x86, 0xcf, 0x92, 0xc6, 0x2c, 0xb3,
+ 0xec, 0x03, 0xc2, 0xeb, 0x5e, 0x84, 0x1e, 0x77, 0x6a, 0x36, 0xba, 0x68, 0x5e, 0x82, 0x92, 0xc7,
+ 0x78, 0x6a, 0xbf, 0xba, 0xa6, 0xc1, 0x63, 0x3c, 0xb1, 0xff, 0xc4, 0xa6, 0xfd, 0x21, 0x89, 0xad,
+ 0xcc, 0x34, 0x5d, 0x1d, 0x3d, 0x8c, 0x50, 0xc0, 0x0e, 0x70, 0x24, 0xfc, 0x41, 0x80, 0xd7, 0x69,
+ 0x65, 0xd1, 0x9e, 0x61, 0x91, 0xbb, 0x9f, 0x37, 0xf4, 0x36, 0xcc, 0x0a, 0x43, 0x3b, 0xb1, 0x2c,
+ 0xda, 0x33, 0x1e, 0xe3, 0xfb, 0x2f, 0x04, 0xce, 0x7a, 0xbe, 0xcd, 0xd5, 0x47, 0xac, 0xe3, 0x64,
+ 0x17, 0x66, 0x3c, 0xb5, 0xe0, 0xc4, 0x72, 0x45, 0x1c, 0xb6, 0xb8, 0x69, 0xae, 0xf5, 0x4c, 0x08,
+ 0x39, 0x76, 0x7b, 0xda, 0xcb, 0xbf, 0x32, 0xeb, 0x73, 0x03, 0x2e, 0xb7, 0xa7, 0x8c, 0x5c, 0xe1,
+ 0x6f, 0x3e, 0x82, 0x29, 0x1d, 0x96, 0xea, 0x62, 0x51, 0xc9, 0xe7, 0xf5, 0x21, 0x93, 0x4f, 0x76,
+ 0xbf, 0x18, 0x76, 0xa9, 0x91, 0x2d, 0x99, 0x3b, 0x30, 0xa3, 0xfa, 0x13, 0xe7, 0x28, 0x46, 0x01,
+ 0x27, 0x5c, 0x75, 0xaf, 0x43, 0xf6, 0x29, 0xd3, 0x8a, 0xf7, 0x3d, 0xcd, 0x6a, 0xfd, 0x26, 0xb9,
+ 0x59, 0x94, 0xd1, 0x6d, 0x25, 0x40, 0xff, 0xd4, 0x72, 0x0d, 0x64, 0x47, 0xdc, 0x20, 0x9a, 0x59,
+ 0x77, 0xd1, 0xad, 0x8b, 0xa6, 0x0d, 0x25, 0x5f, 0xbc, 0x6a, 0x14, 0xd4, 0x71, 0x8e, 0x72, 0xb7,
+ 0x6b, 0x10, 0xc0, 0x4f, 0x57, 0xcc, 0x3a, 0x9c, 0xcb, 0x43, 0xab, 0x1b, 0x36, 0x99, 0x60, 0x4a,
+ 0x2b, 0x2b, 0xa3, 0x20, 0xac, 0x8c, 0xd4, 0x2a, 0x66, 0x1b, 0xed, 0x1f, 0xac, 0xaa, 0x2e, 0x8f,
+ 0xb6, 0x30, 0xde, 0x20, 0x4c, 0x7a, 0xe7, 0xbe, 0x5b, 0xc7, 0x5e, 0xec, 0x63, 0x73, 0x0b, 0x26,
+ 0x99, 0x7e, 0x1e, 0x50, 0xaf, 0x76, 0xe1, 0xb6, 0x53, 0x5e, 0xeb, 0x2b, 0x03, 0x96, 0xa5, 0x12,
+ 0xd1, 0x7f, 0x8b, 0xa4, 0x87, 0x1f, 0xa3, 0xc8, 0x5b, 0x47, 0x8d, 0x10, 0x91, 0x5a, 0xa0, 0x9d,
+ 0xf7, 0x11, 0x9c, 0x71, 0xf5, 0x8a, 0xba, 0x70, 0x94, 0xc6, 0x3b, 0x7d, 0x46, 0x25, 0x1d, 0xa2,
+ 0xc4, 0x9d, 0x62, 0x4f, 0xb9, 0xb9, 0x37, 0xf3, 0x43, 0x98, 0x4f, 0xc5, 0x46, 0x92, 0xd8, 0x09,
+ 0x29, 0xf5, 0x07, 0xb5, 0x9a, 0x89, 0x44, 0x25, 0x7f, 0x8f, 0x52, 0xdf, 0x3e, 0xe7, 0x76, 0xac,
+ 0x31, 0x2b, 0xd4, 0x09, 0xa4, 0xc5, 0x9c, 0x0d, 0xc2, 0x78, 0x44, 0xaa, 0x6a, 0x40, 0xf3, 0x00,
+ 0x66, 0x92, 0x6c, 0xa0, 0xf4, 0x27, 0x41, 0xd9, 0xab, 0x02, 0x5b, 0x55, 0xd4, 0x4a, 0x14, 0xb3,
+ 0xa7, 0x51, 0xcb, 0xbb, 0xf5, 0x7b, 0x03, 0xac, 0xa4, 0xa0, 0x5d, 0xa7, 0x81, 0x27, 0x1b, 0x1e,
+ 0x34, 0x9a, 0x63, 0x7f, 0xbf, 0xb5, 0x16, 0xbc, 0x31, 0xd0, 0xa1, 0x54, 0x0d, 0xaa, 0x98, 0x4c,
+ 0x13, 0xc6, 0xeb, 0x88, 0xd5, 0xa5, 0xa7, 0x4f, 0xd9, 0xf2, 0x59, 0xa8, 0x23, 0x49, 0xbd, 0x20,
+ 0xdd, 0x74, 0xd2, 0x9e, 0x24, 0xfa, 0xa6, 0xb7, 0x7e, 0x55, 0x80, 0xeb, 0xb9, 0x18, 0x3c, 0xa9,
+ 0xd5, 0xff, 0xbd, 0x70, 0x6c, 0xcf, 0x74, 0xe3, 0x2f, 0x24, 0xd3, 0x59, 0xff, 0x36, 0xe0, 0x86,
+ 0xc2, 0xa5, 0x27, 0x22, 0x0f, 0x23, 0x52, 0xab, 0x75, 0x03, 0x66, 0x2a, 0x07, 0xcc, 0x0d, 0x98,
+ 0xd6, 0x18, 0x68, 0x72, 0x8d, 0x4c, 0xdb, 0xaa, 0x68, 0xae, 0xb9, 0x7a, 0xc4, 0x9e, 0x4e, 0x2c,
+ 0xb9, 0x83, 0x34, 0xd3, 0x6f, 0x52, 0xf3, 0x7d, 0x71, 0xac, 0xb7, 0x61, 0x36, 0xf4, 0x91, 0xdb,
+ 0x4a, 0x3e, 0x2e, 0xc9, 0x67, 0xd4, 0x87, 0x8c, 0xb6, 0x0c, 0xe7, 0xda, 0xa5, 0xbb, 0xc4, 0x53,
+ 0xe5, 0x8c, 0x3d, 0xdb, 0x2a, 0x7c, 0x9d, 0x78, 0x96, 0x0f, 0xd3, 0x72, 0xf3, 0x72, 0x61, 0x0b,
+ 0x11, 0xdf, 0x5c, 0x80, 0x97, 0xb4, 0xb3, 0xeb, 0x2d, 0x26, 0xaf, 0xe6, 0x79, 0x98, 0x10, 0xaa,
+ 0xb1, 0x0a, 0xdb, 0x29, 0x5b, 0xbf, 0x99, 0x73, 0x70, 0xfa, 0xc0, 0x47, 0x35, 0xd5, 0x51, 0x9d,
+ 0xb1, 0xd5, 0x8b, 0x70, 0x50, 0x97, 0x78, 0x6a, 0xd8, 0x5a, 0xb4, 0xe5, 0xb3, 0xf5, 0xa9, 0x01,
+ 0xaf, 0xa9, 0x31, 0x01, 0xa7, 0x0d, 0xe2, 0xe6, 0x4e, 0x66, 0x0b, 0xe3, 0xdd, 0xd8, 0xe7, 0x24,
+ 0xf4, 0x09, 0x8e, 0x98, 0xca, 0x46, 0x9e, 0xf9, 0x53, 0x38, 0x9f, 0x0c, 0x20, 0x30, 0x76, 0x1a,
+ 0x19, 0x81, 0x8e, 0xde, 0x5e, 0x99, 0x50, 0x17, 0x97, 0x79, 0x99, 0xf6, 0x5c, 0xa3, 0x73, 0x91,
+ 0x59, 0x7f, 0x34, 0x74, 0x1b, 0x27, 0xad, 0xa8, 0x52, 0x7a, 0xa8, 0x33, 0xe1, 0x36, 0x4c, 0xb1,
+ 0x90, 0xb6, 0xdf, 0xe1, 0xbd, 0x82, 0xb4, 0x8d, 0xdb, 0x2e, 0x09, 0x5e, 0x7d, 0x85, 0x9b, 0x8f,
+ 0xc0, 0xf4, 0x52, 0x87, 0x4a, 0x05, 0x16, 0x46, 0x12, 0x38, 0x9b, 0x49, 0x48, 0x2a, 0x03, 0x17,
+ 0x66, 0xda, 0x8d, 0x3e, 0x0b, 0x63, 0x0c, 0x1f, 0xc9, 0x73, 0x1b, 0xb7, 0xc5, 0xa3, 0xf9, 0x43,
+ 0x28, 0xd2, 0x84, 0x48, 0x27, 0x9a, 0xe5, 0x41, 0x2a, 0xed, 0x8c, 0xc5, 0xfa, 0xad, 0x01, 0xc5,
+ 0xf4, 0x43, 0xff, 0x00, 0xf8, 0x9e, 0x6a, 0xd5, 0x7d, 0x7c, 0x8c, 0xd3, 0xcc, 0xfe, 0x72, 0x0f,
+ 0x5d, 0x3b, 0x82, 0x48, 0xf6, 0xe6, 0xf2, 0x89, 0x99, 0x3f, 0xd0, 0xbd, 0xb9, 0xe6, 0x1e, 0x1b,
+ 0x82, 0x5b, 0x36, 0xe3, 0x8a, 0xdd, 0x7a, 0xac, 0x2f, 0xd0, 0x7b, 0x11, 0x0a, 0xf8, 0x6a, 0xcc,
+ 0xeb, 0x34, 0x22, 0x3f, 0x93, 0xb3, 0x63, 0x26, 0x1c, 0xba, 0x26, 0x96, 0x75, 0x71, 0x54, 0xb4,
+ 0x93, 0x57, 0x73, 0x15, 0x26, 0xe4, 0xe3, 0xa0, 0x7b, 0xa8, 0x53, 0xaa, 0xad, 0x19, 0xad, 0x8f,
+ 0x13, 0xff, 0x51, 0x34, 0x82, 0x57, 0x8d, 0xac, 0x53, 0xad, 0xb8, 0x55, 0x2b, 0xce, 0xdb, 0x53,
+ 0x68, 0xb5, 0xe7, 0x3b, 0x2d, 0xe5, 0x68, 0x71, 0xed, 0x8a, 0xae, 0xb5, 0xe6, 0x3b, 0x6b, 0xad,
+ 0xed, 0x80, 0xa7, 0xc5, 0xe8, 0x3d, 0x98, 0x95, 0x26, 0x6c, 0x07, 0xc7, 0xc8, 0x27, 0x9e, 0xb4,
+ 0xe4, 0x24, 0xfa, 0xad, 0xdf, 0xb5, 0x04, 0x83, 0x4a, 0xe5, 0x32, 0x27, 0x8c, 0x3e, 0x7f, 0x2f,
+ 0xb6, 0xb5, 0x0f, 0x57, 0x00, 0xda, 0x72, 0x5d, 0x51, 0xbb, 0x99, 0x4c, 0x5b, 0x67, 0x61, 0x4c,
+ 0xa4, 0x29, 0x35, 0x97, 0x15, 0x8f, 0xe6, 0x32, 0x94, 0x3c, 0xcc, 0xdc, 0x88, 0xc8, 0xf1, 0x9b,
+ 0x4e, 0x60, 0xf9, 0x25, 0x91, 0xb8, 0x97, 0xdb, 0xa6, 0x6f, 0x6a, 0x34, 0xf3, 0xfe, 0xca, 0x2e,
+ 0xa9, 0x45, 0x43, 0xfc, 0x72, 0xf0, 0x13, 0x98, 0x4d, 0x87, 0x4b, 0x8e, 0x3a, 0xee, 0xc4, 0x15,
+ 0x2a, 0xc3, 0xdd, 0xc6, 0xef, 0xaf, 0xac, 0x2b, 0x36, 0x7b, 0x26, 0x99, 0x33, 0xe9, 0x05, 0xf3,
+ 0x43, 0x30, 0xb3, 0x69, 0x53, 0x2a, 0x7d, 0xec, 0x64, 0xd2, 0xcf, 0xa6, 0x83, 0x27, 0xbd, 0x62,
+ 0xfd, 0xa5, 0x00, 0x0b, 0xbd, 0xc8, 0x13, 0x38, 0x8d, 0x0c, 0xce, 0xa4, 0x5c, 0x28, 0xe4, 0xca,
+ 0x85, 0xbb, 0x60, 0x84, 0xa3, 0xfc, 0xda, 0x61, 0x84, 0x82, 0xe5, 0x68, 0x94, 0x1f, 0x2c, 0x8c,
+ 0x23, 0xc1, 0xd2, 0xc8, 0xb5, 0xd3, 0x83, 0x59, 0x1a, 0x82, 0xe5, 0x60, 0x61, 0x62, 0x04, 0x96,
+ 0x03, 0xf3, 0x4d, 0x28, 0xf0, 0x70, 0xe1, 0xa5, 0xe1, 0xbb, 0xf6, 0x02, 0x0f, 0xad, 0x7f, 0x19,
+ 0xba, 0x2d, 0xc9, 0xa6, 0xaa, 0x43, 0xfb, 0xce, 0xa3, 0xde, 0xbe, 0xf3, 0x6a, 0x9f, 0xc1, 0xdb,
+ 0x20, 0xaf, 0xf9, 0xa0, 0x8f, 0xd7, 0x8c, 0x20, 0xb7, 0xd3, 0x5f, 0x7e, 0x5e, 0x80, 0x5b, 0xba,
+ 0x48, 0x96, 0x35, 0x40, 0xae, 0xda, 0xc9, 0x5f, 0xc3, 0x88, 0xf8, 0x83, 0x7e, 0xa5, 0x19, 0x2a,
+ 0xde, 0x5b, 0xa7, 0x29, 0x23, 0x38, 0x59, 0x36, 0x4d, 0x69, 0xcb, 0x19, 0xaa, 0xe0, 0xc9, 0xe5,
+ 0x8c, 0x25, 0x28, 0xe9, 0x7a, 0xc6, 0xc1, 0x51, 0xa4, 0x33, 0x04, 0xe8, 0xa5, 0xcd, 0x28, 0x4a,
+ 0xa2, 0x60, 0x22, 0x8d, 0x02, 0xeb, 0xe3, 0x02, 0xdc, 0xec, 0x01, 0x42, 0x56, 0x7a, 0xfe, 0x9f,
+ 0x63, 0xf0, 0x49, 0x01, 0xcc, 0x4e, 0x8f, 0xf9, 0x5f, 0x4b, 0x19, 0x07, 0x23, 0xa5, 0x8c, 0x24,
+ 0xfe, 0x27, 0x46, 0x8b, 0xff, 0x43, 0xdd, 0xc4, 0x75, 0xfe, 0x5a, 0x9a, 0x4f, 0x03, 0x9b, 0x30,
+ 0x99, 0xfc, 0xbe, 0xa9, 0xdb, 0xe1, 0xc1, 0xbf, 0x71, 0xa7, 0x3f, 0x8d, 0xa6, 0xac, 0xd6, 0x33,
+ 0x43, 0x0f, 0xee, 0x93, 0x6f, 0xe9, 0x74, 0xab, 0xaf, 0xa7, 0xdd, 0x81, 0x39, 0x46, 0xe3, 0xc8,
+ 0xc5, 0x5d, 0x27, 0x5a, 0xa6, 0xfa, 0xd6, 0x32, 0xd4, 0xfa, 0x2e, 0x5c, 0xf4, 0x30, 0xe3, 0x24,
+ 0x90, 0xe6, 0xb7, 0xb1, 0xa9, 0x9b, 0xf7, 0x42, 0x8e, 0xa0, 0x85, 0xf7, 0x6d, 0x98, 0x4c, 0xe7,
+ 0x3d, 0x23, 0x9c, 0x59, 0xca, 0xb4, 0x76, 0xf8, 0xc5, 0xd3, 0x45, 0xe3, 0xcb, 0xa7, 0x8b, 0xc6,
+ 0x3f, 0x9f, 0x2e, 0x1a, 0xbf, 0x7c, 0xb6, 0x78, 0xea, 0xcb, 0x67, 0x8b, 0xa7, 0xbe, 0x7a, 0xb6,
+ 0x78, 0xea, 0xc7, 0xef, 0xd5, 0x08, 0xaf, 0xc7, 0xd5, 0xb2, 0x4b, 0x1b, 0x95, 0xed, 0x04, 0xbe,
+ 0x1d, 0x54, 0x65, 0x95, 0x14, 0xcc, 0x37, 0x5c, 0x1a, 0xe1, 0xfc, 0x6b, 0x1d, 0x91, 0xa0, 0xd2,
+ 0xa0, 0x5e, 0xec, 0x63, 0x96, 0xfd, 0xe7, 0x84, 0x37, 0x43, 0xcc, 0x2a, 0xc7, 0x2b, 0xd5, 0x09,
+ 0xf9, 0xa7, 0x93, 0x37, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x93, 0xa2, 0xd7, 0x95, 0x7b, 0x23,
+ 0x00, 0x00,
}
func (m *EventBatchSpotExecution) Marshal() (dAtA []byte, err error) {
@@ -3346,6 +3457,39 @@ func (m *EventBinaryOptionsMarketUpdate) MarshalToSizedBuffer(dAtA []byte) (int,
return len(dAtA) - i, nil
}
+func (m *EventDerivativeMarketUpdate) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventDerivativeMarketUpdate) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventDerivativeMarketUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ {
+ size, err := m.Market.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func (m *EventNewSpotOrders) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -4333,20 +4477,20 @@ func (m *EventOrderFail) MarshalToSizedBuffer(dAtA []byte) (int, error) {
}
}
if len(m.Flags) > 0 {
- dAtA22 := make([]byte, len(m.Flags)*10)
- var j21 int
+ dAtA23 := make([]byte, len(m.Flags)*10)
+ var j22 int
for _, num := range m.Flags {
for num >= 1<<7 {
- dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80)
+ dAtA23[j22] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
- j21++
+ j22++
}
- dAtA22[j21] = uint8(num)
- j21++
+ dAtA23[j22] = uint8(num)
+ j22++
}
- i -= j21
- copy(dAtA[i:], dAtA22[:j21])
- i = encodeVarintEvents(dAtA, i, uint64(j21))
+ i -= j22
+ copy(dAtA[i:], dAtA23[:j22])
+ i = encodeVarintEvents(dAtA, i, uint64(j22))
i--
dAtA[i] = 0x1a
}
@@ -5196,6 +5340,60 @@ func (m *EventDerivativePositionV2Migration) MarshalToSizedBuffer(dAtA []byte) (
return len(dAtA) - i, nil
}
+func (m *EventPositionTransfer) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventPositionTransfer) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventPositionTransfer) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ {
+ size := m.Quantity.Size()
+ i -= size
+ if _, err := m.Quantity.MarshalTo(dAtA[i:]); err != nil {
+ return 0, err
+ }
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x22
+ if len(m.DestinationSubaccountId) > 0 {
+ i -= len(m.DestinationSubaccountId)
+ copy(dAtA[i:], m.DestinationSubaccountId)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.DestinationSubaccountId)))
+ i--
+ dAtA[i] = 0x1a
+ }
+ if len(m.SourceSubaccountId) > 0 {
+ i -= len(m.SourceSubaccountId)
+ copy(dAtA[i:], m.SourceSubaccountId)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.SourceSubaccountId)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.MarketId) > 0 {
+ i -= len(m.MarketId)
+ copy(dAtA[i:], m.MarketId)
+ i = encodeVarintEvents(dAtA, i, uint64(len(m.MarketId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func encodeVarintEvents(dAtA []byte, offset int, v uint64) int {
offset -= sovEvents(v)
base := offset
@@ -5416,6 +5614,17 @@ func (m *EventBinaryOptionsMarketUpdate) Size() (n int) {
return n
}
+func (m *EventDerivativeMarketUpdate) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = m.Market.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ return n
+}
+
func (m *EventNewSpotOrders) Size() (n int) {
if m == nil {
return 0
@@ -6160,6 +6369,29 @@ func (m *EventDerivativePositionV2Migration) Size() (n int) {
return n
}
+func (m *EventPositionTransfer) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.MarketId)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ l = len(m.SourceSubaccountId)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ l = len(m.DestinationSubaccountId)
+ if l > 0 {
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ l = m.Quantity.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ return n
+}
+
func sovEvents(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@@ -7613,6 +7845,89 @@ func (m *EventBinaryOptionsMarketUpdate) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *EventDerivativeMarketUpdate) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EventDerivativeMarketUpdate: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EventDerivativeMarketUpdate: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Market", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Market.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *EventNewSpotOrders) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -12946,6 +13261,186 @@ func (m *EventDerivativePositionV2Migration) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *EventPositionTransfer) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EventPositionTransfer: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EventPositionTransfer: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.MarketId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.SourceSubaccountId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func skipEvents(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/chain/exchange/types/v2/exchange.pb.go b/chain/exchange/types/v2/exchange.pb.go
index ef79788f..f7442860 100644
--- a/chain/exchange/types/v2/exchange.pb.go
+++ b/chain/exchange/types/v2/exchange.pb.go
@@ -7,6 +7,7 @@ import (
cosmossdk_io_math "cosmossdk.io/math"
fmt "fmt"
_ "github.com/InjectiveLabs/sdk-go/chain/oracle/types"
+ _ "github.com/cosmos/cosmos-proto"
github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types"
types "github.com/cosmos/cosmos-sdk/types"
_ "github.com/cosmos/cosmos-sdk/types/tx/amino"
@@ -39,6 +40,7 @@ const (
ExecutionType_MarketLiquidation ExecutionType = 5
ExecutionType_ExpiryMarketSettlement ExecutionType = 6
ExecutionType_OffsettingPosition ExecutionType = 7
+ ExecutionType_Synthetic ExecutionType = 8
)
var ExecutionType_name = map[int32]string{
@@ -50,6 +52,7 @@ var ExecutionType_name = map[int32]string{
5: "MarketLiquidation",
6: "ExpiryMarketSettlement",
7: "OffsettingPosition",
+ 8: "Synthetic",
}
var ExecutionType_value = map[string]int32{
@@ -61,6 +64,7 @@ var ExecutionType_value = map[string]int32{
"MarketLiquidation": 5,
"ExpiryMarketSettlement": 6,
"OffsettingPosition": 7,
+ "Synthetic": 8,
}
func (x ExecutionType) String() string {
@@ -71,6 +75,63 @@ func (ExecutionType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_0b5851fb01a33564, []int{0}
}
+// EnforcedRestrictionsContract defines a contract with its pause event
+// signature
+type EnforcedRestrictionsContract struct {
+ // EVM address of the contract
+ ContractAddress string `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"`
+ // Pause event signature for the contract (e.g. "Pause()", or
+ // "Pause(address)"). If left empty, it will default to "Pause()".
+ PauseEventSignature string `protobuf:"bytes,2,opt,name=pause_event_signature,json=pauseEventSignature,proto3" json:"pause_event_signature,omitempty"`
+}
+
+func (m *EnforcedRestrictionsContract) Reset() { *m = EnforcedRestrictionsContract{} }
+func (m *EnforcedRestrictionsContract) String() string { return proto.CompactTextString(m) }
+func (*EnforcedRestrictionsContract) ProtoMessage() {}
+func (*EnforcedRestrictionsContract) Descriptor() ([]byte, []int) {
+ return fileDescriptor_0b5851fb01a33564, []int{0}
+}
+func (m *EnforcedRestrictionsContract) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EnforcedRestrictionsContract) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EnforcedRestrictionsContract.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EnforcedRestrictionsContract) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EnforcedRestrictionsContract.Merge(m, src)
+}
+func (m *EnforcedRestrictionsContract) XXX_Size() int {
+ return m.Size()
+}
+func (m *EnforcedRestrictionsContract) XXX_DiscardUnknown() {
+ xxx_messageInfo_EnforcedRestrictionsContract.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EnforcedRestrictionsContract proto.InternalMessageInfo
+
+func (m *EnforcedRestrictionsContract) GetContractAddress() string {
+ if m != nil {
+ return m.ContractAddress
+ }
+ return ""
+}
+
+func (m *EnforcedRestrictionsContract) GetPauseEventSignature() string {
+ if m != nil {
+ return m.PauseEventSignature
+ }
+ return ""
+}
+
type Params struct {
// spot_market_instant_listing_fee defines the expedited fee in INJ required
// to create a spot market by bypassing governance
@@ -171,13 +232,16 @@ type Params struct {
// mode will be enabled after the downtime-detector module detects a chain
// downtime
PostOnlyModeBlocksAmountAfterDowntime uint64 `protobuf:"varint,35,opt,name=post_only_mode_blocks_amount_after_downtime,json=postOnlyModeBlocksAmountAfterDowntime,proto3" json:"post_only_mode_blocks_amount_after_downtime,omitempty"`
+ // Contracts that exchange will be listening to pause markets denominated in
+ // respective erc20: denoms, with their pause event signatures
+ EnforcedRestrictionsContracts []EnforcedRestrictionsContract `protobuf:"bytes,36,rep,name=enforced_restrictions_contracts,json=enforcedRestrictionsContracts,proto3" json:"enforced_restrictions_contracts"`
}
func (m *Params) Reset() { *m = Params{} }
func (m *Params) String() string { return proto.CompactTextString(m) }
func (*Params) ProtoMessage() {}
func (*Params) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{0}
+ return fileDescriptor_0b5851fb01a33564, []int{1}
}
func (m *Params) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -325,6 +389,13 @@ func (m *Params) GetPostOnlyModeBlocksAmountAfterDowntime() uint64 {
return 0
}
+func (m *Params) GetEnforcedRestrictionsContracts() []EnforcedRestrictionsContract {
+ if m != nil {
+ return m.EnforcedRestrictionsContracts
+ }
+ return nil
+}
+
type NextFundingTimestamp struct {
NextTimestamp int64 `protobuf:"varint,1,opt,name=next_timestamp,json=nextTimestamp,proto3" json:"next_timestamp,omitempty"`
}
@@ -333,7 +404,7 @@ func (m *NextFundingTimestamp) Reset() { *m = NextFundingTimestamp{} }
func (m *NextFundingTimestamp) String() string { return proto.CompactTextString(m) }
func (*NextFundingTimestamp) ProtoMessage() {}
func (*NextFundingTimestamp) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{1}
+ return fileDescriptor_0b5851fb01a33564, []int{2}
}
func (m *NextFundingTimestamp) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -382,7 +453,7 @@ func (m *MidPriceAndTOB) Reset() { *m = MidPriceAndTOB{} }
func (m *MidPriceAndTOB) String() string { return proto.CompactTextString(m) }
func (*MidPriceAndTOB) ProtoMessage() {}
func (*MidPriceAndTOB) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{2}
+ return fileDescriptor_0b5851fb01a33564, []int{3}
}
func (m *MidPriceAndTOB) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -423,7 +494,7 @@ func (m *Deposit) Reset() { *m = Deposit{} }
func (m *Deposit) String() string { return proto.CompactTextString(m) }
func (*Deposit) ProtoMessage() {}
func (*Deposit) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{3}
+ return fileDescriptor_0b5851fb01a33564, []int{4}
}
func (m *Deposit) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -460,7 +531,7 @@ func (m *SubaccountTradeNonce) Reset() { *m = SubaccountTradeNonce{} }
func (m *SubaccountTradeNonce) String() string { return proto.CompactTextString(m) }
func (*SubaccountTradeNonce) ProtoMessage() {}
func (*SubaccountTradeNonce) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{4}
+ return fileDescriptor_0b5851fb01a33564, []int{5}
}
func (m *SubaccountTradeNonce) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -509,7 +580,7 @@ func (m *SubaccountOrder) Reset() { *m = SubaccountOrder{} }
func (m *SubaccountOrder) String() string { return proto.CompactTextString(m) }
func (*SubaccountOrder) ProtoMessage() {}
func (*SubaccountOrder) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{5}
+ return fileDescriptor_0b5851fb01a33564, []int{6}
}
func (m *SubaccountOrder) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -561,7 +632,7 @@ func (m *SubaccountOrderData) Reset() { *m = SubaccountOrderData{} }
func (m *SubaccountOrderData) String() string { return proto.CompactTextString(m) }
func (*SubaccountOrderData) ProtoMessage() {}
func (*SubaccountOrderData) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{6}
+ return fileDescriptor_0b5851fb01a33564, []int{7}
}
func (m *SubaccountOrderData) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -621,7 +692,7 @@ func (m *Position) Reset() { *m = Position{} }
func (m *Position) String() string { return proto.CompactTextString(m) }
func (*Position) ProtoMessage() {}
func (*Position) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{7}
+ return fileDescriptor_0b5851fb01a33564, []int{8}
}
func (m *Position) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -670,7 +741,7 @@ func (m *Balance) Reset() { *m = Balance{} }
func (m *Balance) String() string { return proto.CompactTextString(m) }
func (*Balance) ProtoMessage() {}
func (*Balance) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{8}
+ return fileDescriptor_0b5851fb01a33564, []int{9}
}
func (m *Balance) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -712,7 +783,7 @@ func (m *DerivativePosition) Reset() { *m = DerivativePosition{} }
func (m *DerivativePosition) String() string { return proto.CompactTextString(m) }
func (*DerivativePosition) ProtoMessage() {}
func (*DerivativePosition) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{9}
+ return fileDescriptor_0b5851fb01a33564, []int{10}
}
func (m *DerivativePosition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -751,7 +822,7 @@ func (m *MarketOrderIndicator) Reset() { *m = MarketOrderIndicator{} }
func (m *MarketOrderIndicator) String() string { return proto.CompactTextString(m) }
func (*MarketOrderIndicator) ProtoMessage() {}
func (*MarketOrderIndicator) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{10}
+ return fileDescriptor_0b5851fb01a33564, []int{11}
}
func (m *MarketOrderIndicator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -809,7 +880,7 @@ func (m *TradeLog) Reset() { *m = TradeLog{} }
func (m *TradeLog) String() string { return proto.CompactTextString(m) }
func (*TradeLog) ProtoMessage() {}
func (*TradeLog) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{11}
+ return fileDescriptor_0b5851fb01a33564, []int{12}
}
func (m *TradeLog) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -877,7 +948,7 @@ func (m *PositionDelta) Reset() { *m = PositionDelta{} }
func (m *PositionDelta) String() string { return proto.CompactTextString(m) }
func (*PositionDelta) ProtoMessage() {}
func (*PositionDelta) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{12}
+ return fileDescriptor_0b5851fb01a33564, []int{13}
}
func (m *PositionDelta) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -928,7 +999,7 @@ func (m *DerivativeTradeLog) Reset() { *m = DerivativeTradeLog{} }
func (m *DerivativeTradeLog) String() string { return proto.CompactTextString(m) }
func (*DerivativeTradeLog) ProtoMessage() {}
func (*DerivativeTradeLog) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{13}
+ return fileDescriptor_0b5851fb01a33564, []int{14}
}
func (m *DerivativeTradeLog) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1001,7 +1072,7 @@ func (m *SubaccountPosition) Reset() { *m = SubaccountPosition{} }
func (m *SubaccountPosition) String() string { return proto.CompactTextString(m) }
func (*SubaccountPosition) ProtoMessage() {}
func (*SubaccountPosition) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{14}
+ return fileDescriptor_0b5851fb01a33564, []int{15}
}
func (m *SubaccountPosition) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1053,7 +1124,7 @@ func (m *SubaccountDeposit) Reset() { *m = SubaccountDeposit{} }
func (m *SubaccountDeposit) String() string { return proto.CompactTextString(m) }
func (*SubaccountDeposit) ProtoMessage() {}
func (*SubaccountDeposit) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{15}
+ return fileDescriptor_0b5851fb01a33564, []int{16}
}
func (m *SubaccountDeposit) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1105,7 +1176,7 @@ func (m *DepositUpdate) Reset() { *m = DepositUpdate{} }
func (m *DepositUpdate) String() string { return proto.CompactTextString(m) }
func (*DepositUpdate) ProtoMessage() {}
func (*DepositUpdate) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{16}
+ return fileDescriptor_0b5851fb01a33564, []int{17}
}
func (m *DepositUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1157,7 +1228,7 @@ func (m *PointsMultiplier) Reset() { *m = PointsMultiplier{} }
func (m *PointsMultiplier) String() string { return proto.CompactTextString(m) }
func (*PointsMultiplier) ProtoMessage() {}
func (*PointsMultiplier) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{17}
+ return fileDescriptor_0b5851fb01a33564, []int{18}
}
func (m *PointsMultiplier) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1197,7 +1268,7 @@ func (m *TradingRewardCampaignBoostInfo) Reset() { *m = TradingRewardCam
func (m *TradingRewardCampaignBoostInfo) String() string { return proto.CompactTextString(m) }
func (*TradingRewardCampaignBoostInfo) ProtoMessage() {}
func (*TradingRewardCampaignBoostInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{18}
+ return fileDescriptor_0b5851fb01a33564, []int{19}
}
func (m *TradingRewardCampaignBoostInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1266,7 +1337,7 @@ func (m *CampaignRewardPool) Reset() { *m = CampaignRewardPool{} }
func (m *CampaignRewardPool) String() string { return proto.CompactTextString(m) }
func (*CampaignRewardPool) ProtoMessage() {}
func (*CampaignRewardPool) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{19}
+ return fileDescriptor_0b5851fb01a33564, []int{20}
}
func (m *CampaignRewardPool) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1324,7 +1395,7 @@ func (m *TradingRewardCampaignInfo) Reset() { *m = TradingRewardCampaign
func (m *TradingRewardCampaignInfo) String() string { return proto.CompactTextString(m) }
func (*TradingRewardCampaignInfo) ProtoMessage() {}
func (*TradingRewardCampaignInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{20}
+ return fileDescriptor_0b5851fb01a33564, []int{21}
}
func (m *TradingRewardCampaignInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1396,7 +1467,7 @@ func (m *FeeDiscountTierInfo) Reset() { *m = FeeDiscountTierInfo{} }
func (m *FeeDiscountTierInfo) String() string { return proto.CompactTextString(m) }
func (*FeeDiscountTierInfo) ProtoMessage() {}
func (*FeeDiscountTierInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{21}
+ return fileDescriptor_0b5851fb01a33564, []int{22}
}
func (m *FeeDiscountTierInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1444,7 +1515,7 @@ func (m *FeeDiscountSchedule) Reset() { *m = FeeDiscountSchedule{} }
func (m *FeeDiscountSchedule) String() string { return proto.CompactTextString(m) }
func (*FeeDiscountSchedule) ProtoMessage() {}
func (*FeeDiscountSchedule) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{22}
+ return fileDescriptor_0b5851fb01a33564, []int{23}
}
func (m *FeeDiscountSchedule) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1519,7 +1590,7 @@ func (m *FeeDiscountTierTTL) Reset() { *m = FeeDiscountTierTTL{} }
func (m *FeeDiscountTierTTL) String() string { return proto.CompactTextString(m) }
func (*FeeDiscountTierTTL) ProtoMessage() {}
func (*FeeDiscountTierTTL) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{23}
+ return fileDescriptor_0b5851fb01a33564, []int{24}
}
func (m *FeeDiscountTierTTL) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1571,7 +1642,7 @@ func (m *AccountRewards) Reset() { *m = AccountRewards{} }
func (m *AccountRewards) String() string { return proto.CompactTextString(m) }
func (*AccountRewards) ProtoMessage() {}
func (*AccountRewards) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{24}
+ return fileDescriptor_0b5851fb01a33564, []int{25}
}
func (m *AccountRewards) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1623,7 +1694,7 @@ func (m *TradeRecords) Reset() { *m = TradeRecords{} }
func (m *TradeRecords) String() string { return proto.CompactTextString(m) }
func (*TradeRecords) ProtoMessage() {}
func (*TradeRecords) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{25}
+ return fileDescriptor_0b5851fb01a33564, []int{26}
}
func (m *TradeRecords) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1674,7 +1745,7 @@ func (m *SubaccountIDs) Reset() { *m = SubaccountIDs{} }
func (m *SubaccountIDs) String() string { return proto.CompactTextString(m) }
func (*SubaccountIDs) ProtoMessage() {}
func (*SubaccountIDs) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{26}
+ return fileDescriptor_0b5851fb01a33564, []int{27}
}
func (m *SubaccountIDs) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1723,7 +1794,7 @@ func (m *TradeRecord) Reset() { *m = TradeRecord{} }
func (m *TradeRecord) String() string { return proto.CompactTextString(m) }
func (*TradeRecord) ProtoMessage() {}
func (*TradeRecord) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{27}
+ return fileDescriptor_0b5851fb01a33564, []int{28}
}
func (m *TradeRecord) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1770,7 +1841,7 @@ func (m *Level) Reset() { *m = Level{} }
func (m *Level) String() string { return proto.CompactTextString(m) }
func (*Level) ProtoMessage() {}
func (*Level) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{28}
+ return fileDescriptor_0b5851fb01a33564, []int{29}
}
func (m *Level) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1810,7 +1881,7 @@ func (m *AggregateSubaccountVolumeRecord) Reset() { *m = AggregateSubacc
func (m *AggregateSubaccountVolumeRecord) String() string { return proto.CompactTextString(m) }
func (*AggregateSubaccountVolumeRecord) ProtoMessage() {}
func (*AggregateSubaccountVolumeRecord) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{29}
+ return fileDescriptor_0b5851fb01a33564, []int{30}
}
func (m *AggregateSubaccountVolumeRecord) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1864,7 +1935,7 @@ func (m *AggregateAccountVolumeRecord) Reset() { *m = AggregateAccountVo
func (m *AggregateAccountVolumeRecord) String() string { return proto.CompactTextString(m) }
func (*AggregateAccountVolumeRecord) ProtoMessage() {}
func (*AggregateAccountVolumeRecord) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{30}
+ return fileDescriptor_0b5851fb01a33564, []int{31}
}
func (m *AggregateAccountVolumeRecord) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1918,7 +1989,7 @@ func (m *DenomDecimals) Reset() { *m = DenomDecimals{} }
func (m *DenomDecimals) String() string { return proto.CompactTextString(m) }
func (*DenomDecimals) ProtoMessage() {}
func (*DenomDecimals) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{31}
+ return fileDescriptor_0b5851fb01a33564, []int{32}
}
func (m *DenomDecimals) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1972,7 +2043,7 @@ func (m *GrantAuthorization) Reset() { *m = GrantAuthorization{} }
func (m *GrantAuthorization) String() string { return proto.CompactTextString(m) }
func (*GrantAuthorization) ProtoMessage() {}
func (*GrantAuthorization) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{32}
+ return fileDescriptor_0b5851fb01a33564, []int{33}
}
func (m *GrantAuthorization) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2017,7 +2088,7 @@ func (m *ActiveGrant) Reset() { *m = ActiveGrant{} }
func (m *ActiveGrant) String() string { return proto.CompactTextString(m) }
func (*ActiveGrant) ProtoMessage() {}
func (*ActiveGrant) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{33}
+ return fileDescriptor_0b5851fb01a33564, []int{34}
}
func (m *ActiveGrant) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2063,7 +2134,7 @@ func (m *EffectiveGrant) Reset() { *m = EffectiveGrant{} }
func (m *EffectiveGrant) String() string { return proto.CompactTextString(m) }
func (*EffectiveGrant) ProtoMessage() {}
func (*EffectiveGrant) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{34}
+ return fileDescriptor_0b5851fb01a33564, []int{35}
}
func (m *EffectiveGrant) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2117,7 +2188,7 @@ func (m *DenomMinNotional) Reset() { *m = DenomMinNotional{} }
func (m *DenomMinNotional) String() string { return proto.CompactTextString(m) }
func (*DenomMinNotional) ProtoMessage() {}
func (*DenomMinNotional) Descriptor() ([]byte, []int) {
- return fileDescriptor_0b5851fb01a33564, []int{35}
+ return fileDescriptor_0b5851fb01a33564, []int{36}
}
func (m *DenomMinNotional) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2155,6 +2226,7 @@ func (m *DenomMinNotional) GetDenom() string {
func init() {
proto.RegisterEnum("injective.exchange.v2.ExecutionType", ExecutionType_name, ExecutionType_value)
+ proto.RegisterType((*EnforcedRestrictionsContract)(nil), "injective.exchange.v2.EnforcedRestrictionsContract")
proto.RegisterType((*Params)(nil), "injective.exchange.v2.Params")
proto.RegisterType((*NextFundingTimestamp)(nil), "injective.exchange.v2.NextFundingTimestamp")
proto.RegisterType((*MidPriceAndTOB)(nil), "injective.exchange.v2.MidPriceAndTOB")
@@ -2198,203 +2270,238 @@ func init() {
}
var fileDescriptor_0b5851fb01a33564 = []byte{
- // 3090 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcb, 0x6f, 0x5b, 0xc7,
- 0xd5, 0xf7, 0xd5, 0x93, 0x3a, 0x12, 0x25, 0x6a, 0xf4, 0xa2, 0x2c, 0x5b, 0x92, 0xaf, 0xed, 0x58,
- 0x71, 0x12, 0xe9, 0xb3, 0x03, 0x07, 0xf9, 0xec, 0xef, 0x51, 0xca, 0xb4, 0x6c, 0x26, 0x92, 0xad,
- 0x5c, 0x29, 0x46, 0x91, 0xa0, 0xb9, 0x18, 0xde, 0x3b, 0x22, 0xc7, 0xba, 0x0f, 0xea, 0xce, 0x90,
- 0x91, 0x5a, 0x74, 0x51, 0x20, 0x40, 0x8b, 0x74, 0x93, 0x16, 0xe8, 0xa6, 0x68, 0x81, 0x2c, 0x5a,
- 0x14, 0xe8, 0xaa, 0x7f, 0x40, 0x17, 0x05, 0x8a, 0xa2, 0x59, 0xb4, 0x40, 0x96, 0x45, 0x17, 0x69,
- 0x91, 0x2c, 0x1a, 0x74, 0xdd, 0x3f, 0xa0, 0x98, 0xc7, 0x7d, 0x90, 0x7a, 0x91, 0x4e, 0x0b, 0x74,
- 0x63, 0xf3, 0xce, 0x9c, 0xf3, 0x3b, 0x67, 0xe6, 0x3c, 0x67, 0x46, 0x70, 0x8d, 0x06, 0xcf, 0x88,
- 0xc3, 0x69, 0x8b, 0xac, 0x91, 0x43, 0xa7, 0x8e, 0x83, 0x1a, 0x59, 0x6b, 0xdd, 0x4e, 0x7e, 0xaf,
- 0x36, 0xa2, 0x90, 0x87, 0x68, 0x26, 0xa1, 0x5a, 0x4d, 0x66, 0x5a, 0xb7, 0x2f, 0x4e, 0xd7, 0xc2,
- 0x5a, 0x28, 0x29, 0xd6, 0xc4, 0x2f, 0x45, 0x7c, 0x71, 0x12, 0xfb, 0x34, 0x08, 0xd7, 0xe4, 0xbf,
- 0x7a, 0x68, 0xd1, 0x09, 0x99, 0x1f, 0xb2, 0xb5, 0x2a, 0x66, 0x64, 0xad, 0x75, 0xab, 0x4a, 0x38,
- 0xbe, 0xb5, 0xe6, 0x84, 0x34, 0xd0, 0xf3, 0xd7, 0x53, 0x2d, 0xc2, 0x08, 0x3b, 0x5e, 0x4a, 0xa4,
- 0x3e, 0x35, 0x99, 0x79, 0xb2, 0xb2, 0x3e, 0x8e, 0xf6, 0x09, 0xd7, 0x34, 0x57, 0x4e, 0xa6, 0x09,
- 0x23, 0x97, 0x44, 0x8a, 0xc4, 0xfc, 0xd1, 0x3c, 0x0c, 0x6d, 0xe3, 0x08, 0xfb, 0x0c, 0x11, 0x58,
- 0x62, 0x8d, 0x90, 0xdb, 0x0a, 0xc2, 0xa6, 0x01, 0xe3, 0x38, 0xe0, 0xb6, 0x47, 0x19, 0xa7, 0x41,
- 0xcd, 0xde, 0x23, 0xa4, 0x68, 0x2c, 0x1b, 0x2b, 0xa3, 0xb7, 0xe7, 0x57, 0xd5, 0x12, 0x56, 0xc5,
- 0x12, 0x56, 0xb5, 0x76, 0xab, 0xf7, 0x43, 0x1a, 0xac, 0x0f, 0x7c, 0xf2, 0xd9, 0xd2, 0x05, 0x6b,
- 0x41, 0xe0, 0x6c, 0x49, 0x98, 0x8a, 0x42, 0xd9, 0x54, 0x20, 0x1b, 0x84, 0xa0, 0x03, 0xb8, 0xee,
- 0x92, 0x88, 0xb6, 0xb0, 0xd0, 0xeb, 0x2c, 0x61, 0x7d, 0xdd, 0x09, 0xbb, 0x92, 0xa2, 0x9d, 0x26,
- 0x12, 0xc3, 0x82, 0x4b, 0xf6, 0x70, 0xd3, 0xe3, 0xb6, 0x5e, 0xe1, 0x3e, 0x89, 0x84, 0x0c, 0x3b,
- 0xc2, 0x9c, 0x14, 0xfb, 0x97, 0x8d, 0x95, 0x91, 0xf5, 0xab, 0x02, 0xed, 0xcf, 0x9f, 0x2d, 0x2d,
- 0x28, 0x79, 0xcc, 0xdd, 0x5f, 0xa5, 0xe1, 0x9a, 0x8f, 0x79, 0x7d, 0x75, 0x93, 0xd4, 0xb0, 0x73,
- 0x54, 0x26, 0x8e, 0x35, 0xa7, 0x71, 0x76, 0xe4, 0x02, 0xf7, 0x49, 0xb4, 0x41, 0x88, 0x85, 0xf9,
- 0x71, 0x11, 0xbc, 0x5d, 0xc4, 0xc0, 0xf3, 0x89, 0xd8, 0xcd, 0x8a, 0xf0, 0xe1, 0x4a, 0x2c, 0xa2,
- 0x6d, 0x03, 0xdb, 0x04, 0x0d, 0x76, 0x2f, 0xe8, 0xb2, 0x46, 0x2b, 0x67, 0xf6, 0xef, 0x5c, 0x71,
- 0x1d, 0xeb, 0x1a, 0xfa, 0x2a, 0xe2, 0xda, 0x56, 0xe7, 0xc2, 0xa5, 0x58, 0x1c, 0x0d, 0x28, 0xa7,
- 0xd8, 0x13, 0xbe, 0x51, 0xa3, 0x81, 0x10, 0x44, 0xc3, 0xe2, 0x70, 0xf7, 0x92, 0xe6, 0x35, 0x50,
- 0x45, 0xe1, 0x6c, 0x49, 0x18, 0x4b, 0xa0, 0x20, 0x0f, 0x96, 0x63, 0x29, 0x3e, 0xa6, 0x01, 0x27,
- 0x01, 0x0e, 0x1c, 0xd2, 0x2e, 0x29, 0xd7, 0xfb, 0x9a, 0xb6, 0x52, 0xac, 0xac, 0xb4, 0xd7, 0xa1,
- 0x18, 0x4b, 0xdb, 0x6b, 0x06, 0xae, 0x70, 0x6c, 0x41, 0x17, 0xb5, 0xb0, 0x57, 0x1c, 0x59, 0x36,
- 0x56, 0xfa, 0xad, 0x59, 0x3d, 0xbf, 0xa1, 0xa6, 0x2b, 0x7a, 0x16, 0xbd, 0x08, 0x85, 0x98, 0xc3,
- 0x6f, 0x7a, 0x9c, 0x36, 0x3c, 0x52, 0x04, 0xc9, 0x31, 0xa1, 0xc7, 0xb7, 0xf4, 0x30, 0xfa, 0x3a,
- 0xcc, 0x46, 0xc4, 0xc3, 0x47, 0xda, 0x2c, 0xac, 0x8e, 0x23, 0x6d, 0x9c, 0xd1, 0xee, 0x17, 0x32,
- 0xa5, 0x21, 0x36, 0x08, 0xd9, 0x11, 0x00, 0xd2, 0x24, 0x14, 0x96, 0x62, 0xf5, 0xeb, 0x61, 0x33,
- 0xf2, 0x8e, 0x92, 0x55, 0x08, 0x78, 0xdb, 0xc1, 0x8d, 0xe2, 0x58, 0xf7, 0x22, 0xe2, 0xf8, 0x78,
- 0x24, 0xa1, 0xf4, 0x82, 0x85, 0x9c, 0xfb, 0xb8, 0x91, 0xb5, 0xbe, 0x16, 0x25, 0x37, 0x8a, 0x30,
- 0xae, 0x96, 0x92, 0xef, 0xdd, 0xfa, 0x4a, 0x4e, 0x45, 0xc3, 0xc8, 0x05, 0x95, 0x61, 0xc9, 0xc7,
- 0x87, 0x59, 0x77, 0x96, 0xa9, 0xd0, 0x66, 0xd4, 0x25, 0xb6, 0x13, 0x36, 0x03, 0x5e, 0x1c, 0x5f,
- 0x36, 0x56, 0xf2, 0xd6, 0x82, 0x8f, 0x0f, 0x53, 0x3f, 0x7d, 0x22, 0x88, 0x76, 0xa8, 0x4b, 0xee,
- 0x0b, 0x12, 0xc4, 0xe0, 0x06, 0x0d, 0x9e, 0xd9, 0x11, 0x79, 0x1f, 0x47, 0xae, 0xcd, 0x44, 0x44,
- 0xb8, 0x76, 0x44, 0x0e, 0x9a, 0x34, 0x22, 0x3e, 0x09, 0xb8, 0xcd, 0xeb, 0x11, 0x61, 0xf5, 0xd0,
- 0x73, 0x8b, 0x13, 0x52, 0xed, 0xcb, 0x5a, 0xed, 0x99, 0xe3, 0x6a, 0x57, 0x02, 0x6e, 0x5d, 0xa5,
- 0xc1, 0x33, 0x4b, 0x82, 0xed, 0x48, 0x2c, 0x2b, 0x85, 0xda, 0x8d, 0x91, 0xd0, 0x43, 0x58, 0xe6,
- 0x11, 0x56, 0x9b, 0x2f, 0x69, 0x99, 0xdd, 0x22, 0x2a, 0x57, 0xba, 0x4d, 0xe9, 0xb7, 0x41, 0xb1,
- 0x20, 0x1d, 0xe4, 0xb2, 0xa6, 0x53, 0x90, 0xec, 0xa9, 0xa2, 0x2a, 0x6b, 0x22, 0xb1, 0xd3, 0x1e,
- 0x3d, 0x68, 0x52, 0x17, 0xf3, 0x30, 0x4a, 0x16, 0x91, 0x3a, 0xcd, 0x64, 0x0f, 0x3b, 0x9d, 0x02,
- 0x69, 0xfd, 0x13, 0xd7, 0x39, 0x84, 0x17, 0xab, 0x34, 0xc0, 0xd1, 0x91, 0x1d, 0x36, 0x84, 0x58,
- 0x76, 0x56, 0xa2, 0x47, 0xdd, 0x25, 0xfa, 0x6b, 0x0a, 0xf1, 0x89, 0x02, 0x3c, 0x2d, 0xd7, 0x7f,
- 0x0b, 0x96, 0x31, 0x0f, 0x7d, 0xea, 0xc4, 0x12, 0x95, 0x89, 0xb1, 0xe3, 0x10, 0xc6, 0x6c, 0x8f,
- 0xb4, 0x88, 0x57, 0x9c, 0x5a, 0x36, 0x56, 0xc6, 0x6f, 0xbf, 0xba, 0x7a, 0x62, 0x25, 0x5f, 0x2d,
- 0x49, 0x76, 0x85, 0x2f, 0x4d, 0x5f, 0x92, 0xbc, 0x9b, 0x82, 0xd5, 0xba, 0x84, 0xcf, 0x98, 0x45,
- 0x87, 0x70, 0x43, 0x66, 0xff, 0x93, 0x34, 0x10, 0xc1, 0xa9, 0x63, 0x99, 0x92, 0xa8, 0x38, 0xdd,
- 0xfd, 0x3e, 0x9b, 0x02, 0xf3, 0x98, 0x56, 0x1b, 0x84, 0x6c, 0x25, 0x70, 0xe8, 0x03, 0x03, 0x5e,
- 0xc9, 0xf8, 0x75, 0x17, 0x0a, 0xcc, 0x74, 0xaf, 0xc0, 0x4a, 0x8a, 0x7c, 0x8e, 0x1a, 0xdf, 0x37,
- 0xe0, 0x56, 0x87, 0xe1, 0xbb, 0x50, 0x65, 0xb6, 0x7b, 0x55, 0x5e, 0x6a, 0x73, 0x82, 0x73, 0xb4,
- 0x79, 0x0f, 0xe6, 0x7d, 0x1a, 0x50, 0x1f, 0x7b, 0xb6, 0xec, 0x76, 0x9c, 0xd0, 0x4b, 0x4b, 0xd7,
- 0x5c, 0xf7, 0x42, 0x67, 0x35, 0xca, 0xb6, 0x06, 0x89, 0x6b, 0xd6, 0xbb, 0xf0, 0x12, 0x65, 0x89,
- 0x4b, 0x1f, 0xef, 0x6a, 0x3c, 0xdc, 0x0c, 0x9c, 0xba, 0x4d, 0x02, 0x5c, 0xf5, 0x88, 0x5b, 0x2c,
- 0x2e, 0x1b, 0x2b, 0x39, 0xeb, 0x05, 0xca, 0xb4, 0xd7, 0x96, 0x3b, 0x1a, 0x97, 0x4d, 0x49, 0xfe,
- 0x40, 0x51, 0x8b, 0x64, 0xd5, 0x08, 0x19, 0xb7, 0xc3, 0xc0, 0x3b, 0xb2, 0xfd, 0xd0, 0x25, 0x76,
- 0x9d, 0xd0, 0x5a, 0x3d, 0x9b, 0x5e, 0xe6, 0x65, 0xc0, 0x2f, 0x08, 0xb2, 0x27, 0x81, 0x77, 0xb4,
- 0x15, 0xba, 0xe4, 0x91, 0xa4, 0x49, 0xf3, 0x46, 0x0d, 0x6e, 0xe9, 0xe2, 0xe6, 0x12, 0x27, 0x22,
- 0x98, 0x11, 0xbb, 0x11, 0x51, 0x87, 0xd8, 0x9c, 0xfa, 0x84, 0x71, 0xec, 0x37, 0x52, 0x3c, 0x9b,
- 0x11, 0x27, 0x0c, 0x5c, 0x56, 0xbc, 0x28, 0x71, 0x5f, 0x56, 0x8c, 0x65, 0xcd, 0xb7, 0x2d, 0xd8,
- 0x76, 0x63, 0xae, 0x44, 0xc2, 0x8e, 0xe2, 0x41, 0x37, 0x60, 0x22, 0x0e, 0x22, 0x1b, 0xbb, 0x3e,
- 0x0d, 0x58, 0x71, 0x61, 0xb9, 0x7f, 0x65, 0xc4, 0x1a, 0x8f, 0x87, 0x4b, 0x72, 0x14, 0x6d, 0xc2,
- 0x94, 0x48, 0x9f, 0xb8, 0xe9, 0x08, 0x13, 0xda, 0x22, 0x21, 0x8b, 0x4a, 0x72, 0xa9, 0x9b, 0x54,
- 0x59, 0xa0, 0xc1, 0xb3, 0x92, 0x62, 0xdc, 0xc2, 0x87, 0xa2, 0x70, 0xdc, 0x84, 0xc9, 0x3d, 0x7a,
- 0x48, 0x5c, 0xbb, 0x86, 0x59, 0xb2, 0xd1, 0x97, 0xe5, 0x46, 0x4f, 0xc8, 0x89, 0x87, 0x98, 0xc5,
- 0x3b, 0x7a, 0x0f, 0x2e, 0x12, 0x9f, 0x72, 0xdb, 0x93, 0x86, 0xb5, 0x5b, 0x24, 0x62, 0x42, 0x03,
- 0xd2, 0x22, 0x01, 0x67, 0xc5, 0x45, 0xc9, 0x34, 0x27, 0x28, 0x94, 0xe5, 0x9f, 0xaa, 0xf9, 0x07,
- 0x72, 0x1a, 0x55, 0xd3, 0x06, 0x2f, 0x22, 0x6e, 0xb3, 0xb3, 0x69, 0x58, 0xea, 0xde, 0x9b, 0xe2,
- 0x9e, 0xc0, 0x92, 0x30, 0xd9, 0x7e, 0xe1, 0xff, 0xe0, 0x52, 0x87, 0xc9, 0xab, 0x5e, 0xe8, 0xec,
- 0x33, 0x1b, 0xfb, 0xb2, 0x38, 0x5d, 0x59, 0x36, 0x56, 0x06, 0xac, 0x62, 0xd6, 0xde, 0xeb, 0x92,
- 0xa0, 0x24, 0xe7, 0xd1, 0x16, 0x5c, 0xf3, 0x69, 0x60, 0x77, 0x60, 0xb8, 0xe1, 0xfb, 0x81, 0xb0,
- 0x76, 0x5a, 0x28, 0x4c, 0xa1, 0xac, 0xb5, 0xe4, 0xd3, 0x60, 0x3b, 0x03, 0x55, 0xd6, 0x74, 0x49,
- 0xa9, 0x78, 0x07, 0x5e, 0x3a, 0x4b, 0x1d, 0x1b, 0xef, 0x71, 0x12, 0x25, 0xf0, 0xc5, 0xab, 0x52,
- 0xbb, 0xeb, 0xa7, 0x69, 0x57, 0x12, 0xd4, 0xb1, 0x8c, 0xbb, 0xc5, 0x2f, 0x3f, 0x5e, 0x32, 0x3e,
- 0xfc, 0xdb, 0xaf, 0x6e, 0x26, 0x5e, 0xb3, 0xa6, 0x8e, 0x21, 0x6f, 0x0c, 0xe4, 0x96, 0x0b, 0x57,
- 0xcc, 0xff, 0x85, 0xe9, 0xc7, 0xe4, 0x30, 0xee, 0x8b, 0x12, 0xb7, 0x43, 0xd7, 0x61, 0x3c, 0x20,
- 0x87, 0x3c, 0x75, 0x5f, 0x79, 0x26, 0xe9, 0xb7, 0xf2, 0x62, 0x34, 0x21, 0x33, 0xff, 0x6e, 0xc0,
- 0xf8, 0x16, 0x75, 0xa5, 0xcf, 0x96, 0x02, 0x77, 0xf7, 0xc9, 0x3a, 0xfa, 0x1a, 0x8c, 0xf8, 0xd4,
- 0x55, 0xde, 0x2f, 0x99, 0x94, 0xb9, 0x8c, 0xf3, 0xcc, 0x95, 0xf3, 0x35, 0x0e, 0xaa, 0xc0, 0x78,
- 0x55, 0x74, 0x24, 0xd5, 0xe6, 0x91, 0x86, 0xe9, 0xeb, 0x1e, 0x66, 0x4c, 0xb0, 0xae, 0x37, 0x8f,
- 0x14, 0xd4, 0x9b, 0x30, 0x21, 0xa1, 0x18, 0xf1, 0x3c, 0x8d, 0xd5, 0xdf, 0x3d, 0x56, 0x5e, 0xf0,
- 0xee, 0x10, 0xcf, 0x93, 0x60, 0xe6, 0xcf, 0x0d, 0x18, 0x2e, 0x93, 0x46, 0xc8, 0x28, 0x47, 0xdb,
- 0x30, 0x89, 0x5b, 0x98, 0x7a, 0xc2, 0xe3, 0xed, 0x2a, 0xf6, 0x44, 0x4b, 0x9a, 0x59, 0xed, 0xb9,
- 0xce, 0x59, 0x48, 0xb8, 0xd7, 0x15, 0x33, 0x7a, 0x04, 0x79, 0x1e, 0x72, 0xec, 0x25, 0x68, 0x7d,
- 0xdd, 0xa3, 0x8d, 0x49, 0x4e, 0x8d, 0x64, 0xbe, 0x0c, 0xd3, 0x3b, 0xcd, 0x2a, 0x76, 0x64, 0xa7,
- 0xb5, 0x1b, 0x61, 0x97, 0x3c, 0x0e, 0x85, 0x84, 0x69, 0x18, 0x0c, 0xc2, 0x58, 0xcf, 0xbc, 0xa5,
- 0x3e, 0xcc, 0xdf, 0x1a, 0x30, 0x91, 0x92, 0xcb, 0xec, 0x8e, 0xfe, 0x1b, 0x06, 0x3b, 0xed, 0x77,
- 0xae, 0x0e, 0x8a, 0x03, 0xfd, 0x3f, 0xe4, 0x0e, 0x9a, 0x38, 0xe0, 0x94, 0x1f, 0xf5, 0xb2, 0x82,
- 0x84, 0x09, 0x99, 0x30, 0x46, 0x99, 0x8a, 0x59, 0xe1, 0xde, 0xd2, 0x5e, 0x39, 0xab, 0x6d, 0x0c,
- 0x15, 0xa0, 0xdf, 0xa1, 0xae, 0x3a, 0xed, 0x59, 0xe2, 0xa7, 0x19, 0xc1, 0x54, 0xc7, 0x22, 0xca,
- 0x98, 0x63, 0xf4, 0x3f, 0x30, 0x28, 0x2b, 0xa1, 0x3e, 0x51, 0xbf, 0x70, 0x4a, 0x2b, 0xd2, 0xc1,
- 0x6a, 0x29, 0x26, 0x74, 0x19, 0x40, 0xd5, 0xd1, 0x3a, 0x66, 0x75, 0xb9, 0x9a, 0x31, 0x6b, 0x44,
- 0x8e, 0x3c, 0xc2, 0xac, 0x6e, 0xfe, 0xae, 0x0f, 0x72, 0xdb, 0xc2, 0x1b, 0x44, 0x10, 0xcf, 0xc2,
- 0x10, 0x65, 0x9b, 0x61, 0x50, 0x93, 0xa2, 0x72, 0x96, 0xfe, 0xfa, 0xea, 0xfb, 0x51, 0x86, 0x51,
- 0x12, 0xf0, 0xe8, 0xe8, 0x98, 0xfb, 0x9e, 0x8b, 0x01, 0x92, 0x4f, 0x05, 0xc2, 0x3d, 0x18, 0x52,
- 0x79, 0xb4, 0x97, 0x23, 0xb2, 0x66, 0x41, 0xdf, 0x80, 0xa2, 0xd3, 0xf4, 0x9b, 0x9e, 0x2a, 0xba,
- 0xf1, 0xe1, 0x44, 0xa2, 0xf7, 0x72, 0x10, 0x9e, 0x4d, 0x41, 0x74, 0xbe, 0x79, 0x20, 0x20, 0xcc,
- 0x0f, 0x0d, 0x18, 0x8e, 0xa3, 0xe0, 0x2a, 0xe4, 0x59, 0x62, 0x0c, 0x9b, 0xba, 0xca, 0x03, 0xad,
- 0xb1, 0x74, 0xb0, 0xe2, 0x0a, 0x47, 0x76, 0x49, 0x10, 0xfa, 0x6a, 0x43, 0x2d, 0xf5, 0x81, 0xee,
- 0x42, 0xce, 0x55, 0xd1, 0xc9, 0xe4, 0x2e, 0x8d, 0xde, 0x5e, 0x3c, 0xc5, 0xdc, 0x3a, 0x88, 0xad,
- 0x84, 0xfe, 0x6e, 0xee, 0x7b, 0x1f, 0x2f, 0x5d, 0xf8, 0xf2, 0xe3, 0xa5, 0x0b, 0xe6, 0x4f, 0x0d,
- 0x40, 0x69, 0xc3, 0x90, 0x98, 0xb7, 0x2b, 0xbd, 0x16, 0x60, 0x24, 0x6e, 0xbf, 0x5d, 0xad, 0x5b,
- 0x4e, 0x0d, 0x54, 0x44, 0x55, 0xcc, 0x35, 0x34, 0x9a, 0x56, 0x6f, 0xe9, 0x14, 0xf5, 0x62, 0xa1,
- 0x56, 0xc2, 0x90, 0xd1, 0xaf, 0x02, 0xd3, 0x99, 0x3e, 0xac, 0x12, 0xb8, 0xd4, 0x11, 0x07, 0x83,
- 0x76, 0xd9, 0x46, 0x87, 0xec, 0x69, 0x18, 0xa4, 0x6c, 0xbd, 0xa9, 0x3c, 0x30, 0x67, 0xa9, 0x0f,
- 0xf3, 0x8f, 0x7d, 0x90, 0x93, 0xe9, 0x61, 0x33, 0x6c, 0xf7, 0x53, 0xe3, 0x79, 0xfc, 0x34, 0xc9,
- 0x19, 0x7d, 0x3d, 0xe7, 0x8c, 0x63, 0x9b, 0xdb, 0x2f, 0x43, 0xad, 0x7d, 0x73, 0xef, 0x40, 0xbf,
- 0x38, 0xc4, 0xf4, 0xe0, 0xbe, 0x82, 0xbe, 0x23, 0x86, 0x07, 0x3b, 0x62, 0x18, 0xbd, 0x0e, 0x33,
- 0xb2, 0x53, 0x25, 0x0e, 0x6d, 0x50, 0x71, 0xa8, 0xc4, 0xae, 0x1b, 0x11, 0xc6, 0xe4, 0x8d, 0xcb,
- 0x98, 0x3c, 0x11, 0x19, 0xd6, 0xd4, 0x1e, 0x21, 0x56, 0x4c, 0x51, 0x52, 0x04, 0x71, 0x0e, 0x1a,
- 0x4e, 0x73, 0xd0, 0x8f, 0xfb, 0x20, 0x1f, 0xdb, 0xae, 0x4c, 0x3c, 0x8e, 0xd1, 0x1c, 0x0c, 0x53,
- 0x66, 0x7b, 0xc7, 0xb3, 0x82, 0x05, 0x88, 0x1c, 0x12, 0xa7, 0x29, 0x5b, 0xb3, 0xe7, 0xc9, 0x0f,
- 0x93, 0x09, 0xfb, 0x5b, 0xb1, 0x01, 0x1e, 0x43, 0x21, 0xc5, 0xd4, 0xc1, 0xde, 0x43, 0xb6, 0x98,
- 0x48, 0x98, 0x55, 0xab, 0x84, 0x36, 0x21, 0x1d, 0xd2, 0xc9, 0xa7, 0x87, 0xcd, 0x1f, 0x4f, 0x78,
- 0x55, 0xf1, 0xfc, 0x49, 0x7f, 0x36, 0xae, 0x12, 0xb7, 0x3b, 0x31, 0xae, 0x3a, 0x4d, 0xff, 0x26,
- 0x8c, 0xc7, 0x91, 0x60, 0xbb, 0x62, 0x63, 0xf5, 0x9d, 0xe5, 0xb5, 0x73, 0x02, 0x48, 0x1a, 0xc1,
- 0xca, 0x37, 0xda, 0x6c, 0x72, 0x0f, 0x86, 0x1a, 0xf8, 0x28, 0x6c, 0xf2, 0x5e, 0x36, 0x47, 0xb3,
- 0xfc, 0xe7, 0x3b, 0xa1, 0xd0, 0xb0, 0x11, 0x78, 0xbd, 0x5c, 0xae, 0x09, 0x7a, 0xb3, 0x05, 0x28,
- 0x2d, 0x82, 0x49, 0xd6, 0xcb, 0xe6, 0x2c, 0xa3, 0xc7, 0x9c, 0x75, 0xdc, 0xb4, 0x7d, 0xc7, 0x4d,
- 0x6b, 0x46, 0x30, 0x99, 0xca, 0x8d, 0x9b, 0xab, 0xae, 0x9c, 0xe2, 0x75, 0x18, 0xd6, 0xe9, 0x5b,
- 0x7b, 0xc3, 0x79, 0xd9, 0x3e, 0x26, 0x37, 0xf7, 0x21, 0xaf, 0xc7, 0xde, 0x6e, 0xb8, 0xe2, 0x7c,
- 0x99, 0xd4, 0x13, 0x23, 0x5b, 0x4f, 0xca, 0x99, 0x7a, 0xd2, 0xb7, 0xdc, 0xbf, 0x32, 0x7a, 0x7b,
- 0xe5, 0xdc, 0xf6, 0xe1, 0x58, 0x65, 0x31, 0xff, 0x60, 0x40, 0x61, 0x3b, 0xa4, 0x01, 0x67, 0x99,
- 0x03, 0xf3, 0xbb, 0x30, 0xa7, 0xee, 0x93, 0x1b, 0x72, 0x26, 0x7b, 0x46, 0xef, 0x21, 0xf7, 0xce,
- 0x48, 0x8c, 0x93, 0xc0, 0xf9, 0x29, 0xe0, 0x3d, 0x24, 0x98, 0x19, 0x7e, 0x12, 0xb8, 0xf9, 0x8f,
- 0x3e, 0x58, 0xdc, 0xcd, 0x5e, 0x7c, 0xdd, 0xc7, 0x7e, 0x03, 0xd3, 0x5a, 0xb0, 0x1e, 0x86, 0x8c,
- 0x57, 0x82, 0xbd, 0x10, 0xdd, 0x81, 0xb9, 0xaa, 0xf8, 0x20, 0xae, 0xdd, 0xf6, 0xce, 0xe1, 0xb2,
- 0xa2, 0x21, 0x4f, 0xaa, 0xd3, 0x7a, 0x7a, 0x27, 0x7d, 0xbd, 0x70, 0x19, 0x22, 0x30, 0x97, 0x25,
- 0x4f, 0xb5, 0x8e, 0x77, 0xff, 0xc6, 0xa9, 0xae, 0xd7, 0xae, 0xa3, 0xbe, 0xc6, 0x9a, 0x49, 0x1f,
- 0x47, 0xd2, 0x39, 0x86, 0x4a, 0x70, 0x39, 0xd6, 0xee, 0x84, 0xe7, 0x11, 0x57, 0xb4, 0x0e, 0x42,
- 0xc7, 0x8b, 0x9a, 0xa8, 0xf3, 0xee, 0x40, 0x68, 0x7a, 0x00, 0x97, 0x8f, 0xb3, 0x66, 0xf5, 0x1d,
- 0x78, 0x1e, 0x7d, 0x17, 0x3a, 0xdf, 0x57, 0x32, 0x5a, 0x9b, 0xbf, 0x36, 0x00, 0xc5, 0x3b, 0xad,
- 0xf6, 0x7d, 0x3b, 0x0c, 0x3d, 0x74, 0x03, 0x26, 0x18, 0xc7, 0xd1, 0xf1, 0x63, 0xda, 0xb8, 0x1c,
- 0x4e, 0x8f, 0x73, 0xdf, 0x86, 0x69, 0x75, 0x01, 0xa0, 0x20, 0xe2, 0xbb, 0x4d, 0xbd, 0xb3, 0x67,
- 0x5c, 0x09, 0xfe, 0x97, 0xd0, 0xed, 0x97, 0x7f, 0x59, 0x5a, 0xa9, 0x51, 0x5e, 0x6f, 0x56, 0x57,
- 0x9d, 0xd0, 0x5f, 0xd3, 0x0f, 0x6b, 0xea, 0xbf, 0x57, 0x98, 0xbb, 0xbf, 0xc6, 0x8f, 0x1a, 0x84,
- 0x49, 0x06, 0x66, 0x21, 0x1f, 0x1f, 0xb6, 0xab, 0xca, 0xcc, 0x9f, 0xf5, 0xc1, 0xfc, 0x89, 0x5e,
- 0x23, 0x1d, 0xe6, 0x2e, 0xcc, 0x27, 0x8a, 0xc5, 0x67, 0xe7, 0xe4, 0x8e, 0x44, 0xad, 0x67, 0x2e,
- 0x26, 0x88, 0x0f, 0xcd, 0xf1, 0x75, 0xc8, 0x15, 0x18, 0x3b, 0x68, 0x86, 0x9c, 0xd8, 0x32, 0x66,
- 0xd5, 0x82, 0x46, 0xac, 0x51, 0x39, 0x56, 0x96, 0x43, 0xa8, 0x01, 0xf3, 0xed, 0x57, 0xba, 0xb6,
- 0xb4, 0xad, 0x4d, 0x83, 0xbd, 0x50, 0x77, 0x62, 0x77, 0x4e, 0x31, 0xd5, 0xd9, 0x9e, 0x6e, 0xcd,
- 0xb6, 0x5d, 0x01, 0xa7, 0x11, 0xf0, 0x1a, 0xcc, 0xb9, 0x94, 0x1d, 0x34, 0xb1, 0x47, 0xf7, 0x28,
- 0x71, 0xb3, 0xde, 0x35, 0x20, 0xf5, 0x9b, 0xc9, 0x4e, 0x27, 0x8e, 0x65, 0xfe, 0xa6, 0x0f, 0xa6,
- 0x36, 0x08, 0x29, 0x53, 0xa6, 0x8e, 0x6e, 0x54, 0x34, 0x78, 0x7b, 0x21, 0xda, 0x81, 0x29, 0x95,
- 0x2e, 0x5c, 0x3d, 0xa3, 0x6e, 0xd6, 0x7a, 0x48, 0x15, 0x93, 0x92, 0x3f, 0x06, 0x96, 0x97, 0x6a,
- 0x3b, 0x30, 0xc5, 0x4f, 0x00, 0xed, 0xa5, 0x07, 0xe1, 0xc7, 0x40, 0xd7, 0x21, 0xaf, 0x2f, 0xea,
- 0xf5, 0x55, 0x4a, 0x7f, 0x37, 0xd7, 0x4d, 0x63, 0x8a, 0x47, 0xdf, 0xae, 0xdc, 0x83, 0xa1, 0x56,
- 0xe8, 0x35, 0xfd, 0x9e, 0xca, 0xac, 0x66, 0x31, 0xbf, 0xdb, 0xbe, 0x85, 0x3b, 0x4e, 0x9d, 0xb8,
- 0x4d, 0x8f, 0x08, 0x3f, 0xa9, 0x36, 0x1d, 0x61, 0x05, 0xf5, 0xfe, 0x60, 0xc8, 0x4b, 0x94, 0x51,
- 0x35, 0xa6, 0xde, 0x1b, 0x6e, 0xc0, 0x84, 0x26, 0x49, 0x2e, 0x70, 0xfa, 0x54, 0x30, 0xa9, 0xe1,
- 0xe4, 0xbe, 0xa6, 0xd3, 0xe7, 0xfa, 0x8f, 0xfb, 0x5c, 0x05, 0x80, 0x53, 0x12, 0x49, 0x1f, 0x8b,
- 0xf3, 0xc1, 0xcd, 0x53, 0x9c, 0xec, 0x04, 0x8b, 0x5b, 0x23, 0x5c, 0xff, 0x62, 0x67, 0x39, 0xd3,
- 0xe0, 0x59, 0xce, 0xb4, 0x05, 0xa8, 0x03, 0x79, 0x77, 0x77, 0x13, 0x21, 0x18, 0xe0, 0x71, 0x99,
- 0x19, 0xb0, 0xe4, 0x6f, 0x51, 0x6e, 0x39, 0xf7, 0x32, 0x39, 0x44, 0x2d, 0x7b, 0x8c, 0x73, 0x2f,
- 0xbd, 0xe9, 0xf9, 0x81, 0x01, 0xe3, 0x25, 0x55, 0xe4, 0x74, 0x54, 0xa3, 0x22, 0x0c, 0xeb, 0xb2,
- 0xa7, 0x0b, 0x67, 0xfc, 0x89, 0x08, 0x0c, 0xff, 0x1b, 0x33, 0x4c, 0x8c, 0x6d, 0x7e, 0xc7, 0x80,
- 0x31, 0xd9, 0x49, 0x5a, 0xc4, 0x09, 0x85, 0x46, 0x67, 0x1e, 0x82, 0x76, 0x61, 0xda, 0xc3, 0x9c,
- 0x30, 0x6e, 0x8b, 0xb0, 0x95, 0xed, 0x56, 0x98, 0x6a, 0x68, 0x9e, 0x91, 0x02, 0x34, 0xbe, 0x85,
- 0x14, 0x7f, 0x56, 0xa4, 0xf9, 0x1a, 0xe4, 0xd3, 0xf2, 0x5f, 0x29, 0x33, 0x74, 0x1d, 0xc6, 0xdb,
- 0x9a, 0x17, 0x55, 0xf5, 0xc6, 0xac, 0x7c, 0xb6, 0x7b, 0x61, 0xe6, 0x2f, 0x0c, 0x18, 0xcd, 0x00,
- 0xa1, 0x4b, 0x30, 0xd2, 0x99, 0xc4, 0xd3, 0x81, 0xaf, 0x72, 0xb8, 0xca, 0x1e, 0xec, 0xfa, 0x9f,
- 0xe3, 0x60, 0x67, 0xfa, 0x30, 0xa8, 0x5e, 0x5d, 0x6e, 0x81, 0xd1, 0xe8, 0x25, 0xe9, 0x18, 0x0d,
- 0xc1, 0x72, 0xd0, 0x8b, 0xce, 0xc6, 0x81, 0xf9, 0x43, 0x03, 0x96, 0x4a, 0xb5, 0x5a, 0x44, 0x6a,
- 0x98, 0x93, 0x74, 0x6b, 0x9f, 0xca, 0xf8, 0xd6, 0x9b, 0xd5, 0xd5, 0x69, 0xfc, 0x0d, 0x18, 0xd7,
- 0xce, 0xa0, 0x72, 0x43, 0x6c, 0xe9, 0xab, 0xa7, 0x58, 0x5a, 0x85, 0x8e, 0x96, 0x93, 0xf7, 0x33,
- 0x5f, 0xcc, 0xfc, 0xc0, 0x80, 0x4b, 0x89, 0x52, 0xa5, 0x13, 0x34, 0x3a, 0x3d, 0x16, 0xfe, 0x95,
- 0x6a, 0x94, 0x44, 0xe7, 0x1a, 0x84, 0x7e, 0x99, 0x38, 0xd4, 0xc7, 0x1e, 0x3b, 0xa5, 0x73, 0xbd,
- 0x28, 0x3a, 0x57, 0x45, 0x21, 0x37, 0x7f, 0xc0, 0x4a, 0xbe, 0x4d, 0x02, 0xe8, 0x61, 0x84, 0x03,
- 0x5e, 0x6a, 0xf2, 0x7a, 0x18, 0xd1, 0x6f, 0xaa, 0x94, 0x56, 0x84, 0xe1, 0x9a, 0x18, 0xd5, 0x7f,
- 0x7b, 0x32, 0x62, 0xc5, 0x9f, 0xe8, 0x0e, 0x0c, 0xe9, 0x54, 0xde, 0xd7, 0x4d, 0x2a, 0xd7, 0xc4,
- 0xe6, 0x7b, 0x30, 0x5a, 0x92, 0x6b, 0x93, 0xc2, 0x52, 0xfc, 0xa8, 0x1d, 0x3f, 0x7a, 0x5e, 0xfc,
- 0x8f, 0x0c, 0x18, 0x7f, 0xb0, 0xb7, 0x47, 0xba, 0x92, 0x51, 0x81, 0xc9, 0x80, 0x70, 0x5b, 0x7d,
- 0xea, 0xa7, 0xe4, 0xee, 0xc4, 0x4d, 0x04, 0x84, 0x3f, 0x54, 0x6c, 0xf2, 0xd1, 0x18, 0xcd, 0x43,
- 0x8e, 0x32, 0xbb, 0x85, 0x3d, 0x7d, 0x4b, 0x91, 0xb3, 0x86, 0x29, 0x7b, 0x2a, 0x3e, 0xcd, 0x06,
- 0x14, 0xa4, 0x71, 0xb6, 0x68, 0xf0, 0x38, 0x14, 0xbb, 0x8a, 0xbd, 0x53, 0xec, 0xb3, 0x01, 0x63,
- 0x3e, 0x0d, 0xec, 0x40, 0x53, 0xf5, 0x12, 0x20, 0xa3, 0x7e, 0x8a, 0x7e, 0xf3, 0xf7, 0x06, 0xe4,
- 0x1f, 0xc4, 0xc7, 0xec, 0xdd, 0xa3, 0x06, 0x41, 0x97, 0xa0, 0xf8, 0x76, 0xc0, 0x1a, 0xc4, 0x91,
- 0xc5, 0xa0, 0x6d, 0xae, 0x70, 0x01, 0x01, 0x0c, 0x29, 0xef, 0x2a, 0x18, 0x28, 0x0f, 0x23, 0x9b,
- 0xd4, 0xa7, 0x7c, 0x83, 0x7a, 0x5e, 0xa1, 0x0f, 0x5d, 0x84, 0x59, 0xf9, 0xb9, 0x85, 0xb9, 0x53,
- 0xb7, 0xd4, 0x5b, 0xb6, 0xbc, 0x61, 0x2a, 0xf4, 0xa3, 0x59, 0x40, 0xe9, 0xdc, 0x63, 0xf2, 0xbe,
- 0x1a, 0x1f, 0x40, 0x33, 0x30, 0xa9, 0x1f, 0xd4, 0xf4, 0xfb, 0x34, 0x0d, 0x83, 0xc2, 0xa0, 0x80,
- 0x7a, 0x70, 0xd8, 0xa0, 0xd1, 0x91, 0x9a, 0xdc, 0x21, 0x9c, 0x7b, 0xf2, 0x95, 0xbd, 0x30, 0x24,
- 0xa0, 0x9e, 0xec, 0xed, 0x31, 0xc2, 0x05, 0x7e, 0x7c, 0x66, 0x2c, 0x0c, 0xaf, 0xef, 0x7f, 0xf2,
- 0xf9, 0xa2, 0xf1, 0xe9, 0xe7, 0x8b, 0xc6, 0x5f, 0x3f, 0x5f, 0x34, 0x3e, 0xfa, 0x62, 0xf1, 0xc2,
- 0xa7, 0x5f, 0x2c, 0x5e, 0xf8, 0xd3, 0x17, 0x8b, 0x17, 0xde, 0x79, 0x2b, 0x53, 0x16, 0x2a, 0x71,
- 0xc0, 0x6c, 0xe2, 0x2a, 0x5b, 0x4b, 0xc2, 0xe7, 0x15, 0x27, 0x8c, 0x48, 0xf6, 0xb3, 0x8e, 0x69,
- 0xb0, 0xe6, 0x87, 0xa2, 0xf0, 0xb3, 0xf4, 0x2f, 0xb2, 0x64, 0x09, 0x59, 0x6b, 0xdd, 0xae, 0x0e,
- 0xc9, 0x47, 0xca, 0x57, 0xff, 0x19, 0x00, 0x00, 0xff, 0xff, 0x58, 0x3c, 0x91, 0x3c, 0x88, 0x26,
- 0x00, 0x00,
-}
+ // 3229 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xc9, 0x6f, 0x1c, 0xc7,
+ 0xb9, 0x57, 0x0f, 0xb7, 0xe1, 0x47, 0x0e, 0x39, 0x2c, 0x6e, 0xc3, 0x9d, 0x6a, 0x49, 0x16, 0x2d,
+ 0x5b, 0xe4, 0x93, 0x0c, 0x19, 0x7e, 0xd2, 0xdb, 0x48, 0x8d, 0x28, 0xd1, 0x26, 0x25, 0xba, 0x49,
+ 0x0b, 0x0f, 0x36, 0x9e, 0x1b, 0xc5, 0xee, 0xe2, 0x4c, 0x89, 0xbd, 0x0c, 0xbb, 0x6a, 0x68, 0xf2,
+ 0x05, 0x39, 0x18, 0x30, 0x90, 0xc0, 0xb9, 0x38, 0xb9, 0x25, 0x88, 0x01, 0x1f, 0x12, 0x04, 0xc8,
+ 0x29, 0x87, 0x1c, 0x73, 0x08, 0x10, 0x04, 0xf0, 0x21, 0x01, 0x8c, 0x1c, 0x82, 0x20, 0x07, 0x27,
+ 0xb0, 0x0f, 0x31, 0x72, 0xce, 0x1f, 0x10, 0xd4, 0xd2, 0xcb, 0x0c, 0x39, 0xe4, 0x8c, 0x9c, 0x00,
+ 0xb9, 0x48, 0xd3, 0x55, 0xdf, 0xf7, 0xfb, 0xbe, 0xaa, 0xfa, 0xd6, 0x2a, 0xc2, 0x55, 0x1a, 0x3c,
+ 0x23, 0x0e, 0xa7, 0x47, 0x64, 0x85, 0x1c, 0x3b, 0x55, 0x1c, 0x54, 0xc8, 0xca, 0xd1, 0xed, 0xe4,
+ 0xf7, 0x72, 0x2d, 0x0a, 0x79, 0x88, 0xc6, 0x13, 0xaa, 0xe5, 0x64, 0xe6, 0xe8, 0xf6, 0xf4, 0x58,
+ 0x25, 0xac, 0x84, 0x92, 0x62, 0x45, 0xfc, 0x52, 0xc4, 0xd3, 0x23, 0xd8, 0xa7, 0x41, 0xb8, 0x22,
+ 0xff, 0xd5, 0x43, 0xf3, 0x4e, 0xc8, 0xfc, 0x90, 0xad, 0xec, 0x61, 0x46, 0x56, 0x8e, 0x6e, 0xed,
+ 0x11, 0x8e, 0x6f, 0xad, 0x38, 0x21, 0x0d, 0xf4, 0xfc, 0x94, 0x9a, 0xb7, 0x15, 0x96, 0xfa, 0xd0,
+ 0x53, 0xd7, 0x52, 0x05, 0xc3, 0x08, 0x3b, 0x5e, 0xca, 0xaf, 0x3e, 0x35, 0x99, 0x79, 0xf6, 0x3a,
+ 0x7c, 0x1c, 0x1d, 0x10, 0xae, 0x69, 0x2e, 0x9f, 0x4d, 0x13, 0x46, 0x2e, 0x89, 0x14, 0x89, 0xf9,
+ 0xb1, 0x01, 0xb3, 0x0f, 0x82, 0xfd, 0x30, 0x72, 0x88, 0x6b, 0x11, 0xc6, 0x23, 0xea, 0x70, 0x1a,
+ 0x06, 0xec, 0x7e, 0x18, 0xf0, 0x08, 0x3b, 0x1c, 0xdd, 0x87, 0xa2, 0xa3, 0x7f, 0xdb, 0xd8, 0x75,
+ 0x23, 0xc2, 0x58, 0xc9, 0x58, 0x34, 0x96, 0xfa, 0xd7, 0x4a, 0xbf, 0xfb, 0xf9, 0xcd, 0x31, 0xad,
+ 0xfa, 0xaa, 0x9a, 0xd9, 0xe1, 0x11, 0x0d, 0x2a, 0xd6, 0x70, 0xcc, 0xa1, 0x87, 0xd1, 0x6d, 0x18,
+ 0xaf, 0xe1, 0x3a, 0x23, 0x36, 0x39, 0x22, 0x01, 0xb7, 0x19, 0xad, 0x04, 0x98, 0xd7, 0x23, 0x52,
+ 0xca, 0x09, 0x24, 0x6b, 0x54, 0x4e, 0x3e, 0x10, 0x73, 0x3b, 0xf1, 0xd4, 0xdd, 0xee, 0xaf, 0x3e,
+ 0x59, 0x30, 0xcc, 0xef, 0x4f, 0x43, 0xef, 0x36, 0x8e, 0xb0, 0xcf, 0x10, 0x81, 0x05, 0x56, 0x0b,
+ 0xb9, 0xad, 0x96, 0x68, 0xd3, 0x80, 0x71, 0x1c, 0x70, 0xdb, 0xa3, 0x8c, 0xd3, 0xa0, 0x62, 0xef,
+ 0x13, 0x22, 0x15, 0x1b, 0xb8, 0x3d, 0xb5, 0xac, 0xb5, 0x12, 0xbb, 0xbf, 0xac, 0x77, 0x6f, 0xf9,
+ 0x7e, 0x48, 0x83, 0xb5, 0xee, 0x4f, 0x3f, 0x5f, 0xb8, 0x64, 0xcd, 0x08, 0x9c, 0x2d, 0x09, 0xb3,
+ 0xa1, 0x50, 0x36, 0x15, 0xc8, 0x3a, 0x21, 0xe8, 0x10, 0xae, 0xb9, 0x24, 0xa2, 0x47, 0x58, 0xec,
+ 0xdb, 0x79, 0xc2, 0x72, 0xed, 0x09, 0xbb, 0x9c, 0xa2, 0xb5, 0x12, 0x89, 0x61, 0xc6, 0x25, 0xfb,
+ 0xb8, 0xee, 0x71, 0x5b, 0xaf, 0xf0, 0x80, 0x44, 0x42, 0x86, 0x1d, 0x61, 0x4e, 0x4a, 0x5d, 0x72,
+ 0xbb, 0xaf, 0x08, 0xb4, 0x3f, 0x7e, 0xbe, 0x30, 0xa3, 0xe4, 0x31, 0xf7, 0x60, 0x99, 0x86, 0x2b,
+ 0x3e, 0xe6, 0xd5, 0xe5, 0x4d, 0x52, 0xc1, 0xce, 0x49, 0x99, 0x38, 0xd6, 0xa4, 0xc6, 0xd9, 0x91,
+ 0x0b, 0x3c, 0x20, 0xd1, 0x3a, 0x21, 0x16, 0xe6, 0xa7, 0x45, 0xf0, 0x46, 0x11, 0xdd, 0xcf, 0x27,
+ 0x62, 0x37, 0x2b, 0xc2, 0x87, 0xcb, 0xb1, 0x88, 0x86, 0x0d, 0x6c, 0x10, 0xd4, 0xd3, 0xbe, 0xa0,
+ 0x39, 0x8d, 0x56, 0xce, 0xec, 0xdf, 0x85, 0xe2, 0x9a, 0xd6, 0xd5, 0xfb, 0x75, 0xc4, 0x35, 0xac,
+ 0xce, 0x85, 0xd9, 0x58, 0x1c, 0x0d, 0x28, 0xa7, 0xd8, 0x13, 0xb6, 0x51, 0xa1, 0x81, 0x10, 0x44,
+ 0xc3, 0x52, 0x5f, 0xfb, 0x92, 0xa6, 0x34, 0xd0, 0x86, 0xc2, 0xd9, 0x92, 0x30, 0x96, 0x40, 0x41,
+ 0x1e, 0x2c, 0xc6, 0x52, 0x7c, 0x4c, 0x03, 0x4e, 0x02, 0x1c, 0x38, 0xa4, 0x51, 0x52, 0xbe, 0xf3,
+ 0x35, 0x6d, 0xa5, 0x58, 0x59, 0x69, 0xaf, 0x41, 0x29, 0x96, 0xb6, 0x5f, 0x0f, 0x5c, 0x61, 0xd8,
+ 0x82, 0x2e, 0x3a, 0xc2, 0x5e, 0xa9, 0x7f, 0xd1, 0x58, 0xea, 0xb2, 0x26, 0xf4, 0xfc, 0xba, 0x9a,
+ 0xde, 0xd0, 0xb3, 0xe8, 0x45, 0x28, 0xc6, 0x1c, 0x7e, 0xdd, 0xe3, 0xb4, 0xe6, 0x91, 0x12, 0x48,
+ 0x8e, 0x61, 0x3d, 0xbe, 0xa5, 0x87, 0xd1, 0xff, 0xc2, 0x44, 0x44, 0x3c, 0x7c, 0xa2, 0x8f, 0x85,
+ 0x55, 0x71, 0xa4, 0x0f, 0x67, 0xa0, 0xfd, 0x85, 0x8c, 0x6a, 0x88, 0x75, 0x42, 0x76, 0x04, 0x80,
+ 0x3c, 0x12, 0x0a, 0x0b, 0xb1, 0xfa, 0xd5, 0xb0, 0x1e, 0x79, 0x27, 0xc9, 0x2a, 0x04, 0xbc, 0xed,
+ 0xe0, 0x5a, 0x69, 0xb0, 0x7d, 0x11, 0xb1, 0x7f, 0x3c, 0x92, 0x50, 0x7a, 0xc1, 0x42, 0xce, 0x7d,
+ 0x5c, 0xcb, 0x9e, 0xbe, 0x16, 0x25, 0x37, 0x8a, 0x30, 0xae, 0x96, 0x52, 0xe8, 0xfc, 0xf4, 0x95,
+ 0x9c, 0x0d, 0x0d, 0x23, 0x17, 0x54, 0x86, 0x05, 0x1f, 0x1f, 0x67, 0xcd, 0x59, 0x86, 0x6a, 0x9b,
+ 0x51, 0x97, 0xd8, 0x4e, 0x58, 0x0f, 0x78, 0x69, 0x68, 0xd1, 0x58, 0x2a, 0x58, 0x33, 0x3e, 0x3e,
+ 0x4e, 0xed, 0xf4, 0x89, 0x20, 0xda, 0xa1, 0x2e, 0xb9, 0x2f, 0x48, 0x10, 0x83, 0xeb, 0x34, 0x78,
+ 0x66, 0x47, 0xe4, 0x3d, 0x1c, 0xb9, 0x36, 0x13, 0x1e, 0xe1, 0xda, 0x11, 0x39, 0xac, 0xd3, 0x88,
+ 0xf8, 0x22, 0xfc, 0xf2, 0x6a, 0x44, 0x58, 0x35, 0xf4, 0xdc, 0xd2, 0xb0, 0x54, 0x7b, 0x4e, 0xab,
+ 0x3d, 0x7e, 0x5a, 0xed, 0x8d, 0x80, 0x5b, 0x57, 0x68, 0xf0, 0xcc, 0x92, 0x60, 0x3b, 0x12, 0xcb,
+ 0x4a, 0xa1, 0x76, 0x63, 0x24, 0xf4, 0x10, 0x16, 0x79, 0x84, 0xd5, 0xe6, 0x4b, 0x5a, 0x66, 0x1f,
+ 0x11, 0x15, 0x2b, 0xdd, 0xba, 0xb4, 0xdb, 0xa0, 0x54, 0x94, 0x06, 0x32, 0xa7, 0xe9, 0x14, 0x24,
+ 0x7b, 0xaa, 0xa8, 0xca, 0x9a, 0x48, 0xec, 0xb4, 0x47, 0x0f, 0xeb, 0xd4, 0xc5, 0x3c, 0x8c, 0x92,
+ 0x45, 0xa4, 0x46, 0x33, 0xd2, 0xc1, 0x4e, 0xa7, 0x40, 0x5a, 0xff, 0xc4, 0x74, 0x8e, 0xe1, 0xc5,
+ 0x3d, 0x1a, 0xe0, 0xe8, 0xc4, 0x0e, 0x6b, 0x32, 0xdf, 0x9d, 0x17, 0xe8, 0x51, 0x7b, 0x81, 0xfe,
+ 0xaa, 0x42, 0x7c, 0xa2, 0x00, 0x5b, 0xc5, 0xfa, 0x6f, 0xc0, 0x22, 0xe6, 0xa1, 0x4f, 0x9d, 0x58,
+ 0xa2, 0x3a, 0x62, 0xec, 0x38, 0x84, 0x31, 0xdb, 0x23, 0x47, 0xc4, 0x2b, 0x8d, 0x2e, 0x1a, 0x4b,
+ 0x43, 0xb7, 0x5f, 0x59, 0x3e, 0xb3, 0x08, 0x59, 0x5e, 0x95, 0xec, 0x0a, 0x5f, 0x1e, 0xfd, 0xaa,
+ 0xe4, 0xdd, 0x14, 0xac, 0xd6, 0x2c, 0x3e, 0x67, 0x16, 0x1d, 0xc3, 0x75, 0x19, 0xfd, 0xcf, 0xd2,
+ 0x40, 0x38, 0xa7, 0xf6, 0x65, 0x4a, 0xa2, 0xd2, 0x58, 0xfb, 0xfb, 0x6c, 0x0a, 0xcc, 0x53, 0x5a,
+ 0xad, 0x13, 0xb2, 0x95, 0xc0, 0xa1, 0x0f, 0x0c, 0xb8, 0x99, 0xb1, 0xeb, 0x36, 0x14, 0x18, 0x6f,
+ 0x5f, 0x81, 0xa5, 0x14, 0xf9, 0x02, 0x35, 0xbe, 0x63, 0xc0, 0xad, 0xa6, 0x83, 0x6f, 0x43, 0x95,
+ 0x89, 0xf6, 0x55, 0x79, 0xa9, 0xc1, 0x08, 0x2e, 0xd0, 0xe6, 0x5d, 0x98, 0xf2, 0x69, 0x40, 0x7d,
+ 0xec, 0xa9, 0x42, 0xd0, 0x09, 0xbd, 0x34, 0x75, 0x4d, 0xb6, 0x2f, 0x74, 0x42, 0xa3, 0x6c, 0x6b,
+ 0x90, 0x38, 0x67, 0xbd, 0x03, 0x2f, 0x51, 0x96, 0x98, 0xf4, 0xe9, 0xaa, 0xc6, 0xc3, 0xf5, 0xc0,
+ 0xa9, 0xda, 0x24, 0xc0, 0x7b, 0x1e, 0x71, 0x4b, 0xa5, 0x45, 0x63, 0x29, 0x6f, 0xbd, 0x40, 0x99,
+ 0xb6, 0xda, 0x72, 0x53, 0xe1, 0xb2, 0x29, 0xc9, 0x1f, 0x28, 0x6a, 0x11, 0xac, 0x6a, 0x21, 0xe3,
+ 0x76, 0x18, 0x78, 0x27, 0xb6, 0x1f, 0xba, 0xc4, 0xae, 0x12, 0x5a, 0xa9, 0x66, 0xc3, 0xcb, 0x94,
+ 0x74, 0xf8, 0x19, 0x41, 0xf6, 0x24, 0xf0, 0x4e, 0xb6, 0x42, 0x97, 0x3c, 0x92, 0x34, 0x69, 0xdc,
+ 0xa8, 0xc0, 0x2d, 0x9d, 0xdc, 0x5c, 0xe2, 0x44, 0x04, 0x33, 0x62, 0xd7, 0x22, 0xea, 0x10, 0x9b,
+ 0x53, 0x9f, 0x30, 0x8e, 0xfd, 0x5a, 0x8a, 0x67, 0x33, 0xe2, 0x84, 0x81, 0xcb, 0x4a, 0xd3, 0x12,
+ 0xf7, 0x65, 0xc5, 0x58, 0xd6, 0x7c, 0xdb, 0x82, 0x6d, 0x37, 0xe6, 0x4a, 0x24, 0xec, 0x28, 0x1e,
+ 0x74, 0x1d, 0x86, 0x63, 0x27, 0xb2, 0xb1, 0xeb, 0xd3, 0x80, 0x95, 0x66, 0x16, 0xbb, 0x96, 0xfa,
+ 0xad, 0xa1, 0x78, 0x78, 0x55, 0x8e, 0xa2, 0x4d, 0x18, 0x15, 0xe1, 0x13, 0xd7, 0x65, 0x21, 0x6c,
+ 0x8b, 0x80, 0x2c, 0x32, 0xc9, 0x6c, 0x3b, 0xa1, 0xb2, 0x48, 0x83, 0x67, 0xab, 0x8a, 0x71, 0x0b,
+ 0x1f, 0x8b, 0xc4, 0x71, 0x03, 0x46, 0xf6, 0xe9, 0x31, 0x71, 0xed, 0x0a, 0x66, 0xc9, 0x46, 0xcf,
+ 0xc9, 0x8d, 0x1e, 0x96, 0x13, 0x0f, 0x31, 0x8b, 0x77, 0xf4, 0x1e, 0x4c, 0x13, 0x9f, 0x72, 0xdb,
+ 0x93, 0x07, 0x6b, 0x1f, 0x91, 0x88, 0x09, 0x0d, 0x64, 0xcd, 0xcc, 0x4a, 0xf3, 0x92, 0x69, 0x52,
+ 0x50, 0xa8, 0x93, 0x7f, 0xaa, 0xe6, 0x65, 0xd9, 0xcc, 0xd0, 0x5e, 0x5a, 0xe0, 0x45, 0xc4, 0xad,
+ 0x37, 0x17, 0x0d, 0x0b, 0xed, 0x5b, 0x53, 0x5c, 0x13, 0x58, 0x12, 0x26, 0x5b, 0x2f, 0xfc, 0x17,
+ 0xcc, 0x36, 0x1d, 0xf9, 0x9e, 0x17, 0x3a, 0x07, 0xcc, 0xc6, 0xbe, 0x4c, 0x4e, 0x97, 0x17, 0x8d,
+ 0xa5, 0x6e, 0xab, 0x94, 0x3d, 0xef, 0x35, 0x49, 0xb0, 0x2a, 0xe7, 0xd1, 0x16, 0x5c, 0xf5, 0x69,
+ 0x60, 0x37, 0x61, 0xb8, 0xe1, 0x7b, 0x81, 0x38, 0xed, 0x34, 0x51, 0x98, 0xb2, 0x2b, 0x58, 0xf0,
+ 0x69, 0xb0, 0x9d, 0x81, 0x2a, 0x6b, 0xba, 0x24, 0x55, 0xbc, 0x0d, 0x2f, 0x9d, 0xa7, 0x8e, 0x8d,
+ 0xf7, 0x39, 0x89, 0x12, 0xf8, 0xd2, 0x15, 0xa9, 0xdd, 0xb5, 0x56, 0xda, 0xad, 0x0a, 0xea, 0x58,
+ 0x06, 0x7a, 0xdf, 0x80, 0x05, 0xa2, 0xfb, 0x22, 0x3b, 0xca, 0x34, 0x46, 0x76, 0xdc, 0xdb, 0xb0,
+ 0xd2, 0xd5, 0xc5, 0xae, 0xa5, 0x81, 0x96, 0x61, 0xfa, 0xbc, 0xae, 0x4a, 0x67, 0x8c, 0x39, 0x72,
+ 0x0e, 0x0d, 0xbb, 0x5b, 0x12, 0x1d, 0xd0, 0x87, 0x7f, 0xf9, 0xd9, 0x8d, 0xc4, 0x72, 0x57, 0x54,
+ 0x2b, 0xf4, 0x7a, 0x77, 0x7e, 0xb1, 0x78, 0xd9, 0xfc, 0x4f, 0x18, 0x7b, 0x4c, 0x8e, 0xe3, 0xda,
+ 0x2c, 0x31, 0x7d, 0x74, 0x0d, 0x86, 0x02, 0x72, 0xcc, 0x53, 0x17, 0x92, 0x7d, 0x51, 0x97, 0x55,
+ 0x10, 0xa3, 0x09, 0x99, 0xf9, 0x57, 0x03, 0x86, 0xb6, 0xa8, 0x2b, 0xfd, 0x66, 0x35, 0x70, 0x77,
+ 0x9f, 0xac, 0xa1, 0xff, 0x81, 0x7e, 0x9f, 0xba, 0xca, 0x03, 0x75, 0x97, 0x27, 0x4c, 0xc6, 0xb8,
+ 0xc8, 0x64, 0xf2, 0xbe, 0xc6, 0x41, 0x1b, 0x30, 0xb4, 0x27, 0xaa, 0xa2, 0xbd, 0xfa, 0x89, 0x86,
+ 0xc9, 0xb5, 0x0f, 0x33, 0x28, 0x58, 0xd7, 0xea, 0x27, 0x0a, 0xea, 0x0d, 0x18, 0x96, 0x50, 0x8c,
+ 0x78, 0x9e, 0xc6, 0xea, 0x6a, 0x1f, 0xab, 0x20, 0x78, 0x77, 0x88, 0xe7, 0x49, 0x30, 0xf3, 0xc7,
+ 0x06, 0xf4, 0x95, 0x49, 0x2d, 0x64, 0x94, 0xa3, 0x6d, 0x18, 0xc1, 0x47, 0x98, 0x7a, 0xc2, 0xeb,
+ 0xec, 0x3d, 0xec, 0x89, 0xb2, 0x38, 0xb3, 0xda, 0x0b, 0x1d, 0xa4, 0x98, 0x70, 0xaf, 0x29, 0x66,
+ 0xf4, 0x08, 0x0a, 0x3c, 0xe4, 0xd8, 0x4b, 0xd0, 0x72, 0xed, 0xa3, 0x0d, 0x4a, 0x4e, 0x8d, 0x64,
+ 0xbe, 0x0c, 0x63, 0x3b, 0xf5, 0x3d, 0xec, 0xc8, 0x6a, 0x6f, 0x37, 0xc2, 0x2e, 0x79, 0x1c, 0x0a,
+ 0x09, 0x63, 0xd0, 0x13, 0x84, 0xb1, 0x9e, 0x05, 0x4b, 0x7d, 0x98, 0xbf, 0x32, 0x60, 0x38, 0x25,
+ 0x97, 0x19, 0x06, 0xfd, 0x3b, 0xf4, 0x34, 0x9f, 0xdf, 0x85, 0x3a, 0x28, 0x0e, 0xf4, 0xdf, 0x90,
+ 0x3f, 0xac, 0xe3, 0x80, 0x53, 0x7e, 0xd2, 0xc9, 0x0a, 0x12, 0x26, 0x64, 0xc2, 0x20, 0x65, 0x2a,
+ 0x6e, 0x08, 0x17, 0x93, 0xe7, 0x95, 0xb7, 0x1a, 0xc6, 0x50, 0x11, 0xba, 0x1c, 0xea, 0xaa, 0x8e,
+ 0xd3, 0x12, 0x3f, 0xcd, 0x08, 0x46, 0x9b, 0x16, 0x51, 0xc6, 0x1c, 0xa3, 0xff, 0x80, 0x1e, 0x99,
+ 0x8d, 0x75, 0x57, 0xff, 0x42, 0x0b, 0x3f, 0x6b, 0x62, 0xb5, 0x14, 0x13, 0x9a, 0x03, 0x50, 0xb9,
+ 0xbc, 0x8a, 0x59, 0x55, 0xae, 0x66, 0xd0, 0xea, 0x97, 0x23, 0x8f, 0x30, 0xab, 0x9a, 0xbf, 0xce,
+ 0x41, 0x7e, 0x5b, 0x58, 0x83, 0x08, 0x24, 0x13, 0xd0, 0x4b, 0xd9, 0x66, 0x18, 0x54, 0xa4, 0xa8,
+ 0xbc, 0xa5, 0xbf, 0xbe, 0xfe, 0x7e, 0x94, 0x61, 0x80, 0x04, 0x3c, 0x3a, 0x39, 0x65, 0xbe, 0x17,
+ 0x62, 0x80, 0xe4, 0x53, 0x8e, 0x70, 0x0f, 0x7a, 0x55, 0x2c, 0xef, 0xa4, 0x4d, 0xd7, 0x2c, 0xe8,
+ 0xff, 0xa0, 0xe4, 0xd4, 0xfd, 0xba, 0xa7, 0x12, 0x7f, 0xdc, 0x20, 0x49, 0xf4, 0x4e, 0x9a, 0xf1,
+ 0x89, 0x14, 0x44, 0xc7, 0x9b, 0x07, 0x02, 0xc2, 0xfc, 0xd0, 0x80, 0xbe, 0xd8, 0x0b, 0xae, 0x40,
+ 0x81, 0x25, 0x87, 0x61, 0x53, 0x57, 0x59, 0xa0, 0x35, 0x98, 0x0e, 0x6e, 0xb8, 0xc2, 0x90, 0x5d,
+ 0x12, 0x84, 0xbe, 0xbe, 0xfa, 0x51, 0x1f, 0xe8, 0x2e, 0xe4, 0x5d, 0xe5, 0x9d, 0x4c, 0xee, 0xd2,
+ 0xc0, 0xed, 0xf9, 0x16, 0xc7, 0xad, 0x9d, 0xd8, 0x4a, 0xe8, 0xef, 0xe6, 0xbf, 0xfd, 0xc9, 0xc2,
+ 0xa5, 0xaf, 0x3e, 0x59, 0xb8, 0x64, 0x7e, 0x6c, 0x00, 0x4a, 0x8b, 0x96, 0xe4, 0x78, 0xdb, 0xd2,
+ 0x6b, 0x06, 0xfa, 0xe3, 0x16, 0xc0, 0xd5, 0xba, 0xe5, 0xd5, 0xc0, 0x86, 0xc8, 0xcc, 0xf9, 0x9a,
+ 0x46, 0xd3, 0xea, 0x2d, 0xb4, 0x50, 0x2f, 0x16, 0x6a, 0x25, 0x0c, 0x19, 0xfd, 0x36, 0x60, 0x2c,
+ 0x53, 0x0b, 0x6e, 0x04, 0x2e, 0x75, 0x44, 0x73, 0xd2, 0x28, 0xdb, 0x68, 0x92, 0x3d, 0x06, 0x3d,
+ 0x94, 0xad, 0xd5, 0x95, 0x05, 0xe6, 0x2d, 0xf5, 0x61, 0xfe, 0x36, 0x07, 0x79, 0x19, 0x1e, 0x36,
+ 0xc3, 0x46, 0x3b, 0x35, 0x9e, 0xc7, 0x4e, 0x93, 0x98, 0x91, 0xeb, 0x38, 0x66, 0x9c, 0xda, 0xdc,
+ 0x2e, 0xe9, 0x6a, 0x8d, 0x9b, 0x7b, 0x07, 0xba, 0x44, 0x23, 0xd5, 0x81, 0xf9, 0x0a, 0xfa, 0x26,
+ 0x1f, 0xee, 0x69, 0xf2, 0x61, 0xf4, 0x1a, 0x8c, 0xcb, 0x6a, 0x99, 0x38, 0xb4, 0x46, 0x45, 0x63,
+ 0x1b, 0xdf, 0x4f, 0xf6, 0x0a, 0x4a, 0x99, 0x63, 0x0d, 0x6b, 0x74, 0x9f, 0x10, 0x2b, 0xa6, 0x88,
+ 0xef, 0x23, 0x75, 0x0c, 0xea, 0x4b, 0x63, 0xd0, 0x0f, 0x72, 0x50, 0x88, 0xcf, 0xae, 0x4c, 0x3c,
+ 0x8e, 0xd1, 0x24, 0xf4, 0x51, 0x66, 0x7b, 0xa7, 0xa3, 0x82, 0x05, 0x88, 0x1c, 0x13, 0xa7, 0x2e,
+ 0xcb, 0xc3, 0xe7, 0x89, 0x0f, 0x23, 0x09, 0xfb, 0x9b, 0xf1, 0x01, 0x3c, 0x86, 0x62, 0x8a, 0xa9,
+ 0x9d, 0xbd, 0x83, 0x68, 0x31, 0x9c, 0x30, 0xab, 0x72, 0x0d, 0x6d, 0x42, 0x3a, 0xa4, 0x83, 0x4f,
+ 0x07, 0x9b, 0x3f, 0x94, 0xf0, 0xaa, 0xe4, 0xf9, 0xc3, 0xae, 0xac, 0x5f, 0x25, 0x66, 0x77, 0xa6,
+ 0x5f, 0x35, 0x1f, 0xfd, 0x1b, 0x30, 0x14, 0x7b, 0x82, 0xed, 0x8a, 0x8d, 0xd5, 0xf7, 0xa6, 0x57,
+ 0x2f, 0x70, 0x20, 0x79, 0x08, 0x56, 0xa1, 0xd6, 0x70, 0x26, 0xf7, 0xa0, 0xb7, 0x86, 0x4f, 0xc2,
+ 0x3a, 0xef, 0x64, 0x73, 0x34, 0xcb, 0xbf, 0xbe, 0x11, 0x0a, 0x0d, 0x6b, 0x81, 0xd7, 0xc9, 0x05,
+ 0x9f, 0xa0, 0x37, 0x8f, 0x00, 0xa5, 0x49, 0x30, 0x89, 0x7a, 0xd9, 0x98, 0x65, 0x74, 0x18, 0xb3,
+ 0x4e, 0x1f, 0x6d, 0xee, 0xf4, 0xd1, 0x9a, 0x11, 0x8c, 0xa4, 0x72, 0xe3, 0xe2, 0xaa, 0x2d, 0xa3,
+ 0x78, 0x0d, 0xfa, 0x74, 0xf8, 0xd6, 0xd6, 0x70, 0x51, 0xb4, 0x8f, 0xc9, 0xcd, 0x03, 0x28, 0xe8,
+ 0xb1, 0xb7, 0x6a, 0xae, 0xe8, 0x71, 0x93, 0x7c, 0x62, 0x64, 0xf3, 0x49, 0x39, 0x93, 0x4f, 0x72,
+ 0xb2, 0x4c, 0x5f, 0xba, 0xb0, 0x7c, 0x38, 0x95, 0x59, 0xcc, 0xdf, 0x18, 0x50, 0xdc, 0x0e, 0x69,
+ 0xc0, 0x59, 0xa6, 0x69, 0x7f, 0x07, 0x26, 0xd5, 0x9d, 0x76, 0x4d, 0xce, 0x64, 0xef, 0x09, 0x3a,
+ 0x88, 0xbd, 0xe3, 0x12, 0xe3, 0x2c, 0x70, 0xde, 0x02, 0xbc, 0x83, 0x00, 0x33, 0xce, 0xcf, 0x02,
+ 0x37, 0xff, 0x96, 0x83, 0xf9, 0xdd, 0xec, 0xe5, 0xdb, 0x7d, 0xec, 0xd7, 0x30, 0xad, 0x04, 0x6b,
+ 0x61, 0xc8, 0xf8, 0x46, 0xb0, 0x1f, 0xa2, 0x3b, 0x30, 0xb9, 0x27, 0x3e, 0x88, 0x6b, 0x37, 0xbc,
+ 0xb5, 0xb8, 0xac, 0x64, 0xc8, 0x6e, 0x79, 0x4c, 0x4f, 0xef, 0xa4, 0x2f, 0x28, 0x2e, 0x43, 0x04,
+ 0x26, 0xb3, 0xe4, 0xa9, 0xd6, 0xf1, 0xee, 0x5f, 0x6f, 0x69, 0x7a, 0x8d, 0x3a, 0xea, 0xc6, 0x68,
+ 0x3c, 0x7d, 0xa0, 0x49, 0xe7, 0x18, 0x5a, 0x85, 0xb9, 0x58, 0xbb, 0x33, 0x9e, 0x68, 0x5c, 0x51,
+ 0x3a, 0x08, 0x1d, 0xa7, 0x35, 0x51, 0xf3, 0xfd, 0x85, 0xd0, 0xf4, 0x10, 0xe6, 0x4e, 0xb3, 0x66,
+ 0xf5, 0xed, 0x7e, 0x1e, 0x7d, 0x67, 0x9a, 0xdf, 0x78, 0x32, 0x5a, 0x9b, 0xbf, 0x30, 0x00, 0xc5,
+ 0x3b, 0xad, 0xf6, 0x7d, 0x3b, 0x0c, 0x3d, 0x74, 0x1d, 0x86, 0x19, 0xc7, 0xd1, 0xe9, 0x36, 0x6d,
+ 0x48, 0x0e, 0xa7, 0xed, 0xdc, 0x37, 0x61, 0x4c, 0x5d, 0x42, 0x28, 0x88, 0xf8, 0x7e, 0x55, 0xef,
+ 0xec, 0x39, 0xd7, 0x92, 0xff, 0x26, 0x74, 0xfb, 0xe9, 0x9f, 0x16, 0x96, 0x2a, 0x94, 0x57, 0xeb,
+ 0x7b, 0xcb, 0x4e, 0xe8, 0xeb, 0xa7, 0x46, 0xfd, 0xdf, 0x4d, 0xe6, 0x1e, 0xac, 0xf0, 0x93, 0x1a,
+ 0x61, 0x92, 0x81, 0x59, 0xc8, 0xc7, 0xc7, 0x8d, 0xaa, 0x32, 0xf3, 0x47, 0x39, 0x98, 0x3a, 0xd3,
+ 0x6a, 0xa4, 0xc1, 0xdc, 0x85, 0xa9, 0x44, 0xb1, 0xb8, 0x7f, 0x4f, 0xee, 0x69, 0xd4, 0x7a, 0x26,
+ 0x63, 0x82, 0xb8, 0x71, 0x8f, 0xaf, 0x64, 0x2e, 0xc3, 0xe0, 0x61, 0x3d, 0xe4, 0xc4, 0x96, 0x3e,
+ 0xab, 0x16, 0xd4, 0x6f, 0x0d, 0xc8, 0xb1, 0xb2, 0x1c, 0x42, 0x35, 0x98, 0x6a, 0xbc, 0x56, 0xb6,
+ 0xe5, 0xd9, 0xda, 0x34, 0xd8, 0x0f, 0x75, 0x25, 0x76, 0xa7, 0xc5, 0x51, 0x9d, 0x6f, 0xe9, 0xd6,
+ 0x44, 0xc3, 0x35, 0x74, 0xea, 0x01, 0xaf, 0xc2, 0xa4, 0x4b, 0xd9, 0x61, 0x1d, 0x7b, 0x74, 0x9f,
+ 0x12, 0x37, 0x6b, 0x5d, 0xdd, 0x52, 0xbf, 0xf1, 0xec, 0x74, 0x62, 0x58, 0xe6, 0x2f, 0x73, 0x30,
+ 0xba, 0x4e, 0x48, 0x99, 0x32, 0xd5, 0xba, 0x51, 0x51, 0xe0, 0xed, 0x87, 0x68, 0x07, 0x46, 0x55,
+ 0xb8, 0x70, 0xf5, 0x8c, 0xba, 0xdd, 0xeb, 0x20, 0x54, 0x8c, 0x48, 0xfe, 0x18, 0x58, 0x5e, 0xec,
+ 0xed, 0xc0, 0x28, 0x3f, 0x03, 0xb4, 0x93, 0x1a, 0x84, 0x9f, 0x02, 0x5d, 0x83, 0x82, 0x7e, 0x2c,
+ 0xd0, 0xd7, 0x39, 0x5d, 0xed, 0x5c, 0x79, 0x0d, 0x2a, 0x1e, 0x7d, 0xc3, 0x73, 0x0f, 0x7a, 0x8f,
+ 0x42, 0xaf, 0xee, 0x77, 0x94, 0x66, 0x35, 0x8b, 0xf9, 0xad, 0xc6, 0x2d, 0xdc, 0x71, 0xaa, 0xc4,
+ 0xad, 0x7b, 0x44, 0xd8, 0xc9, 0x5e, 0xdd, 0x11, 0xa7, 0xa0, 0xde, 0x40, 0x0c, 0x79, 0x91, 0x33,
+ 0xa0, 0xc6, 0xd4, 0x9b, 0xc7, 0x75, 0x18, 0xd6, 0x24, 0xc9, 0x25, 0x52, 0x4e, 0x39, 0x93, 0x1a,
+ 0x4e, 0xee, 0x8c, 0x9a, 0x6d, 0xae, 0xeb, 0xb4, 0xcd, 0x6d, 0x00, 0x70, 0x4a, 0x22, 0x69, 0x63,
+ 0x71, 0x3c, 0xb8, 0xd1, 0xc2, 0xc8, 0xce, 0x38, 0x71, 0xab, 0x9f, 0xeb, 0x5f, 0xec, 0x3c, 0x63,
+ 0xea, 0x39, 0xcf, 0x98, 0xb6, 0x00, 0x35, 0x21, 0xef, 0xee, 0x6e, 0x22, 0x04, 0xdd, 0x3c, 0x4e,
+ 0x33, 0xdd, 0x96, 0xfc, 0x2d, 0xd2, 0x2d, 0xe7, 0x5e, 0x26, 0x86, 0xa8, 0x65, 0x0f, 0x72, 0xee,
+ 0xa5, 0x37, 0x3d, 0xdf, 0x35, 0x60, 0x68, 0x55, 0x25, 0x39, 0xed, 0xd5, 0xa8, 0x04, 0x7d, 0x3a,
+ 0xed, 0xe9, 0xc4, 0x19, 0x7f, 0x22, 0x02, 0x7d, 0xff, 0xc4, 0x08, 0x13, 0x63, 0x9b, 0xef, 0x1b,
+ 0x30, 0x28, 0x2b, 0x49, 0x8b, 0x38, 0xa1, 0xd0, 0xe8, 0xdc, 0x26, 0x68, 0x17, 0xc6, 0x3c, 0xcc,
+ 0x09, 0xe3, 0xb6, 0x70, 0x5b, 0x59, 0x6e, 0x85, 0xa9, 0x86, 0xe6, 0x39, 0x21, 0x40, 0xe3, 0x5b,
+ 0x48, 0xf1, 0x67, 0x45, 0x9a, 0xaf, 0x42, 0x21, 0x4d, 0xff, 0x1b, 0x65, 0x86, 0xae, 0xc1, 0x50,
+ 0x43, 0xf1, 0xa2, 0xb2, 0xde, 0xa0, 0x55, 0xc8, 0x56, 0x2f, 0xcc, 0xfc, 0x89, 0x01, 0x03, 0x19,
+ 0x20, 0x34, 0x0b, 0xfd, 0xcd, 0x41, 0x3c, 0x1d, 0xf8, 0x3a, 0xcd, 0x55, 0xb6, 0xb1, 0xeb, 0x7a,
+ 0x8e, 0xc6, 0xce, 0xf4, 0xa1, 0x47, 0xbd, 0xfc, 0xdc, 0x02, 0xa3, 0xd6, 0x49, 0xd0, 0x31, 0x6a,
+ 0x82, 0xe5, 0xb0, 0x13, 0x9d, 0x8d, 0x43, 0xf3, 0x7b, 0x06, 0x2c, 0xac, 0x56, 0x2a, 0x11, 0xa9,
+ 0x60, 0x4e, 0xd2, 0xad, 0x7d, 0x2a, 0xfd, 0x5b, 0x6f, 0x56, 0x5b, 0xdd, 0xf8, 0xeb, 0x30, 0xa4,
+ 0x8d, 0x41, 0xc5, 0x86, 0xf8, 0xa4, 0xaf, 0xb4, 0x38, 0x69, 0xe5, 0x3a, 0x5a, 0x4e, 0xc1, 0xcf,
+ 0x7c, 0x31, 0xf3, 0x03, 0x03, 0x66, 0x13, 0xa5, 0x56, 0xcf, 0xd0, 0xa8, 0xb5, 0x2f, 0xfc, 0x23,
+ 0xd5, 0x58, 0x15, 0x95, 0x6b, 0x10, 0xfa, 0x65, 0xe2, 0x50, 0x1f, 0x7b, 0xac, 0x45, 0xe5, 0x3a,
+ 0x2d, 0x2a, 0x57, 0x45, 0x21, 0x37, 0xbf, 0xdb, 0x4a, 0xbe, 0x4d, 0x02, 0xe8, 0x61, 0x84, 0x03,
+ 0xbe, 0x5a, 0xe7, 0xd5, 0x30, 0xa2, 0xff, 0xaf, 0x42, 0x5a, 0x09, 0xfa, 0x2a, 0x62, 0x54, 0xff,
+ 0xfd, 0x4b, 0xbf, 0x15, 0x7f, 0xa2, 0x3b, 0xd0, 0xab, 0x43, 0x79, 0xae, 0x9d, 0x50, 0xae, 0x89,
+ 0xcd, 0x77, 0x61, 0x60, 0x55, 0xae, 0x4d, 0x0a, 0x4b, 0xf1, 0xa3, 0x46, 0xfc, 0xe8, 0x79, 0xf1,
+ 0x3f, 0x32, 0x60, 0xe8, 0xc1, 0xfe, 0x3e, 0x69, 0x4b, 0xc6, 0x06, 0x8c, 0x04, 0x84, 0xdb, 0xea,
+ 0x53, 0x3f, 0x67, 0xb7, 0x27, 0x6e, 0x38, 0x20, 0xfc, 0xa1, 0x62, 0x93, 0x0f, 0xd7, 0x68, 0x0a,
+ 0xf2, 0x94, 0xd9, 0x47, 0xd8, 0xd3, 0xb7, 0x14, 0x79, 0xab, 0x8f, 0xb2, 0xa7, 0xe2, 0xd3, 0xac,
+ 0x41, 0x51, 0x1e, 0xce, 0x16, 0x0d, 0x1e, 0x87, 0x62, 0x57, 0xb1, 0xd7, 0xe2, 0x7c, 0xd6, 0x61,
+ 0xd0, 0xa7, 0x81, 0x1d, 0x68, 0xaa, 0x4e, 0x1c, 0x64, 0xc0, 0x4f, 0xd1, 0x6f, 0xfc, 0xde, 0x80,
+ 0xc2, 0x83, 0xb8, 0xcd, 0xde, 0x3d, 0xa9, 0x11, 0x34, 0x0b, 0xa5, 0xb7, 0x02, 0x56, 0x23, 0x8e,
+ 0x4c, 0x06, 0x0d, 0x73, 0xc5, 0x4b, 0x08, 0xa0, 0x57, 0x59, 0x57, 0xd1, 0x40, 0x05, 0xe8, 0xdf,
+ 0xa4, 0x3e, 0xe5, 0xeb, 0xd4, 0xf3, 0x8a, 0x39, 0x34, 0x0d, 0x13, 0xf2, 0x73, 0x0b, 0x73, 0xa7,
+ 0x6a, 0xa9, 0xf7, 0x74, 0x79, 0xc3, 0x54, 0xec, 0x42, 0x13, 0x80, 0xd2, 0xb9, 0xc7, 0xe4, 0x3d,
+ 0x35, 0xde, 0x8d, 0xc6, 0x61, 0x44, 0x3f, 0xea, 0xe9, 0x37, 0x72, 0x1a, 0x06, 0xc5, 0x1e, 0x01,
+ 0xf5, 0xe0, 0xb8, 0x46, 0xa3, 0x13, 0x35, 0xb9, 0x43, 0x38, 0xf7, 0xe4, 0x4b, 0x7f, 0xb1, 0x57,
+ 0x40, 0x3d, 0xd9, 0xdf, 0x67, 0x84, 0x0b, 0xfc, 0xb8, 0x67, 0x2c, 0xf6, 0x09, 0x6d, 0x76, 0x4e,
+ 0x02, 0x5e, 0x25, 0x9c, 0x3a, 0xc5, 0xfc, 0xda, 0xc1, 0xa7, 0x5f, 0xcc, 0x1b, 0x9f, 0x7d, 0x31,
+ 0x6f, 0xfc, 0xf9, 0x8b, 0x79, 0xe3, 0xa3, 0x2f, 0xe7, 0x2f, 0x7d, 0xf6, 0xe5, 0xfc, 0xa5, 0x3f,
+ 0x7c, 0x39, 0x7f, 0xe9, 0xed, 0x37, 0x33, 0x59, 0x62, 0x23, 0xf6, 0x9f, 0x4d, 0xbc, 0xc7, 0x56,
+ 0x12, 0x6f, 0xba, 0xe9, 0x84, 0x11, 0xc9, 0x7e, 0x56, 0x31, 0x0d, 0x56, 0xfc, 0x50, 0xd4, 0x01,
+ 0x2c, 0xfd, 0x23, 0x36, 0x99, 0x51, 0x56, 0x8e, 0x6e, 0xef, 0xf5, 0xca, 0x77, 0xd3, 0x57, 0xfe,
+ 0x1e, 0x00, 0x00, 0xff, 0xff, 0xeb, 0xbc, 0x0b, 0xdd, 0xd6, 0x27, 0x00, 0x00,
+}
+
+func (this *EnforcedRestrictionsContract) Equal(that interface{}) bool {
+ if that == nil {
+ return this == nil
+ }
+ that1, ok := that.(*EnforcedRestrictionsContract)
+ if !ok {
+ that2, ok := that.(EnforcedRestrictionsContract)
+ if ok {
+ that1 = &that2
+ } else {
+ return false
+ }
+ }
+ if that1 == nil {
+ return this == nil
+ } else if this == nil {
+ return false
+ }
+ if this.ContractAddress != that1.ContractAddress {
+ return false
+ }
+ if this.PauseEventSignature != that1.PauseEventSignature {
+ return false
+ }
+ return true
+}
func (this *Params) Equal(that interface{}) bool {
if that == nil {
return this == nil
@@ -2521,8 +2628,53 @@ func (this *Params) Equal(that interface{}) bool {
if this.PostOnlyModeBlocksAmountAfterDowntime != that1.PostOnlyModeBlocksAmountAfterDowntime {
return false
}
+ if len(this.EnforcedRestrictionsContracts) != len(that1.EnforcedRestrictionsContracts) {
+ return false
+ }
+ for i := range this.EnforcedRestrictionsContracts {
+ if !this.EnforcedRestrictionsContracts[i].Equal(&that1.EnforcedRestrictionsContracts[i]) {
+ return false
+ }
+ }
return true
}
+func (m *EnforcedRestrictionsContract) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EnforcedRestrictionsContract) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EnforcedRestrictionsContract) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.PauseEventSignature) > 0 {
+ i -= len(m.PauseEventSignature)
+ copy(dAtA[i:], m.PauseEventSignature)
+ i = encodeVarintExchange(dAtA, i, uint64(len(m.PauseEventSignature)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.ContractAddress) > 0 {
+ i -= len(m.ContractAddress)
+ copy(dAtA[i:], m.ContractAddress)
+ i = encodeVarintExchange(dAtA, i, uint64(len(m.ContractAddress)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *Params) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -2543,6 +2695,22 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if len(m.EnforcedRestrictionsContracts) > 0 {
+ for iNdEx := len(m.EnforcedRestrictionsContracts) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.EnforcedRestrictionsContracts[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintExchange(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2
+ i--
+ dAtA[i] = 0xa2
+ }
+ }
if m.PostOnlyModeBlocksAmountAfterDowntime != 0 {
i = encodeVarintExchange(dAtA, i, uint64(m.PostOnlyModeBlocksAmountAfterDowntime))
i--
@@ -4599,6 +4767,23 @@ func encodeVarintExchange(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
return base
}
+func (m *EnforcedRestrictionsContract) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.ContractAddress)
+ if l > 0 {
+ n += 1 + l + sovExchange(uint64(l))
+ }
+ l = len(m.PauseEventSignature)
+ if l > 0 {
+ n += 1 + l + sovExchange(uint64(l))
+ }
+ return n
+}
+
func (m *Params) Size() (n int) {
if m == nil {
return 0
@@ -4691,6 +4876,12 @@ func (m *Params) Size() (n int) {
if m.PostOnlyModeBlocksAmountAfterDowntime != 0 {
n += 2 + sovExchange(uint64(m.PostOnlyModeBlocksAmountAfterDowntime))
}
+ if len(m.EnforcedRestrictionsContracts) > 0 {
+ for _, e := range m.EnforcedRestrictionsContracts {
+ l = e.Size()
+ n += 2 + l + sovExchange(uint64(l))
+ }
+ }
return n
}
@@ -5366,6 +5557,120 @@ func sovExchange(x uint64) (n int) {
func sozExchange(x uint64) (n int) {
return sovExchange(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
+func (m *EnforcedRestrictionsContract) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowExchange
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EnforcedRestrictionsContract: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EnforcedRestrictionsContract: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowExchange
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthExchange
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthExchange
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ContractAddress = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PauseEventSignature", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowExchange
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthExchange
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthExchange
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PauseEventSignature = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipExchange(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthExchange
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *Params) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -6367,6 +6672,40 @@ func (m *Params) Unmarshal(dAtA []byte) error {
break
}
}
+ case 36:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnforcedRestrictionsContracts", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowExchange
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthExchange
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthExchange
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.EnforcedRestrictionsContracts = append(m.EnforcedRestrictionsContracts, EnforcedRestrictionsContract{})
+ if err := m.EnforcedRestrictionsContracts[len(m.EnforcedRestrictionsContracts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipExchange(dAtA[iNdEx:])
diff --git a/chain/exchange/types/v2/fee_discounts.go b/chain/exchange/types/v2/fee_discounts.go
index 1b5e37b8..407f3c4c 100644
--- a/chain/exchange/types/v2/fee_discounts.go
+++ b/chain/exchange/types/v2/fee_discounts.go
@@ -1,7 +1,14 @@
package v2
import (
+ "bytes"
+ "sort"
+ "sync"
+
"cosmossdk.io/math"
+ sdk "github.com/cosmos/cosmos-sdk/types"
+ stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
+ "github.com/ethereum/go-ethereum/common"
"github.com/InjectiveLabs/sdk-go/chain/exchange/types"
)
@@ -74,3 +81,303 @@ func NewFeeDiscountTierTTL(tier uint64, ttlTimestamp int64) *FeeDiscountTierTTL
TtlTimestamp: ttlTimestamp,
}
}
+
+type ValidatorCache map[string]stakingtypes.ValidatorI
+
+func NewFeeDiscountConfig(isQualified bool, stakingInfo *FeeDiscountStakingInfo) *FeeDiscountConfig {
+ if stakingInfo == nil {
+ isQualified = false
+ }
+ return &FeeDiscountConfig{
+ IsMarketQualified: isQualified,
+ FeeDiscountStakingInfo: stakingInfo,
+ }
+}
+
+type FeeDiscountConfig struct {
+ IsMarketQualified bool
+ *FeeDiscountStakingInfo
+}
+
+func (c *FeeDiscountConfig) GetFeeDiscountRate(account sdk.AccAddress, isMaker bool) *math.LegacyDec { // nolint:revive // ok
+ if c == nil {
+ return nil
+ }
+
+ c.AccountFeeTiersMux.RLock()
+ defer c.AccountFeeTiersMux.RUnlock()
+
+ tier, ok := c.AccountFeeTiers[types.SdkAccAddressToAccount(account)]
+ if !ok {
+ // should never happen but just in case
+ return nil
+ }
+
+ if isMaker {
+ return &tier.MakerDiscountRate
+ }
+
+ return &tier.TakerDiscountRate
+}
+
+func (c *FeeDiscountConfig) IncrementAccountVolumeContribution(
+ subaccountID common.Hash,
+ marketID common.Hash,
+ amount math.LegacyDec,
+ isMaker bool,
+) {
+ // defensive programming: should never happen
+ if amount.IsNegative() {
+ return
+ }
+
+ shouldIncrementAccountVolumeContributions := c.IsMarketQualified
+ account := types.SubaccountIDToAccount(subaccountID)
+
+ c.AccountVolumesMux.Lock()
+ defer c.AccountVolumesMux.Unlock()
+
+ // skip account volume contributions if the market isn't qualified for fee discounts
+ if shouldIncrementAccountVolumeContributions {
+ if v, ok := c.AccountVolumeContributions[account]; !ok {
+ c.AccountVolumeContributions[account] = amount
+ } else {
+ c.AccountVolumeContributions[account] = v.Add(amount)
+ }
+ }
+
+ newVolume := NewVolumeWithSingleType(amount, isMaker)
+ // the SubaccountMarketVolumeContributions is still fine to update though since volumes are recorded on a per-market level
+ if innerMap, ok := c.SubaccountMarketVolumeContributions[subaccountID]; !ok {
+ c.SubaccountMarketVolumeContributions[subaccountID] = map[common.Hash]VolumeRecord{
+ marketID: newVolume,
+ }
+ } else {
+ if v, ok := innerMap[marketID]; !ok {
+ c.SubaccountMarketVolumeContributions[subaccountID][marketID] = newVolume
+ } else {
+ c.SubaccountMarketVolumeContributions[subaccountID][marketID] = v.Add(newVolume)
+ }
+ }
+}
+
+func NewFeeDiscountStakingInfo(
+ schedule *FeeDiscountSchedule,
+ currBucketStartTimestamp, oldestBucketStartTimestamp int64,
+ maxTTLTimestamp int64,
+ nextTTLTimestamp int64,
+ isFirstFeeCycleFinished bool,
+) *FeeDiscountStakingInfo {
+ return &FeeDiscountStakingInfo{
+ SubaccountMarketVolumeContributions: make(map[common.Hash]map[common.Hash]VolumeRecord),
+ AccountVolumeContributions: make(map[types.Account]math.LegacyDec),
+ AccountFeeTiers: make(map[types.Account]*types.FeeDiscountRates),
+ Validators: make(ValidatorCache),
+ NewAccounts: make(map[types.Account]*FeeDiscountTierTTL),
+ GrantCheckpoints: make(map[string]struct{}),
+ InvalidGrants: make(map[string]string),
+ AccountFeeTiersMux: new(sync.RWMutex),
+ AccountVolumesMux: new(sync.RWMutex),
+ ValidatorsMux: new(sync.RWMutex),
+ NewAccountsMux: new(sync.RWMutex),
+ GrantsMux: new(sync.RWMutex),
+ Schedule: schedule,
+ CurrBucketStartTimestamp: currBucketStartTimestamp,
+ OldestBucketStartTimestamp: oldestBucketStartTimestamp,
+ MaxTTLTimestamp: maxTTLTimestamp,
+ NextTTLTimestamp: nextTTLTimestamp,
+ FeeDiscountRatesCache: schedule.GetFeeDiscountRatesMap(),
+ IsFirstFeeCycleFinished: isFirstFeeCycleFinished,
+ }
+}
+
+type FeeDiscountStakingInfo struct {
+ // subaccountID => marketID => volume
+ SubaccountMarketVolumeContributions map[common.Hash]map[common.Hash]VolumeRecord
+ AccountVolumeContributions map[types.Account]math.LegacyDec
+ AccountFeeTiers map[types.Account]*types.FeeDiscountRates
+ Validators ValidatorCache
+ NewAccounts map[types.Account]*FeeDiscountTierTTL
+ GrantCheckpoints map[string]struct{}
+ InvalidGrants map[string]string // grantee => granter
+
+ AccountFeeTiersMux *sync.RWMutex
+ AccountVolumesMux *sync.RWMutex
+ ValidatorsMux *sync.RWMutex
+ NewAccountsMux *sync.RWMutex
+ GrantsMux *sync.RWMutex
+
+ Schedule *FeeDiscountSchedule
+ CurrBucketStartTimestamp int64
+ OldestBucketStartTimestamp int64
+ MaxTTLTimestamp int64
+ NextTTLTimestamp int64
+ FeeDiscountRatesCache types.FeeDiscountRatesMap
+ IsFirstFeeCycleFinished bool
+}
+
+type AccountTierTTL struct {
+ Account sdk.AccAddress
+ TierTTL *FeeDiscountTierTTL
+}
+
+type AccountContribution struct {
+ Account sdk.AccAddress
+ Amount math.LegacyDec
+}
+
+type SubaccountVolumeContribution struct {
+ SubaccountID common.Hash
+ MarketID common.Hash
+ Volume VolumeRecord
+}
+
+type MarketVolumeContribution struct {
+ MarketID common.Hash
+ Volume VolumeRecord
+}
+
+func (info *FeeDiscountStakingInfo) GetSortedNewFeeDiscountAccountTiers() []*AccountTierTTL {
+ accountTiers := make([]*AccountTierTTL, 0, len(info.AccountFeeTiers))
+ info.NewAccountsMux.RLock()
+ for k, v := range info.NewAccounts {
+ accountTiers = append(accountTiers, &AccountTierTTL{
+ Account: sdk.AccAddress([]byte(string(k[:]))),
+ TierTTL: v,
+ })
+ }
+ info.NewAccountsMux.RUnlock()
+ sort.SliceStable(accountTiers, func(i, j int) bool {
+ return bytes.Compare(accountTiers[i].Account.Bytes(), accountTiers[j].Account.Bytes()) < 0
+ })
+ return accountTiers
+}
+
+func (info *FeeDiscountStakingInfo) GetSortedAccountVolumeContributions() []*AccountContribution {
+ accountContributions := make([]*AccountContribution, 0, len(info.AccountFeeTiers))
+ info.AccountVolumesMux.RLock()
+ for k, v := range info.AccountVolumeContributions {
+ accountContributions = append(accountContributions, &AccountContribution{
+ // use copy of value in closure, since the memory is not copied, it's reused.
+ // So if your closure captures it, instead of copying via call args, you'll get same index in all goroutines
+ Account: sdk.AccAddress([]byte(string(k[:]))),
+ Amount: v,
+ })
+ }
+ info.AccountVolumesMux.RUnlock()
+ sort.SliceStable(accountContributions, func(i, j int) bool {
+ return bytes.Compare(accountContributions[i].Account.Bytes(), accountContributions[j].Account.Bytes()) < 0
+ })
+ return accountContributions
+}
+
+func (info *FeeDiscountStakingInfo) GetSortedSubaccountAndMarketVolumes() (
+ []*SubaccountVolumeContribution,
+ []*MarketVolumeContribution,
+) {
+ subaccountVolumes := make([]*SubaccountVolumeContribution, 0, len(info.AccountFeeTiers))
+ marketVolumeTracker := make(map[common.Hash]VolumeRecord)
+
+ info.AccountVolumesMux.RLock()
+ for subaccountID, innerMap := range info.SubaccountMarketVolumeContributions {
+ for marketID, volume := range innerMap {
+ subaccountVolumes = append(subaccountVolumes, &SubaccountVolumeContribution{
+ // use copy of value in closure, since the memory is not copied, it's reused.
+ // So if your closure captures it, instead of copying via call args, you'll get same index in all goroutines
+ SubaccountID: common.BytesToHash(subaccountID.Bytes()),
+ MarketID: common.BytesToHash(marketID.Bytes()),
+ Volume: volume,
+ })
+
+ if prevVolume, ok := marketVolumeTracker[marketID]; ok {
+ marketVolumeTracker[marketID] = prevVolume.Add(volume)
+ } else {
+ marketVolumeTracker[marketID] = volume
+ }
+ }
+ }
+ info.AccountVolumesMux.RUnlock()
+
+ sort.SliceStable(subaccountVolumes, func(i, j int) bool {
+ return bytes.Compare(
+ append(subaccountVolumes[i].SubaccountID.Bytes(), subaccountVolumes[i].MarketID.Bytes()...),
+ append(subaccountVolumes[j].SubaccountID.Bytes(), subaccountVolumes[j].MarketID.Bytes()...),
+ ) < 0
+ })
+
+ marketVolumes := make([]*MarketVolumeContribution, 0, len(marketVolumeTracker))
+ for k, v := range marketVolumeTracker {
+ marketVolumes = append(marketVolumes, &MarketVolumeContribution{
+ MarketID: common.BytesToHash(k.Bytes()),
+ Volume: v,
+ })
+ }
+
+ sort.SliceStable(marketVolumes, func(i, j int) bool {
+ return bytes.Compare(marketVolumes[i].MarketID.Bytes(), marketVolumes[j].MarketID.Bytes()) < 0
+ })
+
+ return subaccountVolumes, marketVolumes
+}
+
+func (info *FeeDiscountStakingInfo) GetSortedGrantCheckpointGrantersAndInvalidGrants() (
+ granters []string,
+ invalidGrants []*EventInvalidGrant,
+) {
+ info.GrantsMux.RLock()
+ defer info.GrantsMux.RUnlock()
+
+ granters = make([]string, 0, len(info.GrantCheckpoints))
+ invalidGrants = make([]*EventInvalidGrant, 0, len(info.InvalidGrants))
+
+ for k := range info.GrantCheckpoints {
+ granters = append(granters, k)
+ }
+
+ sort.SliceStable(granters, func(i, j int) bool {
+ return granters[i] < granters[j]
+ })
+
+ for k, v := range info.InvalidGrants {
+ invalidGrants = append(invalidGrants, &EventInvalidGrant{
+ Grantee: k,
+ Granter: v,
+ })
+ }
+
+ sort.SliceStable(invalidGrants, func(i, j int) bool {
+ return invalidGrants[i].Grantee < invalidGrants[j].Grantee
+ })
+ return granters, invalidGrants
+}
+
+func (info *FeeDiscountStakingInfo) SetAccountTierInfo(accAddress sdk.AccAddress, discountRates *types.FeeDiscountRates) {
+ info.AccountFeeTiersMux.Lock()
+ info.AccountFeeTiers[types.SdkAccAddressToAccount(accAddress)] = discountRates
+ info.AccountFeeTiersMux.Unlock()
+}
+
+func (info *FeeDiscountStakingInfo) SetNewAccountTierTTL(accAddress sdk.AccAddress, tier uint64) {
+ info.NewAccountsMux.Lock()
+ info.NewAccounts[types.SdkAccAddressToAccount(accAddress)] = &FeeDiscountTierTTL{
+ Tier: tier,
+ TtlTimestamp: info.NextTTLTimestamp,
+ }
+ info.NewAccountsMux.Unlock()
+}
+
+func (info *FeeDiscountStakingInfo) GetIsPastTradingFeesCheckRequired() bool {
+ return info.IsFirstFeeCycleFinished
+}
+
+func (info *FeeDiscountStakingInfo) AddCheckpoint(granter string) {
+ info.GrantsMux.Lock()
+ info.GrantCheckpoints[granter] = struct{}{}
+ info.GrantsMux.Unlock()
+}
+
+func (info *FeeDiscountStakingInfo) AddInvalidGrant(grantee, granter string) {
+ info.GrantsMux.Lock()
+ info.InvalidGrants[grantee] = granter
+ info.GrantsMux.Unlock()
+}
diff --git a/chain/exchange/types/v2/market.go b/chain/exchange/types/v2/market.go
index 01678d46..d2d73f46 100644
--- a/chain/exchange/types/v2/market.go
+++ b/chain/exchange/types/v2/market.go
@@ -9,6 +9,12 @@ import (
var BinaryOptionsMarketRefundFlagPrice = math.LegacyNewDec(-1)
+type MarketIDQuoteDenomMakerFee struct {
+ MarketID common.Hash
+ QuoteDenom string
+ MakerFee math.LegacyDec
+}
+
type DerivativeMarketInfo struct {
Market *DerivativeMarket
MarkPrice math.LegacyDec
@@ -66,6 +72,10 @@ func (m *SpotMarket) GetMarketStatus() MarketStatus {
return m.Status
}
+func (m *SpotMarket) GetDisabledMinimalProtocolFee() bool {
+ return m.HasDisabledMinimalProtocolFee
+}
+
func (m *SpotMarket) PriceFromChainFormat(price math.LegacyDec) math.LegacyDec {
return types.PriceFromChainFormat(price, m.BaseDecimals, m.QuoteDecimals)
}
@@ -95,7 +105,8 @@ func (m *ExpiryFuturesMarketInfo) IsPremature(currBlockTime int64) bool {
}
func (m *ExpiryFuturesMarketInfo) IsStartingMaturation(currBlockTime int64) bool {
- return currBlockTime >= m.TwapStartTimestamp && (m.ExpirationTwapStartPriceCumulative.IsNil() || m.ExpirationTwapStartPriceCumulative.IsZero())
+ return currBlockTime >= m.TwapStartTimestamp &&
+ (m.ExpirationTwapStartBaseCumulativePrice.IsNil() || m.ExpirationTwapStartBaseCumulativePrice.IsZero())
}
func (m *ExpiryFuturesMarketInfo) IsMatured(currBlockTime int64) bool {
@@ -181,6 +192,10 @@ func (m *DerivativeMarket) GetMarketStatus() MarketStatus {
return m.Status
}
+func (m *DerivativeMarket) GetDisabledMinimalProtocolFee() bool {
+ return m.HasDisabledMinimalProtocolFee
+}
+
func (m *DerivativeMarket) GetQuoteDecimals() uint32 {
return m.QuoteDecimals
}
@@ -286,6 +301,10 @@ func (m *BinaryOptionsMarket) GetMarketStatus() MarketStatus {
return m.Status
}
+func (m *BinaryOptionsMarket) GetDisabledMinimalProtocolFee() bool {
+ return m.HasDisabledMinimalProtocolFee
+}
+
func (m *BinaryOptionsMarket) GetQuoteDecimals() uint32 {
return m.QuoteDecimals
}
@@ -317,3 +336,59 @@ func (m *BinaryOptionsMarket) QuantityToChainFormat(humanReadableValue math.Lega
func (m *BinaryOptionsMarket) NotionalToChainFormat(humanReadableValue math.LegacyDec) math.LegacyDec {
return types.NotionalToChainFormat(humanReadableValue, m.QuoteDecimals)
}
+
+type MarketI interface {
+ MarketID() common.Hash
+ GetMarketType() types.MarketType
+ GetMinPriceTickSize() math.LegacyDec
+ GetMinQuantityTickSize() math.LegacyDec
+ GetMinNotional() math.LegacyDec
+ GetTicker() string
+ GetMakerFeeRate() math.LegacyDec
+ GetTakerFeeRate() math.LegacyDec
+ GetRelayerFeeShareRate() math.LegacyDec
+ GetQuoteDenom() string
+ StatusSupportsOrderCancellations() bool
+ GetDisabledMinimalProtocolFee() bool
+ GetMarketStatus() MarketStatus
+ PriceFromChainFormat(price math.LegacyDec) math.LegacyDec
+ QuantityFromChainFormat(quantity math.LegacyDec) math.LegacyDec
+ NotionalFromChainFormat(notional math.LegacyDec) math.LegacyDec
+ PriceToChainFormat(humanReadableValue math.LegacyDec) math.LegacyDec
+ QuantityToChainFormat(humanReadableValue math.LegacyDec) math.LegacyDec
+ NotionalToChainFormat(humanReadableValue math.LegacyDec) math.LegacyDec
+}
+
+type DerivativeMarketI interface {
+ MarketI
+ GetIsPerpetual() bool
+ GetInitialMarginRatio() math.LegacyDec
+ GetOracleScaleFactor() uint32
+ GetQuoteDecimals() uint32
+ GetOpenNotionalCap() OpenNotionalCap
+}
+
+func IsMarketSolvent(availableMarketFunds, marketBalanceDelta math.LegacyDec) bool {
+ return availableMarketFunds.Add(marketBalanceDelta).GTE(math.LegacyZeroDec())
+}
+
+// nolint // ok
+func GetMarketBalanceDelta(
+ payout,
+ collateralizationMargin,
+ tradeFee math.LegacyDec,
+ isReduceOnly bool,
+) math.LegacyDec {
+ if payout.IsNegative() {
+ // if payout is negative, don't just add these to the market balance,
+ // instead try to adjust market balance later when insurance fund is tapped
+ payout = math.LegacyZeroDec()
+ }
+
+ if isReduceOnly {
+ // trade fee is removed from payout for RO, but still should be removed from market balance
+ payout = payout.Add(tradeFee)
+ }
+
+ return collateralizationMargin.Sub(payout)
+}
diff --git a/chain/exchange/types/v2/market.pb.go b/chain/exchange/types/v2/market.pb.go
index 0abd7e1b..06f47129 100644
--- a/chain/exchange/types/v2/market.pb.go
+++ b/chain/exchange/types/v2/market.pb.go
@@ -34,6 +34,7 @@ const (
MarketStatus_Paused MarketStatus = 2
MarketStatus_Demolished MarketStatus = 3
MarketStatus_Expired MarketStatus = 4
+ MarketStatus_ForcePaused MarketStatus = 5
)
var MarketStatus_name = map[int32]string{
@@ -42,6 +43,7 @@ var MarketStatus_name = map[int32]string{
2: "Paused",
3: "Demolished",
4: "Expired",
+ 5: "ForcePaused",
}
var MarketStatus_value = map[string]int32{
@@ -50,6 +52,7 @@ var MarketStatus_value = map[string]int32{
"Paused": 2,
"Demolished": 3,
"Expired": 4,
+ "ForcePaused": 5,
}
func (x MarketStatus) String() string {
@@ -60,6 +63,73 @@ func (MarketStatus) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_c255fc568a8e9667, []int{0}
}
+type ForcePausedReason int32
+
+const (
+ ForcePausedReason_QuoteDenomPaused ForcePausedReason = 0
+)
+
+var ForcePausedReason_name = map[int32]string{
+ 0: "QuoteDenomPaused",
+}
+
+var ForcePausedReason_value = map[string]int32{
+ "QuoteDenomPaused": 0,
+}
+
+func (x ForcePausedReason) String() string {
+ return proto.EnumName(ForcePausedReason_name, int32(x))
+}
+
+func (ForcePausedReason) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_c255fc568a8e9667, []int{1}
+}
+
+type ForcePausedInfo struct {
+ Reason ForcePausedReason `protobuf:"varint,1,opt,name=reason,proto3,enum=injective.exchange.v2.ForcePausedReason" json:"reason,omitempty"`
+ MarkPriceAtPausing *cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=mark_price_at_pausing,json=markPriceAtPausing,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mark_price_at_pausing,omitempty"`
+}
+
+func (m *ForcePausedInfo) Reset() { *m = ForcePausedInfo{} }
+func (m *ForcePausedInfo) String() string { return proto.CompactTextString(m) }
+func (*ForcePausedInfo) ProtoMessage() {}
+func (*ForcePausedInfo) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c255fc568a8e9667, []int{0}
+}
+func (m *ForcePausedInfo) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ForcePausedInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ForcePausedInfo.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ForcePausedInfo) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ForcePausedInfo.Merge(m, src)
+}
+func (m *ForcePausedInfo) XXX_Size() int {
+ return m.Size()
+}
+func (m *ForcePausedInfo) XXX_DiscardUnknown() {
+ xxx_messageInfo_ForcePausedInfo.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ForcePausedInfo proto.InternalMessageInfo
+
+func (m *ForcePausedInfo) GetReason() ForcePausedReason {
+ if m != nil {
+ return m.Reason
+ }
+ return ForcePausedReason_QuoteDenomPaused
+}
+
type OpenNotionalCap struct {
// Types that are valid to be assigned to Cap:
// *OpenNotionalCap_Uncapped
@@ -71,7 +141,7 @@ func (m *OpenNotionalCap) Reset() { *m = OpenNotionalCap{} }
func (m *OpenNotionalCap) String() string { return proto.CompactTextString(m) }
func (*OpenNotionalCap) ProtoMessage() {}
func (*OpenNotionalCap) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{0}
+ return fileDescriptor_c255fc568a8e9667, []int{1}
}
func (m *OpenNotionalCap) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -152,7 +222,7 @@ func (m *OpenNotionalCapUncapped) Reset() { *m = OpenNotionalCapUncapped
func (m *OpenNotionalCapUncapped) String() string { return proto.CompactTextString(m) }
func (*OpenNotionalCapUncapped) ProtoMessage() {}
func (*OpenNotionalCapUncapped) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{1}
+ return fileDescriptor_c255fc568a8e9667, []int{2}
}
func (m *OpenNotionalCapUncapped) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -189,7 +259,7 @@ func (m *OpenNotionalCapCapped) Reset() { *m = OpenNotionalCapCapped{} }
func (m *OpenNotionalCapCapped) String() string { return proto.CompactTextString(m) }
func (*OpenNotionalCapCapped) ProtoMessage() {}
func (*OpenNotionalCapCapped) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{2}
+ return fileDescriptor_c255fc568a8e9667, []int{3}
}
func (m *OpenNotionalCapCapped) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -227,7 +297,7 @@ func (m *MarketFeeMultiplier) Reset() { *m = MarketFeeMultiplier{} }
func (m *MarketFeeMultiplier) String() string { return proto.CompactTextString(m) }
func (*MarketFeeMultiplier) ProtoMessage() {}
func (*MarketFeeMultiplier) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{3}
+ return fileDescriptor_c255fc568a8e9667, []int{4}
}
func (m *MarketFeeMultiplier) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -293,13 +363,16 @@ type SpotMarket struct {
BaseDecimals uint32 `protobuf:"varint,14,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"`
// quote token decimals
QuoteDecimals uint32 `protobuf:"varint,15,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"`
+ // has_disabled_minimal_protocol_fee indicates whether the minimal protocol
+ // fee is disabled for the market
+ HasDisabledMinimalProtocolFee bool `protobuf:"varint,16,opt,name=has_disabled_minimal_protocol_fee,json=hasDisabledMinimalProtocolFee,proto3" json:"has_disabled_minimal_protocol_fee,omitempty"`
}
func (m *SpotMarket) Reset() { *m = SpotMarket{} }
func (m *SpotMarket) String() string { return proto.CompactTextString(m) }
func (*SpotMarket) ProtoMessage() {}
func (*SpotMarket) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{4}
+ return fileDescriptor_c255fc568a8e9667, []int{5}
}
func (m *SpotMarket) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -391,6 +464,13 @@ func (m *SpotMarket) GetQuoteDecimals() uint32 {
return 0
}
+func (m *SpotMarket) GetHasDisabledMinimalProtocolFee() bool {
+ if m != nil {
+ return m.HasDisabledMinimalProtocolFee
+ }
+ return false
+}
+
// An object describing a binary options market in Injective Protocol.
type BinaryOptionsMarket struct {
// Ticker for the derivative contract.
@@ -440,13 +520,19 @@ type BinaryOptionsMarket struct {
QuoteDecimals uint32 `protobuf:"varint,20,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"`
// open_notional_cap defines the maximum open notional for the market
OpenNotionalCap OpenNotionalCap `protobuf:"bytes,21,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"`
+ // has_disabled_minimal_protocol_fee indicates whether the minimal protocol
+ // fee is disabled for the market
+ HasDisabledMinimalProtocolFee bool `protobuf:"varint,22,opt,name=has_disabled_minimal_protocol_fee,json=hasDisabledMinimalProtocolFee,proto3" json:"has_disabled_minimal_protocol_fee,omitempty"`
+ // force_paused_info defines additional info for force paused markets, only
+ // set when status == ForcePaused
+ ForcePausedInfo *ForcePausedInfo `protobuf:"bytes,23,opt,name=force_paused_info,json=forcePausedInfo,proto3" json:"force_paused_info,omitempty"`
}
func (m *BinaryOptionsMarket) Reset() { *m = BinaryOptionsMarket{} }
func (m *BinaryOptionsMarket) String() string { return proto.CompactTextString(m) }
func (*BinaryOptionsMarket) ProtoMessage() {}
func (*BinaryOptionsMarket) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{5}
+ return fileDescriptor_c255fc568a8e9667, []int{6}
}
func (m *BinaryOptionsMarket) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -528,13 +614,19 @@ type DerivativeMarket struct {
ReduceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,21,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio"`
// open_notional_cap defines the maximum open notional for the market
OpenNotionalCap OpenNotionalCap `protobuf:"bytes,22,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap"`
+ // has_disabled_minimal_protocol_fee indicates whether the minimal protocol
+ // fee is disabled for the market
+ HasDisabledMinimalProtocolFee bool `protobuf:"varint,23,opt,name=has_disabled_minimal_protocol_fee,json=hasDisabledMinimalProtocolFee,proto3" json:"has_disabled_minimal_protocol_fee,omitempty"`
+ // force_paused_info defines additional info for force paused markets, only
+ // set when status == ForcePaused
+ ForcePausedInfo *ForcePausedInfo `protobuf:"bytes,24,opt,name=force_paused_info,json=forcePausedInfo,proto3" json:"force_paused_info,omitempty"`
}
func (m *DerivativeMarket) Reset() { *m = DerivativeMarket{} }
func (m *DerivativeMarket) String() string { return proto.CompactTextString(m) }
func (*DerivativeMarket) ProtoMessage() {}
func (*DerivativeMarket) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{6}
+ return fileDescriptor_c255fc568a8e9667, []int{7}
}
func (m *DerivativeMarket) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -574,7 +666,7 @@ func (m *DerivativeMarketSettlementInfo) Reset() { *m = DerivativeMarket
func (m *DerivativeMarketSettlementInfo) String() string { return proto.CompactTextString(m) }
func (*DerivativeMarketSettlementInfo) ProtoMessage() {}
func (*DerivativeMarketSettlementInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{7}
+ return fileDescriptor_c255fc568a8e9667, []int{8}
}
func (m *DerivativeMarketSettlementInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -621,7 +713,7 @@ func (m *MarketVolume) Reset() { *m = MarketVolume{} }
func (m *MarketVolume) String() string { return proto.CompactTextString(m) }
func (*MarketVolume) ProtoMessage() {}
func (*MarketVolume) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{8}
+ return fileDescriptor_c255fc568a8e9667, []int{9}
}
func (m *MarketVolume) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -675,7 +767,7 @@ func (m *VolumeRecord) Reset() { *m = VolumeRecord{} }
func (m *VolumeRecord) String() string { return proto.CompactTextString(m) }
func (*VolumeRecord) ProtoMessage() {}
func (*VolumeRecord) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{9}
+ return fileDescriptor_c255fc568a8e9667, []int{10}
}
func (m *VolumeRecord) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -713,7 +805,7 @@ func (m *ExpiryFuturesMarketInfoState) Reset() { *m = ExpiryFuturesMarke
func (m *ExpiryFuturesMarketInfoState) String() string { return proto.CompactTextString(m) }
func (*ExpiryFuturesMarketInfoState) ProtoMessage() {}
func (*ExpiryFuturesMarketInfoState) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{10}
+ return fileDescriptor_c255fc568a8e9667, []int{11}
}
func (m *ExpiryFuturesMarketInfoState) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -765,7 +857,7 @@ func (m *PerpetualMarketFundingState) Reset() { *m = PerpetualMarketFund
func (m *PerpetualMarketFundingState) String() string { return proto.CompactTextString(m) }
func (*PerpetualMarketFundingState) ProtoMessage() {}
func (*PerpetualMarketFundingState) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{11}
+ return fileDescriptor_c255fc568a8e9667, []int{12}
}
func (m *PerpetualMarketFundingState) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -819,17 +911,30 @@ type ExpiryFuturesMarketInfo struct {
TwapStartTimestamp int64 `protobuf:"varint,3,opt,name=twap_start_timestamp,json=twapStartTimestamp,proto3" json:"twap_start_timestamp,omitempty"`
// expiration_twap_start_price_cumulative defines the cumulative price for the
// start of the TWAP window (in human readable format)
- ExpirationTwapStartPriceCumulative cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=expiration_twap_start_price_cumulative,json=expirationTwapStartPriceCumulative,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"expiration_twap_start_price_cumulative"`
+ // Deprecated: For correctly calculating the expiration price using TWAP, we
+ // need to keep the cumulative price at the start of TWAP calculation
+ // separately for the base asset and the quote asset. Use
+ // expiration_twap_start_base_cumulative_price and
+ // expiration_twap_start_quote_cumulative_price instead.
+ ExpirationTwapStartPriceCumulative cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=expiration_twap_start_price_cumulative,json=expirationTwapStartPriceCumulative,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"expiration_twap_start_price_cumulative"` // Deprecated: Do not use.
// settlement_price defines the settlement price for a time expiry futures
// market (in human readable format)
SettlementPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=settlement_price,json=settlementPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"settlement_price"`
+ // expiration_twap_start_base_cumulative_price defines the cumulative price
+ // for the base asset at the start of the TWAP calculation window (in human
+ // readable format)
+ ExpirationTwapStartBaseCumulativePrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=expiration_twap_start_base_cumulative_price,json=expirationTwapStartBaseCumulativePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"expiration_twap_start_base_cumulative_price"`
+ // expiration_twap_start_quote_cumulative_price defines the cumulative price
+ // for the quote asset at the start of the TWAP calculation window (in human
+ // readable format)
+ ExpirationTwapStartQuoteCumulativePrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=expiration_twap_start_quote_cumulative_price,json=expirationTwapStartQuoteCumulativePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"expiration_twap_start_quote_cumulative_price"`
}
func (m *ExpiryFuturesMarketInfo) Reset() { *m = ExpiryFuturesMarketInfo{} }
func (m *ExpiryFuturesMarketInfo) String() string { return proto.CompactTextString(m) }
func (*ExpiryFuturesMarketInfo) ProtoMessage() {}
func (*ExpiryFuturesMarketInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{12}
+ return fileDescriptor_c255fc568a8e9667, []int{13}
}
func (m *ExpiryFuturesMarketInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -899,7 +1004,7 @@ func (m *PerpetualMarketInfo) Reset() { *m = PerpetualMarketInfo{} }
func (m *PerpetualMarketInfo) String() string { return proto.CompactTextString(m) }
func (*PerpetualMarketInfo) ProtoMessage() {}
func (*PerpetualMarketInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{13}
+ return fileDescriptor_c255fc568a8e9667, []int{14}
}
func (m *PerpetualMarketInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -964,7 +1069,7 @@ func (m *PerpetualMarketFunding) Reset() { *m = PerpetualMarketFunding{}
func (m *PerpetualMarketFunding) String() string { return proto.CompactTextString(m) }
func (*PerpetualMarketFunding) ProtoMessage() {}
func (*PerpetualMarketFunding) Descriptor() ([]byte, []int) {
- return fileDescriptor_c255fc568a8e9667, []int{14}
+ return fileDescriptor_c255fc568a8e9667, []int{15}
}
func (m *PerpetualMarketFunding) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1002,6 +1107,8 @@ func (m *PerpetualMarketFunding) GetLastTimestamp() int64 {
func init() {
proto.RegisterEnum("injective.exchange.v2.MarketStatus", MarketStatus_name, MarketStatus_value)
+ proto.RegisterEnum("injective.exchange.v2.ForcePausedReason", ForcePausedReason_name, ForcePausedReason_value)
+ proto.RegisterType((*ForcePausedInfo)(nil), "injective.exchange.v2.ForcePausedInfo")
proto.RegisterType((*OpenNotionalCap)(nil), "injective.exchange.v2.OpenNotionalCap")
proto.RegisterType((*OpenNotionalCapUncapped)(nil), "injective.exchange.v2.OpenNotionalCapUncapped")
proto.RegisterType((*OpenNotionalCapCapped)(nil), "injective.exchange.v2.OpenNotionalCapCapped")
@@ -1024,109 +1131,164 @@ func init() {
}
var fileDescriptor_c255fc568a8e9667 = []byte{
- // 1626 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0xcd, 0x6f, 0x1b, 0xc7,
- 0x15, 0xd7, 0xea, 0x83, 0x92, 0x1e, 0xbf, 0x87, 0x94, 0x4c, 0xd8, 0xad, 0xa4, 0x52, 0x95, 0xeb,
- 0xca, 0x35, 0x69, 0xab, 0xbd, 0x54, 0x3d, 0x59, 0x92, 0xd5, 0xaa, 0xb0, 0x2c, 0x79, 0x29, 0x17,
- 0x86, 0x8b, 0x62, 0x31, 0x5a, 0x8e, 0xa4, 0xa9, 0xf6, 0xcb, 0xbb, 0xb3, 0xb4, 0xe9, 0x6b, 0x7b,
- 0x28, 0x8a, 0x16, 0xc8, 0x5f, 0x10, 0xe4, 0x4f, 0x30, 0x92, 0x73, 0xae, 0x81, 0x8f, 0x06, 0x72,
- 0x09, 0x72, 0x30, 0x02, 0x2b, 0x80, 0xff, 0x83, 0x9c, 0x83, 0xf9, 0xe0, 0xee, 0x8a, 0x22, 0x25,
- 0x32, 0x52, 0x90, 0x43, 0x2e, 0xc4, 0xee, 0x9b, 0xf7, 0x7e, 0xf3, 0xe3, 0xbc, 0xf7, 0x7e, 0x33,
- 0xb3, 0x50, 0xa5, 0xce, 0x3f, 0x89, 0xc9, 0x68, 0x8b, 0xd4, 0xc9, 0x4b, 0xf3, 0x08, 0x3b, 0x87,
- 0xa4, 0xde, 0x5a, 0xa9, 0xdb, 0xd8, 0x3f, 0x26, 0xac, 0xe6, 0xf9, 0x2e, 0x73, 0xd1, 0x4c, 0xe4,
- 0x53, 0xeb, 0xf8, 0xd4, 0x5a, 0x2b, 0xd7, 0xcb, 0x87, 0xee, 0xa1, 0x2b, 0x3c, 0xea, 0xfc, 0x49,
- 0x3a, 0x5f, 0x5f, 0x8a, 0x01, 0x5d, 0x1f, 0x9b, 0x16, 0xa9, 0xb7, 0xee, 0xed, 0x13, 0x86, 0xef,
- 0xa9, 0x57, 0xe5, 0x56, 0xc4, 0x36, 0x75, 0xdc, 0xba, 0xf8, 0x95, 0xa6, 0xea, 0x77, 0x1a, 0xe4,
- 0x77, 0x3c, 0xe2, 0x3c, 0x72, 0x19, 0x75, 0x1d, 0x6c, 0xad, 0x63, 0x0f, 0xfd, 0x1d, 0xa6, 0x42,
- 0xc7, 0xc4, 0x9e, 0x47, 0x9a, 0x15, 0x6d, 0x41, 0xbb, 0x95, 0x5e, 0xa9, 0xd5, 0x7a, 0xb2, 0xa9,
- 0x75, 0x45, 0x3e, 0x51, 0x51, 0x6b, 0xd9, 0x4f, 0x3f, 0xbc, 0x5e, 0x8e, 0x40, 0xfe, 0x32, 0xa2,
- 0x47, 0xcf, 0xa8, 0x01, 0x29, 0x05, 0x3d, 0x2a, 0xa0, 0x7f, 0x37, 0x18, 0xf4, 0xba, 0x04, 0x4e,
- 0x73, 0xe0, 0x54, 0x04, 0xab, 0x9e, 0x56, 0x97, 0xff, 0xfb, 0xe1, 0xf5, 0xf2, 0xd2, 0x40, 0x40,
- 0x6b, 0x13, 0x30, 0x66, 0x62, 0xaf, 0xba, 0x0d, 0xd7, 0xfa, 0xb0, 0x5f, 0x5d, 0xe1, 0x68, 0x77,
- 0x86, 0xfa, 0xc7, 0xd5, 0x7f, 0x6b, 0x30, 0xd3, 0x93, 0x32, 0xfa, 0x23, 0x4c, 0xb4, 0xb0, 0x15,
- 0x12, 0xb1, 0x94, 0xd3, 0x6b, 0x8b, 0x6f, 0xde, 0xcd, 0x8f, 0x7c, 0xfd, 0x6e, 0xfe, 0x86, 0xe9,
- 0x06, 0xb6, 0x1b, 0x04, 0xcd, 0xe3, 0x1a, 0x75, 0xeb, 0x36, 0x66, 0x47, 0xb5, 0x87, 0xe4, 0x10,
- 0x9b, 0xed, 0x0d, 0x62, 0xea, 0x32, 0x62, 0xf5, 0x2e, 0x27, 0x72, 0x7b, 0x88, 0xf5, 0xe1, 0x34,
- 0x4a, 0xdb, 0xa2, 0x8c, 0x36, 0x09, 0xd9, 0x0e, 0x2d, 0x46, 0x3d, 0x8b, 0x12, 0x1f, 0xdd, 0x80,
- 0x69, 0x59, 0x5d, 0x06, 0x95, 0x39, 0x9d, 0xd6, 0xa7, 0xa4, 0x61, 0xab, 0x89, 0xfe, 0x0a, 0xb9,
- 0x03, 0x42, 0x0c, 0x3b, 0x72, 0x17, 0xa9, 0x19, 0x90, 0x6a, 0xf6, 0x20, 0x39, 0xd1, 0xea, 0xf8,
- 0x7f, 0x3e, 0x99, 0x1f, 0xa9, 0x7e, 0x96, 0x02, 0x68, 0x78, 0x2e, 0x93, 0x54, 0xd0, 0x2c, 0xa4,
- 0x18, 0x35, 0x8f, 0x89, 0xaf, 0xa6, 0x56, 0x6f, 0xe8, 0x97, 0x00, 0xfb, 0x38, 0x20, 0x46, 0x93,
- 0x38, 0xae, 0x2d, 0x27, 0xd5, 0xa7, 0xb9, 0x65, 0x83, 0x1b, 0xd0, 0x3c, 0xa4, 0x9f, 0x87, 0x2e,
- 0xeb, 0x8c, 0x8f, 0x89, 0x71, 0x10, 0x26, 0xe9, 0xb0, 0x05, 0x39, 0x1b, 0x1f, 0x13, 0xdf, 0xe0,
- 0xf4, 0x7d, 0xcc, 0x48, 0x65, 0x7c, 0x70, 0xe2, 0x19, 0x11, 0xba, 0x49, 0x88, 0x8e, 0x19, 0xe1,
- 0x50, 0xec, 0x34, 0xd4, 0xc4, 0x10, 0x50, 0x2c, 0x09, 0xf5, 0x14, 0x66, 0x7d, 0x62, 0xe1, 0xb6,
- 0x02, 0x0b, 0x8e, 0xb0, 0xaf, 0x20, 0x53, 0x83, 0x43, 0x96, 0x14, 0xc4, 0x26, 0x21, 0x0d, 0x0e,
- 0x20, 0x90, 0x4f, 0x65, 0x71, 0xb2, 0x2b, 0x8b, 0x7f, 0x82, 0x54, 0xc0, 0x30, 0x0b, 0x83, 0xca,
- 0xd4, 0x82, 0x76, 0x2b, 0xb7, 0xb2, 0xd8, 0xa7, 0xb1, 0x64, 0x4e, 0x1a, 0xc2, 0x55, 0x57, 0x21,
- 0x48, 0x87, 0x92, 0x4d, 0x1d, 0xc3, 0xf3, 0xa9, 0x49, 0x0c, 0x9e, 0x1d, 0x23, 0xa0, 0xaf, 0x48,
- 0x65, 0x7a, 0x70, 0xc2, 0x05, 0x9b, 0x3a, 0xbb, 0x3c, 0x7c, 0x8f, 0x9a, 0xc7, 0x0d, 0xfa, 0x4a,
- 0xac, 0x03, 0xc7, 0x7c, 0x1e, 0x62, 0x87, 0x51, 0xd6, 0x4e, 0xc0, 0xc2, 0x10, 0xeb, 0x60, 0x53,
- 0xe7, 0xb1, 0x42, 0x88, 0x90, 0x37, 0x21, 0xc3, 0x91, 0x1d, 0x55, 0xfe, 0x95, 0xf4, 0xe0, 0x78,
- 0x69, 0x9b, 0x46, 0x6d, 0x83, 0xca, 0x30, 0x81, 0x9b, 0x36, 0x75, 0x2a, 0x19, 0xb1, 0x96, 0xf2,
- 0x05, 0xdd, 0x86, 0xa2, 0x78, 0x30, 0x3c, 0xe2, 0xdb, 0x34, 0x08, 0xa8, 0xeb, 0x04, 0x95, 0xec,
- 0x82, 0x76, 0x2b, 0xab, 0x17, 0xc4, 0xc0, 0x6e, 0x6c, 0x47, 0x8b, 0x90, 0x55, 0x25, 0x6c, 0x52,
- 0x1b, 0x5b, 0x41, 0x25, 0x27, 0x1c, 0x33, 0xb2, 0x8a, 0xa5, 0x0d, 0x2d, 0x41, 0xae, 0x53, 0xc8,
- 0xca, 0x2b, 0x2f, 0xbc, 0xb2, 0xaa, 0x96, 0xa5, 0xb1, 0xfa, 0xe5, 0x34, 0x94, 0xd6, 0xa8, 0x83,
- 0xfd, 0xf6, 0x8e, 0xc7, 0x19, 0x06, 0x17, 0xb4, 0xcf, 0x22, 0x64, 0xa5, 0xbc, 0x1b, 0x41, 0xdb,
- 0xde, 0x77, 0x2d, 0xd5, 0x41, 0x19, 0x69, 0x6c, 0x08, 0x1b, 0xfa, 0x0d, 0xe4, 0x95, 0x93, 0xe7,
- 0xbb, 0x2d, 0xda, 0x24, 0xbe, 0x6a, 0xa4, 0x9c, 0x34, 0xef, 0x2a, 0x2b, 0x7a, 0x00, 0x69, 0xe5,
- 0xc8, 0xda, 0x9e, 0xec, 0xa4, 0xdc, 0xca, 0xaf, 0x13, 0x45, 0xa4, 0xb6, 0x12, 0xb5, 0xb3, 0xd4,
- 0x76, 0xc4, 0xeb, 0x5e, 0xdb, 0x23, 0x3a, 0xb8, 0xd1, 0x33, 0xaa, 0x41, 0xa9, 0x43, 0xca, 0xc4,
- 0x16, 0x31, 0x0e, 0xb0, 0xc9, 0x5c, 0x5f, 0x74, 0x53, 0x56, 0x2f, 0x2a, 0x6a, 0x7c, 0x64, 0x53,
- 0x0c, 0xa0, 0x7b, 0x50, 0x26, 0x2f, 0x3d, 0xea, 0x63, 0xfe, 0x8f, 0x0d, 0x46, 0x6d, 0x12, 0x30,
- 0x6c, 0x7b, 0xa2, 0x57, 0xc6, 0xf4, 0x52, 0x3c, 0xb6, 0xd7, 0x19, 0xe2, 0x21, 0x01, 0x61, 0xcc,
- 0x22, 0x36, 0x71, 0x58, 0x22, 0x64, 0x52, 0x86, 0xc4, 0x63, 0x71, 0x48, 0x94, 0xe9, 0xa9, 0x64,
- 0xa6, 0xbb, 0x04, 0x66, 0xfa, 0x8c, 0xc0, 0x9c, 0x6a, 0x38, 0xe8, 0x6a, 0xb8, 0xb3, 0xea, 0x93,
- 0xbe, 0x3a, 0xf5, 0xc9, 0x5c, 0xbd, 0xfa, 0x64, 0x2f, 0xa9, 0x3e, 0xb1, 0xc0, 0xe4, 0xae, 0x4c,
- 0x60, 0xf2, 0x3f, 0x8e, 0xc0, 0x14, 0x2e, 0x29, 0x30, 0x8f, 0xa0, 0x90, 0xa8, 0x30, 0x41, 0xba,
- 0x52, 0x8c, 0x30, 0xb5, 0x8b, 0x30, 0xf3, 0x71, 0xb0, 0x60, 0x7c, 0x46, 0xb0, 0xd0, 0x0f, 0x14,
- 0xac, 0x9e, 0xd2, 0x54, 0xea, 0x23, 0x4d, 0x67, 0x55, 0xa7, 0xdc, 0x43, 0x75, 0xd0, 0x53, 0x28,
- 0xba, 0x1e, 0x89, 0xc9, 0x19, 0x26, 0xf6, 0x2a, 0x33, 0xe2, 0x6c, 0x76, 0x73, 0xb0, 0xb3, 0xd9,
- 0xda, 0x38, 0xff, 0x23, 0x7a, 0xde, 0x3d, 0x6d, 0x56, 0x67, 0x81, 0xcf, 0x01, 0x0a, 0x1b, 0xc4,
- 0xa7, 0x2d, 0xcc, 0x71, 0x2e, 0x90, 0xb4, 0xf9, 0x48, 0x84, 0xb8, 0x80, 0x2a, 0x41, 0x53, 0xf2,
- 0xb2, 0x86, 0x03, 0x82, 0x7e, 0x05, 0x4a, 0xde, 0x0c, 0xf1, 0x2f, 0x94, 0x96, 0xa9, 0xa0, 0xc7,
- 0xdc, 0xf4, 0x53, 0x09, 0x59, 0x97, 0x98, 0xa4, 0xce, 0x17, 0x93, 0xee, 0xdd, 0xfb, 0x09, 0x94,
- 0xa9, 0x43, 0x19, 0xc5, 0x96, 0x61, 0x63, 0xff, 0x90, 0x3a, 0x86, 0x50, 0x3d, 0xa9, 0x57, 0x83,
- 0x55, 0x0a, 0x52, 0x00, 0xdb, 0x22, 0x5e, 0xe7, 0xe1, 0xe8, 0x1f, 0x50, 0xb1, 0x31, 0x75, 0x18,
- 0x71, 0xb0, 0x63, 0x92, 0xd3, 0xd0, 0x43, 0x6c, 0xee, 0xb3, 0x09, 0x90, 0x24, 0xfc, 0x59, 0x09,
- 0x84, 0xab, 0x93, 0xc0, 0xf4, 0xd5, 0x4b, 0x60, 0xe6, 0x92, 0x12, 0xb8, 0x00, 0x69, 0x1a, 0xec,
- 0x12, 0xdf, 0x23, 0x2c, 0xc4, 0x96, 0x50, 0xd4, 0x29, 0x3d, 0x69, 0xfa, 0x39, 0x89, 0x64, 0xb7,
- 0xa8, 0x15, 0x2f, 0x7b, 0x0a, 0x43, 0x17, 0x9e, 0xc2, 0x2e, 0x29, 0x75, 0x0d, 0x28, 0xf9, 0xa4,
- 0x19, 0x76, 0x37, 0xc2, 0xcc, 0xe0, 0xc4, 0x8b, 0x32, 0x3e, 0xd9, 0x03, 0x3d, 0xf5, 0x73, 0xf6,
- 0xea, 0xf4, 0xf3, 0xff, 0x1a, 0xcc, 0x75, 0xeb, 0x67, 0x23, 0xda, 0x5f, 0xb6, 0x9c, 0x03, 0xf7,
- 0xfc, 0xdb, 0x5d, 0xaf, 0xbd, 0x6c, 0x88, 0xfb, 0x5d, 0xf7, 0x5e, 0x56, 0x75, 0x20, 0x23, 0x49,
- 0xfc, 0xcd, 0xb5, 0x42, 0x9b, 0x9c, 0x3f, 0xf9, 0x7d, 0x48, 0xb5, 0x84, 0x9b, 0xba, 0xed, 0xf7,
- 0x6b, 0x07, 0x89, 0xa5, 0x13, 0xd3, 0xf5, 0x9b, 0x6a, 0x39, 0x54, 0x60, 0xf5, 0x63, 0x0d, 0x32,
- 0xc9, 0x61, 0x51, 0x77, 0x42, 0x29, 0x14, 0xb2, 0x36, 0x4c, 0xdd, 0xf1, 0x40, 0x45, 0x7c, 0x13,
- 0xa4, 0x6c, 0x18, 0x09, 0x86, 0x83, 0xe2, 0xb0, 0x18, 0xa7, 0xfa, 0x3f, 0x0d, 0x7e, 0xf1, 0x80,
- 0x1f, 0x53, 0xdb, 0x9b, 0x21, 0x0b, 0x7d, 0xa2, 0x8e, 0xed, 0x3c, 0x33, 0xbc, 0xbf, 0x2f, 0x58,
- 0xa1, 0x1d, 0x48, 0x77, 0x06, 0x9d, 0x03, 0x57, 0x2d, 0x53, 0xbf, 0xef, 0x2d, 0x7d, 0xa6, 0xd1,
- 0xc1, 0x8e, 0x9e, 0xab, 0xff, 0xd2, 0xe0, 0x46, 0xa4, 0x47, 0xea, 0x5b, 0x40, 0xe8, 0x34, 0xa9,
- 0x73, 0x38, 0x00, 0x9b, 0x3f, 0xc3, 0xe4, 0x81, 0x74, 0x56, 0x4c, 0xee, 0xf4, 0x61, 0xd2, 0x7b,
- 0x06, 0xbd, 0x13, 0x5d, 0xfd, 0x76, 0x14, 0xae, 0xf5, 0x61, 0x7b, 0x3e, 0x83, 0x7e, 0xf7, 0x81,
- 0xd1, 0xfe, 0xf7, 0x81, 0xbb, 0x50, 0x66, 0x2f, 0xb0, 0x67, 0x04, 0x0c, 0xfb, 0xc9, 0xfb, 0xc0,
- 0x98, 0x08, 0x41, 0x7c, 0xac, 0xc1, 0x87, 0xe2, 0x88, 0x17, 0x70, 0x33, 0x39, 0x49, 0x1c, 0x2c,
- 0xa5, 0xd7, 0x0c, 0xed, 0xd0, 0x12, 0xed, 0x36, 0xcc, 0x07, 0x85, 0x6a, 0x82, 0x5b, 0x67, 0x4a,
- 0xd1, 0x32, 0xeb, 0x11, 0x5c, 0xcf, 0x66, 0x9c, 0xb8, 0x44, 0x33, 0x7e, 0x31, 0x0a, 0xa5, 0xae,
- 0x54, 0x5c, 0xbc, 0xc4, 0xcf, 0xe0, 0xda, 0x91, 0x1b, 0xfa, 0x56, 0xdb, 0x50, 0xd9, 0x12, 0x9b,
- 0xa3, 0xd0, 0xad, 0x21, 0x7a, 0xa0, 0x2c, 0x31, 0x3a, 0x99, 0xc7, 0x8c, 0xac, 0x63, 0x8f, 0x9f,
- 0x63, 0x14, 0x36, 0x3f, 0x30, 0xf8, 0x24, 0x60, 0x72, 0xe7, 0x1d, 0x1b, 0xe2, 0x1c, 0x23, 0x01,
- 0xb6, 0x54, 0xbc, 0xd8, 0x78, 0xff, 0x00, 0xb3, 0x0e, 0x79, 0xc9, 0x22, 0xc2, 0x71, 0x92, 0xc7,
- 0x45, 0x92, 0xcb, 0x7c, 0x54, 0x51, 0x89, 0xd3, 0xfc, 0x5b, 0x28, 0x74, 0x02, 0x04, 0x9b, 0x16,
- 0xb6, 0xc4, 0x6a, 0x8f, 0xe9, 0x79, 0x65, 0xdf, 0x52, 0xe6, 0xea, 0x89, 0x06, 0xb3, 0xbd, 0x6b,
- 0x1a, 0xe9, 0x80, 0xe2, 0x82, 0xe8, 0x30, 0x18, 0x46, 0x75, 0x8a, 0x71, 0x78, 0x07, 0xf3, 0x11,
- 0x14, 0x12, 0x98, 0xc3, 0x8b, 0x72, 0x1c, 0x2c, 0x2f, 0x18, 0x4b, 0x90, 0xb3, 0x70, 0x70, 0xb6,
- 0xf8, 0xb3, 0xdc, 0x1a, 0x2d, 0xc8, 0xf2, 0x5e, 0x47, 0xbb, 0xe5, 0xc1, 0x03, 0xe5, 0x21, 0xfd,
- 0xc4, 0x09, 0x3c, 0x62, 0xd2, 0x03, 0x4a, 0x9a, 0x85, 0x11, 0x04, 0x90, 0xba, 0x2f, 0x9a, 0xbd,
- 0xa0, 0xf1, 0xe7, 0x5d, 0x1c, 0x06, 0xa4, 0x59, 0x18, 0x45, 0x39, 0x80, 0x0d, 0x62, 0xbb, 0x16,
- 0x0d, 0x8e, 0x48, 0xb3, 0x30, 0x86, 0xd2, 0x30, 0x29, 0xba, 0x9b, 0x34, 0x0b, 0xe3, 0x6b, 0xc7,
- 0x6f, 0xde, 0xcf, 0x69, 0x6f, 0xdf, 0xcf, 0x69, 0xdf, 0xbc, 0x9f, 0xd3, 0x3e, 0x3a, 0x99, 0x1b,
- 0x79, 0x7b, 0x32, 0x37, 0xf2, 0xd5, 0xc9, 0xdc, 0xc8, 0xb3, 0xc7, 0x87, 0x94, 0x1d, 0x85, 0xfb,
- 0x35, 0xd3, 0xb5, 0xeb, 0x5b, 0x1d, 0x1d, 0x79, 0x88, 0xf7, 0x83, 0x7a, 0xa4, 0x2a, 0x77, 0x4c,
- 0xd7, 0x27, 0xc9, 0xd7, 0x23, 0x4c, 0x9d, 0xba, 0xed, 0x36, 0x43, 0x8b, 0x04, 0xf1, 0xe7, 0x71,
- 0x7e, 0x94, 0x0f, 0xea, 0xad, 0x95, 0xfd, 0x94, 0xf8, 0x6e, 0xfd, 0xfb, 0xef, 0x03, 0x00, 0x00,
- 0xff, 0xff, 0x9a, 0x9c, 0x7f, 0x82, 0x44, 0x17, 0x00, 0x00,
+ // 1863 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcb, 0x6f, 0x1b, 0xc7,
+ 0x19, 0xe7, 0xea, 0x41, 0x49, 0x1f, 0xdf, 0x43, 0x4a, 0x22, 0xe2, 0x46, 0x52, 0xe8, 0xca, 0x51,
+ 0xe4, 0x98, 0xb4, 0xd5, 0x5e, 0xea, 0x5e, 0x6a, 0x59, 0x61, 0xad, 0x22, 0xb2, 0xe5, 0x95, 0x1d,
+ 0x04, 0x01, 0x8a, 0xc5, 0x68, 0x77, 0x48, 0x4e, 0xb5, 0xaf, 0xec, 0xce, 0xb2, 0x66, 0x4e, 0x41,
+ 0xdb, 0x43, 0x61, 0xb4, 0x40, 0xff, 0x82, 0xa2, 0xf7, 0x5e, 0x82, 0xfe, 0x07, 0xbd, 0x14, 0x39,
+ 0xe6, 0x58, 0xb4, 0x40, 0x50, 0xd8, 0x87, 0xdc, 0x0a, 0xf4, 0x0f, 0x28, 0x50, 0xcc, 0x83, 0xdc,
+ 0x15, 0x1f, 0x12, 0x69, 0xa9, 0xed, 0x21, 0x17, 0x62, 0xf7, 0x9b, 0xef, 0xf1, 0x9b, 0x99, 0xef,
+ 0xfb, 0xcd, 0x37, 0x4b, 0xa8, 0x51, 0xf7, 0x67, 0xc4, 0x64, 0xb4, 0x4b, 0x1a, 0xe4, 0x85, 0xd9,
+ 0xc1, 0x6e, 0x9b, 0x34, 0xba, 0x7b, 0x0d, 0x07, 0x07, 0x67, 0x84, 0xd5, 0xfd, 0xc0, 0x63, 0x1e,
+ 0x5a, 0x1d, 0xe8, 0xd4, 0xfb, 0x3a, 0xf5, 0xee, 0xde, 0x5b, 0x95, 0xb6, 0xd7, 0xf6, 0x84, 0x46,
+ 0x83, 0x3f, 0x49, 0xe5, 0xb7, 0x4a, 0xd8, 0xa1, 0xae, 0xd7, 0x10, 0xbf, 0x4a, 0xb4, 0x1d, 0xc7,
+ 0xf0, 0x02, 0x6c, 0xda, 0xa4, 0xd1, 0xbd, 0x77, 0x4a, 0x18, 0xbe, 0xa7, 0x5e, 0xa5, 0x5a, 0xed,
+ 0x8f, 0x1a, 0x14, 0x9a, 0x5e, 0x60, 0x92, 0x63, 0x1c, 0x85, 0xc4, 0x3a, 0x74, 0x5b, 0x1e, 0xfa,
+ 0x11, 0xa4, 0x03, 0x82, 0x43, 0xcf, 0xad, 0x6a, 0x5b, 0xda, 0x4e, 0x7e, 0x6f, 0xa7, 0x3e, 0x16,
+ 0x4b, 0x3d, 0x61, 0xa7, 0x0b, 0x7d, 0x5d, 0xd9, 0xa1, 0x8f, 0x60, 0x95, 0x4f, 0xc6, 0xf0, 0x03,
+ 0x6a, 0x12, 0x03, 0x33, 0xc3, 0xc7, 0x51, 0x48, 0xdd, 0x76, 0x75, 0x6e, 0x4b, 0xdb, 0x59, 0xd9,
+ 0xbf, 0xf9, 0xe5, 0xd7, 0x9b, 0xda, 0xdf, 0xbe, 0xde, 0xbc, 0x61, 0x7a, 0xa1, 0xe3, 0x85, 0xa1,
+ 0x75, 0x56, 0xa7, 0x5e, 0xc3, 0xc1, 0xac, 0x53, 0xff, 0x90, 0xb4, 0xb1, 0xd9, 0x3b, 0x20, 0xa6,
+ 0x8e, 0xb8, 0x87, 0x63, 0xee, 0xe0, 0x01, 0x3b, 0x96, 0xe6, 0xb5, 0x3f, 0xcf, 0x41, 0xe1, 0x89,
+ 0x4f, 0xdc, 0xc7, 0x1e, 0xa3, 0x9e, 0x8b, 0xed, 0x87, 0xd8, 0x47, 0x9f, 0x6b, 0xb0, 0x1c, 0xb9,
+ 0x26, 0xf6, 0x7d, 0x62, 0x09, 0xc0, 0x99, 0xbd, 0xfa, 0x04, 0xc0, 0x43, 0xa6, 0xcf, 0x95, 0xd5,
+ 0xfe, 0xde, 0x9f, 0xbe, 0xf9, 0x62, 0xf7, 0xce, 0x4c, 0x36, 0x8f, 0x52, 0xfa, 0x20, 0x2a, 0x7a,
+ 0x01, 0x69, 0x15, 0x7f, 0x4e, 0xc4, 0x7f, 0x7f, 0xba, 0xf8, 0x0f, 0x65, 0xf4, 0xbb, 0x3c, 0xfa,
+ 0xed, 0x19, 0x2c, 0x1e, 0xa5, 0x74, 0x15, 0xef, 0xfe, 0xee, 0xcb, 0x6f, 0xbe, 0xd8, 0xdd, 0x9e,
+ 0xca, 0x76, 0x7f, 0x11, 0xe6, 0x4d, 0xec, 0xd7, 0x8e, 0x60, 0x7d, 0xc2, 0x9c, 0xee, 0xef, 0xbd,
+ 0x9c, 0x79, 0x1d, 0x6a, 0xbf, 0xd2, 0x60, 0x75, 0x2c, 0x4a, 0xf4, 0x03, 0x58, 0xec, 0x62, 0x3b,
+ 0x22, 0x62, 0x53, 0xe4, 0xa6, 0xa7, 0x2e, 0xdb, 0x74, 0x69, 0x71, 0xff, 0xee, 0xcb, 0x19, 0x97,
+ 0x84, 0xc3, 0x28, 0x1f, 0x89, 0xfa, 0x69, 0x12, 0x72, 0x14, 0xd9, 0x8c, 0xfa, 0x36, 0x25, 0x01,
+ 0xba, 0x01, 0x2b, 0xb2, 0xac, 0x0c, 0x2a, 0xb3, 0x63, 0x45, 0x5f, 0x96, 0x82, 0x43, 0x0b, 0xfd,
+ 0x04, 0xf2, 0x2d, 0x42, 0x0c, 0x67, 0xa0, 0x9e, 0xc8, 0xcf, 0x4b, 0xa1, 0xe6, 0x5a, 0xc9, 0x40,
+ 0xf7, 0x17, 0x7e, 0xfd, 0x87, 0xcd, 0x54, 0xed, 0xdf, 0x69, 0x80, 0x13, 0xdf, 0x63, 0x12, 0x0a,
+ 0x5a, 0x83, 0x34, 0xa3, 0xe6, 0x19, 0x09, 0x54, 0x68, 0xf5, 0x86, 0xde, 0x06, 0x38, 0xc5, 0x21,
+ 0x31, 0x2c, 0xe2, 0x7a, 0x8e, 0x0c, 0xaa, 0xaf, 0x70, 0xc9, 0x01, 0x17, 0xa0, 0x4d, 0xc8, 0x7c,
+ 0x1a, 0x79, 0xac, 0x3f, 0x3e, 0x2f, 0xc6, 0x41, 0x88, 0xa4, 0xc2, 0x21, 0xe4, 0x1d, 0x7c, 0x46,
+ 0x02, 0x83, 0xc3, 0x0f, 0x30, 0x23, 0xd5, 0x85, 0xe9, 0x81, 0x67, 0x85, 0x69, 0x93, 0x10, 0x1d,
+ 0x33, 0xc2, 0x5d, 0xb1, 0xf3, 0xae, 0x16, 0x67, 0x70, 0xc5, 0x92, 0xae, 0x3e, 0x86, 0xb5, 0x80,
+ 0xd8, 0xb8, 0xa7, 0x9c, 0x85, 0x1d, 0x1c, 0x28, 0x97, 0xe9, 0xe9, 0x5d, 0x96, 0x95, 0x8b, 0x26,
+ 0x21, 0x27, 0xdc, 0x81, 0xf0, 0x7c, 0x6e, 0x17, 0x97, 0x86, 0x76, 0xf1, 0x87, 0x90, 0x0e, 0x19,
+ 0x66, 0x51, 0x58, 0x5d, 0x16, 0x74, 0x75, 0x73, 0x42, 0xf5, 0xc9, 0x3d, 0x39, 0x11, 0xaa, 0xba,
+ 0x32, 0x41, 0x3a, 0x94, 0x1d, 0xea, 0x2a, 0xa2, 0xe2, 0xbb, 0x63, 0x84, 0xf4, 0x33, 0x52, 0x5d,
+ 0x99, 0x1e, 0x70, 0xd1, 0xa1, 0xae, 0xa0, 0xa9, 0x67, 0xd4, 0x3c, 0x3b, 0xa1, 0x9f, 0x89, 0x75,
+ 0xe0, 0x3e, 0x3f, 0x8d, 0xb0, 0xcb, 0x28, 0xeb, 0x25, 0xdc, 0xc2, 0x0c, 0xeb, 0xe0, 0x50, 0xf7,
+ 0xa9, 0xf2, 0x30, 0xf0, 0xdc, 0x84, 0x2c, 0xf7, 0xec, 0xaa, 0xf4, 0xaf, 0x66, 0xa6, 0xf7, 0x97,
+ 0x71, 0xe8, 0xa0, 0x6c, 0x50, 0x05, 0x16, 0xb1, 0xe5, 0x50, 0xb7, 0x9a, 0x15, 0x6b, 0x29, 0x5f,
+ 0xd0, 0x6d, 0x28, 0x89, 0x07, 0xc3, 0x27, 0x81, 0x43, 0xc3, 0x90, 0x7a, 0x6e, 0x58, 0xcd, 0x6d,
+ 0x69, 0x3b, 0x39, 0xbd, 0x28, 0x06, 0x8e, 0x63, 0x39, 0xba, 0x09, 0x39, 0x95, 0xc2, 0x26, 0x75,
+ 0xb0, 0x1d, 0x56, 0xf3, 0x42, 0x31, 0x2b, 0xb3, 0x58, 0xca, 0xd0, 0x36, 0xe4, 0xfb, 0x89, 0xac,
+ 0xb4, 0x0a, 0x42, 0x2b, 0xa7, 0x72, 0x59, 0xa9, 0x3d, 0x82, 0x77, 0x3a, 0x38, 0x34, 0x2c, 0x1a,
+ 0xe2, 0x53, 0x9b, 0x58, 0x86, 0x43, 0x5d, 0x3e, 0x60, 0x88, 0x23, 0xca, 0xf4, 0x6c, 0x9e, 0x4e,
+ 0xd5, 0xe2, 0x96, 0xb6, 0xb3, 0xac, 0xbf, 0xdd, 0xc1, 0xe1, 0x81, 0xd2, 0x3b, 0x92, 0x6a, 0xc7,
+ 0x4a, 0xab, 0x49, 0x48, 0xed, 0x5f, 0x00, 0xe5, 0x7d, 0xea, 0xe2, 0xa0, 0xf7, 0xc4, 0xe7, 0x73,
+ 0x0d, 0x2f, 0x29, 0xc4, 0x9b, 0x90, 0x93, 0xc7, 0xa1, 0x11, 0xf6, 0x9c, 0x53, 0xcf, 0x56, 0xb5,
+ 0x98, 0x95, 0xc2, 0x13, 0x21, 0x43, 0xef, 0x42, 0x41, 0x29, 0xf9, 0x81, 0xd7, 0xa5, 0x16, 0x09,
+ 0x54, 0x49, 0xe6, 0xa5, 0xf8, 0x58, 0x49, 0xd1, 0x07, 0x90, 0x51, 0x8a, 0xac, 0xe7, 0xcb, 0x9a,
+ 0xcc, 0xef, 0x7d, 0x37, 0x91, 0x8e, 0xea, 0xe8, 0x55, 0x27, 0x71, 0xfd, 0x89, 0x78, 0x7d, 0xd6,
+ 0xf3, 0x89, 0x0e, 0xde, 0xe0, 0x19, 0xd5, 0xa1, 0xdc, 0x07, 0x65, 0x62, 0x9b, 0x18, 0x2d, 0x6c,
+ 0x32, 0x2f, 0x10, 0x75, 0x99, 0xd3, 0x4b, 0x0a, 0x1a, 0x1f, 0x69, 0x8a, 0x01, 0x74, 0x0f, 0x2a,
+ 0xe4, 0x85, 0x4f, 0x03, 0xcc, 0x67, 0x6c, 0x30, 0xea, 0x90, 0x90, 0x61, 0xc7, 0x17, 0x55, 0x37,
+ 0xaf, 0x97, 0xe3, 0xb1, 0x67, 0xfd, 0x21, 0x6e, 0x12, 0x12, 0xc6, 0x6c, 0xe2, 0x10, 0x97, 0x25,
+ 0x4c, 0x96, 0xa4, 0x49, 0x3c, 0x16, 0x9b, 0x0c, 0x72, 0x66, 0x39, 0x99, 0x33, 0x43, 0x54, 0xb5,
+ 0x32, 0x42, 0x55, 0xe7, 0x4a, 0x17, 0x86, 0x4a, 0x77, 0x94, 0xc7, 0x32, 0xd7, 0xc7, 0x63, 0xd9,
+ 0xeb, 0xe7, 0xb1, 0xdc, 0x15, 0x79, 0x2c, 0xa6, 0xaa, 0xfc, 0xb5, 0x51, 0x55, 0xe1, 0xbf, 0x43,
+ 0x55, 0xc5, 0x2b, 0x52, 0xd5, 0x63, 0x28, 0x26, 0x32, 0x4c, 0x80, 0xae, 0x96, 0xa6, 0xef, 0xfe,
+ 0x0a, 0xb1, 0xb1, 0x40, 0x3c, 0x42, 0x7d, 0xe8, 0x0d, 0xa9, 0x6f, 0x2c, 0xc9, 0x95, 0x27, 0x90,
+ 0xdc, 0x28, 0x7f, 0x55, 0xc6, 0xf1, 0xd7, 0xc7, 0x50, 0xf2, 0x7c, 0x12, 0x83, 0x33, 0x4c, 0xec,
+ 0x57, 0x57, 0x45, 0x2b, 0x78, 0x6b, 0xba, 0x56, 0x70, 0x7f, 0x81, 0x4f, 0x44, 0x2f, 0x78, 0x43,
+ 0xcd, 0xed, 0x54, 0xcc, 0xb8, 0x36, 0x05, 0x33, 0x22, 0x1d, 0x4a, 0x2d, 0xde, 0xaf, 0x8b, 0x56,
+ 0x9c, 0x58, 0x06, 0x75, 0x5b, 0x5e, 0x75, 0xfd, 0x42, 0x8c, 0x43, 0xf7, 0x02, 0xbd, 0xd0, 0x3a,
+ 0x2f, 0x50, 0x3d, 0xcf, 0xdf, 0x33, 0x50, 0x3c, 0x20, 0x01, 0xed, 0x62, 0xee, 0xe1, 0x12, 0xc2,
+ 0xdd, 0x1c, 0x50, 0x24, 0x3f, 0x28, 0x14, 0xdd, 0x2a, 0xf2, 0xdb, 0xc7, 0x21, 0x41, 0xef, 0x80,
+ 0x22, 0x5f, 0x43, 0xac, 0xb1, 0x62, 0x5a, 0x65, 0xf4, 0x94, 0x8b, 0xfe, 0x5f, 0x34, 0x3b, 0x44,
+ 0x75, 0xe9, 0x8b, 0xa9, 0x6e, 0xb8, 0x4b, 0x79, 0x0e, 0x15, 0xea, 0x52, 0x46, 0xb1, 0x6d, 0x38,
+ 0x38, 0x68, 0x53, 0xd7, 0x10, 0x9c, 0x2c, 0xd9, 0x74, 0xba, 0x3c, 0x46, 0xca, 0xc1, 0x91, 0xb0,
+ 0xd7, 0xb9, 0x39, 0xfa, 0x29, 0x54, 0x1d, 0x4c, 0x5d, 0x46, 0x5c, 0xec, 0x9a, 0xe4, 0xbc, 0xeb,
+ 0x19, 0x9a, 0x98, 0xb5, 0x84, 0x93, 0xa4, 0xfb, 0x51, 0x82, 0x86, 0xeb, 0x23, 0xe8, 0xcc, 0xf5,
+ 0x13, 0x74, 0xf6, 0x8a, 0x04, 0xbd, 0x05, 0x19, 0x1a, 0x1e, 0x93, 0xc0, 0x27, 0x2c, 0xc2, 0xb6,
+ 0xe0, 0xfb, 0x65, 0x3d, 0x29, 0xfa, 0x36, 0x51, 0xf8, 0x30, 0xe5, 0x96, 0xae, 0xda, 0x6d, 0xa2,
+ 0x4b, 0xbb, 0xcd, 0x2b, 0x12, 0xf1, 0x09, 0x94, 0x03, 0x62, 0x45, 0xc3, 0x85, 0xb0, 0x3a, 0x3d,
+ 0xf0, 0x92, 0xb4, 0x4f, 0xd6, 0xc0, 0x58, 0x76, 0x5f, 0xfb, 0x9f, 0xb1, 0xfb, 0xfa, 0x1b, 0xb3,
+ 0x7b, 0xf5, 0x3a, 0xd8, 0xfd, 0xb7, 0x1a, 0x6c, 0x0c, 0xb3, 0xfb, 0xc9, 0xe0, 0x6c, 0x16, 0xdf,
+ 0x8b, 0x2e, 0xbc, 0x63, 0x8f, 0xeb, 0x03, 0x66, 0xb8, 0x65, 0x0f, 0xf7, 0x01, 0x35, 0x17, 0xb2,
+ 0x12, 0xc4, 0x47, 0x9e, 0x1d, 0x39, 0xe4, 0xe2, 0xe0, 0x0f, 0x20, 0xdd, 0x15, 0x6a, 0xea, 0xc3,
+ 0xcc, 0xa4, 0x62, 0x95, 0xbe, 0x74, 0x62, 0x7a, 0x81, 0xa5, 0x36, 0x4b, 0x19, 0xd6, 0x7e, 0xaf,
+ 0x41, 0x36, 0x39, 0x2c, 0xaa, 0x42, 0xf0, 0x98, 0xf2, 0xac, 0xcd, 0x52, 0x15, 0xdc, 0x50, 0x01,
+ 0x6f, 0x82, 0x24, 0x35, 0x23, 0x81, 0x70, 0x5a, 0x3f, 0x2c, 0xf6, 0x53, 0xfb, 0x8d, 0x06, 0xdf,
+ 0xf9, 0x80, 0xb7, 0xf8, 0xbd, 0x66, 0xc4, 0xa2, 0x80, 0xa8, 0x2b, 0x0f, 0xdf, 0x19, 0xce, 0x3e,
+ 0x97, 0xac, 0xd0, 0x13, 0xc8, 0xf4, 0x07, 0x79, 0xca, 0xcc, 0x5d, 0xf8, 0xfd, 0x6c, 0x42, 0x18,
+ 0x1d, 0x9c, 0xc1, 0x73, 0xed, 0x97, 0x1a, 0xdc, 0x18, 0xb0, 0xa5, 0xfa, 0x22, 0x13, 0xb9, 0x16,
+ 0x75, 0xdb, 0x53, 0xa0, 0xf9, 0x31, 0x2c, 0xb5, 0xa4, 0xb2, 0x42, 0x72, 0x67, 0x02, 0x92, 0xf1,
+ 0x11, 0xf4, 0xbe, 0x75, 0xed, 0x9f, 0x0b, 0xb0, 0x3e, 0x01, 0xed, 0xc5, 0x08, 0x26, 0xdd, 0xa5,
+ 0xe6, 0x26, 0xdf, 0xa5, 0xee, 0x42, 0x85, 0xfd, 0x1c, 0xfb, 0x46, 0xc8, 0x70, 0x90, 0xbc, 0x4b,
+ 0xcd, 0x0b, 0x13, 0xc4, 0xc7, 0x4e, 0xf8, 0x50, 0x6c, 0xd1, 0x83, 0x5b, 0xc9, 0x20, 0xb1, 0xb1,
+ 0x3c, 0x18, 0xcc, 0xc8, 0x89, 0x6c, 0x51, 0x6e, 0xea, 0xb3, 0xce, 0xf6, 0x14, 0x49, 0x51, 0xd5,
+ 0xf4, 0x5a, 0x02, 0x5d, 0x3f, 0xa8, 0x28, 0x9a, 0x87, 0x03, 0x87, 0x63, 0xcb, 0x71, 0xf1, 0xcd,
+ 0xcb, 0x11, 0x7d, 0xae, 0xc1, 0xed, 0xf1, 0x73, 0x11, 0x5f, 0x07, 0xe2, 0xa9, 0xa8, 0x58, 0x33,
+ 0x7c, 0x09, 0xba, 0x35, 0x66, 0x3a, 0xbc, 0x45, 0x8c, 0x67, 0x23, 0x21, 0xfc, 0x42, 0x83, 0xf7,
+ 0xc7, 0x43, 0x90, 0x47, 0xc6, 0x08, 0x86, 0xa5, 0xe9, 0x31, 0xbc, 0x3b, 0x06, 0x83, 0x68, 0x42,
+ 0x87, 0x40, 0xd4, 0xfe, 0x32, 0x07, 0xe5, 0xa1, 0xa4, 0xbc, 0x3c, 0xd9, 0x3e, 0x81, 0xf5, 0x8e,
+ 0x17, 0x05, 0x76, 0xcf, 0x50, 0x79, 0x2b, 0x9a, 0x18, 0x71, 0xbe, 0xcc, 0xc0, 0x06, 0x15, 0xe9,
+ 0xa3, 0x5f, 0x03, 0x98, 0x11, 0x7e, 0xb6, 0x3c, 0x07, 0x25, 0x37, 0x78, 0x63, 0x17, 0x90, 0x90,
+ 0xc9, 0x0e, 0x69, 0x7e, 0x86, 0x7e, 0x53, 0x3a, 0x38, 0x54, 0xf6, 0xa2, 0x41, 0xfa, 0x3e, 0xac,
+ 0xb9, 0xe4, 0x05, 0x1b, 0x00, 0x8e, 0xd3, 0x7d, 0x41, 0xa4, 0x7b, 0x85, 0x8f, 0x2a, 0x28, 0x71,
+ 0xc2, 0xbf, 0x07, 0xc5, 0xbe, 0x81, 0x40, 0xd3, 0xc5, 0xb6, 0xc8, 0xba, 0x79, 0xbd, 0xa0, 0xe4,
+ 0x87, 0x4a, 0x5c, 0x7b, 0xad, 0xc1, 0xda, 0xf8, 0xea, 0x46, 0x3a, 0xa0, 0xc4, 0x5e, 0xf6, 0x89,
+ 0x62, 0x06, 0xfe, 0x2d, 0xc5, 0xe6, 0x7d, 0x9f, 0x8f, 0xa1, 0x38, 0x92, 0x1f, 0xb3, 0x1c, 0x4f,
+ 0xe6, 0x50, 0x32, 0x6e, 0x43, 0xde, 0xc6, 0xe1, 0x28, 0x0d, 0xe4, 0xb8, 0x74, 0xb0, 0x20, 0xbb,
+ 0xa4, 0x7f, 0x8a, 0xc9, 0x06, 0x11, 0x15, 0x20, 0xf3, 0xdc, 0x0d, 0x7d, 0x62, 0xd2, 0x16, 0x25,
+ 0x56, 0x31, 0x85, 0x00, 0xd2, 0x0f, 0x04, 0xed, 0x15, 0x35, 0xfe, 0x2c, 0x8f, 0xe5, 0xe2, 0x1c,
+ 0xca, 0x03, 0x1c, 0x10, 0xc7, 0xb3, 0x69, 0xd8, 0x21, 0x56, 0x71, 0x1e, 0x65, 0x60, 0x49, 0xf0,
+ 0x1c, 0xb1, 0x8a, 0x0b, 0xdc, 0x4b, 0xe2, 0x54, 0x2f, 0x2e, 0xee, 0xbe, 0x07, 0xa5, 0x91, 0x3f,
+ 0x69, 0x50, 0x05, 0x8a, 0x4f, 0x07, 0x97, 0x16, 0xa5, 0x9a, 0xda, 0x3f, 0xfb, 0xf2, 0xd5, 0x86,
+ 0xf6, 0xd5, 0xab, 0x0d, 0xed, 0x1f, 0xaf, 0x36, 0xb4, 0xdf, 0xbd, 0xde, 0x48, 0x7d, 0xf5, 0x7a,
+ 0x23, 0xf5, 0xd7, 0xd7, 0x1b, 0xa9, 0x4f, 0x9e, 0xb6, 0x29, 0xeb, 0x44, 0xa7, 0x75, 0xd3, 0x73,
+ 0x1a, 0x87, 0x7d, 0x36, 0xfe, 0x10, 0x9f, 0x86, 0x8d, 0x01, 0x37, 0xdf, 0x31, 0xbd, 0x80, 0x24,
+ 0x5f, 0x3b, 0x98, 0xba, 0x0d, 0xc7, 0xb3, 0x22, 0x9b, 0x84, 0xf1, 0x7f, 0x5c, 0xfc, 0xba, 0x16,
+ 0x36, 0xba, 0x7b, 0xa7, 0x69, 0xd1, 0xe1, 0x7c, 0xef, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xcc,
+ 0x23, 0x47, 0x15, 0x09, 0x1b, 0x00, 0x00,
+}
+
+func (m *ForcePausedInfo) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ForcePausedInfo) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ForcePausedInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.MarkPriceAtPausing != nil {
+ {
+ size := m.MarkPriceAtPausing.Size()
+ i -= size
+ if _, err := m.MarkPriceAtPausing.MarshalTo(dAtA[i:]); err != nil {
+ return 0, err
+ }
+ i = encodeVarintMarket(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ if m.Reason != 0 {
+ i = encodeVarintMarket(dAtA, i, uint64(m.Reason))
+ i--
+ dAtA[i] = 0x8
+ }
+ return len(dAtA) - i, nil
}
func (m *OpenNotionalCap) Marshal() (dAtA []byte, err error) {
@@ -1319,6 +1481,18 @@ func (m *SpotMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.HasDisabledMinimalProtocolFee {
+ i--
+ if m.HasDisabledMinimalProtocolFee {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x80
+ }
if m.QuoteDecimals != 0 {
i = encodeVarintMarket(dAtA, i, uint64(m.QuoteDecimals))
i--
@@ -1457,6 +1631,32 @@ func (m *BinaryOptionsMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.ForcePausedInfo != nil {
+ {
+ size, err := m.ForcePausedInfo.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintMarket(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xba
+ }
+ if m.HasDisabledMinimalProtocolFee {
+ i--
+ if m.HasDisabledMinimalProtocolFee {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xb0
+ }
{
size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -1651,6 +1851,32 @@ func (m *DerivativeMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.ForcePausedInfo != nil {
+ {
+ size, err := m.ForcePausedInfo.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintMarket(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xc2
+ }
+ if m.HasDisabledMinimalProtocolFee {
+ i--
+ if m.HasDisabledMinimalProtocolFee {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xb8
+ }
{
size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -2072,6 +2298,26 @@ func (m *ExpiryFuturesMarketInfo) MarshalToSizedBuffer(dAtA []byte) (int, error)
_ = i
var l int
_ = l
+ {
+ size := m.ExpirationTwapStartQuoteCumulativePrice.Size()
+ i -= size
+ if _, err := m.ExpirationTwapStartQuoteCumulativePrice.MarshalTo(dAtA[i:]); err != nil {
+ return 0, err
+ }
+ i = encodeVarintMarket(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x3a
+ {
+ size := m.ExpirationTwapStartBaseCumulativePrice.Size()
+ i -= size
+ if _, err := m.ExpirationTwapStartBaseCumulativePrice.MarshalTo(dAtA[i:]); err != nil {
+ return 0, err
+ }
+ i = encodeVarintMarket(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x32
{
size := m.SettlementPrice.Size()
i -= size
@@ -2231,6 +2477,22 @@ func encodeVarintMarket(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
return base
}
+func (m *ForcePausedInfo) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.Reason != 0 {
+ n += 1 + sovMarket(uint64(m.Reason))
+ }
+ if m.MarkPriceAtPausing != nil {
+ l = m.MarkPriceAtPausing.Size()
+ n += 1 + l + sovMarket(uint64(l))
+ }
+ return n
+}
+
func (m *OpenNotionalCap) Size() (n int) {
if m == nil {
return 0
@@ -2352,6 +2614,9 @@ func (m *SpotMarket) Size() (n int) {
if m.QuoteDecimals != 0 {
n += 1 + sovMarket(uint64(m.QuoteDecimals))
}
+ if m.HasDisabledMinimalProtocolFee {
+ n += 3
+ }
return n
}
@@ -2424,6 +2689,13 @@ func (m *BinaryOptionsMarket) Size() (n int) {
}
l = m.OpenNotionalCap.Size()
n += 2 + l + sovMarket(uint64(l))
+ if m.HasDisabledMinimalProtocolFee {
+ n += 3
+ }
+ if m.ForcePausedInfo != nil {
+ l = m.ForcePausedInfo.Size()
+ n += 2 + l + sovMarket(uint64(l))
+ }
return n
}
@@ -2495,6 +2767,13 @@ func (m *DerivativeMarket) Size() (n int) {
n += 2 + l + sovMarket(uint64(l))
l = m.OpenNotionalCap.Size()
n += 2 + l + sovMarket(uint64(l))
+ if m.HasDisabledMinimalProtocolFee {
+ n += 3
+ }
+ if m.ForcePausedInfo != nil {
+ l = m.ForcePausedInfo.Size()
+ n += 2 + l + sovMarket(uint64(l))
+ }
return n
}
@@ -2595,6 +2874,10 @@ func (m *ExpiryFuturesMarketInfo) Size() (n int) {
n += 1 + l + sovMarket(uint64(l))
l = m.SettlementPrice.Size()
n += 1 + l + sovMarket(uint64(l))
+ l = m.ExpirationTwapStartBaseCumulativePrice.Size()
+ n += 1 + l + sovMarket(uint64(l))
+ l = m.ExpirationTwapStartQuoteCumulativePrice.Size()
+ n += 1 + l + sovMarket(uint64(l))
return n
}
@@ -2643,6 +2926,111 @@ func sovMarket(x uint64) (n int) {
func sozMarket(x uint64) (n int) {
return sovMarket(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
+func (m *ForcePausedInfo) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ForcePausedInfo: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ForcePausedInfo: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType)
+ }
+ m.Reason = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.Reason |= ForcePausedReason(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field MarkPriceAtPausing", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthMarket
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMarket
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ var v cosmossdk_io_math.LegacyDec
+ m.MarkPriceAtPausing = &v
+ if err := m.MarkPriceAtPausing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipMarket(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthMarket
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *OpenNotionalCap) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -3482,6 +3870,26 @@ func (m *SpotMarket) Unmarshal(dAtA []byte) error {
break
}
}
+ case 16:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasDisabledMinimalProtocolFee", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasDisabledMinimalProtocolFee = bool(v != 0)
default:
iNdEx = preIndex
skippy, err := skipMarket(dAtA[iNdEx:])
@@ -4130,6 +4538,62 @@ func (m *BinaryOptionsMarket) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 22:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasDisabledMinimalProtocolFee", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasDisabledMinimalProtocolFee = bool(v != 0)
+ case 23:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ForcePausedInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthMarket
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMarket
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.ForcePausedInfo == nil {
+ m.ForcePausedInfo = &ForcePausedInfo{}
+ }
+ if err := m.ForcePausedInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipMarket(dAtA[iNdEx:])
@@ -4826,6 +5290,62 @@ func (m *DerivativeMarket) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 23:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasDisabledMinimalProtocolFee", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.HasDisabledMinimalProtocolFee = bool(v != 0)
+ case 24:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ForcePausedInfo", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthMarket
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthMarket
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.ForcePausedInfo == nil {
+ m.ForcePausedInfo = &ForcePausedInfo{}
+ }
+ if err := m.ForcePausedInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipMarket(dAtA[iNdEx:])
@@ -5599,6 +6119,74 @@ func (m *ExpiryFuturesMarketInfo) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 6:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExpirationTwapStartBaseCumulativePrice", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthMarket
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMarket
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ExpirationTwapStartBaseCumulativePrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 7:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ExpirationTwapStartQuoteCumulativePrice", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowMarket
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthMarket
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthMarket
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ExpirationTwapStartQuoteCumulativePrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipMarket(dAtA[iNdEx:])
diff --git a/chain/exchange/types/v2/msgs.go b/chain/exchange/types/v2/msgs.go
index 2166894e..8ebac86b 100644
--- a/chain/exchange/types/v2/msgs.go
+++ b/chain/exchange/types/v2/msgs.go
@@ -68,6 +68,8 @@ var (
_ sdk.Msg = &MsgTradingRewardPendingPointsUpdate{}
_ sdk.Msg = &MsgFeeDiscount{}
_ sdk.Msg = &MsgAtomicMarketOrderFeeMultiplierSchedule{}
+ _ sdk.Msg = &MsgCancelPostOnlyMode{}
+ _ sdk.Msg = &MsgActivatePostOnlyMode{}
)
// exchange message types
@@ -124,6 +126,8 @@ const (
TypeMsgTradingRewardPendingPointsUpdate = "tradingRewardPendingPointsUpdate"
TypeMsgFeeDiscount = "feeDiscount"
TypeMsgAtomicMarketOrderFeeMultiplierSchedule = "atomicMarketOrderFeeMultiplierSchedule"
+ TypeMsgCancelPostOnlyMode = "cancelPostOnlyMode"
+ TypeMsgActivatePostOnlyMode = "activatePostOnlyMode"
)
func (MsgUpdateParams) Route() string { return RouterKey }
@@ -969,15 +973,7 @@ func (msg MsgCreateSpotMarketOrder) ValidateBasic() error {
return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender)
}
- if msg.Order.OrderType == OrderType_BUY_PO || msg.Order.OrderType == OrderType_SELL_PO {
- return errors.Wrap(types.ErrInvalidOrderTypeForMessage, "Spot market order can't be a post only order")
- }
-
- if err := msg.Order.ValidateBasic(senderAddr); err != nil {
- return err
- }
-
- return nil
+ return ValidateSpotMarketOrder(&msg.Order, senderAddr)
}
// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing
@@ -1227,14 +1223,7 @@ func (msg MsgCreateDerivativeMarketOrder) ValidateBasic() error {
return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender)
}
- if msg.Order.OrderType == OrderType_BUY_PO || msg.Order.OrderType == OrderType_SELL_PO {
- return errors.Wrap(types.ErrInvalidOrderTypeForMessage, "Derivative market order can't be a post only order")
- }
-
- if err := msg.Order.ValidateBasic(senderAddr, false); err != nil {
- return err
- }
- return nil
+ return ValidateDerivativeMarketOrder(&msg.Order, senderAddr)
}
// GetSignBytes encodes the message for signing
@@ -1300,17 +1289,7 @@ func (msg MsgCreateBinaryOptionsMarketOrder) ValidateBasic() error {
return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender)
}
- if msg.Order.OrderType == OrderType_BUY_PO || msg.Order.OrderType == OrderType_SELL_PO {
- return errors.Wrap(types.ErrInvalidOrderTypeForMessage, "market order can't be a post only order")
- }
- if msg.Order.OrderType.IsConditional() {
- return errors.Wrap(types.ErrUnrecognizedOrderType, string(msg.Order.OrderType))
- }
-
- if err := msg.Order.ValidateBasic(senderAddr, true); err != nil {
- return err
- }
- return nil
+ return ValidateBinaryOptionsMarketOrder(&msg.Order, senderAddr)
}
// GetSignBytes encodes the message for signing
@@ -2132,6 +2111,24 @@ func (msg MsgBatchUpdateOrders) ValidateBasic() error {
}
}
+ for idx := range msg.SpotMarketOrdersToCreate {
+ if err := ValidateSpotMarketOrder(msg.SpotMarketOrdersToCreate[idx], sender); err != nil {
+ return err
+ }
+ }
+
+ for idx := range msg.DerivativeMarketOrdersToCreate {
+ if err := ValidateDerivativeMarketOrder(msg.DerivativeMarketOrdersToCreate[idx], sender); err != nil {
+ return err
+ }
+ }
+
+ for idx := range msg.BinaryOptionsMarketOrdersToCreate {
+ if err := ValidateBinaryOptionsMarketOrder(msg.BinaryOptionsMarketOrdersToCreate[idx], sender); err != nil {
+ return err
+ }
+ }
+
// Check for duplicate derivative market orders (same market and subaccount)
if err := ensureNoDuplicateMarketOrders(sender, msg.DerivativeMarketOrdersToCreate); err != nil {
return err
@@ -2231,6 +2228,8 @@ func (msg *MsgAuthorizeStakeGrants) ValidateBasic() error {
return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender)
}
+ seenGrantees := make(map[string]struct{})
+
for idx := range msg.Grants {
grant := msg.Grants[idx]
@@ -2238,6 +2237,11 @@ func (msg *MsgAuthorizeStakeGrants) ValidateBasic() error {
return errors.Wrap(sdkerrors.ErrInvalidAddress, grant.Grantee)
}
+ if _, ok := seenGrantees[grant.Grantee]; ok {
+ return errors.Wrapf(types.ErrInvalidStakeGrant, "duplicate grantee %s in MsgAuthorizeStakeGrants", grant.Grantee)
+ }
+ seenGrantees[grant.Grantee] = struct{}{}
+
if grant.Amount.IsNegative() || grant.Amount.GT(types.MaxTokenInt) {
return errors.Wrap(types.ErrInvalidStakeGrant, grant.Amount.String())
@@ -2723,3 +2727,82 @@ func ensureNoDuplicateMarketOrders(sender sdk.AccAddress, orders []*DerivativeOr
}
return nil
}
+
+func ValidateSpotMarketOrder(order *SpotOrder, senderAddr sdk.AccAddress) error {
+ if order.OrderType == OrderType_BUY_PO || order.OrderType == OrderType_SELL_PO {
+ return errors.Wrap(types.ErrInvalidOrderTypeForMessage, "Spot market order can't be a post only order")
+ }
+
+ return order.ValidateBasic(senderAddr)
+}
+
+func ValidateDerivativeMarketOrder(order *DerivativeOrder, senderAddr sdk.AccAddress) error {
+ if order.OrderType == OrderType_BUY_PO || order.OrderType == OrderType_SELL_PO {
+ return errors.Wrap(types.ErrInvalidOrderTypeForMessage, "Derivative market order can't be a post only order")
+ }
+
+ return order.ValidateBasic(senderAddr, false)
+}
+
+func ValidateBinaryOptionsMarketOrder(order *DerivativeOrder, senderAddr sdk.AccAddress) error {
+ if order.OrderType == OrderType_BUY_PO || order.OrderType == OrderType_SELL_PO {
+ return errors.Wrap(types.ErrInvalidOrderTypeForMessage, "market order can't be a post only order")
+ }
+ if order.OrderType.IsConditional() {
+ return errors.Wrap(types.ErrUnrecognizedOrderType, string(order.OrderType))
+ }
+
+ return order.ValidateBasic(senderAddr, true)
+}
+
+func (*MsgCancelPostOnlyMode) Route() string { return RouterKey }
+
+func (*MsgCancelPostOnlyMode) Type() string { return TypeMsgCancelPostOnlyMode }
+
+func (msg *MsgCancelPostOnlyMode) ValidateBasic() error {
+ if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil {
+ return errors.Wrap(err, "invalid sender address")
+ }
+
+ return nil
+}
+
+func (msg *MsgCancelPostOnlyMode) GetSignBytes() []byte {
+ return sdk.MustSortJSON(types.ModuleCdc.MustMarshalJSON(msg))
+}
+
+func (msg *MsgCancelPostOnlyMode) GetSigners() []sdk.AccAddress {
+ sender, err := sdk.AccAddressFromBech32(msg.Sender)
+ if err != nil {
+ panic(err)
+ }
+ return []sdk.AccAddress{sender}
+}
+
+func (*MsgActivatePostOnlyMode) Route() string { return RouterKey }
+
+func (*MsgActivatePostOnlyMode) Type() string { return TypeMsgActivatePostOnlyMode }
+
+func (msg *MsgActivatePostOnlyMode) ValidateBasic() error {
+ if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil {
+ return errors.Wrap(err, "invalid sender address")
+ }
+
+ if msg.BlocksAmount == 0 {
+ return errors.Wrap(types.ErrInvalidArgument, "blocks_amount must be greater than 0")
+ }
+
+ return nil
+}
+
+func (msg *MsgActivatePostOnlyMode) GetSignBytes() []byte {
+ return sdk.MustSortJSON(types.ModuleCdc.MustMarshalJSON(msg))
+}
+
+func (msg *MsgActivatePostOnlyMode) GetSigners() []sdk.AccAddress {
+ sender, err := sdk.AccAddressFromBech32(msg.Sender)
+ if err != nil {
+ panic(err)
+ }
+ return []sdk.AccAddress{sender}
+}
diff --git a/chain/exchange/types/v2/params.go b/chain/exchange/types/v2/params.go
index bfc39752..785e04d4 100644
--- a/chain/exchange/types/v2/params.go
+++ b/chain/exchange/types/v2/params.go
@@ -7,6 +7,7 @@ import (
"cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
+ ethcommon "github.com/ethereum/go-ethereum/common"
downtimetypes "github.com/InjectiveLabs/sdk-go/chain/downtime-detector/types"
"github.com/InjectiveLabs/sdk-go/chain/exchange/types"
@@ -268,6 +269,10 @@ func (p Params) Validate() error {
return fmt.Errorf("post_only_mode_blocks_amount_after_downtime is incorrect: %w", err)
}
+ if err := ValidateEnforcedRestrictionsContracts(p.EnforcedRestrictionsContracts); err != nil {
+ return fmt.Errorf("enforced_restrictions_contracts are invalid: %w", err)
+ }
+
return nil
}
@@ -351,3 +356,24 @@ func ValidateOpenNotionalCap(i any) error {
return nil
}
+
+func ValidateEVMAddresses(addresses []string) error {
+ for _, addr := range addresses {
+ if !ethcommon.IsHexAddress(addr) {
+ return fmt.Errorf("address is not in EVM format: %s", addr)
+ }
+ }
+
+ return nil
+}
+
+func ValidateEnforcedRestrictionsContracts(contracts []EnforcedRestrictionsContract) error {
+ for _, contract := range contracts {
+ if !ethcommon.IsHexAddress(contract.ContractAddress) {
+ return fmt.Errorf("contract address is not in EVM format: %s", contract.ContractAddress)
+ }
+ // pause_event_signature can be empty (will default to "Pause()")
+ }
+
+ return nil
+}
diff --git a/chain/exchange/types/v2/proposal.go b/chain/exchange/types/v2/proposal.go
index cfe67009..336f1215 100644
--- a/chain/exchange/types/v2/proposal.go
+++ b/chain/exchange/types/v2/proposal.go
@@ -220,6 +220,7 @@ func NewSpotMarketParamUpdateProposal(
status MarketStatus,
ticker string,
baseDecimals, quoteDecimals uint32,
+ hasDisabledMinimalProtocolFee DisableMinimalProtocolFeeUpdate,
) *SpotMarketParamUpdateProposal {
return &SpotMarketParamUpdateProposal{
title,
@@ -236,6 +237,7 @@ func NewSpotMarketParamUpdateProposal(
nil,
baseDecimals,
quoteDecimals,
+ hasDisabledMinimalProtocolFee,
}
}
@@ -272,6 +274,7 @@ func (p *SpotMarketParamUpdateProposal) ValidateBasic() error {
p.MinQuantityTickSize == nil &&
p.MinNotional == nil &&
p.AdminInfo == nil &&
+ p.HasDisabledMinimalProtocolFee == DisableMinimalProtocolFeeUpdate_NoUpdate &&
p.Status == MarketStatus_Unspecified {
return errors.Wrap(gov.ErrInvalidProposalContent, "At least one field should not be nil")
}
@@ -309,13 +312,8 @@ func (p *SpotMarketParamUpdateProposal) ValidateBasic() error {
}
if p.AdminInfo != nil {
- if p.AdminInfo.Admin != "" {
- if _, err := sdk.AccAddressFromBech32(p.AdminInfo.Admin); err != nil {
- return errors.Wrap(types.ErrInvalidAddress, err.Error())
- }
- }
- if p.AdminInfo.AdminPermissions > types.MaxPerm {
- return types.ErrInvalidPermissions
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
}
}
@@ -451,6 +449,12 @@ func (p *SpotMarketLaunchProposal) ValidateBasic() error {
return errors.Wrap(types.ErrInvalidDenomDecimal, "quote decimals is invalid")
}
+ if p.AdminInfo != nil {
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
+ }
+ }
+
return govtypes.ValidateAbstract(p)
}
@@ -538,6 +542,7 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error {
p.OpenNotionalCap == nil &&
p.Status == MarketStatus_Unspecified &&
p.AdminInfo == nil &&
+ p.HasDisabledMinimalProtocolFee == DisableMinimalProtocolFeeUpdate_NoUpdate &&
p.OracleParams == nil {
return errors.Wrap(gov.ErrInvalidProposalContent, "At least one field should not be nil")
}
@@ -604,13 +609,8 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error {
}
if p.AdminInfo != nil {
- if p.AdminInfo.Admin != "" {
- if _, err := sdk.AccAddressFromBech32(p.AdminInfo.Admin); err != nil {
- return errors.Wrap(types.ErrInvalidAddress, err.Error())
- }
- }
- if p.AdminInfo.AdminPermissions > types.MaxPerm {
- return types.ErrInvalidPermissions
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
}
}
@@ -765,10 +765,10 @@ func (p *OracleParams) ValidateBasic() error {
return types.ErrSameOracles
}
switch p.OracleType {
- case oracletypes.OracleType_Band, oracletypes.OracleType_PriceFeed, oracletypes.OracleType_Coinbase,
+ case oracletypes.OracleType_PriceFeed, oracletypes.OracleType_Coinbase,
oracletypes.OracleType_Chainlink, oracletypes.OracleType_Razor, oracletypes.OracleType_Dia,
oracletypes.OracleType_API3, oracletypes.OracleType_Uma, oracletypes.OracleType_Pyth,
- oracletypes.OracleType_BandIBC, oracletypes.OracleType_Provider, oracletypes.OracleType_Stork:
+ oracletypes.OracleType_Provider, oracletypes.OracleType_Stork, oracletypes.OracleType_ChainlinkDataStreams:
default:
return errors.Wrap(types.ErrInvalidOracleType, p.OracleType.String())
@@ -914,6 +914,11 @@ func (p *PerpetualMarketLaunchProposal) ValidateBasic() error {
if err := ValidateOpenNotionalCap(p.OpenNotionalCap); err != nil {
return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error())
}
+ if p.AdminInfo != nil {
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
+ }
+ }
return govtypes.ValidateAbstract(p)
}
@@ -1022,6 +1027,11 @@ func (p *ExpiryFuturesMarketLaunchProposal) ValidateBasic() error {
if err := ValidateOpenNotionalCap(p.OpenNotionalCap); err != nil {
return errors.Wrap(types.ErrInvalidOpenNotionalCap, err.Error())
}
+ if p.AdminInfo != nil {
+ if err := p.AdminInfo.ValidateBasic(); err != nil {
+ return err
+ }
+ }
return govtypes.ValidateAbstract(p)
}
@@ -1672,24 +1682,26 @@ func NewBinaryOptionsMarketParamUpdateProposal(
status MarketStatus,
oracleParams *ProviderOracleParams,
ticker string,
+ hasDisabledMinimalProtocolFee DisableMinimalProtocolFeeUpdate,
) *BinaryOptionsMarketParamUpdateProposal {
return &BinaryOptionsMarketParamUpdateProposal{
- Title: title,
- Description: description,
- MarketId: marketID,
- MakerFeeRate: makerFeeRate,
- TakerFeeRate: takerFeeRate,
- RelayerFeeShareRate: relayerFeeShareRate,
- MinPriceTickSize: minPriceTickSize,
- MinQuantityTickSize: minQuantityTickSize,
- MinNotional: minNotional,
- OpenNotionalCap: openNotionalCap,
- ExpirationTimestamp: expirationTimestamp,
- SettlementTimestamp: settlementTimestamp,
- Admin: admin,
- Status: status,
- OracleParams: oracleParams,
- Ticker: ticker,
+ Title: title,
+ Description: description,
+ MarketId: marketID,
+ MakerFeeRate: makerFeeRate,
+ TakerFeeRate: takerFeeRate,
+ RelayerFeeShareRate: relayerFeeShareRate,
+ MinPriceTickSize: minPriceTickSize,
+ MinQuantityTickSize: minQuantityTickSize,
+ MinNotional: minNotional,
+ OpenNotionalCap: openNotionalCap,
+ ExpirationTimestamp: expirationTimestamp,
+ SettlementTimestamp: settlementTimestamp,
+ Admin: admin,
+ Status: status,
+ OracleParams: oracleParams,
+ Ticker: ticker,
+ HasDisabledMinimalProtocolFee: hasDisabledMinimalProtocolFee,
}
}
@@ -1731,6 +1743,7 @@ func (p *BinaryOptionsMarketParamUpdateProposal) ValidateBasic() error {
p.SettlementTimestamp == 0 &&
p.SettlementPrice == nil &&
p.Admin == "" &&
+ p.HasDisabledMinimalProtocolFee == DisableMinimalProtocolFeeUpdate_NoUpdate &&
p.OracleParams == nil {
return errors.Wrap(gov.ErrInvalidProposalContent, "At least one field should not be nil")
}
@@ -1876,3 +1889,15 @@ func (p *AtomicMarketOrderFeeMultiplierScheduleProposal) ValidateBasic() error {
}
return govtypes.ValidateAbstract(p)
}
+
+func (a *AdminInfo) ValidateBasic() error {
+ if a.Admin != "" {
+ if _, err := sdk.AccAddressFromBech32(a.Admin); err != nil {
+ return errors.Wrap(types.ErrInvalidAddress, err.Error())
+ }
+ }
+ if a.AdminPermissions > types.MaxPerm {
+ return types.ErrInvalidPermissions
+ }
+ return nil
+}
diff --git a/chain/exchange/types/v2/proposal.pb.go b/chain/exchange/types/v2/proposal.pb.go
index 01d8b244..07f503af 100644
--- a/chain/exchange/types/v2/proposal.pb.go
+++ b/chain/exchange/types/v2/proposal.pb.go
@@ -30,6 +30,34 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
+type DisableMinimalProtocolFeeUpdate int32
+
+const (
+ DisableMinimalProtocolFeeUpdate_NoUpdate DisableMinimalProtocolFeeUpdate = 0
+ DisableMinimalProtocolFeeUpdate_False DisableMinimalProtocolFeeUpdate = 1
+ DisableMinimalProtocolFeeUpdate_True DisableMinimalProtocolFeeUpdate = 2
+)
+
+var DisableMinimalProtocolFeeUpdate_name = map[int32]string{
+ 0: "NoUpdate",
+ 1: "False",
+ 2: "True",
+}
+
+var DisableMinimalProtocolFeeUpdate_value = map[string]int32{
+ "NoUpdate": 0,
+ "False": 1,
+ "True": 2,
+}
+
+func (x DisableMinimalProtocolFeeUpdate) String() string {
+ return proto.EnumName(DisableMinimalProtocolFeeUpdate_name, int32(x))
+}
+
+func (DisableMinimalProtocolFeeUpdate) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor_0fb550654abc72c5, []int{0}
+}
+
type ExchangeType int32
const (
@@ -55,7 +83,7 @@ func (x ExchangeType) String() string {
}
func (ExchangeType) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_0fb550654abc72c5, []int{0}
+ return fileDescriptor_0fb550654abc72c5, []int{1}
}
type SpotMarketParamUpdateProposal struct {
@@ -85,6 +113,9 @@ type SpotMarketParamUpdateProposal struct {
BaseDecimals uint32 `protobuf:"varint,13,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"`
// quote token decimals
QuoteDecimals uint32 `protobuf:"varint,14,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"`
+ // has_disabled_minimal_protocol_fee defines whether the minimal protocol fee
+ // is disabled for the market
+ HasDisabledMinimalProtocolFee DisableMinimalProtocolFeeUpdate `protobuf:"varint,15,opt,name=has_disabled_minimal_protocol_fee,json=hasDisabledMinimalProtocolFee,proto3,enum=injective.exchange.v2.DisableMinimalProtocolFeeUpdate" json:"has_disabled_minimal_protocol_fee,omitempty"`
}
func (m *SpotMarketParamUpdateProposal) Reset() { *m = SpotMarketParamUpdateProposal{} }
@@ -542,6 +573,9 @@ type DerivativeMarketParamUpdateProposal struct {
ReduceMarginRatio *cosmossdk_io_math.LegacyDec `protobuf:"bytes,18,opt,name=reduce_margin_ratio,json=reduceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reduce_margin_ratio,omitempty"`
// open_notional_cap defines the maximum open notional for the market
OpenNotionalCap *OpenNotionalCap `protobuf:"bytes,19,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap,omitempty"`
+ // has_disabled_minimal_protocol_fee defines whether the minimal protocol fee
+ // is disabled for the market
+ HasDisabledMinimalProtocolFee DisableMinimalProtocolFeeUpdate `protobuf:"varint,20,opt,name=has_disabled_minimal_protocol_fee,json=hasDisabledMinimalProtocolFee,proto3,enum=injective.exchange.v2.DisableMinimalProtocolFeeUpdate" json:"has_disabled_minimal_protocol_fee,omitempty"`
}
func (m *DerivativeMarketParamUpdateProposal) Reset() { *m = DerivativeMarketParamUpdateProposal{} }
@@ -747,6 +781,9 @@ type BinaryOptionsMarketParamUpdateProposal struct {
MinNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional,omitempty"`
// open_notional_cap defines the maximum open notional for the market
OpenNotionalCap *OpenNotionalCap `protobuf:"bytes,17,opt,name=open_notional_cap,json=openNotionalCap,proto3" json:"open_notional_cap,omitempty"`
+ // has_disabled_minimal_protocol_fee defines whether the minimal protocol fee
+ // is disabled for the market
+ HasDisabledMinimalProtocolFee DisableMinimalProtocolFeeUpdate `protobuf:"varint,18,opt,name=has_disabled_minimal_protocol_fee,json=hasDisabledMinimalProtocolFee,proto3,enum=injective.exchange.v2.DisableMinimalProtocolFeeUpdate" json:"has_disabled_minimal_protocol_fee,omitempty"`
}
func (m *BinaryOptionsMarketParamUpdateProposal) Reset() {
@@ -1260,6 +1297,7 @@ func (m *DenomMinNotionalProposal) XXX_DiscardUnknown() {
var xxx_messageInfo_DenomMinNotionalProposal proto.InternalMessageInfo
func init() {
+ proto.RegisterEnum("injective.exchange.v2.DisableMinimalProtocolFeeUpdate", DisableMinimalProtocolFeeUpdate_name, DisableMinimalProtocolFeeUpdate_value)
proto.RegisterEnum("injective.exchange.v2.ExchangeType", ExchangeType_name, ExchangeType_value)
proto.RegisterType((*SpotMarketParamUpdateProposal)(nil), "injective.exchange.v2.SpotMarketParamUpdateProposal")
proto.RegisterType((*ExchangeEnableProposal)(nil), "injective.exchange.v2.ExchangeEnableProposal")
@@ -1290,174 +1328,180 @@ func init() {
}
var fileDescriptor_0fb550654abc72c5 = []byte{
- // 2661 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x1c, 0x49,
- 0xd9, 0x77, 0xdb, 0x8e, 0xe3, 0xa9, 0xf9, 0xb0, 0xdd, 0xf6, 0xfa, 0x9d, 0x75, 0x12, 0x7f, 0x8c,
- 0xf3, 0xe1, 0x37, 0xbb, 0x3b, 0x43, 0xcc, 0xa2, 0x5d, 0x79, 0x85, 0x90, 0x3f, 0x13, 0x8b, 0x7c,
- 0x38, 0x3d, 0xce, 0x26, 0x8a, 0x58, 0x9a, 0x72, 0x77, 0xd9, 0x2e, 0x3c, 0xdd, 0xd5, 0xdb, 0x55,
- 0xe3, 0xc4, 0x7b, 0x61, 0x85, 0x84, 0x84, 0x22, 0x24, 0x96, 0x95, 0x10, 0xe2, 0x10, 0x69, 0xf9,
- 0x07, 0x10, 0x42, 0xdc, 0x57, 0x9c, 0x58, 0x38, 0x45, 0x9c, 0x10, 0x87, 0x08, 0x25, 0x07, 0x38,
- 0x80, 0xc4, 0x95, 0x1b, 0xea, 0xaa, 0xea, 0x9e, 0x9e, 0x99, 0xee, 0x99, 0x9e, 0xf1, 0x8c, 0x72,
- 0x20, 0x97, 0xc4, 0xfd, 0xd4, 0xf3, 0x3c, 0xf5, 0xd4, 0x53, 0x55, 0xbf, 0xfa, 0xd5, 0xc7, 0x80,
- 0x8b, 0xd8, 0xfe, 0x3e, 0x32, 0x18, 0x3e, 0x46, 0x25, 0xf4, 0xd8, 0x38, 0x84, 0xf6, 0x01, 0x2a,
- 0x1d, 0x2f, 0x97, 0x1c, 0x97, 0x38, 0x84, 0xc2, 0x4a, 0xd1, 0x71, 0x09, 0x23, 0xea, 0x1b, 0x81,
- 0x56, 0xd1, 0xd7, 0x2a, 0x1e, 0x2f, 0xcf, 0xbc, 0x69, 0x10, 0x6a, 0x11, 0xaa, 0x73, 0xa5, 0x92,
- 0xf8, 0x10, 0x16, 0x33, 0x53, 0x07, 0xe4, 0x80, 0x08, 0xb9, 0xf7, 0x97, 0x94, 0x4e, 0x40, 0x0b,
- 0xdb, 0xa4, 0xc4, 0xff, 0x95, 0xa2, 0x59, 0x61, 0x56, 0xda, 0x83, 0x14, 0x95, 0x8e, 0xaf, 0xed,
- 0x21, 0x06, 0xaf, 0x95, 0x0c, 0x82, 0x6d, 0x59, 0xfe, 0x7f, 0xb2, 0xdc, 0xa2, 0x07, 0xa5, 0xe3,
- 0x6b, 0xde, 0x7f, 0xb2, 0xa0, 0x28, 0x0b, 0x4c, 0x4c, 0x99, 0x8b, 0xf7, 0xaa, 0x0c, 0x13, 0x3b,
- 0x70, 0x10, 0x16, 0x4a, 0xfd, 0x98, 0x96, 0x06, 0xed, 0x11, 0x5a, 0x85, 0x68, 0x2d, 0x0b, 0xba,
- 0x47, 0x88, 0x49, 0x9d, 0x4b, 0x35, 0x1d, 0xe2, 0x42, 0xa3, 0x52, 0x8b, 0x5b, 0x7c, 0x0a, 0xb5,
- 0xc2, 0xcf, 0xcf, 0x82, 0x0b, 0x65, 0x87, 0xb0, 0x5b, 0xdc, 0x76, 0x07, 0xba, 0xd0, 0xba, 0xe7,
- 0x98, 0x90, 0xa1, 0x1d, 0x99, 0x5c, 0x75, 0x0a, 0x9c, 0x61, 0x98, 0x55, 0x50, 0x5e, 0x99, 0x57,
- 0x96, 0x52, 0x9a, 0xf8, 0x50, 0xe7, 0x41, 0xda, 0x44, 0xd4, 0x70, 0xb1, 0xe3, 0x45, 0x9f, 0x1f,
- 0xe4, 0x65, 0x61, 0x91, 0x7a, 0x0e, 0xa4, 0x44, 0x40, 0x3a, 0x36, 0xf3, 0x43, 0xbc, 0x7c, 0x54,
- 0x08, 0xb6, 0x4d, 0x75, 0x1b, 0xe4, 0x2c, 0x78, 0x84, 0x5c, 0x7d, 0x1f, 0x21, 0xdd, 0x85, 0x0c,
- 0xe5, 0x87, 0x3d, 0x8d, 0xb5, 0xc5, 0xaf, 0x9e, 0xcf, 0x29, 0x7f, 0x7d, 0x3e, 0x77, 0x4e, 0xe4,
- 0x8d, 0x9a, 0x47, 0x45, 0x4c, 0x4a, 0x16, 0x64, 0x87, 0xc5, 0x9b, 0xe8, 0x00, 0x1a, 0x27, 0x1b,
- 0xc8, 0xd0, 0x32, 0xdc, 0x74, 0x0b, 0x21, 0x0d, 0x32, 0xe4, 0xb9, 0x62, 0xf5, 0xae, 0xce, 0x74,
- 0xe0, 0x8a, 0x85, 0x5d, 0x3d, 0x00, 0xd3, 0x2e, 0xaa, 0xc0, 0x13, 0xe9, 0x8c, 0x1e, 0x42, 0x57,
- 0xba, 0x1c, 0x49, 0xee, 0x72, 0x52, 0xba, 0xd8, 0x42, 0xa8, 0xec, 0x39, 0xe0, 0x9e, 0x35, 0x30,
- 0x69, 0x61, 0x5b, 0x77, 0x5c, 0x6c, 0x20, 0x9d, 0x61, 0xe3, 0x48, 0xa7, 0xf8, 0x13, 0x94, 0x3f,
- 0x9b, 0xdc, 0xed, 0xb8, 0x85, 0xed, 0x1d, 0xcf, 0x7c, 0x17, 0x1b, 0x47, 0x65, 0xfc, 0x09, 0x8f,
- 0xd6, 0xf3, 0xf9, 0x71, 0x15, 0xda, 0x0c, 0xb3, 0x93, 0x90, 0xdb, 0xd1, 0x0e, 0xa2, 0xb5, 0xb0,
- 0x7d, 0x57, 0x7a, 0x08, 0x3c, 0x7f, 0x00, 0x46, 0x28, 0x83, 0xac, 0x4a, 0xf3, 0xa9, 0x79, 0x65,
- 0x29, 0xb7, 0xbc, 0x58, 0x8c, 0x9c, 0x5a, 0x45, 0x31, 0x68, 0xca, 0x5c, 0x55, 0x93, 0x26, 0xea,
- 0x79, 0x30, 0xe2, 0x45, 0x82, 0xdc, 0x3c, 0xe0, 0x61, 0x0c, 0x7b, 0x61, 0x68, 0x52, 0xa6, 0x6e,
- 0x81, 0x8c, 0x17, 0xb4, 0x4d, 0xbc, 0x31, 0x02, 0x2b, 0xf9, 0x74, 0xf2, 0x50, 0xd3, 0x16, 0xb6,
- 0x6f, 0x4b, 0x3b, 0xf5, 0x5b, 0x00, 0x40, 0xd3, 0xf3, 0x84, 0xed, 0x7d, 0x92, 0xcf, 0xcc, 0x2b,
- 0x4b, 0xe9, 0xe5, 0xf9, 0x98, 0x30, 0x57, 0x3d, 0xc5, 0x6d, 0x7b, 0x9f, 0x68, 0x29, 0xe8, 0xff,
- 0xa9, 0x2e, 0x82, 0xac, 0x37, 0x9b, 0x75, 0x13, 0x19, 0xd8, 0x82, 0x15, 0x9a, 0xcf, 0xce, 0x2b,
- 0x4b, 0x59, 0x2d, 0xe3, 0x09, 0x37, 0xa4, 0x4c, 0xbd, 0x04, 0x72, 0x1f, 0x57, 0x09, 0x0b, 0x69,
- 0xe5, 0xb8, 0x56, 0x96, 0x4b, 0x7d, 0xb5, 0x95, 0xbb, 0x3f, 0xfe, 0x62, 0x6e, 0xe0, 0x1f, 0x5f,
- 0xcc, 0x0d, 0xfc, 0xe9, 0x77, 0xef, 0xcc, 0x48, 0x84, 0x39, 0x20, 0xc7, 0x45, 0x39, 0xe3, 0x8a,
- 0xeb, 0xc4, 0x66, 0xc8, 0x66, 0x4f, 0xfe, 0xfe, 0x9b, 0xab, 0x97, 0x83, 0x09, 0xdb, 0x72, 0xd6,
- 0x15, 0xfe, 0xa0, 0x80, 0xe9, 0x4d, 0xa9, 0xba, 0x69, 0xc3, 0xbd, 0xca, 0xe9, 0x27, 0xe4, 0x75,
- 0x90, 0xf1, 0x2b, 0xdf, 0x3d, 0x71, 0x10, 0x9f, 0x93, 0xf1, 0x7d, 0xbb, 0x19, 0x52, 0xd5, 0xea,
- 0x0c, 0x57, 0xde, 0xf6, 0x9b, 0xeb, 0x35, 0x68, 0x2e, 0x68, 0x50, 0x74, 0xb8, 0x85, 0x5f, 0xe4,
- 0xc0, 0xc2, 0x1a, 0x64, 0xc6, 0xa1, 0x5f, 0x7e, 0x8b, 0x98, 0x78, 0x1f, 0x1b, 0xd0, 0x0b, 0xea,
- 0xd4, 0x8d, 0xfa, 0x54, 0x01, 0x05, 0xea, 0x10, 0xa6, 0x4b, 0xac, 0x71, 0xbc, 0x5c, 0xea, 0x55,
- 0x9e, 0x4c, 0xdd, 0x5f, 0x20, 0x68, 0x7e, 0x68, 0x7e, 0x68, 0x29, 0xbd, 0xfc, 0x6e, 0x4c, 0x5b,
- 0x5b, 0x76, 0x85, 0x36, 0x4b, 0x5b, 0x15, 0x53, 0xf5, 0x73, 0x05, 0x2c, 0x99, 0xc8, 0xc5, 0xc7,
- 0xd0, 0x73, 0xdc, 0x26, 0x90, 0x61, 0x1e, 0xc8, 0x4a, 0x4c, 0x20, 0x1b, 0x81, 0x9b, 0xf8, 0x70,
- 0x2e, 0x9a, 0xed, 0x95, 0xa8, 0xea, 0x80, 0xf3, 0xe1, 0xb4, 0x54, 0x60, 0xd5, 0x36, 0x0e, 0x43,
- 0x71, 0x9c, 0xe1, 0x71, 0x94, 0xda, 0x26, 0xe4, 0x26, 0x37, 0x0c, 0x2a, 0x7f, 0x93, 0xc6, 0x94,
- 0x50, 0xf5, 0x07, 0x60, 0xc1, 0x41, 0xae, 0x83, 0x58, 0x15, 0x56, 0x62, 0xab, 0x1d, 0x69, 0xd9,
- 0x0f, 0x3b, 0xbe, 0x7d, 0x64, 0xdd, 0xb3, 0x4e, 0xab, 0x62, 0xaa, 0xfe, 0x44, 0x01, 0x97, 0xd1,
- 0x63, 0x07, 0xbb, 0x27, 0xfa, 0x7e, 0x95, 0x55, 0x5d, 0x44, 0x63, 0xc3, 0x38, 0xcb, 0xc3, 0x78,
- 0x3f, 0x76, 0xe8, 0x7b, 0x4e, 0xb6, 0x84, 0x8f, 0xc8, 0x50, 0x0a, 0xa8, 0x9d, 0x0a, 0x55, 0x3f,
- 0x53, 0xc0, 0x15, 0xe6, 0x42, 0x13, 0xdb, 0x07, 0xba, 0x8b, 0x1e, 0x41, 0xd7, 0xd4, 0x0d, 0x68,
- 0x39, 0x10, 0x1f, 0xd8, 0x8d, 0xc3, 0x82, 0x03, 0x76, 0xfc, 0xa8, 0xd8, 0x15, 0x5e, 0x34, 0xee,
- 0x64, 0x5d, 0xfa, 0x68, 0x18, 0x15, 0x8b, 0xac, 0xbd, 0x12, 0xcf, 0xd0, 0x1e, 0xb6, 0xa1, 0x7b,
- 0xa2, 0x13, 0x3e, 0x7d, 0xe2, 0x33, 0x94, 0x6a, 0x99, 0xa1, 0x35, 0xee, 0xe4, 0x8e, 0xf0, 0x11,
- 0x9d, 0xa1, 0xbd, 0x76, 0x2a, 0x54, 0xfd, 0xa9, 0x02, 0x2e, 0x35, 0x84, 0x13, 0x33, 0x6b, 0x00,
- 0x8f, 0xe6, 0x9b, 0xc9, 0xa3, 0x89, 0x9a, 0x38, 0x0b, 0x75, 0x21, 0x45, 0xce, 0x9a, 0x2f, 0x15,
- 0xf0, 0x3e, 0xac, 0x1a, 0x9e, 0x82, 0xee, 0xd7, 0xa0, 0x33, 0x17, 0xda, 0x74, 0x1f, 0xb9, 0xba,
- 0x89, 0x6c, 0x62, 0x05, 0x4b, 0x41, 0x53, 0x27, 0xa6, 0x79, 0x27, 0x6e, 0xc7, 0x04, 0x29, 0xaa,
- 0x5a, 0x15, 0xce, 0x03, 0x70, 0x95, 0xae, 0x37, 0x3c, 0xcf, 0xfe, 0x72, 0x12, 0x04, 0xbc, 0x0c,
- 0x13, 0x68, 0x37, 0x74, 0xf1, 0x77, 0xc1, 0x1b, 0x1e, 0x75, 0x31, 0x31, 0x35, 0x48, 0xd5, 0x66,
- 0xb5, 0xe8, 0xc4, 0x12, 0x79, 0x35, 0x26, 0xba, 0x2d, 0x84, 0x36, 0xa4, 0x49, 0x50, 0xfd, 0xe4,
- 0x7e, 0xb3, 0x50, 0xfd, 0xa1, 0x02, 0x0a, 0x72, 0xcc, 0xec, 0x13, 0xd7, 0x40, 0xa6, 0x4e, 0x11,
- 0x63, 0x15, 0x64, 0xa1, 0x50, 0x65, 0xde, 0x62, 0xea, 0x75, 0xd8, 0x37, 0x5a, 0xf2, 0x86, 0x2d,
- 0x6e, 0x5f, 0x0e, 0xcc, 0x83, 0x8a, 0xe7, 0xac, 0x96, 0xe5, 0x54, 0xb5, 0xc1, 0x39, 0xd1, 0x17,
- 0x61, 0x2a, 0x51, 0x6b, 0x6a, 0x8e, 0x37, 0xb5, 0x14, 0x8b, 0xb1, 0x36, 0xb1, 0x6e, 0xd5, 0xa8,
- 0x44, 0x50, 0x6d, 0xde, 0x8c, 0x29, 0x59, 0xb9, 0x97, 0x7c, 0x7d, 0xbf, 0x1a, 0x2c, 0x87, 0x6d,
- 0xd7, 0xbc, 0xc2, 0xcf, 0x46, 0x40, 0x3e, 0x0e, 0x69, 0xbb, 0x5e, 0x10, 0xa7, 0x03, 0xfa, 0x25,
- 0x38, 0xb7, 0x4f, 0xbc, 0x2e, 0x00, 0x20, 0xf9, 0x8e, 0x4d, 0x2c, 0xc1, 0xb6, 0xb5, 0x94, 0x20,
- 0x3b, 0x36, 0xb1, 0xd4, 0x39, 0x90, 0xf6, 0x99, 0x8e, 0x57, 0xce, 0x29, 0xb4, 0x06, 0x24, 0xcd,
- 0xf1, 0x14, 0x62, 0x18, 0x6c, 0x8d, 0x18, 0x0f, 0xf4, 0x92, 0xc1, 0x9e, 0x4d, 0xee, 0x36, 0x92,
- 0xc1, 0x36, 0xef, 0x2f, 0x46, 0x7b, 0xb7, 0xbf, 0x48, 0x75, 0xbb, 0xbf, 0x68, 0x24, 0xbf, 0x20,
- 0x79, 0x2b, 0x5b, 0x90, 0xdf, 0x74, 0x0f, 0xc8, 0x6f, 0x2e, 0x11, 0xf9, 0x1d, 0x8b, 0x22, 0xbf,
- 0x37, 0x93, 0x4f, 0x8e, 0x85, 0x08, 0xf2, 0x5b, 0x3f, 0xec, 0x0b, 0xcf, 0x52, 0xe0, 0x42, 0x4b,
- 0x1a, 0xd0, 0xf3, 0x89, 0xd1, 0x30, 0xf2, 0x87, 0x9b, 0x46, 0xfe, 0x1c, 0x48, 0x8b, 0x2d, 0xb3,
- 0xee, 0xa5, 0xc7, 0x9f, 0x1a, 0x42, 0xb4, 0x06, 0x29, 0x52, 0x17, 0x40, 0x46, 0x2a, 0x70, 0x2b,
- 0x31, 0x27, 0x34, 0x69, 0x74, 0xd7, 0x13, 0xa9, 0x45, 0x30, 0x29, 0x55, 0xa8, 0x01, 0x2b, 0x48,
- 0xdf, 0x87, 0x06, 0x23, 0x2e, 0x1f, 0xe6, 0x59, 0x6d, 0x42, 0x14, 0x95, 0xbd, 0x92, 0x2d, 0x5e,
- 0xa0, 0x6e, 0x06, 0x75, 0x32, 0x8f, 0xaa, 0x8f, 0x72, 0xaa, 0x7e, 0x31, 0xd4, 0xc5, 0x72, 0x13,
- 0xef, 0x27, 0xf9, 0x0e, 0xff, 0xe4, 0x5c, 0x5d, 0x46, 0xe6, 0xfd, 0xad, 0xde, 0x03, 0x53, 0xd8,
- 0xc6, 0x0c, 0x0b, 0x46, 0x76, 0x80, 0x6d, 0x6f, 0x00, 0x63, 0x12, 0x1a, 0xc1, 0x6d, 0x07, 0x9e,
- 0x2a, 0x1d, 0xdc, 0xe2, 0xf6, 0x9a, 0x67, 0xae, 0x7e, 0x04, 0xf2, 0x16, 0xc4, 0x5e, 0xb7, 0x42,
- 0xdb, 0x40, 0xf5, 0xae, 0x3b, 0x18, 0xd3, 0xd3, 0x21, 0x27, 0x61, 0xf7, 0xcd, 0x93, 0x37, 0x9d,
- 0xdc, 0x69, 0xbb, 0xc9, 0x9b, 0xe9, 0xc0, 0x55, 0xdd, 0xe4, 0x8d, 0x01, 0xc0, 0x6c, 0x7f, 0x00,
- 0x30, 0x77, 0x4a, 0x00, 0x6c, 0x84, 0x9a, 0xb1, 0x9e, 0x40, 0xcd, 0x78, 0xe7, 0x50, 0x53, 0x06,
- 0x93, 0x2e, 0x32, 0xab, 0x8d, 0xc3, 0x64, 0x22, 0x79, 0x3c, 0x13, 0xc2, 0x3e, 0x3c, 0x42, 0x1e,
- 0x80, 0x09, 0xe2, 0xa0, 0xd0, 0xda, 0x6f, 0x40, 0x27, 0xaf, 0xf2, 0xe0, 0x2e, 0xc7, 0x04, 0x77,
- 0xc7, 0x41, 0x41, 0xab, 0xd6, 0xa1, 0xc3, 0x8f, 0x25, 0x06, 0xb4, 0x31, 0x52, 0x2f, 0xee, 0x6e,
- 0x2b, 0xdf, 0x12, 0xb0, 0x0a, 0x5f, 0x8e, 0x82, 0x85, 0xb6, 0x84, 0xb9, 0xe7, 0xb0, 0xb6, 0x08,
- 0xb2, 0x3e, 0xe2, 0x9c, 0x58, 0x7b, 0xa4, 0x22, 0x81, 0x4d, 0x22, 0x55, 0x99, 0xcb, 0xd4, 0x2b,
- 0x60, 0x4c, 0x2a, 0x39, 0x2e, 0x39, 0xc6, 0x26, 0x72, 0x25, 0xbc, 0xe5, 0x84, 0x78, 0x47, 0x4a,
- 0x1b, 0xf1, 0x68, 0xa4, 0x4b, 0x3c, 0xea, 0x14, 0x06, 0xaf, 0x81, 0x29, 0xbe, 0xd3, 0xe2, 0xbc,
- 0x49, 0x67, 0xd8, 0x42, 0x94, 0x41, 0xcb, 0xe1, 0x78, 0x38, 0xa4, 0x4d, 0xd6, 0xca, 0x76, 0xfd,
- 0x22, 0xcf, 0x24, 0xc4, 0x48, 0x6b, 0x26, 0x29, 0x61, 0x52, 0x2b, 0xab, 0x99, 0x4c, 0x81, 0x33,
- 0x7c, 0xbc, 0x0a, 0xec, 0xd2, 0xc4, 0x47, 0xe3, 0xba, 0x90, 0x6e, 0x5a, 0x17, 0x9a, 0x61, 0x2a,
- 0xd3, 0x3b, 0x98, 0xca, 0xf6, 0x18, 0xa6, 0x72, 0xfd, 0x81, 0xa9, 0xb1, 0x1e, 0xc3, 0xd4, 0x78,
- 0x97, 0x30, 0xf5, 0x16, 0x98, 0x10, 0x30, 0xe5, 0x20, 0xd7, 0xc2, 0x94, 0x7a, 0xd3, 0x8c, 0x63,
- 0x4c, 0x56, 0x1b, 0xe7, 0x05, 0x3b, 0x35, 0x79, 0x1f, 0xd1, 0xa3, 0xbb, 0x8d, 0x42, 0x3b, 0x6c,
- 0x28, 0xfc, 0x3b, 0x05, 0x16, 0xda, 0x1e, 0x4a, 0xbc, 0x26, 0x46, 0x1d, 0x00, 0xd1, 0x34, 0x18,
- 0x11, 0x47, 0x38, 0x12, 0x17, 0xe4, 0x57, 0x2c, 0x61, 0x02, 0xfd, 0x23, 0x4c, 0xe9, 0x7e, 0x10,
- 0xa6, 0xd7, 0x48, 0xf4, 0xaa, 0x90, 0xa8, 0x9e, 0x30, 0x4d, 0xf4, 0x8c, 0x30, 0xa9, 0xbd, 0x27,
- 0x4c, 0x93, 0xaf, 0x0c, 0xf2, 0xda, 0x82, 0x59, 0xe1, 0xb7, 0x69, 0xb0, 0x98, 0xe0, 0x34, 0xbc,
- 0x3f, 0xb7, 0x93, 0x71, 0x28, 0xd0, 0xc1, 0x1d, 0x65, 0xa7, 0x28, 0xd0, 0xc1, 0x9d, 0x65, 0x72,
- 0x14, 0x18, 0xe9, 0xdd, 0x99, 0xc7, 0xd9, 0xde, 0xdf, 0xa9, 0x8e, 0xf6, 0xe7, 0x4e, 0x35, 0xd5,
- 0x9f, 0x3b, 0x55, 0x70, 0xca, 0x3b, 0xd5, 0x32, 0x50, 0x6f, 0x90, 0xaa, 0x5b, 0x39, 0xd9, 0xb6,
- 0x19, 0x72, 0x11, 0x65, 0x5a, 0xfd, 0xc6, 0xb6, 0xfd, 0x88, 0x6a, 0x36, 0x57, 0xef, 0x83, 0x29,
- 0x21, 0xdd, 0xaa, 0xda, 0xfc, 0xf4, 0x1f, 0x32, 0xb4, 0x0e, 0x9d, 0x10, 0xfc, 0xb7, 0x75, 0x1b,
- 0xe9, 0x20, 0x74, 0x03, 0x9c, 0xed, 0xfc, 0x06, 0xf8, 0x46, 0xb0, 0xf5, 0xe0, 0xc7, 0xf9, 0x54,
- 0x1e, 0xc8, 0xc6, 0xf9, 0x10, 0x4b, 0x34, 0x9f, 0xdc, 0xd4, 0xdf, 0x9f, 0x88, 0xaf, 0xd0, 0x5d,
- 0xf2, 0x58, 0x82, 0xbb, 0xe4, 0xf1, 0x9e, 0xdc, 0x25, 0xf7, 0x03, 0xb2, 0x95, 0x57, 0x07, 0xd9,
- 0x4a, 0x33, 0x64, 0xdf, 0x4f, 0x0e, 0xd9, 0x6f, 0x07, 0x90, 0x9d, 0x00, 0x8c, 0x0b, 0xb7, 0x41,
- 0x2a, 0xc8, 0x4f, 0x6d, 0x57, 0xa5, 0x84, 0x77, 0x55, 0x91, 0x44, 0x7d, 0x30, 0x9a, 0xa8, 0x17,
- 0x7e, 0x39, 0x08, 0x66, 0x5b, 0xdf, 0x15, 0xf4, 0x07, 0xff, 0x6f, 0x83, 0xf1, 0xba, 0x5b, 0x0d,
- 0x6c, 0x74, 0xf4, 0x3e, 0x65, 0x8c, 0x86, 0xe2, 0xc4, 0x06, 0x5a, 0xd1, 0x92, 0x27, 0xfc, 0x4a,
- 0x90, 0xf0, 0xd6, 0x0d, 0x2f, 0xfc, 0x6a, 0x10, 0x2c, 0x77, 0x7e, 0xa7, 0xd4, 0x75, 0xbe, 0xbe,
- 0x0d, 0x72, 0xf5, 0xd7, 0x5f, 0xf2, 0x4a, 0xfd, 0x62, 0xab, 0x5b, 0x16, 0xbf, 0x76, 0x2d, 0x6b,
- 0x86, 0x3f, 0x57, 0xf6, 0x93, 0xe7, 0xe3, 0x83, 0x20, 0x1f, 0x9d, 0x37, 0xb6, 0xf0, 0x79, 0x0a,
- 0x5c, 0x4e, 0x76, 0x39, 0xf8, 0xfa, 0x95, 0xd3, 0xff, 0xde, 0x2b, 0xa7, 0xb8, 0xc3, 0xa5, 0x54,
- 0xe7, 0x87, 0x4b, 0x20, 0xfe, 0x70, 0x29, 0x0a, 0x4b, 0xd2, 0xdd, 0x63, 0x49, 0x0d, 0x56, 0x33,
- 0x61, 0x58, 0x3d, 0xd5, 0x7a, 0xbd, 0x13, 0xbd, 0x5e, 0xbf, 0x15, 0xf7, 0x4a, 0x43, 0x1e, 0x0a,
- 0xbe, 0xf2, 0x75, 0x3b, 0x72, 0x85, 0x9c, 0xe8, 0xc5, 0x0a, 0xf9, 0x30, 0x39, 0x40, 0x95, 0x5a,
- 0x9d, 0xe3, 0x44, 0x2d, 0x92, 0xbf, 0x57, 0xc0, 0x54, 0x54, 0x0a, 0xd5, 0x69, 0x30, 0x22, 0x8f,
- 0x6a, 0x05, 0x06, 0xc9, 0x2f, 0x75, 0x06, 0x8c, 0x06, 0xa7, 0xb3, 0x02, 0x81, 0x82, 0xef, 0xb8,
- 0xe3, 0x93, 0xa1, 0x84, 0xc7, 0x27, 0xc3, 0xdd, 0x1d, 0x9f, 0x14, 0xfe, 0xa8, 0x80, 0x4c, 0x5d,
- 0xec, 0x0d, 0x47, 0x41, 0x4a, 0xdb, 0xa3, 0xa0, 0xc1, 0xc4, 0x47, 0x41, 0xfd, 0x6e, 0xcb, 0x3f,
- 0x07, 0xc1, 0x62, 0xe4, 0x0b, 0x9b, 0x1e, 0x1d, 0xaf, 0xdd, 0x03, 0xd9, 0xe0, 0xdd, 0x0f, 0x27,
- 0x98, 0x43, 0x7c, 0x84, 0x7e, 0xad, 0x93, 0xc7, 0x3e, 0x9c, 0x70, 0x66, 0x8c, 0xd0, 0x97, 0xfa,
- 0x11, 0x78, 0x23, 0x70, 0x2b, 0x9f, 0x17, 0x39, 0x84, 0x04, 0x2f, 0xcc, 0xfe, 0x3f, 0xc6, 0xbd,
- 0xef, 0x51, 0xf8, 0xdf, 0x21, 0xa4, 0xa2, 0x4d, 0x1a, 0x4d, 0x32, 0xda, 0x1d, 0x47, 0x4c, 0x90,
- 0xc6, 0xc2, 0xbf, 0x86, 0x62, 0xd2, 0xdd, 0xa3, 0x05, 0xb9, 0x4f, 0xe9, 0x76, 0xc0, 0x5c, 0x64,
- 0xba, 0x75, 0x68, 0x9a, 0x98, 0xcf, 0xf8, 0xce, 0x13, 0x7f, 0x3e, 0x22, 0xf1, 0xab, 0xbe, 0x3b,
- 0xb5, 0x02, 0x2e, 0x44, 0xd7, 0x28, 0xde, 0x1d, 0xf9, 0x4f, 0xf8, 0x3a, 0xa8, 0x6f, 0x26, 0xa2,
- 0x3e, 0x91, 0xf5, 0x5e, 0xf6, 0x77, 0x03, 0xdc, 0x7d, 0xaa, 0x80, 0x09, 0xbf, 0x3e, 0x6c, 0x33,
- 0x51, 0xaa, 0x5e, 0x01, 0x63, 0xd0, 0x10, 0x2f, 0x94, 0xa0, 0x69, 0xba, 0x88, 0x52, 0xd9, 0xcf,
- 0x39, 0x29, 0x5e, 0x15, 0x52, 0x75, 0x0d, 0x00, 0x1b, 0x3d, 0xd2, 0x1d, 0xcf, 0x96, 0x76, 0x72,
- 0xac, 0x99, 0xb2, 0xd1, 0x23, 0x5e, 0x23, 0x2d, 0xfc, 0x79, 0x10, 0x2c, 0xd5, 0x85, 0xba, 0x83,
- 0xf8, 0x66, 0x57, 0x14, 0xf7, 0x68, 0xdc, 0xbd, 0x0b, 0xa6, 0x1d, 0xe1, 0x96, 0x77, 0x53, 0x88,
- 0x1c, 0x0c, 0x71, 0x72, 0x30, 0xe5, 0xf8, 0x95, 0x92, 0x4a, 0x8d, 0x1d, 0x3c, 0x04, 0x53, 0x41,
- 0xdf, 0x62, 0x9b, 0x05, 0x7d, 0x2b, 0xc6, 0xd2, 0x52, 0x4c, 0xdf, 0x36, 0xe5, 0x53, 0x53, 0xdd,
- 0x46, 0x11, 0x5d, 0xf9, 0x4e, 0xf2, 0x2e, 0xbd, 0x16, 0xdd, 0xa5, 0x2d, 0xf2, 0x54, 0x78, 0xae,
- 0x80, 0xc9, 0x88, 0x57, 0x63, 0x5d, 0xe7, 0x6f, 0x0b, 0x8c, 0x52, 0xe3, 0x10, 0x99, 0xd5, 0x0a,
- 0x92, 0x53, 0x36, 0xc1, 0x5b, 0xb5, 0xb2, 0xb4, 0xd0, 0x02, 0xdb, 0x95, 0xeb, 0xc9, 0x5b, 0x7d,
- 0x3e, 0x68, 0x75, 0x44, 0x43, 0x0a, 0x3f, 0x1a, 0x04, 0x73, 0xfc, 0x0d, 0xd7, 0x3a, 0xb1, 0xac,
- 0xaa, 0x8d, 0xd9, 0x89, 0xd7, 0x75, 0x65, 0xaf, 0x1b, 0x7b, 0x00, 0x52, 0xa9, 0xc6, 0xb7, 0xc9,
- 0xef, 0xc9, 0x9f, 0x8a, 0x14, 0xeb, 0x7e, 0x15, 0x52, 0x8b, 0x3a, 0x2e, 0x06, 0xad, 0xe6, 0x69,
- 0xa5, 0x9c, 0xbc, 0xed, 0x4b, 0xf5, 0xef, 0xd4, 0xe2, 0xfd, 0x17, 0x7e, 0x3d, 0x08, 0x8a, 0xab,
- 0x8c, 0x58, 0xd8, 0x10, 0x9c, 0xe6, 0x8e, 0x6b, 0x72, 0xda, 0x7f, 0xab, 0x5a, 0x61, 0xd8, 0xa9,
- 0x60, 0xe4, 0xfa, 0xbd, 0x70, 0xea, 0xb4, 0x7c, 0x0f, 0x4c, 0xfb, 0x6f, 0x0b, 0x11, 0xd2, 0xad,
- 0xa0, 0x02, 0x3f, 0x47, 0x57, 0x5b, 0xbf, 0x27, 0x0c, 0xc7, 0xa4, 0x4d, 0x59, 0xcd, 0x42, 0xba,
- 0xb2, 0x97, 0x3c, 0x43, 0xef, 0x05, 0x19, 0xea, 0xac, 0xf5, 0x85, 0xff, 0x28, 0x20, 0x1f, 0xf7,
- 0xc8, 0xb0, 0xeb, 0xd4, 0xdc, 0x07, 0x93, 0xcd, 0x4f, 0x1e, 0xfd, 0xbc, 0x5c, 0x49, 0xf8, 0xd4,
- 0x51, 0x9b, 0x68, 0x7c, 0xe2, 0xd8, 0xe5, 0xf3, 0xad, 0xb8, 0xe6, 0x5d, 0x7d, 0x0c, 0x32, 0xe1,
- 0x1f, 0x0e, 0xa8, 0xcb, 0x60, 0x6a, 0xf3, 0xc1, 0xfa, 0x8d, 0xd5, 0xdb, 0xd7, 0x37, 0xf5, 0x7b,
- 0xb7, 0xcb, 0x3b, 0x9b, 0xeb, 0xdb, 0x5b, 0xdb, 0x9b, 0x1b, 0xe3, 0x03, 0x33, 0xf9, 0x27, 0x4f,
- 0xe7, 0x23, 0xcb, 0x54, 0x15, 0x0c, 0x97, 0x77, 0xee, 0xec, 0x8e, 0x2b, 0x33, 0xa3, 0x4f, 0x9e,
- 0xce, 0xf3, 0xbf, 0xbd, 0x04, 0x6d, 0x6c, 0x6a, 0xdb, 0x1f, 0xae, 0xee, 0x6e, 0x7f, 0xb8, 0x59,
- 0x1e, 0x1f, 0x9c, 0x19, 0x7b, 0xf2, 0x74, 0x3e, 0x2c, 0x5a, 0x3b, 0xfa, 0xea, 0xc5, 0xac, 0xf2,
- 0xec, 0xc5, 0xac, 0xf2, 0xb7, 0x17, 0xb3, 0xca, 0x67, 0x2f, 0x67, 0x07, 0x9e, 0xbd, 0x9c, 0x1d,
- 0xf8, 0xcb, 0xcb, 0xd9, 0x81, 0x87, 0x77, 0x0f, 0x30, 0x3b, 0xac, 0xee, 0x15, 0x0d, 0x62, 0x95,
- 0xb6, 0xfd, 0x3c, 0xdd, 0x84, 0x7b, 0xb4, 0x14, 0x64, 0xed, 0x1d, 0x83, 0xb8, 0x28, 0xfc, 0x79,
- 0x08, 0xb1, 0x5d, 0xb2, 0x88, 0xd7, 0xaf, 0xb4, 0xc6, 0xf0, 0x3d, 0x9e, 0x49, 0x4b, 0xc7, 0xcb,
- 0x7b, 0x23, 0xfc, 0xc7, 0x53, 0x5f, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x27, 0x33,
- 0x0c, 0x99, 0x36, 0x00, 0x00,
+ // 2760 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x24, 0x47,
+ 0x15, 0x77, 0xdb, 0x5e, 0xaf, 0xe7, 0xcd, 0xf8, 0xab, 0xed, 0x98, 0x89, 0xb3, 0xeb, 0x8f, 0xf1,
+ 0x66, 0xd7, 0x6c, 0x92, 0x19, 0xd6, 0x04, 0x12, 0x39, 0x42, 0xc8, 0x6b, 0x7b, 0x12, 0x8b, 0xfd,
+ 0x98, 0xed, 0xf1, 0x26, 0x51, 0x44, 0x68, 0xca, 0xdd, 0x65, 0xbb, 0xd8, 0xe9, 0xae, 0x4e, 0x57,
+ 0x8f, 0x13, 0xe7, 0x42, 0x84, 0x04, 0x42, 0x2b, 0x24, 0x02, 0x17, 0x84, 0x50, 0x50, 0xf8, 0x07,
+ 0x10, 0x07, 0x6e, 0x1c, 0x22, 0x4e, 0x04, 0x4e, 0x11, 0x27, 0xc4, 0x21, 0x42, 0xc9, 0x01, 0x0e,
+ 0x20, 0x71, 0xe5, 0x86, 0xba, 0xaa, 0xba, 0xa7, 0x67, 0xa6, 0x7b, 0xa6, 0x67, 0x3c, 0xc3, 0x1e,
+ 0xd8, 0xcb, 0xee, 0x74, 0xd5, 0x7b, 0xaf, 0x5e, 0xbd, 0x7a, 0xf5, 0xab, 0x5f, 0x7d, 0x18, 0xae,
+ 0x10, 0xfb, 0x3b, 0xd8, 0xf0, 0xc8, 0x29, 0x2e, 0xe1, 0x77, 0x8c, 0x13, 0x64, 0x1f, 0xe3, 0xd2,
+ 0xe9, 0x66, 0xc9, 0x71, 0xa9, 0x43, 0x19, 0xaa, 0x15, 0x1d, 0x97, 0x7a, 0x54, 0x7d, 0x22, 0x94,
+ 0x2a, 0x06, 0x52, 0xc5, 0xd3, 0xcd, 0xa5, 0x27, 0x0d, 0xca, 0x2c, 0xca, 0x74, 0x2e, 0x54, 0x12,
+ 0x1f, 0x42, 0x63, 0x69, 0xe1, 0x98, 0x1e, 0x53, 0x51, 0xee, 0xff, 0x92, 0xa5, 0x73, 0xc8, 0x22,
+ 0x36, 0x2d, 0xf1, 0x7f, 0x65, 0xd1, 0xb2, 0x50, 0x2b, 0x1d, 0x22, 0x86, 0x4b, 0xa7, 0x37, 0x0e,
+ 0xb1, 0x87, 0x6e, 0x94, 0x0c, 0x4a, 0x6c, 0x59, 0xff, 0x05, 0x59, 0x6f, 0xb1, 0xe3, 0xd2, 0xe9,
+ 0x0d, 0xff, 0x3f, 0x59, 0x51, 0x94, 0x15, 0x26, 0x61, 0x9e, 0x4b, 0x0e, 0xeb, 0x1e, 0xa1, 0x76,
+ 0x68, 0x20, 0x5a, 0x28, 0xe5, 0x13, 0x7a, 0x1a, 0xf6, 0x47, 0x48, 0x15, 0xe2, 0xa5, 0x2c, 0xe4,
+ 0x3e, 0xc0, 0x9e, 0x94, 0x79, 0xba, 0x21, 0x43, 0x5d, 0x64, 0xd4, 0x1a, 0x7e, 0x8b, 0x4f, 0x21,
+ 0x56, 0xf8, 0xe5, 0x24, 0x5c, 0xae, 0x3a, 0xd4, 0xbb, 0xcd, 0x75, 0x2b, 0xc8, 0x45, 0xd6, 0x7d,
+ 0xc7, 0x44, 0x1e, 0xae, 0xc8, 0xe0, 0xaa, 0x0b, 0x70, 0xc1, 0x23, 0x5e, 0x0d, 0xe7, 0x95, 0x55,
+ 0x65, 0x23, 0xa3, 0x89, 0x0f, 0x75, 0x15, 0xb2, 0x26, 0x66, 0x86, 0x4b, 0x1c, 0xdf, 0xfb, 0xfc,
+ 0x28, 0xaf, 0x8b, 0x16, 0xa9, 0x4f, 0x41, 0x46, 0x38, 0xa4, 0x13, 0x33, 0x3f, 0xc6, 0xeb, 0x27,
+ 0x45, 0xc1, 0xbe, 0xa9, 0xee, 0xc3, 0xb4, 0x85, 0x1e, 0x60, 0x57, 0x3f, 0xc2, 0x58, 0x77, 0x91,
+ 0x87, 0xf3, 0xe3, 0xbe, 0xc4, 0xcd, 0xf5, 0x8f, 0x3f, 0x5d, 0x51, 0xfe, 0xfa, 0xe9, 0xca, 0x53,
+ 0x22, 0x6e, 0xcc, 0x7c, 0x50, 0x24, 0xb4, 0x64, 0x21, 0xef, 0xa4, 0x78, 0x0b, 0x1f, 0x23, 0xe3,
+ 0x6c, 0x17, 0x1b, 0x5a, 0x8e, 0xab, 0x96, 0x31, 0xd6, 0x90, 0x87, 0x7d, 0x53, 0x5e, 0xb3, 0xa9,
+ 0x0b, 0x3d, 0x98, 0xf2, 0xa2, 0xa6, 0x5e, 0x87, 0x45, 0x17, 0xd7, 0xd0, 0x99, 0x34, 0xc6, 0x4e,
+ 0x90, 0x2b, 0x4d, 0x4e, 0xa4, 0x37, 0x39, 0x2f, 0x4d, 0x94, 0x31, 0xae, 0xfa, 0x06, 0xb8, 0x65,
+ 0x0d, 0xe6, 0x2d, 0x62, 0xeb, 0x8e, 0x4b, 0x0c, 0xac, 0x7b, 0xc4, 0x78, 0xa0, 0x33, 0xf2, 0x2e,
+ 0xce, 0x5f, 0x4c, 0x6f, 0x76, 0xd6, 0x22, 0x76, 0xc5, 0x57, 0x3f, 0x20, 0xc6, 0x83, 0x2a, 0x79,
+ 0x97, 0x7b, 0xeb, 0xdb, 0x7c, 0xab, 0x8e, 0x6c, 0x8f, 0x78, 0x67, 0x11, 0xb3, 0x93, 0x3d, 0x78,
+ 0x6b, 0x11, 0xfb, 0x9e, 0xb4, 0x10, 0x5a, 0x7e, 0x09, 0x26, 0x98, 0x87, 0xbc, 0x3a, 0xcb, 0x67,
+ 0x56, 0x95, 0x8d, 0xe9, 0xcd, 0xf5, 0x62, 0xec, 0xd4, 0x2a, 0x8a, 0xa4, 0xa9, 0x72, 0x51, 0x4d,
+ 0xaa, 0xa8, 0x97, 0x60, 0xc2, 0xf7, 0x04, 0xbb, 0x79, 0xe0, 0x6e, 0x8c, 0xfb, 0x6e, 0x68, 0xb2,
+ 0x4c, 0x2d, 0x43, 0xce, 0x77, 0xda, 0xa6, 0x7e, 0x8e, 0xa0, 0x5a, 0x3e, 0x9b, 0xde, 0xd5, 0xac,
+ 0x45, 0xec, 0x3b, 0x52, 0x4f, 0xfd, 0x3a, 0x00, 0x32, 0x7d, 0x4b, 0xc4, 0x3e, 0xa2, 0xf9, 0xdc,
+ 0xaa, 0xb2, 0x91, 0xdd, 0x5c, 0x4d, 0x70, 0x73, 0xdb, 0x17, 0xdc, 0xb7, 0x8f, 0xa8, 0x96, 0x41,
+ 0xc1, 0x4f, 0x75, 0x1d, 0xa6, 0xfc, 0xd9, 0xac, 0x9b, 0xd8, 0x20, 0x16, 0xaa, 0xb1, 0xfc, 0xd4,
+ 0xaa, 0xb2, 0x31, 0xa5, 0xe5, 0xfc, 0xc2, 0x5d, 0x59, 0xa6, 0x3e, 0x0d, 0xd3, 0x6f, 0xd5, 0xa9,
+ 0x17, 0x91, 0x9a, 0xe6, 0x52, 0x53, 0xbc, 0x34, 0x14, 0xfb, 0x81, 0x02, 0x6b, 0x27, 0x88, 0xe9,
+ 0x26, 0x61, 0xe8, 0xb0, 0x86, 0x4d, 0xdd, 0x22, 0xb6, 0x5f, 0x23, 0x30, 0xc7, 0xa0, 0x35, 0x3f,
+ 0x9d, 0xf2, 0x33, 0x3c, 0x96, 0x5f, 0x4d, 0x70, 0x72, 0x57, 0xe8, 0xde, 0x16, 0x9a, 0x15, 0xa9,
+ 0x58, 0xc6, 0x58, 0x4c, 0x47, 0x19, 0xc6, 0xcb, 0x27, 0x88, 0x49, 0x49, 0xb3, 0x5d, 0x74, 0xeb,
+ 0xde, 0x0f, 0x3f, 0x5c, 0x19, 0xf9, 0xc7, 0x87, 0x2b, 0x23, 0x7f, 0xfa, 0xed, 0x73, 0x4b, 0x12,
+ 0xea, 0x8e, 0xe9, 0x69, 0x51, 0x4e, 0xfd, 0xe2, 0x0e, 0xb5, 0x3d, 0x6c, 0x7b, 0x0f, 0xff, 0xfe,
+ 0x9b, 0xeb, 0x57, 0x43, 0xe4, 0xe8, 0x38, 0xfd, 0x0b, 0x7f, 0x50, 0x60, 0x71, 0x4f, 0x8a, 0xee,
+ 0xd9, 0x7e, 0xc3, 0xe7, 0x46, 0x86, 0x97, 0x21, 0x17, 0x34, 0x7e, 0x70, 0xe6, 0x60, 0x0e, 0x0e,
+ 0xc9, 0x49, 0xb6, 0x17, 0x11, 0xd5, 0x9a, 0x14, 0xb7, 0x9e, 0x0d, 0xba, 0xeb, 0x77, 0x68, 0x25,
+ 0xec, 0x50, 0xbc, 0xbb, 0x85, 0x9f, 0x4d, 0xc3, 0xda, 0x4d, 0xe4, 0x19, 0x27, 0x41, 0xfd, 0x6d,
+ 0x6a, 0x92, 0x23, 0x62, 0x20, 0xdf, 0xa9, 0x73, 0x77, 0xea, 0x3d, 0x05, 0x0a, 0xcc, 0xa1, 0x9e,
+ 0x2e, 0x41, 0xcf, 0xf1, 0x63, 0xa9, 0xd7, 0x79, 0x30, 0xf5, 0x60, 0xa5, 0x62, 0xf9, 0xb1, 0xd5,
+ 0xb1, 0x8d, 0xec, 0xe6, 0xf3, 0x09, 0x7d, 0xed, 0x38, 0x14, 0xda, 0x32, 0xeb, 0x54, 0xcd, 0xd4,
+ 0x9f, 0x2a, 0xb0, 0x61, 0x62, 0x97, 0x9c, 0x22, 0xdf, 0x70, 0x17, 0x47, 0xc6, 0xb9, 0x23, 0x5b,
+ 0x49, 0xd9, 0x18, 0x9a, 0x49, 0x76, 0xe7, 0x8a, 0xd9, 0x5d, 0x88, 0xa9, 0x0e, 0x5c, 0x8a, 0x86,
+ 0xa5, 0x86, 0xea, 0xb6, 0x71, 0x12, 0xf1, 0xe3, 0x02, 0xf7, 0xa3, 0xd4, 0x35, 0x20, 0xb7, 0xb8,
+ 0x62, 0xd8, 0xf8, 0x93, 0x2c, 0xa1, 0x86, 0xa9, 0xdf, 0x85, 0x35, 0x07, 0xbb, 0x0e, 0xf6, 0xea,
+ 0xa8, 0x96, 0xd8, 0xec, 0x44, 0xc7, 0x71, 0xa8, 0x04, 0xfa, 0xb1, 0x6d, 0x2f, 0x3b, 0x9d, 0xaa,
+ 0x99, 0xfa, 0x23, 0x05, 0xae, 0xe2, 0x77, 0x1c, 0xe2, 0x9e, 0xe9, 0x47, 0x75, 0xaf, 0xee, 0x62,
+ 0x96, 0xe8, 0xc6, 0x45, 0xee, 0xc6, 0x8b, 0x89, 0xa9, 0xef, 0x1b, 0x29, 0x0b, 0x1b, 0xb1, 0xae,
+ 0x14, 0x70, 0x37, 0x11, 0xa6, 0xbe, 0xaf, 0xc0, 0x35, 0xcf, 0x45, 0x26, 0xb1, 0x8f, 0x75, 0x17,
+ 0xbf, 0x8d, 0x5c, 0x53, 0x37, 0x90, 0xe5, 0x20, 0x72, 0x6c, 0xb7, 0xa6, 0x05, 0x5f, 0x39, 0x92,
+ 0xb3, 0xe2, 0x40, 0x58, 0xd1, 0xb8, 0x91, 0x1d, 0x69, 0xa3, 0x25, 0x2b, 0xd6, 0xbd, 0xee, 0x42,
+ 0x3c, 0x42, 0x87, 0xc4, 0x46, 0xee, 0x99, 0x4e, 0xf9, 0xf4, 0x49, 0x8e, 0x50, 0xa6, 0x63, 0x84,
+ 0x6e, 0x72, 0x23, 0x77, 0x85, 0x8d, 0xf8, 0x08, 0x1d, 0x76, 0x13, 0x61, 0xea, 0x8f, 0x15, 0x78,
+ 0xba, 0xc5, 0x9d, 0x84, 0x59, 0x03, 0xdc, 0x9b, 0xaf, 0xa5, 0xf7, 0x26, 0x6e, 0xe2, 0xac, 0x35,
+ 0xb9, 0x14, 0x3b, 0x6b, 0x3e, 0x52, 0xe0, 0x45, 0x54, 0x37, 0x7c, 0x01, 0x3d, 0x68, 0x41, 0xf7,
+ 0x5c, 0x64, 0xb3, 0x23, 0xec, 0xea, 0x26, 0xb6, 0xa9, 0x15, 0xae, 0x49, 0x6d, 0x83, 0x98, 0xe5,
+ 0x83, 0xb8, 0x9f, 0xe0, 0xa4, 0x68, 0x6a, 0x5b, 0x18, 0x0f, 0xc1, 0x55, 0x9a, 0xde, 0xf5, 0x2d,
+ 0x07, 0xeb, 0x5a, 0xe8, 0xf0, 0x26, 0x4a, 0x21, 0xdd, 0x32, 0xc4, 0xdf, 0x82, 0x27, 0x7c, 0x0e,
+ 0x65, 0x12, 0x66, 0xd0, 0xba, 0xed, 0x35, 0xbc, 0x13, 0x6b, 0xf5, 0xf5, 0x04, 0xef, 0xca, 0x18,
+ 0xef, 0x4a, 0x95, 0xb0, 0xf9, 0xf9, 0xa3, 0xf6, 0x42, 0xf5, 0x7b, 0x0a, 0x14, 0x64, 0xce, 0x1c,
+ 0x51, 0xd7, 0xc0, 0xa6, 0xce, 0xb0, 0xe7, 0xd5, 0xb0, 0x85, 0x23, 0x8d, 0xf9, 0xab, 0xba, 0x3f,
+ 0x60, 0x5f, 0xe9, 0x48, 0x60, 0xca, 0x5c, 0xbf, 0x1a, 0xaa, 0x87, 0x0d, 0xaf, 0x58, 0x1d, 0xeb,
+ 0x99, 0x6a, 0xc3, 0x53, 0x62, 0x2c, 0xa2, 0x9c, 0xa6, 0xd1, 0xd5, 0x69, 0xde, 0xd5, 0x52, 0x22,
+ 0xc6, 0xda, 0xd4, 0xba, 0xdd, 0xe0, 0x34, 0x61, 0xb3, 0x79, 0x33, 0xa1, 0x66, 0xeb, 0x7e, 0xfa,
+ 0xf5, 0xfd, 0x7a, 0xb8, 0x1c, 0x76, 0x5d, 0xf3, 0x0a, 0x3f, 0x99, 0x80, 0x7c, 0x12, 0xd2, 0xf6,
+ 0xbd, 0x20, 0x2e, 0x86, 0x3c, 0x50, 0x90, 0xff, 0x80, 0x01, 0x5e, 0x06, 0x90, 0xc4, 0xcb, 0xa6,
+ 0x96, 0xa0, 0xfd, 0x5a, 0x46, 0xb0, 0x2e, 0x9b, 0x5a, 0xea, 0x0a, 0x64, 0x03, 0xca, 0xe5, 0xd7,
+ 0x73, 0x2e, 0xaf, 0x81, 0xe4, 0x5b, 0xbe, 0x40, 0x02, 0x95, 0x6e, 0x30, 0xf4, 0x91, 0x41, 0x52,
+ 0xe9, 0x8b, 0xe9, 0xcd, 0xc6, 0x52, 0xe9, 0xf6, 0x8d, 0xce, 0xe4, 0xe0, 0x36, 0x3a, 0x99, 0x7e,
+ 0x37, 0x3a, 0xad, 0x2c, 0x1c, 0xd2, 0xf7, 0xb2, 0x03, 0x0b, 0xcf, 0x0e, 0x80, 0x85, 0x4f, 0xa7,
+ 0x62, 0xe1, 0x33, 0x31, 0x2c, 0x7c, 0xeb, 0x56, 0xfa, 0xc9, 0xb1, 0x16, 0x43, 0x7e, 0x9b, 0xd3,
+ 0xbe, 0xf0, 0x49, 0x06, 0x2e, 0x77, 0xa4, 0x01, 0x03, 0x9f, 0x18, 0x2d, 0x99, 0x3f, 0xde, 0x96,
+ 0xf9, 0x2b, 0x90, 0x15, 0x7b, 0x77, 0xdd, 0x0f, 0x4f, 0x30, 0x35, 0x44, 0xd1, 0x4d, 0xc4, 0xb0,
+ 0xba, 0x06, 0x39, 0x29, 0xc0, 0xb5, 0xc4, 0x9c, 0xd0, 0xa4, 0xd2, 0x3d, 0xbf, 0x48, 0x2d, 0xc2,
+ 0xbc, 0x14, 0x61, 0x06, 0xaa, 0x61, 0xfd, 0x08, 0x19, 0x1e, 0x75, 0x79, 0x9a, 0x4f, 0x69, 0x73,
+ 0xa2, 0xaa, 0xea, 0xd7, 0x94, 0x79, 0x85, 0xba, 0x17, 0xb6, 0xe9, 0xf9, 0x54, 0x7d, 0x92, 0x53,
+ 0xf5, 0x2b, 0x91, 0x21, 0x96, 0xa7, 0x09, 0x41, 0x90, 0xef, 0xf2, 0x4f, 0xce, 0xd5, 0xa5, 0x67,
+ 0xfe, 0x6f, 0xf5, 0x3e, 0x2c, 0x10, 0x9b, 0x78, 0x44, 0x30, 0xb2, 0x63, 0x62, 0xfb, 0x09, 0x4c,
+ 0x68, 0x24, 0x83, 0xbb, 0x26, 0x9e, 0x2a, 0x0d, 0xdc, 0xe6, 0xfa, 0x9a, 0xaf, 0xae, 0xbe, 0x09,
+ 0x79, 0x0b, 0x11, 0x7f, 0x58, 0x91, 0x6d, 0xe0, 0x66, 0xd3, 0x3d, 0xe4, 0xf4, 0x62, 0xc4, 0x48,
+ 0xd4, 0x7c, 0xfb, 0xe4, 0xcd, 0xa6, 0x37, 0xda, 0x6d, 0xf2, 0xe6, 0x7a, 0x30, 0xd5, 0x34, 0x79,
+ 0x13, 0x00, 0x70, 0x6a, 0x38, 0x00, 0x38, 0x7d, 0x4e, 0x00, 0x6c, 0x85, 0x9a, 0x99, 0x81, 0x40,
+ 0xcd, 0x6c, 0xef, 0x50, 0x53, 0x85, 0x79, 0x17, 0x9b, 0xf5, 0xd6, 0x34, 0x99, 0x4b, 0xef, 0xcf,
+ 0x9c, 0xd0, 0x8f, 0x66, 0xc8, 0xeb, 0x30, 0x47, 0x1d, 0x1c, 0x59, 0xfb, 0x0d, 0xe4, 0xe4, 0x55,
+ 0xee, 0xdc, 0xd5, 0x04, 0xe7, 0xee, 0x3a, 0x38, 0xec, 0xd5, 0x0e, 0x72, 0xf8, 0xc6, 0x7e, 0x44,
+ 0x9b, 0xa1, 0xcd, 0xc5, 0xfd, 0x6d, 0xe5, 0x3b, 0x02, 0x56, 0xe1, 0xa3, 0x49, 0x58, 0xeb, 0x4a,
+ 0x98, 0x07, 0x0e, 0x6b, 0xeb, 0x30, 0x15, 0x20, 0xce, 0x99, 0x75, 0x48, 0x6b, 0x12, 0xd8, 0x24,
+ 0x52, 0x55, 0x79, 0x99, 0x7a, 0x0d, 0x66, 0xa4, 0x90, 0xe3, 0xd2, 0x53, 0x62, 0x62, 0x57, 0xc2,
+ 0xdb, 0xb4, 0x28, 0xae, 0xc8, 0xd2, 0x56, 0x3c, 0x9a, 0xe8, 0x13, 0x8f, 0x7a, 0x85, 0xc1, 0x1b,
+ 0xb0, 0xc0, 0x77, 0x5a, 0x9c, 0x37, 0xe9, 0x1e, 0xb1, 0x30, 0xf3, 0x90, 0xe5, 0x70, 0x3c, 0x1c,
+ 0xd3, 0xe6, 0x1b, 0x75, 0x07, 0x41, 0x95, 0xaf, 0x12, 0x61, 0xa4, 0x0d, 0x95, 0x8c, 0x50, 0x69,
+ 0xd4, 0x35, 0x54, 0x16, 0xe0, 0x02, 0xcf, 0x57, 0x81, 0x5d, 0x9a, 0xf8, 0x68, 0x5d, 0x17, 0xb2,
+ 0x6d, 0xeb, 0x42, 0x3b, 0x4c, 0xe5, 0x06, 0x07, 0x53, 0x53, 0x03, 0x86, 0xa9, 0xe9, 0xe1, 0xc0,
+ 0xd4, 0xcc, 0x80, 0x61, 0x6a, 0xb6, 0x4f, 0x98, 0x7a, 0x06, 0xe6, 0x04, 0x4c, 0x39, 0xd8, 0xb5,
+ 0x08, 0x63, 0xfe, 0x34, 0xe3, 0x18, 0x33, 0xa5, 0xcd, 0xf2, 0x8a, 0x4a, 0xa3, 0x7c, 0x88, 0xe8,
+ 0xd1, 0xdf, 0x46, 0xa1, 0x1b, 0x36, 0x14, 0xfe, 0x9d, 0x81, 0xb5, 0xae, 0x87, 0x12, 0x8f, 0x89,
+ 0x51, 0x0f, 0x40, 0xb4, 0x08, 0x13, 0xe2, 0x08, 0x47, 0xe2, 0x82, 0xfc, 0x4a, 0x24, 0x4c, 0x30,
+ 0x3c, 0xc2, 0x94, 0x1d, 0x06, 0x61, 0x7a, 0x8c, 0x44, 0x8f, 0x0a, 0x89, 0x9a, 0x09, 0xd3, 0xdc,
+ 0xc0, 0x08, 0x93, 0x3a, 0x78, 0xc2, 0x34, 0xff, 0xc8, 0x20, 0xaf, 0x2b, 0x98, 0x15, 0x7e, 0x97,
+ 0x83, 0xf5, 0x14, 0xa7, 0xe1, 0xc3, 0xb9, 0x26, 0x4d, 0x42, 0x81, 0x1e, 0x2e, 0x4b, 0x7b, 0x45,
+ 0x81, 0x1e, 0x2e, 0x4f, 0xd3, 0xa3, 0xc0, 0xc4, 0xe0, 0xce, 0x3c, 0x2e, 0x0e, 0xfe, 0x72, 0x77,
+ 0x72, 0x38, 0x97, 0xbb, 0x99, 0xe1, 0x5c, 0xee, 0xc2, 0x39, 0x2f, 0x77, 0xab, 0xa0, 0xbe, 0x42,
+ 0xeb, 0x6e, 0xed, 0x6c, 0xdf, 0xf6, 0xb0, 0x8b, 0x99, 0xa7, 0x35, 0x6f, 0x6c, 0xbb, 0x67, 0x54,
+ 0xbb, 0xba, 0xfa, 0x1a, 0x2c, 0x88, 0xd2, 0x72, 0xdd, 0xe6, 0xa7, 0xff, 0xc8, 0xc3, 0x3b, 0xc8,
+ 0x89, 0xc0, 0x7f, 0x57, 0xb3, 0xb1, 0x06, 0x22, 0x57, 0xd1, 0x53, 0xbd, 0x5f, 0x45, 0xbf, 0x12,
+ 0x6e, 0x3d, 0xf8, 0x71, 0x3e, 0x93, 0x07, 0xb2, 0x49, 0x36, 0xc4, 0x12, 0xcd, 0x27, 0x37, 0x0b,
+ 0xf6, 0x27, 0xe2, 0x2b, 0x72, 0xa9, 0x3d, 0x93, 0xe2, 0x52, 0x7b, 0x76, 0x20, 0x97, 0xda, 0xc3,
+ 0x80, 0x6c, 0xe5, 0xd1, 0x41, 0xb6, 0xd2, 0x06, 0xd9, 0x29, 0xef, 0xcd, 0x17, 0x86, 0x7f, 0x6f,
+ 0xfe, 0x5a, 0xfa, 0xb5, 0xe3, 0xd9, 0x70, 0xed, 0x48, 0xb1, 0x2a, 0x14, 0xee, 0x40, 0x26, 0x1c,
+ 0xa8, 0xc6, 0xf6, 0x4e, 0x89, 0x6e, 0xef, 0x62, 0x77, 0x0c, 0xa3, 0xf1, 0x3b, 0x86, 0xc2, 0xcf,
+ 0x47, 0x61, 0xb9, 0xf3, 0xa5, 0xc5, 0x70, 0x16, 0xa2, 0x3b, 0x30, 0xdb, 0x74, 0xbd, 0x42, 0x8c,
+ 0x9e, 0x5e, 0xec, 0xcc, 0xb0, 0x88, 0x9f, 0xc4, 0xc0, 0x5b, 0x5a, 0xfa, 0x80, 0x5f, 0x0b, 0x03,
+ 0xde, 0xb9, 0xe3, 0x85, 0x5f, 0x8d, 0xc2, 0x66, 0xef, 0x97, 0x5b, 0x7d, 0xc7, 0xeb, 0x1b, 0x30,
+ 0xdd, 0x7c, 0x0f, 0x27, 0xef, 0xf6, 0xaf, 0x74, 0xba, 0xee, 0x09, 0x5a, 0xd7, 0xa6, 0xcc, 0xe8,
+ 0xe7, 0xd6, 0x51, 0xfa, 0x78, 0xbc, 0x14, 0xc6, 0xa3, 0xf7, 0xce, 0x16, 0x7e, 0x01, 0x70, 0x35,
+ 0xdd, 0x2d, 0xe5, 0xe3, 0x77, 0x5f, 0xff, 0x7f, 0xef, 0xbe, 0x92, 0x4e, 0xb9, 0x32, 0xbd, 0x9f,
+ 0x72, 0x41, 0xf2, 0x29, 0x57, 0x1c, 0x96, 0x64, 0xfb, 0xc7, 0x92, 0x06, 0xac, 0xe6, 0xa2, 0xb0,
+ 0x7a, 0x2e, 0xe2, 0x50, 0x89, 0x27, 0x0e, 0xcf, 0x24, 0x3d, 0x17, 0x91, 0xa7, 0x93, 0x8f, 0x9c,
+ 0x40, 0xc4, 0x2e, 0xd5, 0x73, 0xff, 0xbb, 0xa5, 0x5a, 0x1d, 0xfe, 0x52, 0xfd, 0x46, 0x7a, 0xa4,
+ 0x2c, 0x75, 0x3a, 0xd9, 0x8a, 0x5b, 0xad, 0x7f, 0xaf, 0xc0, 0x42, 0xdc, 0x58, 0xaa, 0x8b, 0x30,
+ 0x21, 0x0f, 0xaf, 0x05, 0x18, 0xca, 0x2f, 0x75, 0x09, 0x26, 0xc3, 0xf3, 0x6a, 0x01, 0x85, 0xe1,
+ 0x77, 0xd2, 0x81, 0xd2, 0x58, 0xca, 0x03, 0xa5, 0xf1, 0xfe, 0x0e, 0x94, 0x0a, 0x7f, 0x54, 0x20,
+ 0xd7, 0xe4, 0x7b, 0xcb, 0xe1, 0x98, 0xd2, 0xf5, 0x70, 0x6c, 0x34, 0xf5, 0xe1, 0xd8, 0xb0, 0xfb,
+ 0xf2, 0xcf, 0x51, 0x58, 0x8f, 0x7d, 0x73, 0x34, 0xa0, 0x03, 0xc7, 0xfb, 0x30, 0x15, 0xbe, 0x84,
+ 0xe2, 0x94, 0x7b, 0x8c, 0x4f, 0x95, 0x2f, 0xf5, 0xf2, 0xfc, 0x89, 0x53, 0xf0, 0x9c, 0x11, 0xf9,
+ 0x52, 0xdf, 0x84, 0x27, 0x42, 0xb3, 0xf2, 0xc1, 0x95, 0x43, 0x69, 0xf8, 0xe6, 0xee, 0x8b, 0x09,
+ 0xe6, 0x03, 0x8b, 0xc2, 0x7e, 0x85, 0xd2, 0x9a, 0x36, 0x6f, 0xb4, 0x95, 0xb1, 0xfe, 0xc8, 0x6a,
+ 0x8a, 0x30, 0x16, 0xfe, 0x35, 0x96, 0x10, 0xee, 0x01, 0x31, 0x83, 0x21, 0x85, 0xdb, 0x81, 0x95,
+ 0xd8, 0x70, 0xeb, 0xc8, 0x34, 0x09, 0x9f, 0xf1, 0xbd, 0x07, 0xfe, 0x52, 0x4c, 0xe0, 0xb7, 0x03,
+ 0x73, 0x6a, 0x0d, 0x2e, 0xc7, 0xb7, 0x28, 0x5e, 0x62, 0x05, 0x8f, 0x1a, 0x7b, 0x68, 0x6f, 0x29,
+ 0xa6, 0x3d, 0x11, 0xf5, 0x41, 0x8e, 0x77, 0x0b, 0xdc, 0xbd, 0xa7, 0xc0, 0x5c, 0xd0, 0x1e, 0xb1,
+ 0x3d, 0x51, 0xab, 0x5e, 0x83, 0x19, 0x64, 0x88, 0x37, 0x5b, 0xc8, 0x34, 0x5d, 0xcc, 0x98, 0x1c,
+ 0xe7, 0x69, 0x59, 0xbc, 0x2d, 0x4a, 0xd5, 0x9b, 0x00, 0x36, 0x7e, 0x5b, 0x77, 0x7c, 0x5d, 0xd6,
+ 0xcb, 0x41, 0x6f, 0xc6, 0xc6, 0x6f, 0xf3, 0x16, 0x59, 0xe1, 0xcf, 0xa3, 0xb0, 0xd1, 0xe4, 0x6a,
+ 0x05, 0xf3, 0xed, 0xbf, 0xa8, 0x1e, 0x50, 0xde, 0x3d, 0x0f, 0x8b, 0x8e, 0x30, 0xcb, 0x87, 0x29,
+ 0xc2, 0x52, 0xc6, 0x38, 0x4b, 0x59, 0x70, 0x82, 0x46, 0x69, 0xad, 0x41, 0x53, 0xde, 0x80, 0x85,
+ 0x70, 0x6c, 0x89, 0xed, 0x85, 0x63, 0x2b, 0x72, 0x69, 0x23, 0x61, 0x6c, 0xdb, 0xe2, 0xa9, 0xa9,
+ 0x6e, 0x6b, 0x11, 0xdb, 0xfa, 0x66, 0xfa, 0x21, 0xbd, 0x11, 0x3f, 0xa4, 0x1d, 0xe2, 0x54, 0xf8,
+ 0x54, 0x81, 0xf9, 0x98, 0x77, 0x74, 0x7d, 0xc7, 0xaf, 0x0c, 0x93, 0xcc, 0x38, 0xc1, 0x66, 0xbd,
+ 0x86, 0xe5, 0x94, 0x4d, 0xf1, 0x7a, 0xaf, 0x2a, 0x35, 0xb4, 0x50, 0x77, 0xeb, 0xe5, 0xf4, 0xbd,
+ 0xbe, 0x14, 0xf6, 0x3a, 0xa6, 0x23, 0x85, 0xef, 0x8f, 0xc2, 0x0a, 0x7f, 0xd5, 0xb6, 0x43, 0x2d,
+ 0xab, 0x6e, 0x13, 0xef, 0xcc, 0x1f, 0xba, 0xaa, 0x3f, 0x8c, 0x03, 0x00, 0xa9, 0x4c, 0xeb, 0x6b,
+ 0xed, 0x17, 0xe4, 0x5f, 0xf1, 0x14, 0x9b, 0xfe, 0x60, 0xa7, 0xe1, 0x75, 0x92, 0x0f, 0x5a, 0xc3,
+ 0xd2, 0x56, 0x35, 0x7d, 0xdf, 0x37, 0x9a, 0x5f, 0xee, 0x25, 0xdb, 0x2f, 0xfc, 0x7a, 0x14, 0x8a,
+ 0xdb, 0x1e, 0xb5, 0x88, 0x21, 0x38, 0xcd, 0x5d, 0xd7, 0xe4, 0xfb, 0x8f, 0xdb, 0xf5, 0x9a, 0x47,
+ 0x9c, 0x1a, 0xc1, 0x6e, 0x30, 0x0a, 0xe7, 0x0e, 0xcb, 0xb7, 0x61, 0x31, 0x78, 0x6d, 0x89, 0xb1,
+ 0x6e, 0x85, 0x0d, 0x04, 0x31, 0xba, 0xde, 0xf9, 0x85, 0x65, 0xd4, 0x27, 0x6d, 0xc1, 0x6a, 0x2f,
+ 0x64, 0x5b, 0x87, 0xe9, 0x23, 0xf4, 0x42, 0x18, 0xa1, 0xde, 0x7a, 0x5f, 0xf8, 0x8f, 0x02, 0xf9,
+ 0xa4, 0x67, 0x97, 0x7d, 0x87, 0xe6, 0x35, 0x98, 0x6f, 0x7f, 0x04, 0x1a, 0xc4, 0xe5, 0x5a, 0xca,
+ 0xc7, 0x9f, 0xda, 0x5c, 0xeb, 0xa3, 0xcf, 0x3e, 0x1f, 0xb4, 0x25, 0x75, 0xef, 0xfa, 0x2e, 0xac,
+ 0x74, 0x21, 0xe0, 0x6a, 0x0e, 0x26, 0xef, 0x50, 0xf1, 0x7b, 0x76, 0x44, 0xcd, 0xc0, 0x85, 0x32,
+ 0xaa, 0x31, 0x3c, 0xab, 0xa8, 0x93, 0x30, 0x7e, 0xe0, 0xd6, 0xf1, 0xec, 0xe8, 0xf5, 0x77, 0x20,
+ 0x17, 0xfd, 0x83, 0x0c, 0x75, 0x13, 0x16, 0xf6, 0x5e, 0xdf, 0x79, 0x65, 0xfb, 0xce, 0xcb, 0x7b,
+ 0xfa, 0xfd, 0x3b, 0xd5, 0xca, 0xde, 0xce, 0x7e, 0x79, 0x7f, 0x6f, 0x77, 0x76, 0x64, 0x29, 0xff,
+ 0xf0, 0x83, 0xd5, 0xd8, 0x3a, 0x55, 0x85, 0xf1, 0x6a, 0xe5, 0xee, 0xc1, 0xac, 0xb2, 0x34, 0xf9,
+ 0xf0, 0x83, 0x55, 0xfe, 0xdb, 0x0f, 0xf3, 0xee, 0x9e, 0xb6, 0xff, 0xea, 0xf6, 0xc1, 0xfe, 0xab,
+ 0x7b, 0xd5, 0xd9, 0xd1, 0xa5, 0x99, 0x87, 0x1f, 0xac, 0x46, 0x8b, 0x6e, 0x3e, 0xf8, 0xf8, 0xb3,
+ 0x65, 0xe5, 0x93, 0xcf, 0x96, 0x95, 0xbf, 0x7d, 0xb6, 0xac, 0xbc, 0xff, 0xf9, 0xf2, 0xc8, 0x27,
+ 0x9f, 0x2f, 0x8f, 0xfc, 0xe5, 0xf3, 0xe5, 0x91, 0x37, 0xee, 0x1d, 0x13, 0xef, 0xa4, 0x7e, 0x58,
+ 0x34, 0xa8, 0x55, 0xda, 0x0f, 0xa2, 0x7d, 0x0b, 0x1d, 0xb2, 0x52, 0x18, 0xfb, 0xe7, 0x0c, 0xea,
+ 0xe2, 0xe8, 0xe7, 0x09, 0x22, 0x76, 0xc9, 0xa2, 0x7e, 0x76, 0xb0, 0xc6, 0x3e, 0xc1, 0x67, 0xab,
+ 0xac, 0x74, 0xba, 0x79, 0x38, 0xc1, 0xb7, 0x35, 0x5f, 0xfe, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x3d, 0x17, 0x36, 0x79, 0x7a, 0x38, 0x00, 0x00,
}
func (m *SpotMarketParamUpdateProposal) Marshal() (dAtA []byte, err error) {
@@ -1480,6 +1524,11 @@ func (m *SpotMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byte) (int,
_ = i
var l int
_ = l
+ if m.HasDisabledMinimalProtocolFee != 0 {
+ i = encodeVarintProposal(dAtA, i, uint64(m.HasDisabledMinimalProtocolFee))
+ i--
+ dAtA[i] = 0x78
+ }
if m.QuoteDecimals != 0 {
i = encodeVarintProposal(dAtA, i, uint64(m.QuoteDecimals))
i--
@@ -2539,6 +2588,13 @@ func (m *DerivativeMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byte)
_ = i
var l int
_ = l
+ if m.HasDisabledMinimalProtocolFee != 0 {
+ i = encodeVarintProposal(dAtA, i, uint64(m.HasDisabledMinimalProtocolFee))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0xa0
+ }
if m.OpenNotionalCap != nil {
{
size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i])
@@ -2913,6 +2969,13 @@ func (m *BinaryOptionsMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byt
_ = i
var l int
_ = l
+ if m.HasDisabledMinimalProtocolFee != 0 {
+ i = encodeVarintProposal(dAtA, i, uint64(m.HasDisabledMinimalProtocolFee))
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x90
+ }
if m.OpenNotionalCap != nil {
{
size, err := m.OpenNotionalCap.MarshalToSizedBuffer(dAtA[:i])
@@ -3680,6 +3743,9 @@ func (m *SpotMarketParamUpdateProposal) Size() (n int) {
if m.QuoteDecimals != 0 {
n += 1 + sovProposal(uint64(m.QuoteDecimals))
}
+ if m.HasDisabledMinimalProtocolFee != 0 {
+ n += 1 + sovProposal(uint64(m.HasDisabledMinimalProtocolFee))
+ }
return n
}
@@ -4107,6 +4173,9 @@ func (m *DerivativeMarketParamUpdateProposal) Size() (n int) {
l = m.OpenNotionalCap.Size()
n += 2 + l + sovProposal(uint64(l))
}
+ if m.HasDisabledMinimalProtocolFee != 0 {
+ n += 2 + sovProposal(uint64(m.HasDisabledMinimalProtocolFee))
+ }
return n
}
@@ -4245,6 +4314,9 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Size() (n int) {
l = m.OpenNotionalCap.Size()
n += 2 + l + sovProposal(uint64(l))
}
+ if m.HasDisabledMinimalProtocolFee != 0 {
+ n += 2 + sovProposal(uint64(m.HasDisabledMinimalProtocolFee))
+ }
return n
}
@@ -4957,6 +5029,25 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error {
break
}
}
+ case 15:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasDisabledMinimalProtocolFee", wireType)
+ }
+ m.HasDisabledMinimalProtocolFee = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowProposal
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HasDisabledMinimalProtocolFee |= DisableMinimalProtocolFeeUpdate(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := skipProposal(dAtA[iNdEx:])
@@ -8612,6 +8703,25 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 20:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasDisabledMinimalProtocolFee", wireType)
+ }
+ m.HasDisabledMinimalProtocolFee = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowProposal
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HasDisabledMinimalProtocolFee |= DisableMinimalProtocolFeeUpdate(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := skipProposal(dAtA[iNdEx:])
@@ -9634,6 +9744,25 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 18:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field HasDisabledMinimalProtocolFee", wireType)
+ }
+ m.HasDisabledMinimalProtocolFee = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowProposal
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.HasDisabledMinimalProtocolFee |= DisableMinimalProtocolFeeUpdate(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := skipProposal(dAtA[iNdEx:])
diff --git a/chain/exchange/types/v2/query.pb.go b/chain/exchange/types/v2/query.pb.go
index 98b0242c..6ec9e739 100644
--- a/chain/exchange/types/v2/query.pb.go
+++ b/chain/exchange/types/v2/query.pb.go
@@ -7766,407 +7766,407 @@ func init() {
func init() { proto.RegisterFile("injective/exchange/v2/query.proto", fileDescriptor_108a0f108cdd0cc4) }
var fileDescriptor_108a0f108cdd0cc4 = []byte{
- // 6391 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x3d, 0x5b, 0x6c, 0x1c, 0xc9,
- 0x71, 0x9a, 0x25, 0x45, 0x91, 0x45, 0x89, 0x8f, 0xa6, 0x44, 0x51, 0x7b, 0x77, 0x7a, 0x8c, 0x4e,
- 0x27, 0xe9, 0xee, 0xc4, 0x95, 0x28, 0xe9, 0xf4, 0xd6, 0x1d, 0x29, 0x8a, 0x92, 0xce, 0x7a, 0xf0,
- 0x56, 0xbc, 0x3b, 0xc7, 0xb9, 0x78, 0x3d, 0xdc, 0x6d, 0x2e, 0xc7, 0xda, 0xdd, 0x59, 0xed, 0xcc,
- 0xf2, 0xc4, 0x08, 0xfa, 0x88, 0x93, 0x18, 0x86, 0x0d, 0xe4, 0xf9, 0xe1, 0x0f, 0x03, 0x0e, 0x10,
- 0x07, 0x09, 0xf2, 0x40, 0x02, 0x38, 0x97, 0x38, 0x88, 0x1d, 0xc4, 0x49, 0x6c, 0xc7, 0x40, 0x80,
- 0xc4, 0xc6, 0x25, 0xb1, 0x11, 0x20, 0x17, 0xc7, 0x0e, 0x10, 0xc4, 0x40, 0xe2, 0xfc, 0x07, 0x48,
- 0x82, 0xe9, 0xae, 0xee, 0x9d, 0x57, 0xf7, 0xcc, 0x90, 0x3a, 0xc8, 0x4e, 0xbe, 0xc4, 0xed, 0xe9,
- 0xaa, 0xae, 0xaa, 0xae, 0xae, 0xaa, 0x7e, 0x54, 0x09, 0x0e, 0xd8, 0xad, 0x8f, 0xd2, 0xaa, 0x67,
- 0xaf, 0xd1, 0x12, 0x7d, 0x50, 0x5d, 0xb5, 0x5a, 0x75, 0x5a, 0x5a, 0x9b, 0x29, 0xdd, 0xef, 0xd2,
- 0xce, 0xfa, 0x74, 0xbb, 0xe3, 0x78, 0x0e, 0xd9, 0x25, 0xbb, 0x4c, 0x8b, 0x2e, 0xd3, 0x6b, 0x33,
- 0xc5, 0x9d, 0x75, 0xa7, 0xee, 0xb0, 0x1e, 0x25, 0xff, 0x2f, 0xde, 0xb9, 0xf8, 0x74, 0xdd, 0x71,
- 0xea, 0x0d, 0x5a, 0xb2, 0xda, 0x76, 0xc9, 0x6a, 0xb5, 0x1c, 0xcf, 0xf2, 0x6c, 0xa7, 0xe5, 0xe2,
- 0xd7, 0x67, 0x93, 0x47, 0x93, 0x68, 0x79, 0xaf, 0x43, 0xc9, 0xbd, 0x9c, 0x4e, 0x8d, 0x76, 0x96,
- 0x1d, 0xe7, 0x1e, 0x76, 0x33, 0x93, 0xbb, 0x35, 0xad, 0xce, 0x3d, 0xea, 0x61, 0x9f, 0x83, 0xc9,
- 0x7d, 0xea, 0xb4, 0x45, 0x5d, 0xdb, 0x8d, 0x8f, 0xe7, 0x74, 0xac, 0x6a, 0x83, 0x96, 0xd6, 0x4e,
- 0x2c, 0x53, 0xcf, 0x3a, 0x81, 0x3f, 0x79, 0x37, 0xf3, 0x0e, 0xc0, 0xdd, 0xee, 0xb2, 0x55, 0xad,
- 0x3a, 0xdd, 0x96, 0x47, 0x26, 0x61, 0xc0, 0xeb, 0x58, 0x35, 0xda, 0x99, 0x32, 0xf6, 0x1b, 0x47,
- 0x86, 0xca, 0xf8, 0x8b, 0x1c, 0x85, 0x31, 0x57, 0xf6, 0xaa, 0xb4, 0x9c, 0x56, 0x95, 0x4e, 0x15,
- 0xf6, 0x1b, 0x47, 0x76, 0x94, 0x47, 0x7b, 0xed, 0xb7, 0xfd, 0x66, 0xf3, 0x23, 0xf0, 0xf4, 0x6b,
- 0xbe, 0x9c, 0x7b, 0x58, 0xef, 0xf8, 0x2c, 0xba, 0x65, 0x7a, 0xbf, 0x4b, 0x5d, 0x8f, 0x1c, 0x84,
- 0x1d, 0x01, 0x54, 0x76, 0x0d, 0x47, 0xda, 0xde, 0x6b, 0xbc, 0x51, 0x23, 0x4f, 0xc1, 0x10, 0xe7,
- 0xd8, 0xef, 0x50, 0x60, 0x1d, 0x06, 0x79, 0xc3, 0x8d, 0x9a, 0xf9, 0x05, 0x03, 0x9e, 0x51, 0x0c,
- 0xe1, 0xb6, 0x9d, 0x96, 0x4b, 0xc9, 0x0d, 0x80, 0xe5, 0xee, 0x7a, 0x85, 0xc9, 0xd6, 0x9d, 0x32,
- 0xf6, 0xf7, 0x1d, 0x19, 0x9e, 0x79, 0x7e, 0x3a, 0x71, 0xc6, 0xa7, 0x23, 0x48, 0xe6, 0x2d, 0xcf,
- 0x2a, 0x0f, 0x2d, 0x77, 0xd7, 0x39, 0x4a, 0xf2, 0x01, 0x18, 0x76, 0x69, 0xa3, 0x21, 0x70, 0x15,
- 0x72, 0xe3, 0x02, 0x1f, 0x9c, 0x23, 0x33, 0x7f, 0xcb, 0x80, 0x43, 0x91, 0x3e, 0xfe, 0xd4, 0xdf,
- 0xa2, 0x9e, 0x55, 0xb3, 0x3c, 0xeb, 0x4d, 0xdb, 0x5b, 0xbd, 0xc5, 0xb8, 0x24, 0xb7, 0x61, 0xb0,
- 0x89, 0xad, 0x4c, 0x40, 0xc3, 0x33, 0x33, 0xd9, 0xc6, 0x0c, 0xe2, 0x2b, 0x4b, 0x1c, 0x5a, 0x81,
- 0x92, 0x9d, 0xb0, 0xd5, 0x76, 0xe7, 0xba, 0xeb, 0x53, 0x7d, 0xfb, 0x8d, 0x23, 0x83, 0x65, 0xfe,
- 0xc3, 0x7c, 0x1a, 0x8a, 0x4c, 0xca, 0x57, 0x71, 0xb0, 0x45, 0xab, 0x63, 0x35, 0xc5, 0x34, 0x9a,
- 0x1f, 0x82, 0xa7, 0x12, 0xbf, 0xe2, 0x0c, 0x5c, 0x80, 0x81, 0x36, 0x6b, 0x41, 0xea, 0x9f, 0x51,
- 0x50, 0xcf, 0xc1, 0xe6, 0xfa, 0xbf, 0xfe, 0xde, 0xbe, 0x2d, 0x65, 0x04, 0x31, 0x7f, 0xce, 0x80,
- 0xbd, 0x91, 0x09, 0x9e, 0xa7, 0x6d, 0xc7, 0xb5, 0xbd, 0x7c, 0x5a, 0x74, 0x0d, 0xa0, 0xf7, 0x9b,
- 0x71, 0x3d, 0x3c, 0x73, 0x20, 0x55, 0x8c, 0x8c, 0x18, 0xa3, 0x1c, 0x00, 0x35, 0xbf, 0x63, 0xc0,
- 0x3e, 0x25, 0x41, 0xc8, 0xf1, 0x47, 0x60, 0xb0, 0x86, 0x6d, 0xa8, 0x71, 0xf3, 0x8a, 0xa1, 0x52,
- 0x30, 0x4d, 0x8b, 0x86, 0xab, 0x2d, 0xaf, 0xb3, 0x5e, 0x96, 0x58, 0x8b, 0x3f, 0x0e, 0x3b, 0x42,
- 0x9f, 0xc8, 0x18, 0xf4, 0xdd, 0xa3, 0xeb, 0xc8, 0xba, 0xff, 0x27, 0x39, 0x05, 0x5b, 0xd7, 0xac,
- 0x46, 0x97, 0x22, 0xb3, 0x7b, 0x15, 0x14, 0x20, 0x9a, 0x32, 0xef, 0x7c, 0xbe, 0x70, 0xd6, 0x30,
- 0xf7, 0xe2, 0xb2, 0x15, 0xf3, 0x39, 0x67, 0x35, 0xac, 0x56, 0x95, 0xca, 0xf9, 0xb6, 0x70, 0xcd,
- 0xc5, 0xbf, 0x23, 0xff, 0xaf, 0xc0, 0xe0, 0x32, 0xb6, 0x21, 0xff, 0xaa, 0xd1, 0x11, 0x14, 0x27,
- 0x5d, 0x42, 0x99, 0x67, 0x50, 0xa5, 0x66, 0xeb, 0xf5, 0x0e, 0xad, 0x5b, 0x1e, 0x7d, 0xc3, 0x69,
- 0x74, 0x9b, 0x54, 0x4c, 0xf9, 0x14, 0x6c, 0x13, 0x53, 0xc9, 0x39, 0x16, 0x3f, 0xcd, 0x36, 0xd2,
- 0x1e, 0x03, 0x44, 0xd2, 0x16, 0x61, 0xdc, 0x12, 0x9f, 0x2a, 0x6b, 0xec, 0x9b, 0xa0, 0xf1, 0xa0,
- 0x82, 0x46, 0xbe, 0x0c, 0x11, 0xcf, 0x98, 0x15, 0x46, 0xec, 0x9a, 0x3f, 0x96, 0x3c, 0xa2, 0x54,
- 0xcf, 0x22, 0x0c, 0x22, 0x71, 0x7c, 0xa0, 0xa1, 0xb2, 0xfc, 0x4d, 0x9e, 0x01, 0x90, 0x4b, 0x91,
- 0x1b, 0x94, 0xa1, 0xf2, 0x90, 0x58, 0x8b, 0xae, 0xf9, 0x03, 0x61, 0xdd, 0xe2, 0xb8, 0x91, 0x1d,
- 0x07, 0xf6, 0xf4, 0xd8, 0x11, 0x4b, 0x20, 0xcc, 0xd6, 0x49, 0x05, 0x5b, 0x12, 0xe7, 0x2c, 0x07,
- 0x13, 0x82, 0xaa, 0x3a, 0x9d, 0x5a, 0x79, 0xb7, 0x95, 0xf8, 0xd5, 0x25, 0x3f, 0x01, 0x53, 0xbd,
- 0x01, 0x91, 0x76, 0x31, 0x5e, 0x21, 0xbb, 0x18, 0x27, 0x25, 0x92, 0x60, 0xb3, 0x6b, 0xbe, 0x02,
- 0x07, 0xc2, 0x0c, 0x87, 0xa0, 0x50, 0xa2, 0x21, 0x03, 0x66, 0x44, 0x3c, 0x42, 0x1d, 0x4c, 0x1d,
- 0x06, 0x94, 0xdb, 0x2c, 0x0c, 0x70, 0xaa, 0xd1, 0x26, 0xa9, 0x88, 0x0e, 0x0a, 0x45, 0x58, 0x26,
- 0x0e, 0x68, 0x5e, 0x83, 0x12, 0x1f, 0xa8, 0x5b, 0xf5, 0x23, 0x00, 0xb1, 0x18, 0x96, 0x3a, 0x56,
- 0xcb, 0x5d, 0xa1, 0x9d, 0x79, 0xda, 0x72, 0x9a, 0xf3, 0xb4, 0x6a, 0x37, 0xad, 0x86, 0x20, 0x7c,
- 0x27, 0x6c, 0xad, 0xf9, 0xcd, 0x48, 0x34, 0xff, 0x61, 0xde, 0x84, 0xe3, 0xd9, 0x11, 0x21, 0xfd,
- 0x53, 0xb0, 0xad, 0xc6, 0x9b, 0x18, 0xae, 0xfe, 0xb2, 0xf8, 0x69, 0xbe, 0x9a, 0x1d, 0x9b, 0x54,
- 0xd1, 0x49, 0x18, 0x60, 0xa4, 0x08, 0x05, 0xc5, 0x5f, 0xe6, 0xc7, 0x0d, 0x38, 0x91, 0x03, 0x19,
- 0xd2, 0xf6, 0x1a, 0x8c, 0x30, 0xf8, 0x0a, 0x92, 0x24, 0x14, 0xf1, 0x59, 0xa5, 0x05, 0x0a, 0x60,
- 0x41, 0x21, 0xef, 0xa8, 0x05, 0x1b, 0xcd, 0x2b, 0xba, 0x49, 0x95, 0x6c, 0x84, 0x57, 0x93, 0x11,
- 0x5d, 0x4d, 0x35, 0x38, 0xa8, 0x45, 0x82, 0xe4, 0x5f, 0x82, 0x6d, 0x1b, 0xb0, 0x0b, 0x02, 0xc6,
- 0xfc, 0x50, 0x2c, 0x20, 0x11, 0x16, 0x36, 0x8f, 0xbb, 0x92, 0x9a, 0x52, 0x08, 0x6a, 0xca, 0x5b,
- 0x2a, 0x5f, 0x28, 0x89, 0x3f, 0x1f, 0xf2, 0x3c, 0x59, 0xec, 0xbe, 0xec, 0x6f, 0x2e, 0xc2, 0x6e,
- 0x8e, 0xbd, 0xed, 0x78, 0x9c, 0xb7, 0xa0, 0x82, 0xb8, 0x9e, 0xe5, 0x75, 0x5d, 0x11, 0x0b, 0xf2,
- 0x5f, 0x69, 0xf6, 0xeb, 0x4d, 0x98, 0x8a, 0x63, 0x94, 0x51, 0xc1, 0x36, 0xde, 0x51, 0x88, 0x59,
- 0xe9, 0x8d, 0x25, 0x70, 0x59, 0x40, 0x98, 0xa7, 0x61, 0x32, 0x82, 0x38, 0x93, 0x6d, 0x58, 0x8a,
- 0x71, 0x28, 0xc9, 0x39, 0x07, 0x03, 0xbc, 0x1b, 0x8a, 0x2d, 0x03, 0x35, 0x08, 0x60, 0x7e, 0xb3,
- 0x00, 0x7b, 0x24, 0x5a, 0x19, 0x78, 0x65, 0x21, 0xc8, 0x9f, 0xe6, 0x86, 0xdd, 0xb4, 0x79, 0x40,
- 0xd2, 0x5f, 0xe6, 0x3f, 0xc8, 0xcb, 0x00, 0x2c, 0xc4, 0xac, 0xb8, 0x76, 0x8d, 0xb2, 0x40, 0x6c,
- 0x64, 0x66, 0xbf, 0x82, 0x1e, 0x36, 0xde, 0x5d, 0xbb, 0x46, 0xcb, 0x43, 0x8e, 0xf8, 0x93, 0x54,
- 0x60, 0x0f, 0xc3, 0x54, 0xa9, 0x76, 0x9b, 0xdd, 0x86, 0xe5, 0x03, 0x55, 0x5a, 0x8e, 0xbf, 0x82,
- 0xad, 0xc6, 0x54, 0xbf, 0x4f, 0xc3, 0xdc, 0x41, 0x3f, 0xb0, 0xf9, 0x87, 0xf7, 0xf6, 0x3d, 0x55,
- 0x75, 0xdc, 0xa6, 0xe3, 0xba, 0xb5, 0x7b, 0xd3, 0xb6, 0x53, 0x6a, 0x5a, 0xde, 0xea, 0xf4, 0x4d,
- 0x5a, 0xb7, 0xaa, 0xeb, 0xf3, 0xb4, 0x5a, 0xde, 0xcd, 0xb0, 0x5c, 0x91, 0x48, 0x6e, 0x23, 0x8e,
- 0xc4, 0x01, 0xee, 0x77, 0xad, 0x96, 0x67, 0x7b, 0xeb, 0x53, 0x5b, 0x37, 0x3e, 0xc0, 0x6b, 0x88,
- 0xc3, 0xfc, 0xb2, 0x81, 0x11, 0x67, 0x44, 0xa6, 0x38, 0x5b, 0x0b, 0x30, 0xb6, 0xdc, 0x5d, 0x77,
- 0x2b, 0xed, 0x8e, 0x5d, 0xa5, 0x95, 0x06, 0x5d, 0xa3, 0x0d, 0xd4, 0xa2, 0xa7, 0x15, 0x72, 0xba,
- 0xe9, 0xf7, 0x29, 0x8f, 0xf8, 0x50, 0x8b, 0x3e, 0x10, 0xfb, 0x4d, 0xae, 0xc3, 0xb8, 0x1f, 0x92,
- 0x87, 0x11, 0x15, 0x32, 0x20, 0x1a, 0x65, 0x60, 0x01, 0x4c, 0x63, 0xd0, 0xe7, 0xd2, 0xfb, 0x6c,
- 0xb2, 0xfa, 0xcb, 0xfe, 0x9f, 0xe6, 0xe7, 0x0c, 0x18, 0x59, 0xe8, 0x36, 0x1a, 0x3d, 0x8d, 0xd9,
- 0x84, 0x92, 0x91, 0x37, 0x60, 0xbc, 0x69, 0xd7, 0x90, 0x4e, 0xab, 0x55, 0xab, 0x78, 0xce, 0x32,
- 0x46, 0x76, 0x87, 0x54, 0xf6, 0xc9, 0xae, 0x31, 0x02, 0x67, 0x5b, 0xb5, 0xa5, 0x3b, 0x73, 0x18,
- 0xca, 0x8e, 0x34, 0x03, 0xad, 0xce, 0xb2, 0xf9, 0x09, 0x03, 0x23, 0xad, 0x30, 0xa9, 0x9b, 0x5c,
- 0xf9, 0x64, 0x06, 0x26, 0xdf, 0xb6, 0xbd, 0xd5, 0x4a, 0x9c, 0x66, 0xbe, 0xaf, 0x20, 0xfe, 0xd7,
- 0x5b, 0x61, 0x52, 0x2a, 0x18, 0x48, 0xc5, 0x28, 0xc1, 0x49, 0x7f, 0x39, 0x6a, 0x31, 0x54, 0x8c,
- 0x87, 0x11, 0xf4, 0xac, 0x46, 0x13, 0x75, 0x2a, 0xf2, 0x3d, 0xcb, 0x42, 0x55, 0xf3, 0x53, 0x50,
- 0xf2, 0xf3, 0x56, 0xa2, 0x64, 0x03, 0x7e, 0x26, 0xac, 0x0c, 0x19, 0xb9, 0x11, 0x56, 0xe7, 0x67,
- 0xe5, 0xc6, 0x48, 0xac, 0x10, 0x77, 0x6e, 0xfd, 0xba, 0xe5, 0xae, 0xf6, 0xfc, 0xa1, 0x96, 0xa3,
- 0x98, 0x1b, 0x2a, 0x24, 0xb8, 0xa1, 0x03, 0xb0, 0x9d, 0x5b, 0xa2, 0x55, 0x86, 0x78, 0xaa, 0x8f,
- 0xcd, 0xf3, 0x30, 0x6b, 0xe3, 0x63, 0x99, 0x75, 0xb1, 0x1d, 0x4a, 0x20, 0x03, 0x39, 0x9d, 0x87,
- 0x81, 0xd0, 0xf6, 0xfb, 0x45, 0x05, 0xa7, 0x4b, 0x1d, 0xbb, 0xd9, 0xa4, 0x35, 0x1f, 0xd3, 0x4d,
- 0xdf, 0x2e, 0x30, 0x74, 0x65, 0x84, 0x95, 0x87, 0x09, 0x4b, 0xec, 0x18, 0xa2, 0x37, 0xdc, 0x63,
- 0xe3, 0xd6, 0x6c, 0xc0, 0xb3, 0x3c, 0x40, 0xe0, 0x2d, 0xb3, 0xb5, 0x5a, 0x87, 0xba, 0x6e, 0xce,
- 0x91, 0x0e, 0xc3, 0xa8, 0x18, 0xc6, 0xe2, 0x08, 0x70, 0xac, 0x11, 0x2b, 0x84, 0xd6, 0xfc, 0x4c,
- 0x01, 0x76, 0x25, 0x72, 0x4c, 0xce, 0xc1, 0x56, 0xa6, 0x63, 0x1c, 0x37, 0xb3, 0xa4, 0x5b, 0xd2,
- 0x2c, 0x29, 0x87, 0x20, 0x2f, 0xc3, 0xa0, 0xb4, 0xc3, 0x85, 0xec, 0xd0, 0x12, 0xc8, 0x47, 0xb0,
- 0x62, 0x37, 0x1a, 0xd6, 0x72, 0x83, 0x7b, 0x9e, 0xac, 0x08, 0x04, 0x50, 0xef, 0x00, 0xa1, 0x3f,
- 0x70, 0x80, 0xe0, 0x9b, 0x8b, 0x9e, 0x22, 0x71, 0x0f, 0x81, 0x0e, 0xcb, 0xd7, 0x15, 0xdf, 0x7a,
- 0x56, 0xed, 0xda, 0xd4, 0x00, 0xdf, 0xbd, 0x56, 0xed, 0x9a, 0x49, 0x31, 0x8c, 0x8a, 0xcf, 0xf6,
- 0x63, 0x55, 0xaa, 0x26, 0x1c, 0x4a, 0x99, 0xf2, 0xc7, 0x3a, 0xdc, 0xa5, 0xc0, 0x9a, 0x0d, 0x9b,
- 0xe7, 0x4c, 0xf1, 0xcb, 0x7f, 0x19, 0x81, 0xc5, 0x16, 0x85, 0x97, 0x7b, 0xef, 0x21, 0x69, 0xa4,
- 0x02, 0x0a, 0x94, 0xea, 0x8a, 0x07, 0x85, 0x63, 0x20, 0x37, 0x60, 0x64, 0x99, 0xba, 0x5e, 0x65,
- 0xb9, 0xbb, 0x8e, 0x68, 0x0a, 0xd9, 0xd1, 0x6c, 0xf7, 0x41, 0xe7, 0xba, 0xeb, 0x1c, 0xd5, 0x07,
- 0x60, 0x94, 0xa1, 0x62, 0xc7, 0x66, 0x1c, 0x57, 0x5f, 0x76, 0x5c, 0x3b, 0x7c, 0xd8, 0xbb, 0xb4,
- 0xd1, 0x60, 0xc8, 0xcc, 0x2b, 0xb8, 0x3c, 0xe7, 0x69, 0xc7, 0x5e, 0x63, 0xe1, 0xc2, 0x06, 0x44,
- 0xf8, 0x53, 0x05, 0x9c, 0x71, 0x35, 0x96, 0xff, 0xf3, 0x82, 0xfc, 0x03, 0xa1, 0x46, 0x3d, 0x19,
- 0x3c, 0x8e, 0xb0, 0x55, 0x1b, 0x75, 0xf6, 0x6d, 0x3e, 0xea, 0x34, 0xbf, 0x66, 0xc0, 0x7e, 0x35,
- 0xdd, 0x3f, 0x42, 0xa1, 0xe1, 0xa7, 0xfb, 0x60, 0x3a, 0xd1, 0xba, 0x2d, 0x39, 0x57, 0xac, 0x56,
- 0x95, 0x36, 0x5e, 0x6f, 0x2f, 0x39, 0xb3, 0x4d, 0xdf, 0x22, 0x3d, 0x3e, 0x5f, 0x3e, 0x0f, 0xc3,
- 0xcb, 0x96, 0x4b, 0x2b, 0x16, 0xc3, 0x9b, 0xc7, 0xb8, 0x83, 0x0f, 0xc7, 0xc9, 0x21, 0x0b, 0xb0,
- 0xfd, 0x7e, 0xd7, 0xf1, 0x24, 0x9a, 0xfe, 0xec, 0x68, 0x86, 0x19, 0x20, 0xe2, 0xb9, 0x06, 0x83,
- 0xae, 0xd7, 0xb1, 0x3c, 0x5a, 0xe7, 0x1b, 0x86, 0x91, 0x99, 0x17, 0x14, 0x52, 0xe5, 0x12, 0x69,
- 0xb0, 0x6b, 0x96, 0xbb, 0x08, 0x52, 0x96, 0xc0, 0xe4, 0x26, 0x8c, 0x76, 0xe8, 0x0a, 0xed, 0xd0,
- 0x56, 0x95, 0xe2, 0xca, 0x18, 0xc8, 0xae, 0x6b, 0x23, 0x12, 0x96, 0x2f, 0x8d, 0x6f, 0x15, 0xe0,
- 0x54, 0x60, 0x66, 0x22, 0x8a, 0xf6, 0xbe, 0xce, 0x4f, 0x54, 0xb2, 0x7d, 0x8f, 0x41, 0xb2, 0xfd,
- 0x8f, 0x59, 0xb2, 0x5b, 0x37, 0x2e, 0xd9, 0x15, 0x3c, 0xc2, 0x49, 0x16, 0xec, 0xe3, 0x0b, 0xe2,
- 0x3a, 0xf0, 0x7c, 0x82, 0x47, 0xdf, 0xd0, 0x78, 0x99, 0x43, 0xb9, 0x7f, 0x2b, 0xc0, 0x53, 0xe8,
- 0xf8, 0x7b, 0x03, 0xfd, 0x90, 0x04, 0x74, 0x17, 0xd8, 0x36, 0xa3, 0x6e, 0xb7, 0xf2, 0x28, 0x14,
- 0x82, 0x84, 0xa2, 0xc1, 0xfe, 0x8d, 0x44, 0x83, 0xfb, 0x44, 0x34, 0xe8, 0x6b, 0xce, 0xe0, 0xdc,
- 0xd0, 0xf7, 0xdf, 0xdb, 0xc7, 0x1b, 0x92, 0x03, 0xc3, 0x01, 0x45, 0x60, 0xb8, 0xad, 0x17, 0x18,
- 0xde, 0xc7, 0x53, 0x3c, 0x95, 0x1e, 0xa1, 0x1b, 0x78, 0x35, 0x12, 0xaf, 0xcd, 0xe8, 0xe3, 0xb5,
- 0xa4, 0x69, 0x93, 0x51, 0xdb, 0x3a, 0xbc, 0x90, 0x49, 0xa5, 0xde, 0x87, 0xa1, 0x3f, 0x65, 0xc4,
- 0x82, 0x9e, 0x27, 0xb8, 0xd7, 0x73, 0x63, 0xb1, 0x93, 0x62, 0xc7, 0xf7, 0x38, 0x45, 0xf0, 0x49,
- 0x71, 0x09, 0x12, 0x88, 0xd8, 0x9e, 0xd8, 0x19, 0xc5, 0x27, 0x0c, 0x80, 0x80, 0x6b, 0x7f, 0x82,
- 0x0b, 0xdb, 0x8f, 0xe2, 0x76, 0x2e, 0xd2, 0x4e, 0x9b, 0x7a, 0x5d, 0xab, 0xc1, 0x25, 0x72, 0xd7,
- 0xb3, 0x3c, 0x3f, 0x56, 0x1c, 0x16, 0x6c, 0xb7, 0x56, 0x1c, 0x3c, 0x5d, 0x50, 0x5d, 0x53, 0x47,
- 0x30, 0xdc, 0x68, 0xad, 0x38, 0x65, 0x94, 0x9a, 0xff, 0x37, 0x59, 0x84, 0xed, 0x2b, 0xdd, 0x56,
- 0xcd, 0x6e, 0xd5, 0x39, 0x36, 0x7e, 0xe4, 0x74, 0x2c, 0x1b, 0xb6, 0x05, 0x0e, 0x59, 0x1e, 0x46,
- 0x14, 0x3e, 0x46, 0xf3, 0xd7, 0xfb, 0x60, 0xe7, 0x42, 0xb7, 0xd1, 0x88, 0x4e, 0x27, 0x79, 0x39,
- 0x72, 0x20, 0x72, 0x58, 0x79, 0x72, 0x1d, 0x06, 0x94, 0x67, 0x64, 0x4b, 0x30, 0xd2, 0x16, 0x04,
- 0x04, 0xa9, 0x7d, 0x21, 0x1b, 0xb5, 0x4c, 0x7a, 0xd7, 0xb7, 0x94, 0x77, 0x48, 0x24, 0x4c, 0x02,
- 0x77, 0x7d, 0x09, 0x78, 0xdd, 0x0e, 0x75, 0x39, 0xce, 0x3e, 0x86, 0x73, 0x5a, 0x81, 0xf3, 0xea,
- 0x83, 0xb6, 0xdd, 0x59, 0x5f, 0xe0, 0x00, 0x3d, 0x99, 0x5e, 0xdf, 0xe2, 0x0b, 0x81, 0x35, 0x32,
- 0xa4, 0x73, 0x5c, 0x35, 0xd1, 0xad, 0xe6, 0x30, 0xad, 0x4c, 0x7f, 0xf9, 0x9e, 0x20, 0xf1, 0x48,
- 0x70, 0xeb, 0xa6, 0x8f, 0x04, 0xe7, 0x06, 0xa0, 0xdf, 0x67, 0xd4, 0xac, 0xe3, 0x66, 0x35, 0x61,
- 0xdd, 0xe1, 0x32, 0xbf, 0x1a, 0x3d, 0x91, 0x7b, 0x41, 0x73, 0x86, 0x15, 0x9b, 0x36, 0x79, 0x2e,
- 0x77, 0x01, 0x4f, 0x76, 0x62, 0x3d, 0xb2, 0x6c, 0xe8, 0x6a, 0x0a, 0xeb, 0x20, 0x89, 0xbc, 0x12,
- 0x51, 0xab, 0x5c, 0x34, 0x8a, 0xd3, 0xb6, 0x39, 0xf4, 0x3a, 0xd1, 0x0e, 0xe8, 0x0b, 0x32, 0x51,
- 0x4a, 0xe3, 0xfb, 0xd7, 0x30, 0x8e, 0xde, 0xdd, 0x9e, 0x08, 0x37, 0xc4, 0xe5, 0x36, 0xff, 0x99,
- 0x2d, 0x00, 0xba, 0x86, 0x9b, 0xa4, 0xde, 0x25, 0x11, 0x73, 0x95, 0xec, 0x45, 0x4e, 0x9e, 0x3b,
- 0x28, 0xf3, 0x22, 0x4a, 0x76, 0xd1, 0x71, 0x6d, 0xf6, 0xc6, 0xe9, 0x46, 0x2b, 0xc7, 0xbc, 0x08,
- 0xed, 0x49, 0x80, 0x96, 0xda, 0xb3, 0xd5, 0x37, 0xd4, 0x14, 0x75, 0xe7, 0x68, 0xea, 0x72, 0x17,
- 0xa8, 0x50, 0x6f, 0x39, 0xb4, 0xb9, 0x10, 0x7b, 0x8f, 0x21, 0x87, 0xcc, 0xc5, 0xee, 0x47, 0xe1,
- 0x39, 0x05, 0x9e, 0x28, 0xdf, 0x9b, 0x7f, 0xb6, 0xe4, 0xe2, 0xdd, 0x71, 0x6f, 0xac, 0xab, 0x2b,
- 0x2b, 0x9c, 0xf7, 0xf7, 0x6f, 0xd0, 0x57, 0x51, 0x87, 0x23, 0xaf, 0x84, 0xe4, 0x0b, 0xa1, 0x3c,
- 0xc2, 0xb2, 0x63, 0x4a, 0x16, 0x10, 0xfa, 0x63, 0x99, 0xdf, 0x2d, 0x62, 0x7e, 0x57, 0xe0, 0x70,
- 0xea, 0xbc, 0xc8, 0x3b, 0x45, 0x39, 0xa2, 0xbf, 0xd2, 0xf7, 0xa9, 0xec, 0x7e, 0xa2, 0x1e, 0xfd,
- 0x74, 0x01, 0xc6, 0x63, 0xb3, 0x40, 0x76, 0xc3, 0x36, 0xdb, 0xad, 0x34, 0x9c, 0x56, 0x9d, 0x21,
- 0x1d, 0x2c, 0x0f, 0xd8, 0xee, 0x4d, 0xa7, 0x55, 0xdf, 0x7c, 0x60, 0x3e, 0x0f, 0xc3, 0xb4, 0xe5,
- 0x75, 0xd6, 0x63, 0xc7, 0x39, 0xe9, 0xfb, 0x71, 0x06, 0xc7, 0x9d, 0xc0, 0x6d, 0x18, 0xa3, 0x82,
- 0xe8, 0x0a, 0x06, 0xfa, 0x39, 0xdc, 0xc9, 0xa8, 0x04, 0xbe, 0xc5, 0x60, 0xcd, 0x07, 0xf8, 0x7c,
- 0x20, 0x93, 0x66, 0xca, 0xb3, 0xd1, 0x90, 0xd8, 0x8f, 0xa8, 0x5c, 0x63, 0x14, 0x51, 0x58, 0xfe,
- 0x97, 0x71, 0x1d, 0x27, 0x45, 0x24, 0x59, 0x0c, 0xce, 0x2a, 0xaa, 0x64, 0x22, 0xbc, 0xa4, 0xb4,
- 0x7f, 0x63, 0x31, 0x11, 0xaa, 0x24, 0x77, 0x8c, 0xc2, 0x19, 0x28, 0x7c, 0x7d, 0x26, 0x6a, 0xdb,
- 0xe8, 0x0c, 0x94, 0x38, 0x90, 0xe2, 0xeb, 0x21, 0x8a, 0x73, 0x46, 0x1d, 0x21, 0xaa, 0x67, 0x71,
- 0x03, 0xae, 0x88, 0xd1, 0xb2, 0x11, 0x7d, 0x50, 0x8b, 0x42, 0x3e, 0xb9, 0x0c, 0xe9, 0x43, 0xbe,
- 0x60, 0x31, 0xbc, 0xf8, 0x3f, 0x2e, 0xf6, 0x3f, 0x4a, 0xa3, 0x85, 0x63, 0x7e, 0x38, 0xf4, 0x48,
- 0xd2, 0xb7, 0x37, 0x17, 0xf3, 0x3f, 0x92, 0xec, 0x3d, 0xba, 0x14, 0x0f, 0xd2, 0x04, 0x4e, 0xf3,
- 0x1c, 0x3e, 0x4c, 0x4a, 0xf6, 0xaa, 0x48, 0xc4, 0x4e, 0xd8, 0xca, 0xdf, 0xc3, 0x1a, 0xec, 0x3d,
- 0x2c, 0xff, 0x61, 0xee, 0xc1, 0x57, 0x07, 0xb7, 0x9c, 0x5a, 0xb7, 0x41, 0x59, 0x94, 0x29, 0x5e,
- 0xd2, 0xbd, 0x8e, 0x0f, 0x24, 0x42, 0x9f, 0xe4, 0x8b, 0x84, 0x90, 0x14, 0x55, 0xaf, 0x50, 0xae,
- 0xf1, 0x97, 0xbe, 0x1c, 0x16, 0xa5, 0xb6, 0x1b, 0x76, 0x85, 0x7d, 0xaf, 0x18, 0xaf, 0x82, 0xef,
- 0x26, 0xde, 0x37, 0x63, 0x7d, 0x3f, 0x78, 0x6d, 0x53, 0xa6, 0x6f, 0x5b, 0x9d, 0xda, 0xa2, 0x63,
- 0xb7, 0xbc, 0x4c, 0xaf, 0xe1, 0x4e, 0xc1, 0x64, 0x9b, 0xf2, 0xbd, 0x46, 0xdb, 0x71, 0x1a, 0x15,
- 0xcf, 0x6e, 0x52, 0xd7, 0xb3, 0x9a, 0x6d, 0x66, 0x60, 0xfb, 0xca, 0x3b, 0xf1, 0xeb, 0xa2, 0xe3,
- 0x34, 0x96, 0xc4, 0x37, 0xf3, 0x67, 0xc4, 0x45, 0x68, 0xc2, 0x98, 0xc8, 0xdc, 0x32, 0x3c, 0x25,
- 0xfc, 0x19, 0x7b, 0xc4, 0x5c, 0xe9, 0xb0, 0x5e, 0x95, 0x36, 0xeb, 0xc6, 0xe9, 0xc8, 0x66, 0x2f,
- 0xa7, 0x82, 0x93, 0x1f, 0x1c, 0xcb, 0x3c, 0x80, 0xe6, 0x2b, 0xf0, 0xe5, 0x8a, 0xd5, 0x6c, 0x5b,
- 0x76, 0xbd, 0x25, 0xa4, 0xff, 0x1f, 0xfd, 0x68, 0xa2, 0x12, 0xfb, 0x20, 0xad, 0xf7, 0xe1, 0x69,
- 0x9f, 0x46, 0x5f, 0x08, 0x48, 0x65, 0x15, 0xbb, 0x04, 0xb7, 0x73, 0xc7, 0x95, 0x1b, 0x6a, 0x8b,
- 0x2f, 0xc5, 0x20, 0x6e, 0x66, 0x50, 0xf6, 0x78, 0xaa, 0x4f, 0xe4, 0x21, 0x1c, 0x8a, 0x0c, 0xc9,
- 0xc4, 0x2f, 0xc7, 0x75, 0xab, 0xab, 0xd4, 0xd7, 0x4f, 0x3c, 0xfe, 0x3e, 0xaa, 0x3c, 0x4e, 0x14,
- 0xac, 0x70, 0xb1, 0x38, 0x8d, 0xf2, 0x81, 0xd0, 0xa0, 0x7e, 0x93, 0xe8, 0x74, 0x17, 0x71, 0x92,
- 0x0f, 0xc3, 0x1e, 0xcf, 0xf1, 0xac, 0x46, 0xe2, 0xcc, 0xe4, 0x70, 0x8a, 0x93, 0x0c, 0x4b, 0x6c,
- 0x5e, 0xc8, 0x27, 0x0d, 0x38, 0x26, 0xb4, 0x2a, 0x1b, 0x97, 0xfd, 0x79, 0xb9, 0x3c, 0x82, 0xf8,
- 0x97, 0x52, 0x99, 0x6d, 0xc2, 0x01, 0x49, 0x8b, 0x92, 0xe9, 0xad, 0xd9, 0xd5, 0xf1, 0x19, 0x31,
- 0x72, 0x22, 0xef, 0xe6, 0x05, 0xd4, 0xc9, 0x1b, 0xee, 0x9d, 0xb6, 0x47, 0x6b, 0x77, 0xba, 0xde,
- 0x9d, 0x15, 0xde, 0xc1, 0x4d, 0x7f, 0x49, 0x3b, 0x8f, 0xca, 0x9a, 0x08, 0x8c, 0xca, 0xba, 0x1f,
- 0xb6, 0xdb, 0x6e, 0xc5, 0xf1, 0xbf, 0x57, 0x9c, 0xae, 0x87, 0x21, 0x12, 0xd8, 0x12, 0xc4, 0x3c,
- 0x8c, 0x47, 0x46, 0x31, 0x1c, 0x78, 0x98, 0x26, 0x4d, 0xd3, 0x3c, 0x86, 0xdf, 0x9a, 0x8e, 0x38,
- 0xa8, 0xc6, 0x84, 0x98, 0x97, 0xd1, 0xc9, 0x2d, 0x50, 0x3a, 0x6f, 0xbb, 0xfc, 0xb8, 0x0e, 0x83,
- 0xd6, 0x80, 0x67, 0x56, 0x33, 0xfd, 0x4f, 0x06, 0xba, 0x38, 0x15, 0x02, 0xa4, 0xe1, 0x19, 0x00,
- 0xcf, 0xa6, 0x1d, 0x79, 0xbf, 0x64, 0x1c, 0xe9, 0x2f, 0x0f, 0xf9, 0x2d, 0xfc, 0x5c, 0xe8, 0x16,
- 0x6c, 0x97, 0x01, 0x74, 0xef, 0x1c, 0x42, 0x15, 0x6f, 0x04, 0xc6, 0x5a, 0xb2, 0x69, 0x87, 0x0d,
- 0x34, 0x6c, 0xf5, 0x46, 0x25, 0xaf, 0xc2, 0xb0, 0xb4, 0x5f, 0x5e, 0x03, 0x4f, 0x20, 0x8e, 0x66,
- 0xc3, 0xb6, 0xb4, 0x74, 0xb3, 0x0c, 0xc2, 0x6a, 0x79, 0x0d, 0x69, 0xa7, 0x02, 0xdd, 0x84, 0x7a,
- 0x8a, 0xa9, 0xf8, 0x98, 0xb8, 0x67, 0x4b, 0xec, 0x23, 0x1d, 0xee, 0xae, 0x15, 0x4a, 0x2b, 0x35,
- 0xfc, 0xde, 0x5b, 0x3e, 0x46, 0x56, 0x5e, 0x25, 0xca, 0x89, 0x95, 0x78, 0xa3, 0xf9, 0x0a, 0x7a,
- 0x12, 0x7c, 0x21, 0x7e, 0xcb, 0x76, 0x9b, 0x96, 0x57, 0x0d, 0x9c, 0x78, 0xee, 0x83, 0xe1, 0x5a,
- 0xd7, 0xf5, 0x2a, 0x2b, 0x56, 0xd5, 0x73, 0x78, 0x92, 0x4a, 0x5f, 0x19, 0xfc, 0xa6, 0x05, 0xd6,
- 0x62, 0xfe, 0x6a, 0x1f, 0x8c, 0x46, 0xa0, 0x89, 0x09, 0xa1, 0x7d, 0x4c, 0xf6, 0xb7, 0x97, 0x64,
- 0x16, 0x86, 0xac, 0x35, 0xcb, 0xce, 0xfd, 0x32, 0xa2, 0x07, 0xe5, 0x7b, 0x74, 0xb6, 0xea, 0xf3,
- 0x04, 0xe8, 0x1c, 0x82, 0x2c, 0xc0, 0x76, 0x7c, 0x1b, 0x5f, 0x59, 0x75, 0x1a, 0xb5, 0xc0, 0x45,
- 0x4c, 0xfa, 0xe5, 0x10, 0x02, 0x5e, 0x77, 0x1a, 0x35, 0xf2, 0x2a, 0x8c, 0xd0, 0x07, 0x6d, 0x5a,
- 0xf5, 0x17, 0x2c, 0xa7, 0x65, 0x20, 0x3b, 0xa6, 0x1d, 0x02, 0x94, 0x99, 0x1b, 0x72, 0x05, 0xa0,
- 0x66, 0xaf, 0xe0, 0x25, 0x0f, 0x3f, 0xa2, 0xcf, 0xb8, 0x7f, 0xe9, 0x81, 0x99, 0x6f, 0xa3, 0xf3,
- 0x4e, 0x98, 0x66, 0x54, 0xb4, 0xd7, 0x81, 0x08, 0xd6, 0x9b, 0xf2, 0x2b, 0x86, 0x29, 0xcf, 0xe9,
- 0xd3, 0x0a, 0x04, 0xb6, 0xf2, 0xf8, 0x72, 0x14, 0xbd, 0x79, 0x08, 0x17, 0x3a, 0x76, 0xf5, 0x43,
- 0xbf, 0xb9, 0x9e, 0xa0, 0xa4, 0x59, 0xfa, 0x74, 0x01, 0x76, 0x05, 0xba, 0xf0, 0x5d, 0x12, 0x13,
- 0xe5, 0xff, 0x73, 0x55, 0x32, 0x7f, 0x51, 0x84, 0xe6, 0x4a, 0x09, 0xe2, 0x04, 0xda, 0x50, 0x14,
- 0x03, 0xb2, 0xf3, 0xf6, 0xe0, 0xe8, 0x69, 0xcf, 0x69, 0x12, 0x45, 0x5f, 0xde, 0xbd, 0x9c, 0x3c,
- 0xa4, 0xf4, 0x36, 0x11, 0x1b, 0xe8, 0x07, 0xc7, 0xb6, 0xeb, 0xd9, 0x55, 0x39, 0xad, 0xe7, 0x60,
- 0x47, 0xe8, 0x03, 0x21, 0xd0, 0xef, 0x9b, 0x6f, 0x34, 0xe5, 0xec, 0x6f, 0x7f, 0xf6, 0x7a, 0xe9,
- 0x42, 0xfd, 0x65, 0xfe, 0xc3, 0x6c, 0xa1, 0xa3, 0xd2, 0x8c, 0x21, 0x77, 0x9b, 0xe0, 0xca, 0xd6,
- 0x94, 0x47, 0xf0, 0x21, 0x14, 0xe5, 0x00, 0x9c, 0x1f, 0xcc, 0xdf, 0xb2, 0x3d, 0xe7, 0x0d, 0xab,
- 0xdb, 0x60, 0xde, 0x40, 0xf2, 0xf0, 0x15, 0x03, 0x26, 0xa3, 0x5f, 0x70, 0xe4, 0xa3, 0x30, 0xd6,
- 0xb4, 0x5c, 0x8f, 0x76, 0xc4, 0xc5, 0x25, 0x15, 0xae, 0x72, 0x94, 0xb7, 0xcf, 0x8a, 0x66, 0x72,
- 0x02, 0x76, 0xd6, 0x64, 0x50, 0x1f, 0xe8, 0xce, 0xaf, 0x4b, 0x26, 0x7a, 0xdf, 0x7a, 0x20, 0x87,
- 0x60, 0xc4, 0x6d, 0x3b, 0x5e, 0xa0, 0x33, 0xbf, 0x2b, 0xda, 0xe1, 0xb7, 0x86, 0xba, 0x55, 0xdf,
- 0x9e, 0x39, 0x1e, 0xe8, 0xd6, 0xcf, 0xbb, 0xf9, 0xad, 0xb2, 0x9b, 0x39, 0x8f, 0x86, 0x1e, 0xb7,
- 0xad, 0xf3, 0x0b, 0x1d, 0xa7, 0xc9, 0x58, 0x0a, 0x1c, 0x48, 0xad, 0xf9, 0xbf, 0x2b, 0xe1, 0x53,
- 0xd1, 0xed, 0xac, 0x51, 0x5c, 0xc1, 0x8a, 0x97, 0x55, 0x09, 0x58, 0x50, 0x26, 0xda, 0x9d, 0xad,
- 0xd8, 0x1c, 0x5f, 0xb7, 0x5d, 0xcf, 0xe9, 0xd8, 0x55, 0x19, 0x4d, 0x55, 0x9d, 0x40, 0xb0, 0xa4,
- 0x45, 0xe1, 0xa0, 0x41, 0x51, 0xa1, 0x90, 0x1b, 0xfa, 0x1d, 0x22, 0xe8, 0x63, 0x1f, 0x52, 0x92,
- 0x0c, 0x42, 0x38, 0xb6, 0x7b, 0x81, 0x5f, 0xe6, 0x17, 0x0c, 0x98, 0x60, 0x9f, 0xf9, 0x88, 0x7e,
- 0xe4, 0xe4, 0x6f, 0xe9, 0xc8, 0x8b, 0x40, 0xf8, 0x08, 0xf5, 0x8e, 0xd3, 0x6d, 0xfb, 0xb1, 0xa6,
- 0x4b, 0xab, 0xa8, 0xd8, 0x63, 0xec, 0xcb, 0x35, 0xfc, 0x70, 0x97, 0x56, 0xc9, 0x6e, 0xd8, 0xd6,
- 0xb4, 0x1e, 0x54, 0xac, 0x3a, 0x45, 0x35, 0x1f, 0x68, 0x5a, 0x0f, 0x66, 0xeb, 0x94, 0x4c, 0xc3,
- 0x84, 0xdd, 0xaa, 0x36, 0xba, 0x3e, 0xa9, 0xd6, 0xdb, 0x95, 0x55, 0x3e, 0x08, 0x3e, 0xeb, 0x1b,
- 0xc7, 0x4f, 0x65, 0xeb, 0x6d, 0x1c, 0xdd, 0xd7, 0x39, 0xd1, 0x5f, 0xee, 0xc4, 0xd9, 0xad, 0x6f,
- 0x79, 0x14, 0xdb, 0xc5, 0x36, 0xdb, 0xfc, 0x8c, 0x81, 0x27, 0xfe, 0x32, 0x85, 0xc2, 0xf2, 0xec,
- 0x86, 0xed, 0xad, 0x67, 0xba, 0xcd, 0xfc, 0x30, 0xec, 0xe2, 0xfc, 0x21, 0x49, 0x7e, 0xfc, 0xe9,
- 0x33, 0x9e, 0x12, 0x65, 0x25, 0x88, 0xaa, 0x3c, 0xe1, 0xc5, 0x1b, 0xcd, 0xff, 0x36, 0x42, 0x1a,
- 0x19, 0xa4, 0x4e, 0xbe, 0x44, 0x86, 0x35, 0xd9, 0x8a, 0x77, 0x7f, 0xfb, 0x52, 0xbd, 0x5e, 0x0f,
- 0x84, 0xbc, 0x09, 0x63, 0x82, 0x78, 0x29, 0x2b, 0x4e, 0x7d, 0xd0, 0x10, 0x62, 0x72, 0x2e, 0xe6,
- 0xea, 0x4e, 0x0b, 0xf1, 0x05, 0x2c, 0xcd, 0x28, 0x62, 0x11, 0x9f, 0xc8, 0x15, 0x18, 0x0e, 0x4e,
- 0x56, 0x1f, 0xd3, 0x2d, 0x33, 0x5d, 0xb7, 0xca, 0xd0, 0x91, 0x33, 0x69, 0x9e, 0xc4, 0x7c, 0x86,
- 0x39, 0xbb, 0x65, 0x09, 0x29, 0xa4, 0x5d, 0xb6, 0x9a, 0xcb, 0xf8, 0xb8, 0x3a, 0x02, 0x24, 0x4d,
- 0x61, 0xe4, 0xa6, 0x48, 0x35, 0x4b, 0x1c, 0x1c, 0xa7, 0x22, 0x7a, 0x51, 0x74, 0x1f, 0x8e, 0x25,
- 0xde, 0xfd, 0x5f, 0x71, 0x5a, 0x35, 0x9b, 0x3f, 0x12, 0x7b, 0xdc, 0x09, 0xc6, 0x9f, 0xed, 0x83,
- 0x03, 0xb1, 0x5b, 0xea, 0xe8, 0x78, 0x3f, 0xba, 0x0f, 0x3c, 0xae, 0xc1, 0x76, 0xaf, 0x63, 0xd7,
- 0xeb, 0xb4, 0xb3, 0x98, 0xf7, 0x26, 0x32, 0x04, 0x98, 0xfe, 0xd0, 0xe3, 0x10, 0x6c, 0xb3, 0x5d,
- 0x76, 0xbd, 0xcf, 0x42, 0xce, 0xc1, 0xb9, 0xe1, 0xef, 0xbf, 0xb7, 0x4f, 0x34, 0x95, 0xc5, 0x1f,
- 0x91, 0xf7, 0x20, 0xdb, 0x14, 0xef, 0x41, 0x06, 0x7b, 0xef, 0x41, 0x3e, 0x66, 0x84, 0xde, 0xd2,
- 0x69, 0x95, 0x42, 0xe6, 0x80, 0x86, 0x5f, 0x27, 0x9c, 0xcd, 0xfa, 0x3a, 0x21, 0x8a, 0x52, 0xbe,
- 0x51, 0x10, 0x57, 0x65, 0xe2, 0xad, 0x7e, 0xae, 0xe7, 0x94, 0xe6, 0xef, 0x8a, 0x13, 0xac, 0x04,
- 0x70, 0x24, 0xf9, 0x22, 0xf4, 0xcf, 0xd9, 0xd2, 0x59, 0x1c, 0xd1, 0x13, 0x1c, 0x78, 0x44, 0xc1,
- 0xa0, 0x7c, 0xe8, 0x59, 0xf7, 0x9e, 0x48, 0xd0, 0xcc, 0x01, 0xed, 0x43, 0x25, 0xbc, 0x5f, 0x14,
- 0x07, 0xe0, 0xe1, 0x2b, 0xd3, 0x7c, 0x4c, 0xbf, 0x23, 0xc2, 0x47, 0x25, 0x92, 0x1f, 0x4a, 0xd6,
- 0xdf, 0x35, 0x60, 0x3c, 0xd6, 0xfb, 0x89, 0xae, 0xff, 0xf0, 0x8a, 0xe9, 0x8b, 0xae, 0x98, 0x98,
- 0x09, 0xec, 0x4f, 0xb8, 0xce, 0xbb, 0x85, 0x6b, 0x08, 0x2f, 0xa4, 0x3d, 0xa7, 0x69, 0x57, 0xaf,
- 0x3e, 0xa0, 0xd5, 0xae, 0xaf, 0xec, 0x0b, 0x94, 0xde, 0xea, 0x36, 0x3c, 0xbb, 0xdd, 0xb0, 0x69,
- 0x27, 0xd3, 0xdc, 0xae, 0xe1, 0xf5, 0x66, 0x16, 0x74, 0xf2, 0x96, 0x1e, 0x9a, 0xb2, 0x35, 0x8f,
- 0x18, 0x03, 0x60, 0xe6, 0x59, 0x91, 0x8a, 0xcd, 0x66, 0xf8, 0xae, 0x67, 0xdd, 0xa3, 0xd7, 0x3a,
- 0x56, 0xef, 0x91, 0xe6, 0x14, 0x6c, 0xab, 0xfb, 0xbf, 0x29, 0x15, 0xe7, 0x3e, 0xf8, 0xd3, 0xfc,
- 0x4d, 0x99, 0x69, 0x1d, 0x03, 0x45, 0x02, 0xcf, 0xc2, 0x56, 0xd6, 0x19, 0xcf, 0x37, 0x54, 0x3e,
- 0x95, 0xc3, 0x73, 0x50, 0x0e, 0x40, 0x6e, 0x43, 0xef, 0x96, 0xad, 0xc2, 0x71, 0xe8, 0x13, 0xb7,
- 0xe4, 0x45, 0x19, 0x47, 0x33, 0x42, 0x43, 0xbf, 0xcd, 0x25, 0xb4, 0x16, 0xec, 0xd7, 0x6c, 0xd7,
- 0x5b, 0x75, 0x3a, 0xf6, 0x4f, 0xb2, 0x47, 0x9c, 0x31, 0x3e, 0x3b, 0x61, 0x3e, 0x3b, 0x41, 0x09,
- 0x14, 0xc2, 0x12, 0xf8, 0x20, 0x9e, 0x0b, 0x25, 0x61, 0x45, 0x11, 0x9c, 0x86, 0x01, 0x7c, 0x9b,
- 0xca, 0xe7, 0xe7, 0x19, 0x9c, 0x9f, 0x5d, 0xf1, 0xf9, 0xb9, 0xd1, 0xf2, 0xca, 0xd8, 0x59, 0x9e,
- 0x42, 0xc6, 0x31, 0xbb, 0xa9, 0x04, 0x9b, 0x9f, 0x17, 0x67, 0x51, 0x89, 0xd0, 0x48, 0xd8, 0x07,
- 0x80, 0xf0, 0xe3, 0x54, 0x06, 0x55, 0xc9, 0x43, 0xe4, 0x18, 0x03, 0xe4, 0xc8, 0xf9, 0xfb, 0xd9,
- 0x59, 0x18, 0x60, 0x68, 0xdc, 0x94, 0xe3, 0xee, 0x04, 0x41, 0x21, 0xa0, 0x79, 0x16, 0x03, 0x28,
- 0xbc, 0x4b, 0xe2, 0x3b, 0xd4, 0x4c, 0x2b, 0xe7, 0x2d, 0x8c, 0xa2, 0x22, 0x90, 0xc8, 0xe7, 0x65,
- 0xd8, 0x86, 0x3b, 0x5f, 0xd4, 0xc2, 0x67, 0xb5, 0xa9, 0xc9, 0x02, 0x5c, 0x00, 0xc9, 0x32, 0x1e,
- 0xa1, 0xcf, 0x81, 0xcb, 0xa1, 0xa7, 0x12, 0xbf, 0x2a, 0x8b, 0x3a, 0x64, 0x1b, 0xbd, 0x57, 0xd4,
- 0xe1, 0x1e, 0xec, 0x08, 0x7d, 0xd2, 0x87, 0xf9, 0x97, 0x7a, 0xcc, 0xe6, 0xb0, 0x8b, 0x92, 0xd7,
- 0x53, 0xf2, 0x51, 0x51, 0xcb, 0x69, 0xde, 0xb2, 0x5b, 0x22, 0x8b, 0x40, 0x9f, 0x8b, 0xff, 0x96,
- 0x7c, 0x4d, 0x14, 0x85, 0xea, 0x15, 0x33, 0x09, 0xa9, 0x57, 0xb6, 0x68, 0x0b, 0x57, 0xc2, 0x3e,
- 0x05, 0x76, 0x39, 0x05, 0xeb, 0xf2, 0xc9, 0x55, 0xac, 0x03, 0x8e, 0xff, 0x26, 0x4c, 0xf0, 0xe4,
- 0xfa, 0xa6, 0xdd, 0x92, 0xd9, 0x15, 0x62, 0x42, 0x0e, 0xeb, 0x32, 0xec, 0x83, 0xdc, 0x8c, 0xd7,
- 0xa2, 0x03, 0x98, 0x1f, 0x85, 0xed, 0x77, 0xda, 0xb4, 0x75, 0xc3, 0x5f, 0x75, 0xa9, 0x5b, 0xb0,
- 0x4d, 0xce, 0xcd, 0x19, 0xbc, 0xf6, 0x0c, 0x0e, 0x98, 0x69, 0x79, 0x7c, 0x10, 0x17, 0x56, 0x18,
- 0x30, 0x71, 0x6a, 0xd4, 0x5b, 0xea, 0x10, 0x30, 0x82, 0x3c, 0x7f, 0x0a, 0x86, 0x64, 0x2a, 0x35,
- 0xd9, 0x09, 0x63, 0xfe, 0xbf, 0x95, 0xd7, 0x5b, 0x6e, 0x9b, 0x56, 0xed, 0x15, 0x9b, 0xd6, 0xc6,
- 0xb6, 0x90, 0x6d, 0xd0, 0x37, 0xd7, 0x5d, 0x1f, 0x33, 0xc8, 0x20, 0xf4, 0xdf, 0xa5, 0x8d, 0xc6,
- 0x58, 0xe1, 0xf9, 0x37, 0x60, 0x67, 0xd2, 0x23, 0x7a, 0x1f, 0x41, 0x00, 0x96, 0x21, 0x1e, 0xdb,
- 0x42, 0x26, 0x60, 0x74, 0xa1, 0xe3, 0x34, 0xdf, 0x74, 0x3a, 0xae, 0xb7, 0xe4, 0xcc, 0x51, 0xd7,
- 0x1b, 0x33, 0x44, 0xa3, 0xff, 0x6b, 0xc9, 0x61, 0x9f, 0xc6, 0x0a, 0x33, 0x5f, 0xb9, 0x07, 0x5b,
- 0x19, 0xa3, 0xe4, 0x5d, 0x03, 0x76, 0xdd, 0x3c, 0x19, 0x89, 0x8f, 0xe6, 0x1c, 0xe7, 0x1e, 0x39,
- 0xaf, 0x2b, 0x29, 0xa3, 0x8f, 0xcc, 0x8a, 0x17, 0x36, 0x04, 0xcb, 0xe5, 0x6c, 0xce, 0x7e, 0xec,
- 0xdd, 0x7f, 0xf9, 0xe5, 0xc2, 0x05, 0x72, 0xae, 0x94, 0x5c, 0x7b, 0xaa, 0x77, 0x64, 0x54, 0xba,
- 0x79, 0x52, 0xd2, 0x5b, 0x7a, 0x28, 0xa7, 0xf5, 0x11, 0xf9, 0xa2, 0x01, 0xa3, 0x37, 0x4f, 0xca,
- 0x50, 0x97, 0xf1, 0x73, 0x2a, 0x8d, 0xa6, 0xa4, 0xc0, 0xba, 0x78, 0x3a, 0x27, 0x14, 0xf2, 0x70,
- 0x81, 0xf1, 0x70, 0x9a, 0x9c, 0x54, 0xf0, 0xe0, 0xb6, 0x1d, 0x4f, 0x49, 0xfd, 0x6f, 0x1b, 0x30,
- 0x91, 0x50, 0xf0, 0x88, 0x9c, 0xd0, 0xd1, 0x92, 0x58, 0x3a, 0xa9, 0x38, 0x93, 0x07, 0x04, 0x69,
- 0x3f, 0xc6, 0x68, 0x3f, 0x4c, 0x0e, 0x95, 0xf4, 0xc5, 0xc6, 0x90, 0xaa, 0x3f, 0x35, 0x80, 0xc4,
- 0x2b, 0x0c, 0x91, 0xd3, 0x79, 0x2b, 0x12, 0x71, 0x82, 0x5f, 0xda, 0x58, 0x21, 0x23, 0xf3, 0x3c,
- 0x23, 0xfa, 0x14, 0x99, 0x49, 0x21, 0xba, 0xe4, 0xc6, 0x49, 0xfd, 0xa2, 0x01, 0xe3, 0x31, 0xd4,
- 0x7a, 0x7d, 0x51, 0x55, 0xdf, 0x28, 0x9e, 0xce, 0x09, 0x85, 0xe4, 0x9f, 0x63, 0xe4, 0x9f, 0x24,
- 0x27, 0x72, 0x93, 0x4f, 0xbe, 0x60, 0xc0, 0x58, 0xb4, 0x52, 0x12, 0x39, 0x99, 0x65, 0xde, 0x23,
- 0x0e, 0xba, 0x78, 0x2a, 0x1f, 0x10, 0x92, 0x7e, 0x96, 0x91, 0x3e, 0x43, 0x8e, 0xa7, 0x91, 0x4e,
- 0xa3, 0x44, 0xfe, 0x89, 0x01, 0xa3, 0x91, 0xca, 0x43, 0x44, 0xab, 0xb0, 0xc9, 0xd5, 0x9a, 0x8a,
- 0x27, 0x73, 0xc1, 0x64, 0xb4, 0x32, 0xf2, 0xef, 0x48, 0x41, 0xa6, 0xd2, 0x43, 0x94, 0xff, 0x23,
- 0x26, 0xf9, 0x68, 0xe5, 0x24, 0x92, 0x87, 0x98, 0x6c, 0x92, 0x57, 0x15, 0x67, 0xca, 0x2e, 0xf9,
- 0x68, 0x4d, 0x29, 0xf2, 0x2d, 0x03, 0x76, 0x25, 0x96, 0xa9, 0x21, 0x67, 0x33, 0x51, 0x92, 0x50,
- 0x35, 0xa9, 0x78, 0x6e, 0x03, 0x90, 0xc8, 0xc8, 0x0d, 0xc6, 0xc8, 0x15, 0x32, 0x9b, 0x99, 0x91,
- 0x20, 0x9a, 0x90, 0xed, 0xfc, 0x1b, 0x03, 0x26, 0x93, 0x0b, 0xf0, 0x90, 0xfc, 0x04, 0xca, 0xf9,
- 0x39, 0xbf, 0x11, 0x50, 0x64, 0xee, 0x32, 0x63, 0xee, 0x2c, 0x79, 0x69, 0x43, 0xcc, 0xb9, 0xe4,
- 0xe7, 0x0b, 0x70, 0x30, 0x43, 0x7d, 0x24, 0xb2, 0xa0, 0xa5, 0x31, 0x73, 0x11, 0xa9, 0xe2, 0xb5,
- 0x4d, 0xe3, 0x41, 0xc6, 0xdf, 0x64, 0x8c, 0xbf, 0x46, 0xee, 0xa4, 0x32, 0xce, 0x91, 0x56, 0x44,
- 0x43, 0xc5, 0x43, 0xb4, 0x95, 0x50, 0x9d, 0xa7, 0xd2, 0x43, 0xf6, 0xf3, 0x11, 0xf9, 0x54, 0x01,
- 0x9e, 0xcd, 0x52, 0x31, 0x8a, 0x6c, 0x96, 0x15, 0x39, 0xff, 0xd7, 0x37, 0x8f, 0x08, 0x85, 0xb2,
- 0xc8, 0x84, 0xf2, 0x2a, 0xb9, 0xfe, 0x98, 0x84, 0xe2, 0x92, 0xcf, 0x18, 0x30, 0x1c, 0x28, 0x67,
- 0x42, 0xa6, 0xb5, 0x1e, 0x28, 0x56, 0x81, 0xa5, 0x58, 0xca, 0xdc, 0x1f, 0x59, 0x78, 0x81, 0xb1,
- 0x70, 0x88, 0x1c, 0xd4, 0xc5, 0x36, 0x78, 0xa4, 0x4e, 0x7e, 0xcd, 0x00, 0x08, 0x54, 0xa8, 0x39,
- 0x96, 0x6d, 0x30, 0x41, 0xdb, 0x74, 0xd6, 0xee, 0x48, 0xda, 0x19, 0x46, 0xda, 0x09, 0x52, 0xca,
- 0x40, 0x5a, 0xc8, 0x6c, 0xfc, 0x8e, 0x01, 0xa3, 0x91, 0xba, 0x30, 0x7a, 0x57, 0x94, 0x5c, 0xce,
- 0x46, 0xef, 0x8a, 0x14, 0x85, 0x67, 0xcc, 0xe3, 0x8c, 0xea, 0xe7, 0xc9, 0x11, 0x1d, 0xd5, 0x2b,
- 0xdd, 0x46, 0xa3, 0x22, 0xa4, 0xfa, 0x4e, 0xbc, 0xf6, 0xcf, 0x89, 0xec, 0x23, 0x67, 0x0a, 0x0e,
- 0x93, 0xab, 0xca, 0x64, 0x0b, 0x6c, 0x03, 0xb4, 0x86, 0xa4, 0xfc, 0x7b, 0x06, 0xec, 0x08, 0xc5,
- 0xcb, 0xe4, 0x78, 0xda, 0x04, 0xc7, 0x02, 0xf2, 0x13, 0x39, 0x20, 0x32, 0x06, 0x57, 0x8c, 0x66,
- 0x59, 0x1c, 0x37, 0x44, 0xf1, 0x57, 0x0d, 0x18, 0x8b, 0x26, 0xd1, 0xeb, 0x5d, 0xbc, 0xa2, 0x7c,
- 0x8c, 0xde, 0xc5, 0xab, 0xaa, 0x90, 0x98, 0x0b, 0x8c, 0xf4, 0x57, 0xc8, 0xe5, 0x54, 0xd2, 0x43,
- 0xfa, 0x5c, 0x7a, 0x18, 0x3a, 0x93, 0x7d, 0x44, 0xfe, 0xd5, 0x80, 0x29, 0x55, 0x0d, 0x12, 0xa2,
- 0xdd, 0xad, 0xa5, 0x14, 0xab, 0x29, 0x5e, 0xdc, 0x18, 0x70, 0x46, 0x73, 0xa8, 0xe2, 0x0f, 0x79,
- 0x93, 0xc1, 0x98, 0xb8, 0xbb, 0x7f, 0x44, 0xfe, 0xce, 0xdf, 0x8e, 0xc4, 0x6a, 0x05, 0xa5, 0x6c,
- 0x47, 0x54, 0x25, 0x8e, 0x52, 0xb6, 0x23, 0xca, 0x92, 0x44, 0x79, 0xf8, 0xaa, 0x2c, 0xaf, 0x63,
- 0x4a, 0xac, 0x76, 0x06, 0xdf, 0x31, 0x60, 0x2c, 0x5a, 0x84, 0x58, 0xaf, 0x89, 0x8a, 0xaa, 0xc8,
- 0xc5, 0x53, 0xf9, 0x80, 0x90, 0xa3, 0xd3, 0x8c, 0xa3, 0x12, 0x39, 0x56, 0xd2, 0x14, 0x97, 0x76,
- 0x63, 0x64, 0x7f, 0xdb, 0x80, 0x3d, 0x3d, 0xed, 0x66, 0xbe, 0xd1, 0xa6, 0xad, 0x27, 0xb0, 0x92,
- 0x32, 0xcd, 0x88, 0x27, 0xe8, 0xab, 0x64, 0x58, 0x53, 0x5f, 0x43, 0x4d, 0x0b, 0x27, 0x3d, 0xa6,
- 0x6b, 0x5a, 0x62, 0x55, 0x99, 0x74, 0x4d, 0x4b, 0x2e, 0x23, 0x93, 0xba, 0x8f, 0xe1, 0x2e, 0x2f,
- 0x9a, 0xc7, 0x19, 0x32, 0x72, 0xef, 0x19, 0x30, 0xa5, 0x2a, 0x57, 0xa3, 0x37, 0x0e, 0x29, 0xa5,
- 0x72, 0xf4, 0xc6, 0x21, 0xad, 0x42, 0x8e, 0x79, 0x8d, 0xb1, 0x36, 0x4b, 0x5e, 0x4e, 0x3f, 0x08,
- 0xd2, 0x33, 0xf8, 0x97, 0x06, 0x4c, 0x24, 0x9c, 0x38, 0x91, 0x97, 0xb2, 0x91, 0x17, 0xf3, 0x41,
- 0x67, 0x72, 0xc3, 0x21, 0x47, 0x2f, 0x33, 0x8e, 0xce, 0x91, 0x33, 0xe9, 0x1c, 0x25, 0xfb, 0xa3,
- 0x7f, 0x34, 0x60, 0x32, 0xb9, 0x32, 0x81, 0x7e, 0x7b, 0xa3, 0xad, 0x8a, 0xa1, 0xdf, 0xde, 0xe8,
- 0x0b, 0x21, 0x98, 0x37, 0x19, 0x4b, 0x0b, 0x64, 0x3e, 0x23, 0x4b, 0xfa, 0x35, 0xf5, 0x3f, 0x06,
- 0xec, 0xd5, 0x97, 0x41, 0x20, 0xb3, 0xd9, 0x1d, 0x8e, 0x8a, 0xdf, 0xb9, 0xcd, 0xa0, 0x40, 0xbe,
- 0xdf, 0x60, 0x7c, 0x2f, 0x92, 0xdb, 0x1b, 0xe2, 0x5b, 0xed, 0xbf, 0xfe, 0x3d, 0xb4, 0x18, 0x23,
- 0x5e, 0xec, 0x42, 0x0e, 0xc5, 0x8b, 0xf9, 0xb2, 0x8b, 0x1b, 0x03, 0xde, 0x28, 0xbf, 0x19, 0xfd,
- 0xda, 0x7f, 0x1a, 0xb0, 0x2f, 0xaa, 0x62, 0x51, 0x37, 0xf1, 0x84, 0x54, 0x3b, 0x07, 0xcb, 0xb9,
- 0x1c, 0xc7, 0xef, 0x1b, 0x30, 0x1e, 0x4b, 0x7a, 0xd7, 0x9f, 0x37, 0xaa, 0x6a, 0x53, 0xe8, 0xcf,
- 0x1b, 0x95, 0x99, 0xf5, 0xe6, 0x09, 0xc6, 0xda, 0x0b, 0xe4, 0x68, 0x06, 0xd3, 0x8a, 0xf4, 0x7d,
- 0xc9, 0x80, 0xb1, 0x58, 0x4d, 0x85, 0x93, 0x79, 0x86, 0xcf, 0xe4, 0xc0, 0x55, 0x79, 0xf6, 0xe6,
- 0x25, 0x46, 0xf2, 0x19, 0x72, 0x3a, 0x33, 0xc9, 0x21, 0xcb, 0xf9, 0x6d, 0x03, 0x76, 0x2b, 0x32,
- 0xe3, 0xf5, 0x57, 0x1d, 0xfa, 0x94, 0xfc, 0xe2, 0x85, 0x0d, 0xc1, 0x22, 0x4f, 0xf3, 0x8c, 0xa7,
- 0xcb, 0xe4, 0x62, 0x56, 0x9e, 0x84, 0x9d, 0x08, 0xb1, 0xf6, 0xe7, 0x06, 0xec, 0x4c, 0xca, 0x1b,
- 0x24, 0x67, 0xb2, 0x45, 0x7a, 0xb1, 0xfc, 0xfd, 0xe2, 0xd9, 0xfc, 0x80, 0x19, 0x77, 0xe0, 0xf2,
- 0xef, 0xe8, 0xa2, 0xf8, 0x9c, 0x01, 0x13, 0xe2, 0x08, 0x25, 0x90, 0xae, 0xa8, 0x3f, 0xce, 0x88,
- 0xa7, 0x3c, 0xea, 0x8f, 0x33, 0x12, 0xf2, 0x20, 0x53, 0x8f, 0x33, 0x9a, 0x0c, 0xa6, 0xc2, 0xf2,
- 0x0f, 0xc9, 0x2f, 0x19, 0x30, 0x24, 0x93, 0x1b, 0xc9, 0x8b, 0xba, 0xb1, 0xa2, 0xc9, 0x91, 0xc5,
- 0x63, 0x19, 0x7b, 0x23, 0x5d, 0x47, 0x18, 0x5d, 0x26, 0xd9, 0xaf, 0xa0, 0xab, 0x2d, 0xc9, 0xf8,
- 0x43, 0x03, 0xc6, 0x63, 0x65, 0x10, 0xf4, 0xf6, 0x44, 0x55, 0x73, 0x41, 0x6f, 0x4f, 0x94, 0xb5,
- 0x16, 0xcc, 0x53, 0x8c, 0xd8, 0x69, 0xf2, 0x62, 0x1a, 0xb1, 0x21, 0xc5, 0xfd, 0xb2, 0x01, 0x13,
- 0x09, 0x19, 0xfe, 0x24, 0xe3, 0x25, 0x50, 0x4c, 0xc2, 0x67, 0x72, 0xc3, 0x65, 0x3c, 0x49, 0x0f,
- 0x90, 0x1f, 0x51, 0xdb, 0x7f, 0x36, 0xa0, 0xa8, 0xae, 0x1c, 0x40, 0x2e, 0xe5, 0xa3, 0x28, 0x3a,
- 0x1b, 0x97, 0x37, 0x0a, 0x9e, 0xd1, 0xbe, 0x28, 0xf9, 0x0a, 0x4d, 0xd3, 0xc7, 0x0b, 0x70, 0x30,
- 0x43, 0xbe, 0xbe, 0xfe, 0x04, 0x3a, 0x7b, 0x29, 0x0a, 0xfd, 0x09, 0x74, 0x8e, 0xc2, 0x01, 0xe6,
- 0x6d, 0xc6, 0xfe, 0x75, 0xb2, 0xa0, 0x32, 0x46, 0xf2, 0xd9, 0x54, 0x36, 0x41, 0x7c, 0xdd, 0x80,
- 0x89, 0x84, 0xe4, 0x7d, 0xbd, 0xbe, 0xaa, 0xeb, 0x0d, 0xe8, 0xf5, 0x55, 0x53, 0x67, 0xc0, 0x7c,
- 0x85, 0x31, 0x76, 0x9e, 0x9c, 0x55, 0xcd, 0xab, 0x2c, 0x53, 0x14, 0xa8, 0xd4, 0x14, 0x62, 0xe5,
- 0x9b, 0x06, 0xec, 0x56, 0x64, 0xf5, 0xeb, 0xdd, 0xa1, 0xbe, 0x28, 0x81, 0xde, 0x1d, 0xa6, 0x14,
- 0x23, 0x48, 0x75, 0xf1, 0x94, 0xc1, 0x2b, 0x79, 0xfa, 0x5b, 0x03, 0x26, 0x93, 0x93, 0xfe, 0xf5,
- 0x11, 0xa4, 0xb6, 0x62, 0x81, 0x3e, 0x82, 0xd4, 0x57, 0x2a, 0x30, 0xaf, 0x30, 0x86, 0x2e, 0x91,
- 0x0b, 0x59, 0xe7, 0x09, 0x0b, 0x59, 0xc5, 0xa6, 0x4a, 0x51, 0x9e, 0x40, 0x3f, 0x55, 0xfa, 0x42,
- 0x2c, 0xfa, 0xa9, 0x4a, 0xa9, 0x87, 0x90, 0x3a, 0x55, 0xfc, 0xc9, 0xa8, 0x48, 0x3e, 0x48, 0x3a,
- 0xcd, 0x1a, 0x8f, 0xe7, 0x52, 0xa7, 0x9f, 0xec, 0x24, 0xa4, 0xfc, 0xeb, 0x5d, 0x96, 0x32, 0x69,
- 0xdf, 0x9c, 0x61, 0x1c, 0xbc, 0x48, 0x9e, 0x57, 0x70, 0x90, 0x90, 0x3a, 0x4d, 0xfe, 0xc2, 0x80,
- 0xa9, 0xc5, 0x5e, 0x32, 0xf6, 0x13, 0xa4, 0x3e, 0xed, 0xbd, 0x43, 0x30, 0x25, 0x3d, 0xca, 0xc5,
- 0x97, 0x44, 0x62, 0x4f, 0x38, 0x57, 0x5f, 0x6f, 0xc6, 0xd4, 0x75, 0x07, 0xf4, 0x66, 0x4c, 0x53,
- 0x8b, 0x20, 0x35, 0x6a, 0x08, 0x11, 0x2f, 0x12, 0xe9, 0xc9, 0xbb, 0x06, 0x4c, 0x26, 0xa7, 0x4f,
- 0xeb, 0x97, 0xb9, 0x36, 0x67, 0x5b, 0xbf, 0xcc, 0xf5, 0xd9, 0xda, 0xe6, 0x1c, 0xe3, 0xe3, 0x22,
- 0x39, 0xaf, 0xe0, 0x23, 0x94, 0xc8, 0x1c, 0x4c, 0xdc, 0x0e, 0x3c, 0x26, 0xf0, 0x27, 0x25, 0x21,
- 0x79, 0x59, 0x3f, 0x29, 0xea, 0x24, 0x6b, 0xfd, 0xa4, 0x68, 0x12, 0xaf, 0x53, 0x27, 0x25, 0x31,
- 0x2b, 0x9b, 0xfc, 0x99, 0x01, 0xe3, 0xb1, 0x1c, 0x5b, 0xfd, 0x92, 0x50, 0x65, 0x5e, 0xeb, 0x97,
- 0x84, 0x32, 0x91, 0x37, 0xf5, 0x70, 0x2d, 0x9e, 0xe5, 0x5b, 0x7a, 0x18, 0xc8, 0xf0, 0x7e, 0x44,
- 0xfe, 0xda, 0x80, 0xdd, 0x8a, 0x64, 0x53, 0xbd, 0xa1, 0xd5, 0xe7, 0xf8, 0xea, 0x0d, 0x6d, 0x4a,
- 0x76, 0x6b, 0xea, 0x42, 0x17, 0xaf, 0x5f, 0x13, 0x72, 0x5f, 0xc9, 0x37, 0x0c, 0xd8, 0xa3, 0x4c,
- 0x23, 0x25, 0x17, 0x33, 0x6a, 0x48, 0x62, 0x86, 0x6b, 0xf1, 0xd2, 0x06, 0xa1, 0x91, 0xad, 0x97,
- 0x18, 0x5b, 0xc7, 0xc9, 0x74, 0x16, 0x2d, 0x63, 0xa5, 0x10, 0xfc, 0x0d, 0x98, 0x4b, 0x3e, 0x6b,
- 0xc0, 0x48, 0x38, 0x29, 0x55, 0xb9, 0x0b, 0x4b, 0xcc, 0x6a, 0x55, 0xee, 0xc2, 0x92, 0x33, 0x5d,
- 0xcd, 0x12, 0xa3, 0xf3, 0x28, 0x39, 0xac, 0xda, 0x1d, 0xda, 0x9e, 0x53, 0xe1, 0xe9, 0xa3, 0x36,
- 0xa3, 0xe6, 0xab, 0x06, 0xd6, 0xc0, 0x89, 0x65, 0x8a, 0xea, 0x57, 0x83, 0x2a, 0x3d, 0x55, 0xbf,
- 0x1a, 0x94, 0xe9, 0xa8, 0xa9, 0xcf, 0x4e, 0x38, 0xcd, 0x32, 0xcc, 0x28, 0x3d, 0x0c, 0xe5, 0xc0,
- 0xb2, 0x58, 0x77, 0x32, 0x39, 0xd5, 0x54, 0x6f, 0x65, 0xb5, 0x19, 0xae, 0x7a, 0x2b, 0xab, 0xcf,
- 0x6c, 0x4d, 0x3d, 0x5a, 0x58, 0x95, 0xe0, 0x95, 0x50, 0x06, 0x2c, 0x0b, 0xdb, 0x13, 0xaa, 0x8c,
- 0xe8, 0x4d, 0xab, 0xba, 0xa6, 0x89, 0xde, 0xb4, 0x6a, 0xca, 0x99, 0xa4, 0x86, 0xed, 0xc1, 0x5a,
- 0x27, 0x15, 0x67, 0x05, 0x3d, 0x9f, 0x1b, 0xf0, 0x12, 0x7f, 0x6f, 0xc0, 0x1e, 0x65, 0x05, 0x13,
- 0xfd, 0x8a, 0x4e, 0xab, 0x90, 0xa2, 0x5f, 0xd1, 0xa9, 0x65, 0x53, 0xcc, 0x8b, 0x8c, 0xb9, 0x97,
- 0xc8, 0x29, 0x55, 0x44, 0x98, 0xc0, 0x59, 0x45, 0xd6, 0x66, 0xfa, 0xa2, 0x01, 0x63, 0xd1, 0x7c,
- 0x58, 0xfd, 0xe9, 0xa2, 0x22, 0xb7, 0xb7, 0x78, 0x2a, 0x1f, 0x50, 0x46, 0xea, 0x7b, 0xff, 0x15,
- 0x21, 0x42, 0x86, 0x42, 0xf4, 0xcf, 0x1b, 0xb0, 0x33, 0x21, 0xb3, 0xd4, 0xd5, 0xbf, 0x6f, 0x48,
- 0xca, 0x7f, 0xd5, 0xbf, 0x6f, 0x48, 0x4c, 0x7e, 0x4d, 0xbd, 0x9a, 0x5d, 0x66, 0x50, 0x22, 0x8d,
- 0x59, 0x1e, 0xe8, 0x7e, 0xb2, 0x00, 0x07, 0x52, 0x93, 0x1a, 0xc9, 0x7c, 0x9e, 0x03, 0x74, 0x55,
- 0xa2, 0x6c, 0xf1, 0xea, 0x26, 0xb1, 0x20, 0xa7, 0x1f, 0x64, 0x9c, 0x96, 0xc9, 0x62, 0xe6, 0x4b,
- 0x97, 0x6a, 0x0f, 0x97, 0xf6, 0x4c, 0xfe, 0x07, 0x06, 0x98, 0xe9, 0xe9, 0x64, 0xe4, 0x6a, 0xba,
- 0x72, 0x65, 0xc8, 0x6e, 0x2b, 0x2e, 0x6c, 0x16, 0x4d, 0xc6, 0xe0, 0xc0, 0x62, 0x48, 0xf8, 0x9d,
- 0x44, 0xc5, 0x77, 0xa9, 0xbd, 0x64, 0x36, 0xf2, 0xc7, 0x06, 0x8c, 0x45, 0xb3, 0xd1, 0x52, 0x5e,
- 0xaf, 0x26, 0xa7, 0xbd, 0xa5, 0xbc, 0x5e, 0x55, 0x24, 0xbc, 0xa5, 0xbe, 0x24, 0xb2, 0xf8, 0xc9,
- 0x8c, 0xeb, 0x43, 0xf2, 0xc4, 0xab, 0xd2, 0x43, 0x4c, 0x26, 0x7b, 0x44, 0xfe, 0xca, 0x00, 0x12,
- 0x4f, 0x90, 0xd2, 0xdf, 0xbd, 0x2b, 0xf3, 0xd9, 0xf4, 0x77, 0xef, 0xea, 0x84, 0xb5, 0xd4, 0xd7,
- 0x39, 0x98, 0x2e, 0x16, 0x84, 0x15, 0x3c, 0x74, 0x1e, 0x05, 0xb8, 0xf9, 0xaa, 0x01, 0x13, 0x09,
- 0xf9, 0x67, 0x24, 0x27, 0x5d, 0xd9, 0x1c, 0x94, 0x26, 0xd1, 0x2d, 0x75, 0x57, 0x9f, 0xc0, 0x90,
- 0xdb, 0xe3, 0x88, 0xbd, 0xef, 0x0a, 0x67, 0x60, 0x1d, 0x4f, 0x57, 0xf4, 0x70, 0xfa, 0x9a, 0xde,
- 0xfe, 0x25, 0xa6, 0xad, 0xa5, 0xbe, 0xef, 0xc2, 0x65, 0x8f, 0xb1, 0x71, 0xc8, 0x70, 0xff, 0x86,
- 0x1f, 0x4e, 0x86, 0xf2, 0xd1, 0x48, 0x76, 0x02, 0xb2, 0x65, 0x59, 0x24, 0xa7, 0xbb, 0x99, 0xd3,
- 0x8c, 0xe8, 0x23, 0xe4, 0xb9, 0x4c, 0x44, 0xbb, 0xe4, 0x8f, 0xd8, 0xf5, 0x5b, 0x38, 0xab, 0x2a,
- 0xed, 0xfa, 0x2d, 0x31, 0x33, 0x2d, 0xed, 0xfa, 0x2d, 0x39, 0x31, 0x2d, 0x55, 0xc8, 0xf1, 0xac,
- 0x31, 0xf9, 0x5e, 0xf7, 0x1d, 0x76, 0xdf, 0x19, 0x49, 0x08, 0x23, 0xb9, 0xc8, 0xc8, 0x7a, 0xdf,
- 0xa9, 0x48, 0x6b, 0x4b, 0x3d, 0xec, 0x49, 0xc8, 0x79, 0x23, 0xbf, 0x62, 0x44, 0x52, 0xd6, 0x4a,
- 0xfa, 0x00, 0x29, 0x96, 0x6b, 0x56, 0x3c, 0x9e, 0x1d, 0x00, 0xe9, 0x7c, 0x91, 0xd1, 0xf9, 0x1c,
- 0x79, 0x56, 0x19, 0x44, 0xd1, 0x56, 0xc5, 0x46, 0xa8, 0xb9, 0x7b, 0x5f, 0xff, 0xee, 0x5e, 0xe3,
- 0x1b, 0xdf, 0xdd, 0x6b, 0x7c, 0xe7, 0xbb, 0x7b, 0x8d, 0x5f, 0xf8, 0xde, 0xde, 0x2d, 0xdf, 0xf8,
- 0xde, 0xde, 0x2d, 0xdf, 0xfe, 0xde, 0xde, 0x2d, 0x1f, 0x7a, 0xad, 0x6e, 0x7b, 0xab, 0xdd, 0xe5,
- 0xe9, 0xaa, 0xd3, 0x2c, 0xdd, 0x10, 0x98, 0x6e, 0x5a, 0xcb, 0x6e, 0x0f, 0xef, 0xb1, 0xaa, 0xd3,
- 0xa1, 0xc1, 0x9f, 0xab, 0x96, 0xdd, 0xc2, 0xdb, 0x2e, 0xb7, 0x37, 0xa8, 0xb7, 0xde, 0xa6, 0x6e,
- 0x69, 0x6d, 0x66, 0x79, 0x80, 0xfd, 0x27, 0xfe, 0x27, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xe6,
- 0x22, 0x4d, 0x98, 0xf1, 0x80, 0x00, 0x00,
+ // 6400 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x6b, 0x6c, 0x1c, 0xc9,
+ 0x71, 0xb0, 0x66, 0x49, 0x51, 0x64, 0x51, 0xe2, 0xa3, 0x29, 0x51, 0xd4, 0xde, 0x9d, 0x1e, 0xa3,
+ 0xd3, 0x49, 0xba, 0x3b, 0x71, 0x25, 0x4a, 0x3a, 0xbd, 0x75, 0x47, 0x8a, 0xa2, 0xa4, 0xb3, 0x1e,
+ 0xbc, 0x15, 0xef, 0xce, 0x9f, 0xbf, 0x8b, 0xd7, 0xc3, 0xdd, 0xe6, 0x72, 0xac, 0xdd, 0x9d, 0xd5,
+ 0xce, 0x2c, 0x4f, 0x8c, 0xa0, 0x1f, 0x71, 0x12, 0xc3, 0xb0, 0x81, 0x3c, 0x7f, 0xf8, 0x87, 0x01,
+ 0x07, 0x88, 0x83, 0x04, 0x79, 0x20, 0x01, 0x9c, 0x0b, 0x1c, 0xc4, 0x0e, 0xe2, 0x3c, 0xec, 0x18,
+ 0x08, 0x90, 0xd8, 0xb8, 0x24, 0x76, 0x02, 0xe4, 0xe2, 0xf8, 0x02, 0x04, 0x31, 0x90, 0x38, 0xff,
+ 0x03, 0x24, 0xc1, 0x74, 0x57, 0xf7, 0xce, 0xab, 0x7b, 0x66, 0x48, 0x1d, 0x64, 0x27, 0xbf, 0xc4,
+ 0xed, 0xe9, 0xaa, 0xae, 0xaa, 0xae, 0xae, 0xaa, 0x7e, 0x54, 0x09, 0x0e, 0xd8, 0xad, 0x8f, 0xd3,
+ 0xaa, 0x67, 0xaf, 0xd1, 0x12, 0x7d, 0x50, 0x5d, 0xb5, 0x5a, 0x75, 0x5a, 0x5a, 0x9b, 0x29, 0xdd,
+ 0xef, 0xd2, 0xce, 0xfa, 0x74, 0xbb, 0xe3, 0x78, 0x0e, 0xd9, 0x25, 0xbb, 0x4c, 0x8b, 0x2e, 0xd3,
+ 0x6b, 0x33, 0xc5, 0x9d, 0x75, 0xa7, 0xee, 0xb0, 0x1e, 0x25, 0xff, 0x2f, 0xde, 0xb9, 0xf8, 0x74,
+ 0xdd, 0x71, 0xea, 0x0d, 0x5a, 0xb2, 0xda, 0x76, 0xc9, 0x6a, 0xb5, 0x1c, 0xcf, 0xf2, 0x6c, 0xa7,
+ 0xe5, 0xe2, 0xd7, 0x67, 0x93, 0x47, 0x93, 0x68, 0x79, 0xaf, 0x43, 0xc9, 0xbd, 0x9c, 0x4e, 0x8d,
+ 0x76, 0x96, 0x1d, 0xe7, 0x1e, 0x76, 0x33, 0x93, 0xbb, 0x35, 0xad, 0xce, 0x3d, 0xea, 0x61, 0x9f,
+ 0x83, 0xc9, 0x7d, 0xea, 0xb4, 0x45, 0x5d, 0xdb, 0x8d, 0x8f, 0xe7, 0x74, 0xac, 0x6a, 0x83, 0x96,
+ 0xd6, 0x4e, 0x2c, 0x53, 0xcf, 0x3a, 0x81, 0x3f, 0x79, 0x37, 0xf3, 0x0e, 0xc0, 0xdd, 0xee, 0xb2,
+ 0x55, 0xad, 0x3a, 0xdd, 0x96, 0x47, 0x26, 0x61, 0xc0, 0xeb, 0x58, 0x35, 0xda, 0x99, 0x32, 0xf6,
+ 0x1b, 0x47, 0x86, 0xca, 0xf8, 0x8b, 0x1c, 0x85, 0x31, 0x57, 0xf6, 0xaa, 0xb4, 0x9c, 0x56, 0x95,
+ 0x4e, 0x15, 0xf6, 0x1b, 0x47, 0x76, 0x94, 0x47, 0x7b, 0xed, 0xb7, 0xfd, 0x66, 0xf3, 0x63, 0xf0,
+ 0xf4, 0x6b, 0xbe, 0x9c, 0x7b, 0x58, 0xef, 0xf8, 0x2c, 0xba, 0x65, 0x7a, 0xbf, 0x4b, 0x5d, 0x8f,
+ 0x1c, 0x84, 0x1d, 0x01, 0x54, 0x76, 0x0d, 0x47, 0xda, 0xde, 0x6b, 0xbc, 0x51, 0x23, 0x4f, 0xc1,
+ 0x10, 0xe7, 0xd8, 0xef, 0x50, 0x60, 0x1d, 0x06, 0x79, 0xc3, 0x8d, 0x9a, 0xf9, 0x25, 0x03, 0x9e,
+ 0x51, 0x0c, 0xe1, 0xb6, 0x9d, 0x96, 0x4b, 0xc9, 0x0d, 0x80, 0xe5, 0xee, 0x7a, 0x85, 0xc9, 0xd6,
+ 0x9d, 0x32, 0xf6, 0xf7, 0x1d, 0x19, 0x9e, 0x79, 0x7e, 0x3a, 0x71, 0xc6, 0xa7, 0x23, 0x48, 0xe6,
+ 0x2d, 0xcf, 0x2a, 0x0f, 0x2d, 0x77, 0xd7, 0x39, 0x4a, 0xf2, 0x21, 0x18, 0x76, 0x69, 0xa3, 0x21,
+ 0x70, 0x15, 0x72, 0xe3, 0x02, 0x1f, 0x9c, 0x23, 0x33, 0x7f, 0xc3, 0x80, 0x43, 0x91, 0x3e, 0xfe,
+ 0xd4, 0xdf, 0xa2, 0x9e, 0x55, 0xb3, 0x3c, 0xeb, 0x4d, 0xdb, 0x5b, 0xbd, 0xc5, 0xb8, 0x24, 0xb7,
+ 0x61, 0xb0, 0x89, 0xad, 0x4c, 0x40, 0xc3, 0x33, 0x33, 0xd9, 0xc6, 0x0c, 0xe2, 0x2b, 0x4b, 0x1c,
+ 0x5a, 0x81, 0x92, 0x9d, 0xb0, 0xd5, 0x76, 0xe7, 0xba, 0xeb, 0x53, 0x7d, 0xfb, 0x8d, 0x23, 0x83,
+ 0x65, 0xfe, 0xc3, 0x7c, 0x1a, 0x8a, 0x4c, 0xca, 0x57, 0x71, 0xb0, 0x45, 0xab, 0x63, 0x35, 0xc5,
+ 0x34, 0x9a, 0x1f, 0x81, 0xa7, 0x12, 0xbf, 0xe2, 0x0c, 0x5c, 0x80, 0x81, 0x36, 0x6b, 0x41, 0xea,
+ 0x9f, 0x51, 0x50, 0xcf, 0xc1, 0xe6, 0xfa, 0xbf, 0xf1, 0xde, 0xbe, 0x2d, 0x65, 0x04, 0x31, 0x7f,
+ 0xc6, 0x80, 0xbd, 0x91, 0x09, 0x9e, 0xa7, 0x6d, 0xc7, 0xb5, 0xbd, 0x7c, 0x5a, 0x74, 0x0d, 0xa0,
+ 0xf7, 0x9b, 0x71, 0x3d, 0x3c, 0x73, 0x20, 0x55, 0x8c, 0x8c, 0x18, 0xa3, 0x1c, 0x00, 0x35, 0xbf,
+ 0x6b, 0xc0, 0x3e, 0x25, 0x41, 0xc8, 0xf1, 0xc7, 0x60, 0xb0, 0x86, 0x6d, 0xa8, 0x71, 0xf3, 0x8a,
+ 0xa1, 0x52, 0x30, 0x4d, 0x8b, 0x86, 0xab, 0x2d, 0xaf, 0xb3, 0x5e, 0x96, 0x58, 0x8b, 0xff, 0x1f,
+ 0x76, 0x84, 0x3e, 0x91, 0x31, 0xe8, 0xbb, 0x47, 0xd7, 0x91, 0x75, 0xff, 0x4f, 0x72, 0x0a, 0xb6,
+ 0xae, 0x59, 0x8d, 0x2e, 0x45, 0x66, 0xf7, 0x2a, 0x28, 0x40, 0x34, 0x65, 0xde, 0xf9, 0x7c, 0xe1,
+ 0xac, 0x61, 0xee, 0xc5, 0x65, 0x2b, 0xe6, 0x73, 0xce, 0x6a, 0x58, 0xad, 0x2a, 0x95, 0xf3, 0x6d,
+ 0xe1, 0x9a, 0x8b, 0x7f, 0x47, 0xfe, 0x5f, 0x81, 0xc1, 0x65, 0x6c, 0x43, 0xfe, 0x55, 0xa3, 0x23,
+ 0x28, 0x4e, 0xba, 0x84, 0x32, 0xcf, 0xa0, 0x4a, 0xcd, 0xd6, 0xeb, 0x1d, 0x5a, 0xb7, 0x3c, 0xfa,
+ 0x86, 0xd3, 0xe8, 0x36, 0xa9, 0x98, 0xf2, 0x29, 0xd8, 0x26, 0xa6, 0x92, 0x73, 0x2c, 0x7e, 0x9a,
+ 0x6d, 0xa4, 0x3d, 0x06, 0x88, 0xa4, 0x2d, 0xc2, 0xb8, 0x25, 0x3e, 0x55, 0xd6, 0xd8, 0x37, 0x41,
+ 0xe3, 0x41, 0x05, 0x8d, 0x7c, 0x19, 0x22, 0x9e, 0x31, 0x2b, 0x8c, 0xd8, 0x35, 0xff, 0x5f, 0xf2,
+ 0x88, 0x52, 0x3d, 0x8b, 0x30, 0x88, 0xc4, 0xf1, 0x81, 0x86, 0xca, 0xf2, 0x37, 0x79, 0x06, 0x40,
+ 0x2e, 0x45, 0x6e, 0x50, 0x86, 0xca, 0x43, 0x62, 0x2d, 0xba, 0xe6, 0x0f, 0x84, 0x75, 0x8b, 0xe3,
+ 0x46, 0x76, 0x1c, 0xd8, 0xd3, 0x63, 0x47, 0x2c, 0x81, 0x30, 0x5b, 0x27, 0x15, 0x6c, 0x49, 0x9c,
+ 0xb3, 0x1c, 0x4c, 0x08, 0xaa, 0xea, 0x74, 0x6a, 0xe5, 0xdd, 0x56, 0xe2, 0x57, 0x97, 0xfc, 0x18,
+ 0x4c, 0xf5, 0x06, 0x44, 0xda, 0xc5, 0x78, 0x85, 0xec, 0x62, 0x9c, 0x94, 0x48, 0x82, 0xcd, 0xae,
+ 0xf9, 0x0a, 0x1c, 0x08, 0x33, 0x1c, 0x82, 0x42, 0x89, 0x86, 0x0c, 0x98, 0x11, 0xf1, 0x08, 0x75,
+ 0x30, 0x75, 0x18, 0x50, 0x6e, 0xb3, 0x30, 0xc0, 0xa9, 0x46, 0x9b, 0xa4, 0x22, 0x3a, 0x28, 0x14,
+ 0x61, 0x99, 0x38, 0xa0, 0x79, 0x0d, 0x4a, 0x7c, 0xa0, 0x6e, 0xd5, 0x8f, 0x00, 0xc4, 0x62, 0x58,
+ 0xea, 0x58, 0x2d, 0x77, 0x85, 0x76, 0xe6, 0x69, 0xcb, 0x69, 0xce, 0xd3, 0xaa, 0xdd, 0xb4, 0x1a,
+ 0x82, 0xf0, 0x9d, 0xb0, 0xb5, 0xe6, 0x37, 0x23, 0xd1, 0xfc, 0x87, 0x79, 0x13, 0x8e, 0x67, 0x47,
+ 0x84, 0xf4, 0x4f, 0xc1, 0xb6, 0x1a, 0x6f, 0x62, 0xb8, 0xfa, 0xcb, 0xe2, 0xa7, 0xf9, 0x6a, 0x76,
+ 0x6c, 0x52, 0x45, 0x27, 0x61, 0x80, 0x91, 0x22, 0x14, 0x14, 0x7f, 0x99, 0x9f, 0x34, 0xe0, 0x44,
+ 0x0e, 0x64, 0x48, 0xdb, 0x6b, 0x30, 0xc2, 0xe0, 0x2b, 0x48, 0x92, 0x50, 0xc4, 0x67, 0x95, 0x16,
+ 0x28, 0x80, 0x05, 0x85, 0xbc, 0xa3, 0x16, 0x6c, 0x34, 0xaf, 0xe8, 0x26, 0x55, 0xb2, 0x11, 0x5e,
+ 0x4d, 0x46, 0x74, 0x35, 0xd5, 0xe0, 0xa0, 0x16, 0x09, 0x92, 0x7f, 0x09, 0xb6, 0x6d, 0xc0, 0x2e,
+ 0x08, 0x18, 0xf3, 0x23, 0xb1, 0x80, 0x44, 0x58, 0xd8, 0x3c, 0xee, 0x4a, 0x6a, 0x4a, 0x21, 0xa8,
+ 0x29, 0x6f, 0xa9, 0x7c, 0xa1, 0x24, 0xfe, 0x7c, 0xc8, 0xf3, 0x64, 0xb1, 0xfb, 0xb2, 0xbf, 0xb9,
+ 0x08, 0xbb, 0x39, 0xf6, 0xb6, 0xe3, 0x71, 0xde, 0x82, 0x0a, 0xe2, 0x7a, 0x96, 0xd7, 0x75, 0x45,
+ 0x2c, 0xc8, 0x7f, 0xa5, 0xd9, 0xaf, 0x37, 0x61, 0x2a, 0x8e, 0x51, 0x46, 0x05, 0xdb, 0x78, 0x47,
+ 0x21, 0x66, 0xa5, 0x37, 0x96, 0xc0, 0x65, 0x01, 0x61, 0x9e, 0x86, 0xc9, 0x08, 0xe2, 0x4c, 0xb6,
+ 0x61, 0x29, 0xc6, 0xa1, 0x24, 0xe7, 0x1c, 0x0c, 0xf0, 0x6e, 0x28, 0xb6, 0x0c, 0xd4, 0x20, 0x80,
+ 0xf9, 0xad, 0x02, 0xec, 0x91, 0x68, 0x65, 0xe0, 0x95, 0x85, 0x20, 0x7f, 0x9a, 0x1b, 0x76, 0xd3,
+ 0xe6, 0x01, 0x49, 0x7f, 0x99, 0xff, 0x20, 0x2f, 0x03, 0xb0, 0x10, 0xb3, 0xe2, 0xda, 0x35, 0xca,
+ 0x02, 0xb1, 0x91, 0x99, 0xfd, 0x0a, 0x7a, 0xd8, 0x78, 0x77, 0xed, 0x1a, 0x2d, 0x0f, 0x39, 0xe2,
+ 0x4f, 0x52, 0x81, 0x3d, 0x0c, 0x53, 0xa5, 0xda, 0x6d, 0x76, 0x1b, 0x96, 0x0f, 0x54, 0x69, 0x39,
+ 0xfe, 0x0a, 0xb6, 0x1a, 0x53, 0xfd, 0x3e, 0x0d, 0x73, 0x07, 0xfd, 0xc0, 0xe6, 0xef, 0xdf, 0xdb,
+ 0xf7, 0x54, 0xd5, 0x71, 0x9b, 0x8e, 0xeb, 0xd6, 0xee, 0x4d, 0xdb, 0x4e, 0xa9, 0x69, 0x79, 0xab,
+ 0xd3, 0x37, 0x69, 0xdd, 0xaa, 0xae, 0xcf, 0xd3, 0x6a, 0x79, 0x37, 0xc3, 0x72, 0x45, 0x22, 0xb9,
+ 0x8d, 0x38, 0x12, 0x07, 0xb8, 0xdf, 0xb5, 0x5a, 0x9e, 0xed, 0xad, 0x4f, 0x6d, 0xdd, 0xf8, 0x00,
+ 0xaf, 0x21, 0x0e, 0xf3, 0xab, 0x06, 0x46, 0x9c, 0x11, 0x99, 0xe2, 0x6c, 0x2d, 0xc0, 0xd8, 0x72,
+ 0x77, 0xdd, 0xad, 0xb4, 0x3b, 0x76, 0x95, 0x56, 0x1a, 0x74, 0x8d, 0x36, 0x50, 0x8b, 0x9e, 0x56,
+ 0xc8, 0xe9, 0xa6, 0xdf, 0xa7, 0x3c, 0xe2, 0x43, 0x2d, 0xfa, 0x40, 0xec, 0x37, 0xb9, 0x0e, 0xe3,
+ 0x7e, 0x48, 0x1e, 0x46, 0x54, 0xc8, 0x80, 0x68, 0x94, 0x81, 0x05, 0x30, 0x8d, 0x41, 0x9f, 0x4b,
+ 0xef, 0xb3, 0xc9, 0xea, 0x2f, 0xfb, 0x7f, 0x9a, 0x5f, 0x30, 0x60, 0x64, 0xa1, 0xdb, 0x68, 0xf4,
+ 0x34, 0x66, 0x13, 0x4a, 0x46, 0xde, 0x80, 0xf1, 0xa6, 0x5d, 0x43, 0x3a, 0xad, 0x56, 0xad, 0xe2,
+ 0x39, 0xcb, 0x18, 0xd9, 0x1d, 0x52, 0xd9, 0x27, 0xbb, 0xc6, 0x08, 0x9c, 0x6d, 0xd5, 0x96, 0xee,
+ 0xcc, 0x61, 0x28, 0x3b, 0xd2, 0x0c, 0xb4, 0x3a, 0xcb, 0xe6, 0xa7, 0x0c, 0x8c, 0xb4, 0xc2, 0xa4,
+ 0x6e, 0x72, 0xe5, 0x93, 0x19, 0x98, 0x7c, 0xdb, 0xf6, 0x56, 0x2b, 0x71, 0x9a, 0xf9, 0xbe, 0x82,
+ 0xf8, 0x5f, 0x6f, 0x85, 0x49, 0xa9, 0x60, 0x20, 0x15, 0xa3, 0x04, 0x27, 0xfd, 0xe5, 0xa8, 0xc5,
+ 0x50, 0x31, 0x1e, 0x46, 0xd0, 0xb3, 0x1a, 0x4d, 0xd4, 0xa9, 0xc8, 0xf7, 0x2c, 0x0b, 0x55, 0xcd,
+ 0x4f, 0x41, 0xc9, 0xcf, 0x5b, 0x89, 0x92, 0x0d, 0xf8, 0x99, 0xb0, 0x32, 0x64, 0xe4, 0x46, 0x58,
+ 0x9d, 0x9f, 0x96, 0x1b, 0x23, 0xb1, 0x42, 0xdc, 0xb9, 0xf5, 0xeb, 0x96, 0xbb, 0xda, 0xf3, 0x87,
+ 0x5a, 0x8e, 0x62, 0x6e, 0xa8, 0x90, 0xe0, 0x86, 0x0e, 0xc0, 0x76, 0x6e, 0x89, 0x56, 0x19, 0xe2,
+ 0xa9, 0x3e, 0x36, 0xcf, 0xc3, 0xac, 0x8d, 0x8f, 0x65, 0xd6, 0xc5, 0x76, 0x28, 0x81, 0x0c, 0xe4,
+ 0x74, 0x1e, 0x06, 0x42, 0xdb, 0xef, 0x17, 0x15, 0x9c, 0x2e, 0x75, 0xec, 0x66, 0x93, 0xd6, 0x7c,
+ 0x4c, 0x37, 0x7d, 0xbb, 0xc0, 0xd0, 0x95, 0x11, 0x56, 0x1e, 0x26, 0x2c, 0xb1, 0x63, 0x88, 0xde,
+ 0x70, 0x8f, 0x8d, 0x5b, 0xb3, 0x01, 0xcf, 0xf2, 0x00, 0x81, 0xb7, 0xcc, 0xd6, 0x6a, 0x1d, 0xea,
+ 0xba, 0x39, 0x47, 0x3a, 0x0c, 0xa3, 0x62, 0x18, 0x8b, 0x23, 0xc0, 0xb1, 0x46, 0xac, 0x10, 0x5a,
+ 0xf3, 0x73, 0x05, 0xd8, 0x95, 0xc8, 0x31, 0x39, 0x07, 0x5b, 0x99, 0x8e, 0x71, 0xdc, 0xcc, 0x92,
+ 0x6e, 0x49, 0xb3, 0xa4, 0x1c, 0x82, 0xbc, 0x0c, 0x83, 0xd2, 0x0e, 0x17, 0xb2, 0x43, 0x4b, 0x20,
+ 0x1f, 0xc1, 0x8a, 0xdd, 0x68, 0x58, 0xcb, 0x0d, 0xee, 0x79, 0xb2, 0x22, 0x10, 0x40, 0xbd, 0x03,
+ 0x84, 0xfe, 0xc0, 0x01, 0x82, 0x6f, 0x2e, 0x7a, 0x8a, 0xc4, 0x3d, 0x04, 0x3a, 0x2c, 0x5f, 0x57,
+ 0x7c, 0xeb, 0x59, 0xb5, 0x6b, 0x53, 0x03, 0x7c, 0xf7, 0x5a, 0xb5, 0x6b, 0x26, 0xc5, 0x30, 0x2a,
+ 0x3e, 0xdb, 0x8f, 0x55, 0xa9, 0x9a, 0x70, 0x28, 0x65, 0xca, 0x1f, 0xeb, 0x70, 0x97, 0x02, 0x6b,
+ 0x36, 0x6c, 0x9e, 0x33, 0xc5, 0x2f, 0xff, 0x69, 0x04, 0x16, 0x5b, 0x14, 0x5e, 0xee, 0xbd, 0x87,
+ 0xa4, 0x91, 0x0a, 0x28, 0x50, 0xaa, 0x2b, 0x1e, 0x14, 0x8e, 0x81, 0xdc, 0x80, 0x91, 0x65, 0xea,
+ 0x7a, 0x95, 0xe5, 0xee, 0x3a, 0xa2, 0x29, 0x64, 0x47, 0xb3, 0xdd, 0x07, 0x9d, 0xeb, 0xae, 0x73,
+ 0x54, 0x1f, 0x82, 0x51, 0x86, 0x8a, 0x1d, 0x9b, 0x71, 0x5c, 0x7d, 0xd9, 0x71, 0xed, 0xf0, 0x61,
+ 0xef, 0xd2, 0x46, 0x83, 0x21, 0x33, 0xaf, 0xe0, 0xf2, 0x9c, 0xa7, 0x1d, 0x7b, 0x8d, 0x85, 0x0b,
+ 0x1b, 0x10, 0xe1, 0x4f, 0x14, 0x70, 0xc6, 0xd5, 0x58, 0xfe, 0xd7, 0x0b, 0xf2, 0xf7, 0x84, 0x1a,
+ 0xf5, 0x64, 0xf0, 0x38, 0xc2, 0x56, 0x6d, 0xd4, 0xd9, 0xb7, 0xf9, 0xa8, 0xd3, 0xfc, 0xba, 0x01,
+ 0xfb, 0xd5, 0x74, 0xff, 0x08, 0x85, 0x86, 0x9f, 0xed, 0x83, 0xe9, 0x44, 0xeb, 0xb6, 0xe4, 0x5c,
+ 0xb1, 0x5a, 0x55, 0xda, 0x78, 0xbd, 0xbd, 0xe4, 0xcc, 0x36, 0x7d, 0x8b, 0xf4, 0xf8, 0x7c, 0xf9,
+ 0x3c, 0x0c, 0x2f, 0x5b, 0x2e, 0xad, 0x58, 0x0c, 0x6f, 0x1e, 0xe3, 0x0e, 0x3e, 0x1c, 0x27, 0x87,
+ 0x2c, 0xc0, 0xf6, 0xfb, 0x5d, 0xc7, 0x93, 0x68, 0xfa, 0xb3, 0xa3, 0x19, 0x66, 0x80, 0x88, 0xe7,
+ 0x1a, 0x0c, 0xba, 0x5e, 0xc7, 0xf2, 0x68, 0x9d, 0x6f, 0x18, 0x46, 0x66, 0x5e, 0x50, 0x48, 0x95,
+ 0x4b, 0xa4, 0xc1, 0xae, 0x59, 0xee, 0x22, 0x48, 0x59, 0x02, 0x93, 0x9b, 0x30, 0xda, 0xa1, 0x2b,
+ 0xb4, 0x43, 0x5b, 0x55, 0x8a, 0x2b, 0x63, 0x20, 0xbb, 0xae, 0x8d, 0x48, 0x58, 0xbe, 0x34, 0xbe,
+ 0x5d, 0x80, 0x53, 0x81, 0x99, 0x89, 0x28, 0xda, 0x07, 0x3a, 0x3f, 0x51, 0xc9, 0xf6, 0x3d, 0x06,
+ 0xc9, 0xf6, 0x3f, 0x66, 0xc9, 0x6e, 0xdd, 0xb8, 0x64, 0x57, 0xf0, 0x08, 0x27, 0x59, 0xb0, 0x8f,
+ 0x2f, 0x88, 0xeb, 0xc0, 0xf3, 0x09, 0x1e, 0x7d, 0x43, 0xe3, 0x65, 0x0e, 0xe5, 0xfe, 0xb5, 0x00,
+ 0x4f, 0xa1, 0xe3, 0xef, 0x0d, 0xf4, 0x43, 0x12, 0xd0, 0x5d, 0x60, 0xdb, 0x8c, 0xba, 0xdd, 0xca,
+ 0xa3, 0x50, 0x08, 0x12, 0x8a, 0x06, 0xfb, 0x37, 0x12, 0x0d, 0xee, 0x13, 0xd1, 0xa0, 0xaf, 0x39,
+ 0x83, 0x73, 0x43, 0xdf, 0x7f, 0x6f, 0x1f, 0x6f, 0x48, 0x0e, 0x0c, 0x07, 0x14, 0x81, 0xe1, 0xb6,
+ 0x5e, 0x60, 0x78, 0x1f, 0x4f, 0xf1, 0x54, 0x7a, 0x84, 0x6e, 0xe0, 0xd5, 0x48, 0xbc, 0x36, 0xa3,
+ 0x8f, 0xd7, 0x92, 0xa6, 0x4d, 0x46, 0x6d, 0xeb, 0xf0, 0x42, 0x26, 0x95, 0xfa, 0x00, 0x86, 0xfe,
+ 0x8c, 0x11, 0x0b, 0x7a, 0x9e, 0xe0, 0x5e, 0xcf, 0x8d, 0xc5, 0x4e, 0x8a, 0x1d, 0xdf, 0xe3, 0x14,
+ 0xc1, 0xa7, 0xc5, 0x25, 0x48, 0x20, 0x62, 0x7b, 0x62, 0x67, 0x14, 0x9f, 0x32, 0x00, 0x02, 0xae,
+ 0xfd, 0x09, 0x2e, 0x6c, 0x3f, 0x8a, 0xdb, 0xb9, 0x48, 0x3b, 0x6d, 0xea, 0x75, 0xad, 0x06, 0x97,
+ 0xc8, 0x5d, 0xcf, 0xf2, 0xfc, 0x58, 0x71, 0x58, 0xb0, 0xdd, 0x5a, 0x71, 0xf0, 0x74, 0x41, 0x75,
+ 0x4d, 0x1d, 0xc1, 0x70, 0xa3, 0xb5, 0xe2, 0x94, 0x51, 0x6a, 0xfe, 0xdf, 0x64, 0x11, 0xb6, 0xaf,
+ 0x74, 0x5b, 0x35, 0xbb, 0x55, 0xe7, 0xd8, 0xf8, 0x91, 0xd3, 0xb1, 0x6c, 0xd8, 0x16, 0x38, 0x64,
+ 0x79, 0x18, 0x51, 0xf8, 0x18, 0xcd, 0x5f, 0xed, 0x83, 0x9d, 0x0b, 0xdd, 0x46, 0x23, 0x3a, 0x9d,
+ 0xe4, 0xe5, 0xc8, 0x81, 0xc8, 0x61, 0xe5, 0xc9, 0x75, 0x18, 0x50, 0x9e, 0x91, 0x2d, 0xc1, 0x48,
+ 0x5b, 0x10, 0x10, 0xa4, 0xf6, 0x85, 0x6c, 0xd4, 0x32, 0xe9, 0x5d, 0xdf, 0x52, 0xde, 0x21, 0x91,
+ 0x30, 0x09, 0xdc, 0xf5, 0x25, 0xe0, 0x75, 0x3b, 0xd4, 0xe5, 0x38, 0xfb, 0x18, 0xce, 0x69, 0x05,
+ 0xce, 0xab, 0x0f, 0xda, 0x76, 0x67, 0x7d, 0x81, 0x03, 0xf4, 0x64, 0x7a, 0x7d, 0x8b, 0x2f, 0x04,
+ 0xd6, 0xc8, 0x90, 0xce, 0x71, 0xd5, 0x44, 0xb7, 0x9a, 0xc3, 0xb4, 0x32, 0xfd, 0xe5, 0x7b, 0x82,
+ 0xc4, 0x23, 0xc1, 0xad, 0x9b, 0x3e, 0x12, 0x9c, 0x1b, 0x80, 0x7e, 0x9f, 0x51, 0xb3, 0x8e, 0x9b,
+ 0xd5, 0x84, 0x75, 0x87, 0xcb, 0xfc, 0x6a, 0xf4, 0x44, 0xee, 0x05, 0xcd, 0x19, 0x56, 0x6c, 0xda,
+ 0xe4, 0xb9, 0xdc, 0x05, 0x3c, 0xd9, 0x89, 0xf5, 0xc8, 0xb2, 0xa1, 0xab, 0x29, 0xac, 0x83, 0x24,
+ 0xf2, 0x4a, 0x44, 0xad, 0x72, 0xd1, 0x28, 0x4e, 0xdb, 0xe6, 0xd0, 0xeb, 0x44, 0x3b, 0xa0, 0x2f,
+ 0xc8, 0x44, 0x29, 0x8d, 0xef, 0x5f, 0xc3, 0x38, 0x7a, 0x77, 0x7b, 0x22, 0xdc, 0x10, 0x97, 0xdb,
+ 0xfc, 0x67, 0xb6, 0x00, 0xe8, 0x1a, 0x6e, 0x92, 0x7a, 0x97, 0x44, 0xcc, 0x55, 0xb2, 0x17, 0x39,
+ 0x79, 0xee, 0xa0, 0xcc, 0x8b, 0x28, 0xd9, 0x45, 0xc7, 0xb5, 0xd9, 0x1b, 0xa7, 0x1b, 0xad, 0x1c,
+ 0xf3, 0x22, 0xb4, 0x27, 0x01, 0x5a, 0x6a, 0xcf, 0x56, 0xdf, 0x50, 0x53, 0xd4, 0x9d, 0xa3, 0xa9,
+ 0xcb, 0x5d, 0xa0, 0x42, 0xbd, 0xe5, 0xd0, 0xe6, 0x42, 0xec, 0x3d, 0x86, 0x1c, 0x32, 0x17, 0xbb,
+ 0x1f, 0x87, 0xe7, 0x14, 0x78, 0xa2, 0x7c, 0x6f, 0xfe, 0xd9, 0x92, 0x8b, 0x77, 0xc7, 0xbd, 0xb1,
+ 0xae, 0xae, 0xac, 0x70, 0xde, 0x3f, 0xb8, 0x41, 0x5f, 0x45, 0x1d, 0x8e, 0xbc, 0x12, 0x92, 0x2f,
+ 0x84, 0xf2, 0x08, 0xcb, 0x8e, 0x29, 0x59, 0x40, 0xe8, 0x8f, 0x65, 0x7e, 0xb7, 0x88, 0xf9, 0x5d,
+ 0x81, 0xc3, 0xa9, 0xf3, 0x22, 0xef, 0x14, 0xe5, 0x88, 0xfe, 0x4a, 0xdf, 0xa7, 0xb2, 0xfb, 0x89,
+ 0x7a, 0xf4, 0x93, 0x05, 0x18, 0x8f, 0xcd, 0x02, 0xd9, 0x0d, 0xdb, 0x6c, 0xb7, 0xd2, 0x70, 0x5a,
+ 0x75, 0x86, 0x74, 0xb0, 0x3c, 0x60, 0xbb, 0x37, 0x9d, 0x56, 0x7d, 0xf3, 0x81, 0xf9, 0x3c, 0x0c,
+ 0xd3, 0x96, 0xd7, 0x59, 0x8f, 0x1d, 0xe7, 0xa4, 0xef, 0xc7, 0x19, 0x1c, 0x77, 0x02, 0xb7, 0x61,
+ 0x8c, 0x0a, 0xa2, 0x2b, 0x18, 0xe8, 0xe7, 0x70, 0x27, 0xa3, 0x12, 0xf8, 0x16, 0x83, 0x35, 0x1f,
+ 0xe0, 0xf3, 0x81, 0x4c, 0x9a, 0x29, 0xcf, 0x46, 0x43, 0x62, 0x3f, 0xa2, 0x72, 0x8d, 0x51, 0x44,
+ 0x61, 0xf9, 0x5f, 0xc6, 0x75, 0x9c, 0x14, 0x91, 0x64, 0x31, 0x38, 0xab, 0xa8, 0x92, 0x89, 0xf0,
+ 0x92, 0xd2, 0xfe, 0x8d, 0xc5, 0x44, 0xa8, 0x92, 0xdc, 0x31, 0x0a, 0x67, 0xa0, 0xf0, 0xf5, 0x99,
+ 0xa8, 0x6d, 0xa3, 0x33, 0x50, 0xe2, 0x40, 0x8a, 0xaf, 0x87, 0x28, 0xce, 0x19, 0x75, 0x84, 0xa8,
+ 0x9e, 0xc5, 0x0d, 0xb8, 0x22, 0x46, 0xcb, 0x46, 0xf4, 0x41, 0x2d, 0x0a, 0xf9, 0xe4, 0x32, 0xa4,
+ 0x0f, 0xf9, 0x82, 0xc5, 0xf0, 0xe2, 0xff, 0xa4, 0xd8, 0xff, 0x28, 0x8d, 0x16, 0x8e, 0xf9, 0xd1,
+ 0xd0, 0x23, 0x49, 0xdf, 0xde, 0x5c, 0xcc, 0xff, 0x48, 0xb2, 0xf7, 0xe8, 0x52, 0x3c, 0x48, 0x13,
+ 0x38, 0xcd, 0x73, 0xf8, 0x30, 0x29, 0xd9, 0xab, 0x22, 0x11, 0x3b, 0x61, 0x2b, 0x7f, 0x0f, 0x6b,
+ 0xb0, 0xf7, 0xb0, 0xfc, 0x87, 0xb9, 0x07, 0x5f, 0x1d, 0xdc, 0x72, 0x6a, 0xdd, 0x06, 0x65, 0x51,
+ 0xa6, 0x78, 0x49, 0xf7, 0x3a, 0x3e, 0x90, 0x08, 0x7d, 0x92, 0x2f, 0x12, 0x42, 0x52, 0x54, 0xbd,
+ 0x42, 0xb9, 0xc6, 0x5f, 0xfa, 0x72, 0x58, 0x94, 0xda, 0x6e, 0xd8, 0x15, 0xf6, 0xbd, 0x62, 0xbc,
+ 0x0a, 0xbe, 0x9b, 0xf8, 0xc0, 0x8c, 0xf5, 0xfd, 0xe0, 0xb5, 0x4d, 0x99, 0xbe, 0x6d, 0x75, 0x6a,
+ 0x8b, 0x8e, 0xdd, 0xf2, 0x32, 0xbd, 0x86, 0x3b, 0x05, 0x93, 0x6d, 0xca, 0xf7, 0x1a, 0x6d, 0xc7,
+ 0x69, 0x54, 0x3c, 0xbb, 0x49, 0x5d, 0xcf, 0x6a, 0xb6, 0x99, 0x81, 0xed, 0x2b, 0xef, 0xc4, 0xaf,
+ 0x8b, 0x8e, 0xd3, 0x58, 0x12, 0xdf, 0xcc, 0x9f, 0x12, 0x17, 0xa1, 0x09, 0x63, 0x22, 0x73, 0xcb,
+ 0xf0, 0x94, 0xf0, 0x67, 0xec, 0x11, 0x73, 0xa5, 0xc3, 0x7a, 0x55, 0xda, 0xac, 0x1b, 0xa7, 0x23,
+ 0x9b, 0xbd, 0x9c, 0x0a, 0x4e, 0x7e, 0x70, 0x2c, 0xf3, 0x00, 0x9a, 0xaf, 0xc0, 0x97, 0x2b, 0x56,
+ 0xb3, 0x6d, 0xd9, 0xf5, 0x96, 0x90, 0xfe, 0xbf, 0xf7, 0xa3, 0x89, 0x4a, 0xec, 0x83, 0xb4, 0xde,
+ 0x87, 0xa7, 0x7d, 0x1a, 0x7d, 0x21, 0x20, 0x95, 0x55, 0xec, 0x12, 0xdc, 0xce, 0x1d, 0x57, 0x6e,
+ 0xa8, 0x2d, 0xbe, 0x14, 0x83, 0xb8, 0x99, 0x41, 0xd9, 0xe3, 0xa9, 0x3e, 0x91, 0x87, 0x70, 0x28,
+ 0x32, 0x24, 0x13, 0xbf, 0x1c, 0xd7, 0xad, 0xae, 0x52, 0x5f, 0x3f, 0xf1, 0xf8, 0xfb, 0xa8, 0xf2,
+ 0x38, 0x51, 0xb0, 0xc2, 0xc5, 0xe2, 0x34, 0xca, 0x07, 0x42, 0x83, 0xfa, 0x4d, 0xa2, 0xd3, 0x5d,
+ 0xc4, 0x49, 0x3e, 0x0a, 0x7b, 0x3c, 0xc7, 0xb3, 0x1a, 0x89, 0x33, 0x93, 0xc3, 0x29, 0x4e, 0x32,
+ 0x2c, 0xb1, 0x79, 0x21, 0x9f, 0x36, 0xe0, 0x98, 0xd0, 0xaa, 0x6c, 0x5c, 0xf6, 0xe7, 0xe5, 0xf2,
+ 0x08, 0xe2, 0x5f, 0x4a, 0x65, 0xb6, 0x09, 0x07, 0x24, 0x2d, 0x4a, 0xa6, 0xb7, 0x66, 0x57, 0xc7,
+ 0x67, 0xc4, 0xc8, 0x89, 0xbc, 0x9b, 0x17, 0x50, 0x27, 0x6f, 0xb8, 0x77, 0xda, 0x1e, 0xad, 0xdd,
+ 0xe9, 0x7a, 0x77, 0x56, 0x78, 0x07, 0x37, 0xfd, 0x25, 0xed, 0x3c, 0x2a, 0x6b, 0x22, 0x30, 0x2a,
+ 0xeb, 0x7e, 0xd8, 0x6e, 0xbb, 0x15, 0xc7, 0xff, 0x5e, 0x71, 0xba, 0x1e, 0x86, 0x48, 0x60, 0x4b,
+ 0x10, 0xf3, 0x30, 0x1e, 0x19, 0xc5, 0x70, 0xe0, 0x61, 0x9a, 0x34, 0x4d, 0xf3, 0x18, 0x7e, 0x6b,
+ 0x3a, 0xe2, 0xa0, 0x1a, 0x13, 0x62, 0x5e, 0x46, 0x27, 0xb7, 0x40, 0xe9, 0xbc, 0xed, 0xf2, 0xe3,
+ 0x3a, 0x0c, 0x5a, 0x03, 0x9e, 0x59, 0xcd, 0xf4, 0x3f, 0x1a, 0xe8, 0xe2, 0x54, 0x08, 0x90, 0x86,
+ 0x67, 0x00, 0x3c, 0x9b, 0x76, 0xe4, 0xfd, 0x92, 0x71, 0xa4, 0xbf, 0x3c, 0xe4, 0xb7, 0xf0, 0x73,
+ 0xa1, 0x5b, 0xb0, 0x5d, 0x06, 0xd0, 0xbd, 0x73, 0x08, 0x55, 0xbc, 0x11, 0x18, 0x6b, 0xc9, 0xa6,
+ 0x1d, 0x36, 0xd0, 0xb0, 0xd5, 0x1b, 0x95, 0xbc, 0x0a, 0xc3, 0xd2, 0x7e, 0x79, 0x0d, 0x3c, 0x81,
+ 0x38, 0x9a, 0x0d, 0xdb, 0xd2, 0xd2, 0xcd, 0x32, 0x08, 0xab, 0xe5, 0x35, 0xa4, 0x9d, 0x0a, 0x74,
+ 0x13, 0xea, 0x29, 0xa6, 0xe2, 0x13, 0xe2, 0x9e, 0x2d, 0xb1, 0x8f, 0x74, 0xb8, 0xbb, 0x56, 0x28,
+ 0xad, 0xd4, 0xf0, 0x7b, 0x6f, 0xf9, 0x18, 0x59, 0x79, 0x95, 0x28, 0x27, 0x56, 0xe2, 0x8d, 0xe6,
+ 0x2b, 0xe8, 0x49, 0xf0, 0x85, 0xf8, 0x2d, 0xdb, 0x6d, 0x5a, 0x5e, 0x35, 0x70, 0xe2, 0xb9, 0x0f,
+ 0x86, 0x6b, 0x5d, 0xd7, 0xab, 0xac, 0x58, 0x55, 0xcf, 0xe1, 0x49, 0x2a, 0x7d, 0x65, 0xf0, 0x9b,
+ 0x16, 0x58, 0x8b, 0xf9, 0xcb, 0x7d, 0x30, 0x1a, 0x81, 0x26, 0x26, 0x84, 0xf6, 0x31, 0xd9, 0xdf,
+ 0x5e, 0x92, 0x59, 0x18, 0xb2, 0xd6, 0x2c, 0x3b, 0xf7, 0xcb, 0x88, 0x1e, 0x94, 0xef, 0xd1, 0xd9,
+ 0xaa, 0xcf, 0x13, 0xa0, 0x73, 0x08, 0xb2, 0x00, 0xdb, 0xf1, 0x6d, 0x7c, 0x65, 0xd5, 0x69, 0xd4,
+ 0x02, 0x17, 0x31, 0xe9, 0x97, 0x43, 0x08, 0x78, 0xdd, 0x69, 0xd4, 0xc8, 0xab, 0x30, 0x42, 0x1f,
+ 0xb4, 0x69, 0xd5, 0x5f, 0xb0, 0x9c, 0x96, 0x81, 0xec, 0x98, 0x76, 0x08, 0x50, 0x66, 0x6e, 0xc8,
+ 0x15, 0x80, 0x9a, 0xbd, 0x82, 0x97, 0x3c, 0xfc, 0x88, 0x3e, 0xe3, 0xfe, 0xa5, 0x07, 0x66, 0xbe,
+ 0x8d, 0xce, 0x3b, 0x61, 0x9a, 0x51, 0xd1, 0x5e, 0x07, 0x22, 0x58, 0x6f, 0xca, 0xaf, 0x18, 0xa6,
+ 0x3c, 0xa7, 0x4f, 0x2b, 0x10, 0xd8, 0xca, 0xe3, 0xcb, 0x51, 0xf4, 0xe6, 0x21, 0x5c, 0xe8, 0xd8,
+ 0xd5, 0x0f, 0xfd, 0xe6, 0x7a, 0x82, 0x92, 0x66, 0xe9, 0xb3, 0x05, 0xd8, 0x15, 0xe8, 0xc2, 0x77,
+ 0x49, 0x4c, 0x94, 0xff, 0xc7, 0x55, 0xc9, 0xfc, 0x79, 0x11, 0x9a, 0x2b, 0x25, 0x88, 0x13, 0x68,
+ 0x43, 0x51, 0x0c, 0xc8, 0xce, 0xdb, 0x83, 0xa3, 0xa7, 0x3d, 0xa7, 0x49, 0x14, 0x7d, 0x79, 0xf7,
+ 0x72, 0xf2, 0x90, 0xd2, 0xdb, 0x44, 0x6c, 0xa0, 0x1f, 0x1c, 0xdb, 0xae, 0x67, 0x57, 0xe5, 0xb4,
+ 0x9e, 0x83, 0x1d, 0xa1, 0x0f, 0x84, 0x40, 0xbf, 0x6f, 0xbe, 0xd1, 0x94, 0xb3, 0xbf, 0xfd, 0xd9,
+ 0xeb, 0xa5, 0x0b, 0xf5, 0x97, 0xf9, 0x0f, 0xb3, 0x85, 0x8e, 0x4a, 0x33, 0x86, 0xdc, 0x6d, 0x82,
+ 0x2b, 0x5b, 0x53, 0x1e, 0xc1, 0x87, 0x50, 0x94, 0x03, 0x70, 0x7e, 0x30, 0x7f, 0xcb, 0xf6, 0x9c,
+ 0x37, 0xac, 0x6e, 0x83, 0x79, 0x03, 0xc9, 0xc3, 0x9f, 0x19, 0x30, 0x19, 0xfd, 0x82, 0x23, 0x1f,
+ 0x85, 0xb1, 0xa6, 0xe5, 0x7a, 0xb4, 0x23, 0x2e, 0x2e, 0xa9, 0x70, 0x95, 0xa3, 0xbc, 0x7d, 0x56,
+ 0x34, 0x93, 0x13, 0xb0, 0xb3, 0x26, 0x83, 0xfa, 0x40, 0x77, 0x7e, 0x5d, 0x32, 0xd1, 0xfb, 0xd6,
+ 0x03, 0x39, 0x04, 0x23, 0x6e, 0xdb, 0xf1, 0x02, 0x9d, 0xf9, 0x5d, 0xd1, 0x0e, 0xbf, 0x35, 0xd4,
+ 0xad, 0xfa, 0xf6, 0xcc, 0xf1, 0x40, 0xb7, 0x7e, 0xde, 0xcd, 0x6f, 0x95, 0xdd, 0xcc, 0x79, 0x34,
+ 0xf4, 0xb8, 0x6d, 0x9d, 0x5f, 0xe8, 0x38, 0x4d, 0xc6, 0x52, 0xe0, 0x40, 0x6a, 0xcd, 0xff, 0x5d,
+ 0x09, 0x9f, 0x8a, 0x6e, 0x67, 0x8d, 0xe2, 0x0a, 0x56, 0xbc, 0xac, 0x4a, 0xc0, 0x82, 0x32, 0xd1,
+ 0xee, 0x6c, 0xc5, 0xe6, 0xf8, 0xba, 0xed, 0x7a, 0x4e, 0xc7, 0xae, 0xca, 0x68, 0xaa, 0xea, 0x04,
+ 0x82, 0x25, 0x2d, 0x0a, 0x07, 0x0d, 0x8a, 0x0a, 0x85, 0xdc, 0xd0, 0xef, 0x10, 0x41, 0x1f, 0xfb,
+ 0x90, 0x92, 0x64, 0x10, 0xc2, 0xb1, 0xdd, 0x0b, 0xfc, 0x32, 0xbf, 0x64, 0xc0, 0x04, 0xfb, 0xcc,
+ 0x47, 0xf4, 0x23, 0x27, 0x7f, 0x4b, 0x47, 0x5e, 0x04, 0xc2, 0x47, 0xa8, 0x77, 0x9c, 0x6e, 0xdb,
+ 0x8f, 0x35, 0x5d, 0x5a, 0x45, 0xc5, 0x1e, 0x63, 0x5f, 0xae, 0xe1, 0x87, 0xbb, 0xb4, 0x4a, 0x76,
+ 0xc3, 0xb6, 0xa6, 0xf5, 0xa0, 0x62, 0xd5, 0x29, 0xaa, 0xf9, 0x40, 0xd3, 0x7a, 0x30, 0x5b, 0xa7,
+ 0x64, 0x1a, 0x26, 0xec, 0x56, 0xb5, 0xd1, 0xf5, 0x49, 0xb5, 0xde, 0xae, 0xac, 0xf2, 0x41, 0xf0,
+ 0x59, 0xdf, 0x38, 0x7e, 0x2a, 0x5b, 0x6f, 0xe3, 0xe8, 0xbe, 0xce, 0x89, 0xfe, 0x72, 0x27, 0xce,
+ 0x6e, 0x7d, 0xcb, 0xa3, 0xd8, 0x2e, 0xb6, 0xd9, 0xe6, 0xe7, 0x0c, 0x3c, 0xf1, 0x97, 0x29, 0x14,
+ 0x96, 0x67, 0x37, 0x6c, 0x6f, 0x3d, 0xd3, 0x6d, 0xe6, 0x47, 0x61, 0x17, 0xe7, 0x0f, 0x49, 0xf2,
+ 0xe3, 0x4f, 0x9f, 0xf1, 0x94, 0x28, 0x2b, 0x41, 0x54, 0xe5, 0x09, 0x2f, 0xde, 0x68, 0xfe, 0x97,
+ 0x11, 0xd2, 0xc8, 0x20, 0x75, 0xf2, 0x25, 0x32, 0xac, 0xc9, 0x56, 0xbc, 0xfb, 0xdb, 0x97, 0xea,
+ 0xf5, 0x7a, 0x20, 0xe4, 0x4d, 0x18, 0x13, 0xc4, 0x4b, 0x59, 0x71, 0xea, 0x83, 0x86, 0x10, 0x93,
+ 0x73, 0x31, 0x57, 0x77, 0x5a, 0x88, 0x2f, 0x60, 0x69, 0x46, 0x11, 0x8b, 0xf8, 0x44, 0xae, 0xc0,
+ 0x70, 0x70, 0xb2, 0xfa, 0x98, 0x6e, 0x99, 0xe9, 0xba, 0x55, 0x86, 0x8e, 0x9c, 0x49, 0xf3, 0x24,
+ 0xe6, 0x33, 0xcc, 0xd9, 0x2d, 0x4b, 0x48, 0x21, 0xed, 0xb2, 0xd5, 0x5c, 0xc6, 0xc7, 0xd5, 0x11,
+ 0x20, 0x69, 0x0a, 0x23, 0x37, 0x45, 0xaa, 0x59, 0xe2, 0xe0, 0x38, 0x15, 0xd1, 0x8b, 0xa2, 0xfb,
+ 0x70, 0x2c, 0xf1, 0xee, 0xff, 0x8a, 0xd3, 0xaa, 0xd9, 0xfc, 0x91, 0xd8, 0xe3, 0x4e, 0x30, 0xfe,
+ 0x7c, 0x1f, 0x1c, 0x88, 0xdd, 0x52, 0x47, 0xc7, 0xfb, 0xd1, 0x7d, 0xe0, 0x71, 0x0d, 0xb6, 0x7b,
+ 0x1d, 0xbb, 0x5e, 0xa7, 0x9d, 0xc5, 0xbc, 0x37, 0x91, 0x21, 0xc0, 0xf4, 0x87, 0x1e, 0x87, 0x60,
+ 0x9b, 0xed, 0xb2, 0xeb, 0x7d, 0x16, 0x72, 0x0e, 0xce, 0x0d, 0x7f, 0xff, 0xbd, 0x7d, 0xa2, 0xa9,
+ 0x2c, 0xfe, 0x88, 0xbc, 0x07, 0xd9, 0xa6, 0x78, 0x0f, 0x32, 0xd8, 0x7b, 0x0f, 0xf2, 0x09, 0x23,
+ 0xf4, 0x96, 0x4e, 0xab, 0x14, 0x32, 0x07, 0x34, 0xfc, 0x3a, 0xe1, 0x6c, 0xd6, 0xd7, 0x09, 0x51,
+ 0x94, 0xf2, 0x8d, 0x82, 0xb8, 0x2a, 0x13, 0x6f, 0xf5, 0x73, 0x3d, 0xa7, 0x34, 0x7f, 0x5b, 0x9c,
+ 0x60, 0x25, 0x80, 0x23, 0xc9, 0x17, 0xa1, 0x7f, 0xce, 0x96, 0xce, 0xe2, 0x88, 0x9e, 0xe0, 0xc0,
+ 0x23, 0x0a, 0x06, 0xe5, 0x43, 0xcf, 0xba, 0xf7, 0x44, 0x82, 0x66, 0x0e, 0x68, 0x1f, 0x2a, 0xe1,
+ 0xfd, 0xa2, 0x38, 0x00, 0x0f, 0x5f, 0x99, 0xe6, 0x63, 0xfa, 0x1d, 0x11, 0x3e, 0x2a, 0x91, 0xfc,
+ 0x50, 0xb2, 0xfe, 0xae, 0x01, 0xe3, 0xb1, 0xde, 0x4f, 0x74, 0xfd, 0x87, 0x57, 0x4c, 0x5f, 0x74,
+ 0xc5, 0xc4, 0x4c, 0x60, 0x7f, 0xc2, 0x75, 0xde, 0x2d, 0x5c, 0x43, 0x78, 0x21, 0xed, 0x39, 0x4d,
+ 0xbb, 0x7a, 0xf5, 0x01, 0xad, 0x76, 0x7d, 0x65, 0x5f, 0xa0, 0xf4, 0x56, 0xb7, 0xe1, 0xd9, 0xed,
+ 0x86, 0x4d, 0x3b, 0x99, 0xe6, 0x76, 0x0d, 0xaf, 0x37, 0xb3, 0xa0, 0x93, 0xb7, 0xf4, 0xd0, 0x94,
+ 0xad, 0x79, 0xc4, 0x18, 0x00, 0x33, 0xcf, 0x8a, 0x54, 0x6c, 0x36, 0xc3, 0x77, 0x3d, 0xeb, 0x1e,
+ 0xbd, 0xd6, 0xb1, 0x7a, 0x8f, 0x34, 0xa7, 0x60, 0x5b, 0xdd, 0xff, 0x4d, 0xa9, 0x38, 0xf7, 0xc1,
+ 0x9f, 0xe6, 0xaf, 0xcb, 0x4c, 0xeb, 0x18, 0x28, 0x12, 0x78, 0x16, 0xb6, 0xb2, 0xce, 0x78, 0xbe,
+ 0xa1, 0xf2, 0xa9, 0x1c, 0x9e, 0x83, 0x72, 0x00, 0x72, 0x1b, 0x7a, 0xb7, 0x6c, 0x15, 0x8e, 0x43,
+ 0x9f, 0xb8, 0x25, 0x2f, 0xca, 0x38, 0x9a, 0x11, 0x1a, 0xfa, 0x6d, 0x2e, 0xa1, 0xb5, 0x60, 0xbf,
+ 0x66, 0xbb, 0xde, 0xaa, 0xd3, 0xb1, 0x7f, 0x9c, 0x3d, 0xe2, 0x8c, 0xf1, 0xd9, 0x09, 0xf3, 0xd9,
+ 0x09, 0x4a, 0xa0, 0x10, 0x96, 0xc0, 0x87, 0xf1, 0x5c, 0x28, 0x09, 0x2b, 0x8a, 0xe0, 0x34, 0x0c,
+ 0xe0, 0xdb, 0x54, 0x3e, 0x3f, 0xcf, 0xe0, 0xfc, 0xec, 0x8a, 0xcf, 0xcf, 0x8d, 0x96, 0x57, 0xc6,
+ 0xce, 0xf2, 0x14, 0x32, 0x8e, 0xd9, 0x4d, 0x25, 0xd8, 0xfc, 0xa2, 0x38, 0x8b, 0x4a, 0x84, 0x46,
+ 0xc2, 0x3e, 0x04, 0x84, 0x1f, 0xa7, 0x32, 0xa8, 0x4a, 0x1e, 0x22, 0xc7, 0x18, 0x20, 0x47, 0xce,
+ 0xdf, 0xcf, 0xce, 0xc2, 0x00, 0x43, 0xe3, 0xa6, 0x1c, 0x77, 0x27, 0x08, 0x0a, 0x01, 0xcd, 0xb3,
+ 0x18, 0x40, 0xe1, 0x5d, 0x12, 0xdf, 0xa1, 0x66, 0x5a, 0x39, 0x6f, 0x61, 0x14, 0x15, 0x81, 0x44,
+ 0x3e, 0x2f, 0xc3, 0x36, 0xdc, 0xf9, 0xa2, 0x16, 0x3e, 0xab, 0x4d, 0x4d, 0x16, 0xe0, 0x02, 0x48,
+ 0x96, 0xf1, 0x08, 0x7d, 0x0e, 0x5c, 0x0e, 0x3d, 0x95, 0xf8, 0x55, 0x59, 0xd4, 0x21, 0xdb, 0xe8,
+ 0xbd, 0xa2, 0x0e, 0xf7, 0x60, 0x47, 0xe8, 0x93, 0x3e, 0xcc, 0xbf, 0xd4, 0x63, 0x36, 0x87, 0x5d,
+ 0x94, 0xbc, 0x9e, 0x92, 0x8f, 0x8a, 0x5a, 0x4e, 0xf3, 0x96, 0xdd, 0x12, 0x59, 0x04, 0xfa, 0x5c,
+ 0xfc, 0xb7, 0xe4, 0x6b, 0xa2, 0x28, 0x54, 0xaf, 0x98, 0x49, 0x48, 0xbd, 0xb2, 0x45, 0x5b, 0xb8,
+ 0x12, 0xf6, 0x29, 0xb0, 0xcb, 0x29, 0x58, 0x97, 0x4f, 0xae, 0x62, 0x1d, 0x70, 0xfc, 0x37, 0x61,
+ 0x82, 0x27, 0xd7, 0x37, 0xed, 0x96, 0xcc, 0xae, 0x10, 0x13, 0x72, 0x58, 0x97, 0x61, 0x1f, 0xe4,
+ 0x66, 0xbc, 0x16, 0x1d, 0xc0, 0xfc, 0x38, 0x6c, 0xbf, 0xd3, 0xa6, 0xad, 0x1b, 0xfe, 0xaa, 0x4b,
+ 0xdd, 0x82, 0x6d, 0x72, 0x6e, 0xce, 0xe0, 0xb5, 0x67, 0x70, 0xc0, 0x4c, 0xcb, 0xe3, 0xc3, 0xb8,
+ 0xb0, 0xc2, 0x80, 0x89, 0x53, 0xa3, 0xde, 0x52, 0x87, 0x80, 0x11, 0xe4, 0xf9, 0x53, 0x30, 0x24,
+ 0x53, 0xa9, 0xc9, 0x4e, 0x18, 0xf3, 0xff, 0xad, 0xbc, 0xde, 0x72, 0xdb, 0xb4, 0x6a, 0xaf, 0xd8,
+ 0xb4, 0x36, 0xb6, 0x85, 0x6c, 0x83, 0xbe, 0xb9, 0xee, 0xfa, 0x98, 0x41, 0x06, 0xa1, 0xff, 0x2e,
+ 0x6d, 0x34, 0xc6, 0x0a, 0xcf, 0xbf, 0x01, 0x3b, 0x93, 0x1e, 0xd1, 0xfb, 0x08, 0x02, 0xb0, 0x0c,
+ 0xf1, 0xd8, 0x16, 0x32, 0x01, 0xa3, 0x0b, 0x1d, 0xa7, 0xf9, 0xa6, 0xd3, 0x71, 0xbd, 0x25, 0x67,
+ 0x8e, 0xba, 0xde, 0x98, 0x21, 0x1a, 0xfd, 0x5f, 0x4b, 0x0e, 0xfb, 0x34, 0x56, 0x98, 0xf9, 0xbb,
+ 0x7b, 0xb0, 0x95, 0x31, 0x4a, 0xde, 0x35, 0x60, 0xd7, 0xcd, 0x93, 0x91, 0xf8, 0x68, 0xce, 0x71,
+ 0xee, 0x91, 0xf3, 0xba, 0x92, 0x32, 0xfa, 0xc8, 0xac, 0x78, 0x61, 0x43, 0xb0, 0x5c, 0xce, 0xe6,
+ 0xec, 0x27, 0xde, 0xfd, 0xe7, 0x5f, 0x2c, 0x5c, 0x20, 0xe7, 0x4a, 0xc9, 0xb5, 0xa7, 0x7a, 0x47,
+ 0x46, 0xa5, 0x9b, 0x27, 0x25, 0xbd, 0xa5, 0x87, 0x72, 0x5a, 0x1f, 0x91, 0x2f, 0x1b, 0x30, 0x7a,
+ 0xf3, 0xa4, 0x0c, 0x75, 0x19, 0x3f, 0xa7, 0xd2, 0x68, 0x4a, 0x0a, 0xac, 0x8b, 0xa7, 0x73, 0x42,
+ 0x21, 0x0f, 0x17, 0x18, 0x0f, 0xa7, 0xc9, 0x49, 0x05, 0x0f, 0x6e, 0xdb, 0xf1, 0x94, 0xd4, 0xff,
+ 0xa6, 0x01, 0x13, 0x09, 0x05, 0x8f, 0xc8, 0x09, 0x1d, 0x2d, 0x89, 0xa5, 0x93, 0x8a, 0x33, 0x79,
+ 0x40, 0x90, 0xf6, 0x63, 0x8c, 0xf6, 0xc3, 0xe4, 0x50, 0x49, 0x5f, 0x6c, 0x0c, 0xa9, 0xfa, 0x23,
+ 0x03, 0x48, 0xbc, 0xc2, 0x10, 0x39, 0x9d, 0xb7, 0x22, 0x11, 0x27, 0xf8, 0xa5, 0x8d, 0x15, 0x32,
+ 0x32, 0xcf, 0x33, 0xa2, 0x4f, 0x91, 0x99, 0x14, 0xa2, 0x4b, 0x6e, 0x9c, 0xd4, 0x2f, 0x1b, 0x30,
+ 0x1e, 0x43, 0xad, 0xd7, 0x17, 0x55, 0xf5, 0x8d, 0xe2, 0xe9, 0x9c, 0x50, 0x48, 0xfe, 0x39, 0x46,
+ 0xfe, 0x49, 0x72, 0x22, 0x37, 0xf9, 0xe4, 0x4b, 0x06, 0x8c, 0x45, 0x2b, 0x25, 0x91, 0x93, 0x59,
+ 0xe6, 0x3d, 0xe2, 0xa0, 0x8b, 0xa7, 0xf2, 0x01, 0x21, 0xe9, 0x67, 0x19, 0xe9, 0x33, 0xe4, 0x78,
+ 0x1a, 0xe9, 0x34, 0x4a, 0xe4, 0x1f, 0x1a, 0x30, 0x1a, 0xa9, 0x3c, 0x44, 0xb4, 0x0a, 0x9b, 0x5c,
+ 0xad, 0xa9, 0x78, 0x32, 0x17, 0x4c, 0x46, 0x2b, 0x23, 0xff, 0x8e, 0x14, 0x64, 0x2a, 0x3d, 0x44,
+ 0xf9, 0x3f, 0x62, 0x92, 0x8f, 0x56, 0x4e, 0x22, 0x79, 0x88, 0xc9, 0x26, 0x79, 0x55, 0x71, 0xa6,
+ 0xec, 0x92, 0x8f, 0xd6, 0x94, 0x22, 0xdf, 0x36, 0x60, 0x57, 0x62, 0x99, 0x1a, 0x72, 0x36, 0x13,
+ 0x25, 0x09, 0x55, 0x93, 0x8a, 0xe7, 0x36, 0x00, 0x89, 0x8c, 0xdc, 0x60, 0x8c, 0x5c, 0x21, 0xb3,
+ 0x99, 0x19, 0x09, 0xa2, 0x09, 0xd9, 0xce, 0xbf, 0x32, 0x60, 0x32, 0xb9, 0x00, 0x0f, 0xc9, 0x4f,
+ 0xa0, 0x9c, 0x9f, 0xf3, 0x1b, 0x01, 0x45, 0xe6, 0x2e, 0x33, 0xe6, 0xce, 0x92, 0x97, 0x36, 0xc4,
+ 0x9c, 0x4b, 0x7e, 0xb6, 0x00, 0x07, 0x33, 0xd4, 0x47, 0x22, 0x0b, 0x5a, 0x1a, 0x33, 0x17, 0x91,
+ 0x2a, 0x5e, 0xdb, 0x34, 0x1e, 0x64, 0xfc, 0x4d, 0xc6, 0xf8, 0x6b, 0xe4, 0x4e, 0x2a, 0xe3, 0x1c,
+ 0x69, 0x45, 0x34, 0x54, 0x3c, 0x44, 0x5b, 0x09, 0xd5, 0x79, 0x2a, 0x3d, 0x64, 0x3f, 0x1f, 0x91,
+ 0xcf, 0x14, 0xe0, 0xd9, 0x2c, 0x15, 0xa3, 0xc8, 0x66, 0x59, 0x91, 0xf3, 0x7f, 0x7d, 0xf3, 0x88,
+ 0x50, 0x28, 0x8b, 0x4c, 0x28, 0xaf, 0x92, 0xeb, 0x8f, 0x49, 0x28, 0x2e, 0xf9, 0x9c, 0x01, 0xc3,
+ 0x81, 0x72, 0x26, 0x64, 0x5a, 0xeb, 0x81, 0x62, 0x15, 0x58, 0x8a, 0xa5, 0xcc, 0xfd, 0x91, 0x85,
+ 0x17, 0x18, 0x0b, 0x87, 0xc8, 0x41, 0x5d, 0x6c, 0x83, 0x47, 0xea, 0xe4, 0x57, 0x0c, 0x80, 0x40,
+ 0x85, 0x9a, 0x63, 0xd9, 0x06, 0x13, 0xb4, 0x4d, 0x67, 0xed, 0x8e, 0xa4, 0x9d, 0x61, 0xa4, 0x9d,
+ 0x20, 0xa5, 0x0c, 0xa4, 0x85, 0xcc, 0xc6, 0x6f, 0x19, 0x30, 0x1a, 0xa9, 0x0b, 0xa3, 0x77, 0x45,
+ 0xc9, 0xe5, 0x6c, 0xf4, 0xae, 0x48, 0x51, 0x78, 0xc6, 0x3c, 0xce, 0xa8, 0x7e, 0x9e, 0x1c, 0xd1,
+ 0x51, 0xbd, 0xd2, 0x6d, 0x34, 0x2a, 0x42, 0xaa, 0xef, 0xc4, 0x6b, 0xff, 0x9c, 0xc8, 0x3e, 0x72,
+ 0xa6, 0xe0, 0x30, 0xb9, 0xaa, 0x4c, 0xb6, 0xc0, 0x36, 0x40, 0x6b, 0x48, 0xca, 0xbf, 0x63, 0xc0,
+ 0x8e, 0x50, 0xbc, 0x4c, 0x8e, 0xa7, 0x4d, 0x70, 0x2c, 0x20, 0x3f, 0x91, 0x03, 0x22, 0x63, 0x70,
+ 0xc5, 0x68, 0x96, 0xc5, 0x71, 0x43, 0x14, 0x7f, 0xcd, 0x80, 0xb1, 0x68, 0x12, 0xbd, 0xde, 0xc5,
+ 0x2b, 0xca, 0xc7, 0xe8, 0x5d, 0xbc, 0xaa, 0x0a, 0x89, 0xb9, 0xc0, 0x48, 0x7f, 0x85, 0x5c, 0x4e,
+ 0x25, 0x3d, 0xa4, 0xcf, 0xa5, 0x87, 0xa1, 0x33, 0xd9, 0x47, 0xe4, 0x5f, 0x0c, 0x98, 0x52, 0xd5,
+ 0x20, 0x21, 0xda, 0xdd, 0x5a, 0x4a, 0xb1, 0x9a, 0xe2, 0xc5, 0x8d, 0x01, 0x67, 0x34, 0x87, 0x2a,
+ 0xfe, 0x90, 0x37, 0x19, 0x8c, 0x89, 0xbb, 0xfb, 0x47, 0xe4, 0x6f, 0xfc, 0xed, 0x48, 0xac, 0x56,
+ 0x50, 0xca, 0x76, 0x44, 0x55, 0xe2, 0x28, 0x65, 0x3b, 0xa2, 0x2c, 0x49, 0x94, 0x87, 0xaf, 0xca,
+ 0xf2, 0x3a, 0xa6, 0xc4, 0x6a, 0x67, 0xf0, 0x1d, 0x03, 0xc6, 0xa2, 0x45, 0x88, 0xf5, 0x9a, 0xa8,
+ 0xa8, 0x8a, 0x5c, 0x3c, 0x95, 0x0f, 0x08, 0x39, 0x3a, 0xcd, 0x38, 0x2a, 0x91, 0x63, 0x25, 0x4d,
+ 0x71, 0x69, 0x37, 0x46, 0xf6, 0x77, 0x0c, 0xd8, 0xd3, 0xd3, 0x6e, 0xe6, 0x1b, 0x6d, 0xda, 0x7a,
+ 0x02, 0x2b, 0x29, 0xd3, 0x8c, 0x78, 0x82, 0xbe, 0x4a, 0x86, 0x35, 0xf5, 0x75, 0xd4, 0xb4, 0x70,
+ 0xd2, 0x63, 0xba, 0xa6, 0x25, 0x56, 0x95, 0x49, 0xd7, 0xb4, 0xe4, 0x32, 0x32, 0xa9, 0xfb, 0x18,
+ 0xee, 0xf2, 0xa2, 0x79, 0x9c, 0x21, 0x23, 0xf7, 0x9e, 0x01, 0x53, 0xaa, 0x72, 0x35, 0x7a, 0xe3,
+ 0x90, 0x52, 0x2a, 0x47, 0x6f, 0x1c, 0xd2, 0x2a, 0xe4, 0x98, 0xd7, 0x18, 0x6b, 0xb3, 0xe4, 0xe5,
+ 0xf4, 0x83, 0x20, 0x3d, 0x83, 0x7f, 0x6e, 0xc0, 0x44, 0xc2, 0x89, 0x13, 0x79, 0x29, 0x1b, 0x79,
+ 0x31, 0x1f, 0x74, 0x26, 0x37, 0x1c, 0x72, 0xf4, 0x32, 0xe3, 0xe8, 0x1c, 0x39, 0x93, 0xce, 0x51,
+ 0xb2, 0x3f, 0xfa, 0x07, 0x03, 0x26, 0x93, 0x2b, 0x13, 0xe8, 0xb7, 0x37, 0xda, 0xaa, 0x18, 0xfa,
+ 0xed, 0x8d, 0xbe, 0x10, 0x82, 0x79, 0x93, 0xb1, 0xb4, 0x40, 0xe6, 0x33, 0xb2, 0xa4, 0x5f, 0x53,
+ 0xff, 0x6d, 0xc0, 0x5e, 0x7d, 0x19, 0x04, 0x32, 0x9b, 0xdd, 0xe1, 0xa8, 0xf8, 0x9d, 0xdb, 0x0c,
+ 0x0a, 0xe4, 0xfb, 0x0d, 0xc6, 0xf7, 0x22, 0xb9, 0xbd, 0x21, 0xbe, 0xd5, 0xfe, 0xeb, 0xdf, 0x42,
+ 0x8b, 0x31, 0xe2, 0xc5, 0x2e, 0xe4, 0x50, 0xbc, 0x98, 0x2f, 0xbb, 0xb8, 0x31, 0xe0, 0x8d, 0xf2,
+ 0x9b, 0xd1, 0xaf, 0xfd, 0x87, 0x01, 0xfb, 0xa2, 0x2a, 0x16, 0x75, 0x13, 0x4f, 0x48, 0xb5, 0x73,
+ 0xb0, 0x9c, 0xcb, 0x71, 0xfc, 0xae, 0x01, 0xe3, 0xb1, 0xa4, 0x77, 0xfd, 0x79, 0xa3, 0xaa, 0x36,
+ 0x85, 0xfe, 0xbc, 0x51, 0x99, 0x59, 0x6f, 0x9e, 0x60, 0xac, 0xbd, 0x40, 0x8e, 0x66, 0x30, 0xad,
+ 0x48, 0xdf, 0x57, 0x0c, 0x18, 0x8b, 0xd5, 0x54, 0x38, 0x99, 0x67, 0xf8, 0x4c, 0x0e, 0x5c, 0x95,
+ 0x67, 0x6f, 0x5e, 0x62, 0x24, 0x9f, 0x21, 0xa7, 0x33, 0x93, 0x1c, 0xb2, 0x9c, 0xdf, 0x31, 0x60,
+ 0xb7, 0x22, 0x33, 0x5e, 0x7f, 0xd5, 0xa1, 0x4f, 0xc9, 0x2f, 0x5e, 0xd8, 0x10, 0x2c, 0xf2, 0x34,
+ 0xcf, 0x78, 0xba, 0x4c, 0x2e, 0x66, 0xe5, 0x49, 0xd8, 0x89, 0x10, 0x6b, 0x7f, 0x62, 0xc0, 0xce,
+ 0xa4, 0xbc, 0x41, 0x72, 0x26, 0x5b, 0xa4, 0x17, 0xcb, 0xdf, 0x2f, 0x9e, 0xcd, 0x0f, 0x98, 0x71,
+ 0x07, 0x2e, 0xff, 0x8e, 0x2e, 0x8a, 0x2f, 0x18, 0x30, 0x21, 0x8e, 0x50, 0x02, 0xe9, 0x8a, 0xfa,
+ 0xe3, 0x8c, 0x78, 0xca, 0xa3, 0xfe, 0x38, 0x23, 0x21, 0x0f, 0x32, 0xf5, 0x38, 0xa3, 0xc9, 0x60,
+ 0x2a, 0x2c, 0xff, 0x90, 0xfc, 0x82, 0x01, 0x43, 0x32, 0xb9, 0x91, 0xbc, 0xa8, 0x1b, 0x2b, 0x9a,
+ 0x1c, 0x59, 0x3c, 0x96, 0xb1, 0x37, 0xd2, 0x75, 0x84, 0xd1, 0x65, 0x92, 0xfd, 0x0a, 0xba, 0xda,
+ 0x92, 0x8c, 0xaf, 0x1a, 0x30, 0x1e, 0x2b, 0x83, 0xa0, 0xb7, 0x27, 0xaa, 0x9a, 0x0b, 0x7a, 0x7b,
+ 0xa2, 0xac, 0xb5, 0x90, 0x7a, 0xc8, 0x29, 0x89, 0xad, 0xd8, 0xad, 0xa4, 0x93, 0x81, 0xbf, 0x30,
+ 0x60, 0x22, 0x21, 0xd7, 0x9f, 0x64, 0xbc, 0x0e, 0x8a, 0xc9, 0xfa, 0x4c, 0x6e, 0x38, 0x64, 0xe4,
+ 0x0a, 0x63, 0xe4, 0x12, 0xb9, 0xa0, 0x0a, 0xa7, 0x7b, 0x5a, 0x2b, 0x79, 0x8a, 0xe9, 0xf2, 0x3f,
+ 0x19, 0x50, 0x54, 0x97, 0x13, 0x20, 0x97, 0xf2, 0x11, 0x17, 0x9d, 0xa2, 0xcb, 0x1b, 0x05, 0xcf,
+ 0x68, 0x74, 0x94, 0x7c, 0x85, 0x66, 0xec, 0x93, 0x05, 0x38, 0x98, 0x21, 0x89, 0x5f, 0x7f, 0x2c,
+ 0x9d, 0xbd, 0x3e, 0x85, 0xfe, 0x58, 0x3a, 0x47, 0x35, 0x01, 0xf3, 0x36, 0x63, 0xff, 0x3a, 0x59,
+ 0x50, 0x59, 0x28, 0xf9, 0x96, 0x2a, 0x9b, 0x20, 0xbe, 0x61, 0xc0, 0x44, 0x42, 0x46, 0xbf, 0x5e,
+ 0x75, 0xd5, 0x45, 0x08, 0xf4, 0xaa, 0xab, 0x29, 0x3e, 0x60, 0xbe, 0xc2, 0x18, 0x3b, 0x4f, 0xce,
+ 0xaa, 0xe6, 0x55, 0xd6, 0x2e, 0x0a, 0x94, 0x6f, 0x0a, 0xb1, 0xf2, 0x2d, 0x03, 0x76, 0x2b, 0x52,
+ 0xfd, 0xf5, 0x3e, 0x52, 0x5f, 0xa9, 0x40, 0xef, 0x23, 0x53, 0x2a, 0x14, 0xa4, 0xfa, 0x7d, 0xca,
+ 0xe0, 0x95, 0x3c, 0xfd, 0xb5, 0x01, 0x93, 0xc9, 0x95, 0x00, 0xf4, 0x61, 0xa5, 0xb6, 0x8c, 0x81,
+ 0x3e, 0xac, 0xd4, 0x97, 0x2f, 0x48, 0x35, 0x31, 0xb1, 0x79, 0xc2, 0xea, 0x56, 0xb1, 0xa9, 0x52,
+ 0xd4, 0x2c, 0xd0, 0x4f, 0x95, 0xbe, 0x3a, 0x8b, 0x7e, 0xaa, 0x52, 0x8a, 0x24, 0xa4, 0x4e, 0x15,
+ 0x7f, 0x47, 0x2a, 0x32, 0x12, 0x92, 0x8e, 0xb8, 0xc6, 0xe3, 0x09, 0xd6, 0xe9, 0xc7, 0x3d, 0x09,
+ 0x75, 0x00, 0xf4, 0x7e, 0x4c, 0x99, 0xc9, 0x6f, 0xce, 0x30, 0x0e, 0x5e, 0x24, 0xcf, 0x2b, 0x38,
+ 0x48, 0xc8, 0xa7, 0x26, 0x7f, 0x6a, 0xc0, 0xd4, 0x62, 0x2f, 0x43, 0xfb, 0x09, 0x52, 0x9f, 0xf6,
+ 0x08, 0x22, 0x98, 0xa7, 0x1e, 0xe5, 0xe2, 0x2b, 0x22, 0xdb, 0x27, 0x9c, 0xc0, 0xaf, 0x37, 0x63,
+ 0xea, 0x62, 0x04, 0x7a, 0x33, 0xa6, 0x29, 0x50, 0x60, 0x9e, 0x62, 0x4c, 0x4c, 0x93, 0x17, 0xb3,
+ 0x4c, 0x81, 0xc8, 0xae, 0x27, 0xef, 0x1a, 0x30, 0x99, 0x9c, 0x53, 0xad, 0x5f, 0xe6, 0xda, 0x44,
+ 0x6e, 0xfd, 0x32, 0xd7, 0xa7, 0x70, 0x9b, 0x73, 0x8c, 0x8f, 0x8b, 0xe4, 0xbc, 0x82, 0x8f, 0x50,
+ 0x76, 0x73, 0x30, 0x9b, 0x3b, 0xf0, 0xc2, 0xc0, 0x9f, 0x94, 0x84, 0x8c, 0x66, 0xfd, 0xa4, 0xa8,
+ 0x33, 0xaf, 0xf5, 0x93, 0xa2, 0xc9, 0xc6, 0x4e, 0x9d, 0x94, 0xc4, 0x54, 0x6d, 0xf2, 0xc7, 0x06,
+ 0x8c, 0xc7, 0x12, 0x6f, 0xf5, 0x4b, 0x42, 0x95, 0x8e, 0xad, 0x5f, 0x12, 0xca, 0xec, 0xde, 0xd4,
+ 0x13, 0xb7, 0x78, 0xea, 0x6f, 0xe9, 0x61, 0x20, 0xed, 0xfb, 0x11, 0xf9, 0x4b, 0x03, 0x76, 0x2b,
+ 0x32, 0x50, 0xf5, 0x86, 0x56, 0x9f, 0xf8, 0xab, 0x37, 0xb4, 0x29, 0x29, 0xaf, 0xa9, 0x0b, 0x5d,
+ 0x3c, 0x89, 0x4d, 0x48, 0x88, 0x25, 0xdf, 0x34, 0x60, 0x8f, 0x32, 0xb7, 0x94, 0x5c, 0xcc, 0xa8,
+ 0x21, 0x89, 0x69, 0xaf, 0xc5, 0x4b, 0x1b, 0x84, 0x46, 0xb6, 0x5e, 0x62, 0x6c, 0x1d, 0x27, 0xd3,
+ 0x59, 0xb4, 0x8c, 0xd5, 0x47, 0xf0, 0x77, 0x65, 0x2e, 0xf9, 0xbc, 0x01, 0x23, 0xe1, 0x4c, 0x55,
+ 0xe5, 0xd6, 0x2c, 0x31, 0xd5, 0x55, 0xb9, 0x35, 0x4b, 0x4e, 0x7f, 0x35, 0x4b, 0x8c, 0xce, 0xa3,
+ 0xe4, 0xb0, 0x6a, 0xcb, 0x68, 0x7b, 0x4e, 0x85, 0xe7, 0x94, 0xda, 0x8c, 0x9a, 0xaf, 0x19, 0x58,
+ 0x18, 0x27, 0x96, 0x3e, 0xaa, 0x5f, 0x0d, 0xaa, 0x9c, 0x55, 0xfd, 0x6a, 0x50, 0xe6, 0xa8, 0xa6,
+ 0x6e, 0xd3, 0x38, 0xcd, 0x32, 0xcc, 0x28, 0x3d, 0x0c, 0x25, 0xc6, 0xb2, 0x58, 0x77, 0x32, 0x39,
+ 0xff, 0x54, 0x6f, 0x65, 0xb5, 0x69, 0xaf, 0x7a, 0x2b, 0xab, 0x4f, 0x77, 0x4d, 0x3d, 0x6f, 0x58,
+ 0x95, 0xe0, 0x95, 0x50, 0x5a, 0x2c, 0x0b, 0xdb, 0x13, 0x4a, 0x8f, 0xe8, 0x4d, 0xab, 0xba, 0xd0,
+ 0x89, 0xde, 0xb4, 0x6a, 0x6a, 0x9c, 0xa4, 0x86, 0xed, 0xc1, 0x02, 0x28, 0x15, 0x67, 0x05, 0x3d,
+ 0x9f, 0x1b, 0xf0, 0x12, 0x7f, 0x6b, 0xc0, 0x1e, 0x65, 0x59, 0x13, 0xfd, 0x8a, 0x4e, 0x2b, 0x9b,
+ 0xa2, 0x5f, 0xd1, 0xa9, 0xb5, 0x54, 0xcc, 0x8b, 0x8c, 0xb9, 0x97, 0xc8, 0x29, 0x55, 0x44, 0x98,
+ 0xc0, 0x59, 0x45, 0x16, 0x6c, 0xfa, 0xb2, 0x01, 0x63, 0xd1, 0x24, 0x59, 0xfd, 0x91, 0xa3, 0x22,
+ 0xe1, 0xb7, 0x78, 0x2a, 0x1f, 0x50, 0x46, 0xea, 0x7b, 0xff, 0x3f, 0x21, 0x42, 0x86, 0x42, 0xf4,
+ 0x2f, 0x1a, 0xb0, 0x33, 0x21, 0xdd, 0xd4, 0xd5, 0x3f, 0x7a, 0x48, 0x4a, 0x8a, 0xd5, 0x3f, 0x7a,
+ 0x48, 0xcc, 0x88, 0x4d, 0xbd, 0xaf, 0x5d, 0x66, 0x50, 0x22, 0xb7, 0x59, 0x9e, 0xf2, 0x7e, 0xba,
+ 0x00, 0x07, 0x52, 0x33, 0x1d, 0xc9, 0x7c, 0x9e, 0x53, 0x75, 0x55, 0xf6, 0x6c, 0xf1, 0xea, 0x26,
+ 0xb1, 0x20, 0xa7, 0x1f, 0x66, 0x9c, 0x96, 0xc9, 0x62, 0xe6, 0x9b, 0x98, 0x6a, 0x0f, 0x97, 0xf6,
+ 0xa0, 0xfe, 0x07, 0x06, 0x98, 0xe9, 0x39, 0x66, 0xe4, 0x6a, 0xba, 0x72, 0x65, 0x48, 0x79, 0x2b,
+ 0x2e, 0x6c, 0x16, 0x4d, 0xc6, 0xe0, 0xc0, 0x62, 0x48, 0xf8, 0x45, 0x45, 0xc5, 0x77, 0xa9, 0xbd,
+ 0x0c, 0x37, 0xf2, 0x07, 0x06, 0x8c, 0x45, 0x53, 0xd4, 0x52, 0x9e, 0xb4, 0x26, 0xe7, 0xc2, 0xa5,
+ 0x3c, 0x69, 0x55, 0x64, 0xc1, 0xa5, 0x3e, 0x2f, 0xb2, 0xf8, 0xc9, 0x8c, 0xeb, 0x43, 0xf2, 0x6c,
+ 0xac, 0xd2, 0x43, 0xcc, 0x30, 0x63, 0x87, 0x88, 0x24, 0x9e, 0x35, 0xa5, 0xbf, 0x90, 0x57, 0x26,
+ 0xb9, 0xe9, 0x2f, 0xe4, 0xd5, 0x59, 0x6c, 0xa9, 0x4f, 0x76, 0x30, 0x87, 0x2c, 0x08, 0x2b, 0x78,
+ 0xe8, 0x3c, 0x0a, 0x70, 0xf3, 0x35, 0x03, 0x26, 0x12, 0x92, 0xd2, 0x48, 0x4e, 0xba, 0xb2, 0x39,
+ 0x28, 0x4d, 0xf6, 0x5b, 0xea, 0xae, 0x3e, 0x81, 0x21, 0xb7, 0xc7, 0x11, 0x7b, 0xf4, 0x15, 0x4e,
+ 0xcb, 0x3a, 0x9e, 0xae, 0xe8, 0xe1, 0x9c, 0x36, 0xbd, 0xfd, 0x4b, 0xcc, 0x65, 0x4b, 0x7d, 0xf4,
+ 0x85, 0xcb, 0x1e, 0x63, 0xe3, 0x90, 0xe1, 0xfe, 0x35, 0x3f, 0x9c, 0x0c, 0x25, 0xa9, 0x91, 0xec,
+ 0x04, 0x64, 0x4b, 0xbd, 0x48, 0xce, 0x81, 0x33, 0xa7, 0x19, 0xd1, 0x47, 0xc8, 0x73, 0x99, 0x88,
+ 0x76, 0xc9, 0xef, 0xb3, 0x3b, 0xb9, 0x70, 0xaa, 0x55, 0xda, 0x9d, 0x5c, 0x62, 0xba, 0x5a, 0xda,
+ 0x9d, 0x5c, 0x72, 0xb6, 0x5a, 0xaa, 0x90, 0xe3, 0xa9, 0x64, 0xf2, 0x11, 0xef, 0x3b, 0xec, 0x12,
+ 0x34, 0x92, 0x25, 0x46, 0x72, 0x91, 0x91, 0xf5, 0x12, 0x54, 0x91, 0xeb, 0x96, 0x7a, 0xd8, 0x93,
+ 0x90, 0x08, 0x47, 0x7e, 0xc9, 0x88, 0xe4, 0xb1, 0x95, 0xf4, 0x01, 0x52, 0x2c, 0x01, 0xad, 0x78,
+ 0x3c, 0x3b, 0x00, 0xd2, 0xf9, 0x22, 0xa3, 0xf3, 0x39, 0xf2, 0xac, 0x32, 0x88, 0xa2, 0xad, 0x8a,
+ 0x8d, 0x50, 0x73, 0xf7, 0xbe, 0xf1, 0xbd, 0xbd, 0xc6, 0x37, 0xbf, 0xb7, 0xd7, 0xf8, 0xee, 0xf7,
+ 0xf6, 0x1a, 0x3f, 0xf7, 0xfe, 0xde, 0x2d, 0xdf, 0x7c, 0x7f, 0xef, 0x96, 0xef, 0xbc, 0xbf, 0x77,
+ 0xcb, 0x47, 0x5e, 0xab, 0xdb, 0xde, 0x6a, 0x77, 0x79, 0xba, 0xea, 0x34, 0x4b, 0x37, 0x04, 0xa6,
+ 0x9b, 0xd6, 0xb2, 0xdb, 0xc3, 0x7b, 0xac, 0xea, 0x74, 0x68, 0xf0, 0xe7, 0xaa, 0x65, 0xb7, 0xf0,
+ 0x0a, 0xcc, 0xed, 0x0d, 0xea, 0xad, 0xb7, 0xa9, 0x5b, 0x5a, 0x9b, 0x59, 0x1e, 0x60, 0xff, 0xb3,
+ 0xff, 0xc9, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xdd, 0xd4, 0x38, 0xa0, 0x06, 0x81, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
diff --git a/chain/exchange/types/v2/spot.go b/chain/exchange/types/v2/spot.go
new file mode 100644
index 00000000..eef4473d
--- /dev/null
+++ b/chain/exchange/types/v2/spot.go
@@ -0,0 +1,252 @@
+// nolint // revive
+package v2
+
+import (
+ "bytes"
+ "sort"
+
+ "cosmossdk.io/math"
+ "github.com/InjectiveLabs/sdk-go/chain/exchange/types"
+ "github.com/ethereum/go-ethereum/common"
+)
+
+type OrderFillType int
+
+const (
+ RestingLimitBuy OrderFillType = 0
+ RestingLimitSell OrderFillType = 1
+ TransientLimitBuy OrderFillType = 2
+ TransientLimitSell OrderFillType = 3
+)
+
+func (r *SpotOrderbookMatchingResults) GetOrderbookFills(fillType OrderFillType) *OrderbookFills {
+ switch fillType {
+ case RestingLimitBuy:
+ return r.RestingBuyOrderbookFills
+ case RestingLimitSell:
+ return r.RestingSellOrderbookFills
+ case TransientLimitBuy:
+ return r.TransientBuyOrderbookFills
+ case TransientLimitSell:
+ return r.TransientSellOrderbookFills
+ }
+
+ return r.TransientSellOrderbookFills
+}
+
+type OrderbookFills struct {
+ Orders []*SpotLimitOrder
+ FillQuantities []math.LegacyDec
+}
+
+type SpotOrderbookMatchingResults struct {
+ TransientBuyOrderbookFills *OrderbookFills
+ RestingBuyOrderbookFills *OrderbookFills
+ TransientSellOrderbookFills *OrderbookFills
+ RestingSellOrderbookFills *OrderbookFills
+ ClearingPrice math.LegacyDec
+ ClearingQuantity math.LegacyDec
+}
+
+type SpotMarketFilter struct {
+}
+
+type FullSpotMarketFiller struct {
+}
+
+type SpotOrderStateExpansion struct {
+ BaseChangeAmount math.LegacyDec
+ BaseRefundAmount math.LegacyDec
+ QuoteChangeAmount math.LegacyDec
+ QuoteRefundAmount math.LegacyDec
+ TradePrice math.LegacyDec
+ FeeRecipient common.Address
+ FeeRecipientReward math.LegacyDec
+ AuctionFeeReward math.LegacyDec
+ TraderFeeReward math.LegacyDec
+ TradingRewardPoints math.LegacyDec
+ LimitOrder *SpotLimitOrder
+ LimitOrderFillQuantity math.LegacyDec
+ MarketOrder *SpotMarketOrder
+ MarketOrderFillQuantity math.LegacyDec
+ OrderHash common.Hash
+ OrderPrice math.LegacyDec
+ SubaccountID common.Hash
+ TraderAddress string
+ Cid string
+}
+
+type SpotBatchExecutionData struct {
+ Market *SpotMarket
+ BaseDenomDepositDeltas types.DepositDeltas
+ QuoteDenomDepositDeltas types.DepositDeltas
+ BaseDenomDepositSubaccountIDs []common.Hash
+ QuoteDenomDepositSubaccountIDs []common.Hash
+ LimitOrderFilledDeltas []*SpotLimitOrderDelta
+ MarketOrderExecutionEvent *EventBatchSpotExecution
+ LimitOrderExecutionEvent []*EventBatchSpotExecution
+ NewOrdersEvent *EventNewSpotOrders
+ TradingRewardPoints types.TradingRewardPoints
+ VwapData *SpotVwapData
+}
+
+func (e *SpotOrderStateExpansion) UpdateFromDepositDeltas(
+ market *SpotMarket, baseDenomDepositDeltas, quoteDenomDepositDeltas types.DepositDeltas,
+) {
+ traderBaseDepositDelta := &types.DepositDelta{
+ AvailableBalanceDelta: market.QuantityToChainFormat(e.BaseRefundAmount),
+ TotalBalanceDelta: market.QuantityToChainFormat(e.BaseChangeAmount),
+ }
+
+ traderQuoteDepositDelta := &types.DepositDelta{
+ AvailableBalanceDelta: market.NotionalToChainFormat(e.QuoteRefundAmount),
+ TotalBalanceDelta: market.NotionalToChainFormat(e.QuoteChangeAmount),
+ }
+
+ if e.BaseChangeAmount.IsPositive() {
+ traderBaseDepositDelta.AddAvailableBalance(market.QuantityToChainFormat(e.BaseChangeAmount))
+ }
+
+ if e.QuoteChangeAmount.IsPositive() {
+ traderQuoteDepositDelta.AddAvailableBalance(market.NotionalToChainFormat(e.QuoteChangeAmount))
+ }
+
+ feeRecipientSubaccount := types.EthAddressToSubaccountID(e.FeeRecipient)
+ if bytes.Equal(feeRecipientSubaccount.Bytes(), types.ZeroSubaccountID.Bytes()) {
+ feeRecipientSubaccount = types.AuctionSubaccountID
+ }
+
+ baseDenomDepositDeltas.ApplyDepositDelta(e.SubaccountID, traderBaseDepositDelta)
+ quoteDenomDepositDeltas.ApplyDepositDelta(e.SubaccountID, traderQuoteDepositDelta)
+
+ quoteDenomDepositDeltas.ApplyUniformDelta(feeRecipientSubaccount, market.NotionalToChainFormat(e.FeeRecipientReward))
+ quoteDenomDepositDeltas.ApplyUniformDelta(types.AuctionSubaccountID, market.NotionalToChainFormat(e.AuctionFeeReward))
+}
+
+func GetBatchExecutionEventsFromSpotLimitOrderStateExpansions(
+ isBuy bool,
+ market *SpotMarket,
+ executionType ExecutionType,
+ spotLimitOrderStateExpansions []*SpotOrderStateExpansion,
+ baseDenomDepositDeltas,
+ quoteDenomDepositDeltas types.DepositDeltas,
+) (*EventBatchSpotExecution, []*SpotLimitOrderDelta, types.TradingRewardPoints) {
+ limitOrderBatchEvent := &EventBatchSpotExecution{
+ MarketId: market.MarketID().Hex(),
+ IsBuy: isBuy,
+ ExecutionType: executionType,
+ }
+
+ trades := make([]*TradeLog, 0, len(spotLimitOrderStateExpansions))
+
+ // array of (SubaccountIndexKey, fillableAmount) to update/delete
+ filledDeltas := make([]*SpotLimitOrderDelta, 0, len(spotLimitOrderStateExpansions))
+ tradingRewardPoints := types.NewTradingRewardPoints()
+
+ for idx := range spotLimitOrderStateExpansions {
+ expansion := spotLimitOrderStateExpansions[idx]
+ expansion.UpdateFromDepositDeltas(market, baseDenomDepositDeltas, quoteDenomDepositDeltas)
+
+ // skip adding trade data if there was no trade (unfilled new order)
+ fillQuantity := spotLimitOrderStateExpansions[idx].BaseChangeAmount
+ if fillQuantity.IsZero() {
+ continue
+ }
+
+ filledDeltas = append(filledDeltas, &SpotLimitOrderDelta{
+ Order: expansion.LimitOrder,
+ FillQuantity: expansion.LimitOrderFillQuantity,
+ })
+
+ var realizedTradeFee math.LegacyDec
+
+ isSelfRelayedTrade := expansion.FeeRecipient == types.SubaccountIDToEthAddress(expansion.SubaccountID)
+ if isSelfRelayedTrade {
+ // if negative fee, equals the full negative rebate
+ // otherwise equals the fees going to auction
+ realizedTradeFee = expansion.AuctionFeeReward
+ } else {
+ realizedTradeFee = expansion.FeeRecipientReward.Add(expansion.AuctionFeeReward)
+ }
+
+ tradingRewardPoints.AddPointsForAddress(expansion.TraderAddress, expansion.TradingRewardPoints)
+
+ trades = append(trades, &TradeLog{
+ Quantity: expansion.BaseChangeAmount.Abs(),
+ Price: expansion.TradePrice,
+ SubaccountId: expansion.SubaccountID.Bytes(),
+ Fee: realizedTradeFee,
+ OrderHash: expansion.OrderHash.Bytes(),
+ FeeRecipientAddress: expansion.FeeRecipient.Bytes(),
+ Cid: expansion.Cid,
+ })
+ }
+ limitOrderBatchEvent.Trades = trades
+
+ if len(trades) == 0 {
+ limitOrderBatchEvent = nil
+ }
+ return limitOrderBatchEvent, filledDeltas, tradingRewardPoints
+}
+
+type SpotVwapData struct {
+ Price math.LegacyDec
+ Quantity math.LegacyDec
+}
+
+func NewSpotVwapData() *SpotVwapData {
+ return &SpotVwapData{
+ Price: math.LegacyZeroDec(),
+ Quantity: math.LegacyZeroDec(),
+ }
+}
+
+func (p *SpotVwapData) ApplyExecution(price, quantity math.LegacyDec) *SpotVwapData {
+ if p == nil {
+ p = NewSpotVwapData()
+ }
+
+ if price.IsNil() || quantity.IsNil() || quantity.IsZero() {
+ return p
+ }
+
+ newQuantity := p.Quantity.Add(quantity)
+ newPrice := p.Price.Mul(p.Quantity).Add(price.Mul(quantity)).Quo(newQuantity)
+
+ return &SpotVwapData{
+ Price: newPrice,
+ Quantity: newQuantity,
+ }
+}
+
+type SpotVwapInfo map[common.Hash]*SpotVwapData
+
+func NewSpotVwapInfo() SpotVwapInfo {
+ return make(SpotVwapInfo)
+}
+
+func (p *SpotVwapInfo) ApplyVwap(marketID common.Hash, newVwapData *SpotVwapData) {
+ var existingVwapData *SpotVwapData
+
+ existingVwapData = (*p)[marketID]
+ if existingVwapData == nil {
+ existingVwapData = NewSpotVwapData()
+ (*p)[marketID] = existingVwapData
+ }
+
+ if !newVwapData.Quantity.IsZero() {
+ (*p)[marketID] = existingVwapData.ApplyExecution(newVwapData.Price, newVwapData.Quantity)
+ }
+}
+
+func (p *SpotVwapInfo) GetSortedSpotMarketIDs() []common.Hash {
+ spotMarketIDs := make([]common.Hash, 0)
+ for k := range *p {
+ spotMarketIDs = append(spotMarketIDs, k)
+ }
+
+ sort.SliceStable(spotMarketIDs, func(i, j int) bool {
+ return bytes.Compare(spotMarketIDs[i].Bytes(), spotMarketIDs[j].Bytes()) < 0
+ })
+ return spotMarketIDs
+}
diff --git a/chain/exchange/types/v2/subaccount.go b/chain/exchange/types/v2/subaccount.go
index a4abf9c2..d0fb00b3 100644
--- a/chain/exchange/types/v2/subaccount.go
+++ b/chain/exchange/types/v2/subaccount.go
@@ -2,6 +2,7 @@ package v2
import (
"cosmossdk.io/math"
+ "github.com/ethereum/go-ethereum/common"
)
func NewSubaccountOrderbookMetadata() *SubaccountOrderbookMetadata {
@@ -42,3 +43,59 @@ func (m *SubaccountOrderbookMetadata) ApplyDelta(d *SubaccountOrderbookMetadata)
m.VanillaLimitOrderCount += d.VanillaLimitOrderCount
m.ReduceOnlyLimitOrderCount += d.ReduceOnlyLimitOrderCount
}
+
+func NewSubaccountOrderMetadata() *SubaccountOrderMetadata {
+ return &SubaccountOrderMetadata{
+ CumulativeEOBVanillaQuantity: math.LegacyZeroDec(),
+ CumulativeEOBReduceOnlyQuantity: math.LegacyZeroDec(),
+ CumulativeBetterReduceOnlyQuantity: math.LegacyZeroDec(),
+ }
+}
+
+type SubaccountOrderMetadata struct {
+ CumulativeEOBVanillaQuantity math.LegacyDec
+ CumulativeEOBReduceOnlyQuantity math.LegacyDec
+ CumulativeBetterReduceOnlyQuantity math.LegacyDec
+}
+
+func NewSubaccountOrderResults() *SubaccountOrderResults {
+ return &SubaccountOrderResults{
+ ReduceOnlyOrders: make([]*SubaccountOrderData, 0),
+ VanillaOrders: make([]*SubaccountOrderData, 0),
+ metadata: NewSubaccountOrderMetadata(),
+ }
+}
+
+type SubaccountOrderResults struct {
+ ReduceOnlyOrders []*SubaccountOrderData
+ VanillaOrders []*SubaccountOrderData
+ metadata *SubaccountOrderMetadata
+ LastFoundOrderPrice *math.LegacyDec
+ LastFoundOrderHash *common.Hash
+}
+
+func (r *SubaccountOrderResults) AddSubaccountOrder(d *SubaccountOrderData) {
+ if d.Order.IsReduceOnly {
+ r.ReduceOnlyOrders = append(r.ReduceOnlyOrders, d)
+ r.metadata.CumulativeEOBReduceOnlyQuantity = r.metadata.CumulativeEOBReduceOnlyQuantity.Add(d.Order.Quantity)
+ } else {
+ r.VanillaOrders = append(r.VanillaOrders, d)
+ r.metadata.CumulativeEOBVanillaQuantity = r.metadata.CumulativeEOBVanillaQuantity.Add(d.Order.Quantity)
+ }
+}
+
+func (r *SubaccountOrderResults) IncrementCumulativeBetterReduceOnlyQuantity(quantity math.LegacyDec) {
+ r.metadata.CumulativeBetterReduceOnlyQuantity = r.metadata.CumulativeBetterReduceOnlyQuantity.Add(quantity)
+}
+
+func (r *SubaccountOrderResults) GetCumulativeEOBVanillaQuantity() math.LegacyDec {
+ return r.metadata.CumulativeEOBVanillaQuantity
+}
+
+func (r *SubaccountOrderResults) GetCumulativeEOBReduceOnlyQuantity() math.LegacyDec {
+ return r.metadata.CumulativeEOBReduceOnlyQuantity
+}
+
+func (r *SubaccountOrderResults) GetCumulativeBetterReduceOnlyQuantity() math.LegacyDec {
+ return r.metadata.CumulativeBetterReduceOnlyQuantity
+}
diff --git a/chain/exchange/types/v2/trade.go b/chain/exchange/types/v2/trade.go
new file mode 100644
index 00000000..a99e3846
--- /dev/null
+++ b/chain/exchange/types/v2/trade.go
@@ -0,0 +1,23 @@
+package v2
+
+import "cosmossdk.io/math"
+
+type TradeFeeData struct {
+ TotalTradeFee math.LegacyDec
+ TraderFee math.LegacyDec
+ TradingRewardPoints math.LegacyDec
+ FeeRecipientReward math.LegacyDec
+ AuctionFeeReward math.LegacyDec
+ DiscountedTradeFeeRate math.LegacyDec
+}
+
+func NewEmptyTradeFeeData(discountedTradeFeeRate math.LegacyDec) *TradeFeeData {
+ return &TradeFeeData{
+ TotalTradeFee: math.LegacyZeroDec(),
+ TraderFee: math.LegacyZeroDec(),
+ TradingRewardPoints: math.LegacyZeroDec(),
+ FeeRecipientReward: math.LegacyZeroDec(),
+ AuctionFeeReward: math.LegacyZeroDec(),
+ DiscountedTradeFeeRate: discountedTradeFeeRate,
+ }
+}
diff --git a/chain/exchange/types/v2/tx.pb.go b/chain/exchange/types/v2/tx.pb.go
index 679f3811..93757855 100644
--- a/chain/exchange/types/v2/tx.pb.go
+++ b/chain/exchange/types/v2/tx.pb.go
@@ -5141,6 +5141,100 @@ func (m *MsgCancelPostOnlyModeResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgCancelPostOnlyModeResponse proto.InternalMessageInfo
+// MsgActivatePostOnlyMode defines a message to turn on the post-only mode for a
+// number of blocks
+type MsgActivatePostOnlyMode struct {
+ // the sender's Injective address
+ Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
+ // the number of blocks to activate post-only mode for
+ BlocksAmount uint32 `protobuf:"varint,2,opt,name=blocks_amount,json=blocksAmount,proto3" json:"blocks_amount,omitempty"`
+}
+
+func (m *MsgActivatePostOnlyMode) Reset() { *m = MsgActivatePostOnlyMode{} }
+func (m *MsgActivatePostOnlyMode) String() string { return proto.CompactTextString(m) }
+func (*MsgActivatePostOnlyMode) ProtoMessage() {}
+func (*MsgActivatePostOnlyMode) Descriptor() ([]byte, []int) {
+ return fileDescriptor_7c861fb1c14863a5, []int{113}
+}
+func (m *MsgActivatePostOnlyMode) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *MsgActivatePostOnlyMode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_MsgActivatePostOnlyMode.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *MsgActivatePostOnlyMode) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgActivatePostOnlyMode.Merge(m, src)
+}
+func (m *MsgActivatePostOnlyMode) XXX_Size() int {
+ return m.Size()
+}
+func (m *MsgActivatePostOnlyMode) XXX_DiscardUnknown() {
+ xxx_messageInfo_MsgActivatePostOnlyMode.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MsgActivatePostOnlyMode proto.InternalMessageInfo
+
+func (m *MsgActivatePostOnlyMode) GetSender() string {
+ if m != nil {
+ return m.Sender
+ }
+ return ""
+}
+
+func (m *MsgActivatePostOnlyMode) GetBlocksAmount() uint32 {
+ if m != nil {
+ return m.BlocksAmount
+ }
+ return 0
+}
+
+// MsgActivatePostOnlyModeResponse defines the response for
+// MsgActivatePostOnlyMode
+type MsgActivatePostOnlyModeResponse struct {
+}
+
+func (m *MsgActivatePostOnlyModeResponse) Reset() { *m = MsgActivatePostOnlyModeResponse{} }
+func (m *MsgActivatePostOnlyModeResponse) String() string { return proto.CompactTextString(m) }
+func (*MsgActivatePostOnlyModeResponse) ProtoMessage() {}
+func (*MsgActivatePostOnlyModeResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_7c861fb1c14863a5, []int{114}
+}
+func (m *MsgActivatePostOnlyModeResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *MsgActivatePostOnlyModeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_MsgActivatePostOnlyModeResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *MsgActivatePostOnlyModeResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgActivatePostOnlyModeResponse.Merge(m, src)
+}
+func (m *MsgActivatePostOnlyModeResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *MsgActivatePostOnlyModeResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_MsgActivatePostOnlyModeResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MsgActivatePostOnlyModeResponse proto.InternalMessageInfo
+
func init() {
proto.RegisterType((*MsgUpdateSpotMarket)(nil), "injective.exchange.v2.MsgUpdateSpotMarket")
proto.RegisterType((*MsgUpdateSpotMarketResponse)(nil), "injective.exchange.v2.MsgUpdateSpotMarketResponse")
@@ -5255,179 +5349,181 @@ func init() {
proto.RegisterType((*MsgAtomicMarketOrderFeeMultiplierScheduleResponse)(nil), "injective.exchange.v2.MsgAtomicMarketOrderFeeMultiplierScheduleResponse")
proto.RegisterType((*MsgCancelPostOnlyMode)(nil), "injective.exchange.v2.MsgCancelPostOnlyMode")
proto.RegisterType((*MsgCancelPostOnlyModeResponse)(nil), "injective.exchange.v2.MsgCancelPostOnlyModeResponse")
+ proto.RegisterType((*MsgActivatePostOnlyMode)(nil), "injective.exchange.v2.MsgActivatePostOnlyMode")
+ proto.RegisterType((*MsgActivatePostOnlyModeResponse)(nil), "injective.exchange.v2.MsgActivatePostOnlyModeResponse")
}
func init() { proto.RegisterFile("injective/exchange/v2/tx.proto", fileDescriptor_7c861fb1c14863a5) }
var fileDescriptor_7c861fb1c14863a5 = []byte{
- // 5243 bytes of a gzipped FileDescriptorProto
+ // 5300 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x1c, 0xc9,
0x71, 0xb0, 0x46, 0xfc, 0x2f, 0xfe, 0x0f, 0x29, 0x71, 0xb5, 0x94, 0x48, 0x69, 0xa8, 0x5f, 0x9e,
- 0xc4, 0x95, 0x78, 0xfa, 0xbb, 0x95, 0x25, 0x1d, 0x29, 0x8a, 0xdf, 0xe9, 0x4e, 0x3c, 0x51, 0x4b,
- 0xdd, 0x77, 0xbe, 0x8b, 0x8d, 0xc5, 0x70, 0xb6, 0xb9, 0x1c, 0x73, 0x77, 0x66, 0x6f, 0x66, 0x96,
- 0x12, 0xef, 0x21, 0xfe, 0x41, 0x10, 0x1f, 0x1c, 0x04, 0x30, 0x10, 0x20, 0x40, 0x80, 0x04, 0x70,
- 0x12, 0x24, 0x81, 0x9d, 0x20, 0x39, 0x27, 0x06, 0xe2, 0x24, 0x08, 0x0c, 0x04, 0x30, 0x60, 0x24,
- 0x2f, 0x97, 0x00, 0x06, 0x02, 0x3f, 0x28, 0xc6, 0xdd, 0xc3, 0x05, 0xce, 0x5b, 0x1e, 0x93, 0x97,
- 0x60, 0xba, 0x7b, 0x7a, 0xe7, 0xa7, 0xbb, 0x67, 0x76, 0x8f, 0x3c, 0x9f, 0x0d, 0xbf, 0xdc, 0x69,
- 0xba, 0xab, 0xaa, 0xab, 0xaa, 0xab, 0xab, 0xab, 0xab, 0xab, 0x97, 0x30, 0x63, 0x5a, 0x5f, 0x42,
- 0x86, 0x67, 0xee, 0xa2, 0x02, 0x7a, 0x66, 0x6c, 0xeb, 0x56, 0x15, 0x15, 0x76, 0x17, 0x0b, 0xde,
- 0xb3, 0x85, 0x86, 0x63, 0x7b, 0xb6, 0x7a, 0x84, 0xf5, 0x2f, 0x04, 0xfd, 0x0b, 0xbb, 0x8b, 0xf9,
- 0x19, 0xc3, 0x76, 0xeb, 0xb6, 0x5b, 0xd8, 0xd4, 0x5d, 0x54, 0xd8, 0xbd, 0xb2, 0x89, 0x3c, 0xfd,
- 0x4a, 0xc1, 0xb0, 0x4d, 0x8b, 0xa0, 0xe5, 0x17, 0x68, 0x7f, 0xc5, 0x74, 0x3d, 0xc7, 0xdc, 0x6c,
- 0x7a, 0xa6, 0x6d, 0x31, 0xb8, 0x70, 0x23, 0x85, 0x9f, 0xa2, 0xf0, 0x75, 0xb7, 0x5a, 0xd8, 0xbd,
- 0xe2, 0xff, 0x8f, 0x76, 0x1c, 0x23, 0x1d, 0x65, 0xfc, 0x55, 0x20, 0x1f, 0xb4, 0x6b, 0xb2, 0x6a,
- 0x57, 0x6d, 0xd2, 0xee, 0xff, 0x8b, 0xb6, 0x9e, 0xe6, 0x0b, 0xc4, 0x98, 0x27, 0x50, 0xa7, 0xf8,
- 0x50, 0xb6, 0x53, 0x41, 0x0e, 0x05, 0xd1, 0xf8, 0x20, 0x75, 0xdd, 0xd9, 0x41, 0x9e, 0x7c, 0xb0,
- 0x86, 0x63, 0x37, 0x6c, 0x57, 0xaf, 0x51, 0xa8, 0x33, 0x2d, 0x28, 0xdb, 0xd1, 0x8d, 0x5a, 0x4b,
- 0x63, 0xe4, 0x93, 0x82, 0x8d, 0xeb, 0x75, 0xd3, 0xb2, 0x0b, 0xf8, 0xbf, 0xa4, 0x49, 0xfb, 0xe3,
- 0x2e, 0x98, 0x58, 0x73, 0xab, 0x6f, 0x34, 0x2a, 0xba, 0x87, 0x36, 0x1a, 0xb6, 0xb7, 0x86, 0x47,
- 0x57, 0x27, 0xa1, 0x47, 0xaf, 0xd4, 0x4d, 0x2b, 0xa7, 0x9c, 0x54, 0xce, 0x0f, 0x94, 0xc8, 0x87,
- 0x3a, 0x0d, 0x03, 0x84, 0xbb, 0xb2, 0x59, 0xc9, 0x1d, 0xc6, 0x3d, 0xfd, 0xa4, 0xe1, 0x41, 0x45,
- 0x3d, 0x01, 0x60, 0xa1, 0xa7, 0x65, 0xcf, 0x34, 0x76, 0x90, 0x93, 0xeb, 0xc2, 0xbd, 0x03, 0x16,
- 0x7a, 0xfa, 0x04, 0x37, 0xa8, 0x6f, 0xc1, 0x94, 0xdf, 0x5d, 0x37, 0xad, 0x72, 0xc3, 0x31, 0x0d,
- 0x84, 0x01, 0xcb, 0xae, 0xf9, 0x2e, 0xca, 0x75, 0xfb, 0xb0, 0xcb, 0x73, 0x3f, 0x7a, 0x3e, 0x7b,
- 0xe8, 0x27, 0xcf, 0x67, 0xa7, 0xc9, 0x1c, 0xb8, 0x95, 0x9d, 0x05, 0xd3, 0x2e, 0xd4, 0x75, 0x6f,
- 0x7b, 0xe1, 0x21, 0xaa, 0xea, 0xc6, 0xde, 0x0a, 0x32, 0x4a, 0x13, 0x16, 0x7a, 0xba, 0x66, 0x5a,
- 0xeb, 0x3e, 0x05, 0x9f, 0xf0, 0x86, 0xf9, 0x2e, 0x52, 0xcb, 0x90, 0x0f, 0x48, 0xbf, 0xd3, 0xd4,
- 0x2d, 0xcf, 0xf4, 0xf6, 0x42, 0xd4, 0x7b, 0xb2, 0x53, 0x3f, 0x4a, 0xa8, 0x3f, 0xa6, 0x44, 0xd8,
- 0x00, 0x6b, 0x30, 0x16, 0x0c, 0x60, 0xd9, 0xbe, 0x51, 0xe9, 0xb5, 0x5c, 0x6f, 0x76, 0xb2, 0x23,
- 0x84, 0xec, 0xeb, 0x14, 0xb5, 0x58, 0xf8, 0xcf, 0x6f, 0xcd, 0x1e, 0xfa, 0xda, 0xc7, 0xef, 0xcf,
- 0x13, 0xb5, 0x7e, 0xe3, 0xe3, 0xf7, 0xe7, 0x8f, 0xb3, 0xd9, 0xe5, 0xcc, 0x86, 0x76, 0x02, 0xa6,
- 0x39, 0xcd, 0x25, 0xe4, 0x36, 0x6c, 0xcb, 0x45, 0xda, 0xf7, 0x7a, 0xe1, 0x18, 0xeb, 0x5f, 0x41,
- 0x8e, 0xb9, 0xab, 0xfb, 0xb6, 0xf0, 0xab, 0xa9, 0x3c, 0xf0, 0xa9, 0x54, 0xbf, 0x00, 0x39, 0x9f,
- 0x9c, 0x69, 0x99, 0x9e, 0xa9, 0xd7, 0xca, 0x75, 0xdd, 0xa9, 0x9a, 0x56, 0xd9, 0xd1, 0x3d, 0xd3,
- 0xce, 0xf5, 0x65, 0x27, 0x7b, 0xc4, 0x42, 0x4f, 0x1f, 0x10, 0x1a, 0x6b, 0x98, 0x44, 0xc9, 0xa7,
- 0xa0, 0x56, 0xe0, 0x38, 0x66, 0x56, 0x37, 0x2d, 0x0f, 0x59, 0xba, 0x65, 0xa0, 0xe8, 0x08, 0xfd,
- 0xd9, 0x47, 0x38, 0xe6, 0x33, 0xde, 0xa2, 0x13, 0x1e, 0xe5, 0x6d, 0x32, 0x9d, 0x0e, 0xaa, 0x34,
- 0xe3, 0x03, 0x0c, 0x64, 0x1f, 0x60, 0xd2, 0x42, 0x4f, 0x4b, 0x98, 0x44, 0x98, 0x76, 0x19, 0x7c,
- 0xd1, 0xca, 0x76, 0x03, 0xb5, 0xf4, 0x5d, 0x36, 0xf4, 0x46, 0x0e, 0x4e, 0x2a, 0xe7, 0x07, 0x17,
- 0xcf, 0x2e, 0x70, 0xbd, 0xff, 0xc2, 0xa3, 0x06, 0x62, 0x3a, 0xbe, 0xa7, 0x37, 0x96, 0xbb, 0x7d,
- 0x0e, 0x4a, 0xaa, 0x85, 0x9e, 0xc6, 0x7a, 0x8a, 0x2f, 0xbd, 0xf7, 0xad, 0xd9, 0x43, 0xc9, 0xf5,
- 0xa4, 0x25, 0xd7, 0x53, 0x7c, 0x61, 0x68, 0x73, 0x70, 0x4a, 0xd8, 0xc9, 0xd6, 0xd6, 0xdf, 0x28,
- 0x30, 0xca, 0xa0, 0xd6, 0x75, 0x47, 0xaf, 0xbb, 0xea, 0x75, 0x18, 0xd0, 0x9b, 0xde, 0xb6, 0xed,
- 0x98, 0xde, 0x1e, 0x59, 0x55, 0xcb, 0xb9, 0x7f, 0xfb, 0xde, 0xa5, 0x49, 0xba, 0x79, 0x2c, 0x55,
- 0x2a, 0x0e, 0x72, 0xdd, 0x0d, 0xcf, 0x31, 0xad, 0x6a, 0xa9, 0x05, 0xaa, 0xde, 0x82, 0xde, 0x06,
- 0xa6, 0x80, 0x17, 0xdc, 0xe0, 0xe2, 0x09, 0x81, 0xf4, 0x64, 0x18, 0x2a, 0x34, 0x45, 0x29, 0xbe,
- 0xe0, 0x0b, 0xd8, 0x22, 0xe6, 0x0b, 0x99, 0x4b, 0x0a, 0x49, 0x50, 0xb5, 0x63, 0x30, 0x15, 0x6b,
- 0x62, 0x02, 0xfd, 0x95, 0x02, 0xb0, 0xe6, 0x56, 0x57, 0x50, 0xc3, 0x76, 0x4d, 0x4f, 0x3d, 0x0a,
- 0xbd, 0x2e, 0xb2, 0x2a, 0xc8, 0xa1, 0xee, 0x81, 0x7e, 0xa9, 0x73, 0x30, 0xec, 0x36, 0x37, 0x75,
- 0xc3, 0xb0, 0x9b, 0x56, 0xc8, 0x47, 0x0c, 0xb5, 0x1a, 0x1f, 0x54, 0xd4, 0x1b, 0xd0, 0xab, 0xd7,
- 0xfd, 0x7f, 0x63, 0x1f, 0x31, 0xb8, 0x78, 0x8c, 0xee, 0xca, 0x0b, 0xfe, 0xae, 0xbd, 0x40, 0xf7,
- 0xa0, 0x85, 0x7b, 0xb6, 0x69, 0x05, 0xc2, 0x10, 0xf0, 0xe2, 0x0b, 0xe1, 0x59, 0xa3, 0x43, 0xfa,
- 0x12, 0x4d, 0x84, 0x25, 0xa2, 0x2c, 0x6a, 0x93, 0xa0, 0xb6, 0xbe, 0x98, 0x1c, 0xdf, 0x55, 0x60,
- 0x70, 0xcd, 0xad, 0xbe, 0x69, 0x7a, 0xdb, 0x15, 0x47, 0x7f, 0xfa, 0x73, 0x12, 0xe4, 0xa2, 0x40,
- 0x90, 0xc9, 0xb0, 0x20, 0x01, 0x8f, 0xda, 0x11, 0xbc, 0xd9, 0x06, 0x9f, 0x4c, 0x94, 0x6f, 0x2b,
- 0x78, 0xba, 0xee, 0x39, 0x88, 0xfa, 0xf7, 0x87, 0x66, 0xdd, 0xf4, 0x1e, 0xf9, 0xa1, 0x82, 0x50,
- 0xac, 0xcf, 0x41, 0x0f, 0x8e, 0x25, 0xa8, 0x29, 0x9d, 0x14, 0x98, 0x92, 0x4f, 0x0d, 0x13, 0xa2,
- 0x7c, 0x13, 0xa4, 0xe2, 0x4d, 0x01, 0xdb, 0x27, 0xc3, 0x6c, 0xf3, 0xf8, 0xd1, 0xbe, 0x00, 0xb3,
- 0x82, 0xae, 0x40, 0x1c, 0x7f, 0xf7, 0xc0, 0xa3, 0x94, 0xb7, 0x75, 0x77, 0x9b, 0xb2, 0x3d, 0x80,
- 0x5b, 0x5e, 0xd1, 0xdd, 0x6d, 0x75, 0x0c, 0xba, 0x0c, 0x36, 0x0d, 0xfe, 0x3f, 0x8b, 0xfd, 0x01,
- 0x37, 0xda, 0xdf, 0x2a, 0x70, 0x62, 0xcd, 0xad, 0x2e, 0xeb, 0x9e, 0xb1, 0xcd, 0x1b, 0xc3, 0x15,
- 0xea, 0xe3, 0x0e, 0xf4, 0xe2, 0x21, 0xfc, 0xb5, 0xd5, 0xd5, 0x86, 0x42, 0x28, 0x56, 0xf1, 0x8e,
- 0x40, 0x23, 0x67, 0xc3, 0x1a, 0x11, 0xf3, 0xa5, 0xfd, 0xb5, 0x02, 0x67, 0xa4, 0x10, 0x4c, 0x3d,
- 0xa7, 0x60, 0xa8, 0xa5, 0x1e, 0xe4, 0xe6, 0x94, 0x93, 0x5d, 0xe7, 0x07, 0x4a, 0x83, 0x4c, 0x41,
- 0xc8, 0x55, 0x17, 0x60, 0xc2, 0xc0, 0x34, 0x2a, 0x65, 0xc2, 0x5e, 0xd9, 0x30, 0x2b, 0x44, 0xb2,
- 0x81, 0xd2, 0x38, 0xed, 0x22, 0x64, 0xef, 0x99, 0x15, 0x57, 0xbd, 0x08, 0xea, 0x96, 0x6e, 0xd6,
- 0x62, 0xe0, 0x5d, 0x18, 0x7c, 0x8c, 0xf4, 0xb4, 0xa0, 0x43, 0xea, 0xfe, 0xad, 0x6e, 0xc8, 0xaf,
- 0xb9, 0xd5, 0x07, 0x96, 0xeb, 0xe9, 0x96, 0xd7, 0x8a, 0x2c, 0x1e, 0xea, 0x4d, 0xcb, 0xd8, 0x16,
- 0xea, 0xfa, 0x28, 0xf4, 0xd2, 0xd0, 0x80, 0x4c, 0x22, 0xfd, 0xf2, 0x27, 0xde, 0x5f, 0x2f, 0xe5,
- 0x0a, 0xb2, 0xec, 0x7a, 0x10, 0x36, 0xf8, 0x2d, 0x2b, 0x7e, 0x83, 0x3a, 0x0b, 0x83, 0xef, 0x34,
- 0x6d, 0x2f, 0xe8, 0xc7, 0xa1, 0x42, 0x09, 0x70, 0x13, 0x01, 0x28, 0xc1, 0x04, 0x2f, 0xa6, 0x68,
- 0x63, 0xd7, 0x1f, 0xab, 0xc7, 0x03, 0x8a, 0xcf, 0xc3, 0x51, 0x41, 0x30, 0xd1, 0xc6, 0xae, 0xef,
- 0xb3, 0x95, 0x88, 0x24, 0x56, 0x61, 0x28, 0x12, 0x45, 0xb4, 0xb1, 0xdd, 0x0f, 0xd6, 0x43, 0x21,
- 0xc4, 0x1c, 0x0c, 0x53, 0xad, 0x19, 0x66, 0x5d, 0xaf, 0xb9, 0x78, 0x57, 0x1f, 0x2e, 0x0d, 0x11,
- 0xc5, 0x91, 0x36, 0xf5, 0x0c, 0x8c, 0x04, 0xba, 0xa3, 0x50, 0x03, 0x18, 0x6a, 0x98, 0xaa, 0x8f,
- 0x34, 0x16, 0x6f, 0x09, 0xac, 0x78, 0x2e, 0x6c, 0xc5, 0x82, 0xe9, 0xd6, 0x4e, 0x83, 0x26, 0xee,
- 0x65, 0xce, 0xea, 0xa7, 0xfd, 0xd8, 0x03, 0x50, 0xb0, 0x75, 0xe4, 0x34, 0x90, 0xd7, 0xc4, 0x61,
- 0x4b, 0xe7, 0x86, 0x13, 0xb3, 0x8c, 0xae, 0x84, 0x65, 0xcc, 0xc2, 0x20, 0x39, 0xc9, 0x94, 0x7d,
- 0xad, 0x04, 0xa6, 0x43, 0x9a, 0x96, 0xf5, 0x60, 0x51, 0x61, 0x00, 0x8c, 0x45, 0x6c, 0xa6, 0x44,
- 0x91, 0x1e, 0xfb, 0x4d, 0xfe, 0xa2, 0xa2, 0x20, 0xae, 0xa1, 0xd7, 0x50, 0x79, 0x4b, 0x37, 0x3c,
- 0xdb, 0xc1, 0x66, 0x30, 0x5c, 0x1a, 0x27, 0x5d, 0x1b, 0x7e, 0xcf, 0x2a, 0xee, 0x50, 0xef, 0xb3,
- 0x31, 0xbd, 0xbd, 0x06, 0xc2, 0xd3, 0x3b, 0xb2, 0x78, 0x3a, 0xe4, 0x56, 0xe8, 0xd9, 0x2a, 0xd8,
- 0x1d, 0x1e, 0xe1, 0xcf, 0x27, 0x7b, 0x0d, 0x14, 0x70, 0xe6, 0xff, 0x5b, 0x7d, 0x00, 0x23, 0x75,
- 0x7d, 0x07, 0x39, 0xe5, 0x2d, 0x84, 0xfc, 0xa8, 0x0a, 0xb5, 0x13, 0xb5, 0x0d, 0x61, 0xd4, 0x55,
- 0x84, 0x4a, 0xba, 0x87, 0x49, 0x79, 0x51, 0x52, 0x6d, 0xc4, 0x67, 0x43, 0x5e, 0x98, 0xd4, 0x1b,
- 0x30, 0xc9, 0x8d, 0x59, 0x21, 0x3b, 0x41, 0xd5, 0x4c, 0x06, 0xac, 0x5f, 0x84, 0x9c, 0x30, 0x58,
- 0x1d, 0x6c, 0x23, 0x78, 0xaf, 0xf3, 0x23, 0x55, 0x81, 0x83, 0x18, 0x3a, 0x18, 0x07, 0x31, 0xbc,
- 0xcf, 0x0e, 0x62, 0xa4, 0x43, 0x07, 0xb1, 0x01, 0x13, 0xbc, 0xd8, 0x7c, 0x34, 0x3b, 0xb9, 0x71,
- 0x27, 0x11, 0x98, 0x7f, 0x1e, 0xc6, 0x93, 0x41, 0xf9, 0x58, 0x07, 0x41, 0xf9, 0xa8, 0x1d, 0x8b,
- 0xc8, 0x5f, 0x16, 0xf8, 0xa0, 0xf3, 0x1c, 0x1f, 0xc4, 0x75, 0x1f, 0xda, 0x05, 0x38, 0x97, 0x02,
- 0xc2, 0xbc, 0xd1, 0x47, 0x7d, 0x30, 0xd7, 0x82, 0x5d, 0x36, 0x2d, 0xdd, 0xd9, 0x7b, 0xd4, 0xf0,
- 0x99, 0x71, 0x3f, 0x91, 0x47, 0x9a, 0x83, 0xe1, 0xc0, 0x59, 0xec, 0xd5, 0x37, 0xed, 0x1a, 0xf5,
- 0x49, 0xd4, 0xc9, 0x6c, 0xe0, 0x36, 0xf5, 0x1c, 0x8c, 0x52, 0xa0, 0x86, 0x63, 0xef, 0x9a, 0x3e,
- 0x75, 0xe2, 0x99, 0x46, 0x48, 0xf3, 0x3a, 0x6d, 0x8d, 0xbb, 0x92, 0x9e, 0x0e, 0x5d, 0x49, 0xbb,
- 0x1e, 0x2c, 0xe9, 0x7a, 0xfa, 0xf6, 0xcf, 0xf5, 0xf4, 0x77, 0xea, 0x7a, 0xae, 0xc0, 0x24, 0x7a,
- 0xd6, 0x30, 0xb1, 0x11, 0x5b, 0x65, 0xcf, 0xac, 0x23, 0xd7, 0xd3, 0xeb, 0x0d, 0xec, 0xcb, 0xba,
- 0x4a, 0x13, 0xad, 0xbe, 0x27, 0x41, 0x97, 0x8f, 0xe2, 0x22, 0xcf, 0xab, 0xa1, 0x3a, 0xb2, 0xbc,
- 0x10, 0x0a, 0x10, 0x94, 0x56, 0x5f, 0x0b, 0x85, 0x65, 0x3d, 0x06, 0xc3, 0x59, 0x8f, 0xd8, 0x46,
- 0x33, 0x94, 0x35, 0x04, 0x19, 0x3e, 0x18, 0x0f, 0x33, 0xb2, 0xcf, 0x1e, 0x66, 0xb4, 0x43, 0x0f,
- 0x73, 0x70, 0xce, 0x60, 0x45, 0xe0, 0x0c, 0x2e, 0x72, 0x9c, 0x81, 0x70, 0xf5, 0x6a, 0x97, 0xe0,
- 0x85, 0x0c, 0x60, 0xcc, 0x29, 0x7c, 0x65, 0x20, 0xec, 0x14, 0xee, 0xfb, 0x06, 0xb5, 0xb7, 0xda,
- 0xf4, 0x9a, 0x0e, 0x72, 0x3f, 0xfb, 0x61, 0x4a, 0xcc, 0x57, 0xf4, 0xee, 0xaf, 0xaf, 0xe8, 0x13,
- 0xf9, 0x8a, 0xa3, 0xd0, 0x8b, 0x57, 0xde, 0x1e, 0x5e, 0xd8, 0x5d, 0x25, 0xfa, 0xc5, 0xf1, 0x21,
- 0x03, 0xfb, 0xe7, 0x43, 0x60, 0xbf, 0xc3, 0x97, 0xc1, 0x83, 0x0b, 0x5f, 0x86, 0x0e, 0x2c, 0x7c,
- 0xf9, 0x25, 0x77, 0x2e, 0x82, 0xf0, 0x65, 0x6c, 0xff, 0xc3, 0x97, 0xf1, 0x4f, 0xdb, 0x63, 0x09,
- 0x5d, 0x4b, 0xd4, 0x63, 0x09, 0xc1, 0x98, 0xc7, 0xfa, 0x73, 0x05, 0x72, 0x91, 0xb4, 0x0a, 0x81,
- 0x3a, 0xc8, 0x14, 0xd0, 0x4b, 0x02, 0x39, 0x4f, 0xf1, 0x53, 0x40, 0x21, 0x86, 0xb4, 0xbf, 0x50,
- 0xe0, 0xa4, 0xa8, 0x33, 0x6b, 0x16, 0x68, 0x0d, 0xfa, 0x1c, 0xe4, 0x36, 0x6b, 0x5e, 0x90, 0x0c,
- 0xbd, 0x24, 0x61, 0x3f, 0x4a, 0xdf, 0x47, 0xc2, 0xb2, 0x28, 0xa5, 0x80, 0x46, 0x90, 0x54, 0xea,
- 0xe2, 0x25, 0x95, 0x7e, 0xac, 0xc0, 0x51, 0x3e, 0x15, 0xf5, 0x2e, 0xf4, 0x07, 0x2b, 0x87, 0x26,
- 0x72, 0x33, 0x19, 0x24, 0x43, 0x52, 0x5f, 0x82, 0x1e, 0xbc, 0x9c, 0xc9, 0x4e, 0x91, 0x0d, 0x9b,
- 0x60, 0xa8, 0xd7, 0xa0, 0x6b, 0x0b, 0x21, 0xc2, 0x72, 0x36, 0x44, 0x1f, 0x3e, 0x99, 0x2c, 0x23,
- 0xd3, 0xd0, 0x4a, 0x60, 0x67, 0x48, 0x1e, 0x2e, 0x47, 0x2d, 0x47, 0xb4, 0x62, 0x5a, 0x34, 0x39,
- 0xf6, 0x53, 0x7c, 0x2f, 0x25, 0x59, 0x26, 0xe6, 0x4b, 0xdb, 0xc4, 0xb9, 0x32, 0x31, 0xc0, 0x7e,
- 0xa4, 0x12, 0xff, 0x31, 0x6c, 0xa4, 0x91, 0x98, 0xe1, 0x53, 0x52, 0xd0, 0x6d, 0x8e, 0x82, 0x2e,
+ 0xc4, 0x95, 0x78, 0x27, 0x9d, 0xb4, 0xb2, 0xa4, 0x23, 0x45, 0xf1, 0x3b, 0xdd, 0x89, 0x27, 0x6a,
+ 0xa9, 0xfb, 0xce, 0x77, 0xb1, 0xb1, 0x18, 0xce, 0x36, 0x97, 0x63, 0xee, 0xce, 0xec, 0xcd, 0xcc,
+ 0x52, 0xe2, 0x3d, 0xc4, 0x3f, 0x08, 0x62, 0xc1, 0x41, 0x00, 0x03, 0x01, 0x02, 0x04, 0x48, 0x00,
+ 0x27, 0x41, 0x12, 0xd8, 0x09, 0x92, 0x73, 0x62, 0x20, 0x4e, 0x82, 0xc0, 0x40, 0x00, 0x03, 0x46,
+ 0xf2, 0x72, 0x09, 0x60, 0x20, 0xf0, 0x83, 0x62, 0xdc, 0x3d, 0x5c, 0xe0, 0xbc, 0xe5, 0x31, 0x79,
+ 0x09, 0xa6, 0xbb, 0xa7, 0x77, 0x7e, 0xba, 0x7b, 0x66, 0xf7, 0xc8, 0xf3, 0xd9, 0xf0, 0xcb, 0x9d,
+ 0xa6, 0xbb, 0xaa, 0xba, 0xaa, 0xba, 0xba, 0xba, 0xba, 0xba, 0x7a, 0x09, 0x33, 0xa6, 0xf5, 0x25,
+ 0x64, 0x78, 0xe6, 0x2e, 0x2a, 0xa0, 0xa7, 0xc6, 0xb6, 0x6e, 0x55, 0x51, 0x61, 0x77, 0xb1, 0xe0,
+ 0x3d, 0x5d, 0x68, 0x38, 0xb6, 0x67, 0xab, 0x47, 0x58, 0xff, 0x42, 0xd0, 0xbf, 0xb0, 0xbb, 0x98,
+ 0x9f, 0x31, 0x6c, 0xb7, 0x6e, 0xbb, 0x85, 0x4d, 0xdd, 0x45, 0x85, 0xdd, 0x2b, 0x9b, 0xc8, 0xd3,
+ 0xaf, 0x14, 0x0c, 0xdb, 0xb4, 0x08, 0x5a, 0x7e, 0x81, 0xf6, 0x57, 0x4c, 0xd7, 0x73, 0xcc, 0xcd,
+ 0xa6, 0x67, 0xda, 0x16, 0x83, 0x0b, 0x37, 0x52, 0xf8, 0x29, 0x0a, 0x5f, 0x77, 0xab, 0x85, 0xdd,
+ 0x2b, 0xfe, 0xff, 0x68, 0xc7, 0x31, 0xd2, 0x51, 0xc6, 0x5f, 0x05, 0xf2, 0x41, 0xbb, 0x26, 0xab,
+ 0x76, 0xd5, 0x26, 0xed, 0xfe, 0xbf, 0x68, 0xeb, 0x69, 0xbe, 0x40, 0x8c, 0x79, 0x02, 0x75, 0x8a,
+ 0x0f, 0x65, 0x3b, 0x15, 0xe4, 0x50, 0x10, 0x8d, 0x0f, 0x52, 0xd7, 0x9d, 0x1d, 0xe4, 0xc9, 0x07,
+ 0x6b, 0x38, 0x76, 0xc3, 0x76, 0xf5, 0x1a, 0x85, 0x3a, 0xd3, 0x82, 0xb2, 0x1d, 0xdd, 0xa8, 0xb5,
+ 0x34, 0x46, 0x3e, 0x29, 0xd8, 0xb8, 0x5e, 0x37, 0x2d, 0xbb, 0x80, 0xff, 0x4b, 0x9a, 0xb4, 0x3f,
+ 0xee, 0x82, 0x89, 0x35, 0xb7, 0xfa, 0x66, 0xa3, 0xa2, 0x7b, 0x68, 0xa3, 0x61, 0x7b, 0x6b, 0x78,
+ 0x74, 0x75, 0x12, 0x7a, 0xf4, 0x4a, 0xdd, 0xb4, 0x72, 0xca, 0x49, 0xe5, 0xfc, 0x40, 0x89, 0x7c,
+ 0xa8, 0xd3, 0x30, 0x40, 0xb8, 0x2b, 0x9b, 0x95, 0xdc, 0x61, 0xdc, 0xd3, 0x4f, 0x1a, 0xee, 0x57,
+ 0xd4, 0x13, 0x00, 0x16, 0x7a, 0x52, 0xf6, 0x4c, 0x63, 0x07, 0x39, 0xb9, 0x2e, 0xdc, 0x3b, 0x60,
+ 0xa1, 0x27, 0x8f, 0x71, 0x83, 0xfa, 0x36, 0x4c, 0xf9, 0xdd, 0x75, 0xd3, 0x2a, 0x37, 0x1c, 0xd3,
+ 0x40, 0x18, 0xb0, 0xec, 0x9a, 0xef, 0xa1, 0x5c, 0xb7, 0x0f, 0xbb, 0x3c, 0xf7, 0xa3, 0xe7, 0xb3,
+ 0x87, 0x7e, 0xf2, 0x7c, 0x76, 0x9a, 0xcc, 0x81, 0x5b, 0xd9, 0x59, 0x30, 0xed, 0x42, 0x5d, 0xf7,
+ 0xb6, 0x17, 0x1e, 0xa0, 0xaa, 0x6e, 0xec, 0xad, 0x20, 0xa3, 0x34, 0x61, 0xa1, 0x27, 0x6b, 0xa6,
+ 0xb5, 0xee, 0x53, 0xf0, 0x09, 0x6f, 0x98, 0xef, 0x21, 0xb5, 0x0c, 0xf9, 0x80, 0xf4, 0xbb, 0x4d,
+ 0xdd, 0xf2, 0x4c, 0x6f, 0x2f, 0x44, 0xbd, 0x27, 0x3b, 0xf5, 0xa3, 0x84, 0xfa, 0x23, 0x4a, 0x84,
+ 0x0d, 0xb0, 0x06, 0x63, 0xc1, 0x00, 0x96, 0xed, 0x1b, 0x95, 0x5e, 0xcb, 0xf5, 0x66, 0x27, 0x3b,
+ 0x42, 0xc8, 0xbe, 0x41, 0x51, 0x8b, 0x85, 0xff, 0xfc, 0xd6, 0xec, 0xa1, 0xaf, 0x7d, 0xfc, 0xfe,
+ 0x3c, 0x51, 0xeb, 0x37, 0x3e, 0x7e, 0x7f, 0xfe, 0x38, 0x9b, 0x5d, 0xce, 0x6c, 0x68, 0x27, 0x60,
+ 0x9a, 0xd3, 0x5c, 0x42, 0x6e, 0xc3, 0xb6, 0x5c, 0xa4, 0x7d, 0xaf, 0x17, 0x8e, 0xb1, 0xfe, 0x15,
+ 0xe4, 0x98, 0xbb, 0xba, 0x6f, 0x0b, 0xbf, 0x9a, 0xca, 0x03, 0x9f, 0x4a, 0xf5, 0x0b, 0x90, 0xf3,
+ 0xc9, 0x99, 0x96, 0xe9, 0x99, 0x7a, 0xad, 0x5c, 0xd7, 0x9d, 0xaa, 0x69, 0x95, 0x1d, 0xdd, 0x33,
+ 0xed, 0x5c, 0x5f, 0x76, 0xb2, 0x47, 0x2c, 0xf4, 0xe4, 0x3e, 0xa1, 0xb1, 0x86, 0x49, 0x94, 0x7c,
+ 0x0a, 0x6a, 0x05, 0x8e, 0x63, 0x66, 0x75, 0xd3, 0xf2, 0x90, 0xa5, 0x5b, 0x06, 0x8a, 0x8e, 0xd0,
+ 0x9f, 0x7d, 0x84, 0x63, 0x3e, 0xe3, 0x2d, 0x3a, 0xe1, 0x51, 0xde, 0x21, 0xd3, 0xe9, 0xa0, 0x4a,
+ 0x33, 0x3e, 0xc0, 0x40, 0xf6, 0x01, 0x26, 0x2d, 0xf4, 0xa4, 0x84, 0x49, 0x84, 0x69, 0x97, 0xc1,
+ 0x17, 0xad, 0x6c, 0x37, 0x50, 0x4b, 0xdf, 0x65, 0x43, 0x6f, 0xe4, 0xe0, 0xa4, 0x72, 0x7e, 0x70,
+ 0xf1, 0xec, 0x02, 0xd7, 0xfb, 0x2f, 0x3c, 0x6c, 0x20, 0xa6, 0xe3, 0xbb, 0x7a, 0x63, 0xb9, 0xdb,
+ 0xe7, 0xa0, 0xa4, 0x5a, 0xe8, 0x49, 0xac, 0xa7, 0x78, 0xe3, 0xd9, 0xb7, 0x66, 0x0f, 0x25, 0xd7,
+ 0x93, 0x96, 0x5c, 0x4f, 0xf1, 0x85, 0xa1, 0xcd, 0xc1, 0x29, 0x61, 0x27, 0x5b, 0x5b, 0x7f, 0xa3,
+ 0xc0, 0x28, 0x83, 0x5a, 0xd7, 0x1d, 0xbd, 0xee, 0xaa, 0xd7, 0x60, 0x40, 0x6f, 0x7a, 0xdb, 0xb6,
+ 0x63, 0x7a, 0x7b, 0x64, 0x55, 0x2d, 0xe7, 0xfe, 0xed, 0x7b, 0x97, 0x26, 0xe9, 0xe6, 0xb1, 0x54,
+ 0xa9, 0x38, 0xc8, 0x75, 0x37, 0x3c, 0xc7, 0xb4, 0xaa, 0xa5, 0x16, 0xa8, 0x7a, 0x13, 0x7a, 0x1b,
+ 0x98, 0x02, 0x5e, 0x70, 0x83, 0x8b, 0x27, 0x04, 0xd2, 0x93, 0x61, 0xa8, 0xd0, 0x14, 0xa5, 0xf8,
+ 0x82, 0x2f, 0x60, 0x8b, 0x98, 0x2f, 0x64, 0x2e, 0x29, 0x24, 0x41, 0xd5, 0x8e, 0xc1, 0x54, 0xac,
+ 0x89, 0x09, 0xf4, 0x57, 0x0a, 0xc0, 0x9a, 0x5b, 0x5d, 0x41, 0x0d, 0xdb, 0x35, 0x3d, 0xf5, 0x28,
+ 0xf4, 0xba, 0xc8, 0xaa, 0x20, 0x87, 0xba, 0x07, 0xfa, 0xa5, 0xce, 0xc1, 0xb0, 0xdb, 0xdc, 0xd4,
+ 0x0d, 0xc3, 0x6e, 0x5a, 0x21, 0x1f, 0x31, 0xd4, 0x6a, 0xbc, 0x5f, 0x51, 0x5f, 0x86, 0x5e, 0xbd,
+ 0xee, 0xff, 0x1b, 0xfb, 0x88, 0xc1, 0xc5, 0x63, 0x74, 0x57, 0x5e, 0xf0, 0x77, 0xed, 0x05, 0xba,
+ 0x07, 0x2d, 0xdc, 0xb5, 0x4d, 0x2b, 0x10, 0x86, 0x80, 0x17, 0x5f, 0x08, 0xcf, 0x1a, 0x1d, 0xd2,
+ 0x97, 0x68, 0x22, 0x2c, 0x11, 0x65, 0x51, 0x9b, 0x04, 0xb5, 0xf5, 0xc5, 0xe4, 0xf8, 0xae, 0x02,
+ 0x83, 0x6b, 0x6e, 0xf5, 0x2d, 0xd3, 0xdb, 0xae, 0x38, 0xfa, 0x93, 0x9f, 0x93, 0x20, 0x17, 0x05,
+ 0x82, 0x4c, 0x86, 0x05, 0x09, 0x78, 0xd4, 0x8e, 0xe0, 0xcd, 0x36, 0xf8, 0x64, 0xa2, 0x7c, 0x5b,
+ 0xc1, 0xd3, 0x75, 0xd7, 0x41, 0xd4, 0xbf, 0x3f, 0x30, 0xeb, 0xa6, 0xf7, 0xd0, 0x0f, 0x15, 0x84,
+ 0x62, 0x7d, 0x0e, 0x7a, 0x70, 0x2c, 0x41, 0x4d, 0xe9, 0xa4, 0xc0, 0x94, 0x7c, 0x6a, 0x98, 0x10,
+ 0xe5, 0x9b, 0x20, 0x15, 0xaf, 0x0b, 0xd8, 0x3e, 0x19, 0x66, 0x9b, 0xc7, 0x8f, 0xf6, 0x05, 0x98,
+ 0x15, 0x74, 0x05, 0xe2, 0xf8, 0xbb, 0x07, 0x1e, 0xa5, 0xbc, 0xad, 0xbb, 0xdb, 0x94, 0xed, 0x01,
+ 0xdc, 0xf2, 0xaa, 0xee, 0x6e, 0xab, 0x63, 0xd0, 0x65, 0xb0, 0x69, 0xf0, 0xff, 0x59, 0xec, 0x0f,
+ 0xb8, 0xd1, 0xfe, 0x56, 0x81, 0x13, 0x6b, 0x6e, 0x75, 0x59, 0xf7, 0x8c, 0x6d, 0xde, 0x18, 0xae,
+ 0x50, 0x1f, 0xb7, 0xa1, 0x17, 0x0f, 0xe1, 0xaf, 0xad, 0xae, 0x36, 0x14, 0x42, 0xb1, 0x8a, 0xb7,
+ 0x05, 0x1a, 0x39, 0x1b, 0xd6, 0x88, 0x98, 0x2f, 0xed, 0xaf, 0x15, 0x38, 0x23, 0x85, 0x60, 0xea,
+ 0x39, 0x05, 0x43, 0x2d, 0xf5, 0x20, 0x37, 0xa7, 0x9c, 0xec, 0x3a, 0x3f, 0x50, 0x1a, 0x64, 0x0a,
+ 0x42, 0xae, 0xba, 0x00, 0x13, 0x06, 0xa6, 0x51, 0x29, 0x13, 0xf6, 0xca, 0x86, 0x59, 0x21, 0x92,
+ 0x0d, 0x94, 0xc6, 0x69, 0x17, 0x21, 0x7b, 0xd7, 0xac, 0xb8, 0xea, 0x45, 0x50, 0xb7, 0x74, 0xb3,
+ 0x16, 0x03, 0xef, 0xc2, 0xe0, 0x63, 0xa4, 0xa7, 0x05, 0x1d, 0x52, 0xf7, 0x6f, 0x75, 0x43, 0x7e,
+ 0xcd, 0xad, 0xde, 0xb7, 0x5c, 0x4f, 0xb7, 0xbc, 0x56, 0x64, 0xf1, 0x40, 0x6f, 0x5a, 0xc6, 0xb6,
+ 0x50, 0xd7, 0x47, 0xa1, 0x97, 0x86, 0x06, 0x64, 0x12, 0xe9, 0x97, 0x3f, 0xf1, 0xfe, 0x7a, 0x29,
+ 0x57, 0x90, 0x65, 0xd7, 0x83, 0xb0, 0xc1, 0x6f, 0x59, 0xf1, 0x1b, 0xd4, 0x59, 0x18, 0x7c, 0xb7,
+ 0x69, 0x7b, 0x41, 0x3f, 0x0e, 0x15, 0x4a, 0x80, 0x9b, 0x08, 0x40, 0x09, 0x26, 0x78, 0x31, 0x45,
+ 0x1b, 0xbb, 0xfe, 0x58, 0x3d, 0x1e, 0x50, 0x7c, 0x1e, 0x8e, 0x0a, 0x82, 0x89, 0x36, 0x76, 0x7d,
+ 0x9f, 0xad, 0x44, 0x24, 0xb1, 0x0a, 0x43, 0x91, 0x28, 0xa2, 0x8d, 0xed, 0x7e, 0xb0, 0x1e, 0x0a,
+ 0x21, 0xe6, 0x60, 0x98, 0x6a, 0xcd, 0x30, 0xeb, 0x7a, 0xcd, 0xc5, 0xbb, 0xfa, 0x70, 0x69, 0x88,
+ 0x28, 0x8e, 0xb4, 0xa9, 0x67, 0x60, 0x24, 0xd0, 0x1d, 0x85, 0x1a, 0xc0, 0x50, 0xc3, 0x54, 0x7d,
+ 0xa4, 0xb1, 0x78, 0x53, 0x60, 0xc5, 0x73, 0x61, 0x2b, 0x16, 0x4c, 0xb7, 0x76, 0x1a, 0x34, 0x71,
+ 0x2f, 0x73, 0x56, 0x3f, 0xed, 0xc7, 0x1e, 0x80, 0x82, 0xad, 0x23, 0xa7, 0x81, 0xbc, 0x26, 0x0e,
+ 0x5b, 0x3a, 0x37, 0x9c, 0x98, 0x65, 0x74, 0x25, 0x2c, 0x63, 0x16, 0x06, 0xc9, 0x49, 0xa6, 0xec,
+ 0x6b, 0x25, 0x30, 0x1d, 0xd2, 0xb4, 0xac, 0x07, 0x8b, 0x0a, 0x03, 0x60, 0x2c, 0x62, 0x33, 0x25,
+ 0x8a, 0xf4, 0xc8, 0x6f, 0xf2, 0x17, 0x15, 0x05, 0x71, 0x0d, 0xbd, 0x86, 0xca, 0x5b, 0xba, 0xe1,
+ 0xd9, 0x0e, 0x36, 0x83, 0xe1, 0xd2, 0x38, 0xe9, 0xda, 0xf0, 0x7b, 0x56, 0x71, 0x87, 0x7a, 0x8f,
+ 0x8d, 0xe9, 0xed, 0x35, 0x10, 0x9e, 0xde, 0x91, 0xc5, 0xd3, 0x21, 0xb7, 0x42, 0xcf, 0x56, 0xc1,
+ 0xee, 0xf0, 0x10, 0x7f, 0x3e, 0xde, 0x6b, 0xa0, 0x80, 0x33, 0xff, 0xdf, 0xea, 0x7d, 0x18, 0xa9,
+ 0xeb, 0x3b, 0xc8, 0x29, 0x6f, 0x21, 0xe4, 0x47, 0x55, 0xa8, 0x9d, 0xa8, 0x6d, 0x08, 0xa3, 0xae,
+ 0x22, 0x54, 0xd2, 0x3d, 0x4c, 0xca, 0x8b, 0x92, 0x6a, 0x23, 0x3e, 0x1b, 0xf2, 0xc2, 0xa4, 0xde,
+ 0x84, 0x49, 0x6e, 0xcc, 0x0a, 0xd9, 0x09, 0xaa, 0x66, 0x32, 0x60, 0xfd, 0x22, 0xe4, 0x84, 0xc1,
+ 0xea, 0x60, 0x1b, 0xc1, 0x7b, 0x9d, 0x1f, 0xa9, 0x0a, 0x1c, 0xc4, 0xd0, 0xc1, 0x38, 0x88, 0xe1,
+ 0x7d, 0x76, 0x10, 0x23, 0x1d, 0x3a, 0x88, 0x0d, 0x98, 0xe0, 0xc5, 0xe6, 0xa3, 0xd9, 0xc9, 0x8d,
+ 0x3b, 0x89, 0xc0, 0xfc, 0xf3, 0x30, 0x9e, 0x0c, 0xca, 0xc7, 0x3a, 0x08, 0xca, 0x47, 0xed, 0x58,
+ 0x44, 0xfe, 0x8a, 0xc0, 0x07, 0x9d, 0xe7, 0xf8, 0x20, 0xae, 0xfb, 0xd0, 0x2e, 0xc0, 0xb9, 0x14,
+ 0x10, 0xe6, 0x8d, 0x3e, 0xea, 0x83, 0xb9, 0x16, 0xec, 0xb2, 0x69, 0xe9, 0xce, 0xde, 0xc3, 0x86,
+ 0xcf, 0x8c, 0xfb, 0x89, 0x3c, 0xd2, 0x1c, 0x0c, 0x07, 0xce, 0x62, 0xaf, 0xbe, 0x69, 0xd7, 0xa8,
+ 0x4f, 0xa2, 0x4e, 0x66, 0x03, 0xb7, 0xa9, 0xe7, 0x60, 0x94, 0x02, 0x35, 0x1c, 0x7b, 0xd7, 0xf4,
+ 0xa9, 0x13, 0xcf, 0x34, 0x42, 0x9a, 0xd7, 0x69, 0x6b, 0xdc, 0x95, 0xf4, 0x74, 0xe8, 0x4a, 0xda,
+ 0xf5, 0x60, 0x49, 0xd7, 0xd3, 0xb7, 0x7f, 0xae, 0xa7, 0xbf, 0x53, 0xd7, 0x73, 0x05, 0x26, 0xd1,
+ 0xd3, 0x86, 0x89, 0x8d, 0xd8, 0x2a, 0x7b, 0x66, 0x1d, 0xb9, 0x9e, 0x5e, 0x6f, 0x60, 0x5f, 0xd6,
+ 0x55, 0x9a, 0x68, 0xf5, 0x3d, 0x0e, 0xba, 0x7c, 0x14, 0x17, 0x79, 0x5e, 0x0d, 0xd5, 0x91, 0xe5,
+ 0x85, 0x50, 0x80, 0xa0, 0xb4, 0xfa, 0x5a, 0x28, 0x2c, 0xeb, 0x31, 0x18, 0xce, 0x7a, 0xc4, 0x36,
+ 0x9a, 0xa1, 0xac, 0x21, 0xc8, 0xf0, 0xc1, 0x78, 0x98, 0x91, 0x7d, 0xf6, 0x30, 0xa3, 0x1d, 0x7a,
+ 0x98, 0x83, 0x73, 0x06, 0x2b, 0x02, 0x67, 0x70, 0x91, 0xe3, 0x0c, 0x84, 0xab, 0x57, 0xbb, 0x04,
+ 0x2f, 0x64, 0x00, 0x63, 0x4e, 0xe1, 0x2b, 0x03, 0x61, 0xa7, 0x70, 0xcf, 0x37, 0xa8, 0xbd, 0xd5,
+ 0xa6, 0xd7, 0x74, 0x90, 0xfb, 0xd9, 0x0f, 0x53, 0x62, 0xbe, 0xa2, 0x77, 0x7f, 0x7d, 0x45, 0x9f,
+ 0xc8, 0x57, 0x1c, 0x85, 0x5e, 0xbc, 0xf2, 0xf6, 0xf0, 0xc2, 0xee, 0x2a, 0xd1, 0x2f, 0x8e, 0x0f,
+ 0x19, 0xd8, 0x3f, 0x1f, 0x02, 0xfb, 0x1d, 0xbe, 0x0c, 0x1e, 0x5c, 0xf8, 0x32, 0x74, 0x60, 0xe1,
+ 0xcb, 0x2f, 0xb9, 0x73, 0x11, 0x84, 0x2f, 0x63, 0xfb, 0x1f, 0xbe, 0x8c, 0x7f, 0xda, 0x1e, 0x4b,
+ 0xe8, 0x5a, 0xa2, 0x1e, 0x4b, 0x08, 0xc6, 0x3c, 0xd6, 0x9f, 0x2b, 0x90, 0x8b, 0xa4, 0x55, 0x08,
+ 0xd4, 0x41, 0xa6, 0x80, 0x6e, 0x08, 0xe4, 0x3c, 0xc5, 0x4f, 0x01, 0x85, 0x18, 0xd2, 0xfe, 0x42,
+ 0x81, 0x93, 0xa2, 0xce, 0xac, 0x59, 0xa0, 0x35, 0xe8, 0x73, 0x90, 0xdb, 0xac, 0x79, 0x41, 0x32,
+ 0xf4, 0x92, 0x84, 0xfd, 0x28, 0x7d, 0x1f, 0x09, 0xcb, 0xa2, 0x94, 0x02, 0x1a, 0x41, 0x52, 0xa9,
+ 0x8b, 0x97, 0x54, 0xfa, 0xb1, 0x02, 0x47, 0xf9, 0x54, 0xd4, 0x3b, 0xd0, 0x1f, 0xac, 0x1c, 0x9a,
+ 0xc8, 0xcd, 0x64, 0x90, 0x0c, 0x49, 0xbd, 0x01, 0x3d, 0x78, 0x39, 0x93, 0x9d, 0x22, 0x1b, 0x36,
+ 0xc1, 0x50, 0xaf, 0x42, 0xd7, 0x16, 0x42, 0x84, 0xe5, 0x6c, 0x88, 0x3e, 0x7c, 0x32, 0x59, 0x46,
+ 0xa6, 0xa1, 0x95, 0xc0, 0xce, 0x90, 0x3c, 0x5c, 0x8e, 0x5a, 0x8e, 0x68, 0xc5, 0xb4, 0x68, 0x72,
+ 0xec, 0xa7, 0xf8, 0x2c, 0x25, 0x59, 0x26, 0xe6, 0x4b, 0xdb, 0xc4, 0xb9, 0x32, 0x31, 0xc0, 0x7e,
+ 0xa4, 0x12, 0xff, 0x31, 0x6c, 0xa4, 0x91, 0x98, 0xe1, 0x53, 0x52, 0xd0, 0x2d, 0x8e, 0x82, 0x2e,
0x24, 0x15, 0x24, 0x60, 0x4d, 0x43, 0x70, 0x3e, 0x0d, 0x66, 0x3f, 0xd4, 0xf4, 0x43, 0x05, 0xc7,
0x4a, 0xa1, 0xbc, 0x25, 0x6f, 0x42, 0xc4, 0x79, 0xd7, 0x95, 0x58, 0xde, 0xb5, 0x3d, 0x55, 0x05,
- 0xd9, 0xd7, 0x97, 0xdf, 0x4b, 0x71, 0xb8, 0x69, 0xfc, 0x69, 0xdf, 0x57, 0xb0, 0xc7, 0x4d, 0x83,
- 0xfb, 0x2c, 0x66, 0x61, 0x3f, 0x50, 0xf0, 0x05, 0xc7, 0x3d, 0x3f, 0x5c, 0xa8, 0x31, 0x6f, 0x2d,
- 0xd4, 0xb8, 0xf4, 0xe6, 0x36, 0x71, 0xdb, 0xd1, 0xc5, 0xb9, 0xed, 0x88, 0x9a, 0x4b, 0xb7, 0xc0,
- 0x5c, 0x7a, 0x5a, 0xe6, 0x52, 0xe0, 0x4c, 0xcf, 0x74, 0xc4, 0x94, 0xa3, 0xbc, 0x6b, 0xc7, 0x71,
- 0x5e, 0x39, 0xd6, 0xca, 0x76, 0xbb, 0x3f, 0x21, 0xbb, 0x1d, 0x99, 0xab, 0x28, 0x8c, 0xd8, 0xd0,
- 0x8a, 0xd0, 0x5d, 0xd1, 0x3d, 0x3d, 0x25, 0xbd, 0x8f, 0x89, 0xac, 0xe8, 0x9e, 0x4e, 0x0d, 0x0c,
- 0xe3, 0x14, 0xaf, 0xbd, 0x97, 0xb2, 0xcf, 0x71, 0x59, 0xd1, 0x56, 0xb1, 0x07, 0xe1, 0xf6, 0x31,
- 0x3b, 0xca, 0x41, 0x9f, 0xdb, 0x34, 0x0c, 0xe4, 0x12, 0x13, 0xea, 0x2f, 0x05, 0x9f, 0x51, 0x47,
- 0x7d, 0x2a, 0x4a, 0x28, 0xb2, 0xa0, 0x0f, 0x50, 0xf0, 0x3b, 0x1c, 0xc1, 0xe7, 0x05, 0x82, 0x73,
- 0x78, 0xd2, 0x1e, 0xc1, 0x85, 0x54, 0xa0, 0xf6, 0x54, 0x01, 0x30, 0x19, 0x50, 0x24, 0xd7, 0x93,
- 0x29, 0xd2, 0x67, 0xba, 0xbe, 0xbb, 0x0b, 0x27, 0xdc, 0x86, 0xed, 0x95, 0xd9, 0xba, 0x70, 0xcb,
- 0x9e, 0x5d, 0x36, 0x30, 0xc7, 0x65, 0xbd, 0x56, 0xa3, 0x8b, 0x30, 0xe7, 0xb2, 0x28, 0xe0, 0x41,
- 0xc5, 0x7d, 0x62, 0x13, 0x91, 0x96, 0x6a, 0x35, 0xf5, 0x35, 0x98, 0xab, 0x30, 0x77, 0x21, 0x26,
- 0xd3, 0x8d, 0xc9, 0xcc, 0x54, 0x62, 0x97, 0xc5, 0x31, 0x62, 0x6f, 0xc1, 0x11, 0xcc, 0x0d, 0xf5,
- 0x02, 0x8c, 0x44, 0xae, 0xa7, 0x8d, 0x19, 0x54, 0x4a, 0xaa, 0xcb, 0xac, 0x2d, 0xa0, 0xae, 0x22,
- 0x98, 0x0e, 0xf1, 0x99, 0x18, 0xa0, 0xb7, 0xad, 0x01, 0x72, 0x95, 0xa8, 0x4f, 0x6e, 0x0d, 0xc3,
- 0x91, 0x00, 0x7b, 0xbb, 0x5c, 0x5f, 0x1b, 0x77, 0x6b, 0x71, 0x09, 0x30, 0x05, 0x75, 0x47, 0x24,
- 0x01, 0x19, 0xa0, 0xbf, 0xed, 0x4d, 0x84, 0x2f, 0x07, 0x19, 0xac, 0x06, 0xb3, 0x9b, 0xd8, 0x60,
- 0xcb, 0x36, 0xb1, 0xd8, 0xa4, 0xca, 0x06, 0xda, 0x52, 0xd9, 0xf4, 0x66, 0xd2, 0xfe, 0x99, 0xd6,
- 0x4a, 0x70, 0x2e, 0x36, 0x9a, 0xd0, 0x90, 0x00, 0x1b, 0xd2, 0xa9, 0xcd, 0x64, 0x2a, 0x23, 0x66,
- 0x4b, 0x8e, 0x4c, 0x02, 0xa2, 0xb2, 0xc1, 0x0e, 0x54, 0x26, 0x90, 0x83, 0x68, 0x6d, 0x0b, 0x8e,
- 0x87, 0x57, 0x53, 0x62, 0xc0, 0xa1, 0xb6, 0x8c, 0x20, 0xb4, 0xe8, 0x62, 0xe3, 0x3c, 0x03, 0x2d,
- 0xb9, 0xe8, 0x12, 0xa3, 0x0d, 0x77, 0x20, 0x5e, 0x62, 0x85, 0xc6, 0x46, 0xfe, 0x32, 0x9c, 0xe5,
- 0xcf, 0x54, 0x62, 0xf4, 0x91, 0x0e, 0x46, 0xe7, 0x4d, 0x6b, 0x94, 0x81, 0xe2, 0x15, 0x8e, 0x5f,
- 0x3e, 0x91, 0xf0, 0xcb, 0x61, 0x07, 0xa9, 0xfd, 0xe5, 0x20, 0x1c, 0xe7, 0x75, 0x30, 0xf7, 0xbb,
- 0x00, 0x13, 0x78, 0xda, 0xa8, 0x99, 0x45, 0x5d, 0xf1, 0xb8, 0xdf, 0x45, 0x37, 0x31, 0xd2, 0xa1,
- 0x16, 0xe1, 0x58, 0x48, 0xfd, 0x31, 0xac, 0xc3, 0x18, 0x6b, 0xaa, 0x05, 0x10, 0xc5, 0x9d, 0x87,
- 0xf1, 0x96, 0x83, 0x08, 0x42, 0x28, 0xe2, 0x64, 0x47, 0xd9, 0xa2, 0xa7, 0x61, 0xd4, 0x75, 0x98,
- 0x8a, 0xaf, 0xf8, 0x00, 0x83, 0xf8, 0xd3, 0x23, 0xb1, 0xf5, 0x4b, 0xf1, 0x96, 0xe0, 0x44, 0x6c,
- 0x92, 0x62, 0x3c, 0xf6, 0x60, 0x1e, 0xf3, 0x11, 0x6d, 0x47, 0xd9, 0xbc, 0x0d, 0xd3, 0xbc, 0xd5,
- 0x13, 0x0c, 0xdf, 0x4b, 0x76, 0x85, 0xe4, 0x5a, 0xa0, 0x1c, 0xdc, 0x80, 0x5c, 0x10, 0x00, 0x86,
- 0xdd, 0x21, 0x0e, 0xeb, 0xfa, 0x08, 0xeb, 0xb4, 0xbf, 0x15, 0x18, 0xe0, 0x48, 0xf0, 0x1a, 0x4c,
- 0xd1, 0x48, 0x30, 0x81, 0xd7, 0x8f, 0xf1, 0x26, 0x49, 0x77, 0x0c, 0xed, 0x1e, 0xcc, 0x04, 0xe3,
- 0x25, 0x7d, 0x24, 0xc6, 0x1e, 0xc0, 0xd8, 0xd3, 0x14, 0x2a, 0x66, 0x7e, 0x84, 0xc8, 0x12, 0x9c,
- 0xa0, 0x63, 0x0b, 0x68, 0x10, 0xdf, 0x93, 0x27, 0x40, 0x5c, 0x12, 0xaf, 0x82, 0x16, 0xf0, 0xc1,
- 0x77, 0x3e, 0x98, 0xce, 0x20, 0xd9, 0x0c, 0x29, 0x24, 0x27, 0x30, 0xc0, 0xb4, 0x5e, 0x81, 0x53,
- 0x94, 0x1d, 0x09, 0xa9, 0x21, 0x4c, 0x8a, 0xf2, 0x2d, 0xa2, 0x74, 0x03, 0x72, 0x09, 0xb7, 0x14,
+ 0xd9, 0xd7, 0x57, 0x9e, 0xa5, 0x38, 0xdc, 0x34, 0xfe, 0xb4, 0xef, 0x2b, 0xd8, 0xe3, 0xa6, 0xc1,
+ 0x7d, 0x16, 0xb3, 0xb0, 0x1f, 0x28, 0xf8, 0x82, 0xe3, 0xae, 0x1f, 0x2e, 0xd4, 0x98, 0xb7, 0x16,
+ 0x6a, 0x5c, 0x7a, 0x73, 0x9b, 0xb8, 0xed, 0xe8, 0xe2, 0xdc, 0x76, 0x44, 0xcd, 0xa5, 0x5b, 0x60,
+ 0x2e, 0x3d, 0x2d, 0x73, 0x29, 0x70, 0xa6, 0x67, 0x3a, 0x62, 0xca, 0x51, 0xde, 0xb5, 0xe3, 0x38,
+ 0xaf, 0x1c, 0x6b, 0x65, 0xbb, 0xdd, 0x9f, 0x90, 0xdd, 0x8e, 0xcc, 0x55, 0x14, 0x46, 0x6c, 0x68,
+ 0x45, 0xe8, 0xae, 0xe8, 0x9e, 0x9e, 0x92, 0xde, 0xc7, 0x44, 0x56, 0x74, 0x4f, 0xa7, 0x06, 0x86,
+ 0x71, 0x8a, 0x57, 0x9f, 0xa5, 0xec, 0x73, 0x5c, 0x56, 0xb4, 0x55, 0xec, 0x41, 0xb8, 0x7d, 0xcc,
+ 0x8e, 0x72, 0xd0, 0xe7, 0x36, 0x0d, 0x03, 0xb9, 0xc4, 0x84, 0xfa, 0x4b, 0xc1, 0x67, 0xd4, 0x51,
+ 0x9f, 0x8a, 0x12, 0x8a, 0x2c, 0xe8, 0x03, 0x14, 0xfc, 0x36, 0x47, 0xf0, 0x79, 0x81, 0xe0, 0x1c,
+ 0x9e, 0xb4, 0x87, 0x70, 0x21, 0x15, 0xa8, 0x3d, 0x55, 0x00, 0x4c, 0x06, 0x14, 0xc9, 0xf5, 0x64,
+ 0x8a, 0xf4, 0x99, 0xae, 0xef, 0xee, 0xc0, 0x09, 0xb7, 0x61, 0x7b, 0x65, 0xb6, 0x2e, 0xdc, 0xb2,
+ 0x67, 0x97, 0x0d, 0xcc, 0x71, 0x59, 0xaf, 0xd5, 0xe8, 0x22, 0xcc, 0xb9, 0x2c, 0x0a, 0xb8, 0x5f,
+ 0x71, 0x1f, 0xdb, 0x44, 0xa4, 0xa5, 0x5a, 0x4d, 0x7d, 0x1d, 0xe6, 0x2a, 0xcc, 0x5d, 0x88, 0xc9,
+ 0x74, 0x63, 0x32, 0x33, 0x95, 0xd8, 0x65, 0x71, 0x8c, 0xd8, 0xdb, 0x70, 0x04, 0x73, 0x43, 0xbd,
+ 0x00, 0x23, 0x91, 0xeb, 0x69, 0x63, 0x06, 0x95, 0x92, 0xea, 0x32, 0x6b, 0x0b, 0xa8, 0xab, 0x08,
+ 0xa6, 0x43, 0x7c, 0x26, 0x06, 0xe8, 0x6d, 0x6b, 0x80, 0x5c, 0x25, 0xea, 0x93, 0x5b, 0xc3, 0x70,
+ 0x24, 0xc0, 0xde, 0x2e, 0xd7, 0xd7, 0xc6, 0xdd, 0x5a, 0x5c, 0x02, 0x4c, 0x41, 0xdd, 0x11, 0x49,
+ 0x40, 0x06, 0xe8, 0x6f, 0x7b, 0x13, 0xe1, 0xcb, 0x41, 0x06, 0xab, 0xc1, 0xec, 0x26, 0x36, 0xd8,
+ 0xb2, 0x4d, 0x2c, 0x36, 0xa9, 0xb2, 0x81, 0xb6, 0x54, 0x36, 0xbd, 0x99, 0xb4, 0x7f, 0xa6, 0xb5,
+ 0x12, 0x9c, 0x8b, 0x8d, 0x26, 0x34, 0x24, 0xc0, 0x86, 0x74, 0x6a, 0x33, 0x99, 0xca, 0x88, 0xd9,
+ 0x92, 0x23, 0x93, 0x80, 0xa8, 0x6c, 0xb0, 0x03, 0x95, 0x09, 0xe4, 0x20, 0x5a, 0xdb, 0x82, 0xe3,
+ 0xe1, 0xd5, 0x94, 0x18, 0x70, 0xa8, 0x2d, 0x23, 0x08, 0x2d, 0xba, 0xd8, 0x38, 0x4f, 0x41, 0x4b,
+ 0x2e, 0xba, 0xc4, 0x68, 0xc3, 0x1d, 0x88, 0x97, 0x58, 0xa1, 0xb1, 0x91, 0xbf, 0x0c, 0x67, 0xf9,
+ 0x33, 0x95, 0x18, 0x7d, 0xa4, 0x83, 0xd1, 0x79, 0xd3, 0x1a, 0x65, 0xa0, 0x78, 0x85, 0xe3, 0x97,
+ 0x4f, 0x24, 0xfc, 0x72, 0xd8, 0x41, 0x6a, 0x7f, 0x39, 0x08, 0xc7, 0x79, 0x1d, 0xcc, 0xfd, 0x2e,
+ 0xc0, 0x04, 0x9e, 0x36, 0x6a, 0x66, 0x51, 0x57, 0x3c, 0xee, 0x77, 0xd1, 0x4d, 0x8c, 0x74, 0xa8,
+ 0x45, 0x38, 0x16, 0x52, 0x7f, 0x0c, 0xeb, 0x30, 0xc6, 0x9a, 0x6a, 0x01, 0x44, 0x71, 0xe7, 0x61,
+ 0xbc, 0xe5, 0x20, 0x82, 0x10, 0x8a, 0x38, 0xd9, 0x51, 0xb6, 0xe8, 0x69, 0x18, 0x75, 0x0d, 0xa6,
+ 0xe2, 0x2b, 0x3e, 0xc0, 0x20, 0xfe, 0xf4, 0x48, 0x6c, 0xfd, 0x52, 0xbc, 0x25, 0x38, 0x11, 0x9b,
+ 0xa4, 0x18, 0x8f, 0x3d, 0x98, 0xc7, 0x7c, 0x44, 0xdb, 0x51, 0x36, 0x6f, 0xc1, 0x34, 0x6f, 0xf5,
+ 0x04, 0xc3, 0xf7, 0x92, 0x5d, 0x21, 0xb9, 0x16, 0x28, 0x07, 0x2f, 0x43, 0x2e, 0x08, 0x00, 0xc3,
+ 0xee, 0x10, 0x87, 0x75, 0x7d, 0x84, 0x75, 0xda, 0xdf, 0x0a, 0x0c, 0x70, 0x24, 0x78, 0x15, 0xa6,
+ 0x68, 0x24, 0x98, 0xc0, 0xeb, 0xc7, 0x78, 0x93, 0xa4, 0x3b, 0x86, 0x76, 0x17, 0x66, 0x82, 0xf1,
+ 0x92, 0x3e, 0x12, 0x63, 0x0f, 0x60, 0xec, 0x69, 0x0a, 0x15, 0x33, 0x3f, 0x42, 0x64, 0x09, 0x4e,
+ 0xd0, 0xb1, 0x05, 0x34, 0x88, 0xef, 0xc9, 0x13, 0x20, 0x2e, 0x89, 0xd7, 0x40, 0x0b, 0xf8, 0xe0,
+ 0x3b, 0x1f, 0x4c, 0x67, 0x90, 0x6c, 0x86, 0x14, 0x92, 0x13, 0x18, 0x60, 0x5a, 0xaf, 0xc2, 0x29,
+ 0xca, 0x8e, 0x84, 0xd4, 0x10, 0x26, 0x45, 0xf9, 0x16, 0x51, 0x7a, 0x19, 0x72, 0x09, 0xb7, 0x14,
0xcc, 0xe4, 0x30, 0x99, 0x8d, 0x98, 0xab, 0xa1, 0xd3, 0xb8, 0x02, 0xb3, 0x91, 0x69, 0x8c, 0xae,
0x75, 0xcc, 0xc0, 0x48, 0x44, 0xaf, 0xb1, 0x64, 0x01, 0x19, 0x7e, 0x19, 0x66, 0xc2, 0x73, 0xca,
- 0x21, 0x32, 0x1a, 0x56, 0x2c, 0x97, 0xc6, 0x3d, 0x98, 0x11, 0x78, 0xbc, 0x40, 0x90, 0x31, 0xc2,
+ 0x21, 0x32, 0x1a, 0x56, 0x2c, 0x97, 0xc6, 0x5d, 0x98, 0x11, 0x78, 0xbc, 0x40, 0x90, 0x31, 0xc2,
0x08, 0xd7, 0x7f, 0x51, 0x71, 0xd6, 0xe1, 0x0c, 0xc7, 0x4a, 0x38, 0xfc, 0x8c, 0x93, 0x4d, 0x26,
- 0x61, 0x2c, 0x09, 0xb6, 0x5e, 0x87, 0xd3, 0x49, 0x93, 0xe1, 0x10, 0x54, 0x31, 0xc1, 0x93, 0x71,
- 0xcb, 0x49, 0xd0, 0x7b, 0x15, 0x34, 0x89, 0x7b, 0x0d, 0x44, 0x9d, 0x20, 0xf6, 0x23, 0x72, 0x96,
- 0x54, 0xda, 0x37, 0xe1, 0x82, 0xc0, 0x16, 0x39, 0x0c, 0x4e, 0x62, 0x92, 0xa7, 0x79, 0x26, 0x99,
- 0x60, 0xf2, 0x0d, 0x38, 0xcf, 0x37, 0x4c, 0x0e, 0xdd, 0x23, 0x98, 0xee, 0x1c, 0xc7, 0x3e, 0xe3,
+ 0x61, 0x2c, 0x09, 0xb6, 0xde, 0x80, 0xd3, 0x49, 0x93, 0xe1, 0x10, 0x54, 0x31, 0xc1, 0x93, 0x71,
+ 0xcb, 0x49, 0xd0, 0x7b, 0x0d, 0x34, 0x89, 0x7b, 0x0d, 0x44, 0x9d, 0x20, 0xf6, 0x23, 0x72, 0x96,
+ 0x54, 0xda, 0xb7, 0xe0, 0x82, 0xc0, 0x16, 0x39, 0x0c, 0x4e, 0x62, 0x92, 0xa7, 0x79, 0x26, 0x99,
+ 0x60, 0xf2, 0x4d, 0x38, 0xcf, 0x37, 0x4c, 0x0e, 0xdd, 0x23, 0x98, 0xee, 0x1c, 0xc7, 0x3e, 0xe3,
0x64, 0x43, 0xa1, 0xee, 0xdf, 0x29, 0x30, 0xc3, 0xc9, 0x72, 0x64, 0xc9, 0xec, 0xed, 0x47, 0xfa,
- 0xe1, 0x16, 0x67, 0x8b, 0x39, 0x27, 0xcb, 0xcf, 0x84, 0x33, 0x7c, 0xdf, 0x57, 0xe0, 0xac, 0x1c,
+ 0xe1, 0x26, 0x67, 0x8b, 0x39, 0x27, 0xcb, 0xcf, 0x84, 0x33, 0x7c, 0xdf, 0x57, 0xe0, 0xac, 0x1c,
0x24, 0x6b, 0xee, 0x61, 0x23, 0x9e, 0xe7, 0x7b, 0x31, 0x55, 0x98, 0x4f, 0x96, 0xed, 0xfb, 0xaf,
- 0xc3, 0x70, 0x5c, 0x46, 0xeb, 0x17, 0x30, 0xe7, 0xa7, 0x3e, 0x86, 0x11, 0x5c, 0xfc, 0x68, 0xda,
+ 0xc3, 0x70, 0x5c, 0x46, 0xeb, 0x17, 0x30, 0xe7, 0xa7, 0x3e, 0x82, 0x11, 0x5c, 0xfc, 0x68, 0xda,
0x56, 0xb9, 0x82, 0x6a, 0x9e, 0x8e, 0x0f, 0xed, 0x83, 0x91, 0x6b, 0xa1, 0x48, 0x01, 0x29, 0x05,
0x5e, 0xf1, 0x61, 0xa9, 0x59, 0x0c, 0x37, 0xc2, 0x8d, 0xa4, 0x16, 0x75, 0xcf, 0x6e, 0x7a, 0xed,
0x94, 0x57, 0x51, 0x94, 0x90, 0xb6, 0x7f, 0x40, 0x8e, 0xb6, 0x9c, 0x34, 0xd5, 0xa7, 0x65, 0xe7,
@@ -5435,160 +5531,164 @@ var fileDescriptor_7c861fb1c14863a5 = []byte{
0xff, 0xd2, 0x8b, 0x03, 0x1c, 0xf6, 0xc4, 0xf4, 0xf4, 0xf3, 0xcb, 0x20, 0xb1, 0xee, 0xba, 0xee,
0xee, 0x60, 0x03, 0xeb, 0xa1, 0xdd, 0x6b, 0xba, 0xbb, 0x13, 0x08, 0xd4, 0xdb, 0x12, 0x28, 0x35,
0x41, 0xc3, 0x15, 0x50, 0xd3, 0x48, 0x8a, 0x97, 0xd7, 0xc7, 0x92, 0x4d, 0x5f, 0x3d, 0x8c, 0x1f,
- 0x4f, 0x88, 0xd2, 0x17, 0xbf, 0x40, 0x4a, 0xba, 0xc9, 0x51, 0xd2, 0xe9, 0xa4, 0x92, 0x92, 0x32,
+ 0x4f, 0x88, 0xd2, 0x17, 0xbf, 0x40, 0x4a, 0xba, 0xce, 0x51, 0xd2, 0xe9, 0xa4, 0x92, 0x92, 0x32,
0x6a, 0x67, 0x70, 0x8e, 0x57, 0xd4, 0xcd, 0x54, 0xf5, 0x07, 0x0a, 0x0c, 0xb0, 0x13, 0x6f, 0x54,
0x01, 0x4a, 0x9a, 0x02, 0x0e, 0xa7, 0x2a, 0xa0, 0x4b, 0xae, 0x80, 0x6e, 0x81, 0x02, 0x5a, 0x69,
0x48, 0xed, 0xbb, 0x64, 0x47, 0x0d, 0xa5, 0xa3, 0xe2, 0xe1, 0xeb, 0x81, 0x24, 0xd1, 0x52, 0x77,
- 0x52, 0x09, 0x43, 0xda, 0x43, 0xbc, 0x91, 0x4a, 0x20, 0xda, 0x4a, 0x9f, 0xfd, 0xe6, 0x61, 0x38,
- 0xb2, 0xe6, 0x56, 0x37, 0x98, 0x96, 0x9f, 0x38, 0xba, 0xe5, 0x6e, 0x49, 0xcc, 0xf8, 0x32, 0x4c,
+ 0x52, 0x09, 0x43, 0xda, 0x03, 0xbc, 0x91, 0x4a, 0x20, 0xda, 0x4a, 0x9f, 0xfd, 0xe6, 0x61, 0x38,
+ 0xb2, 0xe6, 0x56, 0x37, 0x98, 0x96, 0x1f, 0x3b, 0xba, 0xe5, 0x6e, 0x49, 0xcc, 0xf8, 0x32, 0x4c,
0xba, 0x76, 0xd3, 0x31, 0x50, 0x99, 0x37, 0x5f, 0x2a, 0xe9, 0xdb, 0x08, 0xcf, 0x1a, 0x3e, 0x17,
0xba, 0x9e, 0x69, 0x91, 0x02, 0x1d, 0x9e, 0x9d, 0x4f, 0x85, 0x00, 0x36, 0xf8, 0x75, 0xf4, 0xdd,
0xed, 0xd5, 0xd1, 0x2f, 0xc4, 0xf4, 0x3b, 0x13, 0xd6, 0x6f, 0x52, 0x5c, 0x6d, 0x16, 0x5f, 0x7d,
- 0x25, 0x3b, 0x98, 0x2d, 0x7f, 0xed, 0x30, 0xae, 0xb5, 0xbf, 0xff, 0xcc, 0x43, 0x8e, 0xa5, 0xd7,
+ 0x25, 0x3b, 0x98, 0x2d, 0x7f, 0xed, 0x30, 0xae, 0xb5, 0xbf, 0xf7, 0xd4, 0x43, 0x8e, 0xa5, 0xd7,
0x7e, 0x59, 0xf4, 0x74, 0x31, 0xa6, 0xa7, 0xc8, 0xbb, 0xb1, 0xb8, 0xb0, 0xf4, 0xdd, 0x58, 0xbc,
- 0xb9, 0x55, 0x3c, 0xa7, 0xe0, 0x64, 0xec, 0x43, 0xf3, 0x9d, 0xa6, 0x89, 0x5f, 0x8a, 0xd0, 0x08,
+ 0xb9, 0x55, 0x3c, 0xa7, 0xe0, 0x64, 0xec, 0x03, 0xf3, 0xdd, 0xa6, 0x89, 0x5f, 0x8a, 0xd0, 0x08,
0xe1, 0x93, 0x25, 0x63, 0x23, 0x7e, 0xa3, 0x2b, 0xe6, 0x37, 0xd8, 0x8e, 0xdf, 0xdd, 0xf6, 0x8e,
0xaf, 0x04, 0x3b, 0xfe, 0x25, 0x59, 0xe2, 0x24, 0x21, 0x8c, 0x36, 0x83, 0xf3, 0x26, 0x89, 0x76,
- 0xa6, 0x85, 0x1f, 0x2b, 0x30, 0xbe, 0xe6, 0x56, 0x1f, 0x6d, 0x6d, 0xb9, 0xc8, 0xfb, 0x14, 0x54,
+ 0xa6, 0x85, 0x1f, 0x2b, 0x30, 0xbe, 0xe6, 0x56, 0x1f, 0x6e, 0x6d, 0xb9, 0xc8, 0xfb, 0x14, 0x54,
0x50, 0x84, 0x63, 0x36, 0x1e, 0xcb, 0x33, 0xad, 0x6a, 0xd4, 0x6c, 0x82, 0x8c, 0xc8, 0x54, 0x0b,
0x20, 0x6c, 0x36, 0x6e, 0x71, 0x3e, 0x26, 0x7a, 0x3e, 0x2c, 0x7a, 0x54, 0x02, 0x6d, 0x1a, 0x3f,
- 0x0a, 0x8c, 0x36, 0x32, 0xa1, 0xff, 0x8c, 0xc4, 0x0d, 0xf7, 0xeb, 0xc8, 0xa9, 0x22, 0xcb, 0xd8,
+ 0x0a, 0x8c, 0x36, 0x32, 0xa1, 0xff, 0x8c, 0xc4, 0x0d, 0xf7, 0xea, 0xc8, 0xa9, 0x22, 0xcb, 0xd8,
0xdb, 0xc0, 0x25, 0x74, 0xf4, 0xc5, 0xe0, 0x81, 0xc9, 0x5e, 0xbc, 0x22, 0xdb, 0xe3, 0xb9, 0xcc,
- 0xd0, 0x3d, 0x9e, 0xdb, 0xd7, 0x7a, 0xd3, 0x74, 0x18, 0xcb, 0xfa, 0xc0, 0xf2, 0x4f, 0x7e, 0x2e,
- 0x9b, 0x62, 0x52, 0x30, 0xf2, 0x19, 0x59, 0xf2, 0x11, 0xbd, 0x74, 0xc7, 0x6c, 0xe2, 0x16, 0xf3,
+ 0xd0, 0x3d, 0x9e, 0xdb, 0xd7, 0x7a, 0xd3, 0x74, 0x18, 0xcb, 0x7a, 0xdf, 0xf2, 0x4f, 0x7e, 0x2e,
+ 0x9b, 0x62, 0x52, 0x30, 0xf2, 0x19, 0x59, 0xf2, 0x11, 0xbd, 0x74, 0xc7, 0x6c, 0xe2, 0x26, 0xf3,
0x07, 0xed, 0x44, 0xe3, 0xd4, 0x27, 0x2c, 0xc6, 0x94, 0xaa, 0x45, 0x2b, 0x55, 0x78, 0x3a, 0xa1,
0x6f, 0xdf, 0xf8, 0x9d, 0x71, 0xb5, 0xae, 0xa0, 0x5f, 0xa9, 0x35, 0xae, 0x56, 0xbe, 0x4e, 0xa8,
0x5a, 0xf9, 0x9d, 0x4c, 0xad, 0xff, 0xac, 0x60, 0x8f, 0xb4, 0xee, 0x98, 0xbb, 0x66, 0x0d, 0x55,
- 0x51, 0xe5, 0xfe, 0x33, 0x64, 0x34, 0x3d, 0x74, 0xcf, 0xb6, 0x3c, 0x47, 0x37, 0xc4, 0xeb, 0x6f,
+ 0x51, 0xe5, 0xde, 0x53, 0x64, 0x34, 0x3d, 0x74, 0xd7, 0xb6, 0x3c, 0x47, 0x37, 0xc4, 0xeb, 0x6f,
0x12, 0x7a, 0xb6, 0x9a, 0x56, 0xc5, 0xa5, 0xaa, 0x24, 0x1f, 0xea, 0x05, 0x18, 0x33, 0x28, 0x66,
0x59, 0x27, 0x4f, 0x0f, 0xa9, 0xd2, 0x46, 0x83, 0x76, 0xfa, 0x22, 0x51, 0x55, 0x69, 0x14, 0x44,
- 0xf4, 0x44, 0xa2, 0x9b, 0xdb, 0x82, 0x3a, 0xa0, 0x33, 0x61, 0x71, 0x85, 0xbc, 0xfa, 0x8e, 0xe4,
+ 0xf4, 0x44, 0xa2, 0x9b, 0x5b, 0x82, 0x3a, 0xa0, 0x33, 0x61, 0x71, 0x85, 0xbc, 0xfa, 0x8e, 0xe4,
0xb4, 0x0c, 0x80, 0x85, 0x37, 0x5f, 0x02, 0xc0, 0xfc, 0x96, 0x2b, 0xe6, 0xd6, 0x16, 0x8e, 0x70,
0xa4, 0xdb, 0xde, 0x65, 0x7f, 0xaa, 0xbe, 0xf3, 0x1f, 0xb3, 0xe7, 0xab, 0xa6, 0xb7, 0xdd, 0xdc,
0x5c, 0x30, 0xec, 0x3a, 0x7d, 0x9c, 0x4f, 0xff, 0x77, 0xc9, 0xad, 0xec, 0x14, 0xbc, 0xbd, 0x06,
0x72, 0x31, 0x82, 0x5b, 0x1a, 0xc0, 0xe4, 0x57, 0xcc, 0xad, 0xad, 0xe2, 0x04, 0x47, 0x26, 0xed,
- 0x8b, 0x30, 0xb6, 0xe6, 0x56, 0x4b, 0xe8, 0xa9, 0xee, 0x54, 0xdc, 0x47, 0x0d, 0xef, 0x51, 0x53,
+ 0x8b, 0x30, 0xb6, 0xe6, 0x56, 0x4b, 0xe8, 0x89, 0xee, 0x54, 0xdc, 0x87, 0x0d, 0xef, 0x61, 0x53,
0xa8, 0x69, 0x92, 0x9f, 0xe7, 0x28, 0xe5, 0x58, 0x58, 0x29, 0x11, 0x52, 0x5a, 0x1e, 0x3b, 0xd4,
- 0x48, 0x5b, 0xf8, 0xcd, 0xe5, 0x11, 0xdc, 0x69, 0xd4, 0x74, 0xb3, 0xfe, 0xd0, 0x36, 0x76, 0x50,
+ 0x48, 0x5b, 0xf8, 0xcd, 0xe5, 0x11, 0xdc, 0x69, 0xd4, 0x74, 0xb3, 0xfe, 0xc0, 0x36, 0x76, 0x50,
0x65, 0x15, 0x4f, 0x9e, 0x78, 0x11, 0x4d, 0xd4, 0x30, 0xd8, 0x12, 0xb1, 0xf4, 0xf5, 0xe6, 0xe6,
- 0x6b, 0x68, 0x0f, 0x4f, 0xfc, 0x50, 0x89, 0xd7, 0xa5, 0x1e, 0x87, 0x01, 0xd7, 0xac, 0x5a, 0xba,
+ 0xeb, 0x68, 0x0f, 0x4f, 0xfc, 0x50, 0x89, 0xd7, 0xa5, 0x1e, 0x87, 0x01, 0xd7, 0xac, 0x5a, 0xba,
0xd7, 0x74, 0x48, 0x82, 0x61, 0xa8, 0xd4, 0x6a, 0x90, 0xc7, 0x57, 0x49, 0xbe, 0x68, 0x7c, 0x95,
0xec, 0x68, 0xd5, 0xd8, 0x92, 0xe7, 0x97, 0x1b, 0x66, 0xd5, 0xc2, 0xa7, 0x85, 0x0d, 0xe8, 0xf5,
- 0xff, 0x4d, 0x05, 0x19, 0x5a, 0xbe, 0xf5, 0xb3, 0xe7, 0xb3, 0xbd, 0x2e, 0x6e, 0xf9, 0x9f, 0xe7,
+ 0xff, 0x4d, 0x05, 0x19, 0x5a, 0xbe, 0xf9, 0xb3, 0xe7, 0xb3, 0xbd, 0x2e, 0x6e, 0xf9, 0x9f, 0xe7,
0xb3, 0x97, 0x32, 0xcc, 0xe2, 0x92, 0x61, 0x50, 0x3b, 0x2d, 0x51, 0x52, 0xea, 0x71, 0xe8, 0x5e,
0x21, 0x51, 0xbb, 0x4f, 0xb2, 0xff, 0x67, 0xcf, 0x67, 0xb1, 0xcd, 0x96, 0x70, 0xab, 0xe6, 0xe2,
0x87, 0xac, 0x98, 0x03, 0xdb, 0x50, 0xcf, 0x10, 0xf9, 0x49, 0xd5, 0x2c, 0xc9, 0xeb, 0x60, 0x04,
- 0xff, 0xbb, 0xd4, 0xef, 0x77, 0xe1, 0xba, 0xd8, 0x3b, 0xd0, 0xb3, 0xab, 0xd7, 0x9a, 0x88, 0x9e,
+ 0xff, 0xbb, 0xd4, 0xef, 0x77, 0xe1, 0xba, 0xd8, 0xdb, 0xd0, 0xb3, 0xab, 0xd7, 0x9a, 0x88, 0x9e,
0xcf, 0x35, 0x41, 0x00, 0x12, 0x12, 0x2d, 0x48, 0x37, 0x60, 0x34, 0xed, 0xeb, 0x5d, 0x78, 0x89,
- 0x2f, 0x55, 0xea, 0xa6, 0x45, 0xae, 0x61, 0x38, 0x39, 0x83, 0xce, 0x0e, 0x95, 0xaf, 0xc3, 0x58,
+ 0x2f, 0x55, 0xea, 0xa6, 0x45, 0xae, 0x61, 0x38, 0x39, 0x83, 0xce, 0x0e, 0x95, 0x6f, 0xc0, 0x58,
0xa8, 0xca, 0x9d, 0xa4, 0x98, 0x5a, 0x99, 0x22, 0x25, 0xcd, 0x6f, 0x8d, 0xb6, 0x90, 0x71, 0x89,
- 0xa8, 0xb0, 0xd0, 0xbe, 0xbb, 0xfd, 0x42, 0xfb, 0x1e, 0x71, 0xa1, 0xfd, 0x2d, 0xe8, 0x75, 0x3d,
+ 0xa8, 0xb0, 0xd0, 0xbe, 0xbb, 0xfd, 0x42, 0xfb, 0x1e, 0x71, 0xa1, 0xfd, 0x4d, 0xe8, 0x75, 0x3d,
0xdd, 0x6b, 0xba, 0xb4, 0x54, 0x79, 0x4e, 0xa4, 0x51, 0x2c, 0xe6, 0x06, 0x06, 0x2d, 0x51, 0x94,
0x62, 0x51, 0x96, 0xb8, 0x91, 0xeb, 0x58, 0x7b, 0x01, 0xe7, 0x6d, 0xe4, 0x40, 0xcc, 0x5c, 0xff,
- 0x94, 0x3c, 0xb1, 0x5d, 0x22, 0xcf, 0xa7, 0xdf, 0x45, 0x1b, 0x9e, 0xbe, 0x83, 0xfe, 0x9f, 0xa3,
+ 0x94, 0x3c, 0xb1, 0x5d, 0x22, 0xcf, 0xa7, 0xdf, 0x43, 0x1b, 0x9e, 0xbe, 0x83, 0xfe, 0x9f, 0xa3,
0x5b, 0x9e, 0x78, 0x0d, 0x2e, 0x41, 0x6f, 0x15, 0x43, 0xd0, 0x53, 0xe3, 0x05, 0x81, 0x64, 0x98,
0x4c, 0x40, 0x19, 0x2b, 0xb4, 0x44, 0x11, 0x8b, 0x97, 0x65, 0xef, 0x6b, 0x79, 0xcc, 0x68, 0xa7,
0xf0, 0xeb, 0x3a, 0x5e, 0x17, 0x93, 0x65, 0x0f, 0x3b, 0x93, 0x25, 0x9f, 0x11, 0xdd, 0x0b, 0x41,
0x08, 0x05, 0xc9, 0x41, 0x1f, 0xe6, 0x87, 0x15, 0xb4, 0x07, 0x9f, 0x72, 0xb7, 0x90, 0x1c, 0x81,
- 0xba, 0x85, 0x64, 0x07, 0xe3, 0xed, 0x5f, 0x94, 0xd6, 0x2d, 0xe5, 0x7d, 0x4a, 0x6b, 0xcd, 0xae,
- 0x98, 0x5b, 0xa6, 0xa1, 0x4b, 0xe3, 0xea, 0x27, 0xd0, 0x1f, 0xfc, 0xa8, 0x09, 0x5d, 0x9a, 0x37,
+ 0xba, 0x85, 0x64, 0x07, 0xe3, 0xed, 0x5f, 0x94, 0xd6, 0x2d, 0xe5, 0x3d, 0x4a, 0x6b, 0xcd, 0xae,
+ 0x98, 0x5b, 0xa6, 0xa1, 0x4b, 0xe3, 0xea, 0xc7, 0xd0, 0x1f, 0xfc, 0xa8, 0x09, 0x5d, 0x9a, 0xd7,
0x05, 0xea, 0x16, 0xd2, 0x5e, 0xa7, 0xf8, 0x25, 0x46, 0x29, 0xdb, 0xe6, 0x26, 0x24, 0xa8, 0x9d,
- 0xc5, 0x7b, 0x9b, 0xb0, 0x9f, 0x49, 0xfd, 0xbe, 0x82, 0x0f, 0x9b, 0x99, 0x1f, 0xd0, 0xbe, 0x96,
- 0x10, 0xb6, 0x90, 0x5a, 0xfd, 0x4a, 0x48, 0x72, 0x64, 0xbc, 0x2a, 0x90, 0x31, 0x72, 0x34, 0x4c,
- 0x3c, 0xf6, 0x24, 0x47, 0x43, 0xe1, 0x2b, 0xcf, 0x1f, 0x90, 0xf3, 0x41, 0x7b, 0xcf, 0x3b, 0xd7,
- 0x13, 0x62, 0x5d, 0x15, 0x25, 0xa8, 0x79, 0x74, 0x39, 0xb2, 0x65, 0x2a, 0x52, 0xe6, 0x3f, 0x22,
- 0x23, 0xe7, 0x06, 0xf9, 0xeb, 0x31, 0x6a, 0xad, 0xed, 0xbf, 0x10, 0xc9, 0x6e, 0xad, 0x42, 0xda,
- 0x9d, 0x5a, 0xab, 0xb8, 0xe6, 0x9c, 0x58, 0x6b, 0x7a, 0xb1, 0x79, 0xb0, 0x46, 0xdb, 0x7e, 0x2c,
- 0xd7, 0xc6, 0x1a, 0x15, 0xd1, 0xee, 0x78, 0x8d, 0x0a, 0xdf, 0x06, 0xd1, 0x35, 0x9a, 0xfa, 0x28,
- 0xe8, 0x87, 0x0a, 0xae, 0x49, 0x24, 0x99, 0x38, 0xbb, 0x5e, 0x6f, 0x5a, 0xa6, 0xb7, 0xb7, 0x6e,
- 0xdb, 0xb5, 0x8d, 0x06, 0xb2, 0x2a, 0x42, 0x99, 0x4b, 0x09, 0x99, 0xaf, 0xcb, 0xfc, 0x52, 0x92,
- 0x32, 0x47, 0xe2, 0x4c, 0xaf, 0xb4, 0x05, 0xe4, 0xe8, 0x2b, 0x6d, 0x41, 0x6f, 0x7c, 0xfd, 0xb6,
- 0xd6, 0x37, 0xfe, 0x15, 0x10, 0xb2, 0x4f, 0xee, 0xc3, 0xfa, 0xe5, 0xd2, 0xed, 0x74, 0xfd, 0x72,
- 0x89, 0xd1, 0xf5, 0xcb, 0xed, 0x63, 0x52, 0xfe, 0x2b, 0x49, 0x08, 0xc7, 0x2f, 0x53, 0xb2, 0xc8,
- 0xfa, 0xff, 0x13, 0xb2, 0x16, 0x33, 0x5e, 0xd5, 0xc8, 0x25, 0xbe, 0x2b, 0x90, 0xf8, 0x5c, 0xf4,
- 0xf4, 0x28, 0x24, 0xa9, 0x9d, 0xc7, 0x09, 0x63, 0x09, 0x04, 0x93, 0xfe, 0x27, 0xb4, 0xac, 0x34,
- 0x69, 0xfa, 0x59, 0x14, 0xf0, 0x56, 0x42, 0x01, 0xb7, 0xb3, 0x2f, 0x66, 0xb9, 0x0e, 0x96, 0x05,
- 0x3a, 0x98, 0x4f, 0x59, 0xd1, 0x61, 0x35, 0x90, 0xe8, 0x4e, 0x0e, 0xc4, 0x34, 0xf1, 0x4f, 0x0a,
- 0x4e, 0x54, 0x10, 0x80, 0x55, 0xdb, 0x31, 0x50, 0x65, 0x83, 0x85, 0xaa, 0x42, 0x0d, 0x3c, 0x4e,
- 0x68, 0xe0, 0x9a, 0x34, 0x76, 0x8d, 0x13, 0xe6, 0x48, 0x5e, 0x14, 0x48, 0x1e, 0xc9, 0x1d, 0xf0,
- 0xa9, 0xd1, 0xdc, 0x01, 0xbf, 0x33, 0x6e, 0xf1, 0x4f, 0x1c, 0xbd, 0x62, 0x5a, 0xf4, 0xb4, 0x79,
- 0x4f, 0xaf, 0x37, 0x74, 0xb3, 0x6a, 0xa5, 0x78, 0xef, 0xec, 0x16, 0x2f, 0xa1, 0xde, 0xa9, 0xc5,
- 0x4b, 0x48, 0x52, 0x8b, 0x97, 0x40, 0x30, 0xe9, 0xbf, 0x43, 0x52, 0xb5, 0x41, 0x2c, 0x76, 0xdf,
- 0xd2, 0x37, 0x6b, 0x62, 0x0b, 0x7f, 0x90, 0x10, 0xf8, 0x92, 0x70, 0x93, 0x0e, 0x13, 0xe4, 0xc8,
- 0xb8, 0x28, 0x90, 0x31, 0x1f, 0xdd, 0x99, 0xc3, 0x54, 0x68, 0xfe, 0x35, 0xda, 0x98, 0x69, 0x1e,
- 0xf7, 0xcd, 0x73, 0x49, 0xa8, 0xef, 0xeb, 0x3c, 0x46, 0x3c, 0x97, 0x04, 0xa2, 0xf5, 0x1b, 0x22,
- 0xe4, 0xd1, 0x49, 0x04, 0x74, 0x1d, 0x59, 0xfe, 0xc7, 0xba, 0x6d, 0x5a, 0x9e, 0x9b, 0xa2, 0x82,
- 0x5f, 0x4b, 0xa8, 0xe0, 0x6e, 0x16, 0x15, 0x70, 0x86, 0xe0, 0xe8, 0x21, 0xd3, 0x03, 0xc0, 0x34,
- 0xba, 0xf4, 0x01, 0x60, 0x1a, 0x18, 0xd3, 0xc8, 0x1f, 0x2a, 0x30, 0xb2, 0xe6, 0x56, 0x57, 0x11,
- 0x5a, 0x31, 0x5d, 0x9c, 0xd6, 0x11, 0x0a, 0xbf, 0x9a, 0x10, 0x7e, 0x5e, 0x20, 0x7c, 0x88, 0x1a,
- 0x47, 0xce, 0x82, 0x40, 0xce, 0xa9, 0xb0, 0x9c, 0x21, 0x12, 0x5a, 0x0e, 0x8e, 0x46, 0x5b, 0x18,
- 0xf7, 0xff, 0x4d, 0x6a, 0x28, 0x96, 0x3c, 0xbb, 0x6e, 0x1a, 0xa1, 0x82, 0x86, 0x55, 0x84, 0xd6,
- 0x9a, 0x35, 0xcf, 0x6c, 0xd4, 0x4c, 0xe4, 0x6c, 0x18, 0xdb, 0xa8, 0xd2, 0x94, 0xac, 0x57, 0x3d,
- 0x21, 0xd8, 0x7d, 0x81, 0x60, 0xd9, 0x06, 0xe2, 0xc8, 0xfc, 0xaa, 0x40, 0xe6, 0xc5, 0xc8, 0xb9,
- 0x37, 0x13, 0x75, 0xed, 0x45, 0xb8, 0x92, 0x19, 0x98, 0x69, 0xaa, 0x8c, 0xcf, 0xee, 0xe4, 0x26,
- 0x78, 0xdd, 0x76, 0xbd, 0x47, 0x56, 0x6d, 0x6f, 0xcd, 0xae, 0x08, 0x95, 0x22, 0x3f, 0xa1, 0x27,
- 0xe9, 0xd0, 0x13, 0x7a, 0xb2, 0x23, 0xe0, 0x60, 0xf1, 0xdb, 0x37, 0xa1, 0x6b, 0xcd, 0xad, 0xaa,
- 0x6f, 0x42, 0x5f, 0xf0, 0x1b, 0x70, 0xa7, 0xc4, 0x49, 0x30, 0x0a, 0x92, 0xbf, 0x90, 0x0a, 0xc2,
- 0x12, 0xbd, 0x6f, 0x43, 0x3f, 0xfb, 0x51, 0x36, 0x49, 0x7a, 0x2d, 0x80, 0xc9, 0xcf, 0xa7, 0xc3,
- 0x30, 0xda, 0x5f, 0x57, 0x60, 0x4a, 0xf4, 0x6b, 0x55, 0x57, 0xc4, 0x74, 0x04, 0x28, 0xf9, 0x97,
- 0xda, 0x46, 0x61, 0x9c, 0xfc, 0xae, 0x02, 0xc7, 0xa5, 0xbf, 0x81, 0x74, 0x3d, 0x95, 0x36, 0x17,
- 0x2f, 0x7f, 0xa7, 0x33, 0x3c, 0xc6, 0xd8, 0x1f, 0x29, 0x70, 0x32, 0xf5, 0x97, 0x0f, 0x8a, 0xa9,
- 0x83, 0x08, 0x71, 0xf3, 0xcb, 0x9d, 0xe3, 0x32, 0x26, 0x7f, 0x1d, 0x26, 0xb9, 0xbf, 0x76, 0xb7,
- 0x20, 0xa6, 0xcd, 0x83, 0xcf, 0x5f, 0x6f, 0x0f, 0x9e, 0x8d, 0xff, 0x4d, 0x05, 0xf2, 0x92, 0x1f,
- 0x99, 0xbb, 0x2a, 0x26, 0x2b, 0xc6, 0xca, 0x7f, 0xae, 0x13, 0x2c, 0xc6, 0xd2, 0x57, 0x15, 0x38,
- 0xc2, 0x7f, 0xff, 0x5d, 0xc8, 0x22, 0x64, 0x08, 0x21, 0x7f, 0xa3, 0x4d, 0x04, 0xc6, 0x83, 0x0d,
- 0xa3, 0xf1, 0x57, 0x88, 0x92, 0x85, 0x1f, 0x03, 0xcd, 0x5f, 0xc9, 0x0c, 0x1a, 0x11, 0x9a, 0xff,
- 0x0c, 0xb0, 0x90, 0xa6, 0xcc, 0x18, 0x82, 0x4c, 0x68, 0xf9, 0x0b, 0xbe, 0x26, 0x8c, 0x27, 0x9f,
- 0xa3, 0xbd, 0x90, 0x42, 0x2d, 0x0c, 0x9c, 0x7f, 0xb1, 0x0d, 0x60, 0x36, 0xec, 0x6f, 0x2b, 0x70,
- 0x4c, 0x7c, 0x05, 0x28, 0x21, 0x29, 0x44, 0xca, 0xdf, 0xea, 0x00, 0x29, 0xb2, 0x24, 0x24, 0x4f,
- 0xc9, 0xaf, 0xa6, 0xd9, 0x14, 0x0f, 0x4b, 0xb6, 0x24, 0x32, 0xbc, 0xfe, 0xf6, 0x5d, 0x59, 0xea,
- 0xc3, 0xe4, 0x62, 0xa6, 0x55, 0xc7, 0xc5, 0x95, 0xb9, 0xb2, 0xcc, 0x0f, 0x89, 0x7f, 0x47, 0x81,
- 0x69, 0x59, 0x8d, 0xf7, 0xb5, 0xec, 0x2a, 0x08, 0xaf, 0xe1, 0xdb, 0x1d, 0xa1, 0x45, 0xbd, 0x09,
- 0xb7, 0x28, 0xb4, 0x90, 0xb6, 0x4a, 0x63, 0x08, 0x52, 0x6f, 0x22, 0xab, 0xbc, 0xc4, 0x9a, 0x91,
- 0xd5, 0xea, 0x5d, 0xcb, 0xb4, 0x62, 0xe3, 0x68, 0x32, 0xcd, 0x64, 0x29, 0xb3, 0x0b, 0xed, 0x8f,
- 0xe2, 0x0c, 0x68, 0xfa, 0xfe, 0x28, 0xc4, 0xcd, 0xb0, 0x3f, 0xa6, 0x26, 0x2b, 0xd5, 0xdf, 0x53,
- 0xe0, 0x84, 0xfc, 0x97, 0x0b, 0x52, 0x7d, 0xbc, 0x00, 0x31, 0x7f, 0xb7, 0x43, 0x44, 0xc6, 0xdb,
- 0xef, 0x2b, 0x30, 0x93, 0x52, 0xef, 0x7d, 0xb3, 0xad, 0x31, 0xc2, 0x66, 0xff, 0x72, 0xa7, 0x98,
- 0x8c, 0xbd, 0x6f, 0x28, 0x90, 0x13, 0x16, 0xfb, 0x2e, 0xa6, 0xd9, 0x72, 0x12, 0x27, 0x5f, 0x6c,
- 0x1f, 0x27, 0xa2, 0xab, 0x94, 0x67, 0xdf, 0x37, 0x33, 0x99, 0x33, 0x07, 0x53, 0xa6, 0xab, 0x8c,
- 0x2f, 0xb6, 0x9f, 0x81, 0xca, 0x29, 0x25, 0xbd, 0x28, 0xb9, 0x13, 0x4f, 0x40, 0xe7, 0xaf, 0xb6,
- 0x03, 0xcd, 0x46, 0x76, 0x60, 0x2c, 0x51, 0x9a, 0x29, 0x39, 0x08, 0xc4, 0x61, 0xf3, 0x8b, 0xd9,
- 0x61, 0xc3, 0x1b, 0x7d, 0xb2, 0xd4, 0x51, 0xb2, 0xd1, 0x27, 0x80, 0x65, 0x1b, 0xbd, 0xb0, 0xbe,
- 0x10, 0xbb, 0x62, 0x7e, 0x9d, 0x9d, 0xc4, 0x15, 0x73, 0x11, 0x64, 0xae, 0x58, 0x5a, 0x20, 0xa7,
- 0xd6, 0x60, 0x24, 0x56, 0xdf, 0x78, 0x5e, 0x4c, 0x2a, 0x0a, 0x99, 0xbf, 0x9c, 0x15, 0x92, 0x8d,
- 0xf6, 0x1b, 0x0a, 0x1c, 0x15, 0xd4, 0xe2, 0x5d, 0x96, 0x39, 0x47, 0x1e, 0x46, 0xfe, 0x66, 0xbb,
- 0x18, 0x11, 0x36, 0x04, 0xb5, 0x6b, 0x97, 0x65, 0xc7, 0xd9, 0x76, 0xd9, 0x90, 0x97, 0x7b, 0xa9,
- 0x26, 0x0c, 0x47, 0x8b, 0x8e, 0xce, 0x89, 0x49, 0x45, 0x00, 0xf3, 0x85, 0x8c, 0x80, 0x11, 0x77,
- 0x93, 0x52, 0x99, 0x22, 0x91, 0x43, 0x8e, 0x29, 0x73, 0x37, 0xd9, 0x8a, 0x30, 0xd4, 0x2d, 0x18,
- 0x8a, 0xfc, 0x8e, 0xfe, 0x59, 0x31, 0xc5, 0x30, 0x5c, 0x7e, 0x21, 0x1b, 0x5c, 0xd8, 0xb9, 0x24,
- 0xfe, 0xa0, 0xc9, 0x7c, 0x1a, 0x8d, 0x16, 0xac, 0xcc, 0xb9, 0x88, 0xfe, 0x06, 0x07, 0x36, 0x36,
- 0xc1, 0x1f, 0xe0, 0xb8, 0x9c, 0x46, 0x2e, 0x8e, 0x21, 0x33, 0x36, 0xf9, 0x9f, 0x2b, 0xf0, 0x0f,
- 0xd6, 0xdc, 0x1a, 0x17, 0x89, 0x0a, 0x79, 0xf0, 0xb2, 0x83, 0xb5, 0xac, 0x36, 0xc5, 0xdf, 0x51,
- 0x38, 0x85, 0x29, 0x92, 0x1d, 0x25, 0x09, 0x2d, 0xdb, 0x51, 0xc4, 0x95, 0x27, 0xf8, 0x3c, 0x25,
- 0x2e, 0x3b, 0x49, 0x3b, 0xa2, 0xf1, 0x90, 0x64, 0xe7, 0xa9, 0xd4, 0x9a, 0x10, 0xdf, 0x08, 0x49,
- 0x50, 0x97, 0xcd, 0x08, 0x13, 0xb9, 0xa9, 0xc5, 0xec, 0xb0, 0x91, 0xad, 0x86, 0xde, 0xd3, 0x44,
- 0x73, 0x44, 0xb2, 0xad, 0x86, 0x9f, 0x86, 0xba, 0xd1, 0x26, 0x42, 0x64, 0x1e, 0x48, 0x13, 0x27,
- 0x0d, 0x24, 0x9b, 0x07, 0x71, 0xc6, 0xe9, 0x56, 0x07, 0x48, 0x1c, 0x7e, 0x78, 0xee, 0x50, 0x66,
- 0x17, 0xc2, 0x08, 0xff, 0x56, 0x07, 0x48, 0x91, 0x14, 0x26, 0xb6, 0x1e, 0x7c, 0x61, 0x1f, 0xb9,
- 0xc2, 0x97, 0xa5, 0x30, 0x05, 0x17, 0xfe, 0xb2, 0x14, 0x66, 0x4a, 0x8d, 0x00, 0xb6, 0x16, 0x7e,
- 0x81, 0x40, 0x21, 0x8b, 0xed, 0x85, 0x10, 0x64, 0xd6, 0x22, 0xbd, 0xc1, 0xc7, 0x67, 0x44, 0xd9,
- 0xf5, 0xfd, 0x35, 0xd9, 0xb6, 0x2b, 0x44, 0x93, 0x9d, 0x11, 0x33, 0xdc, 0xac, 0x93, 0xb0, 0x5d,
- 0x7e, 0xad, 0x7e, 0xb3, 0x2d, 0x1b, 0x08, 0xf3, 0xf6, 0x72, 0xa7, 0x98, 0x8c, 0xbd, 0x2f, 0xc3,
- 0x38, 0xbe, 0x20, 0x8e, 0x04, 0x93, 0x92, 0x5d, 0x86, 0x7f, 0xa7, 0x2c, 0xdb, 0x65, 0xe4, 0xb7,
- 0xd0, 0x78, 0xd6, 0x88, 0x59, 0x73, 0x6f, 0xfb, 0x64, 0xb3, 0x26, 0xb9, 0xe6, 0x95, 0xcd, 0x5a,
- 0x86, 0xdb, 0x61, 0x3f, 0xc8, 0x25, 0xb7, 0xac, 0x81, 0x5f, 0x96, 0x05, 0xb9, 0xd1, 0x7b, 0x59,
- 0x59, 0x90, 0xcb, 0xbf, 0xc1, 0xc5, 0x3a, 0x20, 0xf3, 0xb2, 0x3f, 0x3a, 0x48, 0xb7, 0xdc, 0x0c,
- 0x37, 0xab, 0x38, 0xbb, 0xc1, 0xe1, 0x2a, 0x72, 0xf5, 0x28, 0xcb, 0x6e, 0xa4, 0x5d, 0x58, 0xca,
- 0xb2, 0x1b, 0x59, 0x2f, 0x3b, 0x55, 0x13, 0xc6, 0x49, 0x4b, 0xf8, 0xba, 0xf3, 0x8c, 0x98, 0x70,
- 0x08, 0x2c, 0x7f, 0x29, 0x13, 0x18, 0x1b, 0xea, 0xef, 0x15, 0xb8, 0x48, 0xc6, 0xca, 0x78, 0x39,
- 0x29, 0x8b, 0x72, 0x33, 0x51, 0xc8, 0xbf, 0xf2, 0x49, 0x29, 0x84, 0x83, 0x29, 0xce, 0x4d, 0xe1,
- 0xc5, 0xb4, 0x7c, 0x44, 0x18, 0x5a, 0x16, 0x4c, 0x89, 0x2f, 0x09, 0xf3, 0x3d, 0x5f, 0xf9, 0xf8,
- 0xfd, 0x79, 0x65, 0x79, 0xe7, 0x47, 0x1f, 0xce, 0x28, 0x1f, 0x7c, 0x38, 0xa3, 0xfc, 0xf4, 0xc3,
- 0x19, 0xe5, 0x9b, 0x1f, 0xcd, 0x1c, 0xfa, 0xe0, 0xa3, 0x99, 0x43, 0xff, 0xfe, 0xd1, 0xcc, 0xa1,
- 0xb7, 0x1f, 0x87, 0x0a, 0xfa, 0x1f, 0x04, 0x03, 0x3c, 0xd4, 0x37, 0xdd, 0x02, 0x1b, 0xee, 0x92,
- 0x61, 0x3b, 0x28, 0xfc, 0xb9, 0xad, 0x9b, 0x56, 0xa1, 0x6e, 0xfb, 0x22, 0xba, 0xad, 0xbf, 0x66,
- 0x88, 0x8b, 0xff, 0x0b, 0xbb, 0x8b, 0x9b, 0xbd, 0xf8, 0x2f, 0x12, 0xbe, 0xf8, 0x7f, 0x01, 0x00,
- 0x00, 0xff, 0xff, 0xc3, 0x40, 0x50, 0x62, 0x31, 0x72, 0x00, 0x00,
+ 0xc5, 0x7b, 0x9b, 0xb0, 0x9f, 0x49, 0xfd, 0xbe, 0x82, 0x0f, 0x9b, 0x99, 0x1f, 0xd0, 0xbe, 0x9e,
+ 0x10, 0xb6, 0x90, 0x5a, 0xfd, 0x4a, 0x48, 0x72, 0x64, 0x7c, 0x49, 0x20, 0x63, 0xe4, 0x68, 0x98,
+ 0x78, 0xec, 0x49, 0x8e, 0x86, 0xc2, 0x57, 0x9e, 0x3f, 0x20, 0xe7, 0x83, 0xf6, 0x9e, 0x77, 0xae,
+ 0x27, 0xc4, 0x7a, 0x49, 0x94, 0xa0, 0xe6, 0xd1, 0xe5, 0xc8, 0x96, 0xa9, 0x48, 0x99, 0xff, 0x88,
+ 0x8c, 0x9c, 0x1b, 0xe4, 0xaf, 0xc7, 0xa8, 0xb5, 0xb6, 0xff, 0x42, 0x24, 0xbb, 0xb5, 0x0a, 0x69,
+ 0x77, 0x6a, 0xad, 0xe2, 0x9a, 0x73, 0x62, 0xad, 0xe9, 0xc5, 0xe6, 0xc1, 0x1a, 0x6d, 0xfb, 0xb1,
+ 0x5c, 0x1b, 0x6b, 0x54, 0x44, 0xbb, 0xe3, 0x35, 0x2a, 0x7c, 0x1b, 0x44, 0xd7, 0x68, 0xea, 0xa3,
+ 0xa0, 0x1f, 0x2a, 0xb8, 0x26, 0x91, 0x64, 0xe2, 0xec, 0x7a, 0xbd, 0x69, 0x99, 0xde, 0xde, 0xba,
+ 0x6d, 0xd7, 0x36, 0x1a, 0xc8, 0xaa, 0x08, 0x65, 0x2e, 0x25, 0x64, 0xbe, 0x26, 0xf3, 0x4b, 0x49,
+ 0xca, 0x1c, 0x89, 0x33, 0xbd, 0xd2, 0x16, 0x90, 0xa3, 0xaf, 0xb4, 0x05, 0xbd, 0xf1, 0xf5, 0xdb,
+ 0x5a, 0xdf, 0xf8, 0x57, 0x40, 0xc8, 0x3e, 0xb9, 0x0f, 0xeb, 0x97, 0x4b, 0xb7, 0xd3, 0xf5, 0xcb,
+ 0x25, 0x46, 0xd7, 0x2f, 0xb7, 0x8f, 0x49, 0xf9, 0xaf, 0x24, 0x21, 0x1c, 0xbf, 0x4c, 0xc9, 0x22,
+ 0xeb, 0xff, 0x4f, 0xc8, 0x5a, 0xcc, 0x78, 0x55, 0x23, 0x97, 0xf8, 0x8e, 0x40, 0xe2, 0x73, 0xd1,
+ 0xd3, 0xa3, 0x90, 0xa4, 0x76, 0x1e, 0x27, 0x8c, 0x25, 0x10, 0x4c, 0xfa, 0x9f, 0xd0, 0xb2, 0xd2,
+ 0xa4, 0xe9, 0x67, 0x51, 0xc0, 0xdb, 0x09, 0x05, 0xdc, 0xca, 0xbe, 0x98, 0xe5, 0x3a, 0x58, 0x16,
+ 0xe8, 0x60, 0x3e, 0x65, 0x45, 0x87, 0xd5, 0x40, 0xa2, 0x3b, 0x39, 0x10, 0xd3, 0xc4, 0x3f, 0x29,
+ 0x38, 0x51, 0x41, 0x00, 0x56, 0x6d, 0xc7, 0x40, 0x95, 0x0d, 0x16, 0xaa, 0x0a, 0x35, 0xf0, 0x28,
+ 0xa1, 0x81, 0xab, 0xd2, 0xd8, 0x35, 0x4e, 0x98, 0x23, 0x79, 0x51, 0x20, 0x79, 0x24, 0x77, 0xc0,
+ 0xa7, 0x46, 0x73, 0x07, 0xfc, 0xce, 0xb8, 0xc5, 0x3f, 0x76, 0xf4, 0x8a, 0x69, 0xd1, 0xd3, 0xe6,
+ 0x5d, 0xbd, 0xde, 0xd0, 0xcd, 0xaa, 0x95, 0xe2, 0xbd, 0xb3, 0x5b, 0xbc, 0x84, 0x7a, 0xa7, 0x16,
+ 0x2f, 0x21, 0x49, 0x2d, 0x5e, 0x02, 0xc1, 0xa4, 0xff, 0x0e, 0x49, 0xd5, 0x06, 0xb1, 0xd8, 0x3d,
+ 0x4b, 0xdf, 0xac, 0x89, 0x2d, 0xfc, 0x7e, 0x42, 0xe0, 0x4b, 0xc2, 0x4d, 0x3a, 0x4c, 0x90, 0x23,
+ 0xe3, 0xa2, 0x40, 0xc6, 0x7c, 0x74, 0x67, 0x0e, 0x53, 0xa1, 0xf9, 0xd7, 0x68, 0x63, 0xa6, 0x79,
+ 0xdc, 0x37, 0xcf, 0x25, 0xa1, 0xbe, 0xaf, 0xf3, 0x18, 0xf1, 0x5c, 0x12, 0x88, 0xd6, 0x6f, 0x88,
+ 0x90, 0x47, 0x27, 0x11, 0xd0, 0x75, 0x64, 0xf9, 0x1f, 0xeb, 0xb6, 0x69, 0x79, 0x6e, 0x8a, 0x0a,
+ 0x7e, 0x2d, 0xa1, 0x82, 0x3b, 0x59, 0x54, 0xc0, 0x19, 0x82, 0xa3, 0x87, 0x4c, 0x0f, 0x00, 0xd3,
+ 0xe8, 0xd2, 0x07, 0x80, 0x69, 0x60, 0x4c, 0x23, 0x7f, 0xa8, 0xc0, 0xc8, 0x9a, 0x5b, 0x5d, 0x45,
+ 0x68, 0xc5, 0x74, 0x71, 0x5a, 0x47, 0x28, 0xfc, 0x6a, 0x42, 0xf8, 0x79, 0x81, 0xf0, 0x21, 0x6a,
+ 0x1c, 0x39, 0x0b, 0x02, 0x39, 0xa7, 0xc2, 0x72, 0x86, 0x48, 0x68, 0x39, 0x38, 0x1a, 0x6d, 0x61,
+ 0xdc, 0xff, 0x37, 0xa9, 0xa1, 0x58, 0xf2, 0xec, 0xba, 0x69, 0x84, 0x0a, 0x1a, 0x56, 0x11, 0x5a,
+ 0x6b, 0xd6, 0x3c, 0xb3, 0x51, 0x33, 0x91, 0xb3, 0x61, 0x6c, 0xa3, 0x4a, 0x53, 0xb2, 0x5e, 0xf5,
+ 0x84, 0x60, 0xf7, 0x04, 0x82, 0x65, 0x1b, 0x88, 0x23, 0xf3, 0x6b, 0x02, 0x99, 0x17, 0x23, 0xe7,
+ 0xde, 0x4c, 0xd4, 0xb5, 0x17, 0xe1, 0x4a, 0x66, 0x60, 0xa6, 0xa9, 0x32, 0x3e, 0xbb, 0x93, 0x9b,
+ 0xe0, 0x75, 0xdb, 0xf5, 0x1e, 0x5a, 0xb5, 0xbd, 0x35, 0xbb, 0x22, 0x54, 0x8a, 0xfc, 0x84, 0x9e,
+ 0xa4, 0x43, 0x4f, 0xe8, 0xc9, 0x0e, 0xc6, 0xc1, 0x33, 0x9a, 0x09, 0xa1, 0x67, 0xf8, 0x2c, 0x4c,
+ 0xe0, 0x9f, 0x28, 0xaa, 0xd9, 0xc6, 0x8e, 0x5b, 0xa6, 0xe9, 0xf4, 0xc3, 0xf4, 0x27, 0x8a, 0x70,
+ 0xe3, 0x12, 0xc9, 0x97, 0xcb, 0x73, 0x1d, 0x9c, 0xe1, 0x82, 0x5c, 0x07, 0xa7, 0x2b, 0xe0, 0x76,
+ 0xf1, 0xdb, 0x37, 0xa0, 0x6b, 0xcd, 0xad, 0xaa, 0x6f, 0x41, 0x5f, 0xf0, 0x8b, 0x75, 0xa7, 0xc4,
+ 0x29, 0x3b, 0x0a, 0x92, 0xbf, 0x90, 0x0a, 0xc2, 0xd2, 0xd2, 0xef, 0x40, 0x3f, 0xfb, 0x09, 0x39,
+ 0x49, 0x32, 0x30, 0x80, 0xc9, 0xcf, 0xa7, 0xc3, 0x30, 0xda, 0x5f, 0x57, 0x60, 0x4a, 0xf4, 0xdb,
+ 0x5a, 0x57, 0xc4, 0x74, 0x04, 0x28, 0xf9, 0x1b, 0x6d, 0xa3, 0x30, 0x4e, 0x7e, 0x57, 0x81, 0xe3,
+ 0xd2, 0x5f, 0x6c, 0xba, 0x96, 0x4a, 0x9b, 0x8b, 0x97, 0xbf, 0xdd, 0x19, 0x1e, 0x63, 0xec, 0x8f,
+ 0x14, 0x38, 0x99, 0xfa, 0x3b, 0x0d, 0xc5, 0xd4, 0x41, 0x84, 0xb8, 0xf9, 0xe5, 0xce, 0x71, 0x19,
+ 0x93, 0xbf, 0x0e, 0x93, 0xdc, 0xdf, 0xe6, 0x5b, 0x10, 0xd3, 0xe6, 0xc1, 0xe7, 0xaf, 0xb5, 0x07,
+ 0xcf, 0xc6, 0xff, 0xa6, 0x02, 0x79, 0xc9, 0x4f, 0xe2, 0xbd, 0x24, 0x26, 0x2b, 0xc6, 0xca, 0x7f,
+ 0xae, 0x13, 0x2c, 0xc6, 0xd2, 0x57, 0x15, 0x38, 0xc2, 0x7f, 0xad, 0x5e, 0xc8, 0x22, 0x64, 0x08,
+ 0x21, 0xff, 0x72, 0x9b, 0x08, 0x8c, 0x07, 0x1b, 0x46, 0xe3, 0x6f, 0x26, 0x25, 0x0b, 0x3f, 0x06,
+ 0x9a, 0xbf, 0x92, 0x19, 0x34, 0x22, 0x34, 0xff, 0xd1, 0x62, 0x21, 0x4d, 0x99, 0x31, 0x04, 0x99,
+ 0xd0, 0xf2, 0xf7, 0x86, 0x4d, 0x18, 0x4f, 0x3e, 0x9e, 0x7b, 0x21, 0x85, 0x5a, 0x18, 0x38, 0xff,
+ 0x62, 0x1b, 0xc0, 0x6c, 0xd8, 0xdf, 0x56, 0xe0, 0x98, 0xf8, 0xc2, 0x52, 0x42, 0x52, 0x88, 0x94,
+ 0xbf, 0xd9, 0x01, 0x52, 0x64, 0x49, 0x48, 0x1e, 0xbe, 0xbf, 0x94, 0x66, 0x53, 0x3c, 0x2c, 0xd9,
+ 0x92, 0xc8, 0xf0, 0x56, 0xdd, 0x77, 0x65, 0xa9, 0xcf, 0xa8, 0x8b, 0x99, 0x56, 0x1d, 0x17, 0x57,
+ 0xe6, 0xca, 0x32, 0x3f, 0x7b, 0xfe, 0x1d, 0x05, 0xa6, 0x65, 0x15, 0xe9, 0x57, 0xb3, 0xab, 0x20,
+ 0xbc, 0x86, 0x6f, 0x75, 0x84, 0x16, 0xf5, 0x26, 0xdc, 0x12, 0xd6, 0x42, 0xda, 0x2a, 0x8d, 0x21,
+ 0x48, 0xbd, 0x89, 0xac, 0x4e, 0x14, 0x6b, 0x46, 0x56, 0x59, 0x78, 0x35, 0xd3, 0x8a, 0x8d, 0xa3,
+ 0xc9, 0x34, 0x93, 0xa5, 0x28, 0x30, 0xb4, 0x3f, 0x8a, 0xf3, 0xb5, 0xe9, 0xfb, 0xa3, 0x10, 0x37,
+ 0xc3, 0xfe, 0x98, 0x9a, 0x5a, 0x55, 0x7f, 0x4f, 0x81, 0x13, 0xf2, 0xdf, 0x59, 0x48, 0xf5, 0xf1,
+ 0x02, 0xc4, 0xfc, 0x9d, 0x0e, 0x11, 0x19, 0x6f, 0xbf, 0xaf, 0xc0, 0x4c, 0x4a, 0x75, 0xfa, 0xf5,
+ 0xb6, 0xc6, 0x08, 0x9b, 0xfd, 0x2b, 0x9d, 0x62, 0x32, 0xf6, 0xbe, 0xa1, 0x40, 0x4e, 0x58, 0x9a,
+ 0xbc, 0x98, 0x66, 0xcb, 0x49, 0x9c, 0x7c, 0xb1, 0x7d, 0x9c, 0x88, 0xae, 0x52, 0x1e, 0xa9, 0x5f,
+ 0xcf, 0x64, 0xce, 0x1c, 0x4c, 0x99, 0xae, 0x32, 0xbe, 0x2f, 0x7f, 0x0a, 0x2a, 0xa7, 0xf0, 0xf5,
+ 0xa2, 0xe4, 0x06, 0x3f, 0x01, 0x9d, 0x7f, 0xa9, 0x1d, 0x68, 0x36, 0xb2, 0x03, 0x63, 0x89, 0x42,
+ 0x52, 0xc9, 0x41, 0x20, 0x0e, 0x9b, 0x5f, 0xcc, 0x0e, 0x1b, 0xde, 0xe8, 0x93, 0x85, 0x99, 0x92,
+ 0x8d, 0x3e, 0x01, 0x2c, 0xdb, 0xe8, 0x85, 0xd5, 0x90, 0xd8, 0x15, 0xf3, 0xab, 0x02, 0x25, 0xae,
+ 0x98, 0x8b, 0x20, 0x73, 0xc5, 0xd2, 0x72, 0x3e, 0xb5, 0x06, 0x23, 0xb1, 0x6a, 0xcc, 0xf3, 0x62,
+ 0x52, 0x51, 0xc8, 0xfc, 0xe5, 0xac, 0x90, 0x6c, 0xb4, 0xdf, 0x50, 0xe0, 0xa8, 0xa0, 0x72, 0xf0,
+ 0xb2, 0xcc, 0x39, 0xf2, 0x30, 0xf2, 0xd7, 0xdb, 0xc5, 0x88, 0xb0, 0x21, 0xa8, 0xb4, 0xbb, 0x2c,
+ 0x3b, 0xce, 0xb6, 0xcb, 0x86, 0xbc, 0x38, 0x4d, 0x35, 0x61, 0x38, 0x5a, 0x22, 0x75, 0x4e, 0x4c,
+ 0x2a, 0x02, 0x98, 0x2f, 0x64, 0x04, 0x8c, 0xb8, 0x9b, 0x94, 0x3a, 0x1a, 0x89, 0x1c, 0x72, 0x4c,
+ 0x99, 0xbb, 0xc9, 0x56, 0x32, 0xa2, 0x6e, 0xc1, 0x50, 0xe4, 0x57, 0xff, 0xcf, 0x8a, 0x29, 0x86,
+ 0xe1, 0xf2, 0x0b, 0xd9, 0xe0, 0xc2, 0xce, 0x25, 0xf1, 0xe7, 0x57, 0xe6, 0xd3, 0x68, 0xb4, 0x60,
+ 0x65, 0xce, 0x45, 0xf4, 0x17, 0x43, 0xb0, 0xb1, 0x09, 0xfe, 0x5c, 0xc8, 0xe5, 0x34, 0x72, 0x71,
+ 0x0c, 0x99, 0xb1, 0xc9, 0xff, 0xb8, 0x82, 0x7f, 0xb0, 0xe6, 0x56, 0xe4, 0x48, 0x54, 0xc8, 0x83,
+ 0x97, 0x1d, 0xac, 0x65, 0x95, 0x34, 0xfe, 0x8e, 0xc2, 0x29, 0xa3, 0x91, 0xec, 0x28, 0x49, 0x68,
+ 0xd9, 0x8e, 0x22, 0xae, 0x93, 0xc1, 0xe7, 0x29, 0x71, 0x91, 0x4c, 0xda, 0x11, 0x8d, 0x87, 0x24,
+ 0x3b, 0x4f, 0xa5, 0x56, 0xb0, 0xf8, 0x46, 0x48, 0x82, 0xba, 0x6c, 0x46, 0x98, 0xc8, 0x4d, 0x2d,
+ 0x66, 0x87, 0x8d, 0x6c, 0x35, 0xf4, 0x56, 0x29, 0x9a, 0x23, 0x92, 0x6d, 0x35, 0xfc, 0x34, 0xd4,
+ 0xcb, 0x6d, 0x22, 0x44, 0xe6, 0x81, 0x34, 0x71, 0xd2, 0x40, 0xb2, 0x79, 0x10, 0x67, 0x9c, 0x6e,
+ 0x76, 0x80, 0xc4, 0xe1, 0x87, 0xe7, 0x0e, 0x65, 0x76, 0x21, 0x8c, 0xf0, 0x6f, 0x76, 0x80, 0x14,
+ 0x49, 0x61, 0x62, 0xeb, 0xc1, 0xe5, 0x05, 0x91, 0x82, 0x03, 0x59, 0x0a, 0x53, 0x50, 0x9e, 0x20,
+ 0x4b, 0x61, 0xa6, 0x54, 0x34, 0x60, 0x6b, 0xe1, 0x97, 0x33, 0x14, 0xb2, 0xd8, 0x5e, 0x08, 0x41,
+ 0x66, 0x2d, 0xd2, 0x7a, 0x03, 0x7c, 0x46, 0x94, 0x15, 0x1b, 0x5c, 0x95, 0x6d, 0xbb, 0x42, 0x34,
+ 0xd9, 0x19, 0x31, 0x43, 0x1d, 0x00, 0x09, 0xdb, 0xe5, 0x45, 0x00, 0xd7, 0xdb, 0xb2, 0x81, 0x30,
+ 0x6f, 0xaf, 0x74, 0x8a, 0xc9, 0xd8, 0xfb, 0x32, 0x8c, 0xe3, 0xeb, 0xec, 0x48, 0x30, 0x29, 0xd9,
+ 0x65, 0xf8, 0x37, 0xe0, 0xb2, 0x5d, 0x46, 0x7e, 0x67, 0x8e, 0x67, 0x8d, 0x98, 0x35, 0xf7, 0x6e,
+ 0x52, 0x36, 0x6b, 0x92, 0x4b, 0x69, 0xd9, 0xac, 0x65, 0xb8, 0xcb, 0xf6, 0x83, 0x5c, 0x72, 0x27,
+ 0x1c, 0xf8, 0x65, 0x59, 0x90, 0x1b, 0xbd, 0x45, 0x96, 0x05, 0xb9, 0xfc, 0xfb, 0x66, 0xac, 0x03,
+ 0x32, 0x2f, 0xfb, 0xa3, 0x83, 0x74, 0xcb, 0xcd, 0x70, 0x0f, 0x8c, 0xb3, 0x1b, 0x1c, 0xae, 0x22,
+ 0x17, 0xa5, 0xb2, 0xec, 0x46, 0xda, 0xf5, 0xaa, 0x2c, 0xbb, 0x91, 0xf5, 0x6a, 0x56, 0x35, 0x61,
+ 0x9c, 0xb4, 0x84, 0x2f, 0x67, 0xcf, 0x88, 0x09, 0x87, 0xc0, 0xf2, 0x97, 0x32, 0x81, 0xb1, 0xa1,
+ 0xfe, 0x5e, 0x81, 0x8b, 0x64, 0xac, 0x8c, 0x57, 0xa9, 0xb2, 0x28, 0x37, 0x13, 0x85, 0xfc, 0xab,
+ 0x9f, 0x94, 0x42, 0x38, 0x98, 0xe2, 0xdc, 0x6b, 0x5e, 0x4c, 0xcb, 0x47, 0x84, 0xa1, 0x65, 0xc1,
+ 0x94, 0xf8, 0x4a, 0x13, 0x87, 0x91, 0xbc, 0xeb, 0xcc, 0x85, 0xf4, 0xd0, 0x2c, 0x32, 0xfa, 0xb5,
+ 0xf6, 0xe0, 0x83, 0xf1, 0xf3, 0x3d, 0x5f, 0xf9, 0xf8, 0xfd, 0x79, 0x65, 0x79, 0xe7, 0x47, 0x1f,
+ 0xce, 0x28, 0x1f, 0x7c, 0x38, 0xa3, 0xfc, 0xf4, 0xc3, 0x19, 0xe5, 0x9b, 0x1f, 0xcd, 0x1c, 0xfa,
+ 0xe0, 0xa3, 0x99, 0x43, 0xff, 0xfe, 0xd1, 0xcc, 0xa1, 0x77, 0x1e, 0x85, 0x9e, 0x3f, 0xdc, 0x0f,
+ 0x86, 0x78, 0xa0, 0x6f, 0xba, 0x05, 0x36, 0xe0, 0x25, 0xc3, 0x76, 0x50, 0xf8, 0x73, 0x5b, 0x37,
+ 0xad, 0x42, 0xdd, 0xf6, 0x55, 0xec, 0xb6, 0xfe, 0xf6, 0x23, 0x7e, 0x2a, 0x51, 0xd8, 0x5d, 0xdc,
+ 0xec, 0xc5, 0x7f, 0xbf, 0xf1, 0xc5, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x15, 0x51, 0x1e,
+ 0x5f, 0x73, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -5709,7 +5809,11 @@ type MsgClient interface {
UpdateTradingRewardPendingPoints(ctx context.Context, in *MsgTradingRewardPendingPointsUpdate, opts ...grpc.CallOption) (*MsgTradingRewardPendingPointsUpdateResponse, error)
UpdateFeeDiscount(ctx context.Context, in *MsgFeeDiscount, opts ...grpc.CallOption) (*MsgFeeDiscountResponse, error)
UpdateAtomicMarketOrderFeeMultiplierSchedule(ctx context.Context, in *MsgAtomicMarketOrderFeeMultiplierSchedule, opts ...grpc.CallOption) (*MsgAtomicMarketOrderFeeMultiplierScheduleResponse, error)
+ // MsgCancelPostOnlyMode defines a message to turn off the post-only mode
CancelPostOnlyMode(ctx context.Context, in *MsgCancelPostOnlyMode, opts ...grpc.CallOption) (*MsgCancelPostOnlyModeResponse, error)
+ // MsgActivatePostOnlyMode defines a message to turn on the post-only mode for
+ // a number of blocks
+ ActivatePostOnlyMode(ctx context.Context, in *MsgActivatePostOnlyMode, opts ...grpc.CallOption) (*MsgActivatePostOnlyModeResponse, error)
}
type msgClient struct {
@@ -6197,6 +6301,15 @@ func (c *msgClient) CancelPostOnlyMode(ctx context.Context, in *MsgCancelPostOnl
return out, nil
}
+func (c *msgClient) ActivatePostOnlyMode(ctx context.Context, in *MsgActivatePostOnlyMode, opts ...grpc.CallOption) (*MsgActivatePostOnlyModeResponse, error) {
+ out := new(MsgActivatePostOnlyModeResponse)
+ err := c.cc.Invoke(ctx, "/injective.exchange.v2.Msg/ActivatePostOnlyMode", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// MsgServer is the server API for Msg service.
type MsgServer interface {
// Deposit defines a method for transferring coins from the sender's bank
@@ -6305,7 +6418,11 @@ type MsgServer interface {
UpdateTradingRewardPendingPoints(context.Context, *MsgTradingRewardPendingPointsUpdate) (*MsgTradingRewardPendingPointsUpdateResponse, error)
UpdateFeeDiscount(context.Context, *MsgFeeDiscount) (*MsgFeeDiscountResponse, error)
UpdateAtomicMarketOrderFeeMultiplierSchedule(context.Context, *MsgAtomicMarketOrderFeeMultiplierSchedule) (*MsgAtomicMarketOrderFeeMultiplierScheduleResponse, error)
+ // MsgCancelPostOnlyMode defines a message to turn off the post-only mode
CancelPostOnlyMode(context.Context, *MsgCancelPostOnlyMode) (*MsgCancelPostOnlyModeResponse, error)
+ // MsgActivatePostOnlyMode defines a message to turn on the post-only mode for
+ // a number of blocks
+ ActivatePostOnlyMode(context.Context, *MsgActivatePostOnlyMode) (*MsgActivatePostOnlyModeResponse, error)
}
// UnimplementedMsgServer can be embedded to have forward compatible implementations.
@@ -6471,6 +6588,9 @@ func (*UnimplementedMsgServer) UpdateAtomicMarketOrderFeeMultiplierSchedule(ctx
func (*UnimplementedMsgServer) CancelPostOnlyMode(ctx context.Context, req *MsgCancelPostOnlyMode) (*MsgCancelPostOnlyModeResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CancelPostOnlyMode not implemented")
}
+func (*UnimplementedMsgServer) ActivatePostOnlyMode(ctx context.Context, req *MsgActivatePostOnlyMode) (*MsgActivatePostOnlyModeResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ActivatePostOnlyMode not implemented")
+}
func RegisterMsgServer(s grpc1.Server, srv MsgServer) {
s.RegisterService(&_Msg_serviceDesc, srv)
@@ -7430,6 +7550,24 @@ func _Msg_CancelPostOnlyMode_Handler(srv interface{}, ctx context.Context, dec f
return interceptor(ctx, in, info, handler)
}
+func _Msg_ActivatePostOnlyMode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(MsgActivatePostOnlyMode)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(MsgServer).ActivatePostOnlyMode(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/injective.exchange.v2.Msg/ActivatePostOnlyMode",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(MsgServer).ActivatePostOnlyMode(ctx, req.(*MsgActivatePostOnlyMode))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
var _Msg_serviceDesc = grpc.ServiceDesc{
ServiceName: "injective.exchange.v2.Msg",
HandlerType: (*MsgServer)(nil),
@@ -7646,6 +7784,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
MethodName: "CancelPostOnlyMode",
Handler: _Msg_CancelPostOnlyMode_Handler,
},
+ {
+ MethodName: "ActivatePostOnlyMode",
+ Handler: _Msg_ActivatePostOnlyMode_Handler,
+ },
},
Streams: []grpc.StreamDesc{},
Metadata: "injective/exchange/v2/tx.proto",
@@ -12668,6 +12810,64 @@ func (m *MsgCancelPostOnlyModeResponse) MarshalToSizedBuffer(dAtA []byte) (int,
return len(dAtA) - i, nil
}
+func (m *MsgActivatePostOnlyMode) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MsgActivatePostOnlyMode) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *MsgActivatePostOnlyMode) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.BlocksAmount != 0 {
+ i = encodeVarintTx(dAtA, i, uint64(m.BlocksAmount))
+ i--
+ dAtA[i] = 0x10
+ }
+ if len(m.Sender) > 0 {
+ i -= len(m.Sender)
+ copy(dAtA[i:], m.Sender)
+ i = encodeVarintTx(dAtA, i, uint64(len(m.Sender)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
+func (m *MsgActivatePostOnlyModeResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *MsgActivatePostOnlyModeResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *MsgActivatePostOnlyModeResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
func encodeVarintTx(dAtA []byte, offset int, v uint64) int {
offset -= sovTx(v)
base := offset
@@ -14755,6 +14955,31 @@ func (m *MsgCancelPostOnlyModeResponse) Size() (n int) {
return n
}
+func (m *MsgActivatePostOnlyMode) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.Sender)
+ if l > 0 {
+ n += 1 + l + sovTx(uint64(l))
+ }
+ if m.BlocksAmount != 0 {
+ n += 1 + sovTx(uint64(m.BlocksAmount))
+ }
+ return n
+}
+
+func (m *MsgActivatePostOnlyModeResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
func sovTx(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@@ -29539,6 +29764,157 @@ func (m *MsgCancelPostOnlyModeResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *MsgActivatePostOnlyMode) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTx
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MsgActivatePostOnlyMode: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MsgActivatePostOnlyMode: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTx
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthTx
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthTx
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Sender = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field BlocksAmount", wireType)
+ }
+ m.BlocksAmount = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTx
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.BlocksAmount |= uint32(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := skipTx(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTx
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *MsgActivatePostOnlyModeResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTx
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: MsgActivatePostOnlyModeResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: MsgActivatePostOnlyModeResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipTx(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthTx
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func skipTx(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/chain/exchange/types/wasm_trade_summary.go b/chain/exchange/types/wasm_trade_summary.go
index c5057bb5..c2a122e7 100644
--- a/chain/exchange/types/wasm_trade_summary.go
+++ b/chain/exchange/types/wasm_trade_summary.go
@@ -4,124 +4,113 @@ import (
"bytes"
"sort"
- "cosmossdk.io/math"
+ "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/ethereum/go-ethereum/common"
)
-type MarketSummary struct {
- TotalUserQuantity math.LegacyDec
- TotalContractQuantity math.LegacyDec
- TotalUserMargin math.LegacyDec
- TotalContractMargin math.LegacyDec
- netQuantity math.LegacyDec
-}
-
-func NewMarketSummary() *MarketSummary {
- return &MarketSummary{
- TotalUserQuantity: math.LegacyZeroDec(),
- TotalContractQuantity: math.LegacyZeroDec(),
- TotalUserMargin: math.LegacyZeroDec(),
- TotalContractMargin: math.LegacyZeroDec(),
- netQuantity: math.LegacyZeroDec(),
- }
-}
-
-func NewSyntheticTradeActionSummary() *SyntheticTradeActionSummary {
- return &SyntheticTradeActionSummary{
- MarketSummary: make(map[common.Hash]*MarketSummary),
- MarketIDs: make([]common.Hash, 0),
- ContractAddress: sdk.AccAddress{},
- UserAddress: sdk.AccAddress{},
- }
-}
-
type SyntheticTradeActionSummary struct {
- MarketSummary map[common.Hash]*MarketSummary
- MarketIDs []common.Hash
+ Markets map[common.Hash]bool
ContractAddress sdk.Address
UserAddress sdk.Address
}
func (s *SyntheticTradeActionSummary) GetMarketIDs() []common.Hash {
- marketIDs := make([]common.Hash, 0, len(s.MarketSummary))
- for marketID := range s.MarketSummary {
+ marketIDs := make([]common.Hash, 0, len(s.Markets))
+
+ for marketID := range s.Markets {
marketIDs = append(marketIDs, marketID)
}
sort.SliceStable(marketIDs, func(i, j int) bool {
return bytes.Compare(marketIDs[i].Bytes(), marketIDs[j].Bytes()) < 0
})
- s.MarketIDs = marketIDs
+
return marketIDs
}
func (s *SyntheticTradeActionSummary) Update(t *SyntheticTrade, isForUser bool) error {
- if _, ok := s.MarketSummary[t.MarketID]; !ok {
- s.MarketSummary[t.MarketID] = NewMarketSummary()
+ if _, ok := s.Markets[t.MarketID]; !ok {
+ s.Markets[t.MarketID] = true
}
- summary := s.MarketSummary[t.MarketID]
address := SubaccountIDToSdkAddress(t.SubaccountID)
- if isForUser && s.UserAddress.Empty() {
- s.UserAddress = address
+ if (isForUser && !address.Equals(s.UserAddress)) || (!isForUser && !address.Equals(s.ContractAddress)) {
+ return ErrBadSubaccountID
}
- if !isForUser && s.ContractAddress.Empty() {
- s.ContractAddress = address
- }
+ return nil
+}
- if (isForUser && !s.UserAddress.Equals(address)) || (!isForUser && !s.ContractAddress.Equals(address)) {
- return ErrBadSubaccountID
+func (a *SyntheticTradeAction) Summarize() (*SyntheticTradeActionSummary, error) {
+ if err := a.validateTrades(); err != nil {
+ return nil, err
}
- if t.IsBuy {
- summary.netQuantity = summary.netQuantity.Add(t.Quantity)
- } else {
- summary.netQuantity = summary.netQuantity.Sub(t.Quantity)
+ summary := a.initSummary()
+
+ if err := a.updateSummary(&summary); err != nil {
+ return nil, err
}
- if isForUser {
- summary.TotalUserQuantity = summary.TotalUserQuantity.Add(t.Quantity)
- summary.TotalUserMargin = summary.TotalUserMargin.Add(t.Margin)
- } else {
- summary.TotalContractQuantity = summary.TotalContractQuantity.Add(t.Quantity)
- summary.TotalContractMargin = summary.TotalContractMargin.Add(t.Margin)
+ return &summary, nil
+}
+
+func (a *SyntheticTradeAction) initSummary() SyntheticTradeActionSummary {
+ return SyntheticTradeActionSummary{
+ Markets: make(map[common.Hash]bool),
+ ContractAddress: SubaccountIDToSdkAddress(a.ContractTrades[0].SubaccountID),
+ UserAddress: SubaccountIDToSdkAddress(a.UserTrades[0].SubaccountID),
}
- return nil
}
-// IsValid checks that all the net quantities are zero
-func (s *SyntheticTradeActionSummary) IsValid() bool {
- for _, v := range s.MarketSummary {
- if !v.netQuantity.IsZero() {
- return false
+func (a *SyntheticTradeAction) validateTrades() error {
+ if len(a.UserTrades) == 0 || len(a.ContractTrades) == 0 {
+ return errors.Wrapf(ErrInvalidTrade, "no trades in action")
+ }
+
+ if len(a.UserTrades) != len(a.ContractTrades) {
+ return errors.Wrapf(
+ ErrInvalidTrade,
+ "mismatched user and contract trades: %d vs %d",
+ len(a.UserTrades),
+ len(a.ContractTrades),
+ )
+ }
+
+ for i, userTrade := range a.UserTrades {
+ contractTrade := a.ContractTrades[i]
+
+ if userTrade.MarketID != contractTrade.MarketID {
+ return errors.Wrapf(ErrInvalidTrade, "mismatched user and contract trade at index %d", i)
+ }
+ if userTrade.IsBuy == contractTrade.IsBuy {
+ return errors.Wrapf(ErrInvalidTrade, "mismatched user and contract trade at index %d", i)
+ }
+ if !userTrade.Quantity.Equal(contractTrade.Quantity) {
+ return errors.Wrapf(ErrInvalidTrade, "mismatched user and contract trade at index %d", i)
+ }
+ if !userTrade.Price.Equal(contractTrade.Price) {
+ return errors.Wrapf(ErrInvalidTrade, "mismatched user and contract trade at index %d", i)
}
}
- return true
-}
-func (a *SyntheticTradeAction) Summarize() (*SyntheticTradeActionSummary, error) {
- summary := NewSyntheticTradeActionSummary()
+ return nil
+}
+func (a *SyntheticTradeAction) updateSummary(summary *SyntheticTradeActionSummary) error {
for _, t := range a.UserTrades {
if err := summary.Update(t, true); err != nil {
- return nil, err
+ return err
}
}
for _, t := range a.ContractTrades {
if err := summary.Update(t, false); err != nil {
- return nil, err
+ return err
}
}
- // ensure that sum(buy quantity) == sum(sell quantity) for all markets
- if !summary.IsValid() {
- return nil, ErrInvalidQuantity
- }
-
- summary.GetMarketIDs()
- return summary, nil
+ return nil
}
diff --git a/chain/exchange/types/wasm_trades.go b/chain/exchange/types/wasm_trades.go
index ee6912e1..4a3fd8b8 100644
--- a/chain/exchange/types/wasm_trades.go
+++ b/chain/exchange/types/wasm_trades.go
@@ -67,10 +67,13 @@ func (t *SyntheticTrade) Validate() error {
return ErrInvalidPrice
}
- // Margin can be 0 or even negative!
- if t.Margin.IsNil() {
+ if t.Margin.IsNil() || t.Margin.IsNegative() {
return ErrInvalidMargin
}
return nil
}
+
+func (t *SyntheticTrade) IsReduceOnly() bool {
+ return t.Margin.IsZero()
+}
diff --git a/chain/oracle/types/codec.go b/chain/oracle/types/codec.go
index bcdcebe3..14457332 100644
--- a/chain/oracle/types/codec.go
+++ b/chain/oracle/types/codec.go
@@ -16,34 +16,32 @@ import (
// on the provided LegacyAmino codec. These types are used for Amino JSON serialization.
func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
cdc.RegisterConcrete(&MsgRelayPriceFeedPrice{}, "oracle/MsgRelayPriceFeedPrice", nil)
- cdc.RegisterConcrete(&MsgRelayBandRates{}, "oracle/MsgRelayBandRates", nil)
cdc.RegisterConcrete(&MsgRelayCoinbaseMessages{}, "oracle/MsgRelayCoinbaseMessages", nil)
- cdc.RegisterConcrete(&MsgRequestBandIBCRates{}, "oracle/MsgRequestBandIBCRates", nil)
cdc.RegisterConcrete(&MsgRelayProviderPrices{}, "oracle/MsgRelayProviderPrices", nil)
cdc.RegisterConcrete(&MsgRelayPythPrices{}, "oracle/MsgRelayPythPrices", nil)
cdc.RegisterConcrete(&MsgRelayStorkPrices{}, "oracle/MsgRelayStorkPrices", nil)
cdc.RegisterConcrete(&MsgUpdateParams{}, "oracle/MsgUpdateParams", nil)
- cdc.RegisterConcrete(&GrantBandOraclePrivilegeProposal{}, "oracle/GrantBandOraclePrivilegeProposal", nil)
- cdc.RegisterConcrete(&RevokeBandOraclePrivilegeProposal{}, "oracle/RevokeBandOraclePrivilegeProposal", nil)
cdc.RegisterConcrete(&GrantPriceFeederPrivilegeProposal{}, "oracle/GrantPriceFeederPrivilegeProposal", nil)
cdc.RegisterConcrete(&RevokePriceFeederPrivilegeProposal{}, "oracle/RevokePriceFeederPrivilegeProposal", nil)
- cdc.RegisterConcrete(&AuthorizeBandOracleRequestProposal{}, "oracle/AuthorizeBandOracleRequestProposal", nil)
- cdc.RegisterConcrete(&UpdateBandOracleRequestProposal{}, "oracle/UpdateBandOracleRequestProposal", nil)
- cdc.RegisterConcrete(&EnableBandIBCProposal{}, "oracle/EnableBandIBCProposal", nil)
cdc.RegisterConcrete(&GrantProviderPrivilegeProposal{}, "oracle/GrantProviderPrivilegeProposal", nil)
cdc.RegisterConcrete(&RevokeProviderPrivilegeProposal{}, "oracle/RevokeProviderPrivilegeProposal", nil)
cdc.RegisterConcrete(&GrantStorkPublisherPrivilegeProposal{}, "oracle/GrantStorkPublisherPrivilegeProposal", nil)
cdc.RegisterConcrete(&RevokeStorkPublisherPrivilegeProposal{}, "oracle/RevokeStorkPublisherPrivilegeProposal", nil)
cdc.RegisterConcrete(&Params{}, "oracle/Params", nil)
+
+ // Deprecated: Band oracle proposal types kept for backward compatibility
+ cdc.RegisterConcrete(&GrantBandOraclePrivilegeProposal{}, "oracle/GrantBandOraclePrivilegeProposal", nil) //nolint:staticcheck // deprecated
+ cdc.RegisterConcrete(&RevokeBandOraclePrivilegeProposal{}, "oracle/RevokeBandOraclePrivilegeProposal", nil) //nolint:staticcheck // deprecated
+ cdc.RegisterConcrete(&AuthorizeBandOracleRequestProposal{}, "oracle/AuthorizeBandOracleRequestProposal", nil) //nolint:staticcheck // deprecated
+ cdc.RegisterConcrete(&UpdateBandOracleRequestProposal{}, "oracle/UpdateBandOracleRequestProposal", nil) //nolint:staticcheck // deprecated
+ cdc.RegisterConcrete(&EnableBandIBCProposal{}, "oracle/EnableBandIBCProposal", nil) //nolint:staticcheck // deprecated
}
func RegisterInterfaces(registry types.InterfaceRegistry) {
registry.RegisterImplementations((*sdk.Msg)(nil),
&MsgRelayPriceFeedPrice{},
- &MsgRelayBandRates{},
&MsgRelayCoinbaseMessages{},
- &MsgRequestBandIBCRates{},
&MsgRelayProviderPrices{},
&MsgRelayPythPrices{},
&MsgRelayStorkPrices{},
@@ -51,17 +49,18 @@ func RegisterInterfaces(registry types.InterfaceRegistry) {
)
registry.RegisterImplementations((*govtypes.Content)(nil),
- &GrantBandOraclePrivilegeProposal{},
- &RevokeBandOraclePrivilegeProposal{},
&GrantPriceFeederPrivilegeProposal{},
&RevokePriceFeederPrivilegeProposal{},
- &AuthorizeBandOracleRequestProposal{},
- &UpdateBandOracleRequestProposal{},
- &EnableBandIBCProposal{},
&GrantProviderPrivilegeProposal{},
&RevokeProviderPrivilegeProposal{},
&GrantStorkPublisherPrivilegeProposal{},
&RevokeStorkPublisherPrivilegeProposal{},
+ // Deprecated: Band oracle proposal types kept for backward compatibility
+ &GrantBandOraclePrivilegeProposal{}, //nolint:staticcheck // deprecated
+ &RevokeBandOraclePrivilegeProposal{}, //nolint:staticcheck // deprecated
+ &AuthorizeBandOracleRequestProposal{}, //nolint:staticcheck // deprecated
+ &UpdateBandOracleRequestProposal{}, //nolint:staticcheck // deprecated
+ &EnableBandIBCProposal{}, //nolint:staticcheck // deprecated
)
msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)
diff --git a/chain/oracle/types/errors.go b/chain/oracle/types/errors.go
index 87bb055b..1492790d 100644
--- a/chain/oracle/types/errors.go
+++ b/chain/oracle/types/errors.go
@@ -48,4 +48,6 @@ var (
ErrEmptyStorkSender = errors.Register(ModuleName, 41, "sender stork is empty")
ErrInvalidStorkSignature = errors.Register(ModuleName, 42, "invalid stork signature")
ErrStorkAssetIdNotUnique = errors.Register(ModuleName, 43, "stork asset id not unique")
+ ErrChainlinkVerificationFailed = errors.Register(ModuleName, 44, "chainlink report verification failed")
+ ErrBandOracleDeprecated = errors.Register(ModuleName, 45, "Band oracle is deprecated and no longer supported")
)
diff --git a/chain/oracle/types/events.pb.go b/chain/oracle/types/events.pb.go
index 7aeda9c2..e8c3cda5 100644
--- a/chain/oracle/types/events.pb.go
+++ b/chain/oracle/types/events.pb.go
@@ -637,6 +637,50 @@ func (m *EventSetPythPrices) GetPrices() []*PythPriceState {
return nil
}
+type EventSetChainlinkDataStreamsPrices struct {
+ Prices []*ChainlinkDataStreamsPriceState `protobuf:"bytes,1,rep,name=prices,proto3" json:"prices,omitempty"`
+}
+
+func (m *EventSetChainlinkDataStreamsPrices) Reset() { *m = EventSetChainlinkDataStreamsPrices{} }
+func (m *EventSetChainlinkDataStreamsPrices) String() string { return proto.CompactTextString(m) }
+func (*EventSetChainlinkDataStreamsPrices) ProtoMessage() {}
+func (*EventSetChainlinkDataStreamsPrices) Descriptor() ([]byte, []int) {
+ return fileDescriptor_c42b07097291dfa0, []int{11}
+}
+func (m *EventSetChainlinkDataStreamsPrices) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *EventSetChainlinkDataStreamsPrices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_EventSetChainlinkDataStreamsPrices.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *EventSetChainlinkDataStreamsPrices) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_EventSetChainlinkDataStreamsPrices.Merge(m, src)
+}
+func (m *EventSetChainlinkDataStreamsPrices) XXX_Size() int {
+ return m.Size()
+}
+func (m *EventSetChainlinkDataStreamsPrices) XXX_DiscardUnknown() {
+ xxx_messageInfo_EventSetChainlinkDataStreamsPrices.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_EventSetChainlinkDataStreamsPrices proto.InternalMessageInfo
+
+func (m *EventSetChainlinkDataStreamsPrices) GetPrices() []*ChainlinkDataStreamsPriceState {
+ if m != nil {
+ return m.Prices
+ }
+ return nil
+}
+
func init() {
proto.RegisterType((*SetChainlinkPriceEvent)(nil), "injective.oracle.v1beta1.SetChainlinkPriceEvent")
proto.RegisterType((*SetBandPriceEvent)(nil), "injective.oracle.v1beta1.SetBandPriceEvent")
@@ -649,6 +693,7 @@ func init() {
proto.RegisterType((*SetCoinbasePriceEvent)(nil), "injective.oracle.v1beta1.SetCoinbasePriceEvent")
proto.RegisterType((*EventSetStorkPrices)(nil), "injective.oracle.v1beta1.EventSetStorkPrices")
proto.RegisterType((*EventSetPythPrices)(nil), "injective.oracle.v1beta1.EventSetPythPrices")
+ proto.RegisterType((*EventSetChainlinkDataStreamsPrices)(nil), "injective.oracle.v1beta1.EventSetChainlinkDataStreamsPrices")
}
func init() {
@@ -656,51 +701,52 @@ func init() {
}
var fileDescriptor_c42b07097291dfa0 = []byte{
- // 689 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x3f, 0x6f, 0x13, 0x4b,
- 0x10, 0xf7, 0xda, 0x8e, 0x13, 0x6f, 0x5e, 0xf3, 0xee, 0xf9, 0x85, 0x53, 0x02, 0x8e, 0x31, 0x42,
- 0x32, 0x05, 0x77, 0x0a, 0x54, 0x40, 0x43, 0x1c, 0x82, 0x64, 0x29, 0x45, 0x74, 0x8e, 0x10, 0xa2,
- 0x89, 0xd6, 0x7b, 0x13, 0x7b, 0xf1, 0xdd, 0xad, 0xb3, 0xbb, 0x36, 0xf2, 0x37, 0xa0, 0xa0, 0xa0,
- 0xa3, 0xe5, 0xb3, 0x50, 0xa5, 0x4c, 0x89, 0x28, 0x22, 0x94, 0x48, 0x7c, 0x0e, 0xb4, 0x7b, 0x6b,
- 0xfb, 0x62, 0xc5, 0xc8, 0x11, 0xdd, 0xcd, 0xbf, 0xdf, 0xfc, 0x66, 0x6e, 0x66, 0x16, 0x3f, 0x64,
- 0xc9, 0x7b, 0xa0, 0x8a, 0x8d, 0xc0, 0xe7, 0x82, 0xd0, 0x08, 0xfc, 0xd1, 0x4e, 0x07, 0x14, 0xd9,
- 0xf1, 0x61, 0x04, 0x89, 0x92, 0xde, 0x40, 0x70, 0xc5, 0x1d, 0x77, 0xea, 0xe6, 0xa5, 0x6e, 0x9e,
- 0x75, 0xdb, 0xac, 0x74, 0x79, 0x97, 0x1b, 0x27, 0x5f, 0x7f, 0xa5, 0xfe, 0x9b, 0x55, 0xca, 0x65,
- 0xcc, 0xa5, 0xdf, 0x21, 0x72, 0x86, 0x48, 0x39, 0x4b, 0xac, 0x7d, 0x71, 0x5a, 0x0b, 0x6f, 0xdc,
- 0xea, 0x9f, 0x10, 0xde, 0x68, 0x83, 0xda, 0xeb, 0x11, 0x96, 0x44, 0x2c, 0xe9, 0x1f, 0x0a, 0x46,
- 0x61, 0x5f, 0x13, 0x73, 0xee, 0xe0, 0xd5, 0x13, 0x80, 0xf0, 0x98, 0x85, 0x2e, 0xaa, 0xa1, 0x46,
- 0x39, 0x28, 0x69, 0xb1, 0x15, 0x3a, 0x2f, 0x70, 0x89, 0x24, 0xf2, 0x03, 0x08, 0x37, 0xaf, 0xf5,
- 0xcd, 0x07, 0x67, 0x17, 0xdb, 0xb9, 0x1f, 0x17, 0xdb, 0x5b, 0x29, 0x25, 0x19, 0xf6, 0x3d, 0xc6,
- 0xfd, 0x98, 0xa8, 0x9e, 0x77, 0x00, 0x5d, 0x42, 0xc7, 0xaf, 0x80, 0x06, 0x36, 0xc4, 0xb9, 0x8b,
- 0xcb, 0x8a, 0xc5, 0x20, 0x15, 0x89, 0x07, 0x6e, 0xa1, 0x86, 0x1a, 0xc5, 0x60, 0xa6, 0xa8, 0x7f,
- 0x43, 0xf8, 0xdf, 0x36, 0xa8, 0x26, 0x49, 0xc2, 0x0c, 0x13, 0x17, 0xaf, 0x0a, 0x88, 0xc8, 0x18,
- 0x84, 0x65, 0x32, 0x11, 0x9d, 0x0d, 0x5c, 0x92, 0xe3, 0xb8, 0xc3, 0xa3, 0x94, 0x4a, 0x60, 0x25,
- 0xe7, 0x19, 0x5e, 0x19, 0xe8, 0x78, 0x93, 0x61, 0x49, 0x86, 0x69, 0x84, 0x73, 0x1f, 0xff, 0x23,
- 0x40, 0xf2, 0x68, 0x04, 0xc7, 0x9a, 0x97, 0x5b, 0x34, 0x1c, 0xd7, 0xad, 0xee, 0x88, 0xc5, 0xe0,
- 0xdc, 0xc3, 0x58, 0xc0, 0xe9, 0x10, 0xa4, 0xd2, 0xcd, 0x59, 0x49, 0x8b, 0xb0, 0x9a, 0x56, 0x58,
- 0xff, 0x85, 0x70, 0xc5, 0x16, 0xd1, 0x6a, 0xee, 0x2d, 0x55, 0x87, 0x8b, 0x57, 0x53, 0xe6, 0xd2,
- 0xcd, 0xd7, 0x0a, 0xda, 0x62, 0x45, 0xdd, 0x6c, 0xc3, 0x4b, 0xba, 0x05, 0x6d, 0x58, 0xb2, 0xd9,
- 0x69, 0xc8, 0xdf, 0xd7, 0xe2, 0x6c, 0xe1, 0x32, 0x8d, 0x18, 0x24, 0xc6, 0x5a, 0xaa, 0xa1, 0x46,
- 0x21, 0x58, 0x4b, 0x15, 0xad, 0xb0, 0x7e, 0x84, 0x37, 0x4c, 0x61, 0xb6, 0xd2, 0x5d, 0xda, 0x6f,
- 0x0f, 0x29, 0x05, 0x29, 0x35, 0x2a, 0xa1, 0xfd, 0x63, 0x01, 0x72, 0x18, 0x29, 0x5b, 0x6c, 0x99,
- 0xd0, 0x7e, 0x60, 0x14, 0xd7, 0x51, 0xf3, 0x73, 0xa8, 0x87, 0xb8, 0x32, 0x87, 0xba, 0x2f, 0x04,
- 0x17, 0x3a, 0x48, 0x63, 0x82, 0x16, 0x2c, 0xe4, 0x1a, 0xc9, 0x18, 0x17, 0x23, 0x3e, 0xc7, 0x5b,
- 0x59, 0xc4, 0x00, 0xe4, 0x80, 0x27, 0xd2, 0xd4, 0xcf, 0x87, 0x73, 0x6c, 0xd0, 0x5c, 0xec, 0x97,
- 0x74, 0x41, 0xcc, 0x5f, 0x7c, 0x0d, 0xb0, 0xdc, 0x58, 0x3a, 0xb8, 0xa8, 0xf7, 0xd2, 0x0e, 0xa5,
- 0xf9, 0x76, 0x2a, 0x78, 0xe5, 0x74, 0xc8, 0x95, 0x1d, 0xc9, 0x20, 0x15, 0x66, 0x83, 0x5a, 0xbc,
- 0xed, 0xa0, 0xd6, 0xbf, 0x22, 0xfc, 0xbf, 0x61, 0xc6, 0x47, 0x2c, 0x04, 0x91, 0x21, 0xb6, 0x89,
- 0xd7, 0x06, 0x56, 0x3b, 0x69, 0xd4, 0x44, 0xce, 0x92, 0xce, 0x2f, 0xda, 0xa5, 0xc2, 0xcd, 0xbb,
- 0x74, 0x7b, 0x8a, 0x1f, 0x53, 0x8a, 0x7b, 0x9c, 0x25, 0xba, 0x07, 0x19, 0x8a, 0xb3, 0x64, 0xe8,
- 0xe6, 0x64, 0xf9, 0x5b, 0x2f, 0xee, 0x9f, 0x2f, 0xcb, 0x5b, 0xfc, 0x9f, 0xc9, 0xdc, 0x06, 0xd5,
- 0x56, 0x5c, 0xa4, 0x87, 0x4e, 0x3a, 0xbb, 0xd3, 0xf5, 0x42, 0xb5, 0x42, 0x63, 0xfd, 0xc9, 0x23,
- 0x6f, 0xd1, 0x1d, 0xf6, 0x66, 0x61, 0x6d, 0x45, 0x14, 0x4c, 0x96, 0xac, 0xfe, 0x06, 0x3b, 0x13,
- 0xe4, 0xc3, 0xb1, 0xea, 0x59, 0xe0, 0x97, 0x73, 0xc0, 0x8d, 0xc5, 0xc0, 0xd3, 0xa8, 0x6b, 0xb8,
- 0xcd, 0x93, 0xb3, 0xcb, 0x2a, 0x3a, 0xbf, 0xac, 0xa2, 0x9f, 0x97, 0x55, 0xf4, 0xf9, 0xaa, 0x9a,
- 0x3b, 0xbf, 0xaa, 0xe6, 0xbe, 0x5f, 0x55, 0x73, 0xef, 0x0e, 0xba, 0x4c, 0xf5, 0x86, 0x1d, 0x8f,
- 0xf2, 0xd8, 0x6f, 0x4d, 0x50, 0x0f, 0x48, 0x47, 0xfa, 0xd3, 0x1c, 0x8f, 0x29, 0x17, 0x90, 0x15,
- 0xf5, 0x81, 0xf7, 0x63, 0x1e, 0x0e, 0x23, 0x90, 0x93, 0x17, 0x41, 0x8d, 0x07, 0x20, 0x3b, 0x25,
- 0xf3, 0x12, 0x3c, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x3f, 0x45, 0xd4, 0xa9, 0x06, 0x00,
- 0x00,
+ // 716 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xbd, 0x6e, 0x13, 0x4b,
+ 0x14, 0xf6, 0xda, 0x8e, 0x13, 0x4f, 0x6e, 0x73, 0xf7, 0xfa, 0x86, 0x55, 0x02, 0x8e, 0x31, 0x42,
+ 0x32, 0x05, 0xbb, 0x0a, 0x34, 0xfc, 0x34, 0xc4, 0x49, 0x90, 0x2c, 0xa5, 0xb0, 0xd6, 0x11, 0x42,
+ 0x34, 0xd1, 0x78, 0xf6, 0xc4, 0x1e, 0xbc, 0xbb, 0xe3, 0xcc, 0x8c, 0x8d, 0xfc, 0x06, 0x14, 0x14,
+ 0x74, 0xb4, 0x3c, 0x0b, 0x55, 0xca, 0x94, 0x88, 0x22, 0x42, 0x89, 0xc4, 0x73, 0xa0, 0x99, 0x9d,
+ 0xb5, 0x1d, 0x2b, 0x8b, 0x1c, 0xd1, 0xf9, 0xfc, 0x7d, 0xdf, 0x77, 0x8e, 0xcf, 0x99, 0x45, 0x0f,
+ 0x69, 0xfc, 0x1e, 0x88, 0xa4, 0x63, 0xf0, 0x18, 0xc7, 0x24, 0x04, 0x6f, 0xbc, 0xd3, 0x05, 0x89,
+ 0x77, 0x3c, 0x18, 0x43, 0x2c, 0x85, 0x3b, 0xe4, 0x4c, 0x32, 0xdb, 0x99, 0xa6, 0xb9, 0x49, 0x9a,
+ 0x6b, 0xd2, 0x36, 0x2b, 0x3d, 0xd6, 0x63, 0x3a, 0xc9, 0x53, 0xbf, 0x92, 0xfc, 0xcd, 0x2a, 0x61,
+ 0x22, 0x62, 0xc2, 0xeb, 0x62, 0x31, 0x43, 0x24, 0x8c, 0xc6, 0x26, 0x9e, 0x4d, 0x6b, 0xe0, 0x75,
+ 0x5a, 0xfd, 0x93, 0x85, 0x36, 0x3a, 0x20, 0xf7, 0xfa, 0x98, 0xc6, 0x21, 0x8d, 0x07, 0x6d, 0x4e,
+ 0x09, 0x1c, 0x28, 0x61, 0xf6, 0x1d, 0xb4, 0x7a, 0x02, 0x10, 0x1c, 0xd3, 0xc0, 0xb1, 0x6a, 0x56,
+ 0xa3, 0xec, 0x97, 0x94, 0xd9, 0x0a, 0xec, 0x97, 0xa8, 0x84, 0x63, 0xf1, 0x01, 0xb8, 0x93, 0x57,
+ 0xfe, 0xe6, 0x83, 0xb3, 0x8b, 0xed, 0xdc, 0x8f, 0x8b, 0xed, 0xad, 0x44, 0x92, 0x08, 0x06, 0x2e,
+ 0x65, 0x5e, 0x84, 0x65, 0xdf, 0x3d, 0x84, 0x1e, 0x26, 0x93, 0x7d, 0x20, 0xbe, 0x29, 0xb1, 0xef,
+ 0xa2, 0xb2, 0xa4, 0x11, 0x08, 0x89, 0xa3, 0xa1, 0x53, 0xa8, 0x59, 0x8d, 0xa2, 0x3f, 0x73, 0xd4,
+ 0xbf, 0x59, 0xe8, 0xdf, 0x0e, 0xc8, 0x26, 0x8e, 0x83, 0x39, 0x25, 0x0e, 0x5a, 0xe5, 0x10, 0xe2,
+ 0x09, 0x70, 0xa3, 0x24, 0x35, 0xed, 0x0d, 0x54, 0x12, 0x93, 0xa8, 0xcb, 0xc2, 0x44, 0x8a, 0x6f,
+ 0x2c, 0xfb, 0x39, 0x5a, 0x19, 0xaa, 0x7a, 0xcd, 0xb0, 0xa4, 0xc2, 0xa4, 0xc2, 0xbe, 0x8f, 0xfe,
+ 0xe1, 0x20, 0x58, 0x38, 0x86, 0x63, 0xa5, 0xcb, 0x29, 0x6a, 0x8d, 0xeb, 0xc6, 0x77, 0x44, 0x23,
+ 0xb0, 0xef, 0x21, 0xc4, 0xe1, 0x74, 0x04, 0x42, 0xaa, 0xe1, 0xac, 0x24, 0x4d, 0x18, 0x4f, 0x2b,
+ 0xa8, 0xff, 0xb2, 0x50, 0xc5, 0x34, 0xd1, 0x6a, 0xee, 0x2d, 0xd5, 0x87, 0x83, 0x56, 0x13, 0xe5,
+ 0xc2, 0xc9, 0xd7, 0x0a, 0x2a, 0x62, 0x4c, 0x35, 0x6c, 0xad, 0x4b, 0x38, 0x05, 0x15, 0x58, 0x72,
+ 0xd8, 0x49, 0xc9, 0xdf, 0xf7, 0x62, 0x6f, 0xa1, 0x32, 0x09, 0x29, 0xc4, 0x3a, 0x5a, 0xaa, 0x59,
+ 0x8d, 0x82, 0xbf, 0x96, 0x38, 0x5a, 0x41, 0xfd, 0x08, 0x6d, 0xe8, 0xc6, 0x4c, 0xa7, 0xbb, 0x64,
+ 0xd0, 0x19, 0x11, 0x02, 0x42, 0x28, 0x54, 0x4c, 0x06, 0xc7, 0x1c, 0xc4, 0x28, 0x94, 0xa6, 0xd9,
+ 0x32, 0x26, 0x03, 0x5f, 0x3b, 0xae, 0xa3, 0xe6, 0x17, 0x50, 0xdb, 0xa8, 0xb2, 0x80, 0x7a, 0xc0,
+ 0x39, 0xe3, 0xaa, 0x48, 0x61, 0x82, 0x32, 0x0c, 0xe4, 0x1a, 0x9e, 0x0b, 0x66, 0x23, 0xbe, 0x40,
+ 0x5b, 0xf3, 0x88, 0x3e, 0x88, 0x21, 0x8b, 0x85, 0xee, 0x9f, 0x8d, 0x16, 0xd4, 0x58, 0x0b, 0xb5,
+ 0x5f, 0x92, 0x03, 0xd1, 0xff, 0xe2, 0x6b, 0x80, 0xe5, 0xd6, 0xd2, 0x46, 0x45, 0x75, 0x97, 0x66,
+ 0x29, 0xf5, 0x6f, 0xbb, 0x82, 0x56, 0x4e, 0x47, 0x4c, 0x9a, 0x95, 0xf4, 0x13, 0x63, 0xb6, 0xa8,
+ 0xc5, 0xdb, 0x2e, 0x6a, 0xfd, 0xab, 0x85, 0xfe, 0xd7, 0xca, 0xd8, 0x98, 0x06, 0xc0, 0xe7, 0x84,
+ 0x6d, 0xa2, 0xb5, 0xa1, 0xf1, 0xa6, 0x83, 0x4a, 0xed, 0x79, 0xd1, 0xf9, 0xac, 0x5b, 0x2a, 0xdc,
+ 0x7c, 0x4b, 0xb7, 0x97, 0xf8, 0x31, 0x91, 0xb8, 0xc7, 0x68, 0xac, 0x66, 0x30, 0x27, 0x71, 0x46,
+ 0x66, 0xdd, 0x4c, 0x96, 0xbf, 0xf5, 0xe1, 0xfe, 0xf9, 0x65, 0x79, 0x8b, 0xfe, 0xd3, 0xcc, 0x1d,
+ 0x90, 0x1d, 0xc9, 0x78, 0xf2, 0xd0, 0x09, 0x7b, 0x77, 0x7a, 0x5e, 0x56, 0xad, 0xd0, 0x58, 0x7f,
+ 0xf2, 0xc8, 0xcd, 0x7a, 0x87, 0xdd, 0x59, 0x59, 0x47, 0x62, 0x09, 0xe9, 0x91, 0xd5, 0xdf, 0x20,
+ 0x3b, 0x45, 0x6e, 0x4f, 0x64, 0xdf, 0x00, 0xbf, 0x5a, 0x00, 0x6e, 0x64, 0x03, 0x4f, 0xab, 0xae,
+ 0xe3, 0x8e, 0x51, 0x3d, 0xc5, 0x9d, 0x3e, 0xcf, 0xfb, 0x58, 0xe2, 0x8e, 0xe4, 0x80, 0x23, 0x61,
+ 0x78, 0xda, 0x0b, 0x3c, 0xcf, 0xb2, 0x79, 0x32, 0x51, 0xae, 0xf1, 0x36, 0x4f, 0xce, 0x2e, 0xab,
+ 0xd6, 0xf9, 0x65, 0xd5, 0xfa, 0x79, 0x59, 0xb5, 0x3e, 0x5f, 0x55, 0x73, 0xe7, 0x57, 0xd5, 0xdc,
+ 0xf7, 0xab, 0x6a, 0xee, 0xdd, 0x61, 0x8f, 0xca, 0xfe, 0xa8, 0xeb, 0x12, 0x16, 0x79, 0xad, 0x94,
+ 0xe5, 0x10, 0x77, 0x85, 0x37, 0xe5, 0x7c, 0x4c, 0x18, 0x87, 0x79, 0x53, 0x71, 0x7a, 0x11, 0x0b,
+ 0x46, 0x21, 0x88, 0xf4, 0x4b, 0x24, 0x27, 0x43, 0x10, 0xdd, 0x92, 0xfe, 0x02, 0x3d, 0xfd, 0x1d,
+ 0x00, 0x00, 0xff, 0xff, 0x82, 0x00, 0xff, 0xbc, 0x21, 0x07, 0x00, 0x00,
}
func (m *SetChainlinkPriceEvent) Marshal() (dAtA []byte, err error) {
@@ -1198,6 +1244,43 @@ func (m *EventSetPythPrices) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *EventSetChainlinkDataStreamsPrices) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *EventSetChainlinkDataStreamsPrices) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *EventSetChainlinkDataStreamsPrices) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.Prices) > 0 {
+ for iNdEx := len(m.Prices) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.Prices[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func encodeVarintEvents(dAtA []byte, offset int, v uint64) int {
offset -= sovEvents(v)
base := offset
@@ -1424,6 +1507,21 @@ func (m *EventSetPythPrices) Size() (n int) {
return n
}
+func (m *EventSetChainlinkDataStreamsPrices) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Prices) > 0 {
+ for _, e := range m.Prices {
+ l = e.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ }
+ }
+ return n
+}
+
func sovEvents(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@@ -2892,6 +2990,90 @@ func (m *EventSetPythPrices) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *EventSetChainlinkDataStreamsPrices) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: EventSetChainlinkDataStreamsPrices: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: EventSetChainlinkDataStreamsPrices: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Prices", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.Prices = append(m.Prices, &ChainlinkDataStreamsPriceState{})
+ if err := m.Prices[len(m.Prices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func skipEvents(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/chain/oracle/types/genesis.pb.go b/chain/oracle/types/genesis.pb.go
index 537005eb..6b5d440c 100644
--- a/chain/oracle/types/genesis.pb.go
+++ b/chain/oracle/types/genesis.pb.go
@@ -26,23 +26,24 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// GenesisState defines the oracle module's genesis state.
type GenesisState struct {
// params defines all the parameters of related to oracle.
- Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"`
- BandRelayers []string `protobuf:"bytes,2,rep,name=band_relayers,json=bandRelayers,proto3" json:"band_relayers,omitempty"`
- BandPriceStates []*BandPriceState `protobuf:"bytes,3,rep,name=band_price_states,json=bandPriceStates,proto3" json:"band_price_states,omitempty"`
- PriceFeedPriceStates []*PriceFeedState `protobuf:"bytes,4,rep,name=price_feed_price_states,json=priceFeedPriceStates,proto3" json:"price_feed_price_states,omitempty"`
- CoinbasePriceStates []*CoinbasePriceState `protobuf:"bytes,5,rep,name=coinbase_price_states,json=coinbasePriceStates,proto3" json:"coinbase_price_states,omitempty"`
- BandIbcPriceStates []*BandPriceState `protobuf:"bytes,6,rep,name=band_ibc_price_states,json=bandIbcPriceStates,proto3" json:"band_ibc_price_states,omitempty"`
- BandIbcOracleRequests []*BandOracleRequest `protobuf:"bytes,7,rep,name=band_ibc_oracle_requests,json=bandIbcOracleRequests,proto3" json:"band_ibc_oracle_requests,omitempty"`
- BandIbcParams BandIBCParams `protobuf:"bytes,8,opt,name=band_ibc_params,json=bandIbcParams,proto3" json:"band_ibc_params"`
- BandIbcLatestClientId uint64 `protobuf:"varint,9,opt,name=band_ibc_latest_client_id,json=bandIbcLatestClientId,proto3" json:"band_ibc_latest_client_id,omitempty"`
- CalldataRecords []*CalldataRecord `protobuf:"bytes,10,rep,name=calldata_records,json=calldataRecords,proto3" json:"calldata_records,omitempty"`
- BandIbcLatestRequestId uint64 `protobuf:"varint,11,opt,name=band_ibc_latest_request_id,json=bandIbcLatestRequestId,proto3" json:"band_ibc_latest_request_id,omitempty"`
- ChainlinkPriceStates []*ChainlinkPriceState `protobuf:"bytes,12,rep,name=chainlink_price_states,json=chainlinkPriceStates,proto3" json:"chainlink_price_states,omitempty"`
- HistoricalPriceRecords []*PriceRecords `protobuf:"bytes,13,rep,name=historical_price_records,json=historicalPriceRecords,proto3" json:"historical_price_records,omitempty"`
- ProviderStates []*ProviderState `protobuf:"bytes,14,rep,name=provider_states,json=providerStates,proto3" json:"provider_states,omitempty"`
- PythPriceStates []*PythPriceState `protobuf:"bytes,15,rep,name=pyth_price_states,json=pythPriceStates,proto3" json:"pyth_price_states,omitempty"`
- StorkPriceStates []*StorkPriceState `protobuf:"bytes,16,rep,name=stork_price_states,json=storkPriceStates,proto3" json:"stork_price_states,omitempty"`
- StorkPublishers []string `protobuf:"bytes,17,rep,name=stork_publishers,json=storkPublishers,proto3" json:"stork_publishers,omitempty"`
+ Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"`
+ BandRelayers []string `protobuf:"bytes,2,rep,name=band_relayers,json=bandRelayers,proto3" json:"band_relayers,omitempty"` // Deprecated: Do not use.
+ BandPriceStates []*BandPriceState `protobuf:"bytes,3,rep,name=band_price_states,json=bandPriceStates,proto3" json:"band_price_states,omitempty"` // Deprecated: Do not use.
+ PriceFeedPriceStates []*PriceFeedState `protobuf:"bytes,4,rep,name=price_feed_price_states,json=priceFeedPriceStates,proto3" json:"price_feed_price_states,omitempty"`
+ CoinbasePriceStates []*CoinbasePriceState `protobuf:"bytes,5,rep,name=coinbase_price_states,json=coinbasePriceStates,proto3" json:"coinbase_price_states,omitempty"`
+ BandIbcPriceStates []*BandPriceState `protobuf:"bytes,6,rep,name=band_ibc_price_states,json=bandIbcPriceStates,proto3" json:"band_ibc_price_states,omitempty"` // Deprecated: Do not use.
+ BandIbcOracleRequests []*BandOracleRequest `protobuf:"bytes,7,rep,name=band_ibc_oracle_requests,json=bandIbcOracleRequests,proto3" json:"band_ibc_oracle_requests,omitempty"` // Deprecated: Do not use.
+ BandIbcParams BandIBCParams `protobuf:"bytes,8,opt,name=band_ibc_params,json=bandIbcParams,proto3" json:"band_ibc_params"` // Deprecated: Do not use.
+ BandIbcLatestClientId uint64 `protobuf:"varint,9,opt,name=band_ibc_latest_client_id,json=bandIbcLatestClientId,proto3" json:"band_ibc_latest_client_id,omitempty"` // Deprecated: Do not use.
+ CalldataRecords []*CalldataRecord `protobuf:"bytes,10,rep,name=calldata_records,json=calldataRecords,proto3" json:"calldata_records,omitempty"` // Deprecated: Do not use.
+ BandIbcLatestRequestId uint64 `protobuf:"varint,11,opt,name=band_ibc_latest_request_id,json=bandIbcLatestRequestId,proto3" json:"band_ibc_latest_request_id,omitempty"` // Deprecated: Do not use.
+ ChainlinkPriceStates []*ChainlinkPriceState `protobuf:"bytes,12,rep,name=chainlink_price_states,json=chainlinkPriceStates,proto3" json:"chainlink_price_states,omitempty"`
+ HistoricalPriceRecords []*PriceRecords `protobuf:"bytes,13,rep,name=historical_price_records,json=historicalPriceRecords,proto3" json:"historical_price_records,omitempty"`
+ ProviderStates []*ProviderState `protobuf:"bytes,14,rep,name=provider_states,json=providerStates,proto3" json:"provider_states,omitempty"`
+ PythPriceStates []*PythPriceState `protobuf:"bytes,15,rep,name=pyth_price_states,json=pythPriceStates,proto3" json:"pyth_price_states,omitempty"`
+ StorkPriceStates []*StorkPriceState `protobuf:"bytes,16,rep,name=stork_price_states,json=storkPriceStates,proto3" json:"stork_price_states,omitempty"`
+ StorkPublishers []string `protobuf:"bytes,17,rep,name=stork_publishers,json=storkPublishers,proto3" json:"stork_publishers,omitempty"`
+ ChainlinkDataStreamsPriceStates []*ChainlinkDataStreamsPriceState `protobuf:"bytes,18,rep,name=chainlink_data_streams_price_states,json=chainlinkDataStreamsPriceStates,proto3" json:"chainlink_data_streams_price_states,omitempty"`
}
func (m *GenesisState) Reset() { *m = GenesisState{} }
@@ -85,6 +86,7 @@ func (m *GenesisState) GetParams() Params {
return Params{}
}
+// Deprecated: Do not use.
func (m *GenesisState) GetBandRelayers() []string {
if m != nil {
return m.BandRelayers
@@ -92,6 +94,7 @@ func (m *GenesisState) GetBandRelayers() []string {
return nil
}
+// Deprecated: Do not use.
func (m *GenesisState) GetBandPriceStates() []*BandPriceState {
if m != nil {
return m.BandPriceStates
@@ -113,6 +116,7 @@ func (m *GenesisState) GetCoinbasePriceStates() []*CoinbasePriceState {
return nil
}
+// Deprecated: Do not use.
func (m *GenesisState) GetBandIbcPriceStates() []*BandPriceState {
if m != nil {
return m.BandIbcPriceStates
@@ -120,6 +124,7 @@ func (m *GenesisState) GetBandIbcPriceStates() []*BandPriceState {
return nil
}
+// Deprecated: Do not use.
func (m *GenesisState) GetBandIbcOracleRequests() []*BandOracleRequest {
if m != nil {
return m.BandIbcOracleRequests
@@ -127,6 +132,7 @@ func (m *GenesisState) GetBandIbcOracleRequests() []*BandOracleRequest {
return nil
}
+// Deprecated: Do not use.
func (m *GenesisState) GetBandIbcParams() BandIBCParams {
if m != nil {
return m.BandIbcParams
@@ -134,6 +140,7 @@ func (m *GenesisState) GetBandIbcParams() BandIBCParams {
return BandIBCParams{}
}
+// Deprecated: Do not use.
func (m *GenesisState) GetBandIbcLatestClientId() uint64 {
if m != nil {
return m.BandIbcLatestClientId
@@ -141,6 +148,7 @@ func (m *GenesisState) GetBandIbcLatestClientId() uint64 {
return 0
}
+// Deprecated: Do not use.
func (m *GenesisState) GetCalldataRecords() []*CalldataRecord {
if m != nil {
return m.CalldataRecords
@@ -148,6 +156,7 @@ func (m *GenesisState) GetCalldataRecords() []*CalldataRecord {
return nil
}
+// Deprecated: Do not use.
func (m *GenesisState) GetBandIbcLatestRequestId() uint64 {
if m != nil {
return m.BandIbcLatestRequestId
@@ -197,6 +206,13 @@ func (m *GenesisState) GetStorkPublishers() []string {
return nil
}
+func (m *GenesisState) GetChainlinkDataStreamsPriceStates() []*ChainlinkDataStreamsPriceState {
+ if m != nil {
+ return m.ChainlinkDataStreamsPriceStates
+ }
+ return nil
+}
+
type CalldataRecord struct {
ClientId uint64 `protobuf:"varint,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
Calldata []byte `protobuf:"bytes,2,opt,name=calldata,proto3" json:"calldata,omitempty"`
@@ -259,50 +275,53 @@ func init() {
}
var fileDescriptor_f7e14cf80151b4d2 = []byte{
- // 681 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x95, 0xcf, 0x4f, 0x13, 0x41,
- 0x14, 0xc7, 0xbb, 0x80, 0x08, 0x43, 0xa1, 0x65, 0x04, 0x5c, 0x6b, 0x52, 0x1b, 0x8c, 0x50, 0xa2,
- 0x74, 0x03, 0x5e, 0x8c, 0x07, 0x0f, 0x6d, 0xa2, 0x69, 0x42, 0x22, 0x59, 0x34, 0x26, 0x7a, 0x58,
- 0x67, 0x67, 0x87, 0x76, 0x74, 0xd9, 0x5d, 0x67, 0xa6, 0x24, 0xfd, 0x2f, 0xfc, 0xb3, 0x38, 0x72,
- 0xf4, 0x64, 0x0c, 0xf8, 0x87, 0x98, 0xf9, 0xb1, 0xcb, 0x0e, 0xa4, 0x6d, 0xbc, 0xed, 0x7b, 0xfb,
- 0xde, 0xe7, 0x7d, 0xdf, 0xdb, 0xb7, 0x33, 0x60, 0x87, 0x26, 0xdf, 0x08, 0x16, 0xf4, 0x9c, 0x78,
- 0x29, 0x43, 0x38, 0x26, 0xde, 0xf9, 0x41, 0x48, 0x04, 0x3a, 0xf0, 0x06, 0x24, 0x21, 0x9c, 0xf2,
- 0x4e, 0xc6, 0x52, 0x91, 0x42, 0xb7, 0x88, 0xeb, 0xe8, 0xb8, 0x8e, 0x89, 0x6b, 0x3c, 0x9b, 0x48,
- 0x30, 0x81, 0x0a, 0xd0, 0xd8, 0x18, 0xa4, 0x83, 0x54, 0x3d, 0x7a, 0xf2, 0x49, 0x7b, 0xb7, 0xff,
- 0x02, 0x50, 0x7d, 0xa7, 0x0b, 0x9d, 0x08, 0x24, 0x08, 0x7c, 0x03, 0x16, 0x33, 0xc4, 0xd0, 0x19,
- 0x77, 0x9d, 0x96, 0xd3, 0x5e, 0x39, 0x6c, 0x75, 0x26, 0x15, 0xee, 0x1c, 0xab, 0xb8, 0xee, 0xc2,
- 0xc5, 0xef, 0x27, 0x15, 0xdf, 0x64, 0xc1, 0xa7, 0x60, 0x35, 0x44, 0x49, 0x14, 0x30, 0x12, 0xa3,
- 0x31, 0x61, 0xdc, 0x9d, 0x6b, 0xcd, 0xb7, 0x97, 0xfd, 0xaa, 0x74, 0xfa, 0xc6, 0x07, 0x3f, 0x80,
- 0x75, 0x15, 0x94, 0x31, 0x8a, 0x49, 0xc0, 0x65, 0x61, 0xee, 0xce, 0xb7, 0xe6, 0xdb, 0x2b, 0x87,
- 0xed, 0xc9, 0xf5, 0xba, 0x28, 0x89, 0x8e, 0x65, 0x86, 0x52, 0xea, 0xd7, 0x42, 0xcb, 0xe6, 0x30,
- 0x00, 0x0f, 0x35, 0xf0, 0x94, 0x90, 0x5b, 0xec, 0x85, 0x59, 0x6c, 0xc5, 0x79, 0x4b, 0x48, 0xa4,
- 0xd9, 0x1b, 0x59, 0x6e, 0x97, 0x0b, 0x7c, 0x05, 0x9b, 0x38, 0xa5, 0x49, 0x88, 0x38, 0xb1, 0xf1,
- 0xf7, 0x14, 0xfe, 0xc5, 0x64, 0x7c, 0xcf, 0xa4, 0x95, 0xe4, 0x3f, 0xc0, 0x77, 0x7c, 0x1c, 0x7e,
- 0x01, 0x9b, 0x6a, 0x30, 0x34, 0xc4, 0x76, 0x85, 0xc5, 0xff, 0x1c, 0x0e, 0x94, 0x98, 0x7e, 0x88,
- 0xcb, 0xf0, 0x08, 0xb8, 0x05, 0x5c, 0x67, 0x07, 0x8c, 0xfc, 0x18, 0x11, 0x2e, 0xb8, 0x7b, 0x5f,
- 0xf1, 0x9f, 0x4f, 0xe7, 0xbf, 0x57, 0x2e, 0x5f, 0xe7, 0xf8, 0x9b, 0xa6, 0x84, 0xe5, 0xe5, 0xf0,
- 0x23, 0xa8, 0xdd, 0xb4, 0xa0, 0x37, 0x69, 0x49, 0x6d, 0xd2, 0xee, 0x74, 0x78, 0xbf, 0xdb, 0xb3,
- 0x16, 0x6a, 0x35, 0xef, 0x40, 0xef, 0xd5, 0x2b, 0xf0, 0xa8, 0xc0, 0xc6, 0xb2, 0x1d, 0x11, 0xe0,
- 0x98, 0x92, 0x44, 0x04, 0x34, 0x72, 0x97, 0x5b, 0x4e, 0x7b, 0xa1, 0x10, 0x74, 0xa4, 0x5e, 0xf7,
- 0xd4, 0xdb, 0x7e, 0x04, 0x4f, 0x40, 0x1d, 0xa3, 0x38, 0x8e, 0x90, 0x40, 0x01, 0x23, 0x38, 0x65,
- 0x11, 0x77, 0xc1, 0xac, 0x71, 0xf6, 0x4c, 0x86, 0xaf, 0x12, 0xfc, 0x1a, 0xb6, 0x6c, 0x0e, 0x5f,
- 0x83, 0xc6, 0x6d, 0x39, 0x66, 0x96, 0x52, 0xcf, 0x8a, 0xd2, 0xb3, 0x65, 0xe9, 0x31, 0x03, 0xea,
- 0x47, 0x10, 0x83, 0x2d, 0x3c, 0x44, 0x34, 0x89, 0x69, 0xf2, 0xdd, 0xfe, 0xca, 0x55, 0x25, 0x6b,
- 0x7f, 0x8a, 0xac, 0x3c, 0xaf, 0xf4, 0xa9, 0x37, 0xf0, 0x5d, 0xa7, 0xdc, 0x55, 0x77, 0x48, 0xb9,
- 0x48, 0x19, 0xc5, 0x28, 0x36, 0x55, 0xf2, 0xee, 0x57, 0x55, 0x99, 0x9d, 0x19, 0x7f, 0x83, 0x69,
- 0xd5, 0xdf, 0xba, 0xe1, 0x94, 0xfd, 0xf0, 0x18, 0xd4, 0x32, 0x96, 0x9e, 0xd3, 0x88, 0xb0, 0x5c,
- 0xff, 0x9a, 0x02, 0xef, 0x4e, 0x03, 0xeb, 0x04, 0xad, 0x7c, 0x2d, 0x2b, 0x9b, 0xea, 0x58, 0xc8,
- 0xc6, 0x62, 0x68, 0xcf, 0xa4, 0x36, 0xf3, 0xd7, 0x1d, 0x8b, 0x61, 0xf9, 0x58, 0xc8, 0x2c, 0x9b,
- 0xc3, 0x4f, 0x00, 0x4a, 0xfd, 0xb7, 0x46, 0x5d, 0x57, 0xd8, 0xbd, 0xc9, 0xd8, 0x13, 0x99, 0x53,
- 0xe2, 0xd6, 0xb9, 0xed, 0xe0, 0x70, 0x0f, 0xd4, 0x0d, 0x78, 0x14, 0xc6, 0x94, 0x0f, 0xe5, 0x69,
- 0xb7, 0xae, 0x4e, 0xbb, 0x9a, 0x8e, 0x2d, 0xdc, 0xdb, 0x7d, 0xb0, 0x66, 0x6f, 0x14, 0x7c, 0x0c,
- 0x96, 0x6f, 0xf6, 0xd7, 0x51, 0xfb, 0xb2, 0x84, 0xf3, 0x95, 0x6d, 0x80, 0xa5, 0x7c, 0xe1, 0xdc,
- 0xb9, 0x96, 0xd3, 0xae, 0xfa, 0x85, 0xdd, 0x3d, 0xbd, 0xb8, 0x6a, 0x3a, 0x97, 0x57, 0x4d, 0xe7,
- 0xcf, 0x55, 0xd3, 0xf9, 0x79, 0xdd, 0xac, 0x5c, 0x5e, 0x37, 0x2b, 0xbf, 0xae, 0x9b, 0x95, 0xcf,
- 0x47, 0x03, 0x2a, 0x86, 0xa3, 0xb0, 0x83, 0xd3, 0x33, 0xaf, 0x9f, 0xb7, 0x75, 0x84, 0x42, 0xee,
- 0x15, 0x4d, 0xee, 0xe3, 0x94, 0x91, 0xb2, 0x29, 0x57, 0xc7, 0x3b, 0x4b, 0xa3, 0x51, 0x4c, 0x78,
- 0x7e, 0x7d, 0x88, 0x71, 0x46, 0x78, 0xb8, 0xa8, 0x2e, 0x88, 0x97, 0xff, 0x02, 0x00, 0x00, 0xff,
- 0xff, 0xe6, 0xf9, 0xcd, 0x82, 0xa1, 0x06, 0x00, 0x00,
+ // 734 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x4f, 0xdb, 0x4e,
+ 0x10, 0x8d, 0x21, 0xbf, 0xfc, 0x60, 0x09, 0x24, 0x6c, 0x81, 0xba, 0xa9, 0x14, 0x22, 0xaa, 0x42,
+ 0x50, 0x4b, 0x2c, 0xe8, 0xa5, 0x87, 0x8a, 0x43, 0x52, 0xb5, 0x8a, 0x84, 0x54, 0x64, 0x2a, 0x51,
+ 0xf5, 0xe2, 0xae, 0xd7, 0x4b, 0xbc, 0xad, 0x63, 0xbb, 0xbb, 0x1b, 0xa4, 0x7c, 0x81, 0x5e, 0x7a,
+ 0xe9, 0xc7, 0xe2, 0xc8, 0xb1, 0xa7, 0xaa, 0x82, 0x2f, 0x52, 0xed, 0xfa, 0x4f, 0xbc, 0xa0, 0x24,
+ 0x55, 0x6f, 0x9e, 0xf1, 0xcc, 0x7b, 0x6f, 0xc6, 0x6f, 0xbd, 0x60, 0x97, 0x86, 0x9f, 0x09, 0x16,
+ 0xf4, 0x92, 0x58, 0x11, 0x43, 0x38, 0x20, 0xd6, 0xe5, 0xa1, 0x4b, 0x04, 0x3a, 0xb4, 0x06, 0x24,
+ 0x24, 0x9c, 0xf2, 0x4e, 0xcc, 0x22, 0x11, 0x41, 0x33, 0xaf, 0xeb, 0x24, 0x75, 0x9d, 0xb4, 0xae,
+ 0xf1, 0x74, 0x2a, 0x42, 0x5a, 0xa8, 0x00, 0x1a, 0x1b, 0x83, 0x68, 0x10, 0xa9, 0x47, 0x4b, 0x3e,
+ 0x25, 0xd9, 0x9d, 0xef, 0x55, 0x50, 0x7d, 0x9b, 0x10, 0x9d, 0x09, 0x24, 0x08, 0x3c, 0x06, 0x95,
+ 0x18, 0x31, 0x34, 0xe4, 0xa6, 0xd1, 0x32, 0xda, 0x2b, 0x47, 0xad, 0xce, 0x34, 0xe2, 0xce, 0xa9,
+ 0xaa, 0xeb, 0x96, 0xaf, 0x7e, 0x6d, 0x97, 0xec, 0xb4, 0x0b, 0xee, 0x81, 0x55, 0x17, 0x85, 0x9e,
+ 0xc3, 0x48, 0x80, 0xc6, 0x84, 0x71, 0x73, 0xa1, 0xb5, 0xd8, 0x5e, 0xee, 0x2e, 0x98, 0x86, 0x5d,
+ 0x95, 0x2f, 0xec, 0x34, 0x0f, 0x3f, 0x80, 0x75, 0x55, 0x18, 0x33, 0x8a, 0x89, 0xc3, 0x25, 0x39,
+ 0x37, 0x17, 0x5b, 0x8b, 0xed, 0x95, 0xa3, 0xf6, 0x74, 0xce, 0x2e, 0x0a, 0xbd, 0x53, 0xd9, 0xa1,
+ 0xd4, 0x2a, 0xd8, 0x9a, 0xab, 0xe5, 0x38, 0x74, 0xc0, 0xc3, 0x04, 0xf4, 0x82, 0x90, 0x3b, 0xf8,
+ 0xe5, 0x79, 0xf8, 0x0a, 0xe7, 0x0d, 0x21, 0x9e, 0xc2, 0xb2, 0x37, 0xe2, 0x2c, 0x2e, 0x12, 0x7c,
+ 0x02, 0x9b, 0x38, 0xa2, 0xa1, 0x8b, 0x38, 0xd1, 0xe1, 0xff, 0x53, 0xf0, 0xcf, 0xa7, 0xc3, 0xf7,
+ 0xd2, 0xb6, 0x09, 0x9a, 0xfd, 0x00, 0xdf, 0xcb, 0xc9, 0x11, 0x36, 0xd5, 0x72, 0xa8, 0x8b, 0x75,
+ 0x86, 0xca, 0x3f, 0x2c, 0x08, 0x4a, 0xa8, 0xbe, 0x8b, 0x8b, 0x04, 0x3e, 0x30, 0x73, 0x82, 0x04,
+ 0xc1, 0x61, 0xe4, 0xeb, 0x88, 0x70, 0xc1, 0xcd, 0xff, 0x15, 0xc7, 0xb3, 0xd9, 0x1c, 0xef, 0x54,
+ 0xca, 0x4e, 0x7a, 0x14, 0xcd, 0x66, 0x4a, 0xa3, 0xbd, 0xe1, 0xf0, 0x1c, 0xd4, 0x26, 0xa3, 0x24,
+ 0xce, 0x5a, 0x52, 0xce, 0xda, 0x9b, 0x4d, 0xd0, 0xef, 0xf6, 0x52, 0x83, 0x55, 0xa4, 0xc1, 0x4c,
+ 0xc3, 0x5e, 0xcd, 0xe6, 0x48, 0x9c, 0xf6, 0x0a, 0x3c, 0xca, 0x81, 0x03, 0x39, 0x94, 0x70, 0x70,
+ 0x40, 0x49, 0x28, 0x1c, 0xea, 0x99, 0xcb, 0x2d, 0xa3, 0x5d, 0xd6, 0x64, 0x9d, 0xa8, 0x92, 0x9e,
+ 0xaa, 0xe8, 0x7b, 0xf0, 0x1c, 0xd4, 0x31, 0x0a, 0x02, 0x0f, 0x09, 0xe4, 0x30, 0x82, 0x23, 0xe6,
+ 0x71, 0x13, 0xcc, 0x5b, 0x6e, 0x2f, 0xed, 0xb0, 0x55, 0x43, 0xe2, 0x3e, 0xac, 0xe5, 0x38, 0x3c,
+ 0x06, 0x8d, 0xbb, 0xb2, 0xd2, 0xcd, 0x4a, 0x5d, 0x2b, 0xb9, 0xae, 0x2d, 0x4d, 0x57, 0xba, 0xae,
+ 0xbe, 0x07, 0x31, 0xd8, 0xc2, 0x3e, 0xa2, 0x61, 0x40, 0xc3, 0x2f, 0xfa, 0xb7, 0xaf, 0x2a, 0x79,
+ 0x07, 0x33, 0xe4, 0x65, 0x7d, 0x05, 0x7b, 0x6d, 0xe0, 0xfb, 0x49, 0xe9, 0x60, 0xd3, 0xa7, 0x5c,
+ 0x44, 0x8c, 0x62, 0x14, 0xa4, 0x2c, 0xd9, 0x16, 0x56, 0x15, 0xcd, 0xee, 0x9c, 0x33, 0x92, 0x8e,
+ 0x6b, 0x6f, 0x4d, 0x70, 0x8a, 0x79, 0x78, 0x0a, 0x6a, 0x31, 0x8b, 0x2e, 0xa9, 0x47, 0x58, 0xa6,
+ 0x7f, 0x4d, 0x01, 0xef, 0xcd, 0x02, 0x4e, 0x1a, 0x12, 0xe5, 0x6b, 0x71, 0x31, 0xe4, 0xf0, 0x3d,
+ 0x58, 0x8f, 0xc7, 0xc2, 0xd7, 0x77, 0x52, 0x9b, 0x7b, 0xa0, 0xc7, 0xc2, 0x2f, 0xac, 0xa3, 0x16,
+ 0x6b, 0xb1, 0xb4, 0x27, 0x94, 0xfa, 0xef, 0xac, 0xba, 0xae, 0x60, 0xf7, 0xa7, 0xc3, 0x9e, 0xc9,
+ 0x9e, 0x02, 0x6e, 0x9d, 0xeb, 0x09, 0x0e, 0xf7, 0x41, 0x3d, 0x05, 0x1e, 0xb9, 0x01, 0xe5, 0xbe,
+ 0xfc, 0x17, 0xae, 0xcb, 0x7f, 0xa1, 0x5d, 0x4b, 0x6a, 0xf3, 0x34, 0xfc, 0x66, 0x80, 0x27, 0x93,
+ 0x6f, 0xae, 0x2c, 0xc9, 0x05, 0x23, 0x68, 0xc8, 0x75, 0x55, 0x50, 0xa9, 0x7a, 0xf9, 0x17, 0x06,
+ 0x78, 0x8d, 0x04, 0x3a, 0x4b, 0x20, 0x0a, 0x22, 0xb7, 0xf1, 0xcc, 0xf7, 0x7c, 0xa7, 0x0f, 0xd6,
+ 0x74, 0x8b, 0xc3, 0xc7, 0x60, 0x79, 0x72, 0xa8, 0xe4, 0x8d, 0x50, 0xb6, 0x97, 0x70, 0x76, 0x86,
+ 0x1a, 0x60, 0x29, 0x73, 0xbf, 0xb9, 0xd0, 0x32, 0xda, 0x55, 0x3b, 0x8f, 0xbb, 0x17, 0x57, 0x37,
+ 0x4d, 0xe3, 0xfa, 0xa6, 0x69, 0xfc, 0xbe, 0x69, 0x1a, 0x3f, 0x6e, 0x9b, 0xa5, 0xeb, 0xdb, 0x66,
+ 0xe9, 0xe7, 0x6d, 0xb3, 0xf4, 0xf1, 0x64, 0x40, 0x85, 0x3f, 0x72, 0x3b, 0x38, 0x1a, 0x5a, 0xfd,
+ 0x6c, 0x92, 0x13, 0xe4, 0x72, 0x2b, 0x9f, 0xeb, 0x00, 0x47, 0x8c, 0x14, 0x43, 0xa9, 0xdb, 0x1a,
+ 0x46, 0xde, 0x28, 0x20, 0x3c, 0xbb, 0xe5, 0xc4, 0x38, 0x26, 0xdc, 0xad, 0xa8, 0x7b, 0xec, 0xc5,
+ 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0xa9, 0x50, 0x8f, 0x48, 0x07, 0x00, 0x00,
}
func (m *GenesisState) Marshal() (dAtA []byte, err error) {
@@ -325,6 +344,22 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if len(m.ChainlinkDataStreamsPriceStates) > 0 {
+ for iNdEx := len(m.ChainlinkDataStreamsPriceStates) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.ChainlinkDataStreamsPriceStates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintGenesis(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x92
+ }
+ }
if len(m.StorkPublishers) > 0 {
for iNdEx := len(m.StorkPublishers) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.StorkPublishers[iNdEx])
@@ -674,6 +709,12 @@ func (m *GenesisState) Size() (n int) {
n += 2 + l + sovGenesis(uint64(l))
}
}
+ if len(m.ChainlinkDataStreamsPriceStates) > 0 {
+ for _, e := range m.ChainlinkDataStreamsPriceStates {
+ l = e.Size()
+ n += 2 + l + sovGenesis(uint64(l))
+ }
+ }
return n
}
@@ -1270,6 +1311,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error {
}
m.StorkPublishers = append(m.StorkPublishers, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
+ case 18:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChainlinkDataStreamsPriceStates", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowGenesis
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthGenesis
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthGenesis
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChainlinkDataStreamsPriceStates = append(m.ChainlinkDataStreamsPriceStates, &ChainlinkDataStreamsPriceState{})
+ if err := m.ChainlinkDataStreamsPriceStates[len(m.ChainlinkDataStreamsPriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenesis(dAtA[iNdEx:])
diff --git a/chain/oracle/types/msgs.go b/chain/oracle/types/msgs.go
index ba4f9b5b..05d91510 100644
--- a/chain/oracle/types/msgs.go
+++ b/chain/oracle/types/msgs.go
@@ -24,17 +24,17 @@ const (
TypeMsgRelayProviderPrices = "relayProviderPrices"
TypeMsgRelayPythPrices = "relayPythPrices"
TypeMsgRelayStorkPrices = "relayStorkPrices"
+ TypeMsgRelayChainlinkPrices = "relayChainlinkPrices"
TypeMsgUpdateParams = "updateParams"
)
var (
_ sdk.Msg = &MsgRelayPriceFeedPrice{}
- _ sdk.Msg = &MsgRelayBandRates{}
_ sdk.Msg = &MsgRelayCoinbaseMessages{}
- _ sdk.Msg = &MsgRequestBandIBCRates{}
_ sdk.Msg = &MsgRelayProviderPrices{}
_ sdk.Msg = &MsgRelayPythPrices{}
_ sdk.Msg = &MsgRelayStorkPrices{}
+ _ sdk.Msg = &MsgRelayChainlinkPrices{}
_ sdk.Msg = &MsgUpdateParams{}
)
@@ -109,46 +109,6 @@ func (msg MsgRelayPriceFeedPrice) GetSigners() []sdk.AccAddress {
return []sdk.AccAddress{sender}
}
-// Route implements the sdk.Msg interface. It should return the name of the module
-func (msg MsgRelayBandRates) Route() string { return RouterKey }
-
-// Type implements the sdk.Msg interface. It should return the action.
-func (msg MsgRelayBandRates) Type() string { return TypeMsgRelayBandRates }
-
-// ValidateBasic implements the sdk.Msg interface for MsgRelay.
-func (msg MsgRelayBandRates) ValidateBasic() error {
- if msg.Relayer == "" {
- return ErrEmptyRelayerAddr
- }
-
- // check that the sizes of symbols,rates,resolveTimes,requestIDs are equal
- symbolsCount := len(msg.Symbols)
- if len(msg.Rates) != symbolsCount {
- return ErrBadRatesCount
- }
- if len(msg.ResolveTimes) != symbolsCount {
- return ErrBadResolveTimesCount
- }
- if len(msg.RequestIDs) != symbolsCount {
- return ErrBadRequestIDsCount
- }
- return nil
-}
-
-// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing
-func (msg *MsgRelayBandRates) GetSignBytes() []byte {
- return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg))
-}
-
-// GetSigners implements the sdk.Msg interface. It defines whose signature is required
-func (msg MsgRelayBandRates) GetSigners() []sdk.AccAddress {
- sender, err := sdk.AccAddressFromBech32(msg.Relayer)
- if err != nil {
- panic(err)
- }
- return []sdk.AccAddress{sender}
-}
-
// Route implements the sdk.Msg interface. It should return the name of the module
func (msg MsgRelayCoinbaseMessages) Route() string { return RouterKey }
@@ -183,54 +143,6 @@ func (msg MsgRelayCoinbaseMessages) GetSigners() []sdk.AccAddress {
return []sdk.AccAddress{sender}
}
-// NewMsgRequestBandIBCRates creates a new MsgRequestBandIBCRates instance.
-func NewMsgRequestBandIBCRates(
- sender sdk.AccAddress,
- requestID uint64,
-) *MsgRequestBandIBCRates {
- return &MsgRequestBandIBCRates{
- Sender: sender.String(),
- RequestId: requestID,
- }
-}
-
-// Route implements the sdk.Msg interface for MsgRequestData.
-func (msg MsgRequestBandIBCRates) Route() string { return RouterKey }
-
-// Type implements the sdk.Msg interface for MsgRequestData.
-func (msg MsgRequestBandIBCRates) Type() string { return TypeMsgRequestBandIBCRates }
-
-// ValidateBasic implements the sdk.Msg interface for MsgRequestData.
-func (msg MsgRequestBandIBCRates) ValidateBasic() error {
- sender, err := sdk.AccAddressFromBech32(msg.Sender)
- if err != nil {
- return err
- }
- if sender.Empty() {
- return errors.Wrapf(ErrInvalidBandIBCRequest, "MsgRequestBandIBCRates: Sender address must not be empty.")
- }
-
- if msg.RequestId == 0 {
- return errors.Wrapf(ErrInvalidBandIBCRequest, "MsgRequestBandIBCRates: requestID should be greater than zero")
- }
- return nil
-}
-
-// GetSigners implements the sdk.Msg interface for MsgRequestData.
-func (msg MsgRequestBandIBCRates) GetSigners() []sdk.AccAddress {
- sender, err := sdk.AccAddressFromBech32(msg.Sender)
- if err != nil {
- panic(err)
- }
- return []sdk.AccAddress{sender}
-}
-
-// GetSignBytes implements the sdk.Msg interface for MsgRequestData.
-func (msg MsgRequestBandIBCRates) GetSignBytes() []byte {
- bz := ModuleCdc.MustMarshalJSON(&msg)
- return sdk.MustSortJSON(bz)
-}
-
// Route implements the sdk.Msg interface. It should return the name of the module
func (msg MsgRelayProviderPrices) Route() string { return RouterKey }
@@ -341,7 +253,7 @@ func (msg MsgRelayStorkPrices) ValidateBasic() error {
oldestTimestamp := ^uint64(0) // max uint64
for i := range assetPair.SignedPrices {
p := assetPair.SignedPrices[i]
- // convert timestamp to nanoseconds to validate conditions
+ // convert timestamp to nanoseconds to validate conditions
timestamp := ConvertTimestampToNanoSecond(p.Timestamp)
if timestamp > newestTimestamp {
newestTimestamp = timestamp
@@ -400,3 +312,32 @@ func ConvertTimestampToNanoSecond(timestamp uint64) (nanoSeconds uint64) {
return timestamp * 1_000_000_000
}
}
+
+// Route implements the sdk.Msg interface. It should return the name of the module
+func (MsgRelayChainlinkPrices) Route() string { return RouterKey }
+
+// Type implements the sdk.Msg interface. It should return the action.
+func (MsgRelayChainlinkPrices) Type() string { return TypeMsgRelayChainlinkPrices }
+
+// ValidateBasic implements the sdk.Msg interface for MsgRelayChainlinkPrices.
+func (msg MsgRelayChainlinkPrices) ValidateBasic() error {
+ if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing
+func (msg *MsgRelayChainlinkPrices) GetSignBytes() []byte {
+ return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg))
+}
+
+// GetSigners implements the sdk.Msg interface. It defines whose signature is required
+func (msg MsgRelayChainlinkPrices) GetSigners() []sdk.AccAddress {
+ sender, err := sdk.AccAddressFromBech32(msg.Sender)
+ if err != nil {
+ panic(err)
+ }
+ return []sdk.AccAddress{sender}
+}
diff --git a/chain/oracle/types/oracle.go b/chain/oracle/types/oracle.go
index a8c3335a..332c8c8e 100644
--- a/chain/oracle/types/oracle.go
+++ b/chain/oracle/types/oracle.go
@@ -23,10 +23,6 @@ func GetOracleType(oracleTypeStr string) (OracleType, error) {
var oracleType OracleType
switch oracleTypeStr {
- case "band":
- oracleType = OracleType_Band
- case "bandibc":
- oracleType = OracleType_BandIBC
case "pricefeed":
oracleType = OracleType_PriceFeed
case "coinbase":
@@ -37,8 +33,10 @@ func GetOracleType(oracleTypeStr string) (OracleType, error) {
oracleType = OracleType_Pyth
case "stork":
oracleType = OracleType_Stork
+ case "chainlinkdatastreams":
+ oracleType = OracleType_ChainlinkDataStreams
default:
- return OracleType_Band, errors.Wrapf(ErrUnsupportedOracleType, "%s", oracleTypeStr)
+ return OracleType_Unspecified, errors.Wrapf(ErrUnsupportedOracleType, "%s", oracleTypeStr)
}
return oracleType, nil
}
diff --git a/chain/oracle/types/oracle.pb.go b/chain/oracle/types/oracle.pb.go
index fe23bfa5..c121438f 100644
--- a/chain/oracle/types/oracle.pb.go
+++ b/chain/oracle/types/oracle.pb.go
@@ -32,19 +32,20 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
type OracleType int32
const (
- OracleType_Unspecified OracleType = 0
- OracleType_Band OracleType = 1
- OracleType_PriceFeed OracleType = 2
- OracleType_Coinbase OracleType = 3
- OracleType_Chainlink OracleType = 4
- OracleType_Razor OracleType = 5
- OracleType_Dia OracleType = 6
- OracleType_API3 OracleType = 7
- OracleType_Uma OracleType = 8
- OracleType_Pyth OracleType = 9
- OracleType_BandIBC OracleType = 10
- OracleType_Provider OracleType = 11
- OracleType_Stork OracleType = 12
+ OracleType_Unspecified OracleType = 0
+ OracleType_Band OracleType = 1 // Deprecated: Do not use.
+ OracleType_PriceFeed OracleType = 2
+ OracleType_Coinbase OracleType = 3
+ OracleType_Chainlink OracleType = 4
+ OracleType_Razor OracleType = 5
+ OracleType_Dia OracleType = 6
+ OracleType_API3 OracleType = 7
+ OracleType_Uma OracleType = 8
+ OracleType_Pyth OracleType = 9
+ OracleType_BandIBC OracleType = 10 // Deprecated: Do not use.
+ OracleType_Provider OracleType = 11
+ OracleType_Stork OracleType = 12
+ OracleType_ChainlinkDataStreams OracleType = 13
)
var OracleType_name = map[int32]string{
@@ -61,22 +62,24 @@ var OracleType_name = map[int32]string{
10: "BandIBC",
11: "Provider",
12: "Stork",
+ 13: "ChainlinkDataStreams",
}
var OracleType_value = map[string]int32{
- "Unspecified": 0,
- "Band": 1,
- "PriceFeed": 2,
- "Coinbase": 3,
- "Chainlink": 4,
- "Razor": 5,
- "Dia": 6,
- "API3": 7,
- "Uma": 8,
- "Pyth": 9,
- "BandIBC": 10,
- "Provider": 11,
- "Stork": 12,
+ "Unspecified": 0,
+ "Band": 1,
+ "PriceFeed": 2,
+ "Coinbase": 3,
+ "Chainlink": 4,
+ "Razor": 5,
+ "Dia": 6,
+ "API3": 7,
+ "Uma": 8,
+ "Pyth": 9,
+ "BandIBC": 10,
+ "Provider": 11,
+ "Stork": 12,
+ "ChainlinkDataStreams": 13,
}
func (x OracleType) String() string {
@@ -88,7 +91,10 @@ func (OracleType) EnumDescriptor() ([]byte, []int) {
}
type Params struct {
- PythContract string `protobuf:"bytes,1,opt,name=pyth_contract,json=pythContract,proto3" json:"pyth_contract,omitempty"`
+ PythContract string `protobuf:"bytes,1,opt,name=pyth_contract,json=pythContract,proto3" json:"pyth_contract,omitempty"`
+ ChainlinkVerifierProxyContract string `protobuf:"bytes,2,opt,name=chainlink_verifier_proxy_contract,json=chainlinkVerifierProxyContract,proto3" json:"chainlink_verifier_proxy_contract,omitempty"`
+ AcceptUnverifiedChainlinkDataStreamsReports bool `protobuf:"varint,3,opt,name=accept_unverified_chainlink_data_streams_reports,json=acceptUnverifiedChainlinkDataStreamsReports,proto3" json:"accept_unverified_chainlink_data_streams_reports,omitempty"`
+ ChainlinkDataStreamsVerificationGasLimit uint64 `protobuf:"varint,4,opt,name=chainlink_data_streams_verification_gas_limit,json=chainlinkDataStreamsVerificationGasLimit,proto3" json:"chainlink_data_streams_verification_gas_limit,omitempty"`
}
func (m *Params) Reset() { *m = Params{} }
@@ -131,6 +137,27 @@ func (m *Params) GetPythContract() string {
return ""
}
+func (m *Params) GetChainlinkVerifierProxyContract() string {
+ if m != nil {
+ return m.ChainlinkVerifierProxyContract
+ }
+ return ""
+}
+
+func (m *Params) GetAcceptUnverifiedChainlinkDataStreamsReports() bool {
+ if m != nil {
+ return m.AcceptUnverifiedChainlinkDataStreamsReports
+ }
+ return false
+}
+
+func (m *Params) GetChainlinkDataStreamsVerificationGasLimit() uint64 {
+ if m != nil {
+ return m.ChainlinkDataStreamsVerificationGasLimit
+ }
+ return 0
+}
+
type OracleInfo struct {
Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
OracleType OracleType `protobuf:"varint,2,opt,name=oracle_type,json=oracleType,proto3,enum=injective.oracle.v1beta1.OracleType" json:"oracle_type,omitempty"`
@@ -244,6 +271,9 @@ func (m *ChainlinkPriceState) GetPriceState() PriceState {
return PriceState{}
}
+// DEPRECATED! Oracle price from Band is no longer supported
+//
+// Deprecated: Do not use.
type BandPriceState struct {
Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
Rate cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=rate,proto3,customtype=cosmossdk.io/math.Int" json:"rate"`
@@ -881,6 +911,78 @@ func (m *PythPriceState) GetPriceState() PriceState {
return PriceState{}
}
+type ChainlinkDataStreamsPriceState struct {
+ FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
+ ReportPrice cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=report_price,json=reportPrice,proto3,customtype=cosmossdk.io/math.Int" json:"report_price"`
+ ValidFromTimestamp uint64 `protobuf:"varint,3,opt,name=valid_from_timestamp,json=validFromTimestamp,proto3" json:"valid_from_timestamp,omitempty"`
+ ObservationsTimestamp uint64 `protobuf:"varint,4,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"`
+ PriceState PriceState `protobuf:"bytes,5,opt,name=price_state,json=priceState,proto3" json:"price_state"`
+}
+
+func (m *ChainlinkDataStreamsPriceState) Reset() { *m = ChainlinkDataStreamsPriceState{} }
+func (m *ChainlinkDataStreamsPriceState) String() string { return proto.CompactTextString(m) }
+func (*ChainlinkDataStreamsPriceState) ProtoMessage() {}
+func (*ChainlinkDataStreamsPriceState) Descriptor() ([]byte, []int) {
+ return fileDescriptor_1c8fbf1e7a765423, []int{14}
+}
+func (m *ChainlinkDataStreamsPriceState) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ChainlinkDataStreamsPriceState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ChainlinkDataStreamsPriceState.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ChainlinkDataStreamsPriceState) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChainlinkDataStreamsPriceState.Merge(m, src)
+}
+func (m *ChainlinkDataStreamsPriceState) XXX_Size() int {
+ return m.Size()
+}
+func (m *ChainlinkDataStreamsPriceState) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChainlinkDataStreamsPriceState.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChainlinkDataStreamsPriceState proto.InternalMessageInfo
+
+func (m *ChainlinkDataStreamsPriceState) GetFeedId() string {
+ if m != nil {
+ return m.FeedId
+ }
+ return ""
+}
+
+func (m *ChainlinkDataStreamsPriceState) GetValidFromTimestamp() uint64 {
+ if m != nil {
+ return m.ValidFromTimestamp
+ }
+ return 0
+}
+
+func (m *ChainlinkDataStreamsPriceState) GetObservationsTimestamp() uint64 {
+ if m != nil {
+ return m.ObservationsTimestamp
+ }
+ return 0
+}
+
+func (m *ChainlinkDataStreamsPriceState) GetPriceState() PriceState {
+ if m != nil {
+ return m.PriceState
+ }
+ return PriceState{}
+}
+
+// DEPRECATED! Oracle price from Band is no longer supported
+//
+// Deprecated: Do not use.
type BandOracleRequest struct {
// Unique Identifier for band ibc oracle request
RequestId uint64 `protobuf:"varint,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
@@ -912,7 +1014,7 @@ func (m *BandOracleRequest) Reset() { *m = BandOracleRequest{} }
func (m *BandOracleRequest) String() string { return proto.CompactTextString(m) }
func (*BandOracleRequest) ProtoMessage() {}
func (*BandOracleRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{14}
+ return fileDescriptor_1c8fbf1e7a765423, []int{15}
}
func (m *BandOracleRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1004,6 +1106,9 @@ func (m *BandOracleRequest) GetMinSourceCount() uint64 {
return 0
}
+// DEPRECATED! Oracle price from Band is no longer supported
+//
+// Deprecated: Do not use.
type BandIBCParams struct {
// true if Band IBC should be enabled
BandIbcEnabled bool `protobuf:"varint,1,opt,name=band_ibc_enabled,json=bandIbcEnabled,proto3" json:"band_ibc_enabled,omitempty"`
@@ -1023,7 +1128,7 @@ func (m *BandIBCParams) Reset() { *m = BandIBCParams{} }
func (m *BandIBCParams) String() string { return proto.CompactTextString(m) }
func (*BandIBCParams) ProtoMessage() {}
func (*BandIBCParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{15}
+ return fileDescriptor_1c8fbf1e7a765423, []int{16}
}
func (m *BandIBCParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1104,7 +1209,7 @@ func (m *SymbolPriceTimestamp) Reset() { *m = SymbolPriceTimestamp{} }
func (m *SymbolPriceTimestamp) String() string { return proto.CompactTextString(m) }
func (*SymbolPriceTimestamp) ProtoMessage() {}
func (*SymbolPriceTimestamp) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{16}
+ return fileDescriptor_1c8fbf1e7a765423, []int{17}
}
func (m *SymbolPriceTimestamp) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1162,7 +1267,7 @@ func (m *LastPriceTimestamps) Reset() { *m = LastPriceTimestamps{} }
func (m *LastPriceTimestamps) String() string { return proto.CompactTextString(m) }
func (*LastPriceTimestamps) ProtoMessage() {}
func (*LastPriceTimestamps) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{17}
+ return fileDescriptor_1c8fbf1e7a765423, []int{18}
}
func (m *LastPriceTimestamps) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1208,7 +1313,7 @@ func (m *PriceRecords) Reset() { *m = PriceRecords{} }
func (m *PriceRecords) String() string { return proto.CompactTextString(m) }
func (*PriceRecords) ProtoMessage() {}
func (*PriceRecords) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{18}
+ return fileDescriptor_1c8fbf1e7a765423, []int{19}
}
func (m *PriceRecords) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1267,7 +1372,7 @@ func (m *PriceRecord) Reset() { *m = PriceRecord{} }
func (m *PriceRecord) String() string { return proto.CompactTextString(m) }
func (*PriceRecord) ProtoMessage() {}
func (*PriceRecord) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{19}
+ return fileDescriptor_1c8fbf1e7a765423, []int{20}
}
func (m *PriceRecord) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1335,7 +1440,7 @@ func (m *MetadataStatistics) Reset() { *m = MetadataStatistics{} }
func (m *MetadataStatistics) String() string { return proto.CompactTextString(m) }
func (*MetadataStatistics) ProtoMessage() {}
func (*MetadataStatistics) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{20}
+ return fileDescriptor_1c8fbf1e7a765423, []int{21}
}
func (m *MetadataStatistics) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1408,7 +1513,7 @@ func (m *PriceAttestation) Reset() { *m = PriceAttestation{} }
func (m *PriceAttestation) String() string { return proto.CompactTextString(m) }
func (*PriceAttestation) ProtoMessage() {}
func (*PriceAttestation) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{21}
+ return fileDescriptor_1c8fbf1e7a765423, []int{22}
}
func (m *PriceAttestation) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1502,7 +1607,7 @@ func (m *AssetPair) Reset() { *m = AssetPair{} }
func (m *AssetPair) String() string { return proto.CompactTextString(m) }
func (*AssetPair) ProtoMessage() {}
func (*AssetPair) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{22}
+ return fileDescriptor_1c8fbf1e7a765423, []int{23}
}
func (m *AssetPair) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1556,7 +1661,7 @@ func (m *SignedPriceOfAssetPair) Reset() { *m = SignedPriceOfAssetPair{}
func (m *SignedPriceOfAssetPair) String() string { return proto.CompactTextString(m) }
func (*SignedPriceOfAssetPair) ProtoMessage() {}
func (*SignedPriceOfAssetPair) Descriptor() ([]byte, []int) {
- return fileDescriptor_1c8fbf1e7a765423, []int{23}
+ return fileDescriptor_1c8fbf1e7a765423, []int{24}
}
func (m *SignedPriceOfAssetPair) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1606,6 +1711,74 @@ func (m *SignedPriceOfAssetPair) GetSignature() []byte {
return nil
}
+type ChainlinkReport struct {
+ FeedId []byte `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"`
+ FullReport []byte `protobuf:"bytes,2,opt,name=full_report,json=fullReport,proto3" json:"full_report,omitempty"`
+ ValidFromTimestamp uint64 `protobuf:"varint,3,opt,name=valid_from_timestamp,json=validFromTimestamp,proto3" json:"valid_from_timestamp,omitempty"`
+ ObservationsTimestamp uint64 `protobuf:"varint,4,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"`
+}
+
+func (m *ChainlinkReport) Reset() { *m = ChainlinkReport{} }
+func (m *ChainlinkReport) String() string { return proto.CompactTextString(m) }
+func (*ChainlinkReport) ProtoMessage() {}
+func (*ChainlinkReport) Descriptor() ([]byte, []int) {
+ return fileDescriptor_1c8fbf1e7a765423, []int{25}
+}
+func (m *ChainlinkReport) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ChainlinkReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ChainlinkReport.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *ChainlinkReport) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ChainlinkReport.Merge(m, src)
+}
+func (m *ChainlinkReport) XXX_Size() int {
+ return m.Size()
+}
+func (m *ChainlinkReport) XXX_DiscardUnknown() {
+ xxx_messageInfo_ChainlinkReport.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ChainlinkReport proto.InternalMessageInfo
+
+func (m *ChainlinkReport) GetFeedId() []byte {
+ if m != nil {
+ return m.FeedId
+ }
+ return nil
+}
+
+func (m *ChainlinkReport) GetFullReport() []byte {
+ if m != nil {
+ return m.FullReport
+ }
+ return nil
+}
+
+func (m *ChainlinkReport) GetValidFromTimestamp() uint64 {
+ if m != nil {
+ return m.ValidFromTimestamp
+ }
+ return 0
+}
+
+func (m *ChainlinkReport) GetObservationsTimestamp() uint64 {
+ if m != nil {
+ return m.ObservationsTimestamp
+ }
+ return 0
+}
+
func init() {
proto.RegisterEnum("injective.oracle.v1beta1.OracleType", OracleType_name, OracleType_value)
golang_proto.RegisterEnum("injective.oracle.v1beta1.OracleType", OracleType_name, OracleType_value)
@@ -1637,6 +1810,8 @@ func init() {
golang_proto.RegisterType((*PriceState)(nil), "injective.oracle.v1beta1.PriceState")
proto.RegisterType((*PythPriceState)(nil), "injective.oracle.v1beta1.PythPriceState")
golang_proto.RegisterType((*PythPriceState)(nil), "injective.oracle.v1beta1.PythPriceState")
+ proto.RegisterType((*ChainlinkDataStreamsPriceState)(nil), "injective.oracle.v1beta1.ChainlinkDataStreamsPriceState")
+ golang_proto.RegisterType((*ChainlinkDataStreamsPriceState)(nil), "injective.oracle.v1beta1.ChainlinkDataStreamsPriceState")
proto.RegisterType((*BandOracleRequest)(nil), "injective.oracle.v1beta1.BandOracleRequest")
golang_proto.RegisterType((*BandOracleRequest)(nil), "injective.oracle.v1beta1.BandOracleRequest")
proto.RegisterType((*BandIBCParams)(nil), "injective.oracle.v1beta1.BandIBCParams")
@@ -1657,6 +1832,8 @@ func init() {
golang_proto.RegisterType((*AssetPair)(nil), "injective.oracle.v1beta1.AssetPair")
proto.RegisterType((*SignedPriceOfAssetPair)(nil), "injective.oracle.v1beta1.SignedPriceOfAssetPair")
golang_proto.RegisterType((*SignedPriceOfAssetPair)(nil), "injective.oracle.v1beta1.SignedPriceOfAssetPair")
+ proto.RegisterType((*ChainlinkReport)(nil), "injective.oracle.v1beta1.ChainlinkReport")
+ golang_proto.RegisterType((*ChainlinkReport)(nil), "injective.oracle.v1beta1.ChainlinkReport")
}
func init() {
@@ -1667,120 +1844,134 @@ func init() {
}
var fileDescriptor_1c8fbf1e7a765423 = []byte{
- // 1794 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x8f, 0x1c, 0x47,
- 0x15, 0xdf, 0x9e, 0xef, 0x7e, 0xf3, 0xb1, 0xed, 0xda, 0xb5, 0x19, 0x3b, 0xc9, 0xec, 0xd2, 0xc1,
- 0x30, 0xb2, 0x92, 0x19, 0xdb, 0x39, 0x20, 0x07, 0x84, 0xe2, 0x5d, 0xdb, 0x68, 0xe4, 0x85, 0xac,
- 0x7a, 0x6d, 0x90, 0xb8, 0x0c, 0x35, 0xdd, 0x35, 0x3b, 0x95, 0xed, 0xaf, 0x74, 0xf5, 0x6c, 0x3c,
- 0x96, 0xb8, 0xe6, 0xc0, 0x05, 0xfe, 0x01, 0x24, 0xce, 0x39, 0x71, 0x80, 0x13, 0x12, 0x42, 0x9c,
- 0x72, 0x23, 0xa7, 0x08, 0x71, 0x08, 0x60, 0x1f, 0x40, 0x5c, 0xf9, 0x07, 0xd0, 0xab, 0xaa, 0xee,
- 0xe9, 0xdd, 0x8d, 0xbd, 0x3b, 0x04, 0x5f, 0x76, 0xab, 0x5e, 0xbd, 0xf7, 0xea, 0xf7, 0x3e, 0xea,
- 0xbd, 0xd7, 0x03, 0xd7, 0x79, 0xf8, 0x01, 0x73, 0x53, 0x7e, 0xcc, 0x86, 0x51, 0x42, 0x5d, 0x9f,
- 0x0d, 0x8f, 0x6f, 0x4d, 0x58, 0x4a, 0x6f, 0xe9, 0xed, 0x20, 0x4e, 0xa2, 0x34, 0x22, 0xdd, 0x9c,
- 0x6d, 0xa0, 0xe9, 0x9a, 0xed, 0xda, 0xe6, 0x61, 0x74, 0x18, 0x49, 0xa6, 0x21, 0xae, 0x14, 0xff,
- 0xb5, 0x9e, 0x1b, 0x89, 0x20, 0x12, 0xc3, 0x09, 0x15, 0x4b, 0x8d, 0x6e, 0xc4, 0x43, 0x7d, 0x7e,
- 0x89, 0x06, 0x3c, 0x8c, 0x86, 0xf2, 0xaf, 0x22, 0xd9, 0xf7, 0xa1, 0xb6, 0x4f, 0x13, 0x1a, 0x08,
- 0xf2, 0x26, 0xb4, 0xe3, 0x45, 0x3a, 0x1b, 0xbb, 0x51, 0x98, 0x26, 0xd4, 0x4d, 0xbb, 0xc6, 0xb6,
- 0xd1, 0x37, 0x9d, 0x16, 0x12, 0x77, 0x35, 0xed, 0xdd, 0x2b, 0xff, 0xfa, 0xf5, 0x96, 0xf1, 0xf3,
- 0x7f, 0xfe, 0xe6, 0x46, 0x5b, 0xe3, 0x56, 0xc2, 0xf6, 0x11, 0xc0, 0xfb, 0x92, 0x30, 0x0a, 0xa7,
- 0x11, 0xb9, 0x02, 0x35, 0xb1, 0x08, 0x26, 0x91, 0xaf, 0x75, 0xe8, 0x1d, 0xb9, 0x0f, 0x4d, 0x25,
- 0x36, 0x4e, 0x17, 0x31, 0xeb, 0x96, 0xb6, 0x8d, 0x7e, 0xe7, 0xf6, 0x37, 0x06, 0x2f, 0xb2, 0x72,
- 0xa0, 0x54, 0x3e, 0x5a, 0xc4, 0xcc, 0x81, 0x28, 0x5f, 0xdb, 0x9f, 0x1b, 0xb0, 0xb1, 0x3b, 0xa3,
- 0x3c, 0xf4, 0x79, 0x78, 0xb4, 0x9f, 0x70, 0x97, 0x1d, 0xa4, 0x34, 0x65, 0xe4, 0x6b, 0x50, 0x9f,
- 0x32, 0xe6, 0x8d, 0xb9, 0x97, 0xdd, 0x8b, 0xdb, 0x91, 0x47, 0xbe, 0x03, 0x35, 0x1a, 0x8a, 0x8f,
- 0x58, 0x22, 0xaf, 0x34, 0x77, 0xde, 0xfc, 0xf4, 0x8b, 0xad, 0xb5, 0xbf, 0x7e, 0xb1, 0xf5, 0x9a,
- 0xf2, 0x97, 0xf0, 0x8e, 0x06, 0x3c, 0x1a, 0x06, 0x34, 0x9d, 0x0d, 0xf6, 0xd8, 0x21, 0x75, 0x17,
- 0xf7, 0x98, 0xeb, 0x68, 0x11, 0xf2, 0x3a, 0x98, 0x29, 0x0f, 0x98, 0x48, 0x69, 0x10, 0x77, 0xcb,
- 0xdb, 0x46, 0xbf, 0xe2, 0x2c, 0x09, 0xe4, 0x21, 0x34, 0x63, 0x44, 0x30, 0x16, 0x08, 0xa1, 0x5b,
- 0xd9, 0x36, 0xfa, 0xcd, 0x97, 0x99, 0xb4, 0x84, 0xbb, 0x53, 0x41, 0x14, 0x0e, 0xc4, 0x39, 0xc5,
- 0xfe, 0xb7, 0x01, 0x9d, 0x1d, 0x1a, 0x7a, 0x05, 0x9b, 0x5e, 0xe4, 0xca, 0x5b, 0x50, 0x49, 0xf0,
- 0x42, 0x65, 0xd0, 0x1b, 0xda, 0xa0, 0xcb, 0x67, 0x0d, 0x1a, 0x85, 0xa9, 0x23, 0x59, 0xc9, 0xd7,
- 0xa1, 0x95, 0x30, 0x11, 0xf9, 0xc7, 0x6c, 0x8c, 0xf8, 0xb5, 0x2d, 0x4d, 0x4d, 0x7b, 0xc4, 0x03,
- 0x46, 0xde, 0x00, 0x48, 0xd8, 0x87, 0x73, 0x26, 0xd2, 0xf1, 0xe8, 0x9e, 0x34, 0xa6, 0xe2, 0x98,
- 0x9a, 0x32, 0xba, 0x77, 0xda, 0xd8, 0xea, 0x57, 0x32, 0xf6, 0x57, 0x06, 0x74, 0x24, 0xc3, 0x03,
- 0xc6, 0x3c, 0x65, 0x2c, 0x81, 0x0a, 0xa6, 0xae, 0x36, 0x55, 0xae, 0xc9, 0x26, 0x54, 0x3f, 0x9c,
- 0x47, 0x99, 0xa5, 0x8e, 0xda, 0x60, 0x26, 0x15, 0x91, 0x94, 0x2f, 0x8e, 0xa4, 0x88, 0x81, 0x5c,
- 0x83, 0x46, 0xc2, 0x7c, 0xba, 0x60, 0x89, 0xe8, 0x56, 0xb6, 0xcb, 0x7d, 0xd3, 0xc9, 0xf7, 0xf6,
- 0x03, 0x68, 0xed, 0x27, 0xd1, 0x31, 0xf7, 0x58, 0x22, 0x93, 0xfa, 0x1a, 0x34, 0x62, 0xbd, 0xd7,
- 0x00, 0xf3, 0xfd, 0x09, 0x3d, 0xa5, 0x53, 0x7a, 0xfe, 0x60, 0x40, 0x3b, 0x53, 0xa4, 0x6e, 0x7d,
- 0x08, 0xed, 0x4c, 0x72, 0xcc, 0xc3, 0x69, 0x24, 0xd5, 0x35, 0x6f, 0x7f, 0xf3, 0x65, 0xf0, 0x97,
- 0x40, 0x9c, 0x56, 0x5c, 0x84, 0xf5, 0x53, 0xb8, 0x9c, 0x2b, 0x2b, 0xb8, 0x44, 0xe1, 0x68, 0xde,
- 0x7e, 0xeb, 0x7c, 0xa5, 0x05, 0xdf, 0x6c, 0xc4, 0x67, 0x68, 0xc2, 0x9e, 0x01, 0x39, 0xcb, 0xfa,
- 0xc2, 0xc4, 0x7c, 0x17, 0xaa, 0x2a, 0x26, 0xa5, 0x15, 0x62, 0xa2, 0x44, 0xec, 0x3b, 0xe8, 0x29,
- 0x9d, 0x11, 0xd2, 0xb8, 0x0b, 0x27, 0x84, 0xfd, 0xb0, 0x90, 0x4c, 0x72, 0x41, 0xee, 0x40, 0x55,
- 0xfa, 0x43, 0x09, 0x5f, 0xec, 0xcd, 0x2b, 0x09, 0xfb, 0xf7, 0x06, 0x90, 0xdd, 0x88, 0x87, 0x78,
- 0x5f, 0xc1, 0x64, 0x02, 0x95, 0x23, 0x1e, 0x66, 0xc5, 0x45, 0xae, 0x4f, 0x56, 0x87, 0xd2, 0xe9,
- 0xea, 0x60, 0x41, 0xf9, 0x88, 0x2d, 0x64, 0x7a, 0x9a, 0x0e, 0x2e, 0x11, 0xfd, 0x31, 0xf5, 0xe7,
- 0x4c, 0x3f, 0x2e, 0xb5, 0xf9, 0xff, 0x3e, 0xac, 0x3f, 0x1b, 0xb0, 0x7e, 0x90, 0x46, 0x49, 0xb1,
- 0x34, 0x9e, 0x80, 0x69, 0x9c, 0x86, 0xb9, 0x8c, 0x65, 0xe9, 0x44, 0x2c, 0xef, 0x64, 0x60, 0xcb,
- 0x2b, 0xb8, 0xf0, 0x15, 0x58, 0xf4, 0x3b, 0x03, 0xa0, 0x60, 0xcc, 0xff, 0x1e, 0x59, 0xf2, 0x43,
- 0xb0, 0xdc, 0x79, 0x30, 0xf7, 0x29, 0x62, 0x50, 0xef, 0x65, 0x95, 0x9e, 0xb0, 0xbe, 0x14, 0x56,
- 0x49, 0x76, 0xa6, 0x39, 0x94, 0x0b, 0x7e, 0xb5, 0x3f, 0x2f, 0x41, 0x67, 0x7f, 0x91, 0xce, 0x0a,
- 0xd8, 0xaf, 0x62, 0x15, 0x41, 0xbf, 0xe4, 0x4d, 0xaa, 0x2e, 0xf7, 0x23, 0x8f, 0xbc, 0x07, 0x26,
- 0x0b, 0xe8, 0xea, 0xa0, 0x1a, 0x2c, 0xa0, 0x0a, 0xcd, 0xf7, 0x00, 0xd7, 0xd8, 0xc1, 0xa7, 0xab,
- 0x84, 0xac, 0xce, 0x02, 0xba, 0x1b, 0x85, 0x53, 0xf2, 0x6d, 0xa8, 0x48, 0xd9, 0xca, 0xc5, 0x65,
- 0xa5, 0x00, 0xb6, 0x96, 0x78, 0x3e, 0xf1, 0xb9, 0x98, 0xa9, 0xd6, 0x52, 0x55, 0xad, 0x45, 0xd3,
- 0x64, 0x6b, 0x39, 0x95, 0x10, 0xb5, 0xaf, 0x94, 0x10, 0x1f, 0x97, 0xe1, 0x12, 0x36, 0x4a, 0x35,
- 0x20, 0x38, 0xaa, 0x41, 0x15, 0xbb, 0x97, 0xf6, 0x6e, 0xa1, 0x7b, 0x79, 0xa4, 0x0f, 0x96, 0x9e,
- 0x3e, 0x84, 0x9b, 0xf0, 0x58, 0x32, 0x95, 0x64, 0xc8, 0x3a, 0x8a, 0x7e, 0x20, 0xc9, 0x23, 0x8f,
- 0x74, 0xa1, 0xae, 0x5e, 0x80, 0xe8, 0x96, 0x65, 0x35, 0xcf, 0xb6, 0xe4, 0x35, 0x30, 0xa9, 0x38,
- 0x1a, 0xbb, 0xd1, 0x3c, 0x4c, 0xf5, 0x13, 0x6e, 0x50, 0x71, 0xb4, 0x8b, 0x7b, 0x3c, 0x0c, 0x78,
- 0xa8, 0x0f, 0x95, 0x0b, 0x1a, 0x01, 0x0f, 0xd5, 0xe1, 0x0c, 0xcc, 0x29, 0x63, 0x63, 0x9f, 0x07,
- 0x3c, 0xed, 0xd6, 0x64, 0x6d, 0xbe, 0x3a, 0x50, 0x9e, 0x1d, 0x60, 0x9d, 0xc9, 0x0d, 0xc7, 0xc2,
- 0xb3, 0x73, 0x13, 0x4d, 0xfe, 0xe4, 0x6f, 0x5b, 0xfd, 0x43, 0x9e, 0xce, 0xe6, 0x93, 0x81, 0x1b,
- 0x05, 0x43, 0x3d, 0xdc, 0xa9, 0x7f, 0x6f, 0x0b, 0xef, 0x68, 0x88, 0x53, 0x94, 0x90, 0x02, 0xc2,
- 0x69, 0x4c, 0x19, 0xdb, 0x43, 0xe5, 0x64, 0x0b, 0x3d, 0xcd, 0x62, 0x9a, 0xb0, 0xf1, 0x21, 0x15,
- 0xdd, 0xba, 0x04, 0x02, 0x9a, 0xf4, 0x7d, 0x2a, 0x90, 0x81, 0x3d, 0x61, 0xee, 0x3c, 0x55, 0x0c,
- 0x0d, 0xc5, 0xa0, 0x49, 0xc8, 0xd0, 0x07, 0x0b, 0x0d, 0x11, 0xd1, 0x3c, 0x71, 0x99, 0xb6, 0xc7,
- 0x94, 0x5c, 0x9d, 0x80, 0x87, 0x07, 0x92, 0x2c, 0xad, 0xb2, 0x3f, 0x2e, 0x41, 0x1b, 0x03, 0x31,
- 0xda, 0xd9, 0xd5, 0x63, 0x64, 0x1f, 0xac, 0x09, 0x0d, 0xbd, 0x31, 0x9f, 0xb8, 0x63, 0x16, 0xd2,
- 0x89, 0xcf, 0x54, 0x28, 0x1a, 0x4e, 0x07, 0xe9, 0xa3, 0x89, 0x7b, 0x5f, 0x51, 0xc9, 0x4d, 0xd8,
- 0x44, 0xa6, 0x3c, 0x64, 0x61, 0xca, 0x92, 0x63, 0xea, 0xeb, 0x98, 0x10, 0x3e, 0x71, 0x75, 0x60,
- 0x47, 0xfa, 0x84, 0xbc, 0x05, 0x48, 0xcd, 0x71, 0xcd, 0x68, 0x18, 0x32, 0x5f, 0x57, 0x57, 0x8b,
- 0x4f, 0x5c, 0x8d, 0x4c, 0xd1, 0xd1, 0x4c, 0xe4, 0x3e, 0x66, 0x89, 0xe0, 0x51, 0xa8, 0x92, 0xda,
- 0x01, 0x3e, 0x71, 0x7f, 0xa4, 0x28, 0xa4, 0xa7, 0x18, 0xe2, 0x28, 0x91, 0xb9, 0x50, 0x95, 0x0c,
- 0x26, 0x9f, 0xb8, 0xfb, 0x51, 0x82, 0x69, 0x70, 0x03, 0x2e, 0xf9, 0x32, 0xd1, 0xc7, 0x3a, 0x6f,
- 0xb8, 0x27, 0x64, 0xe8, 0xca, 0xce, 0xba, 0x3a, 0xd0, 0x33, 0xaf, 0x27, 0xec, 0x5f, 0x18, 0xb0,
- 0x79, 0x20, 0x93, 0x44, 0x26, 0xee, 0xa3, 0xbc, 0xb6, 0x7e, 0x17, 0x6a, 0x4a, 0x5a, 0x7a, 0xe1,
- 0xa2, 0xe3, 0xae, 0x96, 0xc1, 0x94, 0x52, 0xa9, 0x97, 0x25, 0xab, 0xe9, 0x34, 0x14, 0x61, 0xe4,
- 0x9d, 0x53, 0x7c, 0x16, 0xb0, 0xb1, 0x47, 0x45, 0x7a, 0x12, 0x8e, 0x20, 0x13, 0xb8, 0xec, 0x53,
- 0x91, 0xea, 0x59, 0x21, 0x67, 0x17, 0x5d, 0x43, 0xe6, 0xe4, 0xe0, 0xc5, 0xf0, 0xbe, 0xcc, 0x3c,
- 0x67, 0xc3, 0x3f, 0x7b, 0x87, 0xfd, 0x27, 0x03, 0x67, 0x27, 0xee, 0x32, 0x87, 0xb9, 0x51, 0xe2,
- 0x89, 0x57, 0xe9, 0x84, 0x1f, 0xc3, 0xa6, 0x8f, 0x63, 0x4a, 0x66, 0x51, 0xa2, 0xae, 0x94, 0x0f,
- 0xb7, 0x79, 0xfb, 0xfa, 0x39, 0x05, 0x46, 0x01, 0x74, 0x88, 0x52, 0x51, 0xc4, 0x6c, 0x4f, 0xa1,
- 0x59, 0xd8, 0x9f, 0xed, 0xa0, 0x45, 0x67, 0x2f, 0x5b, 0x52, 0x69, 0xe5, 0x61, 0xe3, 0x3f, 0x65,
- 0x20, 0x3f, 0x60, 0x29, 0xf5, 0x68, 0x4a, 0xb1, 0xba, 0x71, 0x91, 0x72, 0x57, 0x3e, 0xd2, 0xc3,
- 0x24, 0x9a, 0xc7, 0xfa, 0xf9, 0xe1, 0x8d, 0x6d, 0x07, 0x24, 0x49, 0x15, 0x94, 0x01, 0x6c, 0x68,
- 0x5b, 0xc7, 0x82, 0x06, 0x31, 0x96, 0x35, 0xfe, 0x54, 0x01, 0x68, 0x3b, 0x97, 0xf4, 0xd1, 0x81,
- 0x3c, 0x39, 0xe0, 0x4f, 0x19, 0x16, 0xf7, 0x80, 0xd1, 0x70, 0x95, 0xc6, 0x20, 0x05, 0x50, 0x30,
- 0xfd, 0x88, 0xc6, 0x2b, 0x75, 0x05, 0x14, 0x20, 0xdf, 0x82, 0xf5, 0x29, 0x4f, 0x44, 0xba, 0xcc,
- 0x32, 0xf9, 0xc6, 0xca, 0x4e, 0x47, 0x92, 0x97, 0x6f, 0xe4, 0x3a, 0x74, 0x64, 0x4e, 0x2e, 0xf9,
- 0x6a, 0x92, 0xaf, 0x8d, 0xd4, 0x25, 0xdb, 0x7b, 0xaa, 0xbe, 0x2a, 0x47, 0xd7, 0x57, 0x68, 0x90,
- 0x01, 0x0f, 0x55, 0x83, 0x44, 0x0d, 0xf4, 0x89, 0xd6, 0xd0, 0x58, 0x45, 0x03, 0x7d, 0xa2, 0x34,
- 0x3c, 0x80, 0x56, 0xc0, 0x3c, 0x4e, 0x33, 0x18, 0xe6, 0xc5, 0x95, 0x34, 0x95, 0xa0, 0xd4, 0x63,
- 0xff, 0xc3, 0x00, 0x4b, 0xae, 0xee, 0xa6, 0x98, 0x79, 0x34, 0xc5, 0x82, 0xf4, 0x92, 0xe1, 0x60,
- 0xb3, 0x98, 0x60, 0xe5, 0x6c, 0x9c, 0x21, 0xba, 0x61, 0xab, 0x4f, 0x39, 0xd5, 0x8b, 0x09, 0x54,
- 0xd8, 0x93, 0x38, 0x92, 0xe1, 0xaa, 0x3a, 0x72, 0x8d, 0x2f, 0x68, 0x39, 0x5a, 0xa8, 0x18, 0x2c,
- 0xa7, 0x86, 0xab, 0x85, 0xa9, 0xa1, 0x26, 0x15, 0xe5, 0x03, 0x81, 0x3e, 0x92, 0xfa, 0xea, 0x52,
- 0x1f, 0x1e, 0xdd, 0x47, 0x95, 0xa7, 0x5b, 0x7e, 0x43, 0x6a, 0x2d, 0xb6, 0x7c, 0xfb, 0x67, 0x60,
- 0xde, 0x15, 0x82, 0xa5, 0xfb, 0x94, 0x27, 0xa8, 0x8a, 0xe2, 0xa6, 0x60, 0x9b, 0xdc, 0x8f, 0x3c,
- 0xf2, 0x18, 0xda, 0x82, 0x1f, 0x86, 0xcc, 0x53, 0x00, 0xb3, 0x4f, 0x97, 0x9b, 0x2f, 0x29, 0x45,
- 0x92, 0x5d, 0xc2, 0x7f, 0x7f, 0x9a, 0xdf, 0xe1, 0xb4, 0xc4, 0x92, 0x2e, 0xec, 0xdf, 0x1a, 0x70,
- 0xe5, 0xcb, 0x19, 0xe5, 0x6f, 0x1d, 0x0a, 0x28, 0x4b, 0xc6, 0x38, 0xa1, 0x67, 0xbf, 0x75, 0x64,
- 0xc4, 0x87, 0x6c, 0x71, 0xce, 0x68, 0x9f, 0xbf, 0xf8, 0xf2, 0xca, 0x43, 0xe8, 0xeb, 0x60, 0x22,
- 0x50, 0x9a, 0xce, 0x13, 0xf5, 0x1d, 0xd0, 0x72, 0x96, 0x84, 0x1b, 0x9f, 0x18, 0xd9, 0x6f, 0x29,
- 0x58, 0x04, 0xc9, 0x3a, 0x34, 0x1f, 0x87, 0x22, 0x66, 0x2e, 0x9f, 0x72, 0xe6, 0x59, 0x6b, 0xa4,
- 0x01, 0x15, 0xec, 0xb8, 0x96, 0x41, 0xda, 0x60, 0xe6, 0xdf, 0x3c, 0x56, 0x89, 0xb4, 0xa0, 0x91,
- 0x7d, 0xb4, 0x58, 0x65, 0x3c, 0xcc, 0x7f, 0x23, 0xb1, 0x2a, 0xc4, 0x84, 0xaa, 0x43, 0x9f, 0x46,
- 0x89, 0x55, 0x25, 0x75, 0x28, 0xdf, 0xe3, 0xd4, 0xaa, 0xa1, 0xa6, 0xbb, 0xfb, 0xa3, 0x77, 0xac,
- 0x3a, 0x92, 0x1e, 0x07, 0xd4, 0x6a, 0x20, 0x09, 0x07, 0x56, 0xcb, 0x24, 0x4d, 0xa8, 0xeb, 0xc6,
- 0x6e, 0x01, 0xaa, 0xce, 0x3e, 0x01, 0xad, 0x26, 0xea, 0x92, 0xdf, 0x17, 0x56, 0x6b, 0xe7, 0x83,
- 0x4f, 0x9f, 0xf5, 0x8c, 0xcf, 0x9e, 0xf5, 0x8c, 0xbf, 0x3f, 0xeb, 0x19, 0xbf, 0x7c, 0xde, 0x5b,
- 0xfb, 0xe3, 0xf3, 0x9e, 0xf1, 0xd9, 0xf3, 0xde, 0xda, 0x5f, 0x9e, 0xf7, 0xd6, 0x7e, 0xb2, 0x57,
- 0x98, 0x5e, 0x46, 0x59, 0x2c, 0xf7, 0xe8, 0x44, 0x0c, 0xf3, 0xc8, 0xbe, 0xed, 0x46, 0x09, 0x2b,
- 0x6e, 0x11, 0xf3, 0x30, 0x88, 0xbc, 0xb9, 0xcf, 0x44, 0xf6, 0xe3, 0x98, 0x9c, 0x73, 0x26, 0x35,
- 0xf9, 0x8b, 0xd5, 0x3b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xe6, 0xeb, 0x89, 0x3d, 0x13,
- 0x00, 0x00,
+ // 2029 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4f, 0x6f, 0x1c, 0x49,
+ 0x15, 0x4f, 0xcf, 0x8c, 0xe7, 0xcf, 0x9b, 0x19, 0xbb, 0x53, 0x71, 0xc2, 0x24, 0xbb, 0x3b, 0xce,
+ 0xce, 0x12, 0xb0, 0xc2, 0x66, 0x26, 0xc9, 0x0a, 0xa1, 0x04, 0x84, 0x12, 0x3b, 0xc9, 0x6a, 0x94,
+ 0xc0, 0x5a, 0xed, 0x24, 0x48, 0x5c, 0x9a, 0x9a, 0xee, 0x1a, 0xbb, 0xd6, 0xdd, 0x5d, 0xbd, 0x5d,
+ 0x3d, 0x5e, 0x4f, 0x24, 0xbe, 0x40, 0x2e, 0xf0, 0x05, 0x90, 0x38, 0x73, 0x02, 0x09, 0x4e, 0x48,
+ 0x08, 0x71, 0xda, 0x03, 0x12, 0x7b, 0x5a, 0xad, 0x38, 0x2c, 0x90, 0x1c, 0xe0, 0xc4, 0x85, 0x2f,
+ 0x80, 0x5e, 0x55, 0x75, 0x4f, 0xfb, 0x5f, 0xec, 0x21, 0xec, 0x5e, 0xec, 0xae, 0x57, 0xef, 0xbd,
+ 0x7a, 0xff, 0xea, 0xbd, 0x5f, 0x0d, 0x5c, 0xe1, 0xd1, 0x87, 0xcc, 0x4b, 0xf9, 0x2e, 0x1b, 0x88,
+ 0x84, 0x7a, 0x01, 0x1b, 0xec, 0xde, 0x18, 0xb1, 0x94, 0xde, 0x30, 0xcb, 0x7e, 0x9c, 0x88, 0x54,
+ 0x90, 0x4e, 0xce, 0xd6, 0x37, 0x74, 0xc3, 0x76, 0x69, 0x79, 0x4b, 0x6c, 0x09, 0xc5, 0x34, 0xc0,
+ 0x2f, 0xcd, 0x7f, 0xa9, 0xeb, 0x09, 0x19, 0x0a, 0x39, 0x18, 0x51, 0x39, 0xd3, 0xe8, 0x09, 0x1e,
+ 0x99, 0xfd, 0xb3, 0x34, 0xe4, 0x91, 0x18, 0xa8, 0xbf, 0x9a, 0xd4, 0xfb, 0xbc, 0x04, 0xd5, 0x0d,
+ 0x9a, 0xd0, 0x50, 0x92, 0x77, 0xa0, 0x1d, 0x4f, 0xd3, 0x6d, 0xd7, 0x13, 0x51, 0x9a, 0x50, 0x2f,
+ 0xed, 0x58, 0x97, 0xad, 0xd5, 0x86, 0xd3, 0x42, 0xe2, 0xba, 0xa1, 0x91, 0x21, 0xbc, 0xed, 0x6d,
+ 0x53, 0x1e, 0x05, 0x3c, 0xda, 0x71, 0x77, 0x59, 0xc2, 0xc7, 0x9c, 0x25, 0x6e, 0x9c, 0x88, 0xbd,
+ 0xe9, 0x4c, 0xb0, 0xa4, 0x04, 0xbb, 0x39, 0xe3, 0x53, 0xc3, 0xb7, 0x81, 0x6c, 0xb9, 0x2a, 0x06,
+ 0xd7, 0xa9, 0xe7, 0xb1, 0x38, 0x75, 0x27, 0x91, 0xd1, 0xe4, 0xbb, 0x33, 0xe5, 0x3e, 0x4d, 0xa9,
+ 0x2b, 0xd3, 0x84, 0xd1, 0x50, 0xba, 0x09, 0x8b, 0x45, 0x92, 0xca, 0x4e, 0xf9, 0xb2, 0xb5, 0x5a,
+ 0x77, 0xbe, 0xa5, 0xe5, 0x9e, 0xe4, 0x62, 0xeb, 0x99, 0xd4, 0x3d, 0x9a, 0xd2, 0x4d, 0x2d, 0xe3,
+ 0x68, 0x11, 0xe2, 0xc2, 0xb5, 0x63, 0x94, 0x6a, 0x69, 0x8f, 0xa6, 0x5c, 0x44, 0xee, 0x16, 0x95,
+ 0x6e, 0xc0, 0x43, 0x9e, 0x76, 0x2a, 0x97, 0xad, 0xd5, 0x8a, 0xb3, 0xea, 0x1d, 0xa1, 0xf3, 0x69,
+ 0x41, 0xe2, 0x7d, 0x2a, 0x1f, 0x21, 0xff, 0xed, 0x0b, 0xff, 0xfa, 0xe5, 0x8a, 0xf5, 0xfc, 0x9f,
+ 0xbf, 0xbe, 0xda, 0x36, 0xb9, 0xd4, 0xf1, 0xec, 0xed, 0x00, 0x7c, 0xa0, 0x08, 0xc3, 0x68, 0x2c,
+ 0xc8, 0x05, 0xa8, 0xca, 0x69, 0x38, 0x12, 0x81, 0x09, 0xab, 0x59, 0x91, 0xfb, 0xd0, 0xd4, 0x62,
+ 0x6e, 0x3a, 0x8d, 0x99, 0x0a, 0xdd, 0xe2, 0xcd, 0xaf, 0xf7, 0x8f, 0xcb, 0x7c, 0x5f, 0xab, 0x7c,
+ 0x3c, 0x8d, 0x99, 0x03, 0x22, 0xff, 0xee, 0x7d, 0x66, 0xc1, 0xb9, 0x3c, 0x0a, 0x1b, 0x09, 0xf7,
+ 0xd8, 0x66, 0x4a, 0x53, 0x46, 0xbe, 0x06, 0xb5, 0x31, 0x63, 0xbe, 0xcb, 0xfd, 0xec, 0x5c, 0x5c,
+ 0x0e, 0x7d, 0xf2, 0x5d, 0xa8, 0xd2, 0x48, 0x7e, 0xcc, 0x12, 0x9d, 0xad, 0xb5, 0x77, 0x3e, 0xf9,
+ 0x62, 0xe5, 0xcc, 0x5f, 0xbf, 0x58, 0x79, 0x43, 0xd7, 0x90, 0xf4, 0x77, 0xfa, 0x5c, 0x0c, 0x42,
+ 0x9a, 0x6e, 0xf7, 0x1f, 0xb1, 0x2d, 0xea, 0x4d, 0xef, 0x31, 0xcf, 0x31, 0x22, 0xe4, 0x4d, 0x68,
+ 0xa4, 0x3c, 0x64, 0x32, 0xa5, 0x61, 0xac, 0x72, 0x52, 0x71, 0x66, 0x04, 0xf2, 0x10, 0x9a, 0x31,
+ 0x5a, 0xe0, 0x4a, 0x34, 0x41, 0xc5, 0xb3, 0xf9, 0x2a, 0x97, 0x66, 0xe6, 0xae, 0x55, 0xd0, 0x0a,
+ 0x07, 0xe2, 0x9c, 0xd2, 0xfb, 0xb7, 0x05, 0x8b, 0x6b, 0x34, 0xf2, 0x0b, 0x3e, 0x1d, 0x17, 0xca,
+ 0x1b, 0x50, 0x49, 0xf0, 0x40, 0xed, 0xd0, 0x5b, 0xc6, 0xa1, 0xf3, 0x87, 0x1d, 0x1a, 0x46, 0xa9,
+ 0xa3, 0x58, 0xc9, 0xdb, 0xd0, 0x4a, 0x98, 0x14, 0xc1, 0x2e, 0x73, 0xd1, 0x7e, 0xe3, 0x4b, 0xd3,
+ 0xd0, 0x1e, 0xf3, 0x90, 0x91, 0xb7, 0x00, 0x12, 0xf6, 0xd1, 0x84, 0xc9, 0xd4, 0x1d, 0xde, 0x33,
+ 0xc5, 0xd1, 0x30, 0x94, 0xe1, 0xbd, 0x83, 0xce, 0x2e, 0xbc, 0x8e, 0xb3, 0xb7, 0x4b, 0x1d, 0xab,
+ 0xf7, 0x0b, 0x0b, 0x16, 0x15, 0xd3, 0x03, 0xc6, 0x7c, 0xed, 0x30, 0x81, 0x0a, 0x5e, 0x69, 0xe3,
+ 0xae, 0xfa, 0x26, 0xcb, 0xb0, 0xf0, 0xd1, 0x44, 0x64, 0xde, 0x3a, 0x7a, 0x81, 0xd5, 0x54, 0xb4,
+ 0xa6, 0x7c, 0x7a, 0x6b, 0x8a, 0x76, 0x90, 0x4b, 0x50, 0x4f, 0x58, 0x40, 0xa7, 0x2c, 0x91, 0x9d,
+ 0xca, 0xe5, 0xf2, 0x6a, 0xc3, 0xc9, 0xd7, 0xbd, 0x07, 0xd0, 0xda, 0x48, 0xc4, 0x2e, 0xf7, 0x59,
+ 0xa2, 0x0a, 0xfb, 0x12, 0xd4, 0x63, 0xb3, 0x36, 0x06, 0xe6, 0xeb, 0x7d, 0x7a, 0x4a, 0x07, 0xf4,
+ 0xfc, 0xc1, 0x82, 0x76, 0xa6, 0x48, 0x9f, 0xfa, 0x10, 0xda, 0x99, 0xa4, 0xcb, 0xa3, 0xb1, 0x50,
+ 0xea, 0x9a, 0x37, 0xbf, 0xf1, 0x2a, 0xf3, 0x67, 0x86, 0x38, 0xad, 0xb8, 0x68, 0xd6, 0x4f, 0xe0,
+ 0x7c, 0xae, 0xac, 0x10, 0x12, 0x6d, 0x47, 0xf3, 0xe6, 0xbb, 0x27, 0x2b, 0x2d, 0xc4, 0xe6, 0x5c,
+ 0x7c, 0x88, 0x26, 0x7b, 0xdb, 0x40, 0x0e, 0xb3, 0x1e, 0x5b, 0x9c, 0xb7, 0x61, 0x41, 0xe7, 0xa4,
+ 0x34, 0x47, 0x4e, 0xb4, 0x48, 0xef, 0x16, 0x46, 0xca, 0x54, 0x84, 0x72, 0xee, 0xd4, 0x05, 0xd1,
+ 0x7b, 0x58, 0x28, 0x26, 0xf5, 0x41, 0x6e, 0xc1, 0x82, 0x8a, 0x87, 0x16, 0x3e, 0xdd, 0xbd, 0xd7,
+ 0x12, 0xbd, 0xdf, 0x5b, 0x40, 0xd6, 0x05, 0x8f, 0xf0, 0xbc, 0x82, 0xcb, 0x04, 0x2a, 0x3b, 0x3c,
+ 0xca, 0x1a, 0x8c, 0xfa, 0xde, 0xdf, 0x21, 0x4a, 0x07, 0x3b, 0x84, 0x0d, 0xe5, 0x1d, 0x36, 0x55,
+ 0xe5, 0xd9, 0x70, 0xf0, 0x13, 0xad, 0xdf, 0xa5, 0xc1, 0x84, 0x99, 0x0b, 0xa6, 0x17, 0xff, 0xd7,
+ 0xcb, 0xd5, 0xfb, 0x8b, 0x05, 0x4b, 0x9b, 0xa9, 0x48, 0x8a, 0xed, 0x71, 0x9f, 0x99, 0xd6, 0x41,
+ 0x33, 0x67, 0xb9, 0x2c, 0xed, 0xcb, 0xe5, 0xad, 0xcc, 0xd8, 0xf2, 0x1c, 0x21, 0xfc, 0x12, 0x3c,
+ 0xfa, 0x9d, 0x05, 0x50, 0x70, 0xe6, 0x7f, 0xcf, 0x2c, 0xf9, 0x21, 0xd8, 0xde, 0x24, 0x9c, 0x04,
+ 0x14, 0x6d, 0xd0, 0xf7, 0x65, 0x9e, 0xb9, 0xb0, 0x34, 0x13, 0xd6, 0x45, 0x76, 0x68, 0x40, 0x94,
+ 0x0b, 0x71, 0xed, 0x7d, 0x56, 0x82, 0xc5, 0x8d, 0x69, 0xba, 0x5d, 0xb0, 0xfd, 0x22, 0x76, 0x11,
+ 0x8c, 0x4b, 0x3e, 0xa8, 0x6a, 0x6a, 0x3d, 0xf4, 0xc9, 0x1d, 0x68, 0xb0, 0x90, 0xce, 0x6f, 0x54,
+ 0x9d, 0x85, 0x54, 0x5b, 0xf3, 0x7d, 0xc0, 0x6f, 0xc4, 0x27, 0xe3, 0x79, 0x52, 0x56, 0x63, 0x21,
+ 0x5d, 0x17, 0xd1, 0x98, 0x7c, 0x07, 0x2a, 0x4a, 0xb6, 0x72, 0x7a, 0x59, 0x25, 0x80, 0xe3, 0x25,
+ 0x9e, 0x8c, 0x02, 0x2e, 0xb7, 0xf5, 0x78, 0x59, 0xd0, 0xe3, 0xc5, 0xd0, 0xd4, 0x78, 0x39, 0x50,
+ 0x10, 0xd5, 0xd7, 0x2a, 0x88, 0xdf, 0x94, 0xa0, 0x7b, 0x14, 0x16, 0x3a, 0x0d, 0x20, 0xb8, 0x83,
+ 0xa3, 0x10, 0x21, 0xd3, 0xbe, 0x48, 0x9f, 0x30, 0x45, 0x9b, 0x5a, 0x44, 0x87, 0xf9, 0x3a, 0x2c,
+ 0xef, 0xd2, 0x80, 0xfb, 0xee, 0x38, 0x11, 0xa1, 0x7b, 0x10, 0x20, 0x10, 0xb5, 0xf7, 0x20, 0x11,
+ 0xe1, 0xe3, 0xfc, 0x82, 0x7d, 0x1b, 0x2e, 0x88, 0x91, 0x64, 0xc9, 0xae, 0x42, 0x54, 0xb2, 0x20,
+ 0xa3, 0xdb, 0xc0, 0xf9, 0xe2, 0xee, 0xe3, 0xe3, 0x00, 0xc6, 0xeb, 0x5d, 0xa2, 0xe7, 0x65, 0x38,
+ 0x8b, 0x00, 0x43, 0x03, 0x2b, 0x47, 0x0f, 0xf6, 0xe2, 0xd4, 0x37, 0x91, 0x2a, 0x4c, 0x7d, 0x9f,
+ 0xac, 0x82, 0x6d, 0x50, 0x9b, 0xf4, 0x12, 0x1e, 0x2b, 0xa6, 0x92, 0x2a, 0xf3, 0x45, 0x4d, 0xdf,
+ 0x54, 0xe4, 0xa1, 0x4f, 0x3a, 0x50, 0xd3, 0x5d, 0x03, 0xc1, 0x2b, 0x4e, 0xc0, 0x6c, 0x49, 0xde,
+ 0x80, 0x06, 0x95, 0x3b, 0xae, 0x27, 0x26, 0x51, 0x06, 0x3a, 0xeb, 0x54, 0xee, 0xac, 0xe3, 0x1a,
+ 0x37, 0x43, 0x1e, 0x99, 0x4d, 0x5d, 0x36, 0xf5, 0x90, 0x47, 0x7a, 0x73, 0x1b, 0x1a, 0x63, 0xc6,
+ 0x0c, 0x5c, 0xad, 0xaa, 0x79, 0x76, 0xb1, 0xaf, 0x13, 0xd4, 0xc7, 0xde, 0x9c, 0x3b, 0x8e, 0xcd,
+ 0x7a, 0xed, 0x3a, 0xba, 0xfc, 0xab, 0xbf, 0xad, 0xac, 0x6e, 0xf1, 0x74, 0x7b, 0x32, 0xea, 0x7b,
+ 0x22, 0x1c, 0x98, 0x87, 0x82, 0xfe, 0x77, 0x4d, 0xfa, 0x3b, 0x03, 0x44, 0x9f, 0x52, 0x09, 0x48,
+ 0xa7, 0x3e, 0x66, 0x4c, 0x61, 0x5b, 0xb2, 0x82, 0x91, 0x66, 0x31, 0x4d, 0x18, 0x02, 0xe4, 0x4e,
+ 0x4d, 0x19, 0x02, 0x86, 0xf4, 0x3e, 0x95, 0xc8, 0xc0, 0xf6, 0x98, 0x37, 0x49, 0x35, 0x43, 0x5d,
+ 0x33, 0x18, 0x12, 0x32, 0xac, 0x82, 0x8d, 0x8e, 0x48, 0x31, 0x49, 0x3c, 0x66, 0xfc, 0x69, 0x28,
+ 0xae, 0xc5, 0x90, 0x47, 0x9b, 0x8a, 0xac, 0xbc, 0x52, 0xe0, 0xe7, 0x79, 0x09, 0xda, 0x98, 0x8c,
+ 0xe1, 0xda, 0xba, 0x79, 0x95, 0xac, 0x82, 0x3d, 0xa2, 0x91, 0xef, 0xf2, 0x91, 0xe7, 0xb2, 0x88,
+ 0x8e, 0x02, 0xa6, 0xd3, 0x51, 0x77, 0x16, 0x91, 0x3e, 0x1c, 0x79, 0xf7, 0x35, 0x15, 0xcb, 0x0f,
+ 0x99, 0xf2, 0xb4, 0x45, 0x29, 0x96, 0x4e, 0x60, 0xf2, 0x42, 0xf8, 0xc8, 0x33, 0xc9, 0x1d, 0x9a,
+ 0x1d, 0xf2, 0x2e, 0x20, 0x35, 0xb7, 0x6d, 0x9b, 0x46, 0x11, 0x0b, 0xcc, 0x54, 0xb2, 0xf9, 0xc8,
+ 0x33, 0xd6, 0x69, 0x3a, 0xba, 0x8a, 0xdc, 0xbb, 0x2c, 0x91, 0x5c, 0x44, 0xba, 0x19, 0x38, 0xc0,
+ 0x47, 0xde, 0x53, 0x4d, 0x21, 0x5d, 0xcd, 0xa0, 0xee, 0x10, 0xf7, 0x55, 0xd6, 0x1a, 0x4e, 0x83,
+ 0x8f, 0xbc, 0x0d, 0x91, 0x60, 0x29, 0x5c, 0x85, 0xb3, 0x81, 0x6a, 0x10, 0xae, 0xa9, 0x1d, 0xee,
+ 0x4b, 0x95, 0xbe, 0xb2, 0xb3, 0xa4, 0x37, 0xcc, 0x7b, 0xc1, 0x97, 0x2a, 0x18, 0x3f, 0xb3, 0x60,
+ 0x79, 0x53, 0x15, 0x8b, 0x2a, 0xe0, 0x59, 0xfd, 0x7f, 0x0f, 0xaa, 0x5a, 0x83, 0x8a, 0xc4, 0x69,
+ 0x9f, 0x0b, 0x46, 0x06, 0x4b, 0x4b, 0x97, 0x60, 0x56, 0xb4, 0x0d, 0xa7, 0xae, 0x09, 0x43, 0xff,
+ 0x84, 0xc6, 0x3d, 0x85, 0x73, 0x8f, 0xa8, 0x4c, 0xf7, 0x9b, 0x23, 0xc9, 0x08, 0xce, 0x07, 0x54,
+ 0x9a, 0xc6, 0x31, 0xbb, 0xc4, 0xb2, 0x63, 0xa9, 0xda, 0xec, 0x1f, 0x6f, 0xde, 0x51, 0xee, 0x39,
+ 0xe7, 0x82, 0xc3, 0x67, 0xf4, 0xfe, 0x64, 0x21, 0xee, 0xe4, 0x1e, 0x73, 0x98, 0x27, 0x12, 0x5f,
+ 0x7e, 0x99, 0x41, 0xf8, 0x11, 0x2c, 0x07, 0x08, 0xf1, 0x32, 0x8f, 0x12, 0x7d, 0xa4, 0xba, 0xc0,
+ 0xcd, 0x9b, 0x57, 0x4e, 0x68, 0x34, 0xda, 0x40, 0x87, 0x68, 0x15, 0x45, 0x9b, 0x7b, 0x63, 0x68,
+ 0x16, 0xd6, 0x87, 0xd1, 0x47, 0x31, 0xd8, 0xb3, 0x71, 0x5e, 0x9a, 0x1b, 0xa8, 0xfd, 0xa7, 0x0c,
+ 0xe4, 0x07, 0x2c, 0xa5, 0xbe, 0x1a, 0x01, 0x34, 0xe5, 0x32, 0xe5, 0x9e, 0xba, 0xac, 0x5b, 0x89,
+ 0x98, 0xc4, 0xe6, 0x1a, 0xe2, 0x89, 0x6d, 0x07, 0x14, 0x49, 0x37, 0x96, 0x3e, 0x9c, 0x33, 0xbe,
+ 0xba, 0x92, 0x86, 0x31, 0xb6, 0x37, 0xfe, 0x4c, 0x1b, 0xd0, 0x76, 0xce, 0x9a, 0xad, 0x4d, 0xb5,
+ 0xb3, 0xc9, 0x9f, 0x31, 0x1c, 0x8c, 0x21, 0xa3, 0xd1, 0x3c, 0x43, 0x55, 0x09, 0xa0, 0x60, 0xfa,
+ 0x31, 0x8d, 0xe7, 0x9a, 0xa8, 0x28, 0x40, 0xbe, 0x09, 0x4b, 0x63, 0x9e, 0xc8, 0xb4, 0x30, 0x2a,
+ 0x16, 0x74, 0xdf, 0x55, 0xe4, 0xd9, 0x1d, 0xb9, 0x02, 0x8b, 0xaa, 0x26, 0x67, 0x7c, 0x55, 0xc5,
+ 0xd7, 0x46, 0xea, 0x8c, 0xed, 0x8e, 0xee, 0xb3, 0x3a, 0xd0, 0xb5, 0x39, 0xc0, 0x45, 0xc8, 0x23,
+ 0x3d, 0xf5, 0x50, 0x03, 0xdd, 0x33, 0x1a, 0xea, 0xf3, 0x68, 0xa0, 0x7b, 0x5a, 0xc3, 0x03, 0x68,
+ 0x85, 0xcc, 0xe7, 0x34, 0x33, 0xa3, 0x71, 0x7a, 0x25, 0x4d, 0x2d, 0xa8, 0xf4, 0xf4, 0xfe, 0x61,
+ 0x81, 0xad, 0xbe, 0xee, 0xa6, 0x58, 0x79, 0x6a, 0x6a, 0xbe, 0x0a, 0x58, 0x2d, 0x17, 0x0b, 0xac,
+ 0x9c, 0x41, 0x41, 0x62, 0xc0, 0x8e, 0x9e, 0xda, 0x1a, 0xc7, 0x10, 0xa8, 0xb0, 0xbd, 0x58, 0xa8,
+ 0x74, 0x2d, 0x38, 0xea, 0x1b, 0x6f, 0xd0, 0x0c, 0x96, 0xe9, 0x1c, 0xcc, 0x10, 0xd7, 0xc5, 0x02,
+ 0xe2, 0xaa, 0x2a, 0x45, 0x39, 0x98, 0x32, 0x5b, 0x4a, 0x5f, 0x4d, 0xe9, 0xc3, 0xad, 0xfb, 0xa8,
+ 0xf2, 0x20, 0x5c, 0xaa, 0x2b, 0xad, 0x45, 0xb8, 0xd4, 0xfb, 0x29, 0x34, 0xee, 0x4a, 0xc9, 0xd2,
+ 0x0d, 0xca, 0x13, 0x54, 0x45, 0x71, 0x51, 0xf0, 0x4d, 0xad, 0x87, 0x3e, 0x79, 0x02, 0x6d, 0xc9,
+ 0xb7, 0x22, 0xe6, 0x6b, 0x03, 0xb3, 0x67, 0xdf, 0xf5, 0x57, 0xb4, 0x22, 0xc5, 0xae, 0xcc, 0xff,
+ 0x60, 0x9c, 0x9f, 0xe1, 0xb4, 0xe4, 0x8c, 0x2e, 0x7b, 0xbf, 0xb5, 0xe0, 0xc2, 0xd1, 0x8c, 0xea,
+ 0xe7, 0x33, 0x6d, 0x28, 0x4b, 0x5c, 0x7c, 0xdd, 0x64, 0x3f, 0x9f, 0x65, 0xc4, 0x87, 0x6c, 0x7a,
+ 0xc2, 0xb3, 0x28, 0xbf, 0xf1, 0xe5, 0xb9, 0x01, 0xfc, 0x9b, 0xd0, 0x40, 0x43, 0x69, 0x3a, 0x49,
+ 0xf4, 0x1b, 0xaa, 0xe5, 0xcc, 0x08, 0x68, 0xf6, 0x52, 0x8e, 0x0b, 0xf5, 0x0f, 0x63, 0x07, 0x81,
+ 0x60, 0x2b, 0x07, 0x82, 0x2b, 0xd0, 0x1c, 0x4f, 0x82, 0xc0, 0xfc, 0xe6, 0xa6, 0xac, 0x6c, 0x39,
+ 0x80, 0x24, 0x23, 0xf9, 0x55, 0xe1, 0xbc, 0xab, 0x7f, 0xb6, 0xb2, 0x9f, 0xd0, 0xb0, 0x77, 0x93,
+ 0x25, 0x68, 0x3e, 0x89, 0x64, 0xcc, 0x3c, 0xf5, 0x9b, 0x9f, 0x7d, 0x86, 0xb4, 0xa0, 0x82, 0x60,
+ 0xc1, 0xb6, 0x2e, 0x95, 0xea, 0x16, 0x69, 0x43, 0x23, 0x7f, 0xea, 0xda, 0x25, 0xd2, 0x82, 0x7a,
+ 0xf6, 0x56, 0xb5, 0xcb, 0xb8, 0x99, 0x07, 0xc0, 0xae, 0x90, 0x06, 0x2c, 0x38, 0xf4, 0x99, 0x48,
+ 0xec, 0x05, 0x52, 0x83, 0xf2, 0x3d, 0x4e, 0xed, 0x2a, 0xa9, 0x43, 0xe5, 0xee, 0xc6, 0xf0, 0x3d,
+ 0xbb, 0x86, 0xa4, 0x27, 0x21, 0xb5, 0xeb, 0x48, 0xc2, 0x77, 0x8a, 0xdd, 0x20, 0x4b, 0x50, 0x33,
+ 0xb8, 0xc4, 0x06, 0x75, 0x5a, 0x0b, 0xea, 0xd9, 0xeb, 0xdf, 0x6e, 0xa2, 0x3e, 0xf5, 0xb4, 0xb4,
+ 0x5b, 0xa4, 0x03, 0xcb, 0x47, 0x41, 0x70, 0xbb, 0xbd, 0xf6, 0xe1, 0x27, 0x2f, 0xba, 0xd6, 0xa7,
+ 0x2f, 0xba, 0xd6, 0xdf, 0x5f, 0x74, 0xad, 0x9f, 0xbf, 0xec, 0x9e, 0xf9, 0xe3, 0xcb, 0xae, 0xf5,
+ 0xe9, 0xcb, 0xee, 0x99, 0xcf, 0x5f, 0x76, 0xcf, 0xfc, 0xf8, 0x51, 0x01, 0x9e, 0x0d, 0xb3, 0x22,
+ 0x7d, 0x44, 0x47, 0x72, 0x90, 0x97, 0xec, 0x35, 0x4f, 0x24, 0xac, 0xb8, 0xc4, 0x73, 0x06, 0xa1,
+ 0xf0, 0x27, 0x01, 0x93, 0xd9, 0x2f, 0xc9, 0x0a, 0xc8, 0x8d, 0xaa, 0xea, 0xe7, 0xdd, 0xf7, 0xfe,
+ 0x1b, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x82, 0xc0, 0x20, 0x6a, 0x16, 0x00, 0x00,
}
func (this *Params) Equal(that interface{}) bool {
@@ -1805,6 +1996,15 @@ func (this *Params) Equal(that interface{}) bool {
if this.PythContract != that1.PythContract {
return false
}
+ if this.ChainlinkVerifierProxyContract != that1.ChainlinkVerifierProxyContract {
+ return false
+ }
+ if this.AcceptUnverifiedChainlinkDataStreamsReports != that1.AcceptUnverifiedChainlinkDataStreamsReports {
+ return false
+ }
+ if this.ChainlinkDataStreamsVerificationGasLimit != that1.ChainlinkDataStreamsVerificationGasLimit {
+ return false
+ }
return true
}
func (m *Params) Marshal() (dAtA []byte, err error) {
@@ -1827,6 +2027,28 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.ChainlinkDataStreamsVerificationGasLimit != 0 {
+ i = encodeVarintOracle(dAtA, i, uint64(m.ChainlinkDataStreamsVerificationGasLimit))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.AcceptUnverifiedChainlinkDataStreamsReports {
+ i--
+ if m.AcceptUnverifiedChainlinkDataStreamsReports {
+ dAtA[i] = 1
+ } else {
+ dAtA[i] = 0
+ }
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.ChainlinkVerifierProxyContract) > 0 {
+ i -= len(m.ChainlinkVerifierProxyContract)
+ copy(dAtA[i:], m.ChainlinkVerifierProxyContract)
+ i = encodeVarintOracle(dAtA, i, uint64(len(m.ChainlinkVerifierProxyContract)))
+ i--
+ dAtA[i] = 0x12
+ }
if len(m.PythContract) > 0 {
i -= len(m.PythContract)
copy(dAtA[i:], m.PythContract)
@@ -2480,6 +2702,66 @@ func (m *PythPriceState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
+func (m *ChainlinkDataStreamsPriceState) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChainlinkDataStreamsPriceState) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ChainlinkDataStreamsPriceState) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ {
+ size, err := m.PriceState.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintOracle(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
+ if m.ObservationsTimestamp != 0 {
+ i = encodeVarintOracle(dAtA, i, uint64(m.ObservationsTimestamp))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.ValidFromTimestamp != 0 {
+ i = encodeVarintOracle(dAtA, i, uint64(m.ValidFromTimestamp))
+ i--
+ dAtA[i] = 0x18
+ }
+ {
+ size := m.ReportPrice.Size()
+ i -= size
+ if _, err := m.ReportPrice.MarshalTo(dAtA[i:]); err != nil {
+ return 0, err
+ }
+ i = encodeVarintOracle(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ if len(m.FeedId) > 0 {
+ i -= len(m.FeedId)
+ copy(dAtA[i:], m.FeedId)
+ i = encodeVarintOracle(dAtA, i, uint64(len(m.FeedId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *BandOracleRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -2582,21 +2864,21 @@ func (m *BandIBCParams) MarshalToSizedBuffer(dAtA []byte) (int, error) {
var l int
_ = l
if len(m.LegacyOracleIds) > 0 {
- dAtA10 := make([]byte, len(m.LegacyOracleIds)*10)
- var j9 int
+ dAtA11 := make([]byte, len(m.LegacyOracleIds)*10)
+ var j10 int
for _, num1 := range m.LegacyOracleIds {
num := uint64(num1)
for num >= 1<<7 {
- dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80)
+ dAtA11[j10] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
- j9++
+ j10++
}
- dAtA10[j9] = uint8(num)
- j9++
+ dAtA11[j10] = uint8(num)
+ j10++
}
- i -= j9
- copy(dAtA[i:], dAtA10[:j9])
- i = encodeVarintOracle(dAtA, i, uint64(j9))
+ i -= j10
+ copy(dAtA[i:], dAtA11[:j10])
+ i = encodeVarintOracle(dAtA, i, uint64(j10))
i--
dAtA[i] = 0x32
}
@@ -3057,6 +3339,53 @@ func (m *SignedPriceOfAssetPair) MarshalToSizedBuffer(dAtA []byte) (int, error)
return len(dAtA) - i, nil
}
+func (m *ChainlinkReport) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *ChainlinkReport) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ChainlinkReport) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.ObservationsTimestamp != 0 {
+ i = encodeVarintOracle(dAtA, i, uint64(m.ObservationsTimestamp))
+ i--
+ dAtA[i] = 0x20
+ }
+ if m.ValidFromTimestamp != 0 {
+ i = encodeVarintOracle(dAtA, i, uint64(m.ValidFromTimestamp))
+ i--
+ dAtA[i] = 0x18
+ }
+ if len(m.FullReport) > 0 {
+ i -= len(m.FullReport)
+ copy(dAtA[i:], m.FullReport)
+ i = encodeVarintOracle(dAtA, i, uint64(len(m.FullReport)))
+ i--
+ dAtA[i] = 0x12
+ }
+ if len(m.FeedId) > 0 {
+ i -= len(m.FeedId)
+ copy(dAtA[i:], m.FeedId)
+ i = encodeVarintOracle(dAtA, i, uint64(len(m.FeedId)))
+ i--
+ dAtA[i] = 0xa
+ }
+ return len(dAtA) - i, nil
+}
+
func encodeVarintOracle(dAtA []byte, offset int, v uint64) int {
offset -= sovOracle(v)
base := offset
@@ -3078,6 +3407,16 @@ func (m *Params) Size() (n int) {
if l > 0 {
n += 1 + l + sovOracle(uint64(l))
}
+ l = len(m.ChainlinkVerifierProxyContract)
+ if l > 0 {
+ n += 1 + l + sovOracle(uint64(l))
+ }
+ if m.AcceptUnverifiedChainlinkDataStreamsReports {
+ n += 2
+ }
+ if m.ChainlinkDataStreamsVerificationGasLimit != 0 {
+ n += 1 + sovOracle(uint64(m.ChainlinkDataStreamsVerificationGasLimit))
+ }
return n
}
@@ -3335,6 +3674,29 @@ func (m *PythPriceState) Size() (n int) {
return n
}
+func (m *ChainlinkDataStreamsPriceState) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.FeedId)
+ if l > 0 {
+ n += 1 + l + sovOracle(uint64(l))
+ }
+ l = m.ReportPrice.Size()
+ n += 1 + l + sovOracle(uint64(l))
+ if m.ValidFromTimestamp != 0 {
+ n += 1 + sovOracle(uint64(m.ValidFromTimestamp))
+ }
+ if m.ObservationsTimestamp != 0 {
+ n += 1 + sovOracle(uint64(m.ObservationsTimestamp))
+ }
+ l = m.PriceState.Size()
+ n += 1 + l + sovOracle(uint64(l))
+ return n
+}
+
func (m *BandOracleRequest) Size() (n int) {
if m == nil {
return 0
@@ -3587,12 +3949,35 @@ func (m *SignedPriceOfAssetPair) Size() (n int) {
return n
}
-func sovOracle(x uint64) (n int) {
- return (math_bits.Len64(x|1) + 6) / 7
-}
-func sozOracle(x uint64) (n int) {
- return sovOracle(uint64((x << 1) ^ uint64((int64(x) >> 63))))
-}
+func (m *ChainlinkReport) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = len(m.FeedId)
+ if l > 0 {
+ n += 1 + l + sovOracle(uint64(l))
+ }
+ l = len(m.FullReport)
+ if l > 0 {
+ n += 1 + l + sovOracle(uint64(l))
+ }
+ if m.ValidFromTimestamp != 0 {
+ n += 1 + sovOracle(uint64(m.ValidFromTimestamp))
+ }
+ if m.ObservationsTimestamp != 0 {
+ n += 1 + sovOracle(uint64(m.ObservationsTimestamp))
+ }
+ return n
+}
+
+func sovOracle(x uint64) (n int) {
+ return (math_bits.Len64(x|1) + 6) / 7
+}
+func sozOracle(x uint64) (n int) {
+ return sovOracle(uint64((x << 1) ^ uint64((int64(x) >> 63))))
+}
func (m *Params) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -3654,6 +4039,77 @@ func (m *Params) Unmarshal(dAtA []byte) error {
}
m.PythContract = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChainlinkVerifierProxyContract", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthOracle
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOracle
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.ChainlinkVerifierProxyContract = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field AcceptUnverifiedChainlinkDataStreamsReports", wireType)
+ }
+ var v int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ v |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ m.AcceptUnverifiedChainlinkDataStreamsReports = bool(v != 0)
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ChainlinkDataStreamsVerificationGasLimit", wireType)
+ }
+ m.ChainlinkDataStreamsVerificationGasLimit = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ChainlinkDataStreamsVerificationGasLimit |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
default:
iNdEx = preIndex
skippy, err := skipOracle(dAtA[iNdEx:])
@@ -5589,6 +6045,193 @@ func (m *PythPriceState) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *ChainlinkDataStreamsPriceState) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChainlinkDataStreamsPriceState: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChainlinkDataStreamsPriceState: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FeedId", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthOracle
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOracle
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.FeedId = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ReportPrice", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthOracle
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOracle
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ReportPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ValidFromTimestamp", wireType)
+ }
+ m.ValidFromTimestamp = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ValidFromTimestamp |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ObservationsTimestamp", wireType)
+ }
+ m.ObservationsTimestamp = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ObservationsTimestamp |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PriceState", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthOracle
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthOracle
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.PriceState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipOracle(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthOracle
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *BandOracleRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -7337,6 +7980,162 @@ func (m *SignedPriceOfAssetPair) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *ChainlinkReport) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: ChainlinkReport: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ChainlinkReport: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FeedId", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return ErrInvalidLengthOracle
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOracle
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.FeedId = append(m.FeedId[:0], dAtA[iNdEx:postIndex]...)
+ if m.FeedId == nil {
+ m.FeedId = []byte{}
+ }
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field FullReport", wireType)
+ }
+ var byteLen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ byteLen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if byteLen < 0 {
+ return ErrInvalidLengthOracle
+ }
+ postIndex := iNdEx + byteLen
+ if postIndex < 0 {
+ return ErrInvalidLengthOracle
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.FullReport = append(m.FullReport[:0], dAtA[iNdEx:postIndex]...)
+ if m.FullReport == nil {
+ m.FullReport = []byte{}
+ }
+ iNdEx = postIndex
+ case 3:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ValidFromTimestamp", wireType)
+ }
+ m.ValidFromTimestamp = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ValidFromTimestamp |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ case 4:
+ if wireType != 0 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ObservationsTimestamp", wireType)
+ }
+ m.ObservationsTimestamp = 0
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowOracle
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ m.ObservationsTimestamp |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ default:
+ iNdEx = preIndex
+ skippy, err := skipOracle(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthOracle
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func skipOracle(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/chain/oracle/types/params.go b/chain/oracle/types/params.go
index 32aabfb1..d7ab55c0 100644
--- a/chain/oracle/types/params.go
+++ b/chain/oracle/types/params.go
@@ -6,6 +6,7 @@ import (
"cosmossdk.io/math"
sdk "github.com/cosmos/cosmos-sdk/types"
paramtypes "github.com/cosmos/cosmos-sdk/x/params/types"
+ "github.com/ethereum/go-ethereum/common"
)
var _ paramtypes.ParamSet = &Params{}
@@ -51,7 +52,10 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs {
// DefaultParams returns a default set of parameters.
func DefaultParams() Params {
return Params{
- PythContract: "",
+ PythContract: "",
+ ChainlinkVerifierProxyContract: "",
+ AcceptUnverifiedChainlinkDataStreamsReports: true,
+ ChainlinkDataStreamsVerificationGasLimit: 500_000,
}
}
@@ -65,8 +69,14 @@ func DefaultBandIBCParams() BandIBCParams {
}
}
-// Validate performs basic validation on auction parameters.
+// Validate performs basic validation on oracle parameters.
func (p Params) Validate() error {
+ if err := validatePythContract(p.PythContract); err != nil {
+ return fmt.Errorf("pyth_contract is incorrect: %w", err)
+ }
+ if err := ValidateChainlinkVerifierProxyContract(p.ChainlinkVerifierProxyContract); err != nil {
+ return fmt.Errorf("chainlink_verifier_proxy_contract is incorrect: %w", err)
+ }
return nil
}
@@ -102,3 +112,21 @@ func validatePythContract(i interface{}) error {
return nil
}
+
+// ValidateChainlinkVerifierProxyContract validates the Chainlink verifier proxy contract address.
+func ValidateChainlinkVerifierProxyContract(i any) error {
+ v, ok := i.(string)
+ if !ok {
+ return fmt.Errorf("invalid parameter type: %T", i)
+ }
+
+ if v == "" {
+ return nil
+ }
+
+ if !common.IsHexAddress(v) {
+ return fmt.Errorf("invalid Ethereum address: %s", v)
+ }
+
+ return nil
+}
diff --git a/chain/oracle/types/proposal.go b/chain/oracle/types/proposal.go
index 2a6e8ce2..13a8ea21 100644
--- a/chain/oracle/types/proposal.go
+++ b/chain/oracle/types/proposal.go
@@ -4,16 +4,10 @@ import (
"fmt"
"strings"
- "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
- sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
- bandobi "github.com/bandprotocol/bandchain-packet/obi"
"github.com/ethereum/go-ethereum/common"
-
- bandprice "github.com/InjectiveLabs/sdk-go/chain/oracle/bandchain/hooks/price"
- bandoracle "github.com/InjectiveLabs/sdk-go/chain/oracle/bandchain/oracle/types"
)
// constants
@@ -46,73 +40,19 @@ func init() {
}
// Implements Proposal Interface
-var _ govtypes.Content = &GrantBandOraclePrivilegeProposal{}
-var _ govtypes.Content = &RevokeBandOraclePrivilegeProposal{}
var _ govtypes.Content = &GrantPriceFeederPrivilegeProposal{}
var _ govtypes.Content = &RevokePriceFeederPrivilegeProposal{}
-var _ govtypes.Content = &AuthorizeBandOracleRequestProposal{}
-var _ govtypes.Content = &UpdateBandOracleRequestProposal{}
-var _ govtypes.Content = &EnableBandIBCProposal{}
var _ govtypes.Content = &GrantProviderPrivilegeProposal{}
var _ govtypes.Content = &RevokeProviderPrivilegeProposal{}
var _ govtypes.Content = &GrantStorkPublisherPrivilegeProposal{}
var _ govtypes.Content = &RevokeStorkPublisherPrivilegeProposal{}
-// GetTitle returns the title of this proposal.
-func (p *GrantBandOraclePrivilegeProposal) GetTitle() string {
- return p.Title
-}
-
-// GetDescription returns the description of this proposal.
-func (p *GrantBandOraclePrivilegeProposal) GetDescription() string {
- return p.Description
-}
-
-// ProposalRoute returns router key of this proposal.
-func (p *GrantBandOraclePrivilegeProposal) ProposalRoute() string { return RouterKey }
-
-// ProposalType returns proposal type of this proposal.
-func (p *GrantBandOraclePrivilegeProposal) ProposalType() string {
- return ProposalTypeGrantBandOraclePrivilege
-}
-
-// ValidateBasic returns ValidateBasic result of this proposal.
-func (p *GrantBandOraclePrivilegeProposal) ValidateBasic() error {
- for _, relayer := range p.Relayers {
- if _, err := sdk.AccAddressFromBech32(relayer); err != nil {
- return err
- }
- }
- return govtypes.ValidateAbstract(p)
-}
-
-// GetTitle returns the title of this proposal.
-func (p *RevokeBandOraclePrivilegeProposal) GetTitle() string {
- return p.Title
-}
-
-// GetDescription returns the description of this proposal.
-func (p *RevokeBandOraclePrivilegeProposal) GetDescription() string {
- return p.Description
-}
-
-// ProposalRoute returns router key of this proposal.
-func (p *RevokeBandOraclePrivilegeProposal) ProposalRoute() string { return RouterKey }
-
-// ProposalType returns proposal type of this proposal.
-func (p *RevokeBandOraclePrivilegeProposal) ProposalType() string {
- return ProposalTypeRevokeBandOraclePrivilege
-}
-
-// ValidateBasic returns ValidateBasic result of this proposal.
-func (p *RevokeBandOraclePrivilegeProposal) ValidateBasic() error {
- for _, relayer := range p.Relayers {
- if _, err := sdk.AccAddressFromBech32(relayer); err != nil {
- return err
- }
- }
- return govtypes.ValidateAbstract(p)
-}
+// Deprecated: Band oracle proposal types kept for backward compatibility
+var _ govtypes.Content = &GrantBandOraclePrivilegeProposal{} //nolint:staticcheck // deprecated
+var _ govtypes.Content = &RevokeBandOraclePrivilegeProposal{} //nolint:staticcheck // deprecated
+var _ govtypes.Content = &AuthorizeBandOracleRequestProposal{} //nolint:staticcheck // deprecated
+var _ govtypes.Content = &UpdateBandOracleRequestProposal{} //nolint:staticcheck // deprecated
+var _ govtypes.Content = &EnableBandIBCProposal{} //nolint:staticcheck // deprecated
// GetTitle returns the title of this proposal.
func (p *GrantPriceFeederPrivilegeProposal) GetTitle() string {
@@ -261,223 +201,146 @@ func (p *RevokeProviderPrivilegeProposal) ValidateBasic() error {
}
// GetTitle returns the title of this proposal.
-func (p *AuthorizeBandOracleRequestProposal) GetTitle() string {
+func (p *GrantStorkPublisherPrivilegeProposal) GetTitle() string {
return p.Title
}
// GetDescription returns the description of this proposal.
-func (p *AuthorizeBandOracleRequestProposal) GetDescription() string {
+func (p *GrantStorkPublisherPrivilegeProposal) GetDescription() string {
return p.Description
}
// ProposalRoute returns router key of this proposal.
-func (p *AuthorizeBandOracleRequestProposal) ProposalRoute() string { return RouterKey }
+func (p *GrantStorkPublisherPrivilegeProposal) ProposalRoute() string { return RouterKey }
// ProposalType returns proposal type of this proposal.
-func (p *AuthorizeBandOracleRequestProposal) ProposalType() string {
- return ProposalTypeRevokePriceFeederOraclePrivilege
+func (p *GrantStorkPublisherPrivilegeProposal) ProposalType() string {
+ return ProposalTypeGrantBandOraclePrivilege
}
// ValidateBasic returns ValidateBasic result of this proposal.
-func (p *AuthorizeBandOracleRequestProposal) ValidateBasic() error {
- if p.Request.OracleScriptId <= 0 {
- return errors.Wrapf(ErrInvalidBandIBCRequest, "AuthorizeBandOracleRequestProposal: Oracle script id (%d) must be positive.", p.Request.OracleScriptId)
- }
-
- if len(p.Request.Symbols) == 0 {
- return errors.Wrap(ErrBadSymbolsCount, "AuthorizeBandOracleRequestProposal")
- }
-
- callData, err := bandobi.Encode(bandprice.SymbolInput{
- Symbols: p.Request.Symbols,
- MinimumSourceCount: uint8(p.Request.MinCount),
- })
- if err != nil {
- return err
- }
-
- if len(callData) > bandoracle.MaxDataSize {
- return bandoracle.WrapMaxError(bandoracle.ErrTooLargeCalldata, len(callData), bandoracle.MaxDataSize)
- }
-
- if p.Request.MinCount <= 0 {
- return errors.Wrapf(bandoracle.ErrInvalidMinCount, "AuthorizeBandOracleRequestProposal: Minimum validator count (%d) must be positive.", p.Request.MinCount)
- }
-
- if p.Request.AskCount <= 0 {
- return errors.Wrapf(bandoracle.ErrInvalidAskCount, "AuthorizeBandOracleRequestProposal: Request validator count (%d) must be positive.", p.Request.AskCount)
- }
-
- if p.Request.AskCount < p.Request.MinCount {
- return errors.Wrapf(bandoracle.ErrInvalidAskCount, "AuthorizeBandOracleRequestProposal: Request validator count (%d) must not be less than sufficient validator count (%d).", p.Request.AskCount, p.Request.MinCount)
- }
-
- if !p.Request.FeeLimit.IsValid() {
- return errors.Wrapf(sdkerrors.ErrInvalidCoins, "AuthorizeBandOracleRequestProposal: Invalid Fee Limit (%s)", p.Request.GetFeeLimit().String())
- }
-
- if p.Request.PrepareGas <= 0 {
- return errors.Wrapf(bandoracle.ErrInvalidOwasmGas, "AuthorizeBandOracleRequestProposal: Invalid Prepare Gas (%d)", p.Request.GetPrepareGas())
- }
-
- if p.Request.ExecuteGas <= 0 {
- return errors.Wrapf(bandoracle.ErrInvalidOwasmGas, "AuthorizeBandOracleRequestProposal: Invalid Execute Gas (%d)", p.Request.ExecuteGas)
- }
-
- if p.Request.PrepareGas+p.Request.ExecuteGas > bandoracle.MaximumOwasmGas {
- return errors.Wrapf(bandoracle.ErrInvalidOwasmGas, "AuthorizeBandOracleRequestProposal: Sum of prepare gas and execute gas (%d) exceeds Maximum gas (%d)", (p.Request.PrepareGas + p.Request.ExecuteGas), bandoracle.MaximumOwasmGas)
+func (p *GrantStorkPublisherPrivilegeProposal) ValidateBasic() error {
+ for _, publisher := range p.StorkPublishers {
+ if !common.IsHexAddress(publisher) {
+ return fmt.Errorf("invalid publisher address: %s", publisher)
+ }
}
- return govtypes.ValidateAbstract(p)
+ return nil
}
// GetTitle returns the title of this proposal.
-func (p *EnableBandIBCProposal) GetTitle() string {
+func (p *RevokeStorkPublisherPrivilegeProposal) GetTitle() string {
return p.Title
}
// GetDescription returns the description of this proposal.
-func (p *EnableBandIBCProposal) GetDescription() string {
+func (p *RevokeStorkPublisherPrivilegeProposal) GetDescription() string {
return p.Description
}
// ProposalRoute returns router key of this proposal.
-func (p *EnableBandIBCProposal) ProposalRoute() string { return RouterKey }
+func (p *RevokeStorkPublisherPrivilegeProposal) ProposalRoute() string { return RouterKey }
// ProposalType returns proposal type of this proposal.
-func (p *EnableBandIBCProposal) ProposalType() string {
- return ProposalEnableBandIBC
+func (p *RevokeStorkPublisherPrivilegeProposal) ProposalType() string {
+ return ProposalTypeGrantBandOraclePrivilege
}
// ValidateBasic returns ValidateBasic result of this proposal.
-func (p *EnableBandIBCProposal) ValidateBasic() error {
-
- if p.BandIbcParams.IbcRequestInterval == 0 {
- return ErrBadRequestInterval
- }
-
- if p.BandIbcParams.IbcSourceChannel == "" {
- return errors.Wrap(ErrInvalidBandIBCRequest, "AuthorizeBandOracleRequestProposal: IBC Source Chanel must not be empty.")
- }
- if p.BandIbcParams.IbcVersion == "" {
- return errors.Wrap(bandoracle.ErrInvalidVersion, "AuthorizeBandOracleRequestProposal: IBC Version must not be empty.")
+func (p *RevokeStorkPublisherPrivilegeProposal) ValidateBasic() error {
+ for _, publisher := range p.StorkPublishers {
+ if !common.IsHexAddress(publisher) {
+ return fmt.Errorf("invalid publisher address: %s", publisher)
+ }
}
- return govtypes.ValidateAbstract(p)
+ return nil
}
+// Deprecated: Band oracle proposal types - kept for backward compatibility only
+
// GetTitle returns the title of this proposal.
-func (p *UpdateBandOracleRequestProposal) GetTitle() string {
- return p.Title
-}
+func (p *GrantBandOraclePrivilegeProposal) GetTitle() string { return p.Title } //nolint:staticcheck // deprecated
// GetDescription returns the description of this proposal.
-func (p *UpdateBandOracleRequestProposal) GetDescription() string {
- return p.Description
-}
+func (p *GrantBandOraclePrivilegeProposal) GetDescription() string { return p.Description } //nolint:staticcheck // deprecated
// ProposalRoute returns router key of this proposal.
-func (p *UpdateBandOracleRequestProposal) ProposalRoute() string { return RouterKey }
+func (*GrantBandOraclePrivilegeProposal) ProposalRoute() string { return RouterKey } //nolint:staticcheck // deprecated
// ProposalType returns proposal type of this proposal.
-func (p *UpdateBandOracleRequestProposal) ProposalType() string {
- return ProposalUpdateBandOracleRequest
+func (*GrantBandOraclePrivilegeProposal) ProposalType() string { //nolint:staticcheck // deprecated
+ return ProposalTypeGrantBandOraclePrivilege
}
// ValidateBasic returns ValidateBasic result of this proposal.
-func (p *UpdateBandOracleRequestProposal) ValidateBasic() error {
- if len(p.DeleteRequestIds) == 0 && p.UpdateOracleRequest == nil {
- return ErrInvalidBandIBCUpdateRequest
- }
+func (*GrantBandOraclePrivilegeProposal) ValidateBasic() error { return ErrBandOracleDeprecated } //nolint:staticcheck // deprecated
- if len(p.DeleteRequestIds) > 0 && p.UpdateOracleRequest != nil {
- return errors.Wrapf(ErrInvalidBandIBCUpdateRequest, "cannot update requestID %T and delete reqeustID %T at same time", p.UpdateOracleRequest.RequestId, p.DeleteRequestIds)
- }
+// GetTitle returns the title of this proposal.
+func (p *RevokeBandOraclePrivilegeProposal) GetTitle() string { return p.Title } //nolint:staticcheck // deprecated
- if p.UpdateOracleRequest != nil && len(p.UpdateOracleRequest.Symbols) > 0 {
- callData, err := bandobi.Encode(bandprice.SymbolInput{
- Symbols: p.UpdateOracleRequest.Symbols,
- MinimumSourceCount: uint8(p.UpdateOracleRequest.MinCount),
- })
+// GetDescription returns the description of this proposal.
+func (p *RevokeBandOraclePrivilegeProposal) GetDescription() string { return p.Description } //nolint:staticcheck // deprecated
- if err != nil {
- return err
- }
+// ProposalRoute returns router key of this proposal.
+func (*RevokeBandOraclePrivilegeProposal) ProposalRoute() string { return RouterKey } //nolint:staticcheck // deprecated
- if len(callData) > bandoracle.MaxDataSize {
- return bandoracle.WrapMaxError(bandoracle.ErrTooLargeCalldata, len(callData), bandoracle.MaxDataSize)
- }
- }
+// ProposalType returns proposal type of this proposal.
+func (*RevokeBandOraclePrivilegeProposal) ProposalType() string { //nolint:staticcheck // deprecated
+ return ProposalTypeRevokeBandOraclePrivilege
+}
- if p.UpdateOracleRequest != nil && p.UpdateOracleRequest.AskCount > 0 && p.UpdateOracleRequest.MinCount > 0 && p.UpdateOracleRequest.AskCount < p.UpdateOracleRequest.MinCount {
- return errors.Wrapf(bandoracle.ErrInvalidAskCount, "UpdateBandOracleRequestProposal: Request validator count (%d) must not be less than sufficient validator count (%d).", p.UpdateOracleRequest.AskCount, p.UpdateOracleRequest.MinCount)
- }
+// ValidateBasic returns ValidateBasic result of this proposal.
+func (*RevokeBandOraclePrivilegeProposal) ValidateBasic() error { return ErrBandOracleDeprecated } //nolint:staticcheck // deprecated
- if p.UpdateOracleRequest != nil && p.UpdateOracleRequest.FeeLimit != nil && !p.UpdateOracleRequest.FeeLimit.IsValid() {
- return errors.Wrapf(sdkerrors.ErrInvalidCoins, "UpdateBandOracleRequestProposal: Invalid Fee Limit (%s)", p.UpdateOracleRequest.GetFeeLimit().String())
- }
+// GetTitle returns the title of this proposal.
+func (p *AuthorizeBandOracleRequestProposal) GetTitle() string { return p.Title } //nolint:staticcheck // deprecated
- if p.UpdateOracleRequest != nil && p.UpdateOracleRequest.PrepareGas > 0 && p.UpdateOracleRequest.ExecuteGas > 0 && p.UpdateOracleRequest.PrepareGas+p.UpdateOracleRequest.ExecuteGas > bandoracle.MaximumOwasmGas {
- return errors.Wrapf(bandoracle.ErrInvalidOwasmGas, "UpdateBandOracleRequestProposal: Sum of prepare gas and execute gas (%d) exceeds Maximum gas (%d)", (p.UpdateOracleRequest.PrepareGas + p.UpdateOracleRequest.ExecuteGas), bandoracle.MaximumOwasmGas)
- }
+// GetDescription returns the description of this proposal.
+func (p *AuthorizeBandOracleRequestProposal) GetDescription() string { return p.Description } //nolint:staticcheck // deprecated
- return govtypes.ValidateAbstract(p)
+// ProposalRoute returns router key of this proposal.
+func (*AuthorizeBandOracleRequestProposal) ProposalRoute() string { return RouterKey } //nolint:staticcheck // deprecated
+
+// ProposalType returns proposal type of this proposal.
+func (*AuthorizeBandOracleRequestProposal) ProposalType() string { //nolint:staticcheck // deprecated
+ return ProposalAuthorizeBandOracleRequest
}
+// ValidateBasic returns ValidateBasic result of this proposal.
+func (*AuthorizeBandOracleRequestProposal) ValidateBasic() error { return ErrBandOracleDeprecated } //nolint:staticcheck // deprecated
+
// GetTitle returns the title of this proposal.
-func (p *GrantStorkPublisherPrivilegeProposal) GetTitle() string {
- return p.Title
-}
+func (p *UpdateBandOracleRequestProposal) GetTitle() string { return p.Title } //nolint:staticcheck // deprecated
// GetDescription returns the description of this proposal.
-func (p *GrantStorkPublisherPrivilegeProposal) GetDescription() string {
- return p.Description
-}
+func (p *UpdateBandOracleRequestProposal) GetDescription() string { return p.Description } //nolint:staticcheck // deprecated
// ProposalRoute returns router key of this proposal.
-func (p *GrantStorkPublisherPrivilegeProposal) ProposalRoute() string { return RouterKey }
+func (*UpdateBandOracleRequestProposal) ProposalRoute() string { return RouterKey } //nolint:staticcheck // deprecated
// ProposalType returns proposal type of this proposal.
-func (p *GrantStorkPublisherPrivilegeProposal) ProposalType() string {
- return ProposalTypeGrantBandOraclePrivilege
+func (*UpdateBandOracleRequestProposal) ProposalType() string { //nolint:staticcheck // deprecated
+ return ProposalUpdateBandOracleRequest
}
// ValidateBasic returns ValidateBasic result of this proposal.
-func (p *GrantStorkPublisherPrivilegeProposal) ValidateBasic() error {
- for _, publisher := range p.StorkPublishers {
- if !common.IsHexAddress(publisher) {
- return fmt.Errorf("invalid publisher address: %s", publisher)
- }
- }
-
- return nil
-}
+func (*UpdateBandOracleRequestProposal) ValidateBasic() error { return ErrBandOracleDeprecated } //nolint:staticcheck // deprecated
// GetTitle returns the title of this proposal.
-func (p *RevokeStorkPublisherPrivilegeProposal) GetTitle() string {
- return p.Title
-}
+func (p *EnableBandIBCProposal) GetTitle() string { return p.Title } //nolint:staticcheck // deprecated
// GetDescription returns the description of this proposal.
-func (p *RevokeStorkPublisherPrivilegeProposal) GetDescription() string {
- return p.Description
-}
+func (p *EnableBandIBCProposal) GetDescription() string { return p.Description } //nolint:staticcheck // deprecated
// ProposalRoute returns router key of this proposal.
-func (p *RevokeStorkPublisherPrivilegeProposal) ProposalRoute() string { return RouterKey }
+func (*EnableBandIBCProposal) ProposalRoute() string { return RouterKey } //nolint:staticcheck // deprecated
// ProposalType returns proposal type of this proposal.
-func (p *RevokeStorkPublisherPrivilegeProposal) ProposalType() string {
- return ProposalTypeGrantBandOraclePrivilege
+func (*EnableBandIBCProposal) ProposalType() string { //nolint:staticcheck // deprecated
+ return ProposalEnableBandIBC
}
// ValidateBasic returns ValidateBasic result of this proposal.
-func (p *RevokeStorkPublisherPrivilegeProposal) ValidateBasic() error {
- for _, publisher := range p.StorkPublishers {
- if !common.IsHexAddress(publisher) {
- return fmt.Errorf("invalid publisher address: %s", publisher)
- }
- }
-
- return nil
-}
+func (*EnableBandIBCProposal) ValidateBasic() error { return ErrBandOracleDeprecated } //nolint:staticcheck // deprecated
diff --git a/chain/oracle/types/proposal.pb.go b/chain/oracle/types/proposal.pb.go
index ee61f7b4..0a4c6002 100644
--- a/chain/oracle/types/proposal.pb.go
+++ b/chain/oracle/types/proposal.pb.go
@@ -26,6 +26,10 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
+//
+// Deprecated: Do not use.
type GrantBandOraclePrivilegeProposal struct {
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
@@ -65,6 +69,10 @@ func (m *GrantBandOraclePrivilegeProposal) XXX_DiscardUnknown() {
var xxx_messageInfo_GrantBandOraclePrivilegeProposal proto.InternalMessageInfo
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
+//
+// Deprecated: Do not use.
type RevokeBandOraclePrivilegeProposal struct {
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
@@ -266,6 +274,10 @@ func (m *RevokePriceFeederPrivilegeProposal) XXX_DiscardUnknown() {
var xxx_messageInfo_RevokePriceFeederPrivilegeProposal proto.InternalMessageInfo
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
+//
+// Deprecated: Do not use.
type AuthorizeBandOracleRequestProposal struct {
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
@@ -305,6 +317,10 @@ func (m *AuthorizeBandOracleRequestProposal) XXX_DiscardUnknown() {
var xxx_messageInfo_AuthorizeBandOracleRequestProposal proto.InternalMessageInfo
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
+//
+// Deprecated: Do not use.
type UpdateBandOracleRequestProposal struct {
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
@@ -345,6 +361,10 @@ func (m *UpdateBandOracleRequestProposal) XXX_DiscardUnknown() {
var xxx_messageInfo_UpdateBandOracleRequestProposal proto.InternalMessageInfo
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
+//
+// Deprecated: Do not use.
type EnableBandIBCProposal struct {
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
@@ -481,54 +501,54 @@ func init() {
}
var fileDescriptor_c5a187f865fd0c5b = []byte{
- // 739 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0x41, 0x4f, 0x13, 0x5b,
- 0x14, 0xc7, 0x7b, 0xa1, 0xbc, 0x07, 0x97, 0xbc, 0xc0, 0xeb, 0x83, 0xa4, 0xaf, 0x31, 0xd3, 0x32,
- 0x11, 0x01, 0x81, 0x4e, 0xd0, 0x1d, 0x3b, 0x4b, 0x94, 0x34, 0x92, 0x58, 0x07, 0xd1, 0xc4, 0xcd,
- 0xe4, 0xce, 0xcc, 0xb5, 0xbd, 0x32, 0x9d, 0x3b, 0xdc, 0x7b, 0xdb, 0x04, 0x3f, 0x81, 0x71, 0xe5,
- 0x47, 0xe0, 0x23, 0xb8, 0x70, 0xe7, 0x17, 0x20, 0xc4, 0x05, 0x4b, 0x57, 0x46, 0x5b, 0x13, 0xdd,
- 0xb9, 0x33, 0xee, 0x34, 0xbd, 0xf7, 0x4e, 0x6d, 0xd1, 0xd2, 0x0a, 0xa8, 0x6c, 0x9a, 0x39, 0xe7,
- 0x9e, 0x39, 0xe7, 0xfc, 0x4e, 0xff, 0x73, 0x66, 0xe0, 0x1c, 0x09, 0x1f, 0x62, 0x4f, 0x90, 0x3a,
- 0xb6, 0x28, 0x43, 0x5e, 0x80, 0xad, 0xfa, 0x8a, 0x8b, 0x05, 0x5a, 0xb1, 0x22, 0x46, 0x23, 0xca,
- 0x51, 0x90, 0x8f, 0x18, 0x15, 0x34, 0x95, 0x6e, 0x07, 0xe6, 0x55, 0x60, 0x5e, 0x07, 0x66, 0x0c,
- 0x8f, 0xf2, 0x2a, 0xe5, 0x96, 0x8b, 0xf8, 0xb7, 0xbb, 0x3d, 0x4a, 0x42, 0x75, 0x67, 0xe6, 0x7f,
- 0x75, 0xee, 0x48, 0xcb, 0x52, 0x86, 0x3e, 0x9a, 0x2a, 0xd3, 0x32, 0x55, 0xfe, 0xd6, 0x95, 0xf6,
- 0xce, 0xf6, 0xec, 0x49, 0x57, 0x56, 0x61, 0xff, 0xa2, 0x2a, 0x09, 0xa9, 0x25, 0x7f, 0x95, 0xcb,
- 0x3c, 0x00, 0x30, 0xb7, 0xce, 0x50, 0x28, 0x0a, 0x28, 0xf4, 0x6f, 0xc9, 0xe0, 0x12, 0x23, 0x75,
- 0x12, 0xe0, 0x32, 0x2e, 0x69, 0x9e, 0xd4, 0x14, 0x1c, 0x11, 0x44, 0x04, 0x38, 0x0d, 0x72, 0x60,
- 0x7e, 0xcc, 0x56, 0x46, 0x2a, 0x07, 0xc7, 0x7d, 0xcc, 0x3d, 0x46, 0x22, 0x41, 0x68, 0x98, 0x1e,
- 0x92, 0x67, 0x9d, 0xae, 0x54, 0x06, 0x8e, 0x32, 0x1c, 0xa0, 0x5d, 0xcc, 0x78, 0x7a, 0x38, 0x37,
- 0x3c, 0x3f, 0x66, 0xb7, 0xed, 0x55, 0xfb, 0xf1, 0x5e, 0x36, 0xf1, 0x61, 0x2f, 0x9b, 0x38, 0x78,
- 0xbe, 0x9c, 0xd1, 0x88, 0x65, 0x5a, 0x8f, 0x67, 0x94, 0x5f, 0xa3, 0xa1, 0xc0, 0xa1, 0x78, 0xf2,
- 0xfe, 0xd9, 0xe5, 0x39, 0xcd, 0xd4, 0xaf, 0x4f, 0xf3, 0x25, 0x80, 0x33, 0x36, 0xae, 0xd3, 0x6d,
- 0xfc, 0xbb, 0x69, 0x36, 0x07, 0xa7, 0x99, 0xd7, 0x34, 0x7d, 0x1b, 0x35, 0x3f, 0x01, 0x38, 0x23,
- 0x99, 0x4b, 0x8c, 0x78, 0xf8, 0x06, 0xc6, 0x3e, 0x66, 0x67, 0x87, 0x93, 0x82, 0xc9, 0x96, 0xfe,
- 0xd2, 0xc3, 0xf2, 0x48, 0x5e, 0xb7, 0x72, 0xed, 0xd4, 0xa8, 0xc0, 0xe9, 0xa4, 0xca, 0x25, 0x8d,
- 0x2e, 0xf0, 0x91, 0xd3, 0x83, 0xf7, 0x45, 0x32, 0x1b, 0x00, 0x1a, 0x3a, 0x8a, 0xd6, 0xc9, 0x99,
- 0x52, 0x67, 0xe0, 0x68, 0xa4, 0x93, 0x6a, 0xf2, 0xb6, 0xdd, 0xc5, 0x99, 0x3c, 0xc2, 0x59, 0x1a,
- 0x9c, 0x73, 0xb6, 0x9b, 0xb3, 0x07, 0x81, 0xf9, 0x0e, 0xc0, 0xac, 0xd2, 0xc0, 0x9f, 0xa3, 0x3c,
- 0xfa, 0x6f, 0xde, 0x1e, 0x9c, 0xf2, 0x52, 0x97, 0x8c, 0x7b, 0x63, 0x7e, 0x06, 0xd0, 0x8c, 0x63,
- 0xce, 0xad, 0x8a, 0xef, 0x0c, 0xce, 0xbd, 0x70, 0x84, 0xfb, 0x18, 0x19, 0x7f, 0x01, 0xd0, 0xbc,
- 0x56, 0x13, 0x15, 0xca, 0xc8, 0xa3, 0x8e, 0x07, 0xdd, 0xc6, 0x3b, 0x35, 0xcc, 0xc5, 0xa9, 0xd1,
- 0x6f, 0xc2, 0xbf, 0x99, 0x4a, 0x25, 0xe9, 0xc7, 0xaf, 0x2c, 0xe6, 0x7b, 0xbd, 0x71, 0xf2, 0xdf,
- 0x55, 0x2f, 0x24, 0xf7, 0x5f, 0x67, 0x13, 0x76, 0x9c, 0xe1, 0x24, 0x13, 0xe8, 0x8f, 0x66, 0xbe,
- 0x18, 0x82, 0xd9, 0xad, 0xc8, 0x47, 0xe2, 0x17, 0xe0, 0x2f, 0xc1, 0x94, 0x8f, 0x03, 0x2c, 0xb0,
- 0xa3, 0x19, 0x1c, 0xe2, 0xab, 0xc5, 0x9c, 0xb4, 0x27, 0xd5, 0x89, 0x2e, 0x55, 0xf4, 0x79, 0xca,
- 0x81, 0xd3, 0x35, 0xd9, 0x88, 0xa3, 0xba, 0x8f, 0x6f, 0x92, 0x1a, 0xf9, 0xb9, 0xd1, 0xd9, 0xff,
- 0xa9, 0x4c, 0x5d, 0xce, 0x93, 0x3c, 0x3a, 0x7d, 0x26, 0x63, 0x7e, 0x04, 0x70, 0xfa, 0x7a, 0x88,
- 0xdc, 0x40, 0xc6, 0x14, 0x0b, 0x6b, 0xa7, 0x9e, 0xd9, 0x16, 0x9c, 0x70, 0x51, 0xe8, 0x3b, 0xc4,
- 0xf5, 0x9c, 0x08, 0x31, 0x54, 0xe5, 0x5a, 0x3a, 0x73, 0xc7, 0xf3, 0xb7, 0x6a, 0xcb, 0x70, 0x2d,
- 0x9b, 0x7f, 0x5a, 0x59, 0x8a, 0xae, 0xa7, 0x9c, 0xab, 0xeb, 0x83, 0xb3, 0x5f, 0xd0, 0xec, 0x3f,
- 0xe4, 0x32, 0xdf, 0x02, 0x78, 0x51, 0xae, 0xcd, 0x4d, 0x41, 0xd9, 0x76, 0xa9, 0xe6, 0x06, 0x84,
- 0x57, 0xce, 0x72, 0x5d, 0x2c, 0xc0, 0x49, 0xde, 0x4a, 0xed, 0x44, 0x71, 0xee, 0xf8, 0x5d, 0x3e,
- 0xc1, 0xbb, 0x4a, 0xf2, 0xd5, 0xbb, 0x83, 0x43, 0x2d, 0x76, 0x6e, 0xfc, 0x3e, 0xad, 0x9b, 0x4d,
- 0x00, 0x67, 0xd5, 0xf2, 0x38, 0x07, 0x90, 0xf7, 0x06, 0x87, 0x5c, 0xea, 0x5a, 0x7c, 0x7d, 0x7a,
- 0x2f, 0x3c, 0xd8, 0x6f, 0x18, 0xe0, 0xb0, 0x61, 0x80, 0x37, 0x0d, 0x03, 0x3c, 0x6d, 0x1a, 0x89,
- 0xc3, 0xa6, 0x91, 0x78, 0xd5, 0x34, 0x12, 0xf7, 0x37, 0xca, 0x44, 0x54, 0x6a, 0x6e, 0xde, 0xa3,
- 0x55, 0xab, 0x18, 0x8b, 0x6e, 0x03, 0xb9, 0xdc, 0x6a, 0x4b, 0x70, 0xd9, 0xa3, 0x0c, 0x77, 0x9a,
- 0x15, 0x44, 0x42, 0xab, 0x4a, 0xfd, 0x5a, 0x80, 0x79, 0xfc, 0x85, 0x2b, 0x76, 0x23, 0xcc, 0xdd,
- 0xbf, 0xe4, 0x67, 0xec, 0xd5, 0xaf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x49, 0x54, 0x14, 0x96,
- 0x0b, 0x00, 0x00,
+ // 752 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0xbf, 0x6f, 0x13, 0x49,
+ 0x14, 0xc7, 0x3d, 0x89, 0x73, 0x97, 0x4c, 0x74, 0x4a, 0xce, 0x97, 0x48, 0x7b, 0xd6, 0x69, 0xed,
+ 0xac, 0x2e, 0x97, 0xe4, 0x92, 0x78, 0x15, 0xe8, 0xd2, 0xe1, 0x08, 0x90, 0x45, 0x24, 0x8c, 0x43,
+ 0x40, 0xa2, 0x59, 0xcd, 0xee, 0x0e, 0xf6, 0x90, 0xf5, 0xce, 0x66, 0x66, 0x6c, 0x29, 0x74, 0x74,
+ 0x88, 0x8a, 0x3f, 0x21, 0x7f, 0x02, 0x05, 0x2d, 0x7d, 0x84, 0x10, 0x4a, 0x49, 0x85, 0xc0, 0x46,
+ 0x82, 0x96, 0x06, 0x51, 0x22, 0xcf, 0xcc, 0x1a, 0xdb, 0xe0, 0xd8, 0x56, 0x02, 0xa4, 0x89, 0xf6,
+ 0xfd, 0xc8, 0x9b, 0xf7, 0x79, 0xfe, 0xce, 0xdb, 0x85, 0x4b, 0x24, 0xbc, 0x87, 0x3d, 0x41, 0xea,
+ 0xd8, 0xa6, 0x0c, 0x79, 0x01, 0xb6, 0xeb, 0x1b, 0x2e, 0x16, 0x68, 0xc3, 0x8e, 0x18, 0x8d, 0x28,
+ 0x47, 0x41, 0x2e, 0x62, 0x54, 0xd0, 0x94, 0xd1, 0x4e, 0xcc, 0xa9, 0xc4, 0x9c, 0x4e, 0x4c, 0xff,
+ 0x89, 0xaa, 0x24, 0xa4, 0xb6, 0xfc, 0xab, 0x92, 0xd3, 0xa6, 0x47, 0x79, 0x95, 0x72, 0xdb, 0x45,
+ 0xfc, 0x6b, 0x41, 0x8f, 0x92, 0x50, 0xc7, 0xff, 0x56, 0x71, 0x47, 0x5a, 0xb6, 0x32, 0x74, 0x68,
+ 0xae, 0x4c, 0xcb, 0x54, 0xf9, 0x5b, 0x4f, 0xda, 0xbb, 0xd8, 0xb7, 0x4d, 0xdd, 0x8c, 0x4c, 0xb3,
+ 0x5e, 0x00, 0x98, 0xbd, 0xca, 0x50, 0x28, 0xf2, 0x28, 0xf4, 0xaf, 0xcb, 0x48, 0x91, 0x91, 0x3a,
+ 0x09, 0x70, 0x19, 0x17, 0x35, 0x4f, 0x6a, 0x0e, 0x4e, 0x08, 0x22, 0x02, 0x6c, 0x80, 0x2c, 0x58,
+ 0x9e, 0x2a, 0x29, 0x23, 0x95, 0x85, 0xd3, 0x3e, 0xe6, 0x1e, 0x23, 0x91, 0x20, 0x34, 0x34, 0xc6,
+ 0x64, 0xac, 0xd3, 0x95, 0x4a, 0xc3, 0x49, 0x86, 0x03, 0x74, 0x80, 0x19, 0x37, 0xc6, 0xb3, 0xe3,
+ 0xcb, 0x53, 0xa5, 0xb6, 0xbd, 0x79, 0xf3, 0xe1, 0x61, 0x26, 0xf1, 0xe1, 0x30, 0x93, 0x78, 0xfe,
+ 0x74, 0x3d, 0xad, 0x79, 0xca, 0xb4, 0x1e, 0xcf, 0x28, 0xb7, 0x45, 0x43, 0x81, 0x43, 0xf1, 0xe8,
+ 0xfd, 0x93, 0xff, 0x97, 0x34, 0xc0, 0xa0, 0x3e, 0x0d, 0x60, 0xbd, 0x04, 0x70, 0xa1, 0x84, 0xeb,
+ 0x74, 0x0f, 0xff, 0x6c, 0x9e, 0xdd, 0xe1, 0x79, 0x96, 0x35, 0xcf, 0xc0, 0x46, 0x0d, 0x60, 0x7d,
+ 0x02, 0x70, 0x41, 0x72, 0x17, 0x19, 0xf1, 0xf0, 0x15, 0x8c, 0x7d, 0xcc, 0xce, 0x0e, 0x28, 0x05,
+ 0x93, 0x2d, 0xc1, 0x19, 0xe3, 0x32, 0x24, 0x9f, 0x5b, 0xb5, 0xf6, 0x6b, 0x54, 0x60, 0x23, 0xa9,
+ 0x6a, 0x49, 0xa3, 0x0b, 0x7d, 0xa2, 0x07, 0x7d, 0x67, 0x74, 0xf4, 0x81, 0x48, 0x56, 0x03, 0x40,
+ 0x53, 0x67, 0xd1, 0x3a, 0x39, 0x53, 0xea, 0x34, 0x9c, 0x8c, 0x74, 0x51, 0x4d, 0xde, 0xb6, 0xbb,
+ 0x38, 0x93, 0x3d, 0x9c, 0xc5, 0xe1, 0x39, 0x17, 0xbb, 0x39, 0xfb, 0x10, 0x58, 0xef, 0x00, 0xcc,
+ 0x28, 0x15, 0xfc, 0x3a, 0xca, 0xde, 0x5f, 0xf3, 0xc6, 0xf0, 0x94, 0xff, 0x75, 0x09, 0xb9, 0x3f,
+ 0xe6, 0x67, 0x00, 0xad, 0x38, 0xe7, 0xdc, 0xaa, 0x78, 0x84, 0x85, 0xb4, 0xd2, 0xc3, 0x7d, 0x82,
+ 0x8c, 0x1f, 0x8c, 0x41, 0xeb, 0x52, 0x4d, 0x54, 0x28, 0x23, 0xf7, 0x3b, 0xae, 0x7a, 0x09, 0xef,
+ 0xd7, 0x30, 0x17, 0xa7, 0x46, 0xbf, 0x06, 0x7f, 0x67, 0xaa, 0x94, 0xa4, 0x9f, 0xbe, 0xb0, 0x9a,
+ 0xeb, 0xf7, 0xd6, 0xc9, 0x7d, 0x73, 0x7a, 0x3e, 0x79, 0xf4, 0x3a, 0x93, 0x28, 0xc5, 0x15, 0x36,
+ 0x6f, 0x8d, 0x3e, 0x81, 0xc1, 0x68, 0x06, 0xb0, 0x9e, 0x8d, 0xc1, 0xcc, 0x6e, 0xe4, 0x23, 0xf1,
+ 0x03, 0x06, 0xb0, 0x06, 0x53, 0x3e, 0x0e, 0xb0, 0xc0, 0x8e, 0xa6, 0x70, 0x88, 0xaf, 0x96, 0x73,
+ 0xb2, 0x34, 0xab, 0x22, 0xfa, 0xa8, 0x82, 0xcf, 0x53, 0x0e, 0x9c, 0xaf, 0xc9, 0x46, 0x1c, 0xd5,
+ 0x7f, 0xfc, 0x4f, 0x52, 0x25, 0xa3, 0x0d, 0xaf, 0xf4, 0x97, 0xaa, 0xd4, 0xe5, 0x1c, 0x65, 0x15,
+ 0xc6, 0x97, 0x67, 0xc0, 0x64, 0x0c, 0x60, 0x7d, 0x04, 0x70, 0xfe, 0x72, 0x88, 0xdc, 0x40, 0x66,
+ 0x15, 0xf2, 0x5b, 0xa7, 0x9e, 0xda, 0x2e, 0x9c, 0x71, 0x51, 0xe8, 0x3b, 0xc4, 0xf5, 0x9c, 0x08,
+ 0x31, 0x54, 0xe5, 0x5a, 0x3e, 0x4b, 0x27, 0x4f, 0xa0, 0x75, 0xb6, 0x4c, 0xd7, 0xd2, 0xf9, 0xa3,
+ 0x55, 0xa5, 0xe0, 0x7a, 0xca, 0xb9, 0x59, 0x18, 0x9e, 0xfe, 0x1f, 0x4d, 0xff, 0x5d, 0x2e, 0x03,
+ 0x58, 0x6f, 0x01, 0xfc, 0x57, 0x2e, 0xcf, 0x1d, 0x41, 0xd9, 0x5e, 0xb1, 0xe6, 0x06, 0x84, 0x57,
+ 0xce, 0x72, 0x69, 0xac, 0xc0, 0x59, 0xde, 0x2a, 0xed, 0x44, 0x71, 0xed, 0xf8, 0x9d, 0x3e, 0xc3,
+ 0xbb, 0x8e, 0xe4, 0xa3, 0xdc, 0x8b, 0xd5, 0xce, 0xbd, 0x3f, 0xa0, 0x75, 0xab, 0x09, 0xe0, 0xa2,
+ 0x5a, 0x21, 0xe7, 0x00, 0xf2, 0xf6, 0xf0, 0x90, 0x6b, 0x5d, 0xeb, 0x6f, 0x40, 0xef, 0xf9, 0xbb,
+ 0x47, 0x0d, 0x13, 0x1c, 0x37, 0x4c, 0xf0, 0xa6, 0x61, 0x82, 0xc7, 0x4d, 0x33, 0x71, 0xdc, 0x34,
+ 0x13, 0xaf, 0x9a, 0x66, 0xe2, 0xce, 0x76, 0x99, 0x88, 0x4a, 0xcd, 0xcd, 0x79, 0xb4, 0x6a, 0x17,
+ 0x62, 0xd9, 0x6d, 0x23, 0x97, 0xdb, 0x6d, 0x11, 0xae, 0x7b, 0x94, 0xe1, 0x4e, 0xb3, 0x82, 0x48,
+ 0x68, 0x57, 0xa9, 0x5f, 0x0b, 0x30, 0x8f, 0x3f, 0x6c, 0xc5, 0x41, 0x84, 0xb9, 0xfb, 0x9b, 0xfc,
+ 0xa0, 0xbd, 0xf8, 0x25, 0x00, 0x00, 0xff, 0xff, 0x1e, 0xe9, 0x1d, 0x90, 0xa0, 0x0b, 0x00, 0x00,
}
func (m *GrantBandOraclePrivilegeProposal) Marshal() (dAtA []byte, err error) {
diff --git a/chain/oracle/types/query.pb.go b/chain/oracle/types/query.pb.go
index 09773598..0d75e2a4 100644
--- a/chain/oracle/types/query.pb.go
+++ b/chain/oracle/types/query.pb.go
@@ -974,6 +974,98 @@ func (m *QueryProviderPriceStateResponse) GetPriceState() *PriceState {
return nil
}
+// QueryChainlinkDataStreamsPriceStatesRequest is the request type for the
+// Query/ChainlinkDataStreamsPriceStates RPC method.
+type QueryChainlinkDataStreamsPriceStatesRequest struct {
+}
+
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) Reset() {
+ *m = QueryChainlinkDataStreamsPriceStatesRequest{}
+}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) String() string {
+ return proto.CompactTextString(m)
+}
+func (*QueryChainlinkDataStreamsPriceStatesRequest) ProtoMessage() {}
+func (*QueryChainlinkDataStreamsPriceStatesRequest) Descriptor() ([]byte, []int) {
+ return fileDescriptor_52f5d6f9962923ad, []int{22}
+}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_QueryChainlinkDataStreamsPriceStatesRequest.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryChainlinkDataStreamsPriceStatesRequest.Merge(m, src)
+}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) XXX_Size() int {
+ return m.Size()
+}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryChainlinkDataStreamsPriceStatesRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryChainlinkDataStreamsPriceStatesRequest proto.InternalMessageInfo
+
+// QueryChainlinkDataStreamsPriceStatesResponse is the response type for the
+// Query/ChainlinkDataStreamsPriceStates RPC method.
+type QueryChainlinkDataStreamsPriceStatesResponse struct {
+ PriceStates []*ChainlinkDataStreamsPriceState `protobuf:"bytes,1,rep,name=price_states,json=priceStates,proto3" json:"price_states,omitempty"`
+}
+
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) Reset() {
+ *m = QueryChainlinkDataStreamsPriceStatesResponse{}
+}
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) String() string {
+ return proto.CompactTextString(m)
+}
+func (*QueryChainlinkDataStreamsPriceStatesResponse) ProtoMessage() {}
+func (*QueryChainlinkDataStreamsPriceStatesResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_52f5d6f9962923ad, []int{23}
+}
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_QueryChainlinkDataStreamsPriceStatesResponse.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_QueryChainlinkDataStreamsPriceStatesResponse.Merge(m, src)
+}
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) XXX_Size() int {
+ return m.Size()
+}
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_QueryChainlinkDataStreamsPriceStatesResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_QueryChainlinkDataStreamsPriceStatesResponse proto.InternalMessageInfo
+
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) GetPriceStates() []*ChainlinkDataStreamsPriceState {
+ if m != nil {
+ return m.PriceStates
+ }
+ return nil
+}
+
// QueryModuleStateRequest is the request type for the Query/OracleModuleState
// RPC method.
type QueryModuleStateRequest struct {
@@ -983,7 +1075,7 @@ func (m *QueryModuleStateRequest) Reset() { *m = QueryModuleStateRequest
func (m *QueryModuleStateRequest) String() string { return proto.CompactTextString(m) }
func (*QueryModuleStateRequest) ProtoMessage() {}
func (*QueryModuleStateRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{22}
+ return fileDescriptor_52f5d6f9962923ad, []int{24}
}
func (m *QueryModuleStateRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1022,7 +1114,7 @@ func (m *QueryModuleStateResponse) Reset() { *m = QueryModuleStateRespon
func (m *QueryModuleStateResponse) String() string { return proto.CompactTextString(m) }
func (*QueryModuleStateResponse) ProtoMessage() {}
func (*QueryModuleStateResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{23}
+ return fileDescriptor_52f5d6f9962923ad, []int{25}
}
func (m *QueryModuleStateResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1067,7 +1159,7 @@ func (m *QueryHistoricalPriceRecordsRequest) Reset() { *m = QueryHistori
func (m *QueryHistoricalPriceRecordsRequest) String() string { return proto.CompactTextString(m) }
func (*QueryHistoricalPriceRecordsRequest) ProtoMessage() {}
func (*QueryHistoricalPriceRecordsRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{24}
+ return fileDescriptor_52f5d6f9962923ad, []int{26}
}
func (m *QueryHistoricalPriceRecordsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1118,7 +1210,7 @@ func (m *QueryHistoricalPriceRecordsResponse) Reset() { *m = QueryHistor
func (m *QueryHistoricalPriceRecordsResponse) String() string { return proto.CompactTextString(m) }
func (*QueryHistoricalPriceRecordsResponse) ProtoMessage() {}
func (*QueryHistoricalPriceRecordsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{25}
+ return fileDescriptor_52f5d6f9962923ad, []int{27}
}
func (m *QueryHistoricalPriceRecordsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1171,7 +1263,7 @@ func (m *OracleHistoryOptions) Reset() { *m = OracleHistoryOptions{} }
func (m *OracleHistoryOptions) String() string { return proto.CompactTextString(m) }
func (*OracleHistoryOptions) ProtoMessage() {}
func (*OracleHistoryOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{26}
+ return fileDescriptor_52f5d6f9962923ad, []int{28}
}
func (m *OracleHistoryOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1233,7 +1325,7 @@ func (m *QueryOracleVolatilityRequest) Reset() { *m = QueryOracleVolatil
func (m *QueryOracleVolatilityRequest) String() string { return proto.CompactTextString(m) }
func (*QueryOracleVolatilityRequest) ProtoMessage() {}
func (*QueryOracleVolatilityRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{27}
+ return fileDescriptor_52f5d6f9962923ad, []int{29}
}
func (m *QueryOracleVolatilityRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1295,7 +1387,7 @@ func (m *QueryOracleVolatilityResponse) Reset() { *m = QueryOracleVolati
func (m *QueryOracleVolatilityResponse) String() string { return proto.CompactTextString(m) }
func (*QueryOracleVolatilityResponse) ProtoMessage() {}
func (*QueryOracleVolatilityResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{28}
+ return fileDescriptor_52f5d6f9962923ad, []int{30}
}
func (m *QueryOracleVolatilityResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1345,7 +1437,7 @@ func (m *QueryOracleProvidersInfoRequest) Reset() { *m = QueryOracleProv
func (m *QueryOracleProvidersInfoRequest) String() string { return proto.CompactTextString(m) }
func (*QueryOracleProvidersInfoRequest) ProtoMessage() {}
func (*QueryOracleProvidersInfoRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{29}
+ return fileDescriptor_52f5d6f9962923ad, []int{31}
}
func (m *QueryOracleProvidersInfoRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1382,7 +1474,7 @@ func (m *QueryOracleProvidersInfoResponse) Reset() { *m = QueryOraclePro
func (m *QueryOracleProvidersInfoResponse) String() string { return proto.CompactTextString(m) }
func (*QueryOracleProvidersInfoResponse) ProtoMessage() {}
func (*QueryOracleProvidersInfoResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{30}
+ return fileDescriptor_52f5d6f9962923ad, []int{32}
}
func (m *QueryOracleProvidersInfoResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1426,7 +1518,7 @@ func (m *QueryOracleProviderPricesRequest) Reset() { *m = QueryOraclePro
func (m *QueryOracleProviderPricesRequest) String() string { return proto.CompactTextString(m) }
func (*QueryOracleProviderPricesRequest) ProtoMessage() {}
func (*QueryOracleProviderPricesRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{31}
+ return fileDescriptor_52f5d6f9962923ad, []int{33}
}
func (m *QueryOracleProviderPricesRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1470,7 +1562,7 @@ func (m *QueryOracleProviderPricesResponse) Reset() { *m = QueryOraclePr
func (m *QueryOracleProviderPricesResponse) String() string { return proto.CompactTextString(m) }
func (*QueryOracleProviderPricesResponse) ProtoMessage() {}
func (*QueryOracleProviderPricesResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{32}
+ return fileDescriptor_52f5d6f9962923ad, []int{34}
}
func (m *QueryOracleProviderPricesResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1518,7 +1610,7 @@ func (m *ScalingOptions) Reset() { *m = ScalingOptions{} }
func (m *ScalingOptions) String() string { return proto.CompactTextString(m) }
func (*ScalingOptions) ProtoMessage() {}
func (*ScalingOptions) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{33}
+ return fileDescriptor_52f5d6f9962923ad, []int{35}
}
func (m *ScalingOptions) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1574,7 +1666,7 @@ func (m *QueryOraclePriceRequest) Reset() { *m = QueryOraclePriceRequest
func (m *QueryOraclePriceRequest) String() string { return proto.CompactTextString(m) }
func (*QueryOraclePriceRequest) ProtoMessage() {}
func (*QueryOraclePriceRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{34}
+ return fileDescriptor_52f5d6f9962923ad, []int{36}
}
func (m *QueryOraclePriceRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1645,7 +1737,7 @@ func (m *PricePairState) Reset() { *m = PricePairState{} }
func (m *PricePairState) String() string { return proto.CompactTextString(m) }
func (*PricePairState) ProtoMessage() {}
func (*PricePairState) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{35}
+ return fileDescriptor_52f5d6f9962923ad, []int{37}
}
func (m *PricePairState) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1698,7 +1790,7 @@ func (m *QueryOraclePriceResponse) Reset() { *m = QueryOraclePriceRespon
func (m *QueryOraclePriceResponse) String() string { return proto.CompactTextString(m) }
func (*QueryOraclePriceResponse) ProtoMessage() {}
func (*QueryOraclePriceResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_52f5d6f9962923ad, []int{36}
+ return fileDescriptor_52f5d6f9962923ad, []int{38}
}
func (m *QueryOraclePriceResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1757,6 +1849,8 @@ func init() {
proto.RegisterType((*QueryStorkPublishersResponse)(nil), "injective.oracle.v1beta1.QueryStorkPublishersResponse")
proto.RegisterType((*QueryProviderPriceStateRequest)(nil), "injective.oracle.v1beta1.QueryProviderPriceStateRequest")
proto.RegisterType((*QueryProviderPriceStateResponse)(nil), "injective.oracle.v1beta1.QueryProviderPriceStateResponse")
+ proto.RegisterType((*QueryChainlinkDataStreamsPriceStatesRequest)(nil), "injective.oracle.v1beta1.QueryChainlinkDataStreamsPriceStatesRequest")
+ proto.RegisterType((*QueryChainlinkDataStreamsPriceStatesResponse)(nil), "injective.oracle.v1beta1.QueryChainlinkDataStreamsPriceStatesResponse")
proto.RegisterType((*QueryModuleStateRequest)(nil), "injective.oracle.v1beta1.QueryModuleStateRequest")
proto.RegisterType((*QueryModuleStateResponse)(nil), "injective.oracle.v1beta1.QueryModuleStateResponse")
proto.RegisterType((*QueryHistoricalPriceRecordsRequest)(nil), "injective.oracle.v1beta1.QueryHistoricalPriceRecordsRequest")
@@ -1779,123 +1873,128 @@ func init() {
}
var fileDescriptor_52f5d6f9962923ad = []byte{
- // 1846 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xdd, 0x6f, 0xdb, 0x46,
- 0x12, 0x37, 0xfd, 0x15, 0x6b, 0x14, 0x7f, 0x64, 0xad, 0x38, 0x8a, 0x92, 0xc8, 0x0e, 0x1d, 0x7f,
- 0x5d, 0x1c, 0x29, 0x56, 0x72, 0x49, 0x2e, 0x97, 0xcb, 0x21, 0xb6, 0x93, 0x3b, 0xdf, 0x39, 0x88,
- 0x8f, 0xce, 0x35, 0x6d, 0x51, 0x40, 0x58, 0x51, 0xb4, 0xc4, 0x5a, 0x22, 0x15, 0x92, 0x72, 0x22,
- 0x04, 0x41, 0xd1, 0x3e, 0x16, 0x05, 0x5a, 0xa0, 0xaf, 0xed, 0x7b, 0xd1, 0xb7, 0x02, 0xed, 0x43,
- 0x5e, 0x0b, 0x14, 0x48, 0x1f, 0x0a, 0xa4, 0x28, 0x0a, 0x14, 0x7d, 0x08, 0x0a, 0xbb, 0x7f, 0x48,
- 0xc1, 0xdd, 0x21, 0x4d, 0x4a, 0xa4, 0x48, 0x19, 0xe8, 0x9b, 0x76, 0x77, 0xe6, 0xb7, 0xbf, 0x99,
- 0x9d, 0x99, 0xdd, 0xa1, 0xe0, 0x82, 0xaa, 0xbd, 0xab, 0xc8, 0x96, 0xba, 0xa7, 0xe4, 0x75, 0x83,
- 0xca, 0x35, 0x25, 0xbf, 0xb7, 0x52, 0x52, 0x2c, 0xba, 0x92, 0x7f, 0xdc, 0x54, 0x8c, 0x56, 0xae,
- 0x61, 0xe8, 0x96, 0x4e, 0xd2, 0xae, 0x54, 0x8e, 0x4b, 0xe5, 0x50, 0x2a, 0x73, 0xb6, 0xa2, 0xeb,
- 0x95, 0x9a, 0x92, 0xa7, 0x0d, 0x35, 0x4f, 0x35, 0x4d, 0xb7, 0xa8, 0xa5, 0xea, 0x9a, 0xc9, 0xf5,
- 0x32, 0x73, 0xa1, 0xe8, 0x08, 0xc3, 0xc5, 0xe6, 0x43, 0xc5, 0x2a, 0x8a, 0xa6, 0x98, 0xaa, 0x03,
- 0x97, 0xaa, 0xe8, 0x15, 0x9d, 0xfd, 0xcc, 0xdb, 0xbf, 0xf8, 0xac, 0x58, 0x80, 0x93, 0xff, 0xb3,
- 0xb9, 0x6e, 0xb5, 0xac, 0xea, 0x96, 0xa1, 0xca, 0x8a, 0xa4, 0x3c, 0x6e, 0x2a, 0xa6, 0x45, 0x4e,
- 0xc3, 0x48, 0xc3, 0x1e, 0x17, 0xd5, 0x72, 0x5a, 0x98, 0x11, 0x16, 0x13, 0xd2, 0x31, 0x36, 0xde,
- 0x28, 0x8b, 0x32, 0x4c, 0xb5, 0xeb, 0x98, 0x0d, 0x5d, 0x33, 0x15, 0xb2, 0x01, 0x49, 0xae, 0x64,
- 0x5a, 0xd4, 0x52, 0x98, 0x5e, 0xb2, 0xb0, 0x98, 0x0b, 0x73, 0x40, 0xce, 0x45, 0xd8, 0xb6, 0xe5,
- 0x25, 0x68, 0xb8, 0xbf, 0xc5, 0x14, 0x10, 0xbe, 0x09, 0x35, 0x68, 0xdd, 0x44, 0x56, 0xe2, 0xff,
- 0x61, 0xd2, 0x37, 0x8b, 0xfb, 0xde, 0x86, 0xe1, 0x06, 0x9b, 0xc1, 0x2d, 0x67, 0xba, 0x6c, 0xc9,
- 0xe4, 0x56, 0x07, 0x5f, 0xbe, 0x9e, 0xee, 0x93, 0x50, 0x4b, 0xcc, 0x40, 0x9a, 0xc1, 0xae, 0x52,
- 0xad, 0x2c, 0x29, 0x35, 0xda, 0x52, 0x0c, 0x77, 0xcb, 0xeb, 0x70, 0x3a, 0x60, 0x0d, 0x37, 0xce,
- 0xc0, 0x88, 0x81, 0x73, 0x69, 0x61, 0x66, 0x60, 0x31, 0x21, 0xb9, 0x63, 0xf1, 0x1c, 0x9c, 0x71,
- 0x15, 0x0f, 0x8d, 0x74, 0x71, 0x77, 0xe1, 0x6c, 0xf0, 0x32, 0x42, 0xff, 0x17, 0x8e, 0x7b, 0x7c,
- 0xc9, 0xe1, 0xbb, 0x3a, 0xd3, 0x0f, 0x24, 0x25, 0x0f, 0x9d, 0x69, 0x8a, 0x33, 0x90, 0x75, 0x37,
- 0xdb, 0x58, 0x5d, 0x0b, 0xa0, 0xa3, 0xc1, 0x74, 0xa8, 0xc4, 0x9f, 0xc1, 0x48, 0x84, 0x19, 0x7e,
- 0x92, 0xf6, 0xdc, 0x3d, 0x45, 0x09, 0x72, 0x51, 0x03, 0xce, 0x77, 0x91, 0x39, 0x2a, 0x2b, 0x17,
- 0x2d, 0x80, 0xd5, 0x79, 0xf4, 0xc2, 0x9a, 0xae, 0x6a, 0x25, 0x6a, 0x2a, 0x01, 0xa4, 0x4c, 0x24,
- 0x1e, 0x28, 0x82, 0x9c, 0x1e, 0x04, 0x72, 0x5a, 0x0e, 0xe7, 0xd4, 0x09, 0xe6, 0xe7, 0xe5, 0xc4,
- 0x92, 0x3f, 0x61, 0x3a, 0x62, 0xa9, 0x63, 0xf9, 0xc8, 0x3e, 0xf2, 0x27, 0xa6, 0x8f, 0x4b, 0x16,
- 0x37, 0xdb, 0xb6, 0x74, 0x63, 0x37, 0x80, 0x4c, 0x1d, 0xce, 0x85, 0xac, 0x23, 0x9b, 0xcd, 0x40,
- 0x36, 0x4b, 0xe1, 0x6c, 0xda, 0x90, 0x82, 0x5d, 0xc3, 0x85, 0x9a, 0xa5, 0x9a, 0x6a, 0x56, 0x3d,
- 0xe9, 0x7b, 0xdb, 0xc7, 0xd6, 0xb3, 0x8c, 0x64, 0xb2, 0x00, 0x0d, 0x77, 0x16, 0x73, 0xd8, 0x33,
- 0x23, 0x3e, 0xc4, 0xcc, 0xd9, 0x32, 0xf4, 0x3d, 0xb5, 0xac, 0x18, 0x1e, 0x1a, 0x58, 0x29, 0x33,
- 0x76, 0xa5, 0xe4, 0x8b, 0x58, 0x29, 0xdd, 0x31, 0x99, 0x82, 0x61, 0xb3, 0x55, 0x2f, 0xe9, 0xb5,
- 0x74, 0x3f, 0x5b, 0xc1, 0x91, 0x58, 0xc5, 0x38, 0x0b, 0x42, 0x45, 0x62, 0x77, 0x83, 0x6a, 0xe9,
- 0x85, 0x88, 0xb0, 0xee, 0xac, 0xa3, 0xa7, 0xe1, 0x14, 0xdb, 0xe9, 0xbe, 0x5e, 0x6e, 0xd6, 0x7c,
- 0xc4, 0xc5, 0x37, 0xb1, 0xea, 0xf9, 0x96, 0x70, 0xf7, 0x5b, 0x30, 0xe4, 0xdd, 0x77, 0x3e, 0x7c,
- 0xdf, 0x7f, 0xf1, 0x5b, 0x86, 0xab, 0x73, 0x25, 0xf1, 0x3d, 0x10, 0x19, 0xf2, 0xbf, 0x55, 0xd3,
- 0xd2, 0x0d, 0x55, 0xa6, 0x35, 0xbc, 0x27, 0x64, 0xdd, 0x28, 0x3b, 0x47, 0x43, 0x6e, 0xc1, 0x30,
- 0xc7, 0x62, 0x9b, 0x8c, 0x75, 0x33, 0xee, 0x01, 0x1b, 0x3e, 0x6c, 0x35, 0x14, 0x09, 0x75, 0xc8,
- 0x19, 0x48, 0x70, 0x67, 0xda, 0x37, 0x14, 0xf7, 0xee, 0x08, 0x9f, 0xd8, 0x28, 0x8b, 0x06, 0xcc,
- 0x76, 0x25, 0xe0, 0xe6, 0xc5, 0x28, 0xf7, 0xb1, 0xc1, 0x17, 0x30, 0x14, 0xe7, 0x23, 0xbc, 0xec,
- 0xc0, 0xf0, 0x30, 0xc6, 0x91, 0xf8, 0xa1, 0x00, 0x29, 0xce, 0x93, 0xef, 0xda, 0x7a, 0xd0, 0x60,
- 0xd7, 0x39, 0x39, 0x05, 0xc7, 0xea, 0xf4, 0x69, 0x91, 0x56, 0xb8, 0xa1, 0x83, 0xd2, 0x70, 0x9d,
- 0x3e, 0xbd, 0x53, 0x51, 0x48, 0x0e, 0x26, 0x55, 0x4d, 0xae, 0x35, 0xcb, 0x4a, 0xd1, 0xa0, 0x4f,
- 0x8a, 0x55, 0xae, 0xc6, 0x8c, 0x19, 0x91, 0x4e, 0xe0, 0x92, 0x44, 0x9f, 0x20, 0x1e, 0x59, 0x82,
- 0x09, 0x47, 0xbe, 0xae, 0x58, 0xb4, 0x4c, 0x2d, 0x9a, 0x1e, 0x60, 0xc2, 0xe3, 0x38, 0x7f, 0x1f,
- 0xa7, 0xc5, 0x8f, 0xfa, 0x31, 0xee, 0x39, 0xa3, 0x37, 0xf4, 0x1a, 0xb5, 0xd4, 0x9a, 0x6a, 0xb5,
- 0x1c, 0xe7, 0xdf, 0x81, 0x84, 0x5d, 0x70, 0x8a, 0xaa, 0xb6, 0xa3, 0x47, 0x07, 0x17, 0x47, 0xd9,
- 0xd0, 0x76, 0x74, 0x69, 0xc4, 0x56, 0xb3, 0x7f, 0x91, 0x35, 0x80, 0xc7, 0x4d, 0xdd, 0x42, 0x8c,
- 0xfe, 0x1e, 0x30, 0x12, 0x4c, 0x8f, 0x81, 0x94, 0x61, 0x8a, 0xcb, 0x39, 0xe6, 0x17, 0x75, 0xee,
- 0x36, 0x66, 0x59, 0xb2, 0x90, 0x8b, 0x02, 0xf4, 0x3b, 0x5b, 0x4a, 0xe9, 0x01, 0xb3, 0xe2, 0xfb,
- 0xfd, 0x58, 0x94, 0x3a, 0xdd, 0x81, 0xa1, 0xf0, 0x4f, 0x80, 0x3d, 0x77, 0x96, 0xe7, 0xf1, 0xea,
- 0xf4, 0xaf, 0xaf, 0xa7, 0xcf, 0xc8, 0xba, 0x59, 0xd7, 0x4d, 0xb3, 0xbc, 0x9b, 0x53, 0xf5, 0x7c,
- 0x9d, 0x5a, 0xd5, 0xdc, 0xa6, 0x52, 0xa1, 0x72, 0x6b, 0x5d, 0x91, 0x25, 0x8f, 0x0a, 0x79, 0x04,
- 0x13, 0x8e, 0x05, 0xee, 0xe1, 0x70, 0x9f, 0x74, 0xa9, 0xfb, 0xce, 0x79, 0xd9, 0xd9, 0xa3, 0x9a,
- 0x96, 0x2a, 0x9b, 0xd2, 0x38, 0xa2, 0x38, 0x4b, 0xe4, 0x1e, 0x24, 0xbd, 0xd1, 0x31, 0xc0, 0x42,
- 0x74, 0x2e, 0x56, 0x88, 0x4a, 0x60, 0xb8, 0xd1, 0xe3, 0xde, 0x6d, 0xdc, 0x05, 0x4e, 0xe5, 0x31,
- 0xd9, 0x81, 0x60, 0x45, 0xa8, 0xe2, 0xdd, 0x16, 0x28, 0x82, 0x8e, 0x5a, 0x87, 0x84, 0x53, 0xde,
- 0x62, 0xe5, 0x0b, 0x17, 0xe5, 0xc7, 0xee, 0x2a, 0x8a, 0xb7, 0x03, 0x77, 0x62, 0xd4, 0xcd, 0x18,
- 0x85, 0x55, 0x34, 0xf0, 0x69, 0x10, 0xac, 0x8f, 0x54, 0xef, 0xdb, 0xe9, 0xcd, 0x57, 0xb6, 0xb1,
- 0x98, 0xd9, 0x74, 0x17, 0xa2, 0xe9, 0xf2, 0x6a, 0xe6, 0xd7, 0x16, 0xdf, 0x81, 0xb1, 0x6d, 0x99,
- 0xd6, 0x54, 0xad, 0xe2, 0x64, 0xf6, 0x2c, 0x8c, 0xb2, 0x24, 0x2a, 0x2b, 0xb2, 0x5a, 0xa7, 0x35,
- 0xfe, 0xfc, 0x1c, 0x95, 0x8e, 0xdb, 0x93, 0xeb, 0x38, 0x47, 0xe6, 0x60, 0x8c, 0xa7, 0x89, 0x2b,
- 0xd5, 0xcf, 0xa4, 0x46, 0xd9, 0xac, 0x23, 0x26, 0x1e, 0x08, 0x58, 0xa9, 0x1d, 0x93, 0x3c, 0x8f,
- 0xf1, 0xbb, 0x90, 0xc4, 0x24, 0xb1, 0x5a, 0x8d, 0xde, 0xca, 0x25, 0xe8, 0xee, 0x6f, 0x42, 0x60,
- 0xd0, 0x66, 0x86, 0xd5, 0x92, 0xfd, 0x26, 0x29, 0x18, 0x62, 0x3c, 0x58, 0xba, 0x25, 0x24, 0x3e,
- 0x20, 0x8f, 0x60, 0xdc, 0xe4, 0xa6, 0xba, 0xe9, 0x38, 0x18, 0xf5, 0x98, 0xf7, 0xfb, 0x86, 0xbd,
- 0xb0, 0x05, 0x69, 0xcc, 0xf4, 0xcd, 0x8a, 0xfb, 0x03, 0x30, 0xc6, 0x4c, 0xdb, 0xa2, 0x2a, 0x77,
- 0x2b, 0x59, 0x05, 0x68, 0x50, 0xd5, 0x28, 0xb2, 0x62, 0x8a, 0x99, 0x37, 0x6b, 0x3f, 0xcf, 0xa3,
- 0xb2, 0x2f, 0x61, 0xab, 0x31, 0x30, 0x1b, 0x83, 0x1d, 0x04, 0xc7, 0xe8, 0xef, 0x01, 0xc3, 0x7d,
- 0x75, 0x91, 0x75, 0x48, 0xf2, 0x73, 0xe2, 0x20, 0x03, 0xf1, 0x41, 0x78, 0x19, 0xe4, 0x28, 0x8f,
- 0xe0, 0x24, 0x63, 0x22, 0x37, 0xeb, 0x4d, 0xbb, 0x36, 0xec, 0x39, 0x78, 0x83, 0xf1, 0xf1, 0x26,
- 0x6d, 0x84, 0x35, 0x17, 0x80, 0x03, 0xbf, 0x05, 0x53, 0x9c, 0x5e, 0x07, 0xf2, 0x50, 0x7c, 0xe4,
- 0x14, 0x83, 0x68, 0x87, 0x9e, 0x83, 0x31, 0xc6, 0xd9, 0x52, 0xeb, 0x8a, 0x69, 0xd1, 0x7a, 0x23,
- 0x3d, 0x3c, 0x23, 0x2c, 0x0e, 0x48, 0x2c, 0xb8, 0x1f, 0x3a, 0x93, 0x64, 0x01, 0xc6, 0x39, 0x83,
- 0x43, 0xb9, 0x63, 0x4c, 0x8e, 0xc7, 0xb7, 0x2b, 0x28, 0x6a, 0xf8, 0xb0, 0xf0, 0x45, 0x32, 0xe6,
- 0xa4, 0x04, 0x13, 0xfc, 0xca, 0x65, 0x67, 0x1e, 0xb7, 0x4f, 0xf4, 0x45, 0x8c, 0x34, 0xd6, 0xf0,
- 0x8d, 0x0b, 0x3f, 0xa4, 0x61, 0x88, 0x6d, 0x48, 0x3e, 0x16, 0x60, 0x98, 0x77, 0x78, 0xa4, 0x4b,
- 0xd5, 0xed, 0x6c, 0x2c, 0x33, 0x97, 0x62, 0x4a, 0x73, 0x2b, 0xc4, 0xc5, 0x0f, 0x7e, 0xfa, 0xfd,
- 0xd3, 0x7e, 0x91, 0xcc, 0xe4, 0x43, 0xbb, 0x6f, 0xde, 0x5a, 0x92, 0x2f, 0x04, 0x38, 0xee, 0x6d,
- 0x1d, 0x49, 0x21, 0x62, 0xa7, 0x80, 0x1e, 0x34, 0x73, 0xa5, 0x27, 0x1d, 0xe4, 0x98, 0x67, 0x1c,
- 0x97, 0xc8, 0x42, 0x38, 0xc7, 0x12, 0xd5, 0xca, 0x45, 0xa7, 0x61, 0x25, 0xdf, 0x08, 0x30, 0xde,
- 0xd6, 0x8d, 0x92, 0xbf, 0xc6, 0xd8, 0xb9, 0xb3, 0x07, 0xc8, 0x5c, 0xeb, 0x55, 0x0d, 0x39, 0x5f,
- 0x61, 0x9c, 0x2f, 0x91, 0x8b, 0x11, 0x9c, 0xbd, 0xfd, 0x03, 0xf9, 0x56, 0x00, 0xd2, 0xd9, 0xb6,
- 0x92, 0x1b, 0x31, 0x38, 0x04, 0xf6, 0xc2, 0x99, 0xbf, 0x1d, 0x41, 0x13, 0x0d, 0xb8, 0xce, 0x0c,
- 0x58, 0x21, 0xf9, 0x08, 0x03, 0xd4, 0x92, 0xec, 0x37, 0xe2, 0x7b, 0x01, 0x52, 0x41, 0x7d, 0x2e,
- 0xb9, 0x19, 0x15, 0x99, 0xe1, 0x0d, 0x74, 0xe6, 0xef, 0x47, 0xd2, 0x45, 0x53, 0x6e, 0x30, 0x53,
- 0x0a, 0xe4, 0x72, 0x97, 0x18, 0xb7, 0xd5, 0x76, 0x14, 0xa5, 0xed, 0x40, 0xbe, 0x13, 0x60, 0x32,
- 0xa0, 0x3d, 0x26, 0x51, 0x7e, 0x0d, 0xef, 0xba, 0x33, 0x37, 0x8f, 0xa2, 0x1a, 0xff, 0x4c, 0x64,
- 0x54, 0xf7, 0xdb, 0x61, 0x27, 0x44, 0x5b, 0x4b, 0x1d, 0x99, 0x10, 0xc1, 0x1d, 0x7a, 0x64, 0x42,
- 0x84, 0x74, 0xee, 0x71, 0x12, 0xa2, 0xd1, 0xb2, 0xaa, 0x7e, 0xde, 0x2f, 0x04, 0x98, 0x68, 0xef,
- 0xbe, 0x49, 0x14, 0x83, 0x90, 0x76, 0x3e, 0x73, 0xbd, 0x67, 0x3d, 0xa4, 0x7e, 0x95, 0x51, 0xcf,
- 0x91, 0xe5, 0x70, 0xea, 0xf6, 0xc3, 0x74, 0xd7, 0xcf, 0xfd, 0x6b, 0x01, 0xc6, 0xdb, 0x7a, 0xf5,
- 0x48, 0x9f, 0x07, 0xb7, 0xfe, 0x99, 0x6b, 0xbd, 0xaa, 0x21, 0xf1, 0x02, 0x23, 0xbe, 0x4c, 0xfe,
- 0x12, 0x49, 0xfc, 0x90, 0xe2, 0xcf, 0x02, 0x90, 0xce, 0x66, 0x3e, 0xb2, 0x06, 0x85, 0x7e, 0x55,
- 0x88, 0xac, 0x41, 0xe1, 0x5f, 0x0e, 0xc4, 0xff, 0x30, 0xfe, 0xeb, 0x64, 0xb5, 0x5b, 0xe2, 0x72,
- 0x6d, 0xaf, 0xef, 0xf3, 0xcf, 0x9c, 0xd9, 0xe7, 0xf9, 0x67, 0xbc, 0x93, 0x7e, 0x4e, 0xbe, 0x14,
- 0xe0, 0x04, 0xbf, 0xc6, 0x3d, 0x5f, 0x09, 0xc8, 0x4a, 0x04, 0xb9, 0xce, 0x8f, 0x0d, 0x99, 0x42,
- 0x2f, 0x2a, 0x68, 0x48, 0x8e, 0x19, 0xb2, 0x48, 0xe6, 0xc3, 0x0d, 0xa9, 0x33, 0x35, 0x6e, 0x00,
- 0xf9, 0x51, 0x80, 0xa9, 0xe0, 0x8e, 0x9f, 0xdc, 0x8a, 0xd8, 0xbe, 0xeb, 0x97, 0x8a, 0xcc, 0x3f,
- 0x8e, 0xa8, 0x8d, 0x76, 0xdc, 0x64, 0x76, 0x5c, 0x25, 0x85, 0x70, 0x3b, 0xaa, 0x2e, 0x42, 0xd1,
- 0xf7, 0x45, 0x82, 0x7c, 0x25, 0xc0, 0x44, 0x7b, 0xd3, 0x1a, 0x99, 0xcb, 0x21, 0x4d, 0x7f, 0x64,
- 0x2e, 0x87, 0x75, 0xc7, 0xe2, 0x32, 0xb3, 0x60, 0x9e, 0x5c, 0x08, 0xb7, 0xc0, 0xd3, 0x0a, 0xbf,
- 0x10, 0x60, 0x32, 0xa0, 0x85, 0x8c, 0xac, 0xff, 0xe1, 0x9d, 0x69, 0x64, 0xfd, 0xef, 0xd2, 0xb1,
- 0x8a, 0x17, 0x19, 0xf9, 0x39, 0x32, 0x1b, 0x9d, 0x0f, 0xec, 0x31, 0x91, 0x0a, 0x6a, 0x2a, 0x49,
- 0x6f, 0x0c, 0x7c, 0x9d, 0x6c, 0xe4, 0x3d, 0xdc, 0xad, 0x8b, 0x15, 0x57, 0x18, 0xfd, 0x8b, 0x64,
- 0x29, 0x6e, 0x3a, 0x9b, 0xe4, 0x73, 0x01, 0x92, 0x9e, 0xc7, 0x77, 0x64, 0xbe, 0x76, 0xb6, 0x9c,
- 0x91, 0xf9, 0x1a, 0xf0, 0xb6, 0x17, 0x17, 0x18, 0xd3, 0xf3, 0x64, 0x3a, 0xe2, 0xc5, 0x40, 0x3e,
- 0x13, 0x20, 0xe1, 0xde, 0x78, 0x24, 0x1f, 0xf7, 0x6e, 0x74, 0xb8, 0x5d, 0x8e, 0xaf, 0x10, 0x3f,
- 0x7e, 0x0f, 0xaf, 0xd1, 0xd5, 0x9d, 0x97, 0xfb, 0x59, 0xe1, 0xd5, 0x7e, 0x56, 0xf8, 0x6d, 0x3f,
- 0x2b, 0x7c, 0x72, 0x90, 0xed, 0x7b, 0x75, 0x90, 0xed, 0xfb, 0xe5, 0x20, 0xdb, 0xf7, 0xf6, 0x66,
- 0x45, 0xb5, 0xaa, 0xcd, 0x52, 0x4e, 0xd6, 0xeb, 0xf9, 0x0d, 0x07, 0x69, 0x93, 0x96, 0xcc, 0x43,
- 0xdc, 0x4b, 0xb2, 0x6e, 0x28, 0xde, 0x61, 0x95, 0xaa, 0x1a, 0xd6, 0x29, 0xd3, 0xd9, 0xd4, 0x6e,
- 0xe3, 0xcd, 0xd2, 0x30, 0xfb, 0x0f, 0xee, 0xca, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x91, 0x50,
- 0x4b, 0xd5, 0x48, 0x1c, 0x00, 0x00,
+ // 1931 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xdd, 0x6f, 0x1b, 0x4b,
+ 0x15, 0xcf, 0xe6, 0xab, 0xf1, 0x71, 0xf3, 0x71, 0x27, 0xbe, 0xb9, 0xe9, 0xf6, 0x5e, 0x27, 0xdd,
+ 0x34, 0x5f, 0x24, 0xb1, 0x1b, 0xb7, 0xb4, 0xa5, 0x84, 0xa0, 0x26, 0x69, 0x21, 0x90, 0xaa, 0x61,
+ 0x53, 0x28, 0x5f, 0x92, 0x35, 0x5e, 0x4f, 0xec, 0x25, 0xf6, 0xee, 0x76, 0x77, 0x9d, 0xd6, 0xaa,
+ 0x2a, 0x04, 0x8f, 0x80, 0x04, 0x12, 0xaf, 0xf0, 0x8e, 0x78, 0x43, 0x82, 0x87, 0xbe, 0x22, 0x81,
+ 0xca, 0x5b, 0x11, 0x42, 0x42, 0x3c, 0x54, 0x28, 0xe1, 0x6f, 0xe0, 0x19, 0xed, 0xcc, 0xec, 0x66,
+ 0xd7, 0xde, 0xf5, 0xac, 0x83, 0x78, 0xf3, 0xce, 0x9c, 0xf3, 0x9b, 0xdf, 0x39, 0x33, 0xe7, 0xcc,
+ 0x9c, 0x63, 0xb8, 0xa9, 0x1b, 0x3f, 0x20, 0x9a, 0xab, 0x9f, 0x92, 0xa2, 0x69, 0x63, 0xad, 0x41,
+ 0x8a, 0xa7, 0x9b, 0x15, 0xe2, 0xe2, 0xcd, 0xe2, 0x8b, 0x16, 0xb1, 0xdb, 0x05, 0xcb, 0x36, 0x5d,
+ 0x13, 0xcd, 0x06, 0x52, 0x05, 0x26, 0x55, 0xe0, 0x52, 0xf2, 0xa7, 0x35, 0xd3, 0xac, 0x35, 0x48,
+ 0x11, 0x5b, 0x7a, 0x11, 0x1b, 0x86, 0xe9, 0x62, 0x57, 0x37, 0x0d, 0x87, 0xe9, 0xc9, 0x8b, 0x89,
+ 0xe8, 0x1c, 0x86, 0x89, 0x2d, 0x25, 0x8a, 0xd5, 0x88, 0x41, 0x1c, 0xdd, 0x87, 0xcb, 0xd5, 0xcc,
+ 0x9a, 0x49, 0x7f, 0x16, 0xbd, 0x5f, 0x6c, 0x54, 0x29, 0xc1, 0xc7, 0xdf, 0xf0, 0xb8, 0x1e, 0xb6,
+ 0xdd, 0xfa, 0xa1, 0xad, 0x6b, 0x44, 0x25, 0x2f, 0x5a, 0xc4, 0x71, 0xd1, 0x35, 0x18, 0xb3, 0xbc,
+ 0xef, 0xb2, 0x5e, 0x9d, 0x95, 0xe6, 0xa5, 0x95, 0x8c, 0x7a, 0x85, 0x7e, 0xef, 0x57, 0x15, 0x0d,
+ 0x66, 0x3a, 0x75, 0x1c, 0xcb, 0x34, 0x1c, 0x82, 0xf6, 0x21, 0xcb, 0x94, 0x1c, 0x17, 0xbb, 0x84,
+ 0xea, 0x65, 0x4b, 0x2b, 0x85, 0x24, 0x07, 0x14, 0x02, 0x84, 0x23, 0x4f, 0x5e, 0x05, 0x2b, 0xf8,
+ 0xad, 0xe4, 0x00, 0xb1, 0x45, 0xb0, 0x8d, 0x9b, 0x0e, 0x67, 0xa5, 0x7c, 0x13, 0xa6, 0x23, 0xa3,
+ 0x7c, 0xdd, 0x6d, 0x18, 0xb5, 0xe8, 0x08, 0x5f, 0x72, 0xbe, 0xc7, 0x92, 0x54, 0x6e, 0x67, 0xf8,
+ 0xdd, 0x87, 0xb9, 0x01, 0x95, 0x6b, 0x29, 0x32, 0xcc, 0x52, 0xd8, 0x1d, 0x6c, 0x54, 0x55, 0xd2,
+ 0xc0, 0x6d, 0x62, 0x07, 0x4b, 0xde, 0x83, 0x6b, 0x31, 0x73, 0x7c, 0x61, 0x19, 0xc6, 0x6c, 0x3e,
+ 0x36, 0x2b, 0xcd, 0x0f, 0xad, 0x64, 0xd4, 0xe0, 0x5b, 0xf9, 0x0c, 0xae, 0x07, 0x8a, 0x17, 0x46,
+ 0x06, 0xb8, 0x27, 0xf0, 0x69, 0xfc, 0x34, 0x87, 0xfe, 0x3a, 0x5c, 0x0d, 0xf9, 0x92, 0xc1, 0xf7,
+ 0x74, 0x66, 0x14, 0x48, 0xcd, 0x5e, 0x38, 0xd3, 0x51, 0xe6, 0x21, 0x1f, 0x2c, 0xb6, 0xbf, 0xb3,
+ 0x1b, 0x43, 0xc7, 0x80, 0xb9, 0x44, 0x89, 0xff, 0x07, 0x23, 0x05, 0xe6, 0xd9, 0x4e, 0x7a, 0x63,
+ 0x8f, 0x09, 0x89, 0x73, 0x91, 0x05, 0x37, 0x7a, 0xc8, 0x5c, 0x96, 0x55, 0x80, 0x16, 0xc3, 0xea,
+ 0x06, 0xf7, 0xc2, 0xae, 0xa9, 0x1b, 0x15, 0xec, 0x90, 0x18, 0x52, 0x0e, 0x27, 0x1e, 0x2b, 0xc2,
+ 0x39, 0x3d, 0x8d, 0xe5, 0xb4, 0x9e, 0xcc, 0xa9, 0x1b, 0x2c, 0xca, 0xcb, 0x3f, 0x4b, 0xd1, 0x80,
+ 0xe9, 0x3a, 0x4b, 0x5d, 0xd3, 0x97, 0xf6, 0x51, 0x34, 0x30, 0x23, 0x5c, 0xf2, 0x7c, 0xb1, 0x23,
+ 0xd7, 0xb4, 0x4f, 0x62, 0xc8, 0x34, 0xe1, 0xb3, 0x84, 0x79, 0xce, 0xe6, 0x20, 0x96, 0xcd, 0x6a,
+ 0x32, 0x9b, 0x0e, 0xa4, 0x78, 0xd7, 0x30, 0xa1, 0x56, 0xa5, 0xa1, 0x3b, 0xf5, 0x50, 0xf8, 0x6e,
+ 0x47, 0xd8, 0x86, 0xa6, 0x39, 0x99, 0x3c, 0x80, 0x15, 0x8c, 0xf2, 0x18, 0x0e, 0x8d, 0x28, 0xcf,
+ 0x78, 0xe4, 0x1c, 0xda, 0xe6, 0xa9, 0x5e, 0x25, 0x76, 0x88, 0x06, 0xcf, 0x94, 0xb2, 0x97, 0x29,
+ 0xd9, 0x24, 0xcf, 0x94, 0xc1, 0x37, 0x9a, 0x81, 0x51, 0xa7, 0xdd, 0xac, 0x98, 0x8d, 0xd9, 0x41,
+ 0x3a, 0xc3, 0xbf, 0x94, 0x3a, 0x3f, 0x67, 0x71, 0xa8, 0x9c, 0xd8, 0xa3, 0xb8, 0x5c, 0x7a, 0x53,
+ 0x70, 0xac, 0xbb, 0xf3, 0xe8, 0x06, 0xac, 0xb1, 0xe3, 0x5a, 0xc7, 0xba, 0xd1, 0xd0, 0x8d, 0x93,
+ 0x3d, 0xec, 0xe2, 0x23, 0xd7, 0x26, 0xb8, 0xe9, 0xc4, 0x6c, 0xde, 0x4f, 0x25, 0x58, 0x4f, 0x27,
+ 0xcf, 0x69, 0x7e, 0x2f, 0x76, 0x33, 0xef, 0xf7, 0x38, 0xea, 0x3d, 0x81, 0xa3, 0x7b, 0x7b, 0x0d,
+ 0x3e, 0xa1, 0x64, 0x9e, 0x98, 0xd5, 0x56, 0x23, 0xe2, 0x75, 0xe5, 0xdb, 0x3c, 0x65, 0x47, 0xa6,
+ 0x38, 0xa7, 0x2d, 0x18, 0x09, 0x3b, 0x6d, 0x29, 0x99, 0xcc, 0x57, 0xd8, 0x15, 0xc9, 0xd4, 0x99,
+ 0x92, 0xf2, 0x43, 0x50, 0x28, 0xf2, 0x57, 0x75, 0xc7, 0x35, 0x6d, 0x5d, 0xc3, 0x0d, 0x7e, 0xc9,
+ 0x69, 0xa6, 0x5d, 0xf5, 0x1d, 0x85, 0xb6, 0x60, 0x94, 0x61, 0xd1, 0x45, 0x26, 0x7a, 0xed, 0xcc,
+ 0x53, 0xfa, 0xf9, 0xac, 0x6d, 0x11, 0x95, 0xeb, 0xa0, 0xeb, 0x90, 0x61, 0x27, 0xc1, 0xbb, 0x5e,
+ 0xd9, 0xd1, 0x18, 0x63, 0x03, 0xfb, 0x55, 0xc5, 0x86, 0x85, 0x9e, 0x04, 0x82, 0xa0, 0x1e, 0x67,
+ 0x9e, 0xb7, 0xd9, 0x04, 0x77, 0xfd, 0x92, 0xe0, 0x88, 0xf8, 0x30, 0x6c, 0xdb, 0xf8, 0x97, 0xf2,
+ 0x13, 0x09, 0x72, 0x8c, 0x27, 0x5b, 0xb5, 0xfd, 0xd4, 0xa2, 0x6f, 0x11, 0xf4, 0x09, 0x5c, 0x69,
+ 0xe2, 0x57, 0x65, 0x5c, 0x63, 0x86, 0x0e, 0xab, 0xa3, 0x4d, 0xfc, 0xea, 0x61, 0x8d, 0xa0, 0x02,
+ 0x4c, 0xeb, 0x86, 0xd6, 0x68, 0x55, 0x49, 0xd9, 0xc6, 0x2f, 0xcb, 0x75, 0xa6, 0x46, 0x8d, 0x19,
+ 0x53, 0x3f, 0xe2, 0x53, 0x2a, 0x7e, 0xc9, 0xf1, 0xd0, 0x2a, 0x4c, 0xf9, 0xf2, 0x4d, 0xe2, 0xe2,
+ 0x2a, 0x76, 0xf1, 0xec, 0x10, 0x15, 0x9e, 0xe4, 0xe3, 0x4f, 0xf8, 0xb0, 0xf2, 0xb3, 0x41, 0x1e,
+ 0xb4, 0x8c, 0xd1, 0xb7, 0xcc, 0x06, 0x76, 0xf5, 0x86, 0xee, 0xb6, 0x7d, 0xe7, 0x3f, 0x84, 0x8c,
+ 0x97, 0x2d, 0xcb, 0xba, 0x71, 0x6c, 0x8a, 0x23, 0x83, 0xa1, 0xec, 0x1b, 0xc7, 0xa6, 0x3a, 0xe6,
+ 0xa9, 0x79, 0xbf, 0xd0, 0x2e, 0xc0, 0x8b, 0x96, 0xe9, 0x72, 0x8c, 0xc1, 0x3e, 0x30, 0x32, 0x54,
+ 0x8f, 0x82, 0x54, 0x61, 0x86, 0xc9, 0xf9, 0xe6, 0x97, 0x4d, 0xe6, 0x36, 0x6a, 0x59, 0xb6, 0x54,
+ 0x10, 0x01, 0x46, 0x9d, 0xad, 0xe6, 0xcc, 0x98, 0x51, 0xe5, 0x47, 0x83, 0x3c, 0xa3, 0x76, 0xbb,
+ 0x83, 0x1f, 0x85, 0x2f, 0x03, 0x9c, 0x06, 0xa3, 0x2c, 0x09, 0xed, 0xcc, 0xfd, 0xf3, 0xc3, 0xdc,
+ 0x75, 0xcd, 0x74, 0x9a, 0xa6, 0xe3, 0x54, 0x4f, 0x0a, 0xba, 0x59, 0x6c, 0x62, 0xb7, 0x5e, 0x38,
+ 0x20, 0x35, 0xac, 0xb5, 0xf7, 0x88, 0xa6, 0x86, 0x54, 0xd0, 0x73, 0x98, 0xf2, 0x2d, 0x08, 0x36,
+ 0x87, 0xf9, 0xa4, 0xc7, 0xa5, 0xe5, 0xef, 0x97, 0x17, 0x3d, 0xba, 0xe3, 0xea, 0x9a, 0xa3, 0x4e,
+ 0x72, 0x14, 0x7f, 0x0a, 0x3d, 0x86, 0x6c, 0xf8, 0x74, 0x0c, 0xd1, 0x23, 0xba, 0x98, 0xea, 0x88,
+ 0xaa, 0x60, 0x07, 0xa7, 0x27, 0xb8, 0x98, 0x99, 0x0b, 0xfc, 0xb4, 0xe9, 0xd0, 0x0d, 0xe1, 0x19,
+ 0xa1, 0xce, 0x2f, 0xe6, 0x58, 0x11, 0xee, 0xa8, 0x3d, 0xc8, 0xf8, 0xb9, 0x39, 0x55, 0xbc, 0x30,
+ 0x51, 0xb6, 0xed, 0x81, 0xa2, 0xb2, 0x1d, 0xbb, 0x12, 0xa5, 0xee, 0xa4, 0xb8, 0x15, 0x14, 0x9b,
+ 0xbf, 0x6b, 0xe2, 0xf5, 0x39, 0xd5, 0x27, 0x5e, 0x78, 0xb3, 0x99, 0x23, 0x9e, 0xcc, 0x3c, 0xba,
+ 0xcb, 0x62, 0xba, 0x2c, 0x9b, 0x45, 0xb5, 0x95, 0xef, 0xc3, 0xc4, 0x91, 0x86, 0x1b, 0xba, 0x51,
+ 0xf3, 0x23, 0x7b, 0x01, 0xc6, 0x69, 0x10, 0x55, 0x89, 0xa6, 0x37, 0x71, 0x83, 0xbd, 0x9d, 0xc7,
+ 0xd5, 0xab, 0xde, 0xe0, 0x1e, 0x1f, 0x43, 0x8b, 0x30, 0xc1, 0xc2, 0x24, 0x90, 0x1a, 0xa4, 0x52,
+ 0xe3, 0x74, 0xd4, 0x17, 0x53, 0xce, 0x25, 0x9e, 0xa9, 0x7d, 0x93, 0x42, 0x95, 0xc4, 0x23, 0xc8,
+ 0xf2, 0x20, 0x71, 0xdb, 0x56, 0x7f, 0xe9, 0x12, 0xcc, 0xe0, 0x37, 0x42, 0x30, 0xec, 0x31, 0xe3,
+ 0xd9, 0x92, 0xfe, 0x46, 0x39, 0x18, 0xa1, 0x3c, 0x68, 0xb8, 0x65, 0x54, 0xf6, 0x81, 0x9e, 0xc3,
+ 0xa4, 0xc3, 0x4c, 0x0d, 0xc2, 0x71, 0x58, 0x54, 0x89, 0x44, 0x7d, 0x43, 0xcb, 0x03, 0x49, 0x9d,
+ 0x70, 0x22, 0xa3, 0xca, 0xd9, 0x10, 0x4c, 0x50, 0xd3, 0x0e, 0xb1, 0xce, 0xdc, 0x8a, 0x76, 0x00,
+ 0x2c, 0xac, 0xdb, 0x65, 0x9a, 0x4c, 0x79, 0xe4, 0x2d, 0x78, 0xb5, 0x85, 0x28, 0xfa, 0x32, 0x9e,
+ 0x1a, 0x05, 0xf3, 0x30, 0xe8, 0x46, 0x30, 0x8c, 0xc1, 0x3e, 0x30, 0x82, 0x27, 0x23, 0xda, 0x83,
+ 0x2c, 0xdb, 0x27, 0x06, 0x32, 0x94, 0x1e, 0x84, 0xa5, 0x41, 0x86, 0xf2, 0x1c, 0x3e, 0xa6, 0x4c,
+ 0xb4, 0x56, 0xb3, 0xe5, 0xe5, 0x86, 0x53, 0x1f, 0x6f, 0x38, 0x3d, 0xde, 0xb4, 0x87, 0xb0, 0x1b,
+ 0x00, 0x30, 0xe0, 0xef, 0xc0, 0x0c, 0xa3, 0xd7, 0x85, 0x3c, 0x92, 0x1e, 0x39, 0x47, 0x21, 0x3a,
+ 0xa1, 0x17, 0x61, 0x82, 0x72, 0x76, 0xf5, 0x26, 0x71, 0x5c, 0xdc, 0xb4, 0x66, 0x47, 0xe7, 0xa5,
+ 0x95, 0x21, 0x95, 0x1e, 0xee, 0x67, 0xfe, 0x20, 0x5a, 0x86, 0x49, 0xc6, 0xe0, 0x42, 0xee, 0x0a,
+ 0x95, 0x63, 0xe7, 0x3b, 0x10, 0x54, 0x0c, 0xfe, 0xb0, 0x88, 0x9c, 0x64, 0x1e, 0x93, 0x2a, 0x4c,
+ 0xb1, 0x2b, 0x97, 0xee, 0x79, 0xda, 0x22, 0x37, 0x72, 0x62, 0xd4, 0x09, 0x2b, 0xf2, 0x5d, 0xfa,
+ 0xb3, 0x0c, 0x23, 0x74, 0x41, 0xf4, 0x73, 0x09, 0x46, 0x59, 0x79, 0x8a, 0x7a, 0x64, 0xdd, 0xee,
+ 0xaa, 0x58, 0xde, 0x48, 0x29, 0xcd, 0xac, 0x50, 0x56, 0x7e, 0xfc, 0xb7, 0x7f, 0xff, 0x72, 0x50,
+ 0x41, 0xf3, 0xc5, 0xc4, 0xd6, 0x01, 0xab, 0x8b, 0xd1, 0x6f, 0x24, 0xb8, 0x1a, 0xae, 0x7b, 0x51,
+ 0x49, 0xb0, 0x52, 0x4c, 0x01, 0x2d, 0xdf, 0xee, 0x4b, 0x87, 0x73, 0x2c, 0x52, 0x8e, 0xab, 0x68,
+ 0x39, 0x99, 0x63, 0x05, 0x1b, 0xd5, 0xb2, 0x5f, 0x6d, 0xa3, 0x3f, 0x48, 0x30, 0xd9, 0x51, 0x4a,
+ 0xa3, 0xcf, 0xa7, 0x58, 0xb9, 0xfb, 0x0d, 0x2c, 0xdf, 0xed, 0x57, 0x8d, 0x73, 0xbe, 0x4d, 0x39,
+ 0x6f, 0xa0, 0x35, 0x01, 0xe7, 0xf0, 0x7b, 0x19, 0xfd, 0x51, 0x02, 0xd4, 0x5d, 0x73, 0xa3, 0xfb,
+ 0x29, 0x38, 0xc4, 0x16, 0xf2, 0xf2, 0x17, 0x2e, 0xa1, 0xc9, 0x0d, 0xb8, 0x47, 0x0d, 0xd8, 0x44,
+ 0x45, 0x81, 0x01, 0x7a, 0x45, 0x8b, 0x1a, 0xf1, 0x17, 0x09, 0x72, 0x71, 0x45, 0x3a, 0x7a, 0x20,
+ 0x3a, 0x99, 0xc9, 0xd5, 0xbf, 0xfc, 0xc5, 0x4b, 0xe9, 0x72, 0x53, 0xee, 0x53, 0x53, 0x4a, 0xe8,
+ 0x56, 0x8f, 0x33, 0xee, 0xa9, 0x1d, 0x13, 0xd2, 0xb1, 0x21, 0x7f, 0x92, 0x60, 0x3a, 0xa6, 0xb6,
+ 0x47, 0x22, 0xbf, 0x26, 0xb7, 0x0c, 0xe4, 0x07, 0x97, 0x51, 0x4d, 0xbf, 0x27, 0x1a, 0x57, 0x8f,
+ 0xda, 0xe1, 0x05, 0x44, 0x47, 0x3f, 0x40, 0x18, 0x10, 0xf1, 0xed, 0x05, 0x61, 0x40, 0x24, 0xb4,
+ 0x1d, 0xd2, 0x04, 0x84, 0xd5, 0x76, 0xeb, 0x51, 0xde, 0x6f, 0x25, 0x98, 0xea, 0x6c, 0x1d, 0x20,
+ 0x11, 0x83, 0x84, 0x5e, 0x84, 0x7c, 0xaf, 0x6f, 0x3d, 0x4e, 0xfd, 0x0e, 0xa5, 0x5e, 0x40, 0xeb,
+ 0xc9, 0xd4, 0xbd, 0x87, 0xe9, 0x49, 0x94, 0xfb, 0xef, 0x25, 0x98, 0xec, 0x68, 0x34, 0x08, 0x7d,
+ 0x1e, 0xdf, 0xb7, 0x90, 0xef, 0xf6, 0xab, 0xc6, 0x89, 0x97, 0x28, 0xf1, 0x75, 0xf4, 0x39, 0x21,
+ 0xf1, 0x0b, 0x8a, 0x7f, 0x97, 0x00, 0x75, 0x77, 0x22, 0x84, 0x39, 0x28, 0xb1, 0x25, 0x22, 0xcc,
+ 0x41, 0xc9, 0x6d, 0x0f, 0xe5, 0x6b, 0x94, 0xff, 0x1e, 0xda, 0xe9, 0x15, 0xb8, 0x4c, 0x3b, 0xec,
+ 0xfb, 0xe2, 0x6b, 0x7f, 0xf4, 0x4d, 0xf1, 0x35, 0xab, 0xa4, 0xdf, 0xa0, 0xff, 0x48, 0x30, 0x27,
+ 0xe8, 0x63, 0xa0, 0x47, 0xa2, 0xd8, 0x4c, 0xd5, 0x37, 0x91, 0x1f, 0xff, 0xaf, 0x30, 0xdc, 0xfc,
+ 0x3d, 0x6a, 0xfe, 0x36, 0xda, 0xea, 0x11, 0xee, 0x3e, 0x54, 0xd9, 0xab, 0xb0, 0xca, 0x0e, 0x05,
+ 0x8b, 0x9e, 0xc3, 0xdf, 0x4a, 0xf0, 0x11, 0x7b, 0xbf, 0x84, 0xda, 0x23, 0x68, 0x53, 0xc0, 0xb1,
+ 0xbb, 0xcb, 0x22, 0x97, 0xfa, 0x51, 0xe1, 0x26, 0x14, 0xa8, 0x09, 0x2b, 0x68, 0x29, 0xd9, 0x84,
+ 0x26, 0x55, 0x63, 0x6c, 0xd1, 0x5f, 0x25, 0x98, 0x89, 0x6f, 0x75, 0xa0, 0x2d, 0xc1, 0xf2, 0x3d,
+ 0x5b, 0x34, 0xf2, 0x97, 0x2e, 0xa9, 0xcd, 0xed, 0x78, 0x40, 0xed, 0xb8, 0x83, 0x4a, 0xc9, 0x76,
+ 0xd4, 0x03, 0x84, 0x72, 0xa4, 0x15, 0x83, 0x7e, 0x27, 0xc1, 0x54, 0x67, 0xb5, 0x2e, 0x4c, 0x62,
+ 0x09, 0xdd, 0x0e, 0x61, 0x12, 0x4b, 0x6a, 0x0b, 0x28, 0xeb, 0xd4, 0x82, 0x25, 0x74, 0x33, 0xd9,
+ 0x82, 0x50, 0x0f, 0xe0, 0xad, 0x04, 0xd3, 0x31, 0xb5, 0xb3, 0xf0, 0xe2, 0x4b, 0x2e, 0xc9, 0x85,
+ 0x17, 0x5f, 0x8f, 0x52, 0x5d, 0x59, 0xa3, 0xe4, 0x17, 0xd1, 0x82, 0x38, 0x11, 0xd0, 0x57, 0x54,
+ 0x2e, 0xae, 0x9a, 0x46, 0xfd, 0x31, 0x88, 0x94, 0xf0, 0xc2, 0x07, 0x48, 0xaf, 0xf2, 0x5d, 0xd9,
+ 0xa4, 0xf4, 0xd7, 0xd0, 0x6a, 0xda, 0x3c, 0xe6, 0xa0, 0x5f, 0x4b, 0x90, 0x0d, 0x55, 0x1d, 0xc2,
+ 0x78, 0xed, 0xae, 0xb5, 0x85, 0xf1, 0x1a, 0x53, 0xd4, 0x28, 0xcb, 0x94, 0xe9, 0x0d, 0x34, 0x27,
+ 0x78, 0x2a, 0xa1, 0x5f, 0x49, 0x90, 0x09, 0xae, 0x7a, 0x54, 0x4c, 0xfb, 0x28, 0xf0, 0xb9, 0xdd,
+ 0x4a, 0xaf, 0x90, 0xfe, 0xfc, 0x5e, 0xbc, 0x1f, 0x76, 0x8e, 0xdf, 0x9d, 0xe5, 0xa5, 0xf7, 0x67,
+ 0x79, 0xe9, 0x5f, 0x67, 0x79, 0xe9, 0x17, 0xe7, 0xf9, 0x81, 0xf7, 0xe7, 0xf9, 0x81, 0x7f, 0x9c,
+ 0xe7, 0x07, 0xbe, 0x7b, 0x50, 0xd3, 0xdd, 0x7a, 0xab, 0x52, 0xd0, 0xcc, 0x66, 0x71, 0xdf, 0x47,
+ 0x3a, 0xc0, 0x15, 0xe7, 0x02, 0x77, 0x43, 0x33, 0x6d, 0x12, 0xfe, 0xf4, 0x92, 0x2c, 0xcf, 0x53,
+ 0x8e, 0xbf, 0xa8, 0xdb, 0xb6, 0x88, 0x53, 0x19, 0xa5, 0xff, 0x9c, 0xde, 0xfe, 0x6f, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0xe9, 0xfe, 0x8e, 0x10, 0xfe, 0x1d, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1930,6 +2029,8 @@ type QueryClient interface {
StorkPublishers(ctx context.Context, in *QueryStorkPublishersRequest, opts ...grpc.CallOption) (*QueryStorkPublishersResponse, error)
// Retrieves the state for all provider price feeds
ProviderPriceState(ctx context.Context, in *QueryProviderPriceStateRequest, opts ...grpc.CallOption) (*QueryProviderPriceStateResponse, error)
+ // Retrieves the state for all Chainlink Data Streams price feeds
+ ChainlinkDataStreamsPriceStates(ctx context.Context, in *QueryChainlinkDataStreamsPriceStatesRequest, opts ...grpc.CallOption) (*QueryChainlinkDataStreamsPriceStatesResponse, error)
// Retrieves the entire oracle module's state
OracleModuleState(ctx context.Context, in *QueryModuleStateRequest, opts ...grpc.CallOption) (*QueryModuleStateResponse, error)
// Retrieves historical price records for a given OracleType and Symbol
@@ -2040,6 +2141,15 @@ func (c *queryClient) ProviderPriceState(ctx context.Context, in *QueryProviderP
return out, nil
}
+func (c *queryClient) ChainlinkDataStreamsPriceStates(ctx context.Context, in *QueryChainlinkDataStreamsPriceStatesRequest, opts ...grpc.CallOption) (*QueryChainlinkDataStreamsPriceStatesResponse, error) {
+ out := new(QueryChainlinkDataStreamsPriceStatesResponse)
+ err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Query/ChainlinkDataStreamsPriceStates", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *queryClient) OracleModuleState(ctx context.Context, in *QueryModuleStateRequest, opts ...grpc.CallOption) (*QueryModuleStateResponse, error) {
out := new(QueryModuleStateResponse)
err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Query/OracleModuleState", in, out, opts...)
@@ -2125,6 +2235,8 @@ type QueryServer interface {
StorkPublishers(context.Context, *QueryStorkPublishersRequest) (*QueryStorkPublishersResponse, error)
// Retrieves the state for all provider price feeds
ProviderPriceState(context.Context, *QueryProviderPriceStateRequest) (*QueryProviderPriceStateResponse, error)
+ // Retrieves the state for all Chainlink Data Streams price feeds
+ ChainlinkDataStreamsPriceStates(context.Context, *QueryChainlinkDataStreamsPriceStatesRequest) (*QueryChainlinkDataStreamsPriceStatesResponse, error)
// Retrieves the entire oracle module's state
OracleModuleState(context.Context, *QueryModuleStateRequest) (*QueryModuleStateResponse, error)
// Retrieves historical price records for a given OracleType and Symbol
@@ -2171,6 +2283,9 @@ func (*UnimplementedQueryServer) StorkPublishers(ctx context.Context, req *Query
func (*UnimplementedQueryServer) ProviderPriceState(ctx context.Context, req *QueryProviderPriceStateRequest) (*QueryProviderPriceStateResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ProviderPriceState not implemented")
}
+func (*UnimplementedQueryServer) ChainlinkDataStreamsPriceStates(ctx context.Context, req *QueryChainlinkDataStreamsPriceStatesRequest) (*QueryChainlinkDataStreamsPriceStatesResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ChainlinkDataStreamsPriceStates not implemented")
+}
func (*UnimplementedQueryServer) OracleModuleState(ctx context.Context, req *QueryModuleStateRequest) (*QueryModuleStateResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method OracleModuleState not implemented")
}
@@ -2377,6 +2492,24 @@ func _Query_ProviderPriceState_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
+func _Query_ChainlinkDataStreamsPriceStates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(QueryChainlinkDataStreamsPriceStatesRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(QueryServer).ChainlinkDataStreamsPriceStates(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/injective.oracle.v1beta1.Query/ChainlinkDataStreamsPriceStates",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(QueryServer).ChainlinkDataStreamsPriceStates(ctx, req.(*QueryChainlinkDataStreamsPriceStatesRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Query_OracleModuleState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryModuleStateRequest)
if err := dec(in); err != nil {
@@ -2547,6 +2680,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{
MethodName: "ProviderPriceState",
Handler: _Query_ProviderPriceState_Handler,
},
+ {
+ MethodName: "ChainlinkDataStreamsPriceStates",
+ Handler: _Query_ChainlinkDataStreamsPriceStates_Handler,
+ },
{
MethodName: "OracleModuleState",
Handler: _Query_OracleModuleState_Handler,
@@ -3243,6 +3380,66 @@ func (m *QueryProviderPriceStateResponse) MarshalToSizedBuffer(dAtA []byte) (int
return len(dAtA) - i, nil
}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ return len(dAtA) - i, nil
+}
+
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if len(m.PriceStates) > 0 {
+ for iNdEx := len(m.PriceStates) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.PriceStates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintQuery(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *QueryModuleStateRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -4152,6 +4349,30 @@ func (m *QueryProviderPriceStateResponse) Size() (n int) {
return n
}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ return n
+}
+
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.PriceStates) > 0 {
+ for _, e := range m.PriceStates {
+ l = e.Size()
+ n += 1 + l + sovQuery(uint64(l))
+ }
+ }
+ return n
+}
+
func (m *QueryModuleStateRequest) Size() (n int) {
if m == nil {
return 0
@@ -5971,6 +6192,140 @@ func (m *QueryProviderPriceStateResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *QueryChainlinkDataStreamsPriceStatesRequest) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowQuery
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: QueryChainlinkDataStreamsPriceStatesRequest: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: QueryChainlinkDataStreamsPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ default:
+ iNdEx = preIndex
+ skippy, err := skipQuery(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthQuery
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *QueryChainlinkDataStreamsPriceStatesResponse) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowQuery
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: QueryChainlinkDataStreamsPriceStatesResponse: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: QueryChainlinkDataStreamsPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PriceStates", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowQuery
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthQuery
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthQuery
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PriceStates = append(m.PriceStates, &ChainlinkDataStreamsPriceState{})
+ if err := m.PriceStates[len(m.PriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipQuery(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthQuery
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *QueryModuleStateRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/chain/oracle/types/tx.pb.go b/chain/oracle/types/tx.pb.go
index eaf64d6b..a326b824 100644
--- a/chain/oracle/types/tx.pb.go
+++ b/chain/oracle/types/tx.pb.go
@@ -189,118 +189,6 @@ func (m *MsgRelayPriceFeedPriceResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgRelayPriceFeedPriceResponse proto.InternalMessageInfo
-type MsgRelayBandRates struct {
- Relayer string `protobuf:"bytes,1,opt,name=relayer,proto3" json:"relayer,omitempty"`
- Symbols []string `protobuf:"bytes,2,rep,name=symbols,proto3" json:"symbols,omitempty"`
- Rates []uint64 `protobuf:"varint,3,rep,packed,name=rates,proto3" json:"rates,omitempty"`
- ResolveTimes []uint64 `protobuf:"varint,4,rep,packed,name=resolve_times,json=resolveTimes,proto3" json:"resolve_times,omitempty"`
- RequestIDs []uint64 `protobuf:"varint,5,rep,packed,name=requestIDs,proto3" json:"requestIDs,omitempty"`
-}
-
-func (m *MsgRelayBandRates) Reset() { *m = MsgRelayBandRates{} }
-func (m *MsgRelayBandRates) String() string { return proto.CompactTextString(m) }
-func (*MsgRelayBandRates) ProtoMessage() {}
-func (*MsgRelayBandRates) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{4}
-}
-func (m *MsgRelayBandRates) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *MsgRelayBandRates) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_MsgRelayBandRates.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *MsgRelayBandRates) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgRelayBandRates.Merge(m, src)
-}
-func (m *MsgRelayBandRates) XXX_Size() int {
- return m.Size()
-}
-func (m *MsgRelayBandRates) XXX_DiscardUnknown() {
- xxx_messageInfo_MsgRelayBandRates.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgRelayBandRates proto.InternalMessageInfo
-
-func (m *MsgRelayBandRates) GetRelayer() string {
- if m != nil {
- return m.Relayer
- }
- return ""
-}
-
-func (m *MsgRelayBandRates) GetSymbols() []string {
- if m != nil {
- return m.Symbols
- }
- return nil
-}
-
-func (m *MsgRelayBandRates) GetRates() []uint64 {
- if m != nil {
- return m.Rates
- }
- return nil
-}
-
-func (m *MsgRelayBandRates) GetResolveTimes() []uint64 {
- if m != nil {
- return m.ResolveTimes
- }
- return nil
-}
-
-func (m *MsgRelayBandRates) GetRequestIDs() []uint64 {
- if m != nil {
- return m.RequestIDs
- }
- return nil
-}
-
-type MsgRelayBandRatesResponse struct {
-}
-
-func (m *MsgRelayBandRatesResponse) Reset() { *m = MsgRelayBandRatesResponse{} }
-func (m *MsgRelayBandRatesResponse) String() string { return proto.CompactTextString(m) }
-func (*MsgRelayBandRatesResponse) ProtoMessage() {}
-func (*MsgRelayBandRatesResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{5}
-}
-func (m *MsgRelayBandRatesResponse) XXX_Unmarshal(b []byte) error {
- return m.Unmarshal(b)
-}
-func (m *MsgRelayBandRatesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- if deterministic {
- return xxx_messageInfo_MsgRelayBandRatesResponse.Marshal(b, m, deterministic)
- } else {
- b = b[:cap(b)]
- n, err := m.MarshalToSizedBuffer(b)
- if err != nil {
- return nil, err
- }
- return b[:n], nil
- }
-}
-func (m *MsgRelayBandRatesResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgRelayBandRatesResponse.Merge(m, src)
-}
-func (m *MsgRelayBandRatesResponse) XXX_Size() int {
- return m.Size()
-}
-func (m *MsgRelayBandRatesResponse) XXX_DiscardUnknown() {
- xxx_messageInfo_MsgRelayBandRatesResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_MsgRelayBandRatesResponse proto.InternalMessageInfo
-
// MsgRelayCoinbaseMessages defines a SDK message for relaying price messages
// from Coinbase API.
type MsgRelayCoinbaseMessages struct {
@@ -313,7 +201,7 @@ func (m *MsgRelayCoinbaseMessages) Reset() { *m = MsgRelayCoinbaseMessag
func (m *MsgRelayCoinbaseMessages) String() string { return proto.CompactTextString(m) }
func (*MsgRelayCoinbaseMessages) ProtoMessage() {}
func (*MsgRelayCoinbaseMessages) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{6}
+ return fileDescriptor_5fdf1c490eba4310, []int{4}
}
func (m *MsgRelayCoinbaseMessages) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -349,7 +237,7 @@ func (m *MsgRelayCoinbaseMessagesResponse) Reset() { *m = MsgRelayCoinba
func (m *MsgRelayCoinbaseMessagesResponse) String() string { return proto.CompactTextString(m) }
func (*MsgRelayCoinbaseMessagesResponse) ProtoMessage() {}
func (*MsgRelayCoinbaseMessagesResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{7}
+ return fileDescriptor_5fdf1c490eba4310, []int{5}
}
func (m *MsgRelayCoinbaseMessagesResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -389,7 +277,7 @@ func (m *MsgRelayStorkPrices) Reset() { *m = MsgRelayStorkPrices{} }
func (m *MsgRelayStorkPrices) String() string { return proto.CompactTextString(m) }
func (*MsgRelayStorkPrices) ProtoMessage() {}
func (*MsgRelayStorkPrices) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{8}
+ return fileDescriptor_5fdf1c490eba4310, []int{6}
}
func (m *MsgRelayStorkPrices) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -425,7 +313,7 @@ func (m *MsgRelayStorkPricesResponse) Reset() { *m = MsgRelayStorkPrices
func (m *MsgRelayStorkPricesResponse) String() string { return proto.CompactTextString(m) }
func (*MsgRelayStorkPricesResponse) ProtoMessage() {}
func (*MsgRelayStorkPricesResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{9}
+ return fileDescriptor_5fdf1c490eba4310, []int{7}
}
func (m *MsgRelayStorkPricesResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -454,25 +342,24 @@ func (m *MsgRelayStorkPricesResponse) XXX_DiscardUnknown() {
var xxx_messageInfo_MsgRelayStorkPricesResponse proto.InternalMessageInfo
-// MsgRequestBandIBCRates defines a SDK message for requesting data from
-// BandChain using IBC.
-type MsgRequestBandIBCRates struct {
- Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
- RequestId uint64 `protobuf:"varint,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
+// MsgRelayPythPrices defines a SDK message for updating Pyth prices
+type MsgRelayPythPrices struct {
+ Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
+ PriceAttestations []*PriceAttestation `protobuf:"bytes,2,rep,name=price_attestations,json=priceAttestations,proto3" json:"price_attestations,omitempty"`
}
-func (m *MsgRequestBandIBCRates) Reset() { *m = MsgRequestBandIBCRates{} }
-func (m *MsgRequestBandIBCRates) String() string { return proto.CompactTextString(m) }
-func (*MsgRequestBandIBCRates) ProtoMessage() {}
-func (*MsgRequestBandIBCRates) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{10}
+func (m *MsgRelayPythPrices) Reset() { *m = MsgRelayPythPrices{} }
+func (m *MsgRelayPythPrices) String() string { return proto.CompactTextString(m) }
+func (*MsgRelayPythPrices) ProtoMessage() {}
+func (*MsgRelayPythPrices) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5fdf1c490eba4310, []int{8}
}
-func (m *MsgRequestBandIBCRates) XXX_Unmarshal(b []byte) error {
+func (m *MsgRelayPythPrices) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
-func (m *MsgRequestBandIBCRates) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *MsgRelayPythPrices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
- return xxx_messageInfo_MsgRequestBandIBCRates.Marshal(b, m, deterministic)
+ return xxx_messageInfo_MsgRelayPythPrices.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@@ -482,34 +369,34 @@ func (m *MsgRequestBandIBCRates) XXX_Marshal(b []byte, deterministic bool) ([]by
return b[:n], nil
}
}
-func (m *MsgRequestBandIBCRates) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgRequestBandIBCRates.Merge(m, src)
+func (m *MsgRelayPythPrices) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgRelayPythPrices.Merge(m, src)
}
-func (m *MsgRequestBandIBCRates) XXX_Size() int {
+func (m *MsgRelayPythPrices) XXX_Size() int {
return m.Size()
}
-func (m *MsgRequestBandIBCRates) XXX_DiscardUnknown() {
- xxx_messageInfo_MsgRequestBandIBCRates.DiscardUnknown(m)
+func (m *MsgRelayPythPrices) XXX_DiscardUnknown() {
+ xxx_messageInfo_MsgRelayPythPrices.DiscardUnknown(m)
}
-var xxx_messageInfo_MsgRequestBandIBCRates proto.InternalMessageInfo
+var xxx_messageInfo_MsgRelayPythPrices proto.InternalMessageInfo
-// MsgRequestDataResponse defines the Msg/RequestBandIBCRates response type.
-type MsgRequestBandIBCRatesResponse struct {
+// MsgRelayPythPricesResponse defines the Msg/RelayPythPrices response type.
+type MsgRelayPythPricesResponse struct {
}
-func (m *MsgRequestBandIBCRatesResponse) Reset() { *m = MsgRequestBandIBCRatesResponse{} }
-func (m *MsgRequestBandIBCRatesResponse) String() string { return proto.CompactTextString(m) }
-func (*MsgRequestBandIBCRatesResponse) ProtoMessage() {}
-func (*MsgRequestBandIBCRatesResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{11}
+func (m *MsgRelayPythPricesResponse) Reset() { *m = MsgRelayPythPricesResponse{} }
+func (m *MsgRelayPythPricesResponse) String() string { return proto.CompactTextString(m) }
+func (*MsgRelayPythPricesResponse) ProtoMessage() {}
+func (*MsgRelayPythPricesResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5fdf1c490eba4310, []int{9}
}
-func (m *MsgRequestBandIBCRatesResponse) XXX_Unmarshal(b []byte) error {
+func (m *MsgRelayPythPricesResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
-func (m *MsgRequestBandIBCRatesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *MsgRelayPythPricesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
- return xxx_messageInfo_MsgRequestBandIBCRatesResponse.Marshal(b, m, deterministic)
+ return xxx_messageInfo_MsgRelayPythPricesResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@@ -519,36 +406,37 @@ func (m *MsgRequestBandIBCRatesResponse) XXX_Marshal(b []byte, deterministic boo
return b[:n], nil
}
}
-func (m *MsgRequestBandIBCRatesResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgRequestBandIBCRatesResponse.Merge(m, src)
+func (m *MsgRelayPythPricesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgRelayPythPricesResponse.Merge(m, src)
}
-func (m *MsgRequestBandIBCRatesResponse) XXX_Size() int {
+func (m *MsgRelayPythPricesResponse) XXX_Size() int {
return m.Size()
}
-func (m *MsgRequestBandIBCRatesResponse) XXX_DiscardUnknown() {
- xxx_messageInfo_MsgRequestBandIBCRatesResponse.DiscardUnknown(m)
+func (m *MsgRelayPythPricesResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_MsgRelayPythPricesResponse.DiscardUnknown(m)
}
-var xxx_messageInfo_MsgRequestBandIBCRatesResponse proto.InternalMessageInfo
+var xxx_messageInfo_MsgRelayPythPricesResponse proto.InternalMessageInfo
-// MsgRelayPythPrices defines a SDK message for updating Pyth prices
-type MsgRelayPythPrices struct {
- Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
- PriceAttestations []*PriceAttestation `protobuf:"bytes,2,rep,name=price_attestations,json=priceAttestations,proto3" json:"price_attestations,omitempty"`
+// MsgRelayChainlinkPrices defines a SDK message for updating Chainlink Data
+// Streams prices
+type MsgRelayChainlinkPrices struct {
+ Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"`
+ Reports []*ChainlinkReport `protobuf:"bytes,2,rep,name=reports,proto3" json:"reports,omitempty"`
}
-func (m *MsgRelayPythPrices) Reset() { *m = MsgRelayPythPrices{} }
-func (m *MsgRelayPythPrices) String() string { return proto.CompactTextString(m) }
-func (*MsgRelayPythPrices) ProtoMessage() {}
-func (*MsgRelayPythPrices) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{12}
+func (m *MsgRelayChainlinkPrices) Reset() { *m = MsgRelayChainlinkPrices{} }
+func (m *MsgRelayChainlinkPrices) String() string { return proto.CompactTextString(m) }
+func (*MsgRelayChainlinkPrices) ProtoMessage() {}
+func (*MsgRelayChainlinkPrices) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5fdf1c490eba4310, []int{10}
}
-func (m *MsgRelayPythPrices) XXX_Unmarshal(b []byte) error {
+func (m *MsgRelayChainlinkPrices) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
-func (m *MsgRelayPythPrices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *MsgRelayChainlinkPrices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
- return xxx_messageInfo_MsgRelayPythPrices.Marshal(b, m, deterministic)
+ return xxx_messageInfo_MsgRelayChainlinkPrices.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@@ -558,34 +446,35 @@ func (m *MsgRelayPythPrices) XXX_Marshal(b []byte, deterministic bool) ([]byte,
return b[:n], nil
}
}
-func (m *MsgRelayPythPrices) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgRelayPythPrices.Merge(m, src)
+func (m *MsgRelayChainlinkPrices) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgRelayChainlinkPrices.Merge(m, src)
}
-func (m *MsgRelayPythPrices) XXX_Size() int {
+func (m *MsgRelayChainlinkPrices) XXX_Size() int {
return m.Size()
}
-func (m *MsgRelayPythPrices) XXX_DiscardUnknown() {
- xxx_messageInfo_MsgRelayPythPrices.DiscardUnknown(m)
+func (m *MsgRelayChainlinkPrices) XXX_DiscardUnknown() {
+ xxx_messageInfo_MsgRelayChainlinkPrices.DiscardUnknown(m)
}
-var xxx_messageInfo_MsgRelayPythPrices proto.InternalMessageInfo
+var xxx_messageInfo_MsgRelayChainlinkPrices proto.InternalMessageInfo
-// MsgRelayPythPricesResponse defines the Msg/RelayPythPrices response type.
-type MsgRelayPythPricesResponse struct {
+// MsgRelayChainlinkPricesResponse defines the Msg/RelayChainlinkPrices response
+// type.
+type MsgRelayChainlinkPricesResponse struct {
}
-func (m *MsgRelayPythPricesResponse) Reset() { *m = MsgRelayPythPricesResponse{} }
-func (m *MsgRelayPythPricesResponse) String() string { return proto.CompactTextString(m) }
-func (*MsgRelayPythPricesResponse) ProtoMessage() {}
-func (*MsgRelayPythPricesResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{13}
+func (m *MsgRelayChainlinkPricesResponse) Reset() { *m = MsgRelayChainlinkPricesResponse{} }
+func (m *MsgRelayChainlinkPricesResponse) String() string { return proto.CompactTextString(m) }
+func (*MsgRelayChainlinkPricesResponse) ProtoMessage() {}
+func (*MsgRelayChainlinkPricesResponse) Descriptor() ([]byte, []int) {
+ return fileDescriptor_5fdf1c490eba4310, []int{11}
}
-func (m *MsgRelayPythPricesResponse) XXX_Unmarshal(b []byte) error {
+func (m *MsgRelayChainlinkPricesResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
-func (m *MsgRelayPythPricesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+func (m *MsgRelayChainlinkPricesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
- return xxx_messageInfo_MsgRelayPythPricesResponse.Marshal(b, m, deterministic)
+ return xxx_messageInfo_MsgRelayChainlinkPricesResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
@@ -595,17 +484,17 @@ func (m *MsgRelayPythPricesResponse) XXX_Marshal(b []byte, deterministic bool) (
return b[:n], nil
}
}
-func (m *MsgRelayPythPricesResponse) XXX_Merge(src proto.Message) {
- xxx_messageInfo_MsgRelayPythPricesResponse.Merge(m, src)
+func (m *MsgRelayChainlinkPricesResponse) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MsgRelayChainlinkPricesResponse.Merge(m, src)
}
-func (m *MsgRelayPythPricesResponse) XXX_Size() int {
+func (m *MsgRelayChainlinkPricesResponse) XXX_Size() int {
return m.Size()
}
-func (m *MsgRelayPythPricesResponse) XXX_DiscardUnknown() {
- xxx_messageInfo_MsgRelayPythPricesResponse.DiscardUnknown(m)
+func (m *MsgRelayChainlinkPricesResponse) XXX_DiscardUnknown() {
+ xxx_messageInfo_MsgRelayChainlinkPricesResponse.DiscardUnknown(m)
}
-var xxx_messageInfo_MsgRelayPythPricesResponse proto.InternalMessageInfo
+var xxx_messageInfo_MsgRelayChainlinkPricesResponse proto.InternalMessageInfo
type MsgUpdateParams struct {
// authority is the address of the governance account.
@@ -620,7 +509,7 @@ func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} }
func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) }
func (*MsgUpdateParams) ProtoMessage() {}
func (*MsgUpdateParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{14}
+ return fileDescriptor_5fdf1c490eba4310, []int{12}
}
func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -670,7 +559,7 @@ func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse
func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) }
func (*MsgUpdateParamsResponse) ProtoMessage() {}
func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) {
- return fileDescriptor_5fdf1c490eba4310, []int{15}
+ return fileDescriptor_5fdf1c490eba4310, []int{13}
}
func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -704,16 +593,14 @@ func init() {
proto.RegisterType((*MsgRelayProviderPricesResponse)(nil), "injective.oracle.v1beta1.MsgRelayProviderPricesResponse")
proto.RegisterType((*MsgRelayPriceFeedPrice)(nil), "injective.oracle.v1beta1.MsgRelayPriceFeedPrice")
proto.RegisterType((*MsgRelayPriceFeedPriceResponse)(nil), "injective.oracle.v1beta1.MsgRelayPriceFeedPriceResponse")
- proto.RegisterType((*MsgRelayBandRates)(nil), "injective.oracle.v1beta1.MsgRelayBandRates")
- proto.RegisterType((*MsgRelayBandRatesResponse)(nil), "injective.oracle.v1beta1.MsgRelayBandRatesResponse")
proto.RegisterType((*MsgRelayCoinbaseMessages)(nil), "injective.oracle.v1beta1.MsgRelayCoinbaseMessages")
proto.RegisterType((*MsgRelayCoinbaseMessagesResponse)(nil), "injective.oracle.v1beta1.MsgRelayCoinbaseMessagesResponse")
proto.RegisterType((*MsgRelayStorkPrices)(nil), "injective.oracle.v1beta1.MsgRelayStorkPrices")
proto.RegisterType((*MsgRelayStorkPricesResponse)(nil), "injective.oracle.v1beta1.MsgRelayStorkPricesResponse")
- proto.RegisterType((*MsgRequestBandIBCRates)(nil), "injective.oracle.v1beta1.MsgRequestBandIBCRates")
- proto.RegisterType((*MsgRequestBandIBCRatesResponse)(nil), "injective.oracle.v1beta1.MsgRequestBandIBCRatesResponse")
proto.RegisterType((*MsgRelayPythPrices)(nil), "injective.oracle.v1beta1.MsgRelayPythPrices")
proto.RegisterType((*MsgRelayPythPricesResponse)(nil), "injective.oracle.v1beta1.MsgRelayPythPricesResponse")
+ proto.RegisterType((*MsgRelayChainlinkPrices)(nil), "injective.oracle.v1beta1.MsgRelayChainlinkPrices")
+ proto.RegisterType((*MsgRelayChainlinkPricesResponse)(nil), "injective.oracle.v1beta1.MsgRelayChainlinkPricesResponse")
proto.RegisterType((*MsgUpdateParams)(nil), "injective.oracle.v1beta1.MsgUpdateParams")
proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.oracle.v1beta1.MsgUpdateParamsResponse")
}
@@ -721,69 +608,63 @@ func init() {
func init() { proto.RegisterFile("injective/oracle/v1beta1/tx.proto", fileDescriptor_5fdf1c490eba4310) }
var fileDescriptor_5fdf1c490eba4310 = []byte{
- // 990 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x4f, 0x6f, 0xe3, 0x44,
- 0x14, 0x8f, 0xdb, 0xa4, 0x4b, 0x5f, 0x0b, 0xab, 0xba, 0xa5, 0xeb, 0xba, 0x34, 0x09, 0xa9, 0x90,
- 0x76, 0x0b, 0x8d, 0x49, 0x97, 0xe5, 0x4f, 0x90, 0x90, 0x9a, 0xad, 0x90, 0x2a, 0xb5, 0x52, 0xe5,
- 0x85, 0x03, 0x5c, 0xa2, 0x49, 0x3c, 0x38, 0x66, 0x63, 0x8f, 0x77, 0x66, 0x12, 0x91, 0x1b, 0x70,
- 0x80, 0x15, 0x27, 0x3e, 0xc2, 0xde, 0xb8, 0xf6, 0xb0, 0x27, 0x3e, 0xc1, 0x1e, 0x40, 0x5a, 0x71,
- 0x42, 0x7b, 0xa8, 0x50, 0x7b, 0x28, 0x9f, 0x80, 0x33, 0xf2, 0xd8, 0x9e, 0x38, 0x4e, 0xdc, 0x24,
- 0x97, 0xd6, 0xef, 0xbd, 0xdf, 0x7b, 0xf3, 0xfb, 0xf9, 0xcd, 0x7b, 0x0e, 0xbc, 0xed, 0x78, 0xdf,
- 0xe2, 0x36, 0x77, 0xfa, 0xd8, 0x20, 0x14, 0xb5, 0xbb, 0xd8, 0xe8, 0xd7, 0x5a, 0x98, 0xa3, 0x9a,
- 0xc1, 0xbf, 0xab, 0xfa, 0x94, 0x70, 0xa2, 0x6a, 0x12, 0x52, 0x0d, 0x21, 0xd5, 0x08, 0xa2, 0x6f,
- 0xd8, 0xc4, 0x26, 0x02, 0x64, 0x04, 0x4f, 0x21, 0x5e, 0x7f, 0x27, 0xb3, 0x64, 0x94, 0x1e, 0xc2,
- 0xee, 0xb4, 0x09, 0x73, 0x09, 0x33, 0x5c, 0x66, 0x1b, 0xfd, 0x5a, 0xf0, 0x2f, 0x0a, 0x6c, 0x85,
- 0x81, 0x66, 0x58, 0x38, 0x34, 0xa2, 0xd0, 0x1a, 0x72, 0x1d, 0x8f, 0x18, 0xe2, 0x6f, 0xe8, 0xaa,
- 0xbc, 0x52, 0x60, 0xf3, 0x94, 0xd9, 0x26, 0xee, 0xa2, 0xc1, 0x19, 0x25, 0x7d, 0xc7, 0xc2, 0xf4,
- 0x8c, 0x3a, 0x6d, 0xcc, 0xd4, 0x4d, 0x58, 0x62, 0xd8, 0xb3, 0x30, 0xd5, 0x94, 0xb2, 0x72, 0x77,
- 0xd9, 0x8c, 0x2c, 0x55, 0x87, 0xd7, 0xfc, 0x08, 0xa9, 0x2d, 0x88, 0x88, 0xb4, 0x55, 0x0d, 0x6e,
- 0xb1, 0x81, 0xdb, 0x22, 0x5d, 0xa6, 0x2d, 0x96, 0x17, 0xef, 0x2e, 0x9b, 0xb1, 0xa9, 0x7e, 0x0a,
- 0x4b, 0xbe, 0xa8, 0xab, 0xe5, 0x83, 0x40, 0x63, 0xf7, 0xc5, 0x45, 0x29, 0xf7, 0xea, 0xa2, 0xb4,
- 0x1d, 0x32, 0x64, 0xd6, 0xe3, 0xaa, 0x43, 0x0c, 0x17, 0xf1, 0x4e, 0xf5, 0x04, 0xdb, 0xa8, 0x3d,
- 0x38, 0xc2, 0x6d, 0x33, 0x4a, 0xa9, 0x3f, 0x78, 0xfa, 0xac, 0x94, 0xfb, 0xf7, 0x59, 0x29, 0xf7,
- 0xe3, 0xf5, 0xf9, 0x5e, 0xc4, 0xe3, 0x97, 0xeb, 0xf3, 0xbd, 0x9d, 0xe8, 0x0d, 0x4d, 0x56, 0x50,
- 0x29, 0x43, 0x71, 0x72, 0xc4, 0xc4, 0xcc, 0x27, 0x1e, 0xc3, 0x95, 0x3f, 0x46, 0xe4, 0x3b, 0x6d,
- 0xfc, 0x39, 0xc6, 0x96, 0x78, 0xc8, 0x94, 0xaf, 0x42, 0xbe, 0x85, 0x18, 0xd6, 0x16, 0x84, 0x3e,
- 0xf1, 0xac, 0x6e, 0x40, 0xe1, 0x49, 0x8f, 0x70, 0x1c, 0x89, 0x0e, 0x0d, 0xf5, 0x13, 0x28, 0x08,
- 0xfe, 0xf3, 0x28, 0x0e, 0x33, 0xe6, 0x10, 0x9c, 0xe4, 0x3c, 0x2a, 0x38, 0x19, 0x91, 0x82, 0xff,
- 0x54, 0x60, 0x2d, 0x86, 0x34, 0x90, 0x67, 0x99, 0x88, 0x63, 0x16, 0xb4, 0x8d, 0x06, 0x1e, 0x29,
- 0x36, 0x36, 0x93, 0x0d, 0x5d, 0x18, 0x6d, 0xe8, 0x06, 0x14, 0x68, 0x90, 0x2c, 0x34, 0xe7, 0xcd,
- 0xd0, 0x50, 0x77, 0xe1, 0x75, 0x8a, 0x19, 0xe9, 0xf6, 0x71, 0x93, 0x3b, 0x6e, 0xd4, 0xed, 0xbc,
- 0xb9, 0x1a, 0x39, 0xbf, 0x08, 0x7c, 0x6a, 0x11, 0x80, 0xe2, 0x27, 0x3d, 0xcc, 0xf8, 0xf1, 0x11,
- 0xd3, 0x0a, 0x02, 0x91, 0xf0, 0xd4, 0xef, 0x05, 0xaa, 0x63, 0x0a, 0x81, 0x6c, 0x2d, 0x25, 0x5b,
- 0x32, 0xaf, 0x6c, 0xc3, 0xd6, 0x98, 0x53, 0x8a, 0xfd, 0x4d, 0x01, 0x2d, 0x8e, 0x3e, 0x24, 0x8e,
- 0x17, 0xf4, 0xea, 0x14, 0x33, 0x86, 0xec, 0x9b, 0xaf, 0xb7, 0x1b, 0x61, 0x84, 0xe4, 0x55, 0x53,
- 0xda, 0x01, 0x71, 0xe6, 0xd8, 0x1e, 0xe2, 0x3d, 0x1a, 0x09, 0x5f, 0x35, 0x13, 0x9e, 0xfa, 0x47,
- 0x19, 0x6d, 0x2b, 0xa5, 0xf8, 0xa7, 0xc9, 0x54, 0x2a, 0x50, 0xce, 0x8a, 0x49, 0x35, 0x4f, 0x15,
- 0x58, 0x8f, 0x41, 0x8f, 0x38, 0xa1, 0x8f, 0xa7, 0xcc, 0xe9, 0x11, 0xac, 0x20, 0xc6, 0x30, 0x6f,
- 0xfa, 0xc8, 0xa1, 0xa1, 0x96, 0x95, 0x83, 0xdd, 0x6a, 0xd6, 0x3a, 0xaa, 0x1e, 0x06, 0xe0, 0x33,
- 0xe4, 0x50, 0x13, 0x50, 0xfc, 0xc8, 0xea, 0xeb, 0x13, 0x24, 0x55, 0x76, 0x60, 0x7b, 0x02, 0x13,
- 0xc9, 0xf4, 0xa7, 0x78, 0xaa, 0x44, 0x47, 0x83, 0xbe, 0x1c, 0x37, 0x1e, 0x86, 0x37, 0x2d, 0x8b,
- 0xec, 0x8e, 0xbc, 0x12, 0x4d, 0xc7, 0x12, 0x6b, 0x25, 0x6f, 0x2e, 0xc7, 0x57, 0xc2, 0x9a, 0x6d,
- 0x1e, 0xc6, 0x4e, 0x93, 0xf3, 0x30, 0x16, 0x91, 0x54, 0x7f, 0x57, 0x40, 0x95, 0x23, 0x33, 0xe0,
- 0x9d, 0x29, 0xef, 0xf4, 0x2b, 0x50, 0xc5, 0x80, 0x36, 0x11, 0xe7, 0x98, 0x71, 0xc4, 0x1d, 0xe2,
- 0xc5, 0xaf, 0x76, 0x2f, 0xfb, 0xd5, 0x8a, 0xaa, 0x87, 0xc3, 0x14, 0x73, 0xcd, 0x4f, 0x79, 0x58,
- 0xbd, 0x96, 0x21, 0x71, 0x2b, 0x3d, 0xf2, 0x92, 0x65, 0xe5, 0x2d, 0xd0, 0xc7, 0xbd, 0x52, 0xda,
- 0x73, 0x05, 0x6e, 0x9f, 0x32, 0xfb, 0x4b, 0xdf, 0x42, 0x1c, 0x9f, 0x21, 0x8a, 0x5c, 0xa6, 0x7e,
- 0x08, 0xcb, 0xa8, 0xc7, 0x3b, 0x84, 0x3a, 0x7c, 0x10, 0x4a, 0x6b, 0x68, 0x7f, 0x3d, 0xdf, 0xdf,
- 0x88, 0x3e, 0x13, 0x87, 0x96, 0x45, 0x31, 0x63, 0x8f, 0x38, 0x75, 0x3c, 0xdb, 0x1c, 0x42, 0xd5,
- 0xcf, 0x60, 0xc9, 0x17, 0x15, 0x44, 0x6b, 0x56, 0x0e, 0xca, 0x37, 0x68, 0x15, 0xb8, 0x46, 0x3e,
- 0xd8, 0x76, 0x66, 0x94, 0x15, 0x4e, 0xf4, 0xb0, 0x5e, 0xa0, 0x6b, 0x73, 0xa8, 0x2b, 0x49, 0xb1,
- 0xb2, 0x05, 0x77, 0x52, 0xae, 0x58, 0xd1, 0xc1, 0x7f, 0xb7, 0x60, 0xf1, 0x94, 0xd9, 0xea, 0x0f,
- 0x0a, 0xac, 0x4f, 0xfa, 0x62, 0xbd, 0x9f, 0xcd, 0x6a, 0xf2, 0x77, 0x40, 0xff, 0x78, 0xde, 0x8c,
- 0x98, 0x4b, 0x92, 0xc3, 0xc8, 0x67, 0x63, 0x26, 0x0e, 0xc9, 0x8c, 0xd9, 0x38, 0x4c, 0x5a, 0xe6,
- 0x2a, 0x85, 0x37, 0x52, 0x8b, 0xfc, 0xdd, 0xe9, 0xb5, 0x24, 0x58, 0xbf, 0x3f, 0x07, 0x38, 0xa5,
- 0x7b, 0x7c, 0xb0, 0xa7, 0xe9, 0x1e, 0xcb, 0x98, 0xaa, 0x3b, 0x73, 0x68, 0xd5, 0x9f, 0x15, 0x78,
- 0x73, 0xf2, 0x52, 0x3f, 0x98, 0x2e, 0x29, 0x9d, 0xa3, 0xd7, 0xe7, 0xcf, 0x91, 0x4c, 0x06, 0xb0,
- 0x36, 0xdc, 0x82, 0x51, 0x54, 0xdd, 0x9f, 0x5e, 0x30, 0xb1, 0x35, 0xf5, 0x07, 0x73, 0xc1, 0xe5,
- 0xd1, 0x3d, 0xb8, 0x9d, 0xde, 0x5a, 0xef, 0xcd, 0x70, 0x93, 0x24, 0x5a, 0xff, 0x60, 0x1e, 0xb4,
- 0x3c, 0xb6, 0x0b, 0xab, 0x23, 0x1b, 0xe5, 0xde, 0x8d, 0x55, 0x92, 0x50, 0xbd, 0x36, 0x33, 0x34,
- 0x3e, 0x4d, 0x2f, 0x7c, 0x7f, 0x7d, 0xbe, 0xa7, 0x34, 0xbe, 0x79, 0x71, 0x59, 0x54, 0x5e, 0x5e,
- 0x16, 0x95, 0x7f, 0x2e, 0x8b, 0xca, 0xaf, 0x57, 0xc5, 0xdc, 0xcb, 0xab, 0x62, 0xee, 0xef, 0xab,
- 0x62, 0xee, 0xeb, 0x13, 0xdb, 0xe1, 0x9d, 0x5e, 0xab, 0xda, 0x26, 0xae, 0x71, 0x1c, 0x57, 0x3f,
- 0x41, 0x2d, 0x66, 0xc8, 0xb3, 0xf6, 0xdb, 0x84, 0xe2, 0xa4, 0xd9, 0x41, 0x8e, 0x67, 0xb8, 0xc4,
- 0xea, 0x75, 0x31, 0x8b, 0x7f, 0x63, 0xf3, 0x81, 0x8f, 0x59, 0x6b, 0x49, 0xfc, 0x28, 0xbe, 0xff,
- 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x21, 0x85, 0x8e, 0x1e, 0xd7, 0x0b, 0x00, 0x00,
+ // 895 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcf, 0x6f, 0xdc, 0x44,
+ 0x14, 0x5e, 0x37, 0xbf, 0xc8, 0x4b, 0xa4, 0x2a, 0x4e, 0x48, 0x1d, 0x97, 0x7a, 0xb7, 0xae, 0x90,
+ 0x9a, 0x88, 0xac, 0xd9, 0x40, 0x0b, 0x5d, 0x24, 0xa4, 0xa4, 0x15, 0x12, 0x52, 0x22, 0x45, 0xae,
+ 0x38, 0xc0, 0x25, 0x9a, 0xb5, 0x07, 0xef, 0xd0, 0xb5, 0xc7, 0xcc, 0xcc, 0x46, 0xec, 0x0d, 0x10,
+ 0x88, 0x8a, 0x13, 0x7f, 0x42, 0x6f, 0xdc, 0x50, 0x0e, 0x3d, 0xf1, 0x17, 0xf4, 0xc0, 0xa1, 0xe2,
+ 0x84, 0x7a, 0xa8, 0x50, 0x72, 0x08, 0x7f, 0x06, 0xf2, 0xd8, 0x9e, 0xf5, 0x6e, 0xed, 0xec, 0xee,
+ 0x65, 0x77, 0xde, 0xbc, 0xef, 0x7b, 0xf3, 0x7d, 0x7e, 0xe3, 0x27, 0xc3, 0x6d, 0x12, 0x7d, 0x83,
+ 0x3d, 0x41, 0x4e, 0xb1, 0x43, 0x19, 0xf2, 0x7a, 0xd8, 0x39, 0x6d, 0x75, 0xb0, 0x40, 0x2d, 0x47,
+ 0x7c, 0xd7, 0x8c, 0x19, 0x15, 0x54, 0x37, 0x14, 0xa4, 0x99, 0x42, 0x9a, 0x19, 0xc4, 0xdc, 0x08,
+ 0x68, 0x40, 0x25, 0xc8, 0x49, 0x56, 0x29, 0xde, 0x7c, 0xb7, 0xb2, 0x64, 0x46, 0x4f, 0x61, 0x37,
+ 0x3c, 0xca, 0x43, 0xca, 0x9d, 0x90, 0x07, 0xce, 0x69, 0x2b, 0xf9, 0xcb, 0x12, 0x5b, 0x69, 0xe2,
+ 0x24, 0x2d, 0x9c, 0x06, 0x59, 0x6a, 0x0d, 0x85, 0x24, 0xa2, 0x8e, 0xfc, 0x4d, 0xb7, 0xec, 0x57,
+ 0x1a, 0x6c, 0x1e, 0xf1, 0xc0, 0xc5, 0x3d, 0x34, 0x38, 0x66, 0xf4, 0x94, 0xf8, 0x98, 0x1d, 0x33,
+ 0xe2, 0x61, 0xae, 0x6f, 0xc2, 0x22, 0xc7, 0x91, 0x8f, 0x99, 0xa1, 0x35, 0xb4, 0xbb, 0xcb, 0x6e,
+ 0x16, 0xe9, 0x26, 0xbc, 0x15, 0x67, 0x48, 0xe3, 0x9a, 0xcc, 0xa8, 0x58, 0x37, 0x60, 0x89, 0x0f,
+ 0xc2, 0x0e, 0xed, 0x71, 0x63, 0xae, 0x31, 0x77, 0x77, 0xd9, 0xcd, 0x43, 0xfd, 0x13, 0x58, 0x8c,
+ 0x65, 0x5d, 0x63, 0x3e, 0x49, 0x1c, 0xdc, 0x79, 0xf1, 0xba, 0x5e, 0x7b, 0xf5, 0xba, 0x7e, 0x33,
+ 0x55, 0xc8, 0xfd, 0x27, 0x4d, 0x42, 0x9d, 0x10, 0x89, 0x6e, 0xf3, 0x10, 0x07, 0xc8, 0x1b, 0x3c,
+ 0xc2, 0x9e, 0x9b, 0x51, 0xda, 0xf7, 0x9e, 0x3e, 0xab, 0xd7, 0xfe, 0x7b, 0x56, 0xaf, 0xfd, 0x78,
+ 0x79, 0xb6, 0x93, 0xe9, 0xf8, 0xf5, 0xf2, 0x6c, 0xe7, 0x56, 0xf6, 0x84, 0xca, 0x1d, 0xd8, 0x0d,
+ 0xb0, 0xca, 0x33, 0x2e, 0xe6, 0x31, 0x8d, 0x38, 0xb6, 0xff, 0x1a, 0xb1, 0x4f, 0x3c, 0xfc, 0x19,
+ 0xc6, 0xbe, 0x5c, 0x54, 0xda, 0xd7, 0x61, 0xbe, 0x83, 0x38, 0x36, 0xae, 0x49, 0x7f, 0x72, 0xad,
+ 0x6f, 0xc0, 0xc2, 0xb7, 0x7d, 0x2a, 0x70, 0x66, 0x3a, 0x0d, 0xf4, 0x07, 0xb0, 0x20, 0xf5, 0xcf,
+ 0xe2, 0x38, 0x65, 0xcc, 0x60, 0xb8, 0xa8, 0x79, 0xd4, 0x70, 0x31, 0xa3, 0x0c, 0xff, 0xae, 0x81,
+ 0x91, 0x43, 0x1e, 0x52, 0x12, 0x25, 0xf2, 0x8f, 0x30, 0xe7, 0x28, 0xb8, 0xba, 0xe3, 0x61, 0x86,
+ 0x91, 0xb6, 0x57, 0x5d, 0x15, 0xeb, 0x16, 0x00, 0x27, 0x41, 0x84, 0x44, 0x9f, 0xe1, 0xb4, 0xe9,
+ 0xab, 0x6e, 0x61, 0xa7, 0xfd, 0x51, 0x85, 0x93, 0xfa, 0x98, 0x93, 0x71, 0x31, 0xb6, 0x0d, 0x8d,
+ 0xaa, 0x9c, 0x72, 0xf3, 0x54, 0x83, 0xf5, 0x1c, 0xf4, 0x58, 0x50, 0xf6, 0x64, 0xc2, 0xd5, 0x7d,
+ 0x04, 0x2b, 0x88, 0x73, 0x2c, 0x4e, 0x62, 0x44, 0x58, 0xea, 0x65, 0x65, 0xef, 0x4e, 0xb3, 0xea,
+ 0x0d, 0x6d, 0xee, 0x27, 0xe0, 0x63, 0x44, 0x98, 0x0b, 0x28, 0x5f, 0xf2, 0xf6, 0x7a, 0x89, 0x25,
+ 0xfb, 0x16, 0xdc, 0x2c, 0x51, 0xa2, 0x94, 0xfe, 0xa9, 0x81, 0xae, 0x5a, 0x33, 0x10, 0xdd, 0x09,
+ 0x42, 0xbf, 0x04, 0x5d, 0x5e, 0x84, 0x13, 0x24, 0x04, 0xe6, 0x02, 0x09, 0x42, 0xa3, 0x5c, 0xef,
+ 0x4e, 0xb5, 0x5e, 0x59, 0x75, 0x7f, 0x48, 0x71, 0xd7, 0xe2, 0xb1, 0x1d, 0xde, 0x6e, 0x55, 0x34,
+ 0x64, 0x6b, 0xfc, 0x6a, 0x29, 0x95, 0xf6, 0x3b, 0x60, 0xbe, 0xb9, 0xab, 0xac, 0xfd, 0xa1, 0xc1,
+ 0x0d, 0xd5, 0xa9, 0x2e, 0x22, 0x51, 0x8f, 0x44, 0x93, 0x1a, 0xf1, 0x10, 0x96, 0x18, 0x8e, 0x29,
+ 0x13, 0xb9, 0xa9, 0xed, 0x6a, 0x53, 0xaa, 0xa6, 0x2b, 0x19, 0x6e, 0xce, 0x6c, 0xdf, 0xaf, 0x70,
+ 0x62, 0x8d, 0x5f, 0xad, 0x51, 0x51, 0xf6, 0x6d, 0xa8, 0x57, 0xa4, 0x94, 0xa7, 0xe7, 0x1a, 0x5c,
+ 0x3f, 0xe2, 0xc1, 0x17, 0xb1, 0x8f, 0x04, 0x3e, 0x46, 0x0c, 0x85, 0x5c, 0xbf, 0x0f, 0xcb, 0xa8,
+ 0x2f, 0xba, 0x94, 0x11, 0x31, 0x48, 0xed, 0x1c, 0x18, 0x7f, 0x3f, 0xdf, 0xdd, 0xc8, 0x46, 0xec,
+ 0xbe, 0xef, 0x33, 0xcc, 0xf9, 0x63, 0xc1, 0x48, 0x14, 0xb8, 0x43, 0xa8, 0xfe, 0x29, 0x2c, 0xc6,
+ 0xb2, 0x82, 0x9c, 0x96, 0x2b, 0x7b, 0x8d, 0x2b, 0xfa, 0x27, 0x71, 0x07, 0xf3, 0xc9, 0xa4, 0x70,
+ 0x33, 0x56, 0x7b, 0x3b, 0xb1, 0x37, 0xac, 0x97, 0x38, 0xdc, 0x1c, 0x3a, 0x2c, 0x4a, 0xb4, 0xb7,
+ 0x64, 0x27, 0x8a, 0x5b, 0xb9, 0xa3, 0xbd, 0x9f, 0x97, 0x60, 0xee, 0x88, 0x07, 0xfa, 0x0f, 0x1a,
+ 0xac, 0x97, 0x4d, 0xfb, 0xf7, 0xab, 0x55, 0x95, 0xcf, 0x50, 0xf3, 0xe3, 0x59, 0x19, 0xb9, 0x96,
+ 0xa2, 0x86, 0x91, 0x91, 0x3b, 0x95, 0x86, 0x22, 0x63, 0x3a, 0x0d, 0x65, 0x83, 0x50, 0xff, 0x45,
+ 0x83, 0xb7, 0xcb, 0xa7, 0xe0, 0xde, 0xe4, 0x9a, 0xe3, 0x1c, 0xb3, 0x3d, 0x3b, 0x47, 0x29, 0x19,
+ 0xc0, 0xda, 0x70, 0x6c, 0x64, 0x59, 0x7d, 0x77, 0x72, 0xc1, 0xc2, 0x98, 0x31, 0xef, 0xcd, 0x04,
+ 0x57, 0x47, 0xf7, 0xe1, 0xfa, 0xf8, 0x44, 0x7a, 0x6f, 0x8a, 0x27, 0xaa, 0xd0, 0xe6, 0x87, 0xb3,
+ 0xa0, 0xd5, 0xb1, 0x3f, 0x69, 0xb0, 0x51, 0x3a, 0x2e, 0x5a, 0x53, 0x3c, 0xc6, 0x51, 0x8a, 0xf9,
+ 0x60, 0x66, 0x8a, 0x92, 0xd1, 0x83, 0xd5, 0x91, 0x17, 0x7c, 0xfb, 0xca, 0x52, 0x45, 0xa8, 0xd9,
+ 0x9a, 0x1a, 0x9a, 0x9f, 0x66, 0x2e, 0x7c, 0x7f, 0x79, 0xb6, 0xa3, 0x1d, 0x7c, 0xfd, 0xe2, 0xdc,
+ 0xd2, 0x5e, 0x9e, 0x5b, 0xda, 0xbf, 0xe7, 0x96, 0xf6, 0xdb, 0x85, 0x55, 0x7b, 0x79, 0x61, 0xd5,
+ 0xfe, 0xb9, 0xb0, 0x6a, 0x5f, 0x1d, 0x06, 0x44, 0x74, 0xfb, 0x9d, 0xa6, 0x47, 0x43, 0xe7, 0xf3,
+ 0xbc, 0xfa, 0x21, 0xea, 0x70, 0x47, 0x9d, 0xb5, 0xeb, 0x51, 0x86, 0x8b, 0x61, 0xe2, 0xcc, 0x09,
+ 0xa9, 0xdf, 0xef, 0x61, 0x9e, 0x7f, 0x2e, 0x8a, 0x41, 0x8c, 0x79, 0x67, 0x51, 0x7e, 0xdf, 0x7d,
+ 0xf0, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x9a, 0xd6, 0x88, 0xa2, 0x0a, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -804,10 +685,6 @@ type MsgClient interface {
// RelayPriceFeedPrice defines a method for relaying a price for a price
// feeder-based oracle
RelayPriceFeedPrice(ctx context.Context, in *MsgRelayPriceFeedPrice, opts ...grpc.CallOption) (*MsgRelayPriceFeedPriceResponse, error)
- // RelayBandRates defines a method for relaying rates from Band
- RelayBandRates(ctx context.Context, in *MsgRelayBandRates, opts ...grpc.CallOption) (*MsgRelayBandRatesResponse, error)
- // RequestBandIBCRates defines a method for fetching rates from Band ibc
- RequestBandIBCRates(ctx context.Context, in *MsgRequestBandIBCRates, opts ...grpc.CallOption) (*MsgRequestBandIBCRatesResponse, error)
// RelayCoinbaseMessages defines a method for relaying price messages from
// Coinbase API
RelayCoinbaseMessages(ctx context.Context, in *MsgRelayCoinbaseMessages, opts ...grpc.CallOption) (*MsgRelayCoinbaseMessagesResponse, error)
@@ -816,6 +693,9 @@ type MsgClient interface {
RelayStorkMessage(ctx context.Context, in *MsgRelayStorkPrices, opts ...grpc.CallOption) (*MsgRelayStorkPricesResponse, error)
// RelayPythPrices defines a method for relaying rates from the Pyth contract
RelayPythPrices(ctx context.Context, in *MsgRelayPythPrices, opts ...grpc.CallOption) (*MsgRelayPythPricesResponse, error)
+ // RelayChainlinkPrices defines a method for relaying rates from Chainlink
+ // Data Streams
+ RelayChainlinkPrices(ctx context.Context, in *MsgRelayChainlinkPrices, opts ...grpc.CallOption) (*MsgRelayChainlinkPricesResponse, error)
// UpdateParams enables updating oracle module's params via governance
UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error)
}
@@ -846,24 +726,6 @@ func (c *msgClient) RelayPriceFeedPrice(ctx context.Context, in *MsgRelayPriceFe
return out, nil
}
-func (c *msgClient) RelayBandRates(ctx context.Context, in *MsgRelayBandRates, opts ...grpc.CallOption) (*MsgRelayBandRatesResponse, error) {
- out := new(MsgRelayBandRatesResponse)
- err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Msg/RelayBandRates", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
-func (c *msgClient) RequestBandIBCRates(ctx context.Context, in *MsgRequestBandIBCRates, opts ...grpc.CallOption) (*MsgRequestBandIBCRatesResponse, error) {
- out := new(MsgRequestBandIBCRatesResponse)
- err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Msg/RequestBandIBCRates", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
func (c *msgClient) RelayCoinbaseMessages(ctx context.Context, in *MsgRelayCoinbaseMessages, opts ...grpc.CallOption) (*MsgRelayCoinbaseMessagesResponse, error) {
out := new(MsgRelayCoinbaseMessagesResponse)
err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Msg/RelayCoinbaseMessages", in, out, opts...)
@@ -891,6 +753,15 @@ func (c *msgClient) RelayPythPrices(ctx context.Context, in *MsgRelayPythPrices,
return out, nil
}
+func (c *msgClient) RelayChainlinkPrices(ctx context.Context, in *MsgRelayChainlinkPrices, opts ...grpc.CallOption) (*MsgRelayChainlinkPricesResponse, error) {
+ out := new(MsgRelayChainlinkPricesResponse)
+ err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Msg/RelayChainlinkPrices", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) {
out := new(MsgUpdateParamsResponse)
err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Msg/UpdateParams", in, out, opts...)
@@ -908,10 +779,6 @@ type MsgServer interface {
// RelayPriceFeedPrice defines a method for relaying a price for a price
// feeder-based oracle
RelayPriceFeedPrice(context.Context, *MsgRelayPriceFeedPrice) (*MsgRelayPriceFeedPriceResponse, error)
- // RelayBandRates defines a method for relaying rates from Band
- RelayBandRates(context.Context, *MsgRelayBandRates) (*MsgRelayBandRatesResponse, error)
- // RequestBandIBCRates defines a method for fetching rates from Band ibc
- RequestBandIBCRates(context.Context, *MsgRequestBandIBCRates) (*MsgRequestBandIBCRatesResponse, error)
// RelayCoinbaseMessages defines a method for relaying price messages from
// Coinbase API
RelayCoinbaseMessages(context.Context, *MsgRelayCoinbaseMessages) (*MsgRelayCoinbaseMessagesResponse, error)
@@ -920,6 +787,9 @@ type MsgServer interface {
RelayStorkMessage(context.Context, *MsgRelayStorkPrices) (*MsgRelayStorkPricesResponse, error)
// RelayPythPrices defines a method for relaying rates from the Pyth contract
RelayPythPrices(context.Context, *MsgRelayPythPrices) (*MsgRelayPythPricesResponse, error)
+ // RelayChainlinkPrices defines a method for relaying rates from Chainlink
+ // Data Streams
+ RelayChainlinkPrices(context.Context, *MsgRelayChainlinkPrices) (*MsgRelayChainlinkPricesResponse, error)
// UpdateParams enables updating oracle module's params via governance
UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error)
}
@@ -934,12 +804,6 @@ func (*UnimplementedMsgServer) RelayProviderPrices(ctx context.Context, req *Msg
func (*UnimplementedMsgServer) RelayPriceFeedPrice(ctx context.Context, req *MsgRelayPriceFeedPrice) (*MsgRelayPriceFeedPriceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RelayPriceFeedPrice not implemented")
}
-func (*UnimplementedMsgServer) RelayBandRates(ctx context.Context, req *MsgRelayBandRates) (*MsgRelayBandRatesResponse, error) {
- return nil, status.Errorf(codes.Unimplemented, "method RelayBandRates not implemented")
-}
-func (*UnimplementedMsgServer) RequestBandIBCRates(ctx context.Context, req *MsgRequestBandIBCRates) (*MsgRequestBandIBCRatesResponse, error) {
- return nil, status.Errorf(codes.Unimplemented, "method RequestBandIBCRates not implemented")
-}
func (*UnimplementedMsgServer) RelayCoinbaseMessages(ctx context.Context, req *MsgRelayCoinbaseMessages) (*MsgRelayCoinbaseMessagesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RelayCoinbaseMessages not implemented")
}
@@ -949,6 +813,9 @@ func (*UnimplementedMsgServer) RelayStorkMessage(ctx context.Context, req *MsgRe
func (*UnimplementedMsgServer) RelayPythPrices(ctx context.Context, req *MsgRelayPythPrices) (*MsgRelayPythPricesResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method RelayPythPrices not implemented")
}
+func (*UnimplementedMsgServer) RelayChainlinkPrices(ctx context.Context, req *MsgRelayChainlinkPrices) (*MsgRelayChainlinkPricesResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method RelayChainlinkPrices not implemented")
+}
func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented")
}
@@ -993,42 +860,6 @@ func _Msg_RelayPriceFeedPrice_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
-func _Msg_RelayBandRates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(MsgRelayBandRates)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(MsgServer).RelayBandRates(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/injective.oracle.v1beta1.Msg/RelayBandRates",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(MsgServer).RelayBandRates(ctx, req.(*MsgRelayBandRates))
- }
- return interceptor(ctx, in, info, handler)
-}
-
-func _Msg_RequestBandIBCRates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(MsgRequestBandIBCRates)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(MsgServer).RequestBandIBCRates(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/injective.oracle.v1beta1.Msg/RequestBandIBCRates",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(MsgServer).RequestBandIBCRates(ctx, req.(*MsgRequestBandIBCRates))
- }
- return interceptor(ctx, in, info, handler)
-}
-
func _Msg_RelayCoinbaseMessages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgRelayCoinbaseMessages)
if err := dec(in); err != nil {
@@ -1083,6 +914,24 @@ func _Msg_RelayPythPrices_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler)
}
+func _Msg_RelayChainlinkPrices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(MsgRelayChainlinkPrices)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(MsgServer).RelayChainlinkPrices(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/injective.oracle.v1beta1.Msg/RelayChainlinkPrices",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(MsgServer).RelayChainlinkPrices(ctx, req.(*MsgRelayChainlinkPrices))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(MsgUpdateParams)
if err := dec(in); err != nil {
@@ -1113,14 +962,6 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
MethodName: "RelayPriceFeedPrice",
Handler: _Msg_RelayPriceFeedPrice_Handler,
},
- {
- MethodName: "RelayBandRates",
- Handler: _Msg_RelayBandRates_Handler,
- },
- {
- MethodName: "RequestBandIBCRates",
- Handler: _Msg_RequestBandIBCRates_Handler,
- },
{
MethodName: "RelayCoinbaseMessages",
Handler: _Msg_RelayCoinbaseMessages_Handler,
@@ -1133,6 +974,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{
MethodName: "RelayPythPrices",
Handler: _Msg_RelayPythPrices_Handler,
},
+ {
+ MethodName: "RelayChainlinkPrices",
+ Handler: _Msg_RelayChainlinkPrices_Handler,
+ },
{
MethodName: "UpdateParams",
Handler: _Msg_UpdateParams_Handler,
@@ -1310,122 +1155,6 @@ func (m *MsgRelayPriceFeedPriceResponse) MarshalToSizedBuffer(dAtA []byte) (int,
return len(dAtA) - i, nil
}
-func (m *MsgRelayBandRates) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *MsgRelayBandRates) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *MsgRelayBandRates) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- if len(m.RequestIDs) > 0 {
- dAtA2 := make([]byte, len(m.RequestIDs)*10)
- var j1 int
- for _, num := range m.RequestIDs {
- for num >= 1<<7 {
- dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80)
- num >>= 7
- j1++
- }
- dAtA2[j1] = uint8(num)
- j1++
- }
- i -= j1
- copy(dAtA[i:], dAtA2[:j1])
- i = encodeVarintTx(dAtA, i, uint64(j1))
- i--
- dAtA[i] = 0x2a
- }
- if len(m.ResolveTimes) > 0 {
- dAtA4 := make([]byte, len(m.ResolveTimes)*10)
- var j3 int
- for _, num := range m.ResolveTimes {
- for num >= 1<<7 {
- dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80)
- num >>= 7
- j3++
- }
- dAtA4[j3] = uint8(num)
- j3++
- }
- i -= j3
- copy(dAtA[i:], dAtA4[:j3])
- i = encodeVarintTx(dAtA, i, uint64(j3))
- i--
- dAtA[i] = 0x22
- }
- if len(m.Rates) > 0 {
- dAtA6 := make([]byte, len(m.Rates)*10)
- var j5 int
- for _, num := range m.Rates {
- for num >= 1<<7 {
- dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80)
- num >>= 7
- j5++
- }
- dAtA6[j5] = uint8(num)
- j5++
- }
- i -= j5
- copy(dAtA[i:], dAtA6[:j5])
- i = encodeVarintTx(dAtA, i, uint64(j5))
- i--
- dAtA[i] = 0x1a
- }
- if len(m.Symbols) > 0 {
- for iNdEx := len(m.Symbols) - 1; iNdEx >= 0; iNdEx-- {
- i -= len(m.Symbols[iNdEx])
- copy(dAtA[i:], m.Symbols[iNdEx])
- i = encodeVarintTx(dAtA, i, uint64(len(m.Symbols[iNdEx])))
- i--
- dAtA[i] = 0x12
- }
- }
- if len(m.Relayer) > 0 {
- i -= len(m.Relayer)
- copy(dAtA[i:], m.Relayer)
- i = encodeVarintTx(dAtA, i, uint64(len(m.Relayer)))
- i--
- dAtA[i] = 0xa
- }
- return len(dAtA) - i, nil
-}
-
-func (m *MsgRelayBandRatesResponse) Marshal() (dAtA []byte, err error) {
- size := m.Size()
- dAtA = make([]byte, size)
- n, err := m.MarshalToSizedBuffer(dAtA[:size])
- if err != nil {
- return nil, err
- }
- return dAtA[:n], nil
-}
-
-func (m *MsgRelayBandRatesResponse) MarshalTo(dAtA []byte) (int, error) {
- size := m.Size()
- return m.MarshalToSizedBuffer(dAtA[:size])
-}
-
-func (m *MsgRelayBandRatesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
- i := len(dAtA)
- _ = i
- var l int
- _ = l
- return len(dAtA) - i, nil
-}
-
func (m *MsgRelayCoinbaseMessages) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -1564,7 +1293,7 @@ func (m *MsgRelayStorkPricesResponse) MarshalToSizedBuffer(dAtA []byte) (int, er
return len(dAtA) - i, nil
}
-func (m *MsgRequestBandIBCRates) Marshal() (dAtA []byte, err error) {
+func (m *MsgRelayPythPrices) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@@ -1574,20 +1303,29 @@ func (m *MsgRequestBandIBCRates) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
-func (m *MsgRequestBandIBCRates) MarshalTo(dAtA []byte) (int, error) {
+func (m *MsgRelayPythPrices) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
-func (m *MsgRequestBandIBCRates) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+func (m *MsgRelayPythPrices) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
- if m.RequestId != 0 {
- i = encodeVarintTx(dAtA, i, uint64(m.RequestId))
- i--
- dAtA[i] = 0x10
+ if len(m.PriceAttestations) > 0 {
+ for iNdEx := len(m.PriceAttestations) - 1; iNdEx >= 0; iNdEx-- {
+ {
+ size, err := m.PriceAttestations[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTx(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
}
if len(m.Sender) > 0 {
i -= len(m.Sender)
@@ -1599,7 +1337,7 @@ func (m *MsgRequestBandIBCRates) MarshalToSizedBuffer(dAtA []byte) (int, error)
return len(dAtA) - i, nil
}
-func (m *MsgRequestBandIBCRatesResponse) Marshal() (dAtA []byte, err error) {
+func (m *MsgRelayPythPricesResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@@ -1609,12 +1347,12 @@ func (m *MsgRequestBandIBCRatesResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
-func (m *MsgRequestBandIBCRatesResponse) MarshalTo(dAtA []byte) (int, error) {
+func (m *MsgRelayPythPricesResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
-func (m *MsgRequestBandIBCRatesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+func (m *MsgRelayPythPricesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@@ -1622,7 +1360,7 @@ func (m *MsgRequestBandIBCRatesResponse) MarshalToSizedBuffer(dAtA []byte) (int,
return len(dAtA) - i, nil
}
-func (m *MsgRelayPythPrices) Marshal() (dAtA []byte, err error) {
+func (m *MsgRelayChainlinkPrices) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@@ -1632,20 +1370,20 @@ func (m *MsgRelayPythPrices) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
-func (m *MsgRelayPythPrices) MarshalTo(dAtA []byte) (int, error) {
+func (m *MsgRelayChainlinkPrices) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
-func (m *MsgRelayPythPrices) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+func (m *MsgRelayChainlinkPrices) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
- if len(m.PriceAttestations) > 0 {
- for iNdEx := len(m.PriceAttestations) - 1; iNdEx >= 0; iNdEx-- {
+ if len(m.Reports) > 0 {
+ for iNdEx := len(m.Reports) - 1; iNdEx >= 0; iNdEx-- {
{
- size, err := m.PriceAttestations[iNdEx].MarshalToSizedBuffer(dAtA[:i])
+ size, err := m.Reports[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
@@ -1666,7 +1404,7 @@ func (m *MsgRelayPythPrices) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil
}
-func (m *MsgRelayPythPricesResponse) Marshal() (dAtA []byte, err error) {
+func (m *MsgRelayChainlinkPricesResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
@@ -1676,12 +1414,12 @@ func (m *MsgRelayPythPricesResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
-func (m *MsgRelayPythPricesResponse) MarshalTo(dAtA []byte) (int, error) {
+func (m *MsgRelayChainlinkPricesResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
-func (m *MsgRelayPythPricesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+func (m *MsgRelayChainlinkPricesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
@@ -1841,55 +1579,6 @@ func (m *MsgRelayPriceFeedPriceResponse) Size() (n int) {
return n
}
-func (m *MsgRelayBandRates) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- l = len(m.Relayer)
- if l > 0 {
- n += 1 + l + sovTx(uint64(l))
- }
- if len(m.Symbols) > 0 {
- for _, s := range m.Symbols {
- l = len(s)
- n += 1 + l + sovTx(uint64(l))
- }
- }
- if len(m.Rates) > 0 {
- l = 0
- for _, e := range m.Rates {
- l += sovTx(uint64(e))
- }
- n += 1 + sovTx(uint64(l)) + l
- }
- if len(m.ResolveTimes) > 0 {
- l = 0
- for _, e := range m.ResolveTimes {
- l += sovTx(uint64(e))
- }
- n += 1 + sovTx(uint64(l)) + l
- }
- if len(m.RequestIDs) > 0 {
- l = 0
- for _, e := range m.RequestIDs {
- l += sovTx(uint64(e))
- }
- n += 1 + sovTx(uint64(l)) + l
- }
- return n
-}
-
-func (m *MsgRelayBandRatesResponse) Size() (n int) {
- if m == nil {
- return 0
- }
- var l int
- _ = l
- return n
-}
-
func (m *MsgRelayCoinbaseMessages) Size() (n int) {
if m == nil {
return 0
@@ -1952,7 +1641,7 @@ func (m *MsgRelayStorkPricesResponse) Size() (n int) {
return n
}
-func (m *MsgRequestBandIBCRates) Size() (n int) {
+func (m *MsgRelayPythPrices) Size() (n int) {
if m == nil {
return 0
}
@@ -1962,13 +1651,16 @@ func (m *MsgRequestBandIBCRates) Size() (n int) {
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
- if m.RequestId != 0 {
- n += 1 + sovTx(uint64(m.RequestId))
+ if len(m.PriceAttestations) > 0 {
+ for _, e := range m.PriceAttestations {
+ l = e.Size()
+ n += 1 + l + sovTx(uint64(l))
+ }
}
return n
}
-func (m *MsgRequestBandIBCRatesResponse) Size() (n int) {
+func (m *MsgRelayPythPricesResponse) Size() (n int) {
if m == nil {
return 0
}
@@ -1977,7 +1669,7 @@ func (m *MsgRequestBandIBCRatesResponse) Size() (n int) {
return n
}
-func (m *MsgRelayPythPrices) Size() (n int) {
+func (m *MsgRelayChainlinkPrices) Size() (n int) {
if m == nil {
return 0
}
@@ -1987,8 +1679,8 @@ func (m *MsgRelayPythPrices) Size() (n int) {
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
- if len(m.PriceAttestations) > 0 {
- for _, e := range m.PriceAttestations {
+ if len(m.Reports) > 0 {
+ for _, e := range m.Reports {
l = e.Size()
n += 1 + l + sovTx(uint64(l))
}
@@ -1996,7 +1688,7 @@ func (m *MsgRelayPythPrices) Size() (n int) {
return n
}
-func (m *MsgRelayPythPricesResponse) Size() (n int) {
+func (m *MsgRelayChainlinkPricesResponse) Size() (n int) {
if m == nil {
return 0
}
@@ -2499,398 +2191,6 @@ func (m *MsgRelayPriceFeedPriceResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *MsgRelayBandRates) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: MsgRelayBandRates: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: MsgRelayBandRates: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- case 1:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Relayer", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthTx
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthTx
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Relayer = string(dAtA[iNdEx:postIndex])
- iNdEx = postIndex
- case 2:
- if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field Symbols", wireType)
- }
- var stringLen uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- stringLen |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- intStringLen := int(stringLen)
- if intStringLen < 0 {
- return ErrInvalidLengthTx
- }
- postIndex := iNdEx + intStringLen
- if postIndex < 0 {
- return ErrInvalidLengthTx
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- m.Symbols = append(m.Symbols, string(dAtA[iNdEx:postIndex]))
- iNdEx = postIndex
- case 3:
- if wireType == 0 {
- var v uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.Rates = append(m.Rates, v)
- } else if wireType == 2 {
- var packedLen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- packedLen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if packedLen < 0 {
- return ErrInvalidLengthTx
- }
- postIndex := iNdEx + packedLen
- if postIndex < 0 {
- return ErrInvalidLengthTx
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- var elementCount int
- var count int
- for _, integer := range dAtA[iNdEx:postIndex] {
- if integer < 128 {
- count++
- }
- }
- elementCount = count
- if elementCount != 0 && len(m.Rates) == 0 {
- m.Rates = make([]uint64, 0, elementCount)
- }
- for iNdEx < postIndex {
- var v uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.Rates = append(m.Rates, v)
- }
- } else {
- return fmt.Errorf("proto: wrong wireType = %d for field Rates", wireType)
- }
- case 4:
- if wireType == 0 {
- var v uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.ResolveTimes = append(m.ResolveTimes, v)
- } else if wireType == 2 {
- var packedLen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- packedLen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if packedLen < 0 {
- return ErrInvalidLengthTx
- }
- postIndex := iNdEx + packedLen
- if postIndex < 0 {
- return ErrInvalidLengthTx
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- var elementCount int
- var count int
- for _, integer := range dAtA[iNdEx:postIndex] {
- if integer < 128 {
- count++
- }
- }
- elementCount = count
- if elementCount != 0 && len(m.ResolveTimes) == 0 {
- m.ResolveTimes = make([]uint64, 0, elementCount)
- }
- for iNdEx < postIndex {
- var v uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.ResolveTimes = append(m.ResolveTimes, v)
- }
- } else {
- return fmt.Errorf("proto: wrong wireType = %d for field ResolveTimes", wireType)
- }
- case 5:
- if wireType == 0 {
- var v uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.RequestIDs = append(m.RequestIDs, v)
- } else if wireType == 2 {
- var packedLen int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- packedLen |= int(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if packedLen < 0 {
- return ErrInvalidLengthTx
- }
- postIndex := iNdEx + packedLen
- if postIndex < 0 {
- return ErrInvalidLengthTx
- }
- if postIndex > l {
- return io.ErrUnexpectedEOF
- }
- var elementCount int
- var count int
- for _, integer := range dAtA[iNdEx:postIndex] {
- if integer < 128 {
- count++
- }
- }
- elementCount = count
- if elementCount != 0 && len(m.RequestIDs) == 0 {
- m.RequestIDs = make([]uint64, 0, elementCount)
- }
- for iNdEx < postIndex {
- var v uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- v |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- m.RequestIDs = append(m.RequestIDs, v)
- }
- } else {
- return fmt.Errorf("proto: wrong wireType = %d for field RequestIDs", wireType)
- }
- default:
- iNdEx = preIndex
- skippy, err := skipTx(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthTx
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
-func (m *MsgRelayBandRatesResponse) Unmarshal(dAtA []byte) error {
- l := len(dAtA)
- iNdEx := 0
- for iNdEx < l {
- preIndex := iNdEx
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return ErrIntOverflowTx
- }
- if iNdEx >= l {
- return io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= uint64(b&0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- fieldNum := int32(wire >> 3)
- wireType := int(wire & 0x7)
- if wireType == 4 {
- return fmt.Errorf("proto: MsgRelayBandRatesResponse: wiretype end group for non-group")
- }
- if fieldNum <= 0 {
- return fmt.Errorf("proto: MsgRelayBandRatesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
- }
- switch fieldNum {
- default:
- iNdEx = preIndex
- skippy, err := skipTx(dAtA[iNdEx:])
- if err != nil {
- return err
- }
- if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLengthTx
- }
- if (iNdEx + skippy) > l {
- return io.ErrUnexpectedEOF
- }
- iNdEx += skippy
- }
- }
-
- if iNdEx > l {
- return io.ErrUnexpectedEOF
- }
- return nil
-}
func (m *MsgRelayCoinbaseMessages) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -3253,7 +2553,7 @@ func (m *MsgRelayStorkPricesResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *MsgRequestBandIBCRates) Unmarshal(dAtA []byte) error {
+func (m *MsgRelayPythPrices) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -3276,10 +2576,10 @@ func (m *MsgRequestBandIBCRates) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: MsgRequestBandIBCRates: wiretype end group for non-group")
+ return fmt.Errorf("proto: MsgRelayPythPrices: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: MsgRequestBandIBCRates: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: MsgRelayPythPrices: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@@ -3315,10 +2615,10 @@ func (m *MsgRequestBandIBCRates) Unmarshal(dAtA []byte) error {
m.Sender = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
- if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field RequestId", wireType)
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PriceAttestations", wireType)
}
- m.RequestId = 0
+ var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTx
@@ -3328,11 +2628,26 @@ func (m *MsgRequestBandIBCRates) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.RequestId |= uint64(b&0x7F) << shift
+ msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
+ if msglen < 0 {
+ return ErrInvalidLengthTx
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTx
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.PriceAttestations = append(m.PriceAttestations, &PriceAttestation{})
+ if err := m.PriceAttestations[len(m.PriceAttestations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTx(dAtA[iNdEx:])
@@ -3354,7 +2669,7 @@ func (m *MsgRequestBandIBCRates) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *MsgRequestBandIBCRatesResponse) Unmarshal(dAtA []byte) error {
+func (m *MsgRelayPythPricesResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -3377,10 +2692,10 @@ func (m *MsgRequestBandIBCRatesResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: MsgRequestBandIBCRatesResponse: wiretype end group for non-group")
+ return fmt.Errorf("proto: MsgRelayPythPricesResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: MsgRequestBandIBCRatesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: MsgRelayPythPricesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
default:
@@ -3404,7 +2719,7 @@ func (m *MsgRequestBandIBCRatesResponse) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *MsgRelayPythPrices) Unmarshal(dAtA []byte) error {
+func (m *MsgRelayChainlinkPrices) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -3427,10 +2742,10 @@ func (m *MsgRelayPythPrices) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: MsgRelayPythPrices: wiretype end group for non-group")
+ return fmt.Errorf("proto: MsgRelayChainlinkPrices: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: MsgRelayPythPrices: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: MsgRelayChainlinkPrices: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@@ -3467,7 +2782,7 @@ func (m *MsgRelayPythPrices) Unmarshal(dAtA []byte) error {
iNdEx = postIndex
case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field PriceAttestations", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field Reports", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -3494,8 +2809,8 @@ func (m *MsgRelayPythPrices) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.PriceAttestations = append(m.PriceAttestations, &PriceAttestation{})
- if err := m.PriceAttestations[len(m.PriceAttestations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ m.Reports = append(m.Reports, &ChainlinkReport{})
+ if err := m.Reports[len(m.Reports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@@ -3520,7 +2835,7 @@ func (m *MsgRelayPythPrices) Unmarshal(dAtA []byte) error {
}
return nil
}
-func (m *MsgRelayPythPricesResponse) Unmarshal(dAtA []byte) error {
+func (m *MsgRelayChainlinkPricesResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@@ -3543,10 +2858,10 @@ func (m *MsgRelayPythPricesResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
- return fmt.Errorf("proto: MsgRelayPythPricesResponse: wiretype end group for non-group")
+ return fmt.Errorf("proto: MsgRelayChainlinkPricesResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
- return fmt.Errorf("proto: MsgRelayPythPricesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
+ return fmt.Errorf("proto: MsgRelayChainlinkPricesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
default:
diff --git a/chain/peggy/types/attestation.pb.go b/chain/peggy/types/attestation.pb.go
index a88e4156..d3641ccb 100644
--- a/chain/peggy/types/attestation.pb.go
+++ b/chain/peggy/types/attestation.pb.go
@@ -6,6 +6,7 @@ package types
import (
cosmossdk_io_math "cosmossdk.io/math"
fmt "fmt"
+ _ "github.com/cosmos/cosmos-proto"
types "github.com/cosmos/cosmos-sdk/codec/types"
_ "github.com/cosmos/gogoproto/gogoproto"
proto "github.com/cosmos/gogoproto/proto"
@@ -206,38 +207,40 @@ func init() {
}
var fileDescriptor_3022043570947e1e = []byte{
- // 483 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0x31, 0x6f, 0xda, 0x40,
- 0x14, 0xc7, 0x6d, 0x20, 0x28, 0x5c, 0x16, 0xeb, 0x4a, 0x53, 0xc7, 0x52, 0x1c, 0x2b, 0xea, 0x80,
- 0x22, 0xf5, 0x2e, 0x49, 0xd5, 0xad, 0x8b, 0x83, 0x2d, 0xd5, 0x0a, 0x05, 0xe4, 0x38, 0x45, 0xe9,
- 0x82, 0x6c, 0x73, 0xb5, 0xdd, 0x60, 0x1f, 0xe2, 0x0e, 0x4b, 0x9e, 0xbb, 0x54, 0x4c, 0xfd, 0x02,
- 0xa8, 0x43, 0xbf, 0x4c, 0xc6, 0x8c, 0x55, 0x87, 0xa8, 0x82, 0x2f, 0x52, 0x61, 0x13, 0x4a, 0x93,
- 0x74, 0xbb, 0xff, 0xfb, 0xff, 0xde, 0xbb, 0xbf, 0xee, 0x1e, 0x78, 0x19, 0x25, 0x9f, 0x89, 0xcf,
- 0xa3, 0x94, 0xe0, 0x11, 0x09, 0x82, 0x0c, 0xa7, 0x27, 0xd8, 0xe5, 0x9c, 0x30, 0xee, 0xf2, 0x88,
- 0x26, 0x68, 0x34, 0xa6, 0x9c, 0x42, 0xb8, 0xa6, 0x50, 0x4e, 0xa1, 0xf4, 0x44, 0xa9, 0x07, 0x34,
- 0xa0, 0xb9, 0x8d, 0x97, 0xa7, 0x82, 0x54, 0xf6, 0x02, 0x4a, 0x83, 0x21, 0xc1, 0xb9, 0xf2, 0x26,
- 0x9f, 0xb0, 0x9b, 0x64, 0x85, 0x75, 0xf8, 0x45, 0x04, 0x3b, 0xfa, 0xdf, 0xd1, 0x50, 0x01, 0xdb,
- 0xd4, 0x63, 0x64, 0x9c, 0x92, 0x81, 0x2c, 0x6a, 0x62, 0x63, 0xdb, 0x5e, 0x6b, 0x58, 0x07, 0x5b,
- 0x29, 0xe5, 0x84, 0xc9, 0x25, 0xad, 0xdc, 0xa8, 0xd9, 0x85, 0x80, 0xbb, 0xa0, 0x1a, 0x92, 0x28,
- 0x08, 0xb9, 0x5c, 0xd6, 0xc4, 0x46, 0xc5, 0x5e, 0x29, 0x78, 0x04, 0xb6, 0xfc, 0xa1, 0x1b, 0xc5,
- 0x72, 0x45, 0x13, 0x1b, 0x3b, 0xa7, 0x75, 0x54, 0x84, 0x40, 0xf7, 0x21, 0x90, 0x9e, 0x64, 0x76,
- 0x81, 0x1c, 0xf6, 0x01, 0x30, 0xed, 0xe6, 0xe9, 0xb1, 0x43, 0xaf, 0x49, 0x9e, 0xc1, 0xa7, 0x09,
- 0x1f, 0xbb, 0x3e, 0xcf, 0x33, 0xd4, 0xec, 0xb5, 0x86, 0x6f, 0x40, 0xd5, 0x8d, 0xe9, 0x24, 0xe1,
- 0x72, 0x69, 0xe9, 0x9c, 0xed, 0xdf, 0xdc, 0x1d, 0x08, 0xbf, 0xee, 0x0e, 0x9e, 0xfb, 0x94, 0xc5,
- 0x94, 0xb1, 0xc1, 0x35, 0x8a, 0x28, 0x8e, 0x5d, 0x1e, 0x22, 0x2b, 0xe1, 0xf6, 0x0a, 0x3e, 0xfa,
- 0x5e, 0x02, 0xb5, 0xe6, 0xf2, 0x2a, 0x27, 0x1b, 0x11, 0x88, 0x00, 0x6c, 0xb6, 0x74, 0xeb, 0x7d,
- 0xdf, 0xb9, 0xea, 0x9a, 0xfd, 0xcb, 0xf6, 0x79, 0xbb, 0xd3, 0x6b, 0x4b, 0x82, 0xb2, 0x3b, 0x9d,
- 0x69, 0x4f, 0x38, 0x0f, 0x78, 0xc3, 0xec, 0x76, 0x2e, 0x2c, 0x47, 0x12, 0x1f, 0xf1, 0x2b, 0x07,
- 0x1e, 0x83, 0x67, 0x1b, 0xd5, 0x9e, 0xe5, 0xbc, 0x33, 0x6c, 0xbd, 0x27, 0x95, 0x94, 0x17, 0xd3,
- 0x99, 0xf6, 0x94, 0x05, 0xdf, 0x82, 0xbd, 0x8d, 0x72, 0xfe, 0x16, 0xcb, 0x69, 0xad, 0xce, 0x95,
- 0x69, 0x48, 0x65, 0x65, 0x7f, 0x3a, 0xd3, 0xfe, 0x0f, 0x3c, 0xe8, 0xfe, 0xa0, 0xb7, 0x2e, 0x4c,
- 0xa7, 0x7f, 0xd9, 0x35, 0x74, 0xc7, 0x34, 0xa4, 0xca, 0xa3, 0xee, 0x7f, 0x01, 0xa5, 0xf2, 0xf5,
- 0x87, 0x2a, 0x9c, 0x91, 0x9b, 0xb9, 0x2a, 0xde, 0xce, 0x55, 0xf1, 0xf7, 0x5c, 0x15, 0xbf, 0x2d,
- 0x54, 0xe1, 0x76, 0xa1, 0x0a, 0x3f, 0x17, 0xaa, 0xf0, 0xf1, 0x3c, 0x88, 0x78, 0x38, 0xf1, 0x90,
- 0x4f, 0x63, 0x6c, 0xdd, 0xaf, 0x5c, 0xcb, 0xf5, 0x18, 0x5e, 0x2f, 0xe0, 0x2b, 0x9f, 0x8e, 0xc9,
- 0xa6, 0x0c, 0xdd, 0x28, 0xc1, 0x31, 0x1d, 0x4c, 0x86, 0x84, 0xad, 0x76, 0x98, 0x67, 0x23, 0xc2,
- 0xbc, 0x6a, 0xfe, 0xfd, 0xaf, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x9f, 0x86, 0x0b, 0xe3,
- 0x02, 0x00, 0x00,
+ // 514 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0x4f, 0x6e, 0xda, 0x40,
+ 0x18, 0xc5, 0x6d, 0x20, 0x28, 0x4c, 0x36, 0x68, 0x4a, 0x53, 0x70, 0x15, 0x63, 0x45, 0x5d, 0xa0,
+ 0x4a, 0x99, 0x09, 0xa9, 0xba, 0xeb, 0xc6, 0x80, 0xa5, 0x22, 0x28, 0x20, 0xc7, 0x29, 0x4a, 0x37,
+ 0x68, 0x6c, 0xa6, 0xb6, 0x1b, 0xec, 0x41, 0x78, 0x40, 0xf2, 0x0d, 0x2a, 0x56, 0xbd, 0x00, 0xea,
+ 0xa2, 0x3d, 0x42, 0x0f, 0x11, 0x75, 0x95, 0x65, 0xd5, 0x45, 0x54, 0xc1, 0x45, 0x2a, 0x6c, 0x43,
+ 0x69, 0xfe, 0xec, 0xfc, 0xbe, 0xf7, 0xfb, 0x66, 0x9e, 0x47, 0x0f, 0xbc, 0x70, 0xfd, 0x4f, 0xd4,
+ 0xe2, 0xee, 0x8c, 0xe2, 0x31, 0xb5, 0xed, 0x10, 0xcf, 0xaa, 0x98, 0x70, 0x4e, 0x03, 0x4e, 0xb8,
+ 0xcb, 0x7c, 0x34, 0x9e, 0x30, 0xce, 0x20, 0xdc, 0x52, 0x28, 0xa2, 0xd0, 0xac, 0x2a, 0x95, 0x2c,
+ 0x16, 0x78, 0x2c, 0x18, 0x44, 0x04, 0x8e, 0x45, 0x8c, 0x4b, 0x05, 0x9b, 0xd9, 0x2c, 0x9e, 0xaf,
+ 0xbf, 0x92, 0x69, 0xc9, 0x66, 0xcc, 0x1e, 0x51, 0x1c, 0x29, 0x73, 0xfa, 0x11, 0x13, 0x3f, 0x8c,
+ 0xad, 0xe3, 0xef, 0x22, 0x38, 0x50, 0xff, 0xdd, 0x0a, 0x25, 0xb0, 0xcf, 0xcc, 0x80, 0x4e, 0x66,
+ 0x74, 0x58, 0x14, 0x15, 0xb1, 0xb2, 0xaf, 0x6f, 0x35, 0x2c, 0x80, 0xbd, 0x19, 0xe3, 0x34, 0x28,
+ 0xa6, 0x94, 0x74, 0x25, 0xa7, 0xc7, 0x02, 0x1e, 0x82, 0xac, 0x43, 0x5d, 0xdb, 0xe1, 0xc5, 0xb4,
+ 0x22, 0x56, 0x32, 0x7a, 0xa2, 0x60, 0x0b, 0xec, 0x59, 0x23, 0xe2, 0x7a, 0xc5, 0x8c, 0x22, 0x56,
+ 0x0e, 0xce, 0x0a, 0x28, 0x0e, 0x81, 0x36, 0x21, 0x90, 0xea, 0x87, 0xb5, 0xf2, 0xcf, 0x1f, 0x27,
+ 0xcf, 0x37, 0x3f, 0x66, 0x52, 0x4e, 0xaa, 0x48, 0xe3, 0x0e, 0x9d, 0xd0, 0xa9, 0x57, 0x5f, 0x2f,
+ 0xeb, 0xf1, 0x19, 0xc7, 0x03, 0x00, 0x34, 0xbd, 0x7e, 0x76, 0x6a, 0xb0, 0x2b, 0x1a, 0x85, 0xb4,
+ 0x98, 0xcf, 0x27, 0xc4, 0xe2, 0x51, 0xc8, 0x9c, 0xbe, 0xd5, 0xf0, 0x35, 0xc8, 0x12, 0x8f, 0x4d,
+ 0x7d, 0x5e, 0x4c, 0xad, 0x9d, 0xda, 0xd1, 0xf5, 0x6d, 0x59, 0xf8, 0x7d, 0x5b, 0x7e, 0x1a, 0xbf,
+ 0x53, 0x30, 0xbc, 0x42, 0x2e, 0xc3, 0x1e, 0xe1, 0x0e, 0x6a, 0xfa, 0x5c, 0x4f, 0xe0, 0x97, 0x5f,
+ 0x53, 0x20, 0x17, 0xdd, 0x68, 0x84, 0x63, 0x0a, 0x11, 0x80, 0xf5, 0xb6, 0xda, 0x7c, 0x37, 0x30,
+ 0x2e, 0x7b, 0xda, 0xe0, 0xa2, 0xd3, 0xea, 0x74, 0xfb, 0x9d, 0xbc, 0x20, 0x1d, 0xce, 0x17, 0xca,
+ 0x03, 0xce, 0x1d, 0xbe, 0xa1, 0xf5, 0xba, 0xe7, 0x4d, 0x23, 0x2f, 0xde, 0xe3, 0x13, 0x07, 0x9e,
+ 0x82, 0x27, 0x3b, 0xd3, 0x7e, 0xd3, 0x78, 0xdb, 0xd0, 0xd5, 0x7e, 0x3e, 0x25, 0x3d, 0x9b, 0x2f,
+ 0x94, 0x87, 0x2c, 0xf8, 0x06, 0x94, 0x76, 0xc6, 0xd1, 0x5b, 0xac, 0x4f, 0x6b, 0x77, 0x2f, 0xb5,
+ 0x46, 0x3e, 0x2d, 0x1d, 0xcd, 0x17, 0xca, 0xe3, 0xc0, 0x9d, 0xed, 0xf7, 0x6a, 0xfb, 0x5c, 0x33,
+ 0x06, 0x17, 0xbd, 0x86, 0x6a, 0x68, 0x8d, 0x7c, 0xe6, 0xde, 0xf6, 0xff, 0x80, 0x94, 0xf9, 0xfc,
+ 0x4d, 0x16, 0x6a, 0xf4, 0x7a, 0x29, 0x8b, 0x37, 0x4b, 0x59, 0xfc, 0xb3, 0x94, 0xc5, 0x2f, 0x2b,
+ 0x59, 0xb8, 0x59, 0xc9, 0xc2, 0xaf, 0x95, 0x2c, 0x7c, 0x68, 0xd9, 0x2e, 0x77, 0xa6, 0x26, 0xb2,
+ 0x98, 0x87, 0x9b, 0x9b, 0xba, 0xb6, 0x89, 0x19, 0xe0, 0x6d, 0x79, 0x4f, 0x2c, 0x36, 0xa1, 0xbb,
+ 0xd2, 0x21, 0xae, 0x8f, 0x3d, 0x36, 0x9c, 0x8e, 0x68, 0x90, 0xf4, 0x9f, 0x87, 0x63, 0x1a, 0x98,
+ 0xd9, 0xa8, 0x1f, 0xaf, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0x98, 0x51, 0x06, 0xdc, 0x1f, 0x03,
+ 0x00, 0x00,
}
func (m *Attestation) Marshal() (dAtA []byte, err error) {
diff --git a/chain/peggy/types/batch.go b/chain/peggy/types/batch.go
new file mode 100644
index 00000000..dc1d77da
--- /dev/null
+++ b/chain/peggy/types/batch.go
@@ -0,0 +1,67 @@
+package types
+
+import (
+ "fmt"
+ "math/big"
+ "strings"
+
+ accountsabi "github.com/ethereum/go-ethereum/accounts/abi"
+ "github.com/ethereum/go-ethereum/common"
+ "github.com/ethereum/go-ethereum/crypto"
+)
+
+// GetCheckpoint gets the checkpoint signature from the given outgoing tx batch
+func (b OutgoingTxBatch) GetCheckpoint(peggyIDstring string) common.Hash {
+
+ abi, err := accountsabi.JSON(strings.NewReader(OutgoingBatchTxCheckpointABIJSON))
+ if err != nil {
+ panic("Bad ABI constant!")
+ }
+
+ // the contract argument is not a arbitrary length array but a fixed length 32 byte
+ // array, therefore we have to utf8 encode the string (the default in this case) and
+ // then copy the variable length encoded data into a fixed length array. This function
+ // will panic if peggyId is too long to fit in 32 bytes
+ peggyID, err := strToFixByteArray(peggyIDstring)
+ if err != nil {
+ panic(err)
+ }
+
+ // Create the methodName argument which salts the signature
+ methodNameBytes := []uint8("transactionBatch")
+ var batchMethodName [32]uint8
+ copy(batchMethodName[:], methodNameBytes)
+
+ // Run through the elements of the batch and serialize them
+ txAmounts := make([]*big.Int, len(b.Transactions))
+ txDestinations := make([]common.Address, len(b.Transactions))
+ txFees := make([]*big.Int, len(b.Transactions))
+ for i, tx := range b.Transactions {
+ txAmounts[i] = tx.Erc20Token.Amount.BigInt()
+ txDestinations[i] = common.HexToAddress(tx.DestAddress)
+ txFees[i] = tx.Erc20Fee.Amount.BigInt()
+ }
+
+ // the methodName needs to be the same as the 'name' above in the checkpointAbiJson
+ // but other than that it's a constant that has no impact on the output. This is because
+ // it gets encoded as a function name which we must then discard.
+ abiEncodedBatch, err := abi.Pack("submitBatch",
+ peggyID,
+ batchMethodName,
+ txAmounts,
+ txDestinations,
+ txFees,
+ big.NewInt(int64(b.BatchNonce)),
+ common.HexToAddress(b.TokenContract),
+ big.NewInt(int64(b.BatchTimeout)),
+ )
+
+ // this should never happen outside of test since any case that could crash on encoding
+ // should be filtered above.
+ if err != nil {
+ panic(fmt.Sprintf("Error packing checkpoint! %s/n", err))
+ }
+
+ hash := crypto.Keccak256Hash(abiEncodedBatch[4:])
+ return hash
+}
diff --git a/chain/peggy/types/batch.pb.go b/chain/peggy/types/batch.pb.go
index 083ea8c7..60cd3716 100644
--- a/chain/peggy/types/batch.pb.go
+++ b/chain/peggy/types/batch.pb.go
@@ -5,6 +5,7 @@ package types
import (
fmt "fmt"
+ _ "github.com/cosmos/cosmos-proto"
proto "github.com/cosmos/gogoproto/proto"
io "io"
math "math"
@@ -184,33 +185,35 @@ func init() {
func init() { proto.RegisterFile("injective/peggy/v1/batch.proto", fileDescriptor_48fd09581f1b5901) }
var fileDescriptor_48fd09581f1b5901 = []byte{
- // 409 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4d, 0x6b, 0xdc, 0x30,
- 0x10, 0x86, 0x57, 0x9b, 0x0f, 0xba, 0xf2, 0x26, 0x05, 0x51, 0x8a, 0xe9, 0x41, 0xdd, 0xa6, 0x1f,
- 0xec, 0xa5, 0x76, 0xe2, 0x1e, 0x7b, 0x28, 0x4d, 0x68, 0xa1, 0x1f, 0xb4, 0x60, 0x7c, 0xea, 0xc5,
- 0xc8, 0xf2, 0xc4, 0xab, 0x26, 0x2b, 0x2d, 0xd2, 0x78, 0x49, 0xfe, 0x45, 0x7f, 0x56, 0x8f, 0x39,
- 0xf6, 0x52, 0x08, 0xbb, 0x7f, 0xa4, 0x48, 0x76, 0x97, 0x96, 0x04, 0x72, 0xd3, 0x3c, 0x33, 0xef,
- 0xab, 0x77, 0x60, 0x28, 0x57, 0xfa, 0x3b, 0x48, 0x54, 0x4b, 0x48, 0x17, 0xd0, 0x34, 0x97, 0xe9,
- 0xf2, 0x28, 0xad, 0x04, 0xca, 0x59, 0xb2, 0xb0, 0x06, 0x0d, 0x63, 0x9b, 0x7e, 0x12, 0xfa, 0xc9,
- 0xf2, 0xe8, 0xd1, 0xb3, 0x5b, 0x34, 0x02, 0x11, 0x1c, 0x0a, 0x54, 0x46, 0x77, 0xca, 0x83, 0x6b,
- 0x42, 0xef, 0x7f, 0x6d, 0xb1, 0x31, 0x4a, 0x37, 0xc5, 0xc5, 0xb1, 0xf7, 0x64, 0x8f, 0x69, 0x14,
- 0xcc, 0x4b, 0x6d, 0xb4, 0x84, 0x98, 0x4c, 0xc8, 0x74, 0x3b, 0xa7, 0x01, 0x7d, 0xf1, 0x84, 0x3d,
- 0xa5, 0x7b, 0xdd, 0x00, 0xaa, 0x39, 0x98, 0x16, 0xe3, 0x61, 0x18, 0x19, 0x07, 0x58, 0x74, 0x8c,
- 0x7d, 0xa4, 0x63, 0xb4, 0x42, 0x3b, 0x21, 0xfd, 0x77, 0x2e, 0xde, 0x9a, 0x6c, 0x4d, 0xa3, 0xec,
- 0x45, 0x72, 0x33, 0x6a, 0xb2, 0x09, 0xe0, 0xe7, 0x4f, 0xc1, 0x16, 0x17, 0xf9, 0x7f, 0x5a, 0xf6,
- 0x9c, 0xee, 0xa3, 0x39, 0x03, 0x5d, 0x4a, 0xa3, 0xd1, 0x0a, 0x89, 0xf1, 0xf6, 0x84, 0x4c, 0x47,
- 0xf9, 0x5e, 0xa0, 0x27, 0x3d, 0x64, 0x0f, 0xe8, 0x4e, 0x75, 0x6e, 0xe4, 0x59, 0xbc, 0x13, 0xf2,
- 0x74, 0xc5, 0xc1, 0x6f, 0x42, 0xd9, 0xcd, 0x1f, 0xd8, 0x3e, 0x1d, 0xaa, 0xba, 0x5f, 0x6e, 0xa8,
- 0x6a, 0xf6, 0x90, 0xee, 0x3a, 0xd0, 0x35, 0xd8, 0xb0, 0xcd, 0x28, 0xef, 0x2b, 0xf6, 0x84, 0x8e,
- 0x6b, 0x70, 0x58, 0x8a, 0xba, 0xb6, 0xe0, 0xfc, 0x1e, 0xbe, 0x1b, 0x79, 0xf6, 0xb6, 0x43, 0xec,
- 0x0d, 0x8d, 0xc0, 0xca, 0xec, 0xb0, 0x0c, 0x71, 0x42, 0xb6, 0x28, 0xe3, 0xb7, 0x6d, 0xfa, 0x2e,
- 0x3f, 0xc9, 0x0e, 0x0b, 0x3f, 0x95, 0xd3, 0x20, 0x09, 0x6f, 0xf6, 0x9a, 0x8e, 0x3a, 0x83, 0x53,
- 0x80, 0x10, 0xfe, 0x6e, 0xf9, 0xbd, 0x20, 0x78, 0x0f, 0x70, 0x0c, 0x3f, 0x57, 0x9c, 0x5c, 0xad,
- 0x38, 0xb9, 0x5e, 0x71, 0xf2, 0x63, 0xcd, 0x07, 0x57, 0x6b, 0x3e, 0xf8, 0xb5, 0xe6, 0x83, 0x6f,
- 0x9f, 0x1a, 0x85, 0xb3, 0xb6, 0x4a, 0xa4, 0x99, 0xa7, 0x1f, 0xfe, 0xba, 0x7d, 0x16, 0x95, 0x4b,
- 0x37, 0xde, 0x2f, 0xa5, 0xb1, 0xf0, 0x6f, 0x39, 0x13, 0x4a, 0xa7, 0x73, 0x53, 0xb7, 0xe7, 0xe0,
- 0xfa, 0xc3, 0xc1, 0xcb, 0x05, 0xb8, 0x6a, 0x37, 0x1c, 0xcc, 0xab, 0x3f, 0x01, 0x00, 0x00, 0xff,
- 0xff, 0x24, 0x11, 0x91, 0x29, 0x8c, 0x02, 0x00, 0x00,
+ // 445 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcd, 0x6e, 0xd3, 0x40,
+ 0x10, 0xc7, 0xe3, 0xf4, 0x43, 0x64, 0x9d, 0x16, 0x69, 0x85, 0x90, 0xe9, 0xc1, 0xa4, 0x85, 0xa2,
+ 0x5c, 0x6a, 0xb7, 0xe1, 0x06, 0x07, 0x44, 0xab, 0x22, 0xf1, 0x21, 0x90, 0x4c, 0x4e, 0x5c, 0xac,
+ 0xf5, 0x7a, 0xea, 0x2c, 0xad, 0x77, 0xa3, 0xdd, 0x71, 0xd4, 0x3e, 0x01, 0x57, 0x1e, 0x86, 0x87,
+ 0x40, 0x9c, 0x7a, 0xe4, 0x82, 0x84, 0x92, 0x17, 0x41, 0x1e, 0x9b, 0x08, 0xd4, 0x48, 0xbd, 0xed,
+ 0xfc, 0xe6, 0x3f, 0x1f, 0xff, 0xd5, 0xb0, 0x50, 0xe9, 0xcf, 0x20, 0x51, 0xcd, 0x20, 0x9e, 0x42,
+ 0x51, 0x5c, 0xc5, 0xb3, 0xa3, 0x38, 0x13, 0x28, 0x27, 0xd1, 0xd4, 0x1a, 0x34, 0x9c, 0x2f, 0xf3,
+ 0x11, 0xe5, 0xa3, 0xd9, 0xd1, 0xce, 0x03, 0x69, 0x5c, 0x69, 0x5c, 0x4a, 0x8a, 0xb8, 0x09, 0x1a,
+ 0xf9, 0xce, 0xe3, 0x15, 0xed, 0x04, 0x22, 0x38, 0x14, 0xa8, 0x8c, 0x6e, 0x54, 0x7b, 0x5f, 0xba,
+ 0xec, 0xee, 0x87, 0x0a, 0x0b, 0xa3, 0x74, 0x31, 0xbe, 0x3c, 0xae, 0xc7, 0xf1, 0x87, 0xcc, 0xa7,
+ 0xb9, 0xa9, 0x36, 0x5a, 0x42, 0xe0, 0x0d, 0xbc, 0xe1, 0x7a, 0xc2, 0x08, 0xbd, 0xaf, 0x09, 0x7f,
+ 0xc4, 0xb6, 0x1a, 0x01, 0xaa, 0x12, 0x4c, 0x85, 0x41, 0x97, 0x24, 0x7d, 0x82, 0xe3, 0x86, 0xf1,
+ 0x37, 0xac, 0x8f, 0x56, 0x68, 0x27, 0x64, 0x3d, 0xce, 0x05, 0x6b, 0x83, 0xb5, 0xa1, 0x3f, 0x7a,
+ 0x12, 0xdd, 0x74, 0x11, 0x2d, 0x17, 0xa8, 0xf5, 0x67, 0x60, 0xc7, 0x97, 0xc9, 0x7f, 0xb5, 0x7c,
+ 0x9f, 0x6d, 0xa3, 0x39, 0x07, 0x9d, 0x4a, 0xa3, 0xd1, 0x0a, 0x89, 0xc1, 0xfa, 0xc0, 0x1b, 0xf6,
+ 0x92, 0x2d, 0xa2, 0x27, 0x2d, 0xe4, 0xf7, 0xd8, 0x46, 0x76, 0x61, 0xe4, 0x79, 0xb0, 0x41, 0xfb,
+ 0x34, 0xc1, 0xb3, 0xfd, 0x1f, 0xdf, 0x0e, 0x76, 0x57, 0x4c, 0x3d, 0xc5, 0x09, 0x58, 0xa8, 0xca,
+ 0x8f, 0xaa, 0xd0, 0x90, 0xef, 0xfd, 0xf2, 0x18, 0xbf, 0xb9, 0x08, 0xdf, 0x66, 0x5d, 0x95, 0xb7,
+ 0x7f, 0xd0, 0x55, 0x39, 0xbf, 0xcf, 0x36, 0x1d, 0xe8, 0x1c, 0x2c, 0x99, 0xee, 0x25, 0x6d, 0xc4,
+ 0x77, 0x59, 0x3f, 0x07, 0x87, 0xa9, 0xc8, 0x73, 0x0b, 0xae, 0xb6, 0x5b, 0x67, 0xfd, 0x9a, 0xbd,
+ 0x6c, 0x10, 0x7f, 0xc1, 0x7c, 0xb0, 0x72, 0x74, 0x98, 0xd2, 0xd6, 0x64, 0xc1, 0x1f, 0x85, 0xab,
+ 0x3e, 0xe4, 0x34, 0x39, 0x19, 0x1d, 0x8e, 0x6b, 0x55, 0xc2, 0xa8, 0x84, 0xde, 0xfc, 0x39, 0xeb,
+ 0x35, 0x0d, 0xce, 0x00, 0xc8, 0xe3, 0xed, 0xe5, 0x77, 0xa8, 0xe0, 0x15, 0xc0, 0x31, 0x7c, 0x9f,
+ 0x87, 0xde, 0xf5, 0x3c, 0xf4, 0x7e, 0xcf, 0x43, 0xef, 0xeb, 0x22, 0xec, 0x5c, 0x2f, 0xc2, 0xce,
+ 0xcf, 0x45, 0xd8, 0xf9, 0xf4, 0xb6, 0x50, 0x38, 0xa9, 0xb2, 0x48, 0x9a, 0x32, 0x7e, 0xfd, 0xb7,
+ 0xdb, 0x3b, 0x91, 0xb9, 0x78, 0xd9, 0xfb, 0x40, 0x1a, 0x0b, 0xff, 0x86, 0x13, 0xa1, 0x74, 0x5c,
+ 0x9a, 0xbc, 0xba, 0x00, 0xd7, 0xde, 0x17, 0x5e, 0x4d, 0xc1, 0x65, 0x9b, 0x74, 0x57, 0x4f, 0xff,
+ 0x04, 0x00, 0x00, 0xff, 0xff, 0x27, 0xfc, 0xef, 0x01, 0xce, 0x02, 0x00, 0x00,
}
func (m *OutgoingTxBatch) Marshal() (dAtA []byte, err error) {
diff --git a/chain/peggy/types/codec.go b/chain/peggy/types/codec.go
index 381cd75f..328beda9 100644
--- a/chain/peggy/types/codec.go
+++ b/chain/peggy/types/codec.go
@@ -51,6 +51,13 @@ func RegisterInterfaces(registry types.InterfaceRegistry) {
&MsgValsetUpdatedClaim{},
)
+ registry.RegisterInterface(
+ "injective.peggy.v1.EthereumSigned",
+ (*EthereumSigned)(nil),
+ &OutgoingTxBatch{},
+ &Valset{},
+ )
+
msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)
}
diff --git a/chain/peggy/types/errors.go b/chain/peggy/types/errors.go
index 667d6e4f..4b6dc05b 100644
--- a/chain/peggy/types/errors.go
+++ b/chain/peggy/types/errors.go
@@ -20,4 +20,6 @@ var (
ErrInvalidEthSender = errors.Register(ModuleName, 13, "invalid ethereum sender on claim")
ErrInvalidEthDestination = errors.Register(ModuleName, 14, "invalid ethereum destination")
ErrNoLastClaimForValidator = errors.Register(ModuleName, 15, "missing previous claim for validator")
+ ErrDuplicateEthAddress = errors.Register(ModuleName, 16, "eth address already in use")
+ ErrUnbondedValidator = errors.Register(ModuleName, 17, "validator is unbonded")
)
diff --git a/chain/peggy/types/key.go b/chain/peggy/types/key.go
index 43a6457f..d54a2438 100644
--- a/chain/peggy/types/key.go
+++ b/chain/peggy/types/key.go
@@ -299,8 +299,13 @@ func GetPastEthSignatureCheckpointKey(checkpoint common.Hash) []byte {
}
// GetFakeCheckpointKey indexes fake checkpoints previously signed by a validator
-func GetFakeCheckpointKey(signature []byte) []byte {
- return append(FakeCheckpointKey, signature...)
+func GetFakeCheckpointKey(checkpoint, addr []byte) []byte {
+ k := make([]byte, 0, len(FakeCheckpointKey)+len(checkpoint)+len(addr))
+ k = append(k, FakeCheckpointKey...)
+ k = append(k, checkpoint...)
+ k = append(k, addr...)
+
+ return k
}
func GetMintAmountERC20Key(erc20 []byte) []byte {
diff --git a/chain/peggy/types/msgs.pb.go b/chain/peggy/types/msgs.pb.go
index 7c6413e8..dc4381c1 100644
--- a/chain/peggy/types/msgs.pb.go
+++ b/chain/peggy/types/msgs.pb.go
@@ -1946,137 +1946,140 @@ func init() {
func init() { proto.RegisterFile("injective/peggy/v1/msgs.proto", fileDescriptor_751daa04abed7ef4) }
var fileDescriptor_751daa04abed7ef4 = []byte{
- // 2076 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x4d, 0x6c, 0x1c, 0x49,
- 0x15, 0x4e, 0xdb, 0xe3, 0x24, 0x2e, 0xdb, 0x31, 0xe9, 0x75, 0x92, 0x49, 0x27, 0xb1, 0xe3, 0x76,
- 0x7e, 0xbc, 0x4e, 0xb6, 0x27, 0xe3, 0xc0, 0x2e, 0x6b, 0x09, 0xa4, 0x8c, 0x1d, 0x84, 0x45, 0xbc,
- 0x44, 0xed, 0xec, 0xae, 0xc4, 0xa5, 0xa9, 0xe9, 0x7e, 0xe9, 0x69, 0x3c, 0xdd, 0x35, 0x74, 0xd5,
- 0x8c, 0xf1, 0x01, 0x69, 0xd9, 0xe3, 0x72, 0x00, 0x89, 0x03, 0xe2, 0x00, 0x17, 0xb8, 0xae, 0x14,
- 0x24, 0x2e, 0xec, 0x19, 0xa4, 0x3d, 0x46, 0x70, 0x41, 0x08, 0x45, 0x28, 0x41, 0x8a, 0xc4, 0x89,
- 0x3b, 0x07, 0x50, 0x57, 0x55, 0xd7, 0x74, 0xf7, 0x74, 0x8f, 0x27, 0xab, 0x68, 0x2f, 0xd6, 0xd4,
- 0xab, 0xf7, 0xaa, 0xbe, 0xf7, 0x5b, 0xef, 0xb5, 0xd1, 0x95, 0x20, 0xfa, 0x01, 0xb8, 0x2c, 0x18,
- 0x40, 0xa3, 0x07, 0xbe, 0x7f, 0xd4, 0x18, 0x34, 0x1b, 0x21, 0xf5, 0xa9, 0xd5, 0x8b, 0x09, 0x23,
- 0xba, 0xae, 0xb6, 0x2d, 0xbe, 0x6d, 0x0d, 0x9a, 0xc6, 0x92, 0x4f, 0x7c, 0xc2, 0xb7, 0x1b, 0xc9,
- 0x2f, 0xc1, 0x69, 0x5c, 0xf6, 0x09, 0xf1, 0xbb, 0xd0, 0xc0, 0xbd, 0xa0, 0x81, 0xa3, 0x88, 0x30,
- 0xcc, 0x02, 0x12, 0xc9, 0x73, 0x8c, 0x8b, 0x72, 0x97, 0xaf, 0xda, 0xfd, 0xc7, 0x0d, 0x1c, 0x1d,
- 0xc9, 0xad, 0xb3, 0x38, 0x0c, 0x22, 0xd2, 0xe0, 0x7f, 0x25, 0x69, 0xd9, 0x25, 0x34, 0x24, 0xb4,
- 0xd1, 0xc6, 0x14, 0x1a, 0x83, 0x66, 0x1b, 0x18, 0x6e, 0x36, 0x5c, 0x12, 0x44, 0x72, 0xff, 0x82,
- 0xdc, 0x0f, 0xa9, 0x2f, 0xf1, 0xa6, 0xd7, 0x88, 0x0d, 0x47, 0xa0, 0x13, 0x8b, 0xf4, 0xcc, 0x12,
- 0x45, 0xd9, 0x51, 0x0f, 0xd2, 0xfd, 0x95, 0x92, 0xfd, 0x1e, 0x8e, 0x71, 0x98, 0x32, 0xac, 0x95,
- 0x30, 0xc4, 0x98, 0x81, 0xd3, 0x0d, 0xc2, 0x80, 0x09, 0x26, 0xf3, 0x53, 0x0d, 0x5d, 0xda, 0xa3,
- 0xfe, 0x3e, 0xb0, 0xef, 0xc6, 0x6e, 0x07, 0x28, 0x8b, 0x31, 0x23, 0xf1, 0x3d, 0xcf, 0x8b, 0x81,
- 0x52, 0xa0, 0xfa, 0x79, 0x74, 0x92, 0x42, 0xe4, 0x41, 0x5c, 0xd7, 0xae, 0x6a, 0xeb, 0xb3, 0xb6,
- 0x5c, 0xe9, 0x26, 0x9a, 0x27, 0x19, 0x81, 0xfa, 0x14, 0xdf, 0xcd, 0xd1, 0xf4, 0x15, 0x34, 0x07,
- 0xac, 0xe3, 0x60, 0x71, 0x58, 0x7d, 0x9a, 0xb3, 0x20, 0x60, 0x1d, 0x79, 0xfc, 0x56, 0xf3, 0xe3,
- 0x97, 0x4f, 0x36, 0xe4, 0x89, 0x9f, 0xbc, 0x7c, 0xb2, 0xb1, 0x2a, 0x70, 0x8e, 0xc1, 0x63, 0x5e,
- 0x47, 0x6b, 0x63, 0xb6, 0x6d, 0xa0, 0x3d, 0x12, 0x51, 0x30, 0xff, 0xa8, 0xa1, 0xaf, 0xec, 0x51,
- 0xff, 0x03, 0xdc, 0xa5, 0xc0, 0xb6, 0x49, 0xf4, 0x38, 0x88, 0x43, 0x7d, 0x09, 0xcd, 0x44, 0x24,
- 0x72, 0x81, 0xab, 0x52, 0xb3, 0xc5, 0xe2, 0xb5, 0x68, 0xa2, 0x5f, 0x46, 0xb3, 0x34, 0xf0, 0x23,
- 0xcc, 0xfa, 0x31, 0xd4, 0x6b, 0x7c, 0x7b, 0x48, 0xd8, 0xba, 0x9d, 0xe8, 0x99, 0x3b, 0x31, 0xd1,
- 0xf6, 0xbc, 0xd2, 0x36, 0x07, 0xd3, 0x34, 0x50, 0xbd, 0x48, 0x53, 0x7a, 0x3d, 0xd3, 0xd0, 0x3c,
- 0xd7, 0x3f, 0xf2, 0x1e, 0x91, 0xfb, 0xac, 0x53, 0xe9, 0x9f, 0x8b, 0xe8, 0x74, 0x82, 0xd8, 0x03,
- 0xca, 0xa4, 0x46, 0xa7, 0x80, 0x75, 0x76, 0x80, 0x32, 0xfd, 0x1d, 0x74, 0x12, 0x87, 0xa4, 0x1f,
- 0x31, 0xae, 0xc7, 0xdc, 0xe6, 0x45, 0x4b, 0xc6, 0x5d, 0x12, 0xbd, 0x96, 0x8c, 0x5e, 0x6b, 0x9b,
- 0x04, 0x51, 0xab, 0xf6, 0xf9, 0xb3, 0x95, 0x13, 0xb6, 0x64, 0xd7, 0xbf, 0x89, 0x50, 0x3b, 0x0e,
- 0x3c, 0x1f, 0x9c, 0xc7, 0x20, 0xb4, 0x9c, 0x40, 0x78, 0x56, 0x88, 0x7c, 0x0b, 0x60, 0xcb, 0x2c,
- 0xb8, 0x5b, 0xcf, 0xb8, 0x5b, 0xea, 0x63, 0x9e, 0x47, 0x4b, 0xd9, 0xb5, 0x52, 0xfc, 0x47, 0x68,
- 0x71, 0x8f, 0xfa, 0x36, 0xfc, 0xb0, 0x0f, 0x94, 0xb5, 0x30, 0x73, 0x3b, 0x23, 0x8e, 0xd3, 0x4a,
- 0x1c, 0xb7, 0x84, 0x66, 0x3c, 0x88, 0x48, 0x28, 0x6d, 0x20, 0x16, 0x5b, 0xb7, 0x4a, 0xfd, 0x71,
- 0x4e, 0xc1, 0xc9, 0x5e, 0x63, 0x5e, 0x44, 0x17, 0x0a, 0x24, 0x05, 0xea, 0x1f, 0x1a, 0x47, 0x25,
- 0x9d, 0x24, 0x50, 0x95, 0x07, 0xd9, 0x75, 0x74, 0x86, 0x91, 0x03, 0x88, 0x1c, 0x97, 0x44, 0x2c,
- 0xc6, 0x6e, 0xea, 0x94, 0x05, 0x4e, 0xdd, 0x96, 0x44, 0xfd, 0x0a, 0x4a, 0x82, 0xca, 0x49, 0x22,
- 0x07, 0x62, 0x19, 0x66, 0xb3, 0xc0, 0x3a, 0xfb, 0x9c, 0x30, 0xa2, 0x71, 0xad, 0x44, 0xe3, 0x5c,
- 0x24, 0xce, 0x14, 0x23, 0xf1, 0x38, 0xcd, 0xb3, 0xaa, 0x48, 0xcd, 0xb3, 0x24, 0xa5, 0xf9, 0xbf,
- 0xa7, 0xb8, 0xe6, 0x3b, 0xd0, 0x23, 0x34, 0x60, 0xdb, 0x5d, 0x1c, 0x84, 0x3c, 0x49, 0x06, 0x10,
- 0x31, 0x27, 0xab, 0x3f, 0xe2, 0xa4, 0xf7, 0xb8, 0x11, 0x56, 0xd1, 0x7c, 0xbb, 0x4b, 0xdc, 0x03,
- 0xa7, 0x03, 0x81, 0xdf, 0x11, 0x26, 0xa8, 0xd9, 0x73, 0x9c, 0xf6, 0x6d, 0x4e, 0x2a, 0xb1, 0xd3,
- 0x74, 0x99, 0x9d, 0xbe, 0xa6, 0x42, 0x98, 0x9b, 0xa0, 0x75, 0x25, 0x09, 0xb5, 0xbf, 0x3f, 0x5b,
- 0x39, 0x27, 0x82, 0x91, 0x7a, 0x07, 0x56, 0x40, 0x1a, 0x21, 0x66, 0x1d, 0x6b, 0x37, 0x62, 0x2a,
- 0x80, 0x6f, 0xa2, 0x45, 0x60, 0x1d, 0x88, 0xa1, 0x1f, 0x3a, 0x32, 0x6b, 0x84, 0x85, 0xce, 0xa4,
- 0xe4, 0x7d, 0x91, 0x3d, 0x37, 0xd1, 0xa2, 0x2c, 0xcc, 0x31, 0xb8, 0x10, 0x0c, 0x20, 0xae, 0x9f,
- 0x14, 0x8c, 0x82, 0x6c, 0x4b, 0xea, 0x88, 0x47, 0x4e, 0x95, 0x78, 0x44, 0x47, 0x35, 0x0f, 0x33,
- 0x5c, 0x3f, 0xcd, 0xf7, 0xf8, 0xef, 0x63, 0xfd, 0x90, 0x35, 0xac, 0xf4, 0x43, 0x96, 0xa4, 0xfc,
- 0xf0, 0x1f, 0x51, 0xe7, 0x3e, 0x0c, 0x58, 0xc7, 0x8b, 0xf1, 0xe1, 0xeb, 0x73, 0xc4, 0x0a, 0x9a,
- 0x6b, 0x27, 0x1e, 0x97, 0x67, 0x4c, 0x8b, 0x33, 0x38, 0xe9, 0xbd, 0x8a, 0x88, 0xae, 0x95, 0x79,
- 0xaa, 0x68, 0xa0, 0x99, 0x51, 0x03, 0x1d, 0x5b, 0x1e, 0x73, 0xda, 0xc9, 0xf2, 0x98, 0xa3, 0x29,
- 0x73, 0xfc, 0x69, 0x0a, 0x9d, 0xdb, 0xa3, 0xfe, 0x7d, 0x7b, 0x7b, 0xf3, 0xce, 0x0e, 0xf4, 0xba,
- 0xe4, 0x08, 0xbc, 0xd7, 0x67, 0x93, 0x55, 0x34, 0x2f, 0xa3, 0x42, 0xd4, 0x14, 0x11, 0x9a, 0x73,
- 0x82, 0xb6, 0x93, 0x90, 0x26, 0xb5, 0x8a, 0x8e, 0x6a, 0x11, 0x0e, 0xd3, 0xfc, 0xe4, 0xbf, 0x79,
- 0x25, 0x3f, 0x0a, 0xdb, 0xa4, 0x2b, 0x43, 0x4d, 0xae, 0x74, 0x03, 0x9d, 0xf6, 0xc0, 0x0d, 0x42,
- 0xdc, 0xa5, 0x3c, 0xbc, 0x6a, 0xb6, 0x5a, 0x8f, 0x58, 0xf7, 0x74, 0x89, 0x75, 0x9b, 0xa5, 0xd6,
- 0xbd, 0xa4, 0xac, 0x3b, 0x6a, 0x2c, 0x73, 0x05, 0x5d, 0x29, 0xdd, 0x50, 0x76, 0xfe, 0x31, 0xd2,
- 0x93, 0xca, 0x80, 0x23, 0x17, 0xba, 0xc3, 0xb7, 0x28, 0x51, 0x3e, 0xc6, 0x11, 0xc5, 0x6e, 0xd2,
- 0x49, 0x39, 0x81, 0x27, 0xcd, 0xbc, 0x90, 0xa1, 0xee, 0x7a, 0x99, 0x27, 0x6b, 0x2a, 0xfb, 0x64,
- 0x6d, 0xad, 0x17, 0x9e, 0x87, 0xfa, 0xb0, 0x2a, 0xe5, 0x2f, 0x32, 0x2f, 0x23, 0x63, 0x94, 0xaa,
- 0xc0, 0x7d, 0xa6, 0x71, 0xf8, 0xfb, 0xfd, 0x76, 0x18, 0xb0, 0x16, 0xf6, 0xf6, 0xd3, 0xea, 0x77,
- 0x7f, 0x10, 0x78, 0x90, 0xf8, 0xda, 0x42, 0xa7, 0x68, 0xbf, 0x9d, 0x34, 0x47, 0x1c, 0xe1, 0xdc,
- 0xe6, 0x92, 0x25, 0xda, 0x3d, 0x2b, 0x6d, 0xf7, 0xac, 0x7b, 0xd1, 0x91, 0x9d, 0x32, 0xe5, 0x6b,
- 0xea, 0x54, 0xa1, 0xa6, 0x66, 0xf4, 0x99, 0xce, 0xe9, 0x73, 0xb7, 0xa0, 0xcf, 0xda, 0xf0, 0xb9,
- 0xab, 0x84, 0x66, 0xde, 0x44, 0xd7, 0xc7, 0x32, 0x28, 0x2d, 0xff, 0x2b, 0x42, 0x5d, 0xb4, 0x09,
- 0xef, 0xf7, 0x3c, 0xcc, 0x5e, 0x25, 0xd4, 0x07, 0x5c, 0x4c, 0x72, 0xc8, 0x50, 0x17, 0xb4, 0xf2,
- 0x6c, 0x98, 0x1e, 0xcd, 0x86, 0x6f, 0xa0, 0x53, 0x21, 0x84, 0x6d, 0x88, 0x69, 0xbd, 0x76, 0x75,
- 0x7a, 0x7d, 0x6e, 0x73, 0xcd, 0x1a, 0xed, 0xbd, 0xad, 0x16, 0x7f, 0xfd, 0x3f, 0xc0, 0xdd, 0xc0,
- 0x4b, 0x42, 0xcf, 0x4e, 0x65, 0xf4, 0x16, 0x5a, 0x88, 0xe1, 0x10, 0xc7, 0x9e, 0x23, 0x2b, 0xf9,
- 0xcc, 0x24, 0x95, 0x7c, 0x5e, 0xc8, 0xdc, 0x13, 0xf5, 0x7c, 0x15, 0xc9, 0xb5, 0xc3, 0xd3, 0x4b,
- 0x26, 0xce, 0x9c, 0xa0, 0x3d, 0x4a, 0x48, 0x93, 0x14, 0xe8, 0x63, 0x33, 0x64, 0xd4, 0xc6, 0x32,
- 0x43, 0x46, 0x37, 0x94, 0x7b, 0x3e, 0x15, 0xad, 0x81, 0xd8, 0x7b, 0xc8, 0xdb, 0x72, 0xfd, 0x6d,
- 0x34, 0x8b, 0xfb, 0xac, 0x43, 0xe2, 0x80, 0x1d, 0x89, 0x6e, 0xa5, 0x55, 0xff, 0xcb, 0x1f, 0xde,
- 0x5a, 0x92, 0x1d, 0x94, 0xec, 0x25, 0xf7, 0x59, 0x1c, 0x44, 0xbe, 0x3d, 0x64, 0xd5, 0xbf, 0x8e,
- 0x4e, 0x8a, 0xc6, 0x9e, 0x7b, 0x6a, 0x6e, 0xd3, 0x28, 0x33, 0xb4, 0xb8, 0x23, 0xed, 0xd8, 0x04,
- 0xbf, 0x48, 0xa9, 0xe1, 0x49, 0xf9, 0x37, 0x26, 0x8b, 0x4d, 0xbe, 0x31, 0x59, 0x92, 0x52, 0xe5,
- 0xd7, 0x22, 0x9f, 0x5a, 0x5d, 0xec, 0x1e, 0x74, 0x03, 0xca, 0xee, 0xcb, 0xb7, 0x32, 0x3f, 0x24,
- 0x88, 0x96, 0x25, 0x6d, 0x42, 0x45, 0xbf, 0xd2, 0x40, 0x6f, 0xb4, 0x53, 0xa9, 0xb4, 0x79, 0x86,
- 0x44, 0x8b, 0xe9, 0xf5, 0x59, 0x5b, 0x57, 0x5b, 0xea, 0xa0, 0x34, 0x65, 0xb8, 0x74, 0x3e, 0x65,
- 0xaa, 0x6f, 0x97, 0x29, 0x53, 0xcd, 0xa0, 0x14, 0xf9, 0xa5, 0xc6, 0xeb, 0x86, 0x0d, 0x03, 0x72,
- 0x00, 0x29, 0x9b, 0x92, 0x7b, 0x7d, 0x5a, 0xdc, 0x29, 0x68, 0x71, 0x35, 0xd3, 0x58, 0x96, 0x5e,
- 0x6d, 0x5e, 0x43, 0x66, 0xf5, 0xae, 0xc2, 0xff, 0xfb, 0x69, 0x51, 0x76, 0x63, 0xc0, 0x0c, 0x6c,
- 0xcc, 0xe0, 0x41, 0x32, 0xc8, 0x7d, 0xe1, 0xb0, 0x5a, 0x43, 0xe2, 0x55, 0x52, 0x63, 0x8d, 0x9c,
- 0x7c, 0x38, 0x31, 0x1d, 0x6c, 0xd4, 0x83, 0xa6, 0xde, 0xa0, 0xa4, 0x14, 0x2c, 0xc8, 0x07, 0x6d,
- 0x27, 0x7d, 0x88, 0xae, 0xa5, 0x6c, 0xbd, 0x38, 0x70, 0x21, 0x29, 0xfd, 0xb5, 0xcc, 0x61, 0x0f,
- 0x13, 0xe2, 0xae, 0xa7, 0xef, 0xa2, 0x33, 0xc3, 0x01, 0xd4, 0xe9, 0x53, 0x4f, 0x26, 0xfd, 0x9a,
- 0x4c, 0xfa, 0x4b, 0xa3, 0x49, 0xff, 0x00, 0x7c, 0xec, 0x1e, 0xed, 0x80, 0x6b, 0xcf, 0xc7, 0xa9,
- 0xc6, 0xef, 0x53, 0x4f, 0xdf, 0x43, 0x6f, 0xe0, 0x36, 0x25, 0xdd, 0x3e, 0x03, 0x27, 0x0c, 0x22,
- 0x26, 0xce, 0x14, 0x15, 0xe0, 0xb8, 0x22, 0x72, 0x36, 0x95, 0xdc, 0x0b, 0x22, 0x26, 0x6c, 0xb8,
- 0x81, 0xce, 0x66, 0x90, 0x1d, 0x06, 0x91, 0x47, 0x0e, 0xe5, 0x6b, 0xbb, 0xa8, 0xee, 0xfd, 0x90,
- 0x93, 0x45, 0xef, 0x96, 0x4f, 0xaa, 0xcc, 0x53, 0x95, 0x77, 0x4e, 0xfa, 0x54, 0xe5, 0xa9, 0xca,
- 0xa3, 0x4f, 0xa7, 0xb8, 0x47, 0x45, 0xda, 0x7d, 0x49, 0x1e, 0xbd, 0x85, 0xf4, 0x08, 0x0e, 0x9d,
- 0x82, 0xbb, 0xc4, 0xd3, 0xb5, 0x18, 0xc1, 0xe1, 0xa3, 0xac, 0xc7, 0x1e, 0x0a, 0xe6, 0x82, 0xd7,
- 0x6a, 0x93, 0x7b, 0x2d, 0x39, 0xd1, 0xce, 0x3a, 0xae, 0x89, 0xce, 0x15, 0x4e, 0x94, 0xd6, 0x9e,
- 0xe1, 0xd6, 0xd6, 0xb3, 0xfc, 0x93, 0x18, 0xbc, 0x60, 0x3b, 0x69, 0xf0, 0x02, 0x55, 0x19, 0xfc,
- 0x37, 0x1a, 0x37, 0xb8, 0x0d, 0x21, 0x19, 0x7c, 0x49, 0x06, 0x1f, 0x0f, 0xbf, 0x80, 0x44, 0xc2,
- 0x2f, 0x50, 0x53, 0xf8, 0x9b, 0xff, 0xd3, 0xd1, 0xf4, 0x1e, 0xf5, 0xf5, 0x9f, 0x69, 0x68, 0x21,
- 0xff, 0x6d, 0xe3, 0x5a, 0xd9, 0x9b, 0x50, 0xfc, 0x8c, 0x60, 0xdc, 0x9e, 0x84, 0x4b, 0x19, 0x6b,
- 0xe3, 0xe3, 0xbf, 0xfe, 0xeb, 0x17, 0x53, 0xd7, 0x4c, 0xb3, 0x51, 0xf2, 0x25, 0x49, 0x76, 0x10,
- 0xae, 0xbc, 0xff, 0x23, 0x0d, 0xcd, 0x0e, 0x3b, 0xc1, 0xab, 0x15, 0xf7, 0x28, 0x0e, 0x63, 0xfd,
- 0x38, 0x0e, 0x85, 0xe2, 0x26, 0x47, 0xb1, 0x6a, 0xae, 0x94, 0xa1, 0x48, 0xba, 0x2b, 0x87, 0x11,
- 0x07, 0x58, 0x47, 0xff, 0xa9, 0x86, 0xe6, 0x73, 0x1f, 0x08, 0xd6, 0x2a, 0xee, 0xc8, 0x32, 0x19,
- 0xb7, 0x26, 0x60, 0x52, 0x58, 0xde, 0xe4, 0x58, 0xd6, 0xcc, 0xd5, 0x32, 0x2c, 0xb1, 0x90, 0x70,
- 0xf8, 0x90, 0xc4, 0xd1, 0xe4, 0x3e, 0x0c, 0x54, 0xa1, 0xc9, 0x32, 0x55, 0xa2, 0x29, 0x1d, 0xc2,
- 0xc7, 0xa2, 0x91, 0x8e, 0xc9, 0xa0, 0xc9, 0x0d, 0xeb, 0x55, 0x68, 0xb2, 0x4c, 0x95, 0x68, 0x4a,
- 0x47, 0xd1, 0xb1, 0x68, 0x3c, 0x21, 0xe1, 0xb8, 0xfc, 0xf2, 0x24, 0x7c, 0xf3, 0x23, 0x6b, 0x55,
- 0xf8, 0xe6, 0xb8, 0x2a, 0xc3, 0xb7, 0x7c, 0x18, 0x1c, 0x1b, 0xbe, 0x87, 0x52, 0x44, 0x22, 0xfa,
- 0xad, 0x86, 0xce, 0x66, 0xbb, 0x39, 0x81, 0xea, 0xcd, 0xb1, 0xe9, 0x92, 0xed, 0xfb, 0x8c, 0xe6,
- 0xc4, 0xac, 0x0a, 0xdf, 0x1d, 0x8e, 0x6f, 0xc3, 0x5c, 0x1f, 0x93, 0x5e, 0x7d, 0x21, 0x28, 0x51,
- 0xfe, 0x4e, 0x43, 0x7a, 0xc9, 0x6c, 0x5b, 0x05, 0x73, 0x94, 0xb5, 0x12, 0xe6, 0x98, 0x59, 0x6f,
- 0x2c, 0x4c, 0x88, 0xdd, 0xcd, 0x3b, 0x8e, 0x27, 0x05, 0x25, 0xcc, 0xcf, 0x34, 0x54, 0xaf, 0xfc,
- 0xa0, 0xdc, 0xa8, 0x4c, 0xfc, 0x72, 0x01, 0xe3, 0x9d, 0x57, 0x14, 0x50, 0xc0, 0xbf, 0xca, 0x81,
- 0x5b, 0xe6, 0xed, 0xf2, 0xc2, 0xc1, 0x9c, 0x6c, 0xc7, 0x9f, 0x56, 0x70, 0xfd, 0x57, 0x1a, 0x5a,
- 0x2c, 0x0e, 0xb6, 0x37, 0xaa, 0xb2, 0x32, 0xcf, 0x67, 0x58, 0x93, 0xf1, 0x29, 0x84, 0x16, 0x47,
- 0xb8, 0x6e, 0xde, 0x28, 0x4d, 0x60, 0x2e, 0xe4, 0x64, 0x2b, 0xdc, 0x9f, 0x35, 0x64, 0x8c, 0x19,
- 0x6b, 0xab, 0x9c, 0x5b, 0x2d, 0x62, 0xbc, 0xfb, 0xca, 0x22, 0x0a, 0xfc, 0xbb, 0x1c, 0xfc, 0x5d,
- 0xb3, 0x59, 0x6a, 0x5e, 0x2e, 0xef, 0xb4, 0xb1, 0xe7, 0xa8, 0x41, 0xd9, 0x81, 0x14, 0xe8, 0xf7,
- 0xd1, 0x7c, 0x6e, 0x30, 0xaa, 0x2a, 0x46, 0x59, 0xa6, 0xca, 0x62, 0x54, 0x36, 0xb3, 0xe8, 0x9f,
- 0x68, 0xc8, 0x18, 0x33, 0xb0, 0x54, 0x59, 0xaa, 0x5a, 0xa4, 0xd2, 0x52, 0xc7, 0xcf, 0x1d, 0xfa,
- 0x4f, 0x34, 0x74, 0xa1, 0x6a, 0xe8, 0xb0, 0x2a, 0x9f, 0x9f, 0x52, 0x7e, 0xe3, 0xed, 0x57, 0xe3,
- 0x57, 0x18, 0x02, 0xb4, 0x58, 0x9c, 0x1b, 0x2a, 0xa3, 0x3a, 0xcf, 0x57, 0x1d, 0xd5, 0xe5, 0x4d,
- 0x6d, 0x72, 0x55, 0xb1, 0xa1, 0xbd, 0x31, 0xd6, 0x77, 0xc7, 0x5f, 0x55, 0xd1, 0xce, 0x25, 0x57,
- 0x15, 0x5b, 0xb9, 0x1b, 0x95, 0x06, 0xca, 0xf1, 0x19, 0xd6, 0x64, 0x7c, 0xe9, 0x55, 0xc6, 0xcc,
- 0x47, 0x2f, 0x9f, 0x6c, 0x68, 0x2d, 0xf8, 0xfc, 0xf9, 0xb2, 0xf6, 0xf4, 0xf9, 0xb2, 0xf6, 0xcf,
- 0xe7, 0xcb, 0xda, 0xcf, 0x5f, 0x2c, 0x9f, 0x78, 0xfa, 0x62, 0xf9, 0xc4, 0xdf, 0x5e, 0x2c, 0x9f,
- 0xf8, 0xde, 0x77, 0xfc, 0x80, 0x75, 0xfa, 0x6d, 0xcb, 0x25, 0x61, 0x63, 0x37, 0x3d, 0xfa, 0x01,
- 0x6e, 0xd3, 0x61, 0x7e, 0xbc, 0xe5, 0x92, 0x18, 0xb2, 0xcb, 0x0e, 0x0e, 0xa2, 0x46, 0x48, 0xbc,
- 0x7e, 0x17, 0xa8, 0x4c, 0x1e, 0xfe, 0x2f, 0xbe, 0xf6, 0x49, 0xfe, 0x21, 0xea, 0xee, 0xff, 0x03,
- 0x00, 0x00, 0xff, 0xff, 0xad, 0x9f, 0x5c, 0x78, 0xee, 0x1c, 0x00, 0x00,
+ // 2113 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xcd, 0x6f, 0x1c, 0x49,
+ 0x15, 0x4f, 0x7b, 0xc6, 0x4e, 0x5c, 0x63, 0xc7, 0xa4, 0xd7, 0x49, 0x26, 0x9d, 0xc4, 0x8e, 0xdb,
+ 0xf9, 0xf0, 0x3a, 0x49, 0x4f, 0xec, 0xc0, 0x2e, 0x6b, 0x09, 0xa4, 0x8c, 0x1d, 0x84, 0xd9, 0x78,
+ 0x89, 0xda, 0xc9, 0xae, 0xc4, 0xa5, 0xa9, 0xe9, 0x7e, 0xe9, 0x69, 0x3c, 0xdd, 0x35, 0x74, 0xd7,
+ 0x8c, 0xf1, 0x01, 0x69, 0xd9, 0x1b, 0xcb, 0x61, 0x91, 0x38, 0x20, 0x90, 0xe0, 0x02, 0xd7, 0x95,
+ 0x82, 0x94, 0x0b, 0xdc, 0x91, 0x56, 0x7b, 0x8a, 0xe0, 0x82, 0x10, 0x8a, 0x20, 0x41, 0xca, 0x9f,
+ 0x01, 0xea, 0xaa, 0xea, 0x9a, 0xee, 0x9e, 0xee, 0xf1, 0x24, 0x6b, 0xe5, 0x62, 0x4d, 0xbd, 0x7a,
+ 0x55, 0xf5, 0x7b, 0xdf, 0xef, 0xb5, 0xd1, 0x45, 0x2f, 0xf8, 0x11, 0xd8, 0xd4, 0xeb, 0x43, 0xa3,
+ 0x0b, 0xae, 0x7b, 0xd0, 0xe8, 0xaf, 0x35, 0xfc, 0xc8, 0x8d, 0x8c, 0x6e, 0x48, 0x28, 0x51, 0x55,
+ 0xb9, 0x6d, 0xb0, 0x6d, 0xa3, 0xbf, 0xa6, 0xcd, 0xbb, 0xc4, 0x25, 0x6c, 0xbb, 0x11, 0xff, 0xe2,
+ 0x9c, 0xda, 0x05, 0x97, 0x10, 0xb7, 0x03, 0x0d, 0xdc, 0xf5, 0x1a, 0x38, 0x08, 0x08, 0xc5, 0xd4,
+ 0x23, 0x81, 0xb8, 0x47, 0x3b, 0x27, 0x76, 0xd9, 0xaa, 0xd5, 0x7b, 0xd4, 0xc0, 0xc1, 0x81, 0xd8,
+ 0x3a, 0x85, 0x7d, 0x2f, 0x20, 0x0d, 0xf6, 0x57, 0x90, 0x16, 0x6c, 0x12, 0xf9, 0x24, 0x6a, 0xb4,
+ 0x70, 0x04, 0x8d, 0xfe, 0x5a, 0x0b, 0x28, 0x5e, 0x6b, 0xd8, 0xc4, 0x0b, 0xc4, 0xfe, 0x59, 0xb1,
+ 0xef, 0x47, 0xae, 0xc0, 0x9b, 0x3c, 0xc3, 0x37, 0x2c, 0x8e, 0x8e, 0x2f, 0x92, 0x3b, 0x0b, 0x04,
+ 0xa5, 0x07, 0x5d, 0x48, 0xf6, 0x17, 0x0b, 0xf6, 0xbb, 0x38, 0xc4, 0x7e, 0xc2, 0xb0, 0x5c, 0xc0,
+ 0x10, 0x62, 0x0a, 0x56, 0xc7, 0xf3, 0x3d, 0xca, 0x99, 0xf4, 0xcf, 0x15, 0x74, 0x7e, 0x27, 0x72,
+ 0x77, 0x81, 0x7e, 0x3f, 0xb4, 0xdb, 0x10, 0xd1, 0x10, 0x53, 0x12, 0xde, 0x71, 0x9c, 0x10, 0xa2,
+ 0x08, 0x22, 0xf5, 0x0c, 0x9a, 0x8a, 0x20, 0x70, 0x20, 0xac, 0x2b, 0x97, 0x94, 0x95, 0x69, 0x53,
+ 0xac, 0x54, 0x1d, 0xcd, 0x90, 0xd4, 0x81, 0xfa, 0x04, 0xdb, 0xcd, 0xd0, 0xd4, 0x45, 0x54, 0x03,
+ 0xda, 0xb6, 0x30, 0xbf, 0xac, 0x5e, 0x61, 0x2c, 0x08, 0x68, 0x5b, 0x5c, 0xbf, 0xb1, 0xf6, 0xc9,
+ 0xcb, 0xc7, 0xab, 0xe2, 0xc6, 0x4f, 0x5f, 0x3e, 0x5e, 0x5d, 0xe2, 0x38, 0x47, 0xe0, 0xd1, 0xaf,
+ 0xa0, 0xe5, 0x11, 0xdb, 0x26, 0x44, 0x5d, 0x12, 0x44, 0xa0, 0xff, 0x59, 0x41, 0x5f, 0xdb, 0x89,
+ 0xdc, 0x0f, 0x71, 0x27, 0x02, 0xba, 0x49, 0x82, 0x47, 0x5e, 0xe8, 0xab, 0xf3, 0x68, 0x32, 0x20,
+ 0x81, 0x0d, 0x4c, 0x94, 0xaa, 0xc9, 0x17, 0x47, 0x22, 0x89, 0x7a, 0x01, 0x4d, 0x47, 0x9e, 0x1b,
+ 0x60, 0xda, 0x0b, 0xa1, 0x5e, 0x65, 0xdb, 0x03, 0xc2, 0xc6, 0x8d, 0x58, 0xce, 0xcc, 0x8d, 0xb1,
+ 0xb4, 0x67, 0xa4, 0xb4, 0x19, 0x98, 0xba, 0x86, 0xea, 0x79, 0x9a, 0x94, 0xeb, 0x99, 0x82, 0x66,
+ 0x98, 0xfc, 0x81, 0xf3, 0x80, 0xdc, 0xa5, 0xed, 0x52, 0xfb, 0x9c, 0x43, 0x27, 0x62, 0xc4, 0x0e,
+ 0x44, 0x54, 0x48, 0x74, 0x1c, 0x68, 0x7b, 0x0b, 0x22, 0xaa, 0xbe, 0x8b, 0xa6, 0xb0, 0x4f, 0x7a,
+ 0x01, 0x65, 0x72, 0xd4, 0xd6, 0xcf, 0x19, 0xc2, 0xef, 0x62, 0xef, 0x35, 0x84, 0xf7, 0x1a, 0x9b,
+ 0xc4, 0x0b, 0x9a, 0xd5, 0x2f, 0x9e, 0x2d, 0x1e, 0x33, 0x05, 0xbb, 0xfa, 0x6d, 0x84, 0x5a, 0xa1,
+ 0xe7, 0xb8, 0x60, 0x3d, 0x02, 0x2e, 0xe5, 0x18, 0x87, 0xa7, 0xf9, 0x91, 0xef, 0x00, 0x6c, 0xe8,
+ 0x39, 0x73, 0xab, 0x29, 0x73, 0x0b, 0x79, 0xf4, 0x33, 0x68, 0x3e, 0xbd, 0x96, 0x82, 0xff, 0x04,
+ 0xcd, 0xed, 0x44, 0xae, 0x09, 0x3f, 0xee, 0x41, 0x44, 0x9b, 0x98, 0xda, 0xed, 0x21, 0xc3, 0x29,
+ 0x05, 0x86, 0x9b, 0x47, 0x93, 0x0e, 0x04, 0xc4, 0x17, 0x3a, 0xe0, 0x8b, 0x8d, 0xeb, 0x85, 0xf6,
+ 0x38, 0x2d, 0xe1, 0xa4, 0x9f, 0xd1, 0xcf, 0xa1, 0xb3, 0x39, 0x92, 0x04, 0xf5, 0x2f, 0x85, 0xa1,
+ 0x12, 0x46, 0xe2, 0xa8, 0x8a, 0x9d, 0xec, 0x0a, 0x3a, 0x49, 0xc9, 0x1e, 0x04, 0x96, 0x4d, 0x02,
+ 0x1a, 0x62, 0x3b, 0x31, 0xca, 0x2c, 0xa3, 0x6e, 0x0a, 0xa2, 0x7a, 0x11, 0xc5, 0x4e, 0x65, 0xc5,
+ 0x9e, 0x03, 0xa1, 0x70, 0xb3, 0x69, 0xa0, 0xed, 0x5d, 0x46, 0x18, 0x92, 0xb8, 0x5a, 0x20, 0x71,
+ 0xc6, 0x13, 0x27, 0xf3, 0x9e, 0x78, 0x98, 0xe4, 0x69, 0x51, 0x84, 0xe4, 0x69, 0x92, 0x94, 0xfc,
+ 0xe7, 0x15, 0x26, 0xf9, 0x16, 0x74, 0x49, 0xe4, 0xd1, 0xcd, 0x0e, 0xf6, 0x7c, 0x16, 0x24, 0x7d,
+ 0x08, 0xa8, 0x95, 0x96, 0x1f, 0x31, 0xd2, 0x07, 0x4c, 0x09, 0x4b, 0x68, 0xa6, 0xd5, 0x21, 0xf6,
+ 0x9e, 0xd5, 0x06, 0xcf, 0x6d, 0x73, 0x15, 0x54, 0xcd, 0x1a, 0xa3, 0x7d, 0x97, 0x91, 0x0a, 0xf4,
+ 0x54, 0x29, 0xd2, 0xd3, 0x37, 0xa4, 0x0b, 0x33, 0x15, 0x34, 0x2f, 0xc6, 0xae, 0xf6, 0xcf, 0x67,
+ 0x8b, 0xa7, 0xb9, 0x33, 0x46, 0xce, 0x9e, 0xe1, 0x91, 0x86, 0x8f, 0x69, 0xdb, 0xd8, 0x0e, 0xa8,
+ 0x74, 0xe0, 0x6b, 0x68, 0x0e, 0x68, 0x1b, 0x42, 0xe8, 0xf9, 0x96, 0x88, 0x1a, 0xae, 0xa1, 0x93,
+ 0x09, 0x79, 0x97, 0x47, 0xcf, 0x35, 0x34, 0x27, 0x12, 0x73, 0x08, 0x36, 0x78, 0x7d, 0x08, 0xeb,
+ 0x53, 0x9c, 0x91, 0x93, 0x4d, 0x41, 0x1d, 0xb2, 0xc8, 0xf1, 0x02, 0x8b, 0xa8, 0xa8, 0xea, 0x60,
+ 0x8a, 0xeb, 0x27, 0xd8, 0x1e, 0xfb, 0xbd, 0xf1, 0xbd, 0x2f, 0x9f, 0xdc, 0x3c, 0x9f, 0x14, 0x28,
+ 0x1e, 0x33, 0x77, 0x05, 0x04, 0xa6, 0xcc, 0x43, 0xcc, 0x94, 0xd6, 0xbb, 0x30, 0x53, 0x9a, 0x24,
+ 0xcd, 0xf4, 0xd9, 0x04, 0x4b, 0x83, 0x1f, 0x79, 0xb4, 0xed, 0x84, 0x78, 0xff, 0xe8, 0xec, 0xb4,
+ 0x88, 0x6a, 0xad, 0xd8, 0x21, 0xc4, 0x1d, 0x15, 0x7e, 0x07, 0x23, 0x7d, 0x50, 0xe2, 0xf0, 0xd5,
+ 0x22, 0x43, 0xe6, 0xf5, 0x37, 0x39, 0xac, 0xbf, 0x8d, 0xf7, 0x5f, 0x47, 0x57, 0x83, 0xe4, 0x9a,
+ 0x11, 0x5e, 0x24, 0xd7, 0x0c, 0x4d, 0x6a, 0xeb, 0xc5, 0x04, 0x3a, 0xbd, 0x13, 0xb9, 0x77, 0xcd,
+ 0xcd, 0xf5, 0x5b, 0x5b, 0xd0, 0xed, 0x90, 0x03, 0x70, 0x8e, 0x4e, 0x65, 0x4b, 0x68, 0x46, 0xf8,
+ 0x14, 0xcf, 0x48, 0xdc, 0xb1, 0x6b, 0x9c, 0xb6, 0x15, 0x93, 0xc6, 0x55, 0x9a, 0x8a, 0xaa, 0x01,
+ 0xf6, 0x93, 0xe8, 0x66, 0xbf, 0x59, 0x1d, 0x38, 0xf0, 0x5b, 0xa4, 0x23, 0x1c, 0x55, 0xac, 0x54,
+ 0x0d, 0x9d, 0x70, 0xc0, 0xf6, 0x7c, 0xdc, 0x89, 0x98, 0x73, 0x56, 0x4d, 0xb9, 0x1e, 0x52, 0xfe,
+ 0x89, 0x02, 0xe5, 0xdf, 0x7f, 0x1d, 0xe5, 0x9f, 0x97, 0xca, 0x1f, 0xd6, 0xa5, 0xbe, 0x88, 0x2e,
+ 0x16, 0x6e, 0x48, 0x33, 0xfc, 0x14, 0xa9, 0x71, 0xda, 0xc1, 0x81, 0x0d, 0x9d, 0x41, 0xa1, 0x8b,
+ 0x75, 0x13, 0xe2, 0x20, 0xc2, 0x76, 0xdc, 0xa6, 0x59, 0x9e, 0x23, 0xac, 0x30, 0x9b, 0xa2, 0x6e,
+ 0x3b, 0xa9, 0x7a, 0x38, 0x91, 0xae, 0x87, 0x1b, 0x2b, 0xb9, 0xda, 0x53, 0x1f, 0xa4, 0xbc, 0xec,
+ 0x43, 0xfa, 0x05, 0xa4, 0x0d, 0x53, 0x25, 0xb8, 0xff, 0x28, 0x0c, 0xfe, 0x6e, 0xaf, 0xe5, 0x7b,
+ 0xb4, 0x89, 0x9d, 0xdd, 0x24, 0xb5, 0xde, 0xed, 0x7b, 0x0e, 0xc4, 0xae, 0xf0, 0x10, 0x1d, 0x8f,
+ 0x7a, 0xad, 0xb8, 0xf3, 0x62, 0x08, 0x6b, 0xeb, 0xf3, 0x06, 0xef, 0x25, 0x8d, 0xa4, 0x97, 0x34,
+ 0xee, 0x04, 0x07, 0xcd, 0x2b, 0x5f, 0x3e, 0xb9, 0xb9, 0x34, 0xdc, 0xac, 0x4a, 0xed, 0xb2, 0x94,
+ 0xef, 0x98, 0xc9, 0x5d, 0xd9, 0xbc, 0x3e, 0x91, 0xcb, 0xeb, 0x29, 0xb1, 0x2b, 0x19, 0xb1, 0x6f,
+ 0xe7, 0xc4, 0x5e, 0x1e, 0x94, 0xdc, 0x52, 0x09, 0xf4, 0x6b, 0xe8, 0xca, 0x48, 0x06, 0xa9, 0x8c,
+ 0xdf, 0x56, 0x58, 0xc0, 0xf0, 0x56, 0xe5, 0x61, 0xd7, 0xc1, 0xf4, 0x55, 0x02, 0xa6, 0xcf, 0x8e,
+ 0x09, 0x0e, 0x11, 0x30, 0x9c, 0x56, 0x1c, 0x53, 0x95, 0xe1, 0x98, 0xfa, 0x16, 0x3a, 0xee, 0x83,
+ 0xdf, 0x82, 0x30, 0xaa, 0x57, 0x2f, 0x55, 0x56, 0x6a, 0xeb, 0xcb, 0x46, 0x81, 0x4a, 0x9b, 0xac,
+ 0x03, 0xf9, 0x10, 0x77, 0x3c, 0x27, 0xf6, 0x50, 0x33, 0x39, 0xa3, 0x36, 0xd1, 0x6c, 0x08, 0xfb,
+ 0x38, 0x74, 0x2c, 0x51, 0x4d, 0x26, 0xc7, 0xa9, 0x26, 0x33, 0xfc, 0xcc, 0x1d, 0x5e, 0x53, 0x96,
+ 0x90, 0x58, 0x5b, 0x2c, 0x48, 0x45, 0xf8, 0xd5, 0x38, 0xed, 0x41, 0x4c, 0x1a, 0xa7, 0x48, 0x7c,
+ 0xd5, 0x38, 0x1b, 0x36, 0x81, 0x88, 0xb3, 0xe1, 0x0d, 0x69, 0xbd, 0xcf, 0x79, 0xf7, 0xc2, 0xf7,
+ 0xee, 0xb3, 0xc9, 0x41, 0x7d, 0x07, 0x4d, 0xe3, 0x1e, 0x6d, 0x93, 0xd0, 0xa3, 0x07, 0xbc, 0xa1,
+ 0x6a, 0xd6, 0xff, 0xf6, 0xe4, 0xe6, 0xbc, 0x68, 0xf2, 0x44, 0xbb, 0xbb, 0x4b, 0x43, 0x2f, 0x70,
+ 0xcd, 0x01, 0xab, 0xfa, 0x4d, 0x34, 0xc5, 0x67, 0x0f, 0x66, 0xc8, 0xda, 0xba, 0x56, 0x64, 0x07,
+ 0xfe, 0x46, 0xd2, 0x54, 0x72, 0x7e, 0x1e, 0x98, 0x83, 0x9b, 0xb2, 0x75, 0x2e, 0x8d, 0x4d, 0xd4,
+ 0xb9, 0x34, 0x49, 0x8a, 0xf2, 0x3b, 0x1e, 0x95, 0xcd, 0x0e, 0xb6, 0xf7, 0x3a, 0x5e, 0x44, 0x13,
+ 0xd5, 0x65, 0xe7, 0x18, 0xde, 0x55, 0x25, 0x7d, 0x32, 0x6f, 0xa9, 0x1a, 0xe8, 0xad, 0x56, 0x72,
+ 0x2a, 0xe9, 0xef, 0x21, 0x96, 0xa2, 0xb2, 0x32, 0x6d, 0xaa, 0x72, 0x4b, 0x5e, 0x94, 0x44, 0x14,
+ 0x3b, 0x9d, 0x8d, 0xa8, 0xf2, 0xd7, 0x45, 0x44, 0x95, 0x33, 0x48, 0x41, 0x7e, 0xad, 0xb0, 0xec,
+ 0x63, 0x42, 0x9f, 0xec, 0x41, 0xc2, 0x26, 0xcf, 0x1d, 0x9d, 0x14, 0xb7, 0x72, 0x52, 0x5c, 0x4a,
+ 0xf5, 0xbe, 0x85, 0x4f, 0xeb, 0x97, 0x91, 0x5e, 0xbe, 0x2b, 0xf1, 0xff, 0xa9, 0xc2, 0x93, 0x77,
+ 0x08, 0x98, 0x82, 0x89, 0x29, 0xdc, 0x8b, 0x67, 0xcd, 0xd7, 0x76, 0xab, 0x65, 0xc4, 0x4b, 0x9f,
+ 0x9c, 0xbc, 0xc4, 0x70, 0xc6, 0x88, 0xc9, 0xec, 0x25, 0xab, 0xa6, 0x2c, 0x74, 0x71, 0xa6, 0x98,
+ 0x15, 0x55, 0x73, 0x2b, 0xa9, 0x76, 0x97, 0x13, 0xb6, 0x6e, 0xe8, 0xd9, 0x10, 0x17, 0x90, 0x6a,
+ 0xea, 0xb2, 0xfb, 0x31, 0x71, 0xdb, 0x51, 0xb7, 0xd1, 0xc9, 0xc1, 0x8c, 0x6c, 0xf5, 0x22, 0x47,
+ 0xe4, 0x84, 0x65, 0x91, 0x13, 0xce, 0x0f, 0xe7, 0x84, 0x7b, 0xe0, 0x62, 0xfb, 0x60, 0x0b, 0x6c,
+ 0x73, 0x26, 0x4c, 0x24, 0x7e, 0x18, 0x39, 0xea, 0x0e, 0x7a, 0x0b, 0xb7, 0x22, 0xd2, 0xe9, 0x51,
+ 0xb0, 0x7c, 0x2f, 0xa0, 0xfc, 0x4e, 0x9e, 0x20, 0x0e, 0xcb, 0x31, 0xa7, 0x92, 0x93, 0x3b, 0x5e,
+ 0x40, 0xb9, 0x0e, 0x57, 0xd1, 0xa9, 0x14, 0xb2, 0x7d, 0x2f, 0x70, 0xc8, 0xbe, 0x28, 0xe9, 0x73,
+ 0xf2, 0xdd, 0x8f, 0x18, 0x99, 0xb7, 0xf9, 0xd9, 0xa0, 0x4a, 0x15, 0xbc, 0xac, 0x71, 0x92, 0x82,
+ 0x97, 0xa5, 0x4a, 0x8b, 0x3e, 0x9d, 0x60, 0x16, 0xe5, 0x61, 0xf7, 0x86, 0x2c, 0x7a, 0x1d, 0xa9,
+ 0x01, 0xec, 0x5b, 0x39, 0x73, 0xf1, 0xca, 0x36, 0x17, 0xc0, 0xfe, 0x83, 0xb4, 0xc5, 0xee, 0x73,
+ 0xe6, 0x9c, 0xd5, 0xaa, 0xe3, 0x5b, 0x2d, 0xbe, 0xd1, 0x4c, 0x1b, 0x6e, 0x0d, 0x9d, 0xce, 0xdd,
+ 0x28, 0xb4, 0x3d, 0xc9, 0xb4, 0xad, 0xa6, 0xf9, 0xc7, 0x51, 0x78, 0x4e, 0x77, 0x42, 0xe1, 0x39,
+ 0xaa, 0x54, 0xf8, 0xef, 0x15, 0xa6, 0x70, 0x13, 0x7c, 0xd2, 0x7f, 0x43, 0x0a, 0x1f, 0x0d, 0x3f,
+ 0x87, 0x44, 0xc0, 0xcf, 0x51, 0x13, 0xf8, 0xeb, 0xff, 0x53, 0x51, 0x65, 0x27, 0x72, 0xd5, 0xcf,
+ 0x14, 0x34, 0x9b, 0xfd, 0xfc, 0x72, 0xb9, 0xa8, 0x26, 0xe4, 0xbf, 0x74, 0x68, 0x37, 0xc6, 0xe1,
+ 0x92, 0xca, 0x5a, 0xfd, 0xe4, 0xef, 0xff, 0xfd, 0xd5, 0xc4, 0x65, 0x5d, 0x6f, 0x14, 0x7c, 0xec,
+ 0x12, 0x0d, 0x86, 0x2d, 0xde, 0xff, 0x58, 0x41, 0xd3, 0x83, 0x7e, 0xf2, 0x52, 0xc9, 0x3b, 0x92,
+ 0x43, 0x5b, 0x39, 0x8c, 0x43, 0xa2, 0xb8, 0xc6, 0x50, 0x2c, 0xe9, 0x8b, 0x45, 0x28, 0xe2, 0xe6,
+ 0xcb, 0xa2, 0xc4, 0x02, 0xda, 0x56, 0x7f, 0xa1, 0xa0, 0x99, 0xcc, 0x37, 0x8c, 0xe5, 0x92, 0x37,
+ 0xd2, 0x4c, 0xda, 0xf5, 0x31, 0x98, 0x24, 0x96, 0xb7, 0x19, 0x96, 0x65, 0x7d, 0xa9, 0x08, 0x4b,
+ 0xc8, 0x4f, 0x58, 0x6c, 0x50, 0x63, 0x68, 0x32, 0xdf, 0x2e, 0xca, 0xd0, 0xa4, 0x99, 0x4a, 0xd1,
+ 0x14, 0x7e, 0x27, 0x18, 0x89, 0x46, 0x18, 0x26, 0x85, 0x26, 0xf3, 0x3d, 0xa1, 0x0c, 0x4d, 0x9a,
+ 0xa9, 0x14, 0x4d, 0xe1, 0x38, 0x3c, 0x12, 0x8d, 0xc3, 0x4f, 0x58, 0x36, 0x7b, 0x3c, 0x76, 0xdf,
+ 0xec, 0xd8, 0x5c, 0xe6, 0xbe, 0x19, 0xae, 0x52, 0xf7, 0x2d, 0x9e, 0x38, 0x47, 0xba, 0xef, 0xbe,
+ 0x38, 0x22, 0x10, 0xfd, 0x41, 0x41, 0xa7, 0xd2, 0xdd, 0x1c, 0x47, 0xf5, 0xf6, 0xc8, 0x70, 0x49,
+ 0xf7, 0x7d, 0xda, 0xda, 0xd8, 0xac, 0x12, 0xdf, 0x2d, 0x86, 0x6f, 0x55, 0x5f, 0x19, 0x11, 0x5e,
+ 0x3d, 0x7e, 0x50, 0xa0, 0xfc, 0xa3, 0x82, 0xd4, 0x82, 0x01, 0xba, 0x0c, 0xe6, 0x30, 0x6b, 0x29,
+ 0xcc, 0x11, 0x13, 0xe3, 0x48, 0x98, 0x10, 0xda, 0xeb, 0xb7, 0x2c, 0x47, 0x1c, 0x14, 0x30, 0xff,
+ 0xa2, 0xa0, 0x7a, 0xe9, 0x37, 0xef, 0x46, 0x69, 0xe0, 0x17, 0x1f, 0xd0, 0xde, 0x7d, 0xc5, 0x03,
+ 0x12, 0xf8, 0xd7, 0x19, 0x70, 0x43, 0xbf, 0x51, 0x9c, 0x38, 0xa8, 0x95, 0xee, 0xf8, 0x93, 0x0c,
+ 0xae, 0xfe, 0x46, 0x41, 0x73, 0xf9, 0xf1, 0xf8, 0x6a, 0x59, 0x54, 0x66, 0xf9, 0x34, 0x63, 0x3c,
+ 0x3e, 0x89, 0xd0, 0x60, 0x08, 0x57, 0xf4, 0xab, 0x85, 0x01, 0xcc, 0x0e, 0x59, 0xe9, 0x0c, 0xf7,
+ 0x57, 0x05, 0x69, 0x23, 0x86, 0xe3, 0x32, 0xe3, 0x96, 0x1f, 0xd1, 0xde, 0x7b, 0xe5, 0x23, 0x12,
+ 0xfc, 0x7b, 0x0c, 0xfc, 0x6d, 0x7d, 0xad, 0x50, 0xbd, 0xec, 0xbc, 0xd5, 0xc2, 0x8e, 0x25, 0xe7,
+ 0x68, 0x0b, 0x12, 0xa0, 0x3f, 0x44, 0x33, 0x99, 0xc1, 0xa8, 0x2c, 0x19, 0xa5, 0x99, 0x4a, 0x93,
+ 0x51, 0xd1, 0xcc, 0xa2, 0x7e, 0xaa, 0x20, 0x6d, 0xc4, 0xc0, 0x52, 0xa6, 0xa9, 0xf2, 0x23, 0xa5,
+ 0x9a, 0x3a, 0x7c, 0xee, 0x50, 0x7f, 0xa6, 0xa0, 0xb3, 0x65, 0x43, 0x87, 0x51, 0x5a, 0x7e, 0x0a,
+ 0xf9, 0xb5, 0x77, 0x5e, 0x8d, 0x5f, 0x62, 0xf0, 0xd0, 0x5c, 0x7e, 0x6e, 0x28, 0xf5, 0xea, 0x2c,
+ 0x5f, 0xb9, 0x57, 0x17, 0x37, 0xb5, 0xf1, 0x53, 0xf9, 0x86, 0xf6, 0xea, 0x48, 0xdb, 0x1d, 0xfe,
+ 0x54, 0x49, 0x3b, 0x17, 0x3f, 0x95, 0x6f, 0xe5, 0xae, 0x96, 0x2a, 0x28, 0xc3, 0xa7, 0x19, 0xe3,
+ 0xf1, 0x25, 0x4f, 0x69, 0x93, 0x1f, 0xbf, 0x7c, 0xbc, 0xaa, 0x34, 0xe1, 0x8b, 0xe7, 0x0b, 0xca,
+ 0xd3, 0xe7, 0x0b, 0xca, 0xbf, 0x9f, 0x2f, 0x28, 0xbf, 0x7c, 0xb1, 0x70, 0xec, 0xe9, 0x8b, 0x85,
+ 0x63, 0xff, 0x78, 0xb1, 0x70, 0xec, 0x07, 0xef, 0xbb, 0x1e, 0x6d, 0xf7, 0x5a, 0x86, 0x4d, 0xfc,
+ 0xc6, 0x76, 0x72, 0xf5, 0x3d, 0xdc, 0x8a, 0x06, 0xf1, 0x71, 0xd3, 0x26, 0x21, 0xa4, 0x97, 0x6d,
+ 0xec, 0x05, 0x0d, 0x9f, 0x38, 0xbd, 0x0e, 0x44, 0x22, 0x78, 0xd8, 0x7f, 0x21, 0x5b, 0x53, 0xec,
+ 0x73, 0xd6, 0xed, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x2d, 0x3d, 0x67, 0x91, 0x1d, 0x00,
+ 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
diff --git a/chain/peggy/types/types.go b/chain/peggy/types/types.go
index c0d814ed..d0bc166f 100644
--- a/chain/peggy/types/types.go
+++ b/chain/peggy/types/types.go
@@ -64,6 +64,8 @@ func (b BridgeValidators) Sort() {
})
}
+var PowerCeiling = sdkmath.LegacyNewDecFromInt(sdkmath.NewIntFromUint64(uint64(math.MaxUint32)))
+
// PowerDiff returns the difference in power between two bridge validator sets
// note this is Gravity bridge power *not* Cosmos voting power. Cosmos voting
// power is based on the absolute number of tokens in the staking pool at any given
@@ -78,7 +80,7 @@ func (b BridgeValidators) Sort() {
// if the total on chain voting power increases by 1% due to inflation, we shouldn't have to generate a new validator
// set, after all the validators retained their relative percentages during inflation and normalized Gravity bridge power
// shows no difference.
-func (b BridgeValidators) PowerDiff(c BridgeValidators) float64 {
+func (b BridgeValidators) PowerDiff(c BridgeValidators) sdkmath.LegacyDec {
powers := map[string]int64{}
// loop over b and initialize the map with their powers
for _, bv := range b {
@@ -95,13 +97,13 @@ func (b BridgeValidators) PowerDiff(c BridgeValidators) float64 {
}
}
- var delta float64
- for _, v := range powers {
+ delta := sdkmath.LegacyZeroDec()
+ for _, power := range powers {
// NOTE: we care about the absolute value of the changes
- delta += math.Abs(float64(v))
+ delta = delta.Add(sdkmath.LegacyNewDec(power).Abs())
}
- return math.Abs(delta / float64(math.MaxUint32))
+ return delta.Quo(PowerCeiling) // return diff in percentages
}
// TotalPower returns the total power in the bridge validator set
diff --git a/chain/peggy/types/types.pb.go b/chain/peggy/types/types.pb.go
index f164779c..ce717b3d 100644
--- a/chain/peggy/types/types.pb.go
+++ b/chain/peggy/types/types.pb.go
@@ -6,6 +6,7 @@ package types
import (
cosmossdk_io_math "cosmossdk.io/math"
fmt "fmt"
+ _ "github.com/cosmos/cosmos-proto"
_ "github.com/cosmos/gogoproto/gogoproto"
proto "github.com/cosmos/gogoproto/proto"
io "io"
@@ -325,38 +326,40 @@ func init() {
func init() { proto.RegisterFile("injective/peggy/v1/types.proto", fileDescriptor_b641943ad411b503) }
var fileDescriptor_b641943ad411b503 = []byte{
- // 490 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0xcf, 0x6f, 0xd3, 0x30,
- 0x14, 0x6e, 0xf6, 0xa3, 0x68, 0xde, 0x60, 0xe0, 0x75, 0x28, 0x42, 0x22, 0x1d, 0xe5, 0x52, 0x0e,
- 0x24, 0x5d, 0xb9, 0x21, 0x71, 0x58, 0x46, 0x25, 0x26, 0x26, 0x90, 0xa2, 0x69, 0x07, 0x2e, 0x91,
- 0x93, 0x3c, 0x25, 0xa1, 0xb1, 0x5d, 0xd9, 0x6e, 0xa6, 0xfd, 0x01, 0xdc, 0xf9, 0xb3, 0x76, 0xdc,
- 0x11, 0x21, 0x34, 0xa1, 0xf6, 0x1f, 0x41, 0xb6, 0x93, 0xaa, 0x30, 0x6e, 0xf9, 0xbe, 0xe7, 0xef,
- 0x7d, 0x5f, 0x9e, 0x9f, 0x91, 0x57, 0xb2, 0xaf, 0x90, 0xaa, 0xb2, 0x86, 0x60, 0x06, 0x79, 0x7e,
- 0x1d, 0xd4, 0xc7, 0x81, 0xba, 0x9e, 0x81, 0xf4, 0x67, 0x82, 0x2b, 0x8e, 0xf1, 0xaa, 0xee, 0x9b,
- 0xba, 0x5f, 0x1f, 0x3f, 0xeb, 0xe5, 0x3c, 0xe7, 0xa6, 0x1c, 0xe8, 0x2f, 0x7b, 0x72, 0x10, 0xa1,
- 0xfd, 0x50, 0x94, 0x59, 0x0e, 0x97, 0xa4, 0x2a, 0x33, 0xa2, 0xb8, 0xc0, 0x3d, 0xb4, 0x3d, 0xe3,
- 0x57, 0x20, 0x5c, 0xe7, 0xc8, 0x19, 0x6e, 0x45, 0x16, 0xe0, 0x57, 0xe8, 0x31, 0xa8, 0x02, 0x04,
- 0xcc, 0x69, 0x4c, 0xb2, 0x4c, 0x80, 0x94, 0xee, 0xc6, 0x91, 0x33, 0xdc, 0x89, 0xf6, 0x5b, 0xfe,
- 0xc4, 0xd2, 0x83, 0x5f, 0x0e, 0xea, 0x5e, 0x92, 0x4a, 0x82, 0xd2, 0xbd, 0x18, 0x67, 0x29, 0xb4,
- 0xbd, 0x0c, 0xc0, 0xef, 0xd0, 0x03, 0x0a, 0x34, 0x01, 0xa1, 0x5b, 0x6c, 0x0e, 0x77, 0xc7, 0x2f,
- 0xfd, 0xfb, 0x81, 0xfd, 0x7f, 0x72, 0x45, 0xad, 0x06, 0x3f, 0x45, 0xdd, 0x02, 0xca, 0xbc, 0x50,
- 0xee, 0xa6, 0xe9, 0xda, 0x20, 0x1c, 0xa2, 0x87, 0x02, 0xae, 0x88, 0xc8, 0x62, 0x42, 0xf9, 0x9c,
- 0x29, 0x77, 0x4b, 0xe7, 0x0b, 0x9f, 0xdf, 0xdc, 0xf5, 0x3b, 0x3f, 0xef, 0xfa, 0x87, 0x29, 0x97,
- 0x94, 0x4b, 0x99, 0x4d, 0xfd, 0x92, 0x07, 0x94, 0xa8, 0xc2, 0x3f, 0x63, 0x2a, 0xda, 0xb3, 0x9a,
- 0x13, 0x23, 0xc1, 0x2f, 0x50, 0x83, 0x63, 0xc5, 0xa7, 0xc0, 0xdc, 0x6d, 0xf3, 0x8b, 0xbb, 0x96,
- 0xbb, 0xd0, 0xd4, 0xe0, 0x9b, 0x83, 0xfa, 0xe7, 0x44, 0xaa, 0xcf, 0x89, 0x04, 0x51, 0x43, 0x36,
- 0x69, 0x7e, 0x3f, 0xac, 0x78, 0x3a, 0xfd, 0x60, 0xa3, 0xf8, 0xe8, 0xc0, 0xba, 0xc5, 0x89, 0x66,
- 0xe3, 0x26, 0xaf, 0x9d, 0xc2, 0x13, 0x5b, 0x5a, 0x3f, 0x3f, 0x46, 0x87, 0xab, 0xe9, 0xfe, 0xa5,
- 0xd8, 0x30, 0x8a, 0x03, 0xb8, 0xef, 0x31, 0xa8, 0xd1, 0x23, 0x1d, 0xe3, 0xb4, 0x22, 0x25, 0x9d,
- 0xd4, 0xc0, 0x14, 0x1e, 0xa1, 0xde, 0xaa, 0x0b, 0x68, 0x26, 0x5e, 0x1f, 0x3e, 0x6e, 0x6b, 0xe6,
- 0xf0, 0x27, 0x73, 0x13, 0xeb, 0xbe, 0x56, 0xf1, 0x7f, 0x5f, 0x23, 0x69, 0x7c, 0xdf, 0xa2, 0xbd,
- 0x49, 0x74, 0x3a, 0x1e, 0x5d, 0xf0, 0xf7, 0xc0, 0x38, 0xd5, 0x77, 0x0c, 0x22, 0x1d, 0x8f, 0x8c,
- 0xcd, 0x4e, 0x64, 0x81, 0x66, 0x33, 0x5d, 0x6e, 0x96, 0xc4, 0x82, 0x10, 0x6e, 0x16, 0x9e, 0x73,
- 0xbb, 0xf0, 0x9c, 0xdf, 0x0b, 0xcf, 0xf9, 0xbe, 0xf4, 0x3a, 0xb7, 0x4b, 0xaf, 0xf3, 0x63, 0xe9,
- 0x75, 0xbe, 0x7c, 0xcc, 0x4b, 0x55, 0xcc, 0x13, 0x3f, 0xe5, 0x34, 0x38, 0x6b, 0x97, 0xe1, 0x9c,
- 0x24, 0x32, 0x58, 0xad, 0xc6, 0xeb, 0x94, 0x0b, 0x58, 0x87, 0x05, 0x29, 0x59, 0x40, 0x79, 0x36,
- 0xaf, 0x40, 0x36, 0x0f, 0xc1, 0xbc, 0x82, 0xa4, 0x6b, 0x96, 0xfb, 0xcd, 0x9f, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xb5, 0x74, 0x5d, 0x7b, 0x28, 0x03, 0x00, 0x00,
+ // 517 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0x41, 0x6f, 0xd3, 0x30,
+ 0x14, 0x6e, 0xba, 0xad, 0x68, 0xde, 0x60, 0x90, 0x75, 0xa8, 0x4c, 0x22, 0xdd, 0x8a, 0x90, 0xca,
+ 0x61, 0x49, 0x57, 0x6e, 0x93, 0x38, 0xac, 0xa3, 0x12, 0x13, 0x13, 0x48, 0x61, 0xda, 0x81, 0x4b,
+ 0xe4, 0x24, 0x4f, 0x89, 0x69, 0x6d, 0x57, 0xb6, 0x9b, 0x69, 0x67, 0xc4, 0x9d, 0x1f, 0xc3, 0x8f,
+ 0x98, 0x38, 0xed, 0x88, 0x38, 0x4c, 0xa8, 0xfd, 0x23, 0xc8, 0x76, 0x52, 0x15, 0xb6, 0x5b, 0xbe,
+ 0xef, 0x7b, 0xdf, 0x7b, 0xcf, 0xfe, 0x62, 0xe4, 0x11, 0xf6, 0x05, 0x12, 0x45, 0x0a, 0x08, 0x26,
+ 0x90, 0x65, 0x57, 0x41, 0x71, 0x18, 0xa8, 0xab, 0x09, 0x48, 0x7f, 0x22, 0xb8, 0xe2, 0xae, 0xbb,
+ 0xd0, 0x7d, 0xa3, 0xfb, 0xc5, 0xe1, 0xee, 0xb3, 0x84, 0x4b, 0xca, 0x65, 0x64, 0x2a, 0x02, 0x0b,
+ 0x6c, 0xf9, 0x6e, 0x33, 0xe3, 0x19, 0xb7, 0xbc, 0xfe, 0xb2, 0x6c, 0x27, 0x44, 0x5b, 0x03, 0x41,
+ 0xd2, 0x0c, 0x2e, 0xf0, 0x98, 0xa4, 0x58, 0x71, 0xe1, 0x36, 0xd1, 0xda, 0x84, 0x5f, 0x82, 0x68,
+ 0x39, 0x7b, 0x4e, 0x77, 0x35, 0xb4, 0xc0, 0x7d, 0x85, 0x1e, 0x83, 0xca, 0x41, 0xc0, 0x94, 0x46,
+ 0x38, 0x4d, 0x05, 0x48, 0xd9, 0xaa, 0xef, 0x39, 0xdd, 0xf5, 0x70, 0xab, 0xe2, 0x8f, 0x2d, 0xdd,
+ 0xf9, 0x5a, 0x47, 0x8d, 0x0b, 0x3c, 0x96, 0xa0, 0x74, 0x2f, 0xc6, 0x59, 0x02, 0x55, 0x2f, 0x03,
+ 0xdc, 0x37, 0xe8, 0x01, 0x05, 0x1a, 0x83, 0xd0, 0x2d, 0x56, 0xba, 0x1b, 0xfd, 0x17, 0xfe, 0xdd,
+ 0xb3, 0xf8, 0xff, 0xed, 0x15, 0x56, 0x1e, 0xf7, 0x29, 0x6a, 0xe4, 0x40, 0xb2, 0x5c, 0xb5, 0x56,
+ 0x4c, 0xd7, 0x12, 0xb9, 0x03, 0xf4, 0x50, 0xc0, 0x25, 0x16, 0x69, 0x84, 0x29, 0x9f, 0x32, 0xd5,
+ 0x5a, 0xd5, 0xfb, 0x0d, 0x9e, 0x5f, 0xdf, 0xb6, 0x6b, 0xbf, 0x6f, 0xdb, 0x3b, 0xf6, 0x3a, 0x64,
+ 0x3a, 0xf2, 0x09, 0x0f, 0x28, 0x56, 0xb9, 0x7f, 0xca, 0x54, 0xb8, 0x69, 0x3d, 0xc7, 0xc6, 0xe2,
+ 0xee, 0xa3, 0x12, 0x47, 0x8a, 0x8f, 0x80, 0xb5, 0xd6, 0xcc, 0x11, 0x37, 0x2c, 0x77, 0xae, 0xa9,
+ 0xa3, 0x97, 0x3f, 0x7f, 0x1c, 0xec, 0xdf, 0xb3, 0xef, 0xb0, 0xbc, 0x86, 0x4f, 0x24, 0x63, 0x90,
+ 0x76, 0xbe, 0x39, 0xa8, 0x7d, 0x86, 0xa5, 0xfa, 0x18, 0x4b, 0x10, 0x05, 0xa4, 0x95, 0x3c, 0x18,
+ 0xf3, 0x64, 0xf4, 0xce, 0x6e, 0xec, 0xa3, 0xed, 0x32, 0xb0, 0x58, 0xb3, 0x51, 0x79, 0x2c, 0x7b,
+ 0x59, 0x4f, 0xac, 0xb4, 0x5c, 0xdf, 0x47, 0x3b, 0x8b, 0x10, 0xfe, 0x71, 0xd4, 0x8d, 0x63, 0x1b,
+ 0xee, 0xce, 0xe8, 0x14, 0xe8, 0x91, 0x5e, 0xe3, 0x64, 0x8c, 0x09, 0x1d, 0x16, 0xc0, 0x94, 0xdb,
+ 0x43, 0xcd, 0x45, 0x17, 0xd0, 0x4c, 0xb4, 0x9c, 0x91, 0x5b, 0x69, 0xa6, 0xf8, 0x83, 0x09, 0x6c,
+ 0x79, 0xae, 0x75, 0xdc, 0x3f, 0xd7, 0x58, 0xca, 0xb9, 0x47, 0x68, 0x73, 0x18, 0x9e, 0xf4, 0x7b,
+ 0xe7, 0xfc, 0x2d, 0x30, 0x4e, 0xf5, 0xaf, 0x00, 0x22, 0xe9, 0xf7, 0xcc, 0x98, 0xf5, 0xd0, 0x02,
+ 0xcd, 0xa6, 0x5a, 0x2e, 0xff, 0x25, 0x0b, 0x06, 0x70, 0x3d, 0xf3, 0x9c, 0x9b, 0x99, 0xe7, 0xfc,
+ 0x99, 0x79, 0xce, 0xf7, 0xb9, 0x57, 0xbb, 0x99, 0x7b, 0xb5, 0x5f, 0x73, 0xaf, 0xf6, 0xf9, 0x7d,
+ 0x46, 0x54, 0x3e, 0x8d, 0xfd, 0x84, 0xd3, 0xe0, 0xb4, 0xca, 0xe0, 0x0c, 0xc7, 0x32, 0x58, 0x24,
+ 0x72, 0x90, 0x70, 0x01, 0xcb, 0x30, 0xc7, 0x84, 0x05, 0x94, 0xa7, 0xd3, 0x31, 0xc8, 0xf2, 0x29,
+ 0x99, 0x77, 0x14, 0x37, 0xcc, 0x1b, 0x78, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0x04, 0x73, 0x17,
+ 0xf0, 0x6a, 0x03, 0x00, 0x00,
}
func (m *BridgeValidator) Marshal() (dAtA []byte, err error) {
diff --git a/chain/permissions/types/params.pb.go b/chain/permissions/types/params.pb.go
index 977a105d..cfe26779 100644
--- a/chain/permissions/types/params.pb.go
+++ b/chain/permissions/types/params.pb.go
@@ -28,8 +28,10 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
// Params defines the parameters for the permissions module.
type Params struct {
- // Max amount of gas allowed for wasm hook queries
- WasmHookQueryMaxGas uint64 `protobuf:"varint,1,opt,name=wasm_hook_query_max_gas,json=wasmHookQueryMaxGas,proto3" json:"wasm_hook_query_max_gas,omitempty"`
+ // Max amount of gas allowed for contract hook queries
+ ContractHookMaxGas uint64 `protobuf:"varint,1,opt,name=contract_hook_max_gas,json=contractHookMaxGas,proto3" json:"contract_hook_max_gas,omitempty"`
+ // EVM addresses of contracts that will not bypass module-to-module transfers
+ EnforcedRestrictionsContracts []string `protobuf:"bytes,2,rep,name=enforced_restrictions_contracts,json=enforcedRestrictionsContracts,proto3" json:"enforced_restrictions_contracts,omitempty"`
}
func (m *Params) Reset() { *m = Params{} }
@@ -65,13 +67,20 @@ func (m *Params) XXX_DiscardUnknown() {
var xxx_messageInfo_Params proto.InternalMessageInfo
-func (m *Params) GetWasmHookQueryMaxGas() uint64 {
+func (m *Params) GetContractHookMaxGas() uint64 {
if m != nil {
- return m.WasmHookQueryMaxGas
+ return m.ContractHookMaxGas
}
return 0
}
+func (m *Params) GetEnforcedRestrictionsContracts() []string {
+ if m != nil {
+ return m.EnforcedRestrictionsContracts
+ }
+ return nil
+}
+
func init() {
proto.RegisterType((*Params)(nil), "injective.permissions.v1beta1.Params")
}
@@ -81,25 +90,27 @@ func init() {
}
var fileDescriptor_4a7ea0496163621f = []byte{
- // 287 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x90, 0x31, 0x4e, 0xc3, 0x30,
- 0x14, 0x86, 0x6b, 0x09, 0x75, 0xc8, 0x46, 0x40, 0x02, 0x8a, 0x30, 0x88, 0x09, 0x55, 0x22, 0x56,
- 0x05, 0x13, 0x23, 0x0b, 0x20, 0x81, 0x44, 0x19, 0x61, 0x88, 0x5e, 0x82, 0x95, 0x98, 0xe0, 0xbc,
- 0x90, 0xe7, 0x94, 0xf6, 0x0a, 0x4c, 0x1c, 0x81, 0x23, 0x70, 0x0c, 0xc6, 0x8e, 0x8c, 0x28, 0x19,
- 0xe0, 0x18, 0x28, 0x71, 0x88, 0xc2, 0x62, 0xf9, 0xf7, 0xf7, 0xdb, 0x7e, 0xff, 0xef, 0x8c, 0x55,
- 0xfa, 0x20, 0x43, 0xa3, 0x66, 0x52, 0x64, 0x32, 0xd7, 0x8a, 0x48, 0x61, 0x4a, 0x62, 0x36, 0x09,
- 0xa4, 0x81, 0x89, 0xc8, 0x20, 0x07, 0x4d, 0x5e, 0x96, 0xa3, 0x41, 0x77, 0xa7, 0xf3, 0x7a, 0x3d,
- 0xaf, 0xd7, 0x7a, 0x47, 0xeb, 0x11, 0x46, 0xd8, 0x38, 0x45, 0xbd, 0xb3, 0x97, 0x46, 0x5b, 0x21,
- 0x92, 0x46, 0xf2, 0x2d, 0xb0, 0xa2, 0x45, 0xdc, 0x2a, 0x11, 0x00, 0xc9, 0xee, 0xc7, 0x10, 0x55,
- 0xda, 0xf2, 0x55, 0xd0, 0x2a, 0x45, 0xd1, 0xac, 0xf6, 0x68, 0xff, 0xce, 0x19, 0x5e, 0x37, 0x23,
- 0xb9, 0xc7, 0xce, 0xc6, 0x33, 0x90, 0xf6, 0x63, 0xc4, 0xc4, 0x7f, 0x2a, 0x64, 0xbe, 0xf0, 0x35,
- 0xcc, 0xfd, 0x08, 0x68, 0x93, 0xed, 0xb1, 0x83, 0x95, 0x9b, 0xb5, 0x1a, 0x9f, 0x23, 0x26, 0xd3,
- 0x1a, 0x5e, 0xc1, 0xfc, 0x0c, 0xe8, 0x64, 0xfb, 0xe7, 0x6d, 0x97, 0xbd, 0x7c, 0xbf, 0x8f, 0xdd,
- 0x7e, 0x5a, 0xfb, 0xe4, 0x69, 0xf2, 0x51, 0x72, 0xb6, 0x2c, 0x39, 0xfb, 0x2a, 0x39, 0x7b, 0xad,
- 0xf8, 0x60, 0x59, 0xf1, 0xc1, 0x67, 0xc5, 0x07, 0xb7, 0xd3, 0x48, 0x99, 0xb8, 0x08, 0xbc, 0x10,
- 0xb5, 0xb8, 0xf8, 0x2b, 0xe1, 0x12, 0x02, 0x12, 0x5d, 0x25, 0x87, 0x21, 0xe6, 0xb2, 0x2f, 0x63,
- 0x50, 0xa9, 0xd0, 0x78, 0x5f, 0x3c, 0x4a, 0xfa, 0xd7, 0xad, 0x59, 0x64, 0x92, 0x82, 0x61, 0x13,
- 0xe8, 0xe8, 0x37, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x42, 0x3f, 0x45, 0x81, 0x01, 0x00, 0x00,
+ // 318 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x91, 0x4f, 0x4a, 0x03, 0x31,
+ 0x18, 0xc5, 0x1b, 0x95, 0x82, 0xb3, 0x73, 0x50, 0xa8, 0x95, 0xa6, 0xc5, 0x55, 0x29, 0x38, 0xa1,
+ 0xb8, 0x73, 0xa9, 0xe0, 0x1f, 0x50, 0xd0, 0x2e, 0xdd, 0x0c, 0x99, 0x34, 0x4e, 0x63, 0x4d, 0xbe,
+ 0x21, 0x5f, 0x5a, 0xea, 0x15, 0x5c, 0x79, 0x84, 0x1e, 0xc1, 0x63, 0xb8, 0xec, 0xd2, 0xa5, 0xb4,
+ 0x0b, 0x3d, 0x86, 0x74, 0xd2, 0x19, 0xc6, 0x4d, 0xc8, 0xcb, 0xfb, 0x85, 0xbc, 0xbc, 0x2f, 0xe8,
+ 0x29, 0xf3, 0x2c, 0x85, 0x53, 0x53, 0xc9, 0x32, 0x69, 0xb5, 0x42, 0x54, 0x60, 0x90, 0x4d, 0xfb,
+ 0x89, 0x74, 0xbc, 0xcf, 0x32, 0x6e, 0xb9, 0xc6, 0x28, 0xb3, 0xe0, 0x20, 0x6c, 0x95, 0x6c, 0x54,
+ 0x61, 0xa3, 0x0d, 0xdb, 0xdc, 0x4f, 0x21, 0x85, 0x9c, 0x64, 0xeb, 0x9d, 0xbf, 0xd4, 0x3c, 0x14,
+ 0x80, 0x1a, 0x30, 0xf6, 0x86, 0x17, 0x1b, 0x8b, 0x7a, 0xc5, 0x12, 0x8e, 0xb2, 0x7c, 0x51, 0x80,
+ 0x32, 0x1b, 0x7f, 0x8f, 0x6b, 0x65, 0x80, 0xe5, 0xab, 0x3f, 0x3a, 0x9e, 0x93, 0xa0, 0x7e, 0x9f,
+ 0x67, 0x0a, 0xfb, 0xc1, 0x81, 0x00, 0xe3, 0x2c, 0x17, 0x2e, 0x1e, 0x01, 0x8c, 0x63, 0xcd, 0x67,
+ 0x71, 0xca, 0xb1, 0x41, 0x3a, 0xa4, 0xbb, 0x33, 0x08, 0x0b, 0xf3, 0x1a, 0x60, 0x7c, 0xc7, 0x67,
+ 0x57, 0x1c, 0xc3, 0xcb, 0xa0, 0x2d, 0xcd, 0x13, 0x58, 0x21, 0x87, 0xb1, 0x95, 0xe8, 0xac, 0x12,
+ 0x6e, 0xfd, 0x85, 0xb8, 0x60, 0xb1, 0xb1, 0xd5, 0xd9, 0xee, 0xee, 0x0e, 0x5a, 0x05, 0x36, 0xa8,
+ 0x50, 0x17, 0x05, 0x74, 0x76, 0xf4, 0x3b, 0x6f, 0x93, 0xb7, 0x9f, 0x8f, 0x5e, 0x58, 0xed, 0xcc,
+ 0xe7, 0x3a, 0x1f, 0x7f, 0x2e, 0x29, 0x59, 0x2c, 0x29, 0xf9, 0x5e, 0x52, 0xf2, 0xbe, 0xa2, 0xb5,
+ 0xc5, 0x8a, 0xd6, 0xbe, 0x56, 0xb4, 0xf6, 0xf8, 0x90, 0x2a, 0x37, 0x9a, 0x24, 0x91, 0x00, 0xcd,
+ 0x6e, 0x8a, 0x2a, 0x6f, 0x79, 0x82, 0xac, 0x2c, 0xf6, 0x44, 0x80, 0x95, 0x55, 0x39, 0xe2, 0xca,
+ 0x30, 0x0d, 0xc3, 0xc9, 0x8b, 0xc4, 0x7f, 0x13, 0x72, 0xaf, 0x99, 0xc4, 0xa4, 0x9e, 0xd7, 0x72,
+ 0xfa, 0x17, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x58, 0x53, 0x63, 0xc7, 0x01, 0x00, 0x00,
}
func (this *Params) Equal(that interface{}) bool {
@@ -121,9 +132,17 @@ func (this *Params) Equal(that interface{}) bool {
} else if this == nil {
return false
}
- if this.WasmHookQueryMaxGas != that1.WasmHookQueryMaxGas {
+ if this.ContractHookMaxGas != that1.ContractHookMaxGas {
return false
}
+ if len(this.EnforcedRestrictionsContracts) != len(that1.EnforcedRestrictionsContracts) {
+ return false
+ }
+ for i := range this.EnforcedRestrictionsContracts {
+ if this.EnforcedRestrictionsContracts[i] != that1.EnforcedRestrictionsContracts[i] {
+ return false
+ }
+ }
return true
}
func (m *Params) Marshal() (dAtA []byte, err error) {
@@ -146,8 +165,17 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
- if m.WasmHookQueryMaxGas != 0 {
- i = encodeVarintParams(dAtA, i, uint64(m.WasmHookQueryMaxGas))
+ if len(m.EnforcedRestrictionsContracts) > 0 {
+ for iNdEx := len(m.EnforcedRestrictionsContracts) - 1; iNdEx >= 0; iNdEx-- {
+ i -= len(m.EnforcedRestrictionsContracts[iNdEx])
+ copy(dAtA[i:], m.EnforcedRestrictionsContracts[iNdEx])
+ i = encodeVarintParams(dAtA, i, uint64(len(m.EnforcedRestrictionsContracts[iNdEx])))
+ i--
+ dAtA[i] = 0x12
+ }
+ }
+ if m.ContractHookMaxGas != 0 {
+ i = encodeVarintParams(dAtA, i, uint64(m.ContractHookMaxGas))
i--
dAtA[i] = 0x8
}
@@ -171,8 +199,14 @@ func (m *Params) Size() (n int) {
}
var l int
_ = l
- if m.WasmHookQueryMaxGas != 0 {
- n += 1 + sovParams(uint64(m.WasmHookQueryMaxGas))
+ if m.ContractHookMaxGas != 0 {
+ n += 1 + sovParams(uint64(m.ContractHookMaxGas))
+ }
+ if len(m.EnforcedRestrictionsContracts) > 0 {
+ for _, s := range m.EnforcedRestrictionsContracts {
+ l = len(s)
+ n += 1 + l + sovParams(uint64(l))
+ }
}
return n
}
@@ -214,9 +248,9 @@ func (m *Params) Unmarshal(dAtA []byte) error {
switch fieldNum {
case 1:
if wireType != 0 {
- return fmt.Errorf("proto: wrong wireType = %d for field WasmHookQueryMaxGas", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field ContractHookMaxGas", wireType)
}
- m.WasmHookQueryMaxGas = 0
+ m.ContractHookMaxGas = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowParams
@@ -226,11 +260,43 @@ func (m *Params) Unmarshal(dAtA []byte) error {
}
b := dAtA[iNdEx]
iNdEx++
- m.WasmHookQueryMaxGas |= uint64(b&0x7F) << shift
+ m.ContractHookMaxGas |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EnforcedRestrictionsContracts", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowParams
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthParams
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthParams
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.EnforcedRestrictionsContracts = append(m.EnforcedRestrictionsContracts, string(dAtA[iNdEx:postIndex]))
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipParams(dAtA[iNdEx:])
diff --git a/chain/permissions/types/permissions.pb.go b/chain/permissions/types/permissions.pb.go
index 147a0aee..2b51290b 100644
--- a/chain/permissions/types/permissions.pb.go
+++ b/chain/permissions/types/permissions.pb.go
@@ -89,8 +89,8 @@ func (Action) EnumDescriptor() ([]byte, []int) {
type Namespace struct {
// The tokenfactory denom to which this namespace applies to
Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"`
- // The address of smart contract to apply code-based restrictions
- ContractHook string `protobuf:"bytes,2,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"`
+ // The address of cosmwasm contract to apply code-based restrictions
+ WasmHook string `protobuf:"bytes,2,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"`
// permissions for each role
RolePermissions []*Role `protobuf:"bytes,3,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"`
// roles for each actor
@@ -101,6 +101,8 @@ type Namespace struct {
PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"`
// capabilities for each manager for each policy
PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"`
+ // The address of the EVM contract to map code-based permissions
+ EvmHook string `protobuf:"bytes,8,opt,name=evm_hook,json=evmHook,proto3" json:"evm_hook,omitempty"`
}
func (m *Namespace) Reset() { *m = Namespace{} }
@@ -143,9 +145,9 @@ func (m *Namespace) GetDenom() string {
return ""
}
-func (m *Namespace) GetContractHook() string {
+func (m *Namespace) GetWasmHook() string {
if m != nil {
- return m.ContractHook
+ return m.WasmHook
}
return ""
}
@@ -185,6 +187,13 @@ func (m *Namespace) GetPolicyManagerCapabilities() []*PolicyManagerCapability {
return nil
}
+func (m *Namespace) GetEvmHook() string {
+ if m != nil {
+ return m.EvmHook
+ }
+ return ""
+}
+
// AddressRoles defines roles for an actor
type ActorRoles struct {
// The actor name
@@ -663,62 +672,63 @@ func init() {
}
var fileDescriptor_6d25f3ecf3806c6c = []byte{
- // 871 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4d, 0x6f, 0xdb, 0x46,
- 0x10, 0x15, 0x25, 0x45, 0x92, 0x47, 0xfe, 0x50, 0x17, 0x46, 0x4c, 0x27, 0x8d, 0x24, 0x28, 0x2d,
- 0xea, 0xa6, 0x8d, 0x84, 0xb8, 0x40, 0xd1, 0x4b, 0x80, 0xca, 0x12, 0xd3, 0xb0, 0xb5, 0x28, 0x75,
- 0x65, 0x07, 0x48, 0x2f, 0xc4, 0x8a, 0x5a, 0xd8, 0x5b, 0x8b, 0x5c, 0x82, 0x4b, 0x0b, 0xd0, 0x4d,
- 0x3d, 0xf7, 0xd2, 0x3f, 0xd1, 0x6b, 0x7f, 0x47, 0x8e, 0x3e, 0x16, 0x3d, 0x18, 0x85, 0x7d, 0xeb,
- 0xaf, 0x28, 0x76, 0xb9, 0x94, 0x18, 0xa0, 0x89, 0x83, 0x9e, 0x34, 0x33, 0x6f, 0xdf, 0xdb, 0x99,
- 0xc7, 0x11, 0x09, 0x1d, 0x16, 0xfc, 0x4c, 0xbd, 0x98, 0xcd, 0x69, 0x27, 0xa4, 0x91, 0xcf, 0x84,
- 0x60, 0x3c, 0x10, 0x9d, 0xf9, 0xb3, 0x09, 0x8d, 0xc9, 0xb3, 0x6c, 0xad, 0x1d, 0x46, 0x3c, 0xe6,
- 0xe8, 0xd1, 0x8a, 0xd0, 0xce, 0x82, 0x9a, 0xf0, 0xa0, 0xee, 0x71, 0xe1, 0x73, 0xd1, 0x99, 0x10,
- 0x41, 0x57, 0x2a, 0x1e, 0x67, 0x41, 0x42, 0x7f, 0xb0, 0x7b, 0xc6, 0xcf, 0xb8, 0x0a, 0x3b, 0x32,
- 0x4a, 0xaa, 0xad, 0x5f, 0x8a, 0xb0, 0xe1, 0x10, 0x9f, 0x8a, 0x90, 0x78, 0x14, 0xed, 0xc2, 0xbd,
- 0x29, 0x0d, 0xb8, 0x6f, 0x1a, 0x4d, 0xe3, 0x60, 0x03, 0x27, 0x09, 0x7a, 0x0c, 0x5b, 0x1e, 0x0f,
- 0xe2, 0x88, 0x78, 0xb1, 0x7b, 0xce, 0xf9, 0x85, 0x99, 0x57, 0xe8, 0x66, 0x5a, 0x7c, 0xc9, 0xf9,
- 0x05, 0x72, 0xa0, 0x16, 0xf1, 0x19, 0x75, 0x33, 0xad, 0x99, 0x85, 0x66, 0xe1, 0xa0, 0x7a, 0xf8,
- 0xb8, 0xfd, 0xde, 0xc6, 0xdb, 0x98, 0xcf, 0x28, 0xde, 0x91, 0xe4, 0xd1, 0x1a, 0x45, 0xdf, 0x43,
- 0x95, 0x78, 0x31, 0x8f, 0x5c, 0x09, 0x08, 0xb3, 0xa8, 0xa4, 0x3e, 0xbf, 0x43, 0xaa, 0x2b, 0x19,
- 0x52, 0x4f, 0x60, 0x20, 0xab, 0x18, 0x0d, 0x61, 0x4b, 0xf5, 0xe6, 0x93, 0x80, 0x9c, 0xd1, 0x48,
- 0x98, 0xf7, 0x94, 0xda, 0x93, 0x0f, 0x68, 0x6c, 0x90, 0x50, 0xf0, 0x66, 0xb4, 0x4e, 0x04, 0x3a,
- 0x81, 0x9d, 0x90, 0xcf, 0x98, 0xb7, 0x70, 0x45, 0x4c, 0xe2, 0x4b, 0x41, 0x85, 0x59, 0x52, 0x92,
- 0x5f, 0xdc, 0x21, 0x39, 0x52, 0xac, 0xb1, 0x22, 0xe1, 0xed, 0x30, 0x93, 0x51, 0x81, 0xe6, 0xf0,
- 0x50, 0xab, 0xea, 0x46, 0x5d, 0x8f, 0x84, 0x64, 0xc2, 0x66, 0x2c, 0x66, 0x54, 0x98, 0x65, 0x75,
- 0xc3, 0xd7, 0x1f, 0x74, 0x83, 0xee, 0xb4, 0x97, 0xf2, 0x17, 0x78, 0x3f, 0xfc, 0x4f, 0x80, 0x51,
- 0xd1, 0xfa, 0x06, 0x60, 0x6d, 0x9c, 0xdc, 0x01, 0x65, 0x5d, 0xba, 0x03, 0x2a, 0x91, 0xd5, 0xe4,
- 0x41, 0xe4, 0x9b, 0x05, 0x59, 0x55, 0x89, 0x64, 0x4a, 0x92, 0x62, 0x0b, 0x84, 0xa0, 0x28, 0xcb,
- 0x9a, 0xa8, 0x62, 0x74, 0x1f, 0x4a, 0x4a, 0x20, 0x25, 0xea, 0xac, 0xf5, 0x1c, 0xaa, 0x19, 0x7b,
- 0x91, 0x09, 0x65, 0x3d, 0xb3, 0x66, 0xa7, 0xe9, 0x3b, 0x2e, 0xfe, 0xd5, 0x80, 0xcd, 0xac, 0x97,
- 0xe8, 0xb9, 0xba, 0x87, 0xf1, 0x40, 0xf1, 0xb7, 0x0f, 0x3f, 0xbd, 0x7b, 0x53, 0x18, 0x0f, 0xb0,
- 0x26, 0xa1, 0x06, 0x54, 0x99, 0x70, 0xa7, 0x4c, 0x90, 0xc9, 0x8c, 0x4e, 0xd5, 0x82, 0x57, 0x30,
- 0x30, 0xd1, 0xd7, 0x15, 0xf4, 0x10, 0x36, 0x98, 0x70, 0x05, 0x25, 0x12, 0x2e, 0x28, 0xb8, 0xc2,
- 0xc4, 0x58, 0xe5, 0xad, 0x53, 0x28, 0xca, 0x61, 0xa4, 0x01, 0x01, 0xf1, 0x57, 0x06, 0xc8, 0x18,
- 0xed, 0x41, 0x59, 0xed, 0x1e, 0x4b, 0x54, 0xb7, 0x70, 0x49, 0xa6, 0xf6, 0x14, 0x35, 0xa1, 0xfa,
- 0xf6, 0x7f, 0x45, 0x82, 0xd9, 0x52, 0xeb, 0x0f, 0x03, 0xf6, 0xde, 0xf1, 0x38, 0xdf, 0x63, 0xd8,
- 0xda, 0x89, 0xfc, 0xff, 0x74, 0xc2, 0x23, 0x41, 0x6a, 0x85, 0x1e, 0x15, 0x3c, 0x12, 0x68, 0x2b,
- 0xd0, 0x3e, 0x54, 0xe4, 0x01, 0x69, 0x85, 0x59, 0x54, 0x68, 0xd9, 0x23, 0x81, 0x74, 0xa2, 0xf5,
- 0x09, 0x94, 0xa5, 0x0f, 0x76, 0x5f, 0xc8, 0x53, 0x7a, 0x6c, 0x61, 0x1a, 0xcd, 0xc2, 0xc1, 0x16,
- 0x2e, 0x27, 0x73, 0x8b, 0xd6, 0xef, 0x06, 0x6c, 0x77, 0xa7, 0xd3, 0x88, 0x0a, 0xf1, 0x8a, 0x5f,
- 0x7a, 0xe7, 0xc9, 0xe3, 0x27, 0x49, 0x25, 0x9d, 0x46, 0xa7, 0x68, 0x01, 0xe5, 0x79, 0x72, 0x48,
- 0x8d, 0x53, 0x3d, 0xdc, 0x6f, 0x27, 0xef, 0xb9, 0xb6, 0x7c, 0xcf, 0xad, 0x86, 0xe8, 0x71, 0x16,
- 0x1c, 0xf5, 0xdf, 0x5c, 0x37, 0x72, 0x7f, 0x5d, 0x37, 0x3e, 0x3b, 0x63, 0xf1, 0xf9, 0xe5, 0xa4,
- 0xed, 0x71, 0xbf, 0xa3, 0x5f, 0x8a, 0xc9, 0xcf, 0x53, 0x31, 0xbd, 0xe8, 0xc4, 0x8b, 0x90, 0x0a,
- 0x45, 0xf8, 0xe7, 0xba, 0xf1, 0x91, 0x16, 0xff, 0x92, 0xfb, 0x2c, 0xa6, 0x7e, 0x18, 0x2f, 0x70,
- 0x7a, 0xdf, 0x93, 0x2b, 0x03, 0x4a, 0x89, 0x39, 0x68, 0x07, 0xaa, 0xa7, 0xce, 0x78, 0x64, 0xf5,
- 0xec, 0x17, 0xb6, 0xd5, 0xaf, 0xe5, 0x50, 0x05, 0x8a, 0x03, 0xdb, 0x39, 0xa9, 0x19, 0xa8, 0x0a,
- 0x65, 0x6c, 0xf5, 0x2c, 0xfb, 0x95, 0x55, 0xcb, 0xcb, 0xf2, 0xd1, 0x29, 0x76, 0x6a, 0x45, 0x19,
- 0x8d, 0x2d, 0xa7, 0x5f, 0xab, 0xa0, 0x6d, 0x80, 0xf1, 0xe9, 0xc8, 0xc2, 0xae, 0x42, 0x6a, 0xe8,
- 0x11, 0xdc, 0x1f, 0x0c, 0xfb, 0xf6, 0x8b, 0xd7, 0xee, 0x68, 0x78, 0x6c, 0xf7, 0x5e, 0xbb, 0x83,
- 0xae, 0xd3, 0xfd, 0xce, 0xc2, 0xe3, 0xda, 0x72, 0xb9, 0xfc, 0x16, 0x7d, 0x0c, 0xbb, 0x1a, 0xee,
- 0x0d, 0x9d, 0x13, 0xdc, 0xed, 0x9d, 0xb8, 0x2f, 0x87, 0xc3, 0x1f, 0x24, 0xb8, 0x34, 0x50, 0x03,
- 0xf6, 0x34, 0x8a, 0x87, 0xc7, 0x96, 0x3b, 0xb2, 0xf0, 0xc0, 0x1e, 0x8f, 0xed, 0xa1, 0xa3, 0xd8,
- 0xcb, 0x7c, 0x86, 0xae, 0x0e, 0x64, 0xb5, 0x97, 0xc5, 0xa3, 0x8b, 0x37, 0x37, 0x75, 0xe3, 0xea,
- 0xa6, 0x6e, 0xfc, 0x7d, 0x53, 0x37, 0x7e, 0xbb, 0xad, 0xe7, 0xae, 0x6e, 0xeb, 0xb9, 0x3f, 0x6f,
- 0xeb, 0xb9, 0x9f, 0x7e, 0xcc, 0x78, 0x66, 0xa7, 0xfb, 0x72, 0x4c, 0x26, 0x62, 0xfd, 0x99, 0x7a,
- 0xea, 0xf1, 0x88, 0x66, 0xd3, 0x73, 0xc2, 0x82, 0x8e, 0xcf, 0xa7, 0x97, 0x33, 0x2a, 0xde, 0xfa,
- 0x86, 0x29, 0x8b, 0x27, 0x25, 0xf5, 0x85, 0xf9, 0xea, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x62,
- 0x3a, 0xbf, 0x78, 0xe9, 0x06, 0x00, 0x00,
+ // 881 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x41, 0x6f, 0x1b, 0x45,
+ 0x14, 0xf6, 0xda, 0xae, 0xd7, 0x79, 0x6e, 0x12, 0x33, 0x8a, 0x9a, 0x4d, 0x4b, 0x6d, 0xcb, 0x80,
+ 0x08, 0x85, 0xda, 0x6a, 0x90, 0x10, 0x97, 0x4a, 0x38, 0xf6, 0x96, 0x2e, 0xc4, 0x6b, 0x33, 0x4e,
+ 0x2a, 0x95, 0xcb, 0x6a, 0xbc, 0x1e, 0x25, 0x43, 0xbc, 0x3b, 0x2b, 0xcf, 0xc6, 0xc8, 0x37, 0xdf,
+ 0xb9, 0x70, 0xe0, 0x2f, 0x70, 0xe5, 0x77, 0xf4, 0x98, 0x23, 0xe2, 0x10, 0xa1, 0xe4, 0xc6, 0xaf,
+ 0x40, 0x33, 0x3b, 0x6b, 0x6f, 0x25, 0xda, 0x44, 0x9c, 0x3c, 0xef, 0x7d, 0xfb, 0x7d, 0xf3, 0xde,
+ 0xf7, 0x9e, 0x77, 0xa1, 0xcd, 0xc2, 0x9f, 0xa8, 0x1f, 0xb3, 0x39, 0x6d, 0x47, 0x74, 0x16, 0x30,
+ 0x21, 0x18, 0x0f, 0x45, 0x7b, 0xfe, 0x6c, 0x4c, 0x63, 0xf2, 0x2c, 0x9b, 0x6b, 0x45, 0x33, 0x1e,
+ 0x73, 0xf4, 0x78, 0x45, 0x68, 0x65, 0x41, 0x4d, 0x78, 0x58, 0xf3, 0xb9, 0x08, 0xb8, 0x68, 0x8f,
+ 0x89, 0xa0, 0x2b, 0x15, 0x9f, 0xb3, 0x30, 0xa1, 0x3f, 0xdc, 0x39, 0xe5, 0xa7, 0x5c, 0x1d, 0xdb,
+ 0xf2, 0x94, 0x64, 0x9b, 0xbf, 0x15, 0x61, 0xc3, 0x25, 0x01, 0x15, 0x11, 0xf1, 0x29, 0xda, 0x81,
+ 0x7b, 0x13, 0x1a, 0xf2, 0xc0, 0x32, 0x1a, 0xc6, 0xfe, 0x06, 0x4e, 0x02, 0xf4, 0x08, 0x36, 0x7e,
+ 0x26, 0x22, 0xf0, 0xce, 0x38, 0x3f, 0xb7, 0xf2, 0x0a, 0x29, 0xcb, 0xc4, 0x4b, 0xce, 0xcf, 0x91,
+ 0x0b, 0xd5, 0x19, 0x9f, 0x52, 0x2f, 0x53, 0x92, 0x55, 0x68, 0x14, 0xf6, 0x2b, 0x07, 0x1f, 0xb5,
+ 0xde, 0x5b, 0x70, 0x0b, 0xf3, 0x29, 0xc5, 0xdb, 0x92, 0x3c, 0x5c, 0xa3, 0xe8, 0x3b, 0xa8, 0x10,
+ 0x3f, 0xe6, 0x33, 0x4f, 0x02, 0xc2, 0x2a, 0x2a, 0xa9, 0xcf, 0x6e, 0x91, 0xea, 0x48, 0x86, 0xd4,
+ 0x13, 0x18, 0xc8, 0xea, 0x8c, 0x06, 0xb0, 0xa9, 0x6a, 0x0b, 0x48, 0x48, 0x4e, 0xe9, 0x4c, 0x58,
+ 0xf7, 0x94, 0xda, 0x93, 0x3b, 0x14, 0xd6, 0x4f, 0x28, 0xf8, 0xfe, 0x6c, 0x1d, 0x08, 0x74, 0x0c,
+ 0xdb, 0x11, 0x9f, 0x32, 0x7f, 0xe1, 0x89, 0x98, 0xc4, 0x17, 0x82, 0x0a, 0xab, 0xa4, 0x24, 0x3f,
+ 0xbf, 0x45, 0x72, 0xa8, 0x58, 0x23, 0x45, 0xc2, 0x5b, 0x51, 0x26, 0xa2, 0x02, 0xcd, 0xe1, 0x91,
+ 0x56, 0xd5, 0x85, 0x7a, 0x3e, 0x89, 0xc8, 0x98, 0x4d, 0x59, 0xcc, 0xa8, 0xb0, 0x4c, 0x75, 0xc3,
+ 0x57, 0x77, 0xba, 0x41, 0x57, 0xda, 0x4d, 0xf9, 0x0b, 0xbc, 0x17, 0xfd, 0x27, 0xc0, 0xa8, 0x40,
+ 0x7b, 0x50, 0xa6, 0x73, 0x3d, 0xd6, 0xb2, 0x1a, 0xab, 0x49, 0xe7, 0x6a, 0xaa, 0xcd, 0xaf, 0x01,
+ 0xd6, 0x9e, 0xca, 0xb5, 0x50, 0xae, 0xa6, 0x6b, 0xa1, 0x02, 0x99, 0x4d, 0x66, 0x94, 0x6f, 0x14,
+ 0x64, 0x56, 0x05, 0x92, 0x29, 0x49, 0x8a, 0x2d, 0x10, 0x82, 0xa2, 0x4c, 0x6b, 0xa2, 0x3a, 0xa3,
+ 0x07, 0x50, 0x52, 0x02, 0x29, 0x51, 0x47, 0xcd, 0xe7, 0x50, 0xc9, 0x38, 0x8f, 0x2c, 0x30, 0xb5,
+ 0x1d, 0x9a, 0x9d, 0x86, 0xef, 0xb8, 0xf8, 0x17, 0x03, 0xee, 0x67, 0x6d, 0x46, 0xcf, 0xd5, 0x3d,
+ 0x8c, 0x87, 0x8a, 0xbf, 0x75, 0xf0, 0xc9, 0xed, 0x4b, 0xc4, 0x78, 0x88, 0x35, 0x09, 0xd5, 0xa1,
+ 0xc2, 0x84, 0x37, 0x61, 0x82, 0x8c, 0xa7, 0x74, 0xa2, 0xf6, 0xbe, 0x8c, 0x81, 0x89, 0x9e, 0xce,
+ 0xc8, 0xbf, 0x05, 0x13, 0x9e, 0xa0, 0x44, 0xc2, 0x05, 0x05, 0x97, 0x99, 0x18, 0xa9, 0xb8, 0x79,
+ 0x02, 0x45, 0xd9, 0x8c, 0x34, 0x20, 0x24, 0xc1, 0xca, 0x00, 0x79, 0x46, 0xbb, 0x60, 0xaa, 0xb5,
+ 0x64, 0x89, 0xea, 0x26, 0x2e, 0xc9, 0xd0, 0x99, 0xa0, 0x06, 0x54, 0xde, 0xfe, 0x1b, 0x49, 0x30,
+ 0x9b, 0x6a, 0xfe, 0x61, 0xc0, 0xee, 0x3b, 0x26, 0xfd, 0x1e, 0xc3, 0xd6, 0x4e, 0xe4, 0xff, 0xa7,
+ 0x13, 0x3e, 0x09, 0x53, 0x2b, 0x74, 0xab, 0xe0, 0x93, 0x50, 0x5b, 0x21, 0x17, 0x49, 0x3e, 0x20,
+ 0xad, 0xb0, 0x8a, 0x0a, 0x35, 0x7d, 0x12, 0x4a, 0x27, 0x9a, 0x1f, 0x83, 0x29, 0x7d, 0x70, 0x7a,
+ 0x6a, 0xdd, 0x74, 0xdb, 0xc2, 0x32, 0x1a, 0x85, 0xfd, 0x4d, 0x6c, 0x26, 0x7d, 0x8b, 0xe6, 0xef,
+ 0x06, 0x6c, 0x75, 0x26, 0x93, 0x19, 0x15, 0xe2, 0x15, 0xbf, 0xf0, 0xcf, 0x92, 0xf1, 0x93, 0x24,
+ 0x93, 0x76, 0xa3, 0x43, 0xb4, 0x00, 0x73, 0x9e, 0x3c, 0xa4, 0xda, 0xa9, 0x1c, 0xec, 0xb5, 0x92,
+ 0x57, 0x5f, 0x4b, 0xbe, 0xfa, 0x56, 0x4d, 0x74, 0x39, 0x0b, 0x0f, 0x7b, 0x6f, 0xae, 0xea, 0xb9,
+ 0xbf, 0xae, 0xea, 0x9f, 0x9e, 0xb2, 0xf8, 0xec, 0x62, 0xdc, 0xf2, 0x79, 0xd0, 0xd6, 0xef, 0xc9,
+ 0xe4, 0xe7, 0xa9, 0x98, 0x9c, 0xb7, 0xe3, 0x45, 0x44, 0x85, 0x22, 0xfc, 0x73, 0x55, 0xff, 0x40,
+ 0x8b, 0x7f, 0xc1, 0x03, 0x16, 0xd3, 0x20, 0x8a, 0x17, 0x38, 0xbd, 0xef, 0xc9, 0xa5, 0x01, 0xa5,
+ 0xc4, 0x1c, 0xb4, 0x0d, 0x95, 0x13, 0x77, 0x34, 0xb4, 0xbb, 0xce, 0x0b, 0xc7, 0xee, 0x55, 0x73,
+ 0xa8, 0x0c, 0xc5, 0xbe, 0xe3, 0x1e, 0x57, 0x0d, 0x54, 0x01, 0x13, 0xdb, 0x5d, 0xdb, 0x79, 0x65,
+ 0x57, 0xf3, 0x32, 0x7d, 0x78, 0x82, 0xdd, 0x6a, 0x51, 0x9e, 0x46, 0xb6, 0xdb, 0xab, 0x96, 0xd1,
+ 0x16, 0xc0, 0xe8, 0x64, 0x68, 0x63, 0x4f, 0x21, 0x55, 0xf4, 0x18, 0x1e, 0xf4, 0x07, 0x3d, 0xe7,
+ 0xc5, 0x6b, 0x6f, 0x38, 0x38, 0x72, 0xba, 0xaf, 0xbd, 0x7e, 0xc7, 0xed, 0x7c, 0x6b, 0xe3, 0x51,
+ 0x75, 0xb9, 0x5c, 0x7e, 0x83, 0x3e, 0x84, 0x1d, 0x0d, 0x77, 0x07, 0xee, 0x31, 0xee, 0x74, 0x8f,
+ 0xbd, 0x97, 0x83, 0xc1, 0xf7, 0x12, 0x5c, 0x1a, 0xa8, 0x0e, 0xbb, 0x1a, 0xc5, 0x83, 0x23, 0xdb,
+ 0x1b, 0xda, 0xb8, 0xef, 0x8c, 0x46, 0xce, 0xc0, 0x55, 0xec, 0x65, 0x3e, 0x43, 0x57, 0x0f, 0x64,
+ 0xb5, 0x97, 0xc5, 0xc3, 0xf3, 0x37, 0xd7, 0x35, 0xe3, 0xf2, 0xba, 0x66, 0xfc, 0x7d, 0x5d, 0x33,
+ 0x7e, 0xbd, 0xa9, 0xe5, 0x2e, 0x6f, 0x6a, 0xb9, 0x3f, 0x6f, 0x6a, 0xb9, 0x1f, 0x7f, 0xc8, 0x78,
+ 0xe6, 0xa4, 0xfb, 0x72, 0x44, 0xc6, 0x62, 0xfd, 0xe5, 0x7a, 0xea, 0xf3, 0x19, 0xcd, 0x86, 0x67,
+ 0x84, 0x85, 0xed, 0x80, 0x4f, 0x2e, 0xa6, 0x54, 0xbc, 0xf5, 0x59, 0x53, 0x16, 0x8f, 0x4b, 0xea,
+ 0xa3, 0xf3, 0xe5, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xab, 0x07, 0xd1, 0x6c, 0xfc, 0x06, 0x00,
+ 0x00,
}
func (m *Namespace) Marshal() (dAtA []byte, err error) {
@@ -741,6 +751,13 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if len(m.EvmHook) > 0 {
+ i -= len(m.EvmHook)
+ copy(dAtA[i:], m.EvmHook)
+ i = encodeVarintPermissions(dAtA, i, uint64(len(m.EvmHook)))
+ i--
+ dAtA[i] = 0x42
+ }
if len(m.PolicyManagerCapabilities) > 0 {
for iNdEx := len(m.PolicyManagerCapabilities) - 1; iNdEx >= 0; iNdEx-- {
{
@@ -811,10 +828,10 @@ func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x1a
}
}
- if len(m.ContractHook) > 0 {
- i -= len(m.ContractHook)
- copy(dAtA[i:], m.ContractHook)
- i = encodeVarintPermissions(dAtA, i, uint64(len(m.ContractHook)))
+ if len(m.WasmHook) > 0 {
+ i -= len(m.WasmHook)
+ copy(dAtA[i:], m.WasmHook)
+ i = encodeVarintPermissions(dAtA, i, uint64(len(m.WasmHook)))
i--
dAtA[i] = 0x12
}
@@ -1190,7 +1207,7 @@ func (m *Namespace) Size() (n int) {
if l > 0 {
n += 1 + l + sovPermissions(uint64(l))
}
- l = len(m.ContractHook)
+ l = len(m.WasmHook)
if l > 0 {
n += 1 + l + sovPermissions(uint64(l))
}
@@ -1224,6 +1241,10 @@ func (m *Namespace) Size() (n int) {
n += 1 + l + sovPermissions(uint64(l))
}
}
+ l = len(m.EvmHook)
+ if l > 0 {
+ n += 1 + l + sovPermissions(uint64(l))
+ }
return n
}
@@ -1443,7 +1464,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
iNdEx = postIndex
case 2:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field ContractHook", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field WasmHook", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -1471,7 +1492,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- m.ContractHook = string(dAtA[iNdEx:postIndex])
+ m.WasmHook = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 3:
if wireType != 2 {
@@ -1643,6 +1664,38 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EvmHook", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowPermissions
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return ErrInvalidLengthPermissions
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return ErrInvalidLengthPermissions
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.EvmHook = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipPermissions(dAtA[iNdEx:])
diff --git a/chain/permissions/types/tx.pb.go b/chain/permissions/types/tx.pb.go
index bce548ce..4d1a42af 100644
--- a/chain/permissions/types/tx.pb.go
+++ b/chain/permissions/types/tx.pb.go
@@ -220,8 +220,8 @@ type MsgUpdateNamespace struct {
Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"`
// denom whose namespace updates are to be applied
Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"`
- // address of smart contract to apply code-based restrictions
- ContractHook *MsgUpdateNamespace_SetContractHook `protobuf:"bytes,3,opt,name=contract_hook,json=contractHook,proto3" json:"contract_hook,omitempty"`
+ // address of wasm smart contract to apply code-based restrictions
+ WasmHook *MsgUpdateNamespace_SetContractHook `protobuf:"bytes,3,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"`
// role permissions to update
RolePermissions []*Role `protobuf:"bytes,4,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"`
// role managers to update
@@ -230,6 +230,8 @@ type MsgUpdateNamespace struct {
PolicyStatuses []*PolicyStatus `protobuf:"bytes,6,rep,name=policy_statuses,json=policyStatuses,proto3" json:"policy_statuses,omitempty"`
// policy manager capabilities to update
PolicyManagerCapabilities []*PolicyManagerCapability `protobuf:"bytes,7,rep,name=policy_manager_capabilities,json=policyManagerCapabilities,proto3" json:"policy_manager_capabilities,omitempty"`
+ // address of EVM smart contract to apply code-based restrictions
+ EvmHook *MsgUpdateNamespace_SetContractHook `protobuf:"bytes,8,opt,name=evm_hook,json=evmHook,proto3" json:"evm_hook,omitempty"`
}
func (m *MsgUpdateNamespace) Reset() { *m = MsgUpdateNamespace{} }
@@ -279,9 +281,9 @@ func (m *MsgUpdateNamespace) GetDenom() string {
return ""
}
-func (m *MsgUpdateNamespace) GetContractHook() *MsgUpdateNamespace_SetContractHook {
+func (m *MsgUpdateNamespace) GetWasmHook() *MsgUpdateNamespace_SetContractHook {
if m != nil {
- return m.ContractHook
+ return m.WasmHook
}
return nil
}
@@ -314,6 +316,13 @@ func (m *MsgUpdateNamespace) GetPolicyManagerCapabilities() []*PolicyManagerCapa
return nil
}
+func (m *MsgUpdateNamespace) GetEvmHook() *MsgUpdateNamespace_SetContractHook {
+ if m != nil {
+ return m.EvmHook
+ }
+ return nil
+}
+
type MsgUpdateNamespace_SetContractHook struct {
NewValue string `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"`
}
@@ -611,63 +620,64 @@ func init() {
}
var fileDescriptor_ab9bfdcab1d9b6fa = []byte{
- // 889 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcf, 0x6f, 0x1b, 0x45,
- 0x14, 0xce, 0x36, 0x75, 0xc0, 0xd3, 0x04, 0xb7, 0x43, 0x50, 0x37, 0x0e, 0x75, 0x22, 0x23, 0x50,
- 0xea, 0xaa, 0xbb, 0x72, 0x90, 0x22, 0xe1, 0x5b, 0xe2, 0x0b, 0x48, 0x4d, 0x29, 0x9b, 0x92, 0x03,
- 0x42, 0xb2, 0xc6, 0xbb, 0x8f, 0xf5, 0x60, 0xef, 0xce, 0x6a, 0x66, 0xec, 0xe2, 0x53, 0x51, 0xb9,
- 0x21, 0x0e, 0xfc, 0x29, 0x39, 0x70, 0x85, 0x73, 0x8f, 0x15, 0x27, 0x4e, 0x15, 0x4a, 0x0e, 0xb9,
- 0xf3, 0x17, 0x20, 0xcf, 0x8c, 0xbd, 0x9b, 0x8d, 0xa9, 0xd7, 0xf4, 0x92, 0xf8, 0xfd, 0xfa, 0xde,
- 0xf7, 0xbd, 0x79, 0x3b, 0xbb, 0xe8, 0x13, 0x1a, 0x7f, 0x0f, 0xbe, 0xa4, 0x23, 0x70, 0x13, 0xe0,
- 0x11, 0x15, 0x82, 0xb2, 0x58, 0xb8, 0xa3, 0x66, 0x17, 0x24, 0x69, 0xba, 0xf2, 0x07, 0x27, 0xe1,
- 0x4c, 0x32, 0x7c, 0x6f, 0x96, 0xe7, 0x64, 0xf2, 0x1c, 0x93, 0x57, 0xdd, 0x0c, 0x59, 0xc8, 0x54,
- 0xa6, 0x3b, 0xf9, 0xa5, 0x8b, 0xaa, 0x35, 0x9f, 0x89, 0x88, 0x09, 0xb7, 0x4b, 0x04, 0xcc, 0x20,
- 0x7d, 0x46, 0xe3, 0x6b, 0xf1, 0xb8, 0x3f, 0x8b, 0x4f, 0x0c, 0x13, 0xbf, 0x6b, 0xe2, 0x91, 0x08,
- 0xdd, 0x51, 0x73, 0xf2, 0xcf, 0x04, 0xb6, 0x74, 0xa0, 0xa3, 0x3b, 0x6a, 0xc3, 0x84, 0x1a, 0x6f,
- 0x16, 0x94, 0x10, 0x4e, 0xa2, 0x69, 0xae, 0xbb, 0x20, 0x37, 0x23, 0x54, 0x17, 0xdc, 0x21, 0x11,
- 0x8d, 0x99, 0xab, 0xfe, 0x6a, 0x57, 0xfd, 0x0f, 0x0b, 0x55, 0x8e, 0x45, 0xf8, 0x75, 0x12, 0x10,
- 0x09, 0x4f, 0x14, 0x3a, 0x3e, 0x40, 0x65, 0x32, 0x94, 0x3d, 0xc6, 0xa9, 0x1c, 0xdb, 0xd6, 0xae,
- 0xb5, 0x57, 0x3e, 0xb2, 0xff, 0xfc, 0xed, 0xe1, 0xa6, 0x21, 0x7a, 0x18, 0x04, 0x1c, 0x84, 0x38,
- 0x91, 0x9c, 0xc6, 0xa1, 0x97, 0xa6, 0xe2, 0x36, 0x5a, 0xd3, 0xfc, 0xec, 0x1b, 0xbb, 0xd6, 0xde,
- 0xad, 0xfd, 0x8f, 0x9d, 0x37, 0x4e, 0xdd, 0xd1, 0xed, 0x8e, 0x6e, 0xbe, 0x7c, 0xbd, 0xb3, 0xe2,
- 0x99, 0xd2, 0x96, 0xf3, 0xe2, 0xf2, 0xac, 0x91, 0x82, 0xfe, 0x7c, 0x79, 0xd6, 0xd8, 0xce, 0xaa,
- 0xcb, 0x91, 0xad, 0x6f, 0xa1, 0xbb, 0x39, 0x97, 0x07, 0x22, 0x61, 0xb1, 0x80, 0xfa, 0xef, 0x16,
- 0xc2, 0xc7, 0x22, 0x6c, 0x73, 0x20, 0x12, 0x1e, 0x93, 0x08, 0x44, 0x42, 0x7c, 0xc0, 0xf7, 0xd1,
- 0x9a, 0x80, 0x38, 0x00, 0x6e, 0xb4, 0xdd, 0xf9, 0xe7, 0xf5, 0xce, 0xc6, 0x98, 0x44, 0x83, 0x56,
- 0x5d, 0xfb, 0xeb, 0x9e, 0x49, 0xc0, 0x8f, 0x50, 0x39, 0x9e, 0xd6, 0x19, 0x51, 0x7b, 0x0b, 0x44,
- 0xcd, 0xfa, 0x18, 0x5d, 0x29, 0x80, 0x96, 0x66, 0xa0, 0x27, 0xba, 0x6a, 0x39, 0x5d, 0x39, 0xa2,
- 0xf5, 0x0f, 0x51, 0xf5, 0xba, 0x77, 0xa6, 0xee, 0x97, 0x92, 0x52, 0xa7, 0x95, 0xff, 0x2f, 0x75,
- 0x9b, 0xa8, 0x14, 0x40, 0xcc, 0x22, 0xa5, 0xac, 0xec, 0x69, 0x03, 0x7f, 0x87, 0x36, 0x7c, 0x16,
- 0x4b, 0x4e, 0x7c, 0xd9, 0xe9, 0x31, 0xd6, 0xb7, 0x57, 0x95, 0xee, 0xc3, 0x05, 0xba, 0xaf, 0x53,
- 0x71, 0x4e, 0x40, 0xb6, 0x0d, 0xd2, 0xe7, 0x8c, 0xf5, 0xbd, 0x75, 0x3f, 0x63, 0xe1, 0xc7, 0xe8,
- 0x36, 0x67, 0x03, 0xe8, 0x64, 0xc0, 0xec, 0x9b, 0xbb, 0xab, 0x7b, 0xb7, 0xf6, 0x3f, 0x5a, 0xd0,
- 0xca, 0x63, 0x03, 0xf0, 0x2a, 0x93, 0xe2, 0x27, 0x69, 0x14, 0x7f, 0x89, 0x36, 0x14, 0x5e, 0x44,
- 0x62, 0x12, 0x02, 0x17, 0x76, 0x49, 0x81, 0x35, 0x0a, 0x80, 0x1d, 0xeb, 0x12, 0x6f, 0x9d, 0xa7,
- 0x86, 0xc0, 0x4f, 0x51, 0x25, 0x61, 0x03, 0xea, 0x8f, 0x3b, 0x42, 0x12, 0x39, 0x14, 0x20, 0xec,
- 0x35, 0x05, 0xf9, 0x60, 0xd1, 0x5e, 0xab, 0xaa, 0x13, 0x55, 0xe4, 0xbd, 0x97, 0x64, 0x2c, 0x10,
- 0x78, 0x84, 0xb6, 0x0d, 0xaa, 0x21, 0xda, 0xf1, 0x49, 0x42, 0xba, 0x74, 0x40, 0x25, 0x05, 0x61,
- 0xbf, 0xa3, 0x3a, 0x1c, 0x14, 0xea, 0x60, 0x98, 0xb6, 0xa7, 0xf5, 0x63, 0x6f, 0x2b, 0x99, 0x1b,
- 0xa0, 0x20, 0xaa, 0x0e, 0xaa, 0xe4, 0xce, 0x03, 0x6f, 0xa3, 0x72, 0x0c, 0xcf, 0x3a, 0x23, 0x32,
- 0x18, 0x82, 0xde, 0x16, 0xef, 0xdd, 0x18, 0x9e, 0x9d, 0x4e, 0xec, 0x85, 0xcb, 0x9a, 0x3b, 0x6c,
- 0xb3, 0xac, 0x39, 0x6f, 0xfa, 0x28, 0xde, 0x40, 0xef, 0xcf, 0xc2, 0x87, 0xbe, 0x64, 0x7c, 0x32,
- 0x77, 0xf1, 0xf6, 0xdb, 0x7a, 0x8a, 0xb0, 0x3a, 0x75, 0x32, 0xc1, 0x14, 0x1d, 0xc9, 0x3a, 0x24,
- 0x08, 0xec, 0x55, 0x35, 0xc5, 0xfb, 0x05, 0x8e, 0x5e, 0x71, 0x11, 0x7a, 0x9b, 0xf4, 0xef, 0xa7,
- 0xec, 0x30, 0x08, 0xf0, 0xb7, 0xe8, 0x83, 0x1c, 0x2e, 0x87, 0x11, 0xeb, 0x83, 0xd9, 0xaa, 0x25,
- 0xa0, 0x71, 0x16, 0xda, 0x53, 0x20, 0x2d, 0x37, 0x37, 0xdc, 0x9d, 0xb9, 0xc3, 0x4d, 0xe7, 0x54,
- 0xbf, 0x87, 0xb6, 0xe7, 0xb8, 0x67, 0xe3, 0x7d, 0xae, 0x2e, 0xf1, 0xf6, 0x80, 0xd0, 0xe8, 0x94,
- 0x0d, 0xfd, 0x1e, 0xf0, 0xb7, 0x9e, 0x6c, 0xeb, 0x41, 0x8e, 0x63, 0xfe, 0x16, 0xce, 0x76, 0x33,
- 0xb7, 0x70, 0xd6, 0x35, 0xe5, 0xb6, 0xff, 0x53, 0x09, 0xad, 0x1e, 0x8b, 0x10, 0x8f, 0xd0, 0xfa,
- 0x95, 0xb7, 0x8c, 0x53, 0xf4, 0x42, 0xd1, 0xf9, 0xd5, 0x83, 0xe5, 0xf2, 0xa7, 0xfd, 0xf1, 0x73,
- 0x54, 0xc9, 0xbf, 0x01, 0x9a, 0x8b, 0xa1, 0x72, 0x25, 0xd5, 0xcf, 0x96, 0x2e, 0xc9, 0x12, 0xc8,
- 0x5f, 0xd2, 0xcd, 0xa5, 0x2f, 0xd3, 0x22, 0x04, 0xfe, 0xe3, 0xe1, 0xc3, 0x2f, 0x2c, 0x74, 0xfb,
- 0xda, 0x93, 0xb7, 0x5f, 0x14, 0x2f, 0xad, 0xa9, 0xb6, 0x96, 0xaf, 0x99, 0x91, 0x18, 0xa1, 0xf5,
- 0x2b, 0xfb, 0x59, 0xe0, 0xf8, 0xb3, 0xf9, 0x45, 0x8e, 0x7f, 0xde, 0xfa, 0x55, 0x4b, 0x3f, 0x5e,
- 0x9e, 0x35, 0xac, 0xa3, 0xfe, 0xcb, 0xf3, 0x9a, 0xf5, 0xea, 0xbc, 0x66, 0xfd, 0x7d, 0x5e, 0xb3,
- 0x7e, 0xbd, 0xa8, 0xad, 0xbc, 0xba, 0xa8, 0xad, 0xfc, 0x75, 0x51, 0x5b, 0xf9, 0xe6, 0xab, 0x90,
- 0xca, 0xde, 0xb0, 0xeb, 0xf8, 0x2c, 0x72, 0xbf, 0x98, 0xb6, 0x78, 0x44, 0xba, 0x22, 0xfd, 0xbc,
- 0x7a, 0xe8, 0x33, 0x0e, 0x59, 0xb3, 0x47, 0x68, 0xec, 0x46, 0x2c, 0x18, 0x0e, 0x40, 0x5c, 0xf9,
- 0xf6, 0x92, 0xe3, 0x04, 0x44, 0x77, 0x4d, 0x7d, 0x5b, 0x7d, 0xfa, 0x6f, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0x89, 0x70, 0x57, 0xeb, 0x9e, 0x0a, 0x00, 0x00,
+ // 905 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x3f, 0x6f, 0xdb, 0x46,
+ 0x14, 0x37, 0xe3, 0xc8, 0xb1, 0x2e, 0x4e, 0x95, 0x5c, 0x5d, 0x84, 0x96, 0x1b, 0xd9, 0x50, 0xd1,
+ 0xc2, 0x51, 0x10, 0x12, 0x72, 0x01, 0x03, 0xd5, 0x66, 0x6b, 0x69, 0x81, 0x38, 0x4d, 0xe9, 0xd4,
+ 0x43, 0x11, 0x54, 0x38, 0x91, 0x0f, 0x14, 0x2b, 0x91, 0x47, 0xdc, 0x9d, 0xe8, 0x6a, 0x4a, 0x91,
+ 0x6e, 0x9d, 0xfa, 0x51, 0x3c, 0x74, 0x6d, 0xe7, 0x8c, 0x41, 0xa7, 0x4e, 0x41, 0x61, 0x0f, 0xde,
+ 0xfb, 0x09, 0x0a, 0xde, 0x9d, 0x44, 0x9a, 0x56, 0x23, 0xa9, 0xce, 0x22, 0xf1, 0xfd, 0xfb, 0xbd,
+ 0xf7, 0xbb, 0xf7, 0x1e, 0x79, 0xe8, 0xb3, 0x20, 0xfa, 0x01, 0x5c, 0x11, 0x24, 0x60, 0xc7, 0xc0,
+ 0xc2, 0x80, 0xf3, 0x80, 0x46, 0xdc, 0x4e, 0x9a, 0x5d, 0x10, 0xa4, 0x69, 0x8b, 0x1f, 0xad, 0x98,
+ 0x51, 0x41, 0xf1, 0x83, 0x89, 0x9f, 0x95, 0xf3, 0xb3, 0xb4, 0x5f, 0x75, 0xdd, 0xa7, 0x3e, 0x95,
+ 0x9e, 0x76, 0xfa, 0xa4, 0x82, 0xaa, 0x35, 0x97, 0xf2, 0x90, 0x72, 0xbb, 0x4b, 0x38, 0x4c, 0x20,
+ 0x5d, 0x1a, 0x44, 0x57, 0xec, 0x51, 0x7f, 0x62, 0x4f, 0x05, 0x6d, 0xbf, 0xaf, 0xed, 0x21, 0xf7,
+ 0xed, 0xa4, 0x99, 0xfe, 0x69, 0xc3, 0x86, 0x32, 0x74, 0x54, 0x46, 0x25, 0x68, 0x53, 0xe3, 0xdd,
+ 0x84, 0x62, 0xc2, 0x48, 0x38, 0xf6, 0xb5, 0x67, 0xf8, 0xe6, 0x88, 0xaa, 0x80, 0x7b, 0x24, 0x0c,
+ 0x22, 0x6a, 0xcb, 0x5f, 0xa5, 0xaa, 0xff, 0x61, 0xa0, 0xca, 0x21, 0xf7, 0xbf, 0x8d, 0x3d, 0x22,
+ 0xe0, 0x99, 0x44, 0xc7, 0x7b, 0xa8, 0x4c, 0x86, 0xa2, 0x47, 0x59, 0x20, 0x46, 0xa6, 0xb1, 0x6d,
+ 0xec, 0x94, 0x0f, 0xcc, 0x3f, 0x7f, 0x7b, 0xbc, 0xae, 0x0b, 0xdd, 0xf7, 0x3c, 0x06, 0x9c, 0x1f,
+ 0x09, 0x16, 0x44, 0xbe, 0x93, 0xb9, 0xe2, 0x36, 0x5a, 0x51, 0xf5, 0x99, 0x37, 0xb6, 0x8d, 0x9d,
+ 0xdb, 0xbb, 0x9f, 0x5a, 0xef, 0x3c, 0x75, 0x4b, 0xa5, 0x3b, 0xb8, 0xf9, 0xfa, 0xed, 0xd6, 0x92,
+ 0xa3, 0x43, 0x5b, 0xd6, 0xab, 0x8b, 0xd3, 0x46, 0x06, 0xfa, 0xcb, 0xc5, 0x69, 0x63, 0x33, 0xcf,
+ 0xae, 0x50, 0x6c, 0x7d, 0x03, 0xdd, 0x2f, 0xa8, 0x1c, 0xe0, 0x31, 0x8d, 0x38, 0xd4, 0x7f, 0x37,
+ 0x10, 0x3e, 0xe4, 0x7e, 0x9b, 0x01, 0x11, 0xf0, 0x94, 0x84, 0xc0, 0x63, 0xe2, 0x02, 0x7e, 0x88,
+ 0x56, 0x38, 0x44, 0x1e, 0x30, 0xcd, 0xed, 0xde, 0x3f, 0x6f, 0xb7, 0xee, 0x8c, 0x48, 0x38, 0x68,
+ 0xd5, 0x95, 0xbe, 0xee, 0x68, 0x07, 0xfc, 0x04, 0x95, 0xa3, 0x71, 0x9c, 0x26, 0xb5, 0x33, 0x83,
+ 0xd4, 0x24, 0x8f, 0xe6, 0x95, 0x01, 0x28, 0x6a, 0x1a, 0x3a, 0xe5, 0x55, 0x2b, 0xf0, 0x2a, 0x14,
+ 0x5a, 0xff, 0x18, 0x55, 0xaf, 0x6a, 0x27, 0xec, 0xce, 0x4a, 0x92, 0x9d, 0x62, 0xfe, 0xbf, 0xd8,
+ 0xad, 0xa3, 0x92, 0x07, 0x11, 0x0d, 0x25, 0xb3, 0xb2, 0xa3, 0x04, 0xfc, 0x3d, 0x2a, 0x9f, 0x10,
+ 0x1e, 0x76, 0x7a, 0x94, 0xf6, 0xcd, 0x65, 0xc9, 0x79, 0x7f, 0x06, 0xe7, 0xab, 0x65, 0x58, 0x47,
+ 0x20, 0xda, 0x34, 0x12, 0x8c, 0xb8, 0xe2, 0x4b, 0x4a, 0xfb, 0xce, 0x6a, 0x8a, 0x99, 0x3e, 0xe1,
+ 0xa7, 0xe8, 0x2e, 0xa3, 0x03, 0xe8, 0xe4, 0x80, 0xcc, 0x9b, 0xdb, 0xcb, 0x3b, 0xb7, 0x77, 0x3f,
+ 0x99, 0x91, 0xc6, 0xa1, 0x03, 0x70, 0x2a, 0x69, 0xf0, 0xb3, 0xcc, 0x8a, 0xbf, 0x46, 0x77, 0x24,
+ 0x5e, 0x48, 0x22, 0xe2, 0x03, 0xe3, 0x66, 0x49, 0x82, 0x35, 0xe6, 0x00, 0x3b, 0x54, 0x21, 0xce,
+ 0x1a, 0xcb, 0x04, 0x8e, 0x9f, 0xa3, 0x4a, 0x4c, 0x07, 0x81, 0x3b, 0xea, 0x70, 0x41, 0xc4, 0x90,
+ 0x03, 0x37, 0x57, 0x24, 0xe4, 0xa3, 0x59, 0xf3, 0x2c, 0xa3, 0x8e, 0x64, 0x90, 0xf3, 0x41, 0x9c,
+ 0x93, 0x80, 0xe3, 0x04, 0x6d, 0x6a, 0x54, 0x5d, 0x68, 0xc7, 0x25, 0x31, 0xe9, 0x06, 0x83, 0x40,
+ 0x04, 0xc0, 0xcd, 0x5b, 0x32, 0xc3, 0xde, 0x5c, 0x19, 0x74, 0xa5, 0xed, 0x71, 0xfc, 0xc8, 0xd9,
+ 0x88, 0xa7, 0x1a, 0x02, 0xe0, 0xf8, 0x05, 0x5a, 0x85, 0x44, 0x77, 0x73, 0xf5, 0x7d, 0x75, 0xf3,
+ 0x16, 0x24, 0xb2, 0x99, 0x55, 0x0b, 0x55, 0x0a, 0x36, 0xbc, 0x89, 0xca, 0x11, 0x9c, 0x74, 0x12,
+ 0x32, 0x18, 0x82, 0x9a, 0x41, 0x67, 0x35, 0x82, 0x93, 0xe3, 0x54, 0x9e, 0xb9, 0x02, 0x85, 0xc4,
+ 0x7a, 0x05, 0x0a, 0xda, 0x6c, 0xc1, 0x6f, 0xa0, 0x0f, 0x27, 0xe6, 0x7d, 0x57, 0x50, 0x96, 0x76,
+ 0x95, 0x5f, 0x7f, 0x07, 0x8e, 0x11, 0x96, 0x33, 0x45, 0x52, 0x4c, 0xde, 0x11, 0xb4, 0x43, 0x3c,
+ 0xcf, 0x5c, 0x96, 0x3d, 0x7a, 0x38, 0xc7, 0x60, 0xc9, 0x5a, 0xb8, 0x9a, 0x55, 0xf5, 0xfc, 0x9c,
+ 0xee, 0x7b, 0x1e, 0x7e, 0x81, 0x3e, 0x2a, 0xe0, 0x32, 0x48, 0x68, 0x1f, 0xf4, 0xcc, 0x2e, 0x00,
+ 0x8d, 0xf3, 0xd0, 0x8e, 0x04, 0x69, 0xd9, 0x85, 0xc3, 0xdd, 0x9a, 0x7a, 0xb8, 0xd9, 0x39, 0xd5,
+ 0x1f, 0xa0, 0xcd, 0x29, 0xea, 0xc9, 0xf1, 0xbe, 0x94, 0x9f, 0x86, 0xf6, 0x80, 0x04, 0xe1, 0x31,
+ 0x1d, 0xba, 0x3d, 0x60, 0xd7, 0x3e, 0xd9, 0xd6, 0xa3, 0x42, 0x8d, 0xc5, 0x77, 0x7b, 0x3e, 0x9b,
+ 0x7e, 0xb7, 0xe7, 0x55, 0xe3, 0xda, 0x76, 0x7f, 0x2e, 0xa1, 0xe5, 0x43, 0xee, 0xe3, 0x04, 0xad,
+ 0x5d, 0xfa, 0x76, 0x59, 0xf3, 0x0e, 0xb7, 0xf2, 0xaf, 0xee, 0x2d, 0xe6, 0x3f, 0xce, 0x8f, 0x5f,
+ 0xa2, 0x4a, 0xf1, 0xbb, 0xd2, 0x9c, 0x0d, 0x55, 0x08, 0xa9, 0x7e, 0xb1, 0x70, 0x48, 0xbe, 0x80,
+ 0xe2, 0xab, 0xbf, 0xb9, 0xf0, 0x62, 0xcf, 0x53, 0xc0, 0x7f, 0x2c, 0x1f, 0x7e, 0x65, 0xa0, 0xbb,
+ 0x57, 0x36, 0x6f, 0x77, 0x5e, 0xbc, 0x2c, 0xa6, 0xda, 0x5a, 0x3c, 0x66, 0x52, 0x44, 0x82, 0xd6,
+ 0x2e, 0xcd, 0xe7, 0x1c, 0xed, 0xcf, 0xfb, 0xcf, 0xd3, 0xfe, 0x69, 0xe3, 0x57, 0x2d, 0xfd, 0x74,
+ 0x71, 0xda, 0x30, 0x0e, 0xfa, 0xaf, 0xcf, 0x6a, 0xc6, 0x9b, 0xb3, 0x9a, 0xf1, 0xf7, 0x59, 0xcd,
+ 0xf8, 0xf5, 0xbc, 0xb6, 0xf4, 0xe6, 0xbc, 0xb6, 0xf4, 0xd7, 0x79, 0x6d, 0xe9, 0xbb, 0x6f, 0xfc,
+ 0x40, 0xf4, 0x86, 0x5d, 0xcb, 0xa5, 0xa1, 0xfd, 0xd5, 0x38, 0xc5, 0x13, 0xd2, 0xe5, 0xd9, 0xa5,
+ 0xed, 0xb1, 0x4b, 0x19, 0xe4, 0xc5, 0x1e, 0x09, 0x22, 0x3b, 0xa4, 0xde, 0x70, 0x00, 0xfc, 0xd2,
+ 0x8d, 0x4e, 0x8c, 0x62, 0xe0, 0xdd, 0x15, 0x79, 0x63, 0xfb, 0xfc, 0xdf, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x59, 0x0f, 0x9c, 0xb6, 0xf4, 0x0a, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1040,6 +1050,18 @@ func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
+ if m.EvmHook != nil {
+ {
+ size, err := m.EvmHook.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTx(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x42
+ }
if len(m.PolicyManagerCapabilities) > 0 {
for iNdEx := len(m.PolicyManagerCapabilities) - 1; iNdEx >= 0; iNdEx-- {
{
@@ -1096,9 +1118,9 @@ func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0x22
}
}
- if m.ContractHook != nil {
+ if m.WasmHook != nil {
{
- size, err := m.ContractHook.MarshalToSizedBuffer(dAtA[:i])
+ size, err := m.WasmHook.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
@@ -1399,8 +1421,8 @@ func (m *MsgUpdateNamespace) Size() (n int) {
if l > 0 {
n += 1 + l + sovTx(uint64(l))
}
- if m.ContractHook != nil {
- l = m.ContractHook.Size()
+ if m.WasmHook != nil {
+ l = m.WasmHook.Size()
n += 1 + l + sovTx(uint64(l))
}
if len(m.RolePermissions) > 0 {
@@ -1427,6 +1449,10 @@ func (m *MsgUpdateNamespace) Size() (n int) {
n += 1 + l + sovTx(uint64(l))
}
}
+ if m.EvmHook != nil {
+ l = m.EvmHook.Size()
+ n += 1 + l + sovTx(uint64(l))
+ }
return n
}
@@ -1947,7 +1973,7 @@ func (m *MsgUpdateNamespace) Unmarshal(dAtA []byte) error {
iNdEx = postIndex
case 3:
if wireType != 2 {
- return fmt.Errorf("proto: wrong wireType = %d for field ContractHook", wireType)
+ return fmt.Errorf("proto: wrong wireType = %d for field WasmHook", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
@@ -1974,10 +2000,10 @@ func (m *MsgUpdateNamespace) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
- if m.ContractHook == nil {
- m.ContractHook = &MsgUpdateNamespace_SetContractHook{}
+ if m.WasmHook == nil {
+ m.WasmHook = &MsgUpdateNamespace_SetContractHook{}
}
- if err := m.ContractHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ if err := m.WasmHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
@@ -2117,6 +2143,42 @@ func (m *MsgUpdateNamespace) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 8:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field EvmHook", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowTx
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthTx
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthTx
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if m.EvmHook == nil {
+ m.EvmHook = &MsgUpdateNamespace_SetContractHook{}
+ }
+ if err := m.EvmHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTx(dAtA[iNdEx:])
diff --git a/client/chain/chain.go b/client/chain/chain.go
index 26d5d8cf..6e60fc04 100644
--- a/client/chain/chain.go
+++ b/client/chain/chain.go
@@ -71,6 +71,7 @@ var (
ErrReadOnly = errors.New("client is in read-only mode")
)
+// Deprecated: ChainClient is deprecated. Use ChainClientV2 instead.
type ChainClient interface {
CanSignTransactions() bool
FromAddress() sdk.AccAddress
@@ -333,6 +334,7 @@ type ChainClient interface {
var _ ChainClient = &chainClient{}
+// Deprecated: chainClient is deprecated. Use ChainClientV2 instead.
type chainClient struct {
ctx sdkclient.Context
network common.Network
@@ -380,6 +382,7 @@ type chainClient struct {
canSign bool
}
+// Deprecated: NewChainClient is deprecated. Use NewChainClientV2 instead.
func NewChainClient(
ctx sdkclient.Context,
network common.Network,
diff --git a/client/exchange/exchange.go b/client/exchange/exchange.go
index 9c4e17d8..cd34a6a8 100644
--- a/client/exchange/exchange.go
+++ b/client/exchange/exchange.go
@@ -49,7 +49,7 @@ type ExchangeClient interface {
GetDerivativeFundingRates(ctx context.Context, req *derivativeExchangePB.FundingRatesRequest) (*derivativeExchangePB.FundingRatesResponse, error)
GetPrice(ctx context.Context, baseSymbol string, quoteSymbol string, oracleType string, oracleScaleFactor uint32) (*oraclePB.PriceResponse, error)
FetchPriceV2(ctx context.Context, filters []*oraclePB.PricePayloadV2) (*oraclePB.PriceV2Response, error)
- GetOracleList(ctx context.Context) (*oraclePB.OracleListResponse, error)
+ GetOracleList(ctx context.Context, symbol, oracleType, token string, perPage int32) (*oraclePB.OracleListResponse, error)
StreamPrices(ctx context.Context, baseSymbol string, quoteSymbol string, oracleType string) (oraclePB.InjectiveOracleRPC_StreamPricesClient, error)
GetAuction(ctx context.Context, round int64) (*auctionPB.AuctionEndpointResponse, error)
GetAuctions(ctx context.Context) (*auctionPB.AuctionsResponse, error)
@@ -471,8 +471,13 @@ func (c *exchangeClient) FetchPriceV2(ctx context.Context, filters []*oraclePB.P
return res, nil
}
-func (c *exchangeClient) GetOracleList(ctx context.Context) (*oraclePB.OracleListResponse, error) {
- req := oraclePB.OracleListRequest{}
+func (c *exchangeClient) GetOracleList(ctx context.Context, symbol, oracleType, token string, perPage int32) (*oraclePB.OracleListResponse, error) {
+ req := oraclePB.OracleListRequest{
+ Symbol: symbol,
+ OracleType: oracleType,
+ Token: token,
+ PerPage: perPage,
+ }
res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.oracleClient.OracleList, &req)
if err != nil {
diff --git a/examples/chain/14_HistoricalQueryByHeight/example.go b/examples/chain/14_HistoricalQueryByHeight/example.go
index 31540c3b..b9ecdee8 100644
--- a/examples/chain/14_HistoricalQueryByHeight/example.go
+++ b/examples/chain/14_HistoricalQueryByHeight/example.go
@@ -7,13 +7,11 @@ import (
"os"
"strconv"
- "google.golang.org/grpc/metadata"
-
- grpctypes "github.com/cosmos/cosmos-sdk/types/grpc"
-
rpchttp "github.com/cometbft/cometbft/rpc/client/http"
+ grpctypes "github.com/cosmos/cosmos-sdk/types/grpc"
+ "google.golang.org/grpc/metadata"
- "github.com/InjectiveLabs/sdk-go/chain/exchange/types"
+ exchangev2types "github.com/InjectiveLabs/sdk-go/chain/exchange/types/v2"
"github.com/InjectiveLabs/sdk-go/client"
chainclient "github.com/InjectiveLabs/sdk-go/client/chain"
"github.com/InjectiveLabs/sdk-go/client/common"
@@ -53,7 +51,7 @@ func main() {
clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient)
- chainClient, err := chainclient.NewChainClient(
+ chainClient, err := chainclient.NewChainClientV2(
clientCtx,
network,
common.OptionGasPrices(client.DefaultGasPriceWithDenom),
@@ -115,11 +113,11 @@ func main() {
}
func fetchSpotMarketsAtHeight(
- chainClient chainclient.ChainClient,
+ chainClient chainclient.ChainClientV2,
height int64,
status string,
marketIds []string,
-) (*types.QuerySpotMarketsResponse, error) {
+) (*exchangev2types.QuerySpotMarketsResponse, error) {
ctx := context.Background()
ctxWithHeight := metadata.AppendToOutgoingContext(
diff --git a/examples/chain/permissions/1_MsgCreateNamespace/example.go b/examples/chain/permissions/1_MsgCreateNamespace/example.go
index 46ec35bb..ce0c9526 100644
--- a/examples/chain/permissions/1_MsgCreateNamespace/example.go
+++ b/examples/chain/permissions/1_MsgCreateNamespace/example.go
@@ -119,12 +119,13 @@ func main() {
namespace := permissionstypes.Namespace{
Denom: denom,
- ContractHook: "",
+ WasmHook: "",
RolePermissions: []*permissionstypes.Role{&role1, &role2, &role3},
ActorRoles: []*permissionstypes.ActorRoles{&actor_role1, &actor_role2},
RoleManagers: []*permissionstypes.RoleManager{&role_manager},
PolicyStatuses: []*permissionstypes.PolicyStatus{&policy_status1, &policy_status2},
PolicyManagerCapabilities: []*permissionstypes.PolicyManagerCapability{&policy_manager_capability},
+ EvmHook: "",
}
msg := &permissionstypes.MsgCreateNamespace{
diff --git a/examples/chain/permissions/2_MsgUpdateNamespace/example.go b/examples/chain/permissions/2_MsgUpdateNamespace/example.go
index ed477dfd..a2b7533a 100644
--- a/examples/chain/permissions/2_MsgUpdateNamespace/example.go
+++ b/examples/chain/permissions/2_MsgUpdateNamespace/example.go
@@ -103,7 +103,7 @@ func main() {
msg := &permissionstypes.MsgUpdateNamespace{
Sender: senderAddress.String(),
Denom: denom,
- ContractHook: &permissionstypes.MsgUpdateNamespace_SetContractHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"},
+ WasmHook: &permissionstypes.MsgUpdateNamespace_SetContractHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"},
RolePermissions: []*permissionstypes.Role{&role1, &role2},
RoleManagers: []*permissionstypes.RoleManager{&role_manager},
PolicyStatuses: []*permissionstypes.PolicyStatus{&policy_status1, &policy_status2},
diff --git a/examples/exchange/oracle/3_OracleList/example.go b/examples/exchange/oracle/3_OracleList/example.go
index 1e40cec2..a066531e 100644
--- a/examples/exchange/oracle/3_OracleList/example.go
+++ b/examples/exchange/oracle/3_OracleList/example.go
@@ -16,8 +16,11 @@ func main() {
panic(err)
}
+ symbol := "PYTH/USDT"
+ oracleType := "pricefeed"
+
ctx := context.Background()
- res, err := exchangeClient.GetOracleList(ctx)
+ res, err := exchangeClient.GetOracleList(ctx, symbol, oracleType, "", 0)
if err != nil {
fmt.Println(err)
}
diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go
index 0b2fcd07..38964e22 100644
--- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go
+++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go
@@ -319,6 +319,8 @@ type AuctionContract struct {
EndTimestamp uint64 `protobuf:"varint,9,opt,name=end_timestamp,json=endTimestamp,proto3" json:"end_timestamp,omitempty"`
// Max round allocation of the auction
MaxRoundAllocation string `protobuf:"bytes,10,opt,name=max_round_allocation,json=maxRoundAllocation,proto3" json:"max_round_allocation,omitempty"`
+ // Whether any bid has been placed in the auction.
+ IsBidPlaced bool `protobuf:"varint,11,opt,name=is_bid_placed,json=isBidPlaced,proto3" json:"is_bid_placed,omitempty"`
}
func (x *AuctionContract) Reset() {
@@ -423,6 +425,13 @@ func (x *AuctionContract) GetMaxRoundAllocation() string {
return ""
}
+func (x *AuctionContract) GetIsBidPlaced() bool {
+ if x != nil {
+ return x.IsBidPlaced
+ }
+ return false
+}
+
type Bid struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1234,6 +1243,111 @@ func (x *AccountAuctionV2) GetClaimedAssets() []*CoinPrices {
return nil
}
+type AuctionAccountStatusRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The auction round number
+ Round int64 `protobuf:"zigzag64,1,opt,name=round,proto3" json:"round,omitempty"`
+ // Address of account
+ Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
+}
+
+func (x *AuctionAccountStatusRequest) Reset() {
+ *x = AuctionAccountStatusRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AuctionAccountStatusRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AuctionAccountStatusRequest) ProtoMessage() {}
+
+func (x *AuctionAccountStatusRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AuctionAccountStatusRequest.ProtoReflect.Descriptor instead.
+func (*AuctionAccountStatusRequest) Descriptor() ([]byte, []int) {
+ return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *AuctionAccountStatusRequest) GetRound() int64 {
+ if x != nil {
+ return x.Round
+ }
+ return 0
+}
+
+func (x *AuctionAccountStatusRequest) GetAddress() string {
+ if x != nil {
+ return x.Address
+ }
+ return ""
+}
+
+type AuctionAccountStatusResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The allowlist status of the account
+ Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+}
+
+func (x *AuctionAccountStatusResponse) Reset() {
+ *x = AuctionAccountStatusResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AuctionAccountStatusResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AuctionAccountStatusResponse) ProtoMessage() {}
+
+func (x *AuctionAccountStatusResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AuctionAccountStatusResponse.ProtoReflect.Descriptor instead.
+func (*AuctionAccountStatusResponse) Descriptor() ([]byte, []int) {
+ return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *AuctionAccountStatusResponse) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
type StreamBidsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1243,7 +1357,7 @@ type StreamBidsRequest struct {
func (x *StreamBidsRequest) Reset() {
*x = StreamBidsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1256,7 +1370,7 @@ func (x *StreamBidsRequest) String() string {
func (*StreamBidsRequest) ProtoMessage() {}
func (x *StreamBidsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1269,7 +1383,7 @@ func (x *StreamBidsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StreamBidsRequest.ProtoReflect.Descriptor instead.
func (*StreamBidsRequest) Descriptor() ([]byte, []int) {
- return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{17}
+ return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{19}
}
type StreamBidsResponse struct {
@@ -1288,7 +1402,7 @@ type StreamBidsResponse struct {
func (x *StreamBidsResponse) Reset() {
*x = StreamBidsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1301,7 +1415,7 @@ func (x *StreamBidsResponse) String() string {
func (*StreamBidsResponse) ProtoMessage() {}
func (x *StreamBidsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1314,7 +1428,7 @@ func (x *StreamBidsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StreamBidsResponse.ProtoReflect.Descriptor instead.
func (*StreamBidsResponse) Descriptor() ([]byte, []int) {
- return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{18}
+ return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{20}
}
func (x *StreamBidsResponse) GetBidder() string {
@@ -1354,7 +1468,7 @@ type InjBurntEndpointRequest struct {
func (x *InjBurntEndpointRequest) Reset() {
*x = InjBurntEndpointRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1367,7 +1481,7 @@ func (x *InjBurntEndpointRequest) String() string {
func (*InjBurntEndpointRequest) ProtoMessage() {}
func (x *InjBurntEndpointRequest) ProtoReflect() protoreflect.Message {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1380,7 +1494,7 @@ func (x *InjBurntEndpointRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use InjBurntEndpointRequest.ProtoReflect.Descriptor instead.
func (*InjBurntEndpointRequest) Descriptor() ([]byte, []int) {
- return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{19}
+ return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{21}
}
type InjBurntEndpointResponse struct {
@@ -1394,7 +1508,7 @@ type InjBurntEndpointResponse struct {
func (x *InjBurntEndpointResponse) Reset() {
*x = InjBurntEndpointResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[20]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1407,7 +1521,7 @@ func (x *InjBurntEndpointResponse) String() string {
func (*InjBurntEndpointResponse) ProtoMessage() {}
func (x *InjBurntEndpointResponse) ProtoReflect() protoreflect.Message {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[20]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1420,7 +1534,7 @@ func (x *InjBurntEndpointResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use InjBurntEndpointResponse.ProtoReflect.Descriptor instead.
func (*InjBurntEndpointResponse) Descriptor() ([]byte, []int) {
- return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{20}
+ return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{22}
}
func (x *InjBurntEndpointResponse) GetTotalInjBurnt() string {
@@ -1439,7 +1553,7 @@ type AuctionsStatsRequest struct {
func (x *AuctionsStatsRequest) Reset() {
*x = AuctionsStatsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[21]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1452,7 +1566,7 @@ func (x *AuctionsStatsRequest) String() string {
func (*AuctionsStatsRequest) ProtoMessage() {}
func (x *AuctionsStatsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[21]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1465,7 +1579,7 @@ func (x *AuctionsStatsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use AuctionsStatsRequest.ProtoReflect.Descriptor instead.
func (*AuctionsStatsRequest) Descriptor() ([]byte, []int) {
- return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{21}
+ return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{23}
}
type AuctionsStatsResponse struct {
@@ -1482,7 +1596,7 @@ type AuctionsStatsResponse struct {
func (x *AuctionsStatsResponse) Reset() {
*x = AuctionsStatsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[22]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1495,7 +1609,7 @@ func (x *AuctionsStatsResponse) String() string {
func (*AuctionsStatsResponse) ProtoMessage() {}
func (x *AuctionsStatsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[22]
+ mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1508,7 +1622,7 @@ func (x *AuctionsStatsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use AuctionsStatsResponse.ProtoReflect.Descriptor instead.
func (*AuctionsStatsResponse) Descriptor() ([]byte, []int) {
- return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{22}
+ return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{24}
}
func (x *AuctionsStatsResponse) GetTotalBurnt() string {
@@ -1567,7 +1681,7 @@ var file_goadesign_goagen_injective_auction_rpc_proto_rawDesc = []byte{
0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x64, 0x5f, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x64, 0x56, 0x61,
- 0x6c, 0x75, 0x65, 0x22, 0x90, 0x03, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43,
+ 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x03, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43,
0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x69, 0x64, 0x5f, 0x74,
0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x64,
@@ -1592,201 +1706,220 @@ var file_goadesign_goagen_injective_auction_rpc_proto_rawDesc = []byte{
0x74, 0x61, 0x6d, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x75, 0x6e,
0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01,
0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x6f,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x03, 0x42, 0x69, 0x64, 0x12, 0x16, 0x0a,
- 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62,
- 0x69, 0x64, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a,
- 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12,
- 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x11, 0x0a, 0x0f, 0x41,
- 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e,
- 0x0a, 0x10, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x66,
- 0x0a, 0x18, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
- 0x79, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65,
- 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65,
- 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x65,
- 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65,
- 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x73, 0x0a, 0x19, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x62, 0x69, 0x64,
+ 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69,
+ 0x73, 0x42, 0x69, 0x64, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x22, 0x53, 0x0a, 0x03, 0x42, 0x69,
+ 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f,
+ 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
+ 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22,
+ 0x11, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x10, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
+ 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63,
+ 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x22, 0x66, 0x0a, 0x18, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69,
+ 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19,
+ 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11,
+ 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b,
+ 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12,
+ 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x73, 0x0a, 0x19, 0x41, 0x75,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70,
+ 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+ 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22,
+ 0xe5, 0x02, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73,
+ 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x06, 0x62,
+ 0x61, 0x73, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x06,
+ 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e,
+ 0x67, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x10, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d,
+ 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e,
+ 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x12, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42,
+ 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61,
+ 0x63, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x69,
+ 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x13, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d,
+ 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x64, 0x22, 0xbc, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x69, 0x6e,
+ 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06,
+ 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d,
+ 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69,
+ 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x50,
+ 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
+ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f,
+ 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64,
+ 0x22, 0xe7, 0x02, 0x0a, 0x11, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x39,
+ 0x0a, 0x06, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
+ 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65,
+ 0x73, 0x52, 0x06, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x77, 0x69, 0x6e,
+ 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69,
+ 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a,
+ 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x12, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41,
+ 0x74, 0x12, 0x42, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e,
+ 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67,
+ 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x64, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69,
+ 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x73, 0x64, 0x22, 0x65, 0x0a, 0x18, 0x41, 0x63,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74,
+ 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x22, 0x8a, 0x01, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x43, 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd0,
+ 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x56, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6d, 0x6f,
+ 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d,
+ 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6c,
+ 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x6c, 0x61, 0x69, 0x6d,
+ 0x65, 0x64, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63,
+ 0x65, 0x73, 0x52, 0x0d, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74,
+ 0x73, 0x22, 0x4d, 0x0a, 0x1b, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52,
+ 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x22, 0x36, 0x0a, 0x1c, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7f, 0x0a,
+ 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62,
+ 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x62, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f,
+ 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64,
+ 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x19,
+ 0x0a, 0x17, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
+ 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x18, 0x49, 0x6e, 0x6a,
+ 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x69,
+ 0x6e, 0x6a, 0x5f, 0x62, 0x75, 0x72, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
+ 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x22, 0x16, 0x0a,
+ 0x14, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x60, 0x0a, 0x15, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x75, 0x72, 0x6e, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x12,
+ 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x64, 0x5f, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55,
+ 0x73, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x32, 0xfb, 0x07, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x50, 0x43, 0x12,
+ 0x70, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
+ 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61,
+ 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e,
+ 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x61,
- 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18,
- 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x0f,
- 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
- 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x06, 0x62, 0x61, 0x73, 0x6b, 0x65,
- 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e,
- 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x06, 0x62, 0x61, 0x73, 0x6b,
- 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x69,
- 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
- 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
- 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52,
- 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0c, 0x65,
- 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x75,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52,
- 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x63, 0x6f,
- 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76,
+ 0x0a, 0x11, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x09, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x56, 0x32, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69,
0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74,
- 0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x33,
- 0x0a, 0x16, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d,
- 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13,
- 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
- 0x55, 0x73, 0x64, 0x22, 0xbc, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63,
- 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75,
- 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
- 0x12, 0x45, 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69,
- 0x63, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
- 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x50, 0x72, 0x69, 0x63, 0x65,
- 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
- 0x38, 0x01, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xe7, 0x02, 0x0a,
- 0x11, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x06, 0x62, 0x61,
- 0x73, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a,
- 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72,
- 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x06, 0x62,
- 0x61, 0x73, 0x6b, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67,
- 0x5f, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x10, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d, 0x6f,
- 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x64,
- 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12,
- 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d,
- 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01,
- 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x42, 0x0a,
- 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43,
- 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63,
- 0x74, 0x12, 0x33, 0x0a, 0x16, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x69, 0x64,
- 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x13, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d, 0x6f,
- 0x75, 0x6e, 0x74, 0x55, 0x73, 0x64, 0x22, 0x65, 0x0a, 0x18, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08,
- 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07,
- 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8a, 0x01,
- 0x0a, 0x19, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x61,
- 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
- 0x6e, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0xd0, 0x01, 0x0a, 0x10, 0x41,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12,
- 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12,
- 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05,
- 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
- 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x64,
- 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x61,
- 0x62, 0x6c, 0x65, 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x5f, 0x61,
- 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e,
0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x0d,
- 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x13, 0x0a,
- 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x22, 0x7f, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x64, 0x64,
- 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72,
- 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12,
- 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05,
- 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
- 0x61, 0x6d, 0x70, 0x22, 0x19, 0x0a, 0x17, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45,
- 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42,
- 0x0a, 0x18, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69,
- 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f,
- 0x74, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x6a, 0x5f, 0x62, 0x75, 0x72, 0x6e, 0x74, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72,
- 0x6e, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74,
- 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x60, 0x0a, 0x15, 0x41, 0x75,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x75, 0x72,
- 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42,
- 0x75, 0x72, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x73,
- 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74,
- 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x32, 0xfa, 0x06, 0x0a,
- 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45,
- 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e,
- 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
+ 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69,
+ 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f,
+ 0x0a, 0x14, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41,
- 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61,
- 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a,
+ 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a,
0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72,
- 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x11, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48,
- 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
+ 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x63, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x12, 0x28, 0x2e,
+ 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x30, 0x01, 0x12, 0x73, 0x0a, 0x10, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74,
+ 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
- 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
- 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
- 0x79, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x09, 0x41,
- 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
+ 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
+ 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x11, 0x41,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32,
- 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64,
- 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
- 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e,
- 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x73, 0x0a, 0x10, 0x49, 0x6e, 0x6a, 0x42,
- 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x69,
- 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64,
- 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69,
- 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64,
- 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a,
- 0x0d, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2b,
- 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53,
- 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e,
- 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e,
- 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x2e, 0x49, 0x6e, 0x6a, 0x42, 0x75, 0x72, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
+ 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0d, 0x41, 0x75, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72,
+ 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70,
+ 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1801,32 +1934,34 @@ func file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP() []byte {
return file_goadesign_goagen_injective_auction_rpc_proto_rawDescData
}
-var file_goadesign_goagen_injective_auction_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
+var file_goadesign_goagen_injective_auction_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
var file_goadesign_goagen_injective_auction_rpc_proto_goTypes = []interface{}{
- (*AuctionEndpointRequest)(nil), // 0: injective_auction_rpc.AuctionEndpointRequest
- (*AuctionEndpointResponse)(nil), // 1: injective_auction_rpc.AuctionEndpointResponse
- (*Auction)(nil), // 2: injective_auction_rpc.Auction
- (*Coin)(nil), // 3: injective_auction_rpc.Coin
- (*AuctionContract)(nil), // 4: injective_auction_rpc.AuctionContract
- (*Bid)(nil), // 5: injective_auction_rpc.Bid
- (*AuctionsRequest)(nil), // 6: injective_auction_rpc.AuctionsRequest
- (*AuctionsResponse)(nil), // 7: injective_auction_rpc.AuctionsResponse
- (*AuctionsHistoryV2Request)(nil), // 8: injective_auction_rpc.AuctionsHistoryV2Request
- (*AuctionsHistoryV2Response)(nil), // 9: injective_auction_rpc.AuctionsHistoryV2Response
- (*AuctionV2Result)(nil), // 10: injective_auction_rpc.AuctionV2Result
- (*CoinPrices)(nil), // 11: injective_auction_rpc.CoinPrices
- (*AuctionV2Request)(nil), // 12: injective_auction_rpc.AuctionV2Request
- (*AuctionV2Response)(nil), // 13: injective_auction_rpc.AuctionV2Response
- (*AccountAuctionsV2Request)(nil), // 14: injective_auction_rpc.AccountAuctionsV2Request
- (*AccountAuctionsV2Response)(nil), // 15: injective_auction_rpc.AccountAuctionsV2Response
- (*AccountAuctionV2)(nil), // 16: injective_auction_rpc.AccountAuctionV2
- (*StreamBidsRequest)(nil), // 17: injective_auction_rpc.StreamBidsRequest
- (*StreamBidsResponse)(nil), // 18: injective_auction_rpc.StreamBidsResponse
- (*InjBurntEndpointRequest)(nil), // 19: injective_auction_rpc.InjBurntEndpointRequest
- (*InjBurntEndpointResponse)(nil), // 20: injective_auction_rpc.InjBurntEndpointResponse
- (*AuctionsStatsRequest)(nil), // 21: injective_auction_rpc.AuctionsStatsRequest
- (*AuctionsStatsResponse)(nil), // 22: injective_auction_rpc.AuctionsStatsResponse
- nil, // 23: injective_auction_rpc.CoinPrices.PricesEntry
+ (*AuctionEndpointRequest)(nil), // 0: injective_auction_rpc.AuctionEndpointRequest
+ (*AuctionEndpointResponse)(nil), // 1: injective_auction_rpc.AuctionEndpointResponse
+ (*Auction)(nil), // 2: injective_auction_rpc.Auction
+ (*Coin)(nil), // 3: injective_auction_rpc.Coin
+ (*AuctionContract)(nil), // 4: injective_auction_rpc.AuctionContract
+ (*Bid)(nil), // 5: injective_auction_rpc.Bid
+ (*AuctionsRequest)(nil), // 6: injective_auction_rpc.AuctionsRequest
+ (*AuctionsResponse)(nil), // 7: injective_auction_rpc.AuctionsResponse
+ (*AuctionsHistoryV2Request)(nil), // 8: injective_auction_rpc.AuctionsHistoryV2Request
+ (*AuctionsHistoryV2Response)(nil), // 9: injective_auction_rpc.AuctionsHistoryV2Response
+ (*AuctionV2Result)(nil), // 10: injective_auction_rpc.AuctionV2Result
+ (*CoinPrices)(nil), // 11: injective_auction_rpc.CoinPrices
+ (*AuctionV2Request)(nil), // 12: injective_auction_rpc.AuctionV2Request
+ (*AuctionV2Response)(nil), // 13: injective_auction_rpc.AuctionV2Response
+ (*AccountAuctionsV2Request)(nil), // 14: injective_auction_rpc.AccountAuctionsV2Request
+ (*AccountAuctionsV2Response)(nil), // 15: injective_auction_rpc.AccountAuctionsV2Response
+ (*AccountAuctionV2)(nil), // 16: injective_auction_rpc.AccountAuctionV2
+ (*AuctionAccountStatusRequest)(nil), // 17: injective_auction_rpc.AuctionAccountStatusRequest
+ (*AuctionAccountStatusResponse)(nil), // 18: injective_auction_rpc.AuctionAccountStatusResponse
+ (*StreamBidsRequest)(nil), // 19: injective_auction_rpc.StreamBidsRequest
+ (*StreamBidsResponse)(nil), // 20: injective_auction_rpc.StreamBidsResponse
+ (*InjBurntEndpointRequest)(nil), // 21: injective_auction_rpc.InjBurntEndpointRequest
+ (*InjBurntEndpointResponse)(nil), // 22: injective_auction_rpc.InjBurntEndpointResponse
+ (*AuctionsStatsRequest)(nil), // 23: injective_auction_rpc.AuctionsStatsRequest
+ (*AuctionsStatsResponse)(nil), // 24: injective_auction_rpc.AuctionsStatsResponse
+ nil, // 25: injective_auction_rpc.CoinPrices.PricesEntry
}
var file_goadesign_goagen_injective_auction_rpc_proto_depIdxs = []int32{
2, // 0: injective_auction_rpc.AuctionEndpointResponse.auction:type_name -> injective_auction_rpc.Auction
@@ -1837,7 +1972,7 @@ var file_goadesign_goagen_injective_auction_rpc_proto_depIdxs = []int32{
10, // 5: injective_auction_rpc.AuctionsHistoryV2Response.auctions:type_name -> injective_auction_rpc.AuctionV2Result
11, // 6: injective_auction_rpc.AuctionV2Result.basket:type_name -> injective_auction_rpc.CoinPrices
4, // 7: injective_auction_rpc.AuctionV2Result.contract:type_name -> injective_auction_rpc.AuctionContract
- 23, // 8: injective_auction_rpc.CoinPrices.prices:type_name -> injective_auction_rpc.CoinPrices.PricesEntry
+ 25, // 8: injective_auction_rpc.CoinPrices.prices:type_name -> injective_auction_rpc.CoinPrices.PricesEntry
11, // 9: injective_auction_rpc.AuctionV2Response.basket:type_name -> injective_auction_rpc.CoinPrices
4, // 10: injective_auction_rpc.AuctionV2Response.contract:type_name -> injective_auction_rpc.AuctionContract
16, // 11: injective_auction_rpc.AccountAuctionsV2Response.auctions:type_name -> injective_auction_rpc.AccountAuctionV2
@@ -1847,19 +1982,21 @@ var file_goadesign_goagen_injective_auction_rpc_proto_depIdxs = []int32{
8, // 15: injective_auction_rpc.InjectiveAuctionRPC.AuctionsHistoryV2:input_type -> injective_auction_rpc.AuctionsHistoryV2Request
12, // 16: injective_auction_rpc.InjectiveAuctionRPC.AuctionV2:input_type -> injective_auction_rpc.AuctionV2Request
14, // 17: injective_auction_rpc.InjectiveAuctionRPC.AccountAuctionsV2:input_type -> injective_auction_rpc.AccountAuctionsV2Request
- 17, // 18: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:input_type -> injective_auction_rpc.StreamBidsRequest
- 19, // 19: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:input_type -> injective_auction_rpc.InjBurntEndpointRequest
- 21, // 20: injective_auction_rpc.InjectiveAuctionRPC.AuctionsStats:input_type -> injective_auction_rpc.AuctionsStatsRequest
- 1, // 21: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:output_type -> injective_auction_rpc.AuctionEndpointResponse
- 7, // 22: injective_auction_rpc.InjectiveAuctionRPC.Auctions:output_type -> injective_auction_rpc.AuctionsResponse
- 9, // 23: injective_auction_rpc.InjectiveAuctionRPC.AuctionsHistoryV2:output_type -> injective_auction_rpc.AuctionsHistoryV2Response
- 13, // 24: injective_auction_rpc.InjectiveAuctionRPC.AuctionV2:output_type -> injective_auction_rpc.AuctionV2Response
- 15, // 25: injective_auction_rpc.InjectiveAuctionRPC.AccountAuctionsV2:output_type -> injective_auction_rpc.AccountAuctionsV2Response
- 18, // 26: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:output_type -> injective_auction_rpc.StreamBidsResponse
- 20, // 27: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:output_type -> injective_auction_rpc.InjBurntEndpointResponse
- 22, // 28: injective_auction_rpc.InjectiveAuctionRPC.AuctionsStats:output_type -> injective_auction_rpc.AuctionsStatsResponse
- 21, // [21:29] is the sub-list for method output_type
- 13, // [13:21] is the sub-list for method input_type
+ 17, // 18: injective_auction_rpc.InjectiveAuctionRPC.AuctionAccountStatus:input_type -> injective_auction_rpc.AuctionAccountStatusRequest
+ 19, // 19: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:input_type -> injective_auction_rpc.StreamBidsRequest
+ 21, // 20: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:input_type -> injective_auction_rpc.InjBurntEndpointRequest
+ 23, // 21: injective_auction_rpc.InjectiveAuctionRPC.AuctionsStats:input_type -> injective_auction_rpc.AuctionsStatsRequest
+ 1, // 22: injective_auction_rpc.InjectiveAuctionRPC.AuctionEndpoint:output_type -> injective_auction_rpc.AuctionEndpointResponse
+ 7, // 23: injective_auction_rpc.InjectiveAuctionRPC.Auctions:output_type -> injective_auction_rpc.AuctionsResponse
+ 9, // 24: injective_auction_rpc.InjectiveAuctionRPC.AuctionsHistoryV2:output_type -> injective_auction_rpc.AuctionsHistoryV2Response
+ 13, // 25: injective_auction_rpc.InjectiveAuctionRPC.AuctionV2:output_type -> injective_auction_rpc.AuctionV2Response
+ 15, // 26: injective_auction_rpc.InjectiveAuctionRPC.AccountAuctionsV2:output_type -> injective_auction_rpc.AccountAuctionsV2Response
+ 18, // 27: injective_auction_rpc.InjectiveAuctionRPC.AuctionAccountStatus:output_type -> injective_auction_rpc.AuctionAccountStatusResponse
+ 20, // 28: injective_auction_rpc.InjectiveAuctionRPC.StreamBids:output_type -> injective_auction_rpc.StreamBidsResponse
+ 22, // 29: injective_auction_rpc.InjectiveAuctionRPC.InjBurntEndpoint:output_type -> injective_auction_rpc.InjBurntEndpointResponse
+ 24, // 30: injective_auction_rpc.InjectiveAuctionRPC.AuctionsStats:output_type -> injective_auction_rpc.AuctionsStatsResponse
+ 22, // [22:31] is the sub-list for method output_type
+ 13, // [13:22] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
@@ -2076,7 +2213,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() {
}
}
file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StreamBidsRequest); i {
+ switch v := v.(*AuctionAccountStatusRequest); i {
case 0:
return &v.state
case 1:
@@ -2088,7 +2225,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() {
}
}
file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StreamBidsResponse); i {
+ switch v := v.(*AuctionAccountStatusResponse); i {
case 0:
return &v.state
case 1:
@@ -2100,7 +2237,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() {
}
}
file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*InjBurntEndpointRequest); i {
+ switch v := v.(*StreamBidsRequest); i {
case 0:
return &v.state
case 1:
@@ -2112,7 +2249,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() {
}
}
file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*InjBurntEndpointResponse); i {
+ switch v := v.(*StreamBidsResponse); i {
case 0:
return &v.state
case 1:
@@ -2124,7 +2261,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() {
}
}
file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AuctionsStatsRequest); i {
+ switch v := v.(*InjBurntEndpointRequest); i {
case 0:
return &v.state
case 1:
@@ -2136,6 +2273,30 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() {
}
}
file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*InjBurntEndpointResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AuctionsStatsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AuctionsStatsResponse); i {
case 0:
return &v.state
@@ -2154,7 +2315,7 @@ func file_goadesign_goagen_injective_auction_rpc_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_goadesign_goagen_injective_auction_rpc_proto_rawDesc,
NumEnums: 0,
- NumMessages: 24,
+ NumMessages: 26,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go
index 592523cc..56d53857 100644
--- a/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go
+++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go
@@ -32,6 +32,8 @@ type InjectiveAuctionRPCClient interface {
AuctionV2(ctx context.Context, in *AuctionV2Request, opts ...grpc.CallOption) (*AuctionV2Response, error)
// Provide the historical auctions info for a given account
AccountAuctionsV2(ctx context.Context, in *AccountAuctionsV2Request, opts ...grpc.CallOption) (*AccountAuctionsV2Response, error)
+ // Get the allowlist status for a specific account in an auction round
+ AuctionAccountStatus(ctx context.Context, in *AuctionAccountStatusRequest, opts ...grpc.CallOption) (*AuctionAccountStatusResponse, error)
// StreamBids streams new bids of an auction.
StreamBids(ctx context.Context, in *StreamBidsRequest, opts ...grpc.CallOption) (InjectiveAuctionRPC_StreamBidsClient, error)
// InjBurntEndpoint returns the total amount of INJ burnt in auctions.
@@ -93,6 +95,15 @@ func (c *injectiveAuctionRPCClient) AccountAuctionsV2(ctx context.Context, in *A
return out, nil
}
+func (c *injectiveAuctionRPCClient) AuctionAccountStatus(ctx context.Context, in *AuctionAccountStatusRequest, opts ...grpc.CallOption) (*AuctionAccountStatusResponse, error) {
+ out := new(AuctionAccountStatusResponse)
+ err := c.cc.Invoke(ctx, "/injective_auction_rpc.InjectiveAuctionRPC/AuctionAccountStatus", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *injectiveAuctionRPCClient) StreamBids(ctx context.Context, in *StreamBidsRequest, opts ...grpc.CallOption) (InjectiveAuctionRPC_StreamBidsClient, error) {
stream, err := c.cc.NewStream(ctx, &InjectiveAuctionRPC_ServiceDesc.Streams[0], "/injective_auction_rpc.InjectiveAuctionRPC/StreamBids", opts...)
if err != nil {
@@ -157,6 +168,8 @@ type InjectiveAuctionRPCServer interface {
AuctionV2(context.Context, *AuctionV2Request) (*AuctionV2Response, error)
// Provide the historical auctions info for a given account
AccountAuctionsV2(context.Context, *AccountAuctionsV2Request) (*AccountAuctionsV2Response, error)
+ // Get the allowlist status for a specific account in an auction round
+ AuctionAccountStatus(context.Context, *AuctionAccountStatusRequest) (*AuctionAccountStatusResponse, error)
// StreamBids streams new bids of an auction.
StreamBids(*StreamBidsRequest, InjectiveAuctionRPC_StreamBidsServer) error
// InjBurntEndpoint returns the total amount of INJ burnt in auctions.
@@ -185,6 +198,9 @@ func (UnimplementedInjectiveAuctionRPCServer) AuctionV2(context.Context, *Auctio
func (UnimplementedInjectiveAuctionRPCServer) AccountAuctionsV2(context.Context, *AccountAuctionsV2Request) (*AccountAuctionsV2Response, error) {
return nil, status.Errorf(codes.Unimplemented, "method AccountAuctionsV2 not implemented")
}
+func (UnimplementedInjectiveAuctionRPCServer) AuctionAccountStatus(context.Context, *AuctionAccountStatusRequest) (*AuctionAccountStatusResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method AuctionAccountStatus not implemented")
+}
func (UnimplementedInjectiveAuctionRPCServer) StreamBids(*StreamBidsRequest, InjectiveAuctionRPC_StreamBidsServer) error {
return status.Errorf(codes.Unimplemented, "method StreamBids not implemented")
}
@@ -297,6 +313,24 @@ func _InjectiveAuctionRPC_AccountAuctionsV2_Handler(srv interface{}, ctx context
return interceptor(ctx, in, info, handler)
}
+func _InjectiveAuctionRPC_AuctionAccountStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(AuctionAccountStatusRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(InjectiveAuctionRPCServer).AuctionAccountStatus(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/injective_auction_rpc.InjectiveAuctionRPC/AuctionAccountStatus",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(InjectiveAuctionRPCServer).AuctionAccountStatus(ctx, req.(*AuctionAccountStatusRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _InjectiveAuctionRPC_StreamBids_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(StreamBidsRequest)
if err := stream.RecvMsg(m); err != nil {
@@ -381,6 +415,10 @@ var InjectiveAuctionRPC_ServiceDesc = grpc.ServiceDesc{
MethodName: "AccountAuctionsV2",
Handler: _InjectiveAuctionRPC_AccountAuctionsV2_Handler,
},
+ {
+ MethodName: "AuctionAccountStatus",
+ Handler: _InjectiveAuctionRPC_AuctionAccountStatus_Handler,
+ },
{
MethodName: "InjBurntEndpoint",
Handler: _InjectiveAuctionRPC_InjBurntEndpoint_Handler,
diff --git a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go
index 6e42e6ed..e6dabc54 100644
--- a/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go
+++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go
@@ -2970,6 +2970,10 @@ type DerivativePosition struct {
FundingLast string `protobuf:"bytes,14,opt,name=funding_last,json=fundingLast,proto3" json:"funding_last,omitempty"`
// Net funding fees since position opened
FundingSum string `protobuf:"bytes,15,opt,name=funding_sum,json=fundingSum,proto3" json:"funding_sum,omitempty"`
+ // Cumulative funding entry of the position
+ CumulativeFundingEntry string `protobuf:"bytes,16,opt,name=cumulative_funding_entry,json=cumulativeFundingEntry,proto3" json:"cumulative_funding_entry,omitempty"`
+ // Effective cumulative funding entry of the position
+ EffectiveCumulativeFundingEntry string `protobuf:"bytes,17,opt,name=effective_cumulative_funding_entry,json=effectiveCumulativeFundingEntry,proto3" json:"effective_cumulative_funding_entry,omitempty"`
}
func (x *DerivativePosition) Reset() {
@@ -3102,6 +3106,20 @@ func (x *DerivativePosition) GetFundingSum() string {
return ""
}
+func (x *DerivativePosition) GetCumulativeFundingEntry() string {
+ if x != nil {
+ return x.CumulativeFundingEntry
+ }
+ return ""
+}
+
+func (x *DerivativePosition) GetEffectiveCumulativeFundingEntry() string {
+ if x != nil {
+ return x.EffectiveCumulativeFundingEntry
+ }
+ return ""
+}
+
type PositionsV2Request struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -3321,6 +3339,10 @@ type DerivativePositionV2 struct {
FundingLast string `protobuf:"bytes,13,opt,name=funding_last,json=fundingLast,proto3" json:"funding_last,omitempty"`
// Net funding fees since position opened
FundingSum string `protobuf:"bytes,14,opt,name=funding_sum,json=fundingSum,proto3" json:"funding_sum,omitempty"`
+ // Cumulative funding entry of the position
+ CumulativeFundingEntry string `protobuf:"bytes,15,opt,name=cumulative_funding_entry,json=cumulativeFundingEntry,proto3" json:"cumulative_funding_entry,omitempty"`
+ // Effective cumulative funding entry of the position
+ EffectiveCumulativeFundingEntry string `protobuf:"bytes,16,opt,name=effective_cumulative_funding_entry,json=effectiveCumulativeFundingEntry,proto3" json:"effective_cumulative_funding_entry,omitempty"`
}
func (x *DerivativePositionV2) Reset() {
@@ -3446,6 +3468,20 @@ func (x *DerivativePositionV2) GetFundingSum() string {
return ""
}
+func (x *DerivativePositionV2) GetCumulativeFundingEntry() string {
+ if x != nil {
+ return x.CumulativeFundingEntry
+ }
+ return ""
+}
+
+func (x *DerivativePositionV2) GetEffectiveCumulativeFundingEntry() string {
+ if x != nil {
+ return x.EffectiveCumulativeFundingEntry
+ }
+ return ""
+}
+
type LiquidablePositionsRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -7234,7 +7270,7 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by
0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67,
- 0x69, 0x6e, 0x67, 0x22, 0xf4, 0x03, 0x0a, 0x12, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x69, 0x6e, 0x67, 0x22, 0xfb, 0x04, 0x0a, 0x12, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69,
0x63, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b,
0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18,
@@ -7265,388 +7301,238 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by
0x67, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x75,
0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, 0x6e,
0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x6d, 0x22, 0xde, 0x02, 0x0a, 0x12, 0x50,
- 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
- 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65,
- 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a,
- 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08,
- 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07,
- 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65,
- 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72,
- 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75,
- 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64,
- 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x13,
- 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78,
- 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76,
- 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52,
- 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61,
- 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a,
- 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
- 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50,
- 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa8, 0x03,
- 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1b,
- 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73,
- 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
- 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a,
- 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e,
- 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d,
- 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72,
- 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
- 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65,
- 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12,
- 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20,
- 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14,
- 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64,
- 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f,
- 0x6c, 0x61, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x64,
- 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69,
- 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x75,
- 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x6d, 0x22, 0x63, 0x0a, 0x1a, 0x4c, 0x69, 0x71, 0x75,
- 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
- 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65,
- 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x72, 0x0a,
- 0x1b, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x09,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69,
- 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
- 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x16, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79,
- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d,
- 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
- 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12,
- 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b,
- 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f,
- 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54,
- 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64,
- 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49,
- 0x64, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x17, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61,
- 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d,
- 0x0a, 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
- 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
- 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d,
- 0x65, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a,
- 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e,
+ 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x6d, 0x12, 0x38, 0x0a, 0x18, 0x63, 0x75,
+ 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
+ 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x75,
+ 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45,
+ 0x6e, 0x74, 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x22, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x75, 0x6e,
+ 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x1f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x75, 0x6d, 0x75, 0x6c,
+ 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x22, 0xde, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56,
+ 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a,
+ 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b,
+ 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14,
+ 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c,
+ 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
+ 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
+ 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a,
+ 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x73,
+ 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x18, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c,
+ 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63,
+ 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65,
+ 0x73, 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x09, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e,
0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67,
- 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d,
- 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64,
- 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69,
- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a,
- 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12,
- 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x77, 0x0a, 0x13, 0x46,
- 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12,
- 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73,
- 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64,
- 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64,
- 0x54, 0x69, 0x6d, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
- 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a,
- 0x0d, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68,
- 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
- 0x52, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74,
- 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
- 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70,
- 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0x5c, 0x0a, 0x0b, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
- 0x52, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69,
+ 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
+ 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61,
+ 0x67, 0x69, 0x6e, 0x67, 0x22, 0xaf, 0x04, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
+ 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x12, 0x16, 0x0a,
+ 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74,
+ 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f,
+ 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
+ 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65,
+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74,
+ 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74,
+ 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69,
+ 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69,
+ 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f,
+ 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72,
+ 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x66,
+ 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x0e, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x6d, 0x12,
+ 0x38, 0x0a, 0x18, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x75,
+ 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x16, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x75, 0x6e,
+ 0x64, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x22, 0x65, 0x66, 0x66,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18,
+ 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e,
+ 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x63, 0x0a, 0x1a, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64,
+ 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49,
- 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
- 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
- 0x61, 0x6d, 0x70, 0x22, 0xc9, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23,
- 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64,
- 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12,
- 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64,
- 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22,
- 0x8a, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x70,
- 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e,
+ 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x72, 0x0a, 0x1b, 0x4c,
+ 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x09, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e,
0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c,
- 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcb, 0x01, 0x0a,
- 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62,
- 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b,
- 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d,
- 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75,
- 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03,
- 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
- 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64,
- 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x19, 0x53,
- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a,
- 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
- 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44,
- 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x56, 0x32, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a,
- 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12,
- 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcf, 0x03, 0x0a, 0x13,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64,
- 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12,
- 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75,
- 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69,
- 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d,
- 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
- 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a,
- 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52,
- 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b,
- 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61,
- 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f,
- 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d,
- 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a,
- 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76,
- 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65,
- 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x75, 0x62, 0x61,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64,
- 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x75, 0x62, 0x61, 0x63,
- 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73,
- 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63,
- 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xaa, 0x01,
- 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
- 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
- 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05,
- 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f,
- 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09,
- 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52,
- 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, 0x03, 0x0a, 0x0d, 0x54,
- 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09,
- 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65,
- 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65,
- 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22,
+ 0xbe, 0x01, 0x0a, 0x16, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75,
+ 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12,
+ 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04,
+ 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70,
+ 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52,
+ 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69,
+ 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
+ 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18,
+ 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73,
+ 0x22, 0xab, 0x01, 0x0a, 0x17, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x08,
+ 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31,
+ 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
+ 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
+ 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+ 0x74, 0x52, 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70,
+ 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0x88,
+ 0x01, 0x0a, 0x0e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+ 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23,
0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a,
- 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
- 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08,
- 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07,
- 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65,
- 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72,
- 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d,
- 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a,
- 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
- 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f,
- 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49,
- 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64,
- 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69,
- 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d,
- 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e,
- 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68,
- 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
- 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09,
+ 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x77, 0x0a, 0x13, 0x46, 0x75, 0x6e,
+ 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a,
+ 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69,
+ 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11,
+ 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74,
+ 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69,
+ 0x6d, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61,
+ 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x66,
+ 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
+ 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61,
+ 0x74, 0x65, 0x52, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73,
0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67,
- 0x69, 0x6e, 0x67, 0x22, 0xfa, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
- 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72,
- 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64,
- 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73,
- 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d,
- 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
- 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64,
- 0x65, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65,
- 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73,
- 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x12, 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65,
- 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
- 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f,
- 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0d, 0x70, 0x6f, 0x73,
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
- 0x79, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f,
- 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x66, 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64,
- 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75,
- 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63,
- 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65,
- 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72,
- 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72,
- 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
- 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65,
- 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
- 0x63, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x10,
- 0x0a, 0x03, 0x70, 0x6e, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6e, 0x6c,
- 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c,
- 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61,
- 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65,
- 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50,
- 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x11, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74,
- 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65,
- 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0xe6,
- 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x69, 0x6e, 0x67, 0x22, 0x5c, 0x0a, 0x0b, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61,
+ 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12,
- 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
- 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75,
- 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62,
- 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69,
- 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a,
- 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69,
- 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d,
- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
- 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08,
- 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a,
- 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e,
- 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78,
- 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08,
- 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75,
- 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
- 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63,
- 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69,
- 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65,
- 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64,
- 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06,
- 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69,
- 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65,
- 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69,
- 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67,
- 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xea, 0x03, 0x0a, 0x13,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64,
- 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69,
- 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75,
- 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b,
- 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14,
- 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c,
- 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69,
- 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
- 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
- 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d,
- 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03,
+ 0x12, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72,
+ 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x22, 0xc9, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d,
+ 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
+ 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03,
0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a,
0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18,
- 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65,
- 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a,
- 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
- 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70,
- 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52,
- 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72,
- 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
- 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
- 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54,
- 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f,
- 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79,
- 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
- 0x22, 0xec, 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65,
- 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61,
+ 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
+ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8a, 0x01,
+ 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x08, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09,
+ 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52,
+ 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x53,
+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
+ 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09,
+ 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72,
+ 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d,
+ 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12,
+ 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
+ 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
+ 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72,
+ 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56,
+ 0x32, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09,
+ 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xcf, 0x03, 0x0a, 0x13, 0x53, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x23, 0x0a,
+ 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04,
+ 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12,
+ 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65,
+ 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65,
+ 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
+ 0x5f, 0x69, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b,
+ 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64,
+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69,
+ 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69,
+ 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18,
+ 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63,
+ 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72,
+ 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x19,
+ 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64,
+ 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x14,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
+ 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72,
+ 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe4, 0x03, 0x0a, 0x0d, 0x54, 0x72, 0x61,
+ 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61,
0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d,
0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
@@ -7676,417 +7562,584 @@ var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []by
0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65,
0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22,
- 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73,
- 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72,
- 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
- 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65,
- 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74,
- 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70,
- 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74,
- 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09,
- 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x75,
- 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69,
- 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62,
- 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b,
- 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73,
- 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12,
- 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05,
- 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73,
- 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78,
- 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76,
- 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52,
- 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e,
- 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x9f, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
+ 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
+ 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41,
+ 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
+ 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
+ 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
+ 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e,
+ 0x67, 0x22, 0xfa, 0x03, 0x0a, 0x0f, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65,
+ 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68,
+ 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72,
+ 0x48, 0x61, 0x73, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62,
+ 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72,
+ 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61,
+ 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f,
+ 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75,
+ 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x6c,
+ 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0d, 0x69, 0x73, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x57, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6c, 0x74,
+ 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
- 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69,
- 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x53,
- 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c,
- 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75,
- 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12,
- 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e,
- 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54,
- 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52,
- 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x1c, 0x53,
- 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c,
- 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74,
- 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e,
- 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
- 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52,
- 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65,
- 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f,
- 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
- 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04,
- 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
- 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a,
- 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
- 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52,
- 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e,
- 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e,
- 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64,
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69,
- 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a,
- 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73,
- 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
- 0x79, 0x70, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63,
- 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61,
- 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09,
- 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61,
- 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61,
- 0x64, 0x65, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d,
- 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73,
- 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72,
- 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x51, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
- 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
- 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f,
- 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64,
- 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06,
- 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x69, 0x76,
- 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
- 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68,
- 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a,
- 0x09, 0x69, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75,
+ 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69,
+ 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x79, 0x6f,
+ 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x6f, 0x75, 0x74,
+ 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66,
+ 0x65, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61,
+ 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65,
+ 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70,
+ 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52,
+ 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64,
+ 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64,
+ 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65,
+ 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69,
+ 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03,
+ 0x70, 0x6e, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6e, 0x6c, 0x22, 0xbb,
+ 0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61,
+ 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65,
+ 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65,
+ 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69,
+ 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11,
+ 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74,
+ 0x79, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d,
+ 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x78, 0x65,
+ 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0xe6, 0x03, 0x0a,
+ 0x0f, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a,
+ 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c,
+ 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69,
+ 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
+ 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d,
+ 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75,
+ 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64,
+ 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
+ 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63,
+ 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72,
+ 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72,
+ 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
+ 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10,
+ 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64,
+ 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e,
+ 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69,
+ 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa1, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73,
+ 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72,
+ 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44,
+ 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06,
+ 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78,
+ 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e,
+ 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xea, 0x03, 0x0a, 0x13, 0x53, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25,
+ 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
+ 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05,
+ 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d,
+ 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
+ 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73,
+ 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49,
+ 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65,
+ 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74,
+ 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74,
+ 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
+ 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69,
+ 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65,
+ 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63,
+ 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa5, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32,
+ 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
+ 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
+ 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61,
+ 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
+ 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xec,
+ 0x03, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56,
+ 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b,
+ 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72,
+ 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65,
+ 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09,
+ 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75,
0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12,
- 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70,
- 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
- 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f,
- 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65,
- 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74,
- 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65,
- 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f,
- 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18,
- 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61,
- 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63,
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52,
- 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09,
- 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f,
- 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12,
- 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a,
- 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18,
- 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f,
- 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65,
- 0x72, 0x41, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72,
- 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
- 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12,
- 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61,
- 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68,
- 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63,
- 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64,
- 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
- 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
- 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65,
- 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70,
- 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54,
- 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
- 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63,
- 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
- 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65,
- 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
- 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
- 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f,
- 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64,
- 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73,
+ 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61,
+ 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f,
+ 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54,
+ 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64,
+ 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49,
+ 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65,
+ 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
+ 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a,
+ 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41,
+ 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f,
+ 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xa7, 0x01,
+ 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
+ 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69,
+ 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x05, 0x74, 0x72, 0x61,
+ 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x35, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x6e, 0x49,
- 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e,
- 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x74,
- 0x0a, 0x14, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69,
- 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
+ 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09,
+ 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69,
+ 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a,
+ 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69,
+ 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
+ 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f,
+ 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67,
+ 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xce, 0x01, 0x0a, 0x1b, 0x53, 0x75, 0x62,
+ 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73,
+ 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a,
+ 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78,
+ 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73,
+ 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x6a, 0x0a, 0x1c, 0x53, 0x75, 0x62,
+ 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73,
+ 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x72, 0x61,
+ 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65,
+ 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65,
+ 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74,
+ 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xfc, 0x03, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23,
+ 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64,
+ 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04,
+ 0x73, 0x6b, 0x69, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72,
+ 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64,
+ 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61,
+ 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f,
+ 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54,
+ 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x73, 0x43,
+ 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72,
+ 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
+ 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b,
+ 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61,
+ 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x64, 0x65,
+ 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65,
+ 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x72,
+ 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x4f, 0x6e,
+ 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x63, 0x69, 0x64, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48,
+ 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51,
+ 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39,
0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
- 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74,
- 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72,
- 0x65, 0x73, 0x74, 0x73, 0x22, 0x56, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x70,
- 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61,
- 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d,
- 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x5f,
- 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
- 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x32, 0xd8, 0x1c, 0x0a,
- 0x1e, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12,
- 0x70, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a,
- 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
- 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d,
- 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x6d, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e,
+ 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64,
+ 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72,
+ 0x73, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
+ 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61,
+ 0x67, 0x69, 0x6e, 0x67, 0x22, 0xa9, 0x05, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
+ 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1b,
+ 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69,
+ 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
+ 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a,
+ 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69,
+ 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a,
+ 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69,
+ 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74,
+ 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x72, 0x65,
+ 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1c, 0x0a,
+ 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x69,
+ 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x61, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x74,
+ 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41,
+ 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x64, 0x65,
+ 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c,
+ 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a,
+ 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d,
+ 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68,
+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10,
+ 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64,
+ 0x22, 0xdc, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72,
+ 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69,
+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49,
+ 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73,
+ 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70,
+ 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22,
+ 0xb3, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x4f, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39,
+ 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
+ 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
+ 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64,
+ 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72,
+ 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x35, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74,
+ 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b,
+ 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x5f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x73, 0x22, 0x74, 0x0a, 0x14,
+ 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x74,
+ 0x65, 0x72, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69,
+ 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63,
+ 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72,
+ 0x65, 0x73, 0x74, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73,
+ 0x74, 0x73, 0x22, 0x56, 0x0a, 0x12, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x6e,
+ 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b,
+ 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72,
+ 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70,
+ 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x32, 0xd8, 0x1c, 0x0a, 0x1e, 0x49,
+ 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a,
+ 0x07, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
+ 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72,
+ 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e,
0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
- 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65,
- 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
+ 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x6d, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65,
+ 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61,
+ 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81,
+ 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12,
+ 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69,
+ 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
+ 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
+ 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72,
+ 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72,
+ 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a,
+ 0x13, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61,
+ 0x72, 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68,
+ 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
+ 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b,
+ 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
+ 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b,
+ 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65,
+ 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72,
+ 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56,
+ 0x32, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
- 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b,
- 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
+ 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73,
+ 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
- 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f,
- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d,
- 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d,
- 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94,
- 0x01, 0x0a, 0x13, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78,
- 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72,
- 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72,
+ 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64,
+ 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
+ 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
- 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79,
- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f,
- 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12,
+ 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69,
+ 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
+ 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62,
+ 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x40, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
+ 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72,
+ 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30,
+ 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
+ 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
+ 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
+ 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
+ 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x50,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
+ 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56,
+ 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13, 0x4c, 0x69,
+ 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
+ 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65,
+ 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
+ 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50,
+ 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68,
- 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f,
- 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e,
+ 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67,
+ 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69,
+ 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
+ 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x46,
+ 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e,
0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
- 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b,
- 0x73, 0x56, 0x32, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f,
- 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e,
+ 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52,
+ 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a,
+ 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
+ 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e,
0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
- 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f,
- 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a,
- 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
- 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53,
- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
- 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65,
- 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x9c, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65,
- 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x12, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
- 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
- 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65,
- 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
- 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64,
- 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73,
- 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72,
- 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
- 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
- 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x09, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
- 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
- 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a,
- 0x0b, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, 0x0a, 0x11, 0x53, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x12,
+ 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69,
+ 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
+ 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x69,
0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x13,
- 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62,
- 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
- 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x62, 0x6c,
- 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61,
- 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78,
- 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69,
- 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
- 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
- 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79,
- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a,
- 0x0c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x36, 0x2e,
+ 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a,
+ 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x36, 0x2e,
0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65,
+ 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
- 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e,
- 0x67, 0x52, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a,
- 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
- 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
- 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73,
- 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x90, 0x01, 0x0a, 0x11,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56,
- 0x32, 0x12, 0x3b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
- 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
- 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c,
- 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
- 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
- 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x81,
- 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12,
- 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69,
- 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
- 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
- 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65,
- 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01,
+ 0x12, 0x6d, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54,
+ 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69,
0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31,
- 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
- 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
- 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x73, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
- 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
- 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61,
- 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
- 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65,
- 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69,
+ 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x73, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69,
0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f,
- 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53,
- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
- 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65,
- 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e,
- 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
- 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65,
- 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e,
+ 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54,
+ 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e,
0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61,
0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70,
- 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65,
- 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97,
- 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61,
- 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
- 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
- 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64,
- 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a,
- 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76,
- 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f,
- 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
- 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69,
- 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01,
- 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69,
- 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x38, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
- 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
+ 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x30, 0x01, 0x12, 0x97, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73,
+ 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e,
+ 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73,
+ 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x97, 0x01, 0x0a,
+ 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65,
+ 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63,
+ 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63,
+ 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72,
+ 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
+ 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64,
+ 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65,
+ 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67,
+ 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74,
+ 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x13,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74,
+ 0x6f, 0x72, 0x79, 0x12, 0x3d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61,
+ 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72,
+ 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64,
+ 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64,
+ 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x30, 0x01, 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65,
+ 0x72, 0x65, 0x73, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68,
- 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f,
- 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7f, 0x0a, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e,
- 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78,
- 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
- 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37,
- 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76,
- 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72,
- 0x70, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, 0x6a, 0x65,
- 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74,
+ 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69,
+ 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63,
+ 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65,
+ 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go
index d53e03c9..77590da9 100644
--- a/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go
+++ b/exchange/event_provider_api/pb/goadesign_goagen_event_provider_api.pb.go
@@ -402,6 +402,8 @@ type Block struct {
Events []*BlockEvent `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"`
// Indicates whether the block is the latest one available in the event provider
InSync bool `protobuf:"varint,4,opt,name=in_sync,json=inSync,proto3" json:"in_sync,omitempty"`
+ // Block timestamp in UNIX millis.
+ Time int64 `protobuf:"zigzag64,5,opt,name=time,proto3" json:"time,omitempty"`
}
func (x *Block) Reset() {
@@ -464,6 +466,13 @@ func (x *Block) GetInSync() bool {
return false
}
+func (x *Block) GetTime() int64 {
+ if x != nil {
+ return x.Time
+ }
+ return 0
+}
+
type BlockEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1555,7 +1564,7 @@ var file_goadesign_goagen_event_provider_api_proto_rawDesc = []byte{
0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65,
0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70,
0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22,
- 0x8a, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
+ 0x9e, 0x01, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x65,
@@ -1563,198 +1572,199 @@ var file_goadesign_goagen_event_provider_api_proto_rawDesc = []byte{
0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69,
0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65,
0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x6a, 0x0a, 0x0a,
- 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79,
- 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79,
- 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74,
- 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78,
- 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x73, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42,
- 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16,
- 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06,
- 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f,
- 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
- 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xb7, 0x01,
- 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
- 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04,
+ 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65,
+ 0x22, 0x6a, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x19,
+ 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
+ 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c,
+ 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x73, 0x0a, 0x18,
+ 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50,
+ 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b,
+ 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65,
+ 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x75,
+ 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0d, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c,
+ 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a,
+ 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f,
+ 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f,
+ 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x12, 0x38, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
+ 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
+ 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xca, 0x01, 0x0a, 0x0e,
+ 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x14,
+ 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74,
+ 0x79, 0x70, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02,
+ 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x09,
+ 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x30, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
+ 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x52, 0x50, 0x43, 0x2e, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x52, 0x08, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x54,
+ 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
+ 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
+ 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76,
+ 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5a, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69,
+ 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65,
+ 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67,
+ 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x74, 0x69, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f,
+ 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68,
+ 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69,
+ 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1a,
+ 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
+ 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x05,
+ 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69,
+ 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52,
+ 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x54, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43,
+ 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65,
+ 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a,
+ 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76,
- 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76,
- 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a,
- 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65,
- 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70,
- 0x69, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f,
- 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xca, 0x01, 0x0a, 0x0e, 0x42, 0x6c, 0x6f, 0x63,
- 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x12, 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c,
- 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x68,
- 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69,
- 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x2e,
- 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x74,
- 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x54, 0x78, 0x48, 0x61, 0x73,
- 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x3a, 0x02, 0x38, 0x01, 0x22, 0x5a, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x42, 0x6c, 0x6f,
- 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c,
- 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04,
- 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65,
- 0x22, 0x65, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a,
- 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
- 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
- 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
- 0x16, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43,
- 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x65,
- 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
- 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f,
- 0x61, 0x70, 0x69, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
- 0x50, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63,
- 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f,
- 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x61, 0x73,
- 0x69, 0x63, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x62, 0x6c, 0x6f,
- 0x63, 0x6b, 0x22, 0x54, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f,
- 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52,
- 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74,
- 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74,
- 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01,
- 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f,
- 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f,
- 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0xcc, 0x02, 0x0a,
- 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
- 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
- 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65,
- 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
- 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
- 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a, 0x0b, 0x74, 0x78, 0x73,
- 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29,
- 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f,
- 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x0a, 0x74, 0x78, 0x73, 0x52, 0x65,
- 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x62,
- 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
- 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74,
- 0x52, 0x10, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65,
- 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70,
- 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x65, 0x6e, 0x64,
- 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf9, 0x01, 0x0a, 0x15,
- 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69,
- 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x69,
- 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12,
- 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x12, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x19,
- 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12,
- 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, 0x65, 0x76, 0x65,
- 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e,
- 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41,
- 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73,
- 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x07, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x17,
- 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52,
- 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x62, 0x0a, 0x09, 0x41, 0x42, 0x43, 0x49, 0x45,
- 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72,
- 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65,
- 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70,
- 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52,
- 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0d, 0x41,
- 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03,
- 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
- 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3b, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42,
- 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67,
- 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69,
- 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
- 0x74, 0x22, 0x89, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f,
- 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72,
- 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c,
- 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x32, 0xd3, 0x06,
- 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x41,
- 0x50, 0x49, 0x12, 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48,
- 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72,
+ 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c, 0x6f,
+ 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x61,
+ 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
+ 0x22, 0xcc, 0x02, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a,
+ 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68,
+ 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74,
+ 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b,
+ 0x54, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0e, 0x62,
+ 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x4a, 0x0a,
+ 0x0b, 0x74, 0x78, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x0a, 0x74,
+ 0x78, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x62, 0x65, 0x67,
+ 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18,
+ 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72,
+ 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
+ 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x10, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x6c,
+ 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x1d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
+ 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52,
+ 0x0e, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22,
+ 0xf9, 0x01, 0x0a, 0x15, 0x41, 0x42, 0x43, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a,
+ 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12,
+ 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69,
+ 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65,
+ 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74,
+ 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x35, 0x0a,
+ 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
+ 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61,
+ 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63,
+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61,
+ 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x22, 0x62, 0x0a, 0x09, 0x41,
+ 0x42, 0x43, 0x49, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x0a,
+ 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x21, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
+ 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
+ 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22,
+ 0x37, 0x0a, 0x0d, 0x41, 0x42, 0x43, 0x49, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+ 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
+ 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x3b, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41,
+ 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74,
+ 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
+ 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, 0x06, 0x68,
+ 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43,
+ 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65,
+ 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0c, 0x0a, 0x01,
+ 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x76, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x01, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x6c,
+ 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x52,
+ 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x6c, 0x6f, 0x63,
+ 0x6b, 0x32, 0xd3, 0x06, 0x0a, 0x10, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x41, 0x50, 0x49, 0x12, 0x6a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74,
+ 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x2e, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47,
+ 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61,
- 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x2b, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
- 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74,
- 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75,
- 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65,
- 0x69, 0x67, 0x68, 0x74, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f,
- 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
- 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76,
- 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c,
- 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42,
- 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65,
- 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x75, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65,
+ 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74,
- 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x11, 0x47, 0x65, 0x74,
- 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2c,
+ 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f,
+ 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x72, 0x0a, 0x11, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c,
0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f,
- 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e,
- 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65,
+ 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65,
0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70,
- 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
- 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x47,
- 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50,
- 0x43, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
- 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d,
+ 0x69, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a,
+ 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52,
+ 0x50, 0x43, 0x12, 0x2c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
- 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45,
- 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
- 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70,
- 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41,
- 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72,
- 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42,
- 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43,
- 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65,
- 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f,
- 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43,
- 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65,
- 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x65, 0x76,
- 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69,
- 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72,
- 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
+ 0x1a, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
+ 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76,
+ 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x52, 0x50, 0x43, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72,
+ 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75,
+ 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f,
+ 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x73,
+ 0x74, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42,
+ 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x65, 0x76, 0x65,
+ 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e,
+ 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47,
+ 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1a, 0x47, 0x65,
+ 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
+ 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
+ 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x36, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
+ 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x42, 0x43, 0x49, 0x42, 0x6c, 0x6f, 0x63,
+ 0x6b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x41, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2f, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x70, 0x62,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go
index 2af07491..895a7431 100644
--- a/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go
+++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go
@@ -31,6 +31,15 @@ type OracleListRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+
+ // Filter by oracle symbol
+ Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"`
+ // Filter by oracle type
+ OracleType string `protobuf:"bytes,2,opt,name=oracle_type,json=oracleType,proto3" json:"oracle_type,omitempty"`
+ // Number of results per page
+ PerPage int32 `protobuf:"zigzag32,3,opt,name=per_page,json=perPage,proto3" json:"per_page,omitempty"`
+ // Pagination token from previous response
+ Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"`
}
func (x *OracleListRequest) Reset() {
@@ -65,12 +74,43 @@ func (*OracleListRequest) Descriptor() ([]byte, []int) {
return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{0}
}
+func (x *OracleListRequest) GetSymbol() string {
+ if x != nil {
+ return x.Symbol
+ }
+ return ""
+}
+
+func (x *OracleListRequest) GetOracleType() string {
+ if x != nil {
+ return x.OracleType
+ }
+ return ""
+}
+
+func (x *OracleListRequest) GetPerPage() int32 {
+ if x != nil {
+ return x.PerPage
+ }
+ return 0
+}
+
+func (x *OracleListRequest) GetToken() string {
+ if x != nil {
+ return x.Token
+ }
+ return ""
+}
+
type OracleListResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
+ // List of oracles
Oracles []*Oracle `protobuf:"bytes,1,rep,name=oracles,proto3" json:"oracles,omitempty"`
+ // Next tokens for pagination
+ Next []string `protobuf:"bytes,2,rep,name=next,proto3" json:"next,omitempty"`
}
func (x *OracleListResponse) Reset() {
@@ -112,6 +152,13 @@ func (x *OracleListResponse) GetOracles() []*Oracle {
return nil
}
+func (x *OracleListResponse) GetNext() []string {
+ if x != nil {
+ return x.Next
+ }
+ return nil
+}
+
type Oracle struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -825,129 +872,136 @@ var file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc = []byte{
0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61,
0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x69,
0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f,
- 0x72, 0x70, 0x63, 0x22, 0x13, 0x0a, 0x11, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73,
- 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x12, 0x4f, 0x72, 0x61, 0x63,
- 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36,
- 0x0a, 0x07, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63,
- 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x52, 0x07, 0x6f,
- 0x72, 0x61, 0x63, 0x6c, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x4f, 0x72, 0x61, 0x63, 0x6c,
- 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73,
- 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x62, 0x61, 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75,
- 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a,
- 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14,
- 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70,
- 0x72, 0x69, 0x63, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x79,
- 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65,
- 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f,
- 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75,
- 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61,
- 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
- 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72,
- 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f,
- 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53,
- 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x25, 0x0a, 0x0d, 0x50, 0x72,
- 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70,
- 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63,
- 0x65, 0x22, 0x50, 0x0a, 0x0e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63,
- 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74,
- 0x65, 0x72, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x50, 0x61, 0x79,
- 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73,
- 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73,
- 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65,
- 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71,
- 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72,
- 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f,
- 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74,
- 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65,
- 0x53, 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x4e, 0x0a, 0x0f, 0x50,
- 0x72, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b,
- 0x0a, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23,
- 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c,
- 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x73,
- 0x75, 0x6c, 0x74, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x22, 0xd7, 0x01, 0x0a, 0x0d,
- 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a,
- 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21,
- 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f,
- 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79,
- 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61,
- 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
- 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74,
- 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b,
- 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72,
- 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50,
- 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b,
- 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a,
- 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
+ 0x72, 0x70, 0x63, 0x22, 0x7d, 0x0a, 0x11, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73,
+ 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62,
+ 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c,
0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70,
- 0x65, 0x22, 0x4a, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69,
- 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12,
- 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3d, 0x0a,
- 0x1c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d,
- 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a,
- 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0x70, 0x0a, 0x1d,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61,
- 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a,
- 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72,
- 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
- 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x32, 0x8d,
- 0x04, 0x0a, 0x12, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x61, 0x63,
- 0x6c, 0x65, 0x52, 0x50, 0x43, 0x12, 0x5f, 0x0a, 0x0a, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c,
- 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c,
- 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69,
- 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f,
- 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12,
- 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63,
- 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x07, 0x50, 0x72, 0x69, 0x63,
- 0x65, 0x56, 0x32, 0x12, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65,
- 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x11, 0x52, 0x07, 0x70, 0x65, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05,
+ 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b,
+ 0x65, 0x6e, 0x22, 0x60, 0x0a, 0x12, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x72, 0x61, 0x63,
+ 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x67, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73,
- 0x12, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61,
- 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72,
- 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x69, 0x6e,
- 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72,
- 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x53, 0x74,
- 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b,
- 0x65, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61,
- 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53,
+ 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x52, 0x07, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x65, 0x78, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f,
+ 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61,
+ 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74,
+ 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+ 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f,
+ 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05,
+ 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69,
+ 0x63, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62,
+ 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x53, 0x79,
+ 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79,
+ 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74,
+ 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c,
+ 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72,
+ 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x61, 0x63,
+ 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53, 0x63, 0x61,
+ 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x25, 0x0a, 0x0d, 0x50, 0x72, 0x69, 0x63,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69,
+ 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x22,
+ 0x50, 0x0a, 0x0e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f,
+ 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x50,
+ 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x56, 0x32, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
+ 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f,
+ 0x61, 0x64, 0x56, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x79, 0x6d,
+ 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x53,
+ 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x73,
+ 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f,
+ 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63,
+ 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f,
+ 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x61,
+ 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53, 0x63,
+ 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x4e, 0x0a, 0x0f, 0x50, 0x72, 0x69,
+ 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06,
+ 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69,
+ 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f,
+ 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c,
+ 0x74, 0x52, 0x06, 0x70, 0x72, 0x69, 0x63, 0x65, 0x73, 0x22, 0xd7, 0x01, 0x0a, 0x0d, 0x50, 0x72,
+ 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62,
+ 0x61, 0x73, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c,
+ 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65,
+ 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65,
+ 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f,
+ 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72,
+ 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74,
+ 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65,
+ 0x74, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69,
+ 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61,
+ 0x73, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x62, 0x61, 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71,
+ 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22,
+ 0x4a, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a,
+ 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12,
+ 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3d, 0x0a, 0x1c, 0x53,
0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72,
- 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x19,
- 0x5a, 0x17, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61,
- 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
+ 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d,
+ 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0x70, 0x0a, 0x1d, 0x53, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b,
+ 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70,
+ 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63,
+ 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
+ 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x32, 0x8d, 0x04, 0x0a,
+ 0x12, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65,
+ 0x52, 0x50, 0x43, 0x12, 0x5f, 0x0a, 0x0a, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73,
+ 0x74, 0x12, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72,
+ 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c,
+ 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70,
+ 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x2e,
+ 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72,
+ 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x07, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56,
+ 0x32, 0x12, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72,
+ 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x32,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50,
+ 0x72, 0x69, 0x63, 0x65, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67,
+ 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x12, 0x29,
+ 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c,
+ 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63,
+ 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65,
+ 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63,
+ 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65,
+ 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74,
+ 0x73, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72,
+ 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50,
+ 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x42, 0x79, 0x4d, 0x61, 0x72, 0x6b, 0x65,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x19, 0x5a, 0x17,
+ 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c,
+ 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go
index 059fd05f..a8e14e69 100644
--- a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go
+++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go
@@ -665,6 +665,10 @@ type DerivativePosition struct {
FundingLast string `protobuf:"bytes,14,opt,name=funding_last,json=fundingLast,proto3" json:"funding_last,omitempty"`
// Net funding fees since position opened
FundingSum string `protobuf:"bytes,15,opt,name=funding_sum,json=fundingSum,proto3" json:"funding_sum,omitempty"`
+ // Cumulative funding entry of the position
+ CumulativeFundingEntry string `protobuf:"bytes,16,opt,name=cumulative_funding_entry,json=cumulativeFundingEntry,proto3" json:"cumulative_funding_entry,omitempty"`
+ // Effective cumulative funding entry of the position
+ EffectiveCumulativeFundingEntry string `protobuf:"bytes,17,opt,name=effective_cumulative_funding_entry,json=effectiveCumulativeFundingEntry,proto3" json:"effective_cumulative_funding_entry,omitempty"`
}
func (x *DerivativePosition) Reset() {
@@ -797,6 +801,20 @@ func (x *DerivativePosition) GetFundingSum() string {
return ""
}
+func (x *DerivativePosition) GetCumulativeFundingEntry() string {
+ if x != nil {
+ return x.CumulativeFundingEntry
+ }
+ return ""
+}
+
+func (x *DerivativePosition) GetEffectiveCumulativeFundingEntry() string {
+ if x != nil {
+ return x.EffectiveCumulativeFundingEntry
+ }
+ return ""
+}
+
type AccountPortfolioBalancesRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1215,7 +1233,7 @@ var file_goadesign_goagen_injective_portfolio_rpc_proto_rawDesc = []byte{
0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65,
0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72,
- 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x22, 0xf4, 0x03, 0x0a, 0x12, 0x44,
+ 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x22, 0xfb, 0x04, 0x0a, 0x12, 0x44,
0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72,
@@ -1247,89 +1265,98 @@ var file_goadesign_goagen_injective_portfolio_rpc_proto_rawDesc = []byte{
0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x73, 0x74,
0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x6d, 0x18,
0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75,
- 0x6d, 0x22, 0x5c, 0x0a, 0x1f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74,
- 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
- 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a,
- 0x03, 0x75, 0x73, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x75, 0x73, 0x64, 0x22,
- 0x6c, 0x0a, 0x20, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f,
- 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
- 0x65, 0x73, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x22, 0xed, 0x01,
- 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e,
- 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61,
- 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63,
- 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x0d,
- 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f,
- 0x69, 0x6e, 0x52, 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73,
- 0x12, 0x4e, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18,
- 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
- 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e,
- 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
- 0x65, 0x56, 0x32, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73,
- 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x04, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x64, 0x22, 0x81, 0x01,
- 0x0a, 0x1d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50,
- 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
- 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
- 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f,
- 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f,
- 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16,
- 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73,
- 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74,
- 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09,
- 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0x9d, 0x04, 0x0a, 0x15, 0x49, 0x6e,
- 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f,
- 0x52, 0x50, 0x43, 0x12, 0x6b, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x6f, 0x6c, 0x64,
- 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f,
- 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f,
- 0x6b, 0x65, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f,
- 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65,
- 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x77, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66,
- 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65,
- 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69,
- 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x41, 0x63,
- 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61,
- 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69,
- 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72,
- 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75,
- 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e,
- 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x16,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72,
- 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69,
- 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63,
- 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f,
- 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37,
- 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66,
- 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41,
+ 0x6d, 0x12, 0x38, 0x0a, 0x18, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f,
+ 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46,
+ 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x4b, 0x0a, 0x22, 0x65,
+ 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x74, 0x72,
+ 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69,
+ 0x76, 0x65, 0x43, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x64,
+ 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x5c, 0x0a, 0x1f, 0x41, 0x63, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61,
+ 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64,
+ 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x73, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x03, 0x75, 0x73, 0x64, 0x22, 0x6c, 0x0a, 0x20, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
+ 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x09, 0x70, 0x6f,
+ 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
+ 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f,
+ 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69,
+ 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66,
+ 0x6f, 0x6c, 0x69, 0x6f, 0x22, 0xed, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c,
+ 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6c, 0x61,
+ 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x42,
+ 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69,
+ 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c,
+ 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x61,
+ 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c,
+ 0x5f, 0x75, 0x73, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x55, 0x73, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x1d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41,
0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1c, 0x5a, 0x1a, 0x2f, 0x69, 0x6e,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
+ 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
+ 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x1e, 0x53, 0x74, 0x72,
+ 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f,
+ 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
+ 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
+ 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a,
+ 0x0d, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x32, 0x9d, 0x04, 0x0a, 0x15, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f,
+ 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x50, 0x43, 0x12, 0x6b, 0x0a, 0x0c, 0x54, 0x6f,
+ 0x6b, 0x65, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a,
+ 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f,
+ 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63,
+ 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72,
+ 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x30, 0x2e, 0x69, 0x6e,
0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69,
- 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72,
+ 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e,
+ 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f,
+ 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50,
+ 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74,
+ 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x38, 0x2e,
+ 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f,
+ 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50,
+ 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70,
+ 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c,
+ 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63,
+ 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x36, 0x2e,
+ 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f,
+ 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76,
+ 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72,
+ 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01,
+ 0x42, 0x1c, 0x5a, 0x1a, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70,
+ 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/go.mod b/go.mod
index b2f1c323..b3acc2d5 100644
--- a/go.mod
+++ b/go.mod
@@ -12,7 +12,6 @@ require (
cosmossdk.io/x/upgrade v0.1.4
github.com/CosmWasm/wasmd v0.53.2
github.com/InjectiveLabs/suplog v1.3.3
- github.com/bandprotocol/bandchain-packet v0.0.0-00010101000000-000000000000
github.com/bcp-innovations/hyperlane-cosmos v0.0.0-00010101000000-000000000000
github.com/btcsuite/btcd v0.24.2
github.com/btcsuite/btcd/btcutil v1.1.6
@@ -253,7 +252,7 @@ replace (
github.com/bcp-innovations/hyperlane-cosmos => github.com/InjectiveLabs/hyperlane-cosmos v1.0.1-inj
github.com/coder/websocket => github.com/InjectiveLabs/websocket v1.8.13
- github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v1.0.1-inj.4
+ github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v1.0.1-inj.6
github.com/cometbft/cometbft/api => github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2
github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj
@@ -270,7 +269,7 @@ replace (
github.com/miguelmota/go-ethereum-hdwallet => github.com/InjectiveLabs/go-ethereum-hdwallet v0.1.2
- github.com/skip-mev/block-sdk/v2 => github.com/InjectiveLabs/block-sdk/v2 v2.5.1-inj.8
+ github.com/skip-mev/block-sdk/v2 => github.com/InjectiveLabs/block-sdk/v2 v2.5.1-inj.9
github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
github.com/tyler-smith/go-bip39 => github.com/InjectiveLabs/go-bip39 v1.1.0
diff --git a/go.sum b/go.sum
index 2ebc440a..d7f73e44 100644
--- a/go.sum
+++ b/go.sum
@@ -65,10 +65,8 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1 h1:8nn+rsCvTq9axyEh382S0PFLBeaFwNsT43IrPWzctRU=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE=
-github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 h1:ZnvCV/lzjWmBwuGbkAz+okucfJEyEzkU9GYK3tKU9cU=
-github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1/go.mod h1:QELTDYiwnbAqIgTF9zeKr+hVlK6eVyt6Nxmh6/1mmzQ=
-github.com/InjectiveLabs/cometbft v1.0.1-inj.4 h1:xBu434PJvUZI7fHP8wUs+fRlfqI+flpYbvI5mlE3W6s=
-github.com/InjectiveLabs/cometbft v1.0.1-inj.4/go.mod h1:RgHHndb7wdtm9etmVj4tDn1NynC9YKIEJW9UUI3FCn4=
+github.com/InjectiveLabs/cometbft v1.0.1-inj.6 h1:Q+uiKcth/gU2RKjFiFk+7BXlqW6hEUyqYoj3x2uD7ug=
+github.com/InjectiveLabs/cometbft v1.0.1-inj.6/go.mod h1:RgHHndb7wdtm9etmVj4tDn1NynC9YKIEJW9UUI3FCn4=
github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2 h1:uXsmBVeBickTjZ2GqPNYXShoboRw1m2Cq1bKv4QCe0o=
github.com/InjectiveLabs/cometbft/api v1.0.0-inj.2/go.mod h1:Ivh6nSCTJPQOyfQo8dgnyu/T88it092sEqSrZSmTQN8=
github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj h1:8ggLVXSVF6hz8VFB5ly1l9os4G4roqSsIzsGtH/8W70=
diff --git a/injective_data/chain_messages_list.json b/injective_data/chain_messages_list.json
index a1753cc8..cadea152 100644
--- a/injective_data/chain_messages_list.json
+++ b/injective_data/chain_messages_list.json
@@ -53,6 +53,7 @@
"injective.exchange.v1beta1.OrderData",
"injective.exchange.v1beta1.SpotMarketOrderResults",
"injective.exchange.v2.DerivativeMarketOrderResults",
+ "injective.exchange.v2.MsgActivatePostOnlyMode",
"injective.exchange.v2.MsgActivateStakeGrant",
"injective.exchange.v2.MsgAdminUpdateBinaryOptionsMarket",
"injective.exchange.v2.MsgAtomicMarketOrderFeeMultiplierSchedule",
@@ -124,13 +125,12 @@
"injective.ocr.v1beta1.MsgUpdateFeed",
"injective.ocr.v1beta1.MsgUpdateParams",
"injective.ocr.v1beta1.MsgWithdrawFeedRewardPool",
- "injective.oracle.v1beta1.MsgRelayBandRates",
+ "injective.oracle.v1beta1.MsgRelayChainlinkPrices",
"injective.oracle.v1beta1.MsgRelayCoinbaseMessages",
"injective.oracle.v1beta1.MsgRelayPriceFeedPrice",
"injective.oracle.v1beta1.MsgRelayProviderPrices",
"injective.oracle.v1beta1.MsgRelayPythPrices",
"injective.oracle.v1beta1.MsgRelayStorkPrices",
- "injective.oracle.v1beta1.MsgRequestBandIBCRates",
"injective.oracle.v1beta1.MsgUpdateParams",
"injective.peggy.v1.MsgBlacklistEthereumAddresses",
"injective.peggy.v1.MsgCancelSendToEth",
diff --git a/injective_data/ofac.json b/injective_data/ofac.json
index 413db0c0..cc19ac90 100644
--- a/injective_data/ofac.json
+++ b/injective_data/ofac.json
@@ -33,6 +33,7 @@
"0x57ec89a0c056163a0314e413320f9b3abe761259",
"0x5a14e72060c11313e38738009254a90968f58f51",
"0x5a7a51bfb49f190e5a6060a5bc6052ac14a3b59f",
+ "0x5d5b5dafecbf31bdb08bfd3edad4f2694372d0ef",
"0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2",
"0x67d40ee1a85bf4a4bb7ffae16de985e8427b6b45",
"0x6be0ae71e6c41f2f9d0d1a3b8d0f75e6f6a0b46e",
@@ -58,6 +59,7 @@
"0xa7e5d5a720f06526557c513402f2e6b5fa20b008",
"0xb338962b92cd818d6aef0a32a9ecd01212a71f33",
"0xb6f5ec1a0a9cd1526536d3f0426c429529471f40",
+ "0xc103b7dc095c904b92081eef0c1640081ec01c10",
"0xc2a3829f459b3edd87791c74cd45402ba0a20be3",
"0xc455f7fd3e0e12afd51fba5c106909934d8a0e4a",
"0xd0975b32cea532eadddfc9c60481976e39db3472",
@@ -67,6 +69,7 @@
"0xdb2720ebad55399117ddb4c4a4afd9a4ccada8fe",
"0xdcbeffbecce100cce9e4b153c4e15cb885643193",
"0xe1d865c3d669dcc8c57c8d023140cb204e672ee4",
+ "0xe1e4c5e5ed8f03ae61b581e2def126025f2b9401",
"0xe3d35f68383732649669aa990832e017340dbca5",
"0xe7aa314c77f4233c18c6cc84384a9247c0cf367b",
"0xe950dc316b836e4eefb8308bf32bf7c72a1358ff",
diff --git a/proto/injective/evm/v1/tx.proto b/proto/injective/evm/v1/tx.proto
index 7db46d17..72c903a1 100644
--- a/proto/injective/evm/v1/tx.proto
+++ b/proto/injective/evm/v1/tx.proto
@@ -31,7 +31,8 @@ message MsgEthereumTx {
option (gogoproto.goproto_getters) = false;
// data is inner transaction data of the Ethereum transaction
- google.protobuf.Any data = 1;
+ google.protobuf.Any data = 1
+ [ (cosmos_proto.accepts_interface) = "injective.evm.v1.TxData" ];
// size is the encoded storage size of the transaction (DEPRECATED)
double size = 2 [ (gogoproto.jsontag) = "-" ];
@@ -52,7 +53,7 @@ message MsgEthereumTx {
// AllowUnprotectedTxs parameter is disabled.
message LegacyTx {
option (gogoproto.goproto_getters) = false;
- option (cosmos_proto.implements_interface) = "TxData";
+ option (cosmos_proto.implements_interface) = "injective.evm.v1.TxData";
// nonce corresponds to the account nonce (transaction sequence).
uint64 nonce = 1;
@@ -80,7 +81,7 @@ message LegacyTx {
// AccessListTx is the data of EIP-2930 access list transactions.
message AccessListTx {
option (gogoproto.goproto_getters) = false;
- option (cosmos_proto.implements_interface) = "TxData";
+ option (cosmos_proto.implements_interface) = "injective.evm.v1.TxData";
// chain_id of the destination EVM chain
string chain_id = 1 [
@@ -120,7 +121,7 @@ message AccessListTx {
// DynamicFeeTx is the data of EIP-1559 dinamic fee transactions.
message DynamicFeeTx {
option (gogoproto.goproto_getters) = false;
- option (cosmos_proto.implements_interface) = "TxData";
+ option (cosmos_proto.implements_interface) = "injective.evm.v1.TxData";
// chain_id of the destination EVM chain
string chain_id = 1 [
@@ -184,6 +185,9 @@ message MsgEthereumTxResponse {
uint64 gas_used = 5;
// include the block hash for json-rpc to use
bytes block_hash = 6;
+ // execution_gas_used specifies the actual gas consumed during EVM execution.
+ // This is used for accurate gas estimation.
+ uint64 execution_gas_used = 7;
}
// MsgUpdateParams defines a Msg for updating the x/evm module parameters.
diff --git a/proto/injective/exchange/v1beta1/exchange.proto b/proto/injective/exchange/v1beta1/exchange.proto
index 93bfbbd0..f50ec015 100644
--- a/proto/injective/exchange/v1beta1/exchange.proto
+++ b/proto/injective/exchange/v1beta1/exchange.proto
@@ -20,8 +20,12 @@ message OpenNotionalCap {
option (amino.name) = "injective.exchange.v1beta1.OpenNotionalCap";
oneof cap {
- OpenNotionalCapUncapped uncapped = 1 [(amino.oneof_name) = "uncapped"];
- OpenNotionalCapCapped capped = 2 [(amino.oneof_name) = "capped"];
+ OpenNotionalCapUncapped uncapped = 1
+ [ (amino.oneof_name) =
+ "injective.exchange.v1beta1.OpenNotionalCapUncapped" ];
+ OpenNotionalCapCapped capped = 2
+ [ (amino.oneof_name) =
+ "injective.exchange.v1beta1.OpenNotionalCapCapped" ];
}
}
@@ -828,6 +832,8 @@ enum ExecutionType {
LimitMatchNewOrder = 4;
MarketLiquidation = 5;
ExpiryMarketSettlement = 6;
+ OffsettingPosition = 7;
+ Synthetic = 8;
}
message SubaccountPosition {
diff --git a/proto/injective/exchange/v1beta1/query.proto b/proto/injective/exchange/v1beta1/query.proto
index cc2e1354..46dbc168 100644
--- a/proto/injective/exchange/v1beta1/query.proto
+++ b/proto/injective/exchange/v1beta1/query.proto
@@ -259,7 +259,7 @@ service Query {
rpc SubaccountPositions(QuerySubaccountPositionsRequest)
returns (QuerySubaccountPositionsResponse) {
option (google.api.http).get =
- "/injective/exchange/v1beta1/positions/{subaccount_id}";
+ "/injective/exchange/v1beta1/subaccount_positions/{subaccount_id}";
}
// Retrieves subaccount's position in market
diff --git a/proto/injective/exchange/v2/events.proto b/proto/injective/exchange/v2/events.proto
index 70c700fc..5f189b08 100644
--- a/proto/injective/exchange/v2/events.proto
+++ b/proto/injective/exchange/v2/events.proto
@@ -81,6 +81,10 @@ message EventBinaryOptionsMarketUpdate {
BinaryOptionsMarket market = 1 [ (gogoproto.nullable) = false ];
}
+message EventDerivativeMarketUpdate {
+ DerivativeMarket market = 1 [ (gogoproto.nullable) = false ];
+}
+
message EventNewSpotOrders {
string market_id = 1;
repeated SpotLimitOrder buy_orders = 2;
@@ -343,3 +347,13 @@ message SpotOrderV2Changes {
}
message EventDerivativePositionV2Migration { DerivativePosition position = 1; }
+
+message EventPositionTransfer {
+ string market_id = 1;
+ string source_subaccount_id = 2;
+ string destination_subaccount_id = 3;
+ string quantity = 4 [
+ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
+ (gogoproto.nullable) = false
+ ];
+}
\ No newline at end of file
diff --git a/proto/injective/exchange/v2/exchange.proto b/proto/injective/exchange/v2/exchange.proto
index bdacaf6a..39d507aa 100644
--- a/proto/injective/exchange/v2/exchange.proto
+++ b/proto/injective/exchange/v2/exchange.proto
@@ -4,6 +4,7 @@ package injective.exchange.v2;
import "gogoproto/gogo.proto";
import "amino/amino.proto";
import "cosmos/base/v1beta1/coin.proto";
+import "cosmos_proto/cosmos.proto";
import "injective/oracle/v1beta1/oracle.proto";
import "injective/exchange/v2/market.proto";
@@ -11,6 +12,18 @@ import "injective/exchange/v2/order.proto";
option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2";
+// EnforcedRestrictionsContract defines a contract with its pause event
+// signature
+message EnforcedRestrictionsContract {
+ option (gogoproto.equal) = true;
+ // EVM address of the contract
+ string contract_address = 1
+ [ (cosmos_proto.scalar) = "cosmos.AddressString" ];
+ // Pause event signature for the contract (e.g. "Pause()", or
+ // "Pause(address)"). If left empty, it will default to "Pause()".
+ string pause_event_signature = 2;
+}
+
enum ExecutionType {
UnspecifiedExecutionType = 0;
Market = 1;
@@ -20,6 +33,7 @@ enum ExecutionType {
MarketLiquidation = 5;
ExpiryMarketSettlement = 6;
OffsettingPosition = 7;
+ Synthetic = 8;
}
message Params {
@@ -208,6 +222,11 @@ message Params {
// mode will be enabled after the downtime-detector module detects a chain
// downtime
uint64 post_only_mode_blocks_amount_after_downtime = 35;
+
+ // Contracts that exchange will be listening to pause markets denominated in
+ // respective erc20: denoms, with their pause event signatures
+ repeated EnforcedRestrictionsContract enforced_restrictions_contracts = 36
+ [ (gogoproto.nullable) = false ];
}
message NextFundingTimestamp { int64 next_timestamp = 1; }
diff --git a/proto/injective/exchange/v2/market.proto b/proto/injective/exchange/v2/market.proto
index 71dd5028..c9614b24 100644
--- a/proto/injective/exchange/v2/market.proto
+++ b/proto/injective/exchange/v2/market.proto
@@ -2,8 +2,8 @@ syntax = "proto3";
package injective.exchange.v2;
import "gogoproto/gogo.proto";
-import "injective/oracle/v1beta1/oracle.proto";
import "amino/amino.proto";
+import "injective/oracle/v1beta1/oracle.proto";
option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2";
@@ -13,14 +13,30 @@ enum MarketStatus {
Paused = 2;
Demolished = 3;
Expired = 4;
+ ForcePaused = 5;
+}
+
+enum ForcePausedReason {
+ QuoteDenomPaused = 0;
+}
+
+message ForcePausedInfo {
+ ForcePausedReason reason = 1;
+ string mark_price_at_pausing = 2 [
+ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
+ (gogoproto.nullable) = true
+ ];
}
message OpenNotionalCap {
option (amino.name) = "injective.exchange.v2.OpenNotionalCap";
oneof cap {
- OpenNotionalCapUncapped uncapped = 1 [(amino.oneof_name) = "uncapped"];
- OpenNotionalCapCapped capped = 2 [(amino.oneof_name) = "capped"];
+ OpenNotionalCapUncapped uncapped = 1
+ [ (amino.oneof_name) =
+ "injective.exchange.v2.OpenNotionalCapUncapped" ];
+ OpenNotionalCapCapped capped = 2
+ [ (amino.oneof_name) = "injective.exchange.v2.OpenNotionalCapCapped" ];
}
}
@@ -103,6 +119,9 @@ message SpotMarket {
uint32 base_decimals = 14;
// quote token decimals
uint32 quote_decimals = 15;
+ // has_disabled_minimal_protocol_fee indicates whether the minimal protocol
+ // fee is disabled for the market
+ bool has_disabled_minimal_protocol_fee = 16;
}
// An object describing a binary options market in Injective Protocol.
@@ -178,6 +197,14 @@ message BinaryOptionsMarket {
// open_notional_cap defines the maximum open notional for the market
OpenNotionalCap open_notional_cap = 21 [ (gogoproto.nullable) = false ];
+
+ // has_disabled_minimal_protocol_fee indicates whether the minimal protocol
+ // fee is disabled for the market
+ bool has_disabled_minimal_protocol_fee = 22;
+
+ // force_paused_info defines additional info for force paused markets, only
+ // set when status == ForcePaused
+ ForcePausedInfo force_paused_info = 23;
}
// An object describing a derivative market in the Injective Futures Protocol.
@@ -265,6 +292,14 @@ message DerivativeMarket {
// open_notional_cap defines the maximum open notional for the market
OpenNotionalCap open_notional_cap = 22 [ (gogoproto.nullable) = false ];
+
+ // has_disabled_minimal_protocol_fee indicates whether the minimal protocol
+ // fee is disabled for the market
+ bool has_disabled_minimal_protocol_fee = 23;
+
+ // force_paused_info defines additional info for force paused markets, only
+ // set when status == ForcePaused
+ ForcePausedInfo force_paused_info = 24;
}
message DerivativeMarketSettlementInfo {
@@ -318,7 +353,13 @@ message ExpiryFuturesMarketInfo {
int64 twap_start_timestamp = 3;
// expiration_twap_start_price_cumulative defines the cumulative price for the
// start of the TWAP window (in human readable format)
+ // Deprecated: For correctly calculating the expiration price using TWAP, we
+ // need to keep the cumulative price at the start of TWAP calculation
+ // separately for the base asset and the quote asset. Use
+ // expiration_twap_start_base_cumulative_price and
+ // expiration_twap_start_quote_cumulative_price instead.
string expiration_twap_start_price_cumulative = 4 [
+ deprecated = true,
(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
(gogoproto.nullable) = false
];
@@ -328,6 +369,20 @@ message ExpiryFuturesMarketInfo {
(gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
(gogoproto.nullable) = false
];
+ // expiration_twap_start_base_cumulative_price defines the cumulative price
+ // for the base asset at the start of the TWAP calculation window (in human
+ // readable format)
+ string expiration_twap_start_base_cumulative_price = 6 [
+ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
+ (gogoproto.nullable) = false
+ ];
+ // expiration_twap_start_quote_cumulative_price defines the cumulative price
+ // for the quote asset at the start of the TWAP calculation window (in human
+ // readable format)
+ string expiration_twap_start_quote_cumulative_price = 7 [
+ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec",
+ (gogoproto.nullable) = false
+ ];
}
message PerpetualMarketInfo {
diff --git a/proto/injective/exchange/v2/proposal.proto b/proto/injective/exchange/v2/proposal.proto
index 53ac03fb..836c8d15 100644
--- a/proto/injective/exchange/v2/proposal.proto
+++ b/proto/injective/exchange/v2/proposal.proto
@@ -14,6 +14,12 @@ import "injective/oracle/v1beta1/oracle.proto";
option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types/v2";
+enum DisableMinimalProtocolFeeUpdate {
+ NoUpdate = 0;
+ False = 1;
+ True = 2;
+}
+
message SpotMarketParamUpdateProposal {
option (amino.name) = "exchange/SpotMarketParamUpdateProposal";
option (gogoproto.equal) = false;
@@ -73,6 +79,11 @@ message SpotMarketParamUpdateProposal {
uint32 base_decimals = 13;
// quote token decimals
uint32 quote_decimals = 14;
+
+ // has_disabled_minimal_protocol_fee defines whether the minimal protocol fee
+ // is disabled for the market
+ DisableMinimalProtocolFeeUpdate has_disabled_minimal_protocol_fee = 15
+ [ (gogoproto.nullable) = true ];
}
enum ExchangeType {
@@ -476,6 +487,10 @@ message DerivativeMarketParamUpdateProposal {
];
// open_notional_cap defines the maximum open notional for the market
OpenNotionalCap open_notional_cap = 19 [ (gogoproto.nullable) = true ];
+ // has_disabled_minimal_protocol_fee defines whether the minimal protocol fee
+ // is disabled for the market
+ DisableMinimalProtocolFeeUpdate has_disabled_minimal_protocol_fee = 20
+ [ (gogoproto.nullable) = true ];
}
message AdminInfo {
@@ -572,6 +587,10 @@ message BinaryOptionsMarketParamUpdateProposal {
];
// open_notional_cap defines the maximum open notional for the market
OpenNotionalCap open_notional_cap = 17 [ (gogoproto.nullable) = true ];
+ // has_disabled_minimal_protocol_fee defines whether the minimal protocol fee
+ // is disabled for the market
+ DisableMinimalProtocolFeeUpdate has_disabled_minimal_protocol_fee = 18
+ [ (gogoproto.nullable) = true ];
}
message ProviderOracleParams {
diff --git a/proto/injective/exchange/v2/query.proto b/proto/injective/exchange/v2/query.proto
index 734ffbac..c4308a8e 100644
--- a/proto/injective/exchange/v2/query.proto
+++ b/proto/injective/exchange/v2/query.proto
@@ -262,14 +262,14 @@ service Query {
rpc PositionsInMarket(QueryPositionsInMarketRequest)
returns (QueryPositionsInMarketResponse) {
option (google.api.http).get =
- "/injective/exchange/v2/positions/{market_id}";
+ "/injective/exchange/v2/positions_in_market/{market_id}";
}
// Retrieves subaccount's positions
rpc SubaccountPositions(QuerySubaccountPositionsRequest)
returns (QuerySubaccountPositionsResponse) {
option (google.api.http).get =
- "/injective/exchange/v2/positions/{subaccount_id}";
+ "/injective/exchange/v2/subaccount_positions/{subaccount_id}";
}
// Retrieves subaccount's position in market
diff --git a/proto/injective/exchange/v2/tx.proto b/proto/injective/exchange/v2/tx.proto
index 0162d83f..f06e4ca1 100644
--- a/proto/injective/exchange/v2/tx.proto
+++ b/proto/injective/exchange/v2/tx.proto
@@ -222,8 +222,14 @@ service Msg {
MsgAtomicMarketOrderFeeMultiplierSchedule)
returns (MsgAtomicMarketOrderFeeMultiplierScheduleResponse);
+ // MsgCancelPostOnlyMode defines a message to turn off the post-only mode
rpc CancelPostOnlyMode(MsgCancelPostOnlyMode)
returns (MsgCancelPostOnlyModeResponse);
+
+ // MsgActivatePostOnlyMode defines a message to turn on the post-only mode for
+ // a number of blocks
+ rpc ActivatePostOnlyMode(MsgActivatePostOnlyMode)
+ returns (MsgActivatePostOnlyModeResponse);
}
message MsgUpdateSpotMarket {
@@ -1580,3 +1586,19 @@ message MsgCancelPostOnlyMode {
// MsgCancelPostOnlyModeResponse defines the response for MsgCancelPostOnlyMode
message MsgCancelPostOnlyModeResponse {}
+
+// MsgActivatePostOnlyMode defines a message to turn on the post-only mode for a
+// number of blocks
+message MsgActivatePostOnlyMode {
+ option (amino.name) = "exchange/MsgActivatePostOnlyMode";
+ option (cosmos.msg.v1.signer) = "sender";
+
+ // the sender's Injective address
+ string sender = 1;
+ // the number of blocks to activate post-only mode for
+ uint32 blocks_amount = 2;
+}
+
+// MsgActivatePostOnlyModeResponse defines the response for
+// MsgActivatePostOnlyMode
+message MsgActivatePostOnlyModeResponse {}
diff --git a/proto/injective/oracle/v1beta1/events.proto b/proto/injective/oracle/v1beta1/events.proto
index 82c151fc..027cb6d5 100644
--- a/proto/injective/oracle/v1beta1/events.proto
+++ b/proto/injective/oracle/v1beta1/events.proto
@@ -87,3 +87,7 @@ message SetCoinbasePriceEvent {
message EventSetStorkPrices { repeated StorkPriceState prices = 1; }
message EventSetPythPrices { repeated PythPriceState prices = 1; }
+
+message EventSetChainlinkDataStreamsPrices {
+ repeated ChainlinkDataStreamsPriceState prices = 1;
+}
\ No newline at end of file
diff --git a/proto/injective/oracle/v1beta1/genesis.proto b/proto/injective/oracle/v1beta1/genesis.proto
index 8e2665dc..11deb334 100644
--- a/proto/injective/oracle/v1beta1/genesis.proto
+++ b/proto/injective/oracle/v1beta1/genesis.proto
@@ -11,25 +11,26 @@ message GenesisState {
// params defines all the parameters of related to oracle.
Params params = 1 [ (gogoproto.nullable) = false ];
- repeated string band_relayers = 2;
+ repeated string band_relayers = 2 [ deprecated = true ];
- repeated BandPriceState band_price_states = 3;
+ repeated BandPriceState band_price_states = 3 [ deprecated = true ];
repeated PriceFeedState price_feed_price_states = 4;
repeated CoinbasePriceState coinbase_price_states = 5;
- repeated BandPriceState band_ibc_price_states = 6;
+ repeated BandPriceState band_ibc_price_states = 6 [ deprecated = true ];
- repeated BandOracleRequest band_ibc_oracle_requests = 7;
+ repeated BandOracleRequest band_ibc_oracle_requests = 7 [ deprecated = true ];
- BandIBCParams band_ibc_params = 8 [ (gogoproto.nullable) = false ];
+ BandIBCParams band_ibc_params = 8
+ [ (gogoproto.nullable) = false, deprecated = true ];
- uint64 band_ibc_latest_client_id = 9;
+ uint64 band_ibc_latest_client_id = 9 [ deprecated = true ];
- repeated CalldataRecord calldata_records = 10;
+ repeated CalldataRecord calldata_records = 10 [ deprecated = true ];
- uint64 band_ibc_latest_request_id = 11;
+ uint64 band_ibc_latest_request_id = 11 [ deprecated = true ];
repeated ChainlinkPriceState chainlink_price_states = 12;
@@ -42,6 +43,9 @@ message GenesisState {
repeated StorkPriceState stork_price_states = 16;
repeated string stork_publishers = 17;
+
+ repeated ChainlinkDataStreamsPriceState chainlink_data_streams_price_states =
+ 18;
}
message CalldataRecord {
diff --git a/proto/injective/oracle/v1beta1/oracle.proto b/proto/injective/oracle/v1beta1/oracle.proto
index 2b9e2a84..2d83e5a9 100644
--- a/proto/injective/oracle/v1beta1/oracle.proto
+++ b/proto/injective/oracle/v1beta1/oracle.proto
@@ -13,11 +13,14 @@ message Params {
option (gogoproto.equal) = true;
string pyth_contract = 1;
+ string chainlink_verifier_proxy_contract = 2;
+ bool accept_unverified_chainlink_data_streams_reports = 3;
+ uint64 chainlink_data_streams_verification_gas_limit = 4;
}
enum OracleType {
Unspecified = 0;
- Band = 1;
+ Band = 1 [ deprecated = true ];
PriceFeed = 2;
Coinbase = 3;
Chainlink = 4;
@@ -26,9 +29,10 @@ enum OracleType {
API3 = 7;
Uma = 8;
Pyth = 9;
- BandIBC = 10;
+ BandIBC = 10 [ deprecated = true ];
Provider = 11;
Stork = 12;
+ ChainlinkDataStreams = 13;
}
message OracleInfo {
@@ -46,7 +50,10 @@ message ChainlinkPriceState {
PriceState price_state = 4 [ (gogoproto.nullable) = false ];
}
+// DEPRECATED! Oracle price from Band is no longer supported
message BandPriceState {
+ option deprecated = true;
+
string symbol = 1;
string rate = 2 [
(gogoproto.customtype) = "cosmossdk.io/math.Int",
@@ -150,7 +157,21 @@ message PythPriceState {
PriceState price_state = 6 [ (gogoproto.nullable) = false ];
}
+message ChainlinkDataStreamsPriceState {
+ string feed_id = 1;
+ string report_price = 2 [
+ (gogoproto.customtype) = "cosmossdk.io/math.Int",
+ (gogoproto.nullable) = false
+ ];
+ uint64 valid_from_timestamp = 3;
+ uint64 observations_timestamp = 4;
+ PriceState price_state = 5 [ (gogoproto.nullable) = false ];
+}
+
+// DEPRECATED! Oracle price from Band is no longer supported
message BandOracleRequest {
+ option deprecated = true;
+
// Unique Identifier for band ibc oracle request
uint64 request_id = 1;
@@ -186,7 +207,10 @@ message BandOracleRequest {
uint64 min_source_count = 9;
}
+// DEPRECATED! Oracle price from Band is no longer supported
message BandIBCParams {
+ option deprecated = true;
+
// true if Band IBC should be enabled
bool band_ibc_enabled = 1;
// block request interval to send Band IBC prices
@@ -297,3 +321,10 @@ message SignedPriceOfAssetPair {
];
bytes signature = 4;
}
+
+message ChainlinkReport {
+ bytes feed_id = 1;
+ bytes full_report = 2;
+ uint64 valid_from_timestamp = 3;
+ uint64 observations_timestamp = 4;
+}
diff --git a/proto/injective/oracle/v1beta1/proposal.proto b/proto/injective/oracle/v1beta1/proposal.proto
index 2c149cf7..054333e5 100644
--- a/proto/injective/oracle/v1beta1/proposal.proto
+++ b/proto/injective/oracle/v1beta1/proposal.proto
@@ -1,15 +1,19 @@
syntax = "proto3";
package injective.oracle.v1beta1;
+import "amino/amino.proto";
import "cosmos/base/v1beta1/coin.proto";
import "cosmos_proto/cosmos.proto";
import "gogoproto/gogo.proto";
import "injective/oracle/v1beta1/oracle.proto";
-import "amino/amino.proto";
option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/oracle/types";
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
message GrantBandOraclePrivilegeProposal {
+ option deprecated = true;
+
option (amino.name) = "oracle/GrantBandOraclePrivilegeProposal";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
@@ -21,7 +25,11 @@ message GrantBandOraclePrivilegeProposal {
repeated string relayers = 3;
}
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
message RevokeBandOraclePrivilegeProposal {
+ option deprecated = true;
+
option (amino.name) = "oracle/RevokeBandOraclePrivilegeProposal";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
@@ -87,7 +95,11 @@ message RevokePriceFeederPrivilegeProposal {
repeated string relayers = 5;
}
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
message AuthorizeBandOracleRequestProposal {
+ option deprecated = true;
+
option (amino.name) = "oracle/AuthorizeBandOracleRequestProposal";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
@@ -96,10 +108,14 @@ message AuthorizeBandOracleRequestProposal {
string title = 1;
string description = 2;
- BandOracleRequest request = 3 [ (gogoproto.nullable) = false ];
+ BandOracleRequest request = 3 [(gogoproto.nullable) = false];
}
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
message UpdateBandOracleRequestProposal {
+ option deprecated = true;
+
option (amino.name) = "oracle/UpdateBandOracleRequestProposal";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
@@ -112,7 +128,11 @@ message UpdateBandOracleRequestProposal {
BandOracleRequest update_oracle_request = 4;
}
+// Deprecated: Band oracle support was removed. This message is kept for
+// backward compatibility to decode historical proposals.
message EnableBandIBCProposal {
+ option deprecated = true;
+
option (amino.name) = "oracle/EnableBandIBCProposal";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
@@ -122,7 +142,7 @@ message EnableBandIBCProposal {
string title = 1;
string description = 2;
- BandIBCParams band_ibc_params = 3 [ (gogoproto.nullable) = false ];
+ BandIBCParams band_ibc_params = 3 [(gogoproto.nullable) = false];
}
message GrantStorkPublisherPrivilegeProposal {
diff --git a/proto/injective/oracle/v1beta1/query.proto b/proto/injective/oracle/v1beta1/query.proto
index f949c580..e1200de4 100644
--- a/proto/injective/oracle/v1beta1/query.proto
+++ b/proto/injective/oracle/v1beta1/query.proto
@@ -76,6 +76,14 @@ service Query {
"/injective/oracle/v1beta1/provider_price_state/{provider}/{symbol}";
}
+ // Retrieves the state for all Chainlink Data Streams price feeds
+ rpc ChainlinkDataStreamsPriceStates(
+ QueryChainlinkDataStreamsPriceStatesRequest)
+ returns (QueryChainlinkDataStreamsPriceStatesResponse) {
+ option (google.api.http).get =
+ "/injective/oracle/v1beta1/chainlink_data_stream_price_states";
+ }
+
// Retrieves the entire oracle module's state
rpc OracleModuleState(QueryModuleStateRequest)
returns (QueryModuleStateResponse) {
@@ -215,6 +223,16 @@ message QueryProviderPriceStateRequest {
// Query/ProviderPriceStates RPC method.
message QueryProviderPriceStateResponse { PriceState price_state = 1; }
+// QueryChainlinkDataStreamsPriceStatesRequest is the request type for the
+// Query/ChainlinkDataStreamsPriceStates RPC method.
+message QueryChainlinkDataStreamsPriceStatesRequest {}
+
+// QueryChainlinkDataStreamsPriceStatesResponse is the response type for the
+// Query/ChainlinkDataStreamsPriceStates RPC method.
+message QueryChainlinkDataStreamsPriceStatesResponse {
+ repeated ChainlinkDataStreamsPriceState price_states = 1;
+}
+
// QueryModuleStateRequest is the request type for the Query/OracleModuleState
// RPC method.
message QueryModuleStateRequest {}
diff --git a/proto/injective/oracle/v1beta1/tx.proto b/proto/injective/oracle/v1beta1/tx.proto
index bc48f5e6..4ab222ec 100644
--- a/proto/injective/oracle/v1beta1/tx.proto
+++ b/proto/injective/oracle/v1beta1/tx.proto
@@ -23,13 +23,6 @@ service Msg {
rpc RelayPriceFeedPrice(MsgRelayPriceFeedPrice)
returns (MsgRelayPriceFeedPriceResponse);
- // RelayBandRates defines a method for relaying rates from Band
- rpc RelayBandRates(MsgRelayBandRates) returns (MsgRelayBandRatesResponse);
-
- // RequestBandIBCRates defines a method for fetching rates from Band ibc
- rpc RequestBandIBCRates(MsgRequestBandIBCRates)
- returns (MsgRequestBandIBCRatesResponse);
-
// RelayCoinbaseMessages defines a method for relaying price messages from
// Coinbase API
rpc RelayCoinbaseMessages(MsgRelayCoinbaseMessages)
@@ -43,6 +36,11 @@ service Msg {
// RelayPythPrices defines a method for relaying rates from the Pyth contract
rpc RelayPythPrices(MsgRelayPythPrices) returns (MsgRelayPythPricesResponse);
+ // RelayChainlinkPrices defines a method for relaying rates from Chainlink
+ // Data Streams
+ rpc RelayChainlinkPrices(MsgRelayChainlinkPrices)
+ returns (MsgRelayChainlinkPricesResponse);
+
// UpdateParams enables updating oracle module's params via governance
rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse);
}
@@ -88,19 +86,6 @@ message MsgRelayPriceFeedPrice {
message MsgRelayPriceFeedPriceResponse {}
-message MsgRelayBandRates {
- option (amino.name) = "oracle/MsgRelayBandRates";
- option (cosmos.msg.v1.signer) = "relayer";
-
- string relayer = 1;
- repeated string symbols = 2;
- repeated uint64 rates = 3;
- repeated uint64 resolve_times = 4;
- repeated uint64 requestIDs = 5;
-}
-
-message MsgRelayBandRatesResponse {}
-
// MsgRelayCoinbaseMessages defines a SDK message for relaying price messages
// from Coinbase API.
message MsgRelayCoinbaseMessages {
@@ -130,34 +115,35 @@ message MsgRelayStorkPrices {
message MsgRelayStorkPricesResponse {}
-// MsgRequestBandIBCRates defines a SDK message for requesting data from
-// BandChain using IBC.
-message MsgRequestBandIBCRates {
- option (amino.name) = "oracle/MsgRequestBandIBCRates";
+// MsgRelayPythPrices defines a SDK message for updating Pyth prices
+message MsgRelayPythPrices {
+ option (amino.name) = "oracle/MsgRelayPythPrices";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
option (cosmos.msg.v1.signer) = "sender";
string sender = 1;
- uint64 request_id = 2;
+ repeated PriceAttestation price_attestations = 2;
}
-// MsgRequestDataResponse defines the Msg/RequestBandIBCRates response type.
-message MsgRequestBandIBCRatesResponse {}
+// MsgRelayPythPricesResponse defines the Msg/RelayPythPrices response type.
+message MsgRelayPythPricesResponse {}
-// MsgRelayPythPrices defines a SDK message for updating Pyth prices
-message MsgRelayPythPrices {
- option (amino.name) = "oracle/MsgRelayPythPrices";
+// MsgRelayChainlinkPrices defines a SDK message for updating Chainlink Data
+// Streams prices
+message MsgRelayChainlinkPrices {
+ option (amino.name) = "oracle/MsgRelayChainlinkPrices";
option (gogoproto.equal) = false;
option (gogoproto.goproto_getters) = false;
option (cosmos.msg.v1.signer) = "sender";
string sender = 1;
- repeated PriceAttestation price_attestations = 2;
+ repeated ChainlinkReport reports = 2;
}
-// MsgRelayPythPricesResponse defines the Msg/RelayPythPrices response type.
-message MsgRelayPythPricesResponse {}
+// MsgRelayChainlinkPricesResponse defines the Msg/RelayChainlinkPrices response
+// type.
+message MsgRelayChainlinkPricesResponse {}
message MsgUpdateParams {
option (amino.name) = "oracle/MsgUpdateParams";
diff --git a/proto/injective/peggy/v1/attestation.proto b/proto/injective/peggy/v1/attestation.proto
index fa6301dc..3d669077 100644
--- a/proto/injective/peggy/v1/attestation.proto
+++ b/proto/injective/peggy/v1/attestation.proto
@@ -3,6 +3,7 @@ package injective.peggy.v1;
// TODO-JT: add ERC20DeployedEvent claim
+import "cosmos_proto/cosmos.proto";
import "gogoproto/gogo.proto";
import "google/protobuf/any.proto";
@@ -44,7 +45,8 @@ message Attestation {
bool observed = 1;
repeated string votes = 2;
uint64 height = 3;
- google.protobuf.Any claim = 4;
+ google.protobuf.Any claim = 4
+ [ (cosmos_proto.accepts_interface) = "peggy.v1beta1.EthereumClaim" ];
}
// ERC20Token unique identifier for an Ethereum ERC20 token.
diff --git a/proto/injective/peggy/v1/batch.proto b/proto/injective/peggy/v1/batch.proto
index c0d8afee..197e213a 100644
--- a/proto/injective/peggy/v1/batch.proto
+++ b/proto/injective/peggy/v1/batch.proto
@@ -1,6 +1,7 @@
syntax = "proto3";
package injective.peggy.v1;
+import "cosmos_proto/cosmos.proto";
import "injective/peggy/v1/attestation.proto";
// import "injective/peggy/v1/types.proto";
@@ -8,6 +9,9 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod
// OutgoingTxBatch represents a batch of transactions going from Peggy to ETH
message OutgoingTxBatch {
+ option (cosmos_proto.implements_interface) =
+ "injective.peggy.v1.EthereumSigned";
+
uint64 batch_nonce = 1;
uint64 batch_timeout = 2;
repeated OutgoingTransferTx transactions = 3;
diff --git a/proto/injective/peggy/v1/msgs.proto b/proto/injective/peggy/v1/msgs.proto
index 98123551..89285de3 100644
--- a/proto/injective/peggy/v1/msgs.proto
+++ b/proto/injective/peggy/v1/msgs.proto
@@ -219,6 +219,7 @@ message MsgConfirmBatchResponse {}
message MsgDepositClaim {
option (amino.name) = "peggy/MsgDepositClaim";
option (cosmos.msg.v1.signer) = "orchestrator";
+ option (cosmos_proto.implements_interface) = "peggy.v1beta1.EthereumClaim";
uint64 event_nonce = 1;
uint64 block_height = 2;
@@ -240,6 +241,7 @@ message MsgDepositClaimResponse {}
message MsgWithdrawClaim {
option (amino.name) = "peggy/MsgWithdrawClaim";
option (cosmos.msg.v1.signer) = "orchestrator";
+ option (cosmos_proto.implements_interface) = "peggy.v1beta1.EthereumClaim";
uint64 event_nonce = 1;
uint64 block_height = 2;
@@ -256,6 +258,7 @@ message MsgWithdrawClaimResponse {}
message MsgERC20DeployedClaim {
option (amino.name) = "peggy/MsgERC20DeployedClaim";
option (cosmos.msg.v1.signer) = "orchestrator";
+ option (cosmos_proto.implements_interface) = "peggy.v1beta1.EthereumClaim";
uint64 event_nonce = 1;
uint64 block_height = 2;
@@ -289,7 +292,8 @@ message MsgSubmitBadSignatureEvidence {
option (amino.name) = "peggy/MsgSubmitBadSignatureEvidence";
option (cosmos.msg.v1.signer) = "sender";
- google.protobuf.Any subject = 1;
+ google.protobuf.Any subject = 1 [ (cosmos_proto.accepts_interface) =
+ "injective.peggy.v1.EthereumSigned" ];
string signature = 2;
string sender = 3;
}
@@ -301,6 +305,7 @@ message MsgSubmitBadSignatureEvidenceResponse {}
message MsgValsetUpdatedClaim {
option (amino.name) = "peggy/MsgValsetUpdatedClaim";
option (cosmos.msg.v1.signer) = "orchestrator";
+ option (cosmos_proto.implements_interface) = "peggy.v1beta1.EthereumClaim";
uint64 event_nonce = 1;
uint64 valset_nonce = 2;
diff --git a/proto/injective/peggy/v1/types.proto b/proto/injective/peggy/v1/types.proto
index 5ba5964e..5dcda13e 100644
--- a/proto/injective/peggy/v1/types.proto
+++ b/proto/injective/peggy/v1/types.proto
@@ -1,5 +1,6 @@
syntax = "proto3";
package injective.peggy.v1;
+import "cosmos_proto/cosmos.proto";
import "gogoproto/gogo.proto";
option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types";
@@ -13,6 +14,9 @@ message BridgeValidator {
// maintains an ETH key to sign messages, these are used to check signatures on
// ETH because of the significant gas savings
message Valset {
+ option (cosmos_proto.implements_interface) =
+ "injective.peggy.v1.EthereumSigned";
+
uint64 nonce = 1;
repeated BridgeValidator members = 2;
uint64 height = 3;
diff --git a/proto/injective/permissions/v1beta1/params.proto b/proto/injective/permissions/v1beta1/params.proto
index 24943a89..f711019e 100644
--- a/proto/injective/permissions/v1beta1/params.proto
+++ b/proto/injective/permissions/v1beta1/params.proto
@@ -12,6 +12,9 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod
message Params {
option (gogoproto.equal) = true;
option (amino.name) = "permissions/Params";
- // Max amount of gas allowed for wasm hook queries
- uint64 wasm_hook_query_max_gas = 1;
+ // Max amount of gas allowed for contract hook queries
+ uint64 contract_hook_max_gas = 1;
+
+ // EVM addresses of contracts that will not bypass module-to-module transfers
+ repeated string enforced_restrictions_contracts = 2;
}
diff --git a/proto/injective/permissions/v1beta1/permissions.proto b/proto/injective/permissions/v1beta1/permissions.proto
index b9e8cc1d..9e172c8e 100644
--- a/proto/injective/permissions/v1beta1/permissions.proto
+++ b/proto/injective/permissions/v1beta1/permissions.proto
@@ -10,8 +10,8 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod
message Namespace {
// The tokenfactory denom to which this namespace applies to
string denom = 1;
- // The address of smart contract to apply code-based restrictions
- string contract_hook = 2;
+ // The address of cosmwasm contract to apply code-based restrictions
+ string wasm_hook = 2;
// permissions for each role
repeated Role role_permissions = 3;
@@ -23,6 +23,9 @@ message Namespace {
repeated PolicyStatus policy_statuses = 6;
// capabilities for each manager for each policy
repeated PolicyManagerCapability policy_manager_capabilities = 7;
+
+ // The address of the EVM contract to map code-based permissions
+ string evm_hook = 8;
}
// AddressRoles defines roles for an actor
diff --git a/proto/injective/permissions/v1beta1/tx.proto b/proto/injective/permissions/v1beta1/tx.proto
index e8ba0c9d..3165126a 100644
--- a/proto/injective/permissions/v1beta1/tx.proto
+++ b/proto/injective/permissions/v1beta1/tx.proto
@@ -63,8 +63,8 @@ message MsgUpdateNamespace {
string denom = 2;
message SetContractHook { string new_value = 1; }
- // address of smart contract to apply code-based restrictions
- SetContractHook contract_hook = 3;
+ // address of wasm smart contract to apply code-based restrictions
+ SetContractHook wasm_hook = 3;
// role permissions to update
repeated Role role_permissions = 4;
// role managers to update
@@ -73,6 +73,8 @@ message MsgUpdateNamespace {
repeated PolicyStatus policy_statuses = 6;
// policy manager capabilities to update
repeated PolicyManagerCapability policy_manager_capabilities = 7;
+ // address of EVM smart contract to apply code-based restrictions
+ SetContractHook evm_hook = 8;
}
message MsgUpdateNamespaceResponse {}