lnrpc: add ClosedChannels call

This commit is contained in:
Joost Jager 2018-05-24 11:36:35 +02:00
parent cc1d833ee4
commit 52392d836c
4 changed files with 939 additions and 440 deletions

@ -44,6 +44,9 @@ It has these top-level messages:
Channel
ListChannelsRequest
ListChannelsResponse
ChannelCloseSummary
ClosedChannelsRequest
ClosedChannelsResponse
Peer
ListPeersRequest
ListPeersResponse
@ -158,6 +161,38 @@ func (NewAddressRequest_AddressType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{21, 0}
}
type ChannelCloseSummary_ClosureType int32
const (
ChannelCloseSummary_COOPERATIVE_CLOSE ChannelCloseSummary_ClosureType = 0
ChannelCloseSummary_LOCAL_FORCE_CLOSE ChannelCloseSummary_ClosureType = 1
ChannelCloseSummary_REMOTE_FORCE_CLOSE ChannelCloseSummary_ClosureType = 2
ChannelCloseSummary_BREACH_CLOSE ChannelCloseSummary_ClosureType = 3
ChannelCloseSummary_FUNDING_CANCELED ChannelCloseSummary_ClosureType = 4
)
var ChannelCloseSummary_ClosureType_name = map[int32]string{
0: "COOPERATIVE_CLOSE",
1: "LOCAL_FORCE_CLOSE",
2: "REMOTE_FORCE_CLOSE",
3: "BREACH_CLOSE",
4: "FUNDING_CANCELED",
}
var ChannelCloseSummary_ClosureType_value = map[string]int32{
"COOPERATIVE_CLOSE": 0,
"LOCAL_FORCE_CLOSE": 1,
"REMOTE_FORCE_CLOSE": 2,
"BREACH_CLOSE": 3,
"FUNDING_CANCELED": 4,
}
func (x ChannelCloseSummary_ClosureType) String() string {
return proto.EnumName(ChannelCloseSummary_ClosureType_name, int32(x))
}
func (ChannelCloseSummary_ClosureType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{36, 0}
}
type GenSeedRequest struct {
// *
// aezeed_passphrase is an optional user provided passphrase that will be used
@ -1467,6 +1502,168 @@ func (m *ListChannelsResponse) GetChannels() []*Channel {
return nil
}
type ChannelCloseSummary struct {
// / The outpoint (txid:index) of the funding transaction.
ChannelPoint string `protobuf:"bytes,1,opt,name=channel_point" json:"channel_point,omitempty"`
// / The unique channel ID for the channel.
ChanId uint64 `protobuf:"varint,2,opt,name=chan_id" json:"chan_id,omitempty"`
// / The hash of the genesis block that this channel resides within.
ChainHash string `protobuf:"bytes,3,opt,name=chain_hash" json:"chain_hash,omitempty"`
// / The txid of the transaction which ultimately closed this channel.
ClosingTxHash string `protobuf:"bytes,4,opt,name=closing_tx_hash" json:"closing_tx_hash,omitempty"`
// / Public key of the remote peer that we formerly had a channel with.
RemotePubkey string `protobuf:"bytes,5,opt,name=remote_pubkey" json:"remote_pubkey,omitempty"`
// / Total capacity of the channel.
Capacity int64 `protobuf:"varint,6,opt,name=capacity" json:"capacity,omitempty"`
// / Height at which the funding transaction was spent.
CloseHeight uint32 `protobuf:"varint,7,opt,name=close_height" json:"close_height,omitempty"`
// / Settled balance at the time of channel closure
SettledBalance int64 `protobuf:"varint,8,opt,name=settled_balance" json:"settled_balance,omitempty"`
// / The sum of all the time-locked outputs at the time of channel closure
TimeLockedBalance int64 `protobuf:"varint,9,opt,name=time_locked_balance" json:"time_locked_balance,omitempty"`
// / Details on how the channel was closed.
CloseType ChannelCloseSummary_ClosureType `protobuf:"varint,10,opt,name=close_type,enum=lnrpc.ChannelCloseSummary_ClosureType" json:"close_type,omitempty"`
}
func (m *ChannelCloseSummary) Reset() { *m = ChannelCloseSummary{} }
func (m *ChannelCloseSummary) String() string { return proto.CompactTextString(m) }
func (*ChannelCloseSummary) ProtoMessage() {}
func (*ChannelCloseSummary) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
func (m *ChannelCloseSummary) GetChannelPoint() string {
if m != nil {
return m.ChannelPoint
}
return ""
}
func (m *ChannelCloseSummary) GetChanId() uint64 {
if m != nil {
return m.ChanId
}
return 0
}
func (m *ChannelCloseSummary) GetChainHash() string {
if m != nil {
return m.ChainHash
}
return ""
}
func (m *ChannelCloseSummary) GetClosingTxHash() string {
if m != nil {
return m.ClosingTxHash
}
return ""
}
func (m *ChannelCloseSummary) GetRemotePubkey() string {
if m != nil {
return m.RemotePubkey
}
return ""
}
func (m *ChannelCloseSummary) GetCapacity() int64 {
if m != nil {
return m.Capacity
}
return 0
}
func (m *ChannelCloseSummary) GetCloseHeight() uint32 {
if m != nil {
return m.CloseHeight
}
return 0
}
func (m *ChannelCloseSummary) GetSettledBalance() int64 {
if m != nil {
return m.SettledBalance
}
return 0
}
func (m *ChannelCloseSummary) GetTimeLockedBalance() int64 {
if m != nil {
return m.TimeLockedBalance
}
return 0
}
func (m *ChannelCloseSummary) GetCloseType() ChannelCloseSummary_ClosureType {
if m != nil {
return m.CloseType
}
return ChannelCloseSummary_COOPERATIVE_CLOSE
}
type ClosedChannelsRequest struct {
Cooperative bool `protobuf:"varint,1,opt,name=cooperative" json:"cooperative,omitempty"`
LocalForce bool `protobuf:"varint,2,opt,name=local_force,json=localForce" json:"local_force,omitempty"`
RemoteForce bool `protobuf:"varint,3,opt,name=remote_force,json=remoteForce" json:"remote_force,omitempty"`
Breach bool `protobuf:"varint,4,opt,name=breach" json:"breach,omitempty"`
FundingCanceled bool `protobuf:"varint,5,opt,name=funding_canceled,json=fundingCanceled" json:"funding_canceled,omitempty"`
}
func (m *ClosedChannelsRequest) Reset() { *m = ClosedChannelsRequest{} }
func (m *ClosedChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelsRequest) ProtoMessage() {}
func (*ClosedChannelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
func (m *ClosedChannelsRequest) GetCooperative() bool {
if m != nil {
return m.Cooperative
}
return false
}
func (m *ClosedChannelsRequest) GetLocalForce() bool {
if m != nil {
return m.LocalForce
}
return false
}
func (m *ClosedChannelsRequest) GetRemoteForce() bool {
if m != nil {
return m.RemoteForce
}
return false
}
func (m *ClosedChannelsRequest) GetBreach() bool {
if m != nil {
return m.Breach
}
return false
}
func (m *ClosedChannelsRequest) GetFundingCanceled() bool {
if m != nil {
return m.FundingCanceled
}
return false
}
type ClosedChannelsResponse struct {
Channels []*ChannelCloseSummary `protobuf:"bytes,1,rep,name=channels" json:"channels,omitempty"`
}
func (m *ClosedChannelsResponse) Reset() { *m = ClosedChannelsResponse{} }
func (m *ClosedChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelsResponse) ProtoMessage() {}
func (*ClosedChannelsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
func (m *ClosedChannelsResponse) GetChannels() []*ChannelCloseSummary {
if m != nil {
return m.Channels
}
return nil
}
type Peer struct {
// / The identity pubkey of the peer
PubKey string `protobuf:"bytes,1,opt,name=pub_key" json:"pub_key,omitempty"`
@ -1489,7 +1686,7 @@ type Peer struct {
func (m *Peer) Reset() { *m = Peer{} }
func (m *Peer) String() string { return proto.CompactTextString(m) }
func (*Peer) ProtoMessage() {}
func (*Peer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
func (*Peer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
func (m *Peer) GetPubKey() string {
if m != nil {
@ -1553,7 +1750,7 @@ type ListPeersRequest struct {
func (m *ListPeersRequest) Reset() { *m = ListPeersRequest{} }
func (m *ListPeersRequest) String() string { return proto.CompactTextString(m) }
func (*ListPeersRequest) ProtoMessage() {}
func (*ListPeersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
func (*ListPeersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
type ListPeersResponse struct {
// / The list of currently connected peers
@ -1563,7 +1760,7 @@ type ListPeersResponse struct {
func (m *ListPeersResponse) Reset() { *m = ListPeersResponse{} }
func (m *ListPeersResponse) String() string { return proto.CompactTextString(m) }
func (*ListPeersResponse) ProtoMessage() {}
func (*ListPeersResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
func (*ListPeersResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
func (m *ListPeersResponse) GetPeers() []*Peer {
if m != nil {
@ -1578,7 +1775,7 @@ type GetInfoRequest struct {
func (m *GetInfoRequest) Reset() { *m = GetInfoRequest{} }
func (m *GetInfoRequest) String() string { return proto.CompactTextString(m) }
func (*GetInfoRequest) ProtoMessage() {}
func (*GetInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
func (*GetInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
type GetInfoResponse struct {
// / The identity pubkey of the current node.
@ -1612,7 +1809,7 @@ type GetInfoResponse struct {
func (m *GetInfoResponse) Reset() { *m = GetInfoResponse{} }
func (m *GetInfoResponse) String() string { return proto.CompactTextString(m) }
func (*GetInfoResponse) ProtoMessage() {}
func (*GetInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
func (*GetInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
func (m *GetInfoResponse) GetIdentityPubkey() string {
if m != nil {
@ -1714,7 +1911,7 @@ type ConfirmationUpdate struct {
func (m *ConfirmationUpdate) Reset() { *m = ConfirmationUpdate{} }
func (m *ConfirmationUpdate) String() string { return proto.CompactTextString(m) }
func (*ConfirmationUpdate) ProtoMessage() {}
func (*ConfirmationUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
func (*ConfirmationUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
func (m *ConfirmationUpdate) GetBlockSha() []byte {
if m != nil {
@ -1744,7 +1941,7 @@ type ChannelOpenUpdate struct {
func (m *ChannelOpenUpdate) Reset() { *m = ChannelOpenUpdate{} }
func (m *ChannelOpenUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelOpenUpdate) ProtoMessage() {}
func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (m *ChannelOpenUpdate) GetChannelPoint() *ChannelPoint {
if m != nil {
@ -1761,7 +1958,7 @@ type ChannelCloseUpdate struct {
func (m *ChannelCloseUpdate) Reset() { *m = ChannelCloseUpdate{} }
func (m *ChannelCloseUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelCloseUpdate) ProtoMessage() {}
func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
func (m *ChannelCloseUpdate) GetClosingTxid() []byte {
if m != nil {
@ -1794,7 +1991,7 @@ type CloseChannelRequest struct {
func (m *CloseChannelRequest) Reset() { *m = CloseChannelRequest{} }
func (m *CloseChannelRequest) String() string { return proto.CompactTextString(m) }
func (*CloseChannelRequest) ProtoMessage() {}
func (*CloseChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
func (*CloseChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (m *CloseChannelRequest) GetChannelPoint() *ChannelPoint {
if m != nil {
@ -1835,7 +2032,7 @@ type CloseStatusUpdate struct {
func (m *CloseStatusUpdate) Reset() { *m = CloseStatusUpdate{} }
func (m *CloseStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*CloseStatusUpdate) ProtoMessage() {}
func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
type isCloseStatusUpdate_Update interface{ isCloseStatusUpdate_Update() }
@ -1982,7 +2179,7 @@ type PendingUpdate struct {
func (m *PendingUpdate) Reset() { *m = PendingUpdate{} }
func (m *PendingUpdate) String() string { return proto.CompactTextString(m) }
func (*PendingUpdate) ProtoMessage() {}
func (*PendingUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
func (*PendingUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
func (m *PendingUpdate) GetTxid() []byte {
if m != nil {
@ -2022,7 +2219,7 @@ type OpenChannelRequest struct {
func (m *OpenChannelRequest) Reset() { *m = OpenChannelRequest{} }
func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) }
func (*OpenChannelRequest) ProtoMessage() {}
func (*OpenChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (*OpenChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
func (m *OpenChannelRequest) GetNodePubkey() []byte {
if m != nil {
@ -2098,7 +2295,7 @@ type OpenStatusUpdate struct {
func (m *OpenStatusUpdate) Reset() { *m = OpenStatusUpdate{} }
func (m *OpenStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*OpenStatusUpdate) ProtoMessage() {}
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
type isOpenStatusUpdate_Update interface{ isOpenStatusUpdate_Update() }
@ -2258,7 +2455,7 @@ type PendingHTLC struct {
func (m *PendingHTLC) Reset() { *m = PendingHTLC{} }
func (m *PendingHTLC) String() string { return proto.CompactTextString(m) }
func (*PendingHTLC) ProtoMessage() {}
func (*PendingHTLC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
func (*PendingHTLC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
func (m *PendingHTLC) GetIncoming() bool {
if m != nil {
@ -2308,7 +2505,7 @@ type PendingChannelsRequest struct {
func (m *PendingChannelsRequest) Reset() { *m = PendingChannelsRequest{} }
func (m *PendingChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsRequest) ProtoMessage() {}
func (*PendingChannelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
func (*PendingChannelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
type PendingChannelsResponse struct {
// / The balance in satoshis encumbered in pending channels
@ -2326,7 +2523,7 @@ type PendingChannelsResponse struct {
func (m *PendingChannelsResponse) Reset() { *m = PendingChannelsResponse{} }
func (m *PendingChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse) ProtoMessage() {}
func (*PendingChannelsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
func (*PendingChannelsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
func (m *PendingChannelsResponse) GetTotalLimboBalance() int64 {
if m != nil {
@ -2377,7 +2574,7 @@ func (m *PendingChannelsResponse_PendingChannel) Reset() {
func (m *PendingChannelsResponse_PendingChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse_PendingChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{51, 0}
return fileDescriptor0, []int{54, 0}
}
func (m *PendingChannelsResponse_PendingChannel) GetRemoteNodePub() string {
@ -2444,7 +2641,7 @@ func (m *PendingChannelsResponse_PendingOpenChannel) String() string {
}
func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{51, 1}
return fileDescriptor0, []int{54, 1}
}
func (m *PendingChannelsResponse_PendingOpenChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2497,7 +2694,7 @@ func (m *PendingChannelsResponse_WaitingCloseChannel) String() string {
}
func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {}
func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{51, 2}
return fileDescriptor0, []int{54, 2}
}
func (m *PendingChannelsResponse_WaitingCloseChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2525,7 +2722,7 @@ func (m *PendingChannelsResponse_ClosedChannel) Reset() { *m = PendingCh
func (m *PendingChannelsResponse_ClosedChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse_ClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{51, 3}
return fileDescriptor0, []int{54, 3}
}
func (m *PendingChannelsResponse_ClosedChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2569,7 +2766,7 @@ func (m *PendingChannelsResponse_ForceClosedChannel) String() string {
}
func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{51, 4}
return fileDescriptor0, []int{54, 4}
}
func (m *PendingChannelsResponse_ForceClosedChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2627,7 +2824,7 @@ type WalletBalanceRequest struct {
func (m *WalletBalanceRequest) Reset() { *m = WalletBalanceRequest{} }
func (m *WalletBalanceRequest) String() string { return proto.CompactTextString(m) }
func (*WalletBalanceRequest) ProtoMessage() {}
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
type WalletBalanceResponse struct {
// / The balance of the wallet
@ -2641,7 +2838,7 @@ type WalletBalanceResponse struct {
func (m *WalletBalanceResponse) Reset() { *m = WalletBalanceResponse{} }
func (m *WalletBalanceResponse) String() string { return proto.CompactTextString(m) }
func (*WalletBalanceResponse) ProtoMessage() {}
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
func (m *WalletBalanceResponse) GetTotalBalance() int64 {
if m != nil {
@ -2670,7 +2867,7 @@ type ChannelBalanceRequest struct {
func (m *ChannelBalanceRequest) Reset() { *m = ChannelBalanceRequest{} }
func (m *ChannelBalanceRequest) String() string { return proto.CompactTextString(m) }
func (*ChannelBalanceRequest) ProtoMessage() {}
func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }
type ChannelBalanceResponse struct {
// / Sum of channels balances denominated in satoshis
@ -2682,7 +2879,7 @@ type ChannelBalanceResponse struct {
func (m *ChannelBalanceResponse) Reset() { *m = ChannelBalanceResponse{} }
func (m *ChannelBalanceResponse) String() string { return proto.CompactTextString(m) }
func (*ChannelBalanceResponse) ProtoMessage() {}
func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} }
func (m *ChannelBalanceResponse) GetBalance() int64 {
if m != nil {
@ -2718,7 +2915,7 @@ type QueryRoutesRequest struct {
func (m *QueryRoutesRequest) Reset() { *m = QueryRoutesRequest{} }
func (m *QueryRoutesRequest) String() string { return proto.CompactTextString(m) }
func (*QueryRoutesRequest) ProtoMessage() {}
func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }
func (m *QueryRoutesRequest) GetPubKey() string {
if m != nil {
@ -2762,7 +2959,7 @@ type QueryRoutesResponse struct {
func (m *QueryRoutesResponse) Reset() { *m = QueryRoutesResponse{} }
func (m *QueryRoutesResponse) String() string { return proto.CompactTextString(m) }
func (*QueryRoutesResponse) ProtoMessage() {}
func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }
func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }
func (m *QueryRoutesResponse) GetRoutes() []*Route {
if m != nil {
@ -2788,7 +2985,7 @@ type Hop struct {
func (m *Hop) Reset() { *m = Hop{} }
func (m *Hop) String() string { return proto.CompactTextString(m) }
func (*Hop) ProtoMessage() {}
func (*Hop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} }
func (*Hop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }
func (m *Hop) GetChanId() uint64 {
if m != nil {
@ -2878,7 +3075,7 @@ type Route struct {
func (m *Route) Reset() { *m = Route{} }
func (m *Route) String() string { return proto.CompactTextString(m) }
func (*Route) ProtoMessage() {}
func (*Route) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }
func (*Route) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }
func (m *Route) GetTotalTimeLock() uint32 {
if m != nil {
@ -2930,7 +3127,7 @@ type NodeInfoRequest struct {
func (m *NodeInfoRequest) Reset() { *m = NodeInfoRequest{} }
func (m *NodeInfoRequest) String() string { return proto.CompactTextString(m) }
func (*NodeInfoRequest) ProtoMessage() {}
func (*NodeInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }
func (*NodeInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }
func (m *NodeInfoRequest) GetPubKey() string {
if m != nil {
@ -2953,7 +3150,7 @@ type NodeInfo struct {
func (m *NodeInfo) Reset() { *m = NodeInfo{} }
func (m *NodeInfo) String() string { return proto.CompactTextString(m) }
func (*NodeInfo) ProtoMessage() {}
func (*NodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }
func (*NodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }
func (m *NodeInfo) GetNode() *LightningNode {
if m != nil {
@ -2992,7 +3189,7 @@ type LightningNode struct {
func (m *LightningNode) Reset() { *m = LightningNode{} }
func (m *LightningNode) String() string { return proto.CompactTextString(m) }
func (*LightningNode) ProtoMessage() {}
func (*LightningNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }
func (*LightningNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }
func (m *LightningNode) GetLastUpdate() uint32 {
if m != nil {
@ -3037,7 +3234,7 @@ type NodeAddress struct {
func (m *NodeAddress) Reset() { *m = NodeAddress{} }
func (m *NodeAddress) String() string { return proto.CompactTextString(m) }
func (*NodeAddress) ProtoMessage() {}
func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }
func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }
func (m *NodeAddress) GetNetwork() string {
if m != nil {
@ -3063,7 +3260,7 @@ type RoutingPolicy struct {
func (m *RoutingPolicy) Reset() { *m = RoutingPolicy{} }
func (m *RoutingPolicy) String() string { return proto.CompactTextString(m) }
func (*RoutingPolicy) ProtoMessage() {}
func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }
func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} }
func (m *RoutingPolicy) GetTimeLockDelta() uint32 {
if m != nil {
@ -3117,7 +3314,7 @@ type ChannelEdge struct {
func (m *ChannelEdge) Reset() { *m = ChannelEdge{} }
func (m *ChannelEdge) String() string { return proto.CompactTextString(m) }
func (*ChannelEdge) ProtoMessage() {}
func (*ChannelEdge) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }
func (*ChannelEdge) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
func (m *ChannelEdge) GetChannelId() uint64 {
if m != nil {
@ -3181,7 +3378,7 @@ type ChannelGraphRequest struct {
func (m *ChannelGraphRequest) Reset() { *m = ChannelGraphRequest{} }
func (m *ChannelGraphRequest) String() string { return proto.CompactTextString(m) }
func (*ChannelGraphRequest) ProtoMessage() {}
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
// / Returns a new instance of the directed channel graph.
type ChannelGraph struct {
@ -3194,7 +3391,7 @@ type ChannelGraph struct {
func (m *ChannelGraph) Reset() { *m = ChannelGraph{} }
func (m *ChannelGraph) String() string { return proto.CompactTextString(m) }
func (*ChannelGraph) ProtoMessage() {}
func (*ChannelGraph) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} }
func (*ChannelGraph) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
func (m *ChannelGraph) GetNodes() []*LightningNode {
if m != nil {
@ -3221,7 +3418,7 @@ type ChanInfoRequest struct {
func (m *ChanInfoRequest) Reset() { *m = ChanInfoRequest{} }
func (m *ChanInfoRequest) String() string { return proto.CompactTextString(m) }
func (*ChanInfoRequest) ProtoMessage() {}
func (*ChanInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
func (*ChanInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
func (m *ChanInfoRequest) GetChanId() uint64 {
if m != nil {
@ -3236,7 +3433,7 @@ type NetworkInfoRequest struct {
func (m *NetworkInfoRequest) Reset() { *m = NetworkInfoRequest{} }
func (m *NetworkInfoRequest) String() string { return proto.CompactTextString(m) }
func (*NetworkInfoRequest) ProtoMessage() {}
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
type NetworkInfo struct {
GraphDiameter uint32 `protobuf:"varint,1,opt,name=graph_diameter" json:"graph_diameter,omitempty"`
@ -3253,7 +3450,7 @@ type NetworkInfo struct {
func (m *NetworkInfo) Reset() { *m = NetworkInfo{} }
func (m *NetworkInfo) String() string { return proto.CompactTextString(m) }
func (*NetworkInfo) ProtoMessage() {}
func (*NetworkInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
func (*NetworkInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }
func (m *NetworkInfo) GetGraphDiameter() uint32 {
if m != nil {
@ -3324,7 +3521,7 @@ type StopRequest struct {
func (m *StopRequest) Reset() { *m = StopRequest{} }
func (m *StopRequest) String() string { return proto.CompactTextString(m) }
func (*StopRequest) ProtoMessage() {}
func (*StopRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
func (*StopRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }
type StopResponse struct {
}
@ -3332,7 +3529,7 @@ type StopResponse struct {
func (m *StopResponse) Reset() { *m = StopResponse{} }
func (m *StopResponse) String() string { return proto.CompactTextString(m) }
func (*StopResponse) ProtoMessage() {}
func (*StopResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
func (*StopResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
type GraphTopologySubscription struct {
}
@ -3340,7 +3537,7 @@ type GraphTopologySubscription struct {
func (m *GraphTopologySubscription) Reset() { *m = GraphTopologySubscription{} }
func (m *GraphTopologySubscription) String() string { return proto.CompactTextString(m) }
func (*GraphTopologySubscription) ProtoMessage() {}
func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }
func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
type GraphTopologyUpdate struct {
NodeUpdates []*NodeUpdate `protobuf:"bytes,1,rep,name=node_updates,json=nodeUpdates" json:"node_updates,omitempty"`
@ -3351,7 +3548,7 @@ type GraphTopologyUpdate struct {
func (m *GraphTopologyUpdate) Reset() { *m = GraphTopologyUpdate{} }
func (m *GraphTopologyUpdate) String() string { return proto.CompactTextString(m) }
func (*GraphTopologyUpdate) ProtoMessage() {}
func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }
func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
func (m *GraphTopologyUpdate) GetNodeUpdates() []*NodeUpdate {
if m != nil {
@ -3384,7 +3581,7 @@ type NodeUpdate struct {
func (m *NodeUpdate) Reset() { *m = NodeUpdate{} }
func (m *NodeUpdate) String() string { return proto.CompactTextString(m) }
func (*NodeUpdate) ProtoMessage() {}
func (*NodeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
func (*NodeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }
func (m *NodeUpdate) GetAddresses() []string {
if m != nil {
@ -3430,7 +3627,7 @@ type ChannelEdgeUpdate struct {
func (m *ChannelEdgeUpdate) Reset() { *m = ChannelEdgeUpdate{} }
func (m *ChannelEdgeUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelEdgeUpdate) ProtoMessage() {}
func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }
func (m *ChannelEdgeUpdate) GetChanId() uint64 {
if m != nil {
@ -3488,7 +3685,7 @@ type ClosedChannelUpdate struct {
func (m *ClosedChannelUpdate) Reset() { *m = ClosedChannelUpdate{} }
func (m *ClosedChannelUpdate) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelUpdate) ProtoMessage() {}
func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }
func (m *ClosedChannelUpdate) GetChanId() uint64 {
if m != nil {
@ -3536,7 +3733,7 @@ type HopHint struct {
func (m *HopHint) Reset() { *m = HopHint{} }
func (m *HopHint) String() string { return proto.CompactTextString(m) }
func (*HopHint) ProtoMessage() {}
func (*HopHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }
func (*HopHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }
func (m *HopHint) GetNodeId() string {
if m != nil {
@ -3583,7 +3780,7 @@ type RouteHint struct {
func (m *RouteHint) Reset() { *m = RouteHint{} }
func (m *RouteHint) String() string { return proto.CompactTextString(m) }
func (*RouteHint) ProtoMessage() {}
func (*RouteHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }
func (*RouteHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} }
func (m *RouteHint) GetHopHints() []*HopHint {
if m != nil {
@ -3642,7 +3839,7 @@ type Invoice struct {
func (m *Invoice) Reset() { *m = Invoice{} }
func (m *Invoice) String() string { return proto.CompactTextString(m) }
func (*Invoice) ProtoMessage() {}
func (*Invoice) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }
func (*Invoice) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }
func (m *Invoice) GetMemo() string {
if m != nil {
@ -3761,7 +3958,7 @@ type AddInvoiceResponse struct {
func (m *AddInvoiceResponse) Reset() { *m = AddInvoiceResponse{} }
func (m *AddInvoiceResponse) String() string { return proto.CompactTextString(m) }
func (*AddInvoiceResponse) ProtoMessage() {}
func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }
func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} }
func (m *AddInvoiceResponse) GetRHash() []byte {
if m != nil {
@ -3789,7 +3986,7 @@ type PaymentHash struct {
func (m *PaymentHash) Reset() { *m = PaymentHash{} }
func (m *PaymentHash) String() string { return proto.CompactTextString(m) }
func (*PaymentHash) ProtoMessage() {}
func (*PaymentHash) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} }
func (*PaymentHash) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} }
func (m *PaymentHash) GetRHashStr() string {
if m != nil {
@ -3813,7 +4010,7 @@ type ListInvoiceRequest struct {
func (m *ListInvoiceRequest) Reset() { *m = ListInvoiceRequest{} }
func (m *ListInvoiceRequest) String() string { return proto.CompactTextString(m) }
func (*ListInvoiceRequest) ProtoMessage() {}
func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }
func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }
func (m *ListInvoiceRequest) GetPendingOnly() bool {
if m != nil {
@ -3829,7 +4026,7 @@ type ListInvoiceResponse struct {
func (m *ListInvoiceResponse) Reset() { *m = ListInvoiceResponse{} }
func (m *ListInvoiceResponse) String() string { return proto.CompactTextString(m) }
func (*ListInvoiceResponse) ProtoMessage() {}
func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} }
func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }
func (m *ListInvoiceResponse) GetInvoices() []*Invoice {
if m != nil {
@ -3844,7 +4041,7 @@ type InvoiceSubscription struct {
func (m *InvoiceSubscription) Reset() { *m = InvoiceSubscription{} }
func (m *InvoiceSubscription) String() string { return proto.CompactTextString(m) }
func (*InvoiceSubscription) ProtoMessage() {}
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} }
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }
type Payment struct {
// / The payment hash
@ -3864,7 +4061,7 @@ type Payment struct {
func (m *Payment) Reset() { *m = Payment{} }
func (m *Payment) String() string { return proto.CompactTextString(m) }
func (*Payment) ProtoMessage() {}
func (*Payment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }
func (*Payment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} }
func (m *Payment) GetPaymentHash() string {
if m != nil {
@ -3914,7 +4111,7 @@ type ListPaymentsRequest struct {
func (m *ListPaymentsRequest) Reset() { *m = ListPaymentsRequest{} }
func (m *ListPaymentsRequest) String() string { return proto.CompactTextString(m) }
func (*ListPaymentsRequest) ProtoMessage() {}
func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }
func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }
type ListPaymentsResponse struct {
// / The list of payments
@ -3924,7 +4121,7 @@ type ListPaymentsResponse struct {
func (m *ListPaymentsResponse) Reset() { *m = ListPaymentsResponse{} }
func (m *ListPaymentsResponse) String() string { return proto.CompactTextString(m) }
func (*ListPaymentsResponse) ProtoMessage() {}
func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }
func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
func (m *ListPaymentsResponse) GetPayments() []*Payment {
if m != nil {
@ -3939,7 +4136,7 @@ type DeleteAllPaymentsRequest struct {
func (m *DeleteAllPaymentsRequest) Reset() { *m = DeleteAllPaymentsRequest{} }
func (m *DeleteAllPaymentsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteAllPaymentsRequest) ProtoMessage() {}
func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} }
func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
type DeleteAllPaymentsResponse struct {
}
@ -3947,7 +4144,7 @@ type DeleteAllPaymentsResponse struct {
func (m *DeleteAllPaymentsResponse) Reset() { *m = DeleteAllPaymentsResponse{} }
func (m *DeleteAllPaymentsResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteAllPaymentsResponse) ProtoMessage() {}
func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }
func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
type DebugLevelRequest struct {
Show bool `protobuf:"varint,1,opt,name=show" json:"show,omitempty"`
@ -3957,7 +4154,7 @@ type DebugLevelRequest struct {
func (m *DebugLevelRequest) Reset() { *m = DebugLevelRequest{} }
func (m *DebugLevelRequest) String() string { return proto.CompactTextString(m) }
func (*DebugLevelRequest) ProtoMessage() {}
func (*DebugLevelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
func (*DebugLevelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }
func (m *DebugLevelRequest) GetShow() bool {
if m != nil {
@ -3980,7 +4177,7 @@ type DebugLevelResponse struct {
func (m *DebugLevelResponse) Reset() { *m = DebugLevelResponse{} }
func (m *DebugLevelResponse) String() string { return proto.CompactTextString(m) }
func (*DebugLevelResponse) ProtoMessage() {}
func (*DebugLevelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
func (*DebugLevelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }
func (m *DebugLevelResponse) GetSubSystems() string {
if m != nil {
@ -3997,7 +4194,7 @@ type PayReqString struct {
func (m *PayReqString) Reset() { *m = PayReqString{} }
func (m *PayReqString) String() string { return proto.CompactTextString(m) }
func (*PayReqString) ProtoMessage() {}
func (*PayReqString) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
func (*PayReqString) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} }
func (m *PayReqString) GetPayReq() string {
if m != nil {
@ -4022,7 +4219,7 @@ type PayReq struct {
func (m *PayReq) Reset() { *m = PayReq{} }
func (m *PayReq) String() string { return proto.CompactTextString(m) }
func (*PayReq) ProtoMessage() {}
func (*PayReq) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }
func (*PayReq) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} }
func (m *PayReq) GetDestination() string {
if m != nil {
@ -4100,7 +4297,7 @@ type FeeReportRequest struct {
func (m *FeeReportRequest) Reset() { *m = FeeReportRequest{} }
func (m *FeeReportRequest) String() string { return proto.CompactTextString(m) }
func (*FeeReportRequest) ProtoMessage() {}
func (*FeeReportRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }
func (*FeeReportRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} }
type ChannelFeeReport struct {
// / The channel that this fee report belongs to.
@ -4116,7 +4313,7 @@ type ChannelFeeReport struct {
func (m *ChannelFeeReport) Reset() { *m = ChannelFeeReport{} }
func (m *ChannelFeeReport) String() string { return proto.CompactTextString(m) }
func (*ChannelFeeReport) ProtoMessage() {}
func (*ChannelFeeReport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} }
func (*ChannelFeeReport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} }
func (m *ChannelFeeReport) GetChanPoint() string {
if m != nil {
@ -4160,7 +4357,7 @@ type FeeReportResponse struct {
func (m *FeeReportResponse) Reset() { *m = FeeReportResponse{} }
func (m *FeeReportResponse) String() string { return proto.CompactTextString(m) }
func (*FeeReportResponse) ProtoMessage() {}
func (*FeeReportResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} }
func (*FeeReportResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} }
func (m *FeeReportResponse) GetChannelFees() []*ChannelFeeReport {
if m != nil {
@ -4206,7 +4403,7 @@ type PolicyUpdateRequest struct {
func (m *PolicyUpdateRequest) Reset() { *m = PolicyUpdateRequest{} }
func (m *PolicyUpdateRequest) String() string { return proto.CompactTextString(m) }
func (*PolicyUpdateRequest) ProtoMessage() {}
func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} }
func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} }
type isPolicyUpdateRequest_Scope interface{ isPolicyUpdateRequest_Scope() }
@ -4341,7 +4538,7 @@ type PolicyUpdateResponse struct {
func (m *PolicyUpdateResponse) Reset() { *m = PolicyUpdateResponse{} }
func (m *PolicyUpdateResponse) String() string { return proto.CompactTextString(m) }
func (*PolicyUpdateResponse) ProtoMessage() {}
func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} }
func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{102} }
type ForwardingHistoryRequest struct {
// / Start time is the starting point of the forwarding history request. All records beyond this point will be included, respecting the end time, and the index offset.
@ -4357,7 +4554,7 @@ type ForwardingHistoryRequest struct {
func (m *ForwardingHistoryRequest) Reset() { *m = ForwardingHistoryRequest{} }
func (m *ForwardingHistoryRequest) String() string { return proto.CompactTextString(m) }
func (*ForwardingHistoryRequest) ProtoMessage() {}
func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} }
func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{103} }
func (m *ForwardingHistoryRequest) GetStartTime() uint64 {
if m != nil {
@ -4405,7 +4602,7 @@ type ForwardingEvent struct {
func (m *ForwardingEvent) Reset() { *m = ForwardingEvent{} }
func (m *ForwardingEvent) String() string { return proto.CompactTextString(m) }
func (*ForwardingEvent) ProtoMessage() {}
func (*ForwardingEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} }
func (*ForwardingEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{104} }
func (m *ForwardingEvent) GetTimestamp() uint64 {
if m != nil {
@ -4459,7 +4656,7 @@ type ForwardingHistoryResponse struct {
func (m *ForwardingHistoryResponse) Reset() { *m = ForwardingHistoryResponse{} }
func (m *ForwardingHistoryResponse) String() string { return proto.CompactTextString(m) }
func (*ForwardingHistoryResponse) ProtoMessage() {}
func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{102} }
func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{105} }
func (m *ForwardingHistoryResponse) GetForwardingEvents() []*ForwardingEvent {
if m != nil {
@ -4512,6 +4709,9 @@ func init() {
proto.RegisterType((*Channel)(nil), "lnrpc.Channel")
proto.RegisterType((*ListChannelsRequest)(nil), "lnrpc.ListChannelsRequest")
proto.RegisterType((*ListChannelsResponse)(nil), "lnrpc.ListChannelsResponse")
proto.RegisterType((*ChannelCloseSummary)(nil), "lnrpc.ChannelCloseSummary")
proto.RegisterType((*ClosedChannelsRequest)(nil), "lnrpc.ClosedChannelsRequest")
proto.RegisterType((*ClosedChannelsResponse)(nil), "lnrpc.ClosedChannelsResponse")
proto.RegisterType((*Peer)(nil), "lnrpc.Peer")
proto.RegisterType((*ListPeersRequest)(nil), "lnrpc.ListPeersRequest")
proto.RegisterType((*ListPeersResponse)(nil), "lnrpc.ListPeersResponse")
@ -4585,6 +4785,7 @@ func init() {
proto.RegisterType((*ForwardingEvent)(nil), "lnrpc.ForwardingEvent")
proto.RegisterType((*ForwardingHistoryResponse)(nil), "lnrpc.ForwardingHistoryResponse")
proto.RegisterEnum("lnrpc.NewAddressRequest_AddressType", NewAddressRequest_AddressType_name, NewAddressRequest_AddressType_value)
proto.RegisterEnum("lnrpc.ChannelCloseSummary_ClosureType", ChannelCloseSummary_ClosureType_name, ChannelCloseSummary_ClosureType_value)
}
// Reference imports to suppress errors if they are not otherwise used.
@ -4893,6 +5094,10 @@ type LightningClient interface {
// ListChannels returns a description of all the open channels that this node
// is a participant in.
ListChannels(ctx context.Context, in *ListChannelsRequest, opts ...grpc.CallOption) (*ListChannelsResponse, error)
// * lncli: `closedchannels`
// ClosedChannels returns a description of all the closed channels that
// this node was a participant in.
ClosedChannels(ctx context.Context, in *ClosedChannelsRequest, opts ...grpc.CallOption) (*ClosedChannelsResponse, error)
// *
// OpenChannelSync is a synchronous version of the OpenChannel RPC call. This
// call is meant to be consumed by clients to the REST proxy. As with all
@ -5210,6 +5415,15 @@ func (c *lightningClient) ListChannels(ctx context.Context, in *ListChannelsRequ
return out, nil
}
func (c *lightningClient) ClosedChannels(ctx context.Context, in *ClosedChannelsRequest, opts ...grpc.CallOption) (*ClosedChannelsResponse, error) {
out := new(ClosedChannelsResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/ClosedChannels", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) OpenChannelSync(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (*ChannelPoint, error) {
out := new(ChannelPoint)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/OpenChannelSync", in, out, c.cc, opts...)
@ -5650,6 +5864,10 @@ type LightningServer interface {
// ListChannels returns a description of all the open channels that this node
// is a participant in.
ListChannels(context.Context, *ListChannelsRequest) (*ListChannelsResponse, error)
// * lncli: `closedchannels`
// ClosedChannels returns a description of all the closed channels that
// this node was a participant in.
ClosedChannels(context.Context, *ClosedChannelsRequest) (*ClosedChannelsResponse, error)
// *
// OpenChannelSync is a synchronous version of the OpenChannel RPC call. This
// call is meant to be consumed by clients to the REST proxy. As with all
@ -6087,6 +6305,24 @@ func _Lightning_ListChannels_Handler(srv interface{}, ctx context.Context, dec f
return interceptor(ctx, in, info, handler)
}
func _Lightning_ClosedChannels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ClosedChannelsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).ClosedChannels(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/ClosedChannels",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).ClosedChannels(ctx, req.(*ClosedChannelsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_OpenChannelSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(OpenChannelRequest)
if err := dec(in); err != nil {
@ -6629,6 +6865,10 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
MethodName: "ListChannels",
Handler: _Lightning_ListChannels_Handler,
},
{
MethodName: "ClosedChannels",
Handler: _Lightning_ClosedChannels_Handler,
},
{
MethodName: "OpenChannelSync",
Handler: _Lightning_OpenChannelSync_Handler,
@ -6751,372 +6991,391 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 5859 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x3c, 0x4b, 0x90, 0x1c, 0xc9,
0x55, 0xaa, 0xee, 0x9e, 0x4f, 0xbf, 0xee, 0xe9, 0x99, 0xc9, 0x19, 0xcd, 0xb4, 0x7a, 0xb5, 0x5a,
0x6d, 0x59, 0x61, 0xc9, 0xc3, 0xa2, 0xd1, 0x8e, 0xed, 0x65, 0xbd, 0x0b, 0x36, 0xfa, 0xcf, 0xda,
0x5a, 0x79, 0x5c, 0x23, 0x59, 0x60, 0x43, 0xb4, 0x6b, 0xba, 0x73, 0x7a, 0xca, 0xea, 0xae, 0x2a,
0x57, 0x55, 0xcf, 0xa8, 0xbd, 0x28, 0x82, 0x5f, 0x70, 0xc2, 0x41, 0x10, 0xf8, 0x62, 0x22, 0x08,
0x22, 0xcc, 0xc5, 0x1c, 0x38, 0xc2, 0xc5, 0x70, 0xe3, 0x44, 0x04, 0xc1, 0x61, 0x4f, 0x0e, 0x8e,
0xc0, 0x01, 0x1c, 0x5c, 0x88, 0xe0, 0x4a, 0x10, 0xef, 0xe5, 0xa7, 0x32, 0xab, 0xaa, 0x25, 0xf9,
0x03, 0xb7, 0xce, 0x97, 0xaf, 0x32, 0x5f, 0x66, 0xbe, 0x5f, 0xbe, 0xf7, 0xb2, 0xa1, 0x99, 0xc4,
0x83, 0xeb, 0x71, 0x12, 0x65, 0x11, 0x5b, 0x18, 0x87, 0x49, 0x3c, 0xe8, 0x5d, 0x1c, 0x45, 0xd1,
0x68, 0xcc, 0x77, 0xfd, 0x38, 0xd8, 0xf5, 0xc3, 0x30, 0xca, 0xfc, 0x2c, 0x88, 0xc2, 0x54, 0x20,
0xb9, 0xdf, 0x80, 0xce, 0x7d, 0x1e, 0x1e, 0x72, 0x3e, 0xf4, 0xf8, 0xb7, 0xa6, 0x3c, 0xcd, 0xd8,
0x2f, 0xc0, 0xba, 0xcf, 0xbf, 0xcd, 0xf9, 0xb0, 0x1f, 0xfb, 0x69, 0x1a, 0x9f, 0x24, 0x7e, 0xca,
0xbb, 0xce, 0x65, 0xe7, 0x5a, 0xdb, 0x5b, 0x13, 0x1d, 0x07, 0x1a, 0xce, 0xde, 0x84, 0x76, 0x8a,
0xa8, 0x3c, 0xcc, 0x92, 0x28, 0x9e, 0x75, 0x6b, 0x84, 0xd7, 0x42, 0xd8, 0x5d, 0x01, 0x72, 0xc7,
0xb0, 0xaa, 0x67, 0x48, 0xe3, 0x28, 0x4c, 0x39, 0xbb, 0x01, 0x9b, 0x83, 0x20, 0x3e, 0xe1, 0x49,
0x9f, 0x3e, 0x9e, 0x84, 0x7c, 0x12, 0x85, 0xc1, 0xa0, 0xeb, 0x5c, 0xae, 0x5f, 0x6b, 0x7a, 0x4c,
0xf4, 0xe1, 0x17, 0x1f, 0xca, 0x1e, 0x76, 0x15, 0x56, 0x79, 0x28, 0xe0, 0x7c, 0x48, 0x5f, 0xc9,
0xa9, 0x3a, 0x39, 0x18, 0x3f, 0x70, 0xff, 0xde, 0x81, 0xf5, 0x0f, 0xc2, 0x20, 0x7b, 0xe2, 0x8f,
0xc7, 0x3c, 0x53, 0x6b, 0xba, 0x0a, 0xab, 0x67, 0x04, 0xa0, 0x35, 0x9d, 0x45, 0xc9, 0x50, 0xae,
0xa8, 0x23, 0xc0, 0x07, 0x12, 0x3a, 0x97, 0xb2, 0xda, 0x5c, 0xca, 0x2a, 0xb7, 0xab, 0x3e, 0x67,
0xbb, 0xae, 0xc2, 0x6a, 0xc2, 0x07, 0xd1, 0x29, 0x4f, 0x66, 0xfd, 0xb3, 0x20, 0x1c, 0x46, 0x67,
0xdd, 0xc6, 0x65, 0xe7, 0xda, 0x82, 0xd7, 0x51, 0xe0, 0x27, 0x04, 0x75, 0x37, 0x81, 0x99, 0xab,
0x10, 0xfb, 0xe6, 0x8e, 0x60, 0xe3, 0x71, 0x38, 0x8e, 0x06, 0x4f, 0x7f, 0xca, 0xd5, 0x55, 0x4c,
0x5f, 0xab, 0x9c, 0x7e, 0x0b, 0x36, 0xed, 0x89, 0x24, 0x01, 0x1c, 0xce, 0xdf, 0x3e, 0xf1, 0xc3,
0x11, 0x57, 0x43, 0x2a, 0x12, 0x3e, 0x05, 0x6b, 0x83, 0x69, 0x92, 0xf0, 0xb0, 0x44, 0xc3, 0xaa,
0x84, 0x6b, 0x22, 0xde, 0x84, 0x76, 0xc8, 0xcf, 0x72, 0x34, 0xc9, 0x32, 0x21, 0x3f, 0x53, 0x28,
0x6e, 0x17, 0xb6, 0x8a, 0xd3, 0x48, 0x02, 0xbe, 0x57, 0x83, 0xd6, 0xa3, 0xc4, 0x0f, 0x53, 0x7f,
0x80, 0x5c, 0xcc, 0xba, 0xb0, 0x94, 0x3d, 0xeb, 0x9f, 0xf8, 0xe9, 0x09, 0x4d, 0xd7, 0xf4, 0x54,
0x93, 0x6d, 0xc1, 0xa2, 0x3f, 0x89, 0xa6, 0x61, 0x46, 0x13, 0xd4, 0x3d, 0xd9, 0x62, 0x6f, 0xc1,
0x7a, 0x38, 0x9d, 0xf4, 0x07, 0x51, 0x78, 0x1c, 0x24, 0x13, 0x21, 0x0b, 0x74, 0x5e, 0x0b, 0x5e,
0xb9, 0x83, 0x5d, 0x02, 0x38, 0xc2, 0x7d, 0x10, 0x53, 0x34, 0x68, 0x0a, 0x03, 0xc2, 0x5c, 0x68,
0xcb, 0x16, 0x0f, 0x46, 0x27, 0x59, 0x77, 0x81, 0x06, 0xb2, 0x60, 0x38, 0x46, 0x16, 0x4c, 0x78,
0x3f, 0xcd, 0xfc, 0x49, 0xdc, 0x5d, 0x24, 0x6a, 0x0c, 0x08, 0xf5, 0x47, 0x99, 0x3f, 0xee, 0x1f,
0x73, 0x9e, 0x76, 0x97, 0x64, 0xbf, 0x86, 0xb0, 0x4f, 0x42, 0x67, 0xc8, 0xd3, 0xac, 0xef, 0x0f,
0x87, 0x09, 0x4f, 0x53, 0x9e, 0x76, 0x97, 0x89, 0x1b, 0x0b, 0x50, 0xdc, 0xb5, 0xfb, 0x3c, 0x33,
0x76, 0x27, 0x95, 0xa7, 0xe3, 0x3e, 0x00, 0x66, 0x80, 0xef, 0xf0, 0xcc, 0x0f, 0xc6, 0x29, 0x7b,
0x07, 0xda, 0x99, 0x81, 0x4c, 0xd2, 0xd7, 0xda, 0x63, 0xd7, 0x49, 0x6d, 0x5c, 0x37, 0x3e, 0xf0,
0x2c, 0x3c, 0xf7, 0x3e, 0x2c, 0xdf, 0xe3, 0xfc, 0x41, 0x30, 0x09, 0x32, 0xb6, 0x05, 0x0b, 0xc7,
0xc1, 0x33, 0x2e, 0x0e, 0xbb, 0xbe, 0x7f, 0xce, 0x13, 0x4d, 0xd6, 0x83, 0xa5, 0x98, 0x27, 0x03,
0xae, 0xb6, 0x7f, 0xff, 0x9c, 0xa7, 0x00, 0xb7, 0x96, 0x60, 0x61, 0x8c, 0x1f, 0xbb, 0x3f, 0xa8,
0x41, 0xeb, 0x90, 0x87, 0x9a, 0x89, 0x18, 0x34, 0x70, 0x49, 0x92, 0x71, 0xe8, 0x37, 0x7b, 0x03,
0x5a, 0xb4, 0xcc, 0x34, 0x4b, 0x82, 0x70, 0x44, 0x83, 0x35, 0x3d, 0x40, 0xd0, 0x21, 0x41, 0xd8,
0x1a, 0xd4, 0xfd, 0x49, 0x46, 0x27, 0x58, 0xf7, 0xf0, 0x27, 0x32, 0x58, 0xec, 0xcf, 0x26, 0xc8,
0x8b, 0xfa, 0xd4, 0xda, 0x5e, 0x4b, 0xc2, 0xf6, 0xf1, 0xd8, 0xae, 0xc3, 0x86, 0x89, 0xa2, 0x46,
0x5f, 0xa0, 0xd1, 0xd7, 0x0d, 0x4c, 0x39, 0xc9, 0x55, 0x58, 0x55, 0xf8, 0x89, 0x20, 0x96, 0xce,
0xb1, 0xe9, 0x75, 0x24, 0x58, 0x2d, 0xe1, 0x1a, 0xac, 0x1d, 0x07, 0xa1, 0x3f, 0xee, 0x0f, 0xc6,
0xd9, 0x69, 0x7f, 0xc8, 0xc7, 0x99, 0x4f, 0x27, 0xba, 0xe0, 0x75, 0x08, 0x7e, 0x7b, 0x9c, 0x9d,
0xde, 0x41, 0x28, 0x7b, 0x0b, 0x9a, 0xc7, 0x9c, 0xf7, 0x69, 0x27, 0xba, 0xcb, 0x97, 0x9d, 0x6b,
0xad, 0xbd, 0x55, 0xb9, 0xf5, 0x6a, 0x77, 0xbd, 0xe5, 0x63, 0xf9, 0xcb, 0xfd, 0xae, 0x03, 0x6d,
0xb1, 0x55, 0x52, 0x85, 0x5e, 0x81, 0x15, 0x45, 0x11, 0x4f, 0x92, 0x28, 0x91, 0xec, 0x6f, 0x03,
0xd9, 0x0e, 0xac, 0x29, 0x40, 0x9c, 0xf0, 0x60, 0xe2, 0x8f, 0xb8, 0x94, 0xb7, 0x12, 0x9c, 0xed,
0xe5, 0x23, 0x26, 0xd1, 0x34, 0x13, 0x4a, 0xac, 0xb5, 0xd7, 0x96, 0x44, 0x79, 0x08, 0xf3, 0x6c,
0x14, 0xf7, 0x3b, 0x0e, 0x30, 0x24, 0xeb, 0x51, 0x24, 0xba, 0xe5, 0x2e, 0x14, 0x4f, 0xc0, 0x79,
0xe5, 0x13, 0xa8, 0xcd, 0x3b, 0x81, 0x2b, 0xb0, 0x48, 0x53, 0xa2, 0xac, 0xd6, 0x4b, 0x64, 0xc9,
0x3e, 0xf7, 0xfb, 0x0e, 0xb4, 0x51, 0x73, 0x84, 0x7c, 0x7c, 0x10, 0x05, 0x61, 0xc6, 0x6e, 0x00,
0x3b, 0x9e, 0x86, 0xc3, 0x20, 0x1c, 0xf5, 0xb3, 0x67, 0xc1, 0xb0, 0x7f, 0x34, 0xc3, 0x21, 0x88,
0x9e, 0xfd, 0x73, 0x5e, 0x45, 0x1f, 0x7b, 0x0b, 0xd6, 0x2c, 0x68, 0x9a, 0x25, 0x82, 0xaa, 0xfd,
0x73, 0x5e, 0xa9, 0x07, 0xe5, 0x3f, 0x9a, 0x66, 0xf1, 0x34, 0xeb, 0x07, 0xe1, 0x90, 0x3f, 0xa3,
0x3d, 0x5b, 0xf1, 0x2c, 0xd8, 0xad, 0x0e, 0xb4, 0xcd, 0xef, 0xdc, 0xcf, 0xc3, 0xda, 0x03, 0x54,
0x0c, 0x61, 0x10, 0x8e, 0x6e, 0x0a, 0xe9, 0x45, 0x6d, 0x15, 0x4f, 0x8f, 0x9e, 0xf2, 0x99, 0x3c,
0x47, 0xd9, 0x42, 0x91, 0x38, 0x89, 0xd2, 0x4c, 0xee, 0x0b, 0xfd, 0x76, 0xff, 0xc5, 0x81, 0x55,
0xdc, 0xf4, 0x0f, 0xfd, 0x70, 0xa6, 0x76, 0xfc, 0x01, 0xb4, 0x71, 0xa8, 0x47, 0xd1, 0x4d, 0xa1,
0xf3, 0x84, 0x2c, 0x5f, 0x93, 0x9b, 0x54, 0xc0, 0xbe, 0x6e, 0xa2, 0xa2, 0x99, 0x9e, 0x79, 0xd6,
0xd7, 0x28, 0x74, 0x99, 0x9f, 0x8c, 0x78, 0x46, 0xda, 0x50, 0x6a, 0x47, 0x10, 0xa0, 0xdb, 0x51,
0x78, 0xcc, 0x2e, 0x43, 0x3b, 0xf5, 0xb3, 0x7e, 0xcc, 0x13, 0xda, 0x35, 0x12, 0x9c, 0xba, 0x07,
0xa9, 0x9f, 0x1d, 0xf0, 0xe4, 0xd6, 0x2c, 0xe3, 0xbd, 0x2f, 0xc0, 0x7a, 0x69, 0x16, 0x94, 0xd5,
0x7c, 0x89, 0xf8, 0x93, 0x6d, 0xc2, 0xc2, 0xa9, 0x3f, 0x9e, 0x72, 0xa9, 0xa4, 0x45, 0xe3, 0xbd,
0xda, 0xbb, 0x8e, 0xfb, 0x49, 0x58, 0xcb, 0xc9, 0x96, 0x4c, 0xcf, 0xa0, 0x81, 0x3b, 0x28, 0x07,
0xa0, 0xdf, 0xee, 0xef, 0x38, 0x02, 0xf1, 0x76, 0x14, 0x68, 0x85, 0x87, 0x88, 0xa8, 0x17, 0x15,
0x22, 0xfe, 0x9e, 0x6b, 0x10, 0x7e, 0xf6, 0xc5, 0xba, 0x57, 0x61, 0xdd, 0x20, 0xe1, 0x05, 0xc4,
0x7e, 0xc7, 0x81, 0xf5, 0x87, 0xfc, 0x4c, 0x9e, 0xba, 0xa2, 0xf6, 0x5d, 0x68, 0x64, 0xb3, 0x58,
0x38, 0x59, 0x9d, 0xbd, 0x2b, 0xf2, 0xd0, 0x4a, 0x78, 0xd7, 0x65, 0xf3, 0xd1, 0x2c, 0xe6, 0x1e,
0x7d, 0xe1, 0x7e, 0x1e, 0x5a, 0x06, 0x90, 0x6d, 0xc3, 0xc6, 0x93, 0x0f, 0x1e, 0x3d, 0xbc, 0x7b,
0x78, 0xd8, 0x3f, 0x78, 0x7c, 0xeb, 0x4b, 0x77, 0x7f, 0xbd, 0xbf, 0x7f, 0xf3, 0x70, 0x7f, 0xed,
0x1c, 0xdb, 0x02, 0xf6, 0xf0, 0xee, 0xe1, 0xa3, 0xbb, 0x77, 0x2c, 0xb8, 0xe3, 0xf6, 0xa0, 0xfb,
0x90, 0x9f, 0x3d, 0x09, 0xb2, 0x90, 0xa7, 0xa9, 0x3d, 0x9b, 0x7b, 0x1d, 0x98, 0x49, 0x82, 0x5c,
0x55, 0x17, 0x96, 0xa4, 0xc5, 0x51, 0x06, 0x57, 0x36, 0xdd, 0x4f, 0x02, 0x3b, 0x0c, 0x46, 0xe1,
0x87, 0x3c, 0x4d, 0xfd, 0x91, 0x56, 0x05, 0x6b, 0x50, 0x9f, 0xa4, 0x23, 0xa9, 0x01, 0xf0, 0xa7,
0xfb, 0x69, 0xd8, 0xb0, 0xf0, 0xe4, 0xc0, 0x17, 0xa1, 0x99, 0x06, 0xa3, 0xd0, 0xcf, 0xa6, 0x09,
0x97, 0x43, 0xe7, 0x00, 0xf7, 0x1e, 0x6c, 0x7e, 0x95, 0x27, 0xc1, 0xf1, 0xec, 0x65, 0xc3, 0xdb,
0xe3, 0xd4, 0x8a, 0xe3, 0xdc, 0x85, 0xf3, 0x85, 0x71, 0xe4, 0xf4, 0x82, 0x11, 0xe5, 0x71, 0x2d,
0x7b, 0xa2, 0x61, 0x88, 0x65, 0xcd, 0x14, 0x4b, 0xf7, 0x31, 0xb0, 0xdb, 0x51, 0x18, 0xf2, 0x41,
0x76, 0xc0, 0x79, 0x92, 0x7b, 0xce, 0x39, 0xd7, 0xb5, 0xf6, 0xb6, 0xe5, 0x39, 0x16, 0x65, 0x5d,
0xb2, 0x23, 0x83, 0x46, 0xcc, 0x93, 0x09, 0x0d, 0xbc, 0xec, 0xd1, 0x6f, 0xf7, 0x3c, 0x6c, 0x58,
0xc3, 0x4a, 0xa7, 0xe7, 0x6d, 0x38, 0x7f, 0x27, 0x48, 0x07, 0xe5, 0x09, 0xbb, 0xb0, 0x14, 0x4f,
0x8f, 0xfa, 0xb9, 0x4c, 0xa9, 0x26, 0xfa, 0x02, 0xc5, 0x4f, 0xe4, 0x60, 0x7f, 0xe0, 0x40, 0x63,
0xff, 0xd1, 0x83, 0xdb, 0xac, 0x07, 0xcb, 0x41, 0x38, 0x88, 0x26, 0xa8, 0x76, 0xc5, 0xa2, 0x75,
0x7b, 0xae, 0xac, 0x5c, 0x84, 0x26, 0x69, 0x6b, 0x74, 0x6f, 0xa4, 0x93, 0x9b, 0x03, 0xd0, 0xb5,
0xe2, 0xcf, 0xe2, 0x20, 0x21, 0xdf, 0x49, 0x79, 0x44, 0x0d, 0xd2, 0x88, 0xe5, 0x0e, 0xf7, 0x7f,
0x1a, 0xb0, 0x24, 0x75, 0x35, 0xcd, 0x37, 0xc8, 0x82, 0x53, 0x2e, 0x29, 0x91, 0x2d, 0xb4, 0x72,
0x09, 0x9f, 0x44, 0x19, 0xef, 0x5b, 0xc7, 0x60, 0x03, 0x11, 0x6b, 0x20, 0x06, 0xea, 0xc7, 0xa8,
0xf5, 0x89, 0xb2, 0xa6, 0x67, 0x03, 0x71, 0xb3, 0x10, 0xd0, 0x0f, 0x86, 0x44, 0x53, 0xc3, 0x53,
0x4d, 0xdc, 0x89, 0x81, 0x1f, 0xfb, 0x83, 0x20, 0x9b, 0x49, 0xe1, 0xd6, 0x6d, 0x1c, 0x7b, 0x1c,
0x0d, 0xfc, 0x71, 0xff, 0xc8, 0x1f, 0xfb, 0xe1, 0x80, 0x4b, 0xff, 0xcd, 0x06, 0xa2, 0x8b, 0x26,
0x49, 0x52, 0x68, 0xc2, 0x8d, 0x2b, 0x40, 0xd1, 0xd5, 0x1b, 0x44, 0x93, 0x49, 0x90, 0xa1, 0x67,
0x47, 0x56, 0xbf, 0xee, 0x19, 0x10, 0x5a, 0x89, 0x68, 0x9d, 0x89, 0xdd, 0x6b, 0x8a, 0xd9, 0x2c,
0x20, 0x8e, 0x82, 0xae, 0x03, 0x2a, 0xa4, 0xa7, 0x67, 0x5d, 0x10, 0xa3, 0xe4, 0x10, 0x3c, 0x87,
0x69, 0x98, 0xf2, 0x2c, 0x1b, 0xf3, 0xa1, 0x26, 0xa8, 0x45, 0x68, 0xe5, 0x0e, 0x76, 0x03, 0x36,
0x84, 0xb3, 0x99, 0xfa, 0x59, 0x94, 0x9e, 0x04, 0x69, 0x3f, 0x45, 0xb7, 0xad, 0x4d, 0xf8, 0x55,
0x5d, 0xec, 0x5d, 0xd8, 0x2e, 0x80, 0x13, 0x3e, 0xe0, 0xc1, 0x29, 0x1f, 0x76, 0x57, 0xe8, 0xab,
0x79, 0xdd, 0xec, 0x32, 0xb4, 0xd0, 0xc7, 0x9e, 0xc6, 0x43, 0x1f, 0xed, 0x70, 0x87, 0xce, 0xc1,
0x04, 0xb1, 0xb7, 0x61, 0x25, 0xe6, 0xc2, 0x58, 0x9e, 0x64, 0xe3, 0x41, 0xda, 0x5d, 0x25, 0x4b,
0xd6, 0x92, 0xc2, 0x84, 0x9c, 0xeb, 0xd9, 0x18, 0xc8, 0x94, 0x83, 0x94, 0x9c, 0x2d, 0x7f, 0xd6,
0x5d, 0x23, 0x76, 0xcb, 0x01, 0x24, 0x23, 0x49, 0x70, 0xea, 0x67, 0xbc, 0xbb, 0x4e, 0xbc, 0xa5,
0x9a, 0xee, 0x9f, 0x3b, 0xb0, 0xf1, 0x20, 0x48, 0x33, 0xc9, 0x84, 0x5a, 0x1d, 0xbf, 0x01, 0x2d,
0xc1, 0x7e, 0xfd, 0x28, 0x1c, 0xcf, 0x24, 0x47, 0x82, 0x00, 0x7d, 0x39, 0x1c, 0xcf, 0xd8, 0x27,
0x60, 0x25, 0x08, 0x4d, 0x14, 0x21, 0xc3, 0x6d, 0x05, 0x24, 0xa4, 0x37, 0xa0, 0x15, 0x4f, 0x8f,
0xc6, 0xc1, 0x40, 0xa0, 0xd4, 0xc5, 0x28, 0x02, 0x44, 0x08, 0xe8, 0x24, 0x09, 0x4a, 0x04, 0x46,
0x83, 0x30, 0x5a, 0x12, 0x86, 0x28, 0xee, 0x2d, 0xd8, 0xb4, 0x09, 0x94, 0xca, 0x6a, 0x07, 0x96,
0x25, 0x6f, 0xa7, 0xdd, 0x16, 0xed, 0x4f, 0x47, 0xee, 0x8f, 0x44, 0xf5, 0x74, 0xbf, 0xfb, 0x1f,
0x0e, 0x34, 0x50, 0x01, 0xcc, 0x57, 0x16, 0xa6, 0x4e, 0xaf, 0x5b, 0x3a, 0x9d, 0xae, 0x3f, 0xe8,
0x15, 0x09, 0x96, 0x10, 0x62, 0x63, 0x40, 0xf2, 0xfe, 0x84, 0x0f, 0x4e, 0x49, 0x76, 0x74, 0x3f,
0x42, 0x50, 0xb2, 0xd0, 0x74, 0xd2, 0xd7, 0x42, 0x70, 0x74, 0x5b, 0xf5, 0xd1, 0x97, 0x4b, 0x79,
0x1f, 0x7d, 0xd7, 0x85, 0xa5, 0x20, 0x3c, 0x8a, 0xa6, 0xe1, 0x90, 0x84, 0x64, 0xd9, 0x53, 0x4d,
0x3c, 0xec, 0x98, 0x3c, 0xa9, 0x60, 0xc2, 0xa5, 0x74, 0xe4, 0x00, 0x97, 0xa1, 0x6b, 0x95, 0x92,
0xc2, 0xd3, 0x76, 0xec, 0x1d, 0x58, 0x37, 0x60, 0x72, 0x07, 0xdf, 0x84, 0x85, 0x18, 0x01, 0xd2,
0x51, 0x52, 0xec, 0x45, 0x9a, 0x52, 0xf4, 0xb8, 0x6b, 0xd0, 0xb9, 0xcf, 0xb3, 0x0f, 0xc2, 0xe3,
0x48, 0x8d, 0xf4, 0xa3, 0x3a, 0xac, 0x6a, 0x90, 0x1c, 0xe8, 0x1a, 0xac, 0x06, 0x43, 0x1e, 0x66,
0x41, 0x36, 0xeb, 0x5b, 0x1e, 0x5c, 0x11, 0x8c, 0x16, 0xc6, 0x1f, 0x07, 0x7e, 0x2a, 0x75, 0x98,
0x68, 0xb0, 0x3d, 0xd8, 0x44, 0xf6, 0x57, 0x1c, 0xad, 0x8f, 0x55, 0x38, 0x92, 0x95, 0x7d, 0x28,
0xb1, 0x08, 0x97, 0x1c, 0xa8, 0x3f, 0x11, 0x9a, 0xb6, 0xaa, 0x0b, 0x77, 0x4d, 0x8c, 0x84, 0x4b,
0x5e, 0x10, 0x22, 0xa2, 0x01, 0xa5, 0x4b, 0xec, 0xa2, 0x70, 0x62, 0x8b, 0x97, 0x58, 0xe3, 0x22,
0xbc, 0x5c, 0xba, 0x08, 0x5f, 0x83, 0xd5, 0x74, 0x16, 0x0e, 0xf8, 0xb0, 0x9f, 0x45, 0x38, 0x6f,
0x10, 0xd2, 0xe9, 0x2c, 0x7b, 0x45, 0x30, 0x5d, 0xd9, 0x79, 0x9a, 0x85, 0x3c, 0x23, 0xd5, 0xb5,
0xec, 0xa9, 0x26, 0x5a, 0x01, 0x42, 0x11, 0x4c, 0xdd, 0xf4, 0x64, 0x0b, 0x4d, 0xe5, 0x34, 0x09,
0xd2, 0x6e, 0x9b, 0xa0, 0xf4, 0x9b, 0x7d, 0x06, 0xce, 0x1f, 0xe1, 0xbd, 0xf0, 0x84, 0xfb, 0x43,
0x9e, 0xd0, 0xe9, 0x8b, 0xfb, 0xb5, 0xd0, 0x40, 0xd5, 0x9d, 0x38, 0xf7, 0x29, 0x4f, 0xd2, 0x20,
0x0a, 0x49, 0xf7, 0x34, 0x3d, 0xd5, 0x74, 0xbf, 0x4d, 0x16, 0x5d, 0xdf, 0xfc, 0x1f, 0x93, 0x3a,
0x62, 0xaf, 0x41, 0x53, 0xac, 0x31, 0x3d, 0xf1, 0xa5, 0x93, 0xb1, 0x4c, 0x80, 0xc3, 0x13, 0x1f,
0x05, 0xd8, 0xda, 0x36, 0x11, 0x4a, 0x69, 0x11, 0x6c, 0x5f, 0xec, 0xda, 0x15, 0xe8, 0xa8, 0x98,
0x42, 0xda, 0x1f, 0xf3, 0xe3, 0x4c, 0x5d, 0x10, 0xc2, 0xe9, 0x04, 0xa7, 0x4b, 0x1f, 0xf0, 0xe3,
0xcc, 0x7d, 0x08, 0xeb, 0x52, 0x6e, 0xbf, 0x1c, 0x73, 0x35, 0xf5, 0xe7, 0x8a, 0x46, 0x4d, 0x78,
0x15, 0x1b, 0xb6, 0xa0, 0xd3, 0x2d, 0xa7, 0x60, 0xe9, 0x5c, 0x0f, 0x98, 0xec, 0xbe, 0x3d, 0x8e,
0x52, 0x2e, 0x07, 0x74, 0xa1, 0x3d, 0x18, 0x47, 0xa9, 0xba, 0x86, 0xc8, 0xe5, 0x58, 0x30, 0xdc,
0x9f, 0x74, 0x3a, 0x18, 0xa0, 0x26, 0x10, 0x3a, 0x4d, 0x35, 0xdd, 0x1f, 0x38, 0xb0, 0x41, 0xa3,
0x29, 0x0d, 0xa3, 0x7d, 0xd7, 0x57, 0x27, 0xb3, 0x3d, 0x30, 0xaf, 0x66, 0x9b, 0xb0, 0x70, 0x1c,
0x25, 0x03, 0x2e, 0x67, 0x12, 0x8d, 0x9f, 0xdc, 0x1b, 0x6f, 0x94, 0xbc, 0xf1, 0x1f, 0x39, 0xb0,
0x4e, 0xa4, 0x1e, 0x66, 0x7e, 0x36, 0x4d, 0xe5, 0xf2, 0x7f, 0x19, 0x56, 0x70, 0xa9, 0x5c, 0x89,
0x93, 0x24, 0x74, 0x53, 0x4b, 0x3e, 0x41, 0x05, 0xf2, 0xfe, 0x39, 0xcf, 0x46, 0x66, 0x5f, 0x80,
0xb6, 0x19, 0x18, 0x22, 0x9a, 0x5b, 0x7b, 0x17, 0xd4, 0x2a, 0x4b, 0x9c, 0xb3, 0x7f, 0xce, 0xb3,
0x3e, 0x60, 0xef, 0x03, 0x90, 0xbb, 0x41, 0xc3, 0xca, 0xab, 0xf5, 0x05, 0x7b, 0x93, 0x8c, 0xc3,
0xda, 0x3f, 0xe7, 0x19, 0xe8, 0xb7, 0x96, 0x61, 0x51, 0xd8, 0x47, 0xf7, 0x3e, 0xac, 0x58, 0x94,
0x5a, 0xb7, 0x8c, 0xb6, 0xb8, 0x65, 0x94, 0x2e, 0xa5, 0xb5, 0xf2, 0xa5, 0xd4, 0xfd, 0xb7, 0x1a,
0x30, 0xe4, 0xb6, 0xc2, 0x71, 0xa2, 0x81, 0x8e, 0x86, 0x96, 0xbb, 0xd5, 0xf6, 0x4c, 0x10, 0xbb,
0x0e, 0xcc, 0x68, 0xaa, 0x7b, 0xbb, 0xb0, 0x1b, 0x15, 0x3d, 0xa8, 0xe0, 0x84, 0xaf, 0xa4, 0xee,
0xc0, 0xd2, 0xb1, 0x14, 0xe7, 0x56, 0xd9, 0x87, 0xa6, 0x21, 0x9e, 0xa6, 0x27, 0xe8, 0x40, 0x28,
0x87, 0x4c, 0xb5, 0x8b, 0x0c, 0xb2, 0xf8, 0x52, 0x06, 0x59, 0x2a, 0x32, 0x88, 0xe9, 0x12, 0x2c,
0x5b, 0x2e, 0x01, 0xfa, 0x5f, 0x93, 0x20, 0x24, 0xbf, 0xa2, 0x3f, 0xc1, 0xd9, 0xa5, 0xff, 0x65,
0x01, 0xd9, 0x0e, 0xac, 0x49, 0xbf, 0x2e, 0xf7, 0x3b, 0x80, 0xf6, 0xb8, 0x04, 0x77, 0x3f, 0x76,
0x60, 0x0d, 0xf7, 0xd9, 0xe2, 0xc5, 0xf7, 0x80, 0x44, 0xe1, 0x15, 0x59, 0xd1, 0xc2, 0xfd, 0xd9,
0x39, 0xf1, 0x5d, 0x68, 0xd2, 0x80, 0x51, 0xcc, 0x43, 0xc9, 0x88, 0x5d, 0x9b, 0x11, 0x73, 0x2d,
0xb4, 0x7f, 0xce, 0xcb, 0x91, 0x0d, 0x36, 0xfc, 0x27, 0x07, 0x5a, 0x92, 0xcc, 0x9f, 0xfa, 0x2e,
0xd1, 0x83, 0x65, 0xe4, 0x48, 0xc3, 0x61, 0xd7, 0x6d, 0xb4, 0x26, 0x13, 0xbc, 0xb0, 0xa1, 0xf9,
0xb4, 0xee, 0x11, 0x45, 0x30, 0xda, 0x42, 0x52, 0xb8, 0x69, 0x3f, 0x0b, 0xc6, 0x7d, 0xd5, 0x2b,
0xe3, 0xb0, 0x55, 0x5d, 0xa8, 0x77, 0xd2, 0xcc, 0x1f, 0x71, 0x69, 0xe6, 0x44, 0x03, 0x2f, 0x4c,
0x72, 0x41, 0x05, 0x77, 0xd0, 0xfd, 0xbb, 0x36, 0x6c, 0x97, 0xba, 0x74, 0x22, 0x43, 0x3a, 0xc8,
0xe3, 0x60, 0x72, 0x14, 0x69, 0x5f, 0xdb, 0x31, 0x7d, 0x67, 0xab, 0x8b, 0x8d, 0xe0, 0xbc, 0xb2,
0xe7, 0xb8, 0xa7, 0xb9, 0xf5, 0xae, 0x91, 0x23, 0xf2, 0xb6, 0xcd, 0x03, 0xc5, 0x09, 0x15, 0xdc,
0x94, 0xdc, 0xea, 0xf1, 0xd8, 0x09, 0x74, 0xb5, 0xe3, 0x20, 0x55, 0xbc, 0xe1, 0x5c, 0xe0, 0x5c,
0x6f, 0xbd, 0x64, 0x2e, 0xd2, 0x47, 0x43, 0x35, 0xcd, 0xdc, 0xd1, 0xd8, 0x0c, 0x2e, 0xa9, 0x3e,
0xd2, 0xe1, 0xe5, 0xf9, 0x1a, 0xaf, 0xb4, 0xb6, 0x7b, 0xf8, 0xb1, 0x3d, 0xe9, 0x4b, 0x06, 0x66,
0xdf, 0x84, 0xad, 0x33, 0x3f, 0xc8, 0x14, 0x59, 0x86, 0x33, 0xb4, 0x40, 0x53, 0xee, 0xbd, 0x64,
0xca, 0x27, 0xe2, 0x63, 0xcb, 0xb0, 0xcd, 0x19, 0xb1, 0xf7, 0x0f, 0x0e, 0x74, 0xec, 0x71, 0x90,
0x4d, 0xa5, 0xc0, 0x2b, 0xc5, 0xa7, 0x9c, 0xbf, 0x02, 0xb8, 0x7c, 0x45, 0xad, 0x55, 0x5d, 0x51,
0xcd, 0x8b, 0x68, 0xfd, 0x65, 0x17, 0xd1, 0xc6, 0xab, 0x5d, 0x44, 0x17, 0xaa, 0x2e, 0xa2, 0xbd,
0xff, 0x76, 0x80, 0x95, 0x79, 0x89, 0xdd, 0x17, 0x77, 0xe4, 0x90, 0x8f, 0xa5, 0x4e, 0xfa, 0xc5,
0x57, 0xe3, 0x47, 0xb5, 0x77, 0xea, 0x6b, 0x14, 0x0c, 0x53, 0xe9, 0x98, 0x2e, 0xd2, 0x8a, 0x57,
0xd5, 0x55, 0xb8, 0x1a, 0x37, 0x5e, 0x7e, 0x35, 0x5e, 0x78, 0xf9, 0xd5, 0x78, 0xb1, 0x78, 0x35,
0xee, 0xfd, 0xbe, 0x03, 0x1b, 0x15, 0x87, 0xfe, 0xf3, 0x5b, 0x38, 0x1e, 0x93, 0xa5, 0x0b, 0x6a,
0xf2, 0x98, 0x4c, 0x60, 0xef, 0xb7, 0x60, 0xc5, 0x62, 0xf4, 0x9f, 0xdf, 0xfc, 0x45, 0x2f, 0x4f,
0xf0, 0x99, 0x05, 0xeb, 0xfd, 0xb8, 0x06, 0xac, 0x2c, 0x6c, 0xff, 0xaf, 0x34, 0x94, 0xf7, 0xa9,
0x5e, 0xb1, 0x4f, 0xff, 0xa7, 0x76, 0xe0, 0x2d, 0x58, 0x97, 0x59, 0x4f, 0x23, 0x4a, 0x22, 0x38,
0xa6, 0xdc, 0x81, 0x7e, 0xae, 0x1d, 0x97, 0x58, 0xb6, 0xb2, 0x65, 0x86, 0x31, 0x2c, 0x84, 0x27,
0xdc, 0x2d, 0xd8, 0x14, 0x59, 0xd4, 0x5b, 0x62, 0x28, 0x65, 0x57, 0xfe, 0xcc, 0x81, 0xf3, 0x85,
0x8e, 0x3c, 0xb7, 0x23, 0x4c, 0x87, 0x6d, 0x4f, 0x6c, 0x20, 0xd2, 0x2f, 0xe5, 0xc8, 0xa0, 0x5f,
0x70, 0x5b, 0xb9, 0x03, 0xf7, 0x67, 0x1a, 0x96, 0xf1, 0xc5, 0xae, 0x57, 0x75, 0xb9, 0xdb, 0x22,
0xd7, 0x1b, 0xf2, 0x71, 0x81, 0xf0, 0x63, 0x91, 0x9d, 0x35, 0x3b, 0xf2, 0xe0, 0xb0, 0x4d, 0xb2,
0x6a, 0xa2, 0x17, 0x68, 0x99, 0x29, 0x9b, 0xde, 0xca, 0x3e, 0xf7, 0x6f, 0x1c, 0x60, 0x5f, 0x99,
0xf2, 0x64, 0x46, 0x39, 0x1e, 0x1d, 0x9e, 0xd9, 0x2e, 0xc6, 0x31, 0x16, 0xe3, 0xe9, 0xd1, 0x97,
0xf8, 0x4c, 0x65, 0x02, 0x6b, 0x79, 0x26, 0xf0, 0x75, 0x00, 0xbc, 0x7e, 0xe9, 0xc4, 0x11, 0xf2,
0x02, 0xde, 0x7b, 0xc5, 0x80, 0x95, 0xc9, 0xba, 0xc6, 0xcb, 0x93, 0x75, 0x0b, 0x2f, 0x4b, 0xd6,
0xbd, 0x0f, 0x1b, 0x16, 0xdd, 0xfa, 0x58, 0x55, 0x0a, 0xcb, 0x79, 0x41, 0x0a, 0xeb, 0x3f, 0x1d,
0xa8, 0xef, 0x47, 0xb1, 0x19, 0xae, 0x74, 0xec, 0x70, 0xa5, 0xb4, 0x25, 0x7d, 0x6d, 0x2a, 0xa4,
0x8a, 0xb1, 0x80, 0x6c, 0x07, 0x3a, 0xfe, 0x24, 0xc3, 0x6b, 0xf7, 0x71, 0x94, 0x9c, 0xf9, 0xc9,
0x50, 0x9c, 0xf5, 0xad, 0x5a, 0xd7, 0xf1, 0x0a, 0x3d, 0x6c, 0x13, 0xea, 0x5a, 0xe9, 0x12, 0x02,
0x36, 0xd1, 0x71, 0xa3, 0xa8, 0xed, 0x4c, 0x46, 0x0c, 0x64, 0x0b, 0x59, 0xc9, 0xfe, 0x5e, 0xb8,
0xca, 0x42, 0x74, 0xaa, 0xba, 0xd0, 0xae, 0xe1, 0xf6, 0x11, 0x9a, 0x0c, 0xf5, 0xa8, 0xb6, 0xfb,
0xef, 0x0e, 0x2c, 0xd0, 0x0e, 0xa0, 0xb0, 0x0b, 0x0e, 0xa7, 0xdc, 0x38, 0x85, 0x98, 0x1d, 0x21,
0xec, 0x05, 0x30, 0x73, 0xad, 0x8c, 0x79, 0x4d, 0x93, 0x6d, 0x66, 0xcd, 0x2f, 0x43, 0x53, 0xb4,
0x74, 0x76, 0x98, 0x50, 0x72, 0x20, 0xbb, 0x04, 0x8d, 0x93, 0x28, 0x56, 0xde, 0x09, 0xa8, 0x08,
0x63, 0x14, 0x7b, 0x04, 0xcf, 0xe9, 0xc1, 0xf1, 0x04, 0xf1, 0xc2, 0xe6, 0x14, 0xc1, 0x68, 0x75,
0xf5, 0xb0, 0xe6, 0x66, 0x14, 0xa0, 0xee, 0x0e, 0xac, 0x3e, 0x8c, 0x86, 0xdc, 0x88, 0x29, 0xcd,
0xe5, 0x66, 0xf7, 0xb7, 0x1d, 0x58, 0x56, 0xc8, 0xec, 0x1a, 0x34, 0xd0, 0x95, 0x28, 0x5c, 0x14,
0x74, 0x66, 0x01, 0xf1, 0x3c, 0xc2, 0x40, 0xdd, 0x4b, 0x11, 0x87, 0xdc, 0xad, 0x54, 0xf1, 0x86,
0xdc, 0x6b, 0xd2, 0xe4, 0x16, 0x9c, 0x8d, 0x02, 0xd4, 0xfd, 0x4b, 0x07, 0x56, 0xac, 0x39, 0xf0,
0x7a, 0x38, 0xf6, 0xd3, 0x4c, 0x46, 0x6b, 0xe5, 0xf1, 0x98, 0x20, 0x33, 0xca, 0x58, 0xb3, 0xa3,
0x8c, 0x3a, 0xfe, 0x55, 0x37, 0xe3, 0x5f, 0x37, 0xa0, 0x99, 0xd7, 0x35, 0x34, 0x2c, 0x9d, 0x8a,
0x33, 0xaa, 0x9c, 0x49, 0x8e, 0x84, 0xe3, 0x0c, 0xa2, 0x71, 0x94, 0xc8, 0x6c, 0xbd, 0x68, 0xb8,
0xef, 0x43, 0xcb, 0xc0, 0x47, 0x32, 0x42, 0x9e, 0x9d, 0x45, 0xc9, 0x53, 0x15, 0xec, 0x94, 0x4d,
0x9d, 0x1a, 0xac, 0xe5, 0xa9, 0x41, 0xf7, 0xaf, 0x1c, 0x58, 0x41, 0x1e, 0x0c, 0xc2, 0xd1, 0x41,
0x34, 0x0e, 0x06, 0x33, 0x3a, 0x7b, 0xc5, 0x6e, 0x52, 0x33, 0x28, 0x5e, 0xb4, 0xc1, 0xc8, 0xdb,
0xea, 0x76, 0x28, 0x05, 0x51, 0xb7, 0x51, 0x52, 0x91, 0xcf, 0x8f, 0xfc, 0x54, 0x32, 0xbf, 0x34,
0x72, 0x16, 0x10, 0xe5, 0x09, 0x01, 0x89, 0x9f, 0xf1, 0xfe, 0x24, 0x18, 0x8f, 0x03, 0x81, 0x2b,
0x5c, 0xa0, 0xaa, 0x2e, 0xf7, 0x87, 0x35, 0x68, 0x49, 0x15, 0x7c, 0x77, 0x38, 0x12, 0x69, 0x05,
0xe9, 0x48, 0x6a, 0x75, 0x61, 0x40, 0x54, 0xbf, 0xe5, 0x7a, 0x1a, 0x90, 0xe2, 0xb1, 0xd6, 0xcb,
0xc7, 0x7a, 0x11, 0x9a, 0xc8, 0x5e, 0x6f, 0x93, 0x8f, 0x2b, 0xca, 0x60, 0x72, 0x80, 0xea, 0xdd,
0xa3, 0xde, 0x85, 0xbc, 0x97, 0x00, 0x96, 0x57, 0xbb, 0x58, 0xf0, 0x6a, 0xdf, 0x85, 0xb6, 0x1c,
0x86, 0xf6, 0x9d, 0xb4, 0x43, 0xce, 0xe0, 0xd6, 0x99, 0x78, 0x16, 0xa6, 0xfa, 0x72, 0x4f, 0x7d,
0xb9, 0xfc, 0xb2, 0x2f, 0x15, 0x26, 0x65, 0xd9, 0xc4, 0xde, 0xdc, 0x4f, 0xfc, 0xf8, 0x44, 0x99,
0xb5, 0xa1, 0x2e, 0x1d, 0x20, 0x30, 0xdb, 0x81, 0x05, 0xfc, 0x4c, 0x69, 0xeb, 0x6a, 0xa1, 0x13,
0x28, 0xec, 0x1a, 0x2c, 0xf0, 0xe1, 0x88, 0xab, 0x5b, 0x1c, 0xb3, 0xef, 0xd3, 0x78, 0x46, 0x9e,
0x40, 0x40, 0x15, 0x80, 0xd0, 0x82, 0x0a, 0xb0, 0x35, 0xfd, 0x22, 0x36, 0x3f, 0x18, 0xba, 0x9b,
0xc0, 0x1e, 0x0a, 0xae, 0x35, 0xa3, 0xd0, 0xbf, 0x57, 0x87, 0x96, 0x01, 0x46, 0x69, 0x1e, 0x21,
0xc1, 0xfd, 0x61, 0xe0, 0x4f, 0x78, 0xc6, 0x13, 0xc9, 0xa9, 0x05, 0x28, 0xe2, 0xf9, 0xa7, 0xa3,
0x7e, 0x34, 0xcd, 0xfa, 0x43, 0x3e, 0x4a, 0xb8, 0x30, 0xbe, 0x68, 0x0c, 0x2c, 0x28, 0xe2, 0x4d,
0xfc, 0x67, 0x26, 0x9e, 0xe0, 0x87, 0x02, 0x54, 0xc5, 0x94, 0xc5, 0x1e, 0x35, 0xf2, 0x98, 0xb2,
0xd8, 0x91, 0xa2, 0x1e, 0x5a, 0xa8, 0xd0, 0x43, 0xef, 0xc0, 0x96, 0xd0, 0x38, 0x52, 0x36, 0xfb,
0x05, 0x36, 0x99, 0xd3, 0xcb, 0x76, 0x60, 0x0d, 0x69, 0x56, 0x0c, 0x9e, 0x06, 0xdf, 0x16, 0x51,
0x1e, 0xc7, 0x2b, 0xc1, 0x11, 0x17, 0xc5, 0xd1, 0xc2, 0x15, 0x79, 0xb7, 0x12, 0x9c, 0x70, 0xfd,
0x67, 0x36, 0x6e, 0x53, 0xe2, 0x16, 0xe0, 0xee, 0x0a, 0xb4, 0x0e, 0xb3, 0x28, 0x56, 0x87, 0xd2,
0x81, 0xb6, 0x68, 0xca, 0x2c, 0xeb, 0x6b, 0x70, 0x81, 0xb8, 0xe8, 0x51, 0x14, 0x47, 0xe3, 0x68,
0x34, 0x3b, 0x9c, 0x1e, 0xa5, 0x83, 0x24, 0x88, 0xf1, 0xc6, 0xe3, 0xfe, 0xa3, 0x03, 0x1b, 0x56,
0xaf, 0x0c, 0x0b, 0x7d, 0x46, 0xb0, 0xb4, 0x4e, 0x8f, 0x09, 0xc6, 0x5b, 0x37, 0xd4, 0xa1, 0x40,
0x14, 0x01, 0xb9, 0xc7, 0x32, 0x63, 0x76, 0x13, 0x56, 0x15, 0x65, 0xea, 0x43, 0xc1, 0x85, 0xdd,
0x32, 0x17, 0xca, 0xef, 0x3b, 0xf2, 0x03, 0x35, 0xc4, 0xaf, 0x08, 0x87, 0x9d, 0x0f, 0x69, 0x8d,
0x2a, 0x3e, 0xd0, 0x53, 0xdf, 0x9b, 0xb7, 0x04, 0x45, 0xc1, 0x40, 0x03, 0x53, 0xf7, 0x0f, 0x1d,
0x80, 0x9c, 0x3a, 0x64, 0x8c, 0x5c, 0xa5, 0x8b, 0x92, 0x4e, 0x43, 0x7d, 0xbf, 0x09, 0x6d, 0x9d,
0x19, 0xc9, 0xad, 0x44, 0x4b, 0xc1, 0xd0, 0x91, 0xbb, 0x0a, 0xab, 0xa3, 0x71, 0x74, 0x44, 0x26,
0x96, 0xd2, 0xf6, 0xa9, 0xcc, 0x35, 0x77, 0x04, 0xf8, 0x9e, 0x84, 0xe6, 0x26, 0xa5, 0x61, 0x98,
0x14, 0xf7, 0x3b, 0x35, 0x1d, 0x4f, 0xcf, 0xd7, 0x3c, 0x57, 0xca, 0xd8, 0x5e, 0x49, 0x39, 0xce,
0x09, 0x5f, 0x53, 0x24, 0xec, 0xe0, 0xa5, 0x17, 0xf5, 0xf7, 0xa1, 0x93, 0x08, 0xed, 0xa3, 0x54,
0x53, 0xe3, 0x05, 0xaa, 0x69, 0x25, 0xb1, 0xec, 0xce, 0xa7, 0x60, 0xcd, 0x1f, 0x9e, 0xf2, 0x24,
0x0b, 0xe8, 0xaa, 0x44, 0x46, 0x5f, 0x28, 0xd4, 0x55, 0x03, 0x4e, 0xb6, 0xf8, 0x2a, 0xac, 0xca,
0xfc, 0xbe, 0xc6, 0x94, 0x35, 0x69, 0x39, 0x18, 0x11, 0xdd, 0xbf, 0x50, 0xa1, 0x7b, 0xfb, 0x0c,
0xe7, 0xef, 0x88, 0xb9, 0xba, 0x5a, 0x61, 0x75, 0x9f, 0x90, 0x61, 0xf4, 0xa1, 0xba, 0x8f, 0xc9,
0x84, 0x86, 0x00, 0xca, 0xb4, 0x87, 0xbd, 0xa5, 0x8d, 0x57, 0xd9, 0x52, 0xf7, 0x63, 0x07, 0x96,
0xf6, 0xa3, 0x78, 0x5f, 0xa6, 0xea, 0x49, 0x10, 0x74, 0xf5, 0x8c, 0x6a, 0x9a, 0x5e, 0x71, 0xad,
0xe4, 0x15, 0x97, 0x6d, 0xed, 0x4a, 0xd1, 0xd6, 0xfe, 0x2a, 0xbc, 0x46, 0xd1, 0x80, 0x24, 0x8a,
0xa3, 0x04, 0x85, 0xd1, 0x1f, 0x0b, 0xc3, 0x1a, 0x85, 0xd9, 0x89, 0x52, 0x63, 0x2f, 0x42, 0xa1,
0x6b, 0x17, 0x5e, 0x17, 0x84, 0x33, 0x2c, 0x7d, 0x03, 0xa1, 0xdd, 0xca, 0x1d, 0xee, 0xe7, 0xa0,
0x49, 0xce, 0x2d, 0x2d, 0xeb, 0x2d, 0x68, 0x9e, 0x44, 0x71, 0xff, 0x24, 0x08, 0x33, 0x25, 0xdc,
0x9d, 0xdc, 0xeb, 0xdc, 0xa7, 0x0d, 0xd1, 0x08, 0xee, 0x8f, 0xeb, 0xb0, 0xf4, 0x41, 0x78, 0x1a,
0x05, 0x03, 0x8a, 0xf2, 0x4f, 0xf8, 0x24, 0x52, 0xb5, 0x44, 0xf8, 0x1b, 0xb7, 0x82, 0xf2, 0xea,
0x71, 0x26, 0xc3, 0xf4, 0xaa, 0x89, 0xe6, 0x3e, 0xc9, 0xeb, 0xfd, 0x84, 0xe8, 0x18, 0x10, 0x74,
0xec, 0x13, 0xb3, 0x34, 0x52, 0xb6, 0xf2, 0x62, 0xac, 0x05, 0xa3, 0x18, 0x8b, 0x72, 0x42, 0xa2,
0x64, 0x80, 0xf8, 0x6b, 0xd9, 0x53, 0x4d, 0xba, 0x88, 0x24, 0x5c, 0x44, 0x71, 0xc8, 0x71, 0x58,
0x92, 0x17, 0x11, 0x13, 0x88, 0xce, 0x85, 0xf8, 0x40, 0xe0, 0x08, 0xe5, 0x6b, 0x82, 0xd0, 0xd9,
0x2a, 0x56, 0x57, 0x36, 0x05, 0xcf, 0x17, 0xc0, 0xa8, 0xa1, 0x87, 0x5c, 0x2b, 0x52, 0xb1, 0x06,
0x10, 0xf5, 0x8c, 0x45, 0xb8, 0x71, 0x7d, 0x11, 0xa5, 0x0f, 0xea, 0xfa, 0x82, 0x8c, 0xe2, 0x8f,
0xc7, 0x47, 0xfe, 0xe0, 0x29, 0x15, 0xcf, 0x52, 0xa5, 0x43, 0xd3, 0xb3, 0x81, 0x48, 0xb5, 0x71,
0x9a, 0x94, 0x55, 0x6c, 0x78, 0x26, 0x88, 0xed, 0x41, 0x8b, 0xae, 0x6c, 0xf2, 0x3c, 0x3b, 0x74,
0x9e, 0x6b, 0xe6, 0x9d, 0x8e, 0x4e, 0xd4, 0x44, 0x32, 0x33, 0x0f, 0xab, 0x76, 0x31, 0xc2, 0x57,
0x81, 0xdd, 0x1c, 0x0e, 0xe5, 0x79, 0xeb, 0x2b, 0x63, 0x7e, 0x52, 0x8e, 0x75, 0x52, 0x15, 0x3b,
0x56, 0xab, 0xdc, 0x31, 0xf7, 0x2e, 0xb4, 0x0e, 0x8c, 0xb2, 0x4b, 0x62, 0x0d, 0x55, 0x70, 0x29,
0xd9, 0xc9, 0x80, 0x18, 0x13, 0xd6, 0xcc, 0x09, 0xdd, 0x5f, 0x02, 0xf6, 0x20, 0x48, 0x33, 0x4d,
0x5f, 0x5e, 0xe7, 0xa9, 0x6e, 0xee, 0x79, 0xa9, 0x44, 0x4b, 0xc2, 0xa8, 0x84, 0xe1, 0xa6, 0xa8,
0xb1, 0x28, 0x2e, 0x6c, 0x07, 0x96, 0x03, 0x01, 0x2a, 0x4a, 0x82, 0xc2, 0xd4, 0xfd, 0xe8, 0xaf,
0x49, 0xa0, 0x65, 0x45, 0x7f, 0xe8, 0xc0, 0x92, 0x5c, 0x1a, 0x7a, 0x1b, 0xa5, 0x82, 0xd3, 0xa6,
0x67, 0xc1, 0xaa, 0x4b, 0x0d, 0xcb, 0x3c, 0x5c, 0xaf, 0xe2, 0x61, 0x06, 0x8d, 0xd8, 0xcf, 0x4e,
0xe8, 0x82, 0xd2, 0xf4, 0xe8, 0x37, 0x5b, 0x13, 0x97, 0x66, 0x21, 0x2b, 0x74, 0x61, 0xae, 0xaa,
0xb6, 0x15, 0x2a, 0xb9, 0x04, 0xc7, 0x45, 0x51, 0x55, 0x82, 0x80, 0xeb, 0x64, 0x83, 0xac, 0xf8,
0xc8, 0xc1, 0xf9, 0x7e, 0xc9, 0x21, 0x8a, 0xfb, 0x25, 0x51, 0x3d, 0xdd, 0xef, 0xf6, 0xa0, 0x7b,
0x87, 0x8f, 0x79, 0xc6, 0x6f, 0x8e, 0xc7, 0xc5, 0xf1, 0x5f, 0x83, 0x0b, 0x15, 0x7d, 0xd2, 0x69,
0xb9, 0x07, 0xeb, 0x77, 0xf8, 0xd1, 0x74, 0xf4, 0x80, 0x9f, 0xe6, 0x19, 0x41, 0x06, 0x8d, 0xf4,
0x24, 0x3a, 0x93, 0x67, 0x4b, 0xbf, 0xd9, 0xeb, 0x00, 0x63, 0xc4, 0xe9, 0xa7, 0x31, 0x1f, 0xa8,
0x22, 0x3b, 0x82, 0x1c, 0xc6, 0x7c, 0xe0, 0xbe, 0x03, 0xcc, 0x1c, 0x47, 0x2e, 0x01, 0xf5, 0xc0,
0xf4, 0xa8, 0x9f, 0xce, 0xd2, 0x8c, 0x4f, 0x54, 0xf5, 0xa0, 0x09, 0x72, 0xaf, 0x42, 0xfb, 0xc0,
0x9f, 0x79, 0xfc, 0x5b, 0xb2, 0xe6, 0x17, 0xef, 0xc6, 0xfe, 0x0c, 0x59, 0x59, 0xdf, 0x8d, 0xa9,
0xdb, 0xfd, 0xaf, 0x1a, 0x2c, 0x0a, 0x4c, 0x1c, 0x75, 0xc8, 0xd3, 0x2c, 0x08, 0x45, 0x36, 0x4c,
0x8e, 0x6a, 0x80, 0x4a, 0xbc, 0x51, 0xab, 0xe0, 0x0d, 0xe9, 0xad, 0xaa, 0x82, 0x25, 0xc9, 0x04,
0x16, 0x0c, 0xdd, 0x9a, 0xbc, 0xca, 0x40, 0x5c, 0xce, 0x72, 0x40, 0x21, 0x58, 0x92, 0x6b, 0x1b,
0x41, 0x9f, 0x62, 0x5a, 0xc9, 0x0e, 0x26, 0xa8, 0x52, 0xa7, 0x2d, 0x09, 0xae, 0x29, 0xe9, 0xb4,
0x92, 0xee, 0x5a, 0x7e, 0x05, 0xdd, 0x25, 0x5c, 0xd8, 0x17, 0xe9, 0x2e, 0x78, 0x05, 0xdd, 0xe5,
0x32, 0x58, 0xbb, 0xc7, 0xb9, 0xc7, 0xd1, 0x2a, 0x2a, 0x76, 0xfa, 0x9e, 0x03, 0x6b, 0xd2, 0xa0,
0xeb, 0x3e, 0xf6, 0xa6, 0x65, 0xfd, 0x9d, 0xaa, 0x44, 0xc7, 0x15, 0x58, 0x21, 0x9b, 0xac, 0xa3,
0x42, 0x32, 0x84, 0x65, 0x01, 0x71, 0x1d, 0x2a, 0x74, 0x3f, 0x09, 0xc6, 0xf2, 0x50, 0x4c, 0x90,
0x0a, 0x2c, 0xe1, 0xfd, 0x98, 0x8e, 0xc4, 0xf1, 0x74, 0xdb, 0xfd, 0x5b, 0x07, 0xd6, 0x0d, 0x82,
0x25, 0x17, 0xbe, 0x0f, 0xaa, 0x0a, 0x41, 0x04, 0x8f, 0x84, 0x30, 0x6d, 0xdb, 0xce, 0x49, 0xfe,
0x99, 0x85, 0x4c, 0x87, 0xe9, 0xcf, 0x88, 0xc0, 0x74, 0x3a, 0x91, 0x1e, 0x88, 0x09, 0x42, 0x46,
0x3a, 0xe3, 0xfc, 0xa9, 0x46, 0xa9, 0x13, 0x8a, 0x05, 0xa3, 0x24, 0x33, 0xfa, 0x12, 0x1a, 0x49,
0xd4, 0x55, 0xd9, 0x40, 0xf7, 0x9f, 0x1d, 0xd8, 0x10, 0x4e, 0xa1, 0x74, 0xb9, 0x75, 0xcd, 0xe7,
0xa2, 0xf0, 0x82, 0x85, 0x44, 0xee, 0x9f, 0xf3, 0x64, 0x9b, 0x7d, 0xf6, 0x15, 0x1d, 0x59, 0x5d,
0x5c, 0x30, 0xe7, 0x2c, 0xea, 0x55, 0x67, 0xf1, 0x82, 0x9d, 0xae, 0x0a, 0x96, 0x2c, 0x54, 0x06,
0x4b, 0x6e, 0x2d, 0xc1, 0x42, 0x3a, 0x88, 0x62, 0xee, 0x6e, 0xc1, 0xa6, 0xbd, 0x38, 0xa9, 0x82,
0xbe, 0xef, 0x40, 0xf7, 0x9e, 0x08, 0x1d, 0x06, 0xe1, 0x68, 0x3f, 0x48, 0xb3, 0x28, 0xd1, 0x45,
0xee, 0x97, 0x00, 0xd2, 0xcc, 0x4f, 0x32, 0x51, 0xfc, 0x25, 0xc3, 0x1c, 0x39, 0x04, 0x69, 0xe4,
0xe1, 0x50, 0xf4, 0x8a, 0xb3, 0xd1, 0x6d, 0x3c, 0x18, 0x2a, 0x7c, 0xe8, 0x47, 0xc7, 0xc7, 0x29,
0xd7, 0x6e, 0xab, 0x09, 0xc3, 0x9b, 0x2f, 0x4a, 0x3c, 0xde, 0xf5, 0xf8, 0x29, 0xa9, 0x5a, 0xe1,
0x0f, 0x16, 0xa0, 0xee, 0x5f, 0x3b, 0xb0, 0x9a, 0x13, 0x79, 0x17, 0x81, 0xb6, 0x76, 0x10, 0xa4,
0x19, 0xda, 0x41, 0x05, 0x60, 0x82, 0x61, 0x3f, 0x08, 0x25, 0x6d, 0x06, 0x84, 0x24, 0x56, 0xb6,
0xa2, 0xa9, 0x2a, 0xb4, 0x33, 0x41, 0x22, 0x8b, 0x9e, 0xe1, 0xd7, 0xa2, 0xca, 0x4e, 0xb6, 0xa8,
0x76, 0x6f, 0x92, 0xd1, 0x57, 0x8b, 0xc2, 0x21, 0x96, 0x4d, 0x65, 0x9f, 0x96, 0x08, 0x8a, 0x3f,
0xdd, 0x3f, 0x72, 0xe0, 0x42, 0xc5, 0xe6, 0x4a, 0xc9, 0xb8, 0x03, 0xeb, 0xc7, 0xba, 0x53, 0x6d,
0x80, 0x10, 0x8f, 0x2d, 0x15, 0xeb, 0xb6, 0x17, 0xed, 0x95, 0x3f, 0x40, 0xf7, 0x98, 0xe2, 0x46,
0x62, 0x4b, 0xad, 0x02, 0x94, 0x72, 0xc7, 0xde, 0x1f, 0xd7, 0xa1, 0x23, 0x72, 0x20, 0xe2, 0xb9,
0x19, 0x4f, 0xd8, 0x87, 0xb0, 0x24, 0x9f, 0x0b, 0xb2, 0xf3, 0x72, 0x5a, 0xfb, 0x81, 0x62, 0x6f,
0xab, 0x08, 0x96, 0xbc, 0xb3, 0xf1, 0xbb, 0x1f, 0xff, 0xeb, 0x9f, 0xd4, 0x56, 0x58, 0x6b, 0xf7,
0xf4, 0xed, 0xdd, 0x11, 0x0f, 0x53, 0x1c, 0xe3, 0x37, 0x00, 0xf2, 0x87, 0x74, 0xac, 0xab, 0x9d,
0x8c, 0xc2, 0x0b, 0xc1, 0xde, 0x85, 0x8a, 0x1e, 0x39, 0xee, 0x05, 0x1a, 0x77, 0xc3, 0xed, 0xe0,
0xb8, 0x41, 0x18, 0x64, 0xe2, 0x55, 0xdd, 0x7b, 0xce, 0x0e, 0x1b, 0x42, 0xdb, 0x7c, 0x27, 0xc7,
0xd4, 0x95, 0xb9, 0xe2, 0x95, 0x5e, 0xef, 0xb5, 0xca, 0x3e, 0x15, 0x2f, 0xa0, 0x39, 0xce, 0xbb,
0x6b, 0x38, 0xc7, 0x94, 0x30, 0xf2, 0x59, 0xc6, 0xd0, 0xb1, 0x9f, 0xc3, 0xb1, 0x8b, 0x86, 0x58,
0x97, 0x1e, 0xe3, 0xf5, 0x5e, 0x9f, 0xd3, 0x2b, 0xe7, 0x7a, 0x9d, 0xe6, 0xda, 0x76, 0x19, 0xce,
0x35, 0x20, 0x1c, 0xf5, 0x18, 0xef, 0x3d, 0x67, 0x67, 0xef, 0xbb, 0xaf, 0x43, 0x53, 0x07, 0xb9,
0xd8, 0x37, 0x61, 0xc5, 0x4a, 0x52, 0x31, 0xb5, 0x8c, 0xaa, 0x9c, 0x56, 0xef, 0x62, 0x75, 0xa7,
0x9c, 0xf8, 0x12, 0x4d, 0xdc, 0x65, 0x5b, 0x38, 0xb1, 0xcc, 0xf2, 0xec, 0x52, 0x6a, 0x4e, 0x54,
0x06, 0x3e, 0x15, 0xeb, 0xcc, 0x13, 0x4b, 0xd6, 0x3a, 0x4b, 0x89, 0x28, 0x6b, 0x9d, 0xe5, 0x6c,
0x94, 0x7b, 0x91, 0xa6, 0xdb, 0x62, 0x9b, 0xe6, 0x74, 0x3a, 0xf8, 0xc4, 0xa9, 0x96, 0xd3, 0x7c,
0x2d, 0xc7, 0x5e, 0xd7, 0x8c, 0x55, 0xf5, 0x8a, 0x4e, 0xb3, 0x48, 0xf9, 0x29, 0x9d, 0xdb, 0xa5,
0xa9, 0x18, 0xa3, 0xe3, 0x33, 0x1f, 0xcb, 0xb1, 0xaf, 0x43, 0x53, 0x3f, 0x0d, 0x61, 0xdb, 0xc6,
0x7b, 0x1c, 0xf3, 0xbd, 0x4a, 0xaf, 0x5b, 0xee, 0xa8, 0x62, 0x0c, 0x73, 0x64, 0x64, 0x8c, 0x07,
0x70, 0x5e, 0xba, 0xc4, 0x47, 0xfc, 0x27, 0x59, 0x49, 0xc5, 0x1b, 0xbf, 0x1b, 0x0e, 0x7b, 0x1f,
0x96, 0xd5, 0x8b, 0x1b, 0xb6, 0x55, 0xfd, 0x72, 0xa8, 0xb7, 0x5d, 0x82, 0x4b, 0xed, 0x71, 0x13,
0x20, 0x7f, 0x2d, 0xa2, 0xe5, 0xac, 0xf4, 0x86, 0x45, 0x6f, 0x62, 0xc5, 0xd3, 0x92, 0x11, 0xbd,
0x8d, 0xb1, 0x1f, 0xa3, 0xb0, 0x37, 0x72, 0xfc, 0xca, 0x67, 0x2a, 0x2f, 0x18, 0xd0, 0xdd, 0xa2,
0xbd, 0x5b, 0x63, 0x24, 0xb8, 0x21, 0x3f, 0x53, 0x55, 0xcd, 0x77, 0xa0, 0x65, 0xbc, 0x40, 0x61,
0x6a, 0x84, 0xf2, 0xeb, 0x95, 0x5e, 0xaf, 0xaa, 0x4b, 0x92, 0xfb, 0x45, 0x58, 0xb1, 0x9e, 0x92,
0x68, 0xc9, 0xa8, 0x7a, 0xa8, 0xa2, 0x25, 0xa3, 0xfa, 0xf5, 0xc9, 0xd7, 0xa0, 0x65, 0x3c, 0xfc,
0x60, 0x46, 0x35, 0x57, 0xe1, 0xc9, 0x87, 0xa6, 0xa8, 0xea, 0x9d, 0xc8, 0x26, 0xad, 0xb7, 0xe3,
0x36, 0x71, 0xbd, 0x54, 0xda, 0x8b, 0x4c, 0xf2, 0x4d, 0xe8, 0xd8, 0x4f, 0x41, 0xb4, 0x54, 0x55,
0x3e, 0x2a, 0xd1, 0x52, 0x35, 0xe7, 0xfd, 0x88, 0x64, 0xc8, 0x9d, 0x0d, 0x3d, 0xc9, 0xee, 0x47,
0x32, 0xc5, 0xf3, 0x9c, 0x7d, 0x05, 0x55, 0x87, 0xac, 0xb5, 0x66, 0xf9, 0x03, 0x18, 0xbb, 0x22,
0x5b, 0x73, 0x7b, 0xa9, 0x2c, 0xdb, 0x5d, 0xa7, 0xc1, 0x5b, 0x2c, 0x5f, 0x81, 0xb0, 0x07, 0x54,
0x73, 0x6d, 0xd8, 0x03, 0xb3, 0x2c, 0xdb, 0xb0, 0x07, 0x56, 0x69, 0x76, 0xd1, 0x1e, 0x64, 0x01,
0x8e, 0x11, 0xc2, 0x6a, 0xa1, 0x9c, 0x41, 0x0b, 0x4b, 0x75, 0xfd, 0x57, 0xef, 0xd2, 0x8b, 0xab,
0x20, 0x6c, 0x35, 0xa3, 0xd4, 0xcb, 0xae, 0x2a, 0xd7, 0xfb, 0x4d, 0x68, 0x9b, 0x25, 0xfc, 0xda,
0x42, 0x54, 0x3c, 0x3c, 0xd0, 0x16, 0xa2, 0xaa, 0xe6, 0x5f, 0x1d, 0x2e, 0x6b, 0x9b, 0xd3, 0xb0,
0xaf, 0xc1, 0xaa, 0x51, 0xbf, 0x73, 0x38, 0x0b, 0x07, 0x9a, 0x79, 0xca, 0xd5, 0x9d, 0xbd, 0x2a,
0x6f, 0xd0, 0xdd, 0xa6, 0x81, 0xd7, 0x5d, 0x6b, 0x60, 0x64, 0x9c, 0xdb, 0xd0, 0x32, 0x6b, 0x83,
0x5e, 0x30, 0xee, 0xb6, 0xd1, 0x65, 0x16, 0x3a, 0xde, 0x70, 0xd8, 0x9f, 0x3a, 0xd0, 0xb6, 0x2a,
0x6d, 0xac, 0xa8, 0x72, 0x61, 0x9c, 0xae, 0xd9, 0x67, 0x0e, 0xe4, 0x7a, 0x44, 0xe4, 0x83, 0x9d,
0x2f, 0x5a, 0x9b, 0xfc, 0x91, 0x75, 0xab, 0xb8, 0x5e, 0x7c, 0x9d, 0xf9, 0xbc, 0x88, 0x60, 0x56,
0xc0, 0x3e, 0xbf, 0xe1, 0xb0, 0xf7, 0xc4, 0xfb, 0x63, 0x15, 0x45, 0x60, 0x86, 0x72, 0x2b, 0x6e,
0x99, 0xf9, 0xf8, 0xf6, 0x9a, 0x73, 0xc3, 0x61, 0xdf, 0x10, 0x8f, 0x30, 0xe5, 0xb7, 0xb4, 0xf3,
0xaf, 0xfa, 0xbd, 0x7b, 0x85, 0x56, 0x73, 0xc9, 0xbd, 0x60, 0xad, 0xa6, 0xa8, 0xdd, 0x6f, 0x0a,
0xea, 0xe4, 0xdb, 0xda, 0x5c, 0x4d, 0x95, 0xde, 0xdb, 0xce, 0x27, 0x72, 0x22, 0x88, 0x94, 0xe8,
0x16, 0x7b, 0xbc, 0xe2, 0x30, 0xee, 0x0e, 0xd1, 0x7a, 0xc5, 0x7d, 0x63, 0x2e, 0xad, 0xbb, 0x74,
0x4b, 0x44, 0x8a, 0x0f, 0x00, 0xf2, 0x20, 0x16, 0x2b, 0x44, 0x74, 0xb4, 0xa6, 0x2e, 0xc7, 0xb9,
0x6c, 0x1e, 0x54, 0x81, 0x1f, 0x1c, 0xf1, 0xeb, 0x42, 0x7c, 0x24, 0x7e, 0xaa, 0xa9, 0x2f, 0x07,
0xa3, 0x7a, 0xbd, 0xaa, 0xae, 0x2a, 0xe1, 0x51, 0xe3, 0xb3, 0xc7, 0xb0, 0xf2, 0x20, 0x8a, 0x9e,
0x4e, 0x63, 0x1d, 0x66, 0xb5, 0x63, 0x2a, 0xfb, 0x7e, 0x7a, 0xd2, 0x2b, 0xac, 0xc2, 0xbd, 0x4c,
0x43, 0xf5, 0x58, 0xd7, 0x18, 0x6a, 0xf7, 0xa3, 0x3c, 0x84, 0xf6, 0x9c, 0xf9, 0xb0, 0xae, 0xad,
0xb2, 0x26, 0xbc, 0x67, 0x0f, 0x63, 0x46, 0xb2, 0x4a, 0x53, 0x58, 0x7e, 0x92, 0xa2, 0x76, 0x37,
0x55, 0x63, 0xde, 0x70, 0xd8, 0x01, 0xb4, 0xef, 0xf0, 0x41, 0x34, 0xe4, 0x32, 0x0a, 0xb2, 0x91,
0x13, 0xae, 0xc3, 0x27, 0xbd, 0x15, 0x0b, 0x68, 0xeb, 0xa9, 0xd8, 0x9f, 0x25, 0xfc, 0x5b, 0xbb,
0x1f, 0xc9, 0xf8, 0xca, 0x73, 0xa5, 0xa7, 0x54, 0x4c, 0xc8, 0xd2, 0x53, 0x85, 0x20, 0x92, 0xa5,
0xa7, 0x4a, 0x41, 0x24, 0x6b, 0xab, 0x55, 0x4c, 0x8a, 0x8d, 0x61, 0xbd, 0x14, 0x77, 0xd2, 0xb6,
0x7d, 0x5e, 0xb4, 0xaa, 0x77, 0x79, 0x3e, 0x82, 0x3d, 0xdb, 0x8e, 0x3d, 0xdb, 0x21, 0xac, 0xdc,
0xe1, 0x62, 0xb3, 0x44, 0x2e, 0xb7, 0x67, 0x2b, 0x3e, 0x33, 0xef, 0x5b, 0x54, 0x8a, 0xd4, 0x67,
0x1b, 0x22, 0x4a, 0xa4, 0xb2, 0xaf, 0x43, 0xeb, 0x3e, 0xcf, 0x54, 0xf2, 0x56, 0x7b, 0x48, 0x85,
0x6c, 0x6e, 0xaf, 0x22, 0xf7, 0x6b, 0xf3, 0x0c, 0x8d, 0xb6, 0xcb, 0x87, 0x23, 0x2e, 0xd4, 0x53,
0x3f, 0x18, 0x3e, 0x67, 0xbf, 0x46, 0x83, 0xeb, 0x7a, 0x8f, 0x2d, 0x23, 0xe7, 0x67, 0x0e, 0xbe,
0x5a, 0x80, 0x57, 0x8d, 0x1c, 0x46, 0x43, 0x6e, 0x98, 0xe4, 0x10, 0x5a, 0x46, 0x31, 0x92, 0x16,
0xa0, 0x72, 0x61, 0x95, 0x16, 0xa0, 0x8a, 0xda, 0x25, 0xf7, 0x1a, 0xcd, 0xe3, 0xb2, 0xcb, 0xf9,
0x3c, 0xa2, 0x5e, 0x29, 0x9f, 0x69, 0xf7, 0x23, 0x7f, 0x92, 0x3d, 0x67, 0x4f, 0xe8, 0xd9, 0x94,
0x99, 0xa0, 0xce, 0x3d, 0xb4, 0x62, 0x2e, 0x5b, 0x6f, 0x96, 0xd1, 0x65, 0x7b, 0x6d, 0x62, 0x2a,
0xb2, 0xdc, 0x9f, 0x05, 0x38, 0xcc, 0xa2, 0xf8, 0x8e, 0xcf, 0x27, 0x51, 0x98, 0xeb, 0xda, 0x3c,
0x09, 0x9b, 0xeb, 0x2f, 0x23, 0x13, 0xcb, 0x9e, 0x18, 0x3e, 0xb2, 0x95, 0xdf, 0x57, 0xcc, 0x35,
0x37, 0x4f, 0xab, 0x37, 0xa4, 0x22, 0x57, 0x7b, 0xc3, 0x41, 0x8f, 0x37, 0x8f, 0x72, 0x6a, 0x8f,
0xb7, 0x14, 0x40, 0xd5, 0x6a, 0xaf, 0x22, 0x24, 0x7a, 0x00, 0xcd, 0x3c, 0x6c, 0xb6, 0x9d, 0x17,
0x94, 0x59, 0x41, 0x36, 0x6d, 0x15, 0x4b, 0xc1, 0x2c, 0x77, 0x8d, 0xb6, 0x0a, 0xd8, 0x32, 0x6e,
0x15, 0x45, 0xa8, 0x02, 0xd8, 0x10, 0x04, 0x6a, 0x13, 0x4f, 0x69, 0x45, 0xb5, 0x92, 0x8a, 0x80,
0x92, 0x96, 0xe6, 0xca, 0x78, 0x8c, 0x75, 0xf7, 0x45, 0x6e, 0x15, 0x29, 0x4d, 0x54, 0xcd, 0x13,
0x58, 0x2f, 0x05, 0x13, 0xb4, 0x48, 0xcf, 0x8b, 0xe1, 0x68, 0x91, 0x9e, 0x1b, 0x87, 0x70, 0xcf,
0xd3, 0x94, 0xab, 0x2e, 0xe0, 0x94, 0xe9, 0x59, 0x90, 0x0d, 0x4e, 0xde, 0x73, 0x76, 0x8e, 0x16,
0xe9, 0xff, 0x8a, 0x3e, 0xfd, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd5, 0xa1, 0x16, 0xf4, 0xe1,
0x48, 0x00, 0x00,
// 6171 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x4f, 0x8c, 0x1c, 0xd9,
0x59, 0x77, 0x75, 0xf7, 0xfc, 0xe9, 0xaf, 0x7b, 0x7a, 0x7a, 0xde, 0x8c, 0xc7, 0xed, 0xde, 0x5d,
0xaf, 0xb7, 0x62, 0xad, 0x9d, 0x61, 0xb1, 0xbd, 0x93, 0x64, 0xd9, 0xec, 0x42, 0x82, 0x3d, 0x1e,
0x7b, 0x9c, 0xcc, 0xda, 0x93, 0x1a, 0x3b, 0x86, 0x04, 0xd4, 0xa9, 0xe9, 0x7e, 0xd3, 0x53, 0x71,
0x77, 0x55, 0xa7, 0xaa, 0x7a, 0xc6, 0x9d, 0xc5, 0x52, 0xf8, 0x23, 0x4e, 0x44, 0x08, 0xc1, 0x25,
0x48, 0x08, 0x29, 0x48, 0x28, 0x1c, 0x38, 0xc2, 0x25, 0x20, 0x71, 0xe0, 0x84, 0x84, 0x38, 0xe4,
0x14, 0x71, 0x04, 0x0e, 0x10, 0x71, 0x41, 0xe2, 0x8a, 0xd0, 0xf7, 0xbd, 0x3f, 0xf5, 0x5e, 0x55,
0xb5, 0xed, 0xfc, 0x81, 0x5b, 0xbf, 0xdf, 0xfb, 0xea, 0xfd, 0xfd, 0xfe, 0xbd, 0xef, 0x7d, 0xaf,
0xa1, 0x1e, 0x4f, 0xfa, 0xd7, 0x27, 0x71, 0x94, 0x46, 0x6c, 0x61, 0x14, 0xc6, 0x93, 0x7e, 0xf7,
0xf5, 0x61, 0x14, 0x0d, 0x47, 0xfc, 0x86, 0x3f, 0x09, 0x6e, 0xf8, 0x61, 0x18, 0xa5, 0x7e, 0x1a,
0x44, 0x61, 0x22, 0x88, 0xdc, 0xaf, 0x41, 0xeb, 0x1e, 0x0f, 0x0f, 0x39, 0x1f, 0x78, 0xfc, 0x1b,
0x53, 0x9e, 0xa4, 0xec, 0xe7, 0x60, 0xcd, 0xe7, 0xdf, 0xe4, 0x7c, 0xd0, 0x9b, 0xf8, 0x49, 0x32,
0x39, 0x89, 0xfd, 0x84, 0x77, 0x9c, 0xcb, 0xce, 0xb5, 0xa6, 0xd7, 0x16, 0x15, 0x07, 0x1a, 0x67,
0x6f, 0x41, 0x33, 0x41, 0x52, 0x1e, 0xa6, 0x71, 0x34, 0x99, 0x75, 0x2a, 0x44, 0xd7, 0x40, 0x6c,
0x57, 0x40, 0xee, 0x08, 0x56, 0x75, 0x0f, 0xc9, 0x24, 0x0a, 0x13, 0xce, 0x6e, 0xc2, 0x46, 0x3f,
0x98, 0x9c, 0xf0, 0xb8, 0x47, 0x1f, 0x8f, 0x43, 0x3e, 0x8e, 0xc2, 0xa0, 0xdf, 0x71, 0x2e, 0x57,
0xaf, 0xd5, 0x3d, 0x26, 0xea, 0xf0, 0x8b, 0x8f, 0x64, 0x0d, 0xbb, 0x0a, 0xab, 0x3c, 0x14, 0x38,
0x1f, 0xd0, 0x57, 0xb2, 0xab, 0x56, 0x06, 0xe3, 0x07, 0xee, 0xdf, 0x3b, 0xb0, 0x76, 0x3f, 0x0c,
0xd2, 0x27, 0xfe, 0x68, 0xc4, 0x53, 0x35, 0xa7, 0xab, 0xb0, 0x7a, 0x46, 0x00, 0xcd, 0xe9, 0x2c,
0x8a, 0x07, 0x72, 0x46, 0x2d, 0x01, 0x1f, 0x48, 0x74, 0xee, 0xc8, 0x2a, 0x73, 0x47, 0x56, 0xba,
0x5c, 0xd5, 0x39, 0xcb, 0x75, 0x15, 0x56, 0x63, 0xde, 0x8f, 0x4e, 0x79, 0x3c, 0xeb, 0x9d, 0x05,
0xe1, 0x20, 0x3a, 0xeb, 0xd4, 0x2e, 0x3b, 0xd7, 0x16, 0xbc, 0x96, 0x82, 0x9f, 0x10, 0xea, 0x6e,
0x00, 0x33, 0x67, 0x21, 0xd6, 0xcd, 0x1d, 0xc2, 0xfa, 0xe3, 0x70, 0x14, 0xf5, 0x9f, 0xfe, 0x84,
0xb3, 0x2b, 0xe9, 0xbe, 0x52, 0xda, 0xfd, 0x26, 0x6c, 0xd8, 0x1d, 0xc9, 0x01, 0x70, 0x38, 0xbf,
0x73, 0xe2, 0x87, 0x43, 0xae, 0x9a, 0x54, 0x43, 0xf8, 0x24, 0xb4, 0xfb, 0xd3, 0x38, 0xe6, 0x61,
0x61, 0x0c, 0xab, 0x12, 0xd7, 0x83, 0x78, 0x0b, 0x9a, 0x21, 0x3f, 0xcb, 0xc8, 0x24, 0xcb, 0x84,
0xfc, 0x4c, 0x91, 0xb8, 0x1d, 0xd8, 0xcc, 0x77, 0x23, 0x07, 0xf0, 0x9d, 0x0a, 0x34, 0x1e, 0xc5,
0x7e, 0x98, 0xf8, 0x7d, 0xe4, 0x62, 0xd6, 0x81, 0xa5, 0xf4, 0x59, 0xef, 0xc4, 0x4f, 0x4e, 0xa8,
0xbb, 0xba, 0xa7, 0x8a, 0x6c, 0x13, 0x16, 0xfd, 0x71, 0x34, 0x0d, 0x53, 0xea, 0xa0, 0xea, 0xc9,
0x12, 0x7b, 0x07, 0xd6, 0xc2, 0xe9, 0xb8, 0xd7, 0x8f, 0xc2, 0xe3, 0x20, 0x1e, 0x0b, 0x59, 0xa0,
0xfd, 0x5a, 0xf0, 0x8a, 0x15, 0xec, 0x12, 0xc0, 0x11, 0xae, 0x83, 0xe8, 0xa2, 0x46, 0x5d, 0x18,
0x08, 0x73, 0xa1, 0x29, 0x4b, 0x3c, 0x18, 0x9e, 0xa4, 0x9d, 0x05, 0x6a, 0xc8, 0xc2, 0xb0, 0x8d,
0x34, 0x18, 0xf3, 0x5e, 0x92, 0xfa, 0xe3, 0x49, 0x67, 0x91, 0x46, 0x63, 0x20, 0x54, 0x1f, 0xa5,
0xfe, 0xa8, 0x77, 0xcc, 0x79, 0xd2, 0x59, 0x92, 0xf5, 0x1a, 0x61, 0x6f, 0x43, 0x6b, 0xc0, 0x93,
0xb4, 0xe7, 0x0f, 0x06, 0x31, 0x4f, 0x12, 0x9e, 0x74, 0x96, 0x89, 0x1b, 0x73, 0x28, 0xae, 0xda,
0x3d, 0x9e, 0x1a, 0xab, 0x93, 0xc8, 0xdd, 0x71, 0xf7, 0x81, 0x19, 0xf0, 0x1d, 0x9e, 0xfa, 0xc1,
0x28, 0x61, 0xef, 0x41, 0x33, 0x35, 0x88, 0x49, 0xfa, 0x1a, 0xdb, 0xec, 0x3a, 0xa9, 0x8d, 0xeb,
0xc6, 0x07, 0x9e, 0x45, 0xe7, 0xde, 0x83, 0xe5, 0xbb, 0x9c, 0xef, 0x07, 0xe3, 0x20, 0x65, 0x9b,
0xb0, 0x70, 0x1c, 0x3c, 0xe3, 0x62, 0xb3, 0xab, 0x7b, 0xe7, 0x3c, 0x51, 0x64, 0x5d, 0x58, 0x9a,
0xf0, 0xb8, 0xcf, 0xd5, 0xf2, 0xef, 0x9d, 0xf3, 0x14, 0x70, 0x7b, 0x09, 0x16, 0x46, 0xf8, 0xb1,
0xfb, 0xbd, 0x0a, 0x34, 0x0e, 0x79, 0xa8, 0x99, 0x88, 0x41, 0x0d, 0xa7, 0x24, 0x19, 0x87, 0x7e,
0xb3, 0x37, 0xa1, 0x41, 0xd3, 0x4c, 0xd2, 0x38, 0x08, 0x87, 0xd4, 0x58, 0xdd, 0x03, 0x84, 0x0e,
0x09, 0x61, 0x6d, 0xa8, 0xfa, 0xe3, 0x94, 0x76, 0xb0, 0xea, 0xe1, 0x4f, 0x64, 0xb0, 0x89, 0x3f,
0x1b, 0x23, 0x2f, 0xea, 0x5d, 0x6b, 0x7a, 0x0d, 0x89, 0xed, 0xe1, 0xb6, 0x5d, 0x87, 0x75, 0x93,
0x44, 0xb5, 0xbe, 0x40, 0xad, 0xaf, 0x19, 0x94, 0xb2, 0x93, 0xab, 0xb0, 0xaa, 0xe8, 0x63, 0x31,
0x58, 0xda, 0xc7, 0xba, 0xd7, 0x92, 0xb0, 0x9a, 0xc2, 0x35, 0x68, 0x1f, 0x07, 0xa1, 0x3f, 0xea,
0xf5, 0x47, 0xe9, 0x69, 0x6f, 0xc0, 0x47, 0xa9, 0x4f, 0x3b, 0xba, 0xe0, 0xb5, 0x08, 0xdf, 0x19,
0xa5, 0xa7, 0x77, 0x10, 0x65, 0xef, 0x40, 0xfd, 0x98, 0xf3, 0x1e, 0xad, 0x44, 0x67, 0xf9, 0xb2,
0x73, 0xad, 0xb1, 0xbd, 0x2a, 0x97, 0x5e, 0xad, 0xae, 0xb7, 0x7c, 0x2c, 0x7f, 0xb9, 0x7f, 0xe4,
0x40, 0x53, 0x2c, 0x95, 0x54, 0xa1, 0x57, 0x60, 0x45, 0x8d, 0x88, 0xc7, 0x71, 0x14, 0x4b, 0xf6,
0xb7, 0x41, 0xb6, 0x05, 0x6d, 0x05, 0x4c, 0x62, 0x1e, 0x8c, 0xfd, 0x21, 0x97, 0xf2, 0x56, 0xc0,
0xd9, 0x76, 0xd6, 0x62, 0x1c, 0x4d, 0x53, 0xa1, 0xc4, 0x1a, 0xdb, 0x4d, 0x39, 0x28, 0x0f, 0x31,
0xcf, 0x26, 0x71, 0xbf, 0xed, 0x00, 0xc3, 0x61, 0x3d, 0x8a, 0x44, 0xb5, 0x5c, 0x85, 0xfc, 0x0e,
0x38, 0xaf, 0xbc, 0x03, 0x95, 0x79, 0x3b, 0x70, 0x05, 0x16, 0xa9, 0x4b, 0x94, 0xd5, 0x6a, 0x61,
0x58, 0xb2, 0xce, 0xfd, 0xae, 0x03, 0x4d, 0xd4, 0x1c, 0x21, 0x1f, 0x1d, 0x44, 0x41, 0x98, 0xb2,
0x9b, 0xc0, 0x8e, 0xa7, 0xe1, 0x20, 0x08, 0x87, 0xbd, 0xf4, 0x59, 0x30, 0xe8, 0x1d, 0xcd, 0xb0,
0x09, 0x1a, 0xcf, 0xde, 0x39, 0xaf, 0xa4, 0x8e, 0xbd, 0x03, 0x6d, 0x0b, 0x4d, 0xd2, 0x58, 0x8c,
0x6a, 0xef, 0x9c, 0x57, 0xa8, 0x41, 0xf9, 0x8f, 0xa6, 0xe9, 0x64, 0x9a, 0xf6, 0x82, 0x70, 0xc0,
0x9f, 0xd1, 0x9a, 0xad, 0x78, 0x16, 0x76, 0xbb, 0x05, 0x4d, 0xf3, 0x3b, 0xf7, 0x73, 0xd0, 0xde,
0x47, 0xc5, 0x10, 0x06, 0xe1, 0xf0, 0x96, 0x90, 0x5e, 0xd4, 0x56, 0x93, 0xe9, 0xd1, 0x53, 0x3e,
0x93, 0xfb, 0x28, 0x4b, 0x28, 0x12, 0x27, 0x51, 0x92, 0xca, 0x75, 0xa1, 0xdf, 0xee, 0xbf, 0x38,
0xb0, 0x8a, 0x8b, 0xfe, 0x91, 0x1f, 0xce, 0xd4, 0x8a, 0xef, 0x43, 0x13, 0x9b, 0x7a, 0x14, 0xdd,
0x12, 0x3a, 0x4f, 0xc8, 0xf2, 0x35, 0xb9, 0x48, 0x39, 0xea, 0xeb, 0x26, 0x29, 0x9a, 0xe9, 0x99,
0x67, 0x7d, 0x8d, 0x42, 0x97, 0xfa, 0xf1, 0x90, 0xa7, 0xa4, 0x0d, 0xa5, 0x76, 0x04, 0x01, 0xed,
0x44, 0xe1, 0x31, 0xbb, 0x0c, 0xcd, 0xc4, 0x4f, 0x7b, 0x13, 0x1e, 0xd3, 0xaa, 0x91, 0xe0, 0x54,
0x3d, 0x48, 0xfc, 0xf4, 0x80, 0xc7, 0xb7, 0x67, 0x29, 0xef, 0x7e, 0x1e, 0xd6, 0x0a, 0xbd, 0xa0,
0xac, 0x66, 0x53, 0xc4, 0x9f, 0x6c, 0x03, 0x16, 0x4e, 0xfd, 0xd1, 0x94, 0x4b, 0x25, 0x2d, 0x0a,
0x1f, 0x54, 0xde, 0x77, 0xdc, 0xb7, 0xa1, 0x9d, 0x0d, 0x5b, 0x32, 0x3d, 0x83, 0x1a, 0xae, 0xa0,
0x6c, 0x80, 0x7e, 0xbb, 0xbf, 0xe9, 0x08, 0xc2, 0x9d, 0x28, 0xd0, 0x0a, 0x0f, 0x09, 0x51, 0x2f,
0x2a, 0x42, 0xfc, 0x3d, 0xd7, 0x20, 0xfc, 0xf4, 0x93, 0x75, 0xaf, 0xc2, 0x9a, 0x31, 0x84, 0x17,
0x0c, 0xf6, 0xdb, 0x0e, 0xac, 0x3d, 0xe0, 0x67, 0x72, 0xd7, 0xd5, 0x68, 0xdf, 0x87, 0x5a, 0x3a,
0x9b, 0x08, 0x27, 0xab, 0xb5, 0x7d, 0x45, 0x6e, 0x5a, 0x81, 0xee, 0xba, 0x2c, 0x3e, 0x9a, 0x4d,
0xb8, 0x47, 0x5f, 0xb8, 0x9f, 0x83, 0x86, 0x01, 0xb2, 0x0b, 0xb0, 0xfe, 0xe4, 0xfe, 0xa3, 0x07,
0xbb, 0x87, 0x87, 0xbd, 0x83, 0xc7, 0xb7, 0xbf, 0xb8, 0xfb, 0xab, 0xbd, 0xbd, 0x5b, 0x87, 0x7b,
0xed, 0x73, 0x6c, 0x13, 0xd8, 0x83, 0xdd, 0xc3, 0x47, 0xbb, 0x77, 0x2c, 0xdc, 0x71, 0xbb, 0xd0,
0x79, 0xc0, 0xcf, 0x9e, 0x04, 0x69, 0xc8, 0x93, 0xc4, 0xee, 0xcd, 0xbd, 0x0e, 0xcc, 0x1c, 0x82,
0x9c, 0x55, 0x07, 0x96, 0xa4, 0xc5, 0x51, 0x06, 0x57, 0x16, 0xdd, 0xb7, 0x81, 0x1d, 0x06, 0xc3,
0xf0, 0x23, 0x9e, 0x24, 0xfe, 0x50, 0xab, 0x82, 0x36, 0x54, 0xc7, 0xc9, 0x50, 0x6a, 0x00, 0xfc,
0xe9, 0x7e, 0x0a, 0xd6, 0x2d, 0x3a, 0xd9, 0xf0, 0xeb, 0x50, 0x4f, 0x82, 0x61, 0xe8, 0xa7, 0xd3,
0x98, 0xcb, 0xa6, 0x33, 0xc0, 0xbd, 0x0b, 0x1b, 0x5f, 0xe6, 0x71, 0x70, 0x3c, 0x7b, 0x59, 0xf3,
0x76, 0x3b, 0x95, 0x7c, 0x3b, 0xbb, 0x70, 0x3e, 0xd7, 0x8e, 0xec, 0x5e, 0x30, 0xa2, 0xdc, 0xae,
0x65, 0x4f, 0x14, 0x0c, 0xb1, 0xac, 0x98, 0x62, 0xe9, 0x3e, 0x06, 0xb6, 0x13, 0x85, 0x21, 0xef,
0xa7, 0x07, 0x9c, 0xc7, 0x99, 0xe7, 0x9c, 0x71, 0x5d, 0x63, 0xfb, 0x82, 0xdc, 0xc7, 0xbc, 0xac,
0x4b, 0x76, 0x64, 0x50, 0x9b, 0xf0, 0x78, 0x4c, 0x0d, 0x2f, 0x7b, 0xf4, 0xdb, 0x3d, 0x0f, 0xeb,
0x56, 0xb3, 0xd2, 0xe9, 0x79, 0x17, 0xce, 0xdf, 0x09, 0x92, 0x7e, 0xb1, 0xc3, 0x0e, 0x2c, 0x4d,
0xa6, 0x47, 0xbd, 0x4c, 0xa6, 0x54, 0x11, 0x7d, 0x81, 0xfc, 0x27, 0xb2, 0xb1, 0xdf, 0x75, 0xa0,
0xb6, 0xf7, 0x68, 0x7f, 0x87, 0x75, 0x61, 0x39, 0x08, 0xfb, 0xd1, 0x18, 0xd5, 0xae, 0x98, 0xb4,
0x2e, 0xcf, 0x95, 0x95, 0xd7, 0xa1, 0x4e, 0xda, 0x1a, 0xdd, 0x1b, 0xe9, 0xe4, 0x66, 0x00, 0xba,
0x56, 0xfc, 0xd9, 0x24, 0x88, 0xc9, 0x77, 0x52, 0x1e, 0x51, 0x8d, 0x34, 0x62, 0xb1, 0xc2, 0xfd,
0x9f, 0x1a, 0x2c, 0x49, 0x5d, 0x4d, 0xfd, 0xf5, 0xd3, 0xe0, 0x94, 0xcb, 0x91, 0xc8, 0x12, 0x5a,
0xb9, 0x98, 0x8f, 0xa3, 0x94, 0xf7, 0xac, 0x6d, 0xb0, 0x41, 0xa4, 0xea, 0x8b, 0x86, 0x7a, 0x13,
0xd4, 0xfa, 0x34, 0xb2, 0xba, 0x67, 0x83, 0xb8, 0x58, 0x08, 0xf4, 0x82, 0x01, 0x8d, 0xa9, 0xe6,
0xa9, 0x22, 0xae, 0x44, 0xdf, 0x9f, 0xf8, 0xfd, 0x20, 0x9d, 0x49, 0xe1, 0xd6, 0x65, 0x6c, 0x7b,
0x14, 0xf5, 0xfd, 0x51, 0xef, 0xc8, 0x1f, 0xf9, 0x61, 0x9f, 0x4b, 0xff, 0xcd, 0x06, 0xd1, 0x45,
0x93, 0x43, 0x52, 0x64, 0xc2, 0x8d, 0xcb, 0xa1, 0xe8, 0xea, 0xf5, 0xa3, 0xf1, 0x38, 0x48, 0xd1,
0xb3, 0x23, 0xab, 0x5f, 0xf5, 0x0c, 0x84, 0x66, 0x22, 0x4a, 0x67, 0x62, 0xf5, 0xea, 0xa2, 0x37,
0x0b, 0xc4, 0x56, 0xd0, 0x75, 0x40, 0x85, 0xf4, 0xf4, 0xac, 0x03, 0xa2, 0x95, 0x0c, 0xc1, 0x7d,
0x98, 0x86, 0x09, 0x4f, 0xd3, 0x11, 0x1f, 0xe8, 0x01, 0x35, 0x88, 0xac, 0x58, 0xc1, 0x6e, 0xc2,
0xba, 0x70, 0x36, 0x13, 0x3f, 0x8d, 0x92, 0x93, 0x20, 0xe9, 0x25, 0xe8, 0xb6, 0x35, 0x89, 0xbe,
0xac, 0x8a, 0xbd, 0x0f, 0x17, 0x72, 0x70, 0xcc, 0xfb, 0x3c, 0x38, 0xe5, 0x83, 0xce, 0x0a, 0x7d,
0x35, 0xaf, 0x9a, 0x5d, 0x86, 0x06, 0xfa, 0xd8, 0xd3, 0xc9, 0xc0, 0x47, 0x3b, 0xdc, 0xa2, 0x7d,
0x30, 0x21, 0xf6, 0x2e, 0xac, 0x4c, 0xb8, 0x30, 0x96, 0x27, 0xe9, 0xa8, 0x9f, 0x74, 0x56, 0xc9,
0x92, 0x35, 0xa4, 0x30, 0x21, 0xe7, 0x7a, 0x36, 0x05, 0x32, 0x65, 0x3f, 0x21, 0x67, 0xcb, 0x9f,
0x75, 0xda, 0xc4, 0x6e, 0x19, 0x40, 0x32, 0x12, 0x07, 0xa7, 0x7e, 0xca, 0x3b, 0x6b, 0xc4, 0x5b,
0xaa, 0xe8, 0xfe, 0xa9, 0x03, 0xeb, 0xfb, 0x41, 0x92, 0x4a, 0x26, 0xd4, 0xea, 0xf8, 0x4d, 0x68,
0x08, 0xf6, 0xeb, 0x45, 0xe1, 0x68, 0x26, 0x39, 0x12, 0x04, 0xf4, 0x30, 0x1c, 0xcd, 0xd8, 0x27,
0x60, 0x25, 0x08, 0x4d, 0x12, 0x21, 0xc3, 0x4d, 0x05, 0x12, 0xd1, 0x9b, 0xd0, 0x98, 0x4c, 0x8f,
0x46, 0x41, 0x5f, 0x90, 0x54, 0x45, 0x2b, 0x02, 0x22, 0x02, 0x74, 0x92, 0xc4, 0x48, 0x04, 0x45,
0x8d, 0x28, 0x1a, 0x12, 0x43, 0x12, 0xf7, 0x36, 0x6c, 0xd8, 0x03, 0x94, 0xca, 0x6a, 0x0b, 0x96,
0x25, 0x6f, 0x27, 0x9d, 0x06, 0xad, 0x4f, 0x4b, 0xae, 0x8f, 0x24, 0xf5, 0x74, 0xbd, 0xfb, 0xe7,
0x35, 0x58, 0x97, 0xe8, 0xce, 0x28, 0x4a, 0xf8, 0xe1, 0x74, 0x3c, 0xf6, 0xe3, 0x12, 0xa1, 0x71,
0x5e, 0x22, 0x34, 0x15, 0x5b, 0x68, 0x90, 0x95, 0x4f, 0xfc, 0x20, 0x14, 0x1e, 0x9e, 0x90, 0x38,
0x03, 0x61, 0xd7, 0x60, 0xb5, 0x3f, 0x8a, 0x12, 0xe1, 0xf5, 0x98, 0xc7, 0xa7, 0x3c, 0x5c, 0x14,
0xf2, 0x85, 0x32, 0x21, 0x37, 0x85, 0x74, 0x31, 0x27, 0xa4, 0x2e, 0x34, 0xb1, 0x51, 0xae, 0x74,
0xce, 0x92, 0xf0, 0xc2, 0x4c, 0x0c, 0xc7, 0x93, 0x17, 0x09, 0x21, 0x7f, 0xab, 0x65, 0x02, 0x81,
0xa7, 0x33, 0xd4, 0x69, 0x06, 0x75, 0x5d, 0x0a, 0x44, 0xb1, 0x8a, 0xdd, 0x05, 0x10, 0x7d, 0x91,
0x19, 0x07, 0x32, 0xe3, 0x6f, 0xdb, 0x3b, 0x62, 0xae, 0xfd, 0x75, 0x2c, 0x4c, 0x63, 0x4e, 0x86,
0xdc, 0xf8, 0xd2, 0xfd, 0x18, 0x1a, 0x46, 0x15, 0x3b, 0x0f, 0x6b, 0x3b, 0x0f, 0x1f, 0x1e, 0xec,
0x7a, 0xb7, 0x1e, 0xdd, 0xff, 0xf2, 0x6e, 0x6f, 0x67, 0xff, 0xe1, 0xe1, 0x6e, 0xfb, 0x1c, 0xc2,
0xfb, 0x0f, 0x77, 0x6e, 0xed, 0xf7, 0xee, 0x3e, 0xf4, 0x76, 0x14, 0xec, 0xa0, 0x8d, 0xf7, 0x76,
0x3f, 0x7a, 0xf8, 0x68, 0xd7, 0xc2, 0x2b, 0xac, 0x0d, 0xcd, 0xdb, 0xde, 0xee, 0xad, 0x9d, 0x3d,
0x89, 0x54, 0xd9, 0x06, 0xb4, 0xef, 0x3e, 0x7e, 0x70, 0xe7, 0xfe, 0x83, 0x7b, 0xbd, 0x9d, 0x5b,
0x0f, 0x76, 0x76, 0xf7, 0x77, 0xef, 0xb4, 0x6b, 0xee, 0xdf, 0x39, 0x70, 0x9e, 0x46, 0x39, 0xc8,
0x0b, 0xc4, 0x65, 0x68, 0xf4, 0xa3, 0x68, 0xc2, 0x51, 0x7f, 0x6b, 0x15, 0x6d, 0x42, 0xc8, 0xec,
0x42, 0x21, 0x1e, 0x47, 0x71, 0x9f, 0x4b, 0x79, 0x00, 0x82, 0xee, 0x22, 0x82, 0xcc, 0x2e, 0xb7,
0x53, 0x50, 0x08, 0x71, 0x68, 0x08, 0x4c, 0x90, 0x6c, 0xc2, 0xe2, 0x51, 0xcc, 0xfd, 0xfe, 0x89,
0x94, 0x04, 0x59, 0x62, 0x9f, 0xcc, 0x1c, 0xf2, 0x3e, 0xae, 0xf6, 0x88, 0x0f, 0x88, 0x43, 0x96,
0xbd, 0x55, 0x89, 0xef, 0x48, 0xd8, 0x3d, 0x80, 0xcd, 0xfc, 0x0c, 0xa4, 0xc4, 0xbc, 0x67, 0x48,
0x8c, 0xf0, 0x8d, 0xbb, 0xf3, 0xf7, 0xc7, 0x90, 0x9e, 0xff, 0x70, 0xa0, 0x86, 0xe6, 0x73, 0xbe,
0xa9, 0x35, 0x3d, 0xa2, 0xaa, 0xe5, 0x11, 0x51, 0xf0, 0x00, 0xcf, 0x14, 0x42, 0xa1, 0x0a, 0xa3,
0x63, 0x20, 0x59, 0x7d, 0xcc, 0xfb, 0xa7, 0x34, 0x27, 0x5d, 0x8f, 0x08, 0xb2, 0x3c, 0x3a, 0x9e,
0xf4, 0xb5, 0x64, 0x79, 0x55, 0x56, 0x75, 0xf4, 0xe5, 0x52, 0x56, 0x47, 0xdf, 0x75, 0x60, 0x29,
0x08, 0x8f, 0xa2, 0x69, 0x38, 0x20, 0x16, 0x5f, 0xf6, 0x54, 0x11, 0x55, 0xe5, 0x84, 0x44, 0x2f,
0x18, 0x2b, 0x86, 0xce, 0x00, 0x97, 0xe1, 0xc1, 0x24, 0x21, 0x77, 0x41, 0x7b, 0x81, 0xef, 0xc1,
0x9a, 0x81, 0xc9, 0xd5, 0x7c, 0x0b, 0x16, 0x26, 0x08, 0xc8, 0xa5, 0x54, 0xca, 0x99, 0xfc, 0x0c,
0x51, 0xe3, 0xb6, 0xa1, 0x75, 0x8f, 0xa7, 0xf7, 0xc3, 0xe3, 0x48, 0xb5, 0xf4, 0xc3, 0x2a, 0xac,
0x6a, 0x48, 0x36, 0x74, 0x0d, 0x56, 0x83, 0x01, 0x0f, 0xd3, 0x20, 0x9d, 0xf5, 0xac, 0xf3, 0x4f,
0x1e, 0x46, 0xff, 0xcc, 0x1f, 0x05, 0x7e, 0x22, 0x3d, 0x00, 0x51, 0x60, 0xdb, 0xb0, 0x81, 0xc6,
0x43, 0xd9, 0x03, 0xbd, 0xc5, 0xe2, 0x18, 0x56, 0x5a, 0x87, 0xe2, 0x8d, 0xb8, 0xd4, 0xdf, 0xfa,
0x13, 0xe1, 0xa7, 0x94, 0x55, 0xe1, 0xaa, 0x89, 0x96, 0x70, 0xca, 0x0b, 0xc2, 0xc0, 0x68, 0xa0,
0x10, 0x02, 0x5a, 0x14, 0xca, 0x27, 0x1f, 0x02, 0x32, 0xc2, 0x48, 0xcb, 0x85, 0x30, 0x12, 0x2a,
0xa7, 0x59, 0xd8, 0xe7, 0x83, 0x5e, 0x1a, 0xf5, 0x48, 0x89, 0xd2, 0xee, 0x2c, 0x7b, 0x79, 0x98,
0x02, 0x5e, 0x3c, 0x49, 0x43, 0x9e, 0x92, 0x9e, 0x59, 0xf6, 0x54, 0x11, 0xe5, 0x87, 0x48, 0x84,
0x49, 0xa8, 0x7b, 0xb2, 0x84, 0x8e, 0xe6, 0x34, 0x0e, 0x92, 0x4e, 0x93, 0x50, 0xfa, 0xcd, 0x3e,
0x0d, 0xe7, 0x8f, 0x78, 0x92, 0xf6, 0x4e, 0xb8, 0x3f, 0xe0, 0x31, 0xed, 0xbe, 0x88, 0x4e, 0x09,
0xfb, 0x5d, 0x5e, 0x89, 0x7d, 0x9f, 0xf2, 0x38, 0x09, 0xa2, 0x90, 0x2c, 0x77, 0xdd, 0x53, 0x45,
0xf7, 0x9b, 0xe4, 0x0f, 0xeb, 0xb8, 0xd9, 0x63, 0x32, 0xe6, 0xec, 0x35, 0xa8, 0x8b, 0x39, 0x26,
0x27, 0xbe, 0x74, 0xd1, 0x97, 0x09, 0x38, 0x3c, 0xf1, 0x51, 0x23, 0x58, 0xcb, 0x26, 0x02, 0x91,
0x0d, 0xc2, 0xf6, 0xc4, 0xaa, 0x5d, 0x81, 0x96, 0x8a, 0xc8, 0x25, 0xbd, 0x11, 0x3f, 0x4e, 0xd5,
0xf1, 0x3a, 0x9c, 0x8e, 0xb1, 0xbb, 0x64, 0x9f, 0x1f, 0xa7, 0xee, 0x03, 0x58, 0x93, 0x32, 0xfc,
0x70, 0xc2, 0x55, 0xd7, 0x9f, 0x2d, 0xb3, 0x6e, 0x8d, 0xed, 0x75, 0x5b, 0xe8, 0x29, 0x46, 0x90,
0x33, 0x79, 0xae, 0x07, 0xcc, 0xd4, 0x09, 0xb2, 0x41, 0x69, 0x62, 0xd4, 0x21, 0x5e, 0x4e, 0xc7,
0xc2, 0x70, 0x7d, 0x92, 0x69, 0xbf, 0x8f, 0x9a, 0x40, 0x68, 0x40, 0x55, 0x74, 0xbf, 0xe7, 0xc0,
0x3a, 0xb5, 0xa6, 0xec, 0xb3, 0x3e, 0xf9, 0xbd, 0xfa, 0x30, 0x9b, 0x7d, 0x33, 0xb0, 0xb1, 0x01,
0x0b, 0xa6, 0xae, 0x15, 0x85, 0x1f, 0xff, 0x2c, 0x5b, 0x2b, 0x9c, 0x65, 0x7f, 0xe8, 0xc0, 0x9a,
0x50, 0x86, 0xa9, 0x9f, 0x4e, 0x13, 0x39, 0xfd, 0x5f, 0x84, 0x15, 0x61, 0xa7, 0xa4, 0x38, 0xc9,
0x81, 0x6e, 0x68, 0xc9, 0x27, 0x54, 0x10, 0xef, 0x9d, 0xf3, 0x6c, 0x62, 0xf6, 0x79, 0x68, 0x9a,
0x61, 0x55, 0x1a, 0x73, 0x63, 0xfb, 0xa2, 0x9a, 0x65, 0x81, 0x73, 0xf6, 0xce, 0x79, 0xd6, 0x07,
0xec, 0x43, 0x72, 0x36, 0xc2, 0x1e, 0x35, 0x2b, 0x03, 0x53, 0x17, 0x4b, 0x14, 0xb8, 0xfe, 0xdc,
0x20, 0xbf, 0xbd, 0x0c, 0x8b, 0xc2, 0xbb, 0x74, 0xef, 0xc1, 0x8a, 0x35, 0x52, 0xeb, 0x8c, 0xde,
0x14, 0x67, 0xf4, 0x42, 0x48, 0xa7, 0x52, 0x0c, 0xe9, 0xb8, 0xff, 0x56, 0x01, 0x86, 0xdc, 0x96,
0xdb, 0x4e, 0x74, 0x6f, 0xa3, 0x81, 0x75, 0x58, 0x69, 0x7a, 0x26, 0xc4, 0xae, 0x03, 0x33, 0x8a,
0x2a, 0xea, 0x25, 0xec, 0x46, 0x49, 0x0d, 0x2a, 0x38, 0x69, 0x58, 0xa5, 0x09, 0x94, 0xc7, 0x32,
0xb1, 0x6f, 0xa5, 0x75, 0x68, 0x1a, 0x26, 0xd3, 0xe4, 0x04, 0xdd, 0x6f, 0x75, 0x9c, 0x51, 0xe5,
0x3c, 0x83, 0x2c, 0xbe, 0x94, 0x41, 0x96, 0xf2, 0x0c, 0x62, 0x3a, 0xd4, 0xcb, 0x96, 0x43, 0x8d,
0x8e, 0xdc, 0x18, 0xdd, 0xbf, 0x74, 0xd4, 0xef, 0x8d, 0xb1, 0x77, 0x79, 0x7a, 0xb1, 0x40, 0xb6,
0x05, 0x6d, 0xe9, 0x0a, 0x64, 0x5e, 0x3b, 0xd0, 0x1a, 0x17, 0x70, 0xf7, 0x07, 0x0e, 0xb4, 0x71,
0x9d, 0x2d, 0x5e, 0xfc, 0x00, 0x48, 0x14, 0x5e, 0x91, 0x15, 0x2d, 0xda, 0x9f, 0x9e, 0x13, 0xdf,
0x87, 0x3a, 0x35, 0x18, 0x4d, 0x78, 0x28, 0x19, 0xb1, 0x63, 0x33, 0x62, 0xa6, 0x85, 0xf6, 0xce,
0x79, 0x19, 0xb1, 0xc1, 0x86, 0xff, 0xe4, 0x40, 0x43, 0x0e, 0xf3, 0x27, 0x3e, 0x89, 0x77, 0x61,
0x19, 0x39, 0xd2, 0x38, 0xee, 0xea, 0x32, 0x5a, 0x93, 0xb1, 0x9f, 0x4e, 0x63, 0x34, 0x9f, 0xd6,
0x29, 0x3c, 0x0f, 0xa3, 0x2d, 0x24, 0x85, 0x9b, 0xf4, 0xd2, 0x60, 0xd4, 0x53, 0xb5, 0xf2, 0x16,
0xa3, 0xac, 0x0a, 0xf5, 0x4e, 0x92, 0xfa, 0x43, 0x2e, 0xcd, 0x9c, 0x28, 0xb8, 0x1d, 0xd8, 0x94,
0x13, 0xca, 0xf9, 0x8e, 0xee, 0xdf, 0x36, 0xe1, 0x42, 0xa1, 0x4a, 0x5f, 0x03, 0xca, 0xe3, 0xe5,
0x28, 0x18, 0x1f, 0x45, 0xda, 0xd1, 0x76, 0xcc, 0x93, 0xa7, 0x55, 0xc5, 0x86, 0x70, 0x5e, 0xd9,
0x73, 0x5c, 0xd3, 0xcc, 0x7a, 0x57, 0xc8, 0x11, 0x79, 0xd7, 0xe6, 0x81, 0x7c, 0x87, 0x0a, 0x37,
0x25, 0xb7, 0xbc, 0x3d, 0x76, 0x02, 0x1d, 0xed, 0x38, 0x48, 0x15, 0x6f, 0x38, 0x17, 0xd8, 0xd7,
0x3b, 0x2f, 0xe9, 0xcb, 0x72, 0x44, 0xbd, 0xb9, 0xad, 0xb1, 0x19, 0x5c, 0x52, 0x75, 0xa4, 0xc3,
0x8b, 0xfd, 0xd5, 0x5e, 0x69, 0x6e, 0xe4, 0x44, 0xdb, 0x9d, 0xbe, 0xa4, 0x61, 0xf6, 0x75, 0xd8,
0x3c, 0xf3, 0x83, 0x54, 0x0d, 0xcb, 0x70, 0x86, 0x16, 0xa8, 0xcb, 0xed, 0x97, 0x74, 0xf9, 0x44,
0x7c, 0x6c, 0x19, 0xb6, 0x39, 0x2d, 0x76, 0xff, 0xc1, 0x81, 0x96, 0xdd, 0x0e, 0xb2, 0xa9, 0x14,
0x78, 0xa5, 0xf8, 0x94, 0xf3, 0x97, 0x83, 0x8b, 0x67, 0xd5, 0x4a, 0xd9, 0x59, 0xd5, 0x3c, 0x21,
0x56, 0x5f, 0x16, 0xc6, 0xa9, 0xbd, 0x5a, 0x18, 0x67, 0xa1, 0x2c, 0x8c, 0xd3, 0xfd, 0x6f, 0x07,
0x58, 0x91, 0x97, 0xd8, 0x3d, 0x71, 0x58, 0x0e, 0xf9, 0x48, 0xea, 0xa4, 0x9f, 0x7f, 0x35, 0x7e,
0x54, 0x6b, 0xa7, 0xbe, 0x46, 0xc1, 0x30, 0x95, 0x8e, 0xe9, 0x22, 0xad, 0x78, 0x65, 0x55, 0xb9,
0xc0, 0x52, 0xed, 0xe5, 0x81, 0xa5, 0x85, 0x97, 0x07, 0x96, 0x16, 0xf3, 0x81, 0xa5, 0xee, 0xef,
0x38, 0xb0, 0x5e, 0xb2, 0xe9, 0x3f, 0xbb, 0x89, 0xe3, 0x36, 0x59, 0xba, 0xa0, 0x22, 0xb7, 0xc9,
0x04, 0xbb, 0xbf, 0x01, 0x2b, 0x16, 0xa3, 0xff, 0xec, 0xfa, 0xcf, 0x7b, 0x79, 0x82, 0xcf, 0x2c,
0xac, 0xfb, 0xa3, 0x0a, 0xb0, 0xa2, 0xb0, 0xfd, 0xbf, 0x8e, 0xa1, 0xb8, 0x4e, 0xd5, 0x92, 0x75,
0xfa, 0x3f, 0xb5, 0x03, 0xef, 0xc0, 0x9a, 0xcc, 0x19, 0x30, 0x42, 0x24, 0x82, 0x63, 0x8a, 0x15,
0xe8, 0xe7, 0xda, 0x51, 0xbd, 0x65, 0xeb, 0xae, 0xd9, 0x30, 0x86, 0xb9, 0xe0, 0x9e, 0xbb, 0x09,
0x1b, 0x22, 0x07, 0xe1, 0xb6, 0x68, 0x4a, 0xd9, 0x95, 0x3f, 0x71, 0xe0, 0x7c, 0xae, 0x22, 0xbb,
0x19, 0x15, 0xa6, 0xc3, 0xb6, 0x27, 0x36, 0x88, 0xe3, 0x97, 0x72, 0x64, 0x8c, 0x5f, 0x70, 0x5b,
0xb1, 0x02, 0xd7, 0x67, 0x1a, 0x16, 0xe9, 0xc5, 0xaa, 0x97, 0x55, 0xb9, 0x17, 0x44, 0xa6, 0x44,
0xc8, 0x47, 0xb9, 0x81, 0x1f, 0x8b, 0xdc, 0x06, 0xb3, 0x22, 0xbb, 0x5a, 0xb1, 0x87, 0xac, 0x8a,
0xe8, 0x05, 0x5a, 0x66, 0xca, 0x1e, 0x6f, 0x69, 0x9d, 0xfb, 0xd7, 0x0e, 0xb0, 0x2f, 0x4d, 0x79,
0x3c, 0xa3, 0x1b, 0x52, 0x1d, 0xcb, 0xb9, 0x90, 0x8f, 0x63, 0x2c, 0x4e, 0xa6, 0x47, 0x5f, 0xe4,
0x33, 0x75, 0x8f, 0x5e, 0xc9, 0xee, 0xd1, 0xdf, 0x00, 0xc0, 0xe3, 0x97, 0xbe, 0x76, 0x45, 0x5e,
0xc0, 0x73, 0xaf, 0x68, 0xb0, 0xf4, 0xaa, 0xbb, 0xf6, 0xf2, 0xab, 0xee, 0x85, 0x97, 0x5d, 0x75,
0x7f, 0x08, 0xeb, 0xd6, 0xb8, 0xf5, 0xb6, 0xaa, 0x0b, 0x60, 0xe7, 0x05, 0x17, 0xc0, 0xff, 0xe9,
0x40, 0x75, 0x2f, 0x9a, 0x98, 0x71, 0x4b, 0xc7, 0x8e, 0x5b, 0x4a, 0x5b, 0xd2, 0xd3, 0xa6, 0x42,
0xaa, 0x18, 0x0b, 0x64, 0x5b, 0xd0, 0xf2, 0xc7, 0x29, 0x1e, 0xbb, 0x8f, 0xa3, 0xf8, 0xcc, 0x8f,
0x07, 0x62, 0xaf, 0x6f, 0x57, 0x3a, 0x8e, 0x97, 0xab, 0x61, 0x1b, 0x50, 0xd5, 0x4a, 0x97, 0x08,
0xb0, 0x88, 0x8e, 0x1b, 0xdd, 0x79, 0xcc, 0x64, 0xc4, 0x40, 0x96, 0x90, 0x95, 0xec, 0xef, 0x85,
0xab, 0x2c, 0x44, 0xa7, 0xac, 0x0a, 0xed, 0x1a, 0x2e, 0x1f, 0x91, 0xc9, 0x50, 0x8f, 0x2a, 0xbb,
0xff, 0xee, 0xc0, 0x02, 0xad, 0x00, 0x0a, 0xbb, 0xe0, 0x70, 0x1d, 0xa0, 0xa4, 0x99, 0xaf, 0x78,
0x79, 0x98, 0xb9, 0x56, 0xbe, 0x49, 0x45, 0x0f, 0xdb, 0xcc, 0x39, 0xb9, 0x0c, 0x75, 0x51, 0xd2,
0xb9, 0x15, 0x44, 0x92, 0x81, 0xec, 0x12, 0xd4, 0x4e, 0xa2, 0x89, 0xf2, 0x4e, 0x40, 0xc5, 0xe7,
0xa3, 0x89, 0x47, 0x78, 0x36, 0x1e, 0x6c, 0x4f, 0x0c, 0x5e, 0xd8, 0x9c, 0x3c, 0x8c, 0x56, 0x57,
0x37, 0x6b, 0x2e, 0x46, 0x0e, 0x75, 0xb7, 0x60, 0xf5, 0x41, 0x34, 0xe0, 0x46, 0x4c, 0x69, 0x2e,
0x37, 0xbb, 0xdf, 0x72, 0x60, 0x59, 0x11, 0xb3, 0x6b, 0x50, 0x43, 0x57, 0x22, 0x77, 0x50, 0xd0,
0xf7, 0x72, 0x48, 0xe7, 0x11, 0x05, 0xea, 0x5e, 0x8a, 0x38, 0x64, 0x6e, 0xa5, 0x8a, 0x37, 0x64,
0x5e, 0x93, 0x1e, 0x6e, 0xce, 0xd9, 0xc8, 0xa1, 0xee, 0x5f, 0x38, 0xb0, 0x62, 0xf5, 0x81, 0xc7,
0xc3, 0x91, 0x9f, 0xa4, 0xf2, 0xae, 0x43, 0x6e, 0x8f, 0x09, 0x99, 0x51, 0xc6, 0x8a, 0x1d, 0x65,
0xd4, 0xf1, 0xaf, 0xaa, 0x19, 0xff, 0xba, 0x09, 0xf5, 0x2c, 0x2b, 0xa8, 0x66, 0xe9, 0x54, 0xec,
0x51, 0xdd, 0x38, 0x66, 0x44, 0xd8, 0x4e, 0x3f, 0x1a, 0x45, 0xb1, 0x0c, 0xb2, 0x8b, 0x82, 0xfb,
0x21, 0x34, 0x0c, 0x7a, 0x1c, 0x46, 0xc8, 0xd3, 0xb3, 0x28, 0x7e, 0xaa, 0x82, 0x9d, 0xb2, 0xa8,
0x2f, 0xd6, 0x2b, 0xd9, 0xc5, 0xba, 0xfb, 0x97, 0x0e, 0xac, 0x20, 0x0f, 0x06, 0xe1, 0xf0, 0x20,
0x1a, 0x05, 0xfd, 0x19, 0xed, 0xbd, 0x62, 0x37, 0xa9, 0x19, 0x14, 0x2f, 0xda, 0x30, 0xf2, 0xb6,
0x3a, 0x1d, 0x4a, 0x41, 0xd4, 0x65, 0x94, 0x54, 0xe4, 0xf3, 0x23, 0x3f, 0x91, 0xcc, 0x2f, 0x8d,
0x9c, 0x05, 0xa2, 0x3c, 0x21, 0x10, 0xfb, 0x29, 0xef, 0x8d, 0x83, 0xd1, 0x28, 0x10, 0xb4, 0xc2,
0x05, 0x2a, 0xab, 0x72, 0xbf, 0x5f, 0x81, 0x86, 0x54, 0xc1, 0xbb, 0x83, 0x21, 0x97, 0x37, 0x19,
0xe4, 0x48, 0x6a, 0x75, 0x61, 0x20, 0xaa, 0xde, 0x72, 0x3d, 0x0d, 0x24, 0xbf, 0xad, 0xd5, 0xe2,
0xb6, 0xbe, 0x0e, 0x75, 0x64, 0xaf, 0x77, 0xc9, 0xc7, 0x15, 0xb7, 0x20, 0x19, 0xa0, 0x6a, 0xb7,
0xa9, 0x76, 0x21, 0xab, 0x25, 0xe0, 0x85, 0xf7, 0x1e, 0xef, 0x43, 0x53, 0x36, 0x43, 0xeb, 0x4e,
0xda, 0x21, 0x63, 0x70, 0x6b, 0x4f, 0x3c, 0x8b, 0x52, 0x7d, 0xb9, 0xad, 0xbe, 0x5c, 0x7e, 0xd9,
0x97, 0x8a, 0x92, 0xee, 0xa8, 0xc5, 0xda, 0xdc, 0x8b, 0xfd, 0xc9, 0x89, 0x32, 0x6b, 0x03, 0x9d,
0x78, 0x43, 0x30, 0xdb, 0x82, 0x05, 0xfc, 0x4c, 0x69, 0xeb, 0x72, 0xa1, 0x13, 0x24, 0xec, 0x1a,
0x2c, 0xf0, 0xc1, 0x90, 0xab, 0x53, 0x1c, 0xb3, 0xcf, 0xd3, 0xb8, 0x47, 0x9e, 0x20, 0x40, 0x15,
0x80, 0x68, 0x4e, 0x05, 0xd8, 0x9a, 0x7e, 0x11, 0x8b, 0xf7, 0x07, 0xee, 0x06, 0xb0, 0x07, 0x82,
0x6b, 0xcd, 0x28, 0xf4, 0x6f, 0x57, 0xa1, 0x61, 0xc0, 0x28, 0xcd, 0x43, 0x1c, 0x70, 0x6f, 0x10,
0xf8, 0x63, 0x9e, 0xf2, 0x58, 0x72, 0x6a, 0x0e, 0x45, 0x3a, 0xff, 0x74, 0xd8, 0x8b, 0xa6, 0x69,
0x6f, 0xc0, 0x87, 0x31, 0x17, 0xc6, 0x17, 0x8d, 0x81, 0x85, 0x22, 0xdd, 0xd8, 0x7f, 0x66, 0xd2,
0x09, 0x7e, 0xc8, 0xa1, 0x2a, 0xa6, 0x2c, 0xd6, 0xa8, 0x96, 0xc5, 0x94, 0xc5, 0x8a, 0xe4, 0xf5,
0xd0, 0x42, 0x89, 0x1e, 0x7a, 0x0f, 0x36, 0x85, 0xc6, 0x91, 0xb2, 0xd9, 0xcb, 0xb1, 0xc9, 0x9c,
0x5a, 0xb6, 0x05, 0x6d, 0x1c, 0xb3, 0x62, 0xf0, 0x24, 0xf8, 0xa6, 0x88, 0xf2, 0x38, 0x5e, 0x01,
0x47, 0x5a, 0x14, 0x47, 0x8b, 0x56, 0xdc, 0x9a, 0x15, 0x70, 0xa2, 0xf5, 0x9f, 0xd9, 0xb4, 0x75,
0x49, 0x9b, 0xc3, 0xdd, 0x15, 0x68, 0x1c, 0xa6, 0xd1, 0x44, 0x6d, 0x4a, 0x0b, 0x9a, 0xa2, 0x28,
0x73, 0x14, 0x5e, 0x83, 0x8b, 0xc4, 0x45, 0x8f, 0xa2, 0x49, 0x34, 0x8a, 0x86, 0xb3, 0xc3, 0xe9,
0x51, 0xd2, 0x8f, 0x83, 0x09, 0x9e, 0x78, 0xdc, 0x7f, 0x74, 0x60, 0xdd, 0xaa, 0x95, 0x61, 0xa1,
0x4f, 0x0b, 0x96, 0xd6, 0x97, 0xcb, 0x82, 0xf1, 0xd6, 0x0c, 0x75, 0x28, 0x08, 0x45, 0x40, 0xee,
0xb1, 0xbc, 0x6f, 0xbe, 0x05, 0xab, 0x6a, 0x64, 0xea, 0x43, 0xc1, 0x85, 0x9d, 0x22, 0x17, 0xca,
0xef, 0x5b, 0xf2, 0x03, 0xd5, 0xc4, 0x2f, 0xc9, 0xdb, 0xc7, 0x01, 0xcd, 0x51, 0xc5, 0x07, 0xf4,
0xfd, 0x92, 0x79, 0x4a, 0x50, 0x23, 0xe8, 0x6b, 0x30, 0x71, 0x7f, 0xcf, 0x01, 0xc8, 0x46, 0x87,
0x8c, 0x91, 0xa9, 0x74, 0x91, 0x10, 0x6d, 0xa8, 0xef, 0xb7, 0xa0, 0xa9, 0x6f, 0x46, 0x32, 0x2b,
0xd1, 0x50, 0x18, 0x3a, 0x72, 0x57, 0x61, 0x75, 0x38, 0x8a, 0x8e, 0xc8, 0xc4, 0x52, 0xd2, 0x4b,
0x22, 0x33, 0x35, 0x5a, 0x02, 0xbe, 0x2b, 0xd1, 0xcc, 0xa4, 0xd4, 0x0c, 0x93, 0xe2, 0x7e, 0xbb,
0xa2, 0xe3, 0xe9, 0xd9, 0x9c, 0xe7, 0x4a, 0x19, 0xdb, 0x2e, 0x28, 0xc7, 0x39, 0xe1, 0x6b, 0x8a,
0x84, 0x1d, 0xbc, 0xf4, 0xa0, 0xfe, 0x21, 0xb4, 0x62, 0xa1, 0x7d, 0x94, 0x6a, 0xaa, 0xbd, 0x40,
0x35, 0xad, 0xc4, 0x96, 0xdd, 0xf9, 0x24, 0xb4, 0xfd, 0xc1, 0x29, 0x8f, 0xd3, 0x80, 0x8e, 0x4a,
0x64, 0xf4, 0x85, 0x42, 0x5d, 0x35, 0x70, 0xb2, 0xc5, 0x57, 0x61, 0x55, 0x66, 0xc7, 0x68, 0x4a,
0x99, 0xd1, 0x99, 0xc1, 0x48, 0xe8, 0xfe, 0x99, 0x0a, 0xdd, 0xdb, 0x7b, 0x38, 0x7f, 0x45, 0xcc,
0xd9, 0x55, 0x72, 0xb3, 0xfb, 0x84, 0x0c, 0xa3, 0x0f, 0xd4, 0x79, 0xac, 0x6a, 0xdc, 0x54, 0x0f,
0xe4, 0xb5, 0x87, 0xbd, 0xa4, 0xb5, 0x57, 0x59, 0x52, 0xf7, 0x07, 0x0e, 0x2c, 0xed, 0x45, 0x93,
0x3d, 0x79, 0x67, 0x4f, 0x82, 0xa0, 0x73, 0xcf, 0x54, 0xf1, 0x05, 0xb7, 0xf9, 0xa5, 0xb6, 0x76,
0x25, 0x6f, 0x6b, 0x7f, 0x19, 0x5e, 0xa3, 0x68, 0x40, 0x1c, 0x4d, 0xa2, 0x18, 0x85, 0xd1, 0x1f,
0x09, 0xc3, 0x1a, 0x85, 0xe9, 0x89, 0x52, 0x63, 0x2f, 0x22, 0xa1, 0x63, 0x17, 0x1e, 0x17, 0x84,
0x33, 0x2c, 0x7d, 0x03, 0xa1, 0xdd, 0x8a, 0x15, 0xee, 0x67, 0xa1, 0x4e, 0xce, 0x2d, 0x4d, 0xeb,
0x1d, 0xa8, 0x9f, 0x44, 0x93, 0xde, 0x49, 0x10, 0xa6, 0x4a, 0xb8, 0x5b, 0x99, 0xd7, 0xb9, 0x47,
0x0b, 0xa2, 0x09, 0xdc, 0x1f, 0x55, 0x61, 0xe9, 0x7e, 0x78, 0x1a, 0x05, 0x7d, 0x8a, 0xf2, 0x8f,
0xf9, 0x38, 0x52, 0x99, 0x78, 0xf8, 0x1b, 0x97, 0x82, 0xb2, 0x52, 0x26, 0xa9, 0x0c, 0xd3, 0xab,
0x22, 0x9a, 0xfb, 0x38, 0xcb, 0x96, 0x15, 0xa2, 0x63, 0x20, 0xe8, 0xd8, 0xc7, 0x66, 0x62, 0xb1,
0x2c, 0x65, 0xa9, 0x8c, 0x0b, 0x46, 0x2a, 0x23, 0xdd, 0x09, 0x89, 0xfc, 0x02, 0xe2, 0xaf, 0x65,
0x4f, 0x15, 0xe9, 0x20, 0x12, 0x73, 0x11, 0xc5, 0x21, 0xc7, 0x61, 0x49, 0x1e, 0x44, 0x4c, 0x10,
0x9d, 0x0b, 0xf1, 0x81, 0xa0, 0x11, 0xca, 0xd7, 0x84, 0xd0, 0xd9, 0xca, 0xe7, 0x26, 0xd7, 0x05,
0xcf, 0xe7, 0x60, 0xd4, 0xd0, 0x03, 0xae, 0x15, 0xa9, 0x98, 0x03, 0x88, 0x6c, 0xe0, 0x3c, 0x6e,
0x1c, 0x5f, 0x44, 0xe2, 0x90, 0x3a, 0xbe, 0x20, 0xa3, 0xf8, 0xa3, 0xd1, 0x91, 0xdf, 0x7f, 0x4a,
0xa9, 0xe7, 0x94, 0x27, 0x54, 0xf7, 0x6c, 0x90, 0x32, 0x06, 0xb2, 0xdd, 0xa4, 0x5b, 0xc5, 0x9a,
0x67, 0x42, 0x6c, 0x1b, 0x1a, 0x74, 0x64, 0x93, 0xfb, 0xd9, 0xa2, 0xfd, 0x6c, 0x9b, 0x67, 0x3a,
0xda, 0x51, 0x93, 0xc8, 0xbc, 0x79, 0x58, 0xb5, 0x53, 0x79, 0xbe, 0x0c, 0xec, 0xd6, 0x60, 0x20,
0xf7, 0x5b, 0x1f, 0x19, 0xb3, 0x9d, 0x72, 0xac, 0x9d, 0x2a, 0x59, 0xb1, 0x4a, 0xe9, 0x8a, 0xb9,
0xbb, 0xd0, 0x38, 0x30, 0x92, 0x96, 0x89, 0x35, 0x54, 0xba, 0xb2, 0x64, 0x27, 0x03, 0x31, 0x3a,
0xac, 0x98, 0x1d, 0xba, 0xbf, 0x00, 0x6c, 0x3f, 0x48, 0x52, 0x3d, 0xbe, 0x2c, 0x4b, 0x5a, 0x9d,
0xdc, 0xb3, 0x44, 0xa3, 0x86, 0xc4, 0x28, 0x01, 0xe8, 0x96, 0xc8, 0x50, 0xca, 0x4f, 0x6c, 0x0b,
0x96, 0x03, 0x01, 0xe5, 0x25, 0x41, 0x51, 0xea, 0x7a, 0xf4, 0xd7, 0x24, 0x68, 0x59, 0xd1, 0xef,
0x3b, 0xb0, 0x24, 0xa7, 0x86, 0xde, 0x46, 0x21, 0x5d, 0xbb, 0xee, 0x59, 0x58, 0x79, 0xa2, 0x6e,
0x91, 0x87, 0xab, 0x65, 0x3c, 0xcc, 0xa0, 0x36, 0xf1, 0xd3, 0x13, 0x3a, 0xa0, 0xd4, 0x3d, 0xfa,
0xcd, 0xda, 0xe2, 0xd0, 0x2c, 0x64, 0x85, 0x0e, 0xcc, 0x65, 0xb9, 0xea, 0x42, 0x25, 0x17, 0x70,
0x9c, 0x14, 0x65, 0x25, 0x08, 0x5c, 0x5f, 0x36, 0xc8, 0x7c, 0xa9, 0x0c, 0xce, 0xd6, 0x4b, 0x36,
0x91, 0x5f, 0x2f, 0x49, 0xea, 0xe9, 0x7a, 0xb7, 0x0b, 0x9d, 0x3b, 0x7c, 0xc4, 0x53, 0x7e, 0x6b,
0x34, 0xca, 0xb7, 0xff, 0x1a, 0x5c, 0x2c, 0xa9, 0x93, 0x4e, 0xcb, 0x5d, 0x58, 0xbb, 0xc3, 0x8f,
0xa6, 0xc3, 0x7d, 0x7e, 0x9a, 0xdd, 0x08, 0x32, 0xa8, 0x25, 0x27, 0xd1, 0x99, 0xdc, 0x5b, 0xfa,
0xcd, 0xde, 0x00, 0x18, 0x21, 0x4d, 0x2f, 0x99, 0xf0, 0xbe, 0x4a, 0x51, 0x25, 0xe4, 0x70, 0xc2,
0xfb, 0xee, 0x7b, 0xc0, 0xcc, 0x76, 0xe4, 0x14, 0x50, 0x0f, 0x4c, 0x8f, 0x7a, 0xc9, 0x2c, 0x49,
0xf9, 0x58, 0xe5, 0xde, 0x9a, 0x90, 0x7b, 0x15, 0x9a, 0x07, 0xfe, 0xcc, 0xe3, 0xdf, 0x90, 0x19,
0xf3, 0x78, 0x36, 0xf6, 0x67, 0xc8, 0xca, 0xfa, 0x6c, 0x4c, 0xd5, 0xee, 0x7f, 0x55, 0x60, 0x51,
0x50, 0x62, 0xab, 0x03, 0x9e, 0xa4, 0x41, 0x28, 0x6e, 0xc3, 0x64, 0xab, 0x06, 0x54, 0xe0, 0x8d,
0x4a, 0x09, 0x6f, 0x48, 0x6f, 0x55, 0xa5, 0xfb, 0x49, 0x26, 0xb0, 0x30, 0x74, 0x6b, 0xb2, 0x2c,
0x03, 0x71, 0x38, 0xcb, 0x80, 0x5c, 0xb0, 0x24, 0xd3, 0x36, 0x62, 0x7c, 0x8a, 0x69, 0x25, 0x3b,
0x98, 0x50, 0xa9, 0x4e, 0x5b, 0x12, 0x5c, 0x53, 0xd0, 0x69, 0x05, 0xdd, 0xb5, 0xfc, 0x0a, 0xba,
0x4b, 0xb8, 0xb0, 0x2f, 0xd2, 0x5d, 0xf0, 0x0a, 0xba, 0xcb, 0x65, 0xd0, 0xbe, 0xcb, 0xb9, 0xc7,
0xd1, 0x2a, 0x2a, 0x76, 0xfa, 0x8e, 0x03, 0x6d, 0x69, 0xd0, 0x75, 0x1d, 0x7b, 0xcb, 0xb2, 0xfe,
0xa5, 0x49, 0x79, 0x57, 0x60, 0x85, 0x6c, 0xb2, 0x8e, 0x0a, 0xc9, 0x10, 0x96, 0x05, 0xe2, 0x3c,
0x54, 0xe8, 0x7e, 0x1c, 0x8c, 0xe4, 0xa6, 0x98, 0x90, 0x0a, 0x2c, 0xe1, 0xf9, 0x98, 0xb6, 0xc4,
0xf1, 0x74, 0xd9, 0xfd, 0x1b, 0x07, 0xd6, 0x8c, 0x01, 0x4b, 0x2e, 0xfc, 0x10, 0x54, 0x16, 0x82,
0x08, 0x1e, 0x09, 0x61, 0xba, 0x60, 0x3b, 0x27, 0xd9, 0x67, 0x16, 0x31, 0x6d, 0xa6, 0x3f, 0xa3,
0x01, 0x26, 0xd3, 0xb1, 0xf4, 0x40, 0x4c, 0x08, 0x19, 0xe9, 0x8c, 0xf3, 0xa7, 0x9a, 0xa4, 0x4a,
0x24, 0x16, 0x46, 0x97, 0xcc, 0xe8, 0x4b, 0x68, 0x22, 0x91, 0x57, 0x65, 0x83, 0xee, 0x3f, 0x3b,
0xb0, 0x2e, 0x9c, 0x42, 0xe9, 0x72, 0xeb, 0x8c, 0xe9, 0x45, 0xe1, 0x05, 0x0b, 0x89, 0xdc, 0x3b,
0xe7, 0xc9, 0x32, 0xfb, 0xcc, 0x2b, 0x3a, 0xb2, 0x3a, 0xb9, 0x60, 0xce, 0x5e, 0x54, 0xcb, 0xf6,
0xe2, 0x05, 0x2b, 0x5d, 0x16, 0x2c, 0x59, 0x28, 0x0d, 0x96, 0xdc, 0x5e, 0x82, 0x85, 0xa4, 0x1f,
0x4d, 0xb8, 0xbb, 0x09, 0x1b, 0xf6, 0xe4, 0xa4, 0x0a, 0xfa, 0xae, 0x03, 0x9d, 0xbb, 0x22, 0x74,
0x18, 0x84, 0xc3, 0xbd, 0x20, 0x49, 0xa3, 0x58, 0x3f, 0x11, 0xb9, 0x04, 0x90, 0xa4, 0x7e, 0x9c,
0x8a, 0xe4, 0x2f, 0x19, 0xe6, 0xc8, 0x10, 0x1c, 0x23, 0x0f, 0x07, 0xa2, 0x56, 0xec, 0x8d, 0x2e,
0xe3, 0xc6, 0x50, 0xe2, 0x43, 0x2f, 0x3a, 0x3e, 0x4e, 0xb8, 0x76, 0x5b, 0x4d, 0x0c, 0x4f, 0xbe,
0x28, 0xf1, 0x78, 0xd6, 0xe3, 0xa7, 0xa4, 0x6a, 0x85, 0x3f, 0x98, 0x43, 0xdd, 0xbf, 0x72, 0x60,
0x35, 0x1b, 0xe4, 0x2e, 0x82, 0xb6, 0x76, 0x10, 0x43, 0x33, 0xb4, 0x83, 0x0a, 0xc0, 0x04, 0x83,
0x5e, 0x10, 0xca, 0xb1, 0x19, 0x08, 0x49, 0xac, 0x2c, 0x45, 0x53, 0x95, 0x68, 0x67, 0x42, 0xe2,
0x16, 0x3d, 0xc5, 0xaf, 0x45, 0x96, 0x9d, 0x2c, 0x51, 0xee, 0xde, 0x38, 0xa5, 0xaf, 0x16, 0x85,
0x43, 0x2c, 0x8b, 0xca, 0x3e, 0x2d, 0x11, 0x8a, 0x3f, 0xdd, 0xdf, 0x77, 0xe0, 0x62, 0xc9, 0xe2,
0x4a, 0xc9, 0xb8, 0x03, 0x6b, 0xc7, 0xba, 0x52, 0x2d, 0x80, 0x10, 0x8f, 0x4d, 0x15, 0xeb, 0xb6,
0x27, 0xed, 0x15, 0x3f, 0x40, 0xf7, 0x98, 0xe2, 0x46, 0x62, 0x49, 0xad, 0x04, 0x94, 0x62, 0xc5,
0xf6, 0x1f, 0x54, 0xa1, 0x25, 0xee, 0x40, 0xc4, 0x63, 0x4d, 0x1e, 0xb3, 0x8f, 0x60, 0x49, 0x3e,
0xb6, 0x65, 0xe7, 0x65, 0xb7, 0xf6, 0xf3, 0xde, 0xee, 0x66, 0x1e, 0x96, 0xbc, 0xb3, 0xfe, 0x5b,
0x3f, 0xf8, 0xd7, 0x3f, 0xac, 0xac, 0xb0, 0xc6, 0x8d, 0xd3, 0x77, 0x6f, 0x0c, 0x79, 0x98, 0x60,
0x1b, 0xbf, 0x06, 0x90, 0x3d, 0x43, 0x65, 0x1d, 0xed, 0x64, 0xe4, 0xde, 0xd7, 0x76, 0x2f, 0x96,
0xd4, 0xc8, 0x76, 0x2f, 0x52, 0xbb, 0xeb, 0x6e, 0x0b, 0xdb, 0x0d, 0xc2, 0x20, 0x15, 0x6f, 0x52,
0x3f, 0x70, 0xb6, 0xd8, 0x00, 0x9a, 0xe6, 0x2b, 0x53, 0xa6, 0x8e, 0xcc, 0x25, 0x6f, 0x5c, 0xbb,
0xaf, 0x95, 0xd6, 0xa9, 0x78, 0x01, 0xf5, 0x71, 0xde, 0x6d, 0x63, 0x1f, 0x53, 0xa2, 0xc8, 0x7a,
0x19, 0x41, 0xcb, 0x7e, 0x4c, 0xca, 0x5e, 0x37, 0xc4, 0xba, 0xf0, 0x94, 0xb5, 0xfb, 0xc6, 0x9c,
0x5a, 0xd9, 0xd7, 0x1b, 0xd4, 0xd7, 0x05, 0x97, 0x61, 0x5f, 0x7d, 0xa2, 0x51, 0x4f, 0x59, 0x3f,
0x70, 0xb6, 0xb6, 0xbf, 0x75, 0x09, 0xea, 0x3a, 0xc8, 0xc5, 0xbe, 0x0e, 0x2b, 0xd6, 0x25, 0x15,
0x53, 0xd3, 0x28, 0xbb, 0xd3, 0xea, 0xbe, 0x5e, 0x5e, 0x29, 0x3b, 0xbe, 0x44, 0x1d, 0x77, 0xd8,
0x26, 0x76, 0x2c, 0x6f, 0x79, 0x6e, 0xd0, 0xd5, 0x9c, 0xc8, 0x0c, 0x7c, 0x2a, 0xe6, 0x99, 0x5d,
0x2c, 0x59, 0xf3, 0x2c, 0x5c, 0x44, 0x59, 0xf3, 0x2c, 0xde, 0x46, 0xb9, 0xaf, 0x53, 0x77, 0x9b,
0x6c, 0xc3, 0xec, 0x4e, 0x07, 0x9f, 0x38, 0xe5, 0x72, 0x9a, 0x6f, 0x4d, 0xd9, 0x1b, 0x9a, 0xb1,
0xca, 0xde, 0xa0, 0x6a, 0x16, 0x29, 0x3e, 0x44, 0x75, 0x3b, 0xd4, 0x15, 0x63, 0xb4, 0x7d, 0xe6,
0x53, 0x53, 0xf6, 0x55, 0xa8, 0xeb, 0x87, 0x55, 0xec, 0x82, 0xf1, 0x9a, 0xcd, 0x7c, 0xed, 0xd5,
0xed, 0x14, 0x2b, 0xca, 0x18, 0xc3, 0x6c, 0x19, 0x19, 0x63, 0x1f, 0xce, 0x4b, 0x97, 0xf8, 0x88,
0xff, 0x38, 0x33, 0x29, 0x79, 0x21, 0x7b, 0xd3, 0x61, 0x1f, 0xc2, 0xb2, 0x7a, 0xaf, 0xc6, 0x36,
0xcb, 0xdf, 0xdd, 0x75, 0x2f, 0x14, 0x70, 0xa9, 0x3d, 0x6e, 0x01, 0x64, 0x6f, 0xad, 0xb4, 0x9c,
0x15, 0x5e, 0x80, 0xe9, 0x45, 0x2c, 0x79, 0x98, 0x35, 0xa4, 0x97, 0x65, 0xf6, 0x53, 0x2e, 0xf6,
0x66, 0x46, 0x5f, 0xfa, 0xc8, 0xeb, 0x05, 0x0d, 0xba, 0x9b, 0xb4, 0x76, 0x6d, 0x46, 0x82, 0x1b,
0xf2, 0x33, 0x95, 0xd5, 0x7c, 0x07, 0x1a, 0xc6, 0xfb, 0x2d, 0xa6, 0x5a, 0x28, 0xbe, 0xfd, 0xea,
0x76, 0xcb, 0xaa, 0xe4, 0x70, 0xbf, 0x00, 0x2b, 0xd6, 0x43, 0x2c, 0x2d, 0x19, 0x65, 0xcf, 0xbc,
0xb4, 0x64, 0x94, 0xbf, 0xdd, 0xfa, 0x0a, 0x34, 0x8c, 0x67, 0x53, 0xcc, 0xc8, 0xe6, 0xca, 0x3d,
0x98, 0xd2, 0x23, 0x2a, 0x7b, 0x65, 0xb5, 0x41, 0xf3, 0x6d, 0xb9, 0x75, 0x9c, 0x2f, 0xa5, 0xf6,
0x22, 0x93, 0x7c, 0x1d, 0x5a, 0xf6, 0x43, 0x2a, 0x2d, 0x55, 0xa5, 0x4f, 0xb2, 0xb4, 0x54, 0xcd,
0x79, 0x7d, 0x25, 0x19, 0x72, 0x6b, 0x5d, 0x77, 0x72, 0xe3, 0x63, 0x79, 0xc5, 0xf3, 0x9c, 0x7d,
0x09, 0x55, 0x87, 0xcc, 0xb5, 0x66, 0xd9, 0xf3, 0x31, 0x3b, 0x23, 0x5b, 0x73, 0x7b, 0x21, 0x2d,
0xdb, 0x5d, 0xa3, 0xc6, 0x1b, 0x2c, 0x9b, 0x81, 0xb0, 0x07, 0x94, 0x73, 0x6d, 0xd8, 0x03, 0x33,
0x2d, 0xdb, 0xb0, 0x07, 0x56, 0x6a, 0x76, 0xde, 0x1e, 0xa4, 0x01, 0xb6, 0x11, 0xc2, 0x6a, 0x2e,
0x9d, 0x41, 0x0b, 0x4b, 0x79, 0xfe, 0x57, 0xf7, 0xd2, 0x8b, 0xb3, 0x20, 0x6c, 0x35, 0xa3, 0xd4,
0xcb, 0x0d, 0x95, 0xae, 0xf7, 0xeb, 0xd0, 0x34, 0x1f, 0xc0, 0x68, 0x0b, 0x51, 0xf2, 0x6c, 0x47,
0x5b, 0x88, 0xb2, 0x17, 0x33, 0x6a, 0x73, 0x59, 0xd3, 0xec, 0x06, 0x37, 0xd7, 0x7e, 0x2f, 0x90,
0xa9, 0xcc, 0xb2, 0x87, 0x10, 0x99, 0xca, 0x2c, 0x7d, 0x64, 0xa0, 0x36, 0x97, 0xad, 0x5b, 0x73,
0x11, 0xb1, 0x3d, 0xf6, 0x15, 0x58, 0x35, 0x72, 0x85, 0x0e, 0x67, 0x61, 0x5f, 0x33, 0x6a, 0x31,
0x93, 0xb4, 0x5b, 0xe6, 0x79, 0xba, 0x17, 0xa8, 0xfd, 0x35, 0xd7, 0x9a, 0x04, 0x32, 0xe9, 0x0e,
0x34, 0xcc, 0x3c, 0xa4, 0x17, 0xb4, 0x7b, 0xc1, 0xa8, 0x32, 0x93, 0x2a, 0x6f, 0x3a, 0xec, 0x8f,
0x1d, 0x68, 0x5a, 0x59, 0x3d, 0x56, 0x04, 0x3b, 0xd7, 0x4e, 0xc7, 0xac, 0x33, 0x1b, 0x72, 0x3d,
0x1a, 0xe4, 0xfe, 0xd6, 0x17, 0xac, 0x45, 0xf8, 0xd8, 0x3a, 0xc1, 0x5c, 0xcf, 0xbf, 0xa3, 0x7e,
0x9e, 0x27, 0x30, 0xb3, 0x6d, 0x9f, 0xdf, 0x74, 0xd8, 0x07, 0xe2, 0x9f, 0x02, 0x54, 0xc4, 0x82,
0x19, 0x8a, 0x34, 0xbf, 0x64, 0xe6, 0x33, 0xf9, 0x6b, 0xce, 0x4d, 0x87, 0x7d, 0x4d, 0x3c, 0x97,
0x96, 0xdf, 0xd2, 0xca, 0xbf, 0xea, 0xf7, 0xee, 0x15, 0x9a, 0xcd, 0x25, 0xf7, 0xa2, 0x35, 0x9b,
0xbc, 0x25, 0xb9, 0x25, 0x46, 0x27, 0x5f, 0xc1, 0x67, 0x2a, 0xb1, 0xf0, 0x32, 0x7e, 0xfe, 0x20,
0xc7, 0x62, 0x90, 0x92, 0xdc, 0x62, 0x8f, 0x57, 0x6c, 0xc6, 0xdd, 0xa2, 0xb1, 0x5e, 0x71, 0xdf,
0x9c, 0x3b, 0xd6, 0x1b, 0x74, 0x22, 0xc5, 0x11, 0x1f, 0x00, 0x64, 0x01, 0x33, 0x96, 0x8b, 0x1e,
0x69, 0xab, 0x50, 0x8c, 0xa9, 0xd9, 0x3c, 0xa8, 0x82, 0x4c, 0xd8, 0xe2, 0x57, 0x85, 0xa8, 0x4a,
0xfa, 0x44, 0x8f, 0xbe, 0x18, 0xf8, 0xea, 0x76, 0xcb, 0xaa, 0xca, 0x04, 0x55, 0xb5, 0xcf, 0x1e,
0xc3, 0xca, 0x7e, 0x14, 0x3d, 0x9d, 0x4e, 0x74, 0x48, 0xd7, 0x8e, 0xdf, 0xec, 0xf9, 0xc9, 0x49,
0x37, 0x37, 0x0b, 0xf7, 0x32, 0x35, 0xd5, 0x65, 0x1d, 0xa3, 0xa9, 0x1b, 0x1f, 0x67, 0xe1, 0xba,
0xe7, 0xcc, 0x87, 0x35, 0xed, 0x01, 0xe8, 0x81, 0x77, 0xed, 0x66, 0xcc, 0xa8, 0x59, 0xa1, 0x0b,
0xcb, 0x27, 0x53, 0xa3, 0xbd, 0x91, 0xa8, 0x36, 0x6f, 0x3a, 0xec, 0x00, 0x9a, 0x77, 0x78, 0x3f,
0x1a, 0x70, 0x19, 0x71, 0x59, 0xcf, 0x06, 0xae, 0x43, 0x35, 0xdd, 0x15, 0x0b, 0xb4, 0x75, 0xe2,
0xc4, 0x9f, 0xc5, 0xfc, 0x1b, 0x37, 0x3e, 0x96, 0xb1, 0x9c, 0xe7, 0x4a, 0x27, 0xaa, 0xf8, 0x93,
0xa5, 0x13, 0x73, 0x01, 0x2b, 0x4b, 0x27, 0x16, 0x02, 0x56, 0xd6, 0x52, 0xab, 0xf8, 0x17, 0x1b,
0xc1, 0x5a, 0x21, 0xc6, 0xa5, 0xfd, 0x88, 0x79, 0x91, 0xb1, 0xee, 0xe5, 0xf9, 0x04, 0x76, 0x6f,
0x5b, 0x76, 0x6f, 0x87, 0xb0, 0x72, 0x87, 0x8b, 0xc5, 0x12, 0xf7, 0xc6, 0xb9, 0x67, 0x59, 0xe6,
0x1d, 0x73, 0x5e, 0x29, 0x52, 0x9d, 0x6d, 0xf4, 0xe8, 0xd2, 0x96, 0x7d, 0x15, 0x1a, 0xf7, 0x78,
0xaa, 0x2e, 0x8a, 0xb5, 0x37, 0x96, 0xbb, 0x39, 0xee, 0x96, 0xdc, 0x33, 0xdb, 0x3c, 0x43, 0xad,
0xdd, 0xe0, 0x83, 0x21, 0x17, 0xea, 0xa9, 0x17, 0x0c, 0x9e, 0xb3, 0x5f, 0xa1, 0xc6, 0x75, 0x6e,
0xc9, 0xa6, 0x71, 0xbf, 0x68, 0x36, 0xbe, 0x9a, 0xc3, 0xcb, 0x5a, 0x0e, 0xa3, 0x01, 0x37, 0xcc,
0x7f, 0x08, 0x0d, 0x23, 0xf1, 0x49, 0x0b, 0x50, 0x31, 0x89, 0x4b, 0x0b, 0x50, 0x49, 0x9e, 0x94,
0x7b, 0x8d, 0xfa, 0x71, 0xd9, 0xe5, 0xac, 0x1f, 0x91, 0x1b, 0x95, 0xf5, 0x74, 0xe3, 0x63, 0x7f,
0x9c, 0x3e, 0x67, 0x4f, 0xe8, 0x89, 0x96, 0x79, 0x19, 0x9e, 0x79, 0x83, 0xf9, 0x7b, 0x73, 0xbd,
0x58, 0x46, 0x95, 0xed, 0x21, 0x8a, 0xae, 0xc8, 0x4b, 0xf8, 0x0c, 0xc0, 0x61, 0x1a, 0x4d, 0xee,
0xf8, 0x7c, 0x1c, 0x85, 0x99, 0xae, 0xcd, 0x2e, 0x7c, 0x33, 0xfd, 0x65, 0xdc, 0xfa, 0xb2, 0x27,
0x86, 0x3f, 0x6e, 0xe5, 0x12, 0x28, 0xe6, 0x9a, 0x7b, 0x27, 0xac, 0x17, 0xa4, 0xe4, 0x5e, 0xf8,
0xa6, 0x83, 0xde, 0x75, 0x16, 0x51, 0xd5, 0xde, 0x75, 0x21, 0x58, 0xab, 0xd5, 0x5e, 0x49, 0xf8,
0xf5, 0x00, 0xea, 0x59, 0x88, 0xee, 0x42, 0x96, 0xbc, 0x66, 0x05, 0xf4, 0xb4, 0x55, 0x2c, 0x04,
0xce, 0xdc, 0x36, 0x2d, 0x15, 0xb0, 0x65, 0x5c, 0x2a, 0x8a, 0x86, 0x05, 0xb0, 0x2e, 0x06, 0xa8,
0x4d, 0x3c, 0x5d, 0x61, 0xaa, 0x99, 0x94, 0x04, 0xaf, 0xb4, 0x34, 0x97, 0xc6, 0x7e, 0xac, 0x73,
0x36, 0x72, 0xab, 0xb8, 0x3e, 0x45, 0xd5, 0x3c, 0x86, 0xb5, 0x42, 0xe0, 0x42, 0x8b, 0xf4, 0xbc,
0x78, 0x91, 0x16, 0xe9, 0xb9, 0x31, 0x0f, 0xf7, 0x3c, 0x75, 0xb9, 0xea, 0x02, 0x76, 0x99, 0x9c,
0x05, 0x69, 0xff, 0xe4, 0x03, 0x67, 0xeb, 0x68, 0x91, 0xfe, 0x59, 0xec, 0x53, 0xff, 0x1b, 0x00,
0x00, 0xff, 0xff, 0x49, 0x74, 0xd2, 0x22, 0x8b, 0x4c, 0x00, 0x00,
}

@ -217,6 +217,23 @@ func request_Lightning_ListChannels_0(ctx context.Context, marshaler runtime.Mar
}
var (
filter_Lightning_ClosedChannels_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
)
func request_Lightning_ClosedChannels_0(ctx context.Context, marshaler runtime.Marshaler, client LightningClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq ClosedChannelsRequest
var metadata runtime.ServerMetadata
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_Lightning_ClosedChannels_0); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.ClosedChannels(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func request_Lightning_OpenChannelSync_0(ctx context.Context, marshaler runtime.Marshaler, client LightningClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq OpenChannelRequest
var metadata runtime.ServerMetadata
@ -1108,6 +1125,35 @@ func RegisterLightningHandler(ctx context.Context, mux *runtime.ServeMux, conn *
})
mux.Handle("GET", pattern_Lightning_ClosedChannels_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)
defer cancel()
if cn, ok := w.(http.CloseNotifier); ok {
go func(done <-chan struct{}, closed <-chan bool) {
select {
case <-done:
case <-closed:
cancel()
}
}(ctx.Done(), cn.CloseNotify())
}
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Lightning_ClosedChannels_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Lightning_ClosedChannels_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("POST", pattern_Lightning_OpenChannelSync_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)
defer cancel()
@ -1685,6 +1731,8 @@ var (
pattern_Lightning_ListChannels_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "channels"}, ""))
pattern_Lightning_ClosedChannels_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "channels", "closed"}, ""))
pattern_Lightning_OpenChannelSync_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "channels"}, ""))
pattern_Lightning_CloseChannel_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 1, 0, 4, 1, 5, 3}, []string{"v1", "channels", "channel_point.funding_txid_str", "channel_point.output_index"}, ""))
@ -1747,6 +1795,8 @@ var (
forward_Lightning_ListChannels_0 = runtime.ForwardResponseMessage
forward_Lightning_ClosedChannels_0 = runtime.ForwardResponseMessage
forward_Lightning_OpenChannelSync_0 = runtime.ForwardResponseMessage
forward_Lightning_CloseChannel_0 = runtime.ForwardResponseStream

@ -341,6 +341,17 @@ service Lightning {
};
}
/** lncli: `closedchannels`
ClosedChannels returns a description of all the closed channels that
this node was a participant in.
*/
rpc ClosedChannels (ClosedChannelsRequest) returns (ClosedChannelsResponse) {
option (google.api.http) = {
get: "/v1/channels/closed"
};
}
/**
OpenChannelSync is a synchronous version of the OpenChannel RPC call. This
call is meant to be consumed by clients to the REST proxy. As with all
@ -920,6 +931,7 @@ message Channel {
bool private = 17 [json_name = "private"];
}
message ListChannelsRequest {
bool active_only = 1;
bool inactive_only = 2;
@ -931,6 +943,58 @@ message ListChannelsResponse {
repeated Channel channels = 11 [json_name = "channels"];
}
message ChannelCloseSummary {
/// The outpoint (txid:index) of the funding transaction.
string channel_point = 1 [json_name = "channel_point"];
/// The unique channel ID for the channel.
uint64 chan_id = 2 [json_name = "chan_id"];
/// The hash of the genesis block that this channel resides within.
string chain_hash = 3 [json_name = "chain_hash"];
/// The txid of the transaction which ultimately closed this channel.
string closing_tx_hash = 4 [json_name = "closing_tx_hash"];
/// Public key of the remote peer that we formerly had a channel with.
string remote_pubkey = 5 [json_name = "remote_pubkey"];
/// Total capacity of the channel.
int64 capacity = 6 [json_name = "capacity"];
/// Height at which the funding transaction was spent.
uint32 close_height = 7 [json_name = "close_height"];
/// Settled balance at the time of channel closure
int64 settled_balance = 8 [json_name = "settled_balance"];
/// The sum of all the time-locked outputs at the time of channel closure
int64 time_locked_balance = 9 [json_name = "time_locked_balance"];
enum ClosureType {
COOPERATIVE_CLOSE = 0;
LOCAL_FORCE_CLOSE = 1;
REMOTE_FORCE_CLOSE = 2;
BREACH_CLOSE = 3;
FUNDING_CANCELED = 4;
}
/// Details on how the channel was closed.
ClosureType close_type = 10 [json_name = "close_type"];
}
message ClosedChannelsRequest {
bool cooperative = 1;
bool local_force = 2;
bool remote_force = 3;
bool breach = 4;
bool funding_canceled = 5;
}
message ClosedChannelsResponse {
repeated ChannelCloseSummary channels = 1 [json_name = "channels"];
}
message Peer {
/// The identity pubkey of the peer
string pub_key = 1 [json_name = "pub_key"];

@ -148,6 +148,60 @@
]
}
},
"/v1/channels/closed": {
"get": {
"summary": "* lncli: `closedchannels`\nClosedChannels returns a description of all the closed channels that \nthis node was a participant in.",
"operationId": "ClosedChannels",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/lnrpcClosedChannelsResponse"
}
}
},
"parameters": [
{
"name": "cooperative",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
},
{
"name": "local_force",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
},
{
"name": "remote_force",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
},
{
"name": "breach",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
},
{
"name": "funding_canceled",
"in": "query",
"required": false,
"type": "boolean",
"format": "boolean"
}
],
"tags": [
"Lightning"
]
}
},
"/v1/channels/pending": {
"get": {
"summary": "* lncli: `pendingchannels`\nPendingChannels returns a list of all the channels that are currently\nconsidered \"pending\". A channel is pending if it has finished the funding\nworkflow and is waiting for confirmations for the funding txn, or is in the\nprocess of closure, either initiated cooperatively or non-cooperatively.",
@ -867,6 +921,17 @@
}
},
"definitions": {
"ChannelCloseSummaryClosureType": {
"type": "string",
"enum": [
"COOPERATIVE_CLOSE",
"LOCAL_FORCE_CLOSE",
"REMOTE_FORCE_CLOSE",
"BREACH_CLOSE",
"FUNDING_CANCELED"
],
"default": "COOPERATIVE_CLOSE"
},
"PendingChannelsResponseClosedChannel": {
"type": "object",
"properties": {
@ -1121,6 +1186,56 @@
}
}
},
"lnrpcChannelCloseSummary": {
"type": "object",
"properties": {
"channel_point": {
"type": "string",
"description": "/ The outpoint (txid:index) of the funding transaction."
},
"chan_id": {
"type": "string",
"format": "uint64",
"description": "/ The unique channel ID for the channel."
},
"chain_hash": {
"type": "string",
"description": "/ The hash of the genesis block that this channel resides within."
},
"closing_tx_hash": {
"type": "string",
"description": "/ The txid of the transaction which ultimately closed this channel."
},
"remote_pubkey": {
"type": "string",
"description": "/ Public key of the remote peer that we formerly had a channel with."
},
"capacity": {
"type": "string",
"format": "int64",
"description": "/ Total capacity of the channel."
},
"close_height": {
"type": "integer",
"format": "int64",
"description": "/ Height at which the funding transaction was spent."
},
"settled_balance": {
"type": "string",
"format": "int64",
"title": "/ Settled balance at the time of channel closure"
},
"time_locked_balance": {
"type": "string",
"format": "int64",
"title": "/ The sum of all the time-locked outputs at the time of channel closure"
},
"close_type": {
"$ref": "#/definitions/ChannelCloseSummaryClosureType",
"description": "/ Details on how the channel was closed."
}
}
},
"lnrpcChannelCloseUpdate": {
"type": "object",
"properties": {
@ -1300,6 +1415,17 @@
}
}
},
"lnrpcClosedChannelsResponse": {
"type": "object",
"properties": {
"channels": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcChannelCloseSummary"
}
}
}
},
"lnrpcConfirmationUpdate": {
"type": "object",
"properties": {