lnrpc: adds PendingHTLCs to ForceClosedChannels

This commit is contained in:
Conner Fromknecht 2017-11-08 19:27:45 -08:00
parent 7408aa6c8d
commit 1f34f117ff
No known key found for this signature in database
GPG Key ID: 39DE78FBE6ACB0EF
4 changed files with 543 additions and 359 deletions

@ -51,6 +51,7 @@ It has these top-level messages:
PendingUpdate
OpenChannelRequest
OpenStatusUpdate
PendingHTLC
PendingChannelRequest
PendingChannelResponse
WalletBalanceRequest
@ -1660,13 +1661,78 @@ func _OpenStatusUpdate_OneofSizer(msg proto.Message) (n int) {
return n
}
type PendingHTLC struct {
// / The direction within the channel that the htlc was sent
Incoming bool `protobuf:"varint,1,opt,name=incoming" json:"incoming,omitempty"`
// / The total value of the htlc
Amount int64 `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
// / The final output to be swept back to the user's wallet
Outpoint string `protobuf:"bytes,3,opt,name=outpoint" json:"outpoint,omitempty"`
// / The next block height at which we can spend the current stage
MaturityHeight uint32 `protobuf:"varint,4,opt,name=maturity_height" json:"maturity_height,omitempty"`
// *
// The number of blocks remaining until the current stage can be swept.
// Negative values indicate how many blocks have passed since becoming
// mature.
BlocksTilMaturity int32 `protobuf:"varint,5,opt,name=blocks_til_maturity" json:"blocks_til_maturity,omitempty"`
// / Indicates whether the htlc is in its first or second stage of recovery
Stage uint32 `protobuf:"varint,6,opt,name=stage" json:"stage,omitempty"`
}
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{43} }
func (m *PendingHTLC) GetIncoming() bool {
if m != nil {
return m.Incoming
}
return false
}
func (m *PendingHTLC) GetAmount() int64 {
if m != nil {
return m.Amount
}
return 0
}
func (m *PendingHTLC) GetOutpoint() string {
if m != nil {
return m.Outpoint
}
return ""
}
func (m *PendingHTLC) GetMaturityHeight() uint32 {
if m != nil {
return m.MaturityHeight
}
return 0
}
func (m *PendingHTLC) GetBlocksTilMaturity() int32 {
if m != nil {
return m.BlocksTilMaturity
}
return 0
}
func (m *PendingHTLC) GetStage() uint32 {
if m != nil {
return m.Stage
}
return 0
}
type PendingChannelRequest struct {
}
func (m *PendingChannelRequest) Reset() { *m = PendingChannelRequest{} }
func (m *PendingChannelRequest) String() string { return proto.CompactTextString(m) }
func (*PendingChannelRequest) ProtoMessage() {}
func (*PendingChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
func (*PendingChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
type PendingChannelResponse struct {
// / The balance in satoshis encumbered in pending channels
@ -1682,7 +1748,7 @@ type PendingChannelResponse struct {
func (m *PendingChannelResponse) Reset() { *m = PendingChannelResponse{} }
func (m *PendingChannelResponse) String() string { return proto.CompactTextString(m) }
func (*PendingChannelResponse) ProtoMessage() {}
func (*PendingChannelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
func (*PendingChannelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (m *PendingChannelResponse) GetTotalLimboBalance() int64 {
if m != nil {
@ -1724,7 +1790,7 @@ func (m *PendingChannelResponse_PendingChannel) Reset() { *m = PendingCh
func (m *PendingChannelResponse_PendingChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelResponse_PendingChannel) ProtoMessage() {}
func (*PendingChannelResponse_PendingChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{44, 0}
return fileDescriptor0, []int{45, 0}
}
func (m *PendingChannelResponse_PendingChannel) GetRemoteNodePub() string {
@ -1791,7 +1857,7 @@ func (m *PendingChannelResponse_PendingOpenChannel) Reset() {
func (m *PendingChannelResponse_PendingOpenChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelResponse_PendingOpenChannel) ProtoMessage() {}
func (*PendingChannelResponse_PendingOpenChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{44, 1}
return fileDescriptor0, []int{45, 1}
}
func (m *PendingChannelResponse_PendingOpenChannel) GetChannel() *PendingChannelResponse_PendingChannel {
@ -1847,7 +1913,7 @@ func (m *PendingChannelResponse_ClosedChannel) Reset() { *m = PendingCha
func (m *PendingChannelResponse_ClosedChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelResponse_ClosedChannel) ProtoMessage() {}
func (*PendingChannelResponse_ClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{44, 2}
return fileDescriptor0, []int{45, 2}
}
func (m *PendingChannelResponse_ClosedChannel) GetChannel() *PendingChannelResponse_PendingChannel {
@ -1873,8 +1939,14 @@ type PendingChannelResponse_ForceClosedChannel struct {
LimboBalance int64 `protobuf:"varint,3,opt,name=limbo_balance" json:"limbo_balance,omitempty"`
// / The height at which funds can be sweeped into the wallet
MaturityHeight uint32 `protobuf:"varint,4,opt,name=maturity_height" json:"maturity_height,omitempty"`
// / Remaining # of blocks until funds can be sweeped into the wallet
BlocksTilMaturity uint32 `protobuf:"varint,5,opt,name=blocks_til_maturity" json:"blocks_til_maturity,omitempty"`
//
// Remaining # of blocks until the commitment output can be swept.
// Negative values indicate how many blocks have passed since becoming
// mature.
BlocksTilMaturity int32 `protobuf:"varint,5,opt,name=blocks_til_maturity" json:"blocks_til_maturity,omitempty"`
// / The total value of funds successfully recovered from this channel
RecoveredBalance int64 `protobuf:"varint,6,opt,name=recovered_balance" json:"recovered_balance,omitempty"`
PendingHtlcs []*PendingHTLC `protobuf:"bytes,8,rep,name=pending_htlcs" json:"pending_htlcs,omitempty"`
}
func (m *PendingChannelResponse_ForceClosedChannel) Reset() {
@ -1883,7 +1955,7 @@ func (m *PendingChannelResponse_ForceClosedChannel) Reset() {
func (m *PendingChannelResponse_ForceClosedChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelResponse_ForceClosedChannel) ProtoMessage() {}
func (*PendingChannelResponse_ForceClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{44, 3}
return fileDescriptor0, []int{45, 3}
}
func (m *PendingChannelResponse_ForceClosedChannel) GetChannel() *PendingChannelResponse_PendingChannel {
@ -1914,13 +1986,27 @@ func (m *PendingChannelResponse_ForceClosedChannel) GetMaturityHeight() uint32 {
return 0
}
func (m *PendingChannelResponse_ForceClosedChannel) GetBlocksTilMaturity() uint32 {
func (m *PendingChannelResponse_ForceClosedChannel) GetBlocksTilMaturity() int32 {
if m != nil {
return m.BlocksTilMaturity
}
return 0
}
func (m *PendingChannelResponse_ForceClosedChannel) GetRecoveredBalance() int64 {
if m != nil {
return m.RecoveredBalance
}
return 0
}
func (m *PendingChannelResponse_ForceClosedChannel) GetPendingHtlcs() []*PendingHTLC {
if m != nil {
return m.PendingHtlcs
}
return nil
}
type WalletBalanceRequest struct {
// / If only witness outputs should be considered when calculating the wallet's balance
WitnessOnly bool `protobuf:"varint,1,opt,name=witness_only,json=witnessOnly" json:"witness_only,omitempty"`
@ -1929,7 +2015,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{45} }
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
func (m *WalletBalanceRequest) GetWitnessOnly() bool {
if m != nil {
@ -1946,7 +2032,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{46} }
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (m *WalletBalanceResponse) GetBalance() int64 {
if m != nil {
@ -1961,7 +2047,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{47} }
func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
type ChannelBalanceResponse struct {
// / Sum of channels balances denominated in satoshis
@ -1971,7 +2057,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{48} }
func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
func (m *ChannelBalanceResponse) GetBalance() int64 {
if m != nil {
@ -1990,7 +2076,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{49} }
func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
func (m *QueryRoutesRequest) GetPubKey() string {
if m != nil {
@ -2013,7 +2099,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{50} }
func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
func (m *QueryRoutesResponse) GetRoutes() []*Route {
if m != nil {
@ -2037,7 +2123,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{51} }
func (*Hop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
func (m *Hop) GetChanId() uint64 {
if m != nil {
@ -2107,7 +2193,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{52} }
func (*Route) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
func (m *Route) GetTotalTimeLock() uint32 {
if m != nil {
@ -2145,7 +2231,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{53} }
func (*NodeInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
func (m *NodeInfoRequest) GetPubKey() string {
if m != nil {
@ -2168,7 +2254,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{54} }
func (*NodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
func (m *NodeInfo) GetNode() *LightningNode {
if m != nil {
@ -2206,7 +2292,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{55} }
func (*LightningNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
func (m *LightningNode) GetLastUpdate() uint32 {
if m != nil {
@ -2244,7 +2330,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{56} }
func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }
func (m *NodeAddress) GetNetwork() string {
if m != nil {
@ -2270,7 +2356,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{57} }
func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} }
func (m *RoutingPolicy) GetTimeLockDelta() uint32 {
if m != nil {
@ -2324,7 +2410,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{58} }
func (*ChannelEdge) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }
func (m *ChannelEdge) GetChannelId() uint64 {
if m != nil {
@ -2388,7 +2474,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{59} }
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }
// / Returns a new instance of the directed channel graph.
type ChannelGraph struct {
@ -2401,7 +2487,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{60} }
func (*ChannelGraph) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }
func (m *ChannelGraph) GetNodes() []*LightningNode {
if m != nil {
@ -2428,7 +2514,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{61} }
func (*ChanInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }
func (m *ChanInfoRequest) GetChanId() uint64 {
if m != nil {
@ -2443,7 +2529,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{62} }
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }
type NetworkInfo struct {
GraphDiameter uint32 `protobuf:"varint,1,opt,name=graph_diameter" json:"graph_diameter,omitempty"`
@ -2460,7 +2546,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{63} }
func (*NetworkInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }
func (m *NetworkInfo) GetGraphDiameter() uint32 {
if m != nil {
@ -2531,7 +2617,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{64} }
func (*StopRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }
type StopResponse struct {
}
@ -2539,7 +2625,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{65} }
func (*StopResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }
type GraphTopologySubscription struct {
}
@ -2547,7 +2633,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{66} }
func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} }
type GraphTopologyUpdate struct {
NodeUpdates []*NodeUpdate `protobuf:"bytes,1,rep,name=node_updates,json=nodeUpdates" json:"node_updates,omitempty"`
@ -2558,7 +2644,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{67} }
func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
func (m *GraphTopologyUpdate) GetNodeUpdates() []*NodeUpdate {
if m != nil {
@ -2591,7 +2677,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{68} }
func (*NodeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
func (m *NodeUpdate) GetAddresses() []string {
if m != nil {
@ -2637,7 +2723,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{69} }
func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
func (m *ChannelEdgeUpdate) GetChanId() uint64 {
if m != nil {
@ -2695,7 +2781,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{70} }
func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
func (m *ClosedChannelUpdate) GetChanId() uint64 {
if m != nil {
@ -2732,7 +2818,7 @@ type SetAliasRequest struct {
func (m *SetAliasRequest) Reset() { *m = SetAliasRequest{} }
func (m *SetAliasRequest) String() string { return proto.CompactTextString(m) }
func (*SetAliasRequest) ProtoMessage() {}
func (*SetAliasRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
func (*SetAliasRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
func (m *SetAliasRequest) GetNewAlias() string {
if m != nil {
@ -2747,7 +2833,7 @@ type SetAliasResponse struct {
func (m *SetAliasResponse) Reset() { *m = SetAliasResponse{} }
func (m *SetAliasResponse) String() string { return proto.CompactTextString(m) }
func (*SetAliasResponse) ProtoMessage() {}
func (*SetAliasResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
func (*SetAliasResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }
type Invoice struct {
// *
@ -2793,7 +2879,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{73} }
func (*Invoice) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }
func (m *Invoice) GetMemo() string {
if m != nil {
@ -2898,7 +2984,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{74} }
func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
func (m *AddInvoiceResponse) GetRHash() []byte {
if m != nil {
@ -2926,7 +3012,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{75} }
func (*PaymentHash) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
func (m *PaymentHash) GetRHashStr() string {
if m != nil {
@ -2950,7 +3036,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{76} }
func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
func (m *ListInvoiceRequest) GetPendingOnly() bool {
if m != nil {
@ -2966,7 +3052,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{77} }
func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }
func (m *ListInvoiceResponse) GetInvoices() []*Invoice {
if m != nil {
@ -2981,7 +3067,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{78} }
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }
type Payment struct {
// / The payment hash
@ -2999,7 +3085,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{79} }
func (*Payment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }
func (m *Payment) GetPaymentHash() string {
if m != nil {
@ -3042,7 +3128,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{80} }
func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }
type ListPaymentsResponse struct {
// / The list of payments
@ -3052,7 +3138,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{81} }
func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} }
func (m *ListPaymentsResponse) GetPayments() []*Payment {
if m != nil {
@ -3067,7 +3153,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{82} }
func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }
type DeleteAllPaymentsResponse struct {
}
@ -3075,7 +3161,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{83} }
func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} }
type DebugLevelRequest struct {
Show bool `protobuf:"varint,1,opt,name=show" json:"show,omitempty"`
@ -3085,7 +3171,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{84} }
func (*DebugLevelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} }
func (m *DebugLevelRequest) GetShow() bool {
if m != nil {
@ -3108,7 +3194,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{85} }
func (*DebugLevelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }
func (m *DebugLevelResponse) GetSubSystems() string {
if m != nil {
@ -3125,7 +3211,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{86} }
func (*PayReqString) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }
func (m *PayReqString) GetPayReq() string {
if m != nil {
@ -3149,7 +3235,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{87} }
func (*PayReq) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }
func (m *PayReq) GetDestination() string {
if m != nil {
@ -3220,7 +3306,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{88} }
func (*FeeReportRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} }
type ChannelFeeReport struct {
// / The channel that this fee report belongs to.
@ -3236,7 +3322,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{89} }
func (*ChannelFeeReport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }
func (m *ChannelFeeReport) GetChanPoint() string {
if m != nil {
@ -3274,7 +3360,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{90} }
func (*FeeReportResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
func (m *FeeReportResponse) GetChannelFees() []*ChannelFeeReport {
if m != nil {
@ -3297,7 +3383,7 @@ type FeeUpdateRequest struct {
func (m *FeeUpdateRequest) Reset() { *m = FeeUpdateRequest{} }
func (m *FeeUpdateRequest) String() string { return proto.CompactTextString(m) }
func (*FeeUpdateRequest) ProtoMessage() {}
func (*FeeUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
func (*FeeUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
type isFeeUpdateRequest_Scope interface {
isFeeUpdateRequest_Scope()
@ -3427,7 +3513,7 @@ type FeeUpdateResponse struct {
func (m *FeeUpdateResponse) Reset() { *m = FeeUpdateResponse{} }
func (m *FeeUpdateResponse) String() string { return proto.CompactTextString(m) }
func (*FeeUpdateResponse) ProtoMessage() {}
func (*FeeUpdateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
func (*FeeUpdateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
func init() {
proto.RegisterType((*CreateWalletRequest)(nil), "lnrpc.CreateWalletRequest")
@ -3473,6 +3559,7 @@ func init() {
proto.RegisterType((*PendingUpdate)(nil), "lnrpc.PendingUpdate")
proto.RegisterType((*OpenChannelRequest)(nil), "lnrpc.OpenChannelRequest")
proto.RegisterType((*OpenStatusUpdate)(nil), "lnrpc.OpenStatusUpdate")
proto.RegisterType((*PendingHTLC)(nil), "lnrpc.PendingHTLC")
proto.RegisterType((*PendingChannelRequest)(nil), "lnrpc.PendingChannelRequest")
proto.RegisterType((*PendingChannelResponse)(nil), "lnrpc.PendingChannelResponse")
proto.RegisterType((*PendingChannelResponse_PendingChannel)(nil), "lnrpc.PendingChannelResponse.PendingChannel")
@ -5430,299 +5517,303 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 4700 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x3b, 0x5d, 0x6f, 0x1c, 0x4b,
0x56, 0xe9, 0xf1, 0x8c, 0xed, 0x39, 0x33, 0xe3, 0x8f, 0xf2, 0xd7, 0x64, 0x92, 0x9b, 0x4d, 0x6a,
0xa3, 0x1b, 0xe3, 0x5d, 0xd9, 0x89, 0x97, 0xbd, 0x64, 0x13, 0xe0, 0xca, 0xf9, 0xf4, 0x65, 0x7d,
0x73, 0xbd, 0xed, 0xe4, 0x06, 0x76, 0x85, 0x9a, 0xf6, 0x74, 0x79, 0xdc, 0x9b, 0x9e, 0xee, 0xbe,
0xdd, 0x35, 0x76, 0x66, 0xa3, 0x48, 0xe8, 0x82, 0xe0, 0x05, 0xb4, 0x0f, 0x8b, 0x40, 0x3c, 0x80,
0x56, 0x42, 0x3c, 0xc2, 0x1f, 0x40, 0xe2, 0x07, 0x20, 0x90, 0x90, 0xf6, 0x09, 0x09, 0xf1, 0xc4,
0x1f, 0xe0, 0x81, 0x77, 0x54, 0x9f, 0x5d, 0xd5, 0xdd, 0x4e, 0xb2, 0x02, 0xf1, 0xe4, 0xa9, 0x53,
0xa7, 0xcf, 0xa9, 0x3a, 0x75, 0xea, 0x7c, 0xd5, 0x31, 0xb4, 0xb3, 0x74, 0xb8, 0x9d, 0x66, 0x09,
0x4d, 0x50, 0x2b, 0x8a, 0xb3, 0x74, 0x38, 0xb8, 0x3a, 0x4a, 0x92, 0x51, 0x44, 0x76, 0xfc, 0x34,
0xdc, 0xf1, 0xe3, 0x38, 0xa1, 0x3e, 0x0d, 0x93, 0x38, 0x17, 0x48, 0xf8, 0x0e, 0xac, 0x3c, 0xcc,
0x88, 0x4f, 0xc9, 0x4b, 0x3f, 0x8a, 0x08, 0x75, 0xc9, 0x57, 0x13, 0x92, 0x53, 0x34, 0x80, 0xf9,
0xd4, 0xcf, 0xf3, 0xf3, 0x24, 0x0b, 0xfa, 0xce, 0x75, 0x67, 0xb3, 0xeb, 0xea, 0x31, 0x5e, 0x87,
0x55, 0xfb, 0x93, 0x3c, 0x4d, 0xe2, 0x9c, 0x30, 0x52, 0x2f, 0xe2, 0x28, 0x19, 0xbe, 0xfa, 0xa5,
0x48, 0xd9, 0x9f, 0x48, 0x52, 0xff, 0xe5, 0x40, 0xe7, 0x79, 0xe6, 0xc7, 0xb9, 0x3f, 0x64, 0x8b,
0x45, 0x7d, 0x98, 0xa3, 0xaf, 0xbd, 0x53, 0x3f, 0x3f, 0xe5, 0x24, 0xda, 0xae, 0x1a, 0xa2, 0x75,
0x98, 0xf5, 0xc7, 0xc9, 0x24, 0xa6, 0xfd, 0xc6, 0x75, 0x67, 0x73, 0xc6, 0x95, 0x23, 0xf4, 0x6d,
0x58, 0x8e, 0x27, 0x63, 0x6f, 0x98, 0xc4, 0x27, 0x61, 0x36, 0x16, 0x5b, 0xee, 0xcf, 0x5c, 0x77,
0x36, 0x5b, 0x6e, 0x75, 0x02, 0x5d, 0x03, 0x38, 0x66, 0xcb, 0x10, 0x2c, 0x9a, 0x9c, 0x85, 0x01,
0x41, 0x18, 0xba, 0x72, 0x44, 0xc2, 0xd1, 0x29, 0xed, 0xb7, 0x38, 0x21, 0x0b, 0xc6, 0x68, 0xd0,
0x70, 0x4c, 0xbc, 0x9c, 0xfa, 0xe3, 0xb4, 0x3f, 0xcb, 0x57, 0x63, 0x40, 0xf8, 0x7c, 0x42, 0xfd,
0xc8, 0x3b, 0x21, 0x24, 0xef, 0xcf, 0xc9, 0x79, 0x0d, 0xc1, 0x7d, 0x58, 0x7f, 0x4a, 0xa8, 0xb1,
0xeb, 0x5c, 0x4a, 0x10, 0x1f, 0x00, 0x32, 0xc0, 0x8f, 0x08, 0xf5, 0xc3, 0x28, 0x47, 0x9f, 0x40,
0x97, 0x1a, 0xc8, 0x7d, 0xe7, 0xfa, 0xcc, 0x66, 0x67, 0x17, 0x6d, 0xf3, 0x53, 0xdf, 0x36, 0x3e,
0x70, 0x2d, 0x3c, 0xfc, 0xaf, 0x0e, 0x74, 0x8e, 0x48, 0x1c, 0xa8, 0xf3, 0x41, 0xd0, 0x0c, 0x48,
0x4e, 0xe5, 0xd9, 0xf0, 0xdf, 0xe8, 0x1b, 0xd0, 0x61, 0x7f, 0xbd, 0x9c, 0x66, 0x61, 0x3c, 0xe2,
0xa2, 0x6d, 0xbb, 0xc0, 0x40, 0x47, 0x1c, 0x82, 0x96, 0x60, 0xc6, 0x1f, 0x53, 0x2e, 0xd0, 0x19,
0x97, 0xfd, 0x44, 0x37, 0xa0, 0x9b, 0xfa, 0xd3, 0x31, 0x89, 0x69, 0x21, 0xc4, 0xae, 0xdb, 0x91,
0xb0, 0x7d, 0x26, 0xc5, 0x6d, 0x58, 0x31, 0x51, 0x14, 0xf5, 0x16, 0xa7, 0xbe, 0x6c, 0x60, 0x4a,
0x26, 0xb7, 0x60, 0x51, 0xe1, 0x67, 0x62, 0xb1, 0x5c, 0xac, 0x6d, 0x77, 0x41, 0x82, 0x95, 0x80,
0xfe, 0xcc, 0x81, 0xae, 0xd8, 0x92, 0xd0, 0x1f, 0x74, 0x13, 0x7a, 0xea, 0x4b, 0x92, 0x65, 0x49,
0x26, 0xb5, 0xc6, 0x06, 0xa2, 0x2d, 0x58, 0x52, 0x80, 0x34, 0x23, 0xe1, 0xd8, 0x1f, 0x11, 0xbe,
0xd5, 0xae, 0x5b, 0x81, 0xa3, 0xdd, 0x82, 0x62, 0x96, 0x4c, 0x28, 0xe1, 0x5b, 0xef, 0xec, 0x76,
0xa5, 0xb8, 0x5d, 0x06, 0x73, 0x6d, 0x14, 0xfc, 0xb5, 0x03, 0xdd, 0x87, 0xa7, 0x7e, 0x1c, 0x93,
0xe8, 0x30, 0x09, 0x63, 0xca, 0xd4, 0xe8, 0x64, 0x12, 0x07, 0x61, 0x3c, 0xf2, 0xe8, 0xeb, 0x50,
0x5d, 0x07, 0x0b, 0xc6, 0x16, 0x65, 0x8e, 0x99, 0x90, 0xa4, 0xfc, 0x2b, 0x70, 0x46, 0x2f, 0x99,
0xd0, 0x74, 0x42, 0xbd, 0x30, 0x0e, 0xc8, 0x6b, 0xbe, 0xa6, 0x9e, 0x6b, 0xc1, 0xf0, 0x6f, 0xc2,
0xd2, 0x01, 0xd3, 0xcf, 0x38, 0x8c, 0x47, 0x7b, 0x41, 0x90, 0x91, 0x3c, 0x67, 0x97, 0x26, 0x9d,
0x1c, 0xbf, 0x22, 0x53, 0x29, 0x17, 0x39, 0x62, 0xaa, 0x70, 0x9a, 0xe4, 0x54, 0xf2, 0xe3, 0xbf,
0xf1, 0xcf, 0x1d, 0x58, 0x64, 0xb2, 0xfd, 0xdc, 0x8f, 0xa7, 0x4a, 0x65, 0x0e, 0xa0, 0xcb, 0x48,
0x3d, 0x4f, 0xf6, 0xc4, 0xd5, 0x13, 0xaa, 0xb7, 0x29, 0x65, 0x51, 0xc2, 0xde, 0x36, 0x51, 0x1f,
0xc7, 0x34, 0x9b, 0xba, 0xd6, 0xd7, 0x83, 0x4f, 0x61, 0xb9, 0x82, 0xc2, 0x14, 0xac, 0x58, 0x1f,
0xfb, 0x89, 0x56, 0xa1, 0x75, 0xe6, 0x47, 0x13, 0x22, 0x2f, 0xba, 0x18, 0xdc, 0x6b, 0xdc, 0x75,
0xf0, 0xc7, 0xb0, 0x54, 0xf0, 0x94, 0x1a, 0x80, 0xa0, 0xa9, 0x45, 0xdc, 0x76, 0xf9, 0x6f, 0x26,
0x0a, 0x86, 0xf7, 0x30, 0x09, 0xf5, 0xdd, 0x62, 0x78, 0x7e, 0x10, 0x28, 0x05, 0xe1, 0xbf, 0x2f,
0xb2, 0x29, 0xf8, 0x16, 0x2c, 0x1b, 0xdf, 0xbf, 0x83, 0xd1, 0x5f, 0x3b, 0xb0, 0xfc, 0x8c, 0x9c,
0x4b, 0x71, 0x2b, 0x56, 0x77, 0xa1, 0x49, 0xa7, 0x29, 0xe1, 0x98, 0x0b, 0xbb, 0x37, 0xa5, 0xb4,
0x2a, 0x78, 0xdb, 0x72, 0xf8, 0x7c, 0x9a, 0x12, 0x97, 0x7f, 0x81, 0xbf, 0x80, 0x8e, 0x01, 0x44,
0x1b, 0xb0, 0xf2, 0xf2, 0xb3, 0xe7, 0xcf, 0x1e, 0x1f, 0x1d, 0x79, 0x87, 0x2f, 0x1e, 0x7c, 0xff,
0xf1, 0xef, 0x78, 0xfb, 0x7b, 0x47, 0xfb, 0x4b, 0x97, 0xd0, 0x3a, 0xa0, 0x67, 0x8f, 0x8f, 0x9e,
0x3f, 0x7e, 0x64, 0xc1, 0x1d, 0xb4, 0x08, 0x1d, 0x13, 0xd0, 0xc0, 0x03, 0xe8, 0x3f, 0x23, 0xe7,
0x2f, 0x43, 0x1a, 0x93, 0x3c, 0xb7, 0xd9, 0xe3, 0x6d, 0x40, 0xe6, 0x9a, 0xe4, 0x36, 0xfb, 0x30,
0xe7, 0x0b, 0x90, 0xb2, 0xc0, 0x72, 0x88, 0x3f, 0x06, 0x74, 0x14, 0x8e, 0xe2, 0xcf, 0x49, 0x9e,
0xfb, 0x23, 0xa2, 0x36, 0xbb, 0x04, 0x33, 0xe3, 0x7c, 0x24, 0x35, 0x9c, 0xfd, 0xc4, 0xdf, 0x81,
0x15, 0x0b, 0x4f, 0x12, 0xbe, 0x0a, 0xed, 0x3c, 0x1c, 0xc5, 0x3e, 0x9d, 0x64, 0x44, 0x92, 0x2e,
0x00, 0xf8, 0x09, 0xac, 0x7e, 0x49, 0xb2, 0xf0, 0x64, 0xfa, 0x3e, 0xf2, 0x36, 0x9d, 0x46, 0x99,
0xce, 0x63, 0x58, 0x2b, 0xd1, 0x91, 0xec, 0x85, 0x56, 0xc9, 0xf3, 0x9b, 0x77, 0xc5, 0xc0, 0xb8,
0x20, 0x0d, 0xf3, 0x82, 0xe0, 0x17, 0x80, 0x1e, 0x26, 0x71, 0x4c, 0x86, 0xf4, 0x90, 0x90, 0x4c,
0x2d, 0xe6, 0x5b, 0x86, 0x0e, 0x75, 0x76, 0x37, 0xe4, 0xc1, 0x96, 0x6f, 0x9d, 0x54, 0x2e, 0x04,
0xcd, 0x94, 0x64, 0x63, 0x4e, 0x78, 0xde, 0xe5, 0xbf, 0xf1, 0x0e, 0xac, 0x58, 0x64, 0x0b, 0x99,
0xa7, 0x84, 0x64, 0x9e, 0x5c, 0x5d, 0xcb, 0x55, 0x43, 0x7c, 0x07, 0xd6, 0x1e, 0x85, 0xf9, 0xb0,
0xba, 0x14, 0xf6, 0xc9, 0xe4, 0xd8, 0x2b, 0xae, 0x8e, 0x1a, 0x32, 0xf7, 0x52, 0xfe, 0x44, 0x3a,
0xdb, 0x3f, 0x72, 0xa0, 0xb9, 0xff, 0xfc, 0xe0, 0x21, 0xf3, 0xd4, 0x61, 0x3c, 0x4c, 0xc6, 0xcc,
0x28, 0x0b, 0x71, 0xe8, 0xf1, 0x85, 0x7e, 0xf6, 0x2a, 0xb4, 0xb9, 0x2d, 0x67, 0x9e, 0x90, 0xdb,
0x9f, 0xae, 0x5b, 0x00, 0x98, 0x17, 0x26, 0xaf, 0xd3, 0x30, 0xe3, 0x6e, 0x56, 0x39, 0xcf, 0x26,
0xb7, 0x52, 0xd5, 0x09, 0xfc, 0xcf, 0x4d, 0xe8, 0xed, 0x0d, 0x69, 0x78, 0x46, 0xa4, 0xd5, 0xe4,
0x5c, 0x39, 0x40, 0xae, 0x47, 0x8e, 0x98, 0x7d, 0xcf, 0xc8, 0x38, 0xa1, 0xc4, 0xb3, 0x8e, 0xc9,
0x06, 0x32, 0xac, 0xa1, 0x20, 0xe4, 0xa5, 0xcc, 0xfe, 0xf2, 0xf5, 0xb5, 0x5d, 0x1b, 0xc8, 0x44,
0xc6, 0x00, 0x4c, 0xca, 0x6c, 0x65, 0x4d, 0x57, 0x0d, 0x99, 0x3c, 0x86, 0x7e, 0xea, 0x0f, 0x43,
0x3a, 0xe5, 0x4e, 0x6a, 0xc6, 0xd5, 0x63, 0x46, 0x3b, 0x4a, 0x86, 0x7e, 0xe4, 0x1d, 0xfb, 0x91,
0x1f, 0x0f, 0x89, 0x74, 0xf8, 0x36, 0x10, 0x7d, 0x0c, 0x0b, 0x72, 0x49, 0x0a, 0x4d, 0xf8, 0xfd,
0x12, 0x94, 0xc5, 0x06, 0xc3, 0x64, 0x3c, 0x0e, 0x29, 0x0b, 0x05, 0xfa, 0xf3, 0x22, 0x36, 0x28,
0x20, 0x7c, 0x27, 0x62, 0x74, 0x2e, 0x64, 0xd8, 0x16, 0xdc, 0x2c, 0x20, 0xa3, 0x72, 0x42, 0x88,
0x97, 0x92, 0xcc, 0x7b, 0x75, 0xde, 0x07, 0x41, 0xa5, 0x80, 0xb0, 0xd3, 0x98, 0xc4, 0x39, 0xa1,
0x34, 0x22, 0x81, 0x5e, 0x50, 0x87, 0xa3, 0x55, 0x27, 0xd0, 0x6d, 0x58, 0x11, 0xd1, 0x49, 0xee,
0xd3, 0x24, 0x3f, 0x0d, 0x73, 0x2f, 0x27, 0x31, 0xed, 0x77, 0x39, 0x7e, 0xdd, 0x14, 0xba, 0x0b,
0x1b, 0x25, 0x70, 0x46, 0x86, 0x24, 0x3c, 0x23, 0x41, 0xbf, 0xc7, 0xbf, 0xba, 0x68, 0x1a, 0x5d,
0x87, 0x0e, 0x0b, 0xca, 0x26, 0x69, 0xe0, 0x53, 0x92, 0xf7, 0x17, 0xf8, 0x39, 0x98, 0x20, 0x74,
0x07, 0x7a, 0x29, 0x11, 0xee, 0xef, 0x94, 0x46, 0xc3, 0xbc, 0xbf, 0xc8, 0x7d, 0x4e, 0x47, 0x5e,
0x36, 0xa6, 0xbf, 0xae, 0x8d, 0x81, 0xd7, 0x60, 0xe5, 0x20, 0xcc, 0xa9, 0xd4, 0x25, 0x6d, 0xdf,
0xf6, 0x61, 0xd5, 0x06, 0xcb, 0xdb, 0x76, 0x1b, 0xe6, 0xa5, 0x62, 0xe4, 0xfd, 0x0e, 0x27, 0xbe,
0x2a, 0x89, 0x5b, 0x3a, 0xe9, 0x6a, 0x2c, 0xfc, 0x87, 0x0d, 0x68, 0xb2, 0x9b, 0x74, 0xf1, 0xad,
0x33, 0xaf, 0x70, 0xc3, 0xba, 0xc2, 0xa6, 0x41, 0x9d, 0xb1, 0x0c, 0x2a, 0x0f, 0x46, 0xa7, 0x94,
0x48, 0x79, 0x0b, 0x9d, 0x34, 0x20, 0xc5, 0x7c, 0x46, 0x86, 0x67, 0x5c, 0x31, 0xf5, 0x3c, 0x83,
0x30, 0xb5, 0xcd, 0x7d, 0x2a, 0xbe, 0x16, 0x5a, 0xa9, 0xc7, 0x6a, 0x8e, 0x7f, 0x39, 0x57, 0xcc,
0xf1, 0xef, 0xfa, 0x30, 0x17, 0xc6, 0xc7, 0xc9, 0x24, 0x0e, 0xb8, 0x06, 0xce, 0xbb, 0x6a, 0xc8,
0x2e, 0x79, 0xca, 0x03, 0x8f, 0x70, 0x4c, 0xa4, 0xea, 0x15, 0x00, 0x8c, 0x58, 0x84, 0x91, 0x73,
0x9b, 0xa2, 0x85, 0xfc, 0x09, 0x2c, 0x1b, 0x30, 0x29, 0xe1, 0x1b, 0xd0, 0x62, 0xbb, 0x57, 0xa1,
0xaa, 0x3a, 0x3b, 0x6e, 0x8c, 0xc4, 0x0c, 0x5e, 0x82, 0x85, 0xa7, 0x84, 0x7e, 0x16, 0x9f, 0x24,
0x8a, 0xd2, 0x7f, 0x37, 0x60, 0x51, 0x83, 0x24, 0xa1, 0x4d, 0x58, 0x0c, 0x03, 0x12, 0xd3, 0x90,
0x4e, 0x3d, 0x2b, 0x90, 0x29, 0x83, 0x99, 0x79, 0xf7, 0xa3, 0xd0, 0xcf, 0xa5, 0x81, 0x10, 0x03,
0xb4, 0x0b, 0xab, 0x4c, 0xb7, 0x94, 0xba, 0xe8, 0x63, 0x17, 0xf1, 0x53, 0xed, 0x1c, 0xbb, 0x0e,
0x0c, 0x2e, 0x0c, 0x50, 0xf1, 0x89, 0x30, 0x66, 0x75, 0x53, 0x4c, 0x6a, 0x82, 0x12, 0xdb, 0x72,
0x8b, 0xe3, 0x15, 0x80, 0x4a, 0x4a, 0x31, 0x2b, 0x62, 0xb7, 0x72, 0x4a, 0x61, 0xa4, 0x25, 0xf3,
0x95, 0xb4, 0x64, 0x13, 0x16, 0xf3, 0x69, 0x3c, 0x24, 0x81, 0x47, 0x13, 0xc6, 0x37, 0x8c, 0xf9,
0xe9, 0xcc, 0xbb, 0x65, 0x30, 0x4f, 0xa0, 0x48, 0x4e, 0x63, 0x42, 0xb9, 0x5d, 0x98, 0x77, 0xd5,
0x90, 0x99, 0x58, 0x8e, 0x22, 0x94, 0xbe, 0xed, 0xca, 0x11, 0xfe, 0x09, 0x77, 0x75, 0x3a, 0x47,
0x7a, 0xc1, 0xef, 0x21, 0xba, 0x02, 0x6d, 0xc1, 0x3f, 0x3f, 0xf5, 0x55, 0x36, 0xc7, 0x01, 0x47,
0xa7, 0x3e, 0x4b, 0x01, 0xac, 0x2d, 0x09, 0x8d, 0xef, 0x70, 0xd8, 0xbe, 0xd8, 0xd1, 0x4d, 0x58,
0x50, 0xd9, 0x57, 0xee, 0x45, 0xe4, 0x84, 0xaa, 0x98, 0x35, 0x9e, 0x8c, 0x19, 0xbb, 0xfc, 0x80,
0x9c, 0x50, 0xfc, 0x0c, 0x96, 0xe5, 0x6d, 0xfb, 0x22, 0x25, 0x8a, 0xf5, 0xf7, 0xca, 0xd6, 0x5c,
0xb8, 0xdb, 0x15, 0xa9, 0x45, 0x66, 0xa0, 0x5d, 0x32, 0xf1, 0xd8, 0x05, 0x24, 0xa7, 0x1f, 0x46,
0x49, 0x4e, 0x24, 0x41, 0x0c, 0xdd, 0x61, 0x94, 0xe4, 0xe5, 0x68, 0xdc, 0x84, 0x31, 0xb9, 0xe5,
0x93, 0xe1, 0x90, 0xdd, 0x52, 0xe1, 0xb0, 0xd5, 0x10, 0x13, 0x58, 0xe1, 0xc4, 0x94, 0x59, 0xd0,
0x41, 0xde, 0x87, 0xaf, 0xb2, 0x3b, 0x34, 0x93, 0x83, 0x55, 0x68, 0x9d, 0x24, 0xd9, 0x90, 0x48,
0x46, 0x62, 0x80, 0xff, 0xcd, 0x81, 0x65, 0xce, 0xe7, 0x88, 0xfa, 0x74, 0x92, 0xcb, 0xa5, 0xff,
0x3a, 0xf4, 0xd8, 0x32, 0x89, 0x52, 0x53, 0xc9, 0x65, 0x55, 0xdf, 0x28, 0x0e, 0x15, 0xc8, 0xfb,
0x97, 0x5c, 0x1b, 0x19, 0x7d, 0x0a, 0x5d, 0x33, 0xfd, 0xe5, 0x0c, 0x3b, 0xbb, 0x97, 0xd5, 0x12,
0x2b, 0xa7, 0xbe, 0x7f, 0xc9, 0xb5, 0x3e, 0x40, 0xf7, 0x01, 0xb8, 0x8f, 0xe4, 0x64, 0x65, 0x26,
0x74, 0xd9, 0xde, 0xa1, 0x21, 0xe8, 0xfd, 0x4b, 0xae, 0x81, 0xfe, 0x60, 0x1e, 0x66, 0x85, 0x51,
0xc7, 0x4f, 0xa1, 0x67, 0xad, 0xd4, 0x8a, 0xa5, 0xbb, 0x22, 0x96, 0xae, 0xe4, 0x38, 0x8d, 0x9a,
0x1c, 0xe7, 0x3f, 0x1c, 0x40, 0x4c, 0x53, 0x4a, 0x67, 0xf1, 0x31, 0x2c, 0x50, 0x3f, 0x1b, 0x11,
0xea, 0xd9, 0x61, 0x54, 0x09, 0xca, 0xbd, 0x4f, 0x12, 0x58, 0xb1, 0x44, 0xd7, 0x35, 0x41, 0x68,
0x1b, 0x90, 0x31, 0x54, 0x89, 0xab, 0xb0, 0xdb, 0x35, 0x33, 0xcc, 0xc0, 0x88, 0x40, 0x40, 0xa5,
0x6c, 0x32, 0x76, 0x6a, 0x72, 0xdb, 0x59, 0x3b, 0xc7, 0xeb, 0x24, 0x13, 0x96, 0x15, 0xfb, 0x54,
0x45, 0x1b, 0x6a, 0x8c, 0x7f, 0xe1, 0xc0, 0x12, 0xdb, 0xa0, 0xa5, 0x04, 0xf7, 0x80, 0x2b, 0xd0,
0x07, 0xea, 0x80, 0x85, 0xfb, 0xbf, 0x57, 0x81, 0xbb, 0xd0, 0xe6, 0x04, 0x93, 0x94, 0xc4, 0x52,
0x03, 0xfa, 0xb6, 0x06, 0x14, 0x57, 0x77, 0xff, 0x92, 0x5b, 0x20, 0x1b, 0xe7, 0xbf, 0x01, 0x6b,
0x72, 0x95, 0xf6, 0xc1, 0xe1, 0x3f, 0x06, 0x58, 0x2f, 0xcf, 0x68, 0x2f, 0x2d, 0x43, 0x8f, 0x28,
0x1c, 0x1f, 0x27, 0x3a, 0x8a, 0x71, 0xcc, 0xa8, 0xc4, 0x9a, 0x42, 0x27, 0xb0, 0xa6, 0x8c, 0x39,
0xe3, 0x5f, 0x98, 0xee, 0x06, 0xf7, 0x42, 0xb7, 0x6d, 0x79, 0x95, 0xf8, 0x29, 0xb0, 0xa9, 0x5d,
0xf5, 0xe4, 0xd0, 0x08, 0xfa, 0xda, 0x69, 0x48, 0x13, 0x62, 0x38, 0x16, 0xc6, 0xea, 0x5b, 0xef,
0x66, 0xc5, 0xaf, 0x4c, 0xa0, 0xa0, 0x17, 0x12, 0x43, 0xaf, 0xe1, 0x9a, 0x9a, 0xe3, 0x36, 0xa2,
0xca, 0xae, 0xf9, 0x21, 0x3b, 0x7b, 0xc2, 0xbe, 0xb5, 0x79, 0xbe, 0x87, 0xee, 0xe0, 0x9f, 0x1c,
0x58, 0xb0, 0xa9, 0x31, 0x17, 0x24, 0x63, 0x59, 0x75, 0x0d, 0x94, 0x2b, 0x2e, 0x81, 0xab, 0xd1,
0x78, 0xa3, 0x2e, 0x1a, 0x37, 0x63, 0xee, 0x99, 0xf7, 0xc5, 0xdc, 0xcd, 0x0f, 0x8b, 0xb9, 0x5b,
0x75, 0x31, 0xf7, 0xe0, 0xe7, 0x0d, 0x40, 0xd5, 0xd3, 0x45, 0x4f, 0x44, 0x3a, 0x10, 0x93, 0x48,
0x5e, 0xa8, 0x6f, 0x7f, 0x90, 0x82, 0x28, 0xb0, 0xfa, 0x98, 0x29, 0xaa, 0x79, 0x61, 0x4c, 0x9f,
0xd8, 0x73, 0xeb, 0xa6, 0xd0, 0x16, 0x2c, 0x71, 0x57, 0x99, 0x7b, 0x34, 0x8c, 0xa2, 0xe2, 0x66,
0xf5, 0xdc, 0x0a, 0xbc, 0x94, 0x30, 0x34, 0xdf, 0x9f, 0x30, 0xb4, 0xde, 0x9f, 0x30, 0xcc, 0x96,
0x13, 0x86, 0xc1, 0x1b, 0xe8, 0x59, 0x0a, 0xf2, 0x7f, 0x26, 0x9c, 0xb2, 0xeb, 0x15, 0xaa, 0x60,
0xc1, 0x06, 0x5f, 0x37, 0x00, 0x55, 0x75, 0xf4, 0xff, 0x73, 0x09, 0x5c, 0xe1, 0x2c, 0x33, 0x33,
0x23, 0x15, 0xce, 0x32, 0x30, 0x9b, 0xb0, 0x38, 0xf6, 0xe9, 0x24, 0x63, 0x61, 0xa7, 0x95, 0xe2,
0x96, 0xc1, 0x4c, 0x27, 0x8a, 0x93, 0xf4, 0xd4, 0xac, 0x8c, 0x0d, 0xeb, 0xa6, 0xf0, 0xf7, 0x60,
0x55, 0x94, 0xc6, 0x1f, 0x08, 0x66, 0xca, 0xb5, 0xdd, 0x80, 0xee, 0xb9, 0xa8, 0xde, 0x78, 0x49,
0x1c, 0x4d, 0x65, 0x7a, 0xdc, 0x91, 0xb0, 0x2f, 0xe2, 0x68, 0x8a, 0xef, 0xc0, 0x5a, 0xe9, 0xd3,
0xa2, 0xac, 0x60, 0x9b, 0x4d, 0x35, 0x64, 0x06, 0x59, 0xca, 0xc9, 0x66, 0x87, 0x77, 0x61, 0xbd,
0x3c, 0xf1, 0x5e, 0x62, 0x9f, 0x02, 0xfa, 0xc1, 0x84, 0x64, 0x53, 0x5e, 0x1a, 0xd5, 0x45, 0xb0,
0x8d, 0x72, 0xaa, 0x34, 0x9b, 0x4e, 0x8e, 0xbf, 0x4f, 0xa6, 0xaa, 0xa2, 0xdc, 0xd0, 0x15, 0x65,
0x7c, 0x1f, 0x56, 0x2c, 0x02, 0xba, 0xb6, 0x3b, 0xcb, 0xcb, 0xab, 0x2a, 0x8d, 0xb0, 0x4b, 0xb0,
0x72, 0x0e, 0xff, 0x85, 0x03, 0x33, 0xfb, 0x49, 0x6a, 0x66, 0xf7, 0x8e, 0x9d, 0xdd, 0x4b, 0x7b,
0xe4, 0x69, 0x73, 0xd3, 0x90, 0x57, 0xc4, 0x04, 0x32, 0x6b, 0xe2, 0x8f, 0x29, 0x0b, 0xa4, 0x4f,
0x92, 0xec, 0xdc, 0xcf, 0x02, 0xa9, 0x03, 0x25, 0x28, 0x5b, 0x7e, 0x71, 0x13, 0xd9, 0x4f, 0x16,
0x58, 0xf3, 0x12, 0x87, 0x3a, 0x5f, 0x39, 0xc2, 0x3f, 0x75, 0xa0, 0xc5, 0xd7, 0xca, 0x14, 0x47,
0x38, 0x2c, 0xfe, 0x4a, 0xc0, 0x2b, 0x28, 0x8e, 0x50, 0x9c, 0x12, 0xb8, 0xf4, 0x76, 0xd0, 0x28,
0xbf, 0x1d, 0xb0, 0x54, 0x43, 0x8c, 0x8a, 0xa2, 0x7c, 0x01, 0x40, 0xd7, 0xa0, 0x79, 0x9a, 0xa4,
0xca, 0x2d, 0x80, 0x4a, 0x99, 0x93, 0xd4, 0xe5, 0x70, 0xbc, 0x05, 0x8b, 0xcf, 0x92, 0x80, 0x18,
0x59, 0xd7, 0x85, 0xc7, 0x84, 0x7f, 0xdf, 0x81, 0x79, 0x85, 0x8c, 0x36, 0xa1, 0xc9, 0xcc, 0x7b,
0x29, 0xf2, 0xd0, 0x85, 0x2f, 0x86, 0xe7, 0x72, 0x0c, 0x76, 0xdb, 0x78, 0xdc, 0x5f, 0xf8, 0x5e,
0x15, 0xf5, 0x17, 0x7e, 0x8d, 0x85, 0x6b, 0x7c, 0xcd, 0x25, 0x07, 0x50, 0x82, 0xe2, 0x9f, 0x39,
0xd0, 0xb3, 0x78, 0xb0, 0x00, 0x2e, 0xf2, 0x73, 0x2a, 0x8b, 0x05, 0x52, 0x88, 0x26, 0xc8, 0xcc,
0xd0, 0x1b, 0x76, 0x86, 0xae, 0x33, 0xc4, 0x19, 0x33, 0x43, 0xbc, 0x0d, 0x6d, 0x99, 0x8e, 0x13,
0x25, 0x37, 0xf5, 0xb2, 0xc2, 0x38, 0xaa, 0x92, 0x5e, 0x81, 0x84, 0xef, 0x43, 0xc7, 0x98, 0x61,
0x0c, 0x63, 0x42, 0xcf, 0x93, 0xec, 0x95, 0x2a, 0x09, 0xc8, 0xa1, 0xae, 0x38, 0x37, 0x8a, 0x8a,
0x33, 0xfe, 0x3b, 0x07, 0x7a, 0x4c, 0x27, 0xc2, 0x78, 0x74, 0x98, 0x44, 0xe1, 0x70, 0xca, 0x75,
0x43, 0x1d, 0xbf, 0x17, 0x90, 0x88, 0xfa, 0x5a, 0x37, 0x6c, 0x30, 0xf3, 0x98, 0xe3, 0x30, 0xe6,
0x35, 0x0f, 0xa9, 0x19, 0x7a, 0xcc, 0x74, 0x9c, 0x99, 0xf3, 0x63, 0x3f, 0x27, 0xde, 0x98, 0x05,
0x96, 0xd2, 0x80, 0x59, 0x40, 0x66, 0x96, 0x18, 0x20, 0xf3, 0x29, 0xf1, 0xc6, 0x61, 0x14, 0x85,
0x02, 0x57, 0xe8, 0x72, 0xdd, 0x14, 0xfe, 0x87, 0x06, 0x74, 0xa4, 0x41, 0x78, 0x1c, 0x8c, 0x44,
0xfd, 0x4a, 0xba, 0x71, 0x7d, 0xd1, 0x0c, 0x88, 0x9a, 0xb7, 0x1c, 0xbf, 0x01, 0x29, 0x1f, 0xe0,
0x4c, 0xf5, 0x00, 0x59, 0x32, 0x9d, 0x04, 0xe4, 0x0e, 0x8f, 0x30, 0xc4, 0x03, 0x5d, 0x01, 0x50,
0xb3, 0xbb, 0x7c, 0xb6, 0x55, 0xcc, 0x72, 0x80, 0x15, 0x53, 0xcc, 0x96, 0x62, 0x8a, 0xbb, 0xd0,
0x95, 0x64, 0xb8, 0xdc, 0x79, 0x51, 0xa4, 0x50, 0x65, 0xeb, 0x4c, 0x5c, 0x0b, 0x53, 0x7d, 0xb9,
0xab, 0xbe, 0x9c, 0x7f, 0xdf, 0x97, 0x0a, 0x13, 0xaf, 0xc1, 0x8a, 0x14, 0xde, 0xd3, 0xcc, 0x4f,
0x4f, 0x95, 0x91, 0x0d, 0xf4, 0x6b, 0x11, 0x07, 0xa3, 0x2d, 0x68, 0xb1, 0xcf, 0x94, 0x9d, 0xab,
0xbf, 0x5e, 0x02, 0x05, 0x6d, 0x42, 0x8b, 0x04, 0x23, 0xa2, 0x82, 0x5a, 0x64, 0x87, 0xe2, 0xec,
0x8c, 0x5c, 0x81, 0xc0, 0x2e, 0x3b, 0x83, 0x96, 0x2e, 0xbb, 0x6d, 0x23, 0x67, 0xd9, 0xf0, 0xb3,
0x00, 0xaf, 0x02, 0x7a, 0x26, 0xb4, 0xd6, 0xac, 0xc8, 0xfc, 0xc1, 0x0c, 0x74, 0x0c, 0x30, 0xbb,
0xb7, 0x23, 0xb6, 0x60, 0x2f, 0x08, 0xfd, 0x31, 0xa1, 0x24, 0x93, 0x9a, 0x5a, 0x82, 0x72, 0x53,
0x7a, 0x36, 0xf2, 0x92, 0x09, 0xf5, 0x02, 0x32, 0xca, 0x88, 0xc8, 0x74, 0x1d, 0xb7, 0x04, 0x65,
0x78, 0x63, 0xff, 0xb5, 0x89, 0x27, 0xf4, 0xa1, 0x04, 0x55, 0xf5, 0x15, 0x21, 0xa3, 0x66, 0x51,
0x5f, 0x11, 0x12, 0x29, 0x5b, 0x9c, 0x56, 0x8d, 0xc5, 0xf9, 0x04, 0xd6, 0x85, 0x6d, 0x91, 0x77,
0xd3, 0x2b, 0xa9, 0xc9, 0x05, 0xb3, 0x2c, 0x52, 0x63, 0x6b, 0x56, 0x0a, 0x9e, 0x87, 0x3f, 0x11,
0x85, 0x5d, 0xc7, 0xad, 0xc0, 0x19, 0x2e, 0xbb, 0x8e, 0x16, 0xae, 0x28, 0xf0, 0x56, 0xe0, 0x1c,
0xd7, 0x7f, 0x6d, 0xe3, 0xb6, 0x25, 0x6e, 0x09, 0x8e, 0x7b, 0xd0, 0x39, 0xa2, 0x49, 0xaa, 0x0e,
0x65, 0x01, 0xba, 0x62, 0x28, 0x8b, 0xfa, 0x57, 0xe0, 0x32, 0xd7, 0xa2, 0xe7, 0x49, 0x9a, 0x44,
0xc9, 0x68, 0x7a, 0x34, 0x39, 0xce, 0x87, 0x59, 0x98, 0xb2, 0x80, 0x13, 0xff, 0x8b, 0x03, 0x2b,
0xd6, 0xac, 0xcc, 0x28, 0x7f, 0x55, 0xa8, 0xb4, 0xae, 0xc3, 0x0a, 0xc5, 0x5b, 0x36, 0x0c, 0x9f,
0x40, 0x14, 0xc9, 0xf1, 0x0b, 0x59, 0x9a, 0xdd, 0x83, 0x45, 0xb5, 0x32, 0xf5, 0xa1, 0xd0, 0xc2,
0x7e, 0x55, 0x0b, 0xe5, 0xf7, 0x0b, 0xf2, 0x03, 0x45, 0xe2, 0x37, 0x44, 0x30, 0x46, 0x02, 0xbe,
0x47, 0x95, 0x2f, 0x0d, 0xd4, 0xf7, 0x66, 0x00, 0xa8, 0x56, 0x30, 0xd4, 0xc0, 0x1c, 0xff, 0x89,
0x03, 0x50, 0xac, 0x8e, 0x29, 0x46, 0x61, 0xbc, 0x1d, 0x5e, 0xd5, 0x2a, 0x00, 0x2c, 0x74, 0xd2,
0x55, 0xc2, 0xc2, 0x1f, 0x74, 0x14, 0x8c, 0xc5, 0x22, 0xb7, 0x60, 0x71, 0x14, 0x25, 0xc7, 0xdc,
0xbb, 0xf2, 0xf7, 0xa3, 0x5c, 0x3e, 0x6d, 0x2c, 0x08, 0xf0, 0x13, 0x09, 0x2d, 0x9c, 0x47, 0xd3,
0x70, 0x1e, 0xf8, 0x4f, 0x1b, 0xba, 0x7e, 0x55, 0xec, 0xf9, 0xc2, 0x5b, 0x86, 0x76, 0x2b, 0xc6,
0xf1, 0x82, 0x7a, 0x11, 0x4f, 0xa2, 0x0f, 0xdf, 0x9b, 0x26, 0xdd, 0x87, 0x85, 0x4c, 0x58, 0x1f,
0x65, 0x9a, 0x9a, 0xef, 0x30, 0x4d, 0xbd, 0xcc, 0xf2, 0x3b, 0xbf, 0x02, 0x4b, 0x7e, 0x70, 0x46,
0x32, 0x1a, 0xf2, 0x30, 0x98, 0xbb, 0x77, 0x61, 0x50, 0x17, 0x0d, 0x38, 0xf7, 0xba, 0xb7, 0x60,
0x51, 0x3e, 0x27, 0x69, 0x4c, 0xf9, 0x3c, 0x5f, 0x80, 0x19, 0x22, 0xfe, 0x1b, 0x47, 0xd6, 0xca,
0xec, 0x33, 0xbc, 0x58, 0x22, 0xe6, 0xee, 0x1a, 0xa5, 0xdd, 0x7d, 0x53, 0x96, 0xbe, 0x02, 0x15,
0x6b, 0xcb, 0x02, 0xa2, 0x00, 0xca, 0x32, 0xa3, 0x2d, 0xd2, 0xe6, 0x87, 0x88, 0x14, 0x6f, 0xc3,
0xe2, 0x11, 0xa1, 0x7b, 0xec, 0x04, 0x95, 0x61, 0xbc, 0x02, 0xed, 0x98, 0x9c, 0x7b, 0xe2, 0x88,
0x85, 0x1b, 0x9f, 0x8f, 0xc9, 0x39, 0xc7, 0xc1, 0x08, 0x96, 0x0a, 0x7c, 0x79, 0xeb, 0xfe, 0x6a,
0x06, 0xe6, 0x3e, 0x8b, 0xcf, 0x92, 0x70, 0xc8, 0x8b, 0x59, 0x63, 0x32, 0x4e, 0xd4, 0xc3, 0x30,
0xfb, 0xcd, 0xa2, 0x02, 0xfe, 0xe6, 0x91, 0x52, 0x59, 0x65, 0x52, 0x43, 0xe6, 0x21, 0xb3, 0xa2,
0x0b, 0x41, 0x68, 0x9b, 0x01, 0x61, 0xd1, 0x64, 0x66, 0x36, 0x56, 0xc8, 0x51, 0xf1, 0x2a, 0xde,
0x32, 0x5e, 0xc5, 0x79, 0xd9, 0x52, 0x3c, 0xe7, 0xf0, 0x23, 0x99, 0x77, 0xd5, 0x90, 0x47, 0xbd,
0x19, 0x11, 0x79, 0x27, 0xf7, 0xb5, 0x73, 0x32, 0xea, 0x35, 0x81, 0xcc, 0x1f, 0x8b, 0x0f, 0x04,
0x8e, 0xb0, 0x57, 0x26, 0x88, 0xc5, 0x27, 0xe5, 0xde, 0x8c, 0xb6, 0x50, 0x93, 0x12, 0x98, 0x19,
0xb5, 0x80, 0x68, 0xdb, 0x23, 0xf6, 0x00, 0xa2, 0xcb, 0xa2, 0x0c, 0x37, 0x62, 0x66, 0xf1, 0x2c,
0x25, 0x47, 0x3c, 0x8e, 0xf1, 0xa3, 0xe8, 0xd8, 0x1f, 0xbe, 0xf2, 0x78, 0xf0, 0xd4, 0x15, 0xb5,
0x03, 0x0b, 0xc8, 0x56, 0x3d, 0x8c, 0xe8, 0x99, 0x27, 0x49, 0xf4, 0xc4, 0x2b, 0x92, 0x01, 0xc2,
0x5f, 0x02, 0xda, 0x0b, 0x02, 0x79, 0x42, 0x3a, 0xa3, 0x28, 0x64, 0xeb, 0x58, 0xb2, 0xad, 0xd9,
0x63, 0xa3, 0x76, 0x8f, 0xf8, 0x31, 0x74, 0x0e, 0x8d, 0x46, 0x17, 0x7e, 0x98, 0xaa, 0xc5, 0x45,
0x2a, 0x80, 0x01, 0x31, 0x18, 0x36, 0x4c, 0x86, 0xf8, 0xd7, 0x00, 0x1d, 0x84, 0x39, 0xd5, 0xeb,
0xd3, 0xb9, 0x9e, 0xae, 0x38, 0x19, 0xb9, 0x9e, 0x84, 0xf1, 0x5c, 0x6f, 0x4f, 0x3c, 0x75, 0x95,
0x37, 0xb6, 0x05, 0xf3, 0xa1, 0x00, 0x29, 0x5b, 0xbe, 0x20, 0x2f, 0x81, 0xc2, 0xd4, 0xf3, 0x2c,
0x28, 0x91, 0x40, 0xcb, 0x55, 0xfc, 0xd4, 0x81, 0x39, 0xb9, 0x35, 0xe6, 0x52, 0xad, 0x16, 0x1f,
0xb1, 0x31, 0x0b, 0x56, 0xdf, 0xa5, 0x51, 0xd5, 0xba, 0x99, 0x3a, 0xad, 0x43, 0xd0, 0x4c, 0x7d,
0x7a, 0xca, 0xe3, 0xed, 0xb6, 0xcb, 0x7f, 0xab, 0xbc, 0xaa, 0xa5, 0xf3, 0x2a, 0xf5, 0xac, 0x27,
0x17, 0xa5, 0x5f, 0x9c, 0x1e, 0x88, 0x67, 0xbd, 0x02, 0x5c, 0xc8, 0x40, 0x2e, 0xb0, 0x2c, 0x03,
0x89, 0xea, 0xea, 0x79, 0x3c, 0x80, 0xfe, 0x23, 0x12, 0x11, 0x4a, 0xf6, 0xa2, 0xa8, 0x4c, 0xff,
0x0a, 0x5c, 0xae, 0x99, 0x93, 0xf7, 0xfe, 0x09, 0x2c, 0x3f, 0x22, 0xc7, 0x93, 0xd1, 0x01, 0x39,
0x2b, 0xca, 0xcf, 0x08, 0x9a, 0xf9, 0x69, 0x72, 0x2e, 0xcf, 0x8b, 0xff, 0x46, 0x1f, 0x01, 0x44,
0x0c, 0xc7, 0xcb, 0x53, 0x32, 0x54, 0x6d, 0x0a, 0x1c, 0x72, 0x94, 0x92, 0x21, 0xfe, 0x04, 0x90,
0x49, 0x47, 0x6e, 0x81, 0xdd, 0xc6, 0xc9, 0xb1, 0x97, 0x4f, 0x73, 0x4a, 0xc6, 0xca, 0x10, 0x99,
0x20, 0x7c, 0x0b, 0xba, 0x87, 0xfe, 0xd4, 0x25, 0x5f, 0xc9, 0xce, 0x29, 0x96, 0xbe, 0xf9, 0x53,
0xa6, 0x9e, 0x3a, 0x7d, 0xe3, 0xd3, 0xf8, 0x1f, 0x1b, 0x30, 0x2b, 0x30, 0x19, 0xd5, 0x80, 0xe4,
0x34, 0x8c, 0x45, 0x05, 0x58, 0x52, 0x35, 0x40, 0x95, 0xf3, 0x6e, 0xd4, 0x9c, 0xb7, 0x0c, 0xb3,
0xd4, 0x93, 0xae, 0x3c, 0x58, 0x0b, 0xc6, 0xb3, 0xd3, 0x70, 0x4c, 0x44, 0x63, 0x5c, 0x53, 0x66,
0xa7, 0x0a, 0x50, 0xca, 0x93, 0x8b, 0x3b, 0x2f, 0xd6, 0xa7, 0x14, 0x51, 0xba, 0x16, 0x13, 0x54,
0x6b, 0x59, 0xe6, 0x44, 0xab, 0x54, 0xc5, 0xb2, 0x54, 0x2c, 0xc8, 0xfc, 0x07, 0x58, 0x10, 0x11,
0x7b, 0x59, 0x16, 0x04, 0xc1, 0xd2, 0x13, 0x42, 0x5c, 0x92, 0x26, 0x99, 0x6e, 0x3f, 0xfb, 0x4b,
0x07, 0x96, 0xa4, 0x57, 0xd1, 0x73, 0xe8, 0x86, 0xe5, 0x82, 0x9c, 0xba, 0x5a, 0xe7, 0x4d, 0xe8,
0xf1, 0x24, 0x8c, 0x65, 0x58, 0x3c, 0xe3, 0x92, 0x15, 0x08, 0x0b, 0xc8, 0xd6, 0xa4, 0x4a, 0x72,
0xe3, 0x30, 0x92, 0x02, 0x36, 0x41, 0xcc, 0x5d, 0xaa, 0x24, 0x8d, 0x8b, 0xd7, 0x71, 0xf5, 0x18,
0x1f, 0xc2, 0xb2, 0xb1, 0x5e, 0xa9, 0x50, 0xf7, 0x41, 0x3d, 0x3d, 0x89, 0x82, 0x82, 0xb8, 0x17,
0x1b, 0xb6, 0x83, 0x2c, 0x3e, 0xb3, 0x90, 0xf1, 0xdf, 0x3b, 0x5c, 0x04, 0x32, 0x0e, 0xd3, 0x7d,
0x27, 0xb3, 0x22, 0x34, 0x12, 0xda, 0xbe, 0x7f, 0xc9, 0x95, 0x63, 0xf4, 0xdd, 0x0f, 0x8c, 0x6e,
0xf4, 0x2b, 0xd1, 0x05, 0xb2, 0x99, 0xa9, 0x93, 0xcd, 0x3b, 0x76, 0xfe, 0x60, 0x0e, 0x5a, 0xf9,
0x30, 0x49, 0x09, 0x5e, 0xe1, 0x22, 0x50, 0xeb, 0x15, 0x22, 0xd8, 0xfd, 0x77, 0x07, 0x16, 0x44,
0x79, 0x4c, 0x34, 0xa0, 0x92, 0x0c, 0xb1, 0xfc, 0xcb, 0xe8, 0x6b, 0x45, 0x3a, 0xfc, 0xac, 0xf6,
0xc7, 0x0e, 0xae, 0xd4, 0xce, 0xa9, 0xd8, 0xfb, 0xeb, 0x5f, 0xfc, 0xe7, 0xcf, 0x1a, 0x6b, 0x78,
0x69, 0xe7, 0xec, 0xce, 0x0e, 0x37, 0x71, 0xe4, 0x9c, 0x63, 0xdc, 0x73, 0xb6, 0x18, 0x17, 0xb3,
0xe5, 0x55, 0x73, 0xa9, 0x69, 0x9d, 0xd5, 0x5c, 0x6a, 0x7b, 0x64, 0x2d, 0x2e, 0x13, 0x8e, 0xa1,
0xb9, 0xec, 0xfe, 0xed, 0x15, 0x68, 0xeb, 0x44, 0x11, 0xfd, 0x18, 0x7a, 0x56, 0x29, 0x10, 0x29,
0xc2, 0x75, 0xb5, 0xc5, 0xc1, 0xd5, 0xfa, 0x49, 0xc9, 0xf6, 0x1a, 0x67, 0xdb, 0x47, 0xeb, 0x8c,
0xad, 0xac, 0xf5, 0xed, 0xf0, 0xd2, 0xa5, 0x78, 0x69, 0x7e, 0x05, 0x0b, 0x76, 0xa9, 0x10, 0x5d,
0xb5, 0x4f, 0xbb, 0xc4, 0xed, 0xa3, 0x0b, 0x66, 0x25, 0xbb, 0xab, 0x9c, 0xdd, 0x3a, 0x5a, 0x35,
0xd9, 0xe9, 0x04, 0x8e, 0xf0, 0xde, 0x00, 0xb3, 0x67, 0x16, 0x29, 0x7a, 0xf5, 0xbd, 0xb4, 0x83,
0xcb, 0xd5, 0xfe, 0x58, 0xd9, 0x50, 0x8b, 0xfb, 0x9c, 0x15, 0x42, 0x5c, 0xa0, 0x66, 0xcb, 0x2c,
0xfa, 0x11, 0xb4, 0x75, 0xe3, 0x1f, 0xda, 0x30, 0xda, 0x1c, 0xcd, 0x56, 0xc2, 0x41, 0xbf, 0x3a,
0x51, 0x77, 0x54, 0x26, 0x65, 0xa6, 0x10, 0x07, 0xb0, 0x26, 0x3d, 0xee, 0x31, 0xf9, 0x65, 0x76,
0x52, 0xd3, 0xe9, 0x7b, 0xdb, 0x41, 0xf7, 0x61, 0x5e, 0xf5, 0x42, 0xa2, 0xf5, 0xfa, 0x86, 0xcc,
0xc1, 0x46, 0x05, 0x2e, 0xed, 0xc2, 0x1e, 0x40, 0xd1, 0xfa, 0x87, 0xfa, 0x17, 0x75, 0x28, 0x6a,
0x21, 0xd6, 0xf4, 0x09, 0x8e, 0x78, 0xe7, 0xa3, 0xdd, 0x59, 0x88, 0xbe, 0x51, 0xe0, 0xd7, 0xf6,
0x1c, 0xbe, 0x83, 0x20, 0x5e, 0xe7, 0xb2, 0x5b, 0x42, 0x0b, 0x4c, 0x76, 0x31, 0x39, 0x57, 0x5d,
0x32, 0x8f, 0xa0, 0x63, 0xb4, 0x13, 0x22, 0x45, 0xa1, 0xda, 0x8a, 0x38, 0x18, 0xd4, 0x4d, 0xc9,
0xe5, 0xfe, 0x16, 0xf4, 0xac, 0xbe, 0x40, 0x7d, 0x33, 0xea, 0xba, 0x0e, 0xf5, 0xcd, 0xa8, 0x6f,
0x25, 0xfc, 0x21, 0x74, 0x8c, 0x2e, 0x3e, 0x64, 0x3c, 0xa6, 0x96, 0xba, 0xf4, 0xf4, 0x8a, 0x6a,
0x9a, 0xfe, 0xf0, 0x2a, 0xdf, 0xef, 0x02, 0x6e, 0xb3, 0xfd, 0xf2, 0x56, 0x11, 0xa6, 0x24, 0x3f,
0x86, 0x05, 0xbb, 0x7b, 0x4f, 0xdf, 0xaa, 0xda, 0x3e, 0x40, 0x7d, 0xab, 0x2e, 0x68, 0xf9, 0x93,
0x0a, 0xb9, 0xb5, 0xa2, 0x99, 0xec, 0xbc, 0x91, 0x05, 0xd1, 0xb7, 0xe8, 0x07, 0xcc, 0x74, 0xc8,
0xde, 0x1d, 0x54, 0x74, 0x33, 0xda, 0x1d, 0x3e, 0x5a, 0xdb, 0x2b, 0x6d, 0x3e, 0x78, 0x99, 0x13,
0xef, 0xa0, 0x62, 0x07, 0xe8, 0x73, 0x98, 0x93, 0x3d, 0x3c, 0x68, 0xad, 0xd0, 0x6a, 0xa3, 0xa8,
0x34, 0x58, 0x2f, 0x83, 0x25, 0xb1, 0x15, 0x4e, 0xac, 0x87, 0x3a, 0x8c, 0xd8, 0x88, 0xd0, 0x90,
0xd1, 0x88, 0x60, 0xd1, 0x7e, 0xd6, 0xc9, 0xb5, 0x38, 0x6a, 0x1f, 0x94, 0xb5, 0x38, 0xea, 0xdf,
0x88, 0x6c, 0x23, 0xa3, 0x8c, 0xcb, 0x8e, 0x7a, 0x2b, 0xff, 0x5d, 0xe8, 0x9a, 0x0d, 0x63, 0xda,
0x62, 0xd7, 0x34, 0x97, 0x69, 0x8b, 0x5d, 0xd7, 0x61, 0xa6, 0x8e, 0x16, 0x75, 0x4d, 0x36, 0xe8,
0x87, 0xb0, 0x68, 0xbc, 0x3f, 0x1e, 0x4d, 0xe3, 0xa1, 0x56, 0x9d, 0x6a, 0x4f, 0xc3, 0xa0, 0xce,
0x75, 0xe2, 0x0d, 0x4e, 0x78, 0x19, 0x5b, 0x84, 0x99, 0xda, 0x3c, 0x84, 0x8e, 0xf9, 0xb6, 0xf9,
0x0e, 0xba, 0x1b, 0xc6, 0x94, 0xd9, 0x65, 0x70, 0xdb, 0x41, 0x7f, 0xee, 0x40, 0xd7, 0x6c, 0x75,
0x41, 0x56, 0x5d, 0xa6, 0x44, 0xa7, 0x6f, 0xce, 0x99, 0x84, 0xf0, 0x33, 0xbe, 0xc8, 0xfd, 0xad,
0x27, 0x96, 0x90, 0xdf, 0x58, 0x21, 0xd1, 0xb6, 0xd9, 0xe2, 0xfe, 0xb6, 0x3c, 0x69, 0xf6, 0x7c,
0xbc, 0xbd, 0xed, 0xa0, 0x7b, 0xe2, 0x1f, 0x19, 0x54, 0x7a, 0x82, 0x0c, 0xb3, 0x56, 0x16, 0x97,
0xf9, 0xdf, 0x01, 0x9b, 0xce, 0x6d, 0x07, 0xfd, 0x9e, 0xe8, 0x6a, 0x97, 0xdf, 0x72, 0xa9, 0x7f,
0xe8, 0xf7, 0xf8, 0x26, 0xdf, 0xc9, 0x35, 0x7c, 0xd9, 0xda, 0x49, 0xd9, 0xae, 0x1f, 0x02, 0x14,
0xb9, 0x26, 0x2a, 0x25, 0x5e, 0xda, 0xe2, 0x55, 0xd3, 0x51, 0xfb, 0x34, 0x55, 0x7e, 0x26, 0x8c,
0x40, 0xd7, 0xc8, 0xf2, 0x72, 0x7d, 0x9c, 0xd5, 0x9c, 0x71, 0x30, 0xa8, 0x9b, 0x92, 0xf4, 0xbf,
0xc9, 0xe9, 0x7f, 0x84, 0xae, 0x98, 0xf4, 0x77, 0xde, 0x98, 0x39, 0xe6, 0x5b, 0xf4, 0x25, 0xf4,
0x0e, 0x92, 0xe4, 0xd5, 0x24, 0xd5, 0xe5, 0x0c, 0x3b, 0x6b, 0x62, 0x79, 0xee, 0xa0, 0xb4, 0x29,
0x7c, 0x83, 0x53, 0xbe, 0x82, 0x2e, 0xdb, 0x94, 0x8b, 0xcc, 0xf7, 0x2d, 0xf2, 0x61, 0x59, 0x7b,
0x3b, 0xbd, 0x91, 0x81, 0x4d, 0xc7, 0x4c, 0x40, 0x2b, 0x3c, 0xac, 0xf8, 0x43, 0xf3, 0xc8, 0x15,
0xcd, 0xdb, 0x0e, 0x3a, 0x84, 0xee, 0x23, 0x32, 0x4c, 0x02, 0x22, 0x13, 0x9d, 0x95, 0x62, 0xe5,
0x3a, 0x43, 0x1a, 0xf4, 0x2c, 0xa0, 0x6d, 0x01, 0x52, 0x7f, 0x9a, 0x91, 0xaf, 0x76, 0xde, 0xc8,
0x14, 0xea, 0xad, 0xb2, 0x00, 0x2a, 0xed, 0xb3, 0x2c, 0x40, 0x29, 0x4f, 0xb4, 0x2c, 0x40, 0x25,
0x4f, 0xb4, 0x2c, 0x80, 0x4a, 0x3b, 0x51, 0xc4, 0xb2, 0xc7, 0x52, 0x6a, 0xa9, 0x7d, 0xe6, 0x45,
0x09, 0xe9, 0xe0, 0xfa, 0xc5, 0x08, 0x36, 0xb7, 0x2d, 0x9b, 0xdb, 0x11, 0xf4, 0x1e, 0x11, 0x21,
0x2c, 0xf1, 0xce, 0x30, 0xb0, 0x4d, 0x8a, 0xf9, 0x26, 0x51, 0x36, 0x37, 0x7c, 0xce, 0x36, 0xf0,
0xbc, 0xc8, 0x8f, 0x7e, 0x04, 0x9d, 0xa7, 0x84, 0xaa, 0x87, 0x05, 0x1d, 0x79, 0x94, 0x5e, 0x1a,
0x06, 0x35, 0xef, 0x12, 0xf8, 0x3a, 0xa7, 0x36, 0x40, 0x7d, 0x4d, 0x6d, 0x87, 0x04, 0x23, 0x22,
0x2e, 0xbf, 0x17, 0x06, 0x6f, 0xd1, 0x6f, 0x73, 0xe2, 0xfa, 0xd5, 0x71, 0xdd, 0xa8, 0x47, 0x9b,
0xc4, 0x17, 0x4b, 0xf0, 0x3a, 0xca, 0x71, 0x12, 0x10, 0xc3, 0xd5, 0xc5, 0xd0, 0x31, 0x9e, 0x98,
0xf5, 0x85, 0xaa, 0xbe, 0x5b, 0xeb, 0x0b, 0x55, 0xf3, 0x22, 0x8d, 0x37, 0x39, 0x1f, 0x8c, 0xae,
0x17, 0x7c, 0xc4, 0x2b, 0x74, 0xc1, 0x69, 0xe7, 0x8d, 0x3f, 0xa6, 0x6f, 0xd1, 0x4b, 0xde, 0xde,
0x6a, 0x3e, 0x9e, 0x14, 0x91, 0x4f, 0xf9, 0x9d, 0x45, 0x0b, 0xcb, 0x98, 0xb2, 0xa3, 0x21, 0xc1,
0x8a, 0x7b, 0xc4, 0xef, 0x02, 0x1c, 0xd1, 0x24, 0x7d, 0xe4, 0x93, 0x71, 0x12, 0x17, 0x96, 0xac,
0x78, 0x20, 0x28, 0x2c, 0x99, 0xf1, 0x4a, 0x80, 0x5e, 0x1a, 0xb1, 0xa7, 0xf5, 0xf6, 0xa4, 0x94,
0xeb, 0xc2, 0x37, 0x04, 0x2d, 0x90, 0x9a, 0x77, 0x04, 0x15, 0x86, 0x8a, 0xe2, 0xa8, 0x11, 0x86,
0x5a, 0xd5, 0x55, 0x23, 0x0c, 0xb5, 0xab, 0xa8, 0x2c, 0x0c, 0x2d, 0xaa, 0x20, 0x3a, 0x0c, 0xad,
0x14, 0x58, 0xb4, 0x0d, 0xad, 0x29, 0x99, 0x1c, 0x42, 0xbb, 0x48, 0xc5, 0x15, 0xa3, 0x72, 0xe2,
0xae, 0x9d, 0x55, 0x25, 0x43, 0xc6, 0x4b, 0x5c, 0xce, 0x80, 0xe6, 0x99, 0x9c, 0xf9, 0x13, 0xfb,
0x73, 0x00, 0xb1, 0xbb, 0x27, 0x6c, 0x64, 0x90, 0xb4, 0x12, 0x61, 0x93, 0xa4, 0x9d, 0x71, 0xaa,
0x48, 0x06, 0x6b, 0x92, 0xf7, 0x9c, 0xad, 0xe3, 0x59, 0xfe, 0x5f, 0x98, 0xdf, 0xf9, 0x9f, 0x00,
0x00, 0x00, 0xff, 0xff, 0x4a, 0xab, 0x23, 0xa7, 0xb7, 0x39, 0x00, 0x00,
// 4765 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5b, 0xdd, 0x6f, 0x1c, 0x4b,
0x56, 0x4f, 0x8f, 0xc7, 0xf6, 0xcc, 0x99, 0x19, 0x7f, 0x94, 0xbf, 0x26, 0x93, 0xdc, 0xbb, 0x49,
0x6d, 0x74, 0x63, 0xbc, 0x57, 0x76, 0xe2, 0x65, 0x2f, 0xd9, 0x04, 0xb8, 0x72, 0x3e, 0x7d, 0x59,
0xdf, 0x5c, 0x6f, 0x3b, 0xb9, 0x81, 0x5d, 0xa1, 0xa1, 0x3d, 0x53, 0x1e, 0xf7, 0xa6, 0xa7, 0xbb,
0x6f, 0x77, 0x8f, 0x9d, 0xd9, 0x28, 0x12, 0x5a, 0x10, 0x4f, 0xa0, 0x7d, 0x58, 0x04, 0xe2, 0x01,
0xb4, 0x12, 0xe2, 0x11, 0xfe, 0x01, 0x24, 0xfe, 0x00, 0x04, 0x02, 0x69, 0x9f, 0x90, 0x10, 0x4f,
0x3c, 0xf1, 0x82, 0x78, 0xe0, 0x1d, 0x9d, 0xfa, 0xea, 0xaa, 0xee, 0x76, 0x92, 0xe5, 0xeb, 0xc9,
0x53, 0xbf, 0xaa, 0x3e, 0x55, 0x75, 0xea, 0xd4, 0xf9, 0xaa, 0x63, 0x68, 0x26, 0xf1, 0x60, 0x3b,
0x4e, 0xa2, 0x2c, 0x22, 0xb3, 0x41, 0x98, 0xc4, 0x83, 0xde, 0xd5, 0x51, 0x14, 0x8d, 0x02, 0xb6,
0xe3, 0xc5, 0xfe, 0x8e, 0x17, 0x86, 0x51, 0xe6, 0x65, 0x7e, 0x14, 0xa6, 0x62, 0x10, 0xbd, 0x0d,
0x2b, 0x0f, 0x12, 0xe6, 0x65, 0xec, 0x85, 0x17, 0x04, 0x2c, 0x73, 0xd9, 0x57, 0x13, 0x96, 0x66,
0xa4, 0x07, 0x8d, 0xd8, 0x4b, 0xd3, 0xf3, 0x28, 0x19, 0x76, 0x9d, 0x6b, 0xce, 0x66, 0xdb, 0xd5,
0x6d, 0xba, 0x0e, 0xab, 0xf6, 0x27, 0x69, 0x1c, 0x85, 0x29, 0x43, 0x52, 0xcf, 0xc3, 0x20, 0x1a,
0xbc, 0xfc, 0xb9, 0x48, 0xd9, 0x9f, 0x48, 0x52, 0xff, 0xe1, 0x40, 0xeb, 0x59, 0xe2, 0x85, 0xa9,
0x37, 0xc0, 0xc5, 0x92, 0x2e, 0xcc, 0x67, 0xaf, 0xfa, 0xa7, 0x5e, 0x7a, 0xca, 0x49, 0x34, 0x5d,
0xd5, 0x24, 0xeb, 0x30, 0xe7, 0x8d, 0xa3, 0x49, 0x98, 0x75, 0x6b, 0xd7, 0x9c, 0xcd, 0x19, 0x57,
0xb6, 0xc8, 0xc7, 0xb0, 0x1c, 0x4e, 0xc6, 0xfd, 0x41, 0x14, 0x9e, 0xf8, 0xc9, 0x58, 0x6c, 0xb9,
0x3b, 0x73, 0xcd, 0xd9, 0x9c, 0x75, 0xcb, 0x1d, 0xe4, 0x43, 0x80, 0x63, 0x5c, 0x86, 0x98, 0xa2,
0xce, 0xa7, 0x30, 0x10, 0x42, 0xa1, 0x2d, 0x5b, 0xcc, 0x1f, 0x9d, 0x66, 0xdd, 0x59, 0x4e, 0xc8,
0xc2, 0x90, 0x46, 0xe6, 0x8f, 0x59, 0x3f, 0xcd, 0xbc, 0x71, 0xdc, 0x9d, 0xe3, 0xab, 0x31, 0x10,
0xde, 0x1f, 0x65, 0x5e, 0xd0, 0x3f, 0x61, 0x2c, 0xed, 0xce, 0xcb, 0x7e, 0x8d, 0xd0, 0x2e, 0xac,
0x3f, 0x61, 0x99, 0xb1, 0xeb, 0x54, 0x72, 0x90, 0x1e, 0x00, 0x31, 0xe0, 0x87, 0x2c, 0xf3, 0xfc,
0x20, 0x25, 0x9f, 0x40, 0x3b, 0x33, 0x06, 0x77, 0x9d, 0x6b, 0x33, 0x9b, 0xad, 0x5d, 0xb2, 0xcd,
0x4f, 0x7d, 0xdb, 0xf8, 0xc0, 0xb5, 0xc6, 0xd1, 0x7f, 0x74, 0xa0, 0x75, 0xc4, 0xc2, 0xa1, 0x3a,
0x1f, 0x02, 0xf5, 0x21, 0x4b, 0x33, 0x79, 0x36, 0xfc, 0x37, 0xf9, 0x1a, 0xb4, 0xf0, 0x6f, 0x3f,
0xcd, 0x12, 0x3f, 0x1c, 0x71, 0xd6, 0x36, 0x5d, 0x40, 0xe8, 0x88, 0x23, 0x64, 0x09, 0x66, 0xbc,
0x71, 0xc6, 0x19, 0x3a, 0xe3, 0xe2, 0x4f, 0x72, 0x1d, 0xda, 0xb1, 0x37, 0x1d, 0xb3, 0x30, 0xcb,
0x99, 0xd8, 0x76, 0x5b, 0x12, 0xdb, 0x47, 0x2e, 0x6e, 0xc3, 0x8a, 0x39, 0x44, 0x51, 0x9f, 0xe5,
0xd4, 0x97, 0x8d, 0x91, 0x72, 0x92, 0x9b, 0xb0, 0xa8, 0xc6, 0x27, 0x62, 0xb1, 0x9c, 0xad, 0x4d,
0x77, 0x41, 0xc2, 0x8a, 0x41, 0x7f, 0xe8, 0x40, 0x5b, 0x6c, 0x49, 0xc8, 0x0f, 0xb9, 0x01, 0x1d,
0xf5, 0x25, 0x4b, 0x92, 0x28, 0x91, 0x52, 0x63, 0x83, 0x64, 0x0b, 0x96, 0x14, 0x10, 0x27, 0xcc,
0x1f, 0x7b, 0x23, 0xc6, 0xb7, 0xda, 0x76, 0x4b, 0x38, 0xd9, 0xcd, 0x29, 0x26, 0xd1, 0x24, 0x63,
0x7c, 0xeb, 0xad, 0xdd, 0xb6, 0x64, 0xb7, 0x8b, 0x98, 0x6b, 0x0f, 0xa1, 0x3f, 0x72, 0xa0, 0xfd,
0xe0, 0xd4, 0x0b, 0x43, 0x16, 0x1c, 0x46, 0x7e, 0x98, 0xa1, 0x18, 0x9d, 0x4c, 0xc2, 0xa1, 0x1f,
0x8e, 0xfa, 0xd9, 0x2b, 0x5f, 0x5d, 0x07, 0x0b, 0xc3, 0x45, 0x99, 0x6d, 0x64, 0x92, 0xe4, 0x7f,
0x09, 0x47, 0x7a, 0xd1, 0x24, 0x8b, 0x27, 0x59, 0xdf, 0x0f, 0x87, 0xec, 0x15, 0x5f, 0x53, 0xc7,
0xb5, 0x30, 0xfa, 0xab, 0xb0, 0x74, 0x80, 0xf2, 0x19, 0xfa, 0xe1, 0x68, 0x6f, 0x38, 0x4c, 0x58,
0x9a, 0xe2, 0xa5, 0x89, 0x27, 0xc7, 0x2f, 0xd9, 0x54, 0xf2, 0x45, 0xb6, 0x50, 0x14, 0x4e, 0xa3,
0x34, 0x93, 0xf3, 0xf1, 0xdf, 0xf4, 0xa7, 0x0e, 0x2c, 0x22, 0x6f, 0x3f, 0xf7, 0xc2, 0xa9, 0x12,
0x99, 0x03, 0x68, 0x23, 0xa9, 0x67, 0xd1, 0x9e, 0xb8, 0x7a, 0x42, 0xf4, 0x36, 0x25, 0x2f, 0x0a,
0xa3, 0xb7, 0xcd, 0xa1, 0x8f, 0xc2, 0x2c, 0x99, 0xba, 0xd6, 0xd7, 0xbd, 0x4f, 0x61, 0xb9, 0x34,
0x04, 0x05, 0x2c, 0x5f, 0x1f, 0xfe, 0x24, 0xab, 0x30, 0x7b, 0xe6, 0x05, 0x13, 0x26, 0x2f, 0xba,
0x68, 0xdc, 0xad, 0xdd, 0x71, 0xe8, 0x47, 0xb0, 0x94, 0xcf, 0x29, 0x25, 0x80, 0x40, 0x5d, 0xb3,
0xb8, 0xe9, 0xf2, 0xdf, 0xc8, 0x0a, 0x1c, 0xf7, 0x20, 0xf2, 0xf5, 0xdd, 0xc2, 0x71, 0xde, 0x70,
0xa8, 0x04, 0x84, 0xff, 0xbe, 0x48, 0xa7, 0xd0, 0x9b, 0xb0, 0x6c, 0x7c, 0xff, 0x96, 0x89, 0xfe,
0xcc, 0x81, 0xe5, 0xa7, 0xec, 0x5c, 0xb2, 0x5b, 0x4d, 0x75, 0x07, 0xea, 0xd9, 0x34, 0x66, 0x7c,
0xe4, 0xc2, 0xee, 0x0d, 0xc9, 0xad, 0xd2, 0xb8, 0x6d, 0xd9, 0x7c, 0x36, 0x8d, 0x99, 0xcb, 0xbf,
0xa0, 0x5f, 0x40, 0xcb, 0x00, 0xc9, 0x06, 0xac, 0xbc, 0xf8, 0xec, 0xd9, 0xd3, 0x47, 0x47, 0x47,
0xfd, 0xc3, 0xe7, 0xf7, 0xbf, 0xf3, 0xe8, 0x37, 0xfa, 0xfb, 0x7b, 0x47, 0xfb, 0x4b, 0x97, 0xc8,
0x3a, 0x90, 0xa7, 0x8f, 0x8e, 0x9e, 0x3d, 0x7a, 0x68, 0xe1, 0x0e, 0x59, 0x84, 0x96, 0x09, 0xd4,
0x68, 0x0f, 0xba, 0x4f, 0xd9, 0xf9, 0x0b, 0x3f, 0x0b, 0x59, 0x9a, 0xda, 0xd3, 0xd3, 0x6d, 0x20,
0xe6, 0x9a, 0xe4, 0x36, 0xbb, 0x30, 0xef, 0x09, 0x48, 0x69, 0x60, 0xd9, 0xa4, 0x1f, 0x01, 0x39,
0xf2, 0x47, 0xe1, 0xe7, 0x2c, 0x4d, 0xbd, 0x11, 0x53, 0x9b, 0x5d, 0x82, 0x99, 0x71, 0x3a, 0x92,
0x12, 0x8e, 0x3f, 0xe9, 0x37, 0x61, 0xc5, 0x1a, 0x27, 0x09, 0x5f, 0x85, 0x66, 0xea, 0x8f, 0x42,
0x2f, 0x9b, 0x24, 0x4c, 0x92, 0xce, 0x01, 0xfa, 0x18, 0x56, 0xbf, 0x64, 0x89, 0x7f, 0x32, 0x7d,
0x17, 0x79, 0x9b, 0x4e, 0xad, 0x48, 0xe7, 0x11, 0xac, 0x15, 0xe8, 0xc8, 0xe9, 0x85, 0x54, 0xc9,
0xf3, 0x6b, 0xb8, 0xa2, 0x61, 0x5c, 0x90, 0x9a, 0x79, 0x41, 0xe8, 0x73, 0x20, 0x0f, 0xa2, 0x30,
0x64, 0x83, 0xec, 0x90, 0xb1, 0x44, 0x2d, 0xe6, 0x1b, 0x86, 0x0c, 0xb5, 0x76, 0x37, 0xe4, 0xc1,
0x16, 0x6f, 0x9d, 0x14, 0x2e, 0x02, 0xf5, 0x98, 0x25, 0x63, 0x4e, 0xb8, 0xe1, 0xf2, 0xdf, 0x74,
0x07, 0x56, 0x2c, 0xb2, 0x39, 0xcf, 0x63, 0xc6, 0x92, 0xbe, 0x5c, 0xdd, 0xac, 0xab, 0x9a, 0xf4,
0x36, 0xac, 0x3d, 0xf4, 0xd3, 0x41, 0x79, 0x29, 0xf8, 0xc9, 0xe4, 0xb8, 0x9f, 0x5f, 0x1d, 0xd5,
0x44, 0xf3, 0x52, 0xfc, 0x44, 0x1a, 0xdb, 0xdf, 0x73, 0xa0, 0xbe, 0xff, 0xec, 0xe0, 0x01, 0x5a,
0x6a, 0x3f, 0x1c, 0x44, 0x63, 0x54, 0xca, 0x82, 0x1d, 0xba, 0x7d, 0xa1, 0x9d, 0xbd, 0x0a, 0x4d,
0xae, 0xcb, 0xd1, 0x12, 0x72, 0xfd, 0xd3, 0x76, 0x73, 0x00, 0xad, 0x30, 0x7b, 0x15, 0xfb, 0x09,
0x37, 0xb3, 0xca, 0x78, 0xd6, 0xb9, 0x96, 0x2a, 0x77, 0xd0, 0xbf, 0xab, 0x43, 0x67, 0x6f, 0x90,
0xf9, 0x67, 0x4c, 0x6a, 0x4d, 0x3e, 0x2b, 0x07, 0xe4, 0x7a, 0x64, 0x0b, 0xf5, 0x7b, 0xc2, 0xc6,
0x51, 0xc6, 0xfa, 0xd6, 0x31, 0xd9, 0x20, 0x8e, 0x1a, 0x08, 0x42, 0xfd, 0x18, 0xf5, 0x2f, 0x5f,
0x5f, 0xd3, 0xb5, 0x41, 0x64, 0x19, 0x02, 0xc8, 0x65, 0x5c, 0x59, 0xdd, 0x55, 0x4d, 0xe4, 0xc7,
0xc0, 0x8b, 0xbd, 0x81, 0x9f, 0x4d, 0xb9, 0x91, 0x9a, 0x71, 0x75, 0x1b, 0x69, 0x07, 0xd1, 0xc0,
0x0b, 0xfa, 0xc7, 0x5e, 0xe0, 0x85, 0x03, 0x26, 0x0d, 0xbe, 0x0d, 0x92, 0x8f, 0x60, 0x41, 0x2e,
0x49, 0x0d, 0x13, 0x76, 0xbf, 0x80, 0xa2, 0x6f, 0x30, 0x88, 0xc6, 0x63, 0x3f, 0x43, 0x57, 0xa0,
0xdb, 0x10, 0xbe, 0x41, 0x8e, 0xf0, 0x9d, 0x88, 0xd6, 0xb9, 0xe0, 0x61, 0x53, 0xcc, 0x66, 0x81,
0x48, 0xe5, 0x84, 0xb1, 0x7e, 0xcc, 0x92, 0xfe, 0xcb, 0xf3, 0x2e, 0x08, 0x2a, 0x39, 0x82, 0xa7,
0x31, 0x09, 0x53, 0x96, 0x65, 0x01, 0x1b, 0xea, 0x05, 0xb5, 0xf8, 0xb0, 0x72, 0x07, 0xb9, 0x05,
0x2b, 0xc2, 0x3b, 0x49, 0xbd, 0x2c, 0x4a, 0x4f, 0xfd, 0xb4, 0x9f, 0xb2, 0x30, 0xeb, 0xb6, 0xf9,
0xf8, 0xaa, 0x2e, 0x72, 0x07, 0x36, 0x0a, 0x70, 0xc2, 0x06, 0xcc, 0x3f, 0x63, 0xc3, 0x6e, 0x87,
0x7f, 0x75, 0x51, 0x37, 0xb9, 0x06, 0x2d, 0x74, 0xca, 0x26, 0xf1, 0xd0, 0xcb, 0x58, 0xda, 0x5d,
0xe0, 0xe7, 0x60, 0x42, 0xe4, 0x36, 0x74, 0x62, 0x26, 0xcc, 0xdf, 0x69, 0x16, 0x0c, 0xd2, 0xee,
0x22, 0xb7, 0x39, 0x2d, 0x79, 0xd9, 0x50, 0x7e, 0x5d, 0x7b, 0x04, 0x5d, 0x83, 0x95, 0x03, 0x3f,
0xcd, 0xa4, 0x2c, 0x69, 0xfd, 0xb6, 0x0f, 0xab, 0x36, 0x2c, 0x6f, 0xdb, 0x2d, 0x68, 0x48, 0xc1,
0x48, 0xbb, 0x2d, 0x4e, 0x7c, 0x55, 0x12, 0xb7, 0x64, 0xd2, 0xd5, 0xa3, 0xe8, 0xef, 0xd6, 0xa0,
0x8e, 0x37, 0xe9, 0xe2, 0x5b, 0x67, 0x5e, 0xe1, 0x9a, 0x75, 0x85, 0x4d, 0x85, 0x3a, 0x63, 0x29,
0x54, 0xee, 0x8c, 0x4e, 0x33, 0x26, 0xf9, 0x2d, 0x64, 0xd2, 0x40, 0xf2, 0xfe, 0x84, 0x0d, 0xce,
0xb8, 0x60, 0xea, 0x7e, 0x44, 0x50, 0x6c, 0x53, 0x2f, 0x13, 0x5f, 0x0b, 0xa9, 0xd4, 0x6d, 0xd5,
0xc7, 0xbf, 0x9c, 0xcf, 0xfb, 0xf8, 0x77, 0x5d, 0x98, 0xf7, 0xc3, 0xe3, 0x68, 0x12, 0x0e, 0xb9,
0x04, 0x36, 0x5c, 0xd5, 0xc4, 0x4b, 0x1e, 0x73, 0xc7, 0xc3, 0x1f, 0x33, 0x29, 0x7a, 0x39, 0x40,
0x09, 0x7a, 0x18, 0x29, 0xd7, 0x29, 0x9a, 0xc9, 0x9f, 0xc0, 0xb2, 0x81, 0x49, 0x0e, 0x5f, 0x87,
0x59, 0xdc, 0xbd, 0x72, 0x55, 0xd5, 0xd9, 0x71, 0x65, 0x24, 0x7a, 0xe8, 0x12, 0x2c, 0x3c, 0x61,
0xd9, 0x67, 0xe1, 0x49, 0xa4, 0x28, 0xfd, 0x67, 0x0d, 0x16, 0x35, 0x24, 0x09, 0x6d, 0xc2, 0xa2,
0x3f, 0x64, 0x61, 0xe6, 0x67, 0xd3, 0xbe, 0xe5, 0xc8, 0x14, 0x61, 0x54, 0xef, 0x5e, 0xe0, 0x7b,
0xa9, 0x54, 0x10, 0xa2, 0x41, 0x76, 0x61, 0x15, 0x65, 0x4b, 0x89, 0x8b, 0x3e, 0x76, 0xe1, 0x3f,
0x55, 0xf6, 0xe1, 0x75, 0x40, 0x5c, 0x28, 0xa0, 0xfc, 0x13, 0xa1, 0xcc, 0xaa, 0xba, 0x90, 0x6b,
0x82, 0x12, 0x6e, 0x79, 0x96, 0x8f, 0xcb, 0x81, 0x52, 0x48, 0x31, 0x27, 0x7c, 0xb7, 0x62, 0x48,
0x61, 0x84, 0x25, 0x8d, 0x52, 0x58, 0xb2, 0x09, 0x8b, 0xe9, 0x34, 0x1c, 0xb0, 0x61, 0x3f, 0x8b,
0x70, 0x5e, 0x3f, 0xe4, 0xa7, 0xd3, 0x70, 0x8b, 0x30, 0x0f, 0xa0, 0x58, 0x9a, 0x85, 0x2c, 0xe3,
0x7a, 0xa1, 0xe1, 0xaa, 0x26, 0xaa, 0x58, 0x3e, 0x44, 0x08, 0x7d, 0xd3, 0x95, 0x2d, 0xfa, 0x43,
0x6e, 0xea, 0x74, 0x8c, 0xf4, 0x9c, 0xdf, 0x43, 0x72, 0x05, 0x9a, 0x62, 0xfe, 0xf4, 0xd4, 0x53,
0xd1, 0x1c, 0x07, 0x8e, 0x4e, 0x3d, 0x0c, 0x01, 0xac, 0x2d, 0x09, 0x89, 0x6f, 0x71, 0x6c, 0x5f,
0xec, 0xe8, 0x06, 0x2c, 0xa8, 0xe8, 0x2b, 0xed, 0x07, 0xec, 0x24, 0x53, 0x3e, 0x6b, 0x38, 0x19,
0xe3, 0x74, 0xe9, 0x01, 0x3b, 0xc9, 0xe8, 0x53, 0x58, 0x96, 0xb7, 0xed, 0x8b, 0x98, 0xa9, 0xa9,
0xbf, 0x5d, 0xd4, 0xe6, 0xc2, 0xdc, 0xae, 0x48, 0x29, 0x32, 0x1d, 0xed, 0x82, 0x8a, 0xa7, 0x2e,
0x10, 0xd9, 0xfd, 0x20, 0x88, 0x52, 0x26, 0x09, 0x52, 0x68, 0x0f, 0x82, 0x28, 0x2d, 0x7a, 0xe3,
0x26, 0x86, 0x7c, 0x4b, 0x27, 0x83, 0x01, 0xde, 0x52, 0x61, 0xb0, 0x55, 0x93, 0x32, 0x58, 0xe1,
0xc4, 0x94, 0x5a, 0xd0, 0x4e, 0xde, 0xfb, 0xaf, 0xb2, 0x3d, 0x30, 0x83, 0x83, 0x55, 0x98, 0x3d,
0x89, 0x92, 0x01, 0x93, 0x13, 0x89, 0x06, 0xfd, 0x27, 0x07, 0x96, 0xf9, 0x3c, 0x47, 0x99, 0x97,
0x4d, 0x52, 0xb9, 0xf4, 0x5f, 0x86, 0x0e, 0x2e, 0x93, 0x29, 0x31, 0x95, 0xb3, 0xac, 0xea, 0x1b,
0xc5, 0x51, 0x31, 0x78, 0xff, 0x92, 0x6b, 0x0f, 0x26, 0x9f, 0x42, 0xdb, 0x0c, 0x7f, 0xf9, 0x84,
0xad, 0xdd, 0xcb, 0x6a, 0x89, 0xa5, 0x53, 0xdf, 0xbf, 0xe4, 0x5a, 0x1f, 0x90, 0x7b, 0x00, 0xdc,
0x46, 0x72, 0xb2, 0x32, 0x12, 0xba, 0x6c, 0xef, 0xd0, 0x60, 0xf4, 0xfe, 0x25, 0xd7, 0x18, 0x7e,
0xbf, 0x01, 0x73, 0x42, 0xa9, 0xd3, 0x27, 0xd0, 0xb1, 0x56, 0x6a, 0xf9, 0xd2, 0x6d, 0xe1, 0x4b,
0x97, 0x62, 0x9c, 0x5a, 0x45, 0x8c, 0xf3, 0x2f, 0x0e, 0x10, 0x94, 0x94, 0xc2, 0x59, 0x7c, 0x04,
0x0b, 0x99, 0x97, 0x8c, 0x58, 0xd6, 0xb7, 0xdd, 0xa8, 0x02, 0xca, 0xad, 0x4f, 0x34, 0xb4, 0x7c,
0x89, 0xb6, 0x6b, 0x42, 0x64, 0x1b, 0x88, 0xd1, 0x54, 0x81, 0xab, 0xd0, 0xdb, 0x15, 0x3d, 0xa8,
0x60, 0x84, 0x23, 0xa0, 0x42, 0x36, 0xe9, 0x3b, 0xd5, 0xb9, 0xee, 0xac, 0xec, 0xe3, 0x79, 0x92,
0x09, 0x46, 0xc5, 0x5e, 0xa6, 0xbc, 0x0d, 0xd5, 0xa6, 0x3f, 0x73, 0x60, 0x09, 0x37, 0x68, 0x09,
0xc1, 0x5d, 0xe0, 0x02, 0xf4, 0x9e, 0x32, 0x60, 0x8d, 0xfd, 0x9f, 0x8b, 0xc0, 0x1d, 0x68, 0x72,
0x82, 0x51, 0xcc, 0x42, 0x29, 0x01, 0x5d, 0x5b, 0x02, 0xf2, 0xab, 0xbb, 0x7f, 0xc9, 0xcd, 0x07,
0x1b, 0xe7, 0xff, 0x0f, 0x0e, 0xb4, 0xe4, 0x32, 0xff, 0xdb, 0xfe, 0x67, 0x0f, 0x1a, 0x28, 0x0a,
0x86, 0x7b, 0xa7, 0xdb, 0xa8, 0x1e, 0xc7, 0xe8, 0xfe, 0xa3, 0x3d, 0xb0, 0x7c, 0xcf, 0x22, 0x8c,
0xca, 0x9d, 0x6b, 0xa9, 0xb4, 0x9f, 0xf9, 0x41, 0x5f, 0xf5, 0xca, 0x34, 0x4f, 0x55, 0x17, 0xde,
0xd6, 0x34, 0xf3, 0x46, 0x4c, 0xea, 0x6d, 0xd1, 0xa0, 0x1b, 0xb0, 0x26, 0x37, 0x64, 0x8b, 0x22,
0xfd, 0x77, 0x80, 0xf5, 0x62, 0x8f, 0xf6, 0x3b, 0xa4, 0x33, 0x15, 0xf8, 0xe3, 0xe3, 0x48, 0xfb,
0x65, 0x8e, 0xe9, 0x67, 0x59, 0x5d, 0xe4, 0x04, 0xd6, 0x94, 0x79, 0x42, 0x8e, 0xe6, 0xc6, 0xa8,
0xc6, 0xed, 0xea, 0x2d, 0x5b, 0x02, 0x0a, 0xf3, 0x29, 0xd8, 0xbc, 0x2f, 0xd5, 0xe4, 0xc8, 0x08,
0xba, 0xda, 0x0c, 0x4a, 0xa5, 0x68, 0x98, 0x4a, 0x9c, 0xea, 0x1b, 0x6f, 0x9f, 0x8a, 0x2b, 0x81,
0xa1, 0x42, 0x2f, 0x24, 0x46, 0x5e, 0xc1, 0x87, 0xaa, 0x8f, 0x6b, 0xbd, 0xf2, 0x74, 0xf5, 0xf7,
0xd9, 0xd9, 0x63, 0xfc, 0xd6, 0x9e, 0xf3, 0x1d, 0x74, 0x7b, 0x7f, 0xeb, 0xc0, 0x82, 0x4d, 0x0d,
0xa5, 0x46, 0x7a, 0xe7, 0xea, 0x62, 0x2b, 0xe7, 0xa2, 0x00, 0x97, 0xe3, 0x8b, 0x5a, 0x55, 0x7c,
0x61, 0x46, 0x11, 0x33, 0xef, 0x8a, 0x22, 0xea, 0xef, 0x17, 0x45, 0xcc, 0x56, 0x45, 0x11, 0xbd,
0x9f, 0xd6, 0x80, 0x94, 0x4f, 0x97, 0x3c, 0x16, 0x01, 0x4e, 0xc8, 0x02, 0xa9, 0x22, 0x3e, 0x7e,
0x2f, 0x01, 0x51, 0xb0, 0xfa, 0x18, 0x05, 0xd5, 0x54, 0x01, 0xa6, 0x95, 0xef, 0xb8, 0x55, 0x5d,
0x64, 0x0b, 0x96, 0xf2, 0xbb, 0x13, 0xe4, 0xba, 0xa2, 0xe3, 0x96, 0xf0, 0x42, 0x08, 0x54, 0x7f,
0x77, 0x08, 0x34, 0xfb, 0xee, 0x10, 0x68, 0xae, 0x18, 0x02, 0xf5, 0x5e, 0x43, 0xc7, 0x12, 0x90,
0xff, 0x35, 0xe6, 0x14, 0x9d, 0x09, 0x21, 0x0a, 0x16, 0xd6, 0xfb, 0xb7, 0x1a, 0x90, 0xb2, 0x8c,
0xfe, 0x7f, 0x2e, 0x81, 0x0b, 0x9c, 0xa5, 0x66, 0x66, 0xa4, 0xc0, 0x59, 0x0a, 0xe6, 0xff, 0x52,
0x71, 0x7e, 0x0c, 0xcb, 0x09, 0x1b, 0x44, 0x67, 0x2c, 0x31, 0x82, 0x50, 0x71, 0x50, 0xe5, 0x0e,
0x74, 0xa7, 0xec, 0xb0, 0xaf, 0x61, 0x65, 0xb9, 0x0d, 0xeb, 0x51, 0x8c, 0xfe, 0xbe, 0x0d, 0xab,
0xe2, 0x51, 0xe1, 0xbe, 0x20, 0xa5, 0x9c, 0x82, 0xeb, 0xd0, 0x3e, 0x17, 0x79, 0xaf, 0x7e, 0x14,
0x06, 0x53, 0x69, 0x68, 0x5a, 0x12, 0xfb, 0x22, 0x0c, 0xa6, 0xf4, 0x36, 0xac, 0x15, 0x3e, 0xcd,
0x13, 0x32, 0xb6, 0x7a, 0x56, 0x4d, 0x54, 0xfc, 0xf2, 0x3c, 0xec, 0xe9, 0xe8, 0x2e, 0xac, 0x17,
0x3b, 0xde, 0x49, 0xec, 0x53, 0x20, 0xdf, 0x9d, 0xb0, 0x64, 0xca, 0x93, 0xca, 0x3a, 0x7d, 0xb8,
0x51, 0x0c, 0x32, 0xe7, 0xe2, 0xc9, 0xf1, 0x77, 0xd8, 0x54, 0xe5, 0xe2, 0x6b, 0x3a, 0x17, 0x4f,
0xef, 0xc1, 0x8a, 0x45, 0x40, 0x67, 0xc5, 0xe7, 0x78, 0x62, 0x5a, 0x05, 0x60, 0x76, 0xf2, 0x5a,
0xf6, 0xd1, 0x3f, 0x76, 0x60, 0x66, 0x3f, 0x8a, 0xcd, 0xbc, 0x88, 0x63, 0xe7, 0x45, 0xa4, 0xde,
0xeb, 0x6b, 0xb5, 0x56, 0x93, 0x57, 0xd1, 0x04, 0x51, 0x6b, 0x79, 0xe3, 0x0c, 0x43, 0x90, 0x93,
0x28, 0x39, 0xf7, 0x92, 0xa1, 0x94, 0xb5, 0x02, 0x8a, 0xcb, 0xcf, 0x6f, 0x3c, 0xfe, 0x44, 0x5b,
0xcf, 0x93, 0x43, 0x53, 0x19, 0x35, 0xc9, 0x16, 0xfd, 0xb1, 0x03, 0xb3, 0x7c, 0xad, 0x28, 0xa0,
0xc2, 0x30, 0xf2, 0xf7, 0x15, 0x9e, 0x7b, 0x72, 0x84, 0x80, 0x16, 0xe0, 0xc2, 0xab, 0x4b, 0xad,
0xf8, 0xea, 0x82, 0x41, 0x9a, 0x68, 0xe5, 0xcf, 0x19, 0x39, 0x40, 0x3e, 0x84, 0xfa, 0x69, 0x14,
0x2b, 0xf3, 0x03, 0x2a, 0xd9, 0x10, 0xc5, 0x2e, 0xc7, 0xe9, 0x16, 0x2c, 0x3e, 0x8d, 0x86, 0xcc,
0x88, 0x57, 0x2f, 0x3c, 0x26, 0xfa, 0xdb, 0x0e, 0x34, 0xd4, 0x60, 0xb2, 0x09, 0x75, 0x34, 0x23,
0x05, 0x9f, 0x4d, 0xa7, 0x0c, 0x71, 0x9c, 0xcb, 0x47, 0xe0, 0xad, 0xe6, 0x11, 0x53, 0x6e, 0xe3,
0x55, 0xbc, 0x94, 0xdb, 0x4f, 0x74, 0x74, 0xf9, 0x9a, 0x0b, 0x86, 0xa6, 0x80, 0xd2, 0x9f, 0x38,
0xd0, 0xb1, 0xe6, 0x40, 0xd7, 0x37, 0xf0, 0xd2, 0x4c, 0xa6, 0x59, 0x24, 0x13, 0x4d, 0xc8, 0xcc,
0x6d, 0xd4, 0xec, 0xdc, 0x86, 0x8e, 0xad, 0x67, 0xcc, 0xd8, 0xfa, 0x16, 0x34, 0x65, 0x22, 0x83,
0x29, 0xbe, 0xa9, 0xdb, 0x8a, 0x33, 0xaa, 0x64, 0x68, 0x3e, 0x88, 0xde, 0x83, 0x96, 0xd1, 0x83,
0x13, 0x86, 0x2c, 0x3b, 0x8f, 0x92, 0x97, 0x2a, 0x99, 0x22, 0x9b, 0x3a, 0x57, 0x5f, 0xcb, 0x73,
0xf5, 0xf4, 0x2f, 0x1d, 0xe8, 0xa0, 0x4c, 0xf8, 0xe1, 0xe8, 0x30, 0x0a, 0xfc, 0xc1, 0x94, 0xcb,
0x86, 0x3a, 0xfe, 0xfe, 0x90, 0x05, 0x99, 0xa7, 0x65, 0xc3, 0x86, 0xd1, 0x32, 0x8f, 0xfd, 0x90,
0xeb, 0x0b, 0x29, 0x19, 0xba, 0x8d, 0x32, 0x8e, 0x66, 0xe3, 0xd8, 0x4b, 0x59, 0x7f, 0x8c, 0x2e,
0xb9, 0x54, 0x94, 0x16, 0x88, 0xea, 0x0f, 0x81, 0xc4, 0xcb, 0x58, 0x7f, 0xec, 0x07, 0x81, 0x2f,
0xc6, 0x0a, 0x59, 0xae, 0xea, 0xa2, 0x7f, 0x5d, 0x83, 0x96, 0x54, 0x08, 0x8f, 0x86, 0x23, 0x91,
0xf9, 0x93, 0xee, 0x82, 0xbe, 0x68, 0x06, 0xa2, 0xfa, 0x2d, 0x07, 0xc3, 0x40, 0x8a, 0x07, 0x38,
0x53, 0x3e, 0xc0, 0xab, 0xd0, 0x44, 0x41, 0xba, 0xcd, 0x3d, 0x19, 0xf1, 0xb4, 0x99, 0x03, 0xaa,
0x77, 0x97, 0xf7, 0xce, 0xe6, 0xbd, 0x1c, 0xb0, 0x7c, 0x97, 0xb9, 0x82, 0xef, 0x72, 0x07, 0xda,
0x92, 0x0c, 0xe7, 0x3b, 0x4f, 0x27, 0xe5, 0xa2, 0x6c, 0x9d, 0x89, 0x6b, 0x8d, 0x54, 0x5f, 0xee,
0xaa, 0x2f, 0x1b, 0xef, 0xfa, 0x52, 0x8d, 0xa4, 0x6b, 0xb0, 0x22, 0x99, 0xf7, 0x24, 0xf1, 0xe2,
0x53, 0xa5, 0x64, 0x87, 0xfa, 0x9d, 0x8d, 0xc3, 0x64, 0x0b, 0x66, 0xf1, 0x33, 0xa5, 0xe7, 0xaa,
0xaf, 0x97, 0x18, 0x42, 0x36, 0x61, 0x96, 0x0d, 0x47, 0x4c, 0x39, 0xcf, 0xc4, 0x0e, 0x62, 0xf0,
0x8c, 0x5c, 0x31, 0x00, 0x2f, 0x3b, 0xa2, 0x85, 0xcb, 0x6e, 0xeb, 0xc8, 0x39, 0x6c, 0x7e, 0x36,
0xa4, 0xab, 0x40, 0x9e, 0x0a, 0xa9, 0x35, 0x73, 0x59, 0xbf, 0x33, 0x03, 0x2d, 0x03, 0xc6, 0x7b,
0x3b, 0xc2, 0x05, 0xf7, 0x87, 0xbe, 0x37, 0x66, 0x19, 0x4b, 0xa4, 0xa4, 0x16, 0x50, 0xae, 0x4a,
0xcf, 0x46, 0xfd, 0x68, 0x92, 0xf5, 0x87, 0x6c, 0x94, 0x30, 0x91, 0x23, 0x70, 0xdc, 0x02, 0x8a,
0xe3, 0xc6, 0xde, 0x2b, 0x73, 0x9c, 0x90, 0x87, 0x02, 0xaa, 0x32, 0x53, 0x82, 0x47, 0xf5, 0x3c,
0x33, 0x25, 0x38, 0x52, 0xd4, 0x38, 0xb3, 0x15, 0x1a, 0xe7, 0x13, 0x58, 0x17, 0xba, 0x45, 0xde,
0xcd, 0x7e, 0x41, 0x4c, 0x2e, 0xe8, 0x45, 0x8f, 0x10, 0xd7, 0xac, 0x04, 0x3c, 0xf5, 0x7f, 0x28,
0x52, 0xe2, 0x8e, 0x5b, 0xc2, 0x71, 0x2c, 0x5e, 0x47, 0x6b, 0xac, 0x48, 0x8d, 0x97, 0x70, 0x3e,
0xd6, 0x7b, 0x65, 0x8f, 0x6d, 0xca, 0xb1, 0x05, 0x9c, 0x76, 0xa0, 0x75, 0x94, 0x45, 0xb1, 0x3a,
0x94, 0x05, 0x68, 0x8b, 0xa6, 0x7c, 0x0e, 0xb9, 0x02, 0x97, 0xb9, 0x14, 0x3d, 0x8b, 0xe2, 0x28,
0x88, 0x46, 0xd3, 0xa3, 0xc9, 0x71, 0x3a, 0x48, 0xfc, 0x18, 0x1d, 0x5b, 0xfa, 0xf7, 0x0e, 0xac,
0x58, 0xbd, 0x32, 0x16, 0xff, 0x45, 0x21, 0xd2, 0x3a, 0x83, 0x2d, 0x04, 0x6f, 0xd9, 0x50, 0x7c,
0x62, 0xa0, 0x48, 0x2b, 0x3c, 0x97, 0x49, 0xed, 0x3d, 0x58, 0x54, 0x2b, 0x53, 0x1f, 0x0a, 0x29,
0xec, 0x96, 0xa5, 0x50, 0x7e, 0xbf, 0x20, 0x3f, 0x50, 0x24, 0x7e, 0x45, 0x38, 0x7d, 0x6c, 0xc8,
0xf7, 0xa8, 0xe2, 0xb2, 0x9e, 0xfa, 0xde, 0x74, 0x34, 0xd5, 0x0a, 0x06, 0x1a, 0x4c, 0xe9, 0xef,
0x3b, 0x00, 0xf9, 0xea, 0x50, 0x30, 0x72, 0xe5, 0xed, 0xf0, 0x7c, 0x60, 0x0e, 0xa0, 0xeb, 0xa4,
0xf3, 0xab, 0xb9, 0x3d, 0x68, 0x29, 0x0c, 0x7d, 0x91, 0x9b, 0xb0, 0x38, 0x0a, 0xa2, 0x63, 0x6e,
0x5d, 0xf9, 0xcb, 0x5b, 0x2a, 0x1f, 0x85, 0x16, 0x04, 0xfc, 0x58, 0xa2, 0xb9, 0xf1, 0xa8, 0x1b,
0xc6, 0x83, 0xfe, 0x41, 0x4d, 0x67, 0xfe, 0xf2, 0x3d, 0x5f, 0x78, 0xcb, 0xc8, 0x6e, 0x49, 0x39,
0x5e, 0x90, 0x69, 0xe3, 0xe9, 0x87, 0xc3, 0x77, 0x86, 0x63, 0xf7, 0x60, 0x21, 0x11, 0xda, 0x47,
0xa9, 0xa6, 0xfa, 0x5b, 0x54, 0x53, 0x27, 0xb1, 0xec, 0xce, 0x2f, 0xc0, 0x92, 0x37, 0x3c, 0x63,
0x49, 0xe6, 0x73, 0x77, 0x9b, 0x9b, 0x77, 0xa1, 0x50, 0x17, 0x0d, 0x9c, 0x5b, 0xdd, 0x9b, 0xb0,
0x28, 0x1f, 0xe2, 0xf4, 0x48, 0x59, 0xd8, 0x90, 0xc3, 0x38, 0x90, 0xfe, 0xb9, 0x23, 0xb3, 0x8c,
0xf6, 0x19, 0x5e, 0xcc, 0x11, 0x73, 0x77, 0xb5, 0xc2, 0xee, 0xbe, 0x2e, 0x93, 0x86, 0x43, 0xe5,
0xd3, 0xcb, 0xd4, 0xab, 0x00, 0x65, 0x82, 0xd6, 0x66, 0x69, 0xfd, 0x7d, 0x58, 0x4a, 0xb7, 0x61,
0xf1, 0x88, 0x65, 0x7b, 0x78, 0x82, 0x4a, 0x31, 0x5e, 0x81, 0x66, 0xc8, 0xce, 0xfb, 0xe2, 0x88,
0x85, 0x19, 0x6f, 0x84, 0xec, 0x9c, 0x8f, 0xa1, 0x04, 0x96, 0xf2, 0xf1, 0xf2, 0xd6, 0xfd, 0xe9,
0x0c, 0xcc, 0x7f, 0x16, 0x9e, 0x45, 0xfe, 0x80, 0xa7, 0x01, 0xc7, 0x6c, 0x1c, 0xa9, 0x27, 0x75,
0xfc, 0x8d, 0x5e, 0x01, 0x7f, 0x2d, 0x8a, 0x33, 0x99, 0x9f, 0x53, 0x4d, 0xb4, 0x90, 0x49, 0x5e,
0xbf, 0x21, 0xa4, 0xcd, 0x40, 0xd0, 0x9b, 0x4c, 0xcc, 0x92, 0x14, 0xd9, 0xca, 0xeb, 0x09, 0x66,
0x8d, 0x7a, 0x02, 0x9e, 0xf0, 0x15, 0x0f, 0x61, 0xfc, 0x48, 0x1a, 0xae, 0x6a, 0x72, 0xaf, 0x37,
0x61, 0x22, 0xbe, 0xe5, 0xb6, 0x76, 0x5e, 0x7a, 0xbd, 0x26, 0x88, 0xf6, 0x58, 0x7c, 0x20, 0xc6,
0x08, 0x7d, 0x65, 0x42, 0xe8, 0x9f, 0x14, 0xab, 0x5a, 0x9a, 0x42, 0x4c, 0x0a, 0x30, 0x2a, 0xb5,
0x21, 0xd3, 0xba, 0x47, 0xec, 0x01, 0x44, 0x7d, 0x4a, 0x11, 0x37, 0x7c, 0x66, 0xf1, 0xa0, 0x27,
0x5b, 0xdc, 0x8f, 0xf1, 0x82, 0xe0, 0xd8, 0x1b, 0xbc, 0xec, 0x73, 0xe7, 0xa9, 0x2d, 0x72, 0x14,
0x16, 0x88, 0xab, 0x1e, 0x04, 0xd9, 0x59, 0x5f, 0x92, 0xe8, 0x88, 0xf7, 0x37, 0x03, 0xa2, 0x5f,
0x02, 0xd9, 0x1b, 0x0e, 0xe5, 0x09, 0xe9, 0x88, 0x22, 0xe7, 0xad, 0x63, 0xf1, 0xb6, 0x62, 0x8f,
0xb5, 0xca, 0x3d, 0xd2, 0x47, 0xd0, 0x3a, 0x34, 0x4a, 0x84, 0xf8, 0x61, 0xaa, 0xe2, 0x20, 0x29,
0x00, 0x06, 0x62, 0x4c, 0x58, 0x33, 0x27, 0xa4, 0xbf, 0x04, 0xe4, 0xc0, 0x4f, 0x33, 0xbd, 0x3e,
0x1d, 0xeb, 0xe9, 0xcc, 0x96, 0x11, 0xeb, 0x49, 0x8c, 0xc7, 0x7a, 0x7b, 0xe2, 0x91, 0xb0, 0xb8,
0xb1, 0x2d, 0x68, 0xf8, 0x02, 0x52, 0xba, 0x7c, 0x41, 0x5e, 0x02, 0x35, 0x52, 0xf7, 0xa3, 0x53,
0x22, 0x41, 0xcb, 0x54, 0xfc, 0xd8, 0x81, 0x79, 0xb9, 0x35, 0x34, 0xa9, 0x56, 0x71, 0x94, 0xd8,
0x98, 0x85, 0x55, 0xd7, 0xb7, 0x94, 0xa5, 0x6e, 0xa6, 0x4a, 0xea, 0x08, 0xd4, 0x63, 0x2f, 0x3b,
0xe5, 0xfe, 0x76, 0xd3, 0xe5, 0xbf, 0x55, 0x5c, 0x35, 0xab, 0xe3, 0x2a, 0xf5, 0x20, 0x2a, 0x17,
0xa5, 0xdf, 0xea, 0xee, 0x8b, 0x07, 0xd1, 0x1c, 0xce, 0x79, 0x20, 0x17, 0x58, 0xe4, 0x81, 0x1c,
0xea, 0xea, 0x7e, 0xda, 0x83, 0xee, 0x43, 0x16, 0xb0, 0x8c, 0xed, 0x05, 0x41, 0x91, 0xfe, 0x15,
0xb8, 0x5c, 0xd1, 0x27, 0xef, 0xfd, 0x63, 0x58, 0x7e, 0xc8, 0x8e, 0x27, 0xa3, 0x03, 0x76, 0x96,
0x27, 0xee, 0x09, 0xd4, 0xd3, 0xd3, 0xe8, 0x5c, 0x9e, 0x17, 0xff, 0x4d, 0x3e, 0x00, 0x08, 0x70,
0x4c, 0x3f, 0x8d, 0xd9, 0x40, 0x15, 0x78, 0x70, 0xe4, 0x28, 0x66, 0x03, 0xfa, 0x09, 0x10, 0x93,
0x8e, 0xdc, 0x02, 0xde, 0xc6, 0xc9, 0x71, 0x3f, 0x9d, 0xa6, 0x19, 0x1b, 0x2b, 0x45, 0x64, 0x42,
0xf4, 0x26, 0xb4, 0x0f, 0xbd, 0xa9, 0xcb, 0xbe, 0x92, 0x35, 0x67, 0x18, 0xbe, 0x79, 0x53, 0x14,
0x4f, 0x1d, 0xbe, 0xf1, 0x6e, 0xfa, 0x37, 0x35, 0x98, 0x13, 0x23, 0x91, 0xea, 0x90, 0xa5, 0x99,
0x1f, 0x8a, 0xdc, 0xb9, 0xa4, 0x6a, 0x40, 0xa5, 0xf3, 0xae, 0x55, 0x9c, 0xb7, 0x74, 0xb3, 0xd4,
0x63, 0xb8, 0x3c, 0x58, 0x0b, 0xe3, 0xd1, 0xa9, 0x3f, 0x66, 0xa2, 0xa4, 0xb0, 0x2e, 0xa3, 0x53,
0x05, 0x14, 0xe2, 0xe4, 0xfc, 0xce, 0x8b, 0xf5, 0x29, 0x41, 0x94, 0xa6, 0xc5, 0x84, 0x2a, 0x35,
0xcb, 0xbc, 0x28, 0x32, 0x2b, 0x69, 0x96, 0x92, 0x06, 0x69, 0xbc, 0x87, 0x06, 0x11, 0xbe, 0x97,
0xa5, 0x41, 0x08, 0x2c, 0x3d, 0x66, 0xcc, 0x65, 0x71, 0x94, 0xe8, 0xc2, 0xbd, 0x3f, 0x71, 0x60,
0x49, 0x5a, 0x15, 0xdd, 0x47, 0xae, 0x5b, 0x26, 0xc8, 0xa9, 0xca, 0xa9, 0xde, 0x80, 0x0e, 0x0f,
0xc2, 0x30, 0xc2, 0xe2, 0x11, 0x97, 0xcc, 0x40, 0x58, 0x20, 0xae, 0x49, 0xa5, 0xfe, 0xc6, 0x7e,
0x20, 0x19, 0x6c, 0x42, 0x68, 0x2e, 0x55, 0x90, 0xc6, 0xd9, 0xeb, 0xb8, 0xba, 0x4d, 0x0f, 0x61,
0xd9, 0x58, 0xaf, 0x14, 0xa8, 0x7b, 0xa0, 0x1e, 0xed, 0x44, 0x42, 0x41, 0xdc, 0x8b, 0x0d, 0xdb,
0x40, 0xe6, 0x9f, 0x59, 0x83, 0xe9, 0x5f, 0x39, 0x9c, 0x05, 0xd2, 0x0f, 0xd3, 0x15, 0x3b, 0x73,
0xc2, 0x35, 0x12, 0xd2, 0xbe, 0x7f, 0xc9, 0x95, 0x6d, 0xf2, 0xad, 0xf7, 0xf4, 0x6e, 0xf4, 0xfb,
0xda, 0x05, 0xbc, 0x99, 0xa9, 0xe2, 0xcd, 0x5b, 0x76, 0x7e, 0x7f, 0x1e, 0x66, 0xd3, 0x41, 0x14,
0x33, 0xba, 0xc2, 0x59, 0xa0, 0xd6, 0x2b, 0x58, 0xb0, 0xfb, 0xcf, 0x0e, 0x2c, 0x88, 0xf4, 0x98,
0x28, 0xdd, 0x65, 0x09, 0xc1, 0xf8, 0xcb, 0xa8, 0x08, 0x26, 0xda, 0xfd, 0x2c, 0x57, 0x16, 0xf7,
0xae, 0x54, 0xf6, 0x29, 0xdf, 0xfb, 0x47, 0x3f, 0xfb, 0xd7, 0x9f, 0xd4, 0xd6, 0xe8, 0xd2, 0xce,
0xd9, 0xed, 0x1d, 0xae, 0xe2, 0xd8, 0x39, 0x1f, 0x71, 0xd7, 0xd9, 0xc2, 0x59, 0xcc, 0x62, 0x61,
0x3d, 0x4b, 0x45, 0xd1, 0xb1, 0x9e, 0xa5, 0xb2, 0xba, 0xd8, 0x9a, 0x65, 0xc2, 0x47, 0xe8, 0x59,
0x76, 0xff, 0xe2, 0x0a, 0x34, 0x75, 0xa0, 0x48, 0x7e, 0x00, 0x1d, 0x2b, 0x15, 0x48, 0x14, 0xe1,
0xaa, 0xdc, 0x62, 0xef, 0x6a, 0x75, 0xa7, 0x9c, 0xf6, 0x43, 0x3e, 0x6d, 0x97, 0xac, 0xe3, 0xb4,
0x32, 0xd7, 0xb7, 0xc3, 0x53, 0xa4, 0xe2, 0x8d, 0xfe, 0x25, 0x2c, 0xd8, 0xa9, 0x42, 0x72, 0xd5,
0x3e, 0xed, 0xc2, 0x6c, 0x1f, 0x5c, 0xd0, 0x2b, 0xa7, 0xbb, 0xca, 0xa7, 0x5b, 0x27, 0xab, 0xe6,
0x74, 0x3a, 0x80, 0x63, 0xbc, 0xaa, 0xc2, 0xac, 0x36, 0x26, 0x8a, 0x5e, 0x75, 0x15, 0x72, 0xef,
0x72, 0xb9, 0xb2, 0x58, 0x96, 0x22, 0xd3, 0x2e, 0x9f, 0x8a, 0x10, 0xce, 0x50, 0xb3, 0xd8, 0x98,
0x7c, 0x1f, 0x9a, 0xba, 0x64, 0x92, 0x6c, 0x18, 0x05, 0xa2, 0x66, 0x11, 0x66, 0xaf, 0x5b, 0xee,
0xa8, 0x3a, 0x2a, 0x93, 0x32, 0x0a, 0xc4, 0x01, 0xac, 0x49, 0x8b, 0x7b, 0xcc, 0x7e, 0x9e, 0x9d,
0x54, 0xd4, 0x48, 0xdf, 0x72, 0xc8, 0x3d, 0x68, 0xa8, 0x2a, 0x52, 0xb2, 0x5e, 0x5d, 0xca, 0xda,
0xdb, 0x28, 0xe1, 0x52, 0x2f, 0xec, 0x01, 0xe4, 0x45, 0x93, 0xa4, 0x7b, 0x51, 0x6d, 0xa7, 0x66,
0x62, 0x45, 0x85, 0xe5, 0x88, 0xd7, 0x8c, 0xda, 0x35, 0x99, 0xe4, 0x6b, 0xf9, 0xf8, 0xca, 0x6a,
0xcd, 0xb7, 0x10, 0xa4, 0xeb, 0x9c, 0x77, 0x4b, 0x64, 0x01, 0x79, 0x17, 0xb2, 0x73, 0x55, 0x5f,
0xf4, 0x10, 0x5a, 0x46, 0x21, 0x26, 0x51, 0x14, 0xca, 0x45, 0x9c, 0xbd, 0x5e, 0x55, 0x97, 0x5c,
0xee, 0xaf, 0x41, 0xc7, 0xaa, 0xa8, 0xd4, 0x37, 0xa3, 0xaa, 0x5e, 0x53, 0xdf, 0x8c, 0xea, 0x22,
0xcc, 0xef, 0x41, 0xcb, 0xa8, 0x7f, 0x24, 0xc6, 0x33, 0x74, 0xa1, 0xbe, 0x51, 0xaf, 0xa8, 0xa2,
0x5c, 0x92, 0xae, 0xf2, 0xfd, 0x2e, 0xd0, 0x26, 0xee, 0x97, 0x17, 0xd9, 0xa0, 0x90, 0xfc, 0x00,
0x16, 0xec, 0xba, 0x47, 0x7d, 0xab, 0x2a, 0x2b, 0x28, 0xf5, 0xad, 0xba, 0xa0, 0x58, 0x52, 0x0a,
0xe4, 0xd6, 0x8a, 0x9e, 0x64, 0xe7, 0xb5, 0x4c, 0x88, 0xbe, 0x21, 0xdf, 0x45, 0xd5, 0x21, 0xab,
0x9e, 0x48, 0x5e, 0x07, 0x6a, 0xd7, 0x46, 0x69, 0x69, 0x2f, 0x15, 0x48, 0xd1, 0x65, 0x4e, 0xbc,
0x45, 0xf2, 0x1d, 0x90, 0xcf, 0x61, 0x5e, 0x56, 0x3f, 0x91, 0xb5, 0x5c, 0xaa, 0x8d, 0xa4, 0x52,
0x6f, 0xbd, 0x08, 0x4b, 0x62, 0x2b, 0x9c, 0x58, 0x87, 0xb4, 0x90, 0xd8, 0x88, 0x65, 0x3e, 0xd2,
0x08, 0x60, 0xd1, 0x7e, 0x3e, 0x4a, 0x35, 0x3b, 0x2a, 0x1f, 0xae, 0x35, 0x3b, 0xaa, 0xdf, 0xa2,
0x6c, 0x25, 0xa3, 0x94, 0xcb, 0x8e, 0xaa, 0x32, 0xf8, 0x4d, 0x68, 0x9b, 0xa5, 0x76, 0x5a, 0x63,
0x57, 0x94, 0xe5, 0x69, 0x8d, 0x5d, 0x55, 0x9b, 0xa7, 0x8e, 0x96, 0xb4, 0xcd, 0x69, 0xc8, 0xf7,
0x60, 0xd1, 0x78, 0xe7, 0x3c, 0x9a, 0x86, 0x03, 0x2d, 0x3a, 0xe5, 0x6a, 0x90, 0x5e, 0x95, 0xe9,
0xa4, 0x1b, 0x9c, 0xf0, 0x32, 0xb5, 0x08, 0xa3, 0xd8, 0x3c, 0x80, 0x96, 0xf9, 0x86, 0xfa, 0x16,
0xba, 0x1b, 0x46, 0x97, 0x59, 0x9f, 0x71, 0xcb, 0x21, 0x7f, 0xe4, 0x40, 0xdb, 0x2c, 0x12, 0x22,
0x56, 0x5e, 0xa6, 0x40, 0xa7, 0x6b, 0xf6, 0x99, 0x84, 0xe8, 0x53, 0xbe, 0xc8, 0xfd, 0xad, 0xc7,
0x16, 0x93, 0x5f, 0x5b, 0x2e, 0xd1, 0xb6, 0xf9, 0xcf, 0x01, 0x6f, 0x8a, 0x9d, 0x66, 0xb5, 0xcc,
0x9b, 0x5b, 0x0e, 0xb9, 0x2b, 0xfe, 0x05, 0x44, 0x85, 0x27, 0xc4, 0x50, 0x6b, 0x45, 0x76, 0x99,
0xff, 0x57, 0xb1, 0xe9, 0xdc, 0x72, 0xc8, 0x6f, 0x89, 0xff, 0x07, 0x90, 0xdf, 0x72, 0xae, 0xbf,
0xef, 0xf7, 0xf4, 0x06, 0xdf, 0xc9, 0x87, 0xf4, 0xb2, 0xb5, 0x93, 0xa2, 0x5e, 0x3f, 0x04, 0xc8,
0x63, 0x4d, 0x52, 0x08, 0xbc, 0xb4, 0xc6, 0x2b, 0x87, 0xa3, 0xf6, 0x69, 0xaa, 0xf8, 0x4c, 0x28,
0x81, 0xb6, 0x11, 0xe5, 0xa5, 0xfa, 0x38, 0xcb, 0x31, 0x63, 0xaf, 0x57, 0xd5, 0x25, 0xe9, 0x7f,
0x9d, 0xd3, 0xff, 0x80, 0x5c, 0x31, 0xe9, 0xef, 0xbc, 0x36, 0x63, 0xcc, 0x37, 0xe4, 0x4b, 0xe8,
0x1c, 0x44, 0xd1, 0xcb, 0x49, 0xac, 0xd3, 0x19, 0x76, 0xd4, 0x84, 0x71, 0x6e, 0xaf, 0xb0, 0x29,
0x7a, 0x9d, 0x53, 0xbe, 0x42, 0x2e, 0xdb, 0x94, 0xf3, 0xc8, 0xf7, 0x0d, 0xf1, 0x60, 0x59, 0x5b,
0x3b, 0xbd, 0x91, 0x9e, 0x4d, 0xc7, 0x0c, 0x40, 0x4b, 0x73, 0x58, 0xfe, 0x87, 0x9e, 0x23, 0x55,
0x34, 0x6f, 0x39, 0xe4, 0x10, 0xda, 0x0f, 0xd9, 0x20, 0x1a, 0x32, 0x19, 0xe8, 0xac, 0xe4, 0x2b,
0xd7, 0x11, 0x52, 0xaf, 0x63, 0x81, 0xb6, 0x06, 0x88, 0xbd, 0x69, 0xc2, 0xbe, 0xda, 0x79, 0x2d,
0x43, 0xa8, 0x37, 0x4a, 0x03, 0xa8, 0xb0, 0xcf, 0xd2, 0x00, 0x85, 0x38, 0xd1, 0xd2, 0x00, 0xa5,
0x38, 0xd1, 0xd2, 0x00, 0x2a, 0xec, 0x24, 0x01, 0x46, 0x8f, 0x85, 0xd0, 0x52, 0xdb, 0xcc, 0x8b,
0x02, 0xd2, 0xde, 0xb5, 0x8b, 0x07, 0xd8, 0xb3, 0x6d, 0xd9, 0xb3, 0x1d, 0x41, 0xe7, 0x21, 0x13,
0xcc, 0x12, 0xef, 0x0c, 0x3d, 0x5b, 0xa5, 0x98, 0x6f, 0x12, 0x45, 0x75, 0xc3, 0xfb, 0x6c, 0x05,
0xcf, 0x93, 0xfc, 0xe4, 0xfb, 0xd0, 0x7a, 0xc2, 0x32, 0xf5, 0xb0, 0xa0, 0x3d, 0x8f, 0xc2, 0x4b,
0x43, 0xaf, 0xe2, 0x5d, 0x82, 0x5e, 0xe3, 0xd4, 0x7a, 0xa4, 0xab, 0xa9, 0xed, 0xb0, 0xe1, 0x88,
0x89, 0xcb, 0xdf, 0xf7, 0x87, 0x6f, 0xc8, 0xaf, 0x73, 0xe2, 0xfa, 0xd5, 0x71, 0xdd, 0xc8, 0x47,
0x9b, 0xc4, 0x17, 0x0b, 0x78, 0x15, 0xe5, 0x30, 0x1a, 0x32, 0xc3, 0xd4, 0x85, 0xd0, 0x32, 0x9e,
0x98, 0xf5, 0x85, 0x2a, 0xbf, 0x5b, 0xeb, 0x0b, 0x55, 0xf1, 0x22, 0x4d, 0x37, 0xf9, 0x3c, 0x94,
0x5c, 0xcb, 0xe7, 0x11, 0xaf, 0xd0, 0xf9, 0x4c, 0x3b, 0xaf, 0xbd, 0x71, 0xf6, 0x86, 0xbc, 0xe0,
0x85, 0xc1, 0xe6, 0xe3, 0x49, 0xee, 0xf9, 0x14, 0xdf, 0x59, 0x34, 0xb3, 0x8c, 0x2e, 0xdb, 0x1b,
0x12, 0x53, 0x71, 0x8b, 0xf8, 0x2d, 0x80, 0xa3, 0x2c, 0x8a, 0x1f, 0x7a, 0x6c, 0x1c, 0x85, 0xb9,
0x26, 0xcb, 0x1f, 0x08, 0x72, 0x4d, 0x66, 0xbc, 0x12, 0x90, 0x17, 0x86, 0xef, 0x69, 0xbd, 0x3d,
0x29, 0xe1, 0xba, 0xf0, 0x0d, 0x41, 0x33, 0xa4, 0xe2, 0x1d, 0x41, 0xb9, 0xa1, 0x22, 0x39, 0x6a,
0xb8, 0xa1, 0x56, 0x76, 0xd5, 0x70, 0x43, 0xed, 0x2c, 0x2a, 0xba, 0xa1, 0x79, 0x16, 0x44, 0xbb,
0xa1, 0xa5, 0x04, 0x8b, 0xd6, 0xa1, 0x15, 0x29, 0x93, 0x43, 0x68, 0xe6, 0xa1, 0xb8, 0x9a, 0xa8,
0x18, 0xb8, 0x6b, 0x63, 0x55, 0x8a, 0x90, 0xe9, 0x12, 0xe7, 0x33, 0x90, 0x06, 0xf2, 0x99, 0x3f,
0xb1, 0x3f, 0x03, 0x10, 0xbb, 0x7b, 0x8c, 0x2d, 0x83, 0xa4, 0x15, 0x08, 0x9b, 0x24, 0xed, 0x88,
0x53, 0x79, 0x32, 0x54, 0x93, 0xbc, 0xeb, 0x6c, 0x1d, 0xcf, 0xf1, 0xff, 0x5f, 0xfd, 0xe6, 0x7f,
0x05, 0x00, 0x00, 0xff, 0xff, 0x5e, 0x53, 0x68, 0x69, 0xf1, 0x3a, 0x00, 0x00,
}

@ -564,7 +564,15 @@ func RegisterWalletUnlockerHandlerFromEndpoint(ctx context.Context, mux *runtime
// RegisterWalletUnlockerHandler registers the http handlers for service WalletUnlocker to "mux".
// The handlers forward requests to the grpc endpoint over "conn".
func RegisterWalletUnlockerHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
client := NewWalletUnlockerClient(conn)
return RegisterWalletUnlockerHandlerClient(ctx, mux, NewWalletUnlockerClient(conn))
}
// RegisterWalletUnlockerHandler registers the http handlers for service WalletUnlocker to "mux".
// The handlers forward requests to the grpc endpoint over the given implementation of "WalletUnlockerClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "WalletUnlockerClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
// "WalletUnlockerClient" to call the correct interceptors.
func RegisterWalletUnlockerHandlerClient(ctx context.Context, mux *runtime.ServeMux, client WalletUnlockerClient) error {
mux.Handle("POST", pattern_WalletUnlocker_CreateWallet_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)
@ -667,7 +675,15 @@ func RegisterLightningHandlerFromEndpoint(ctx context.Context, mux *runtime.Serv
// RegisterLightningHandler registers the http handlers for service Lightning to "mux".
// The handlers forward requests to the grpc endpoint over "conn".
func RegisterLightningHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
client := NewLightningClient(conn)
return RegisterLightningHandlerClient(ctx, mux, NewLightningClient(conn))
}
// RegisterLightningHandler registers the http handlers for service Lightning to "mux".
// The handlers forward requests to the grpc endpoint over the given implementation of "LightningClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "LightningClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
// "LightningClient" to call the correct interceptors.
func RegisterLightningHandlerClient(ctx context.Context, mux *runtime.ServeMux, client LightningClient) error {
mux.Handle("GET", pattern_Lightning_WalletBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)

@ -840,6 +840,31 @@ message OpenStatusUpdate {
}
}
message PendingHTLC {
/// The direction within the channel that the htlc was sent
bool incoming = 1 [ json_name = "incoming" ];
/// The total value of the htlc
int64 amount = 2 [ json_name = "amount" ];
/// The final output to be swept back to the user's wallet
string outpoint = 3 [ json_name = "outpoint" ];
/// The next block height at which we can spend the current stage
uint32 maturity_height = 4 [ json_name = "maturity_height" ];
/**
The number of blocks remaining until the current stage can be swept.
Negative values indicate how many blocks have passed since becoming
mature.
*/
int32 blocks_til_maturity = 5 [ json_name = "blocks_til_maturity" ];
/// Indicates whether the htlc is in its first or second stage of recovery
uint32 stage = 6 [ json_name = "stage" ];
}
message PendingChannelRequest {}
message PendingChannelResponse {
message PendingChannel {
@ -894,8 +919,6 @@ message PendingChannelResponse {
/// The pending channel to be force closed
PendingChannel channel = 1 [ json_name = "channel" ];
// TODO(roasbeef): HTLC's as well?
/// The transaction id of the closing transaction
string closing_txid = 2 [ json_name = "closing_txid" ];
@ -905,8 +928,17 @@ message PendingChannelResponse {
/// The height at which funds can be sweeped into the wallet
uint32 maturity_height = 4 [ json_name = "maturity_height" ];
/// Remaining # of blocks until funds can be sweeped into the wallet
uint32 blocks_til_maturity = 5 [ json_name = "blocks_til_maturity" ];
/*
Remaining # of blocks until the commitment output can be swept.
Negative values indicate how many blocks have passed since becoming
mature.
*/
int32 blocks_til_maturity = 5 [ json_name = "blocks_til_maturity" ];
/// The total value of funds successfully recovered from this channel
int64 recovered_balance = 6 [ json_name = "recovered_balance" ];
repeated PendingHTLC pending_htlcs = 8 [ json_name = "pending_htlcs" ];
}
/// The balance in satoshis encumbered in pending channels

@ -732,8 +732,19 @@
},
"blocks_til_maturity": {
"type": "integer",
"format": "int32",
"description": "Remaining # of blocks until the commitment output can be swept.\nNegative values indicate how many blocks have passed since becoming\nmature."
},
"recovered_balance": {
"type": "string",
"format": "int64",
"title": "/ Remaining # of blocks until funds can be sweeped into the wallet"
"title": "/ The total value of funds successfully recovered from this channel"
},
"pending_htlcs": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcPendingHTLC"
}
}
}
},
@ -1743,6 +1754,40 @@
}
}
},
"lnrpcPendingHTLC": {
"type": "object",
"properties": {
"incoming": {
"type": "boolean",
"format": "boolean",
"title": "/ The direction within the channel that the htlc was sent"
},
"amount": {
"type": "string",
"format": "int64",
"title": "/ The total value of the htlc"
},
"outpoint": {
"type": "string",
"title": "/ The final output to be swept back to the user's wallet"
},
"maturity_height": {
"type": "integer",
"format": "int64",
"title": "/ The next block height at which we can spend the current stage"
},
"blocks_til_maturity": {
"type": "integer",
"format": "int32",
"description": "*\nThe number of blocks remaining until the current stage can be swept.\nNegative values indicate how many blocks have passed since becoming\nmature."
},
"stage": {
"type": "integer",
"format": "int64",
"title": "/ Indicates whether the htlc is in its first or second stage of recovery"
}
}
},
"lnrpcPendingUpdate": {
"type": "object",
"properties": {