fundingmanager: change funding messages to use server.sendToPeer

Previously, during the channel funding process, peers sent wire
messages using peer.queueMsg. By switching to server.sendToPeer, the
fundingManager is more resilient to network connection issues or system
restarts during the funding process. With server.sendToPeer, if a peer
gets disconnected, the daemon can attempt to reconnect and continue the
process using the peer’s public key ID.
This commit is contained in:
bryanvu authored and Olaoluwa Osuntokun committed 2017-02-21 19:21:19 -08:00
1 parent 69faebfcae
commit b21bd351e8
7 files changed
+923 -680

No files matched your search

+363 -328
View File
@@ -153,13 +153,13 @@ func (NewAddressRequest_AddressType) EnumDescriptor() ([]byte, []int) {
}
type Transaction struct {
TxHash string `protobuf:"bytes,1,opt,name=tx_hash" json:"tx_hash,omitempty"`
TxHash string `protobuf:"bytes,1,opt,name=tx_hash,json=txHash" json:"tx_hash,omitempty"`
Amount float64 `protobuf:"fixed64,2,opt,name=amount" json:"amount,omitempty"`
NumConfirmations int32 `protobuf:"varint,3,opt,name=num_confirmations" json:"num_confirmations,omitempty"`
BlockHash string `protobuf:"bytes,4,opt,name=block_hash" json:"block_hash,omitempty"`
BlockHeight int32 `protobuf:"varint,5,opt,name=block_height" json:"block_height,omitempty"`
TimeStamp int64 `protobuf:"varint,6,opt,name=time_stamp" json:"time_stamp,omitempty"`
TotalFees int64 `protobuf:"varint,7,opt,name=total_fees" json:"total_fees,omitempty"`
NumConfirmations int32 `protobuf:"varint,3,opt,name=num_confirmations,json=numConfirmations" json:"num_confirmations,omitempty"`
BlockHash string `protobuf:"bytes,4,opt,name=block_hash,json=blockHash" json:"block_hash,omitempty"`
BlockHeight int32 `protobuf:"varint,5,opt,name=block_height,json=blockHeight" json:"block_height,omitempty"`
TimeStamp int64 `protobuf:"varint,6,opt,name=time_stamp,json=timeStamp" json:"time_stamp,omitempty"`
TotalFees int64 `protobuf:"varint,7,opt,name=total_fees,json=totalFees" json:"total_fees,omitempty"`
}
func (m *Transaction) Reset() { *m = Transaction{} }
@@ -242,11 +242,11 @@ func (m *TransactionDetails) GetTransactions() []*Transaction {
type SendRequest struct {
Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
DestString string `protobuf:"bytes,2,opt,name=dest_string" json:"dest_string,omitempty"`
DestString string `protobuf:"bytes,2,opt,name=dest_string,json=destString" json:"dest_string,omitempty"`
Amt int64 `protobuf:"varint,3,opt,name=amt" json:"amt,omitempty"`
PaymentHash []byte `protobuf:"bytes,4,opt,name=payment_hash,proto3" json:"payment_hash,omitempty"`
PaymentHashString string `protobuf:"bytes,5,opt,name=payment_hash_string" json:"payment_hash_string,omitempty"`
PaymentRequest string `protobuf:"bytes,6,opt,name=payment_request" json:"payment_request,omitempty"`
PaymentHash []byte `protobuf:"bytes,4,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
PaymentHashString string `protobuf:"bytes,5,opt,name=payment_hash_string,json=paymentHashString" json:"payment_hash_string,omitempty"`
PaymentRequest string `protobuf:"bytes,6,opt,name=payment_request,json=paymentRequest" json:"payment_request,omitempty"`
}
func (m *SendRequest) Reset() { *m = SendRequest{} }
@@ -297,8 +297,8 @@ func (m *SendRequest) GetPaymentRequest() string {
}
type SendResponse struct {
PaymentPreimage []byte `protobuf:"bytes,1,opt,name=payment_preimage,proto3" json:"payment_preimage,omitempty"`
PaymentRoute *Route `protobuf:"bytes,2,opt,name=payment_route" json:"payment_route,omitempty"`
PaymentPreimage []byte `protobuf:"bytes,1,opt,name=payment_preimage,json=paymentPreimage,proto3" json:"payment_preimage,omitempty"`
PaymentRoute *Route `protobuf:"bytes,2,opt,name=payment_route,json=paymentRoute" json:"payment_route,omitempty"`
}
func (m *SendResponse) Reset() { *m = SendResponse{} }
@@ -321,9 +321,9 @@ func (m *SendResponse) GetPaymentRoute() *Route {
}
type ChannelPoint struct {
FundingTxid []byte `protobuf:"bytes,1,opt,name=funding_txid,proto3" json:"funding_txid,omitempty"`
FundingTxidStr string `protobuf:"bytes,2,opt,name=funding_txid_str" json:"funding_txid_str,omitempty"`
OutputIndex uint32 `protobuf:"varint,3,opt,name=output_index" json:"output_index,omitempty"`
FundingTxid []byte `protobuf:"bytes,1,opt,name=funding_txid,json=fundingTxid,proto3" json:"funding_txid,omitempty"`
FundingTxidStr string `protobuf:"bytes,2,opt,name=funding_txid_str,json=fundingTxidStr" json:"funding_txid_str,omitempty"`
OutputIndex uint32 `protobuf:"varint,3,opt,name=output_index,json=outputIndex" json:"output_index,omitempty"`
}
func (m *ChannelPoint) Reset() { *m = ChannelPoint{} }
@@ -377,7 +377,7 @@ func (m *LightningAddress) GetHost() string {
}
type SendManyRequest struct {
AddrToAmount map[string]int64 `protobuf:"bytes,1,rep,name=AddrToAmount" json:"AddrToAmount,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
AddrToAmount map[string]int64 `protobuf:"bytes,1,rep,name=AddrToAmount,json=addrToAmount" json:"AddrToAmount,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
}
func (m *SendManyRequest) Reset() { *m = SendManyRequest{} }
@@ -513,7 +513,7 @@ func (m *ConnectPeerRequest) GetPerm() bool {
}
type ConnectPeerResponse struct {
PeerId int32 `protobuf:"varint,1,opt,name=peer_id" json:"peer_id,omitempty"`
PeerId int32 `protobuf:"varint,1,opt,name=peer_id,json=peerId" json:"peer_id,omitempty"`
}
func (m *ConnectPeerResponse) Reset() { *m = ConnectPeerResponse{} }
@@ -531,9 +531,9 @@ func (m *ConnectPeerResponse) GetPeerId() int32 {
type HTLC struct {
Incoming bool `protobuf:"varint,1,opt,name=incoming" json:"incoming,omitempty"`
Amount int64 `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
HashLock []byte `protobuf:"bytes,3,opt,name=hash_lock,proto3" json:"hash_lock,omitempty"`
ExpirationHeight uint32 `protobuf:"varint,4,opt,name=expiration_height" json:"expiration_height,omitempty"`
RevocationDelay uint32 `protobuf:"varint,5,opt,name=revocation_delay" json:"revocation_delay,omitempty"`
HashLock []byte `protobuf:"bytes,3,opt,name=hash_lock,json=hashLock,proto3" json:"hash_lock,omitempty"`
ExpirationHeight uint32 `protobuf:"varint,4,opt,name=expiration_height,json=expirationHeight" json:"expiration_height,omitempty"`
RevocationDelay uint32 `protobuf:"varint,5,opt,name=revocation_delay,json=revocationDelay" json:"revocation_delay,omitempty"`
}
func (m *HTLC) Reset() { *m = HTLC{} }
@@ -577,17 +577,17 @@ func (m *HTLC) GetRevocationDelay() uint32 {
}
type ActiveChannel struct {
RemotePubkey string `protobuf:"bytes,1,opt,name=remote_pubkey" json:"remote_pubkey,omitempty"`
ChannelPoint string `protobuf:"bytes,2,opt,name=channel_point" json:"channel_point,omitempty"`
ChanId uint64 `protobuf:"varint,3,opt,name=chan_id" json:"chan_id,omitempty"`
RemotePubkey string `protobuf:"bytes,1,opt,name=remote_pubkey,json=remotePubkey" json:"remote_pubkey,omitempty"`
ChannelPoint string `protobuf:"bytes,2,opt,name=channel_point,json=channelPoint" json:"channel_point,omitempty"`
ChanId uint64 `protobuf:"varint,3,opt,name=chan_id,json=chanId" json:"chan_id,omitempty"`
Capacity int64 `protobuf:"varint,4,opt,name=capacity" json:"capacity,omitempty"`
LocalBalance int64 `protobuf:"varint,5,opt,name=local_balance" json:"local_balance,omitempty"`
RemoteBalance int64 `protobuf:"varint,6,opt,name=remote_balance" json:"remote_balance,omitempty"`
UnsettledBalance int64 `protobuf:"varint,7,opt,name=unsettled_balance" json:"unsettled_balance,omitempty"`
TotalSatoshisSent int64 `protobuf:"varint,8,opt,name=total_satoshis_sent" json:"total_satoshis_sent,omitempty"`
TotalSatoshisReceived int64 `protobuf:"varint,9,opt,name=total_satoshis_received" json:"total_satoshis_received,omitempty"`
NumUpdates uint64 `protobuf:"varint,10,opt,name=num_updates" json:"num_updates,omitempty"`
PendingHtlcs []*HTLC `protobuf:"bytes,11,rep,name=pending_htlcs" json:"pending_htlcs,omitempty"`
LocalBalance int64 `protobuf:"varint,5,opt,name=local_balance,json=localBalance" json:"local_balance,omitempty"`
RemoteBalance int64 `protobuf:"varint,6,opt,name=remote_balance,json=remoteBalance" json:"remote_balance,omitempty"`
UnsettledBalance int64 `protobuf:"varint,7,opt,name=unsettled_balance,json=unsettledBalance" json:"unsettled_balance,omitempty"`
TotalSatoshisSent int64 `protobuf:"varint,8,opt,name=total_satoshis_sent,json=totalSatoshisSent" json:"total_satoshis_sent,omitempty"`
TotalSatoshisReceived int64 `protobuf:"varint,9,opt,name=total_satoshis_received,json=totalSatoshisReceived" json:"total_satoshis_received,omitempty"`
NumUpdates uint64 `protobuf:"varint,10,opt,name=num_updates,json=numUpdates" json:"num_updates,omitempty"`
PendingHtlcs []*HTLC `protobuf:"bytes,11,rep,name=pending_htlcs,json=pendingHtlcs" json:"pending_htlcs,omitempty"`
}
func (m *ActiveChannel) Reset() { *m = ActiveChannel{} }
@@ -697,15 +697,15 @@ func (m *ListChannelsResponse) GetChannels() []*ActiveChannel {
}
type Peer struct {
PubKey string `protobuf:"bytes,1,opt,name=pub_key" json:"pub_key,omitempty"`
PeerId int32 `protobuf:"varint,2,opt,name=peer_id" json:"peer_id,omitempty"`
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey" json:"pub_key,omitempty"`
PeerId int32 `protobuf:"varint,2,opt,name=peer_id,json=peerId" json:"peer_id,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
BytesSent uint64 `protobuf:"varint,4,opt,name=bytes_sent" json:"bytes_sent,omitempty"`
BytesRecv uint64 `protobuf:"varint,5,opt,name=bytes_recv" json:"bytes_recv,omitempty"`
SatSent int64 `protobuf:"varint,6,opt,name=sat_sent" json:"sat_sent,omitempty"`
SatRecv int64 `protobuf:"varint,7,opt,name=sat_recv" json:"sat_recv,omitempty"`
BytesSent uint64 `protobuf:"varint,4,opt,name=bytes_sent,json=bytesSent" json:"bytes_sent,omitempty"`
BytesRecv uint64 `protobuf:"varint,5,opt,name=bytes_recv,json=bytesRecv" json:"bytes_recv,omitempty"`
SatSent int64 `protobuf:"varint,6,opt,name=sat_sent,json=satSent" json:"sat_sent,omitempty"`
SatRecv int64 `protobuf:"varint,7,opt,name=sat_recv,json=satRecv" json:"sat_recv,omitempty"`
Inbound bool `protobuf:"varint,8,opt,name=inbound" json:"inbound,omitempty"`
PingTime int64 `protobuf:"varint,9,opt,name=ping_time" json:"ping_time,omitempty"`
PingTime int64 `protobuf:"varint,9,opt,name=ping_time,json=pingTime" json:"ping_time,omitempty"`
}
func (m *Peer) Reset() { *m = Peer{} }
@@ -809,14 +809,14 @@ func (*GetInfoRequest) ProtoMessage() {}
func (*GetInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
type GetInfoResponse struct {
IdentityPubkey string `protobuf:"bytes,1,opt,name=identity_pubkey" json:"identity_pubkey,omitempty"`
IdentityPubkey string `protobuf:"bytes,1,opt,name=identity_pubkey,json=identityPubkey" json:"identity_pubkey,omitempty"`
Alias string `protobuf:"bytes,2,opt,name=alias" json:"alias,omitempty"`
NumPendingChannels uint32 `protobuf:"varint,3,opt,name=num_pending_channels" json:"num_pending_channels,omitempty"`
NumActiveChannels uint32 `protobuf:"varint,4,opt,name=num_active_channels" json:"num_active_channels,omitempty"`
NumPeers uint32 `protobuf:"varint,5,opt,name=num_peers" json:"num_peers,omitempty"`
BlockHeight uint32 `protobuf:"varint,6,opt,name=block_height" json:"block_height,omitempty"`
BlockHash string `protobuf:"bytes,8,opt,name=block_hash" json:"block_hash,omitempty"`
SyncedToChain bool `protobuf:"varint,9,opt,name=synced_to_chain" json:"synced_to_chain,omitempty"`
NumPendingChannels uint32 `protobuf:"varint,3,opt,name=num_pending_channels,json=numPendingChannels" json:"num_pending_channels,omitempty"`
NumActiveChannels uint32 `protobuf:"varint,4,opt,name=num_active_channels,json=numActiveChannels" json:"num_active_channels,omitempty"`
NumPeers uint32 `protobuf:"varint,5,opt,name=num_peers,json=numPeers" json:"num_peers,omitempty"`
BlockHeight uint32 `protobuf:"varint,6,opt,name=block_height,json=blockHeight" json:"block_height,omitempty"`
BlockHash string `protobuf:"bytes,8,opt,name=block_hash,json=blockHash" json:"block_hash,omitempty"`
SyncedToChain bool `protobuf:"varint,9,opt,name=synced_to_chain,json=syncedToChain" json:"synced_to_chain,omitempty"`
Testnet bool `protobuf:"varint,10,opt,name=testnet" json:"testnet,omitempty"`
}
@@ -889,9 +889,9 @@ func (m *GetInfoResponse) GetTestnet() bool {
}
type ConfirmationUpdate struct {
BlockSha []byte `protobuf:"bytes,1,opt,name=block_sha,proto3" json:"block_sha,omitempty"`
BlockHeight int32 `protobuf:"varint,2,opt,name=block_height" json:"block_height,omitempty"`
NumConfsLeft uint32 `protobuf:"varint,3,opt,name=num_confs_left" json:"num_confs_left,omitempty"`
BlockSha []byte `protobuf:"bytes,1,opt,name=block_sha,json=blockSha,proto3" json:"block_sha,omitempty"`
BlockHeight int32 `protobuf:"varint,2,opt,name=block_height,json=blockHeight" json:"block_height,omitempty"`
NumConfsLeft uint32 `protobuf:"varint,3,opt,name=num_confs_left,json=numConfsLeft" json:"num_confs_left,omitempty"`
}
func (m *ConfirmationUpdate) Reset() { *m = ConfirmationUpdate{} }
@@ -921,7 +921,7 @@ func (m *ConfirmationUpdate) GetNumConfsLeft() uint32 {
}
type ChannelOpenUpdate struct {
ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point" json:"channel_point,omitempty"`
ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint" json:"channel_point,omitempty"`
}
func (m *ChannelOpenUpdate) Reset() { *m = ChannelOpenUpdate{} }
@@ -937,7 +937,7 @@ func (m *ChannelOpenUpdate) GetChannelPoint() *ChannelPoint {
}
type ChannelCloseUpdate struct {
ClosingTxid []byte `protobuf:"bytes,1,opt,name=closing_txid,proto3" json:"closing_txid,omitempty"`
ClosingTxid []byte `protobuf:"bytes,1,opt,name=closing_txid,json=closingTxid,proto3" json:"closing_txid,omitempty"`
Success bool `protobuf:"varint,2,opt,name=success" json:"success,omitempty"`
}
@@ -961,8 +961,8 @@ func (m *ChannelCloseUpdate) GetSuccess() bool {
}
type CloseChannelRequest struct {
ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point" json:"channel_point,omitempty"`
TimeLimit int64 `protobuf:"varint,2,opt,name=time_limit" json:"time_limit,omitempty"`
ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint" json:"channel_point,omitempty"`
TimeLimit int64 `protobuf:"varint,2,opt,name=time_limit,json=timeLimit" json:"time_limit,omitempty"`
Force bool `protobuf:"varint,3,opt,name=force" json:"force,omitempty"`
}
@@ -1010,13 +1010,13 @@ type isCloseStatusUpdate_Update interface {
}
type CloseStatusUpdate_ClosePending struct {
ClosePending *PendingUpdate `protobuf:"bytes,1,opt,name=close_pending,oneof"`
ClosePending *PendingUpdate `protobuf:"bytes,1,opt,name=close_pending,json=closePending,oneof"`
}
type CloseStatusUpdate_Confirmation struct {
Confirmation *ConfirmationUpdate `protobuf:"bytes,2,opt,name=confirmation,oneof"`
}
type CloseStatusUpdate_ChanClose struct {
ChanClose *ChannelCloseUpdate `protobuf:"bytes,3,opt,name=chan_close,oneof"`
ChanClose *ChannelCloseUpdate `protobuf:"bytes,3,opt,name=chan_close,json=chanClose,oneof"`
}
func (*CloseStatusUpdate_ClosePending) isCloseStatusUpdate_Update() {}
@@ -1161,12 +1161,12 @@ func (m *PendingUpdate) GetTxid() []byte {
}
type OpenChannelRequest struct {
TargetPeerId int32 `protobuf:"varint,1,opt,name=target_peer_id" json:"target_peer_id,omitempty"`
NodePubkey []byte `protobuf:"bytes,2,opt,name=node_pubkey,proto3" json:"node_pubkey,omitempty"`
NodePubkeyString string `protobuf:"bytes,3,opt,name=node_pubkey_string" json:"node_pubkey_string,omitempty"`
LocalFundingAmount int64 `protobuf:"varint,4,opt,name=local_funding_amount" json:"local_funding_amount,omitempty"`
PushSat int64 `protobuf:"varint,5,opt,name=push_sat" json:"push_sat,omitempty"`
NumConfs uint32 `protobuf:"varint,6,opt,name=num_confs" json:"num_confs,omitempty"`
TargetPeerId int32 `protobuf:"varint,1,opt,name=target_peer_id,json=targetPeerId" json:"target_peer_id,omitempty"`
NodePubkey []byte `protobuf:"bytes,2,opt,name=node_pubkey,json=nodePubkey,proto3" json:"node_pubkey,omitempty"`
NodePubkeyString string `protobuf:"bytes,3,opt,name=node_pubkey_string,json=nodePubkeyString" json:"node_pubkey_string,omitempty"`
LocalFundingAmount int64 `protobuf:"varint,4,opt,name=local_funding_amount,json=localFundingAmount" json:"local_funding_amount,omitempty"`
PushSat int64 `protobuf:"varint,5,opt,name=push_sat,json=pushSat" json:"push_sat,omitempty"`
NumConfs uint32 `protobuf:"varint,6,opt,name=num_confs,json=numConfs" json:"num_confs,omitempty"`
}
func (m *OpenChannelRequest) Reset() { *m = OpenChannelRequest{} }
@@ -1234,13 +1234,13 @@ type isOpenStatusUpdate_Update interface {
}
type OpenStatusUpdate_ChanPending struct {
ChanPending *PendingUpdate `protobuf:"bytes,1,opt,name=chan_pending,oneof"`
ChanPending *PendingUpdate `protobuf:"bytes,1,opt,name=chan_pending,json=chanPending,oneof"`
}
type OpenStatusUpdate_Confirmation struct {
Confirmation *ConfirmationUpdate `protobuf:"bytes,2,opt,name=confirmation,oneof"`
}
type OpenStatusUpdate_ChanOpen struct {
ChanOpen *ChannelOpenUpdate `protobuf:"bytes,3,opt,name=chan_open,oneof"`
ChanOpen *ChannelOpenUpdate `protobuf:"bytes,3,opt,name=chan_open,json=chanOpen,oneof"`
}
func (*OpenStatusUpdate_ChanPending) isOpenStatusUpdate_Update() {}
@@ -1385,7 +1385,7 @@ func (m *PendingChannelRequest) GetStatus() ChannelStatus {
}
type PendingChannelResponse struct {
PendingChannels []*PendingChannelResponse_PendingChannel `protobuf:"bytes,1,rep,name=pending_channels" json:"pending_channels,omitempty"`
PendingChannels []*PendingChannelResponse_PendingChannel `protobuf:"bytes,1,rep,name=pending_channels,json=pendingChannels" json:"pending_channels,omitempty"`
}
func (m *PendingChannelResponse) Reset() { *m = PendingChannelResponse{} }
@@ -1401,14 +1401,13 @@ func (m *PendingChannelResponse) GetPendingChannels() []*PendingChannelResponse_
}
type PendingChannelResponse_PendingChannel struct {
PeerId int32 `protobuf:"varint,1,opt,name=peer_id" json:"peer_id,omitempty"`
IdentityKey string `protobuf:"bytes,2,opt,name=identity_key" json:"identity_key,omitempty"`
ChannelPoint string `protobuf:"bytes,3,opt,name=channel_point" json:"channel_point,omitempty"`
Capacity int64 `protobuf:"varint,4,opt,name=capacity" json:"capacity,omitempty"`
LocalBalance int64 `protobuf:"varint,5,opt,name=local_balance" json:"local_balance,omitempty"`
RemoteBalance int64 `protobuf:"varint,6,opt,name=remote_balance" json:"remote_balance,omitempty"`
ClosingTxid string `protobuf:"bytes,7,opt,name=closing_txid" json:"closing_txid,omitempty"`
Status ChannelStatus `protobuf:"varint,8,opt,name=status,enum=lnrpc.ChannelStatus" json:"status,omitempty"`
IdentityKey string `protobuf:"bytes,1,opt,name=identity_key,json=identityKey" json:"identity_key,omitempty"`
ChannelPoint string `protobuf:"bytes,2,opt,name=channel_point,json=channelPoint" json:"channel_point,omitempty"`
Capacity int64 `protobuf:"varint,3,opt,name=capacity" json:"capacity,omitempty"`
LocalBalance int64 `protobuf:"varint,4,opt,name=local_balance,json=localBalance" json:"local_balance,omitempty"`
RemoteBalance int64 `protobuf:"varint,5,opt,name=remote_balance,json=remoteBalance" json:"remote_balance,omitempty"`
ClosingTxid string `protobuf:"bytes,6,opt,name=closing_txid,json=closingTxid" json:"closing_txid,omitempty"`
Status ChannelStatus `protobuf:"varint,7,opt,name=status,enum=lnrpc.ChannelStatus" json:"status,omitempty"`
}
func (m *PendingChannelResponse_PendingChannel) Reset() { *m = PendingChannelResponse_PendingChannel{} }
@@ -1418,13 +1417,6 @@ func (*PendingChannelResponse_PendingChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{34, 0}
}
func (m *PendingChannelResponse_PendingChannel) GetPeerId() int32 {
if m != nil {
return m.PeerId
}
return 0
}
func (m *PendingChannelResponse_PendingChannel) GetIdentityKey() string {
if m != nil {
return m.IdentityKey
@@ -1475,7 +1467,7 @@ func (m *PendingChannelResponse_PendingChannel) GetStatus() ChannelStatus {
}
type WalletBalanceRequest struct {
WitnessOnly bool `protobuf:"varint,1,opt,name=witness_only" json:"witness_only,omitempty"`
WitnessOnly bool `protobuf:"varint,1,opt,name=witness_only,json=witnessOnly" json:"witness_only,omitempty"`
}
func (m *WalletBalanceRequest) Reset() { *m = WalletBalanceRequest{} }
@@ -1531,7 +1523,7 @@ func (m *ChannelBalanceResponse) GetBalance() int64 {
}
type RouteRequest struct {
PubKey string `protobuf:"bytes,1,opt,name=pub_key" json:"pub_key,omitempty"`
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey" json:"pub_key,omitempty"`
Amt int64 `protobuf:"varint,2,opt,name=amt" json:"amt,omitempty"`
}
@@ -1555,9 +1547,9 @@ func (m *RouteRequest) GetAmt() int64 {
}
type Hop struct {
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id" json:"chan_id,omitempty"`
ChanCapacity int64 `protobuf:"varint,2,opt,name=chan_capacity" json:"chan_capacity,omitempty"`
AmtToForward int64 `protobuf:"varint,3,opt,name=amt_to_forward" json:"amt_to_forward,omitempty"`
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId" json:"chan_id,omitempty"`
ChanCapacity int64 `protobuf:"varint,2,opt,name=chan_capacity,json=chanCapacity" json:"chan_capacity,omitempty"`
AmtToForward int64 `protobuf:"varint,3,opt,name=amt_to_forward,json=amtToForward" json:"amt_to_forward,omitempty"`
Fee int64 `protobuf:"varint,4,opt,name=fee" json:"fee,omitempty"`
}
@@ -1595,9 +1587,9 @@ func (m *Hop) GetFee() int64 {
}
type Route struct {
TotalTimeLock uint32 `protobuf:"varint,1,opt,name=total_time_lock" json:"total_time_lock,omitempty"`
TotalFees int64 `protobuf:"varint,2,opt,name=total_fees" json:"total_fees,omitempty"`
TotalAmt int64 `protobuf:"varint,3,opt,name=total_amt" json:"total_amt,omitempty"`
TotalTimeLock uint32 `protobuf:"varint,1,opt,name=total_time_lock,json=totalTimeLock" json:"total_time_lock,omitempty"`
TotalFees int64 `protobuf:"varint,2,opt,name=total_fees,json=totalFees" json:"total_fees,omitempty"`
TotalAmt int64 `protobuf:"varint,3,opt,name=total_amt,json=totalAmt" json:"total_amt,omitempty"`
Hops []*Hop `protobuf:"bytes,4,rep,name=hops" json:"hops,omitempty"`
}
@@ -1635,7 +1627,7 @@ func (m *Route) GetHops() []*Hop {
}
type NodeInfoRequest struct {
PubKey string `protobuf:"bytes,1,opt,name=pub_key" json:"pub_key,omitempty"`
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey" json:"pub_key,omitempty"`
}
func (m *NodeInfoRequest) Reset() { *m = NodeInfoRequest{} }
@@ -1652,8 +1644,8 @@ func (m *NodeInfoRequest) GetPubKey() string {
type NodeInfo struct {
Node *LightningNode `protobuf:"bytes,1,opt,name=node" json:"node,omitempty"`
NumChannels uint32 `protobuf:"varint,2,opt,name=num_channels" json:"num_channels,omitempty"`
TotalCapacity int64 `protobuf:"varint,3,opt,name=total_capacity" json:"total_capacity,omitempty"`
NumChannels uint32 `protobuf:"varint,2,opt,name=num_channels,json=numChannels" json:"num_channels,omitempty"`
TotalCapacity int64 `protobuf:"varint,3,opt,name=total_capacity,json=totalCapacity" json:"total_capacity,omitempty"`
}
func (m *NodeInfo) Reset() { *m = NodeInfo{} }
@@ -1683,8 +1675,8 @@ func (m *NodeInfo) GetTotalCapacity() int64 {
}
type LightningNode struct {
LastUpdate uint32 `protobuf:"varint,1,opt,name=last_update" json:"last_update,omitempty"`
PubKey string `protobuf:"bytes,2,opt,name=pub_key" json:"pub_key,omitempty"`
LastUpdate uint32 `protobuf:"varint,1,opt,name=last_update,json=lastUpdate" json:"last_update,omitempty"`
PubKey string `protobuf:"bytes,2,opt,name=pub_key,json=pubKey" json:"pub_key,omitempty"`
Address string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
Alias string `protobuf:"bytes,4,opt,name=alias" json:"alias,omitempty"`
}
@@ -1723,10 +1715,10 @@ func (m *LightningNode) GetAlias() string {
}
type RoutingPolicy struct {
TimeLockDelta uint32 `protobuf:"varint,1,opt,name=time_lock_delta" json:"time_lock_delta,omitempty"`
MinHtlc int64 `protobuf:"varint,2,opt,name=min_htlc" json:"min_htlc,omitempty"`
FeeBaseMsat int64 `protobuf:"varint,3,opt,name=fee_base_msat" json:"fee_base_msat,omitempty"`
FeeRateMilliMsat int64 `protobuf:"varint,4,opt,name=fee_rate_milli_msat" json:"fee_rate_milli_msat,omitempty"`
TimeLockDelta uint32 `protobuf:"varint,1,opt,name=time_lock_delta,json=timeLockDelta" json:"time_lock_delta,omitempty"`
MinHtlc int64 `protobuf:"varint,2,opt,name=min_htlc,json=minHtlc" json:"min_htlc,omitempty"`
FeeBaseMsat int64 `protobuf:"varint,3,opt,name=fee_base_msat,json=feeBaseMsat" json:"fee_base_msat,omitempty"`
FeeRateMilliMsat int64 `protobuf:"varint,4,opt,name=fee_rate_milli_msat,json=feeRateMilliMsat" json:"fee_rate_milli_msat,omitempty"`
}
func (m *RoutingPolicy) Reset() { *m = RoutingPolicy{} }
@@ -1763,14 +1755,14 @@ func (m *RoutingPolicy) GetFeeRateMilliMsat() int64 {
}
type ChannelEdge struct {
ChannelId uint64 `protobuf:"varint,1,opt,name=channel_id" json:"channel_id,omitempty"`
ChanPoint string `protobuf:"bytes,2,opt,name=chan_point" json:"chan_point,omitempty"`
LastUpdate uint32 `protobuf:"varint,3,opt,name=last_update" json:"last_update,omitempty"`
Node1Pub string `protobuf:"bytes,4,opt,name=node1_pub" json:"node1_pub,omitempty"`
Node2Pub string `protobuf:"bytes,5,opt,name=node2_pub" json:"node2_pub,omitempty"`
ChannelId uint64 `protobuf:"varint,1,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
ChanPoint string `protobuf:"bytes,2,opt,name=chan_point,json=chanPoint" json:"chan_point,omitempty"`
LastUpdate uint32 `protobuf:"varint,3,opt,name=last_update,json=lastUpdate" json:"last_update,omitempty"`
Node1Pub string `protobuf:"bytes,4,opt,name=node1_pub,json=node1Pub" json:"node1_pub,omitempty"`
Node2Pub string `protobuf:"bytes,5,opt,name=node2_pub,json=node2Pub" json:"node2_pub,omitempty"`
Capacity int64 `protobuf:"varint,6,opt,name=capacity" json:"capacity,omitempty"`
Node1Policy *RoutingPolicy `protobuf:"bytes,7,opt,name=node1_policy" json:"node1_policy,omitempty"`
Node2Policy *RoutingPolicy `protobuf:"bytes,8,opt,name=node2_policy" json:"node2_policy,omitempty"`
Node1Policy *RoutingPolicy `protobuf:"bytes,7,opt,name=node1_policy,json=node1Policy" json:"node1_policy,omitempty"`
Node2Policy *RoutingPolicy `protobuf:"bytes,8,opt,name=node2_policy,json=node2Policy" json:"node2_policy,omitempty"`
}
func (m *ChannelEdge) Reset() { *m = ChannelEdge{} }
@@ -1867,7 +1859,7 @@ func (m *ChannelGraph) GetEdges() []*ChannelEdge {
}
type ChanInfoRequest struct {
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id" json:"chan_id,omitempty"`
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId" json:"chan_id,omitempty"`
}
func (m *ChanInfoRequest) Reset() { *m = ChanInfoRequest{} }
@@ -1891,15 +1883,15 @@ func (*NetworkInfoRequest) ProtoMessage() {}
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
type NetworkInfo struct {
GraphDiameter uint32 `protobuf:"varint,1,opt,name=graph_diameter" json:"graph_diameter,omitempty"`
AvgOutDegree float64 `protobuf:"fixed64,2,opt,name=avg_out_degree" json:"avg_out_degree,omitempty"`
MaxOutDegree uint32 `protobuf:"varint,3,opt,name=max_out_degree" json:"max_out_degree,omitempty"`
NumNodes uint32 `protobuf:"varint,4,opt,name=num_nodes" json:"num_nodes,omitempty"`
NumChannels uint32 `protobuf:"varint,5,opt,name=num_channels" json:"num_channels,omitempty"`
TotalNetworkCapacity int64 `protobuf:"varint,6,opt,name=total_network_capacity" json:"total_network_capacity,omitempty"`
AvgChannelSize float64 `protobuf:"fixed64,7,opt,name=avg_channel_size" json:"avg_channel_size,omitempty"`
MinChannelSize int64 `protobuf:"varint,8,opt,name=min_channel_size" json:"min_channel_size,omitempty"`
MaxChannelSize int64 `protobuf:"varint,9,opt,name=max_channel_size" json:"max_channel_size,omitempty"`
GraphDiameter uint32 `protobuf:"varint,1,opt,name=graph_diameter,json=graphDiameter" json:"graph_diameter,omitempty"`
AvgOutDegree float64 `protobuf:"fixed64,2,opt,name=avg_out_degree,json=avgOutDegree" json:"avg_out_degree,omitempty"`
MaxOutDegree uint32 `protobuf:"varint,3,opt,name=max_out_degree,json=maxOutDegree" json:"max_out_degree,omitempty"`
NumNodes uint32 `protobuf:"varint,4,opt,name=num_nodes,json=numNodes" json:"num_nodes,omitempty"`
NumChannels uint32 `protobuf:"varint,5,opt,name=num_channels,json=numChannels" json:"num_channels,omitempty"`
TotalNetworkCapacity int64 `protobuf:"varint,6,opt,name=total_network_capacity,json=totalNetworkCapacity" json:"total_network_capacity,omitempty"`
AvgChannelSize float64 `protobuf:"fixed64,7,opt,name=avg_channel_size,json=avgChannelSize" json:"avg_channel_size,omitempty"`
MinChannelSize int64 `protobuf:"varint,8,opt,name=min_channel_size,json=minChannelSize" json:"min_channel_size,omitempty"`
MaxChannelSize int64 `protobuf:"varint,9,opt,name=max_channel_size,json=maxChannelSize" json:"max_channel_size,omitempty"`
}
func (m *NetworkInfo) Reset() { *m = NetworkInfo{} }
@@ -1971,7 +1963,7 @@ func (m *NetworkInfo) GetMaxChannelSize() int64 {
}
type SetAliasRequest struct {
NewAlias string `protobuf:"bytes,1,opt,name=new_alias" json:"new_alias,omitempty"`
NewAlias string `protobuf:"bytes,1,opt,name=new_alias,json=newAlias" json:"new_alias,omitempty"`
}
func (m *SetAliasRequest) Reset() { *m = SetAliasRequest{} }
@@ -1997,13 +1989,13 @@ func (*SetAliasResponse) Descriptor() ([]byte, []int) { return fileDescriptor0,
type Invoice struct {
Memo string `protobuf:"bytes,1,opt,name=memo" json:"memo,omitempty"`
Receipt []byte `protobuf:"bytes,2,opt,name=receipt,proto3" json:"receipt,omitempty"`
RPreimage []byte `protobuf:"bytes,3,opt,name=r_preimage,proto3" json:"r_preimage,omitempty"`
RHash []byte `protobuf:"bytes,4,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
RPreimage []byte `protobuf:"bytes,3,opt,name=r_preimage,json=rPreimage,proto3" json:"r_preimage,omitempty"`
RHash []byte `protobuf:"bytes,4,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"`
Value int64 `protobuf:"varint,5,opt,name=value" json:"value,omitempty"`
Settled bool `protobuf:"varint,6,opt,name=settled" json:"settled,omitempty"`
CreationDate int64 `protobuf:"varint,7,opt,name=creation_date" json:"creation_date,omitempty"`
SettleDate int64 `protobuf:"varint,8,opt,name=settle_date" json:"settle_date,omitempty"`
PaymentRequest string `protobuf:"bytes,9,opt,name=payment_request" json:"payment_request,omitempty"`
CreationDate int64 `protobuf:"varint,7,opt,name=creation_date,json=creationDate" json:"creation_date,omitempty"`
SettleDate int64 `protobuf:"varint,8,opt,name=settle_date,json=settleDate" json:"settle_date,omitempty"`
PaymentRequest string `protobuf:"bytes,9,opt,name=payment_request,json=paymentRequest" json:"payment_request,omitempty"`
}
func (m *Invoice) Reset() { *m = Invoice{} }
@@ -2075,8 +2067,8 @@ func (m *Invoice) GetPaymentRequest() string {
}
type AddInvoiceResponse struct {
RHash []byte `protobuf:"bytes,1,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
PaymentRequest string `protobuf:"bytes,2,opt,name=payment_request" json:"payment_request,omitempty"`
RHash []byte `protobuf:"bytes,1,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"`
PaymentRequest string `protobuf:"bytes,2,opt,name=payment_request,json=paymentRequest" json:"payment_request,omitempty"`
}
func (m *AddInvoiceResponse) Reset() { *m = AddInvoiceResponse{} }
@@ -2099,8 +2091,8 @@ func (m *AddInvoiceResponse) GetPaymentRequest() string {
}
type PaymentHash struct {
RHashStr string `protobuf:"bytes,1,opt,name=r_hash_str" json:"r_hash_str,omitempty"`
RHash []byte `protobuf:"bytes,2,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
RHashStr string `protobuf:"bytes,1,opt,name=r_hash_str,json=rHashStr" json:"r_hash_str,omitempty"`
RHash []byte `protobuf:"bytes,2,opt,name=r_hash,json=rHash,proto3" json:"r_hash,omitempty"`
}
func (m *PaymentHash) Reset() { *m = PaymentHash{} }
@@ -2123,7 +2115,7 @@ func (m *PaymentHash) GetRHash() []byte {
}
type ListInvoiceRequest struct {
PendingOnly bool `protobuf:"varint,1,opt,name=pending_only" json:"pending_only,omitempty"`
PendingOnly bool `protobuf:"varint,1,opt,name=pending_only,json=pendingOnly" json:"pending_only,omitempty"`
}
func (m *ListInvoiceRequest) Reset() { *m = ListInvoiceRequest{} }
@@ -2163,9 +2155,9 @@ func (*InvoiceSubscription) ProtoMessage() {}
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }
type Payment struct {
PaymentHash string `protobuf:"bytes,1,opt,name=payment_hash" json:"payment_hash,omitempty"`
PaymentHash string `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash" json:"payment_hash,omitempty"`
Value int64 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
CreationDate int64 `protobuf:"varint,3,opt,name=creation_date" json:"creation_date,omitempty"`
CreationDate int64 `protobuf:"varint,3,opt,name=creation_date,json=creationDate" json:"creation_date,omitempty"`
Path []string `protobuf:"bytes,4,rep,name=path" json:"path,omitempty"`
Fee int64 `protobuf:"varint,5,opt,name=fee" json:"fee,omitempty"`
}
@@ -2252,7 +2244,7 @@ func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { return fileDesc
type DebugLevelRequest struct {
Show bool `protobuf:"varint,1,opt,name=show" json:"show,omitempty"`
LevelSpec string `protobuf:"bytes,2,opt,name=level_spec" json:"level_spec,omitempty"`
LevelSpec string `protobuf:"bytes,2,opt,name=level_spec,json=levelSpec" json:"level_spec,omitempty"`
}
func (m *DebugLevelRequest) Reset() { *m = DebugLevelRequest{} }
@@ -2275,7 +2267,7 @@ func (m *DebugLevelRequest) GetLevelSpec() string {
}
type DebugLevelResponse struct {
SubSystems string `protobuf:"bytes,1,opt,name=sub_systems" json:"sub_systems,omitempty"`
SubSystems string `protobuf:"bytes,1,opt,name=sub_systems,json=subSystems" json:"sub_systems,omitempty"`
}
func (m *DebugLevelResponse) Reset() { *m = DebugLevelResponse{} }
@@ -2291,7 +2283,7 @@ func (m *DebugLevelResponse) GetSubSystems() string {
}
type PayReqString struct {
PayReq string `protobuf:"bytes,1,opt,name=pay_req" json:"pay_req,omitempty"`
PayReq string `protobuf:"bytes,1,opt,name=pay_req,json=payReq" json:"pay_req,omitempty"`
}
func (m *PayReqString) Reset() { *m = PayReqString{} }
@@ -2308,8 +2300,8 @@ func (m *PayReqString) GetPayReq() string {
type PayReq struct {
Destination string `protobuf:"bytes,1,opt,name=destination" json:"destination,omitempty"`
PaymentHash string `protobuf:"bytes,2,opt,name=payment_hash" json:"payment_hash,omitempty"`
NumSatoshis int64 `protobuf:"varint,3,opt,name=num_satoshis" json:"num_satoshis,omitempty"`
PaymentHash string `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash" json:"payment_hash,omitempty"`
NumSatoshis int64 `protobuf:"varint,3,opt,name=num_satoshis,json=numSatoshis" json:"num_satoshis,omitempty"`
}
func (m *PayReq) Reset() { *m = PayReq{} }
@@ -3654,203 +3646,246 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 3166 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x5a, 0x4f, 0x6f, 0x1b, 0xc7,
0x15, 0xf7, 0x8a, 0x94, 0x44, 0x3e, 0x2e, 0x45, 0x6a, 0x24, 0x51, 0x34, 0xed, 0xc4, 0xf2, 0xc6,
0x49, 0x15, 0xc3, 0xb1, 0x6c, 0x05, 0x45, 0x83, 0x04, 0x49, 0xa1, 0xd8, 0xae, 0x65, 0x54, 0x91,
0x15, 0x4b, 0x8e, 0xdb, 0xa4, 0xc5, 0x66, 0xb5, 0x3b, 0xa2, 0x36, 0x5e, 0xee, 0x6e, 0x76, 0x87,
0x92, 0x59, 0x43, 0x97, 0x1e, 0x0a, 0xf4, 0xdc, 0x4b, 0x81, 0x02, 0x45, 0x7b, 0x2c, 0x50, 0x14,
0xed, 0xe7, 0xe8, 0xb1, 0xb7, 0xf6, 0x54, 0xa0, 0xc7, 0x7e, 0x88, 0x62, 0xde, 0xcc, 0xec, 0xce,
0x2c, 0xe9, 0xa0, 0x41, 0xd1, 0x9b, 0xf8, 0x66, 0xe6, 0xcd, 0x7b, 0x6f, 0xde, 0x9f, 0xdf, 0x7b,
0x2b, 0x68, 0x66, 0xa9, 0x7f, 0x3b, 0xcd, 0x12, 0x96, 0x90, 0xf9, 0x28, 0xce, 0x52, 0x7f, 0x70,
0x75, 0x98, 0x24, 0xc3, 0x88, 0x6e, 0x79, 0x69, 0xb8, 0xe5, 0xc5, 0x71, 0xc2, 0x3c, 0x16, 0x26,
0x71, 0x2e, 0x36, 0x39, 0xbf, 0xb1, 0xa0, 0x75, 0x94, 0x79, 0x71, 0xee, 0xf9, 0x9c, 0x4c, 0x3a,
0xb0, 0xc8, 0x5e, 0xb8, 0xa7, 0x5e, 0x7e, 0xda, 0xb7, 0x36, 0xac, 0xcd, 0x26, 0x59, 0x82, 0x05,
0x6f, 0x94, 0x8c, 0x63, 0xd6, 0x9f, 0xdb, 0xb0, 0x36, 0x2d, 0x72, 0x19, 0x96, 0xe3, 0xf1, 0xc8,
0xf5, 0x93, 0xf8, 0x24, 0xcc, 0x46, 0x82, 0x57, 0xbf, 0xb6, 0x61, 0x6d, 0xce, 0x13, 0x02, 0x70,
0x1c, 0x25, 0xfe, 0x73, 0x71, 0xbc, 0x8e, 0xc7, 0x57, 0xc1, 0x96, 0x34, 0x1a, 0x0e, 0x4f, 0x59,
0x7f, 0x5e, 0xed, 0x64, 0xe1, 0x88, 0xba, 0x39, 0xf3, 0x46, 0x69, 0x7f, 0x61, 0xc3, 0xda, 0xac,
0x21, 0x2d, 0x61, 0x5e, 0xe4, 0x9e, 0x50, 0x9a, 0xf7, 0x17, 0x39, 0xcd, 0xe9, 0x43, 0xef, 0x21,
0x65, 0x9a, 0x7c, 0xf9, 0x13, 0xfa, 0xf5, 0x98, 0xe6, 0xcc, 0xf9, 0x08, 0x88, 0x46, 0xbe, 0x4f,
0x99, 0x17, 0x46, 0x39, 0xd9, 0x04, 0x9b, 0x69, 0x9b, 0xfb, 0xd6, 0x46, 0x6d, 0xb3, 0xb5, 0x4d,
0x6e, 0xa3, 0x25, 0x6e, 0x6b, 0x07, 0x9c, 0x5f, 0x5a, 0xd0, 0x3a, 0xa4, 0x71, 0x20, 0xf9, 0x11,
0x1b, 0xea, 0x01, 0xcd, 0x19, 0x2a, 0x6d, 0x93, 0x15, 0x68, 0xf1, 0x5f, 0x6e, 0xce, 0xb2, 0x30,
0x1e, 0xa2, 0xe6, 0x4d, 0xd2, 0x82, 0x9a, 0x37, 0x62, 0xa8, 0x6b, 0x8d, 0xeb, 0x95, 0x7a, 0x93,
0x11, 0x8d, 0x59, 0xa9, 0xad, 0x4d, 0xae, 0xc0, 0x8a, 0x4e, 0x55, 0xe7, 0xe7, 0xf1, 0xfc, 0x3a,
0x74, 0xd4, 0x62, 0x26, 0x6e, 0x45, 0xcd, 0x9b, 0xce, 0x27, 0x60, 0x0b, 0x51, 0xf2, 0x34, 0x89,
0x73, 0x4a, 0xfa, 0xd0, 0x55, 0x1b, 0xd3, 0x8c, 0x86, 0x23, 0x6f, 0x48, 0xa5, 0x5c, 0x6f, 0x40,
0xbb, 0x60, 0x91, 0x8c, 0x19, 0x45, 0xc9, 0x5a, 0xdb, 0xb6, 0x54, 0xf0, 0x09, 0xa7, 0x39, 0x47,
0x60, 0xdf, 0x3b, 0xf5, 0xe2, 0x98, 0x46, 0x07, 0x49, 0x18, 0x33, 0x2e, 0xea, 0xc9, 0x38, 0x0e,
0xc2, 0x78, 0xe8, 0xb2, 0x17, 0x61, 0x20, 0x59, 0xf5, 0xa1, 0xab, 0x53, 0xb9, 0xa8, 0x52, 0xcf,
0x55, 0xb0, 0x93, 0x31, 0x4b, 0xc7, 0xcc, 0x0d, 0xe3, 0x80, 0xbe, 0x40, 0x85, 0xdb, 0xce, 0x1d,
0xe8, 0xee, 0xf1, 0x17, 0x8c, 0xc3, 0x78, 0xb8, 0x13, 0x04, 0x19, 0xcd, 0x73, 0xee, 0x1b, 0xe9,
0xf8, 0xf8, 0x39, 0x9d, 0x48, 0x5f, 0xb1, 0xa1, 0x7e, 0x9a, 0xe4, 0xc2, 0x53, 0x9a, 0xce, 0x2f,
0x2c, 0xe8, 0x70, 0xbd, 0x3e, 0xf1, 0xe2, 0x89, 0x32, 0xf3, 0x47, 0x60, 0xf3, 0xc3, 0x47, 0xc9,
0x8e, 0xf0, 0x29, 0xf1, 0x40, 0x9b, 0x52, 0xfe, 0xca, 0xee, 0xdb, 0xfa, 0xd6, 0x07, 0x31, 0xcb,
0x26, 0x83, 0x77, 0x61, 0x79, 0x8a, 0xc8, 0x1f, 0xa6, 0x94, 0xa1, 0x0d, 0xf3, 0x67, 0x5e, 0x34,
0x16, 0xa6, 0xa9, 0xbd, 0x3f, 0xf7, 0x9e, 0xe5, 0x6c, 0x40, 0xb7, 0xe4, 0x2c, 0x6d, 0x6c, 0x43,
0xbd, 0x30, 0x46, 0x93, 0x2b, 0xc7, 0x77, 0xdc, 0x4b, 0xc2, 0xc2, 0xc3, 0xf8, 0x0e, 0x2f, 0x08,
0xb2, 0x99, 0x61, 0x50, 0x73, 0xae, 0xc3, 0xb2, 0x76, 0x62, 0x26, 0xd3, 0x5f, 0x5b, 0xb0, 0xbc,
0x4f, 0xcf, 0xa5, 0xb1, 0x14, 0xdb, 0x6d, 0xa8, 0xb3, 0x49, 0x2a, 0x1e, 0x74, 0x69, 0xfb, 0x86,
0xd4, 0x7c, 0x6a, 0xdf, 0x6d, 0xf9, 0xf3, 0x68, 0x92, 0x52, 0xe7, 0x31, 0xb4, 0xb4, 0x9f, 0x64,
0x1d, 0x56, 0x9e, 0x3d, 0x3a, 0xda, 0x7f, 0x70, 0x78, 0xe8, 0x1e, 0x3c, 0xfd, 0xf8, 0x87, 0x0f,
0x7e, 0xec, 0xee, 0xee, 0x1c, 0xee, 0x76, 0x2f, 0x91, 0x1e, 0x90, 0xfd, 0x07, 0x87, 0x47, 0x0f,
0xee, 0x1b, 0x74, 0x8b, 0x74, 0xa0, 0xa5, 0x13, 0xe6, 0x9c, 0x01, 0xf4, 0xf7, 0xe9, 0xf9, 0xb3,
0x90, 0xc5, 0x34, 0xcf, 0xcd, 0x8b, 0x9d, 0x37, 0x81, 0xe8, 0xd2, 0x48, 0xd5, 0x3a, 0xb0, 0xe8,
0x09, 0x92, 0xd4, 0xee, 0x11, 0x90, 0x7b, 0x49, 0x1c, 0x53, 0x9f, 0x1d, 0x50, 0x9a, 0x29, 0xed,
0xde, 0xd4, 0x8c, 0xd6, 0xda, 0x5e, 0x97, 0xda, 0x4d, 0x39, 0x8e, 0x0d, 0xf5, 0x94, 0x66, 0x23,
0xb4, 0x65, 0xc3, 0x79, 0x0b, 0x56, 0x0c, 0x56, 0xe5, 0x95, 0x29, 0xa5, 0x99, 0x2b, 0x0d, 0x3a,
0xef, 0xa4, 0x50, 0xdf, 0x3d, 0xda, 0xbb, 0x47, 0xba, 0xd0, 0x08, 0x63, 0x3f, 0x19, 0xf1, 0xd0,
0xe2, 0x2b, 0x8d, 0xea, 0xeb, 0x90, 0x65, 0x68, 0x62, 0xfc, 0xf1, 0xcc, 0x83, 0xfe, 0x6b, 0xf3,
0xbc, 0x45, 0x5f, 0xa4, 0x61, 0x86, 0x19, 0x4b, 0x65, 0x23, 0x1e, 0xb5, 0x6d, 0x1e, 0x0a, 0x19,
0x3d, 0x4b, 0x7c, 0xb1, 0x14, 0xd0, 0xc8, 0x9b, 0x60, 0xc8, 0xb6, 0x9d, 0xdf, 0xcf, 0x41, 0x7b,
0xc7, 0x67, 0xe1, 0x19, 0x95, 0x11, 0x45, 0xd6, 0xa0, 0x9d, 0xd1, 0x51, 0xc2, 0xa8, 0x6b, 0x78,
0xfe, 0x1a, 0xb4, 0x7d, 0xb1, 0xc3, 0x4d, 0x79, 0xd0, 0xc9, 0x50, 0xea, 0xc0, 0x22, 0x27, 0x73,
0x15, 0xb8, 0x14, 0x75, 0x2e, 0xba, 0xef, 0xa5, 0x9e, 0x1f, 0xb2, 0x09, 0x5e, 0x5e, 0xe3, 0x27,
0xa3, 0xc4, 0xf7, 0x22, 0xf7, 0xd8, 0x8b, 0xbc, 0xd8, 0xa7, 0x78, 0x73, 0x8d, 0xf4, 0x60, 0x49,
0xde, 0xa3, 0xe8, 0x22, 0x4b, 0x5e, 0x86, 0xe5, 0x71, 0x9c, 0x53, 0xc6, 0x22, 0x1a, 0x14, 0x4b,
0x98, 0x2c, 0x79, 0xf2, 0x11, 0x09, 0x34, 0xf7, 0x58, 0x92, 0x9f, 0x86, 0xb9, 0x9b, 0xd3, 0x98,
0xf5, 0x1b, 0xb8, 0x78, 0x0d, 0xd6, 0x2b, 0x8b, 0x19, 0xf5, 0x69, 0x78, 0x46, 0x83, 0x7e, 0x13,
0x37, 0xac, 0x40, 0x8b, 0xe7, 0xf5, 0x71, 0x1a, 0x78, 0x8c, 0xe6, 0x7d, 0x40, 0x71, 0x1d, 0x68,
0xa7, 0x54, 0x24, 0x89, 0x53, 0x16, 0xf9, 0x79, 0xbf, 0x85, 0xf1, 0xda, 0x92, 0xef, 0xca, 0x5f,
0xc3, 0x59, 0x83, 0x95, 0xbd, 0x30, 0x67, 0xd2, 0x40, 0x5a, 0x82, 0x5e, 0x35, 0xc9, 0xf2, 0x55,
0xdf, 0x82, 0x86, 0xb4, 0x94, 0xe2, 0xb6, 0x2a, 0xb9, 0x19, 0x86, 0x76, 0xfe, 0x60, 0x41, 0x9d,
0xbb, 0x03, 0xba, 0xc1, 0xf8, 0xd8, 0x2d, 0x6d, 0xad, 0xf9, 0xc5, 0x1c, 0x56, 0x13, 0xcd, 0x37,
0x6b, 0xb8, 0x83, 0x17, 0xa2, 0x09, 0xa3, 0xd2, 0x00, 0x75, 0x54, 0xa5, 0xa0, 0x65, 0xd4, 0x3f,
0x43, 0x23, 0xe3, 0x6b, 0xe4, 0x1e, 0x13, 0xbb, 0x84, 0x79, 0x25, 0x05, 0xf7, 0x08, 0xab, 0x76,
0x60, 0x31, 0x8c, 0x8f, 0x93, 0x71, 0x1c, 0xa0, 0x25, 0x1b, 0xdc, 0xb7, 0x52, 0xcc, 0x9a, 0xe1,
0x88, 0x0a, 0xdb, 0x39, 0x84, 0xe7, 0xc6, 0x1c, 0xbd, 0xb7, 0xd0, 0x7f, 0x0b, 0x96, 0x35, 0x9a,
0x54, 0x7e, 0x00, 0xf3, 0x5c, 0x74, 0x55, 0x98, 0x94, 0x1d, 0xf9, 0x26, 0xa7, 0x0b, 0x4b, 0x0f,
0x29, 0x7b, 0x14, 0x9f, 0x24, 0x8a, 0xc5, 0x3f, 0x2c, 0xe8, 0x14, 0x24, 0xc9, 0x61, 0x1d, 0x3a,
0x61, 0x40, 0x63, 0x16, 0xb2, 0x89, 0xe9, 0x81, 0x6d, 0x98, 0xf7, 0xa2, 0xd0, 0xcb, 0xa5, 0xe7,
0x5d, 0x85, 0x55, 0xfe, 0x9c, 0xea, 0xf5, 0x0a, 0x93, 0x63, 0x32, 0xe7, 0xae, 0xc2, 0x57, 0x3d,
0xb4, 0x78, 0xb9, 0x28, 0xc2, 0x61, 0x19, 0x9a, 0xe2, 0x28, 0x17, 0x14, 0xe3, 0x60, 0xaa, 0x8a,
0x2f, 0x20, 0xd5, 0xac, 0xf7, 0x0d, 0x55, 0xe4, 0xf2, 0x49, 0xec, 0xd3, 0xc0, 0x65, 0x09, 0x67,
0x1c, 0xc6, 0x68, 0xa3, 0x06, 0x02, 0x0b, 0x9a, 0xb3, 0x98, 0x32, 0xf4, 0xad, 0x86, 0xf3, 0x14,
0x13, 0x48, 0x01, 0x22, 0x9e, 0xa2, 0xe3, 0xf1, 0xcb, 0x05, 0xcf, 0xfc, 0xd4, 0x93, 0x95, 0xaa,
0x7a, 0xb9, 0x78, 0xf4, 0x1e, 0x2c, 0x29, 0x1c, 0x92, 0xbb, 0x11, 0x3d, 0x61, 0xb2, 0x4e, 0x7d,
0x1f, 0x96, 0xa5, 0x0b, 0x3d, 0x4e, 0xa9, 0xe2, 0x7a, 0xb3, 0x1a, 0x9e, 0x22, 0x3f, 0xad, 0x48,
0xfb, 0xeb, 0xe5, 0xd2, 0xf9, 0x00, 0x88, 0xfc, 0x7d, 0x2f, 0x4a, 0x72, 0x2a, 0x39, 0xac, 0x82,
0xed, 0x47, 0x49, 0x5e, 0x29, 0xa2, 0x1d, 0x58, 0xcc, 0xc7, 0xbe, 0xcf, 0x3d, 0x4f, 0xa4, 0xb2,
0x00, 0x56, 0xf0, 0x94, 0xe4, 0xa0, 0xd2, 0xe2, 0xb7, 0xb8, 0xbf, 0xc0, 0x46, 0x51, 0x38, 0x0a,
0x55, 0x3e, 0x6b, 0xc3, 0xfc, 0x49, 0x92, 0xf9, 0x14, 0x75, 0x6c, 0x38, 0x7f, 0xb6, 0x60, 0x19,
0xaf, 0x39, 0x64, 0x1e, 0x1b, 0xe7, 0x52, 0xc4, 0x77, 0xa0, 0xcd, 0x45, 0xa4, 0xea, 0xd1, 0xe5,
0x25, 0xab, 0x85, 0x93, 0x21, 0x55, 0x6c, 0xde, 0xbd, 0x44, 0xee, 0x82, 0xad, 0x83, 0x38, 0x09,
0x25, 0x2e, 0x2b, 0x91, 0xa6, 0x9e, 0x66, 0xf7, 0x12, 0xd9, 0x02, 0xc0, 0x74, 0x86, 0xd7, 0xa0,
0x2c, 0xda, 0x81, 0x29, 0x9b, 0xed, 0x5e, 0xfa, 0xb8, 0x01, 0x0b, 0x22, 0xa1, 0x38, 0xaf, 0x41,
0xdb, 0x10, 0xc0, 0xa8, 0x95, 0xb6, 0xf3, 0x3b, 0x0b, 0x08, 0x7f, 0xaf, 0x8a, 0xdd, 0x7a, 0xb0,
0xc4, 0xbc, 0x6c, 0x48, 0x99, 0x6b, 0x54, 0x02, 0x4c, 0x56, 0x49, 0x50, 0xe4, 0xe0, 0x39, 0x7c,
0x8c, 0x01, 0x10, 0x8d, 0xa8, 0xb0, 0x57, 0x4d, 0x85, 0x83, 0xc8, 0xb2, 0x0a, 0xf3, 0xc8, 0x72,
0x51, 0x57, 0x51, 0x9f, 0x8e, 0x39, 0x5c, 0xf3, 0x98, 0x4c, 0xbf, 0x32, 0x06, 0xd0, 0xbb, 0x84,
0xb7, 0x3b, 0x7f, 0xb4, 0xa0, 0xcb, 0x45, 0x34, 0x6c, 0x7e, 0x0b, 0x6c, 0xb4, 0xc8, 0xff, 0xcd,
0xe4, 0xef, 0x40, 0x13, 0x2f, 0x48, 0x52, 0x1a, 0x4b, 0x8b, 0xf7, 0x4d, 0x8b, 0x97, 0x6e, 0x6e,
0x18, 0xfc, 0x43, 0x58, 0x93, 0xd7, 0x57, 0x6c, 0x7a, 0x03, 0x16, 0x72, 0x54, 0x41, 0x42, 0x90,
0x55, 0x93, 0x9d, 0x50, 0xcf, 0xf9, 0xd3, 0x1c, 0xf4, 0xaa, 0xe7, 0x65, 0x0a, 0xfa, 0x01, 0x74,
0xa7, 0xd2, 0x8a, 0xc8, 0x67, 0xb7, 0x4c, 0xbd, 0x2b, 0x07, 0x2b, 0xe4, 0xc1, 0x5f, 0x2d, 0x58,
0x32, 0x49, 0x53, 0x25, 0x9f, 0x87, 0x5d, 0x91, 0xee, 0xd4, 0x4b, 0xcf, 0xa8, 0xb6, 0xe2, 0x91,
0xff, 0xe7, 0xe2, 0x5a, 0x0d, 0xf2, 0x45, 0x64, 0x5b, 0x1a, 0xac, 0xf1, 0x0d, 0x06, 0xbb, 0x05,
0xab, 0xcf, 0xbc, 0x28, 0xa2, 0xec, 0x63, 0xc1, 0x52, 0x99, 0x7b, 0x15, 0xec, 0x73, 0x81, 0xb3,
0xdc, 0x24, 0x8e, 0x44, 0xb6, 0x6e, 0x38, 0x9b, 0xb0, 0x56, 0xd9, 0x5d, 0x82, 0x1e, 0x25, 0x13,
0xdf, 0x69, 0x39, 0xeb, 0xb0, 0x26, 0x2f, 0x32, 0x19, 0x3b, 0x6f, 0x43, 0xaf, 0xba, 0x30, 0x9b,
0x47, 0xcd, 0xb9, 0x05, 0x36, 0xb6, 0x06, 0x4a, 0xa6, 0xa9, 0x92, 0x2a, 0x5b, 0x1b, 0x01, 0x6d,
0x9f, 0x40, 0x6d, 0x37, 0x49, 0x75, 0xec, 0x62, 0x61, 0xb5, 0x94, 0x56, 0x77, 0x0b, 0x1b, 0xcf,
0x29, 0x63, 0x7a, 0x23, 0xc6, 0xd3, 0xfd, 0x49, 0x92, 0x9d, 0x7b, 0x59, 0x20, 0x3b, 0xa4, 0x16,
0xd4, 0x4e, 0x28, 0x15, 0x0f, 0xe1, 0x78, 0x30, 0x8f, 0x12, 0xf0, 0xfa, 0x20, 0x70, 0x88, 0xc8,
0x71, 0x1c, 0x9f, 0x59, 0xaa, 0x98, 0x68, 0xed, 0x5f, 0x01, 0xe3, 0x04, 0xad, 0xec, 0xbb, 0xfa,
0xbc, 0xc5, 0x48, 0x79, 0xa9, 0xe2, 0x0e, 0x07, 0x0a, 0x88, 0x24, 0xa9, 0xe3, 0x40, 0x67, 0x3f,
0x09, 0xa8, 0x56, 0x40, 0xa7, 0xf4, 0x74, 0x7e, 0x02, 0x0d, 0xb5, 0x87, 0x38, 0x50, 0xe7, 0xe9,
0xa2, 0x12, 0xb2, 0x05, 0x54, 0xe5, 0xfb, 0xf8, 0xe3, 0x61, 0x1a, 0x50, 0x6e, 0x3e, 0x87, 0xa2,
0xf2, 0xac, 0x84, 0x62, 0x15, 0x96, 0x40, 0xd9, 0x9c, 0xa7, 0xd0, 0x36, 0x8f, 0xaf, 0x40, 0x2b,
0xf2, 0x72, 0x26, 0x41, 0x95, 0x54, 0x54, 0x13, 0xaa, 0x00, 0x89, 0x26, 0x7c, 0x29, 0x4a, 0x39,
0xb6, 0xd0, 0x4e, 0x0c, 0x6d, 0x6e, 0xbb, 0x30, 0x1e, 0x1e, 0x24, 0x51, 0xe8, 0x4f, 0xd0, 0x86,
0xca, 0x7a, 0x1c, 0xae, 0x32, 0x4f, 0xb2, 0xee, 0x42, 0x63, 0x14, 0xc6, 0x08, 0xd5, 0xa4, 0x05,
0xd7, 0xa0, 0x7d, 0x42, 0xb9, 0x9b, 0xe7, 0xd4, 0x1d, 0xf1, 0xf4, 0x56, 0x53, 0x50, 0x91, 0x93,
0x33, 0x8f, 0x51, 0x77, 0x14, 0x46, 0x51, 0x28, 0x16, 0xc5, 0x5b, 0xfd, 0xdd, 0x82, 0x96, 0xf4,
0xac, 0x07, 0xc1, 0x90, 0xf2, 0x97, 0x51, 0xd1, 0x56, 0xf8, 0x82, 0xa4, 0x19, 0x60, 0xb7, 0xa2,
0x6d, 0xad, 0x00, 0x13, 0x49, 0x40, 0xef, 0xf2, 0xac, 0x2c, 0x47, 0x02, 0x92, 0xb4, 0x8d, 0xa4,
0xf9, 0xa9, 0xc8, 0x15, 0xa1, 0x78, 0x13, 0x6c, 0x79, 0x0e, 0x75, 0xc6, 0x50, 0x2c, 0x5f, 0xc9,
0xb4, 0x87, 0xdc, 0xbb, 0xad, 0xf6, 0x36, 0x5e, 0xbd, 0x97, 0xa3, 0x55, 0xa9, 0xdb, 0xc3, 0xcc,
0x4b, 0x4f, 0x55, 0x30, 0x7d, 0x56, 0xf4, 0xcc, 0x48, 0x26, 0x6f, 0xc0, 0x3c, 0x67, 0xa9, 0x12,
0xdb, 0x6c, 0xef, 0xb8, 0x0e, 0xf3, 0x34, 0x18, 0xa2, 0xb7, 0xea, 0x63, 0x06, 0xcd, 0x76, 0xdc,
0x29, 0xf9, 0xcf, 0x8a, 0x53, 0x1a, 0x71, 0xe5, 0xac, 0xf2, 0x86, 0x8b, 0x9d, 0x27, 0xd9, 0x73,
0x1d, 0xfc, 0xfd, 0xdb, 0x82, 0x96, 0x46, 0xe6, 0x4e, 0x37, 0xe4, 0xa2, 0xb9, 0x41, 0xe8, 0x8d,
0x28, 0xa3, 0x99, 0x7c, 0x73, 0x1e, 0x7e, 0x67, 0x43, 0x37, 0x19, 0x33, 0x37, 0xa0, 0xc3, 0x8c,
0x52, 0x39, 0xa7, 0xe9, 0xc1, 0xd2, 0xc8, 0x7b, 0xa1, 0xd3, 0x6b, 0x3a, 0xba, 0x13, 0xda, 0xd5,
0x15, 0xba, 0x33, 0xbc, 0x5c, 0x60, 0xbe, 0xd7, 0xa1, 0x27, 0xbc, 0x3c, 0x16, 0x52, 0xb8, 0x95,
0x17, 0xea, 0x43, 0x97, 0x5f, 0xac, 0x5c, 0x23, 0x0f, 0x7f, 0x26, 0x1a, 0x11, 0x8b, 0xaf, 0x70,
0x37, 0x34, 0x56, 0x1a, 0xea, 0x0c, 0x17, 0xca, 0x58, 0x11, 0x10, 0xfa, 0x06, 0x74, 0x0e, 0x29,
0xdb, 0xe1, 0x6e, 0xaf, 0x0c, 0xc5, 0x25, 0xa5, 0xe7, 0xae, 0x08, 0x05, 0x11, 0xbf, 0x84, 0xf7,
0xe9, 0x6a, 0x97, 0xc8, 0x76, 0xce, 0x5f, 0x2c, 0x58, 0x7c, 0x14, 0x9f, 0x25, 0xa1, 0x8f, 0xa0,
0x62, 0x44, 0x47, 0x49, 0xd9, 0x28, 0x60, 0x93, 0x93, 0x32, 0x89, 0x10, 0x08, 0x40, 0x56, 0x8e,
0x54, 0x44, 0x5f, 0xb8, 0x04, 0x0b, 0x99, 0x3e, 0xc2, 0x29, 0xe6, 0x07, 0xf3, 0x0a, 0xfe, 0xcb,
0x6e, 0x0b, 0xd5, 0x6e, 0x60, 0x16, 0xcc, 0xa8, 0x6c, 0x15, 0xb9, 0x9f, 0x2f, 0xaa, 0xf6, 0x49,
0xec, 0x13, 0x44, 0xa1, 0xee, 0x8c, 0x89, 0x4f, 0x13, 0xf5, 0xf8, 0x10, 0xc8, 0x4e, 0x10, 0x48,
0xa9, 0x8b, 0xbc, 0x5d, 0x8a, 0x22, 0xd0, 0xe5, 0x8c, 0xe3, 0x62, 0xb2, 0x72, 0x17, 0x5a, 0x07,
0x62, 0x61, 0xd7, 0xcb, 0x4f, 0x85, 0x5a, 0x6a, 0xde, 0x54, 0xce, 0x2b, 0x24, 0x2f, 0x54, 0xdd,
0xb9, 0x09, 0x84, 0xb7, 0x23, 0xc5, 0x95, 0x45, 0x71, 0x52, 0xa5, 0x5c, 0x2b, 0x4e, 0xdf, 0x13,
0x1d, 0x5d, 0x55, 0xbc, 0x0d, 0xde, 0x76, 0x23, 0x49, 0x85, 0xc5, 0x92, 0xf4, 0x78, 0xb9, 0x93,
0x07, 0x97, 0xfc, 0xf3, 0x70, 0x7c, 0x9c, 0xfb, 0x59, 0x98, 0xe2, 0xac, 0xed, 0x4b, 0x58, 0x94,
0xe2, 0x4e, 0x8d, 0xcd, 0x66, 0xcd, 0x6c, 0xa6, 0x4d, 0x2c, 0x92, 0x96, 0x0d, 0xf5, 0xd4, 0x63,
0xa7, 0x98, 0xfa, 0x9b, 0xaa, 0xbc, 0xe0, 0x2b, 0xa9, 0x1e, 0x54, 0xde, 0x52, 0xf4, 0x60, 0xef,
0x89, 0x1e, 0xb4, 0x24, 0x97, 0x9a, 0x48, 0x29, 0xaa, 0x9a, 0xc8, 0xad, 0xce, 0x00, 0xfa, 0xf7,
0x69, 0x44, 0x19, 0xdd, 0x89, 0xa2, 0x2a, 0xd7, 0x2b, 0x70, 0x79, 0xc6, 0x9a, 0xf4, 0xc6, 0xef,
0xc2, 0xf2, 0x7d, 0x7a, 0x3c, 0x1e, 0xee, 0xd1, 0xb3, 0x12, 0x72, 0xd9, 0x50, 0xcf, 0x4f, 0x93,
0x73, 0x39, 0xac, 0x20, 0x00, 0x11, 0x5f, 0x75, 0xf3, 0x94, 0xfa, 0xf2, 0x45, 0xdf, 0x06, 0xa2,
0x1f, 0x93, 0x72, 0x72, 0xa7, 0x1a, 0x1f, 0xbb, 0xf9, 0x24, 0x67, 0x74, 0xa4, 0x62, 0xe0, 0x1a,
0xd8, 0x07, 0xde, 0xe4, 0x09, 0xfd, 0xfa, 0x10, 0x01, 0x2e, 0xd6, 0x13, 0x6f, 0xc2, 0x3d, 0xa4,
0x98, 0xcc, 0x2c, 0x88, 0x0d, 0x6a, 0x8c, 0x19, 0xc6, 0x02, 0x6e, 0x5a, 0x6a, 0xbc, 0x67, 0x3c,
0x41, 0x31, 0xf4, 0xe3, 0x39, 0x40, 0x4d, 0x07, 0x84, 0xc9, 0x6f, 0x6e, 0x43, 0xdb, 0x40, 0x39,
0x64, 0x11, 0x6a, 0x3b, 0x7b, 0x7b, 0xdd, 0x4b, 0xa4, 0x05, 0x8b, 0x8f, 0x0f, 0x1e, 0xec, 0x3f,
0xda, 0x7f, 0xd8, 0xb5, 0xf8, 0x8f, 0x7b, 0x7b, 0x8f, 0x0f, 0xf9, 0x8f, 0xb9, 0xed, 0x7f, 0xf6,
0xa0, 0x59, 0xe4, 0x49, 0xf2, 0x15, 0xb4, 0x0d, 0xa0, 0x43, 0xae, 0x48, 0x4b, 0xcf, 0x02, 0x4b,
0x83, 0xab, 0xb3, 0x17, 0xa5, 0x6d, 0x5f, 0xff, 0xf9, 0xdf, 0xfe, 0xf5, 0xab, 0xb9, 0x3e, 0xe9,
0x6d, 0x9d, 0xdd, 0xdd, 0x92, 0x08, 0x67, 0x0b, 0x5b, 0x43, 0x6c, 0x34, 0xc9, 0x73, 0x58, 0x32,
0x11, 0x11, 0xb9, 0x6a, 0xa6, 0xe4, 0xca, 0x6d, 0xaf, 0xbd, 0x62, 0x55, 0x5e, 0x77, 0x15, 0xaf,
0xeb, 0x91, 0x55, 0xfd, 0x3a, 0x95, 0x24, 0x09, 0xc5, 0xde, 0x5c, 0x1f, 0x4d, 0x13, 0xc5, 0x6f,
0xf6, 0xc8, 0x7a, 0x70, 0x79, 0x7a, 0x0c, 0x2d, 0xe7, 0xd6, 0x4e, 0x1f, 0xaf, 0x22, 0xa4, 0xcb,
0xaf, 0xd2, 0x27, 0xd8, 0xe4, 0x0b, 0x68, 0x16, 0x73, 0x46, 0xb2, 0xae, 0xcd, 0x49, 0xf5, 0x59,
0xe5, 0xa0, 0x3f, 0xbd, 0x20, 0x95, 0xb8, 0x82, 0x9c, 0xd7, 0x9c, 0x29, 0xce, 0xef, 0x5b, 0x37,
0xc9, 0x1e, 0xac, 0xc9, 0x40, 0x3d, 0xa6, 0xdf, 0x46, 0x93, 0x19, 0x03, 0xf5, 0x3b, 0x16, 0xf9,
0x00, 0x1a, 0x6a, 0xcc, 0x4a, 0x7a, 0xb3, 0x27, 0xba, 0x83, 0xf5, 0x29, 0xba, 0x74, 0xf5, 0x1d,
0x80, 0x72, 0xea, 0x48, 0xfa, 0xaf, 0x1a, 0x8b, 0x16, 0x46, 0x9c, 0x31, 0xa2, 0x1c, 0xe2, 0xb8,
0xd5, 0x1c, 0x6a, 0x92, 0x6b, 0xe5, 0xfe, 0x99, 0xe3, 0xce, 0x6f, 0x60, 0xe8, 0xf4, 0xd0, 0x76,
0x5d, 0xb2, 0xc4, 0x6d, 0x17, 0xd3, 0x73, 0x89, 0xd2, 0xc8, 0xe7, 0xd0, 0xd2, 0xe6, 0x95, 0x44,
0xeb, 0xdf, 0x2a, 0xe3, 0xd0, 0xc1, 0x60, 0xd6, 0x92, 0xe4, 0xbe, 0x8a, 0xdc, 0x97, 0x9c, 0x26,
0xe7, 0x8e, 0xc3, 0x16, 0xfe, 0x24, 0x9f, 0xf2, 0xe0, 0x91, 0x63, 0x23, 0x52, 0xce, 0x4f, 0xcd,
0xe1, 0x52, 0xf1, 0xde, 0x53, 0x13, 0x26, 0x67, 0x19, 0xb9, 0xb6, 0x48, 0xc9, 0x95, 0x7c, 0x02,
0x8b, 0x72, 0x8a, 0x44, 0xd6, 0xca, 0x77, 0xd5, 0xb0, 0xc6, 0xa0, 0x57, 0x25, 0x4b, 0x66, 0x2b,
0xc8, 0xac, 0x4d, 0x5a, 0x9c, 0xd9, 0x90, 0xb2, 0x90, 0xf3, 0x88, 0xa0, 0x63, 0x76, 0x6d, 0x79,
0x11, 0x66, 0x33, 0x1b, 0xce, 0x22, 0xcc, 0x66, 0x77, 0x85, 0x66, 0x98, 0xa9, 0xf0, 0xda, 0x92,
0x65, 0x89, 0xfc, 0x14, 0x6c, 0x7d, 0x8c, 0x48, 0x06, 0x9a, 0xe6, 0x95, 0x91, 0xe3, 0xe0, 0xca,
0xcc, 0x35, 0xd3, 0xdc, 0xc4, 0xd6, 0xaf, 0x21, 0x9f, 0x43, 0x47, 0x1b, 0x3b, 0x1c, 0x4e, 0x62,
0xbf, 0x78, 0xce, 0xe9, 0x71, 0xc4, 0x60, 0xe6, 0xbc, 0x68, 0x1d, 0x19, 0x2f, 0x3b, 0x06, 0x63,
0xfe, 0x94, 0xf7, 0xa0, 0xa5, 0xf1, 0xf8, 0x26, 0xbe, 0xeb, 0xda, 0x92, 0x3e, 0x5e, 0xb8, 0x63,
0x91, 0xdf, 0x5a, 0x60, 0xeb, 0x13, 0xa5, 0xc2, 0x00, 0x33, 0xc6, 0x4c, 0x85, 0x5b, 0x4c, 0xcd,
0x86, 0x9c, 0xcf, 0x50, 0xc8, 0x83, 0x9b, 0xfb, 0x86, 0x91, 0x5f, 0x1a, 0x5d, 0xf4, 0x6d, 0xfd,
0x7b, 0xd0, 0x45, 0x75, 0x51, 0xff, 0x24, 0x74, 0xb1, 0xf5, 0x12, 0xc7, 0x51, 0x17, 0x77, 0x2c,
0xf2, 0xbe, 0xf8, 0x8e, 0xa6, 0x0a, 0x3c, 0xd1, 0x02, 0xbc, 0x6a, 0x36, 0xfd, 0x23, 0xd7, 0xa6,
0x75, 0xc7, 0x22, 0x5f, 0x8a, 0x0f, 0x44, 0xf2, 0x2c, 0x5a, 0xff, 0xbf, 0x3d, 0xef, 0xdc, 0x40,
0x8d, 0x5e, 0x77, 0x2e, 0x1b, 0x1a, 0x55, 0x33, 0xdc, 0x01, 0x40, 0x09, 0xb4, 0x48, 0x05, 0xaf,
0x14, 0xb1, 0x3f, 0x8d, 0xc5, 0xcc, 0x57, 0x55, 0xb0, 0x87, 0x73, 0xfc, 0x4a, 0x38, 0xa4, 0xdc,
0x9f, 0x17, 0xcf, 0x3a, 0x8d, 0xae, 0x06, 0x83, 0x59, 0x4b, 0x92, 0xff, 0x1b, 0xc8, 0xff, 0x35,
0x72, 0x45, 0xe7, 0xbf, 0xf5, 0x52, 0x47, 0x63, 0x17, 0xe4, 0x33, 0x68, 0xef, 0x25, 0xc9, 0xf3,
0x71, 0xaa, 0x14, 0x20, 0x26, 0x4c, 0xe1, 0xe8, 0x6f, 0x50, 0x05, 0x61, 0xd7, 0x91, 0xf3, 0x15,
0x72, 0xd9, 0xe4, 0x5c, 0x22, 0xc4, 0x0b, 0xe2, 0xc1, 0x72, 0x91, 0xf7, 0x0b, 0x45, 0x06, 0x26,
0x1f, 0x1d, 0xc1, 0x4d, 0xdd, 0x61, 0x54, 0xe2, 0xe2, 0x8e, 0x5c, 0xf1, 0xbc, 0x63, 0x91, 0x03,
0xb0, 0xef, 0x53, 0x3f, 0x09, 0xa8, 0x82, 0x22, 0xa5, 0xe4, 0x05, 0x74, 0x19, 0xb4, 0x0d, 0xa2,
0x99, 0x09, 0x52, 0x6f, 0x92, 0xd1, 0xaf, 0xb7, 0x5e, 0x4a, 0x6c, 0x73, 0xa1, 0x32, 0x81, 0x42,
0x5c, 0x46, 0x26, 0xa8, 0x40, 0x34, 0x23, 0x13, 0x4c, 0x41, 0x34, 0x23, 0x13, 0x28, 0x1c, 0x48,
0x22, 0x0e, 0xdc, 0x2a, 0xa8, 0xae, 0xa8, 0x1e, 0xaf, 0xc2, 0x82, 0x83, 0x8d, 0x57, 0x6f, 0x30,
0x6f, 0xbb, 0x69, 0xde, 0x76, 0x08, 0xed, 0xfb, 0x54, 0x18, 0x4b, 0x34, 0x9c, 0x03, 0x33, 0xb5,
0xe8, 0xcd, 0x69, 0x35, 0xed, 0xe0, 0x9a, 0x99, 0xe8, 0xb1, 0x33, 0x24, 0x5f, 0x40, 0xeb, 0x21,
0x65, 0xaa, 0xdf, 0x2c, 0x6a, 0x70, 0xa5, 0x01, 0x1d, 0xcc, 0xea, 0x53, 0x37, 0x90, 0xdb, 0x80,
0xf4, 0x0b, 0x6e, 0x5b, 0xbc, 0xb5, 0x15, 0x49, 0xc0, 0x0d, 0x83, 0x0b, 0xf2, 0x23, 0x64, 0x5e,
0x4c, 0x4f, 0x14, 0xf3, 0xca, 0xc8, 0x65, 0xd0, 0xa9, 0xd0, 0x67, 0x71, 0xe6, 0xbd, 0xe7, 0xd6,
0x4b, 0x39, 0x04, 0xe1, 0x9c, 0xe1, 0xd3, 0x31, 0xcd, 0x26, 0x62, 0x40, 0xb4, 0xa2, 0x7f, 0xcb,
0x56, 0x5c, 0xcd, 0x0f, 0xdc, 0xdf, 0x41, 0x96, 0xd7, 0xc9, 0xb5, 0x92, 0x25, 0x7e, 0x0d, 0x2f,
0x79, 0x6e, 0xbd, 0xf4, 0x46, 0xec, 0x82, 0x3c, 0xc3, 0x4f, 0x2a, 0x7a, 0x17, 0x5d, 0x56, 0xfb,
0x6a, 0xc3, 0x5d, 0x98, 0x45, 0x5b, 0x32, 0x11, 0x80, 0xb8, 0x09, 0x6b, 0x20, 0x42, 0x1d, 0xd1,
0x87, 0x6a, 0x50, 0xc7, 0x68, 0x5f, 0x35, 0xa8, 0x63, 0x36, 0xac, 0x1c, 0xea, 0x94, 0x58, 0xbf,
0x80, 0x3a, 0x53, 0x5d, 0x43, 0x91, 0x9d, 0xa6, 0x1b, 0x83, 0xe3, 0x05, 0xfc, 0xe7, 0x8d, 0x77,
0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x71, 0x82, 0xe3, 0x1a, 0xee, 0x21, 0x00, 0x00,
// 3856 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x5a, 0x4b, 0x73, 0x1b, 0x49,
0x72, 0x56, 0xe3, 0x41, 0x00, 0x09, 0x80, 0x04, 0x8b, 0x2f, 0x08, 0xd2, 0xcc, 0x48, 0x3d, 0xda,
0x15, 0x57, 0x33, 0x26, 0x39, 0xb4, 0x3d, 0xaf, 0x8d, 0xf0, 0x06, 0x45, 0x4a, 0xa2, 0x62, 0x28,
0x8a, 0xd3, 0xe0, 0xac, 0xec, 0xdd, 0x70, 0xc0, 0x4d, 0xa0, 0x08, 0xf6, 0x0a, 0xe8, 0xee, 0xe9,
0x2e, 0x90, 0xc4, 0x28, 0xb4, 0x07, 0x87, 0x7d, 0xb2, 0x7d, 0x70, 0xf8, 0xbe, 0xe1, 0x8b, 0xcf,
0xbe, 0xf8, 0x17, 0xf8, 0x17, 0xd8, 0xb1, 0x07, 0x9f, 0x1d, 0xe1, 0x9b, 0x8f, 0xf6, 0xd5, 0x11,
0x8e, 0xcc, 0xaa, 0xea, 0xae, 0x6e, 0x80, 0x33, 0xb2, 0x63, 0x4f, 0xe8, 0xca, 0xca, 0xca, 0xaa,
0xca, 0xac, 0xcc, 0xfc, 0x2a, 0x0b, 0x50, 0x8b, 0xc2, 0xfe, 0x56, 0x18, 0x05, 0x22, 0x60, 0xe5,
0x91, 0x1f, 0x85, 0xfd, 0xce, 0xdd, 0x61, 0x10, 0x0c, 0x47, 0x7c, 0xdb, 0x0d, 0xbd, 0x6d, 0xd7,
0xf7, 0x03, 0xe1, 0x0a, 0x2f, 0xf0, 0x63, 0xc9, 0x64, 0xff, 0xa7, 0x05, 0xf5, 0xd3, 0xc8, 0xf5,
0x63, 0xb7, 0x8f, 0x64, 0xb6, 0x01, 0x15, 0x71, 0xdd, 0xbb, 0x70, 0xe3, 0x8b, 0xb6, 0x75, 0xcf,
0xda, 0xac, 0x39, 0x0b, 0xe2, 0xfa, 0xd0, 0x8d, 0x2f, 0xd8, 0x3a, 0x2c, 0xb8, 0xe3, 0x60, 0xe2,
0x8b, 0x76, 0xe1, 0x9e, 0xb5, 0x69, 0x39, 0xaa, 0xc5, 0x3e, 0x82, 0x65, 0x7f, 0x32, 0xee, 0xf5,
0x03, 0xff, 0xdc, 0x8b, 0xc6, 0x52, 0x76, 0xbb, 0x78, 0xcf, 0xda, 0x2c, 0x3b, 0x2d, 0x7f, 0x32,
0xde, 0x37, 0xe9, 0xec, 0x3d, 0x80, 0xb3, 0x51, 0xd0, 0x7f, 0x2d, 0x27, 0x28, 0xd1, 0x04, 0x35,
0xa2, 0xd0, 0x1c, 0xf7, 0xa1, 0xa1, 0xba, 0xb9, 0x37, 0xbc, 0x10, 0xed, 0x32, 0x89, 0xa9, 0x4b,
0x06, 0x22, 0xa1, 0x04, 0xe1, 0x8d, 0x79, 0x2f, 0x16, 0xee, 0x38, 0x6c, 0x2f, 0xdc, 0xb3, 0x36,
0x8b, 0x4e, 0x0d, 0x29, 0x5d, 0x24, 0x50, 0x77, 0x20, 0xdc, 0x51, 0xef, 0x9c, 0xf3, 0xb8, 0x5d,
0x51, 0xdd, 0x48, 0x79, 0xca, 0x79, 0x6c, 0xb7, 0x61, 0xfd, 0x19, 0x17, 0xc6, 0x7e, 0x63, 0x87,
0x7f, 0x3b, 0xe1, 0xb1, 0xb0, 0x8f, 0x80, 0x19, 0xe4, 0x03, 0x2e, 0x5c, 0x6f, 0x14, 0xb3, 0x4f,
0xa1, 0x21, 0x0c, 0xe6, 0xb6, 0x75, 0xaf, 0xb8, 0x59, 0xdf, 0x65, 0x5b, 0xa4, 0xd9, 0x2d, 0x63,
0x80, 0x93, 0xe1, 0xb3, 0xff, 0xc5, 0x82, 0x7a, 0x97, 0xfb, 0x03, 0x25, 0x9d, 0x31, 0x28, 0x0d,
0x78, 0x2c, 0x48, 0xa5, 0x0d, 0x87, 0xbe, 0xd9, 0x07, 0x50, 0xc7, 0xdf, 0x5e, 0x2c, 0x22, 0xcf,
0x1f, 0x92, 0x56, 0x6b, 0x0e, 0x20, 0xa9, 0x4b, 0x14, 0xd6, 0x82, 0xa2, 0x3b, 0x16, 0xa4, 0xcb,
0xa2, 0x83, 0x9f, 0xa8, 0x9f, 0xd0, 0x9d, 0x8e, 0xb9, 0x2f, 0x52, 0x05, 0x36, 0x9c, 0xba, 0xa2,
0x91, 0x0a, 0xb7, 0x60, 0xc5, 0x64, 0xd1, 0xd2, 0xcb, 0x24, 0x7d, 0xd9, 0xe0, 0x54, 0x93, 0x3c,
0x84, 0x25, 0xcd, 0x1f, 0xc9, 0xc5, 0x92, 0x52, 0x6b, 0xce, 0xa2, 0x22, 0x6b, 0x05, 0x8d, 0xa0,
0x21, 0x77, 0x14, 0x87, 0x81, 0x1f, 0x73, 0xf6, 0x13, 0x68, 0xe9, 0x81, 0x61, 0xc4, 0xbd, 0xb1,
0x3b, 0xe4, 0x6a, 0x7b, 0x5a, 0xe0, 0x89, 0x22, 0xb3, 0x4f, 0xa0, 0x99, 0xcc, 0x11, 0x4c, 0x04,
0xa7, 0xbd, 0xd6, 0x77, 0x1b, 0x4a, 0x8d, 0x0e, 0xd2, 0x1c, 0xbd, 0x33, 0x6a, 0xd9, 0xbf, 0x86,
0xc6, 0xfe, 0x85, 0xeb, 0xfb, 0x7c, 0x74, 0x12, 0x78, 0x3e, 0xed, 0xfc, 0x7c, 0xe2, 0x0f, 0x3c,
0x7f, 0xd8, 0x13, 0xd7, 0xde, 0x40, 0xcd, 0x54, 0x57, 0xb4, 0xd3, 0x6b, 0x6f, 0xc0, 0x36, 0xa1,
0x65, 0xb2, 0xe0, 0xce, 0x95, 0x52, 0x17, 0x0d, 0xb6, 0xae, 0x88, 0x50, 0x58, 0x30, 0x11, 0xe1,
0x44, 0xf4, 0x3c, 0x7f, 0xc0, 0xaf, 0x49, 0xc3, 0x4d, 0xa7, 0x2e, 0x69, 0xcf, 0x91, 0x64, 0xff,
0x11, 0xb4, 0x8e, 0xf0, 0xbc, 0xf9, 0x9e, 0x3f, 0xdc, 0x1b, 0x0c, 0x22, 0x1e, 0xc7, 0xe8, 0x01,
0xe1, 0xe4, 0xec, 0x35, 0x9f, 0x6a, 0xcf, 0x90, 0x2d, 0x34, 0xee, 0x45, 0x10, 0x0b, 0x35, 0x19,
0x7d, 0xdb, 0x7f, 0x6f, 0xc1, 0x12, 0xaa, 0xeb, 0x85, 0xeb, 0x4f, 0xf5, 0x21, 0x38, 0x82, 0x06,
0x8a, 0x3a, 0x0d, 0xf6, 0xa4, 0x1f, 0xc9, 0xc3, 0xb4, 0xa9, 0xb4, 0x90, 0xe3, 0xde, 0x32, 0x59,
0x9f, 0xf8, 0x22, 0x9a, 0x3a, 0x0d, 0xd7, 0x20, 0x75, 0x7e, 0x06, 0xcb, 0x33, 0x2c, 0x78, 0x64,
0xd2, 0xf5, 0xe1, 0x27, 0x5b, 0x85, 0xf2, 0xa5, 0x3b, 0x9a, 0x48, 0x9d, 0x17, 0x1d, 0xd9, 0xf8,
0xb2, 0xf0, 0xb9, 0x65, 0xff, 0x18, 0x5a, 0xe9, 0x9c, 0xca, 0xa8, 0x0c, 0x4a, 0x89, 0x7a, 0x6b,
0x0e, 0x7d, 0xa3, 0x2a, 0x90, 0x6f, 0x3f, 0xf0, 0x12, 0x6f, 0x41, 0x3e, 0x5c, 0x8c, 0xe6, 0xc3,
0xef, 0x5c, 0x80, 0x28, 0xea, 0x00, 0x61, 0x3f, 0x84, 0x65, 0x63, 0xfc, 0xf7, 0x4c, 0xf4, 0x1b,
0x0b, 0x96, 0x8f, 0xf9, 0x95, 0x52, 0xb7, 0x9e, 0xea, 0x73, 0x28, 0x89, 0x69, 0x28, 0xcf, 0xd6,
0xe2, 0xee, 0x03, 0xa5, 0xad, 0x19, 0xbe, 0x2d, 0xd5, 0x3c, 0x9d, 0x86, 0xdc, 0xa1, 0x11, 0xf6,
0x4b, 0xa8, 0x1b, 0x44, 0xb6, 0x01, 0x2b, 0xaf, 0x9e, 0x9f, 0x1e, 0x3f, 0xe9, 0x76, 0x7b, 0x27,
0xdf, 0x3c, 0xfe, 0xea, 0xc9, 0x9f, 0xf4, 0x0e, 0xf7, 0xba, 0x87, 0xad, 0x5b, 0x6c, 0x1d, 0xd8,
0xf1, 0x93, 0xee, 0xe9, 0x93, 0x83, 0x0c, 0xdd, 0x62, 0x4b, 0x50, 0x37, 0x09, 0x05, 0xbb, 0x03,
0xed, 0x63, 0x7e, 0xf5, 0xca, 0x13, 0x3e, 0x8f, 0xe3, 0xec, 0xf4, 0xf6, 0x16, 0x30, 0x73, 0x4d,
0x6a, 0x9b, 0x6d, 0xa8, 0xb8, 0x92, 0xa4, 0x76, 0xaa, 0x9b, 0xf6, 0x37, 0xc0, 0xf6, 0x03, 0xdf,
0xe7, 0x7d, 0x71, 0xc2, 0x79, 0xa4, 0x37, 0xfb, 0x91, 0xa1, 0xd7, 0xfa, 0xee, 0x86, 0xda, 0x6c,
0xfe, 0x24, 0x2a, 0x85, 0x33, 0x28, 0x85, 0x3c, 0x1a, 0x93, 0xba, 0xab, 0x0e, 0x7d, 0xdb, 0x5b,
0xb0, 0x92, 0x11, 0xab, 0xd6, 0xb1, 0x01, 0x95, 0x90, 0xf3, 0xa8, 0xa7, 0x34, 0x5e, 0x76, 0x16,
0xb0, 0xf9, 0x7c, 0x60, 0xff, 0xa3, 0x05, 0xa5, 0xc3, 0xd3, 0xa3, 0x7d, 0xd6, 0x81, 0xaa, 0xe7,
0xf7, 0x83, 0x31, 0x06, 0x0b, 0x8b, 0x04, 0x26, 0xed, 0x9b, 0x2c, 0xcb, 0xee, 0x40, 0x8d, 0x62,
0x0c, 0x86, 0x67, 0x72, 0xa2, 0x86, 0x53, 0x45, 0xc2, 0x51, 0xd0, 0x7f, 0x8d, 0x79, 0x81, 0x5f,
0x87, 0x5e, 0x44, 0x91, 0x5f, 0x07, 0xf4, 0x12, 0x79, 0x5a, 0x2b, 0xed, 0x50, 0x51, 0xfd, 0x27,
0xd0, 0x8a, 0xf8, 0x65, 0xd0, 0x97, 0xcc, 0x03, 0x3e, 0x72, 0xa7, 0x14, 0xb2, 0x9a, 0xce, 0x52,
0x4a, 0x3f, 0x40, 0xb2, 0xfd, 0xcf, 0x45, 0x68, 0xee, 0xf5, 0x85, 0x77, 0xc9, 0x55, 0x80, 0x60,
0x1f, 0x42, 0x33, 0xe2, 0xe3, 0x40, 0xf0, 0x5e, 0xc6, 0x3d, 0x1b, 0x92, 0x78, 0x22, 0x9d, 0xf4,
0x43, 0x68, 0xf6, 0x25, 0x7f, 0x2f, 0xc4, 0x88, 0xa2, 0xbc, 0xb5, 0xd1, 0x37, 0xa3, 0xcc, 0x06,
0x54, 0xb0, 0x8d, 0x6a, 0xc2, 0xed, 0x94, 0x9c, 0x05, 0x6c, 0x3e, 0x1f, 0xa0, 0x76, 0xfa, 0x6e,
0xe8, 0xf6, 0x3d, 0x31, 0xa5, 0x3d, 0x14, 0x9d, 0xa4, 0x8d, 0x92, 0x47, 0x41, 0xdf, 0x1d, 0xf5,
0xce, 0xdc, 0x91, 0xeb, 0xf7, 0x39, 0x2d, 0xbc, 0xe8, 0x34, 0x88, 0xf8, 0x58, 0xd2, 0xd8, 0x8f,
0x60, 0x51, 0xad, 0x51, 0x73, 0xc9, 0xd4, 0xa5, 0x56, 0xae, 0xd9, 0x3e, 0x82, 0xe5, 0x89, 0x1f,
0x73, 0x21, 0x46, 0x7c, 0x90, 0x70, 0xca, 0x2c, 0xd6, 0x4a, 0x3a, 0x34, 0xf3, 0x16, 0xac, 0xc8,
0x5c, 0x17, 0xbb, 0x22, 0x88, 0x2f, 0xbc, 0xb8, 0x17, 0x73, 0x5f, 0xb4, 0xab, 0xc4, 0xbe, 0x4c,
0x5d, 0x5d, 0xd5, 0xd3, 0xe5, 0xbe, 0x60, 0x9f, 0xc2, 0x46, 0x8e, 0x3f, 0xe2, 0x7d, 0xee, 0x5d,
0xf2, 0x41, 0xbb, 0x46, 0x63, 0xd6, 0x32, 0x63, 0x1c, 0xd5, 0x89, 0x89, 0x0a, 0x33, 0xfc, 0x24,
0x1c, 0xb8, 0x82, 0xc7, 0x6d, 0x20, 0xcd, 0x80, 0x3f, 0x19, 0x7f, 0x23, 0x29, 0x6c, 0x07, 0x9a,
0x21, 0x97, 0x91, 0xf7, 0x42, 0x8c, 0xfa, 0x71, 0xbb, 0x4e, 0x91, 0xad, 0xae, 0x8e, 0x2f, 0x9e,
0x2f, 0xa7, 0xa1, 0x38, 0x0e, 0x91, 0xc1, 0x5e, 0x83, 0x95, 0x23, 0x2f, 0x16, 0xca, 0x82, 0x89,
0x13, 0x1d, 0xc2, 0x6a, 0x96, 0xac, 0x8e, 0xef, 0x0e, 0x54, 0x95, 0x9d, 0xb4, 0xec, 0x55, 0x25,
0x3b, 0x73, 0x12, 0x9c, 0x84, 0xcb, 0xfe, 0x1f, 0x0b, 0x4a, 0xe8, 0x01, 0x74, 0xf2, 0x27, 0x67,
0xbd, 0x6c, 0xd4, 0xfe, 0x8a, 0x4f, 0x4d, 0x97, 0x28, 0x98, 0x2e, 0x61, 0xfa, 0x6c, 0x31, 0xe3,
0xb3, 0x84, 0x5e, 0xa6, 0x82, 0x2b, 0x3d, 0x97, 0x48, 0x0f, 0x35, 0xa2, 0x90, 0x7e, 0x93, 0xee,
0x88, 0xf7, 0x2f, 0xe9, 0x14, 0xe8, 0x6e, 0x87, 0xf7, 0x2f, 0xd9, 0x6d, 0xa8, 0xc6, 0xae, 0x90,
0x63, 0xa5, 0xf1, 0x2b, 0xb1, 0x2b, 0x68, 0xa4, 0xea, 0xa2, 0x71, 0x95, 0xa4, 0x8b, 0x46, 0xb5,
0xa1, 0xe2, 0xf9, 0x67, 0xc1, 0xc4, 0x1f, 0x90, 0x61, 0xab, 0x8e, 0x6e, 0xa2, 0xf7, 0x85, 0x94,
0xec, 0xbc, 0x31, 0x57, 0x06, 0xac, 0x22, 0xe1, 0xd4, 0x1b, 0x73, 0x9b, 0x61, 0xfe, 0x8a, 0x29,
0x08, 0x24, 0xda, 0xfd, 0x14, 0x96, 0x0d, 0x9a, 0x52, 0xed, 0x7d, 0x28, 0xe3, 0xbe, 0x35, 0xb4,
0xd1, 0x36, 0xa3, 0xe8, 0x21, 0x7b, 0xec, 0x16, 0x2c, 0x3e, 0xe3, 0xe2, 0xb9, 0x7f, 0x1e, 0x68,
0x49, 0xbf, 0x2d, 0xc0, 0x52, 0x42, 0x52, 0x82, 0x1e, 0xc2, 0x92, 0x37, 0xe0, 0xbe, 0xf0, 0xc4,
0x34, 0xeb, 0x87, 0x8b, 0x9a, 0xac, 0x3c, 0x71, 0x15, 0xca, 0xee, 0xc8, 0x73, 0x63, 0xe5, 0x81,
0xb2, 0xc1, 0x76, 0x60, 0x15, 0x0f, 0x99, 0x3e, 0x47, 0x89, 0xb9, 0x65, 0x6e, 0x66, 0xfe, 0x64,
0x7c, 0x22, 0xbb, 0xf4, 0xe1, 0xc0, 0xe3, 0x8f, 0x23, 0x5c, 0x3a, 0x01, 0xe9, 0x00, 0x19, 0x62,
0x10, 0x93, 0x66, 0xce, 0x46, 0x8c, 0xfa, 0x92, 0x33, 0xe0, 0x6e, 0x65, 0x70, 0xa9, 0x92, 0x58,
0x1e, 0xc5, 0x33, 0xc8, 0x73, 0x41, 0x42, 0x82, 0x1c, 0xf2, 0x34, 0xb0, 0x6b, 0x35, 0x8f, 0x5d,
0x7f, 0x0c, 0x4b, 0xf1, 0xd4, 0xef, 0xf3, 0x41, 0x4f, 0x04, 0xb8, 0x1a, 0xcf, 0x27, 0xa3, 0x54,
0x9d, 0xa6, 0x24, 0x9f, 0x06, 0xfb, 0x48, 0x44, 0x83, 0x0a, 0x1e, 0x0b, 0x9f, 0x0b, 0xf2, 0xa4,
0xaa, 0xa3, 0x9b, 0xf6, 0x77, 0x94, 0x12, 0x12, 0xb4, 0x2c, 0xbd, 0x0b, 0x97, 0x2d, 0xa7, 0x8d,
0x2f, 0x5c, 0x05, 0x7b, 0xaa, 0x44, 0xe8, 0x5e, 0xb8, 0x33, 0xcb, 0x2e, 0xcc, 0x02, 0xe6, 0x07,
0xb0, 0xa8, 0xf1, 0x79, 0xdc, 0x1b, 0xf1, 0x73, 0xa1, 0x54, 0xda, 0x50, 0xe0, 0x3c, 0x3e, 0xe2,
0xe7, 0xc2, 0x7e, 0x01, 0xcb, 0x4a, 0x51, 0x2f, 0x43, 0xae, 0xa7, 0xfe, 0x3c, 0x1f, 0x33, 0x65,
0x5a, 0x5a, 0x51, 0x67, 0xc4, 0x04, 0x68, 0xd9, 0x40, 0x6a, 0x7f, 0x0d, 0x4c, 0xf5, 0xee, 0x8f,
0x82, 0x98, 0x2b, 0x79, 0xf7, 0xa1, 0xd1, 0x1f, 0x05, 0x71, 0x1e, 0xc4, 0x29, 0x1a, 0x81, 0xb8,
0x36, 0x54, 0xe2, 0x49, 0xbf, 0x8f, 0xce, 0x27, 0xd3, 0x9a, 0x6e, 0xda, 0x7f, 0x61, 0xc1, 0x0a,
0x09, 0xd3, 0xce, 0x9e, 0xe0, 0x83, 0xff, 0xe7, 0x22, 0x93, 0xab, 0xc4, 0xc8, 0x1b, 0x7b, 0x3a,
0xb5, 0xd1, 0x55, 0xe2, 0x08, 0x09, 0x78, 0x4e, 0xcf, 0x83, 0xa8, 0xcf, 0x49, 0x5f, 0x55, 0x47,
0x36, 0xec, 0x7f, 0xb3, 0x60, 0x99, 0x96, 0xd1, 0x15, 0xae, 0x98, 0xc4, 0x6a, 0x67, 0x3f, 0x85,
0x26, 0xee, 0x82, 0xeb, 0xf3, 0xab, 0x16, 0xb1, 0x9a, 0x78, 0x13, 0x51, 0x25, 0xf3, 0xe1, 0x2d,
0x87, 0xd4, 0xc0, 0x15, 0x95, 0xfd, 0x0c, 0x1a, 0xe6, 0xed, 0x49, 0xa1, 0xe3, 0xdb, 0x7a, 0x03,
0x33, 0x47, 0x82, 0x04, 0x18, 0x54, 0xf6, 0x25, 0x00, 0xa5, 0x2d, 0x92, 0x4a, 0xcb, 0x35, 0x86,
0xcf, 0x98, 0xe1, 0xf0, 0x96, 0x53, 0x43, 0x76, 0x22, 0x3d, 0xae, 0xc2, 0x82, 0x0c, 0xec, 0xf6,
0x87, 0xd0, 0xcc, 0xac, 0x33, 0x83, 0xd1, 0x1a, 0x0a, 0xa3, 0xfd, 0x97, 0x05, 0x0c, 0x4f, 0x48,
0xce, 0x08, 0x0f, 0x60, 0x51, 0xb8, 0xd1, 0x90, 0x8b, 0x5e, 0x16, 0x66, 0x34, 0x24, 0xf5, 0x44,
0x46, 0x56, 0x4c, 0x24, 0xc1, 0x20, 0x49, 0xd3, 0x05, 0x92, 0x0b, 0x48, 0x52, 0xa1, 0xe1, 0x63,
0x60, 0x06, 0x83, 0xbe, 0xbb, 0xc8, 0x28, 0xdc, 0x4a, 0xf9, 0xd4, 0xd5, 0x65, 0x07, 0x56, 0x65,
0xe2, 0xd5, 0xb0, 0x5f, 0x81, 0x14, 0x99, 0xa0, 0x19, 0xf5, 0x3d, 0x95, 0x5d, 0x12, 0x23, 0x63,
0x9c, 0x0d, 0x27, 0x78, 0x29, 0x72, 0x85, 0xca, 0xd2, 0x15, 0x6c, 0x77, 0x5d, 0xa1, 0xa3, 0x03,
0xb9, 0x89, 0xf2, 0xfe, 0xaa, 0xf6, 0x10, 0xfb, 0x5f, 0x2d, 0x68, 0xe1, 0xae, 0x33, 0x36, 0xff,
0x02, 0xe8, 0x38, 0xbd, 0xa3, 0xc9, 0xeb, 0xc8, 0xfb, 0x3b, 0xb3, 0xf8, 0x67, 0x40, 0x26, 0xec,
0x05, 0x21, 0xf7, 0x95, 0xc1, 0xdb, 0x59, 0x83, 0xa7, 0x6e, 0x7c, 0x78, 0x4b, 0xe6, 0x45, 0xa4,
0x18, 0xe6, 0x7e, 0x02, 0x6b, 0xd9, 0x88, 0xaa, 0x6d, 0xf9, 0x31, 0x2c, 0xc4, 0xb4, 0x4f, 0x05,
0xb9, 0x57, 0xb3, 0x82, 0xa5, 0x0e, 0x1c, 0xc5, 0x63, 0xff, 0x65, 0x11, 0xd6, 0xf3, 0x72, 0x54,
0x46, 0x78, 0x05, 0xad, 0x99, 0x70, 0x2e, 0xb3, 0xcc, 0xc7, 0x59, 0x25, 0xe5, 0x06, 0xe6, 0xc9,
0x4b, 0x61, 0x36, 0xf2, 0x77, 0xfe, 0xb6, 0x00, 0x8b, 0x59, 0x1e, 0x0c, 0x2d, 0x49, 0xf6, 0x49,
0x53, 0x4f, 0x5d, 0xd3, 0xbe, 0x7a, 0x57, 0x04, 0x68, 0x02, 0xbd, 0xe2, 0x0f, 0x01, 0xbd, 0xd2,
0x3b, 0x01, 0xbd, 0xf2, 0x3c, 0xa0, 0x97, 0x0f, 0x85, 0xf2, 0xce, 0x9d, 0x09, 0x85, 0xa9, 0x1d,
0x2a, 0xef, 0x60, 0x87, 0x2f, 0x60, 0xf5, 0x95, 0x3b, 0x1a, 0x71, 0xa1, 0x66, 0xd0, 0xd6, 0xbc,
0x0f, 0x8d, 0x2b, 0x79, 0x61, 0xe9, 0x05, 0xfe, 0x68, 0xaa, 0xb0, 0x7d, 0x5d, 0xd1, 0x5e, 0xfa,
0xa3, 0xa9, 0xfd, 0x09, 0xac, 0xe5, 0x86, 0xa6, 0xb7, 0x17, 0xbd, 0x09, 0x8b, 0x6a, 0x3e, 0xba,
0x69, 0x6f, 0xc0, 0x9a, 0x5a, 0x46, 0x76, 0x3a, 0x7b, 0x17, 0xd6, 0xf3, 0x1d, 0xf3, 0x85, 0x15,
0x53, 0x61, 0x5f, 0x40, 0x43, 0x96, 0x00, 0xd4, 0x92, 0x6f, 0x84, 0x6c, 0xaa, 0x20, 0x52, 0x48,
0x0a, 0x22, 0xf6, 0x1b, 0x28, 0x1e, 0x06, 0xa1, 0x89, 0xdb, 0xad, 0x0c, 0x6e, 0x57, 0x36, 0xef,
0x25, 0x36, 0x95, 0x63, 0xc9, 0xe6, 0xfb, 0xda, 0xae, 0x0f, 0x60, 0xd1, 0x1d, 0x0b, 0x4c, 0xdb,
0xe7, 0x41, 0x74, 0xe5, 0x46, 0x03, 0x65, 0xf9, 0x86, 0x3b, 0x16, 0xa7, 0xc1, 0x53, 0x49, 0xc3,
0xc9, 0xcf, 0xb9, 0xb6, 0x39, 0x7e, 0xda, 0x7f, 0x65, 0x41, 0x99, 0x16, 0x8e, 0xb9, 0x5f, 0x22,
0x6b, 0x99, 0x4f, 0xf0, 0x3a, 0x64, 0x51, 0x08, 0x69, 0x12, 0x19, 0x11, 0x19, 0xdd, 0x89, 0xb2,
0xd5, 0xa9, 0x42, 0xae, 0x3a, 0x85, 0x31, 0x48, 0x76, 0xa7, 0x65, 0x9f, 0x2a, 0x11, 0xf6, 0xc6,
0x82, 0xbd, 0x0f, 0xa5, 0x8b, 0x20, 0x44, 0x7c, 0x83, 0x1e, 0x04, 0x1a, 0x5b, 0x07, 0xa1, 0x43,
0x74, 0xfb, 0x11, 0x2c, 0x1d, 0x07, 0x03, 0x6e, 0xc0, 0xb4, 0x1b, 0x15, 0x69, 0xff, 0x1a, 0xaa,
0x9a, 0x97, 0x6d, 0x42, 0x09, 0x23, 0x6b, 0x2e, 0x7c, 0x25, 0x57, 0x4e, 0xe4, 0x73, 0x88, 0x03,
0x8f, 0x12, 0x85, 0x48, 0xed, 0xcb, 0x05, 0x89, 0x91, 0x30, 0x4a, 0x6a, 0x8c, 0xf5, 0x23, 0x58,
0x94, 0x3b, 0xc8, 0x39, 0x91, 0xd4, 0x83, 0xd6, 0xb8, 0x3d, 0x85, 0x66, 0x66, 0x02, 0xcc, 0x0c,
0x23, 0x37, 0x16, 0xea, 0x8e, 0xa1, 0x94, 0x07, 0x48, 0x52, 0xc1, 0xd6, 0xd8, 0x4a, 0x21, 0x73,
0x26, 0x6e, 0x46, 0xeb, 0x09, 0xce, 0x2c, 0x19, 0x38, 0xd3, 0xfe, 0x07, 0x0b, 0x9a, 0x68, 0x34,
0xcf, 0x1f, 0x9e, 0x04, 0x23, 0xaf, 0x3f, 0x25, 0xe3, 0x69, 0xb3, 0xe1, 0xd5, 0x53, 0xb8, 0x89,
0xf1, 0x94, 0xdd, 0x0e, 0x90, 0x88, 0xc9, 0x63, 0xec, 0xf9, 0x74, 0xc3, 0x51, 0xa6, 0xab, 0x8c,
0x3d, 0x1f, 0xef, 0x33, 0xcc, 0x86, 0xe6, 0x39, 0x47, 0x8f, 0x8f, 0x79, 0x6f, 0x8c, 0xc9, 0x45,
0xee, 0xba, 0x7e, 0xce, 0xf9, 0x63, 0x37, 0xe6, 0x2f, 0x62, 0x57, 0xb0, 0xdf, 0x83, 0x15, 0xe4,
0x89, 0x5c, 0xc1, 0x7b, 0x63, 0x6f, 0x34, 0xf2, 0x24, 0xa7, 0x3c, 0x4f, 0xad, 0x73, 0xce, 0x1d,
0x57, 0xf0, 0x17, 0xd8, 0x81, 0xec, 0xf6, 0x3f, 0x15, 0xa0, 0xae, 0xd4, 0xfa, 0x64, 0x30, 0xe4,
0x78, 0x74, 0x74, 0xf4, 0x4a, 0x4e, 0x79, 0x4d, 0x51, 0x9e, 0x0f, 0x74, 0x77, 0x26, 0xb2, 0x51,
0xb7, 0x0c, 0x6b, 0x39, 0xfd, 0x16, 0x67, 0xf4, 0x8b, 0xe9, 0x2f, 0x18, 0xf0, 0x4f, 0x30, 0xf5,
0x2a, 0x85, 0x55, 0x89, 0x70, 0x32, 0x39, 0xd3, 0x9d, 0xbb, 0xd4, 0x59, 0x4e, 0x3b, 0x77, 0xb1,
0xd3, 0x8c, 0x98, 0x0b, 0xb9, 0x88, 0xf9, 0x19, 0x34, 0x94, 0x54, 0x52, 0x35, 0x05, 0xb2, 0xf4,
0x8c, 0x65, 0xcc, 0xe0, 0xd4, 0xe5, 0x74, 0xd2, 0x26, 0x6a, 0xe0, 0xae, 0x1e, 0x58, 0xfd, 0xa1,
0x81, 0xbb, 0xb2, 0x81, 0x17, 0x4b, 0xa5, 0xb5, 0x67, 0x91, 0x1b, 0x5e, 0xe8, 0xb0, 0x34, 0x48,
0xca, 0x89, 0x44, 0x66, 0x8f, 0xa0, 0x8c, 0xa3, 0x74, 0x3e, 0x9a, 0x7f, 0xea, 0x25, 0x0b, 0xdb,
0x84, 0x32, 0x1f, 0x0c, 0xc9, 0x5f, 0xcd, 0xe2, 0xaf, 0x61, 0x1c, 0x47, 0x32, 0xa0, 0x0b, 0x22,
0x35, 0xe7, 0x82, 0x73, 0x23, 0x93, 0xbd, 0x0a, 0xec, 0x98, 0x8b, 0xab, 0x20, 0x7a, 0x6d, 0x5e,
0xac, 0xfe, 0xbb, 0x00, 0x75, 0x83, 0x8c, 0xfe, 0x34, 0xc4, 0x05, 0xf7, 0x06, 0x9e, 0x3b, 0xe6,
0x82, 0x47, 0xfa, 0x68, 0x12, 0xf5, 0x40, 0x11, 0x29, 0x82, 0x5d, 0x0e, 0x7b, 0xc1, 0x44, 0xf4,
0x06, 0x7c, 0x18, 0x71, 0xae, 0x6a, 0xf4, 0x0d, 0xf7, 0x72, 0xf8, 0x72, 0x22, 0x0e, 0x88, 0x86,
0x5c, 0x63, 0xf7, 0xda, 0xe4, 0x52, 0x37, 0x81, 0xb1, 0x7b, 0x9d, 0x72, 0x29, 0x20, 0x24, 0xd5,
0x53, 0x4a, 0x80, 0xd0, 0x31, 0xe9, 0x22, 0x1f, 0x02, 0xca, 0xb3, 0x21, 0xe0, 0x0f, 0x60, 0x5d,
0x86, 0x00, 0x5f, 0xee, 0xa3, 0x97, 0x3b, 0x1d, 0xab, 0xd4, 0xab, 0x36, 0x99, 0xc4, 0xe0, 0x4d,
0x68, 0xe1, 0x0e, 0xf4, 0x11, 0x8f, 0xbd, 0xef, 0x64, 0xdd, 0xc3, 0x72, 0x70, 0x67, 0x3a, 0xe5,
0x79, 0xdf, 0x71, 0xe4, 0x44, 0x37, 0xcc, 0x70, 0xca, 0x92, 0xc7, 0xe2, 0xd8, 0xf3, 0xf3, 0x9c,
0xee, 0x75, 0x96, 0xb3, 0xa6, 0x38, 0xdd, 0x6b, 0x83, 0xd3, 0xde, 0x82, 0xa5, 0x2e, 0x17, 0x7b,
0x18, 0x20, 0xb4, 0xe1, 0x50, 0x0d, 0xfc, 0xaa, 0x27, 0x23, 0x88, 0xa5, 0xce, 0x3c, 0xbf, 0x22,
0x1e, 0xbc, 0x5d, 0xa7, 0xfc, 0x32, 0xbf, 0xd9, 0x7f, 0x5d, 0x80, 0xca, 0x73, 0xff, 0x32, 0xf0,
0xfa, 0x84, 0x9c, 0xc7, 0x7c, 0x1c, 0xe8, 0xea, 0x26, 0x7e, 0x63, 0xa0, 0xa2, 0x72, 0x4b, 0x28,
0x14, 0xf0, 0xd5, 0x4d, 0xf4, 0xdd, 0x28, 0xad, 0xa1, 0xcb, 0x3a, 0x5a, 0x2d, 0x4a, 0xaa, 0xe7,
0x6b, 0xb0, 0x10, 0x99, 0xe5, 0xfe, 0x72, 0x44, 0xf7, 0xcd, 0xa4, 0xb0, 0x5b, 0x36, 0x0a, 0xbb,
0x74, 0x7f, 0x92, 0x55, 0x22, 0x52, 0x37, 0xde, 0x9f, 0x64, 0x93, 0x52, 0x61, 0xc4, 0x55, 0x81,
0x0d, 0x83, 0x40, 0x45, 0xa5, 0x42, 0x45, 0x3c, 0xc0, 0x30, 0xf0, 0x01, 0xd4, 0x25, 0xbf, 0x64,
0x91, 0x7a, 0x05, 0x49, 0x22, 0x86, 0x39, 0xcf, 0x05, 0xb5, 0xb9, 0xcf, 0x05, 0xa7, 0xc0, 0xf6,
0x06, 0x03, 0xa5, 0x90, 0x04, 0x04, 0xa4, 0x7b, 0xb1, 0xcc, 0xbd, 0xcc, 0x91, 0x5a, 0x98, 0x2b,
0xf5, 0x31, 0xd4, 0x4f, 0x8c, 0xc7, 0x8e, 0xbb, 0xa8, 0x39, 0xfd, 0xcc, 0xa1, 0xad, 0x14, 0xa9,
0xd7, 0x0d, 0x63, 0xb2, 0x82, 0x31, 0x99, 0xfd, 0x19, 0xb0, 0x23, 0x2f, 0x16, 0xc9, 0xd2, 0x12,
0x9c, 0xa4, 0xc1, 0xaa, 0x89, 0x93, 0x14, 0x8d, 0x70, 0xd2, 0x9e, 0x2c, 0x5a, 0xe5, 0xf7, 0xf4,
0x08, 0xaa, 0x9e, 0x24, 0xe9, 0x70, 0xb2, 0xa8, 0x42, 0x84, 0xe6, 0x4c, 0xfa, 0x31, 0x3c, 0x29,
0x62, 0x77, 0x72, 0x16, 0xf7, 0x23, 0x2f, 0x44, 0xd5, 0xdb, 0x7f, 0x63, 0x41, 0x45, 0xed, 0x6b,
0xe6, 0x8d, 0x47, 0x21, 0x59, 0xf3, 0x8d, 0x67, 0x6e, 0x4d, 0x7f, 0xd6, 0xc0, 0xc5, 0x39, 0x06,
0x66, 0x50, 0x0a, 0x5d, 0x71, 0x41, 0x28, 0xa2, 0xe6, 0xd0, 0xb7, 0x46, 0x36, 0xe5, 0x14, 0xd9,
0xa8, 0xf2, 0x9c, 0x5a, 0x52, 0x9c, 0x6a, 0x7f, 0x35, 0x4b, 0x4e, 0x35, 0xa0, 0x96, 0x97, 0xd7,
0x80, 0x62, 0x75, 0x92, 0x7e, 0xbb, 0x03, 0xed, 0x03, 0x3e, 0xe2, 0x82, 0xef, 0x8d, 0x46, 0x79,
0xf9, 0x77, 0xe0, 0xf6, 0x9c, 0x3e, 0xe5, 0x5f, 0x4f, 0x61, 0xf9, 0x80, 0x9f, 0x4d, 0x86, 0x47,
0xfc, 0x32, 0xbd, 0xab, 0x30, 0x28, 0xc5, 0x17, 0xc1, 0x95, 0xb2, 0x16, 0x7d, 0xa3, 0x3b, 0x8d,
0x90, 0xa7, 0x17, 0x87, 0xbc, 0xaf, 0x53, 0x21, 0x51, 0xba, 0x21, 0xef, 0xdb, 0x7f, 0x08, 0xcc,
0x94, 0xa3, 0xb6, 0x80, 0x07, 0x7f, 0x72, 0xd6, 0x8b, 0xa7, 0xb1, 0xe0, 0x63, 0xed, 0xf0, 0x10,
0x4f, 0xce, 0xba, 0x92, 0x62, 0x3f, 0x84, 0xc6, 0x89, 0x3b, 0x75, 0xf8, 0xb7, 0xea, 0xf2, 0x89,
0x80, 0xc4, 0x9d, 0xe2, 0x71, 0x4d, 0xb0, 0x15, 0x75, 0xdb, 0x21, 0x2c, 0x48, 0x46, 0x76, 0x4f,
0x3e, 0xf0, 0x79, 0xbe, 0xbc, 0xe4, 0x29, 0x43, 0x1a, 0xa4, 0x19, 0x5b, 0x17, 0x66, 0x6d, 0xad,
0x22, 0xae, 0x2e, 0xd9, 0x6a, 0x64, 0xe1, 0x4f, 0xc6, 0xba, 0x4e, 0xfb, 0x68, 0x17, 0x9a, 0x99,
0x3b, 0x01, 0xab, 0x40, 0x71, 0xef, 0xe8, 0xa8, 0x75, 0x8b, 0xd5, 0xa1, 0xf2, 0xf2, 0xe4, 0xc9,
0xf1, 0xf3, 0xe3, 0x67, 0x2d, 0x0b, 0x1b, 0xfb, 0x47, 0x2f, 0xbb, 0xd8, 0x28, 0xec, 0xfe, 0xfb,
0x3a, 0xd4, 0x92, 0x6c, 0xc7, 0x7e, 0x05, 0xcd, 0xcc, 0x0d, 0x80, 0xdd, 0x51, 0xf6, 0x9b, 0x77,
0xa5, 0xe8, 0xdc, 0x9d, 0xdf, 0xa9, 0xec, 0xf4, 0xfe, 0x9f, 0xff, 0xf6, 0x3f, 0xfe, 0xae, 0xd0,
0x66, 0xeb, 0xdb, 0x97, 0x9f, 0x6c, 0x2b, 0x88, 0xbf, 0x4d, 0x05, 0x29, 0x2a, 0x8a, 0xb1, 0xd7,
0xb0, 0x98, 0xbd, 0x21, 0xb0, 0xbb, 0xd9, 0x8c, 0x9a, 0x9b, 0xed, 0xbd, 0x1b, 0x7a, 0xd5, 0x74,
0x77, 0x69, 0xba, 0x75, 0xb6, 0x6a, 0x4e, 0xa7, 0xf3, 0x13, 0xe3, 0x54, 0xa7, 0x34, 0xdf, 0x7b,
0x99, 0x96, 0x37, 0xff, 0x1d, 0xb8, 0x73, 0x7b, 0xf6, 0x6d, 0x57, 0x3d, 0x06, 0xdb, 0x6d, 0x9a,
0x8a, 0xb1, 0x16, 0x4e, 0x65, 0x3e, 0xf7, 0xb2, 0x5f, 0x42, 0x2d, 0x79, 0xe2, 0x62, 0x1b, 0xc6,
0x83, 0x9e, 0xf9, 0x68, 0xd6, 0x69, 0xcf, 0x76, 0xa8, 0x4d, 0xdc, 0x21, 0xc9, 0x6b, 0xf6, 0x8c,
0xe4, 0x2f, 0xad, 0x47, 0xec, 0x08, 0xd6, 0x54, 0xb0, 0x38, 0xe3, 0xff, 0x97, 0x9d, 0xcc, 0x79,
0xa5, 0xde, 0xb1, 0xd8, 0x4f, 0xa1, 0xaa, 0x5f, 0xfd, 0xd8, 0xfa, 0xfc, 0xa7, 0xc7, 0xce, 0xc6,
0x0c, 0x5d, 0x79, 0xc9, 0x1e, 0x40, 0xfa, 0xc8, 0xc5, 0xda, 0x37, 0xbd, 0xc5, 0x25, 0x4a, 0x9c,
0xf3, 0x22, 0x36, 0xa4, 0x37, 0xbe, 0xec, 0x1b, 0x1a, 0xfb, 0x20, 0xe5, 0x9f, 0xfb, 0xba, 0xf6,
0x3d, 0x02, 0xed, 0x75, 0xd2, 0x5d, 0x8b, 0x2d, 0xa2, 0xee, 0x7c, 0x7e, 0xa5, 0xe1, 0xff, 0x2f,
0xa0, 0x6e, 0xbc, 0x84, 0x31, 0xa3, 0xb8, 0x92, 0x7b, 0x74, 0xeb, 0x74, 0xe6, 0x75, 0x29, 0xe9,
0xab, 0x24, 0x7d, 0xd1, 0xae, 0xa1, 0x74, 0x2a, 0x1d, 0xa3, 0x49, 0xbe, 0x46, 0xe7, 0x51, 0x95,
0x74, 0x96, 0xbe, 0xd2, 0x65, 0xeb, 0xed, 0x89, 0xbd, 0x67, 0x8a, 0xee, 0xf6, 0x32, 0x49, 0xad,
0xb3, 0x54, 0x2a, 0x7b, 0x01, 0x15, 0x55, 0x51, 0x67, 0x6b, 0xa9, 0x5d, 0x0d, 0x6c, 0xd8, 0x59,
0xcf, 0x93, 0x95, 0xb0, 0x15, 0x12, 0xd6, 0x64, 0x75, 0x14, 0x36, 0xe4, 0xc2, 0x43, 0x19, 0x23,
0x58, 0xca, 0xd7, 0xcb, 0xef, 0xde, 0x50, 0x74, 0xc9, 0xba, 0xd9, 0xfc, 0x92, 0x4c, 0xd6, 0xcd,
0xb4, 0x7b, 0x6d, 0xab, 0xec, 0xc8, 0xfe, 0x14, 0x1a, 0xe6, 0xbb, 0x0d, 0xeb, 0x18, 0x3b, 0xcf,
0xbd, 0xf1, 0x74, 0xee, 0xcc, 0xed, 0xcb, 0xaa, 0x9b, 0x35, 0xcc, 0x69, 0xd8, 0x2f, 0x60, 0xc9,
0xa8, 0x39, 0x76, 0xa7, 0x7e, 0x3f, 0x31, 0xe7, 0x6c, 0x2d, 0xb2, 0x33, 0xaf, 0xf2, 0x6b, 0x6f,
0x90, 0xe0, 0x65, 0x3b, 0x23, 0x18, 0x4d, 0xb9, 0x0f, 0x75, 0x43, 0xc6, 0xf7, 0xc9, 0xdd, 0x30,
0xba, 0xcc, 0x42, 0xe0, 0x8e, 0xc5, 0x7e, 0x63, 0x41, 0xc3, 0xac, 0x4d, 0x27, 0x0a, 0x98, 0x53,
0xb0, 0x4e, 0x8e, 0xc5, 0x4c, 0x15, 0xd9, 0xfe, 0x39, 0x2d, 0xf2, 0xe4, 0xd1, 0x71, 0x46, 0xc9,
0x6f, 0x32, 0x55, 0xab, 0x2d, 0xf3, 0x3f, 0x0e, 0x6f, 0xf3, 0x9d, 0xe6, 0xdf, 0x1a, 0xde, 0x6e,
0xbf, 0xa1, 0x92, 0xf5, 0xdb, 0x1d, 0x8b, 0x7d, 0x29, 0xff, 0x8e, 0xa2, 0x31, 0x06, 0x33, 0x1c,
0x3c, 0xaf, 0x36, 0xf3, 0x4f, 0x1e, 0x9b, 0xd6, 0x8e, 0xc5, 0xfe, 0x4c, 0xfe, 0x93, 0x41, 0x8d,
0x25, 0xed, 0xbf, 0xeb, 0x78, 0xfb, 0x01, 0xed, 0xe8, 0x7d, 0xfb, 0x76, 0x66, 0x47, 0xf9, 0x08,
0x77, 0x02, 0x90, 0x62, 0x45, 0x96, 0x43, 0x4f, 0x89, 0xef, 0xcf, 0xc2, 0xc9, 0xac, 0x55, 0x35,
0xc8, 0x42, 0x89, 0xbf, 0x92, 0x07, 0x52, 0xf1, 0xc7, 0x89, 0x59, 0x67, 0x81, 0x5f, 0xa7, 0x33,
0xaf, 0x4b, 0xc9, 0xff, 0x90, 0xe4, 0xbf, 0xc7, 0xee, 0x98, 0xf2, 0xb7, 0xdf, 0x98, 0x40, 0xf1,
0x2d, 0xfb, 0x39, 0x34, 0x8f, 0x82, 0xe0, 0xf5, 0x24, 0x4c, 0xd0, 0x7f, 0x16, 0xfc, 0x60, 0x1a,
0xef, 0xe4, 0x36, 0x65, 0xdf, 0x27, 0xc9, 0x77, 0xd8, 0xed, 0xac, 0xe4, 0x14, 0xcd, 0xbe, 0x65,
0x2e, 0x2c, 0x27, 0x71, 0x3f, 0xd9, 0x48, 0x27, 0x2b, 0xc7, 0x44, 0x91, 0x33, 0x73, 0x64, 0x32,
0x71, 0x32, 0x47, 0xac, 0x65, 0xee, 0x58, 0xec, 0x04, 0x1a, 0x07, 0xbc, 0x1f, 0x0c, 0xb8, 0x42,
0x2c, 0x2b, 0xe9, 0xca, 0x13, 0xa4, 0xd3, 0x69, 0x66, 0x88, 0xd9, 0x48, 0x10, 0xba, 0xd3, 0x88,
0x7f, 0xbb, 0xfd, 0x46, 0x41, 0xa1, 0xb7, 0x3a, 0x12, 0x68, 0xf4, 0x96, 0x89, 0x04, 0x39, 0xb8,
0x97, 0x89, 0x04, 0x33, 0x70, 0x2f, 0x13, 0x09, 0x34, 0x7a, 0x64, 0x23, 0x04, 0x81, 0x39, 0x84,
0x98, 0x64, 0x8f, 0x9b, 0x70, 0x65, 0xe7, 0xde, 0xcd, 0x0c, 0xd9, 0xd9, 0x1e, 0x65, 0x67, 0xeb,
0x42, 0xf3, 0x80, 0x4b, 0x65, 0xc9, 0xb2, 0x41, 0x27, 0x1b, 0x5a, 0xcc, 0x12, 0x43, 0x3e, 0xec,
0x50, 0x5f, 0x36, 0xd0, 0xd3, 0x9d, 0x9d, 0xfd, 0x12, 0xea, 0xcf, 0xb8, 0xd0, 0x75, 0x82, 0x24,
0x07, 0xe7, 0x0a, 0x07, 0x9d, 0x39, 0x65, 0x06, 0xfb, 0x1e, 0x49, 0xeb, 0xb0, 0x76, 0x22, 0x6d,
0x9b, 0x0f, 0x86, 0x5c, 0x06, 0x81, 0x9e, 0x37, 0x78, 0xcb, 0xfe, 0x98, 0x84, 0x27, 0xb5, 0x3d,
0x2d, 0x3c, 0x57, 0x18, 0xec, 0x2c, 0xe5, 0xe8, 0xf3, 0x24, 0xfb, 0xc1, 0x80, 0x6f, 0xbf, 0x51,
0x45, 0x37, 0x94, 0x0c, 0x5f, 0x4f, 0x78, 0x34, 0x95, 0x05, 0xcf, 0x95, 0xcc, 0x5f, 0xb7, 0x94,
0xd4, 0xcc, 0xff, 0xb9, 0xec, 0x87, 0x24, 0xf2, 0x3e, 0xfb, 0x20, 0x15, 0x49, 0x7f, 0xfe, 0x4a,
0x65, 0x6e, 0xbf, 0x71, 0xc7, 0xe2, 0x2d, 0x7b, 0x45, 0xcf, 0xcb, 0x66, 0xd5, 0x23, 0xcd, 0xf6,
0xf9, 0x02, 0x49, 0xa2, 0x16, 0xa3, 0x2b, 0x8b, 0x00, 0xe4, 0x4c, 0x94, 0x03, 0x09, 0xea, 0xc8,
0x5b, 0xba, 0x01, 0x75, 0x32, 0xd7, 0x7c, 0x03, 0xea, 0x64, 0xaf, 0xf3, 0x08, 0x75, 0xd2, 0x6b,
0x42, 0x02, 0x75, 0x66, 0x6e, 0x20, 0x49, 0x74, 0x9a, 0xbd, 0x53, 0x9c, 0x2d, 0xd0, 0x3f, 0x2c,
0x7f, 0xff, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xc1, 0x73, 0x71, 0xf9, 0x93, 0x29, 0x00, 0x00,
}
+7 -9
View File
@@ -372,18 +372,16 @@ message PendingChannelRequest {
}
message PendingChannelResponse {
message PendingChannel {
int32 peer_id = 1;
string identity_key = 1;
string channel_point = 2;
string identity_key = 2;
string channel_point = 3;
int64 capacity = 3;
int64 local_balance = 4;
int64 remote_balance = 5;
int64 capacity = 4;
int64 local_balance = 5;
int64 remote_balance = 6;
string closing_txid = 6;
string closing_txid = 7;
ChannelStatus status = 8;
ChannelStatus status = 7;
}
repeated PendingChannel pending_channels = 1;
+299 -209
View File
@@ -89,6 +89,7 @@
},
"/v1/channels/pending": {
"get": {
"summary": "TODO(roasbeef): merge with below with bool?",
"operationId": "PendingChannels",
"responses": {
"200": {
@@ -131,7 +132,6 @@
},
"/v1/channels/{channel_point.funding_txid}/{channel_point.output_index}/{force}": {
"delete": {
"summary": "TODO(roasbeef): merge with below with bool?",
"operationId": "CloseChannel",
"responses": {
"200": {
@@ -544,37 +544,42 @@
}
},
"definitions": {
"NewAddressRequestAddressType": {
"type": "string",
"enum": [
"WITNESS_PUBKEY_HASH",
"NESTED_PUBKEY_HASH",
"PUBKEY_HASH"
],
"default": "WITNESS_PUBKEY_HASH"
},
"PendingChannelResponsePendingChannel": {
"type": "object",
"properties": {
"capacity": {
"identity_key": {
"type": "string",
"format": "int64"
"format": "string"
},
"channel_point": {
"type": "string",
"format": "string"
},
"closing_txid": {
"capacity": {
"type": "string",
"format": "string"
},
"identity_key": {
"type": "string",
"format": "string"
"format": "int64"
},
"local_balance": {
"type": "string",
"format": "int64"
},
"peer_id": {
"type": "integer",
"format": "int32"
},
"remote_balance": {
"type": "string",
"format": "int64"
},
"closing_txid": {
"type": "string",
"format": "string"
},
"status": {
"$ref": "#/definitions/lnrpcChannelStatus"
}
@@ -583,22 +588,42 @@
"lnrpcActiveChannel": {
"type": "object",
"properties": {
"capacity": {
"remote_pubkey": {
"type": "string",
"format": "int64"
},
"chan_id": {
"type": "string",
"format": "uint64"
"format": "string"
},
"channel_point": {
"type": "string",
"format": "string"
},
"chan_id": {
"type": "string",
"format": "uint64"
},
"capacity": {
"type": "string",
"format": "int64"
},
"local_balance": {
"type": "string",
"format": "int64"
},
"remote_balance": {
"type": "string",
"format": "int64"
},
"unsettled_balance": {
"type": "string",
"format": "int64"
},
"total_satoshis_sent": {
"type": "string",
"format": "int64"
},
"total_satoshis_received": {
"type": "string",
"format": "int64"
},
"num_updates": {
"type": "string",
"format": "uint64"
@@ -608,39 +633,19 @@
"items": {
"$ref": "#/definitions/lnrpcHTLC"
}
},
"remote_balance": {
"type": "string",
"format": "int64"
},
"remote_pubkey": {
"type": "string",
"format": "string"
},
"total_satoshis_received": {
"type": "string",
"format": "int64"
},
"total_satoshis_sent": {
"type": "string",
"format": "int64"
},
"unsettled_balance": {
"type": "string",
"format": "int64"
}
}
},
"lnrpcAddInvoiceResponse": {
"type": "object",
"properties": {
"payment_request": {
"type": "string",
"format": "string"
},
"r_hash": {
"type": "string",
"format": "byte"
},
"payment_request": {
"type": "string",
"format": "string"
}
}
},
@@ -681,58 +686,66 @@
"lnrpcChannelEdge": {
"type": "object",
"properties": {
"capacity": {
"channel_id": {
"type": "string",
"format": "int64"
"format": "uint64"
},
"chan_point": {
"type": "string",
"format": "string"
},
"channel_id": {
"type": "string",
"format": "uint64"
},
"last_update": {
"type": "integer",
"format": "int64"
},
"node1_policy": {
"$ref": "#/definitions/lnrpcRoutingPolicy"
},
"node1_pub": {
"type": "string",
"format": "string"
},
"node2_policy": {
"$ref": "#/definitions/lnrpcRoutingPolicy"
},
"node2_pub": {
"type": "string",
"format": "string"
},
"capacity": {
"type": "string",
"format": "int64"
},
"node1_policy": {
"$ref": "#/definitions/lnrpcRoutingPolicy"
},
"node2_policy": {
"$ref": "#/definitions/lnrpcRoutingPolicy"
}
}
},
"lnrpcChannelGraph": {
"type": "object",
"properties": {
"edges": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcChannelEdge"
}
},
"nodes": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcLightningNode"
}
},
"edges": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcChannelEdge"
}
}
}
},
"lnrpcChannelGraphRequest": {
"type": "object"
},
"lnrpcChannelOpenUpdate": {
"type": "object",
"properties": {
"channel_point": {
"$ref": "#/definitions/lnrpcChannelPoint"
}
}
},
"lnrpcChannelPoint": {
"type": "object",
"properties": {
@@ -765,41 +778,41 @@
"channel_point": {
"$ref": "#/definitions/lnrpcChannelPoint"
},
"force": {
"type": "boolean",
"format": "boolean"
},
"time_limit": {
"type": "string",
"format": "int64"
},
"force": {
"type": "boolean",
"format": "boolean"
}
}
},
"lnrpcCloseStatusUpdate": {
"type": "object",
"properties": {
"chan_close": {
"$ref": "#/definitions/lnrpcChannelCloseUpdate"
},
"close_pending": {
"$ref": "#/definitions/lnrpcPendingUpdate"
},
"confirmation": {
"$ref": "#/definitions/lnrpcConfirmationUpdate"
},
"chan_close": {
"$ref": "#/definitions/lnrpcChannelCloseUpdate"
}
}
},
"lnrpcConfirmationUpdate": {
"type": "object",
"properties": {
"block_height": {
"type": "integer",
"format": "int32"
},
"block_sha": {
"type": "string",
"format": "byte"
},
"block_height": {
"type": "integer",
"format": "int32"
},
"num_confs_left": {
"type": "integer",
"format": "int64"
@@ -827,6 +840,28 @@
}
}
},
"lnrpcDebugLevelRequest": {
"type": "object",
"properties": {
"show": {
"type": "boolean",
"format": "boolean"
},
"level_spec": {
"type": "string",
"format": "string"
}
}
},
"lnrpcDebugLevelResponse": {
"type": "object",
"properties": {
"sub_systems": {
"type": "string",
"format": "string"
}
}
},
"lnrpcDeleteAllPaymentsRequest": {
"type": "object"
},
@@ -839,22 +874,18 @@
"lnrpcGetInfoResponse": {
"type": "object",
"properties": {
"identity_pubkey": {
"type": "string",
"format": "string"
},
"alias": {
"type": "string",
"format": "string"
},
"block_hash": {
"type": "string",
"format": "string"
},
"block_height": {
"num_pending_channels": {
"type": "integer",
"format": "int64"
},
"identity_pubkey": {
"type": "string",
"format": "string"
},
"num_active_channels": {
"type": "integer",
"format": "int64"
@@ -863,10 +894,14 @@
"type": "integer",
"format": "int64"
},
"num_pending_channels": {
"block_height": {
"type": "integer",
"format": "int64"
},
"block_hash": {
"type": "string",
"format": "string"
},
"synced_to_chain": {
"type": "boolean",
"format": "boolean"
@@ -883,21 +918,21 @@
"lnrpcHTLC": {
"type": "object",
"properties": {
"incoming": {
"type": "boolean",
"format": "boolean"
},
"amount": {
"type": "string",
"format": "int64"
},
"expiration_height": {
"type": "integer",
"format": "int64"
},
"hash_lock": {
"type": "string",
"format": "byte"
},
"incoming": {
"type": "boolean",
"format": "boolean"
"expiration_height": {
"type": "integer",
"format": "int64"
},
"revocation_delay": {
"type": "integer",
@@ -908,17 +943,17 @@
"lnrpcHop": {
"type": "object",
"properties": {
"amt_to_forward": {
"chan_id": {
"type": "string",
"format": "int64"
"format": "uint64"
},
"chan_capacity": {
"type": "string",
"format": "int64"
},
"chan_id": {
"amt_to_forward": {
"type": "string",
"format": "uint64"
"format": "int64"
},
"fee": {
"type": "string",
@@ -929,19 +964,11 @@
"lnrpcInvoice": {
"type": "object",
"properties": {
"creation_date": {
"type": "string",
"format": "int64"
},
"memo": {
"type": "string",
"format": "string"
},
"payment_request": {
"type": "string",
"format": "string"
},
"r_hash": {
"receipt": {
"type": "string",
"format": "byte"
},
@@ -949,11 +976,11 @@
"type": "string",
"format": "byte"
},
"receipt": {
"r_hash": {
"type": "string",
"format": "byte"
},
"settle_date": {
"value": {
"type": "string",
"format": "int64"
},
@@ -961,9 +988,17 @@
"type": "boolean",
"format": "boolean"
},
"value": {
"creation_date": {
"type": "string",
"format": "int64"
},
"settle_date": {
"type": "string",
"format": "int64"
},
"payment_request": {
"type": "string",
"format": "string"
}
}
},
@@ -973,11 +1008,11 @@
"lnrpcLightningAddress": {
"type": "object",
"properties": {
"host": {
"pubkey": {
"type": "string",
"format": "string"
},
"pubkey": {
"host": {
"type": "string",
"format": "string"
}
@@ -986,14 +1021,6 @@
"lnrpcLightningNode": {
"type": "object",
"properties": {
"address": {
"type": "string",
"format": "string"
},
"alias": {
"type": "string",
"format": "string"
},
"last_update": {
"type": "integer",
"format": "int64"
@@ -1001,6 +1028,14 @@
"pub_key": {
"type": "string",
"format": "string"
},
"address": {
"type": "string",
"format": "string"
},
"alias": {
"type": "string",
"format": "string"
}
}
},
@@ -1069,47 +1104,55 @@
"lnrpcNetworkInfo": {
"type": "object",
"properties": {
"avg_channel_size": {
"type": "number",
"format": "double"
"graph_diameter": {
"type": "integer",
"format": "int64"
},
"avg_out_degree": {
"type": "number",
"format": "double"
},
"graph_diameter": {
"type": "integer",
"format": "int64"
},
"max_channel_size": {
"type": "string",
"format": "int64"
},
"max_out_degree": {
"type": "integer",
"format": "int64"
},
"min_channel_size": {
"type": "string",
"format": "int64"
},
"num_channels": {
"type": "integer",
"format": "int64"
},
"num_nodes": {
"type": "integer",
"format": "int64"
},
"num_channels": {
"type": "integer",
"format": "int64"
},
"total_network_capacity": {
"type": "string",
"format": "int64"
},
"avg_channel_size": {
"type": "number",
"format": "double"
},
"min_channel_size": {
"type": "string",
"format": "int64"
},
"max_channel_size": {
"type": "string",
"format": "int64"
}
}
},
"lnrpcNetworkInfoRequest": {
"type": "object"
},
"lnrpcNewAddressRequest": {
"type": "object",
"properties": {
"type": {
"$ref": "#/definitions/NewAddressRequestAddressType"
}
}
},
"lnrpcNewAddressResponse": {
"type": "object",
"properties": {
@@ -1150,9 +1193,9 @@
"lnrpcOpenChannelRequest": {
"type": "object",
"properties": {
"local_funding_amount": {
"type": "string",
"format": "int64"
"target_peer_id": {
"type": "integer",
"format": "int32"
},
"node_pubkey": {
"type": "string",
@@ -1162,17 +1205,31 @@
"type": "string",
"format": "string"
},
"num_confs": {
"type": "integer",
"local_funding_amount": {
"type": "string",
"format": "int64"
},
"push_sat": {
"type": "string",
"format": "int64"
},
"target_peer_id": {
"num_confs": {
"type": "integer",
"format": "int32"
"format": "int64"
}
}
},
"lnrpcOpenStatusUpdate": {
"type": "object",
"properties": {
"chan_pending": {
"$ref": "#/definitions/lnrpcPendingUpdate"
},
"confirmation": {
"$ref": "#/definitions/lnrpcConfirmationUpdate"
},
"chan_open": {
"$ref": "#/definitions/lnrpcChannelOpenUpdate"
}
}
},
@@ -1183,13 +1240,13 @@
"type": "string",
"format": "string"
},
"num_satoshis": {
"type": "string",
"format": "int64"
},
"payment_hash": {
"type": "string",
"format": "string"
},
"num_satoshis": {
"type": "string",
"format": "int64"
}
}
},
@@ -1205,11 +1262,15 @@
"lnrpcPayment": {
"type": "object",
"properties": {
"creation_date": {
"payment_hash": {
"type": "string",
"format": "string"
},
"value": {
"type": "string",
"format": "int64"
},
"fee": {
"creation_date": {
"type": "string",
"format": "int64"
},
@@ -1220,11 +1281,7 @@
"format": "string"
}
},
"payment_hash": {
"type": "string",
"format": "string"
},
"value": {
"fee": {
"type": "string",
"format": "int64"
}
@@ -1233,52 +1290,52 @@
"lnrpcPaymentHash": {
"type": "object",
"properties": {
"r_hash": {
"type": "string",
"format": "byte"
},
"r_hash_str": {
"type": "string",
"format": "string"
},
"r_hash": {
"type": "string",
"format": "byte"
}
}
},
"lnrpcPeer": {
"type": "object",
"properties": {
"address": {
"pub_key": {
"type": "string",
"format": "string"
},
"bytes_recv": {
"type": "string",
"format": "uint64"
},
"bytes_sent": {
"type": "string",
"format": "uint64"
},
"inbound": {
"type": "boolean",
"format": "boolean"
},
"peer_id": {
"type": "integer",
"format": "int32"
},
"ping_time": {
"type": "string",
"format": "int64"
},
"pub_key": {
"address": {
"type": "string",
"format": "string"
},
"bytes_sent": {
"type": "string",
"format": "uint64"
},
"bytes_recv": {
"type": "string",
"format": "uint64"
},
"sat_sent": {
"type": "string",
"format": "int64"
},
"sat_recv": {
"type": "string",
"format": "int64"
},
"sat_sent": {
"inbound": {
"type": "boolean",
"format": "boolean"
},
"ping_time": {
"type": "string",
"format": "int64"
}
@@ -1315,56 +1372,56 @@
"lnrpcRoute": {
"type": "object",
"properties": {
"hops": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcHop"
}
},
"total_amt": {
"type": "string",
"total_time_lock": {
"type": "integer",
"format": "int64"
},
"total_fees": {
"type": "string",
"format": "int64"
},
"total_time_lock": {
"type": "integer",
"total_amt": {
"type": "string",
"format": "int64"
},
"hops": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcHop"
}
}
}
},
"lnrpcRouteRequest": {
"type": "object",
"properties": {
"amt": {
"type": "string",
"format": "int64"
},
"pub_key": {
"type": "string",
"format": "string"
},
"amt": {
"type": "string",
"format": "int64"
}
}
},
"lnrpcRoutingPolicy": {
"type": "object",
"properties": {
"fee_base_msat": {
"type": "string",
"format": "int64"
},
"fee_rate_milli_msat": {
"type": "string",
"time_lock_delta": {
"type": "integer",
"format": "int64"
},
"min_htlc": {
"type": "string",
"format": "int64"
},
"time_lock_delta": {
"type": "integer",
"fee_base_msat": {
"type": "string",
"format": "int64"
},
"fee_rate_milli_msat": {
"type": "string",
"format": "int64"
}
}
@@ -1391,13 +1448,30 @@
}
}
},
"lnrpcSendManyRequest": {
"type": "object",
"properties": {
"AddrToAmount": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "int64"
}
}
}
},
"lnrpcSendManyResponse": {
"type": "object",
"properties": {
"txid": {
"type": "string",
"format": "string"
}
}
},
"lnrpcSendRequest": {
"type": "object",
"properties": {
"amt": {
"type": "string",
"format": "int64"
},
"dest": {
"type": "string",
"format": "byte"
@@ -1406,6 +1480,10 @@
"type": "string",
"format": "string"
},
"amt": {
"type": "string",
"format": "int64"
},
"payment_hash": {
"type": "string",
"format": "byte"
@@ -1432,13 +1510,33 @@
}
}
},
"lnrpcSetAliasRequest": {
"type": "object",
"properties": {
"new_alias": {
"type": "string",
"format": "string"
}
}
},
"lnrpcSetAliasResponse": {
"type": "object"
},
"lnrpcTransaction": {
"type": "object",
"properties": {
"tx_hash": {
"type": "string",
"format": "string"
},
"amount": {
"type": "number",
"format": "double"
},
"num_confirmations": {
"type": "integer",
"format": "int32"
},
"block_hash": {
"type": "string",
"format": "string"
@@ -1447,10 +1545,6 @@
"type": "integer",
"format": "int32"
},
"num_confirmations": {
"type": "integer",
"format": "int32"
},
"time_stamp": {
"type": "string",
"format": "int64"
@@ -1458,10 +1552,6 @@
"total_fees": {
"type": "string",
"format": "int64"
},
"tx_hash": {
"type": "string",
"format": "string"
}
}
},