diff --git a/cln/cln_client.go b/cln/cln_client.go index ccd3e141..c4c1e1dc 100644 --- a/cln/cln_client.go +++ b/cln/cln_client.go @@ -1,115 +1,120 @@ package cln import ( + "bytes" + "context" + "crypto/tls" + "crypto/x509" "encoding/hex" "fmt" "log" - "path/filepath" "strings" - "sync" "time" + "github.com/breez/lspd/cln/rpc" + "github.com/breez/lspd/config" "github.com/breez/lspd/lightning" - "github.com/btcsuite/btcd/chaincfg/chainhash" "github.com/btcsuite/btcd/wire" - "github.com/elementsproject/glightning/glightning" - "github.com/elementsproject/glightning/jrpc2" "golang.org/x/exp/slices" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/status" ) type ClnClient struct { - socketPath string - client *glightning.Lightning - mtx sync.Mutex + client rpc.NodeClient } var ( - OPEN_STATUSES = []string{"CHANNELD_NORMAL"} - PENDING_STATUSES = []string{"OPENINGD", "CHANNELD_AWAITING_LOCKIN"} - CLOSING_STATUSES = []string{"CHANNELD_SHUTTING_DOWN", "CLOSINGD_SIGEXCHANGE", "CLOSINGD_COMPLETE", "AWAITING_UNILATERAL", "FUNDING_SPEND_SEEN", "ONCHAIN"} - CLOSED_STATUSES = []string{"CLOSED"} + OPEN_STATUSES = []int32{ + int32(rpc.ListpeerchannelsChannels_CHANNELD_NORMAL), + } + PENDING_STATUSES = []int32{ + int32(rpc.ListpeerchannelsChannels_OPENINGD), + int32(rpc.ListpeerchannelsChannels_CHANNELD_AWAITING_LOCKIN), + int32(rpc.ListpeerchannelsChannels_DUALOPEND_OPEN_INIT), + int32(rpc.ListpeerchannelsChannels_DUALOPEND_AWAITING_LOCKIN), + int32(rpc.ListpeerchannelsChannels_CHANNELD_AWAITING_SPLICE), + int32(rpc.ListpeerchannelsChannels_DUALOPEND_OPEN_COMMITTED), + int32(rpc.ListpeerchannelsChannels_DUALOPEND_OPEN_COMMIT_READY), + } + CLOSING_STATUSES = []int32{ + int32(rpc.ListpeerchannelsChannels_CHANNELD_SHUTTING_DOWN), + int32(rpc.ListpeerchannelsChannels_CLOSINGD_SIGEXCHANGE), + int32(rpc.ListpeerchannelsChannels_CLOSINGD_COMPLETE), + int32(rpc.ListpeerchannelsChannels_AWAITING_UNILATERAL), + int32(rpc.ListpeerchannelsChannels_FUNDING_SPEND_SEEN), + int32(rpc.ListpeerchannelsChannels_ONCHAIN), + } ) -func NewClnClient(socketPath string) (*ClnClient, error) { - client, err := newGlightningClient(socketPath) - if err != nil { - return nil, err +func NewClnClient(config *config.ClnConfig) (*ClnClient, error) { + certPool := x509.NewCertPool() + if !certPool.AppendCertsFromPEM([]byte(config.CaCert)) { + return nil, fmt.Errorf("failed to add grpc server CA's certificate") } - return &ClnClient{ - socketPath: socketPath, - client: client, - }, nil -} -func newGlightningClient(socketPath string) (*glightning.Lightning, error) { - rpcFile := filepath.Base(socketPath) - if rpcFile == "" || rpcFile == "." { - return nil, fmt.Errorf("invalid socketPath '%s'", socketPath) - } - lightningDir := filepath.Dir(socketPath) - if lightningDir == "" || lightningDir == "." { - return nil, fmt.Errorf("invalid socketPath '%s'", socketPath) + clientCert, err := tls.X509KeyPair( + []byte(config.ClientCert), + []byte(config.ClientKey), + ) + if err != nil { + return nil, fmt.Errorf("failed to create X509 key pair: %w", err) } - client := glightning.NewLightning() - client.SetTimeout(60) - err := client.StartUp(rpcFile, lightningDir) - return client, err -} - -func (c *ClnClient) getClient() (*glightning.Lightning, error) { - c.mtx.Lock() - defer c.mtx.Unlock() - if c.client.IsUp() { - return c.client, nil + tlsConfig := &tls.Config{ + RootCAs: certPool, + Certificates: []tls.Certificate{clientCert}, } - var err error - c.client, err = newGlightningClient(c.socketPath) + tlsCredentials := credentials.NewTLS(tlsConfig) + + conn, err := grpc.Dial( + config.GrpcAddress, + grpc.WithTransportCredentials(tlsCredentials), + ) if err != nil { - return nil, err - } - if c.client.IsUp() { - return c.client, nil + return nil, fmt.Errorf("failed to connect to CLN gRPC: %w", err) } - return nil, fmt.Errorf("cln is not accessible") + client := rpc.NewNodeClient(conn) + return &ClnClient{ + client: client, + }, nil } func (c *ClnClient) GetInfo() (*lightning.GetInfoResult, error) { - client, err := c.getClient() - if err != nil { - return nil, err - } - info, err := client.GetInfo() + info, err := c.client.Getinfo(context.Background(), &rpc.GetinfoRequest{}) if err != nil { log.Printf("CLN: client.GetInfo() error: %v", err) return nil, err } + var alias string + if info.Alias != nil { + alias = *info.Alias + } return &lightning.GetInfoResult{ - Alias: info.Alias, - Pubkey: info.Id, + Alias: alias, + Pubkey: hex.EncodeToString(info.Id), }, nil } func (c *ClnClient) IsConnected(destination []byte) (bool, error) { - client, err := c.getClient() - if err != nil { - return false, err - } - pubKey := hex.EncodeToString(destination) - peer, err := client.GetPeer(pubKey) + peers, err := c.client.ListPeers(context.Background(), &rpc.ListpeersRequest{ + Id: destination, + }) if err != nil { - if strings.Contains(err.Error(), "not found") { - return false, nil - } + log.Printf("CLN: client.ListPeers(%v) error: %v", pubKey, err) + return false, fmt.Errorf("CLN: client.ListPeers(%v) error: %w", pubKey, err) + } - log.Printf("CLN: client.GetPeer(%v) error: %v", pubKey, err) - return false, fmt.Errorf("CLN: client.GetPeer(%v) error: %w", pubKey, err) + if len(peers.Peers) == 0 { + return false, nil } + peer := peers.Peers[0] if peer.Connected { log.Printf("CLN: destination online: %x", destination) return true, nil @@ -120,69 +125,72 @@ func (c *ClnClient) IsConnected(destination []byte) (bool, error) { } func (c *ClnClient) OpenChannel(req *lightning.OpenChannelRequest) (*wire.OutPoint, error) { - client, err := c.getClient() - if err != nil { - return nil, err - } - - pubkey := hex.EncodeToString(req.Destination) - var minConfs *uint16 - if req.MinConfs != nil { - m := uint16(*req.MinConfs) - minConfs = &m - } - var minDepth uint16 = 0 - var rate *glightning.FeeRate + var minDepth uint32 = 0 + announce := false + var rate *rpc.Feerate if req.FeeSatPerVByte != nil { - rate = &glightning.FeeRate{ - Rate: uint(*req.FeeSatPerVByte * 1000), - Style: glightning.PerKb, + rate = &rpc.Feerate{ + Style: &rpc.Feerate_Perkb{ + Perkb: uint32(*req.FeeSatPerVByte * 1000), + }, } } else if req.TargetConf != nil { if *req.TargetConf < 3 { - rate = &glightning.FeeRate{ - Directive: glightning.Urgent, + rate = &rpc.Feerate{ + Style: &rpc.Feerate_Urgent{ + Urgent: true, + }, } } else if *req.TargetConf < 30 { - rate = &glightning.FeeRate{ - Directive: glightning.Normal, + rate = &rpc.Feerate{ + Style: &rpc.Feerate_Normal{ + Normal: true, + }, } } else { - rate = &glightning.FeeRate{ - Directive: glightning.Slow, + rate = &rpc.Feerate{ + Style: &rpc.Feerate_Slow{ + Slow: true, + }, } } } - fundResult, err := client.FundChannelExt( - pubkey, - glightning.NewSat(int(req.CapacitySat)), - rate, - false, - minConfs, - glightning.NewMsat(0), - &minDepth, - glightning.NewMsat(0), + fundResult, err := c.client.FundChannel( + context.Background(), + &rpc.FundchannelRequest{ + Id: req.Destination, + Amount: &rpc.AmountOrAll{ + Value: &rpc.AmountOrAll_Amount{ + Amount: &rpc.Amount{ + Msat: req.CapacitySat * 1000, + }, + }, + }, + Feerate: rate, + Announce: &announce, + Minconf: req.MinConfs, + Mindepth: &minDepth, + Reserve: &rpc.Amount{ + Msat: 0, + }, + }, ) if err != nil { - log.Printf("CLN: client.FundChannelExt(%v, %v) error: %v", pubkey, req.CapacitySat, err) - rpcError, ok := err.(*jrpc2.RpcError) - if ok && rpcError.Code == 301 { - return nil, fmt.Errorf("not enough funds: %w", err) + log.Printf("CLN: client.FundChannel(%x, %v) error: %v", req.Destination, req.CapacitySat, err) + if e, ok := status.FromError(err); ok { + if strings.Contains(e.Message(), "code: Some(301)") { + return nil, fmt.Errorf("not enough funds: %w", err) + } } return nil, err } - fundingTxId, err := chainhash.NewHashFromStr(fundResult.FundingTxId) + channelPoint, err := lightning.NewOutPoint(reverseBytes(fundResult.Txid), fundResult.Outnum) if err != nil { - log.Printf("CLN: chainhash.NewHashFromStr(%s) error: %v", fundResult.FundingTxId, err) - return nil, err - } - - channelPoint, err := lightning.NewOutPoint(fundingTxId[:], uint32(fundResult.FundingTxOutputNum)) - if err != nil { - log.Printf("CLN: NewOutPoint(%s, %d) error: %v", fundingTxId.String(), fundResult.FundingTxOutputNum, err) + log.Printf("CLN: NewOutPoint(%x, %d) error: %v", fundResult.Txid, + fundResult.Outnum, err) return nil, err } @@ -190,22 +198,30 @@ func (c *ClnClient) OpenChannel(req *lightning.OpenChannelRequest) (*wire.OutPoi } func (c *ClnClient) GetChannel(peerID []byte, channelPoint wire.OutPoint) (*lightning.GetChannelResult, error) { - client, err := c.getClient() - if err != nil { - return nil, err - } - pubkey := hex.EncodeToString(peerID) - channels, err := client.GetPeerChannels(pubkey) + channels, err := c.client.ListPeerChannels( + context.Background(), + &rpc.ListpeerchannelsRequest{ + Id: peerID, + }, + ) if err != nil { - log.Printf("CLN: client.GetPeerChannels(%s) error: %v", pubkey, err) + log.Printf("CLN: client.ListPeerChannels(%s) error: %v", pubkey, err) return nil, err } - fundingTxID := channelPoint.Hash.String() - for _, c := range channels { - log.Printf("getChannel destination: %s, Short channel id: %v, local alias: %v , FundingTxID:%v, State:%v ", pubkey, c.ShortChannelId, c.Alias.Local, c.FundingTxId, c.State) - if slices.Contains(OPEN_STATUSES, c.State) && c.FundingTxId == fundingTxID { + for _, c := range channels.Channels { + if c.State == nil { + log.Printf("Channel '%+v' with peer '%x' doesn't have a state (yet).", + c.ShortChannelId, c.PeerId) + continue + } + state := int32(*c.State) + log.Printf("getChannel destination: %s, scid: %+v, local alias: %+v, "+ + "FundingTxID:%x, State:%+v ", pubkey, c.ShortChannelId, + c.Alias.Local, c.FundingTxid, c.State) + if slices.Contains(OPEN_STATUSES, state) && + bytes.Equal(reverseBytes(c.FundingTxid), channelPoint.Hash[:]) { aliasScid, confirmedScid, err := mapScidsFromChannel(c) if err != nil { @@ -214,44 +230,78 @@ func (c *ClnClient) GetChannel(peerID []byte, channelPoint wire.OutPoint) (*ligh return &lightning.GetChannelResult{ AliasScid: aliasScid, ConfirmedScid: confirmedScid, - HtlcMinimumMsat: c.MinimumHtlcOutMsat.MSat(), + HtlcMinimumMsat: c.MinimumHtlcOutMsat.Msat, }, nil } } - log.Printf("No channel found: getChannel(%v, %v)", pubkey, fundingTxID) + log.Printf("No channel found: getChannel(%v, %v)", pubkey, + channelPoint.Hash.String()) return nil, fmt.Errorf("no channel found") } -func (c *ClnClient) GetClosedChannels(nodeID string, channelPoints map[string]uint64) (map[string]uint64, error) { - client, err := c.getClient() - if err != nil { - return nil, err - } - +func (c *ClnClient) GetClosedChannels( + nodeID string, + channelPoints map[string]uint64, +) (map[string]uint64, error) { r := make(map[string]uint64) if len(channelPoints) == 0 { return r, nil } - channels, err := client.GetPeerChannels(nodeID) + nodeIDBytes, err := hex.DecodeString(nodeID) + if err != nil { + return nil, fmt.Errorf("failed to decode nodeid %s", nodeID) + } + + channels, err := c.client.ListPeerChannels( + context.Background(), + &rpc.ListpeerchannelsRequest{ + Id: nodeIDBytes, + }, + ) if err != nil { - log.Printf("CLN: client.GetPeer(%s) error: %v", nodeID, err) + log.Printf("CLN: client.ListPeerChannels(%s) error: %v", nodeID, err) return nil, err } lookup := make(map[string]uint64) - for _, c := range channels { - if slices.Contains(CLOSING_STATUSES, c.State) { - cid, err := lightning.NewShortChannelIDFromString(c.ShortChannelId) + for _, c := range channels.Channels { + if c.State == nil { + log.Printf("Channel '%+v' with peer '%x' doesn't have a state (yet).", + c.ShortChannelId, c.PeerId) + continue + } + state := int32(*c.State) + + if slices.Contains(CLOSING_STATUSES, state) { + if c.ShortChannelId == nil { + log.Printf("CLN: GetClosedChannels. Channel does not have "+ + "ShortChannelId. %x:%d", c.FundingTxid, c.FundingOutnum) + continue + } + scid, err := lightning.NewShortChannelIDFromString(*c.ShortChannelId) if err != nil { log.Printf("CLN: GetClosedChannels NewShortChannelIDFromString(%v) error: %v", c.ShortChannelId, err) continue } - outnum := uint64(*cid) & 0xFFFFFF - cp := fmt.Sprintf("%s:%d", c.FundingTxId, outnum) - lookup[cp] = uint64(*cid) + if c.FundingOutnum == nil { + log.Printf("CLN: GetClosedChannels. Channel does not have "+ + "FundingOutnum. %s %x:%d", *c.ShortChannelId, c.FundingTxid, + c.FundingOutnum) + continue + } + + cp, err := lightning.NewOutPoint(reverseBytes(c.FundingTxid), *c.FundingOutnum) + if err != nil { + log.Printf("CLN: GetClosedChannels lightning.NewOutPoint(%x, %d) error: %v", + c.FundingTxid, + c.FundingOutnum, + err) + continue + } + lookup[cp.String()] = uint64(*scid) } } @@ -265,23 +315,24 @@ func (c *ClnClient) GetClosedChannels(nodeID string, channelPoints map[string]ui } func (c *ClnClient) GetPeerId(scid *lightning.ShortChannelID) ([]byte, error) { - client, err := c.getClient() - if err != nil { - return nil, err - } - scidStr := scid.ToString() - channels, err := client.ListPeerChannels() + channels, err := c.client.ListPeerChannels( + context.Background(), + &rpc.ListpeerchannelsRequest{}, + ) if err != nil { return nil, err } - var dest *string - for _, ch := range channels { - if (ch.Alias != nil && (ch.Alias.Local == scidStr || - ch.Alias.Remote == scidStr)) || - ch.ShortChannelId == scidStr { - dest = &ch.PeerId + var dest []byte + for _, ch := range channels.Channels { + if ch.ShortChannelId != nil && *ch.ShortChannelId == scidStr { + dest = ch.PeerId + break + } + + if ch.Alias != nil && ch.Alias.Local != nil && *ch.Alias.Local == scidStr { + dest = ch.PeerId break } } @@ -290,21 +341,15 @@ func (c *ClnClient) GetPeerId(scid *lightning.ShortChannelID) ([]byte, error) { return nil, nil } - return hex.DecodeString(*dest) + return dest, nil } var pollingInterval = 400 * time.Millisecond func (c *ClnClient) WaitOnline(peerID []byte, deadline time.Time) error { - client, err := c.getClient() - if err != nil { - return err - } - - peerIDStr := hex.EncodeToString(peerID) for { - peer, err := client.GetPeer(peerIDStr) - if err == nil && peer.Connected { + connected, err := c.IsConnected(peerID) + if err == nil && connected { return nil } @@ -317,31 +362,52 @@ func (c *ClnClient) WaitOnline(peerID []byte, deadline time.Time) error { } func (c *ClnClient) WaitChannelActive(peerID []byte, deadline time.Time) error { - return nil + for { + peer, err := c.client.ListPeerChannels( + context.Background(), + &rpc.ListpeerchannelsRequest{ + Id: peerID, + }, + ) + if err == nil { + for _, c := range peer.Channels { + if c.State == nil { + continue + } + + if slices.Contains(OPEN_STATUSES, int32(*c.State)) { + return nil + } + } + } + + select { + case <-time.After(time.Until(deadline)): + return fmt.Errorf("timeout") + case <-time.After(pollingInterval): + } + } } func (c *ClnClient) ListChannels() ([]*lightning.Channel, error) { - channels, err := c.client.ListPeerChannels() + channels, err := c.client.ListPeerChannels( + context.Background(), + &rpc.ListpeerchannelsRequest{}, + ) if err != nil { return nil, err } - result := make([]*lightning.Channel, len(channels)) - for i, channel := range channels { - peerId, err := hex.DecodeString(channel.PeerId) - if err != nil { - log.Printf("cln.ListChannels returned channel without peer id: %+v", channel) - continue - } + result := make([]*lightning.Channel, len(channels.Channels)) + for i, channel := range channels.Channels { aliasScid, confirmedScid, err := mapScidsFromChannel(channel) if err != nil { return nil, err } var outpoint *wire.OutPoint - fundingTxId, err := hex.DecodeString(channel.FundingTxId) - if err == nil && fundingTxId != nil && len(fundingTxId) > 0 { - outpoint, _ = lightning.NewOutPoint(fundingTxId, channel.FundingOutnum) + if channel.FundingTxid != nil && len(channel.FundingTxid) > 0 && channel.FundingOutnum != nil { + outpoint, _ = lightning.NewOutPoint(reverseBytes(channel.FundingTxid), *channel.FundingOutnum) } if outpoint == nil { log.Printf("cln.ListChannels returned channel without outpoint: %+v", channel) @@ -351,30 +417,38 @@ func (c *ClnClient) ListChannels() ([]*lightning.Channel, error) { AliasScid: aliasScid, ConfirmedScid: confirmedScid, ChannelPoint: outpoint, - PeerId: peerId, + PeerId: channel.PeerId, } } return result, nil } -func mapScidsFromChannel(c *glightning.PeerChannel) (*lightning.ShortChannelID, *lightning.ShortChannelID, error) { +func mapScidsFromChannel(c *rpc.ListpeerchannelsChannels) (*lightning.ShortChannelID, *lightning.ShortChannelID, error) { var confirmedScid *lightning.ShortChannelID var aliasScid *lightning.ShortChannelID var err error - if c.ShortChannelId != "" { - confirmedScid, err = lightning.NewShortChannelIDFromString(c.ShortChannelId) + if c.ShortChannelId != nil { + confirmedScid, err = lightning.NewShortChannelIDFromString(*c.ShortChannelId) if err != nil { - return nil, nil, fmt.Errorf("failed to parse scid '%s': %w", c.ShortChannelId, err) + return nil, nil, fmt.Errorf("failed to parse scid '%+v': %w", c.ShortChannelId, err) } } - if c.Alias != nil && c.Alias.Local != "" { - aliasScid, err = lightning.NewShortChannelIDFromString(c.Alias.Local) + if c.Alias != nil && c.Alias.Local != nil { + aliasScid, err = lightning.NewShortChannelIDFromString(*c.Alias.Local) if err != nil { - return nil, nil, fmt.Errorf("failed to parse scid '%s': %w", c.Alias.Local, err) + return nil, nil, fmt.Errorf("failed to parse scid '%+v': %w", c.Alias.Local, err) } } return aliasScid, confirmedScid, nil } + +func reverseBytes(b []byte) []byte { + for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 { + b[i], b[j] = b[j], b[i] + } + + return b +} diff --git a/cln/custom_msg_client.go b/cln/custom_msg_client.go index 9f3bb6c0..5ec3b2e2 100644 --- a/cln/custom_msg_client.go +++ b/cln/custom_msg_client.go @@ -4,10 +4,12 @@ import ( "context" "encoding/binary" "encoding/hex" + "fmt" "log" "sync" "time" + "github.com/breez/lspd/cln/rpc" "github.com/breez/lspd/cln_plugin/proto" "github.com/breez/lspd/config" "github.com/breez/lspd/lightning" @@ -160,12 +162,18 @@ func (c *CustomMsgClient) Send(msg *lightning.CustomMessage) error { var t [2]byte binary.BigEndian.PutUint16(t[:], uint16(msg.Type)) - m := hex.EncodeToString(t[:]) + hex.EncodeToString(msg.Data) - client, err := c.client.getClient() + peerid, err := hex.DecodeString(msg.PeerId) if err != nil { - return err + return fmt.Errorf("failed to decode peer id %s: %w", msg.PeerId, err) } - _, err = client.SendCustomMessage(msg.PeerId, m) + + _, err = c.client.client.SendCustomMsg( + context.Background(), + &rpc.SendcustommsgRequest{ + NodeId: peerid, + Msg: append(t[:], msg.Data...), + }, + ) return err } diff --git a/cln/forwards_sync.go b/cln/forwards_sync.go index 58361577..fa3f7cf4 100644 --- a/cln/forwards_sync.go +++ b/cln/forwards_sync.go @@ -8,9 +8,9 @@ import ( "strconv" "time" + "github.com/breez/lspd/cln/rpc" "github.com/breez/lspd/history" "github.com/breez/lspd/lightning" - "github.com/elementsproject/glightning/glightning" ) type ForwardSync struct { @@ -61,7 +61,8 @@ func (s *ForwardSync) forwardCreatedSynchronizeOnce(ctx context.Context) { var forwards []*history.Forward var newCreatedOffset uint64 var err error - forwards, newCreatedOffset, endReached, err = s.listForwards("created", s.createdOffset, limit) + forwards, newCreatedOffset, endReached, err = s.listForwards( + rpc.ListforwardsRequest_CREATED, s.createdOffset, limit) if err != nil { log.Printf("forwardCreatedSynchronizeOnce(%x)- ListForwards error: %v", s.nodeid, err) return @@ -100,7 +101,8 @@ func (s *ForwardSync) forwardUpdatedSynchronizeOnce(ctx context.Context) { var forwards []*history.Forward var newUpdatedOffset uint64 var err error - forwards, newUpdatedOffset, endReached, err = s.listForwards("updated", s.updatedOffset, limit) + forwards, newUpdatedOffset, endReached, err = s.listForwards( + rpc.ListforwardsRequest_UPDATED, s.updatedOffset, limit) if err != nil { log.Printf("forwardUpdatedSynchronizeOnce(%x)- ListForwards error: %v", s.nodeid, err) return @@ -129,22 +131,22 @@ func (s *ForwardSync) forwardUpdatedSynchronizeOnce(ctx context.Context) { log.Printf("forwardUpdatedSynchronizeOnce(%x) - Done", s.nodeid) } -func (s *ForwardSync) listForwards(index string, offset uint64, limit uint32) ([]*history.Forward, uint64, bool, error) { - var response struct { - Forwards []Forward `json:"forwards"` - } - - client, err := s.client.getClient() - if err != nil { - return nil, 0, false, err - } - - err = client.Request(&glightning.ListForwardsRequest{ - Status: "settled", - Index: index, - Start: offset, - Limit: limit * 2, - }, &response) +func (s *ForwardSync) listForwards( + index rpc.ListforwardsRequest_ListforwardsIndex, + offset uint64, + limit uint32, +) ([]*history.Forward, uint64, bool, error) { + rLimit := limit * 2 + status := rpc.ListforwardsRequest_SETTLED + response, err := s.client.client.ListForwards( + context.Background(), + &rpc.ListforwardsRequest{ + Status: &status, + Index: &index, + Start: &offset, + Limit: &rLimit, + }, + ) if err != nil { return nil, 0, false, err } @@ -153,28 +155,41 @@ func (s *ForwardSync) listForwards(index string, offset uint64, limit uint32) ([ endReached := len(response.Forwards) < int(limit) var lastIndex *uint64 for _, forward := range response.Forwards { + if forward.OutChannel == nil { + continue + } + if forward.CreatedIndex == nil { + continue + } + if forward.InMsat == nil { + continue + } + if forward.OutMsat == nil { + continue + } + in, err := lightning.NewShortChannelIDFromString(forward.InChannel) if err != nil { return nil, 0, false, fmt.Errorf("NewShortChannelIDFromString(%s) error: %w", forward.InChannel, err) } - out, err := lightning.NewShortChannelIDFromString(forward.OutChannel) + out, err := lightning.NewShortChannelIDFromString(*forward.OutChannel) if err != nil { - return nil, 0, false, fmt.Errorf("NewShortChannelIDFromString(%s) error: %w", forward.OutChannel, err) + return nil, 0, false, fmt.Errorf("NewShortChannelIDFromString(%s) error: %w", *forward.OutChannel, err) } - sec, dec := math.Modf(forward.ResolvedTime) + sec, dec := math.Modf(forward.ReceivedTime) result = append(result, &history.Forward{ - Identifier: strconv.FormatUint(forward.CreatedIndex, 10), + Identifier: strconv.FormatUint(*forward.CreatedIndex, 10), InChannel: *in, OutChannel: *out, - InMsat: forward.InMsat.MSat(), - OutMsat: forward.OutMsat.MSat(), + InMsat: forward.InMsat.Msat, + OutMsat: forward.OutMsat.Msat, ResolvedTime: time.Unix(int64(sec), int64(dec*(1e9))), }) - if index == "created" { - lastIndex = &forward.CreatedIndex + if index == rpc.ListforwardsRequest_CREATED { + lastIndex = forward.CreatedIndex } else { - lastIndex = &forward.UpdatedIndex + lastIndex = forward.UpdatedIndex } } @@ -186,16 +201,3 @@ func (s *ForwardSync) listForwards(index string, offset uint64, limit uint32) ([ } return result, newOffset, endReached, nil } - -type Forward struct { - CreatedIndex uint64 `json:"created_index"` - UpdatedIndex uint64 `json:"updated_index"` - InChannel string `json:"in_channel"` - OutChannel string `json:"out_channel"` - InMsat glightning.Amount `json:"in_msat"` - OutMsat glightning.Amount `json:"out_msat"` - Status string `json:"status"` - PaymentHash string `json:"payment_hash"` - ReceivedTime float64 `json:"received_time"` - ResolvedTime float64 `json:"resolved_time"` -} diff --git a/cln/rpc/genproto.sh b/cln/rpc/genproto.sh new file mode 100755 index 00000000..c3bedffb --- /dev/null +++ b/cln/rpc/genproto.sh @@ -0,0 +1,4 @@ +#!/bin/bash +SCRIPTDIR=$(dirname $0) + +protoc --go_out=$SCRIPTDIR --go_opt=paths=source_relative --go-grpc_out=$SCRIPTDIR --go-grpc_opt=paths=source_relative -I=$SCRIPTDIR $SCRIPTDIR/*.proto \ No newline at end of file diff --git a/cln/rpc/node.pb.go b/cln/rpc/node.pb.go new file mode 100644 index 00000000..7bd820e5 --- /dev/null +++ b/cln/rpc/node.pb.go @@ -0,0 +1,25608 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v4.25.3 +// source: node.proto + +package rpc + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Getinfo.address[].type +type GetinfoAddress_GetinfoAddressType int32 + +const ( + GetinfoAddress_DNS GetinfoAddress_GetinfoAddressType = 0 + GetinfoAddress_IPV4 GetinfoAddress_GetinfoAddressType = 1 + GetinfoAddress_IPV6 GetinfoAddress_GetinfoAddressType = 2 + GetinfoAddress_TORV2 GetinfoAddress_GetinfoAddressType = 3 + GetinfoAddress_TORV3 GetinfoAddress_GetinfoAddressType = 4 +) + +// Enum value maps for GetinfoAddress_GetinfoAddressType. +var ( + GetinfoAddress_GetinfoAddressType_name = map[int32]string{ + 0: "DNS", + 1: "IPV4", + 2: "IPV6", + 3: "TORV2", + 4: "TORV3", + } + GetinfoAddress_GetinfoAddressType_value = map[string]int32{ + "DNS": 0, + "IPV4": 1, + "IPV6": 2, + "TORV2": 3, + "TORV3": 4, + } +) + +func (x GetinfoAddress_GetinfoAddressType) Enum() *GetinfoAddress_GetinfoAddressType { + p := new(GetinfoAddress_GetinfoAddressType) + *p = x + return p +} + +func (x GetinfoAddress_GetinfoAddressType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetinfoAddress_GetinfoAddressType) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[0].Descriptor() +} + +func (GetinfoAddress_GetinfoAddressType) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[0] +} + +func (x GetinfoAddress_GetinfoAddressType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetinfoAddress_GetinfoAddressType.Descriptor instead. +func (GetinfoAddress_GetinfoAddressType) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{3, 0} +} + +// Getinfo.binding[].type +type GetinfoBinding_GetinfoBindingType int32 + +const ( + GetinfoBinding_LOCAL_SOCKET GetinfoBinding_GetinfoBindingType = 0 + GetinfoBinding_WEBSOCKET GetinfoBinding_GetinfoBindingType = 5 + GetinfoBinding_IPV4 GetinfoBinding_GetinfoBindingType = 1 + GetinfoBinding_IPV6 GetinfoBinding_GetinfoBindingType = 2 + GetinfoBinding_TORV2 GetinfoBinding_GetinfoBindingType = 3 + GetinfoBinding_TORV3 GetinfoBinding_GetinfoBindingType = 4 +) + +// Enum value maps for GetinfoBinding_GetinfoBindingType. +var ( + GetinfoBinding_GetinfoBindingType_name = map[int32]string{ + 0: "LOCAL_SOCKET", + 5: "WEBSOCKET", + 1: "IPV4", + 2: "IPV6", + 3: "TORV2", + 4: "TORV3", + } + GetinfoBinding_GetinfoBindingType_value = map[string]int32{ + "LOCAL_SOCKET": 0, + "WEBSOCKET": 5, + "IPV4": 1, + "IPV6": 2, + "TORV2": 3, + "TORV3": 4, + } +) + +func (x GetinfoBinding_GetinfoBindingType) Enum() *GetinfoBinding_GetinfoBindingType { + p := new(GetinfoBinding_GetinfoBindingType) + *p = x + return p +} + +func (x GetinfoBinding_GetinfoBindingType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetinfoBinding_GetinfoBindingType) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[1].Descriptor() +} + +func (GetinfoBinding_GetinfoBindingType) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[1] +} + +func (x GetinfoBinding_GetinfoBindingType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetinfoBinding_GetinfoBindingType.Descriptor instead. +func (GetinfoBinding_GetinfoBindingType) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{4, 0} +} + +// ListPeers.peers[].log[].type +type ListpeersPeersLog_ListpeersPeersLogType int32 + +const ( + ListpeersPeersLog_SKIPPED ListpeersPeersLog_ListpeersPeersLogType = 0 + ListpeersPeersLog_BROKEN ListpeersPeersLog_ListpeersPeersLogType = 1 + ListpeersPeersLog_UNUSUAL ListpeersPeersLog_ListpeersPeersLogType = 2 + ListpeersPeersLog_INFO ListpeersPeersLog_ListpeersPeersLogType = 3 + ListpeersPeersLog_DEBUG ListpeersPeersLog_ListpeersPeersLogType = 4 + ListpeersPeersLog_IO_IN ListpeersPeersLog_ListpeersPeersLogType = 5 + ListpeersPeersLog_IO_OUT ListpeersPeersLog_ListpeersPeersLogType = 6 +) + +// Enum value maps for ListpeersPeersLog_ListpeersPeersLogType. +var ( + ListpeersPeersLog_ListpeersPeersLogType_name = map[int32]string{ + 0: "SKIPPED", + 1: "BROKEN", + 2: "UNUSUAL", + 3: "INFO", + 4: "DEBUG", + 5: "IO_IN", + 6: "IO_OUT", + } + ListpeersPeersLog_ListpeersPeersLogType_value = map[string]int32{ + "SKIPPED": 0, + "BROKEN": 1, + "UNUSUAL": 2, + "INFO": 3, + "DEBUG": 4, + "IO_IN": 5, + "IO_OUT": 6, + } +) + +func (x ListpeersPeersLog_ListpeersPeersLogType) Enum() *ListpeersPeersLog_ListpeersPeersLogType { + p := new(ListpeersPeersLog_ListpeersPeersLogType) + *p = x + return p +} + +func (x ListpeersPeersLog_ListpeersPeersLogType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListpeersPeersLog_ListpeersPeersLogType) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[2].Descriptor() +} + +func (ListpeersPeersLog_ListpeersPeersLogType) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[2] +} + +func (x ListpeersPeersLog_ListpeersPeersLogType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListpeersPeersLog_ListpeersPeersLogType.Descriptor instead. +func (ListpeersPeersLog_ListpeersPeersLogType) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{8, 0} +} + +// ListPeers.peers[].channels[].state +type ListpeersPeersChannels_ListpeersPeersChannelsState int32 + +const ( + ListpeersPeersChannels_OPENINGD ListpeersPeersChannels_ListpeersPeersChannelsState = 0 + ListpeersPeersChannels_CHANNELD_AWAITING_LOCKIN ListpeersPeersChannels_ListpeersPeersChannelsState = 1 + ListpeersPeersChannels_CHANNELD_NORMAL ListpeersPeersChannels_ListpeersPeersChannelsState = 2 + ListpeersPeersChannels_CHANNELD_SHUTTING_DOWN ListpeersPeersChannels_ListpeersPeersChannelsState = 3 + ListpeersPeersChannels_CLOSINGD_SIGEXCHANGE ListpeersPeersChannels_ListpeersPeersChannelsState = 4 + ListpeersPeersChannels_CLOSINGD_COMPLETE ListpeersPeersChannels_ListpeersPeersChannelsState = 5 + ListpeersPeersChannels_AWAITING_UNILATERAL ListpeersPeersChannels_ListpeersPeersChannelsState = 6 + ListpeersPeersChannels_FUNDING_SPEND_SEEN ListpeersPeersChannels_ListpeersPeersChannelsState = 7 + ListpeersPeersChannels_ONCHAIN ListpeersPeersChannels_ListpeersPeersChannelsState = 8 + ListpeersPeersChannels_DUALOPEND_OPEN_INIT ListpeersPeersChannels_ListpeersPeersChannelsState = 9 + ListpeersPeersChannels_DUALOPEND_AWAITING_LOCKIN ListpeersPeersChannels_ListpeersPeersChannelsState = 10 + ListpeersPeersChannels_DUALOPEND_OPEN_COMMITTED ListpeersPeersChannels_ListpeersPeersChannelsState = 11 + ListpeersPeersChannels_DUALOPEND_OPEN_COMMIT_READY ListpeersPeersChannels_ListpeersPeersChannelsState = 12 +) + +// Enum value maps for ListpeersPeersChannels_ListpeersPeersChannelsState. +var ( + ListpeersPeersChannels_ListpeersPeersChannelsState_name = map[int32]string{ + 0: "OPENINGD", + 1: "CHANNELD_AWAITING_LOCKIN", + 2: "CHANNELD_NORMAL", + 3: "CHANNELD_SHUTTING_DOWN", + 4: "CLOSINGD_SIGEXCHANGE", + 5: "CLOSINGD_COMPLETE", + 6: "AWAITING_UNILATERAL", + 7: "FUNDING_SPEND_SEEN", + 8: "ONCHAIN", + 9: "DUALOPEND_OPEN_INIT", + 10: "DUALOPEND_AWAITING_LOCKIN", + 11: "DUALOPEND_OPEN_COMMITTED", + 12: "DUALOPEND_OPEN_COMMIT_READY", + } + ListpeersPeersChannels_ListpeersPeersChannelsState_value = map[string]int32{ + "OPENINGD": 0, + "CHANNELD_AWAITING_LOCKIN": 1, + "CHANNELD_NORMAL": 2, + "CHANNELD_SHUTTING_DOWN": 3, + "CLOSINGD_SIGEXCHANGE": 4, + "CLOSINGD_COMPLETE": 5, + "AWAITING_UNILATERAL": 6, + "FUNDING_SPEND_SEEN": 7, + "ONCHAIN": 8, + "DUALOPEND_OPEN_INIT": 9, + "DUALOPEND_AWAITING_LOCKIN": 10, + "DUALOPEND_OPEN_COMMITTED": 11, + "DUALOPEND_OPEN_COMMIT_READY": 12, + } +) + +func (x ListpeersPeersChannels_ListpeersPeersChannelsState) Enum() *ListpeersPeersChannels_ListpeersPeersChannelsState { + p := new(ListpeersPeersChannels_ListpeersPeersChannelsState) + *p = x + return p +} + +func (x ListpeersPeersChannels_ListpeersPeersChannelsState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListpeersPeersChannels_ListpeersPeersChannelsState) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[3].Descriptor() +} + +func (ListpeersPeersChannels_ListpeersPeersChannelsState) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[3] +} + +func (x ListpeersPeersChannels_ListpeersPeersChannelsState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListpeersPeersChannels_ListpeersPeersChannelsState.Descriptor instead. +func (ListpeersPeersChannels_ListpeersPeersChannelsState) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{9, 0} +} + +// ListPeers.peers[].channels[].htlcs[].direction +type ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection int32 + +const ( + ListpeersPeersChannelsHtlcs_IN ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection = 0 + ListpeersPeersChannelsHtlcs_OUT ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection = 1 +) + +// Enum value maps for ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection. +var ( + ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection_name = map[int32]string{ + 0: "IN", + 1: "OUT", + } + ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection_value = map[string]int32{ + "IN": 0, + "OUT": 1, + } +) + +func (x ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection) Enum() *ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection { + p := new(ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection) + *p = x + return p +} + +func (x ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[4].Descriptor() +} + +func (ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[4] +} + +func (x ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection.Descriptor instead. +func (ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{14, 0} +} + +// ListFunds.outputs[].status +type ListfundsOutputs_ListfundsOutputsStatus int32 + +const ( + ListfundsOutputs_UNCONFIRMED ListfundsOutputs_ListfundsOutputsStatus = 0 + ListfundsOutputs_CONFIRMED ListfundsOutputs_ListfundsOutputsStatus = 1 + ListfundsOutputs_SPENT ListfundsOutputs_ListfundsOutputsStatus = 2 + ListfundsOutputs_IMMATURE ListfundsOutputs_ListfundsOutputsStatus = 3 +) + +// Enum value maps for ListfundsOutputs_ListfundsOutputsStatus. +var ( + ListfundsOutputs_ListfundsOutputsStatus_name = map[int32]string{ + 0: "UNCONFIRMED", + 1: "CONFIRMED", + 2: "SPENT", + 3: "IMMATURE", + } + ListfundsOutputs_ListfundsOutputsStatus_value = map[string]int32{ + "UNCONFIRMED": 0, + "CONFIRMED": 1, + "SPENT": 2, + "IMMATURE": 3, + } +) + +func (x ListfundsOutputs_ListfundsOutputsStatus) Enum() *ListfundsOutputs_ListfundsOutputsStatus { + p := new(ListfundsOutputs_ListfundsOutputsStatus) + *p = x + return p +} + +func (x ListfundsOutputs_ListfundsOutputsStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListfundsOutputs_ListfundsOutputsStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[5].Descriptor() +} + +func (ListfundsOutputs_ListfundsOutputsStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[5] +} + +func (x ListfundsOutputs_ListfundsOutputsStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListfundsOutputs_ListfundsOutputsStatus.Descriptor instead. +func (ListfundsOutputs_ListfundsOutputsStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{17, 0} +} + +// SendPay.status +type SendpayResponse_SendpayStatus int32 + +const ( + SendpayResponse_PENDING SendpayResponse_SendpayStatus = 0 + SendpayResponse_COMPLETE SendpayResponse_SendpayStatus = 1 +) + +// Enum value maps for SendpayResponse_SendpayStatus. +var ( + SendpayResponse_SendpayStatus_name = map[int32]string{ + 0: "PENDING", + 1: "COMPLETE", + } + SendpayResponse_SendpayStatus_value = map[string]int32{ + "PENDING": 0, + "COMPLETE": 1, + } +) + +func (x SendpayResponse_SendpayStatus) Enum() *SendpayResponse_SendpayStatus { + p := new(SendpayResponse_SendpayStatus) + *p = x + return p +} + +func (x SendpayResponse_SendpayStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SendpayResponse_SendpayStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[6].Descriptor() +} + +func (SendpayResponse_SendpayStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[6] +} + +func (x SendpayResponse_SendpayStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SendpayResponse_SendpayStatus.Descriptor instead. +func (SendpayResponse_SendpayStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{20, 0} +} + +// Close.type +type CloseResponse_CloseType int32 + +const ( + CloseResponse_MUTUAL CloseResponse_CloseType = 0 + CloseResponse_UNILATERAL CloseResponse_CloseType = 1 + CloseResponse_UNOPENED CloseResponse_CloseType = 2 +) + +// Enum value maps for CloseResponse_CloseType. +var ( + CloseResponse_CloseType_name = map[int32]string{ + 0: "MUTUAL", + 1: "UNILATERAL", + 2: "UNOPENED", + } + CloseResponse_CloseType_value = map[string]int32{ + "MUTUAL": 0, + "UNILATERAL": 1, + "UNOPENED": 2, + } +) + +func (x CloseResponse_CloseType) Enum() *CloseResponse_CloseType { + p := new(CloseResponse_CloseType) + *p = x + return p +} + +func (x CloseResponse_CloseType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CloseResponse_CloseType) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[7].Descriptor() +} + +func (CloseResponse_CloseType) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[7] +} + +func (x CloseResponse_CloseType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CloseResponse_CloseType.Descriptor instead. +func (CloseResponse_CloseType) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{32, 0} +} + +// Connect.direction +type ConnectResponse_ConnectDirection int32 + +const ( + ConnectResponse_IN ConnectResponse_ConnectDirection = 0 + ConnectResponse_OUT ConnectResponse_ConnectDirection = 1 +) + +// Enum value maps for ConnectResponse_ConnectDirection. +var ( + ConnectResponse_ConnectDirection_name = map[int32]string{ + 0: "IN", + 1: "OUT", + } + ConnectResponse_ConnectDirection_value = map[string]int32{ + "IN": 0, + "OUT": 1, + } +) + +func (x ConnectResponse_ConnectDirection) Enum() *ConnectResponse_ConnectDirection { + p := new(ConnectResponse_ConnectDirection) + *p = x + return p +} + +func (x ConnectResponse_ConnectDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConnectResponse_ConnectDirection) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[8].Descriptor() +} + +func (ConnectResponse_ConnectDirection) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[8] +} + +func (x ConnectResponse_ConnectDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConnectResponse_ConnectDirection.Descriptor instead. +func (ConnectResponse_ConnectDirection) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{34, 0} +} + +// Connect.address.type +type ConnectAddress_ConnectAddressType int32 + +const ( + ConnectAddress_LOCAL_SOCKET ConnectAddress_ConnectAddressType = 0 + ConnectAddress_IPV4 ConnectAddress_ConnectAddressType = 1 + ConnectAddress_IPV6 ConnectAddress_ConnectAddressType = 2 + ConnectAddress_TORV2 ConnectAddress_ConnectAddressType = 3 + ConnectAddress_TORV3 ConnectAddress_ConnectAddressType = 4 +) + +// Enum value maps for ConnectAddress_ConnectAddressType. +var ( + ConnectAddress_ConnectAddressType_name = map[int32]string{ + 0: "LOCAL_SOCKET", + 1: "IPV4", + 2: "IPV6", + 3: "TORV2", + 4: "TORV3", + } + ConnectAddress_ConnectAddressType_value = map[string]int32{ + "LOCAL_SOCKET": 0, + "IPV4": 1, + "IPV6": 2, + "TORV2": 3, + "TORV3": 4, + } +) + +func (x ConnectAddress_ConnectAddressType) Enum() *ConnectAddress_ConnectAddressType { + p := new(ConnectAddress_ConnectAddressType) + *p = x + return p +} + +func (x ConnectAddress_ConnectAddressType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConnectAddress_ConnectAddressType) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[9].Descriptor() +} + +func (ConnectAddress_ConnectAddressType) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[9] +} + +func (x ConnectAddress_ConnectAddressType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConnectAddress_ConnectAddressType.Descriptor instead. +func (ConnectAddress_ConnectAddressType) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{35, 0} +} + +// CreateInvoice.status +type CreateinvoiceResponse_CreateinvoiceStatus int32 + +const ( + CreateinvoiceResponse_PAID CreateinvoiceResponse_CreateinvoiceStatus = 0 + CreateinvoiceResponse_EXPIRED CreateinvoiceResponse_CreateinvoiceStatus = 1 + CreateinvoiceResponse_UNPAID CreateinvoiceResponse_CreateinvoiceStatus = 2 +) + +// Enum value maps for CreateinvoiceResponse_CreateinvoiceStatus. +var ( + CreateinvoiceResponse_CreateinvoiceStatus_name = map[int32]string{ + 0: "PAID", + 1: "EXPIRED", + 2: "UNPAID", + } + CreateinvoiceResponse_CreateinvoiceStatus_value = map[string]int32{ + "PAID": 0, + "EXPIRED": 1, + "UNPAID": 2, + } +) + +func (x CreateinvoiceResponse_CreateinvoiceStatus) Enum() *CreateinvoiceResponse_CreateinvoiceStatus { + p := new(CreateinvoiceResponse_CreateinvoiceStatus) + *p = x + return p +} + +func (x CreateinvoiceResponse_CreateinvoiceStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CreateinvoiceResponse_CreateinvoiceStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[10].Descriptor() +} + +func (CreateinvoiceResponse_CreateinvoiceStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[10] +} + +func (x CreateinvoiceResponse_CreateinvoiceStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CreateinvoiceResponse_CreateinvoiceStatus.Descriptor instead. +func (CreateinvoiceResponse_CreateinvoiceStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{37, 0} +} + +// Datastore.mode +type DatastoreRequest_DatastoreMode int32 + +const ( + DatastoreRequest_MUST_CREATE DatastoreRequest_DatastoreMode = 0 + DatastoreRequest_MUST_REPLACE DatastoreRequest_DatastoreMode = 1 + DatastoreRequest_CREATE_OR_REPLACE DatastoreRequest_DatastoreMode = 2 + DatastoreRequest_MUST_APPEND DatastoreRequest_DatastoreMode = 3 + DatastoreRequest_CREATE_OR_APPEND DatastoreRequest_DatastoreMode = 4 +) + +// Enum value maps for DatastoreRequest_DatastoreMode. +var ( + DatastoreRequest_DatastoreMode_name = map[int32]string{ + 0: "MUST_CREATE", + 1: "MUST_REPLACE", + 2: "CREATE_OR_REPLACE", + 3: "MUST_APPEND", + 4: "CREATE_OR_APPEND", + } + DatastoreRequest_DatastoreMode_value = map[string]int32{ + "MUST_CREATE": 0, + "MUST_REPLACE": 1, + "CREATE_OR_REPLACE": 2, + "MUST_APPEND": 3, + "CREATE_OR_APPEND": 4, + } +) + +func (x DatastoreRequest_DatastoreMode) Enum() *DatastoreRequest_DatastoreMode { + p := new(DatastoreRequest_DatastoreMode) + *p = x + return p +} + +func (x DatastoreRequest_DatastoreMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DatastoreRequest_DatastoreMode) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[11].Descriptor() +} + +func (DatastoreRequest_DatastoreMode) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[11] +} + +func (x DatastoreRequest_DatastoreMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DatastoreRequest_DatastoreMode.Descriptor instead. +func (DatastoreRequest_DatastoreMode) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{39, 0} +} + +// DelInvoice.status +type DelinvoiceRequest_DelinvoiceStatus int32 + +const ( + DelinvoiceRequest_PAID DelinvoiceRequest_DelinvoiceStatus = 0 + DelinvoiceRequest_EXPIRED DelinvoiceRequest_DelinvoiceStatus = 1 + DelinvoiceRequest_UNPAID DelinvoiceRequest_DelinvoiceStatus = 2 +) + +// Enum value maps for DelinvoiceRequest_DelinvoiceStatus. +var ( + DelinvoiceRequest_DelinvoiceStatus_name = map[int32]string{ + 0: "PAID", + 1: "EXPIRED", + 2: "UNPAID", + } + DelinvoiceRequest_DelinvoiceStatus_value = map[string]int32{ + "PAID": 0, + "EXPIRED": 1, + "UNPAID": 2, + } +) + +func (x DelinvoiceRequest_DelinvoiceStatus) Enum() *DelinvoiceRequest_DelinvoiceStatus { + p := new(DelinvoiceRequest_DelinvoiceStatus) + *p = x + return p +} + +func (x DelinvoiceRequest_DelinvoiceStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DelinvoiceRequest_DelinvoiceStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[12].Descriptor() +} + +func (DelinvoiceRequest_DelinvoiceStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[12] +} + +func (x DelinvoiceRequest_DelinvoiceStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DelinvoiceRequest_DelinvoiceStatus.Descriptor instead. +func (DelinvoiceRequest_DelinvoiceStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{51, 0} +} + +// DelInvoice.status +type DelinvoiceResponse_DelinvoiceStatus int32 + +const ( + DelinvoiceResponse_PAID DelinvoiceResponse_DelinvoiceStatus = 0 + DelinvoiceResponse_EXPIRED DelinvoiceResponse_DelinvoiceStatus = 1 + DelinvoiceResponse_UNPAID DelinvoiceResponse_DelinvoiceStatus = 2 +) + +// Enum value maps for DelinvoiceResponse_DelinvoiceStatus. +var ( + DelinvoiceResponse_DelinvoiceStatus_name = map[int32]string{ + 0: "PAID", + 1: "EXPIRED", + 2: "UNPAID", + } + DelinvoiceResponse_DelinvoiceStatus_value = map[string]int32{ + "PAID": 0, + "EXPIRED": 1, + "UNPAID": 2, + } +) + +func (x DelinvoiceResponse_DelinvoiceStatus) Enum() *DelinvoiceResponse_DelinvoiceStatus { + p := new(DelinvoiceResponse_DelinvoiceStatus) + *p = x + return p +} + +func (x DelinvoiceResponse_DelinvoiceStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DelinvoiceResponse_DelinvoiceStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[13].Descriptor() +} + +func (DelinvoiceResponse_DelinvoiceStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[13] +} + +func (x DelinvoiceResponse_DelinvoiceStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DelinvoiceResponse_DelinvoiceStatus.Descriptor instead. +func (DelinvoiceResponse_DelinvoiceStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{52, 0} +} + +// ListInvoices.index +type ListinvoicesRequest_ListinvoicesIndex int32 + +const ( + ListinvoicesRequest_CREATED ListinvoicesRequest_ListinvoicesIndex = 0 + ListinvoicesRequest_UPDATED ListinvoicesRequest_ListinvoicesIndex = 1 +) + +// Enum value maps for ListinvoicesRequest_ListinvoicesIndex. +var ( + ListinvoicesRequest_ListinvoicesIndex_name = map[int32]string{ + 0: "CREATED", + 1: "UPDATED", + } + ListinvoicesRequest_ListinvoicesIndex_value = map[string]int32{ + "CREATED": 0, + "UPDATED": 1, + } +) + +func (x ListinvoicesRequest_ListinvoicesIndex) Enum() *ListinvoicesRequest_ListinvoicesIndex { + p := new(ListinvoicesRequest_ListinvoicesIndex) + *p = x + return p +} + +func (x ListinvoicesRequest_ListinvoicesIndex) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListinvoicesRequest_ListinvoicesIndex) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[14].Descriptor() +} + +func (ListinvoicesRequest_ListinvoicesIndex) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[14] +} + +func (x ListinvoicesRequest_ListinvoicesIndex) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListinvoicesRequest_ListinvoicesIndex.Descriptor instead. +func (ListinvoicesRequest_ListinvoicesIndex) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{58, 0} +} + +// ListInvoices.invoices[].status +type ListinvoicesInvoices_ListinvoicesInvoicesStatus int32 + +const ( + ListinvoicesInvoices_UNPAID ListinvoicesInvoices_ListinvoicesInvoicesStatus = 0 + ListinvoicesInvoices_PAID ListinvoicesInvoices_ListinvoicesInvoicesStatus = 1 + ListinvoicesInvoices_EXPIRED ListinvoicesInvoices_ListinvoicesInvoicesStatus = 2 +) + +// Enum value maps for ListinvoicesInvoices_ListinvoicesInvoicesStatus. +var ( + ListinvoicesInvoices_ListinvoicesInvoicesStatus_name = map[int32]string{ + 0: "UNPAID", + 1: "PAID", + 2: "EXPIRED", + } + ListinvoicesInvoices_ListinvoicesInvoicesStatus_value = map[string]int32{ + "UNPAID": 0, + "PAID": 1, + "EXPIRED": 2, + } +) + +func (x ListinvoicesInvoices_ListinvoicesInvoicesStatus) Enum() *ListinvoicesInvoices_ListinvoicesInvoicesStatus { + p := new(ListinvoicesInvoices_ListinvoicesInvoicesStatus) + *p = x + return p +} + +func (x ListinvoicesInvoices_ListinvoicesInvoicesStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListinvoicesInvoices_ListinvoicesInvoicesStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[15].Descriptor() +} + +func (ListinvoicesInvoices_ListinvoicesInvoicesStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[15] +} + +func (x ListinvoicesInvoices_ListinvoicesInvoicesStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListinvoicesInvoices_ListinvoicesInvoicesStatus.Descriptor instead. +func (ListinvoicesInvoices_ListinvoicesInvoicesStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{60, 0} +} + +// SendOnion.status +type SendonionResponse_SendonionStatus int32 + +const ( + SendonionResponse_PENDING SendonionResponse_SendonionStatus = 0 + SendonionResponse_COMPLETE SendonionResponse_SendonionStatus = 1 +) + +// Enum value maps for SendonionResponse_SendonionStatus. +var ( + SendonionResponse_SendonionStatus_name = map[int32]string{ + 0: "PENDING", + 1: "COMPLETE", + } + SendonionResponse_SendonionStatus_value = map[string]int32{ + "PENDING": 0, + "COMPLETE": 1, + } +) + +func (x SendonionResponse_SendonionStatus) Enum() *SendonionResponse_SendonionStatus { + p := new(SendonionResponse_SendonionStatus) + *p = x + return p +} + +func (x SendonionResponse_SendonionStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SendonionResponse_SendonionStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[16].Descriptor() +} + +func (SendonionResponse_SendonionStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[16] +} + +func (x SendonionResponse_SendonionStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SendonionResponse_SendonionStatus.Descriptor instead. +func (SendonionResponse_SendonionStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{63, 0} +} + +// ListSendPays.status +type ListsendpaysRequest_ListsendpaysStatus int32 + +const ( + ListsendpaysRequest_PENDING ListsendpaysRequest_ListsendpaysStatus = 0 + ListsendpaysRequest_COMPLETE ListsendpaysRequest_ListsendpaysStatus = 1 + ListsendpaysRequest_FAILED ListsendpaysRequest_ListsendpaysStatus = 2 +) + +// Enum value maps for ListsendpaysRequest_ListsendpaysStatus. +var ( + ListsendpaysRequest_ListsendpaysStatus_name = map[int32]string{ + 0: "PENDING", + 1: "COMPLETE", + 2: "FAILED", + } + ListsendpaysRequest_ListsendpaysStatus_value = map[string]int32{ + "PENDING": 0, + "COMPLETE": 1, + "FAILED": 2, + } +) + +func (x ListsendpaysRequest_ListsendpaysStatus) Enum() *ListsendpaysRequest_ListsendpaysStatus { + p := new(ListsendpaysRequest_ListsendpaysStatus) + *p = x + return p +} + +func (x ListsendpaysRequest_ListsendpaysStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListsendpaysRequest_ListsendpaysStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[17].Descriptor() +} + +func (ListsendpaysRequest_ListsendpaysStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[17] +} + +func (x ListsendpaysRequest_ListsendpaysStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListsendpaysRequest_ListsendpaysStatus.Descriptor instead. +func (ListsendpaysRequest_ListsendpaysStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{65, 0} +} + +// ListSendPays.index +type ListsendpaysRequest_ListsendpaysIndex int32 + +const ( + ListsendpaysRequest_CREATED ListsendpaysRequest_ListsendpaysIndex = 0 + ListsendpaysRequest_UPDATED ListsendpaysRequest_ListsendpaysIndex = 1 +) + +// Enum value maps for ListsendpaysRequest_ListsendpaysIndex. +var ( + ListsendpaysRequest_ListsendpaysIndex_name = map[int32]string{ + 0: "CREATED", + 1: "UPDATED", + } + ListsendpaysRequest_ListsendpaysIndex_value = map[string]int32{ + "CREATED": 0, + "UPDATED": 1, + } +) + +func (x ListsendpaysRequest_ListsendpaysIndex) Enum() *ListsendpaysRequest_ListsendpaysIndex { + p := new(ListsendpaysRequest_ListsendpaysIndex) + *p = x + return p +} + +func (x ListsendpaysRequest_ListsendpaysIndex) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListsendpaysRequest_ListsendpaysIndex) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[18].Descriptor() +} + +func (ListsendpaysRequest_ListsendpaysIndex) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[18] +} + +func (x ListsendpaysRequest_ListsendpaysIndex) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListsendpaysRequest_ListsendpaysIndex.Descriptor instead. +func (ListsendpaysRequest_ListsendpaysIndex) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{65, 1} +} + +// ListSendPays.payments[].status +type ListsendpaysPayments_ListsendpaysPaymentsStatus int32 + +const ( + ListsendpaysPayments_PENDING ListsendpaysPayments_ListsendpaysPaymentsStatus = 0 + ListsendpaysPayments_FAILED ListsendpaysPayments_ListsendpaysPaymentsStatus = 1 + ListsendpaysPayments_COMPLETE ListsendpaysPayments_ListsendpaysPaymentsStatus = 2 +) + +// Enum value maps for ListsendpaysPayments_ListsendpaysPaymentsStatus. +var ( + ListsendpaysPayments_ListsendpaysPaymentsStatus_name = map[int32]string{ + 0: "PENDING", + 1: "FAILED", + 2: "COMPLETE", + } + ListsendpaysPayments_ListsendpaysPaymentsStatus_value = map[string]int32{ + "PENDING": 0, + "FAILED": 1, + "COMPLETE": 2, + } +) + +func (x ListsendpaysPayments_ListsendpaysPaymentsStatus) Enum() *ListsendpaysPayments_ListsendpaysPaymentsStatus { + p := new(ListsendpaysPayments_ListsendpaysPaymentsStatus) + *p = x + return p +} + +func (x ListsendpaysPayments_ListsendpaysPaymentsStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListsendpaysPayments_ListsendpaysPaymentsStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[19].Descriptor() +} + +func (ListsendpaysPayments_ListsendpaysPaymentsStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[19] +} + +func (x ListsendpaysPayments_ListsendpaysPaymentsStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListsendpaysPayments_ListsendpaysPaymentsStatus.Descriptor instead. +func (ListsendpaysPayments_ListsendpaysPaymentsStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{67, 0} +} + +// Pay.status +type PayResponse_PayStatus int32 + +const ( + PayResponse_COMPLETE PayResponse_PayStatus = 0 + PayResponse_PENDING PayResponse_PayStatus = 1 + PayResponse_FAILED PayResponse_PayStatus = 2 +) + +// Enum value maps for PayResponse_PayStatus. +var ( + PayResponse_PayStatus_name = map[int32]string{ + 0: "COMPLETE", + 1: "PENDING", + 2: "FAILED", + } + PayResponse_PayStatus_value = map[string]int32{ + "COMPLETE": 0, + "PENDING": 1, + "FAILED": 2, + } +) + +func (x PayResponse_PayStatus) Enum() *PayResponse_PayStatus { + p := new(PayResponse_PayStatus) + *p = x + return p +} + +func (x PayResponse_PayStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PayResponse_PayStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[20].Descriptor() +} + +func (PayResponse_PayStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[20] +} + +func (x PayResponse_PayStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PayResponse_PayStatus.Descriptor instead. +func (PayResponse_PayStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{74, 0} +} + +// ListNodes.nodes[].addresses[].type +type ListnodesNodesAddresses_ListnodesNodesAddressesType int32 + +const ( + ListnodesNodesAddresses_DNS ListnodesNodesAddresses_ListnodesNodesAddressesType = 0 + ListnodesNodesAddresses_IPV4 ListnodesNodesAddresses_ListnodesNodesAddressesType = 1 + ListnodesNodesAddresses_IPV6 ListnodesNodesAddresses_ListnodesNodesAddressesType = 2 + ListnodesNodesAddresses_TORV2 ListnodesNodesAddresses_ListnodesNodesAddressesType = 3 + ListnodesNodesAddresses_TORV3 ListnodesNodesAddresses_ListnodesNodesAddressesType = 4 +) + +// Enum value maps for ListnodesNodesAddresses_ListnodesNodesAddressesType. +var ( + ListnodesNodesAddresses_ListnodesNodesAddressesType_name = map[int32]string{ + 0: "DNS", + 1: "IPV4", + 2: "IPV6", + 3: "TORV2", + 4: "TORV3", + } + ListnodesNodesAddresses_ListnodesNodesAddressesType_value = map[string]int32{ + "DNS": 0, + "IPV4": 1, + "IPV6": 2, + "TORV2": 3, + "TORV3": 4, + } +) + +func (x ListnodesNodesAddresses_ListnodesNodesAddressesType) Enum() *ListnodesNodesAddresses_ListnodesNodesAddressesType { + p := new(ListnodesNodesAddresses_ListnodesNodesAddressesType) + *p = x + return p +} + +func (x ListnodesNodesAddresses_ListnodesNodesAddressesType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListnodesNodesAddresses_ListnodesNodesAddressesType) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[21].Descriptor() +} + +func (ListnodesNodesAddresses_ListnodesNodesAddressesType) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[21] +} + +func (x ListnodesNodesAddresses_ListnodesNodesAddressesType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListnodesNodesAddresses_ListnodesNodesAddressesType.Descriptor instead. +func (ListnodesNodesAddresses_ListnodesNodesAddressesType) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{78, 0} +} + +// WaitAnyInvoice.status +type WaitanyinvoiceResponse_WaitanyinvoiceStatus int32 + +const ( + WaitanyinvoiceResponse_PAID WaitanyinvoiceResponse_WaitanyinvoiceStatus = 0 + WaitanyinvoiceResponse_EXPIRED WaitanyinvoiceResponse_WaitanyinvoiceStatus = 1 +) + +// Enum value maps for WaitanyinvoiceResponse_WaitanyinvoiceStatus. +var ( + WaitanyinvoiceResponse_WaitanyinvoiceStatus_name = map[int32]string{ + 0: "PAID", + 1: "EXPIRED", + } + WaitanyinvoiceResponse_WaitanyinvoiceStatus_value = map[string]int32{ + "PAID": 0, + "EXPIRED": 1, + } +) + +func (x WaitanyinvoiceResponse_WaitanyinvoiceStatus) Enum() *WaitanyinvoiceResponse_WaitanyinvoiceStatus { + p := new(WaitanyinvoiceResponse_WaitanyinvoiceStatus) + *p = x + return p +} + +func (x WaitanyinvoiceResponse_WaitanyinvoiceStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WaitanyinvoiceResponse_WaitanyinvoiceStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[22].Descriptor() +} + +func (WaitanyinvoiceResponse_WaitanyinvoiceStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[22] +} + +func (x WaitanyinvoiceResponse_WaitanyinvoiceStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WaitanyinvoiceResponse_WaitanyinvoiceStatus.Descriptor instead. +func (WaitanyinvoiceResponse_WaitanyinvoiceStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{80, 0} +} + +// WaitInvoice.status +type WaitinvoiceResponse_WaitinvoiceStatus int32 + +const ( + WaitinvoiceResponse_PAID WaitinvoiceResponse_WaitinvoiceStatus = 0 + WaitinvoiceResponse_EXPIRED WaitinvoiceResponse_WaitinvoiceStatus = 1 +) + +// Enum value maps for WaitinvoiceResponse_WaitinvoiceStatus. +var ( + WaitinvoiceResponse_WaitinvoiceStatus_name = map[int32]string{ + 0: "PAID", + 1: "EXPIRED", + } + WaitinvoiceResponse_WaitinvoiceStatus_value = map[string]int32{ + "PAID": 0, + "EXPIRED": 1, + } +) + +func (x WaitinvoiceResponse_WaitinvoiceStatus) Enum() *WaitinvoiceResponse_WaitinvoiceStatus { + p := new(WaitinvoiceResponse_WaitinvoiceStatus) + *p = x + return p +} + +func (x WaitinvoiceResponse_WaitinvoiceStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WaitinvoiceResponse_WaitinvoiceStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[23].Descriptor() +} + +func (WaitinvoiceResponse_WaitinvoiceStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[23] +} + +func (x WaitinvoiceResponse_WaitinvoiceStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WaitinvoiceResponse_WaitinvoiceStatus.Descriptor instead. +func (WaitinvoiceResponse_WaitinvoiceStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{83, 0} +} + +// WaitSendPay.status +type WaitsendpayResponse_WaitsendpayStatus int32 + +const ( + WaitsendpayResponse_COMPLETE WaitsendpayResponse_WaitsendpayStatus = 0 +) + +// Enum value maps for WaitsendpayResponse_WaitsendpayStatus. +var ( + WaitsendpayResponse_WaitsendpayStatus_name = map[int32]string{ + 0: "COMPLETE", + } + WaitsendpayResponse_WaitsendpayStatus_value = map[string]int32{ + "COMPLETE": 0, + } +) + +func (x WaitsendpayResponse_WaitsendpayStatus) Enum() *WaitsendpayResponse_WaitsendpayStatus { + p := new(WaitsendpayResponse_WaitsendpayStatus) + *p = x + return p +} + +func (x WaitsendpayResponse_WaitsendpayStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WaitsendpayResponse_WaitsendpayStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[24].Descriptor() +} + +func (WaitsendpayResponse_WaitsendpayStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[24] +} + +func (x WaitsendpayResponse_WaitsendpayStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WaitsendpayResponse_WaitsendpayStatus.Descriptor instead. +func (WaitsendpayResponse_WaitsendpayStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{86, 0} +} + +// NewAddr.addresstype +type NewaddrRequest_NewaddrAddresstype int32 + +const ( + NewaddrRequest_BECH32 NewaddrRequest_NewaddrAddresstype = 0 + NewaddrRequest_P2TR NewaddrRequest_NewaddrAddresstype = 3 + NewaddrRequest_ALL NewaddrRequest_NewaddrAddresstype = 2 +) + +// Enum value maps for NewaddrRequest_NewaddrAddresstype. +var ( + NewaddrRequest_NewaddrAddresstype_name = map[int32]string{ + 0: "BECH32", + 3: "P2TR", + 2: "ALL", + } + NewaddrRequest_NewaddrAddresstype_value = map[string]int32{ + "BECH32": 0, + "P2TR": 3, + "ALL": 2, + } +) + +func (x NewaddrRequest_NewaddrAddresstype) Enum() *NewaddrRequest_NewaddrAddresstype { + p := new(NewaddrRequest_NewaddrAddresstype) + *p = x + return p +} + +func (x NewaddrRequest_NewaddrAddresstype) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NewaddrRequest_NewaddrAddresstype) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[25].Descriptor() +} + +func (NewaddrRequest_NewaddrAddresstype) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[25] +} + +func (x NewaddrRequest_NewaddrAddresstype) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NewaddrRequest_NewaddrAddresstype.Descriptor instead. +func (NewaddrRequest_NewaddrAddresstype) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{87, 0} +} + +// KeySend.status +type KeysendResponse_KeysendStatus int32 + +const ( + KeysendResponse_COMPLETE KeysendResponse_KeysendStatus = 0 +) + +// Enum value maps for KeysendResponse_KeysendStatus. +var ( + KeysendResponse_KeysendStatus_name = map[int32]string{ + 0: "COMPLETE", + } + KeysendResponse_KeysendStatus_value = map[string]int32{ + "COMPLETE": 0, + } +) + +func (x KeysendResponse_KeysendStatus) Enum() *KeysendResponse_KeysendStatus { + p := new(KeysendResponse_KeysendStatus) + *p = x + return p +} + +func (x KeysendResponse_KeysendStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (KeysendResponse_KeysendStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[26].Descriptor() +} + +func (KeysendResponse_KeysendStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[26] +} + +func (x KeysendResponse_KeysendStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use KeysendResponse_KeysendStatus.Descriptor instead. +func (KeysendResponse_KeysendStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{92, 0} +} + +// ListPeerChannels.channels[].state +type ListpeerchannelsChannels_ListpeerchannelsChannelsState int32 + +const ( + ListpeerchannelsChannels_OPENINGD ListpeerchannelsChannels_ListpeerchannelsChannelsState = 0 + ListpeerchannelsChannels_CHANNELD_AWAITING_LOCKIN ListpeerchannelsChannels_ListpeerchannelsChannelsState = 1 + ListpeerchannelsChannels_CHANNELD_NORMAL ListpeerchannelsChannels_ListpeerchannelsChannelsState = 2 + ListpeerchannelsChannels_CHANNELD_SHUTTING_DOWN ListpeerchannelsChannels_ListpeerchannelsChannelsState = 3 + ListpeerchannelsChannels_CLOSINGD_SIGEXCHANGE ListpeerchannelsChannels_ListpeerchannelsChannelsState = 4 + ListpeerchannelsChannels_CLOSINGD_COMPLETE ListpeerchannelsChannels_ListpeerchannelsChannelsState = 5 + ListpeerchannelsChannels_AWAITING_UNILATERAL ListpeerchannelsChannels_ListpeerchannelsChannelsState = 6 + ListpeerchannelsChannels_FUNDING_SPEND_SEEN ListpeerchannelsChannels_ListpeerchannelsChannelsState = 7 + ListpeerchannelsChannels_ONCHAIN ListpeerchannelsChannels_ListpeerchannelsChannelsState = 8 + ListpeerchannelsChannels_DUALOPEND_OPEN_INIT ListpeerchannelsChannels_ListpeerchannelsChannelsState = 9 + ListpeerchannelsChannels_DUALOPEND_AWAITING_LOCKIN ListpeerchannelsChannels_ListpeerchannelsChannelsState = 10 + ListpeerchannelsChannels_CHANNELD_AWAITING_SPLICE ListpeerchannelsChannels_ListpeerchannelsChannelsState = 11 + ListpeerchannelsChannels_DUALOPEND_OPEN_COMMITTED ListpeerchannelsChannels_ListpeerchannelsChannelsState = 12 + ListpeerchannelsChannels_DUALOPEND_OPEN_COMMIT_READY ListpeerchannelsChannels_ListpeerchannelsChannelsState = 13 +) + +// Enum value maps for ListpeerchannelsChannels_ListpeerchannelsChannelsState. +var ( + ListpeerchannelsChannels_ListpeerchannelsChannelsState_name = map[int32]string{ + 0: "OPENINGD", + 1: "CHANNELD_AWAITING_LOCKIN", + 2: "CHANNELD_NORMAL", + 3: "CHANNELD_SHUTTING_DOWN", + 4: "CLOSINGD_SIGEXCHANGE", + 5: "CLOSINGD_COMPLETE", + 6: "AWAITING_UNILATERAL", + 7: "FUNDING_SPEND_SEEN", + 8: "ONCHAIN", + 9: "DUALOPEND_OPEN_INIT", + 10: "DUALOPEND_AWAITING_LOCKIN", + 11: "CHANNELD_AWAITING_SPLICE", + 12: "DUALOPEND_OPEN_COMMITTED", + 13: "DUALOPEND_OPEN_COMMIT_READY", + } + ListpeerchannelsChannels_ListpeerchannelsChannelsState_value = map[string]int32{ + "OPENINGD": 0, + "CHANNELD_AWAITING_LOCKIN": 1, + "CHANNELD_NORMAL": 2, + "CHANNELD_SHUTTING_DOWN": 3, + "CLOSINGD_SIGEXCHANGE": 4, + "CLOSINGD_COMPLETE": 5, + "AWAITING_UNILATERAL": 6, + "FUNDING_SPEND_SEEN": 7, + "ONCHAIN": 8, + "DUALOPEND_OPEN_INIT": 9, + "DUALOPEND_AWAITING_LOCKIN": 10, + "CHANNELD_AWAITING_SPLICE": 11, + "DUALOPEND_OPEN_COMMITTED": 12, + "DUALOPEND_OPEN_COMMIT_READY": 13, + } +) + +func (x ListpeerchannelsChannels_ListpeerchannelsChannelsState) Enum() *ListpeerchannelsChannels_ListpeerchannelsChannelsState { + p := new(ListpeerchannelsChannels_ListpeerchannelsChannelsState) + *p = x + return p +} + +func (x ListpeerchannelsChannels_ListpeerchannelsChannelsState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListpeerchannelsChannels_ListpeerchannelsChannelsState) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[27].Descriptor() +} + +func (ListpeerchannelsChannels_ListpeerchannelsChannelsState) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[27] +} + +func (x ListpeerchannelsChannels_ListpeerchannelsChannelsState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListpeerchannelsChannels_ListpeerchannelsChannelsState.Descriptor instead. +func (ListpeerchannelsChannels_ListpeerchannelsChannelsState) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{111, 0} +} + +// ListPeerChannels.channels[].htlcs[].direction +type ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection int32 + +const ( + ListpeerchannelsChannelsHtlcs_IN ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection = 0 + ListpeerchannelsChannelsHtlcs_OUT ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection = 1 +) + +// Enum value maps for ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection. +var ( + ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection_name = map[int32]string{ + 0: "IN", + 1: "OUT", + } + ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection_value = map[string]int32{ + "IN": 0, + "OUT": 1, + } +) + +func (x ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection) Enum() *ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection { + p := new(ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection) + *p = x + return p +} + +func (x ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[28].Descriptor() +} + +func (ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[28] +} + +func (x ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection.Descriptor instead. +func (ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{119, 0} +} + +// ListClosedChannels.closedchannels[].close_cause +type ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause int32 + +const ( + ListclosedchannelsClosedchannels_UNKNOWN ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause = 0 + ListclosedchannelsClosedchannels_LOCAL ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause = 1 + ListclosedchannelsClosedchannels_USER ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause = 2 + ListclosedchannelsClosedchannels_REMOTE ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause = 3 + ListclosedchannelsClosedchannels_PROTOCOL ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause = 4 + ListclosedchannelsClosedchannels_ONCHAIN ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause = 5 +) + +// Enum value maps for ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause. +var ( + ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause_name = map[int32]string{ + 0: "UNKNOWN", + 1: "LOCAL", + 2: "USER", + 3: "REMOTE", + 4: "PROTOCOL", + 5: "ONCHAIN", + } + ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause_value = map[string]int32{ + "UNKNOWN": 0, + "LOCAL": 1, + "USER": 2, + "REMOTE": 3, + "PROTOCOL": 4, + "ONCHAIN": 5, + } +) + +func (x ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause) Enum() *ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause { + p := new(ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause) + *p = x + return p +} + +func (x ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[29].Descriptor() +} + +func (ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[29] +} + +func (x ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause.Descriptor instead. +func (ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{122, 0} +} + +// DecodePay.fallbacks[].type +type DecodepayFallbacks_DecodepayFallbacksType int32 + +const ( + DecodepayFallbacks_P2PKH DecodepayFallbacks_DecodepayFallbacksType = 0 + DecodepayFallbacks_P2SH DecodepayFallbacks_DecodepayFallbacksType = 1 + DecodepayFallbacks_P2WPKH DecodepayFallbacks_DecodepayFallbacksType = 2 + DecodepayFallbacks_P2WSH DecodepayFallbacks_DecodepayFallbacksType = 3 + DecodepayFallbacks_P2TR DecodepayFallbacks_DecodepayFallbacksType = 4 +) + +// Enum value maps for DecodepayFallbacks_DecodepayFallbacksType. +var ( + DecodepayFallbacks_DecodepayFallbacksType_name = map[int32]string{ + 0: "P2PKH", + 1: "P2SH", + 2: "P2WPKH", + 3: "P2WSH", + 4: "P2TR", + } + DecodepayFallbacks_DecodepayFallbacksType_value = map[string]int32{ + "P2PKH": 0, + "P2SH": 1, + "P2WPKH": 2, + "P2WSH": 3, + "P2TR": 4, + } +) + +func (x DecodepayFallbacks_DecodepayFallbacksType) Enum() *DecodepayFallbacks_DecodepayFallbacksType { + p := new(DecodepayFallbacks_DecodepayFallbacksType) + *p = x + return p +} + +func (x DecodepayFallbacks_DecodepayFallbacksType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DecodepayFallbacks_DecodepayFallbacksType) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[30].Descriptor() +} + +func (DecodepayFallbacks_DecodepayFallbacksType) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[30] +} + +func (x DecodepayFallbacks_DecodepayFallbacksType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DecodepayFallbacks_DecodepayFallbacksType.Descriptor instead. +func (DecodepayFallbacks_DecodepayFallbacksType) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{126, 0} +} + +// Decode.type +type DecodeResponse_DecodeType int32 + +const ( + DecodeResponse_BOLT12_OFFER DecodeResponse_DecodeType = 0 + DecodeResponse_BOLT12_INVOICE DecodeResponse_DecodeType = 1 + DecodeResponse_BOLT12_INVOICE_REQUEST DecodeResponse_DecodeType = 2 + DecodeResponse_BOLT11_INVOICE DecodeResponse_DecodeType = 3 + DecodeResponse_RUNE DecodeResponse_DecodeType = 4 + DecodeResponse_EMERGENCY_RECOVER DecodeResponse_DecodeType = 5 +) + +// Enum value maps for DecodeResponse_DecodeType. +var ( + DecodeResponse_DecodeType_name = map[int32]string{ + 0: "BOLT12_OFFER", + 1: "BOLT12_INVOICE", + 2: "BOLT12_INVOICE_REQUEST", + 3: "BOLT11_INVOICE", + 4: "RUNE", + 5: "EMERGENCY_RECOVER", + } + DecodeResponse_DecodeType_value = map[string]int32{ + "BOLT12_OFFER": 0, + "BOLT12_INVOICE": 1, + "BOLT12_INVOICE_REQUEST": 2, + "BOLT11_INVOICE": 3, + "RUNE": 4, + "EMERGENCY_RECOVER": 5, + } +) + +func (x DecodeResponse_DecodeType) Enum() *DecodeResponse_DecodeType { + p := new(DecodeResponse_DecodeType) + *p = x + return p +} + +func (x DecodeResponse_DecodeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DecodeResponse_DecodeType) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[31].Descriptor() +} + +func (DecodeResponse_DecodeType) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[31] +} + +func (x DecodeResponse_DecodeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DecodeResponse_DecodeType.Descriptor instead. +func (DecodeResponse_DecodeType) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{129, 0} +} + +// Feerates.style +type FeeratesRequest_FeeratesStyle int32 + +const ( + FeeratesRequest_PERKB FeeratesRequest_FeeratesStyle = 0 + FeeratesRequest_PERKW FeeratesRequest_FeeratesStyle = 1 +) + +// Enum value maps for FeeratesRequest_FeeratesStyle. +var ( + FeeratesRequest_FeeratesStyle_name = map[int32]string{ + 0: "PERKB", + 1: "PERKW", + } + FeeratesRequest_FeeratesStyle_value = map[string]int32{ + "PERKB": 0, + "PERKW": 1, + } +) + +func (x FeeratesRequest_FeeratesStyle) Enum() *FeeratesRequest_FeeratesStyle { + p := new(FeeratesRequest_FeeratesStyle) + *p = x + return p +} + +func (x FeeratesRequest_FeeratesStyle) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FeeratesRequest_FeeratesStyle) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[32].Descriptor() +} + +func (FeeratesRequest_FeeratesStyle) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[32] +} + +func (x FeeratesRequest_FeeratesStyle) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FeeratesRequest_FeeratesStyle.Descriptor instead. +func (FeeratesRequest_FeeratesStyle) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{139, 0} +} + +// GetRoute.route[].style +type GetrouteRoute_GetrouteRouteStyle int32 + +const ( + GetrouteRoute_TLV GetrouteRoute_GetrouteRouteStyle = 0 +) + +// Enum value maps for GetrouteRoute_GetrouteRouteStyle. +var ( + GetrouteRoute_GetrouteRouteStyle_name = map[int32]string{ + 0: "TLV", + } + GetrouteRoute_GetrouteRouteStyle_value = map[string]int32{ + "TLV": 0, + } +) + +func (x GetrouteRoute_GetrouteRouteStyle) Enum() *GetrouteRoute_GetrouteRouteStyle { + p := new(GetrouteRoute_GetrouteRouteStyle) + *p = x + return p +} + +func (x GetrouteRoute_GetrouteRouteStyle) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetrouteRoute_GetrouteRouteStyle) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[33].Descriptor() +} + +func (GetrouteRoute_GetrouteRouteStyle) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[33] +} + +func (x GetrouteRoute_GetrouteRouteStyle) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetrouteRoute_GetrouteRouteStyle.Descriptor instead. +func (GetrouteRoute_GetrouteRouteStyle) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{155, 0} +} + +// ListForwards.status +type ListforwardsRequest_ListforwardsStatus int32 + +const ( + ListforwardsRequest_OFFERED ListforwardsRequest_ListforwardsStatus = 0 + ListforwardsRequest_SETTLED ListforwardsRequest_ListforwardsStatus = 1 + ListforwardsRequest_LOCAL_FAILED ListforwardsRequest_ListforwardsStatus = 2 + ListforwardsRequest_FAILED ListforwardsRequest_ListforwardsStatus = 3 +) + +// Enum value maps for ListforwardsRequest_ListforwardsStatus. +var ( + ListforwardsRequest_ListforwardsStatus_name = map[int32]string{ + 0: "OFFERED", + 1: "SETTLED", + 2: "LOCAL_FAILED", + 3: "FAILED", + } + ListforwardsRequest_ListforwardsStatus_value = map[string]int32{ + "OFFERED": 0, + "SETTLED": 1, + "LOCAL_FAILED": 2, + "FAILED": 3, + } +) + +func (x ListforwardsRequest_ListforwardsStatus) Enum() *ListforwardsRequest_ListforwardsStatus { + p := new(ListforwardsRequest_ListforwardsStatus) + *p = x + return p +} + +func (x ListforwardsRequest_ListforwardsStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListforwardsRequest_ListforwardsStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[34].Descriptor() +} + +func (ListforwardsRequest_ListforwardsStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[34] +} + +func (x ListforwardsRequest_ListforwardsStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListforwardsRequest_ListforwardsStatus.Descriptor instead. +func (ListforwardsRequest_ListforwardsStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{156, 0} +} + +// ListForwards.index +type ListforwardsRequest_ListforwardsIndex int32 + +const ( + ListforwardsRequest_CREATED ListforwardsRequest_ListforwardsIndex = 0 + ListforwardsRequest_UPDATED ListforwardsRequest_ListforwardsIndex = 1 +) + +// Enum value maps for ListforwardsRequest_ListforwardsIndex. +var ( + ListforwardsRequest_ListforwardsIndex_name = map[int32]string{ + 0: "CREATED", + 1: "UPDATED", + } + ListforwardsRequest_ListforwardsIndex_value = map[string]int32{ + "CREATED": 0, + "UPDATED": 1, + } +) + +func (x ListforwardsRequest_ListforwardsIndex) Enum() *ListforwardsRequest_ListforwardsIndex { + p := new(ListforwardsRequest_ListforwardsIndex) + *p = x + return p +} + +func (x ListforwardsRequest_ListforwardsIndex) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListforwardsRequest_ListforwardsIndex) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[35].Descriptor() +} + +func (ListforwardsRequest_ListforwardsIndex) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[35] +} + +func (x ListforwardsRequest_ListforwardsIndex) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListforwardsRequest_ListforwardsIndex.Descriptor instead. +func (ListforwardsRequest_ListforwardsIndex) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{156, 1} +} + +// ListForwards.forwards[].status +type ListforwardsForwards_ListforwardsForwardsStatus int32 + +const ( + ListforwardsForwards_OFFERED ListforwardsForwards_ListforwardsForwardsStatus = 0 + ListforwardsForwards_SETTLED ListforwardsForwards_ListforwardsForwardsStatus = 1 + ListforwardsForwards_LOCAL_FAILED ListforwardsForwards_ListforwardsForwardsStatus = 2 + ListforwardsForwards_FAILED ListforwardsForwards_ListforwardsForwardsStatus = 3 +) + +// Enum value maps for ListforwardsForwards_ListforwardsForwardsStatus. +var ( + ListforwardsForwards_ListforwardsForwardsStatus_name = map[int32]string{ + 0: "OFFERED", + 1: "SETTLED", + 2: "LOCAL_FAILED", + 3: "FAILED", + } + ListforwardsForwards_ListforwardsForwardsStatus_value = map[string]int32{ + "OFFERED": 0, + "SETTLED": 1, + "LOCAL_FAILED": 2, + "FAILED": 3, + } +) + +func (x ListforwardsForwards_ListforwardsForwardsStatus) Enum() *ListforwardsForwards_ListforwardsForwardsStatus { + p := new(ListforwardsForwards_ListforwardsForwardsStatus) + *p = x + return p +} + +func (x ListforwardsForwards_ListforwardsForwardsStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListforwardsForwards_ListforwardsForwardsStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[36].Descriptor() +} + +func (ListforwardsForwards_ListforwardsForwardsStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[36] +} + +func (x ListforwardsForwards_ListforwardsForwardsStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListforwardsForwards_ListforwardsForwardsStatus.Descriptor instead. +func (ListforwardsForwards_ListforwardsForwardsStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{158, 0} +} + +// ListForwards.forwards[].style +type ListforwardsForwards_ListforwardsForwardsStyle int32 + +const ( + ListforwardsForwards_LEGACY ListforwardsForwards_ListforwardsForwardsStyle = 0 + ListforwardsForwards_TLV ListforwardsForwards_ListforwardsForwardsStyle = 1 +) + +// Enum value maps for ListforwardsForwards_ListforwardsForwardsStyle. +var ( + ListforwardsForwards_ListforwardsForwardsStyle_name = map[int32]string{ + 0: "LEGACY", + 1: "TLV", + } + ListforwardsForwards_ListforwardsForwardsStyle_value = map[string]int32{ + "LEGACY": 0, + "TLV": 1, + } +) + +func (x ListforwardsForwards_ListforwardsForwardsStyle) Enum() *ListforwardsForwards_ListforwardsForwardsStyle { + p := new(ListforwardsForwards_ListforwardsForwardsStyle) + *p = x + return p +} + +func (x ListforwardsForwards_ListforwardsForwardsStyle) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListforwardsForwards_ListforwardsForwardsStyle) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[37].Descriptor() +} + +func (ListforwardsForwards_ListforwardsForwardsStyle) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[37] +} + +func (x ListforwardsForwards_ListforwardsForwardsStyle) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListforwardsForwards_ListforwardsForwardsStyle.Descriptor instead. +func (ListforwardsForwards_ListforwardsForwardsStyle) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{158, 1} +} + +// ListPays.status +type ListpaysRequest_ListpaysStatus int32 + +const ( + ListpaysRequest_PENDING ListpaysRequest_ListpaysStatus = 0 + ListpaysRequest_COMPLETE ListpaysRequest_ListpaysStatus = 1 + ListpaysRequest_FAILED ListpaysRequest_ListpaysStatus = 2 +) + +// Enum value maps for ListpaysRequest_ListpaysStatus. +var ( + ListpaysRequest_ListpaysStatus_name = map[int32]string{ + 0: "PENDING", + 1: "COMPLETE", + 2: "FAILED", + } + ListpaysRequest_ListpaysStatus_value = map[string]int32{ + "PENDING": 0, + "COMPLETE": 1, + "FAILED": 2, + } +) + +func (x ListpaysRequest_ListpaysStatus) Enum() *ListpaysRequest_ListpaysStatus { + p := new(ListpaysRequest_ListpaysStatus) + *p = x + return p +} + +func (x ListpaysRequest_ListpaysStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListpaysRequest_ListpaysStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[38].Descriptor() +} + +func (ListpaysRequest_ListpaysStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[38] +} + +func (x ListpaysRequest_ListpaysStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListpaysRequest_ListpaysStatus.Descriptor instead. +func (ListpaysRequest_ListpaysStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{162, 0} +} + +// ListPays.pays[].status +type ListpaysPays_ListpaysPaysStatus int32 + +const ( + ListpaysPays_PENDING ListpaysPays_ListpaysPaysStatus = 0 + ListpaysPays_FAILED ListpaysPays_ListpaysPaysStatus = 1 + ListpaysPays_COMPLETE ListpaysPays_ListpaysPaysStatus = 2 +) + +// Enum value maps for ListpaysPays_ListpaysPaysStatus. +var ( + ListpaysPays_ListpaysPaysStatus_name = map[int32]string{ + 0: "PENDING", + 1: "FAILED", + 2: "COMPLETE", + } + ListpaysPays_ListpaysPaysStatus_value = map[string]int32{ + "PENDING": 0, + "FAILED": 1, + "COMPLETE": 2, + } +) + +func (x ListpaysPays_ListpaysPaysStatus) Enum() *ListpaysPays_ListpaysPaysStatus { + p := new(ListpaysPays_ListpaysPaysStatus) + *p = x + return p +} + +func (x ListpaysPays_ListpaysPaysStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListpaysPays_ListpaysPaysStatus) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[39].Descriptor() +} + +func (ListpaysPays_ListpaysPaysStatus) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[39] +} + +func (x ListpaysPays_ListpaysPaysStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListpaysPays_ListpaysPaysStatus.Descriptor instead. +func (ListpaysPays_ListpaysPaysStatus) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{164, 0} +} + +// ListHtlcs.htlcs[].direction +type ListhtlcsHtlcs_ListhtlcsHtlcsDirection int32 + +const ( + ListhtlcsHtlcs_OUT ListhtlcsHtlcs_ListhtlcsHtlcsDirection = 0 + ListhtlcsHtlcs_IN ListhtlcsHtlcs_ListhtlcsHtlcsDirection = 1 +) + +// Enum value maps for ListhtlcsHtlcs_ListhtlcsHtlcsDirection. +var ( + ListhtlcsHtlcs_ListhtlcsHtlcsDirection_name = map[int32]string{ + 0: "OUT", + 1: "IN", + } + ListhtlcsHtlcs_ListhtlcsHtlcsDirection_value = map[string]int32{ + "OUT": 0, + "IN": 1, + } +) + +func (x ListhtlcsHtlcs_ListhtlcsHtlcsDirection) Enum() *ListhtlcsHtlcs_ListhtlcsHtlcsDirection { + p := new(ListhtlcsHtlcs_ListhtlcsHtlcsDirection) + *p = x + return p +} + +func (x ListhtlcsHtlcs_ListhtlcsHtlcsDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListhtlcsHtlcs_ListhtlcsHtlcsDirection) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[40].Descriptor() +} + +func (ListhtlcsHtlcs_ListhtlcsHtlcsDirection) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[40] +} + +func (x ListhtlcsHtlcs_ListhtlcsHtlcsDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListhtlcsHtlcs_ListhtlcsHtlcsDirection.Descriptor instead. +func (ListhtlcsHtlcs_ListhtlcsHtlcsDirection) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{167, 0} +} + +// Wait.subsystem +type WaitRequest_WaitSubsystem int32 + +const ( + WaitRequest_INVOICES WaitRequest_WaitSubsystem = 0 + WaitRequest_FORWARDS WaitRequest_WaitSubsystem = 1 + WaitRequest_SENDPAYS WaitRequest_WaitSubsystem = 2 +) + +// Enum value maps for WaitRequest_WaitSubsystem. +var ( + WaitRequest_WaitSubsystem_name = map[int32]string{ + 0: "INVOICES", + 1: "FORWARDS", + 2: "SENDPAYS", + } + WaitRequest_WaitSubsystem_value = map[string]int32{ + "INVOICES": 0, + "FORWARDS": 1, + "SENDPAYS": 2, + } +) + +func (x WaitRequest_WaitSubsystem) Enum() *WaitRequest_WaitSubsystem { + p := new(WaitRequest_WaitSubsystem) + *p = x + return p +} + +func (x WaitRequest_WaitSubsystem) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WaitRequest_WaitSubsystem) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[41].Descriptor() +} + +func (WaitRequest_WaitSubsystem) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[41] +} + +func (x WaitRequest_WaitSubsystem) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WaitRequest_WaitSubsystem.Descriptor instead. +func (WaitRequest_WaitSubsystem) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{183, 0} +} + +// Wait.indexname +type WaitRequest_WaitIndexname int32 + +const ( + WaitRequest_CREATED WaitRequest_WaitIndexname = 0 + WaitRequest_UPDATED WaitRequest_WaitIndexname = 1 + WaitRequest_DELETED WaitRequest_WaitIndexname = 2 +) + +// Enum value maps for WaitRequest_WaitIndexname. +var ( + WaitRequest_WaitIndexname_name = map[int32]string{ + 0: "CREATED", + 1: "UPDATED", + 2: "DELETED", + } + WaitRequest_WaitIndexname_value = map[string]int32{ + "CREATED": 0, + "UPDATED": 1, + "DELETED": 2, + } +) + +func (x WaitRequest_WaitIndexname) Enum() *WaitRequest_WaitIndexname { + p := new(WaitRequest_WaitIndexname) + *p = x + return p +} + +func (x WaitRequest_WaitIndexname) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WaitRequest_WaitIndexname) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[42].Descriptor() +} + +func (WaitRequest_WaitIndexname) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[42] +} + +func (x WaitRequest_WaitIndexname) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WaitRequest_WaitIndexname.Descriptor instead. +func (WaitRequest_WaitIndexname) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{183, 1} +} + +// Wait.subsystem +type WaitResponse_WaitSubsystem int32 + +const ( + WaitResponse_INVOICES WaitResponse_WaitSubsystem = 0 + WaitResponse_FORWARDS WaitResponse_WaitSubsystem = 1 + WaitResponse_SENDPAYS WaitResponse_WaitSubsystem = 2 +) + +// Enum value maps for WaitResponse_WaitSubsystem. +var ( + WaitResponse_WaitSubsystem_name = map[int32]string{ + 0: "INVOICES", + 1: "FORWARDS", + 2: "SENDPAYS", + } + WaitResponse_WaitSubsystem_value = map[string]int32{ + "INVOICES": 0, + "FORWARDS": 1, + "SENDPAYS": 2, + } +) + +func (x WaitResponse_WaitSubsystem) Enum() *WaitResponse_WaitSubsystem { + p := new(WaitResponse_WaitSubsystem) + *p = x + return p +} + +func (x WaitResponse_WaitSubsystem) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WaitResponse_WaitSubsystem) Descriptor() protoreflect.EnumDescriptor { + return file_node_proto_enumTypes[43].Descriptor() +} + +func (WaitResponse_WaitSubsystem) Type() protoreflect.EnumType { + return &file_node_proto_enumTypes[43] +} + +func (x WaitResponse_WaitSubsystem) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WaitResponse_WaitSubsystem.Descriptor instead. +func (WaitResponse_WaitSubsystem) EnumDescriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{184, 0} +} + +type GetinfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetinfoRequest) Reset() { + *x = GetinfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetinfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetinfoRequest) ProtoMessage() {} + +func (x *GetinfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetinfoRequest.ProtoReflect.Descriptor instead. +func (*GetinfoRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{0} +} + +type GetinfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Alias *string `protobuf:"bytes,2,opt,name=alias,proto3,oneof" json:"alias,omitempty"` + Color []byte `protobuf:"bytes,3,opt,name=color,proto3" json:"color,omitempty"` + NumPeers uint32 `protobuf:"varint,4,opt,name=num_peers,json=numPeers,proto3" json:"num_peers,omitempty"` + NumPendingChannels uint32 `protobuf:"varint,5,opt,name=num_pending_channels,json=numPendingChannels,proto3" json:"num_pending_channels,omitempty"` + NumActiveChannels uint32 `protobuf:"varint,6,opt,name=num_active_channels,json=numActiveChannels,proto3" json:"num_active_channels,omitempty"` + NumInactiveChannels uint32 `protobuf:"varint,7,opt,name=num_inactive_channels,json=numInactiveChannels,proto3" json:"num_inactive_channels,omitempty"` + Version string `protobuf:"bytes,8,opt,name=version,proto3" json:"version,omitempty"` + LightningDir string `protobuf:"bytes,9,opt,name=lightning_dir,json=lightningDir,proto3" json:"lightning_dir,omitempty"` + OurFeatures *GetinfoOurFeatures `protobuf:"bytes,10,opt,name=our_features,json=ourFeatures,proto3,oneof" json:"our_features,omitempty"` + Blockheight uint32 `protobuf:"varint,11,opt,name=blockheight,proto3" json:"blockheight,omitempty"` + Network string `protobuf:"bytes,12,opt,name=network,proto3" json:"network,omitempty"` + FeesCollectedMsat *Amount `protobuf:"bytes,13,opt,name=fees_collected_msat,json=feesCollectedMsat,proto3" json:"fees_collected_msat,omitempty"` + Address []*GetinfoAddress `protobuf:"bytes,14,rep,name=address,proto3" json:"address,omitempty"` + Binding []*GetinfoBinding `protobuf:"bytes,15,rep,name=binding,proto3" json:"binding,omitempty"` + WarningBitcoindSync *string `protobuf:"bytes,16,opt,name=warning_bitcoind_sync,json=warningBitcoindSync,proto3,oneof" json:"warning_bitcoind_sync,omitempty"` + WarningLightningdSync *string `protobuf:"bytes,17,opt,name=warning_lightningd_sync,json=warningLightningdSync,proto3,oneof" json:"warning_lightningd_sync,omitempty"` +} + +func (x *GetinfoResponse) Reset() { + *x = GetinfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetinfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetinfoResponse) ProtoMessage() {} + +func (x *GetinfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetinfoResponse.ProtoReflect.Descriptor instead. +func (*GetinfoResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{1} +} + +func (x *GetinfoResponse) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *GetinfoResponse) GetAlias() string { + if x != nil && x.Alias != nil { + return *x.Alias + } + return "" +} + +func (x *GetinfoResponse) GetColor() []byte { + if x != nil { + return x.Color + } + return nil +} + +func (x *GetinfoResponse) GetNumPeers() uint32 { + if x != nil { + return x.NumPeers + } + return 0 +} + +func (x *GetinfoResponse) GetNumPendingChannels() uint32 { + if x != nil { + return x.NumPendingChannels + } + return 0 +} + +func (x *GetinfoResponse) GetNumActiveChannels() uint32 { + if x != nil { + return x.NumActiveChannels + } + return 0 +} + +func (x *GetinfoResponse) GetNumInactiveChannels() uint32 { + if x != nil { + return x.NumInactiveChannels + } + return 0 +} + +func (x *GetinfoResponse) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *GetinfoResponse) GetLightningDir() string { + if x != nil { + return x.LightningDir + } + return "" +} + +func (x *GetinfoResponse) GetOurFeatures() *GetinfoOurFeatures { + if x != nil { + return x.OurFeatures + } + return nil +} + +func (x *GetinfoResponse) GetBlockheight() uint32 { + if x != nil { + return x.Blockheight + } + return 0 +} + +func (x *GetinfoResponse) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *GetinfoResponse) GetFeesCollectedMsat() *Amount { + if x != nil { + return x.FeesCollectedMsat + } + return nil +} + +func (x *GetinfoResponse) GetAddress() []*GetinfoAddress { + if x != nil { + return x.Address + } + return nil +} + +func (x *GetinfoResponse) GetBinding() []*GetinfoBinding { + if x != nil { + return x.Binding + } + return nil +} + +func (x *GetinfoResponse) GetWarningBitcoindSync() string { + if x != nil && x.WarningBitcoindSync != nil { + return *x.WarningBitcoindSync + } + return "" +} + +func (x *GetinfoResponse) GetWarningLightningdSync() string { + if x != nil && x.WarningLightningdSync != nil { + return *x.WarningLightningdSync + } + return "" +} + +type GetinfoOurFeatures struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Init []byte `protobuf:"bytes,1,opt,name=init,proto3" json:"init,omitempty"` + Node []byte `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"` + Channel []byte `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` + Invoice []byte `protobuf:"bytes,4,opt,name=invoice,proto3" json:"invoice,omitempty"` +} + +func (x *GetinfoOurFeatures) Reset() { + *x = GetinfoOurFeatures{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetinfoOurFeatures) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetinfoOurFeatures) ProtoMessage() {} + +func (x *GetinfoOurFeatures) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetinfoOurFeatures.ProtoReflect.Descriptor instead. +func (*GetinfoOurFeatures) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{2} +} + +func (x *GetinfoOurFeatures) GetInit() []byte { + if x != nil { + return x.Init + } + return nil +} + +func (x *GetinfoOurFeatures) GetNode() []byte { + if x != nil { + return x.Node + } + return nil +} + +func (x *GetinfoOurFeatures) GetChannel() []byte { + if x != nil { + return x.Channel + } + return nil +} + +func (x *GetinfoOurFeatures) GetInvoice() []byte { + if x != nil { + return x.Invoice + } + return nil +} + +type GetinfoAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemType GetinfoAddress_GetinfoAddressType `protobuf:"varint,1,opt,name=item_type,json=itemType,proto3,enum=cln.GetinfoAddress_GetinfoAddressType" json:"item_type,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` + Address *string `protobuf:"bytes,3,opt,name=address,proto3,oneof" json:"address,omitempty"` +} + +func (x *GetinfoAddress) Reset() { + *x = GetinfoAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetinfoAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetinfoAddress) ProtoMessage() {} + +func (x *GetinfoAddress) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetinfoAddress.ProtoReflect.Descriptor instead. +func (*GetinfoAddress) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{3} +} + +func (x *GetinfoAddress) GetItemType() GetinfoAddress_GetinfoAddressType { + if x != nil { + return x.ItemType + } + return GetinfoAddress_DNS +} + +func (x *GetinfoAddress) GetPort() uint32 { + if x != nil { + return x.Port + } + return 0 +} + +func (x *GetinfoAddress) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +type GetinfoBinding struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemType GetinfoBinding_GetinfoBindingType `protobuf:"varint,1,opt,name=item_type,json=itemType,proto3,enum=cln.GetinfoBinding_GetinfoBindingType" json:"item_type,omitempty"` + Address *string `protobuf:"bytes,2,opt,name=address,proto3,oneof" json:"address,omitempty"` + Port *uint32 `protobuf:"varint,3,opt,name=port,proto3,oneof" json:"port,omitempty"` + Socket *string `protobuf:"bytes,4,opt,name=socket,proto3,oneof" json:"socket,omitempty"` +} + +func (x *GetinfoBinding) Reset() { + *x = GetinfoBinding{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetinfoBinding) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetinfoBinding) ProtoMessage() {} + +func (x *GetinfoBinding) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetinfoBinding.ProtoReflect.Descriptor instead. +func (*GetinfoBinding) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{4} +} + +func (x *GetinfoBinding) GetItemType() GetinfoBinding_GetinfoBindingType { + if x != nil { + return x.ItemType + } + return GetinfoBinding_LOCAL_SOCKET +} + +func (x *GetinfoBinding) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +func (x *GetinfoBinding) GetPort() uint32 { + if x != nil && x.Port != nil { + return *x.Port + } + return 0 +} + +func (x *GetinfoBinding) GetSocket() string { + if x != nil && x.Socket != nil { + return *x.Socket + } + return "" +} + +type ListpeersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` + Level *string `protobuf:"bytes,2,opt,name=level,proto3,oneof" json:"level,omitempty"` +} + +func (x *ListpeersRequest) Reset() { + *x = ListpeersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersRequest) ProtoMessage() {} + +func (x *ListpeersRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersRequest.ProtoReflect.Descriptor instead. +func (*ListpeersRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{5} +} + +func (x *ListpeersRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *ListpeersRequest) GetLevel() string { + if x != nil && x.Level != nil { + return *x.Level + } + return "" +} + +type ListpeersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peers []*ListpeersPeers `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` +} + +func (x *ListpeersResponse) Reset() { + *x = ListpeersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersResponse) ProtoMessage() {} + +func (x *ListpeersResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersResponse.ProtoReflect.Descriptor instead. +func (*ListpeersResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{6} +} + +func (x *ListpeersResponse) GetPeers() []*ListpeersPeers { + if x != nil { + return x.Peers + } + return nil +} + +type ListpeersPeers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Connected bool `protobuf:"varint,2,opt,name=connected,proto3" json:"connected,omitempty"` + NumChannels *uint32 `protobuf:"varint,8,opt,name=num_channels,json=numChannels,proto3,oneof" json:"num_channels,omitempty"` + Log []*ListpeersPeersLog `protobuf:"bytes,3,rep,name=log,proto3" json:"log,omitempty"` + Channels []*ListpeersPeersChannels `protobuf:"bytes,4,rep,name=channels,proto3" json:"channels,omitempty"` + Netaddr []string `protobuf:"bytes,5,rep,name=netaddr,proto3" json:"netaddr,omitempty"` + RemoteAddr *string `protobuf:"bytes,7,opt,name=remote_addr,json=remoteAddr,proto3,oneof" json:"remote_addr,omitempty"` + Features []byte `protobuf:"bytes,6,opt,name=features,proto3,oneof" json:"features,omitempty"` +} + +func (x *ListpeersPeers) Reset() { + *x = ListpeersPeers{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersPeers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersPeers) ProtoMessage() {} + +func (x *ListpeersPeers) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersPeers.ProtoReflect.Descriptor instead. +func (*ListpeersPeers) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{7} +} + +func (x *ListpeersPeers) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *ListpeersPeers) GetConnected() bool { + if x != nil { + return x.Connected + } + return false +} + +func (x *ListpeersPeers) GetNumChannels() uint32 { + if x != nil && x.NumChannels != nil { + return *x.NumChannels + } + return 0 +} + +func (x *ListpeersPeers) GetLog() []*ListpeersPeersLog { + if x != nil { + return x.Log + } + return nil +} + +func (x *ListpeersPeers) GetChannels() []*ListpeersPeersChannels { + if x != nil { + return x.Channels + } + return nil +} + +func (x *ListpeersPeers) GetNetaddr() []string { + if x != nil { + return x.Netaddr + } + return nil +} + +func (x *ListpeersPeers) GetRemoteAddr() string { + if x != nil && x.RemoteAddr != nil { + return *x.RemoteAddr + } + return "" +} + +func (x *ListpeersPeers) GetFeatures() []byte { + if x != nil { + return x.Features + } + return nil +} + +type ListpeersPeersLog struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemType ListpeersPeersLog_ListpeersPeersLogType `protobuf:"varint,1,opt,name=item_type,json=itemType,proto3,enum=cln.ListpeersPeersLog_ListpeersPeersLogType" json:"item_type,omitempty"` + NumSkipped *uint32 `protobuf:"varint,2,opt,name=num_skipped,json=numSkipped,proto3,oneof" json:"num_skipped,omitempty"` + Time *string `protobuf:"bytes,3,opt,name=time,proto3,oneof" json:"time,omitempty"` + Source *string `protobuf:"bytes,4,opt,name=source,proto3,oneof" json:"source,omitempty"` + Log *string `protobuf:"bytes,5,opt,name=log,proto3,oneof" json:"log,omitempty"` + NodeId []byte `protobuf:"bytes,6,opt,name=node_id,json=nodeId,proto3,oneof" json:"node_id,omitempty"` + Data []byte `protobuf:"bytes,7,opt,name=data,proto3,oneof" json:"data,omitempty"` +} + +func (x *ListpeersPeersLog) Reset() { + *x = ListpeersPeersLog{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersPeersLog) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersPeersLog) ProtoMessage() {} + +func (x *ListpeersPeersLog) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersPeersLog.ProtoReflect.Descriptor instead. +func (*ListpeersPeersLog) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{8} +} + +func (x *ListpeersPeersLog) GetItemType() ListpeersPeersLog_ListpeersPeersLogType { + if x != nil { + return x.ItemType + } + return ListpeersPeersLog_SKIPPED +} + +func (x *ListpeersPeersLog) GetNumSkipped() uint32 { + if x != nil && x.NumSkipped != nil { + return *x.NumSkipped + } + return 0 +} + +func (x *ListpeersPeersLog) GetTime() string { + if x != nil && x.Time != nil { + return *x.Time + } + return "" +} + +func (x *ListpeersPeersLog) GetSource() string { + if x != nil && x.Source != nil { + return *x.Source + } + return "" +} + +func (x *ListpeersPeersLog) GetLog() string { + if x != nil && x.Log != nil { + return *x.Log + } + return "" +} + +func (x *ListpeersPeersLog) GetNodeId() []byte { + if x != nil { + return x.NodeId + } + return nil +} + +func (x *ListpeersPeersLog) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type ListpeersPeersChannels struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State ListpeersPeersChannels_ListpeersPeersChannelsState `protobuf:"varint,1,opt,name=state,proto3,enum=cln.ListpeersPeersChannels_ListpeersPeersChannelsState" json:"state,omitempty"` + ScratchTxid []byte `protobuf:"bytes,2,opt,name=scratch_txid,json=scratchTxid,proto3,oneof" json:"scratch_txid,omitempty"` + Feerate *ListpeersPeersChannelsFeerate `protobuf:"bytes,3,opt,name=feerate,proto3,oneof" json:"feerate,omitempty"` + Owner *string `protobuf:"bytes,4,opt,name=owner,proto3,oneof" json:"owner,omitempty"` + ShortChannelId *string `protobuf:"bytes,5,opt,name=short_channel_id,json=shortChannelId,proto3,oneof" json:"short_channel_id,omitempty"` + ChannelId []byte `protobuf:"bytes,6,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"` + FundingTxid []byte `protobuf:"bytes,7,opt,name=funding_txid,json=fundingTxid,proto3,oneof" json:"funding_txid,omitempty"` + FundingOutnum *uint32 `protobuf:"varint,8,opt,name=funding_outnum,json=fundingOutnum,proto3,oneof" json:"funding_outnum,omitempty"` + InitialFeerate *string `protobuf:"bytes,9,opt,name=initial_feerate,json=initialFeerate,proto3,oneof" json:"initial_feerate,omitempty"` + LastFeerate *string `protobuf:"bytes,10,opt,name=last_feerate,json=lastFeerate,proto3,oneof" json:"last_feerate,omitempty"` + NextFeerate *string `protobuf:"bytes,11,opt,name=next_feerate,json=nextFeerate,proto3,oneof" json:"next_feerate,omitempty"` + NextFeeStep *uint32 `protobuf:"varint,12,opt,name=next_fee_step,json=nextFeeStep,proto3,oneof" json:"next_fee_step,omitempty"` + Inflight []*ListpeersPeersChannelsInflight `protobuf:"bytes,13,rep,name=inflight,proto3" json:"inflight,omitempty"` + CloseTo []byte `protobuf:"bytes,14,opt,name=close_to,json=closeTo,proto3,oneof" json:"close_to,omitempty"` + Private *bool `protobuf:"varint,15,opt,name=private,proto3,oneof" json:"private,omitempty"` + Opener ChannelSide `protobuf:"varint,16,opt,name=opener,proto3,enum=cln.ChannelSide" json:"opener,omitempty"` + Closer *ChannelSide `protobuf:"varint,17,opt,name=closer,proto3,enum=cln.ChannelSide,oneof" json:"closer,omitempty"` + Features []string `protobuf:"bytes,18,rep,name=features,proto3" json:"features,omitempty"` + Funding *ListpeersPeersChannelsFunding `protobuf:"bytes,19,opt,name=funding,proto3,oneof" json:"funding,omitempty"` + ToUsMsat *Amount `protobuf:"bytes,20,opt,name=to_us_msat,json=toUsMsat,proto3,oneof" json:"to_us_msat,omitempty"` + MinToUsMsat *Amount `protobuf:"bytes,21,opt,name=min_to_us_msat,json=minToUsMsat,proto3,oneof" json:"min_to_us_msat,omitempty"` + MaxToUsMsat *Amount `protobuf:"bytes,22,opt,name=max_to_us_msat,json=maxToUsMsat,proto3,oneof" json:"max_to_us_msat,omitempty"` + TotalMsat *Amount `protobuf:"bytes,23,opt,name=total_msat,json=totalMsat,proto3,oneof" json:"total_msat,omitempty"` + FeeBaseMsat *Amount `protobuf:"bytes,24,opt,name=fee_base_msat,json=feeBaseMsat,proto3,oneof" json:"fee_base_msat,omitempty"` + FeeProportionalMillionths *uint32 `protobuf:"varint,25,opt,name=fee_proportional_millionths,json=feeProportionalMillionths,proto3,oneof" json:"fee_proportional_millionths,omitempty"` + DustLimitMsat *Amount `protobuf:"bytes,26,opt,name=dust_limit_msat,json=dustLimitMsat,proto3,oneof" json:"dust_limit_msat,omitempty"` + MaxTotalHtlcInMsat *Amount `protobuf:"bytes,27,opt,name=max_total_htlc_in_msat,json=maxTotalHtlcInMsat,proto3,oneof" json:"max_total_htlc_in_msat,omitempty"` + TheirReserveMsat *Amount `protobuf:"bytes,28,opt,name=their_reserve_msat,json=theirReserveMsat,proto3,oneof" json:"their_reserve_msat,omitempty"` + OurReserveMsat *Amount `protobuf:"bytes,29,opt,name=our_reserve_msat,json=ourReserveMsat,proto3,oneof" json:"our_reserve_msat,omitempty"` + SpendableMsat *Amount `protobuf:"bytes,30,opt,name=spendable_msat,json=spendableMsat,proto3,oneof" json:"spendable_msat,omitempty"` + ReceivableMsat *Amount `protobuf:"bytes,31,opt,name=receivable_msat,json=receivableMsat,proto3,oneof" json:"receivable_msat,omitempty"` + MinimumHtlcInMsat *Amount `protobuf:"bytes,32,opt,name=minimum_htlc_in_msat,json=minimumHtlcInMsat,proto3,oneof" json:"minimum_htlc_in_msat,omitempty"` + MinimumHtlcOutMsat *Amount `protobuf:"bytes,48,opt,name=minimum_htlc_out_msat,json=minimumHtlcOutMsat,proto3,oneof" json:"minimum_htlc_out_msat,omitempty"` + MaximumHtlcOutMsat *Amount `protobuf:"bytes,49,opt,name=maximum_htlc_out_msat,json=maximumHtlcOutMsat,proto3,oneof" json:"maximum_htlc_out_msat,omitempty"` + TheirToSelfDelay *uint32 `protobuf:"varint,33,opt,name=their_to_self_delay,json=theirToSelfDelay,proto3,oneof" json:"their_to_self_delay,omitempty"` + OurToSelfDelay *uint32 `protobuf:"varint,34,opt,name=our_to_self_delay,json=ourToSelfDelay,proto3,oneof" json:"our_to_self_delay,omitempty"` + MaxAcceptedHtlcs *uint32 `protobuf:"varint,35,opt,name=max_accepted_htlcs,json=maxAcceptedHtlcs,proto3,oneof" json:"max_accepted_htlcs,omitempty"` + Alias *ListpeersPeersChannelsAlias `protobuf:"bytes,50,opt,name=alias,proto3,oneof" json:"alias,omitempty"` + Status []string `protobuf:"bytes,37,rep,name=status,proto3" json:"status,omitempty"` + InPaymentsOffered *uint64 `protobuf:"varint,38,opt,name=in_payments_offered,json=inPaymentsOffered,proto3,oneof" json:"in_payments_offered,omitempty"` + InOfferedMsat *Amount `protobuf:"bytes,39,opt,name=in_offered_msat,json=inOfferedMsat,proto3,oneof" json:"in_offered_msat,omitempty"` + InPaymentsFulfilled *uint64 `protobuf:"varint,40,opt,name=in_payments_fulfilled,json=inPaymentsFulfilled,proto3,oneof" json:"in_payments_fulfilled,omitempty"` + InFulfilledMsat *Amount `protobuf:"bytes,41,opt,name=in_fulfilled_msat,json=inFulfilledMsat,proto3,oneof" json:"in_fulfilled_msat,omitempty"` + OutPaymentsOffered *uint64 `protobuf:"varint,42,opt,name=out_payments_offered,json=outPaymentsOffered,proto3,oneof" json:"out_payments_offered,omitempty"` + OutOfferedMsat *Amount `protobuf:"bytes,43,opt,name=out_offered_msat,json=outOfferedMsat,proto3,oneof" json:"out_offered_msat,omitempty"` + OutPaymentsFulfilled *uint64 `protobuf:"varint,44,opt,name=out_payments_fulfilled,json=outPaymentsFulfilled,proto3,oneof" json:"out_payments_fulfilled,omitempty"` + OutFulfilledMsat *Amount `protobuf:"bytes,45,opt,name=out_fulfilled_msat,json=outFulfilledMsat,proto3,oneof" json:"out_fulfilled_msat,omitempty"` + Htlcs []*ListpeersPeersChannelsHtlcs `protobuf:"bytes,46,rep,name=htlcs,proto3" json:"htlcs,omitempty"` + CloseToAddr *string `protobuf:"bytes,47,opt,name=close_to_addr,json=closeToAddr,proto3,oneof" json:"close_to_addr,omitempty"` +} + +func (x *ListpeersPeersChannels) Reset() { + *x = ListpeersPeersChannels{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersPeersChannels) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersPeersChannels) ProtoMessage() {} + +func (x *ListpeersPeersChannels) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersPeersChannels.ProtoReflect.Descriptor instead. +func (*ListpeersPeersChannels) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{9} +} + +func (x *ListpeersPeersChannels) GetState() ListpeersPeersChannels_ListpeersPeersChannelsState { + if x != nil { + return x.State + } + return ListpeersPeersChannels_OPENINGD +} + +func (x *ListpeersPeersChannels) GetScratchTxid() []byte { + if x != nil { + return x.ScratchTxid + } + return nil +} + +func (x *ListpeersPeersChannels) GetFeerate() *ListpeersPeersChannelsFeerate { + if x != nil { + return x.Feerate + } + return nil +} + +func (x *ListpeersPeersChannels) GetOwner() string { + if x != nil && x.Owner != nil { + return *x.Owner + } + return "" +} + +func (x *ListpeersPeersChannels) GetShortChannelId() string { + if x != nil && x.ShortChannelId != nil { + return *x.ShortChannelId + } + return "" +} + +func (x *ListpeersPeersChannels) GetChannelId() []byte { + if x != nil { + return x.ChannelId + } + return nil +} + +func (x *ListpeersPeersChannels) GetFundingTxid() []byte { + if x != nil { + return x.FundingTxid + } + return nil +} + +func (x *ListpeersPeersChannels) GetFundingOutnum() uint32 { + if x != nil && x.FundingOutnum != nil { + return *x.FundingOutnum + } + return 0 +} + +func (x *ListpeersPeersChannels) GetInitialFeerate() string { + if x != nil && x.InitialFeerate != nil { + return *x.InitialFeerate + } + return "" +} + +func (x *ListpeersPeersChannels) GetLastFeerate() string { + if x != nil && x.LastFeerate != nil { + return *x.LastFeerate + } + return "" +} + +func (x *ListpeersPeersChannels) GetNextFeerate() string { + if x != nil && x.NextFeerate != nil { + return *x.NextFeerate + } + return "" +} + +func (x *ListpeersPeersChannels) GetNextFeeStep() uint32 { + if x != nil && x.NextFeeStep != nil { + return *x.NextFeeStep + } + return 0 +} + +func (x *ListpeersPeersChannels) GetInflight() []*ListpeersPeersChannelsInflight { + if x != nil { + return x.Inflight + } + return nil +} + +func (x *ListpeersPeersChannels) GetCloseTo() []byte { + if x != nil { + return x.CloseTo + } + return nil +} + +func (x *ListpeersPeersChannels) GetPrivate() bool { + if x != nil && x.Private != nil { + return *x.Private + } + return false +} + +func (x *ListpeersPeersChannels) GetOpener() ChannelSide { + if x != nil { + return x.Opener + } + return ChannelSide_LOCAL +} + +func (x *ListpeersPeersChannels) GetCloser() ChannelSide { + if x != nil && x.Closer != nil { + return *x.Closer + } + return ChannelSide_LOCAL +} + +func (x *ListpeersPeersChannels) GetFeatures() []string { + if x != nil { + return x.Features + } + return nil +} + +func (x *ListpeersPeersChannels) GetFunding() *ListpeersPeersChannelsFunding { + if x != nil { + return x.Funding + } + return nil +} + +func (x *ListpeersPeersChannels) GetToUsMsat() *Amount { + if x != nil { + return x.ToUsMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetMinToUsMsat() *Amount { + if x != nil { + return x.MinToUsMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetMaxToUsMsat() *Amount { + if x != nil { + return x.MaxToUsMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetTotalMsat() *Amount { + if x != nil { + return x.TotalMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetFeeBaseMsat() *Amount { + if x != nil { + return x.FeeBaseMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetFeeProportionalMillionths() uint32 { + if x != nil && x.FeeProportionalMillionths != nil { + return *x.FeeProportionalMillionths + } + return 0 +} + +func (x *ListpeersPeersChannels) GetDustLimitMsat() *Amount { + if x != nil { + return x.DustLimitMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetMaxTotalHtlcInMsat() *Amount { + if x != nil { + return x.MaxTotalHtlcInMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetTheirReserveMsat() *Amount { + if x != nil { + return x.TheirReserveMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetOurReserveMsat() *Amount { + if x != nil { + return x.OurReserveMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetSpendableMsat() *Amount { + if x != nil { + return x.SpendableMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetReceivableMsat() *Amount { + if x != nil { + return x.ReceivableMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetMinimumHtlcInMsat() *Amount { + if x != nil { + return x.MinimumHtlcInMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetMinimumHtlcOutMsat() *Amount { + if x != nil { + return x.MinimumHtlcOutMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetMaximumHtlcOutMsat() *Amount { + if x != nil { + return x.MaximumHtlcOutMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetTheirToSelfDelay() uint32 { + if x != nil && x.TheirToSelfDelay != nil { + return *x.TheirToSelfDelay + } + return 0 +} + +func (x *ListpeersPeersChannels) GetOurToSelfDelay() uint32 { + if x != nil && x.OurToSelfDelay != nil { + return *x.OurToSelfDelay + } + return 0 +} + +func (x *ListpeersPeersChannels) GetMaxAcceptedHtlcs() uint32 { + if x != nil && x.MaxAcceptedHtlcs != nil { + return *x.MaxAcceptedHtlcs + } + return 0 +} + +func (x *ListpeersPeersChannels) GetAlias() *ListpeersPeersChannelsAlias { + if x != nil { + return x.Alias + } + return nil +} + +func (x *ListpeersPeersChannels) GetStatus() []string { + if x != nil { + return x.Status + } + return nil +} + +func (x *ListpeersPeersChannels) GetInPaymentsOffered() uint64 { + if x != nil && x.InPaymentsOffered != nil { + return *x.InPaymentsOffered + } + return 0 +} + +func (x *ListpeersPeersChannels) GetInOfferedMsat() *Amount { + if x != nil { + return x.InOfferedMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetInPaymentsFulfilled() uint64 { + if x != nil && x.InPaymentsFulfilled != nil { + return *x.InPaymentsFulfilled + } + return 0 +} + +func (x *ListpeersPeersChannels) GetInFulfilledMsat() *Amount { + if x != nil { + return x.InFulfilledMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetOutPaymentsOffered() uint64 { + if x != nil && x.OutPaymentsOffered != nil { + return *x.OutPaymentsOffered + } + return 0 +} + +func (x *ListpeersPeersChannels) GetOutOfferedMsat() *Amount { + if x != nil { + return x.OutOfferedMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetOutPaymentsFulfilled() uint64 { + if x != nil && x.OutPaymentsFulfilled != nil { + return *x.OutPaymentsFulfilled + } + return 0 +} + +func (x *ListpeersPeersChannels) GetOutFulfilledMsat() *Amount { + if x != nil { + return x.OutFulfilledMsat + } + return nil +} + +func (x *ListpeersPeersChannels) GetHtlcs() []*ListpeersPeersChannelsHtlcs { + if x != nil { + return x.Htlcs + } + return nil +} + +func (x *ListpeersPeersChannels) GetCloseToAddr() string { + if x != nil && x.CloseToAddr != nil { + return *x.CloseToAddr + } + return "" +} + +type ListpeersPeersChannelsFeerate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Perkw uint32 `protobuf:"varint,1,opt,name=perkw,proto3" json:"perkw,omitempty"` + Perkb uint32 `protobuf:"varint,2,opt,name=perkb,proto3" json:"perkb,omitempty"` +} + +func (x *ListpeersPeersChannelsFeerate) Reset() { + *x = ListpeersPeersChannelsFeerate{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersPeersChannelsFeerate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersPeersChannelsFeerate) ProtoMessage() {} + +func (x *ListpeersPeersChannelsFeerate) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersPeersChannelsFeerate.ProtoReflect.Descriptor instead. +func (*ListpeersPeersChannelsFeerate) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{10} +} + +func (x *ListpeersPeersChannelsFeerate) GetPerkw() uint32 { + if x != nil { + return x.Perkw + } + return 0 +} + +func (x *ListpeersPeersChannelsFeerate) GetPerkb() uint32 { + if x != nil { + return x.Perkb + } + return 0 +} + +type ListpeersPeersChannelsInflight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FundingTxid []byte `protobuf:"bytes,1,opt,name=funding_txid,json=fundingTxid,proto3" json:"funding_txid,omitempty"` + FundingOutnum uint32 `protobuf:"varint,2,opt,name=funding_outnum,json=fundingOutnum,proto3" json:"funding_outnum,omitempty"` + Feerate string `protobuf:"bytes,3,opt,name=feerate,proto3" json:"feerate,omitempty"` + TotalFundingMsat *Amount `protobuf:"bytes,4,opt,name=total_funding_msat,json=totalFundingMsat,proto3" json:"total_funding_msat,omitempty"` + OurFundingMsat *Amount `protobuf:"bytes,5,opt,name=our_funding_msat,json=ourFundingMsat,proto3" json:"our_funding_msat,omitempty"` + SpliceAmount *int64 `protobuf:"zigzag64,7,opt,name=splice_amount,json=spliceAmount,proto3,oneof" json:"splice_amount,omitempty"` + ScratchTxid []byte `protobuf:"bytes,6,opt,name=scratch_txid,json=scratchTxid,proto3" json:"scratch_txid,omitempty"` +} + +func (x *ListpeersPeersChannelsInflight) Reset() { + *x = ListpeersPeersChannelsInflight{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersPeersChannelsInflight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersPeersChannelsInflight) ProtoMessage() {} + +func (x *ListpeersPeersChannelsInflight) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersPeersChannelsInflight.ProtoReflect.Descriptor instead. +func (*ListpeersPeersChannelsInflight) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{11} +} + +func (x *ListpeersPeersChannelsInflight) GetFundingTxid() []byte { + if x != nil { + return x.FundingTxid + } + return nil +} + +func (x *ListpeersPeersChannelsInflight) GetFundingOutnum() uint32 { + if x != nil { + return x.FundingOutnum + } + return 0 +} + +func (x *ListpeersPeersChannelsInflight) GetFeerate() string { + if x != nil { + return x.Feerate + } + return "" +} + +func (x *ListpeersPeersChannelsInflight) GetTotalFundingMsat() *Amount { + if x != nil { + return x.TotalFundingMsat + } + return nil +} + +func (x *ListpeersPeersChannelsInflight) GetOurFundingMsat() *Amount { + if x != nil { + return x.OurFundingMsat + } + return nil +} + +func (x *ListpeersPeersChannelsInflight) GetSpliceAmount() int64 { + if x != nil && x.SpliceAmount != nil { + return *x.SpliceAmount + } + return 0 +} + +func (x *ListpeersPeersChannelsInflight) GetScratchTxid() []byte { + if x != nil { + return x.ScratchTxid + } + return nil +} + +type ListpeersPeersChannelsFunding struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PushedMsat *Amount `protobuf:"bytes,3,opt,name=pushed_msat,json=pushedMsat,proto3,oneof" json:"pushed_msat,omitempty"` + LocalFundsMsat *Amount `protobuf:"bytes,4,opt,name=local_funds_msat,json=localFundsMsat,proto3" json:"local_funds_msat,omitempty"` + RemoteFundsMsat *Amount `protobuf:"bytes,7,opt,name=remote_funds_msat,json=remoteFundsMsat,proto3" json:"remote_funds_msat,omitempty"` + FeePaidMsat *Amount `protobuf:"bytes,5,opt,name=fee_paid_msat,json=feePaidMsat,proto3,oneof" json:"fee_paid_msat,omitempty"` + FeeRcvdMsat *Amount `protobuf:"bytes,6,opt,name=fee_rcvd_msat,json=feeRcvdMsat,proto3,oneof" json:"fee_rcvd_msat,omitempty"` +} + +func (x *ListpeersPeersChannelsFunding) Reset() { + *x = ListpeersPeersChannelsFunding{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersPeersChannelsFunding) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersPeersChannelsFunding) ProtoMessage() {} + +func (x *ListpeersPeersChannelsFunding) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersPeersChannelsFunding.ProtoReflect.Descriptor instead. +func (*ListpeersPeersChannelsFunding) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{12} +} + +func (x *ListpeersPeersChannelsFunding) GetPushedMsat() *Amount { + if x != nil { + return x.PushedMsat + } + return nil +} + +func (x *ListpeersPeersChannelsFunding) GetLocalFundsMsat() *Amount { + if x != nil { + return x.LocalFundsMsat + } + return nil +} + +func (x *ListpeersPeersChannelsFunding) GetRemoteFundsMsat() *Amount { + if x != nil { + return x.RemoteFundsMsat + } + return nil +} + +func (x *ListpeersPeersChannelsFunding) GetFeePaidMsat() *Amount { + if x != nil { + return x.FeePaidMsat + } + return nil +} + +func (x *ListpeersPeersChannelsFunding) GetFeeRcvdMsat() *Amount { + if x != nil { + return x.FeeRcvdMsat + } + return nil +} + +type ListpeersPeersChannelsAlias struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Local *string `protobuf:"bytes,1,opt,name=local,proto3,oneof" json:"local,omitempty"` + Remote *string `protobuf:"bytes,2,opt,name=remote,proto3,oneof" json:"remote,omitempty"` +} + +func (x *ListpeersPeersChannelsAlias) Reset() { + *x = ListpeersPeersChannelsAlias{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersPeersChannelsAlias) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersPeersChannelsAlias) ProtoMessage() {} + +func (x *ListpeersPeersChannelsAlias) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersPeersChannelsAlias.ProtoReflect.Descriptor instead. +func (*ListpeersPeersChannelsAlias) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{13} +} + +func (x *ListpeersPeersChannelsAlias) GetLocal() string { + if x != nil && x.Local != nil { + return *x.Local + } + return "" +} + +func (x *ListpeersPeersChannelsAlias) GetRemote() string { + if x != nil && x.Remote != nil { + return *x.Remote + } + return "" +} + +type ListpeersPeersChannelsHtlcs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Direction ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection `protobuf:"varint,1,opt,name=direction,proto3,enum=cln.ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection" json:"direction,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + AmountMsat *Amount `protobuf:"bytes,3,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Expiry uint32 `protobuf:"varint,4,opt,name=expiry,proto3" json:"expiry,omitempty"` + PaymentHash []byte `protobuf:"bytes,5,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + LocalTrimmed *bool `protobuf:"varint,6,opt,name=local_trimmed,json=localTrimmed,proto3,oneof" json:"local_trimmed,omitempty"` + Status *string `protobuf:"bytes,7,opt,name=status,proto3,oneof" json:"status,omitempty"` + State HtlcState `protobuf:"varint,8,opt,name=state,proto3,enum=cln.HtlcState" json:"state,omitempty"` +} + +func (x *ListpeersPeersChannelsHtlcs) Reset() { + *x = ListpeersPeersChannelsHtlcs{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeersPeersChannelsHtlcs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeersPeersChannelsHtlcs) ProtoMessage() {} + +func (x *ListpeersPeersChannelsHtlcs) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeersPeersChannelsHtlcs.ProtoReflect.Descriptor instead. +func (*ListpeersPeersChannelsHtlcs) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{14} +} + +func (x *ListpeersPeersChannelsHtlcs) GetDirection() ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection { + if x != nil { + return x.Direction + } + return ListpeersPeersChannelsHtlcs_IN +} + +func (x *ListpeersPeersChannelsHtlcs) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ListpeersPeersChannelsHtlcs) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListpeersPeersChannelsHtlcs) GetExpiry() uint32 { + if x != nil { + return x.Expiry + } + return 0 +} + +func (x *ListpeersPeersChannelsHtlcs) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListpeersPeersChannelsHtlcs) GetLocalTrimmed() bool { + if x != nil && x.LocalTrimmed != nil { + return *x.LocalTrimmed + } + return false +} + +func (x *ListpeersPeersChannelsHtlcs) GetStatus() string { + if x != nil && x.Status != nil { + return *x.Status + } + return "" +} + +func (x *ListpeersPeersChannelsHtlcs) GetState() HtlcState { + if x != nil { + return x.State + } + return HtlcState_SentAddHtlc +} + +type ListfundsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Spent *bool `protobuf:"varint,1,opt,name=spent,proto3,oneof" json:"spent,omitempty"` +} + +func (x *ListfundsRequest) Reset() { + *x = ListfundsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListfundsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListfundsRequest) ProtoMessage() {} + +func (x *ListfundsRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListfundsRequest.ProtoReflect.Descriptor instead. +func (*ListfundsRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{15} +} + +func (x *ListfundsRequest) GetSpent() bool { + if x != nil && x.Spent != nil { + return *x.Spent + } + return false +} + +type ListfundsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Outputs []*ListfundsOutputs `protobuf:"bytes,1,rep,name=outputs,proto3" json:"outputs,omitempty"` + Channels []*ListfundsChannels `protobuf:"bytes,2,rep,name=channels,proto3" json:"channels,omitempty"` +} + +func (x *ListfundsResponse) Reset() { + *x = ListfundsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListfundsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListfundsResponse) ProtoMessage() {} + +func (x *ListfundsResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListfundsResponse.ProtoReflect.Descriptor instead. +func (*ListfundsResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{16} +} + +func (x *ListfundsResponse) GetOutputs() []*ListfundsOutputs { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *ListfundsResponse) GetChannels() []*ListfundsChannels { + if x != nil { + return x.Channels + } + return nil +} + +type ListfundsOutputs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` + Output uint32 `protobuf:"varint,2,opt,name=output,proto3" json:"output,omitempty"` + AmountMsat *Amount `protobuf:"bytes,3,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Scriptpubkey []byte `protobuf:"bytes,4,opt,name=scriptpubkey,proto3" json:"scriptpubkey,omitempty"` + Address *string `protobuf:"bytes,5,opt,name=address,proto3,oneof" json:"address,omitempty"` + Redeemscript []byte `protobuf:"bytes,6,opt,name=redeemscript,proto3,oneof" json:"redeemscript,omitempty"` + Status ListfundsOutputs_ListfundsOutputsStatus `protobuf:"varint,7,opt,name=status,proto3,enum=cln.ListfundsOutputs_ListfundsOutputsStatus" json:"status,omitempty"` + Reserved bool `protobuf:"varint,9,opt,name=reserved,proto3" json:"reserved,omitempty"` + Blockheight *uint32 `protobuf:"varint,8,opt,name=blockheight,proto3,oneof" json:"blockheight,omitempty"` +} + +func (x *ListfundsOutputs) Reset() { + *x = ListfundsOutputs{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListfundsOutputs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListfundsOutputs) ProtoMessage() {} + +func (x *ListfundsOutputs) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListfundsOutputs.ProtoReflect.Descriptor instead. +func (*ListfundsOutputs) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{17} +} + +func (x *ListfundsOutputs) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *ListfundsOutputs) GetOutput() uint32 { + if x != nil { + return x.Output + } + return 0 +} + +func (x *ListfundsOutputs) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListfundsOutputs) GetScriptpubkey() []byte { + if x != nil { + return x.Scriptpubkey + } + return nil +} + +func (x *ListfundsOutputs) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +func (x *ListfundsOutputs) GetRedeemscript() []byte { + if x != nil { + return x.Redeemscript + } + return nil +} + +func (x *ListfundsOutputs) GetStatus() ListfundsOutputs_ListfundsOutputsStatus { + if x != nil { + return x.Status + } + return ListfundsOutputs_UNCONFIRMED +} + +func (x *ListfundsOutputs) GetReserved() bool { + if x != nil { + return x.Reserved + } + return false +} + +func (x *ListfundsOutputs) GetBlockheight() uint32 { + if x != nil && x.Blockheight != nil { + return *x.Blockheight + } + return 0 +} + +type ListfundsChannels struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId []byte `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + OurAmountMsat *Amount `protobuf:"bytes,2,opt,name=our_amount_msat,json=ourAmountMsat,proto3" json:"our_amount_msat,omitempty"` + AmountMsat *Amount `protobuf:"bytes,3,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + FundingTxid []byte `protobuf:"bytes,4,opt,name=funding_txid,json=fundingTxid,proto3" json:"funding_txid,omitempty"` + FundingOutput uint32 `protobuf:"varint,5,opt,name=funding_output,json=fundingOutput,proto3" json:"funding_output,omitempty"` + Connected bool `protobuf:"varint,6,opt,name=connected,proto3" json:"connected,omitempty"` + State ChannelState `protobuf:"varint,7,opt,name=state,proto3,enum=cln.ChannelState" json:"state,omitempty"` + ChannelId []byte `protobuf:"bytes,9,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"` + ShortChannelId *string `protobuf:"bytes,8,opt,name=short_channel_id,json=shortChannelId,proto3,oneof" json:"short_channel_id,omitempty"` +} + +func (x *ListfundsChannels) Reset() { + *x = ListfundsChannels{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListfundsChannels) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListfundsChannels) ProtoMessage() {} + +func (x *ListfundsChannels) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListfundsChannels.ProtoReflect.Descriptor instead. +func (*ListfundsChannels) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{18} +} + +func (x *ListfundsChannels) GetPeerId() []byte { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *ListfundsChannels) GetOurAmountMsat() *Amount { + if x != nil { + return x.OurAmountMsat + } + return nil +} + +func (x *ListfundsChannels) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListfundsChannels) GetFundingTxid() []byte { + if x != nil { + return x.FundingTxid + } + return nil +} + +func (x *ListfundsChannels) GetFundingOutput() uint32 { + if x != nil { + return x.FundingOutput + } + return 0 +} + +func (x *ListfundsChannels) GetConnected() bool { + if x != nil { + return x.Connected + } + return false +} + +func (x *ListfundsChannels) GetState() ChannelState { + if x != nil { + return x.State + } + return ChannelState_Openingd +} + +func (x *ListfundsChannels) GetChannelId() []byte { + if x != nil { + return x.ChannelId + } + return nil +} + +func (x *ListfundsChannels) GetShortChannelId() string { + if x != nil && x.ShortChannelId != nil { + return *x.ShortChannelId + } + return "" +} + +type SendpayRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Route []*SendpayRoute `protobuf:"bytes,1,rep,name=route,proto3" json:"route,omitempty"` + PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Label *string `protobuf:"bytes,3,opt,name=label,proto3,oneof" json:"label,omitempty"` + AmountMsat *Amount `protobuf:"bytes,10,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Bolt11 *string `protobuf:"bytes,5,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + PaymentSecret []byte `protobuf:"bytes,6,opt,name=payment_secret,json=paymentSecret,proto3,oneof" json:"payment_secret,omitempty"` + Partid *uint32 `protobuf:"varint,7,opt,name=partid,proto3,oneof" json:"partid,omitempty"` + Localinvreqid []byte `protobuf:"bytes,11,opt,name=localinvreqid,proto3,oneof" json:"localinvreqid,omitempty"` + Groupid *uint64 `protobuf:"varint,9,opt,name=groupid,proto3,oneof" json:"groupid,omitempty"` +} + +func (x *SendpayRequest) Reset() { + *x = SendpayRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendpayRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendpayRequest) ProtoMessage() {} + +func (x *SendpayRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendpayRequest.ProtoReflect.Descriptor instead. +func (*SendpayRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{19} +} + +func (x *SendpayRequest) GetRoute() []*SendpayRoute { + if x != nil { + return x.Route + } + return nil +} + +func (x *SendpayRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *SendpayRequest) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *SendpayRequest) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *SendpayRequest) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *SendpayRequest) GetPaymentSecret() []byte { + if x != nil { + return x.PaymentSecret + } + return nil +} + +func (x *SendpayRequest) GetPartid() uint32 { + if x != nil && x.Partid != nil { + return *x.Partid + } + return 0 +} + +func (x *SendpayRequest) GetLocalinvreqid() []byte { + if x != nil { + return x.Localinvreqid + } + return nil +} + +func (x *SendpayRequest) GetGroupid() uint64 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +type SendpayResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedIndex *uint64 `protobuf:"varint,16,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,17,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Groupid *uint64 `protobuf:"varint,2,opt,name=groupid,proto3,oneof" json:"groupid,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Status SendpayResponse_SendpayStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cln.SendpayResponse_SendpayStatus" json:"status,omitempty"` + AmountMsat *Amount `protobuf:"bytes,5,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Destination []byte `protobuf:"bytes,6,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + CreatedAt uint64 `protobuf:"varint,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + CompletedAt *uint64 `protobuf:"varint,15,opt,name=completed_at,json=completedAt,proto3,oneof" json:"completed_at,omitempty"` + AmountSentMsat *Amount `protobuf:"bytes,8,opt,name=amount_sent_msat,json=amountSentMsat,proto3" json:"amount_sent_msat,omitempty"` + Label *string `protobuf:"bytes,9,opt,name=label,proto3,oneof" json:"label,omitempty"` + Partid *uint64 `protobuf:"varint,10,opt,name=partid,proto3,oneof" json:"partid,omitempty"` + Bolt11 *string `protobuf:"bytes,11,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Bolt12 *string `protobuf:"bytes,12,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + PaymentPreimage []byte `protobuf:"bytes,13,opt,name=payment_preimage,json=paymentPreimage,proto3,oneof" json:"payment_preimage,omitempty"` + Message *string `protobuf:"bytes,14,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *SendpayResponse) Reset() { + *x = SendpayResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendpayResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendpayResponse) ProtoMessage() {} + +func (x *SendpayResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendpayResponse.ProtoReflect.Descriptor instead. +func (*SendpayResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{20} +} + +func (x *SendpayResponse) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *SendpayResponse) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *SendpayResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SendpayResponse) GetGroupid() uint64 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +func (x *SendpayResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *SendpayResponse) GetStatus() SendpayResponse_SendpayStatus { + if x != nil { + return x.Status + } + return SendpayResponse_PENDING +} + +func (x *SendpayResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *SendpayResponse) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *SendpayResponse) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *SendpayResponse) GetCompletedAt() uint64 { + if x != nil && x.CompletedAt != nil { + return *x.CompletedAt + } + return 0 +} + +func (x *SendpayResponse) GetAmountSentMsat() *Amount { + if x != nil { + return x.AmountSentMsat + } + return nil +} + +func (x *SendpayResponse) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *SendpayResponse) GetPartid() uint64 { + if x != nil && x.Partid != nil { + return *x.Partid + } + return 0 +} + +func (x *SendpayResponse) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *SendpayResponse) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *SendpayResponse) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +func (x *SendpayResponse) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type SendpayRoute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AmountMsat *Amount `protobuf:"bytes,5,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Id []byte `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + Delay uint32 `protobuf:"varint,3,opt,name=delay,proto3" json:"delay,omitempty"` + Channel string `protobuf:"bytes,4,opt,name=channel,proto3" json:"channel,omitempty"` +} + +func (x *SendpayRoute) Reset() { + *x = SendpayRoute{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendpayRoute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendpayRoute) ProtoMessage() {} + +func (x *SendpayRoute) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendpayRoute.ProtoReflect.Descriptor instead. +func (*SendpayRoute) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{21} +} + +func (x *SendpayRoute) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *SendpayRoute) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *SendpayRoute) GetDelay() uint32 { + if x != nil { + return x.Delay + } + return 0 +} + +func (x *SendpayRoute) GetChannel() string { + if x != nil { + return x.Channel + } + return "" +} + +type ListchannelsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShortChannelId *string `protobuf:"bytes,1,opt,name=short_channel_id,json=shortChannelId,proto3,oneof" json:"short_channel_id,omitempty"` + Source []byte `protobuf:"bytes,2,opt,name=source,proto3,oneof" json:"source,omitempty"` + Destination []byte `protobuf:"bytes,3,opt,name=destination,proto3,oneof" json:"destination,omitempty"` +} + +func (x *ListchannelsRequest) Reset() { + *x = ListchannelsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListchannelsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListchannelsRequest) ProtoMessage() {} + +func (x *ListchannelsRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListchannelsRequest.ProtoReflect.Descriptor instead. +func (*ListchannelsRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{22} +} + +func (x *ListchannelsRequest) GetShortChannelId() string { + if x != nil && x.ShortChannelId != nil { + return *x.ShortChannelId + } + return "" +} + +func (x *ListchannelsRequest) GetSource() []byte { + if x != nil { + return x.Source + } + return nil +} + +func (x *ListchannelsRequest) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +type ListchannelsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Channels []*ListchannelsChannels `protobuf:"bytes,1,rep,name=channels,proto3" json:"channels,omitempty"` +} + +func (x *ListchannelsResponse) Reset() { + *x = ListchannelsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListchannelsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListchannelsResponse) ProtoMessage() {} + +func (x *ListchannelsResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListchannelsResponse.ProtoReflect.Descriptor instead. +func (*ListchannelsResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{23} +} + +func (x *ListchannelsResponse) GetChannels() []*ListchannelsChannels { + if x != nil { + return x.Channels + } + return nil +} + +type ListchannelsChannels struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source []byte `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Destination []byte `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"` + ShortChannelId string `protobuf:"bytes,3,opt,name=short_channel_id,json=shortChannelId,proto3" json:"short_channel_id,omitempty"` + Direction uint32 `protobuf:"varint,16,opt,name=direction,proto3" json:"direction,omitempty"` + Public bool `protobuf:"varint,4,opt,name=public,proto3" json:"public,omitempty"` + AmountMsat *Amount `protobuf:"bytes,5,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + MessageFlags uint32 `protobuf:"varint,6,opt,name=message_flags,json=messageFlags,proto3" json:"message_flags,omitempty"` + ChannelFlags uint32 `protobuf:"varint,7,opt,name=channel_flags,json=channelFlags,proto3" json:"channel_flags,omitempty"` + Active bool `protobuf:"varint,8,opt,name=active,proto3" json:"active,omitempty"` + LastUpdate uint32 `protobuf:"varint,9,opt,name=last_update,json=lastUpdate,proto3" json:"last_update,omitempty"` + BaseFeeMillisatoshi uint32 `protobuf:"varint,10,opt,name=base_fee_millisatoshi,json=baseFeeMillisatoshi,proto3" json:"base_fee_millisatoshi,omitempty"` + FeePerMillionth uint32 `protobuf:"varint,11,opt,name=fee_per_millionth,json=feePerMillionth,proto3" json:"fee_per_millionth,omitempty"` + Delay uint32 `protobuf:"varint,12,opt,name=delay,proto3" json:"delay,omitempty"` + HtlcMinimumMsat *Amount `protobuf:"bytes,13,opt,name=htlc_minimum_msat,json=htlcMinimumMsat,proto3" json:"htlc_minimum_msat,omitempty"` + HtlcMaximumMsat *Amount `protobuf:"bytes,14,opt,name=htlc_maximum_msat,json=htlcMaximumMsat,proto3,oneof" json:"htlc_maximum_msat,omitempty"` + Features []byte `protobuf:"bytes,15,opt,name=features,proto3" json:"features,omitempty"` +} + +func (x *ListchannelsChannels) Reset() { + *x = ListchannelsChannels{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListchannelsChannels) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListchannelsChannels) ProtoMessage() {} + +func (x *ListchannelsChannels) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListchannelsChannels.ProtoReflect.Descriptor instead. +func (*ListchannelsChannels) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{24} +} + +func (x *ListchannelsChannels) GetSource() []byte { + if x != nil { + return x.Source + } + return nil +} + +func (x *ListchannelsChannels) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *ListchannelsChannels) GetShortChannelId() string { + if x != nil { + return x.ShortChannelId + } + return "" +} + +func (x *ListchannelsChannels) GetDirection() uint32 { + if x != nil { + return x.Direction + } + return 0 +} + +func (x *ListchannelsChannels) GetPublic() bool { + if x != nil { + return x.Public + } + return false +} + +func (x *ListchannelsChannels) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListchannelsChannels) GetMessageFlags() uint32 { + if x != nil { + return x.MessageFlags + } + return 0 +} + +func (x *ListchannelsChannels) GetChannelFlags() uint32 { + if x != nil { + return x.ChannelFlags + } + return 0 +} + +func (x *ListchannelsChannels) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +func (x *ListchannelsChannels) GetLastUpdate() uint32 { + if x != nil { + return x.LastUpdate + } + return 0 +} + +func (x *ListchannelsChannels) GetBaseFeeMillisatoshi() uint32 { + if x != nil { + return x.BaseFeeMillisatoshi + } + return 0 +} + +func (x *ListchannelsChannels) GetFeePerMillionth() uint32 { + if x != nil { + return x.FeePerMillionth + } + return 0 +} + +func (x *ListchannelsChannels) GetDelay() uint32 { + if x != nil { + return x.Delay + } + return 0 +} + +func (x *ListchannelsChannels) GetHtlcMinimumMsat() *Amount { + if x != nil { + return x.HtlcMinimumMsat + } + return nil +} + +func (x *ListchannelsChannels) GetHtlcMaximumMsat() *Amount { + if x != nil { + return x.HtlcMaximumMsat + } + return nil +} + +func (x *ListchannelsChannels) GetFeatures() []byte { + if x != nil { + return x.Features + } + return nil +} + +type AddgossipRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message []byte `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *AddgossipRequest) Reset() { + *x = AddgossipRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddgossipRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddgossipRequest) ProtoMessage() {} + +func (x *AddgossipRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddgossipRequest.ProtoReflect.Descriptor instead. +func (*AddgossipRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{25} +} + +func (x *AddgossipRequest) GetMessage() []byte { + if x != nil { + return x.Message + } + return nil +} + +type AddgossipResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddgossipResponse) Reset() { + *x = AddgossipResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddgossipResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddgossipResponse) ProtoMessage() {} + +func (x *AddgossipResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddgossipResponse.ProtoReflect.Descriptor instead. +func (*AddgossipResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{26} +} + +type AutocleaninvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExpiredBy *uint64 `protobuf:"varint,1,opt,name=expired_by,json=expiredBy,proto3,oneof" json:"expired_by,omitempty"` + CycleSeconds *uint64 `protobuf:"varint,2,opt,name=cycle_seconds,json=cycleSeconds,proto3,oneof" json:"cycle_seconds,omitempty"` +} + +func (x *AutocleaninvoiceRequest) Reset() { + *x = AutocleaninvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutocleaninvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutocleaninvoiceRequest) ProtoMessage() {} + +func (x *AutocleaninvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AutocleaninvoiceRequest.ProtoReflect.Descriptor instead. +func (*AutocleaninvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{27} +} + +func (x *AutocleaninvoiceRequest) GetExpiredBy() uint64 { + if x != nil && x.ExpiredBy != nil { + return *x.ExpiredBy + } + return 0 +} + +func (x *AutocleaninvoiceRequest) GetCycleSeconds() uint64 { + if x != nil && x.CycleSeconds != nil { + return *x.CycleSeconds + } + return 0 +} + +type AutocleaninvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + ExpiredBy *uint64 `protobuf:"varint,2,opt,name=expired_by,json=expiredBy,proto3,oneof" json:"expired_by,omitempty"` + CycleSeconds *uint64 `protobuf:"varint,3,opt,name=cycle_seconds,json=cycleSeconds,proto3,oneof" json:"cycle_seconds,omitempty"` +} + +func (x *AutocleaninvoiceResponse) Reset() { + *x = AutocleaninvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutocleaninvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutocleaninvoiceResponse) ProtoMessage() {} + +func (x *AutocleaninvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AutocleaninvoiceResponse.ProtoReflect.Descriptor instead. +func (*AutocleaninvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{28} +} + +func (x *AutocleaninvoiceResponse) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *AutocleaninvoiceResponse) GetExpiredBy() uint64 { + if x != nil && x.ExpiredBy != nil { + return *x.ExpiredBy + } + return 0 +} + +func (x *AutocleaninvoiceResponse) GetCycleSeconds() uint64 { + if x != nil && x.CycleSeconds != nil { + return *x.CycleSeconds + } + return 0 +} + +type CheckmessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Zbase string `protobuf:"bytes,2,opt,name=zbase,proto3" json:"zbase,omitempty"` + Pubkey []byte `protobuf:"bytes,3,opt,name=pubkey,proto3,oneof" json:"pubkey,omitempty"` +} + +func (x *CheckmessageRequest) Reset() { + *x = CheckmessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckmessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckmessageRequest) ProtoMessage() {} + +func (x *CheckmessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckmessageRequest.ProtoReflect.Descriptor instead. +func (*CheckmessageRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{29} +} + +func (x *CheckmessageRequest) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *CheckmessageRequest) GetZbase() string { + if x != nil { + return x.Zbase + } + return "" +} + +func (x *CheckmessageRequest) GetPubkey() []byte { + if x != nil { + return x.Pubkey + } + return nil +} + +type CheckmessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Verified bool `protobuf:"varint,1,opt,name=verified,proto3" json:"verified,omitempty"` + Pubkey []byte `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey,omitempty"` +} + +func (x *CheckmessageResponse) Reset() { + *x = CheckmessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CheckmessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CheckmessageResponse) ProtoMessage() {} + +func (x *CheckmessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CheckmessageResponse.ProtoReflect.Descriptor instead. +func (*CheckmessageResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{30} +} + +func (x *CheckmessageResponse) GetVerified() bool { + if x != nil { + return x.Verified + } + return false +} + +func (x *CheckmessageResponse) GetPubkey() []byte { + if x != nil { + return x.Pubkey + } + return nil +} + +type CloseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Unilateraltimeout *uint32 `protobuf:"varint,2,opt,name=unilateraltimeout,proto3,oneof" json:"unilateraltimeout,omitempty"` + Destination *string `protobuf:"bytes,3,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + FeeNegotiationStep *string `protobuf:"bytes,4,opt,name=fee_negotiation_step,json=feeNegotiationStep,proto3,oneof" json:"fee_negotiation_step,omitempty"` + WrongFunding *Outpoint `protobuf:"bytes,5,opt,name=wrong_funding,json=wrongFunding,proto3,oneof" json:"wrong_funding,omitempty"` + ForceLeaseClosed *bool `protobuf:"varint,6,opt,name=force_lease_closed,json=forceLeaseClosed,proto3,oneof" json:"force_lease_closed,omitempty"` + Feerange []*Feerate `protobuf:"bytes,7,rep,name=feerange,proto3" json:"feerange,omitempty"` +} + +func (x *CloseRequest) Reset() { + *x = CloseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloseRequest) ProtoMessage() {} + +func (x *CloseRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CloseRequest.ProtoReflect.Descriptor instead. +func (*CloseRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{31} +} + +func (x *CloseRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *CloseRequest) GetUnilateraltimeout() uint32 { + if x != nil && x.Unilateraltimeout != nil { + return *x.Unilateraltimeout + } + return 0 +} + +func (x *CloseRequest) GetDestination() string { + if x != nil && x.Destination != nil { + return *x.Destination + } + return "" +} + +func (x *CloseRequest) GetFeeNegotiationStep() string { + if x != nil && x.FeeNegotiationStep != nil { + return *x.FeeNegotiationStep + } + return "" +} + +func (x *CloseRequest) GetWrongFunding() *Outpoint { + if x != nil { + return x.WrongFunding + } + return nil +} + +func (x *CloseRequest) GetForceLeaseClosed() bool { + if x != nil && x.ForceLeaseClosed != nil { + return *x.ForceLeaseClosed + } + return false +} + +func (x *CloseRequest) GetFeerange() []*Feerate { + if x != nil { + return x.Feerange + } + return nil +} + +type CloseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemType CloseResponse_CloseType `protobuf:"varint,1,opt,name=item_type,json=itemType,proto3,enum=cln.CloseResponse_CloseType" json:"item_type,omitempty"` + Tx []byte `protobuf:"bytes,2,opt,name=tx,proto3,oneof" json:"tx,omitempty"` + Txid []byte `protobuf:"bytes,3,opt,name=txid,proto3,oneof" json:"txid,omitempty"` +} + +func (x *CloseResponse) Reset() { + *x = CloseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CloseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CloseResponse) ProtoMessage() {} + +func (x *CloseResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CloseResponse.ProtoReflect.Descriptor instead. +func (*CloseResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{32} +} + +func (x *CloseResponse) GetItemType() CloseResponse_CloseType { + if x != nil { + return x.ItemType + } + return CloseResponse_MUTUAL +} + +func (x *CloseResponse) GetTx() []byte { + if x != nil { + return x.Tx + } + return nil +} + +func (x *CloseResponse) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +type ConnectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Host *string `protobuf:"bytes,2,opt,name=host,proto3,oneof" json:"host,omitempty"` + Port *uint32 `protobuf:"varint,3,opt,name=port,proto3,oneof" json:"port,omitempty"` +} + +func (x *ConnectRequest) Reset() { + *x = ConnectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConnectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectRequest) ProtoMessage() {} + +func (x *ConnectRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectRequest.ProtoReflect.Descriptor instead. +func (*ConnectRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{33} +} + +func (x *ConnectRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ConnectRequest) GetHost() string { + if x != nil && x.Host != nil { + return *x.Host + } + return "" +} + +func (x *ConnectRequest) GetPort() uint32 { + if x != nil && x.Port != nil { + return *x.Port + } + return 0 +} + +type ConnectResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Features []byte `protobuf:"bytes,2,opt,name=features,proto3" json:"features,omitempty"` + Direction ConnectResponse_ConnectDirection `protobuf:"varint,3,opt,name=direction,proto3,enum=cln.ConnectResponse_ConnectDirection" json:"direction,omitempty"` + Address *ConnectAddress `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *ConnectResponse) Reset() { + *x = ConnectResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConnectResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectResponse) ProtoMessage() {} + +func (x *ConnectResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectResponse.ProtoReflect.Descriptor instead. +func (*ConnectResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{34} +} + +func (x *ConnectResponse) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *ConnectResponse) GetFeatures() []byte { + if x != nil { + return x.Features + } + return nil +} + +func (x *ConnectResponse) GetDirection() ConnectResponse_ConnectDirection { + if x != nil { + return x.Direction + } + return ConnectResponse_IN +} + +func (x *ConnectResponse) GetAddress() *ConnectAddress { + if x != nil { + return x.Address + } + return nil +} + +type ConnectAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemType ConnectAddress_ConnectAddressType `protobuf:"varint,1,opt,name=item_type,json=itemType,proto3,enum=cln.ConnectAddress_ConnectAddressType" json:"item_type,omitempty"` + Socket *string `protobuf:"bytes,2,opt,name=socket,proto3,oneof" json:"socket,omitempty"` + Address *string `protobuf:"bytes,3,opt,name=address,proto3,oneof" json:"address,omitempty"` + Port *uint32 `protobuf:"varint,4,opt,name=port,proto3,oneof" json:"port,omitempty"` +} + +func (x *ConnectAddress) Reset() { + *x = ConnectAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConnectAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnectAddress) ProtoMessage() {} + +func (x *ConnectAddress) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnectAddress.ProtoReflect.Descriptor instead. +func (*ConnectAddress) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{35} +} + +func (x *ConnectAddress) GetItemType() ConnectAddress_ConnectAddressType { + if x != nil { + return x.ItemType + } + return ConnectAddress_LOCAL_SOCKET +} + +func (x *ConnectAddress) GetSocket() string { + if x != nil && x.Socket != nil { + return *x.Socket + } + return "" +} + +func (x *ConnectAddress) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +func (x *ConnectAddress) GetPort() uint32 { + if x != nil && x.Port != nil { + return *x.Port + } + return 0 +} + +type CreateinvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Invstring string `protobuf:"bytes,1,opt,name=invstring,proto3" json:"invstring,omitempty"` + Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"` + Preimage []byte `protobuf:"bytes,3,opt,name=preimage,proto3" json:"preimage,omitempty"` +} + +func (x *CreateinvoiceRequest) Reset() { + *x = CreateinvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateinvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateinvoiceRequest) ProtoMessage() {} + +func (x *CreateinvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateinvoiceRequest.ProtoReflect.Descriptor instead. +func (*CreateinvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{36} +} + +func (x *CreateinvoiceRequest) GetInvstring() string { + if x != nil { + return x.Invstring + } + return "" +} + +func (x *CreateinvoiceRequest) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *CreateinvoiceRequest) GetPreimage() []byte { + if x != nil { + return x.Preimage + } + return nil +} + +type CreateinvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Bolt11 *string `protobuf:"bytes,2,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Bolt12 *string `protobuf:"bytes,3,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + PaymentHash []byte `protobuf:"bytes,4,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + AmountMsat *Amount `protobuf:"bytes,5,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Status CreateinvoiceResponse_CreateinvoiceStatus `protobuf:"varint,6,opt,name=status,proto3,enum=cln.CreateinvoiceResponse_CreateinvoiceStatus" json:"status,omitempty"` + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + ExpiresAt uint64 `protobuf:"varint,8,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + CreatedIndex *uint64 `protobuf:"varint,16,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + PayIndex *uint64 `protobuf:"varint,9,opt,name=pay_index,json=payIndex,proto3,oneof" json:"pay_index,omitempty"` + AmountReceivedMsat *Amount `protobuf:"bytes,10,opt,name=amount_received_msat,json=amountReceivedMsat,proto3,oneof" json:"amount_received_msat,omitempty"` + PaidAt *uint64 `protobuf:"varint,11,opt,name=paid_at,json=paidAt,proto3,oneof" json:"paid_at,omitempty"` + PaidOutpoint *CreateinvoicePaidOutpoint `protobuf:"bytes,17,opt,name=paid_outpoint,json=paidOutpoint,proto3,oneof" json:"paid_outpoint,omitempty"` + PaymentPreimage []byte `protobuf:"bytes,12,opt,name=payment_preimage,json=paymentPreimage,proto3,oneof" json:"payment_preimage,omitempty"` + LocalOfferId []byte `protobuf:"bytes,13,opt,name=local_offer_id,json=localOfferId,proto3,oneof" json:"local_offer_id,omitempty"` + InvreqPayerNote *string `protobuf:"bytes,15,opt,name=invreq_payer_note,json=invreqPayerNote,proto3,oneof" json:"invreq_payer_note,omitempty"` +} + +func (x *CreateinvoiceResponse) Reset() { + *x = CreateinvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateinvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateinvoiceResponse) ProtoMessage() {} + +func (x *CreateinvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateinvoiceResponse.ProtoReflect.Descriptor instead. +func (*CreateinvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{37} +} + +func (x *CreateinvoiceResponse) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *CreateinvoiceResponse) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *CreateinvoiceResponse) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *CreateinvoiceResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *CreateinvoiceResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *CreateinvoiceResponse) GetStatus() CreateinvoiceResponse_CreateinvoiceStatus { + if x != nil { + return x.Status + } + return CreateinvoiceResponse_PAID +} + +func (x *CreateinvoiceResponse) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *CreateinvoiceResponse) GetExpiresAt() uint64 { + if x != nil { + return x.ExpiresAt + } + return 0 +} + +func (x *CreateinvoiceResponse) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *CreateinvoiceResponse) GetPayIndex() uint64 { + if x != nil && x.PayIndex != nil { + return *x.PayIndex + } + return 0 +} + +func (x *CreateinvoiceResponse) GetAmountReceivedMsat() *Amount { + if x != nil { + return x.AmountReceivedMsat + } + return nil +} + +func (x *CreateinvoiceResponse) GetPaidAt() uint64 { + if x != nil && x.PaidAt != nil { + return *x.PaidAt + } + return 0 +} + +func (x *CreateinvoiceResponse) GetPaidOutpoint() *CreateinvoicePaidOutpoint { + if x != nil { + return x.PaidOutpoint + } + return nil +} + +func (x *CreateinvoiceResponse) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +func (x *CreateinvoiceResponse) GetLocalOfferId() []byte { + if x != nil { + return x.LocalOfferId + } + return nil +} + +func (x *CreateinvoiceResponse) GetInvreqPayerNote() string { + if x != nil && x.InvreqPayerNote != nil { + return *x.InvreqPayerNote + } + return "" +} + +type CreateinvoicePaidOutpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3,oneof" json:"txid,omitempty"` + Outnum *uint32 `protobuf:"varint,2,opt,name=outnum,proto3,oneof" json:"outnum,omitempty"` +} + +func (x *CreateinvoicePaidOutpoint) Reset() { + *x = CreateinvoicePaidOutpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateinvoicePaidOutpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateinvoicePaidOutpoint) ProtoMessage() {} + +func (x *CreateinvoicePaidOutpoint) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateinvoicePaidOutpoint.ProtoReflect.Descriptor instead. +func (*CreateinvoicePaidOutpoint) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{38} +} + +func (x *CreateinvoicePaidOutpoint) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *CreateinvoicePaidOutpoint) GetOutnum() uint32 { + if x != nil && x.Outnum != nil { + return *x.Outnum + } + return 0 +} + +type DatastoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []string `protobuf:"bytes,5,rep,name=key,proto3" json:"key,omitempty"` + String_ *string `protobuf:"bytes,6,opt,name=string,proto3,oneof" json:"string,omitempty"` + Hex []byte `protobuf:"bytes,2,opt,name=hex,proto3,oneof" json:"hex,omitempty"` + Mode *DatastoreRequest_DatastoreMode `protobuf:"varint,3,opt,name=mode,proto3,enum=cln.DatastoreRequest_DatastoreMode,oneof" json:"mode,omitempty"` + Generation *uint64 `protobuf:"varint,4,opt,name=generation,proto3,oneof" json:"generation,omitempty"` +} + +func (x *DatastoreRequest) Reset() { + *x = DatastoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DatastoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DatastoreRequest) ProtoMessage() {} + +func (x *DatastoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DatastoreRequest.ProtoReflect.Descriptor instead. +func (*DatastoreRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{39} +} + +func (x *DatastoreRequest) GetKey() []string { + if x != nil { + return x.Key + } + return nil +} + +func (x *DatastoreRequest) GetString_() string { + if x != nil && x.String_ != nil { + return *x.String_ + } + return "" +} + +func (x *DatastoreRequest) GetHex() []byte { + if x != nil { + return x.Hex + } + return nil +} + +func (x *DatastoreRequest) GetMode() DatastoreRequest_DatastoreMode { + if x != nil && x.Mode != nil { + return *x.Mode + } + return DatastoreRequest_MUST_CREATE +} + +func (x *DatastoreRequest) GetGeneration() uint64 { + if x != nil && x.Generation != nil { + return *x.Generation + } + return 0 +} + +type DatastoreResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []string `protobuf:"bytes,5,rep,name=key,proto3" json:"key,omitempty"` + Generation *uint64 `protobuf:"varint,2,opt,name=generation,proto3,oneof" json:"generation,omitempty"` + Hex []byte `protobuf:"bytes,3,opt,name=hex,proto3,oneof" json:"hex,omitempty"` + String_ *string `protobuf:"bytes,4,opt,name=string,proto3,oneof" json:"string,omitempty"` +} + +func (x *DatastoreResponse) Reset() { + *x = DatastoreResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DatastoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DatastoreResponse) ProtoMessage() {} + +func (x *DatastoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DatastoreResponse.ProtoReflect.Descriptor instead. +func (*DatastoreResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{40} +} + +func (x *DatastoreResponse) GetKey() []string { + if x != nil { + return x.Key + } + return nil +} + +func (x *DatastoreResponse) GetGeneration() uint64 { + if x != nil && x.Generation != nil { + return *x.Generation + } + return 0 +} + +func (x *DatastoreResponse) GetHex() []byte { + if x != nil { + return x.Hex + } + return nil +} + +func (x *DatastoreResponse) GetString_() string { + if x != nil && x.String_ != nil { + return *x.String_ + } + return "" +} + +type DatastoreusageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DatastoreusageRequest) Reset() { + *x = DatastoreusageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DatastoreusageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DatastoreusageRequest) ProtoMessage() {} + +func (x *DatastoreusageRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DatastoreusageRequest.ProtoReflect.Descriptor instead. +func (*DatastoreusageRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{41} +} + +type DatastoreusageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Datastoreusage *DatastoreusageDatastoreusage `protobuf:"bytes,1,opt,name=datastoreusage,proto3,oneof" json:"datastoreusage,omitempty"` +} + +func (x *DatastoreusageResponse) Reset() { + *x = DatastoreusageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DatastoreusageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DatastoreusageResponse) ProtoMessage() {} + +func (x *DatastoreusageResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DatastoreusageResponse.ProtoReflect.Descriptor instead. +func (*DatastoreusageResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{42} +} + +func (x *DatastoreusageResponse) GetDatastoreusage() *DatastoreusageDatastoreusage { + if x != nil { + return x.Datastoreusage + } + return nil +} + +type DatastoreusageDatastoreusage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key *string `protobuf:"bytes,1,opt,name=key,proto3,oneof" json:"key,omitempty"` + TotalBytes *uint64 `protobuf:"varint,2,opt,name=total_bytes,json=totalBytes,proto3,oneof" json:"total_bytes,omitempty"` +} + +func (x *DatastoreusageDatastoreusage) Reset() { + *x = DatastoreusageDatastoreusage{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DatastoreusageDatastoreusage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DatastoreusageDatastoreusage) ProtoMessage() {} + +func (x *DatastoreusageDatastoreusage) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DatastoreusageDatastoreusage.ProtoReflect.Descriptor instead. +func (*DatastoreusageDatastoreusage) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{43} +} + +func (x *DatastoreusageDatastoreusage) GetKey() string { + if x != nil && x.Key != nil { + return *x.Key + } + return "" +} + +func (x *DatastoreusageDatastoreusage) GetTotalBytes() uint64 { + if x != nil && x.TotalBytes != nil { + return *x.TotalBytes + } + return 0 +} + +type CreateonionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hops []*CreateonionHops `protobuf:"bytes,1,rep,name=hops,proto3" json:"hops,omitempty"` + Assocdata []byte `protobuf:"bytes,2,opt,name=assocdata,proto3" json:"assocdata,omitempty"` + SessionKey []byte `protobuf:"bytes,3,opt,name=session_key,json=sessionKey,proto3,oneof" json:"session_key,omitempty"` + OnionSize *uint32 `protobuf:"varint,4,opt,name=onion_size,json=onionSize,proto3,oneof" json:"onion_size,omitempty"` +} + +func (x *CreateonionRequest) Reset() { + *x = CreateonionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateonionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateonionRequest) ProtoMessage() {} + +func (x *CreateonionRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateonionRequest.ProtoReflect.Descriptor instead. +func (*CreateonionRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{44} +} + +func (x *CreateonionRequest) GetHops() []*CreateonionHops { + if x != nil { + return x.Hops + } + return nil +} + +func (x *CreateonionRequest) GetAssocdata() []byte { + if x != nil { + return x.Assocdata + } + return nil +} + +func (x *CreateonionRequest) GetSessionKey() []byte { + if x != nil { + return x.SessionKey + } + return nil +} + +func (x *CreateonionRequest) GetOnionSize() uint32 { + if x != nil && x.OnionSize != nil { + return *x.OnionSize + } + return 0 +} + +type CreateonionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Onion []byte `protobuf:"bytes,1,opt,name=onion,proto3" json:"onion,omitempty"` + SharedSecrets [][]byte `protobuf:"bytes,2,rep,name=shared_secrets,json=sharedSecrets,proto3" json:"shared_secrets,omitempty"` +} + +func (x *CreateonionResponse) Reset() { + *x = CreateonionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateonionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateonionResponse) ProtoMessage() {} + +func (x *CreateonionResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateonionResponse.ProtoReflect.Descriptor instead. +func (*CreateonionResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{45} +} + +func (x *CreateonionResponse) GetOnion() []byte { + if x != nil { + return x.Onion + } + return nil +} + +func (x *CreateonionResponse) GetSharedSecrets() [][]byte { + if x != nil { + return x.SharedSecrets + } + return nil +} + +type CreateonionHops struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` + Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` +} + +func (x *CreateonionHops) Reset() { + *x = CreateonionHops{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateonionHops) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateonionHops) ProtoMessage() {} + +func (x *CreateonionHops) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateonionHops.ProtoReflect.Descriptor instead. +func (*CreateonionHops) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{46} +} + +func (x *CreateonionHops) GetPubkey() []byte { + if x != nil { + return x.Pubkey + } + return nil +} + +func (x *CreateonionHops) GetPayload() []byte { + if x != nil { + return x.Payload + } + return nil +} + +type DeldatastoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []string `protobuf:"bytes,3,rep,name=key,proto3" json:"key,omitempty"` + Generation *uint64 `protobuf:"varint,2,opt,name=generation,proto3,oneof" json:"generation,omitempty"` +} + +func (x *DeldatastoreRequest) Reset() { + *x = DeldatastoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeldatastoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeldatastoreRequest) ProtoMessage() {} + +func (x *DeldatastoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeldatastoreRequest.ProtoReflect.Descriptor instead. +func (*DeldatastoreRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{47} +} + +func (x *DeldatastoreRequest) GetKey() []string { + if x != nil { + return x.Key + } + return nil +} + +func (x *DeldatastoreRequest) GetGeneration() uint64 { + if x != nil && x.Generation != nil { + return *x.Generation + } + return 0 +} + +type DeldatastoreResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []string `protobuf:"bytes,5,rep,name=key,proto3" json:"key,omitempty"` + Generation *uint64 `protobuf:"varint,2,opt,name=generation,proto3,oneof" json:"generation,omitempty"` + Hex []byte `protobuf:"bytes,3,opt,name=hex,proto3,oneof" json:"hex,omitempty"` + String_ *string `protobuf:"bytes,4,opt,name=string,proto3,oneof" json:"string,omitempty"` +} + +func (x *DeldatastoreResponse) Reset() { + *x = DeldatastoreResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeldatastoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeldatastoreResponse) ProtoMessage() {} + +func (x *DeldatastoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeldatastoreResponse.ProtoReflect.Descriptor instead. +func (*DeldatastoreResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{48} +} + +func (x *DeldatastoreResponse) GetKey() []string { + if x != nil { + return x.Key + } + return nil +} + +func (x *DeldatastoreResponse) GetGeneration() uint64 { + if x != nil && x.Generation != nil { + return *x.Generation + } + return 0 +} + +func (x *DeldatastoreResponse) GetHex() []byte { + if x != nil { + return x.Hex + } + return nil +} + +func (x *DeldatastoreResponse) GetString_() string { + if x != nil && x.String_ != nil { + return *x.String_ + } + return "" +} + +type DelexpiredinvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Maxexpirytime *uint64 `protobuf:"varint,1,opt,name=maxexpirytime,proto3,oneof" json:"maxexpirytime,omitempty"` +} + +func (x *DelexpiredinvoiceRequest) Reset() { + *x = DelexpiredinvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelexpiredinvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelexpiredinvoiceRequest) ProtoMessage() {} + +func (x *DelexpiredinvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelexpiredinvoiceRequest.ProtoReflect.Descriptor instead. +func (*DelexpiredinvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{49} +} + +func (x *DelexpiredinvoiceRequest) GetMaxexpirytime() uint64 { + if x != nil && x.Maxexpirytime != nil { + return *x.Maxexpirytime + } + return 0 +} + +type DelexpiredinvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DelexpiredinvoiceResponse) Reset() { + *x = DelexpiredinvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelexpiredinvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelexpiredinvoiceResponse) ProtoMessage() {} + +func (x *DelexpiredinvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelexpiredinvoiceResponse.ProtoReflect.Descriptor instead. +func (*DelexpiredinvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{50} +} + +type DelinvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Status DelinvoiceRequest_DelinvoiceStatus `protobuf:"varint,2,opt,name=status,proto3,enum=cln.DelinvoiceRequest_DelinvoiceStatus" json:"status,omitempty"` + Desconly *bool `protobuf:"varint,3,opt,name=desconly,proto3,oneof" json:"desconly,omitempty"` +} + +func (x *DelinvoiceRequest) Reset() { + *x = DelinvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelinvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelinvoiceRequest) ProtoMessage() {} + +func (x *DelinvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelinvoiceRequest.ProtoReflect.Descriptor instead. +func (*DelinvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{51} +} + +func (x *DelinvoiceRequest) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *DelinvoiceRequest) GetStatus() DelinvoiceRequest_DelinvoiceStatus { + if x != nil { + return x.Status + } + return DelinvoiceRequest_PAID +} + +func (x *DelinvoiceRequest) GetDesconly() bool { + if x != nil && x.Desconly != nil { + return *x.Desconly + } + return false +} + +type DelinvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Bolt11 *string `protobuf:"bytes,2,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Bolt12 *string `protobuf:"bytes,3,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + AmountMsat *Amount `protobuf:"bytes,4,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Description *string `protobuf:"bytes,5,opt,name=description,proto3,oneof" json:"description,omitempty"` + PaymentHash []byte `protobuf:"bytes,6,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + CreatedIndex *uint64 `protobuf:"varint,12,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,13,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + Status DelinvoiceResponse_DelinvoiceStatus `protobuf:"varint,7,opt,name=status,proto3,enum=cln.DelinvoiceResponse_DelinvoiceStatus" json:"status,omitempty"` + ExpiresAt uint64 `protobuf:"varint,8,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + LocalOfferId []byte `protobuf:"bytes,9,opt,name=local_offer_id,json=localOfferId,proto3,oneof" json:"local_offer_id,omitempty"` + InvreqPayerNote *string `protobuf:"bytes,11,opt,name=invreq_payer_note,json=invreqPayerNote,proto3,oneof" json:"invreq_payer_note,omitempty"` +} + +func (x *DelinvoiceResponse) Reset() { + *x = DelinvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelinvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelinvoiceResponse) ProtoMessage() {} + +func (x *DelinvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelinvoiceResponse.ProtoReflect.Descriptor instead. +func (*DelinvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{52} +} + +func (x *DelinvoiceResponse) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *DelinvoiceResponse) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *DelinvoiceResponse) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *DelinvoiceResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *DelinvoiceResponse) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *DelinvoiceResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *DelinvoiceResponse) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *DelinvoiceResponse) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *DelinvoiceResponse) GetStatus() DelinvoiceResponse_DelinvoiceStatus { + if x != nil { + return x.Status + } + return DelinvoiceResponse_PAID +} + +func (x *DelinvoiceResponse) GetExpiresAt() uint64 { + if x != nil { + return x.ExpiresAt + } + return 0 +} + +func (x *DelinvoiceResponse) GetLocalOfferId() []byte { + if x != nil { + return x.LocalOfferId + } + return nil +} + +func (x *DelinvoiceResponse) GetInvreqPayerNote() string { + if x != nil && x.InvreqPayerNote != nil { + return *x.InvreqPayerNote + } + return "" +} + +type InvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AmountMsat *AmountOrAny `protobuf:"bytes,10,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Label string `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"` + Expiry *uint64 `protobuf:"varint,7,opt,name=expiry,proto3,oneof" json:"expiry,omitempty"` + Fallbacks []string `protobuf:"bytes,4,rep,name=fallbacks,proto3" json:"fallbacks,omitempty"` + Preimage []byte `protobuf:"bytes,5,opt,name=preimage,proto3,oneof" json:"preimage,omitempty"` + Cltv *uint32 `protobuf:"varint,6,opt,name=cltv,proto3,oneof" json:"cltv,omitempty"` + Deschashonly *bool `protobuf:"varint,9,opt,name=deschashonly,proto3,oneof" json:"deschashonly,omitempty"` +} + +func (x *InvoiceRequest) Reset() { + *x = InvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvoiceRequest) ProtoMessage() {} + +func (x *InvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InvoiceRequest.ProtoReflect.Descriptor instead. +func (*InvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{53} +} + +func (x *InvoiceRequest) GetAmountMsat() *AmountOrAny { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *InvoiceRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *InvoiceRequest) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *InvoiceRequest) GetExpiry() uint64 { + if x != nil && x.Expiry != nil { + return *x.Expiry + } + return 0 +} + +func (x *InvoiceRequest) GetFallbacks() []string { + if x != nil { + return x.Fallbacks + } + return nil +} + +func (x *InvoiceRequest) GetPreimage() []byte { + if x != nil { + return x.Preimage + } + return nil +} + +func (x *InvoiceRequest) GetCltv() uint32 { + if x != nil && x.Cltv != nil { + return *x.Cltv + } + return 0 +} + +func (x *InvoiceRequest) GetDeschashonly() bool { + if x != nil && x.Deschashonly != nil { + return *x.Deschashonly + } + return false +} + +type InvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bolt11 string `protobuf:"bytes,1,opt,name=bolt11,proto3" json:"bolt11,omitempty"` + PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + PaymentSecret []byte `protobuf:"bytes,3,opt,name=payment_secret,json=paymentSecret,proto3" json:"payment_secret,omitempty"` + ExpiresAt uint64 `protobuf:"varint,4,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + CreatedIndex *uint64 `protobuf:"varint,10,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + WarningCapacity *string `protobuf:"bytes,5,opt,name=warning_capacity,json=warningCapacity,proto3,oneof" json:"warning_capacity,omitempty"` + WarningOffline *string `protobuf:"bytes,6,opt,name=warning_offline,json=warningOffline,proto3,oneof" json:"warning_offline,omitempty"` + WarningDeadends *string `protobuf:"bytes,7,opt,name=warning_deadends,json=warningDeadends,proto3,oneof" json:"warning_deadends,omitempty"` + WarningPrivateUnused *string `protobuf:"bytes,8,opt,name=warning_private_unused,json=warningPrivateUnused,proto3,oneof" json:"warning_private_unused,omitempty"` + WarningMpp *string `protobuf:"bytes,9,opt,name=warning_mpp,json=warningMpp,proto3,oneof" json:"warning_mpp,omitempty"` +} + +func (x *InvoiceResponse) Reset() { + *x = InvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvoiceResponse) ProtoMessage() {} + +func (x *InvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InvoiceResponse.ProtoReflect.Descriptor instead. +func (*InvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{54} +} + +func (x *InvoiceResponse) GetBolt11() string { + if x != nil { + return x.Bolt11 + } + return "" +} + +func (x *InvoiceResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *InvoiceResponse) GetPaymentSecret() []byte { + if x != nil { + return x.PaymentSecret + } + return nil +} + +func (x *InvoiceResponse) GetExpiresAt() uint64 { + if x != nil { + return x.ExpiresAt + } + return 0 +} + +func (x *InvoiceResponse) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *InvoiceResponse) GetWarningCapacity() string { + if x != nil && x.WarningCapacity != nil { + return *x.WarningCapacity + } + return "" +} + +func (x *InvoiceResponse) GetWarningOffline() string { + if x != nil && x.WarningOffline != nil { + return *x.WarningOffline + } + return "" +} + +func (x *InvoiceResponse) GetWarningDeadends() string { + if x != nil && x.WarningDeadends != nil { + return *x.WarningDeadends + } + return "" +} + +func (x *InvoiceResponse) GetWarningPrivateUnused() string { + if x != nil && x.WarningPrivateUnused != nil { + return *x.WarningPrivateUnused + } + return "" +} + +func (x *InvoiceResponse) GetWarningMpp() string { + if x != nil && x.WarningMpp != nil { + return *x.WarningMpp + } + return "" +} + +type ListdatastoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []string `protobuf:"bytes,2,rep,name=key,proto3" json:"key,omitempty"` +} + +func (x *ListdatastoreRequest) Reset() { + *x = ListdatastoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListdatastoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListdatastoreRequest) ProtoMessage() {} + +func (x *ListdatastoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListdatastoreRequest.ProtoReflect.Descriptor instead. +func (*ListdatastoreRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{55} +} + +func (x *ListdatastoreRequest) GetKey() []string { + if x != nil { + return x.Key + } + return nil +} + +type ListdatastoreResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Datastore []*ListdatastoreDatastore `protobuf:"bytes,1,rep,name=datastore,proto3" json:"datastore,omitempty"` +} + +func (x *ListdatastoreResponse) Reset() { + *x = ListdatastoreResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListdatastoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListdatastoreResponse) ProtoMessage() {} + +func (x *ListdatastoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListdatastoreResponse.ProtoReflect.Descriptor instead. +func (*ListdatastoreResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{56} +} + +func (x *ListdatastoreResponse) GetDatastore() []*ListdatastoreDatastore { + if x != nil { + return x.Datastore + } + return nil +} + +type ListdatastoreDatastore struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []string `protobuf:"bytes,1,rep,name=key,proto3" json:"key,omitempty"` + Generation *uint64 `protobuf:"varint,2,opt,name=generation,proto3,oneof" json:"generation,omitempty"` + Hex []byte `protobuf:"bytes,3,opt,name=hex,proto3,oneof" json:"hex,omitempty"` + String_ *string `protobuf:"bytes,4,opt,name=string,proto3,oneof" json:"string,omitempty"` +} + +func (x *ListdatastoreDatastore) Reset() { + *x = ListdatastoreDatastore{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListdatastoreDatastore) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListdatastoreDatastore) ProtoMessage() {} + +func (x *ListdatastoreDatastore) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListdatastoreDatastore.ProtoReflect.Descriptor instead. +func (*ListdatastoreDatastore) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{57} +} + +func (x *ListdatastoreDatastore) GetKey() []string { + if x != nil { + return x.Key + } + return nil +} + +func (x *ListdatastoreDatastore) GetGeneration() uint64 { + if x != nil && x.Generation != nil { + return *x.Generation + } + return 0 +} + +func (x *ListdatastoreDatastore) GetHex() []byte { + if x != nil { + return x.Hex + } + return nil +} + +func (x *ListdatastoreDatastore) GetString_() string { + if x != nil && x.String_ != nil { + return *x.String_ + } + return "" +} + +type ListinvoicesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label *string `protobuf:"bytes,1,opt,name=label,proto3,oneof" json:"label,omitempty"` + Invstring *string `protobuf:"bytes,2,opt,name=invstring,proto3,oneof" json:"invstring,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3,oneof" json:"payment_hash,omitempty"` + OfferId *string `protobuf:"bytes,4,opt,name=offer_id,json=offerId,proto3,oneof" json:"offer_id,omitempty"` + Index *ListinvoicesRequest_ListinvoicesIndex `protobuf:"varint,5,opt,name=index,proto3,enum=cln.ListinvoicesRequest_ListinvoicesIndex,oneof" json:"index,omitempty"` + Start *uint64 `protobuf:"varint,6,opt,name=start,proto3,oneof" json:"start,omitempty"` + Limit *uint32 `protobuf:"varint,7,opt,name=limit,proto3,oneof" json:"limit,omitempty"` +} + +func (x *ListinvoicesRequest) Reset() { + *x = ListinvoicesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListinvoicesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListinvoicesRequest) ProtoMessage() {} + +func (x *ListinvoicesRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListinvoicesRequest.ProtoReflect.Descriptor instead. +func (*ListinvoicesRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{58} +} + +func (x *ListinvoicesRequest) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *ListinvoicesRequest) GetInvstring() string { + if x != nil && x.Invstring != nil { + return *x.Invstring + } + return "" +} + +func (x *ListinvoicesRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListinvoicesRequest) GetOfferId() string { + if x != nil && x.OfferId != nil { + return *x.OfferId + } + return "" +} + +func (x *ListinvoicesRequest) GetIndex() ListinvoicesRequest_ListinvoicesIndex { + if x != nil && x.Index != nil { + return *x.Index + } + return ListinvoicesRequest_CREATED +} + +func (x *ListinvoicesRequest) GetStart() uint64 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *ListinvoicesRequest) GetLimit() uint32 { + if x != nil && x.Limit != nil { + return *x.Limit + } + return 0 +} + +type ListinvoicesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Invoices []*ListinvoicesInvoices `protobuf:"bytes,1,rep,name=invoices,proto3" json:"invoices,omitempty"` +} + +func (x *ListinvoicesResponse) Reset() { + *x = ListinvoicesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListinvoicesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListinvoicesResponse) ProtoMessage() {} + +func (x *ListinvoicesResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListinvoicesResponse.ProtoReflect.Descriptor instead. +func (*ListinvoicesResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{59} +} + +func (x *ListinvoicesResponse) GetInvoices() []*ListinvoicesInvoices { + if x != nil { + return x.Invoices + } + return nil +} + +type ListinvoicesInvoices struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Status ListinvoicesInvoices_ListinvoicesInvoicesStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cln.ListinvoicesInvoices_ListinvoicesInvoicesStatus" json:"status,omitempty"` + ExpiresAt uint64 `protobuf:"varint,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + AmountMsat *Amount `protobuf:"bytes,6,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Bolt11 *string `protobuf:"bytes,7,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Bolt12 *string `protobuf:"bytes,8,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + LocalOfferId []byte `protobuf:"bytes,9,opt,name=local_offer_id,json=localOfferId,proto3,oneof" json:"local_offer_id,omitempty"` + InvreqPayerNote *string `protobuf:"bytes,15,opt,name=invreq_payer_note,json=invreqPayerNote,proto3,oneof" json:"invreq_payer_note,omitempty"` + CreatedIndex *uint64 `protobuf:"varint,16,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,17,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + PayIndex *uint64 `protobuf:"varint,11,opt,name=pay_index,json=payIndex,proto3,oneof" json:"pay_index,omitempty"` + AmountReceivedMsat *Amount `protobuf:"bytes,12,opt,name=amount_received_msat,json=amountReceivedMsat,proto3,oneof" json:"amount_received_msat,omitempty"` + PaidAt *uint64 `protobuf:"varint,13,opt,name=paid_at,json=paidAt,proto3,oneof" json:"paid_at,omitempty"` + PaidOutpoint *ListinvoicesInvoicesPaidOutpoint `protobuf:"bytes,18,opt,name=paid_outpoint,json=paidOutpoint,proto3,oneof" json:"paid_outpoint,omitempty"` + PaymentPreimage []byte `protobuf:"bytes,14,opt,name=payment_preimage,json=paymentPreimage,proto3,oneof" json:"payment_preimage,omitempty"` +} + +func (x *ListinvoicesInvoices) Reset() { + *x = ListinvoicesInvoices{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListinvoicesInvoices) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListinvoicesInvoices) ProtoMessage() {} + +func (x *ListinvoicesInvoices) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListinvoicesInvoices.ProtoReflect.Descriptor instead. +func (*ListinvoicesInvoices) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{60} +} + +func (x *ListinvoicesInvoices) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *ListinvoicesInvoices) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *ListinvoicesInvoices) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListinvoicesInvoices) GetStatus() ListinvoicesInvoices_ListinvoicesInvoicesStatus { + if x != nil { + return x.Status + } + return ListinvoicesInvoices_UNPAID +} + +func (x *ListinvoicesInvoices) GetExpiresAt() uint64 { + if x != nil { + return x.ExpiresAt + } + return 0 +} + +func (x *ListinvoicesInvoices) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListinvoicesInvoices) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *ListinvoicesInvoices) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *ListinvoicesInvoices) GetLocalOfferId() []byte { + if x != nil { + return x.LocalOfferId + } + return nil +} + +func (x *ListinvoicesInvoices) GetInvreqPayerNote() string { + if x != nil && x.InvreqPayerNote != nil { + return *x.InvreqPayerNote + } + return "" +} + +func (x *ListinvoicesInvoices) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *ListinvoicesInvoices) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *ListinvoicesInvoices) GetPayIndex() uint64 { + if x != nil && x.PayIndex != nil { + return *x.PayIndex + } + return 0 +} + +func (x *ListinvoicesInvoices) GetAmountReceivedMsat() *Amount { + if x != nil { + return x.AmountReceivedMsat + } + return nil +} + +func (x *ListinvoicesInvoices) GetPaidAt() uint64 { + if x != nil && x.PaidAt != nil { + return *x.PaidAt + } + return 0 +} + +func (x *ListinvoicesInvoices) GetPaidOutpoint() *ListinvoicesInvoicesPaidOutpoint { + if x != nil { + return x.PaidOutpoint + } + return nil +} + +func (x *ListinvoicesInvoices) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +type ListinvoicesInvoicesPaidOutpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3,oneof" json:"txid,omitempty"` + Outnum *uint32 `protobuf:"varint,2,opt,name=outnum,proto3,oneof" json:"outnum,omitempty"` +} + +func (x *ListinvoicesInvoicesPaidOutpoint) Reset() { + *x = ListinvoicesInvoicesPaidOutpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListinvoicesInvoicesPaidOutpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListinvoicesInvoicesPaidOutpoint) ProtoMessage() {} + +func (x *ListinvoicesInvoicesPaidOutpoint) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListinvoicesInvoicesPaidOutpoint.ProtoReflect.Descriptor instead. +func (*ListinvoicesInvoicesPaidOutpoint) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{61} +} + +func (x *ListinvoicesInvoicesPaidOutpoint) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *ListinvoicesInvoicesPaidOutpoint) GetOutnum() uint32 { + if x != nil && x.Outnum != nil { + return *x.Outnum + } + return 0 +} + +type SendonionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Onion []byte `protobuf:"bytes,1,opt,name=onion,proto3" json:"onion,omitempty"` + FirstHop *SendonionFirstHop `protobuf:"bytes,2,opt,name=first_hop,json=firstHop,proto3" json:"first_hop,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Label *string `protobuf:"bytes,4,opt,name=label,proto3,oneof" json:"label,omitempty"` + SharedSecrets [][]byte `protobuf:"bytes,5,rep,name=shared_secrets,json=sharedSecrets,proto3" json:"shared_secrets,omitempty"` + Partid *uint32 `protobuf:"varint,6,opt,name=partid,proto3,oneof" json:"partid,omitempty"` + Bolt11 *string `protobuf:"bytes,7,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + AmountMsat *Amount `protobuf:"bytes,12,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Destination []byte `protobuf:"bytes,9,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + Localinvreqid []byte `protobuf:"bytes,13,opt,name=localinvreqid,proto3,oneof" json:"localinvreqid,omitempty"` + Groupid *uint64 `protobuf:"varint,11,opt,name=groupid,proto3,oneof" json:"groupid,omitempty"` +} + +func (x *SendonionRequest) Reset() { + *x = SendonionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendonionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendonionRequest) ProtoMessage() {} + +func (x *SendonionRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendonionRequest.ProtoReflect.Descriptor instead. +func (*SendonionRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{62} +} + +func (x *SendonionRequest) GetOnion() []byte { + if x != nil { + return x.Onion + } + return nil +} + +func (x *SendonionRequest) GetFirstHop() *SendonionFirstHop { + if x != nil { + return x.FirstHop + } + return nil +} + +func (x *SendonionRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *SendonionRequest) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *SendonionRequest) GetSharedSecrets() [][]byte { + if x != nil { + return x.SharedSecrets + } + return nil +} + +func (x *SendonionRequest) GetPartid() uint32 { + if x != nil && x.Partid != nil { + return *x.Partid + } + return 0 +} + +func (x *SendonionRequest) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *SendonionRequest) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *SendonionRequest) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *SendonionRequest) GetLocalinvreqid() []byte { + if x != nil { + return x.Localinvreqid + } + return nil +} + +func (x *SendonionRequest) GetGroupid() uint64 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +type SendonionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedIndex *uint64 `protobuf:"varint,14,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Status SendonionResponse_SendonionStatus `protobuf:"varint,3,opt,name=status,proto3,enum=cln.SendonionResponse_SendonionStatus" json:"status,omitempty"` + AmountMsat *Amount `protobuf:"bytes,4,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Destination []byte `protobuf:"bytes,5,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + CreatedAt uint64 `protobuf:"varint,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + AmountSentMsat *Amount `protobuf:"bytes,7,opt,name=amount_sent_msat,json=amountSentMsat,proto3" json:"amount_sent_msat,omitempty"` + Label *string `protobuf:"bytes,8,opt,name=label,proto3,oneof" json:"label,omitempty"` + Bolt11 *string `protobuf:"bytes,9,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Bolt12 *string `protobuf:"bytes,10,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + Partid *uint64 `protobuf:"varint,13,opt,name=partid,proto3,oneof" json:"partid,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,15,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + PaymentPreimage []byte `protobuf:"bytes,11,opt,name=payment_preimage,json=paymentPreimage,proto3,oneof" json:"payment_preimage,omitempty"` + Message *string `protobuf:"bytes,12,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *SendonionResponse) Reset() { + *x = SendonionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendonionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendonionResponse) ProtoMessage() {} + +func (x *SendonionResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendonionResponse.ProtoReflect.Descriptor instead. +func (*SendonionResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{63} +} + +func (x *SendonionResponse) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *SendonionResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SendonionResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *SendonionResponse) GetStatus() SendonionResponse_SendonionStatus { + if x != nil { + return x.Status + } + return SendonionResponse_PENDING +} + +func (x *SendonionResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *SendonionResponse) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *SendonionResponse) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *SendonionResponse) GetAmountSentMsat() *Amount { + if x != nil { + return x.AmountSentMsat + } + return nil +} + +func (x *SendonionResponse) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *SendonionResponse) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *SendonionResponse) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *SendonionResponse) GetPartid() uint64 { + if x != nil && x.Partid != nil { + return *x.Partid + } + return 0 +} + +func (x *SendonionResponse) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *SendonionResponse) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +func (x *SendonionResponse) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type SendonionFirstHop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + AmountMsat *Amount `protobuf:"bytes,2,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Delay uint32 `protobuf:"varint,3,opt,name=delay,proto3" json:"delay,omitempty"` +} + +func (x *SendonionFirstHop) Reset() { + *x = SendonionFirstHop{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendonionFirstHop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendonionFirstHop) ProtoMessage() {} + +func (x *SendonionFirstHop) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendonionFirstHop.ProtoReflect.Descriptor instead. +func (*SendonionFirstHop) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{64} +} + +func (x *SendonionFirstHop) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *SendonionFirstHop) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *SendonionFirstHop) GetDelay() uint32 { + if x != nil { + return x.Delay + } + return 0 +} + +type ListsendpaysRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bolt11 *string `protobuf:"bytes,1,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3,oneof" json:"payment_hash,omitempty"` + Status *ListsendpaysRequest_ListsendpaysStatus `protobuf:"varint,3,opt,name=status,proto3,enum=cln.ListsendpaysRequest_ListsendpaysStatus,oneof" json:"status,omitempty"` + Index *ListsendpaysRequest_ListsendpaysIndex `protobuf:"varint,4,opt,name=index,proto3,enum=cln.ListsendpaysRequest_ListsendpaysIndex,oneof" json:"index,omitempty"` + Start *uint64 `protobuf:"varint,5,opt,name=start,proto3,oneof" json:"start,omitempty"` + Limit *uint32 `protobuf:"varint,6,opt,name=limit,proto3,oneof" json:"limit,omitempty"` +} + +func (x *ListsendpaysRequest) Reset() { + *x = ListsendpaysRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListsendpaysRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListsendpaysRequest) ProtoMessage() {} + +func (x *ListsendpaysRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListsendpaysRequest.ProtoReflect.Descriptor instead. +func (*ListsendpaysRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{65} +} + +func (x *ListsendpaysRequest) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *ListsendpaysRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListsendpaysRequest) GetStatus() ListsendpaysRequest_ListsendpaysStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return ListsendpaysRequest_PENDING +} + +func (x *ListsendpaysRequest) GetIndex() ListsendpaysRequest_ListsendpaysIndex { + if x != nil && x.Index != nil { + return *x.Index + } + return ListsendpaysRequest_CREATED +} + +func (x *ListsendpaysRequest) GetStart() uint64 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *ListsendpaysRequest) GetLimit() uint32 { + if x != nil && x.Limit != nil { + return *x.Limit + } + return 0 +} + +type ListsendpaysResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Payments []*ListsendpaysPayments `protobuf:"bytes,1,rep,name=payments,proto3" json:"payments,omitempty"` +} + +func (x *ListsendpaysResponse) Reset() { + *x = ListsendpaysResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListsendpaysResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListsendpaysResponse) ProtoMessage() {} + +func (x *ListsendpaysResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListsendpaysResponse.ProtoReflect.Descriptor instead. +func (*ListsendpaysResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{66} +} + +func (x *ListsendpaysResponse) GetPayments() []*ListsendpaysPayments { + if x != nil { + return x.Payments + } + return nil +} + +type ListsendpaysPayments struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedIndex *uint64 `protobuf:"varint,16,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Groupid uint64 `protobuf:"varint,2,opt,name=groupid,proto3" json:"groupid,omitempty"` + Partid *uint64 `protobuf:"varint,15,opt,name=partid,proto3,oneof" json:"partid,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,17,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + Status ListsendpaysPayments_ListsendpaysPaymentsStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cln.ListsendpaysPayments_ListsendpaysPaymentsStatus" json:"status,omitempty"` + AmountMsat *Amount `protobuf:"bytes,5,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Destination []byte `protobuf:"bytes,6,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + CreatedAt uint64 `protobuf:"varint,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + AmountSentMsat *Amount `protobuf:"bytes,8,opt,name=amount_sent_msat,json=amountSentMsat,proto3" json:"amount_sent_msat,omitempty"` + Label *string `protobuf:"bytes,9,opt,name=label,proto3,oneof" json:"label,omitempty"` + Bolt11 *string `protobuf:"bytes,10,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Description *string `protobuf:"bytes,14,opt,name=description,proto3,oneof" json:"description,omitempty"` + Bolt12 *string `protobuf:"bytes,11,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + PaymentPreimage []byte `protobuf:"bytes,12,opt,name=payment_preimage,json=paymentPreimage,proto3,oneof" json:"payment_preimage,omitempty"` + Erroronion []byte `protobuf:"bytes,13,opt,name=erroronion,proto3,oneof" json:"erroronion,omitempty"` +} + +func (x *ListsendpaysPayments) Reset() { + *x = ListsendpaysPayments{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListsendpaysPayments) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListsendpaysPayments) ProtoMessage() {} + +func (x *ListsendpaysPayments) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListsendpaysPayments.ProtoReflect.Descriptor instead. +func (*ListsendpaysPayments) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{67} +} + +func (x *ListsendpaysPayments) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *ListsendpaysPayments) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ListsendpaysPayments) GetGroupid() uint64 { + if x != nil { + return x.Groupid + } + return 0 +} + +func (x *ListsendpaysPayments) GetPartid() uint64 { + if x != nil && x.Partid != nil { + return *x.Partid + } + return 0 +} + +func (x *ListsendpaysPayments) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListsendpaysPayments) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *ListsendpaysPayments) GetStatus() ListsendpaysPayments_ListsendpaysPaymentsStatus { + if x != nil { + return x.Status + } + return ListsendpaysPayments_PENDING +} + +func (x *ListsendpaysPayments) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListsendpaysPayments) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *ListsendpaysPayments) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *ListsendpaysPayments) GetAmountSentMsat() *Amount { + if x != nil { + return x.AmountSentMsat + } + return nil +} + +func (x *ListsendpaysPayments) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *ListsendpaysPayments) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *ListsendpaysPayments) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *ListsendpaysPayments) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *ListsendpaysPayments) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +func (x *ListsendpaysPayments) GetErroronion() []byte { + if x != nil { + return x.Erroronion + } + return nil +} + +type ListtransactionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListtransactionsRequest) Reset() { + *x = ListtransactionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListtransactionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListtransactionsRequest) ProtoMessage() {} + +func (x *ListtransactionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListtransactionsRequest.ProtoReflect.Descriptor instead. +func (*ListtransactionsRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{68} +} + +type ListtransactionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transactions []*ListtransactionsTransactions `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"` +} + +func (x *ListtransactionsResponse) Reset() { + *x = ListtransactionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListtransactionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListtransactionsResponse) ProtoMessage() {} + +func (x *ListtransactionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListtransactionsResponse.ProtoReflect.Descriptor instead. +func (*ListtransactionsResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{69} +} + +func (x *ListtransactionsResponse) GetTransactions() []*ListtransactionsTransactions { + if x != nil { + return x.Transactions + } + return nil +} + +type ListtransactionsTransactions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Rawtx []byte `protobuf:"bytes,2,opt,name=rawtx,proto3" json:"rawtx,omitempty"` + Blockheight uint32 `protobuf:"varint,3,opt,name=blockheight,proto3" json:"blockheight,omitempty"` + Txindex uint32 `protobuf:"varint,4,opt,name=txindex,proto3" json:"txindex,omitempty"` + Locktime uint32 `protobuf:"varint,7,opt,name=locktime,proto3" json:"locktime,omitempty"` + Version uint32 `protobuf:"varint,8,opt,name=version,proto3" json:"version,omitempty"` + Inputs []*ListtransactionsTransactionsInputs `protobuf:"bytes,9,rep,name=inputs,proto3" json:"inputs,omitempty"` + Outputs []*ListtransactionsTransactionsOutputs `protobuf:"bytes,10,rep,name=outputs,proto3" json:"outputs,omitempty"` +} + +func (x *ListtransactionsTransactions) Reset() { + *x = ListtransactionsTransactions{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListtransactionsTransactions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListtransactionsTransactions) ProtoMessage() {} + +func (x *ListtransactionsTransactions) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListtransactionsTransactions.ProtoReflect.Descriptor instead. +func (*ListtransactionsTransactions) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{70} +} + +func (x *ListtransactionsTransactions) GetHash() []byte { + if x != nil { + return x.Hash + } + return nil +} + +func (x *ListtransactionsTransactions) GetRawtx() []byte { + if x != nil { + return x.Rawtx + } + return nil +} + +func (x *ListtransactionsTransactions) GetBlockheight() uint32 { + if x != nil { + return x.Blockheight + } + return 0 +} + +func (x *ListtransactionsTransactions) GetTxindex() uint32 { + if x != nil { + return x.Txindex + } + return 0 +} + +func (x *ListtransactionsTransactions) GetLocktime() uint32 { + if x != nil { + return x.Locktime + } + return 0 +} + +func (x *ListtransactionsTransactions) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *ListtransactionsTransactions) GetInputs() []*ListtransactionsTransactionsInputs { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *ListtransactionsTransactions) GetOutputs() []*ListtransactionsTransactionsOutputs { + if x != nil { + return x.Outputs + } + return nil +} + +type ListtransactionsTransactionsInputs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` + Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"` + Sequence uint32 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` +} + +func (x *ListtransactionsTransactionsInputs) Reset() { + *x = ListtransactionsTransactionsInputs{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListtransactionsTransactionsInputs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListtransactionsTransactionsInputs) ProtoMessage() {} + +func (x *ListtransactionsTransactionsInputs) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListtransactionsTransactionsInputs.ProtoReflect.Descriptor instead. +func (*ListtransactionsTransactionsInputs) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{71} +} + +func (x *ListtransactionsTransactionsInputs) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *ListtransactionsTransactionsInputs) GetIndex() uint32 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *ListtransactionsTransactionsInputs) GetSequence() uint32 { + if x != nil { + return x.Sequence + } + return 0 +} + +type ListtransactionsTransactionsOutputs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + AmountMsat *Amount `protobuf:"bytes,6,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + ScriptPubKey []byte `protobuf:"bytes,3,opt,name=scriptPubKey,proto3" json:"scriptPubKey,omitempty"` +} + +func (x *ListtransactionsTransactionsOutputs) Reset() { + *x = ListtransactionsTransactionsOutputs{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListtransactionsTransactionsOutputs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListtransactionsTransactionsOutputs) ProtoMessage() {} + +func (x *ListtransactionsTransactionsOutputs) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListtransactionsTransactionsOutputs.ProtoReflect.Descriptor instead. +func (*ListtransactionsTransactionsOutputs) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{72} +} + +func (x *ListtransactionsTransactionsOutputs) GetIndex() uint32 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *ListtransactionsTransactionsOutputs) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListtransactionsTransactionsOutputs) GetScriptPubKey() []byte { + if x != nil { + return x.ScriptPubKey + } + return nil +} + +type PayRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bolt11 string `protobuf:"bytes,1,opt,name=bolt11,proto3" json:"bolt11,omitempty"` + AmountMsat *Amount `protobuf:"bytes,13,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Label *string `protobuf:"bytes,3,opt,name=label,proto3,oneof" json:"label,omitempty"` + Riskfactor *float64 `protobuf:"fixed64,8,opt,name=riskfactor,proto3,oneof" json:"riskfactor,omitempty"` + Maxfeepercent *float64 `protobuf:"fixed64,4,opt,name=maxfeepercent,proto3,oneof" json:"maxfeepercent,omitempty"` + RetryFor *uint32 `protobuf:"varint,5,opt,name=retry_for,json=retryFor,proto3,oneof" json:"retry_for,omitempty"` + Maxdelay *uint32 `protobuf:"varint,6,opt,name=maxdelay,proto3,oneof" json:"maxdelay,omitempty"` + Exemptfee *Amount `protobuf:"bytes,7,opt,name=exemptfee,proto3,oneof" json:"exemptfee,omitempty"` + Localinvreqid []byte `protobuf:"bytes,14,opt,name=localinvreqid,proto3,oneof" json:"localinvreqid,omitempty"` + Exclude []string `protobuf:"bytes,10,rep,name=exclude,proto3" json:"exclude,omitempty"` + Maxfee *Amount `protobuf:"bytes,11,opt,name=maxfee,proto3,oneof" json:"maxfee,omitempty"` + Description *string `protobuf:"bytes,12,opt,name=description,proto3,oneof" json:"description,omitempty"` +} + +func (x *PayRequest) Reset() { + *x = PayRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayRequest) ProtoMessage() {} + +func (x *PayRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PayRequest.ProtoReflect.Descriptor instead. +func (*PayRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{73} +} + +func (x *PayRequest) GetBolt11() string { + if x != nil { + return x.Bolt11 + } + return "" +} + +func (x *PayRequest) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *PayRequest) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *PayRequest) GetRiskfactor() float64 { + if x != nil && x.Riskfactor != nil { + return *x.Riskfactor + } + return 0 +} + +func (x *PayRequest) GetMaxfeepercent() float64 { + if x != nil && x.Maxfeepercent != nil { + return *x.Maxfeepercent + } + return 0 +} + +func (x *PayRequest) GetRetryFor() uint32 { + if x != nil && x.RetryFor != nil { + return *x.RetryFor + } + return 0 +} + +func (x *PayRequest) GetMaxdelay() uint32 { + if x != nil && x.Maxdelay != nil { + return *x.Maxdelay + } + return 0 +} + +func (x *PayRequest) GetExemptfee() *Amount { + if x != nil { + return x.Exemptfee + } + return nil +} + +func (x *PayRequest) GetLocalinvreqid() []byte { + if x != nil { + return x.Localinvreqid + } + return nil +} + +func (x *PayRequest) GetExclude() []string { + if x != nil { + return x.Exclude + } + return nil +} + +func (x *PayRequest) GetMaxfee() *Amount { + if x != nil { + return x.Maxfee + } + return nil +} + +func (x *PayRequest) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +type PayResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PaymentPreimage []byte `protobuf:"bytes,1,opt,name=payment_preimage,json=paymentPreimage,proto3" json:"payment_preimage,omitempty"` + Destination []byte `protobuf:"bytes,2,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + CreatedAt float64 `protobuf:"fixed64,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + Parts uint32 `protobuf:"varint,5,opt,name=parts,proto3" json:"parts,omitempty"` + AmountMsat *Amount `protobuf:"bytes,6,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + AmountSentMsat *Amount `protobuf:"bytes,7,opt,name=amount_sent_msat,json=amountSentMsat,proto3" json:"amount_sent_msat,omitempty"` + WarningPartialCompletion *string `protobuf:"bytes,8,opt,name=warning_partial_completion,json=warningPartialCompletion,proto3,oneof" json:"warning_partial_completion,omitempty"` + Status PayResponse_PayStatus `protobuf:"varint,9,opt,name=status,proto3,enum=cln.PayResponse_PayStatus" json:"status,omitempty"` +} + +func (x *PayResponse) Reset() { + *x = PayResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayResponse) ProtoMessage() {} + +func (x *PayResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PayResponse.ProtoReflect.Descriptor instead. +func (*PayResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{74} +} + +func (x *PayResponse) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +func (x *PayResponse) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *PayResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *PayResponse) GetCreatedAt() float64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *PayResponse) GetParts() uint32 { + if x != nil { + return x.Parts + } + return 0 +} + +func (x *PayResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *PayResponse) GetAmountSentMsat() *Amount { + if x != nil { + return x.AmountSentMsat + } + return nil +} + +func (x *PayResponse) GetWarningPartialCompletion() string { + if x != nil && x.WarningPartialCompletion != nil { + return *x.WarningPartialCompletion + } + return "" +} + +func (x *PayResponse) GetStatus() PayResponse_PayStatus { + if x != nil { + return x.Status + } + return PayResponse_COMPLETE +} + +type ListnodesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` +} + +func (x *ListnodesRequest) Reset() { + *x = ListnodesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListnodesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListnodesRequest) ProtoMessage() {} + +func (x *ListnodesRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListnodesRequest.ProtoReflect.Descriptor instead. +func (*ListnodesRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{75} +} + +func (x *ListnodesRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +type ListnodesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nodes []*ListnodesNodes `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` +} + +func (x *ListnodesResponse) Reset() { + *x = ListnodesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListnodesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListnodesResponse) ProtoMessage() {} + +func (x *ListnodesResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListnodesResponse.ProtoReflect.Descriptor instead. +func (*ListnodesResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{76} +} + +func (x *ListnodesResponse) GetNodes() []*ListnodesNodes { + if x != nil { + return x.Nodes + } + return nil +} + +type ListnodesNodes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Nodeid []byte `protobuf:"bytes,1,opt,name=nodeid,proto3" json:"nodeid,omitempty"` + LastTimestamp *uint32 `protobuf:"varint,2,opt,name=last_timestamp,json=lastTimestamp,proto3,oneof" json:"last_timestamp,omitempty"` + Alias *string `protobuf:"bytes,3,opt,name=alias,proto3,oneof" json:"alias,omitempty"` + Color []byte `protobuf:"bytes,4,opt,name=color,proto3,oneof" json:"color,omitempty"` + Features []byte `protobuf:"bytes,5,opt,name=features,proto3,oneof" json:"features,omitempty"` + Addresses []*ListnodesNodesAddresses `protobuf:"bytes,6,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *ListnodesNodes) Reset() { + *x = ListnodesNodes{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListnodesNodes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListnodesNodes) ProtoMessage() {} + +func (x *ListnodesNodes) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListnodesNodes.ProtoReflect.Descriptor instead. +func (*ListnodesNodes) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{77} +} + +func (x *ListnodesNodes) GetNodeid() []byte { + if x != nil { + return x.Nodeid + } + return nil +} + +func (x *ListnodesNodes) GetLastTimestamp() uint32 { + if x != nil && x.LastTimestamp != nil { + return *x.LastTimestamp + } + return 0 +} + +func (x *ListnodesNodes) GetAlias() string { + if x != nil && x.Alias != nil { + return *x.Alias + } + return "" +} + +func (x *ListnodesNodes) GetColor() []byte { + if x != nil { + return x.Color + } + return nil +} + +func (x *ListnodesNodes) GetFeatures() []byte { + if x != nil { + return x.Features + } + return nil +} + +func (x *ListnodesNodes) GetAddresses() []*ListnodesNodesAddresses { + if x != nil { + return x.Addresses + } + return nil +} + +type ListnodesNodesAddresses struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemType ListnodesNodesAddresses_ListnodesNodesAddressesType `protobuf:"varint,1,opt,name=item_type,json=itemType,proto3,enum=cln.ListnodesNodesAddresses_ListnodesNodesAddressesType" json:"item_type,omitempty"` + Port uint32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"` + Address *string `protobuf:"bytes,3,opt,name=address,proto3,oneof" json:"address,omitempty"` +} + +func (x *ListnodesNodesAddresses) Reset() { + *x = ListnodesNodesAddresses{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListnodesNodesAddresses) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListnodesNodesAddresses) ProtoMessage() {} + +func (x *ListnodesNodesAddresses) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListnodesNodesAddresses.ProtoReflect.Descriptor instead. +func (*ListnodesNodesAddresses) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{78} +} + +func (x *ListnodesNodesAddresses) GetItemType() ListnodesNodesAddresses_ListnodesNodesAddressesType { + if x != nil { + return x.ItemType + } + return ListnodesNodesAddresses_DNS +} + +func (x *ListnodesNodesAddresses) GetPort() uint32 { + if x != nil { + return x.Port + } + return 0 +} + +func (x *ListnodesNodesAddresses) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +type WaitanyinvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LastpayIndex *uint64 `protobuf:"varint,1,opt,name=lastpay_index,json=lastpayIndex,proto3,oneof" json:"lastpay_index,omitempty"` + Timeout *uint64 `protobuf:"varint,2,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"` +} + +func (x *WaitanyinvoiceRequest) Reset() { + *x = WaitanyinvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitanyinvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitanyinvoiceRequest) ProtoMessage() {} + +func (x *WaitanyinvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitanyinvoiceRequest.ProtoReflect.Descriptor instead. +func (*WaitanyinvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{79} +} + +func (x *WaitanyinvoiceRequest) GetLastpayIndex() uint64 { + if x != nil && x.LastpayIndex != nil { + return *x.LastpayIndex + } + return 0 +} + +func (x *WaitanyinvoiceRequest) GetTimeout() uint64 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + +type WaitanyinvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Status WaitanyinvoiceResponse_WaitanyinvoiceStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cln.WaitanyinvoiceResponse_WaitanyinvoiceStatus" json:"status,omitempty"` + ExpiresAt uint64 `protobuf:"varint,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + AmountMsat *Amount `protobuf:"bytes,6,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Bolt11 *string `protobuf:"bytes,7,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Bolt12 *string `protobuf:"bytes,8,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + CreatedIndex *uint64 `protobuf:"varint,13,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,14,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + PayIndex *uint64 `protobuf:"varint,9,opt,name=pay_index,json=payIndex,proto3,oneof" json:"pay_index,omitempty"` + AmountReceivedMsat *Amount `protobuf:"bytes,10,opt,name=amount_received_msat,json=amountReceivedMsat,proto3,oneof" json:"amount_received_msat,omitempty"` + PaidAt *uint64 `protobuf:"varint,11,opt,name=paid_at,json=paidAt,proto3,oneof" json:"paid_at,omitempty"` + PaidOutpoint *WaitanyinvoicePaidOutpoint `protobuf:"bytes,15,opt,name=paid_outpoint,json=paidOutpoint,proto3,oneof" json:"paid_outpoint,omitempty"` + PaymentPreimage []byte `protobuf:"bytes,12,opt,name=payment_preimage,json=paymentPreimage,proto3,oneof" json:"payment_preimage,omitempty"` +} + +func (x *WaitanyinvoiceResponse) Reset() { + *x = WaitanyinvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitanyinvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitanyinvoiceResponse) ProtoMessage() {} + +func (x *WaitanyinvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitanyinvoiceResponse.ProtoReflect.Descriptor instead. +func (*WaitanyinvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{80} +} + +func (x *WaitanyinvoiceResponse) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *WaitanyinvoiceResponse) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *WaitanyinvoiceResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *WaitanyinvoiceResponse) GetStatus() WaitanyinvoiceResponse_WaitanyinvoiceStatus { + if x != nil { + return x.Status + } + return WaitanyinvoiceResponse_PAID +} + +func (x *WaitanyinvoiceResponse) GetExpiresAt() uint64 { + if x != nil { + return x.ExpiresAt + } + return 0 +} + +func (x *WaitanyinvoiceResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *WaitanyinvoiceResponse) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *WaitanyinvoiceResponse) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *WaitanyinvoiceResponse) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *WaitanyinvoiceResponse) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *WaitanyinvoiceResponse) GetPayIndex() uint64 { + if x != nil && x.PayIndex != nil { + return *x.PayIndex + } + return 0 +} + +func (x *WaitanyinvoiceResponse) GetAmountReceivedMsat() *Amount { + if x != nil { + return x.AmountReceivedMsat + } + return nil +} + +func (x *WaitanyinvoiceResponse) GetPaidAt() uint64 { + if x != nil && x.PaidAt != nil { + return *x.PaidAt + } + return 0 +} + +func (x *WaitanyinvoiceResponse) GetPaidOutpoint() *WaitanyinvoicePaidOutpoint { + if x != nil { + return x.PaidOutpoint + } + return nil +} + +func (x *WaitanyinvoiceResponse) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +type WaitanyinvoicePaidOutpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3,oneof" json:"txid,omitempty"` + Outnum *uint32 `protobuf:"varint,2,opt,name=outnum,proto3,oneof" json:"outnum,omitempty"` +} + +func (x *WaitanyinvoicePaidOutpoint) Reset() { + *x = WaitanyinvoicePaidOutpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitanyinvoicePaidOutpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitanyinvoicePaidOutpoint) ProtoMessage() {} + +func (x *WaitanyinvoicePaidOutpoint) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[81] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitanyinvoicePaidOutpoint.ProtoReflect.Descriptor instead. +func (*WaitanyinvoicePaidOutpoint) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{81} +} + +func (x *WaitanyinvoicePaidOutpoint) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *WaitanyinvoicePaidOutpoint) GetOutnum() uint32 { + if x != nil && x.Outnum != nil { + return *x.Outnum + } + return 0 +} + +type WaitinvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` +} + +func (x *WaitinvoiceRequest) Reset() { + *x = WaitinvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitinvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitinvoiceRequest) ProtoMessage() {} + +func (x *WaitinvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitinvoiceRequest.ProtoReflect.Descriptor instead. +func (*WaitinvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{82} +} + +func (x *WaitinvoiceRequest) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +type WaitinvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Label string `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Status WaitinvoiceResponse_WaitinvoiceStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cln.WaitinvoiceResponse_WaitinvoiceStatus" json:"status,omitempty"` + ExpiresAt uint64 `protobuf:"varint,5,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` + AmountMsat *Amount `protobuf:"bytes,6,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Bolt11 *string `protobuf:"bytes,7,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Bolt12 *string `protobuf:"bytes,8,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + CreatedIndex *uint64 `protobuf:"varint,13,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,14,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + PayIndex *uint64 `protobuf:"varint,9,opt,name=pay_index,json=payIndex,proto3,oneof" json:"pay_index,omitempty"` + AmountReceivedMsat *Amount `protobuf:"bytes,10,opt,name=amount_received_msat,json=amountReceivedMsat,proto3,oneof" json:"amount_received_msat,omitempty"` + PaidAt *uint64 `protobuf:"varint,11,opt,name=paid_at,json=paidAt,proto3,oneof" json:"paid_at,omitempty"` + PaidOutpoint *WaitinvoicePaidOutpoint `protobuf:"bytes,15,opt,name=paid_outpoint,json=paidOutpoint,proto3,oneof" json:"paid_outpoint,omitempty"` + PaymentPreimage []byte `protobuf:"bytes,12,opt,name=payment_preimage,json=paymentPreimage,proto3,oneof" json:"payment_preimage,omitempty"` +} + +func (x *WaitinvoiceResponse) Reset() { + *x = WaitinvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitinvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitinvoiceResponse) ProtoMessage() {} + +func (x *WaitinvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitinvoiceResponse.ProtoReflect.Descriptor instead. +func (*WaitinvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{83} +} + +func (x *WaitinvoiceResponse) GetLabel() string { + if x != nil { + return x.Label + } + return "" +} + +func (x *WaitinvoiceResponse) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *WaitinvoiceResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *WaitinvoiceResponse) GetStatus() WaitinvoiceResponse_WaitinvoiceStatus { + if x != nil { + return x.Status + } + return WaitinvoiceResponse_PAID +} + +func (x *WaitinvoiceResponse) GetExpiresAt() uint64 { + if x != nil { + return x.ExpiresAt + } + return 0 +} + +func (x *WaitinvoiceResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *WaitinvoiceResponse) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *WaitinvoiceResponse) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *WaitinvoiceResponse) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *WaitinvoiceResponse) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *WaitinvoiceResponse) GetPayIndex() uint64 { + if x != nil && x.PayIndex != nil { + return *x.PayIndex + } + return 0 +} + +func (x *WaitinvoiceResponse) GetAmountReceivedMsat() *Amount { + if x != nil { + return x.AmountReceivedMsat + } + return nil +} + +func (x *WaitinvoiceResponse) GetPaidAt() uint64 { + if x != nil && x.PaidAt != nil { + return *x.PaidAt + } + return 0 +} + +func (x *WaitinvoiceResponse) GetPaidOutpoint() *WaitinvoicePaidOutpoint { + if x != nil { + return x.PaidOutpoint + } + return nil +} + +func (x *WaitinvoiceResponse) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +type WaitinvoicePaidOutpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3,oneof" json:"txid,omitempty"` + Outnum *uint32 `protobuf:"varint,2,opt,name=outnum,proto3,oneof" json:"outnum,omitempty"` +} + +func (x *WaitinvoicePaidOutpoint) Reset() { + *x = WaitinvoicePaidOutpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitinvoicePaidOutpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitinvoicePaidOutpoint) ProtoMessage() {} + +func (x *WaitinvoicePaidOutpoint) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[84] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitinvoicePaidOutpoint.ProtoReflect.Descriptor instead. +func (*WaitinvoicePaidOutpoint) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{84} +} + +func (x *WaitinvoicePaidOutpoint) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *WaitinvoicePaidOutpoint) GetOutnum() uint32 { + if x != nil && x.Outnum != nil { + return *x.Outnum + } + return 0 +} + +type WaitsendpayRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Timeout *uint32 `protobuf:"varint,3,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"` + Partid *uint64 `protobuf:"varint,2,opt,name=partid,proto3,oneof" json:"partid,omitempty"` + Groupid *uint64 `protobuf:"varint,4,opt,name=groupid,proto3,oneof" json:"groupid,omitempty"` +} + +func (x *WaitsendpayRequest) Reset() { + *x = WaitsendpayRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitsendpayRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitsendpayRequest) ProtoMessage() {} + +func (x *WaitsendpayRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[85] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitsendpayRequest.ProtoReflect.Descriptor instead. +func (*WaitsendpayRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{85} +} + +func (x *WaitsendpayRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *WaitsendpayRequest) GetTimeout() uint32 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + +func (x *WaitsendpayRequest) GetPartid() uint64 { + if x != nil && x.Partid != nil { + return *x.Partid + } + return 0 +} + +func (x *WaitsendpayRequest) GetGroupid() uint64 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +type WaitsendpayResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedIndex *uint64 `protobuf:"varint,15,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Groupid *uint64 `protobuf:"varint,2,opt,name=groupid,proto3,oneof" json:"groupid,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Status WaitsendpayResponse_WaitsendpayStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cln.WaitsendpayResponse_WaitsendpayStatus" json:"status,omitempty"` + AmountMsat *Amount `protobuf:"bytes,5,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Destination []byte `protobuf:"bytes,6,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + CreatedAt uint64 `protobuf:"varint,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,16,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + CompletedAt *float64 `protobuf:"fixed64,14,opt,name=completed_at,json=completedAt,proto3,oneof" json:"completed_at,omitempty"` + AmountSentMsat *Amount `protobuf:"bytes,8,opt,name=amount_sent_msat,json=amountSentMsat,proto3" json:"amount_sent_msat,omitempty"` + Label *string `protobuf:"bytes,9,opt,name=label,proto3,oneof" json:"label,omitempty"` + Partid *uint64 `protobuf:"varint,10,opt,name=partid,proto3,oneof" json:"partid,omitempty"` + Bolt11 *string `protobuf:"bytes,11,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Bolt12 *string `protobuf:"bytes,12,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + PaymentPreimage []byte `protobuf:"bytes,13,opt,name=payment_preimage,json=paymentPreimage,proto3,oneof" json:"payment_preimage,omitempty"` +} + +func (x *WaitsendpayResponse) Reset() { + *x = WaitsendpayResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitsendpayResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitsendpayResponse) ProtoMessage() {} + +func (x *WaitsendpayResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[86] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitsendpayResponse.ProtoReflect.Descriptor instead. +func (*WaitsendpayResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{86} +} + +func (x *WaitsendpayResponse) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *WaitsendpayResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *WaitsendpayResponse) GetGroupid() uint64 { + if x != nil && x.Groupid != nil { + return *x.Groupid + } + return 0 +} + +func (x *WaitsendpayResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *WaitsendpayResponse) GetStatus() WaitsendpayResponse_WaitsendpayStatus { + if x != nil { + return x.Status + } + return WaitsendpayResponse_COMPLETE +} + +func (x *WaitsendpayResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *WaitsendpayResponse) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *WaitsendpayResponse) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *WaitsendpayResponse) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *WaitsendpayResponse) GetCompletedAt() float64 { + if x != nil && x.CompletedAt != nil { + return *x.CompletedAt + } + return 0 +} + +func (x *WaitsendpayResponse) GetAmountSentMsat() *Amount { + if x != nil { + return x.AmountSentMsat + } + return nil +} + +func (x *WaitsendpayResponse) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *WaitsendpayResponse) GetPartid() uint64 { + if x != nil && x.Partid != nil { + return *x.Partid + } + return 0 +} + +func (x *WaitsendpayResponse) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *WaitsendpayResponse) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *WaitsendpayResponse) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +type NewaddrRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Addresstype *NewaddrRequest_NewaddrAddresstype `protobuf:"varint,1,opt,name=addresstype,proto3,enum=cln.NewaddrRequest_NewaddrAddresstype,oneof" json:"addresstype,omitempty"` +} + +func (x *NewaddrRequest) Reset() { + *x = NewaddrRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewaddrRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewaddrRequest) ProtoMessage() {} + +func (x *NewaddrRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewaddrRequest.ProtoReflect.Descriptor instead. +func (*NewaddrRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{87} +} + +func (x *NewaddrRequest) GetAddresstype() NewaddrRequest_NewaddrAddresstype { + if x != nil && x.Addresstype != nil { + return *x.Addresstype + } + return NewaddrRequest_BECH32 +} + +type NewaddrResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + P2Tr *string `protobuf:"bytes,3,opt,name=p2tr,proto3,oneof" json:"p2tr,omitempty"` + Bech32 *string `protobuf:"bytes,1,opt,name=bech32,proto3,oneof" json:"bech32,omitempty"` +} + +func (x *NewaddrResponse) Reset() { + *x = NewaddrResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NewaddrResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NewaddrResponse) ProtoMessage() {} + +func (x *NewaddrResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[88] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NewaddrResponse.ProtoReflect.Descriptor instead. +func (*NewaddrResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{88} +} + +func (x *NewaddrResponse) GetP2Tr() string { + if x != nil && x.P2Tr != nil { + return *x.P2Tr + } + return "" +} + +func (x *NewaddrResponse) GetBech32() string { + if x != nil && x.Bech32 != nil { + return *x.Bech32 + } + return "" +} + +type WithdrawRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Destination string `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"` + Satoshi *AmountOrAll `protobuf:"bytes,2,opt,name=satoshi,proto3,oneof" json:"satoshi,omitempty"` + Feerate *Feerate `protobuf:"bytes,5,opt,name=feerate,proto3,oneof" json:"feerate,omitempty"` + Minconf *uint32 `protobuf:"varint,3,opt,name=minconf,proto3,oneof" json:"minconf,omitempty"` + Utxos []*Outpoint `protobuf:"bytes,4,rep,name=utxos,proto3" json:"utxos,omitempty"` +} + +func (x *WithdrawRequest) Reset() { + *x = WithdrawRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithdrawRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithdrawRequest) ProtoMessage() {} + +func (x *WithdrawRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[89] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WithdrawRequest.ProtoReflect.Descriptor instead. +func (*WithdrawRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{89} +} + +func (x *WithdrawRequest) GetDestination() string { + if x != nil { + return x.Destination + } + return "" +} + +func (x *WithdrawRequest) GetSatoshi() *AmountOrAll { + if x != nil { + return x.Satoshi + } + return nil +} + +func (x *WithdrawRequest) GetFeerate() *Feerate { + if x != nil { + return x.Feerate + } + return nil +} + +func (x *WithdrawRequest) GetMinconf() uint32 { + if x != nil && x.Minconf != nil { + return *x.Minconf + } + return 0 +} + +func (x *WithdrawRequest) GetUtxos() []*Outpoint { + if x != nil { + return x.Utxos + } + return nil +} + +type WithdrawResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` + Txid []byte `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"` + Psbt string `protobuf:"bytes,3,opt,name=psbt,proto3" json:"psbt,omitempty"` +} + +func (x *WithdrawResponse) Reset() { + *x = WithdrawResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithdrawResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithdrawResponse) ProtoMessage() {} + +func (x *WithdrawResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WithdrawResponse.ProtoReflect.Descriptor instead. +func (*WithdrawResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{90} +} + +func (x *WithdrawResponse) GetTx() []byte { + if x != nil { + return x.Tx + } + return nil +} + +func (x *WithdrawResponse) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *WithdrawResponse) GetPsbt() string { + if x != nil { + return x.Psbt + } + return "" +} + +type KeysendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Destination []byte `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"` + AmountMsat *Amount `protobuf:"bytes,10,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Label *string `protobuf:"bytes,3,opt,name=label,proto3,oneof" json:"label,omitempty"` + Maxfeepercent *float64 `protobuf:"fixed64,4,opt,name=maxfeepercent,proto3,oneof" json:"maxfeepercent,omitempty"` + RetryFor *uint32 `protobuf:"varint,5,opt,name=retry_for,json=retryFor,proto3,oneof" json:"retry_for,omitempty"` + Maxdelay *uint32 `protobuf:"varint,6,opt,name=maxdelay,proto3,oneof" json:"maxdelay,omitempty"` + Exemptfee *Amount `protobuf:"bytes,7,opt,name=exemptfee,proto3,oneof" json:"exemptfee,omitempty"` + Routehints *RoutehintList `protobuf:"bytes,8,opt,name=routehints,proto3,oneof" json:"routehints,omitempty"` + Extratlvs *TlvStream `protobuf:"bytes,9,opt,name=extratlvs,proto3,oneof" json:"extratlvs,omitempty"` +} + +func (x *KeysendRequest) Reset() { + *x = KeysendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KeysendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KeysendRequest) ProtoMessage() {} + +func (x *KeysendRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KeysendRequest.ProtoReflect.Descriptor instead. +func (*KeysendRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{91} +} + +func (x *KeysendRequest) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *KeysendRequest) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *KeysendRequest) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *KeysendRequest) GetMaxfeepercent() float64 { + if x != nil && x.Maxfeepercent != nil { + return *x.Maxfeepercent + } + return 0 +} + +func (x *KeysendRequest) GetRetryFor() uint32 { + if x != nil && x.RetryFor != nil { + return *x.RetryFor + } + return 0 +} + +func (x *KeysendRequest) GetMaxdelay() uint32 { + if x != nil && x.Maxdelay != nil { + return *x.Maxdelay + } + return 0 +} + +func (x *KeysendRequest) GetExemptfee() *Amount { + if x != nil { + return x.Exemptfee + } + return nil +} + +func (x *KeysendRequest) GetRoutehints() *RoutehintList { + if x != nil { + return x.Routehints + } + return nil +} + +func (x *KeysendRequest) GetExtratlvs() *TlvStream { + if x != nil { + return x.Extratlvs + } + return nil +} + +type KeysendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PaymentPreimage []byte `protobuf:"bytes,1,opt,name=payment_preimage,json=paymentPreimage,proto3" json:"payment_preimage,omitempty"` + Destination []byte `protobuf:"bytes,2,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + CreatedAt float64 `protobuf:"fixed64,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + Parts uint32 `protobuf:"varint,5,opt,name=parts,proto3" json:"parts,omitempty"` + AmountMsat *Amount `protobuf:"bytes,6,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + AmountSentMsat *Amount `protobuf:"bytes,7,opt,name=amount_sent_msat,json=amountSentMsat,proto3" json:"amount_sent_msat,omitempty"` + WarningPartialCompletion *string `protobuf:"bytes,8,opt,name=warning_partial_completion,json=warningPartialCompletion,proto3,oneof" json:"warning_partial_completion,omitempty"` + Status KeysendResponse_KeysendStatus `protobuf:"varint,9,opt,name=status,proto3,enum=cln.KeysendResponse_KeysendStatus" json:"status,omitempty"` +} + +func (x *KeysendResponse) Reset() { + *x = KeysendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KeysendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KeysendResponse) ProtoMessage() {} + +func (x *KeysendResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[92] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KeysendResponse.ProtoReflect.Descriptor instead. +func (*KeysendResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{92} +} + +func (x *KeysendResponse) GetPaymentPreimage() []byte { + if x != nil { + return x.PaymentPreimage + } + return nil +} + +func (x *KeysendResponse) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *KeysendResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *KeysendResponse) GetCreatedAt() float64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *KeysendResponse) GetParts() uint32 { + if x != nil { + return x.Parts + } + return 0 +} + +func (x *KeysendResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *KeysendResponse) GetAmountSentMsat() *Amount { + if x != nil { + return x.AmountSentMsat + } + return nil +} + +func (x *KeysendResponse) GetWarningPartialCompletion() string { + if x != nil && x.WarningPartialCompletion != nil { + return *x.WarningPartialCompletion + } + return "" +} + +func (x *KeysendResponse) GetStatus() KeysendResponse_KeysendStatus { + if x != nil { + return x.Status + } + return KeysendResponse_COMPLETE +} + +type FundpsbtRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Satoshi *AmountOrAll `protobuf:"bytes,1,opt,name=satoshi,proto3" json:"satoshi,omitempty"` + Feerate *Feerate `protobuf:"bytes,2,opt,name=feerate,proto3" json:"feerate,omitempty"` + Startweight uint32 `protobuf:"varint,3,opt,name=startweight,proto3" json:"startweight,omitempty"` + Minconf *uint32 `protobuf:"varint,4,opt,name=minconf,proto3,oneof" json:"minconf,omitempty"` + Reserve *uint32 `protobuf:"varint,5,opt,name=reserve,proto3,oneof" json:"reserve,omitempty"` + Locktime *uint32 `protobuf:"varint,6,opt,name=locktime,proto3,oneof" json:"locktime,omitempty"` + MinWitnessWeight *uint32 `protobuf:"varint,7,opt,name=min_witness_weight,json=minWitnessWeight,proto3,oneof" json:"min_witness_weight,omitempty"` + ExcessAsChange *bool `protobuf:"varint,8,opt,name=excess_as_change,json=excessAsChange,proto3,oneof" json:"excess_as_change,omitempty"` + Nonwrapped *bool `protobuf:"varint,9,opt,name=nonwrapped,proto3,oneof" json:"nonwrapped,omitempty"` + OpeningAnchorChannel *bool `protobuf:"varint,10,opt,name=opening_anchor_channel,json=openingAnchorChannel,proto3,oneof" json:"opening_anchor_channel,omitempty"` +} + +func (x *FundpsbtRequest) Reset() { + *x = FundpsbtRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundpsbtRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundpsbtRequest) ProtoMessage() {} + +func (x *FundpsbtRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[93] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FundpsbtRequest.ProtoReflect.Descriptor instead. +func (*FundpsbtRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{93} +} + +func (x *FundpsbtRequest) GetSatoshi() *AmountOrAll { + if x != nil { + return x.Satoshi + } + return nil +} + +func (x *FundpsbtRequest) GetFeerate() *Feerate { + if x != nil { + return x.Feerate + } + return nil +} + +func (x *FundpsbtRequest) GetStartweight() uint32 { + if x != nil { + return x.Startweight + } + return 0 +} + +func (x *FundpsbtRequest) GetMinconf() uint32 { + if x != nil && x.Minconf != nil { + return *x.Minconf + } + return 0 +} + +func (x *FundpsbtRequest) GetReserve() uint32 { + if x != nil && x.Reserve != nil { + return *x.Reserve + } + return 0 +} + +func (x *FundpsbtRequest) GetLocktime() uint32 { + if x != nil && x.Locktime != nil { + return *x.Locktime + } + return 0 +} + +func (x *FundpsbtRequest) GetMinWitnessWeight() uint32 { + if x != nil && x.MinWitnessWeight != nil { + return *x.MinWitnessWeight + } + return 0 +} + +func (x *FundpsbtRequest) GetExcessAsChange() bool { + if x != nil && x.ExcessAsChange != nil { + return *x.ExcessAsChange + } + return false +} + +func (x *FundpsbtRequest) GetNonwrapped() bool { + if x != nil && x.Nonwrapped != nil { + return *x.Nonwrapped + } + return false +} + +func (x *FundpsbtRequest) GetOpeningAnchorChannel() bool { + if x != nil && x.OpeningAnchorChannel != nil { + return *x.OpeningAnchorChannel + } + return false +} + +type FundpsbtResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Psbt string `protobuf:"bytes,1,opt,name=psbt,proto3" json:"psbt,omitempty"` + FeeratePerKw uint32 `protobuf:"varint,2,opt,name=feerate_per_kw,json=feeratePerKw,proto3" json:"feerate_per_kw,omitempty"` + EstimatedFinalWeight uint32 `protobuf:"varint,3,opt,name=estimated_final_weight,json=estimatedFinalWeight,proto3" json:"estimated_final_weight,omitempty"` + ExcessMsat *Amount `protobuf:"bytes,4,opt,name=excess_msat,json=excessMsat,proto3" json:"excess_msat,omitempty"` + ChangeOutnum *uint32 `protobuf:"varint,5,opt,name=change_outnum,json=changeOutnum,proto3,oneof" json:"change_outnum,omitempty"` + Reservations []*FundpsbtReservations `protobuf:"bytes,6,rep,name=reservations,proto3" json:"reservations,omitempty"` +} + +func (x *FundpsbtResponse) Reset() { + *x = FundpsbtResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundpsbtResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundpsbtResponse) ProtoMessage() {} + +func (x *FundpsbtResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[94] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FundpsbtResponse.ProtoReflect.Descriptor instead. +func (*FundpsbtResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{94} +} + +func (x *FundpsbtResponse) GetPsbt() string { + if x != nil { + return x.Psbt + } + return "" +} + +func (x *FundpsbtResponse) GetFeeratePerKw() uint32 { + if x != nil { + return x.FeeratePerKw + } + return 0 +} + +func (x *FundpsbtResponse) GetEstimatedFinalWeight() uint32 { + if x != nil { + return x.EstimatedFinalWeight + } + return 0 +} + +func (x *FundpsbtResponse) GetExcessMsat() *Amount { + if x != nil { + return x.ExcessMsat + } + return nil +} + +func (x *FundpsbtResponse) GetChangeOutnum() uint32 { + if x != nil && x.ChangeOutnum != nil { + return *x.ChangeOutnum + } + return 0 +} + +func (x *FundpsbtResponse) GetReservations() []*FundpsbtReservations { + if x != nil { + return x.Reservations + } + return nil +} + +type FundpsbtReservations struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` + Vout uint32 `protobuf:"varint,2,opt,name=vout,proto3" json:"vout,omitempty"` + WasReserved bool `protobuf:"varint,3,opt,name=was_reserved,json=wasReserved,proto3" json:"was_reserved,omitempty"` + Reserved bool `protobuf:"varint,4,opt,name=reserved,proto3" json:"reserved,omitempty"` + ReservedToBlock uint32 `protobuf:"varint,5,opt,name=reserved_to_block,json=reservedToBlock,proto3" json:"reserved_to_block,omitempty"` +} + +func (x *FundpsbtReservations) Reset() { + *x = FundpsbtReservations{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundpsbtReservations) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundpsbtReservations) ProtoMessage() {} + +func (x *FundpsbtReservations) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[95] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FundpsbtReservations.ProtoReflect.Descriptor instead. +func (*FundpsbtReservations) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{95} +} + +func (x *FundpsbtReservations) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *FundpsbtReservations) GetVout() uint32 { + if x != nil { + return x.Vout + } + return 0 +} + +func (x *FundpsbtReservations) GetWasReserved() bool { + if x != nil { + return x.WasReserved + } + return false +} + +func (x *FundpsbtReservations) GetReserved() bool { + if x != nil { + return x.Reserved + } + return false +} + +func (x *FundpsbtReservations) GetReservedToBlock() uint32 { + if x != nil { + return x.ReservedToBlock + } + return 0 +} + +type SendpsbtRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Psbt string `protobuf:"bytes,1,opt,name=psbt,proto3" json:"psbt,omitempty"` + Reserve *bool `protobuf:"varint,2,opt,name=reserve,proto3,oneof" json:"reserve,omitempty"` +} + +func (x *SendpsbtRequest) Reset() { + *x = SendpsbtRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendpsbtRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendpsbtRequest) ProtoMessage() {} + +func (x *SendpsbtRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[96] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendpsbtRequest.ProtoReflect.Descriptor instead. +func (*SendpsbtRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{96} +} + +func (x *SendpsbtRequest) GetPsbt() string { + if x != nil { + return x.Psbt + } + return "" +} + +func (x *SendpsbtRequest) GetReserve() bool { + if x != nil && x.Reserve != nil { + return *x.Reserve + } + return false +} + +type SendpsbtResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` + Txid []byte `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *SendpsbtResponse) Reset() { + *x = SendpsbtResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendpsbtResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendpsbtResponse) ProtoMessage() {} + +func (x *SendpsbtResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[97] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendpsbtResponse.ProtoReflect.Descriptor instead. +func (*SendpsbtResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{97} +} + +func (x *SendpsbtResponse) GetTx() []byte { + if x != nil { + return x.Tx + } + return nil +} + +func (x *SendpsbtResponse) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +type SignpsbtRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Psbt string `protobuf:"bytes,1,opt,name=psbt,proto3" json:"psbt,omitempty"` + Signonly []uint32 `protobuf:"varint,2,rep,packed,name=signonly,proto3" json:"signonly,omitempty"` +} + +func (x *SignpsbtRequest) Reset() { + *x = SignpsbtRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignpsbtRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignpsbtRequest) ProtoMessage() {} + +func (x *SignpsbtRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[98] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SignpsbtRequest.ProtoReflect.Descriptor instead. +func (*SignpsbtRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{98} +} + +func (x *SignpsbtRequest) GetPsbt() string { + if x != nil { + return x.Psbt + } + return "" +} + +func (x *SignpsbtRequest) GetSignonly() []uint32 { + if x != nil { + return x.Signonly + } + return nil +} + +type SignpsbtResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SignedPsbt string `protobuf:"bytes,1,opt,name=signed_psbt,json=signedPsbt,proto3" json:"signed_psbt,omitempty"` +} + +func (x *SignpsbtResponse) Reset() { + *x = SignpsbtResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignpsbtResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignpsbtResponse) ProtoMessage() {} + +func (x *SignpsbtResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[99] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SignpsbtResponse.ProtoReflect.Descriptor instead. +func (*SignpsbtResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{99} +} + +func (x *SignpsbtResponse) GetSignedPsbt() string { + if x != nil { + return x.SignedPsbt + } + return "" +} + +type UtxopsbtRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Satoshi *Amount `protobuf:"bytes,1,opt,name=satoshi,proto3" json:"satoshi,omitempty"` + Feerate *Feerate `protobuf:"bytes,2,opt,name=feerate,proto3" json:"feerate,omitempty"` + Startweight uint32 `protobuf:"varint,3,opt,name=startweight,proto3" json:"startweight,omitempty"` + Utxos []*Outpoint `protobuf:"bytes,4,rep,name=utxos,proto3" json:"utxos,omitempty"` + Reserve *uint32 `protobuf:"varint,5,opt,name=reserve,proto3,oneof" json:"reserve,omitempty"` + Reservedok *bool `protobuf:"varint,8,opt,name=reservedok,proto3,oneof" json:"reservedok,omitempty"` + Locktime *uint32 `protobuf:"varint,6,opt,name=locktime,proto3,oneof" json:"locktime,omitempty"` + MinWitnessWeight *uint32 `protobuf:"varint,7,opt,name=min_witness_weight,json=minWitnessWeight,proto3,oneof" json:"min_witness_weight,omitempty"` + ExcessAsChange *bool `protobuf:"varint,9,opt,name=excess_as_change,json=excessAsChange,proto3,oneof" json:"excess_as_change,omitempty"` + OpeningAnchorChannel *bool `protobuf:"varint,10,opt,name=opening_anchor_channel,json=openingAnchorChannel,proto3,oneof" json:"opening_anchor_channel,omitempty"` +} + +func (x *UtxopsbtRequest) Reset() { + *x = UtxopsbtRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UtxopsbtRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UtxopsbtRequest) ProtoMessage() {} + +func (x *UtxopsbtRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[100] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UtxopsbtRequest.ProtoReflect.Descriptor instead. +func (*UtxopsbtRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{100} +} + +func (x *UtxopsbtRequest) GetSatoshi() *Amount { + if x != nil { + return x.Satoshi + } + return nil +} + +func (x *UtxopsbtRequest) GetFeerate() *Feerate { + if x != nil { + return x.Feerate + } + return nil +} + +func (x *UtxopsbtRequest) GetStartweight() uint32 { + if x != nil { + return x.Startweight + } + return 0 +} + +func (x *UtxopsbtRequest) GetUtxos() []*Outpoint { + if x != nil { + return x.Utxos + } + return nil +} + +func (x *UtxopsbtRequest) GetReserve() uint32 { + if x != nil && x.Reserve != nil { + return *x.Reserve + } + return 0 +} + +func (x *UtxopsbtRequest) GetReservedok() bool { + if x != nil && x.Reservedok != nil { + return *x.Reservedok + } + return false +} + +func (x *UtxopsbtRequest) GetLocktime() uint32 { + if x != nil && x.Locktime != nil { + return *x.Locktime + } + return 0 +} + +func (x *UtxopsbtRequest) GetMinWitnessWeight() uint32 { + if x != nil && x.MinWitnessWeight != nil { + return *x.MinWitnessWeight + } + return 0 +} + +func (x *UtxopsbtRequest) GetExcessAsChange() bool { + if x != nil && x.ExcessAsChange != nil { + return *x.ExcessAsChange + } + return false +} + +func (x *UtxopsbtRequest) GetOpeningAnchorChannel() bool { + if x != nil && x.OpeningAnchorChannel != nil { + return *x.OpeningAnchorChannel + } + return false +} + +type UtxopsbtResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Psbt string `protobuf:"bytes,1,opt,name=psbt,proto3" json:"psbt,omitempty"` + FeeratePerKw uint32 `protobuf:"varint,2,opt,name=feerate_per_kw,json=feeratePerKw,proto3" json:"feerate_per_kw,omitempty"` + EstimatedFinalWeight uint32 `protobuf:"varint,3,opt,name=estimated_final_weight,json=estimatedFinalWeight,proto3" json:"estimated_final_weight,omitempty"` + ExcessMsat *Amount `protobuf:"bytes,4,opt,name=excess_msat,json=excessMsat,proto3" json:"excess_msat,omitempty"` + ChangeOutnum *uint32 `protobuf:"varint,5,opt,name=change_outnum,json=changeOutnum,proto3,oneof" json:"change_outnum,omitempty"` + Reservations []*UtxopsbtReservations `protobuf:"bytes,6,rep,name=reservations,proto3" json:"reservations,omitempty"` +} + +func (x *UtxopsbtResponse) Reset() { + *x = UtxopsbtResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UtxopsbtResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UtxopsbtResponse) ProtoMessage() {} + +func (x *UtxopsbtResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[101] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UtxopsbtResponse.ProtoReflect.Descriptor instead. +func (*UtxopsbtResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{101} +} + +func (x *UtxopsbtResponse) GetPsbt() string { + if x != nil { + return x.Psbt + } + return "" +} + +func (x *UtxopsbtResponse) GetFeeratePerKw() uint32 { + if x != nil { + return x.FeeratePerKw + } + return 0 +} + +func (x *UtxopsbtResponse) GetEstimatedFinalWeight() uint32 { + if x != nil { + return x.EstimatedFinalWeight + } + return 0 +} + +func (x *UtxopsbtResponse) GetExcessMsat() *Amount { + if x != nil { + return x.ExcessMsat + } + return nil +} + +func (x *UtxopsbtResponse) GetChangeOutnum() uint32 { + if x != nil && x.ChangeOutnum != nil { + return *x.ChangeOutnum + } + return 0 +} + +func (x *UtxopsbtResponse) GetReservations() []*UtxopsbtReservations { + if x != nil { + return x.Reservations + } + return nil +} + +type UtxopsbtReservations struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` + Vout uint32 `protobuf:"varint,2,opt,name=vout,proto3" json:"vout,omitempty"` + WasReserved bool `protobuf:"varint,3,opt,name=was_reserved,json=wasReserved,proto3" json:"was_reserved,omitempty"` + Reserved bool `protobuf:"varint,4,opt,name=reserved,proto3" json:"reserved,omitempty"` + ReservedToBlock uint32 `protobuf:"varint,5,opt,name=reserved_to_block,json=reservedToBlock,proto3" json:"reserved_to_block,omitempty"` +} + +func (x *UtxopsbtReservations) Reset() { + *x = UtxopsbtReservations{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UtxopsbtReservations) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UtxopsbtReservations) ProtoMessage() {} + +func (x *UtxopsbtReservations) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[102] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UtxopsbtReservations.ProtoReflect.Descriptor instead. +func (*UtxopsbtReservations) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{102} +} + +func (x *UtxopsbtReservations) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *UtxopsbtReservations) GetVout() uint32 { + if x != nil { + return x.Vout + } + return 0 +} + +func (x *UtxopsbtReservations) GetWasReserved() bool { + if x != nil { + return x.WasReserved + } + return false +} + +func (x *UtxopsbtReservations) GetReserved() bool { + if x != nil { + return x.Reserved + } + return false +} + +func (x *UtxopsbtReservations) GetReservedToBlock() uint32 { + if x != nil { + return x.ReservedToBlock + } + return 0 +} + +type TxdiscardRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *TxdiscardRequest) Reset() { + *x = TxdiscardRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxdiscardRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxdiscardRequest) ProtoMessage() {} + +func (x *TxdiscardRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[103] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxdiscardRequest.ProtoReflect.Descriptor instead. +func (*TxdiscardRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{103} +} + +func (x *TxdiscardRequest) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +type TxdiscardResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UnsignedTx []byte `protobuf:"bytes,1,opt,name=unsigned_tx,json=unsignedTx,proto3" json:"unsigned_tx,omitempty"` + Txid []byte `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *TxdiscardResponse) Reset() { + *x = TxdiscardResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxdiscardResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxdiscardResponse) ProtoMessage() {} + +func (x *TxdiscardResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[104] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxdiscardResponse.ProtoReflect.Descriptor instead. +func (*TxdiscardResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{104} +} + +func (x *TxdiscardResponse) GetUnsignedTx() []byte { + if x != nil { + return x.UnsignedTx + } + return nil +} + +func (x *TxdiscardResponse) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +type TxprepareRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Outputs []*OutputDesc `protobuf:"bytes,5,rep,name=outputs,proto3" json:"outputs,omitempty"` + Feerate *Feerate `protobuf:"bytes,2,opt,name=feerate,proto3,oneof" json:"feerate,omitempty"` + Minconf *uint32 `protobuf:"varint,3,opt,name=minconf,proto3,oneof" json:"minconf,omitempty"` + Utxos []*Outpoint `protobuf:"bytes,4,rep,name=utxos,proto3" json:"utxos,omitempty"` +} + +func (x *TxprepareRequest) Reset() { + *x = TxprepareRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxprepareRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxprepareRequest) ProtoMessage() {} + +func (x *TxprepareRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[105] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxprepareRequest.ProtoReflect.Descriptor instead. +func (*TxprepareRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{105} +} + +func (x *TxprepareRequest) GetOutputs() []*OutputDesc { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *TxprepareRequest) GetFeerate() *Feerate { + if x != nil { + return x.Feerate + } + return nil +} + +func (x *TxprepareRequest) GetMinconf() uint32 { + if x != nil && x.Minconf != nil { + return *x.Minconf + } + return 0 +} + +func (x *TxprepareRequest) GetUtxos() []*Outpoint { + if x != nil { + return x.Utxos + } + return nil +} + +type TxprepareResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Psbt string `protobuf:"bytes,1,opt,name=psbt,proto3" json:"psbt,omitempty"` + UnsignedTx []byte `protobuf:"bytes,2,opt,name=unsigned_tx,json=unsignedTx,proto3" json:"unsigned_tx,omitempty"` + Txid []byte `protobuf:"bytes,3,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *TxprepareResponse) Reset() { + *x = TxprepareResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxprepareResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxprepareResponse) ProtoMessage() {} + +func (x *TxprepareResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[106] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxprepareResponse.ProtoReflect.Descriptor instead. +func (*TxprepareResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{106} +} + +func (x *TxprepareResponse) GetPsbt() string { + if x != nil { + return x.Psbt + } + return "" +} + +func (x *TxprepareResponse) GetUnsignedTx() []byte { + if x != nil { + return x.UnsignedTx + } + return nil +} + +func (x *TxprepareResponse) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +type TxsendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *TxsendRequest) Reset() { + *x = TxsendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxsendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxsendRequest) ProtoMessage() {} + +func (x *TxsendRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[107] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxsendRequest.ProtoReflect.Descriptor instead. +func (*TxsendRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{107} +} + +func (x *TxsendRequest) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +type TxsendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Psbt string `protobuf:"bytes,1,opt,name=psbt,proto3" json:"psbt,omitempty"` + Tx []byte `protobuf:"bytes,2,opt,name=tx,proto3" json:"tx,omitempty"` + Txid []byte `protobuf:"bytes,3,opt,name=txid,proto3" json:"txid,omitempty"` +} + +func (x *TxsendResponse) Reset() { + *x = TxsendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxsendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxsendResponse) ProtoMessage() {} + +func (x *TxsendResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[108] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxsendResponse.ProtoReflect.Descriptor instead. +func (*TxsendResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{108} +} + +func (x *TxsendResponse) GetPsbt() string { + if x != nil { + return x.Psbt + } + return "" +} + +func (x *TxsendResponse) GetTx() []byte { + if x != nil { + return x.Tx + } + return nil +} + +func (x *TxsendResponse) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +type ListpeerchannelsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` +} + +func (x *ListpeerchannelsRequest) Reset() { + *x = ListpeerchannelsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsRequest) ProtoMessage() {} + +func (x *ListpeerchannelsRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[109] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsRequest.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{109} +} + +func (x *ListpeerchannelsRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +type ListpeerchannelsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Channels []*ListpeerchannelsChannels `protobuf:"bytes,1,rep,name=channels,proto3" json:"channels,omitempty"` +} + +func (x *ListpeerchannelsResponse) Reset() { + *x = ListpeerchannelsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsResponse) ProtoMessage() {} + +func (x *ListpeerchannelsResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[110] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsResponse.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{110} +} + +func (x *ListpeerchannelsResponse) GetChannels() []*ListpeerchannelsChannels { + if x != nil { + return x.Channels + } + return nil +} + +type ListpeerchannelsChannels struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId []byte `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3,oneof" json:"peer_id,omitempty"` + PeerConnected *bool `protobuf:"varint,2,opt,name=peer_connected,json=peerConnected,proto3,oneof" json:"peer_connected,omitempty"` + State *ListpeerchannelsChannels_ListpeerchannelsChannelsState `protobuf:"varint,3,opt,name=state,proto3,enum=cln.ListpeerchannelsChannels_ListpeerchannelsChannelsState,oneof" json:"state,omitempty"` + ScratchTxid []byte `protobuf:"bytes,4,opt,name=scratch_txid,json=scratchTxid,proto3,oneof" json:"scratch_txid,omitempty"` + Updates *ListpeerchannelsChannelsUpdates `protobuf:"bytes,55,opt,name=updates,proto3,oneof" json:"updates,omitempty"` + IgnoreFeeLimits *bool `protobuf:"varint,54,opt,name=ignore_fee_limits,json=ignoreFeeLimits,proto3,oneof" json:"ignore_fee_limits,omitempty"` + LostState *bool `protobuf:"varint,57,opt,name=lost_state,json=lostState,proto3,oneof" json:"lost_state,omitempty"` + Feerate *ListpeerchannelsChannelsFeerate `protobuf:"bytes,6,opt,name=feerate,proto3,oneof" json:"feerate,omitempty"` + Owner *string `protobuf:"bytes,7,opt,name=owner,proto3,oneof" json:"owner,omitempty"` + ShortChannelId *string `protobuf:"bytes,8,opt,name=short_channel_id,json=shortChannelId,proto3,oneof" json:"short_channel_id,omitempty"` + ChannelId []byte `protobuf:"bytes,9,opt,name=channel_id,json=channelId,proto3,oneof" json:"channel_id,omitempty"` + FundingTxid []byte `protobuf:"bytes,10,opt,name=funding_txid,json=fundingTxid,proto3,oneof" json:"funding_txid,omitempty"` + FundingOutnum *uint32 `protobuf:"varint,11,opt,name=funding_outnum,json=fundingOutnum,proto3,oneof" json:"funding_outnum,omitempty"` + InitialFeerate *string `protobuf:"bytes,12,opt,name=initial_feerate,json=initialFeerate,proto3,oneof" json:"initial_feerate,omitempty"` + LastFeerate *string `protobuf:"bytes,13,opt,name=last_feerate,json=lastFeerate,proto3,oneof" json:"last_feerate,omitempty"` + NextFeerate *string `protobuf:"bytes,14,opt,name=next_feerate,json=nextFeerate,proto3,oneof" json:"next_feerate,omitempty"` + NextFeeStep *uint32 `protobuf:"varint,15,opt,name=next_fee_step,json=nextFeeStep,proto3,oneof" json:"next_fee_step,omitempty"` + Inflight []*ListpeerchannelsChannelsInflight `protobuf:"bytes,16,rep,name=inflight,proto3" json:"inflight,omitempty"` + CloseTo []byte `protobuf:"bytes,17,opt,name=close_to,json=closeTo,proto3,oneof" json:"close_to,omitempty"` + Private *bool `protobuf:"varint,18,opt,name=private,proto3,oneof" json:"private,omitempty"` + Opener *ChannelSide `protobuf:"varint,19,opt,name=opener,proto3,enum=cln.ChannelSide,oneof" json:"opener,omitempty"` + Closer *ChannelSide `protobuf:"varint,20,opt,name=closer,proto3,enum=cln.ChannelSide,oneof" json:"closer,omitempty"` + Funding *ListpeerchannelsChannelsFunding `protobuf:"bytes,22,opt,name=funding,proto3,oneof" json:"funding,omitempty"` + ToUsMsat *Amount `protobuf:"bytes,23,opt,name=to_us_msat,json=toUsMsat,proto3,oneof" json:"to_us_msat,omitempty"` + MinToUsMsat *Amount `protobuf:"bytes,24,opt,name=min_to_us_msat,json=minToUsMsat,proto3,oneof" json:"min_to_us_msat,omitempty"` + MaxToUsMsat *Amount `protobuf:"bytes,25,opt,name=max_to_us_msat,json=maxToUsMsat,proto3,oneof" json:"max_to_us_msat,omitempty"` + TotalMsat *Amount `protobuf:"bytes,26,opt,name=total_msat,json=totalMsat,proto3,oneof" json:"total_msat,omitempty"` + FeeBaseMsat *Amount `protobuf:"bytes,27,opt,name=fee_base_msat,json=feeBaseMsat,proto3,oneof" json:"fee_base_msat,omitempty"` + FeeProportionalMillionths *uint32 `protobuf:"varint,28,opt,name=fee_proportional_millionths,json=feeProportionalMillionths,proto3,oneof" json:"fee_proportional_millionths,omitempty"` + DustLimitMsat *Amount `protobuf:"bytes,29,opt,name=dust_limit_msat,json=dustLimitMsat,proto3,oneof" json:"dust_limit_msat,omitempty"` + MaxTotalHtlcInMsat *Amount `protobuf:"bytes,30,opt,name=max_total_htlc_in_msat,json=maxTotalHtlcInMsat,proto3,oneof" json:"max_total_htlc_in_msat,omitempty"` + TheirReserveMsat *Amount `protobuf:"bytes,31,opt,name=their_reserve_msat,json=theirReserveMsat,proto3,oneof" json:"their_reserve_msat,omitempty"` + OurReserveMsat *Amount `protobuf:"bytes,32,opt,name=our_reserve_msat,json=ourReserveMsat,proto3,oneof" json:"our_reserve_msat,omitempty"` + SpendableMsat *Amount `protobuf:"bytes,33,opt,name=spendable_msat,json=spendableMsat,proto3,oneof" json:"spendable_msat,omitempty"` + ReceivableMsat *Amount `protobuf:"bytes,34,opt,name=receivable_msat,json=receivableMsat,proto3,oneof" json:"receivable_msat,omitempty"` + MinimumHtlcInMsat *Amount `protobuf:"bytes,35,opt,name=minimum_htlc_in_msat,json=minimumHtlcInMsat,proto3,oneof" json:"minimum_htlc_in_msat,omitempty"` + MinimumHtlcOutMsat *Amount `protobuf:"bytes,36,opt,name=minimum_htlc_out_msat,json=minimumHtlcOutMsat,proto3,oneof" json:"minimum_htlc_out_msat,omitempty"` + MaximumHtlcOutMsat *Amount `protobuf:"bytes,37,opt,name=maximum_htlc_out_msat,json=maximumHtlcOutMsat,proto3,oneof" json:"maximum_htlc_out_msat,omitempty"` + TheirToSelfDelay *uint32 `protobuf:"varint,38,opt,name=their_to_self_delay,json=theirToSelfDelay,proto3,oneof" json:"their_to_self_delay,omitempty"` + OurToSelfDelay *uint32 `protobuf:"varint,39,opt,name=our_to_self_delay,json=ourToSelfDelay,proto3,oneof" json:"our_to_self_delay,omitempty"` + MaxAcceptedHtlcs *uint32 `protobuf:"varint,40,opt,name=max_accepted_htlcs,json=maxAcceptedHtlcs,proto3,oneof" json:"max_accepted_htlcs,omitempty"` + Alias *ListpeerchannelsChannelsAlias `protobuf:"bytes,41,opt,name=alias,proto3,oneof" json:"alias,omitempty"` + Status []string `protobuf:"bytes,43,rep,name=status,proto3" json:"status,omitempty"` + InPaymentsOffered *uint64 `protobuf:"varint,44,opt,name=in_payments_offered,json=inPaymentsOffered,proto3,oneof" json:"in_payments_offered,omitempty"` + InOfferedMsat *Amount `protobuf:"bytes,45,opt,name=in_offered_msat,json=inOfferedMsat,proto3,oneof" json:"in_offered_msat,omitempty"` + InPaymentsFulfilled *uint64 `protobuf:"varint,46,opt,name=in_payments_fulfilled,json=inPaymentsFulfilled,proto3,oneof" json:"in_payments_fulfilled,omitempty"` + InFulfilledMsat *Amount `protobuf:"bytes,47,opt,name=in_fulfilled_msat,json=inFulfilledMsat,proto3,oneof" json:"in_fulfilled_msat,omitempty"` + OutPaymentsOffered *uint64 `protobuf:"varint,48,opt,name=out_payments_offered,json=outPaymentsOffered,proto3,oneof" json:"out_payments_offered,omitempty"` + OutOfferedMsat *Amount `protobuf:"bytes,49,opt,name=out_offered_msat,json=outOfferedMsat,proto3,oneof" json:"out_offered_msat,omitempty"` + OutPaymentsFulfilled *uint64 `protobuf:"varint,50,opt,name=out_payments_fulfilled,json=outPaymentsFulfilled,proto3,oneof" json:"out_payments_fulfilled,omitempty"` + OutFulfilledMsat *Amount `protobuf:"bytes,51,opt,name=out_fulfilled_msat,json=outFulfilledMsat,proto3,oneof" json:"out_fulfilled_msat,omitempty"` + LastStableConnection *uint64 `protobuf:"varint,56,opt,name=last_stable_connection,json=lastStableConnection,proto3,oneof" json:"last_stable_connection,omitempty"` + Htlcs []*ListpeerchannelsChannelsHtlcs `protobuf:"bytes,52,rep,name=htlcs,proto3" json:"htlcs,omitempty"` + CloseToAddr *string `protobuf:"bytes,53,opt,name=close_to_addr,json=closeToAddr,proto3,oneof" json:"close_to_addr,omitempty"` +} + +func (x *ListpeerchannelsChannels) Reset() { + *x = ListpeerchannelsChannels{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannels) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannels) ProtoMessage() {} + +func (x *ListpeerchannelsChannels) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[111] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannels.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannels) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{111} +} + +func (x *ListpeerchannelsChannels) GetPeerId() []byte { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *ListpeerchannelsChannels) GetPeerConnected() bool { + if x != nil && x.PeerConnected != nil { + return *x.PeerConnected + } + return false +} + +func (x *ListpeerchannelsChannels) GetState() ListpeerchannelsChannels_ListpeerchannelsChannelsState { + if x != nil && x.State != nil { + return *x.State + } + return ListpeerchannelsChannels_OPENINGD +} + +func (x *ListpeerchannelsChannels) GetScratchTxid() []byte { + if x != nil { + return x.ScratchTxid + } + return nil +} + +func (x *ListpeerchannelsChannels) GetUpdates() *ListpeerchannelsChannelsUpdates { + if x != nil { + return x.Updates + } + return nil +} + +func (x *ListpeerchannelsChannels) GetIgnoreFeeLimits() bool { + if x != nil && x.IgnoreFeeLimits != nil { + return *x.IgnoreFeeLimits + } + return false +} + +func (x *ListpeerchannelsChannels) GetLostState() bool { + if x != nil && x.LostState != nil { + return *x.LostState + } + return false +} + +func (x *ListpeerchannelsChannels) GetFeerate() *ListpeerchannelsChannelsFeerate { + if x != nil { + return x.Feerate + } + return nil +} + +func (x *ListpeerchannelsChannels) GetOwner() string { + if x != nil && x.Owner != nil { + return *x.Owner + } + return "" +} + +func (x *ListpeerchannelsChannels) GetShortChannelId() string { + if x != nil && x.ShortChannelId != nil { + return *x.ShortChannelId + } + return "" +} + +func (x *ListpeerchannelsChannels) GetChannelId() []byte { + if x != nil { + return x.ChannelId + } + return nil +} + +func (x *ListpeerchannelsChannels) GetFundingTxid() []byte { + if x != nil { + return x.FundingTxid + } + return nil +} + +func (x *ListpeerchannelsChannels) GetFundingOutnum() uint32 { + if x != nil && x.FundingOutnum != nil { + return *x.FundingOutnum + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetInitialFeerate() string { + if x != nil && x.InitialFeerate != nil { + return *x.InitialFeerate + } + return "" +} + +func (x *ListpeerchannelsChannels) GetLastFeerate() string { + if x != nil && x.LastFeerate != nil { + return *x.LastFeerate + } + return "" +} + +func (x *ListpeerchannelsChannels) GetNextFeerate() string { + if x != nil && x.NextFeerate != nil { + return *x.NextFeerate + } + return "" +} + +func (x *ListpeerchannelsChannels) GetNextFeeStep() uint32 { + if x != nil && x.NextFeeStep != nil { + return *x.NextFeeStep + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetInflight() []*ListpeerchannelsChannelsInflight { + if x != nil { + return x.Inflight + } + return nil +} + +func (x *ListpeerchannelsChannels) GetCloseTo() []byte { + if x != nil { + return x.CloseTo + } + return nil +} + +func (x *ListpeerchannelsChannels) GetPrivate() bool { + if x != nil && x.Private != nil { + return *x.Private + } + return false +} + +func (x *ListpeerchannelsChannels) GetOpener() ChannelSide { + if x != nil && x.Opener != nil { + return *x.Opener + } + return ChannelSide_LOCAL +} + +func (x *ListpeerchannelsChannels) GetCloser() ChannelSide { + if x != nil && x.Closer != nil { + return *x.Closer + } + return ChannelSide_LOCAL +} + +func (x *ListpeerchannelsChannels) GetFunding() *ListpeerchannelsChannelsFunding { + if x != nil { + return x.Funding + } + return nil +} + +func (x *ListpeerchannelsChannels) GetToUsMsat() *Amount { + if x != nil { + return x.ToUsMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetMinToUsMsat() *Amount { + if x != nil { + return x.MinToUsMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetMaxToUsMsat() *Amount { + if x != nil { + return x.MaxToUsMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetTotalMsat() *Amount { + if x != nil { + return x.TotalMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetFeeBaseMsat() *Amount { + if x != nil { + return x.FeeBaseMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetFeeProportionalMillionths() uint32 { + if x != nil && x.FeeProportionalMillionths != nil { + return *x.FeeProportionalMillionths + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetDustLimitMsat() *Amount { + if x != nil { + return x.DustLimitMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetMaxTotalHtlcInMsat() *Amount { + if x != nil { + return x.MaxTotalHtlcInMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetTheirReserveMsat() *Amount { + if x != nil { + return x.TheirReserveMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetOurReserveMsat() *Amount { + if x != nil { + return x.OurReserveMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetSpendableMsat() *Amount { + if x != nil { + return x.SpendableMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetReceivableMsat() *Amount { + if x != nil { + return x.ReceivableMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetMinimumHtlcInMsat() *Amount { + if x != nil { + return x.MinimumHtlcInMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetMinimumHtlcOutMsat() *Amount { + if x != nil { + return x.MinimumHtlcOutMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetMaximumHtlcOutMsat() *Amount { + if x != nil { + return x.MaximumHtlcOutMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetTheirToSelfDelay() uint32 { + if x != nil && x.TheirToSelfDelay != nil { + return *x.TheirToSelfDelay + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetOurToSelfDelay() uint32 { + if x != nil && x.OurToSelfDelay != nil { + return *x.OurToSelfDelay + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetMaxAcceptedHtlcs() uint32 { + if x != nil && x.MaxAcceptedHtlcs != nil { + return *x.MaxAcceptedHtlcs + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetAlias() *ListpeerchannelsChannelsAlias { + if x != nil { + return x.Alias + } + return nil +} + +func (x *ListpeerchannelsChannels) GetStatus() []string { + if x != nil { + return x.Status + } + return nil +} + +func (x *ListpeerchannelsChannels) GetInPaymentsOffered() uint64 { + if x != nil && x.InPaymentsOffered != nil { + return *x.InPaymentsOffered + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetInOfferedMsat() *Amount { + if x != nil { + return x.InOfferedMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetInPaymentsFulfilled() uint64 { + if x != nil && x.InPaymentsFulfilled != nil { + return *x.InPaymentsFulfilled + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetInFulfilledMsat() *Amount { + if x != nil { + return x.InFulfilledMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetOutPaymentsOffered() uint64 { + if x != nil && x.OutPaymentsOffered != nil { + return *x.OutPaymentsOffered + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetOutOfferedMsat() *Amount { + if x != nil { + return x.OutOfferedMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetOutPaymentsFulfilled() uint64 { + if x != nil && x.OutPaymentsFulfilled != nil { + return *x.OutPaymentsFulfilled + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetOutFulfilledMsat() *Amount { + if x != nil { + return x.OutFulfilledMsat + } + return nil +} + +func (x *ListpeerchannelsChannels) GetLastStableConnection() uint64 { + if x != nil && x.LastStableConnection != nil { + return *x.LastStableConnection + } + return 0 +} + +func (x *ListpeerchannelsChannels) GetHtlcs() []*ListpeerchannelsChannelsHtlcs { + if x != nil { + return x.Htlcs + } + return nil +} + +func (x *ListpeerchannelsChannels) GetCloseToAddr() string { + if x != nil && x.CloseToAddr != nil { + return *x.CloseToAddr + } + return "" +} + +type ListpeerchannelsChannelsUpdates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Local *ListpeerchannelsChannelsUpdatesLocal `protobuf:"bytes,1,opt,name=local,proto3,oneof" json:"local,omitempty"` + Remote *ListpeerchannelsChannelsUpdatesRemote `protobuf:"bytes,2,opt,name=remote,proto3,oneof" json:"remote,omitempty"` +} + +func (x *ListpeerchannelsChannelsUpdates) Reset() { + *x = ListpeerchannelsChannelsUpdates{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannelsUpdates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannelsUpdates) ProtoMessage() {} + +func (x *ListpeerchannelsChannelsUpdates) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[112] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannelsUpdates.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannelsUpdates) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{112} +} + +func (x *ListpeerchannelsChannelsUpdates) GetLocal() *ListpeerchannelsChannelsUpdatesLocal { + if x != nil { + return x.Local + } + return nil +} + +func (x *ListpeerchannelsChannelsUpdates) GetRemote() *ListpeerchannelsChannelsUpdatesRemote { + if x != nil { + return x.Remote + } + return nil +} + +type ListpeerchannelsChannelsUpdatesLocal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HtlcMinimumMsat *Amount `protobuf:"bytes,1,opt,name=htlc_minimum_msat,json=htlcMinimumMsat,proto3,oneof" json:"htlc_minimum_msat,omitempty"` + HtlcMaximumMsat *Amount `protobuf:"bytes,2,opt,name=htlc_maximum_msat,json=htlcMaximumMsat,proto3,oneof" json:"htlc_maximum_msat,omitempty"` + CltvExpiryDelta *uint32 `protobuf:"varint,3,opt,name=cltv_expiry_delta,json=cltvExpiryDelta,proto3,oneof" json:"cltv_expiry_delta,omitempty"` + FeeBaseMsat *Amount `protobuf:"bytes,4,opt,name=fee_base_msat,json=feeBaseMsat,proto3,oneof" json:"fee_base_msat,omitempty"` + FeeProportionalMillionths *uint32 `protobuf:"varint,5,opt,name=fee_proportional_millionths,json=feeProportionalMillionths,proto3,oneof" json:"fee_proportional_millionths,omitempty"` +} + +func (x *ListpeerchannelsChannelsUpdatesLocal) Reset() { + *x = ListpeerchannelsChannelsUpdatesLocal{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannelsUpdatesLocal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannelsUpdatesLocal) ProtoMessage() {} + +func (x *ListpeerchannelsChannelsUpdatesLocal) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[113] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannelsUpdatesLocal.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannelsUpdatesLocal) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{113} +} + +func (x *ListpeerchannelsChannelsUpdatesLocal) GetHtlcMinimumMsat() *Amount { + if x != nil { + return x.HtlcMinimumMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsUpdatesLocal) GetHtlcMaximumMsat() *Amount { + if x != nil { + return x.HtlcMaximumMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsUpdatesLocal) GetCltvExpiryDelta() uint32 { + if x != nil && x.CltvExpiryDelta != nil { + return *x.CltvExpiryDelta + } + return 0 +} + +func (x *ListpeerchannelsChannelsUpdatesLocal) GetFeeBaseMsat() *Amount { + if x != nil { + return x.FeeBaseMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsUpdatesLocal) GetFeeProportionalMillionths() uint32 { + if x != nil && x.FeeProportionalMillionths != nil { + return *x.FeeProportionalMillionths + } + return 0 +} + +type ListpeerchannelsChannelsUpdatesRemote struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HtlcMinimumMsat *Amount `protobuf:"bytes,1,opt,name=htlc_minimum_msat,json=htlcMinimumMsat,proto3,oneof" json:"htlc_minimum_msat,omitempty"` + HtlcMaximumMsat *Amount `protobuf:"bytes,2,opt,name=htlc_maximum_msat,json=htlcMaximumMsat,proto3,oneof" json:"htlc_maximum_msat,omitempty"` + CltvExpiryDelta *uint32 `protobuf:"varint,3,opt,name=cltv_expiry_delta,json=cltvExpiryDelta,proto3,oneof" json:"cltv_expiry_delta,omitempty"` + FeeBaseMsat *Amount `protobuf:"bytes,4,opt,name=fee_base_msat,json=feeBaseMsat,proto3,oneof" json:"fee_base_msat,omitempty"` + FeeProportionalMillionths *uint32 `protobuf:"varint,5,opt,name=fee_proportional_millionths,json=feeProportionalMillionths,proto3,oneof" json:"fee_proportional_millionths,omitempty"` +} + +func (x *ListpeerchannelsChannelsUpdatesRemote) Reset() { + *x = ListpeerchannelsChannelsUpdatesRemote{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannelsUpdatesRemote) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannelsUpdatesRemote) ProtoMessage() {} + +func (x *ListpeerchannelsChannelsUpdatesRemote) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[114] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannelsUpdatesRemote.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannelsUpdatesRemote) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{114} +} + +func (x *ListpeerchannelsChannelsUpdatesRemote) GetHtlcMinimumMsat() *Amount { + if x != nil { + return x.HtlcMinimumMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsUpdatesRemote) GetHtlcMaximumMsat() *Amount { + if x != nil { + return x.HtlcMaximumMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsUpdatesRemote) GetCltvExpiryDelta() uint32 { + if x != nil && x.CltvExpiryDelta != nil { + return *x.CltvExpiryDelta + } + return 0 +} + +func (x *ListpeerchannelsChannelsUpdatesRemote) GetFeeBaseMsat() *Amount { + if x != nil { + return x.FeeBaseMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsUpdatesRemote) GetFeeProportionalMillionths() uint32 { + if x != nil && x.FeeProportionalMillionths != nil { + return *x.FeeProportionalMillionths + } + return 0 +} + +type ListpeerchannelsChannelsFeerate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Perkw *uint32 `protobuf:"varint,1,opt,name=perkw,proto3,oneof" json:"perkw,omitempty"` + Perkb *uint32 `protobuf:"varint,2,opt,name=perkb,proto3,oneof" json:"perkb,omitempty"` +} + +func (x *ListpeerchannelsChannelsFeerate) Reset() { + *x = ListpeerchannelsChannelsFeerate{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannelsFeerate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannelsFeerate) ProtoMessage() {} + +func (x *ListpeerchannelsChannelsFeerate) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[115] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannelsFeerate.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannelsFeerate) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{115} +} + +func (x *ListpeerchannelsChannelsFeerate) GetPerkw() uint32 { + if x != nil && x.Perkw != nil { + return *x.Perkw + } + return 0 +} + +func (x *ListpeerchannelsChannelsFeerate) GetPerkb() uint32 { + if x != nil && x.Perkb != nil { + return *x.Perkb + } + return 0 +} + +type ListpeerchannelsChannelsInflight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FundingTxid []byte `protobuf:"bytes,1,opt,name=funding_txid,json=fundingTxid,proto3,oneof" json:"funding_txid,omitempty"` + FundingOutnum *uint32 `protobuf:"varint,2,opt,name=funding_outnum,json=fundingOutnum,proto3,oneof" json:"funding_outnum,omitempty"` + Feerate *string `protobuf:"bytes,3,opt,name=feerate,proto3,oneof" json:"feerate,omitempty"` + TotalFundingMsat *Amount `protobuf:"bytes,4,opt,name=total_funding_msat,json=totalFundingMsat,proto3,oneof" json:"total_funding_msat,omitempty"` + SpliceAmount *int64 `protobuf:"zigzag64,7,opt,name=splice_amount,json=spliceAmount,proto3,oneof" json:"splice_amount,omitempty"` + OurFundingMsat *Amount `protobuf:"bytes,5,opt,name=our_funding_msat,json=ourFundingMsat,proto3,oneof" json:"our_funding_msat,omitempty"` + ScratchTxid []byte `protobuf:"bytes,6,opt,name=scratch_txid,json=scratchTxid,proto3,oneof" json:"scratch_txid,omitempty"` +} + +func (x *ListpeerchannelsChannelsInflight) Reset() { + *x = ListpeerchannelsChannelsInflight{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannelsInflight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannelsInflight) ProtoMessage() {} + +func (x *ListpeerchannelsChannelsInflight) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[116] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannelsInflight.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannelsInflight) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{116} +} + +func (x *ListpeerchannelsChannelsInflight) GetFundingTxid() []byte { + if x != nil { + return x.FundingTxid + } + return nil +} + +func (x *ListpeerchannelsChannelsInflight) GetFundingOutnum() uint32 { + if x != nil && x.FundingOutnum != nil { + return *x.FundingOutnum + } + return 0 +} + +func (x *ListpeerchannelsChannelsInflight) GetFeerate() string { + if x != nil && x.Feerate != nil { + return *x.Feerate + } + return "" +} + +func (x *ListpeerchannelsChannelsInflight) GetTotalFundingMsat() *Amount { + if x != nil { + return x.TotalFundingMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsInflight) GetSpliceAmount() int64 { + if x != nil && x.SpliceAmount != nil { + return *x.SpliceAmount + } + return 0 +} + +func (x *ListpeerchannelsChannelsInflight) GetOurFundingMsat() *Amount { + if x != nil { + return x.OurFundingMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsInflight) GetScratchTxid() []byte { + if x != nil { + return x.ScratchTxid + } + return nil +} + +type ListpeerchannelsChannelsFunding struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PushedMsat *Amount `protobuf:"bytes,1,opt,name=pushed_msat,json=pushedMsat,proto3,oneof" json:"pushed_msat,omitempty"` + LocalFundsMsat *Amount `protobuf:"bytes,2,opt,name=local_funds_msat,json=localFundsMsat,proto3,oneof" json:"local_funds_msat,omitempty"` + RemoteFundsMsat *Amount `protobuf:"bytes,3,opt,name=remote_funds_msat,json=remoteFundsMsat,proto3,oneof" json:"remote_funds_msat,omitempty"` + FeePaidMsat *Amount `protobuf:"bytes,4,opt,name=fee_paid_msat,json=feePaidMsat,proto3,oneof" json:"fee_paid_msat,omitempty"` + FeeRcvdMsat *Amount `protobuf:"bytes,5,opt,name=fee_rcvd_msat,json=feeRcvdMsat,proto3,oneof" json:"fee_rcvd_msat,omitempty"` +} + +func (x *ListpeerchannelsChannelsFunding) Reset() { + *x = ListpeerchannelsChannelsFunding{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannelsFunding) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannelsFunding) ProtoMessage() {} + +func (x *ListpeerchannelsChannelsFunding) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[117] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannelsFunding.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannelsFunding) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{117} +} + +func (x *ListpeerchannelsChannelsFunding) GetPushedMsat() *Amount { + if x != nil { + return x.PushedMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsFunding) GetLocalFundsMsat() *Amount { + if x != nil { + return x.LocalFundsMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsFunding) GetRemoteFundsMsat() *Amount { + if x != nil { + return x.RemoteFundsMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsFunding) GetFeePaidMsat() *Amount { + if x != nil { + return x.FeePaidMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsFunding) GetFeeRcvdMsat() *Amount { + if x != nil { + return x.FeeRcvdMsat + } + return nil +} + +type ListpeerchannelsChannelsAlias struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Local *string `protobuf:"bytes,1,opt,name=local,proto3,oneof" json:"local,omitempty"` + Remote *string `protobuf:"bytes,2,opt,name=remote,proto3,oneof" json:"remote,omitempty"` +} + +func (x *ListpeerchannelsChannelsAlias) Reset() { + *x = ListpeerchannelsChannelsAlias{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannelsAlias) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannelsAlias) ProtoMessage() {} + +func (x *ListpeerchannelsChannelsAlias) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[118] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannelsAlias.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannelsAlias) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{118} +} + +func (x *ListpeerchannelsChannelsAlias) GetLocal() string { + if x != nil && x.Local != nil { + return *x.Local + } + return "" +} + +func (x *ListpeerchannelsChannelsAlias) GetRemote() string { + if x != nil && x.Remote != nil { + return *x.Remote + } + return "" +} + +type ListpeerchannelsChannelsHtlcs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Direction *ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection `protobuf:"varint,1,opt,name=direction,proto3,enum=cln.ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection,oneof" json:"direction,omitempty"` + Id *uint64 `protobuf:"varint,2,opt,name=id,proto3,oneof" json:"id,omitempty"` + AmountMsat *Amount `protobuf:"bytes,3,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Expiry *uint32 `protobuf:"varint,4,opt,name=expiry,proto3,oneof" json:"expiry,omitempty"` + PaymentHash []byte `protobuf:"bytes,5,opt,name=payment_hash,json=paymentHash,proto3,oneof" json:"payment_hash,omitempty"` + LocalTrimmed *bool `protobuf:"varint,6,opt,name=local_trimmed,json=localTrimmed,proto3,oneof" json:"local_trimmed,omitempty"` + Status *string `protobuf:"bytes,7,opt,name=status,proto3,oneof" json:"status,omitempty"` + State *HtlcState `protobuf:"varint,8,opt,name=state,proto3,enum=cln.HtlcState,oneof" json:"state,omitempty"` +} + +func (x *ListpeerchannelsChannelsHtlcs) Reset() { + *x = ListpeerchannelsChannelsHtlcs{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpeerchannelsChannelsHtlcs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpeerchannelsChannelsHtlcs) ProtoMessage() {} + +func (x *ListpeerchannelsChannelsHtlcs) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[119] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpeerchannelsChannelsHtlcs.ProtoReflect.Descriptor instead. +func (*ListpeerchannelsChannelsHtlcs) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{119} +} + +func (x *ListpeerchannelsChannelsHtlcs) GetDirection() ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection { + if x != nil && x.Direction != nil { + return *x.Direction + } + return ListpeerchannelsChannelsHtlcs_IN +} + +func (x *ListpeerchannelsChannelsHtlcs) GetId() uint64 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *ListpeerchannelsChannelsHtlcs) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListpeerchannelsChannelsHtlcs) GetExpiry() uint32 { + if x != nil && x.Expiry != nil { + return *x.Expiry + } + return 0 +} + +func (x *ListpeerchannelsChannelsHtlcs) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListpeerchannelsChannelsHtlcs) GetLocalTrimmed() bool { + if x != nil && x.LocalTrimmed != nil { + return *x.LocalTrimmed + } + return false +} + +func (x *ListpeerchannelsChannelsHtlcs) GetStatus() string { + if x != nil && x.Status != nil { + return *x.Status + } + return "" +} + +func (x *ListpeerchannelsChannelsHtlcs) GetState() HtlcState { + if x != nil && x.State != nil { + return *x.State + } + return HtlcState_SentAddHtlc +} + +type ListclosedchannelsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` +} + +func (x *ListclosedchannelsRequest) Reset() { + *x = ListclosedchannelsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListclosedchannelsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListclosedchannelsRequest) ProtoMessage() {} + +func (x *ListclosedchannelsRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[120] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListclosedchannelsRequest.ProtoReflect.Descriptor instead. +func (*ListclosedchannelsRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{120} +} + +func (x *ListclosedchannelsRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +type ListclosedchannelsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Closedchannels []*ListclosedchannelsClosedchannels `protobuf:"bytes,1,rep,name=closedchannels,proto3" json:"closedchannels,omitempty"` +} + +func (x *ListclosedchannelsResponse) Reset() { + *x = ListclosedchannelsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListclosedchannelsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListclosedchannelsResponse) ProtoMessage() {} + +func (x *ListclosedchannelsResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[121] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListclosedchannelsResponse.ProtoReflect.Descriptor instead. +func (*ListclosedchannelsResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{121} +} + +func (x *ListclosedchannelsResponse) GetClosedchannels() []*ListclosedchannelsClosedchannels { + if x != nil { + return x.Closedchannels + } + return nil +} + +type ListclosedchannelsClosedchannels struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId []byte `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3,oneof" json:"peer_id,omitempty"` + ChannelId []byte `protobuf:"bytes,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + ShortChannelId *string `protobuf:"bytes,3,opt,name=short_channel_id,json=shortChannelId,proto3,oneof" json:"short_channel_id,omitempty"` + Alias *ListclosedchannelsClosedchannelsAlias `protobuf:"bytes,4,opt,name=alias,proto3,oneof" json:"alias,omitempty"` + Opener ChannelSide `protobuf:"varint,5,opt,name=opener,proto3,enum=cln.ChannelSide" json:"opener,omitempty"` + Closer *ChannelSide `protobuf:"varint,6,opt,name=closer,proto3,enum=cln.ChannelSide,oneof" json:"closer,omitempty"` + Private bool `protobuf:"varint,7,opt,name=private,proto3" json:"private,omitempty"` + TotalLocalCommitments uint64 `protobuf:"varint,9,opt,name=total_local_commitments,json=totalLocalCommitments,proto3" json:"total_local_commitments,omitempty"` + TotalRemoteCommitments uint64 `protobuf:"varint,10,opt,name=total_remote_commitments,json=totalRemoteCommitments,proto3" json:"total_remote_commitments,omitempty"` + TotalHtlcsSent uint64 `protobuf:"varint,11,opt,name=total_htlcs_sent,json=totalHtlcsSent,proto3" json:"total_htlcs_sent,omitempty"` + FundingTxid []byte `protobuf:"bytes,12,opt,name=funding_txid,json=fundingTxid,proto3" json:"funding_txid,omitempty"` + FundingOutnum uint32 `protobuf:"varint,13,opt,name=funding_outnum,json=fundingOutnum,proto3" json:"funding_outnum,omitempty"` + Leased bool `protobuf:"varint,14,opt,name=leased,proto3" json:"leased,omitempty"` + FundingFeePaidMsat *Amount `protobuf:"bytes,15,opt,name=funding_fee_paid_msat,json=fundingFeePaidMsat,proto3,oneof" json:"funding_fee_paid_msat,omitempty"` + FundingFeeRcvdMsat *Amount `protobuf:"bytes,16,opt,name=funding_fee_rcvd_msat,json=fundingFeeRcvdMsat,proto3,oneof" json:"funding_fee_rcvd_msat,omitempty"` + FundingPushedMsat *Amount `protobuf:"bytes,17,opt,name=funding_pushed_msat,json=fundingPushedMsat,proto3,oneof" json:"funding_pushed_msat,omitempty"` + TotalMsat *Amount `protobuf:"bytes,18,opt,name=total_msat,json=totalMsat,proto3" json:"total_msat,omitempty"` + FinalToUsMsat *Amount `protobuf:"bytes,19,opt,name=final_to_us_msat,json=finalToUsMsat,proto3" json:"final_to_us_msat,omitempty"` + MinToUsMsat *Amount `protobuf:"bytes,20,opt,name=min_to_us_msat,json=minToUsMsat,proto3" json:"min_to_us_msat,omitempty"` + MaxToUsMsat *Amount `protobuf:"bytes,21,opt,name=max_to_us_msat,json=maxToUsMsat,proto3" json:"max_to_us_msat,omitempty"` + LastCommitmentTxid []byte `protobuf:"bytes,22,opt,name=last_commitment_txid,json=lastCommitmentTxid,proto3,oneof" json:"last_commitment_txid,omitempty"` + LastCommitmentFeeMsat *Amount `protobuf:"bytes,23,opt,name=last_commitment_fee_msat,json=lastCommitmentFeeMsat,proto3,oneof" json:"last_commitment_fee_msat,omitempty"` + CloseCause ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause `protobuf:"varint,24,opt,name=close_cause,json=closeCause,proto3,enum=cln.ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause" json:"close_cause,omitempty"` + LastStableConnection *uint64 `protobuf:"varint,25,opt,name=last_stable_connection,json=lastStableConnection,proto3,oneof" json:"last_stable_connection,omitempty"` +} + +func (x *ListclosedchannelsClosedchannels) Reset() { + *x = ListclosedchannelsClosedchannels{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListclosedchannelsClosedchannels) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListclosedchannelsClosedchannels) ProtoMessage() {} + +func (x *ListclosedchannelsClosedchannels) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[122] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListclosedchannelsClosedchannels.ProtoReflect.Descriptor instead. +func (*ListclosedchannelsClosedchannels) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{122} +} + +func (x *ListclosedchannelsClosedchannels) GetPeerId() []byte { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetChannelId() []byte { + if x != nil { + return x.ChannelId + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetShortChannelId() string { + if x != nil && x.ShortChannelId != nil { + return *x.ShortChannelId + } + return "" +} + +func (x *ListclosedchannelsClosedchannels) GetAlias() *ListclosedchannelsClosedchannelsAlias { + if x != nil { + return x.Alias + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetOpener() ChannelSide { + if x != nil { + return x.Opener + } + return ChannelSide_LOCAL +} + +func (x *ListclosedchannelsClosedchannels) GetCloser() ChannelSide { + if x != nil && x.Closer != nil { + return *x.Closer + } + return ChannelSide_LOCAL +} + +func (x *ListclosedchannelsClosedchannels) GetPrivate() bool { + if x != nil { + return x.Private + } + return false +} + +func (x *ListclosedchannelsClosedchannels) GetTotalLocalCommitments() uint64 { + if x != nil { + return x.TotalLocalCommitments + } + return 0 +} + +func (x *ListclosedchannelsClosedchannels) GetTotalRemoteCommitments() uint64 { + if x != nil { + return x.TotalRemoteCommitments + } + return 0 +} + +func (x *ListclosedchannelsClosedchannels) GetTotalHtlcsSent() uint64 { + if x != nil { + return x.TotalHtlcsSent + } + return 0 +} + +func (x *ListclosedchannelsClosedchannels) GetFundingTxid() []byte { + if x != nil { + return x.FundingTxid + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetFundingOutnum() uint32 { + if x != nil { + return x.FundingOutnum + } + return 0 +} + +func (x *ListclosedchannelsClosedchannels) GetLeased() bool { + if x != nil { + return x.Leased + } + return false +} + +func (x *ListclosedchannelsClosedchannels) GetFundingFeePaidMsat() *Amount { + if x != nil { + return x.FundingFeePaidMsat + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetFundingFeeRcvdMsat() *Amount { + if x != nil { + return x.FundingFeeRcvdMsat + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetFundingPushedMsat() *Amount { + if x != nil { + return x.FundingPushedMsat + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetTotalMsat() *Amount { + if x != nil { + return x.TotalMsat + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetFinalToUsMsat() *Amount { + if x != nil { + return x.FinalToUsMsat + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetMinToUsMsat() *Amount { + if x != nil { + return x.MinToUsMsat + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetMaxToUsMsat() *Amount { + if x != nil { + return x.MaxToUsMsat + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetLastCommitmentTxid() []byte { + if x != nil { + return x.LastCommitmentTxid + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetLastCommitmentFeeMsat() *Amount { + if x != nil { + return x.LastCommitmentFeeMsat + } + return nil +} + +func (x *ListclosedchannelsClosedchannels) GetCloseCause() ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause { + if x != nil { + return x.CloseCause + } + return ListclosedchannelsClosedchannels_UNKNOWN +} + +func (x *ListclosedchannelsClosedchannels) GetLastStableConnection() uint64 { + if x != nil && x.LastStableConnection != nil { + return *x.LastStableConnection + } + return 0 +} + +type ListclosedchannelsClosedchannelsAlias struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Local *string `protobuf:"bytes,1,opt,name=local,proto3,oneof" json:"local,omitempty"` + Remote *string `protobuf:"bytes,2,opt,name=remote,proto3,oneof" json:"remote,omitempty"` +} + +func (x *ListclosedchannelsClosedchannelsAlias) Reset() { + *x = ListclosedchannelsClosedchannelsAlias{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListclosedchannelsClosedchannelsAlias) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListclosedchannelsClosedchannelsAlias) ProtoMessage() {} + +func (x *ListclosedchannelsClosedchannelsAlias) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[123] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListclosedchannelsClosedchannelsAlias.ProtoReflect.Descriptor instead. +func (*ListclosedchannelsClosedchannelsAlias) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{123} +} + +func (x *ListclosedchannelsClosedchannelsAlias) GetLocal() string { + if x != nil && x.Local != nil { + return *x.Local + } + return "" +} + +func (x *ListclosedchannelsClosedchannelsAlias) GetRemote() string { + if x != nil && x.Remote != nil { + return *x.Remote + } + return "" +} + +type DecodepayRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bolt11 string `protobuf:"bytes,1,opt,name=bolt11,proto3" json:"bolt11,omitempty"` + Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` +} + +func (x *DecodepayRequest) Reset() { + *x = DecodepayRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodepayRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodepayRequest) ProtoMessage() {} + +func (x *DecodepayRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[124] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodepayRequest.ProtoReflect.Descriptor instead. +func (*DecodepayRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{124} +} + +func (x *DecodepayRequest) GetBolt11() string { + if x != nil { + return x.Bolt11 + } + return "" +} + +func (x *DecodepayRequest) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +type DecodepayResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Currency string `protobuf:"bytes,1,opt,name=currency,proto3" json:"currency,omitempty"` + CreatedAt uint64 `protobuf:"varint,2,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + Expiry uint64 `protobuf:"varint,3,opt,name=expiry,proto3" json:"expiry,omitempty"` + Payee []byte `protobuf:"bytes,4,opt,name=payee,proto3" json:"payee,omitempty"` + AmountMsat *Amount `protobuf:"bytes,5,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + PaymentHash []byte `protobuf:"bytes,6,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Signature string `protobuf:"bytes,7,opt,name=signature,proto3" json:"signature,omitempty"` + Description *string `protobuf:"bytes,8,opt,name=description,proto3,oneof" json:"description,omitempty"` + DescriptionHash []byte `protobuf:"bytes,9,opt,name=description_hash,json=descriptionHash,proto3,oneof" json:"description_hash,omitempty"` + MinFinalCltvExpiry uint32 `protobuf:"varint,10,opt,name=min_final_cltv_expiry,json=minFinalCltvExpiry,proto3" json:"min_final_cltv_expiry,omitempty"` + PaymentSecret []byte `protobuf:"bytes,11,opt,name=payment_secret,json=paymentSecret,proto3,oneof" json:"payment_secret,omitempty"` + Features []byte `protobuf:"bytes,12,opt,name=features,proto3,oneof" json:"features,omitempty"` + PaymentMetadata []byte `protobuf:"bytes,13,opt,name=payment_metadata,json=paymentMetadata,proto3,oneof" json:"payment_metadata,omitempty"` + Fallbacks []*DecodepayFallbacks `protobuf:"bytes,14,rep,name=fallbacks,proto3" json:"fallbacks,omitempty"` + Extra []*DecodepayExtra `protobuf:"bytes,16,rep,name=extra,proto3" json:"extra,omitempty"` +} + +func (x *DecodepayResponse) Reset() { + *x = DecodepayResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodepayResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodepayResponse) ProtoMessage() {} + +func (x *DecodepayResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[125] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodepayResponse.ProtoReflect.Descriptor instead. +func (*DecodepayResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{125} +} + +func (x *DecodepayResponse) GetCurrency() string { + if x != nil { + return x.Currency + } + return "" +} + +func (x *DecodepayResponse) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *DecodepayResponse) GetExpiry() uint64 { + if x != nil { + return x.Expiry + } + return 0 +} + +func (x *DecodepayResponse) GetPayee() []byte { + if x != nil { + return x.Payee + } + return nil +} + +func (x *DecodepayResponse) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *DecodepayResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *DecodepayResponse) GetSignature() string { + if x != nil { + return x.Signature + } + return "" +} + +func (x *DecodepayResponse) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *DecodepayResponse) GetDescriptionHash() []byte { + if x != nil { + return x.DescriptionHash + } + return nil +} + +func (x *DecodepayResponse) GetMinFinalCltvExpiry() uint32 { + if x != nil { + return x.MinFinalCltvExpiry + } + return 0 +} + +func (x *DecodepayResponse) GetPaymentSecret() []byte { + if x != nil { + return x.PaymentSecret + } + return nil +} + +func (x *DecodepayResponse) GetFeatures() []byte { + if x != nil { + return x.Features + } + return nil +} + +func (x *DecodepayResponse) GetPaymentMetadata() []byte { + if x != nil { + return x.PaymentMetadata + } + return nil +} + +func (x *DecodepayResponse) GetFallbacks() []*DecodepayFallbacks { + if x != nil { + return x.Fallbacks + } + return nil +} + +func (x *DecodepayResponse) GetExtra() []*DecodepayExtra { + if x != nil { + return x.Extra + } + return nil +} + +type DecodepayFallbacks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemType DecodepayFallbacks_DecodepayFallbacksType `protobuf:"varint,1,opt,name=item_type,json=itemType,proto3,enum=cln.DecodepayFallbacks_DecodepayFallbacksType" json:"item_type,omitempty"` + Addr *string `protobuf:"bytes,2,opt,name=addr,proto3,oneof" json:"addr,omitempty"` + Hex []byte `protobuf:"bytes,3,opt,name=hex,proto3" json:"hex,omitempty"` +} + +func (x *DecodepayFallbacks) Reset() { + *x = DecodepayFallbacks{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodepayFallbacks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodepayFallbacks) ProtoMessage() {} + +func (x *DecodepayFallbacks) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[126] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodepayFallbacks.ProtoReflect.Descriptor instead. +func (*DecodepayFallbacks) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{126} +} + +func (x *DecodepayFallbacks) GetItemType() DecodepayFallbacks_DecodepayFallbacksType { + if x != nil { + return x.ItemType + } + return DecodepayFallbacks_P2PKH +} + +func (x *DecodepayFallbacks) GetAddr() string { + if x != nil && x.Addr != nil { + return *x.Addr + } + return "" +} + +func (x *DecodepayFallbacks) GetHex() []byte { + if x != nil { + return x.Hex + } + return nil +} + +type DecodepayExtra struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"` + Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *DecodepayExtra) Reset() { + *x = DecodepayExtra{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodepayExtra) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodepayExtra) ProtoMessage() {} + +func (x *DecodepayExtra) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[127] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodepayExtra.ProtoReflect.Descriptor instead. +func (*DecodepayExtra) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{127} +} + +func (x *DecodepayExtra) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *DecodepayExtra) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +type DecodeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + String_ string `protobuf:"bytes,1,opt,name=string,proto3" json:"string,omitempty"` +} + +func (x *DecodeRequest) Reset() { + *x = DecodeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeRequest) ProtoMessage() {} + +func (x *DecodeRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[128] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeRequest.ProtoReflect.Descriptor instead. +func (*DecodeRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{128} +} + +func (x *DecodeRequest) GetString_() string { + if x != nil { + return x.String_ + } + return "" +} + +type DecodeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemType DecodeResponse_DecodeType `protobuf:"varint,1,opt,name=item_type,json=itemType,proto3,enum=cln.DecodeResponse_DecodeType" json:"item_type,omitempty"` + Valid bool `protobuf:"varint,2,opt,name=valid,proto3" json:"valid,omitempty"` + OfferId []byte `protobuf:"bytes,3,opt,name=offer_id,json=offerId,proto3,oneof" json:"offer_id,omitempty"` + OfferChains [][]byte `protobuf:"bytes,4,rep,name=offer_chains,json=offerChains,proto3" json:"offer_chains,omitempty"` + OfferMetadata []byte `protobuf:"bytes,5,opt,name=offer_metadata,json=offerMetadata,proto3,oneof" json:"offer_metadata,omitempty"` + OfferCurrency *string `protobuf:"bytes,6,opt,name=offer_currency,json=offerCurrency,proto3,oneof" json:"offer_currency,omitempty"` + WarningUnknownOfferCurrency *string `protobuf:"bytes,7,opt,name=warning_unknown_offer_currency,json=warningUnknownOfferCurrency,proto3,oneof" json:"warning_unknown_offer_currency,omitempty"` + CurrencyMinorUnit *uint32 `protobuf:"varint,8,opt,name=currency_minor_unit,json=currencyMinorUnit,proto3,oneof" json:"currency_minor_unit,omitempty"` + OfferAmount *uint64 `protobuf:"varint,9,opt,name=offer_amount,json=offerAmount,proto3,oneof" json:"offer_amount,omitempty"` + OfferAmountMsat *Amount `protobuf:"bytes,10,opt,name=offer_amount_msat,json=offerAmountMsat,proto3,oneof" json:"offer_amount_msat,omitempty"` + OfferDescription *string `protobuf:"bytes,11,opt,name=offer_description,json=offerDescription,proto3,oneof" json:"offer_description,omitempty"` + OfferIssuer *string `protobuf:"bytes,12,opt,name=offer_issuer,json=offerIssuer,proto3,oneof" json:"offer_issuer,omitempty"` + OfferFeatures []byte `protobuf:"bytes,13,opt,name=offer_features,json=offerFeatures,proto3,oneof" json:"offer_features,omitempty"` + OfferAbsoluteExpiry *uint64 `protobuf:"varint,14,opt,name=offer_absolute_expiry,json=offerAbsoluteExpiry,proto3,oneof" json:"offer_absolute_expiry,omitempty"` + OfferQuantityMax *uint64 `protobuf:"varint,15,opt,name=offer_quantity_max,json=offerQuantityMax,proto3,oneof" json:"offer_quantity_max,omitempty"` + OfferPaths []*DecodeOfferPaths `protobuf:"bytes,16,rep,name=offer_paths,json=offerPaths,proto3" json:"offer_paths,omitempty"` + OfferNodeId []byte `protobuf:"bytes,17,opt,name=offer_node_id,json=offerNodeId,proto3,oneof" json:"offer_node_id,omitempty"` + WarningMissingOfferNodeId *string `protobuf:"bytes,20,opt,name=warning_missing_offer_node_id,json=warningMissingOfferNodeId,proto3,oneof" json:"warning_missing_offer_node_id,omitempty"` + WarningInvalidOfferDescription *string `protobuf:"bytes,21,opt,name=warning_invalid_offer_description,json=warningInvalidOfferDescription,proto3,oneof" json:"warning_invalid_offer_description,omitempty"` + WarningMissingOfferDescription *string `protobuf:"bytes,22,opt,name=warning_missing_offer_description,json=warningMissingOfferDescription,proto3,oneof" json:"warning_missing_offer_description,omitempty"` + WarningInvalidOfferCurrency *string `protobuf:"bytes,23,opt,name=warning_invalid_offer_currency,json=warningInvalidOfferCurrency,proto3,oneof" json:"warning_invalid_offer_currency,omitempty"` + WarningInvalidOfferIssuer *string `protobuf:"bytes,24,opt,name=warning_invalid_offer_issuer,json=warningInvalidOfferIssuer,proto3,oneof" json:"warning_invalid_offer_issuer,omitempty"` + InvreqMetadata []byte `protobuf:"bytes,25,opt,name=invreq_metadata,json=invreqMetadata,proto3,oneof" json:"invreq_metadata,omitempty"` + InvreqPayerId []byte `protobuf:"bytes,26,opt,name=invreq_payer_id,json=invreqPayerId,proto3,oneof" json:"invreq_payer_id,omitempty"` + InvreqChain []byte `protobuf:"bytes,27,opt,name=invreq_chain,json=invreqChain,proto3,oneof" json:"invreq_chain,omitempty"` + InvreqAmountMsat *Amount `protobuf:"bytes,28,opt,name=invreq_amount_msat,json=invreqAmountMsat,proto3,oneof" json:"invreq_amount_msat,omitempty"` + InvreqFeatures []byte `protobuf:"bytes,29,opt,name=invreq_features,json=invreqFeatures,proto3,oneof" json:"invreq_features,omitempty"` + InvreqQuantity *uint64 `protobuf:"varint,30,opt,name=invreq_quantity,json=invreqQuantity,proto3,oneof" json:"invreq_quantity,omitempty"` + InvreqPayerNote *string `protobuf:"bytes,31,opt,name=invreq_payer_note,json=invreqPayerNote,proto3,oneof" json:"invreq_payer_note,omitempty"` + InvreqRecurrenceCounter *uint32 `protobuf:"varint,32,opt,name=invreq_recurrence_counter,json=invreqRecurrenceCounter,proto3,oneof" json:"invreq_recurrence_counter,omitempty"` + InvreqRecurrenceStart *uint32 `protobuf:"varint,33,opt,name=invreq_recurrence_start,json=invreqRecurrenceStart,proto3,oneof" json:"invreq_recurrence_start,omitempty"` + WarningMissingInvreqMetadata *string `protobuf:"bytes,35,opt,name=warning_missing_invreq_metadata,json=warningMissingInvreqMetadata,proto3,oneof" json:"warning_missing_invreq_metadata,omitempty"` + WarningMissingInvreqPayerId *string `protobuf:"bytes,36,opt,name=warning_missing_invreq_payer_id,json=warningMissingInvreqPayerId,proto3,oneof" json:"warning_missing_invreq_payer_id,omitempty"` + WarningInvalidInvreqPayerNote *string `protobuf:"bytes,37,opt,name=warning_invalid_invreq_payer_note,json=warningInvalidInvreqPayerNote,proto3,oneof" json:"warning_invalid_invreq_payer_note,omitempty"` + WarningMissingInvoiceRequestSignature *string `protobuf:"bytes,38,opt,name=warning_missing_invoice_request_signature,json=warningMissingInvoiceRequestSignature,proto3,oneof" json:"warning_missing_invoice_request_signature,omitempty"` + WarningInvalidInvoiceRequestSignature *string `protobuf:"bytes,39,opt,name=warning_invalid_invoice_request_signature,json=warningInvalidInvoiceRequestSignature,proto3,oneof" json:"warning_invalid_invoice_request_signature,omitempty"` + InvoiceCreatedAt *uint64 `protobuf:"varint,41,opt,name=invoice_created_at,json=invoiceCreatedAt,proto3,oneof" json:"invoice_created_at,omitempty"` + InvoiceRelativeExpiry *uint32 `protobuf:"varint,42,opt,name=invoice_relative_expiry,json=invoiceRelativeExpiry,proto3,oneof" json:"invoice_relative_expiry,omitempty"` + InvoicePaymentHash []byte `protobuf:"bytes,43,opt,name=invoice_payment_hash,json=invoicePaymentHash,proto3,oneof" json:"invoice_payment_hash,omitempty"` + InvoiceAmountMsat *Amount `protobuf:"bytes,44,opt,name=invoice_amount_msat,json=invoiceAmountMsat,proto3,oneof" json:"invoice_amount_msat,omitempty"` + InvoiceFallbacks []*DecodeInvoiceFallbacks `protobuf:"bytes,45,rep,name=invoice_fallbacks,json=invoiceFallbacks,proto3" json:"invoice_fallbacks,omitempty"` + InvoiceFeatures []byte `protobuf:"bytes,46,opt,name=invoice_features,json=invoiceFeatures,proto3,oneof" json:"invoice_features,omitempty"` + InvoiceNodeId []byte `protobuf:"bytes,47,opt,name=invoice_node_id,json=invoiceNodeId,proto3,oneof" json:"invoice_node_id,omitempty"` + InvoiceRecurrenceBasetime *uint64 `protobuf:"varint,48,opt,name=invoice_recurrence_basetime,json=invoiceRecurrenceBasetime,proto3,oneof" json:"invoice_recurrence_basetime,omitempty"` + WarningMissingInvoicePaths *string `protobuf:"bytes,50,opt,name=warning_missing_invoice_paths,json=warningMissingInvoicePaths,proto3,oneof" json:"warning_missing_invoice_paths,omitempty"` + WarningMissingInvoiceBlindedpay *string `protobuf:"bytes,51,opt,name=warning_missing_invoice_blindedpay,json=warningMissingInvoiceBlindedpay,proto3,oneof" json:"warning_missing_invoice_blindedpay,omitempty"` + WarningMissingInvoiceCreatedAt *string `protobuf:"bytes,52,opt,name=warning_missing_invoice_created_at,json=warningMissingInvoiceCreatedAt,proto3,oneof" json:"warning_missing_invoice_created_at,omitempty"` + WarningMissingInvoicePaymentHash *string `protobuf:"bytes,53,opt,name=warning_missing_invoice_payment_hash,json=warningMissingInvoicePaymentHash,proto3,oneof" json:"warning_missing_invoice_payment_hash,omitempty"` + WarningMissingInvoiceAmount *string `protobuf:"bytes,54,opt,name=warning_missing_invoice_amount,json=warningMissingInvoiceAmount,proto3,oneof" json:"warning_missing_invoice_amount,omitempty"` + WarningMissingInvoiceRecurrenceBasetime *string `protobuf:"bytes,55,opt,name=warning_missing_invoice_recurrence_basetime,json=warningMissingInvoiceRecurrenceBasetime,proto3,oneof" json:"warning_missing_invoice_recurrence_basetime,omitempty"` + WarningMissingInvoiceNodeId *string `protobuf:"bytes,56,opt,name=warning_missing_invoice_node_id,json=warningMissingInvoiceNodeId,proto3,oneof" json:"warning_missing_invoice_node_id,omitempty"` + WarningMissingInvoiceSignature *string `protobuf:"bytes,57,opt,name=warning_missing_invoice_signature,json=warningMissingInvoiceSignature,proto3,oneof" json:"warning_missing_invoice_signature,omitempty"` + WarningInvalidInvoiceSignature *string `protobuf:"bytes,58,opt,name=warning_invalid_invoice_signature,json=warningInvalidInvoiceSignature,proto3,oneof" json:"warning_invalid_invoice_signature,omitempty"` + Fallbacks []*DecodeFallbacks `protobuf:"bytes,59,rep,name=fallbacks,proto3" json:"fallbacks,omitempty"` + CreatedAt *uint64 `protobuf:"varint,60,opt,name=created_at,json=createdAt,proto3,oneof" json:"created_at,omitempty"` + Expiry *uint64 `protobuf:"varint,61,opt,name=expiry,proto3,oneof" json:"expiry,omitempty"` + Payee []byte `protobuf:"bytes,62,opt,name=payee,proto3,oneof" json:"payee,omitempty"` + PaymentHash []byte `protobuf:"bytes,63,opt,name=payment_hash,json=paymentHash,proto3,oneof" json:"payment_hash,omitempty"` + DescriptionHash []byte `protobuf:"bytes,64,opt,name=description_hash,json=descriptionHash,proto3,oneof" json:"description_hash,omitempty"` + MinFinalCltvExpiry *uint32 `protobuf:"varint,65,opt,name=min_final_cltv_expiry,json=minFinalCltvExpiry,proto3,oneof" json:"min_final_cltv_expiry,omitempty"` + PaymentSecret []byte `protobuf:"bytes,66,opt,name=payment_secret,json=paymentSecret,proto3,oneof" json:"payment_secret,omitempty"` + PaymentMetadata []byte `protobuf:"bytes,67,opt,name=payment_metadata,json=paymentMetadata,proto3,oneof" json:"payment_metadata,omitempty"` + Extra []*DecodeExtra `protobuf:"bytes,69,rep,name=extra,proto3" json:"extra,omitempty"` + UniqueId *string `protobuf:"bytes,70,opt,name=unique_id,json=uniqueId,proto3,oneof" json:"unique_id,omitempty"` + Version *string `protobuf:"bytes,71,opt,name=version,proto3,oneof" json:"version,omitempty"` + String_ *string `protobuf:"bytes,72,opt,name=string,proto3,oneof" json:"string,omitempty"` + Restrictions []*DecodeRestrictions `protobuf:"bytes,73,rep,name=restrictions,proto3" json:"restrictions,omitempty"` + WarningRuneInvalidUtf8 *string `protobuf:"bytes,74,opt,name=warning_rune_invalid_utf8,json=warningRuneInvalidUtf8,proto3,oneof" json:"warning_rune_invalid_utf8,omitempty"` + Hex []byte `protobuf:"bytes,75,opt,name=hex,proto3,oneof" json:"hex,omitempty"` + Decrypted []byte `protobuf:"bytes,76,opt,name=decrypted,proto3,oneof" json:"decrypted,omitempty"` +} + +func (x *DecodeResponse) Reset() { + *x = DecodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeResponse) ProtoMessage() {} + +func (x *DecodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[129] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeResponse.ProtoReflect.Descriptor instead. +func (*DecodeResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{129} +} + +func (x *DecodeResponse) GetItemType() DecodeResponse_DecodeType { + if x != nil { + return x.ItemType + } + return DecodeResponse_BOLT12_OFFER +} + +func (x *DecodeResponse) GetValid() bool { + if x != nil { + return x.Valid + } + return false +} + +func (x *DecodeResponse) GetOfferId() []byte { + if x != nil { + return x.OfferId + } + return nil +} + +func (x *DecodeResponse) GetOfferChains() [][]byte { + if x != nil { + return x.OfferChains + } + return nil +} + +func (x *DecodeResponse) GetOfferMetadata() []byte { + if x != nil { + return x.OfferMetadata + } + return nil +} + +func (x *DecodeResponse) GetOfferCurrency() string { + if x != nil && x.OfferCurrency != nil { + return *x.OfferCurrency + } + return "" +} + +func (x *DecodeResponse) GetWarningUnknownOfferCurrency() string { + if x != nil && x.WarningUnknownOfferCurrency != nil { + return *x.WarningUnknownOfferCurrency + } + return "" +} + +func (x *DecodeResponse) GetCurrencyMinorUnit() uint32 { + if x != nil && x.CurrencyMinorUnit != nil { + return *x.CurrencyMinorUnit + } + return 0 +} + +func (x *DecodeResponse) GetOfferAmount() uint64 { + if x != nil && x.OfferAmount != nil { + return *x.OfferAmount + } + return 0 +} + +func (x *DecodeResponse) GetOfferAmountMsat() *Amount { + if x != nil { + return x.OfferAmountMsat + } + return nil +} + +func (x *DecodeResponse) GetOfferDescription() string { + if x != nil && x.OfferDescription != nil { + return *x.OfferDescription + } + return "" +} + +func (x *DecodeResponse) GetOfferIssuer() string { + if x != nil && x.OfferIssuer != nil { + return *x.OfferIssuer + } + return "" +} + +func (x *DecodeResponse) GetOfferFeatures() []byte { + if x != nil { + return x.OfferFeatures + } + return nil +} + +func (x *DecodeResponse) GetOfferAbsoluteExpiry() uint64 { + if x != nil && x.OfferAbsoluteExpiry != nil { + return *x.OfferAbsoluteExpiry + } + return 0 +} + +func (x *DecodeResponse) GetOfferQuantityMax() uint64 { + if x != nil && x.OfferQuantityMax != nil { + return *x.OfferQuantityMax + } + return 0 +} + +func (x *DecodeResponse) GetOfferPaths() []*DecodeOfferPaths { + if x != nil { + return x.OfferPaths + } + return nil +} + +func (x *DecodeResponse) GetOfferNodeId() []byte { + if x != nil { + return x.OfferNodeId + } + return nil +} + +func (x *DecodeResponse) GetWarningMissingOfferNodeId() string { + if x != nil && x.WarningMissingOfferNodeId != nil { + return *x.WarningMissingOfferNodeId + } + return "" +} + +func (x *DecodeResponse) GetWarningInvalidOfferDescription() string { + if x != nil && x.WarningInvalidOfferDescription != nil { + return *x.WarningInvalidOfferDescription + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingOfferDescription() string { + if x != nil && x.WarningMissingOfferDescription != nil { + return *x.WarningMissingOfferDescription + } + return "" +} + +func (x *DecodeResponse) GetWarningInvalidOfferCurrency() string { + if x != nil && x.WarningInvalidOfferCurrency != nil { + return *x.WarningInvalidOfferCurrency + } + return "" +} + +func (x *DecodeResponse) GetWarningInvalidOfferIssuer() string { + if x != nil && x.WarningInvalidOfferIssuer != nil { + return *x.WarningInvalidOfferIssuer + } + return "" +} + +func (x *DecodeResponse) GetInvreqMetadata() []byte { + if x != nil { + return x.InvreqMetadata + } + return nil +} + +func (x *DecodeResponse) GetInvreqPayerId() []byte { + if x != nil { + return x.InvreqPayerId + } + return nil +} + +func (x *DecodeResponse) GetInvreqChain() []byte { + if x != nil { + return x.InvreqChain + } + return nil +} + +func (x *DecodeResponse) GetInvreqAmountMsat() *Amount { + if x != nil { + return x.InvreqAmountMsat + } + return nil +} + +func (x *DecodeResponse) GetInvreqFeatures() []byte { + if x != nil { + return x.InvreqFeatures + } + return nil +} + +func (x *DecodeResponse) GetInvreqQuantity() uint64 { + if x != nil && x.InvreqQuantity != nil { + return *x.InvreqQuantity + } + return 0 +} + +func (x *DecodeResponse) GetInvreqPayerNote() string { + if x != nil && x.InvreqPayerNote != nil { + return *x.InvreqPayerNote + } + return "" +} + +func (x *DecodeResponse) GetInvreqRecurrenceCounter() uint32 { + if x != nil && x.InvreqRecurrenceCounter != nil { + return *x.InvreqRecurrenceCounter + } + return 0 +} + +func (x *DecodeResponse) GetInvreqRecurrenceStart() uint32 { + if x != nil && x.InvreqRecurrenceStart != nil { + return *x.InvreqRecurrenceStart + } + return 0 +} + +func (x *DecodeResponse) GetWarningMissingInvreqMetadata() string { + if x != nil && x.WarningMissingInvreqMetadata != nil { + return *x.WarningMissingInvreqMetadata + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvreqPayerId() string { + if x != nil && x.WarningMissingInvreqPayerId != nil { + return *x.WarningMissingInvreqPayerId + } + return "" +} + +func (x *DecodeResponse) GetWarningInvalidInvreqPayerNote() string { + if x != nil && x.WarningInvalidInvreqPayerNote != nil { + return *x.WarningInvalidInvreqPayerNote + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvoiceRequestSignature() string { + if x != nil && x.WarningMissingInvoiceRequestSignature != nil { + return *x.WarningMissingInvoiceRequestSignature + } + return "" +} + +func (x *DecodeResponse) GetWarningInvalidInvoiceRequestSignature() string { + if x != nil && x.WarningInvalidInvoiceRequestSignature != nil { + return *x.WarningInvalidInvoiceRequestSignature + } + return "" +} + +func (x *DecodeResponse) GetInvoiceCreatedAt() uint64 { + if x != nil && x.InvoiceCreatedAt != nil { + return *x.InvoiceCreatedAt + } + return 0 +} + +func (x *DecodeResponse) GetInvoiceRelativeExpiry() uint32 { + if x != nil && x.InvoiceRelativeExpiry != nil { + return *x.InvoiceRelativeExpiry + } + return 0 +} + +func (x *DecodeResponse) GetInvoicePaymentHash() []byte { + if x != nil { + return x.InvoicePaymentHash + } + return nil +} + +func (x *DecodeResponse) GetInvoiceAmountMsat() *Amount { + if x != nil { + return x.InvoiceAmountMsat + } + return nil +} + +func (x *DecodeResponse) GetInvoiceFallbacks() []*DecodeInvoiceFallbacks { + if x != nil { + return x.InvoiceFallbacks + } + return nil +} + +func (x *DecodeResponse) GetInvoiceFeatures() []byte { + if x != nil { + return x.InvoiceFeatures + } + return nil +} + +func (x *DecodeResponse) GetInvoiceNodeId() []byte { + if x != nil { + return x.InvoiceNodeId + } + return nil +} + +func (x *DecodeResponse) GetInvoiceRecurrenceBasetime() uint64 { + if x != nil && x.InvoiceRecurrenceBasetime != nil { + return *x.InvoiceRecurrenceBasetime + } + return 0 +} + +func (x *DecodeResponse) GetWarningMissingInvoicePaths() string { + if x != nil && x.WarningMissingInvoicePaths != nil { + return *x.WarningMissingInvoicePaths + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvoiceBlindedpay() string { + if x != nil && x.WarningMissingInvoiceBlindedpay != nil { + return *x.WarningMissingInvoiceBlindedpay + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvoiceCreatedAt() string { + if x != nil && x.WarningMissingInvoiceCreatedAt != nil { + return *x.WarningMissingInvoiceCreatedAt + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvoicePaymentHash() string { + if x != nil && x.WarningMissingInvoicePaymentHash != nil { + return *x.WarningMissingInvoicePaymentHash + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvoiceAmount() string { + if x != nil && x.WarningMissingInvoiceAmount != nil { + return *x.WarningMissingInvoiceAmount + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvoiceRecurrenceBasetime() string { + if x != nil && x.WarningMissingInvoiceRecurrenceBasetime != nil { + return *x.WarningMissingInvoiceRecurrenceBasetime + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvoiceNodeId() string { + if x != nil && x.WarningMissingInvoiceNodeId != nil { + return *x.WarningMissingInvoiceNodeId + } + return "" +} + +func (x *DecodeResponse) GetWarningMissingInvoiceSignature() string { + if x != nil && x.WarningMissingInvoiceSignature != nil { + return *x.WarningMissingInvoiceSignature + } + return "" +} + +func (x *DecodeResponse) GetWarningInvalidInvoiceSignature() string { + if x != nil && x.WarningInvalidInvoiceSignature != nil { + return *x.WarningInvalidInvoiceSignature + } + return "" +} + +func (x *DecodeResponse) GetFallbacks() []*DecodeFallbacks { + if x != nil { + return x.Fallbacks + } + return nil +} + +func (x *DecodeResponse) GetCreatedAt() uint64 { + if x != nil && x.CreatedAt != nil { + return *x.CreatedAt + } + return 0 +} + +func (x *DecodeResponse) GetExpiry() uint64 { + if x != nil && x.Expiry != nil { + return *x.Expiry + } + return 0 +} + +func (x *DecodeResponse) GetPayee() []byte { + if x != nil { + return x.Payee + } + return nil +} + +func (x *DecodeResponse) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *DecodeResponse) GetDescriptionHash() []byte { + if x != nil { + return x.DescriptionHash + } + return nil +} + +func (x *DecodeResponse) GetMinFinalCltvExpiry() uint32 { + if x != nil && x.MinFinalCltvExpiry != nil { + return *x.MinFinalCltvExpiry + } + return 0 +} + +func (x *DecodeResponse) GetPaymentSecret() []byte { + if x != nil { + return x.PaymentSecret + } + return nil +} + +func (x *DecodeResponse) GetPaymentMetadata() []byte { + if x != nil { + return x.PaymentMetadata + } + return nil +} + +func (x *DecodeResponse) GetExtra() []*DecodeExtra { + if x != nil { + return x.Extra + } + return nil +} + +func (x *DecodeResponse) GetUniqueId() string { + if x != nil && x.UniqueId != nil { + return *x.UniqueId + } + return "" +} + +func (x *DecodeResponse) GetVersion() string { + if x != nil && x.Version != nil { + return *x.Version + } + return "" +} + +func (x *DecodeResponse) GetString_() string { + if x != nil && x.String_ != nil { + return *x.String_ + } + return "" +} + +func (x *DecodeResponse) GetRestrictions() []*DecodeRestrictions { + if x != nil { + return x.Restrictions + } + return nil +} + +func (x *DecodeResponse) GetWarningRuneInvalidUtf8() string { + if x != nil && x.WarningRuneInvalidUtf8 != nil { + return *x.WarningRuneInvalidUtf8 + } + return "" +} + +func (x *DecodeResponse) GetHex() []byte { + if x != nil { + return x.Hex + } + return nil +} + +func (x *DecodeResponse) GetDecrypted() []byte { + if x != nil { + return x.Decrypted + } + return nil +} + +type DecodeOfferPaths struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FirstNodeId []byte `protobuf:"bytes,1,opt,name=first_node_id,json=firstNodeId,proto3" json:"first_node_id,omitempty"` + Blinding []byte `protobuf:"bytes,2,opt,name=blinding,proto3" json:"blinding,omitempty"` +} + +func (x *DecodeOfferPaths) Reset() { + *x = DecodeOfferPaths{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeOfferPaths) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeOfferPaths) ProtoMessage() {} + +func (x *DecodeOfferPaths) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[130] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeOfferPaths.ProtoReflect.Descriptor instead. +func (*DecodeOfferPaths) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{130} +} + +func (x *DecodeOfferPaths) GetFirstNodeId() []byte { + if x != nil { + return x.FirstNodeId + } + return nil +} + +func (x *DecodeOfferPaths) GetBlinding() []byte { + if x != nil { + return x.Blinding + } + return nil +} + +type DecodeOfferRecurrencePaywindow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SecondsBefore uint32 `protobuf:"varint,1,opt,name=seconds_before,json=secondsBefore,proto3" json:"seconds_before,omitempty"` + SecondsAfter uint32 `protobuf:"varint,2,opt,name=seconds_after,json=secondsAfter,proto3" json:"seconds_after,omitempty"` + ProportionalAmount *bool `protobuf:"varint,3,opt,name=proportional_amount,json=proportionalAmount,proto3,oneof" json:"proportional_amount,omitempty"` +} + +func (x *DecodeOfferRecurrencePaywindow) Reset() { + *x = DecodeOfferRecurrencePaywindow{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeOfferRecurrencePaywindow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeOfferRecurrencePaywindow) ProtoMessage() {} + +func (x *DecodeOfferRecurrencePaywindow) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[131] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeOfferRecurrencePaywindow.ProtoReflect.Descriptor instead. +func (*DecodeOfferRecurrencePaywindow) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{131} +} + +func (x *DecodeOfferRecurrencePaywindow) GetSecondsBefore() uint32 { + if x != nil { + return x.SecondsBefore + } + return 0 +} + +func (x *DecodeOfferRecurrencePaywindow) GetSecondsAfter() uint32 { + if x != nil { + return x.SecondsAfter + } + return 0 +} + +func (x *DecodeOfferRecurrencePaywindow) GetProportionalAmount() bool { + if x != nil && x.ProportionalAmount != nil { + return *x.ProportionalAmount + } + return false +} + +type DecodeInvoicePathsPath struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlindedNodeId []byte `protobuf:"bytes,1,opt,name=blinded_node_id,json=blindedNodeId,proto3" json:"blinded_node_id,omitempty"` + EncryptedRecipientData []byte `protobuf:"bytes,2,opt,name=encrypted_recipient_data,json=encryptedRecipientData,proto3" json:"encrypted_recipient_data,omitempty"` +} + +func (x *DecodeInvoicePathsPath) Reset() { + *x = DecodeInvoicePathsPath{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeInvoicePathsPath) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeInvoicePathsPath) ProtoMessage() {} + +func (x *DecodeInvoicePathsPath) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[132] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeInvoicePathsPath.ProtoReflect.Descriptor instead. +func (*DecodeInvoicePathsPath) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{132} +} + +func (x *DecodeInvoicePathsPath) GetBlindedNodeId() []byte { + if x != nil { + return x.BlindedNodeId + } + return nil +} + +func (x *DecodeInvoicePathsPath) GetEncryptedRecipientData() []byte { + if x != nil { + return x.EncryptedRecipientData + } + return nil +} + +type DecodeInvoiceFallbacks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + Hex []byte `protobuf:"bytes,2,opt,name=hex,proto3" json:"hex,omitempty"` + Address *string `protobuf:"bytes,3,opt,name=address,proto3,oneof" json:"address,omitempty"` +} + +func (x *DecodeInvoiceFallbacks) Reset() { + *x = DecodeInvoiceFallbacks{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeInvoiceFallbacks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeInvoiceFallbacks) ProtoMessage() {} + +func (x *DecodeInvoiceFallbacks) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[133] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeInvoiceFallbacks.ProtoReflect.Descriptor instead. +func (*DecodeInvoiceFallbacks) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{133} +} + +func (x *DecodeInvoiceFallbacks) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *DecodeInvoiceFallbacks) GetHex() []byte { + if x != nil { + return x.Hex + } + return nil +} + +func (x *DecodeInvoiceFallbacks) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +type DecodeFallbacks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WarningInvoiceFallbacksVersionInvalid *string `protobuf:"bytes,1,opt,name=warning_invoice_fallbacks_version_invalid,json=warningInvoiceFallbacksVersionInvalid,proto3,oneof" json:"warning_invoice_fallbacks_version_invalid,omitempty"` +} + +func (x *DecodeFallbacks) Reset() { + *x = DecodeFallbacks{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeFallbacks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeFallbacks) ProtoMessage() {} + +func (x *DecodeFallbacks) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[134] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeFallbacks.ProtoReflect.Descriptor instead. +func (*DecodeFallbacks) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{134} +} + +func (x *DecodeFallbacks) GetWarningInvoiceFallbacksVersionInvalid() string { + if x != nil && x.WarningInvoiceFallbacksVersionInvalid != nil { + return *x.WarningInvoiceFallbacksVersionInvalid + } + return "" +} + +type DecodeExtra struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"` + Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *DecodeExtra) Reset() { + *x = DecodeExtra{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeExtra) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeExtra) ProtoMessage() {} + +func (x *DecodeExtra) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[135] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeExtra.ProtoReflect.Descriptor instead. +func (*DecodeExtra) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{135} +} + +func (x *DecodeExtra) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *DecodeExtra) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +type DecodeRestrictions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Alternatives []string `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"` + Summary string `protobuf:"bytes,2,opt,name=summary,proto3" json:"summary,omitempty"` +} + +func (x *DecodeRestrictions) Reset() { + *x = DecodeRestrictions{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DecodeRestrictions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DecodeRestrictions) ProtoMessage() {} + +func (x *DecodeRestrictions) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[136] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DecodeRestrictions.ProtoReflect.Descriptor instead. +func (*DecodeRestrictions) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{136} +} + +func (x *DecodeRestrictions) GetAlternatives() []string { + if x != nil { + return x.Alternatives + } + return nil +} + +func (x *DecodeRestrictions) GetSummary() string { + if x != nil { + return x.Summary + } + return "" +} + +type DisconnectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Force *bool `protobuf:"varint,2,opt,name=force,proto3,oneof" json:"force,omitempty"` +} + +func (x *DisconnectRequest) Reset() { + *x = DisconnectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisconnectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisconnectRequest) ProtoMessage() {} + +func (x *DisconnectRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[137] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DisconnectRequest.ProtoReflect.Descriptor instead. +func (*DisconnectRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{137} +} + +func (x *DisconnectRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *DisconnectRequest) GetForce() bool { + if x != nil && x.Force != nil { + return *x.Force + } + return false +} + +type DisconnectResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DisconnectResponse) Reset() { + *x = DisconnectResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DisconnectResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DisconnectResponse) ProtoMessage() {} + +func (x *DisconnectResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[138] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DisconnectResponse.ProtoReflect.Descriptor instead. +func (*DisconnectResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{138} +} + +type FeeratesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Style FeeratesRequest_FeeratesStyle `protobuf:"varint,1,opt,name=style,proto3,enum=cln.FeeratesRequest_FeeratesStyle" json:"style,omitempty"` +} + +func (x *FeeratesRequest) Reset() { + *x = FeeratesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeeratesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeeratesRequest) ProtoMessage() {} + +func (x *FeeratesRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[139] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeeratesRequest.ProtoReflect.Descriptor instead. +func (*FeeratesRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{139} +} + +func (x *FeeratesRequest) GetStyle() FeeratesRequest_FeeratesStyle { + if x != nil { + return x.Style + } + return FeeratesRequest_PERKB +} + +type FeeratesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WarningMissingFeerates *string `protobuf:"bytes,1,opt,name=warning_missing_feerates,json=warningMissingFeerates,proto3,oneof" json:"warning_missing_feerates,omitempty"` + Perkb *FeeratesPerkb `protobuf:"bytes,2,opt,name=perkb,proto3,oneof" json:"perkb,omitempty"` + Perkw *FeeratesPerkw `protobuf:"bytes,3,opt,name=perkw,proto3,oneof" json:"perkw,omitempty"` + OnchainFeeEstimates *FeeratesOnchainFeeEstimates `protobuf:"bytes,4,opt,name=onchain_fee_estimates,json=onchainFeeEstimates,proto3,oneof" json:"onchain_fee_estimates,omitempty"` +} + +func (x *FeeratesResponse) Reset() { + *x = FeeratesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeeratesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeeratesResponse) ProtoMessage() {} + +func (x *FeeratesResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[140] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeeratesResponse.ProtoReflect.Descriptor instead. +func (*FeeratesResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{140} +} + +func (x *FeeratesResponse) GetWarningMissingFeerates() string { + if x != nil && x.WarningMissingFeerates != nil { + return *x.WarningMissingFeerates + } + return "" +} + +func (x *FeeratesResponse) GetPerkb() *FeeratesPerkb { + if x != nil { + return x.Perkb + } + return nil +} + +func (x *FeeratesResponse) GetPerkw() *FeeratesPerkw { + if x != nil { + return x.Perkw + } + return nil +} + +func (x *FeeratesResponse) GetOnchainFeeEstimates() *FeeratesOnchainFeeEstimates { + if x != nil { + return x.OnchainFeeEstimates + } + return nil +} + +type FeeratesPerkb struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MinAcceptable uint32 `protobuf:"varint,1,opt,name=min_acceptable,json=minAcceptable,proto3" json:"min_acceptable,omitempty"` + MaxAcceptable uint32 `protobuf:"varint,2,opt,name=max_acceptable,json=maxAcceptable,proto3" json:"max_acceptable,omitempty"` + Floor *uint32 `protobuf:"varint,10,opt,name=floor,proto3,oneof" json:"floor,omitempty"` + Estimates []*FeeratesPerkbEstimates `protobuf:"bytes,9,rep,name=estimates,proto3" json:"estimates,omitempty"` + Opening *uint32 `protobuf:"varint,3,opt,name=opening,proto3,oneof" json:"opening,omitempty"` + MutualClose *uint32 `protobuf:"varint,4,opt,name=mutual_close,json=mutualClose,proto3,oneof" json:"mutual_close,omitempty"` + UnilateralClose *uint32 `protobuf:"varint,5,opt,name=unilateral_close,json=unilateralClose,proto3,oneof" json:"unilateral_close,omitempty"` + UnilateralAnchorClose *uint32 `protobuf:"varint,11,opt,name=unilateral_anchor_close,json=unilateralAnchorClose,proto3,oneof" json:"unilateral_anchor_close,omitempty"` + DelayedToUs *uint32 `protobuf:"varint,6,opt,name=delayed_to_us,json=delayedToUs,proto3,oneof" json:"delayed_to_us,omitempty"` + HtlcResolution *uint32 `protobuf:"varint,7,opt,name=htlc_resolution,json=htlcResolution,proto3,oneof" json:"htlc_resolution,omitempty"` + Penalty *uint32 `protobuf:"varint,8,opt,name=penalty,proto3,oneof" json:"penalty,omitempty"` +} + +func (x *FeeratesPerkb) Reset() { + *x = FeeratesPerkb{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeeratesPerkb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeeratesPerkb) ProtoMessage() {} + +func (x *FeeratesPerkb) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[141] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeeratesPerkb.ProtoReflect.Descriptor instead. +func (*FeeratesPerkb) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{141} +} + +func (x *FeeratesPerkb) GetMinAcceptable() uint32 { + if x != nil { + return x.MinAcceptable + } + return 0 +} + +func (x *FeeratesPerkb) GetMaxAcceptable() uint32 { + if x != nil { + return x.MaxAcceptable + } + return 0 +} + +func (x *FeeratesPerkb) GetFloor() uint32 { + if x != nil && x.Floor != nil { + return *x.Floor + } + return 0 +} + +func (x *FeeratesPerkb) GetEstimates() []*FeeratesPerkbEstimates { + if x != nil { + return x.Estimates + } + return nil +} + +func (x *FeeratesPerkb) GetOpening() uint32 { + if x != nil && x.Opening != nil { + return *x.Opening + } + return 0 +} + +func (x *FeeratesPerkb) GetMutualClose() uint32 { + if x != nil && x.MutualClose != nil { + return *x.MutualClose + } + return 0 +} + +func (x *FeeratesPerkb) GetUnilateralClose() uint32 { + if x != nil && x.UnilateralClose != nil { + return *x.UnilateralClose + } + return 0 +} + +func (x *FeeratesPerkb) GetUnilateralAnchorClose() uint32 { + if x != nil && x.UnilateralAnchorClose != nil { + return *x.UnilateralAnchorClose + } + return 0 +} + +func (x *FeeratesPerkb) GetDelayedToUs() uint32 { + if x != nil && x.DelayedToUs != nil { + return *x.DelayedToUs + } + return 0 +} + +func (x *FeeratesPerkb) GetHtlcResolution() uint32 { + if x != nil && x.HtlcResolution != nil { + return *x.HtlcResolution + } + return 0 +} + +func (x *FeeratesPerkb) GetPenalty() uint32 { + if x != nil && x.Penalty != nil { + return *x.Penalty + } + return 0 +} + +type FeeratesPerkbEstimates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blockcount *uint32 `protobuf:"varint,1,opt,name=blockcount,proto3,oneof" json:"blockcount,omitempty"` + Feerate *uint32 `protobuf:"varint,2,opt,name=feerate,proto3,oneof" json:"feerate,omitempty"` + SmoothedFeerate *uint32 `protobuf:"varint,3,opt,name=smoothed_feerate,json=smoothedFeerate,proto3,oneof" json:"smoothed_feerate,omitempty"` +} + +func (x *FeeratesPerkbEstimates) Reset() { + *x = FeeratesPerkbEstimates{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeeratesPerkbEstimates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeeratesPerkbEstimates) ProtoMessage() {} + +func (x *FeeratesPerkbEstimates) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[142] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeeratesPerkbEstimates.ProtoReflect.Descriptor instead. +func (*FeeratesPerkbEstimates) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{142} +} + +func (x *FeeratesPerkbEstimates) GetBlockcount() uint32 { + if x != nil && x.Blockcount != nil { + return *x.Blockcount + } + return 0 +} + +func (x *FeeratesPerkbEstimates) GetFeerate() uint32 { + if x != nil && x.Feerate != nil { + return *x.Feerate + } + return 0 +} + +func (x *FeeratesPerkbEstimates) GetSmoothedFeerate() uint32 { + if x != nil && x.SmoothedFeerate != nil { + return *x.SmoothedFeerate + } + return 0 +} + +type FeeratesPerkw struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MinAcceptable uint32 `protobuf:"varint,1,opt,name=min_acceptable,json=minAcceptable,proto3" json:"min_acceptable,omitempty"` + MaxAcceptable uint32 `protobuf:"varint,2,opt,name=max_acceptable,json=maxAcceptable,proto3" json:"max_acceptable,omitempty"` + Floor *uint32 `protobuf:"varint,10,opt,name=floor,proto3,oneof" json:"floor,omitempty"` + Estimates []*FeeratesPerkwEstimates `protobuf:"bytes,9,rep,name=estimates,proto3" json:"estimates,omitempty"` + Opening *uint32 `protobuf:"varint,3,opt,name=opening,proto3,oneof" json:"opening,omitempty"` + MutualClose *uint32 `protobuf:"varint,4,opt,name=mutual_close,json=mutualClose,proto3,oneof" json:"mutual_close,omitempty"` + UnilateralClose *uint32 `protobuf:"varint,5,opt,name=unilateral_close,json=unilateralClose,proto3,oneof" json:"unilateral_close,omitempty"` + UnilateralAnchorClose *uint32 `protobuf:"varint,11,opt,name=unilateral_anchor_close,json=unilateralAnchorClose,proto3,oneof" json:"unilateral_anchor_close,omitempty"` + DelayedToUs *uint32 `protobuf:"varint,6,opt,name=delayed_to_us,json=delayedToUs,proto3,oneof" json:"delayed_to_us,omitempty"` + HtlcResolution *uint32 `protobuf:"varint,7,opt,name=htlc_resolution,json=htlcResolution,proto3,oneof" json:"htlc_resolution,omitempty"` + Penalty *uint32 `protobuf:"varint,8,opt,name=penalty,proto3,oneof" json:"penalty,omitempty"` +} + +func (x *FeeratesPerkw) Reset() { + *x = FeeratesPerkw{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeeratesPerkw) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeeratesPerkw) ProtoMessage() {} + +func (x *FeeratesPerkw) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[143] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeeratesPerkw.ProtoReflect.Descriptor instead. +func (*FeeratesPerkw) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{143} +} + +func (x *FeeratesPerkw) GetMinAcceptable() uint32 { + if x != nil { + return x.MinAcceptable + } + return 0 +} + +func (x *FeeratesPerkw) GetMaxAcceptable() uint32 { + if x != nil { + return x.MaxAcceptable + } + return 0 +} + +func (x *FeeratesPerkw) GetFloor() uint32 { + if x != nil && x.Floor != nil { + return *x.Floor + } + return 0 +} + +func (x *FeeratesPerkw) GetEstimates() []*FeeratesPerkwEstimates { + if x != nil { + return x.Estimates + } + return nil +} + +func (x *FeeratesPerkw) GetOpening() uint32 { + if x != nil && x.Opening != nil { + return *x.Opening + } + return 0 +} + +func (x *FeeratesPerkw) GetMutualClose() uint32 { + if x != nil && x.MutualClose != nil { + return *x.MutualClose + } + return 0 +} + +func (x *FeeratesPerkw) GetUnilateralClose() uint32 { + if x != nil && x.UnilateralClose != nil { + return *x.UnilateralClose + } + return 0 +} + +func (x *FeeratesPerkw) GetUnilateralAnchorClose() uint32 { + if x != nil && x.UnilateralAnchorClose != nil { + return *x.UnilateralAnchorClose + } + return 0 +} + +func (x *FeeratesPerkw) GetDelayedToUs() uint32 { + if x != nil && x.DelayedToUs != nil { + return *x.DelayedToUs + } + return 0 +} + +func (x *FeeratesPerkw) GetHtlcResolution() uint32 { + if x != nil && x.HtlcResolution != nil { + return *x.HtlcResolution + } + return 0 +} + +func (x *FeeratesPerkw) GetPenalty() uint32 { + if x != nil && x.Penalty != nil { + return *x.Penalty + } + return 0 +} + +type FeeratesPerkwEstimates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blockcount *uint32 `protobuf:"varint,1,opt,name=blockcount,proto3,oneof" json:"blockcount,omitempty"` + Feerate *uint32 `protobuf:"varint,2,opt,name=feerate,proto3,oneof" json:"feerate,omitempty"` + SmoothedFeerate *uint32 `protobuf:"varint,3,opt,name=smoothed_feerate,json=smoothedFeerate,proto3,oneof" json:"smoothed_feerate,omitempty"` +} + +func (x *FeeratesPerkwEstimates) Reset() { + *x = FeeratesPerkwEstimates{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[144] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeeratesPerkwEstimates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeeratesPerkwEstimates) ProtoMessage() {} + +func (x *FeeratesPerkwEstimates) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[144] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeeratesPerkwEstimates.ProtoReflect.Descriptor instead. +func (*FeeratesPerkwEstimates) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{144} +} + +func (x *FeeratesPerkwEstimates) GetBlockcount() uint32 { + if x != nil && x.Blockcount != nil { + return *x.Blockcount + } + return 0 +} + +func (x *FeeratesPerkwEstimates) GetFeerate() uint32 { + if x != nil && x.Feerate != nil { + return *x.Feerate + } + return 0 +} + +func (x *FeeratesPerkwEstimates) GetSmoothedFeerate() uint32 { + if x != nil && x.SmoothedFeerate != nil { + return *x.SmoothedFeerate + } + return 0 +} + +type FeeratesOnchainFeeEstimates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpeningChannelSatoshis uint64 `protobuf:"varint,1,opt,name=opening_channel_satoshis,json=openingChannelSatoshis,proto3" json:"opening_channel_satoshis,omitempty"` + MutualCloseSatoshis uint64 `protobuf:"varint,2,opt,name=mutual_close_satoshis,json=mutualCloseSatoshis,proto3" json:"mutual_close_satoshis,omitempty"` + UnilateralCloseSatoshis uint64 `protobuf:"varint,3,opt,name=unilateral_close_satoshis,json=unilateralCloseSatoshis,proto3" json:"unilateral_close_satoshis,omitempty"` + UnilateralCloseNonanchorSatoshis *uint64 `protobuf:"varint,6,opt,name=unilateral_close_nonanchor_satoshis,json=unilateralCloseNonanchorSatoshis,proto3,oneof" json:"unilateral_close_nonanchor_satoshis,omitempty"` + HtlcTimeoutSatoshis uint64 `protobuf:"varint,4,opt,name=htlc_timeout_satoshis,json=htlcTimeoutSatoshis,proto3" json:"htlc_timeout_satoshis,omitempty"` + HtlcSuccessSatoshis uint64 `protobuf:"varint,5,opt,name=htlc_success_satoshis,json=htlcSuccessSatoshis,proto3" json:"htlc_success_satoshis,omitempty"` +} + +func (x *FeeratesOnchainFeeEstimates) Reset() { + *x = FeeratesOnchainFeeEstimates{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeeratesOnchainFeeEstimates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeeratesOnchainFeeEstimates) ProtoMessage() {} + +func (x *FeeratesOnchainFeeEstimates) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[145] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeeratesOnchainFeeEstimates.ProtoReflect.Descriptor instead. +func (*FeeratesOnchainFeeEstimates) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{145} +} + +func (x *FeeratesOnchainFeeEstimates) GetOpeningChannelSatoshis() uint64 { + if x != nil { + return x.OpeningChannelSatoshis + } + return 0 +} + +func (x *FeeratesOnchainFeeEstimates) GetMutualCloseSatoshis() uint64 { + if x != nil { + return x.MutualCloseSatoshis + } + return 0 +} + +func (x *FeeratesOnchainFeeEstimates) GetUnilateralCloseSatoshis() uint64 { + if x != nil { + return x.UnilateralCloseSatoshis + } + return 0 +} + +func (x *FeeratesOnchainFeeEstimates) GetUnilateralCloseNonanchorSatoshis() uint64 { + if x != nil && x.UnilateralCloseNonanchorSatoshis != nil { + return *x.UnilateralCloseNonanchorSatoshis + } + return 0 +} + +func (x *FeeratesOnchainFeeEstimates) GetHtlcTimeoutSatoshis() uint64 { + if x != nil { + return x.HtlcTimeoutSatoshis + } + return 0 +} + +func (x *FeeratesOnchainFeeEstimates) GetHtlcSuccessSatoshis() uint64 { + if x != nil { + return x.HtlcSuccessSatoshis + } + return 0 +} + +type FetchinvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offer string `protobuf:"bytes,1,opt,name=offer,proto3" json:"offer,omitempty"` + AmountMsat *Amount `protobuf:"bytes,2,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + Quantity *uint64 `protobuf:"varint,3,opt,name=quantity,proto3,oneof" json:"quantity,omitempty"` + RecurrenceCounter *uint64 `protobuf:"varint,4,opt,name=recurrence_counter,json=recurrenceCounter,proto3,oneof" json:"recurrence_counter,omitempty"` + RecurrenceStart *float64 `protobuf:"fixed64,5,opt,name=recurrence_start,json=recurrenceStart,proto3,oneof" json:"recurrence_start,omitempty"` + RecurrenceLabel *string `protobuf:"bytes,6,opt,name=recurrence_label,json=recurrenceLabel,proto3,oneof" json:"recurrence_label,omitempty"` + Timeout *float64 `protobuf:"fixed64,7,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"` + PayerNote *string `protobuf:"bytes,8,opt,name=payer_note,json=payerNote,proto3,oneof" json:"payer_note,omitempty"` +} + +func (x *FetchinvoiceRequest) Reset() { + *x = FetchinvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FetchinvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchinvoiceRequest) ProtoMessage() {} + +func (x *FetchinvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[146] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchinvoiceRequest.ProtoReflect.Descriptor instead. +func (*FetchinvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{146} +} + +func (x *FetchinvoiceRequest) GetOffer() string { + if x != nil { + return x.Offer + } + return "" +} + +func (x *FetchinvoiceRequest) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *FetchinvoiceRequest) GetQuantity() uint64 { + if x != nil && x.Quantity != nil { + return *x.Quantity + } + return 0 +} + +func (x *FetchinvoiceRequest) GetRecurrenceCounter() uint64 { + if x != nil && x.RecurrenceCounter != nil { + return *x.RecurrenceCounter + } + return 0 +} + +func (x *FetchinvoiceRequest) GetRecurrenceStart() float64 { + if x != nil && x.RecurrenceStart != nil { + return *x.RecurrenceStart + } + return 0 +} + +func (x *FetchinvoiceRequest) GetRecurrenceLabel() string { + if x != nil && x.RecurrenceLabel != nil { + return *x.RecurrenceLabel + } + return "" +} + +func (x *FetchinvoiceRequest) GetTimeout() float64 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + +func (x *FetchinvoiceRequest) GetPayerNote() string { + if x != nil && x.PayerNote != nil { + return *x.PayerNote + } + return "" +} + +type FetchinvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Invoice string `protobuf:"bytes,1,opt,name=invoice,proto3" json:"invoice,omitempty"` + Changes *FetchinvoiceChanges `protobuf:"bytes,2,opt,name=changes,proto3" json:"changes,omitempty"` + NextPeriod *FetchinvoiceNextPeriod `protobuf:"bytes,3,opt,name=next_period,json=nextPeriod,proto3,oneof" json:"next_period,omitempty"` +} + +func (x *FetchinvoiceResponse) Reset() { + *x = FetchinvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FetchinvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchinvoiceResponse) ProtoMessage() {} + +func (x *FetchinvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[147] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchinvoiceResponse.ProtoReflect.Descriptor instead. +func (*FetchinvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{147} +} + +func (x *FetchinvoiceResponse) GetInvoice() string { + if x != nil { + return x.Invoice + } + return "" +} + +func (x *FetchinvoiceResponse) GetChanges() *FetchinvoiceChanges { + if x != nil { + return x.Changes + } + return nil +} + +func (x *FetchinvoiceResponse) GetNextPeriod() *FetchinvoiceNextPeriod { + if x != nil { + return x.NextPeriod + } + return nil +} + +type FetchinvoiceChanges struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DescriptionAppended *string `protobuf:"bytes,1,opt,name=description_appended,json=descriptionAppended,proto3,oneof" json:"description_appended,omitempty"` + Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` + VendorRemoved *string `protobuf:"bytes,3,opt,name=vendor_removed,json=vendorRemoved,proto3,oneof" json:"vendor_removed,omitempty"` + Vendor *string `protobuf:"bytes,4,opt,name=vendor,proto3,oneof" json:"vendor,omitempty"` + AmountMsat *Amount `protobuf:"bytes,5,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` +} + +func (x *FetchinvoiceChanges) Reset() { + *x = FetchinvoiceChanges{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FetchinvoiceChanges) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchinvoiceChanges) ProtoMessage() {} + +func (x *FetchinvoiceChanges) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[148] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchinvoiceChanges.ProtoReflect.Descriptor instead. +func (*FetchinvoiceChanges) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{148} +} + +func (x *FetchinvoiceChanges) GetDescriptionAppended() string { + if x != nil && x.DescriptionAppended != nil { + return *x.DescriptionAppended + } + return "" +} + +func (x *FetchinvoiceChanges) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *FetchinvoiceChanges) GetVendorRemoved() string { + if x != nil && x.VendorRemoved != nil { + return *x.VendorRemoved + } + return "" +} + +func (x *FetchinvoiceChanges) GetVendor() string { + if x != nil && x.Vendor != nil { + return *x.Vendor + } + return "" +} + +func (x *FetchinvoiceChanges) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +type FetchinvoiceNextPeriod struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Counter uint64 `protobuf:"varint,1,opt,name=counter,proto3" json:"counter,omitempty"` + Starttime uint64 `protobuf:"varint,2,opt,name=starttime,proto3" json:"starttime,omitempty"` + Endtime uint64 `protobuf:"varint,3,opt,name=endtime,proto3" json:"endtime,omitempty"` + PaywindowStart uint64 `protobuf:"varint,4,opt,name=paywindow_start,json=paywindowStart,proto3" json:"paywindow_start,omitempty"` + PaywindowEnd uint64 `protobuf:"varint,5,opt,name=paywindow_end,json=paywindowEnd,proto3" json:"paywindow_end,omitempty"` +} + +func (x *FetchinvoiceNextPeriod) Reset() { + *x = FetchinvoiceNextPeriod{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[149] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FetchinvoiceNextPeriod) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchinvoiceNextPeriod) ProtoMessage() {} + +func (x *FetchinvoiceNextPeriod) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[149] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchinvoiceNextPeriod.ProtoReflect.Descriptor instead. +func (*FetchinvoiceNextPeriod) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{149} +} + +func (x *FetchinvoiceNextPeriod) GetCounter() uint64 { + if x != nil { + return x.Counter + } + return 0 +} + +func (x *FetchinvoiceNextPeriod) GetStarttime() uint64 { + if x != nil { + return x.Starttime + } + return 0 +} + +func (x *FetchinvoiceNextPeriod) GetEndtime() uint64 { + if x != nil { + return x.Endtime + } + return 0 +} + +func (x *FetchinvoiceNextPeriod) GetPaywindowStart() uint64 { + if x != nil { + return x.PaywindowStart + } + return 0 +} + +func (x *FetchinvoiceNextPeriod) GetPaywindowEnd() uint64 { + if x != nil { + return x.PaywindowEnd + } + return 0 +} + +type FundchannelRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,9,opt,name=id,proto3" json:"id,omitempty"` + Amount *AmountOrAll `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Feerate *Feerate `protobuf:"bytes,2,opt,name=feerate,proto3,oneof" json:"feerate,omitempty"` + Announce *bool `protobuf:"varint,3,opt,name=announce,proto3,oneof" json:"announce,omitempty"` + Minconf *uint32 `protobuf:"varint,10,opt,name=minconf,proto3,oneof" json:"minconf,omitempty"` + PushMsat *Amount `protobuf:"bytes,5,opt,name=push_msat,json=pushMsat,proto3,oneof" json:"push_msat,omitempty"` + CloseTo *string `protobuf:"bytes,6,opt,name=close_to,json=closeTo,proto3,oneof" json:"close_to,omitempty"` + RequestAmt *Amount `protobuf:"bytes,7,opt,name=request_amt,json=requestAmt,proto3,oneof" json:"request_amt,omitempty"` + CompactLease *string `protobuf:"bytes,8,opt,name=compact_lease,json=compactLease,proto3,oneof" json:"compact_lease,omitempty"` + Utxos []*Outpoint `protobuf:"bytes,11,rep,name=utxos,proto3" json:"utxos,omitempty"` + Mindepth *uint32 `protobuf:"varint,12,opt,name=mindepth,proto3,oneof" json:"mindepth,omitempty"` + Reserve *Amount `protobuf:"bytes,13,opt,name=reserve,proto3,oneof" json:"reserve,omitempty"` + ChannelType []uint32 `protobuf:"varint,14,rep,packed,name=channel_type,json=channelType,proto3" json:"channel_type,omitempty"` +} + +func (x *FundchannelRequest) Reset() { + *x = FundchannelRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[150] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundchannelRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundchannelRequest) ProtoMessage() {} + +func (x *FundchannelRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[150] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FundchannelRequest.ProtoReflect.Descriptor instead. +func (*FundchannelRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{150} +} + +func (x *FundchannelRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *FundchannelRequest) GetAmount() *AmountOrAll { + if x != nil { + return x.Amount + } + return nil +} + +func (x *FundchannelRequest) GetFeerate() *Feerate { + if x != nil { + return x.Feerate + } + return nil +} + +func (x *FundchannelRequest) GetAnnounce() bool { + if x != nil && x.Announce != nil { + return *x.Announce + } + return false +} + +func (x *FundchannelRequest) GetMinconf() uint32 { + if x != nil && x.Minconf != nil { + return *x.Minconf + } + return 0 +} + +func (x *FundchannelRequest) GetPushMsat() *Amount { + if x != nil { + return x.PushMsat + } + return nil +} + +func (x *FundchannelRequest) GetCloseTo() string { + if x != nil && x.CloseTo != nil { + return *x.CloseTo + } + return "" +} + +func (x *FundchannelRequest) GetRequestAmt() *Amount { + if x != nil { + return x.RequestAmt + } + return nil +} + +func (x *FundchannelRequest) GetCompactLease() string { + if x != nil && x.CompactLease != nil { + return *x.CompactLease + } + return "" +} + +func (x *FundchannelRequest) GetUtxos() []*Outpoint { + if x != nil { + return x.Utxos + } + return nil +} + +func (x *FundchannelRequest) GetMindepth() uint32 { + if x != nil && x.Mindepth != nil { + return *x.Mindepth + } + return 0 +} + +func (x *FundchannelRequest) GetReserve() *Amount { + if x != nil { + return x.Reserve + } + return nil +} + +func (x *FundchannelRequest) GetChannelType() []uint32 { + if x != nil { + return x.ChannelType + } + return nil +} + +type FundchannelResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` + Txid []byte `protobuf:"bytes,2,opt,name=txid,proto3" json:"txid,omitempty"` + Outnum uint32 `protobuf:"varint,3,opt,name=outnum,proto3" json:"outnum,omitempty"` + ChannelId []byte `protobuf:"bytes,4,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + ChannelType *FundchannelChannelType `protobuf:"bytes,7,opt,name=channel_type,json=channelType,proto3,oneof" json:"channel_type,omitempty"` + CloseTo []byte `protobuf:"bytes,5,opt,name=close_to,json=closeTo,proto3,oneof" json:"close_to,omitempty"` + Mindepth *uint32 `protobuf:"varint,6,opt,name=mindepth,proto3,oneof" json:"mindepth,omitempty"` +} + +func (x *FundchannelResponse) Reset() { + *x = FundchannelResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[151] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundchannelResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundchannelResponse) ProtoMessage() {} + +func (x *FundchannelResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[151] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FundchannelResponse.ProtoReflect.Descriptor instead. +func (*FundchannelResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{151} +} + +func (x *FundchannelResponse) GetTx() []byte { + if x != nil { + return x.Tx + } + return nil +} + +func (x *FundchannelResponse) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *FundchannelResponse) GetOutnum() uint32 { + if x != nil { + return x.Outnum + } + return 0 +} + +func (x *FundchannelResponse) GetChannelId() []byte { + if x != nil { + return x.ChannelId + } + return nil +} + +func (x *FundchannelResponse) GetChannelType() *FundchannelChannelType { + if x != nil { + return x.ChannelType + } + return nil +} + +func (x *FundchannelResponse) GetCloseTo() []byte { + if x != nil { + return x.CloseTo + } + return nil +} + +func (x *FundchannelResponse) GetMindepth() uint32 { + if x != nil && x.Mindepth != nil { + return *x.Mindepth + } + return 0 +} + +type FundchannelChannelType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bits []uint32 `protobuf:"varint,1,rep,packed,name=bits,proto3" json:"bits,omitempty"` + Names []ChannelTypeName `protobuf:"varint,2,rep,packed,name=names,proto3,enum=cln.ChannelTypeName" json:"names,omitempty"` +} + +func (x *FundchannelChannelType) Reset() { + *x = FundchannelChannelType{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[152] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundchannelChannelType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundchannelChannelType) ProtoMessage() {} + +func (x *FundchannelChannelType) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[152] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FundchannelChannelType.ProtoReflect.Descriptor instead. +func (*FundchannelChannelType) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{152} +} + +func (x *FundchannelChannelType) GetBits() []uint32 { + if x != nil { + return x.Bits + } + return nil +} + +func (x *FundchannelChannelType) GetNames() []ChannelTypeName { + if x != nil { + return x.Names + } + return nil +} + +type GetrouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + AmountMsat *Amount `protobuf:"bytes,9,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Riskfactor uint64 `protobuf:"varint,3,opt,name=riskfactor,proto3" json:"riskfactor,omitempty"` + Cltv *uint32 `protobuf:"varint,4,opt,name=cltv,proto3,oneof" json:"cltv,omitempty"` + Fromid []byte `protobuf:"bytes,5,opt,name=fromid,proto3,oneof" json:"fromid,omitempty"` + Fuzzpercent *uint32 `protobuf:"varint,6,opt,name=fuzzpercent,proto3,oneof" json:"fuzzpercent,omitempty"` + Exclude []string `protobuf:"bytes,7,rep,name=exclude,proto3" json:"exclude,omitempty"` + Maxhops *uint32 `protobuf:"varint,8,opt,name=maxhops,proto3,oneof" json:"maxhops,omitempty"` +} + +func (x *GetrouteRequest) Reset() { + *x = GetrouteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[153] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetrouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetrouteRequest) ProtoMessage() {} + +func (x *GetrouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[153] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetrouteRequest.ProtoReflect.Descriptor instead. +func (*GetrouteRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{153} +} + +func (x *GetrouteRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *GetrouteRequest) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *GetrouteRequest) GetRiskfactor() uint64 { + if x != nil { + return x.Riskfactor + } + return 0 +} + +func (x *GetrouteRequest) GetCltv() uint32 { + if x != nil && x.Cltv != nil { + return *x.Cltv + } + return 0 +} + +func (x *GetrouteRequest) GetFromid() []byte { + if x != nil { + return x.Fromid + } + return nil +} + +func (x *GetrouteRequest) GetFuzzpercent() uint32 { + if x != nil && x.Fuzzpercent != nil { + return *x.Fuzzpercent + } + return 0 +} + +func (x *GetrouteRequest) GetExclude() []string { + if x != nil { + return x.Exclude + } + return nil +} + +func (x *GetrouteRequest) GetMaxhops() uint32 { + if x != nil && x.Maxhops != nil { + return *x.Maxhops + } + return 0 +} + +type GetrouteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Route []*GetrouteRoute `protobuf:"bytes,1,rep,name=route,proto3" json:"route,omitempty"` +} + +func (x *GetrouteResponse) Reset() { + *x = GetrouteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetrouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetrouteResponse) ProtoMessage() {} + +func (x *GetrouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[154] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetrouteResponse.ProtoReflect.Descriptor instead. +func (*GetrouteResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{154} +} + +func (x *GetrouteResponse) GetRoute() []*GetrouteRoute { + if x != nil { + return x.Route + } + return nil +} + +type GetrouteRoute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Channel string `protobuf:"bytes,2,opt,name=channel,proto3" json:"channel,omitempty"` + Direction uint32 `protobuf:"varint,3,opt,name=direction,proto3" json:"direction,omitempty"` + AmountMsat *Amount `protobuf:"bytes,4,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Delay uint32 `protobuf:"varint,5,opt,name=delay,proto3" json:"delay,omitempty"` + Style GetrouteRoute_GetrouteRouteStyle `protobuf:"varint,6,opt,name=style,proto3,enum=cln.GetrouteRoute_GetrouteRouteStyle" json:"style,omitempty"` +} + +func (x *GetrouteRoute) Reset() { + *x = GetrouteRoute{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[155] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetrouteRoute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetrouteRoute) ProtoMessage() {} + +func (x *GetrouteRoute) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[155] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetrouteRoute.ProtoReflect.Descriptor instead. +func (*GetrouteRoute) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{155} +} + +func (x *GetrouteRoute) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *GetrouteRoute) GetChannel() string { + if x != nil { + return x.Channel + } + return "" +} + +func (x *GetrouteRoute) GetDirection() uint32 { + if x != nil { + return x.Direction + } + return 0 +} + +func (x *GetrouteRoute) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *GetrouteRoute) GetDelay() uint32 { + if x != nil { + return x.Delay + } + return 0 +} + +func (x *GetrouteRoute) GetStyle() GetrouteRoute_GetrouteRouteStyle { + if x != nil { + return x.Style + } + return GetrouteRoute_TLV +} + +type ListforwardsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *ListforwardsRequest_ListforwardsStatus `protobuf:"varint,1,opt,name=status,proto3,enum=cln.ListforwardsRequest_ListforwardsStatus,oneof" json:"status,omitempty"` + InChannel *string `protobuf:"bytes,2,opt,name=in_channel,json=inChannel,proto3,oneof" json:"in_channel,omitempty"` + OutChannel *string `protobuf:"bytes,3,opt,name=out_channel,json=outChannel,proto3,oneof" json:"out_channel,omitempty"` + Index *ListforwardsRequest_ListforwardsIndex `protobuf:"varint,4,opt,name=index,proto3,enum=cln.ListforwardsRequest_ListforwardsIndex,oneof" json:"index,omitempty"` + Start *uint64 `protobuf:"varint,5,opt,name=start,proto3,oneof" json:"start,omitempty"` + Limit *uint32 `protobuf:"varint,6,opt,name=limit,proto3,oneof" json:"limit,omitempty"` +} + +func (x *ListforwardsRequest) Reset() { + *x = ListforwardsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[156] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListforwardsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListforwardsRequest) ProtoMessage() {} + +func (x *ListforwardsRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[156] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListforwardsRequest.ProtoReflect.Descriptor instead. +func (*ListforwardsRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{156} +} + +func (x *ListforwardsRequest) GetStatus() ListforwardsRequest_ListforwardsStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return ListforwardsRequest_OFFERED +} + +func (x *ListforwardsRequest) GetInChannel() string { + if x != nil && x.InChannel != nil { + return *x.InChannel + } + return "" +} + +func (x *ListforwardsRequest) GetOutChannel() string { + if x != nil && x.OutChannel != nil { + return *x.OutChannel + } + return "" +} + +func (x *ListforwardsRequest) GetIndex() ListforwardsRequest_ListforwardsIndex { + if x != nil && x.Index != nil { + return *x.Index + } + return ListforwardsRequest_CREATED +} + +func (x *ListforwardsRequest) GetStart() uint64 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *ListforwardsRequest) GetLimit() uint32 { + if x != nil && x.Limit != nil { + return *x.Limit + } + return 0 +} + +type ListforwardsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Forwards []*ListforwardsForwards `protobuf:"bytes,1,rep,name=forwards,proto3" json:"forwards,omitempty"` +} + +func (x *ListforwardsResponse) Reset() { + *x = ListforwardsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[157] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListforwardsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListforwardsResponse) ProtoMessage() {} + +func (x *ListforwardsResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[157] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListforwardsResponse.ProtoReflect.Descriptor instead. +func (*ListforwardsResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{157} +} + +func (x *ListforwardsResponse) GetForwards() []*ListforwardsForwards { + if x != nil { + return x.Forwards + } + return nil +} + +type ListforwardsForwards struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedIndex *uint64 `protobuf:"varint,12,opt,name=created_index,json=createdIndex,proto3,oneof" json:"created_index,omitempty"` + InChannel string `protobuf:"bytes,1,opt,name=in_channel,json=inChannel,proto3" json:"in_channel,omitempty"` + InHtlcId *uint64 `protobuf:"varint,10,opt,name=in_htlc_id,json=inHtlcId,proto3,oneof" json:"in_htlc_id,omitempty"` + InMsat *Amount `protobuf:"bytes,2,opt,name=in_msat,json=inMsat,proto3" json:"in_msat,omitempty"` + Status ListforwardsForwards_ListforwardsForwardsStatus `protobuf:"varint,3,opt,name=status,proto3,enum=cln.ListforwardsForwards_ListforwardsForwardsStatus" json:"status,omitempty"` + ReceivedTime float64 `protobuf:"fixed64,4,opt,name=received_time,json=receivedTime,proto3" json:"received_time,omitempty"` + OutChannel *string `protobuf:"bytes,5,opt,name=out_channel,json=outChannel,proto3,oneof" json:"out_channel,omitempty"` + OutHtlcId *uint64 `protobuf:"varint,11,opt,name=out_htlc_id,json=outHtlcId,proto3,oneof" json:"out_htlc_id,omitempty"` + UpdatedIndex *uint64 `protobuf:"varint,13,opt,name=updated_index,json=updatedIndex,proto3,oneof" json:"updated_index,omitempty"` + Style *ListforwardsForwards_ListforwardsForwardsStyle `protobuf:"varint,9,opt,name=style,proto3,enum=cln.ListforwardsForwards_ListforwardsForwardsStyle,oneof" json:"style,omitempty"` + FeeMsat *Amount `protobuf:"bytes,7,opt,name=fee_msat,json=feeMsat,proto3,oneof" json:"fee_msat,omitempty"` + OutMsat *Amount `protobuf:"bytes,8,opt,name=out_msat,json=outMsat,proto3,oneof" json:"out_msat,omitempty"` +} + +func (x *ListforwardsForwards) Reset() { + *x = ListforwardsForwards{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[158] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListforwardsForwards) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListforwardsForwards) ProtoMessage() {} + +func (x *ListforwardsForwards) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[158] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListforwardsForwards.ProtoReflect.Descriptor instead. +func (*ListforwardsForwards) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{158} +} + +func (x *ListforwardsForwards) GetCreatedIndex() uint64 { + if x != nil && x.CreatedIndex != nil { + return *x.CreatedIndex + } + return 0 +} + +func (x *ListforwardsForwards) GetInChannel() string { + if x != nil { + return x.InChannel + } + return "" +} + +func (x *ListforwardsForwards) GetInHtlcId() uint64 { + if x != nil && x.InHtlcId != nil { + return *x.InHtlcId + } + return 0 +} + +func (x *ListforwardsForwards) GetInMsat() *Amount { + if x != nil { + return x.InMsat + } + return nil +} + +func (x *ListforwardsForwards) GetStatus() ListforwardsForwards_ListforwardsForwardsStatus { + if x != nil { + return x.Status + } + return ListforwardsForwards_OFFERED +} + +func (x *ListforwardsForwards) GetReceivedTime() float64 { + if x != nil { + return x.ReceivedTime + } + return 0 +} + +func (x *ListforwardsForwards) GetOutChannel() string { + if x != nil && x.OutChannel != nil { + return *x.OutChannel + } + return "" +} + +func (x *ListforwardsForwards) GetOutHtlcId() uint64 { + if x != nil && x.OutHtlcId != nil { + return *x.OutHtlcId + } + return 0 +} + +func (x *ListforwardsForwards) GetUpdatedIndex() uint64 { + if x != nil && x.UpdatedIndex != nil { + return *x.UpdatedIndex + } + return 0 +} + +func (x *ListforwardsForwards) GetStyle() ListforwardsForwards_ListforwardsForwardsStyle { + if x != nil && x.Style != nil { + return *x.Style + } + return ListforwardsForwards_LEGACY +} + +func (x *ListforwardsForwards) GetFeeMsat() *Amount { + if x != nil { + return x.FeeMsat + } + return nil +} + +func (x *ListforwardsForwards) GetOutMsat() *Amount { + if x != nil { + return x.OutMsat + } + return nil +} + +type ListoffersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OfferId []byte `protobuf:"bytes,1,opt,name=offer_id,json=offerId,proto3,oneof" json:"offer_id,omitempty"` + ActiveOnly *bool `protobuf:"varint,2,opt,name=active_only,json=activeOnly,proto3,oneof" json:"active_only,omitempty"` +} + +func (x *ListoffersRequest) Reset() { + *x = ListoffersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[159] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListoffersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListoffersRequest) ProtoMessage() {} + +func (x *ListoffersRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[159] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListoffersRequest.ProtoReflect.Descriptor instead. +func (*ListoffersRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{159} +} + +func (x *ListoffersRequest) GetOfferId() []byte { + if x != nil { + return x.OfferId + } + return nil +} + +func (x *ListoffersRequest) GetActiveOnly() bool { + if x != nil && x.ActiveOnly != nil { + return *x.ActiveOnly + } + return false +} + +type ListoffersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Offers []*ListoffersOffers `protobuf:"bytes,1,rep,name=offers,proto3" json:"offers,omitempty"` +} + +func (x *ListoffersResponse) Reset() { + *x = ListoffersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[160] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListoffersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListoffersResponse) ProtoMessage() {} + +func (x *ListoffersResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[160] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListoffersResponse.ProtoReflect.Descriptor instead. +func (*ListoffersResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{160} +} + +func (x *ListoffersResponse) GetOffers() []*ListoffersOffers { + if x != nil { + return x.Offers + } + return nil +} + +type ListoffersOffers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OfferId []byte `protobuf:"bytes,1,opt,name=offer_id,json=offerId,proto3" json:"offer_id,omitempty"` + Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"` + SingleUse bool `protobuf:"varint,3,opt,name=single_use,json=singleUse,proto3" json:"single_use,omitempty"` + Bolt12 string `protobuf:"bytes,4,opt,name=bolt12,proto3" json:"bolt12,omitempty"` + Used bool `protobuf:"varint,5,opt,name=used,proto3" json:"used,omitempty"` + Label *string `protobuf:"bytes,6,opt,name=label,proto3,oneof" json:"label,omitempty"` +} + +func (x *ListoffersOffers) Reset() { + *x = ListoffersOffers{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[161] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListoffersOffers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListoffersOffers) ProtoMessage() {} + +func (x *ListoffersOffers) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[161] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListoffersOffers.ProtoReflect.Descriptor instead. +func (*ListoffersOffers) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{161} +} + +func (x *ListoffersOffers) GetOfferId() []byte { + if x != nil { + return x.OfferId + } + return nil +} + +func (x *ListoffersOffers) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +func (x *ListoffersOffers) GetSingleUse() bool { + if x != nil { + return x.SingleUse + } + return false +} + +func (x *ListoffersOffers) GetBolt12() string { + if x != nil { + return x.Bolt12 + } + return "" +} + +func (x *ListoffersOffers) GetUsed() bool { + if x != nil { + return x.Used + } + return false +} + +func (x *ListoffersOffers) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +type ListpaysRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bolt11 *string `protobuf:"bytes,1,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3,oneof" json:"payment_hash,omitempty"` + Status *ListpaysRequest_ListpaysStatus `protobuf:"varint,3,opt,name=status,proto3,enum=cln.ListpaysRequest_ListpaysStatus,oneof" json:"status,omitempty"` +} + +func (x *ListpaysRequest) Reset() { + *x = ListpaysRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[162] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpaysRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpaysRequest) ProtoMessage() {} + +func (x *ListpaysRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[162] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpaysRequest.ProtoReflect.Descriptor instead. +func (*ListpaysRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{162} +} + +func (x *ListpaysRequest) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *ListpaysRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListpaysRequest) GetStatus() ListpaysRequest_ListpaysStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return ListpaysRequest_PENDING +} + +type ListpaysResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pays []*ListpaysPays `protobuf:"bytes,1,rep,name=pays,proto3" json:"pays,omitempty"` +} + +func (x *ListpaysResponse) Reset() { + *x = ListpaysResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[163] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpaysResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpaysResponse) ProtoMessage() {} + +func (x *ListpaysResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[163] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpaysResponse.ProtoReflect.Descriptor instead. +func (*ListpaysResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{163} +} + +func (x *ListpaysResponse) GetPays() []*ListpaysPays { + if x != nil { + return x.Pays + } + return nil +} + +type ListpaysPays struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + Status ListpaysPays_ListpaysPaysStatus `protobuf:"varint,2,opt,name=status,proto3,enum=cln.ListpaysPays_ListpaysPaysStatus" json:"status,omitempty"` + Destination []byte `protobuf:"bytes,3,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + CreatedAt uint64 `protobuf:"varint,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + CompletedAt *uint64 `protobuf:"varint,12,opt,name=completed_at,json=completedAt,proto3,oneof" json:"completed_at,omitempty"` + Label *string `protobuf:"bytes,5,opt,name=label,proto3,oneof" json:"label,omitempty"` + Bolt11 *string `protobuf:"bytes,6,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` + Description *string `protobuf:"bytes,11,opt,name=description,proto3,oneof" json:"description,omitempty"` + Bolt12 *string `protobuf:"bytes,7,opt,name=bolt12,proto3,oneof" json:"bolt12,omitempty"` + AmountMsat *Amount `protobuf:"bytes,8,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` + AmountSentMsat *Amount `protobuf:"bytes,9,opt,name=amount_sent_msat,json=amountSentMsat,proto3,oneof" json:"amount_sent_msat,omitempty"` + Preimage []byte `protobuf:"bytes,13,opt,name=preimage,proto3,oneof" json:"preimage,omitempty"` + NumberOfParts *uint64 `protobuf:"varint,14,opt,name=number_of_parts,json=numberOfParts,proto3,oneof" json:"number_of_parts,omitempty"` + Erroronion []byte `protobuf:"bytes,10,opt,name=erroronion,proto3,oneof" json:"erroronion,omitempty"` +} + +func (x *ListpaysPays) Reset() { + *x = ListpaysPays{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[164] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListpaysPays) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListpaysPays) ProtoMessage() {} + +func (x *ListpaysPays) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[164] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListpaysPays.ProtoReflect.Descriptor instead. +func (*ListpaysPays) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{164} +} + +func (x *ListpaysPays) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListpaysPays) GetStatus() ListpaysPays_ListpaysPaysStatus { + if x != nil { + return x.Status + } + return ListpaysPays_PENDING +} + +func (x *ListpaysPays) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *ListpaysPays) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *ListpaysPays) GetCompletedAt() uint64 { + if x != nil && x.CompletedAt != nil { + return *x.CompletedAt + } + return 0 +} + +func (x *ListpaysPays) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *ListpaysPays) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +func (x *ListpaysPays) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *ListpaysPays) GetBolt12() string { + if x != nil && x.Bolt12 != nil { + return *x.Bolt12 + } + return "" +} + +func (x *ListpaysPays) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListpaysPays) GetAmountSentMsat() *Amount { + if x != nil { + return x.AmountSentMsat + } + return nil +} + +func (x *ListpaysPays) GetPreimage() []byte { + if x != nil { + return x.Preimage + } + return nil +} + +func (x *ListpaysPays) GetNumberOfParts() uint64 { + if x != nil && x.NumberOfParts != nil { + return *x.NumberOfParts + } + return 0 +} + +func (x *ListpaysPays) GetErroronion() []byte { + if x != nil { + return x.Erroronion + } + return nil +} + +type ListhtlcsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` +} + +func (x *ListhtlcsRequest) Reset() { + *x = ListhtlcsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[165] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListhtlcsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListhtlcsRequest) ProtoMessage() {} + +func (x *ListhtlcsRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[165] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListhtlcsRequest.ProtoReflect.Descriptor instead. +func (*ListhtlcsRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{165} +} + +func (x *ListhtlcsRequest) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +type ListhtlcsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Htlcs []*ListhtlcsHtlcs `protobuf:"bytes,1,rep,name=htlcs,proto3" json:"htlcs,omitempty"` +} + +func (x *ListhtlcsResponse) Reset() { + *x = ListhtlcsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[166] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListhtlcsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListhtlcsResponse) ProtoMessage() {} + +func (x *ListhtlcsResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[166] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListhtlcsResponse.ProtoReflect.Descriptor instead. +func (*ListhtlcsResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{166} +} + +func (x *ListhtlcsResponse) GetHtlcs() []*ListhtlcsHtlcs { + if x != nil { + return x.Htlcs + } + return nil +} + +type ListhtlcsHtlcs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ShortChannelId string `protobuf:"bytes,1,opt,name=short_channel_id,json=shortChannelId,proto3" json:"short_channel_id,omitempty"` + Id uint64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Expiry uint32 `protobuf:"varint,3,opt,name=expiry,proto3" json:"expiry,omitempty"` + AmountMsat *Amount `protobuf:"bytes,4,opt,name=amount_msat,json=amountMsat,proto3" json:"amount_msat,omitempty"` + Direction ListhtlcsHtlcs_ListhtlcsHtlcsDirection `protobuf:"varint,5,opt,name=direction,proto3,enum=cln.ListhtlcsHtlcs_ListhtlcsHtlcsDirection" json:"direction,omitempty"` + PaymentHash []byte `protobuf:"bytes,6,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"` + State HtlcState `protobuf:"varint,7,opt,name=state,proto3,enum=cln.HtlcState" json:"state,omitempty"` +} + +func (x *ListhtlcsHtlcs) Reset() { + *x = ListhtlcsHtlcs{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[167] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListhtlcsHtlcs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListhtlcsHtlcs) ProtoMessage() {} + +func (x *ListhtlcsHtlcs) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[167] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListhtlcsHtlcs.ProtoReflect.Descriptor instead. +func (*ListhtlcsHtlcs) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{167} +} + +func (x *ListhtlcsHtlcs) GetShortChannelId() string { + if x != nil { + return x.ShortChannelId + } + return "" +} + +func (x *ListhtlcsHtlcs) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ListhtlcsHtlcs) GetExpiry() uint32 { + if x != nil { + return x.Expiry + } + return 0 +} + +func (x *ListhtlcsHtlcs) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +func (x *ListhtlcsHtlcs) GetDirection() ListhtlcsHtlcs_ListhtlcsHtlcsDirection { + if x != nil { + return x.Direction + } + return ListhtlcsHtlcs_OUT +} + +func (x *ListhtlcsHtlcs) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *ListhtlcsHtlcs) GetState() HtlcState { + if x != nil { + return x.State + } + return HtlcState_SentAddHtlc +} + +type OfferRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount string `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Issuer *string `protobuf:"bytes,3,opt,name=issuer,proto3,oneof" json:"issuer,omitempty"` + Label *string `protobuf:"bytes,4,opt,name=label,proto3,oneof" json:"label,omitempty"` + QuantityMax *uint64 `protobuf:"varint,5,opt,name=quantity_max,json=quantityMax,proto3,oneof" json:"quantity_max,omitempty"` + AbsoluteExpiry *uint64 `protobuf:"varint,6,opt,name=absolute_expiry,json=absoluteExpiry,proto3,oneof" json:"absolute_expiry,omitempty"` + Recurrence *string `protobuf:"bytes,7,opt,name=recurrence,proto3,oneof" json:"recurrence,omitempty"` + RecurrenceBase *string `protobuf:"bytes,8,opt,name=recurrence_base,json=recurrenceBase,proto3,oneof" json:"recurrence_base,omitempty"` + RecurrencePaywindow *string `protobuf:"bytes,9,opt,name=recurrence_paywindow,json=recurrencePaywindow,proto3,oneof" json:"recurrence_paywindow,omitempty"` + RecurrenceLimit *uint64 `protobuf:"varint,10,opt,name=recurrence_limit,json=recurrenceLimit,proto3,oneof" json:"recurrence_limit,omitempty"` + SingleUse *bool `protobuf:"varint,11,opt,name=single_use,json=singleUse,proto3,oneof" json:"single_use,omitempty"` +} + +func (x *OfferRequest) Reset() { + *x = OfferRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[168] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OfferRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OfferRequest) ProtoMessage() {} + +func (x *OfferRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[168] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OfferRequest.ProtoReflect.Descriptor instead. +func (*OfferRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{168} +} + +func (x *OfferRequest) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *OfferRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *OfferRequest) GetIssuer() string { + if x != nil && x.Issuer != nil { + return *x.Issuer + } + return "" +} + +func (x *OfferRequest) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *OfferRequest) GetQuantityMax() uint64 { + if x != nil && x.QuantityMax != nil { + return *x.QuantityMax + } + return 0 +} + +func (x *OfferRequest) GetAbsoluteExpiry() uint64 { + if x != nil && x.AbsoluteExpiry != nil { + return *x.AbsoluteExpiry + } + return 0 +} + +func (x *OfferRequest) GetRecurrence() string { + if x != nil && x.Recurrence != nil { + return *x.Recurrence + } + return "" +} + +func (x *OfferRequest) GetRecurrenceBase() string { + if x != nil && x.RecurrenceBase != nil { + return *x.RecurrenceBase + } + return "" +} + +func (x *OfferRequest) GetRecurrencePaywindow() string { + if x != nil && x.RecurrencePaywindow != nil { + return *x.RecurrencePaywindow + } + return "" +} + +func (x *OfferRequest) GetRecurrenceLimit() uint64 { + if x != nil && x.RecurrenceLimit != nil { + return *x.RecurrenceLimit + } + return 0 +} + +func (x *OfferRequest) GetSingleUse() bool { + if x != nil && x.SingleUse != nil { + return *x.SingleUse + } + return false +} + +type OfferResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OfferId []byte `protobuf:"bytes,1,opt,name=offer_id,json=offerId,proto3" json:"offer_id,omitempty"` + Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"` + SingleUse bool `protobuf:"varint,3,opt,name=single_use,json=singleUse,proto3" json:"single_use,omitempty"` + Bolt12 string `protobuf:"bytes,4,opt,name=bolt12,proto3" json:"bolt12,omitempty"` + Used bool `protobuf:"varint,5,opt,name=used,proto3" json:"used,omitempty"` + Created bool `protobuf:"varint,6,opt,name=created,proto3" json:"created,omitempty"` + Label *string `protobuf:"bytes,7,opt,name=label,proto3,oneof" json:"label,omitempty"` +} + +func (x *OfferResponse) Reset() { + *x = OfferResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[169] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OfferResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OfferResponse) ProtoMessage() {} + +func (x *OfferResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[169] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OfferResponse.ProtoReflect.Descriptor instead. +func (*OfferResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{169} +} + +func (x *OfferResponse) GetOfferId() []byte { + if x != nil { + return x.OfferId + } + return nil +} + +func (x *OfferResponse) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +func (x *OfferResponse) GetSingleUse() bool { + if x != nil { + return x.SingleUse + } + return false +} + +func (x *OfferResponse) GetBolt12() string { + if x != nil { + return x.Bolt12 + } + return "" +} + +func (x *OfferResponse) GetUsed() bool { + if x != nil { + return x.Used + } + return false +} + +func (x *OfferResponse) GetCreated() bool { + if x != nil { + return x.Created + } + return false +} + +func (x *OfferResponse) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +type PingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Len *uint32 `protobuf:"varint,2,opt,name=len,proto3,oneof" json:"len,omitempty"` + Pongbytes *uint32 `protobuf:"varint,3,opt,name=pongbytes,proto3,oneof" json:"pongbytes,omitempty"` +} + +func (x *PingRequest) Reset() { + *x = PingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[170] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingRequest) ProtoMessage() {} + +func (x *PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[170] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PingRequest.ProtoReflect.Descriptor instead. +func (*PingRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{170} +} + +func (x *PingRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *PingRequest) GetLen() uint32 { + if x != nil && x.Len != nil { + return *x.Len + } + return 0 +} + +func (x *PingRequest) GetPongbytes() uint32 { + if x != nil && x.Pongbytes != nil { + return *x.Pongbytes + } + return 0 +} + +type PingResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Totlen uint32 `protobuf:"varint,1,opt,name=totlen,proto3" json:"totlen,omitempty"` +} + +func (x *PingResponse) Reset() { + *x = PingResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[171] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingResponse) ProtoMessage() {} + +func (x *PingResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[171] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PingResponse.ProtoReflect.Descriptor instead. +func (*PingResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{171} +} + +func (x *PingResponse) GetTotlen() uint32 { + if x != nil { + return x.Totlen + } + return 0 +} + +type SendcustommsgRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeId []byte `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + Msg []byte `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *SendcustommsgRequest) Reset() { + *x = SendcustommsgRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[172] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendcustommsgRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendcustommsgRequest) ProtoMessage() {} + +func (x *SendcustommsgRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[172] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendcustommsgRequest.ProtoReflect.Descriptor instead. +func (*SendcustommsgRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{172} +} + +func (x *SendcustommsgRequest) GetNodeId() []byte { + if x != nil { + return x.NodeId + } + return nil +} + +func (x *SendcustommsgRequest) GetMsg() []byte { + if x != nil { + return x.Msg + } + return nil +} + +type SendcustommsgResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *SendcustommsgResponse) Reset() { + *x = SendcustommsgResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[173] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendcustommsgResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendcustommsgResponse) ProtoMessage() {} + +func (x *SendcustommsgResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[173] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendcustommsgResponse.ProtoReflect.Descriptor instead. +func (*SendcustommsgResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{173} +} + +func (x *SendcustommsgResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +type SetchannelRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Feebase *Amount `protobuf:"bytes,2,opt,name=feebase,proto3,oneof" json:"feebase,omitempty"` + Feeppm *uint32 `protobuf:"varint,3,opt,name=feeppm,proto3,oneof" json:"feeppm,omitempty"` + Htlcmin *Amount `protobuf:"bytes,4,opt,name=htlcmin,proto3,oneof" json:"htlcmin,omitempty"` + Htlcmax *Amount `protobuf:"bytes,5,opt,name=htlcmax,proto3,oneof" json:"htlcmax,omitempty"` + Enforcedelay *uint32 `protobuf:"varint,6,opt,name=enforcedelay,proto3,oneof" json:"enforcedelay,omitempty"` + Ignorefeelimits *bool `protobuf:"varint,7,opt,name=ignorefeelimits,proto3,oneof" json:"ignorefeelimits,omitempty"` +} + +func (x *SetchannelRequest) Reset() { + *x = SetchannelRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[174] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetchannelRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetchannelRequest) ProtoMessage() {} + +func (x *SetchannelRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[174] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetchannelRequest.ProtoReflect.Descriptor instead. +func (*SetchannelRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{174} +} + +func (x *SetchannelRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *SetchannelRequest) GetFeebase() *Amount { + if x != nil { + return x.Feebase + } + return nil +} + +func (x *SetchannelRequest) GetFeeppm() uint32 { + if x != nil && x.Feeppm != nil { + return *x.Feeppm + } + return 0 +} + +func (x *SetchannelRequest) GetHtlcmin() *Amount { + if x != nil { + return x.Htlcmin + } + return nil +} + +func (x *SetchannelRequest) GetHtlcmax() *Amount { + if x != nil { + return x.Htlcmax + } + return nil +} + +func (x *SetchannelRequest) GetEnforcedelay() uint32 { + if x != nil && x.Enforcedelay != nil { + return *x.Enforcedelay + } + return 0 +} + +func (x *SetchannelRequest) GetIgnorefeelimits() bool { + if x != nil && x.Ignorefeelimits != nil { + return *x.Ignorefeelimits + } + return false +} + +type SetchannelResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Channels []*SetchannelChannels `protobuf:"bytes,1,rep,name=channels,proto3" json:"channels,omitempty"` +} + +func (x *SetchannelResponse) Reset() { + *x = SetchannelResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[175] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetchannelResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetchannelResponse) ProtoMessage() {} + +func (x *SetchannelResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[175] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetchannelResponse.ProtoReflect.Descriptor instead. +func (*SetchannelResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{175} +} + +func (x *SetchannelResponse) GetChannels() []*SetchannelChannels { + if x != nil { + return x.Channels + } + return nil +} + +type SetchannelChannels struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId []byte `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + ChannelId []byte `protobuf:"bytes,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + ShortChannelId *string `protobuf:"bytes,3,opt,name=short_channel_id,json=shortChannelId,proto3,oneof" json:"short_channel_id,omitempty"` + FeeBaseMsat *Amount `protobuf:"bytes,4,opt,name=fee_base_msat,json=feeBaseMsat,proto3" json:"fee_base_msat,omitempty"` + FeeProportionalMillionths uint32 `protobuf:"varint,5,opt,name=fee_proportional_millionths,json=feeProportionalMillionths,proto3" json:"fee_proportional_millionths,omitempty"` + IgnoreFeeLimits *bool `protobuf:"varint,10,opt,name=ignore_fee_limits,json=ignoreFeeLimits,proto3,oneof" json:"ignore_fee_limits,omitempty"` + MinimumHtlcOutMsat *Amount `protobuf:"bytes,6,opt,name=minimum_htlc_out_msat,json=minimumHtlcOutMsat,proto3" json:"minimum_htlc_out_msat,omitempty"` + WarningHtlcminTooLow *string `protobuf:"bytes,7,opt,name=warning_htlcmin_too_low,json=warningHtlcminTooLow,proto3,oneof" json:"warning_htlcmin_too_low,omitempty"` + MaximumHtlcOutMsat *Amount `protobuf:"bytes,8,opt,name=maximum_htlc_out_msat,json=maximumHtlcOutMsat,proto3" json:"maximum_htlc_out_msat,omitempty"` + WarningHtlcmaxTooHigh *string `protobuf:"bytes,9,opt,name=warning_htlcmax_too_high,json=warningHtlcmaxTooHigh,proto3,oneof" json:"warning_htlcmax_too_high,omitempty"` +} + +func (x *SetchannelChannels) Reset() { + *x = SetchannelChannels{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[176] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetchannelChannels) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetchannelChannels) ProtoMessage() {} + +func (x *SetchannelChannels) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[176] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetchannelChannels.ProtoReflect.Descriptor instead. +func (*SetchannelChannels) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{176} +} + +func (x *SetchannelChannels) GetPeerId() []byte { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *SetchannelChannels) GetChannelId() []byte { + if x != nil { + return x.ChannelId + } + return nil +} + +func (x *SetchannelChannels) GetShortChannelId() string { + if x != nil && x.ShortChannelId != nil { + return *x.ShortChannelId + } + return "" +} + +func (x *SetchannelChannels) GetFeeBaseMsat() *Amount { + if x != nil { + return x.FeeBaseMsat + } + return nil +} + +func (x *SetchannelChannels) GetFeeProportionalMillionths() uint32 { + if x != nil { + return x.FeeProportionalMillionths + } + return 0 +} + +func (x *SetchannelChannels) GetIgnoreFeeLimits() bool { + if x != nil && x.IgnoreFeeLimits != nil { + return *x.IgnoreFeeLimits + } + return false +} + +func (x *SetchannelChannels) GetMinimumHtlcOutMsat() *Amount { + if x != nil { + return x.MinimumHtlcOutMsat + } + return nil +} + +func (x *SetchannelChannels) GetWarningHtlcminTooLow() string { + if x != nil && x.WarningHtlcminTooLow != nil { + return *x.WarningHtlcminTooLow + } + return "" +} + +func (x *SetchannelChannels) GetMaximumHtlcOutMsat() *Amount { + if x != nil { + return x.MaximumHtlcOutMsat + } + return nil +} + +func (x *SetchannelChannels) GetWarningHtlcmaxTooHigh() string { + if x != nil && x.WarningHtlcmaxTooHigh != nil { + return *x.WarningHtlcmaxTooHigh + } + return "" +} + +type SigninvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Invstring string `protobuf:"bytes,1,opt,name=invstring,proto3" json:"invstring,omitempty"` +} + +func (x *SigninvoiceRequest) Reset() { + *x = SigninvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[177] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SigninvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SigninvoiceRequest) ProtoMessage() {} + +func (x *SigninvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[177] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SigninvoiceRequest.ProtoReflect.Descriptor instead. +func (*SigninvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{177} +} + +func (x *SigninvoiceRequest) GetInvstring() string { + if x != nil { + return x.Invstring + } + return "" +} + +type SigninvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bolt11 string `protobuf:"bytes,1,opt,name=bolt11,proto3" json:"bolt11,omitempty"` +} + +func (x *SigninvoiceResponse) Reset() { + *x = SigninvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[178] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SigninvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SigninvoiceResponse) ProtoMessage() {} + +func (x *SigninvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[178] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SigninvoiceResponse.ProtoReflect.Descriptor instead. +func (*SigninvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{178} +} + +func (x *SigninvoiceResponse) GetBolt11() string { + if x != nil { + return x.Bolt11 + } + return "" +} + +type SignmessageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *SignmessageRequest) Reset() { + *x = SignmessageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[179] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignmessageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignmessageRequest) ProtoMessage() {} + +func (x *SignmessageRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[179] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SignmessageRequest.ProtoReflect.Descriptor instead. +func (*SignmessageRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{179} +} + +func (x *SignmessageRequest) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type SignmessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` + Recid []byte `protobuf:"bytes,2,opt,name=recid,proto3" json:"recid,omitempty"` + Zbase string `protobuf:"bytes,3,opt,name=zbase,proto3" json:"zbase,omitempty"` +} + +func (x *SignmessageResponse) Reset() { + *x = SignmessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[180] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignmessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignmessageResponse) ProtoMessage() {} + +func (x *SignmessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[180] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SignmessageResponse.ProtoReflect.Descriptor instead. +func (*SignmessageResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{180} +} + +func (x *SignmessageResponse) GetSignature() []byte { + if x != nil { + return x.Signature + } + return nil +} + +func (x *SignmessageResponse) GetRecid() []byte { + if x != nil { + return x.Recid + } + return nil +} + +func (x *SignmessageResponse) GetZbase() string { + if x != nil { + return x.Zbase + } + return "" +} + +type WaitblockheightRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blockheight uint32 `protobuf:"varint,1,opt,name=blockheight,proto3" json:"blockheight,omitempty"` + Timeout *uint32 `protobuf:"varint,2,opt,name=timeout,proto3,oneof" json:"timeout,omitempty"` +} + +func (x *WaitblockheightRequest) Reset() { + *x = WaitblockheightRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[181] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitblockheightRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitblockheightRequest) ProtoMessage() {} + +func (x *WaitblockheightRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[181] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitblockheightRequest.ProtoReflect.Descriptor instead. +func (*WaitblockheightRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{181} +} + +func (x *WaitblockheightRequest) GetBlockheight() uint32 { + if x != nil { + return x.Blockheight + } + return 0 +} + +func (x *WaitblockheightRequest) GetTimeout() uint32 { + if x != nil && x.Timeout != nil { + return *x.Timeout + } + return 0 +} + +type WaitblockheightResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blockheight uint32 `protobuf:"varint,1,opt,name=blockheight,proto3" json:"blockheight,omitempty"` +} + +func (x *WaitblockheightResponse) Reset() { + *x = WaitblockheightResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[182] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitblockheightResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitblockheightResponse) ProtoMessage() {} + +func (x *WaitblockheightResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[182] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitblockheightResponse.ProtoReflect.Descriptor instead. +func (*WaitblockheightResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{182} +} + +func (x *WaitblockheightResponse) GetBlockheight() uint32 { + if x != nil { + return x.Blockheight + } + return 0 +} + +type WaitRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Subsystem WaitRequest_WaitSubsystem `protobuf:"varint,1,opt,name=subsystem,proto3,enum=cln.WaitRequest_WaitSubsystem" json:"subsystem,omitempty"` + Indexname WaitRequest_WaitIndexname `protobuf:"varint,2,opt,name=indexname,proto3,enum=cln.WaitRequest_WaitIndexname" json:"indexname,omitempty"` + Nextvalue uint64 `protobuf:"varint,3,opt,name=nextvalue,proto3" json:"nextvalue,omitempty"` +} + +func (x *WaitRequest) Reset() { + *x = WaitRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[183] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitRequest) ProtoMessage() {} + +func (x *WaitRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[183] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitRequest.ProtoReflect.Descriptor instead. +func (*WaitRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{183} +} + +func (x *WaitRequest) GetSubsystem() WaitRequest_WaitSubsystem { + if x != nil { + return x.Subsystem + } + return WaitRequest_INVOICES +} + +func (x *WaitRequest) GetIndexname() WaitRequest_WaitIndexname { + if x != nil { + return x.Indexname + } + return WaitRequest_CREATED +} + +func (x *WaitRequest) GetNextvalue() uint64 { + if x != nil { + return x.Nextvalue + } + return 0 +} + +type WaitResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Subsystem WaitResponse_WaitSubsystem `protobuf:"varint,1,opt,name=subsystem,proto3,enum=cln.WaitResponse_WaitSubsystem" json:"subsystem,omitempty"` + Created *uint64 `protobuf:"varint,2,opt,name=created,proto3,oneof" json:"created,omitempty"` + Updated *uint64 `protobuf:"varint,3,opt,name=updated,proto3,oneof" json:"updated,omitempty"` + Deleted *uint64 `protobuf:"varint,4,opt,name=deleted,proto3,oneof" json:"deleted,omitempty"` +} + +func (x *WaitResponse) Reset() { + *x = WaitResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[184] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WaitResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WaitResponse) ProtoMessage() {} + +func (x *WaitResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[184] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WaitResponse.ProtoReflect.Descriptor instead. +func (*WaitResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{184} +} + +func (x *WaitResponse) GetSubsystem() WaitResponse_WaitSubsystem { + if x != nil { + return x.Subsystem + } + return WaitResponse_INVOICES +} + +func (x *WaitResponse) GetCreated() uint64 { + if x != nil && x.Created != nil { + return *x.Created + } + return 0 +} + +func (x *WaitResponse) GetUpdated() uint64 { + if x != nil && x.Updated != nil { + return *x.Updated + } + return 0 +} + +func (x *WaitResponse) GetDeleted() uint64 { + if x != nil && x.Deleted != nil { + return *x.Deleted + } + return 0 +} + +type StopRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StopRequest) Reset() { + *x = StopRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[185] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopRequest) ProtoMessage() {} + +func (x *StopRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[185] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StopRequest.ProtoReflect.Descriptor instead. +func (*StopRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{185} +} + +type StopResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StopResponse) Reset() { + *x = StopResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[186] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopResponse) ProtoMessage() {} + +func (x *StopResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[186] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StopResponse.ProtoReflect.Descriptor instead. +func (*StopResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{186} +} + +type PreapprovekeysendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Destination []byte `protobuf:"bytes,1,opt,name=destination,proto3,oneof" json:"destination,omitempty"` + PaymentHash []byte `protobuf:"bytes,2,opt,name=payment_hash,json=paymentHash,proto3,oneof" json:"payment_hash,omitempty"` + AmountMsat *Amount `protobuf:"bytes,3,opt,name=amount_msat,json=amountMsat,proto3,oneof" json:"amount_msat,omitempty"` +} + +func (x *PreapprovekeysendRequest) Reset() { + *x = PreapprovekeysendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[187] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PreapprovekeysendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PreapprovekeysendRequest) ProtoMessage() {} + +func (x *PreapprovekeysendRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[187] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PreapprovekeysendRequest.ProtoReflect.Descriptor instead. +func (*PreapprovekeysendRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{187} +} + +func (x *PreapprovekeysendRequest) GetDestination() []byte { + if x != nil { + return x.Destination + } + return nil +} + +func (x *PreapprovekeysendRequest) GetPaymentHash() []byte { + if x != nil { + return x.PaymentHash + } + return nil +} + +func (x *PreapprovekeysendRequest) GetAmountMsat() *Amount { + if x != nil { + return x.AmountMsat + } + return nil +} + +type PreapprovekeysendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PreapprovekeysendResponse) Reset() { + *x = PreapprovekeysendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[188] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PreapprovekeysendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PreapprovekeysendResponse) ProtoMessage() {} + +func (x *PreapprovekeysendResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[188] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PreapprovekeysendResponse.ProtoReflect.Descriptor instead. +func (*PreapprovekeysendResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{188} +} + +type PreapproveinvoiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bolt11 *string `protobuf:"bytes,1,opt,name=bolt11,proto3,oneof" json:"bolt11,omitempty"` +} + +func (x *PreapproveinvoiceRequest) Reset() { + *x = PreapproveinvoiceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[189] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PreapproveinvoiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PreapproveinvoiceRequest) ProtoMessage() {} + +func (x *PreapproveinvoiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[189] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PreapproveinvoiceRequest.ProtoReflect.Descriptor instead. +func (*PreapproveinvoiceRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{189} +} + +func (x *PreapproveinvoiceRequest) GetBolt11() string { + if x != nil && x.Bolt11 != nil { + return *x.Bolt11 + } + return "" +} + +type PreapproveinvoiceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PreapproveinvoiceResponse) Reset() { + *x = PreapproveinvoiceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[190] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PreapproveinvoiceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PreapproveinvoiceResponse) ProtoMessage() {} + +func (x *PreapproveinvoiceResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[190] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PreapproveinvoiceResponse.ProtoReflect.Descriptor instead. +func (*PreapproveinvoiceResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{190} +} + +type StaticbackupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StaticbackupRequest) Reset() { + *x = StaticbackupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[191] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StaticbackupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StaticbackupRequest) ProtoMessage() {} + +func (x *StaticbackupRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[191] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StaticbackupRequest.ProtoReflect.Descriptor instead. +func (*StaticbackupRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{191} +} + +type StaticbackupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Scb [][]byte `protobuf:"bytes,1,rep,name=scb,proto3" json:"scb,omitempty"` +} + +func (x *StaticbackupResponse) Reset() { + *x = StaticbackupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[192] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StaticbackupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StaticbackupResponse) ProtoMessage() {} + +func (x *StaticbackupResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[192] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StaticbackupResponse.ProtoReflect.Descriptor instead. +func (*StaticbackupResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{192} +} + +func (x *StaticbackupResponse) GetScb() [][]byte { + if x != nil { + return x.Scb + } + return nil +} + +type BkprlistincomeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConsolidateFees *bool `protobuf:"varint,1,opt,name=consolidate_fees,json=consolidateFees,proto3,oneof" json:"consolidate_fees,omitempty"` + StartTime *uint32 `protobuf:"varint,2,opt,name=start_time,json=startTime,proto3,oneof" json:"start_time,omitempty"` + EndTime *uint32 `protobuf:"varint,3,opt,name=end_time,json=endTime,proto3,oneof" json:"end_time,omitempty"` +} + +func (x *BkprlistincomeRequest) Reset() { + *x = BkprlistincomeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[193] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BkprlistincomeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BkprlistincomeRequest) ProtoMessage() {} + +func (x *BkprlistincomeRequest) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[193] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BkprlistincomeRequest.ProtoReflect.Descriptor instead. +func (*BkprlistincomeRequest) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{193} +} + +func (x *BkprlistincomeRequest) GetConsolidateFees() bool { + if x != nil && x.ConsolidateFees != nil { + return *x.ConsolidateFees + } + return false +} + +func (x *BkprlistincomeRequest) GetStartTime() uint32 { + if x != nil && x.StartTime != nil { + return *x.StartTime + } + return 0 +} + +func (x *BkprlistincomeRequest) GetEndTime() uint32 { + if x != nil && x.EndTime != nil { + return *x.EndTime + } + return 0 +} + +type BkprlistincomeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IncomeEvents []*BkprlistincomeIncomeEvents `protobuf:"bytes,1,rep,name=income_events,json=incomeEvents,proto3" json:"income_events,omitempty"` +} + +func (x *BkprlistincomeResponse) Reset() { + *x = BkprlistincomeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[194] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BkprlistincomeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BkprlistincomeResponse) ProtoMessage() {} + +func (x *BkprlistincomeResponse) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[194] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BkprlistincomeResponse.ProtoReflect.Descriptor instead. +func (*BkprlistincomeResponse) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{194} +} + +func (x *BkprlistincomeResponse) GetIncomeEvents() []*BkprlistincomeIncomeEvents { + if x != nil { + return x.IncomeEvents + } + return nil +} + +type BkprlistincomeIncomeEvents struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Tag string `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"` + CreditMsat *Amount `protobuf:"bytes,3,opt,name=credit_msat,json=creditMsat,proto3" json:"credit_msat,omitempty"` + DebitMsat *Amount `protobuf:"bytes,4,opt,name=debit_msat,json=debitMsat,proto3" json:"debit_msat,omitempty"` + Currency string `protobuf:"bytes,5,opt,name=currency,proto3" json:"currency,omitempty"` + Timestamp uint32 `protobuf:"varint,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Description *string `protobuf:"bytes,7,opt,name=description,proto3,oneof" json:"description,omitempty"` + Outpoint *string `protobuf:"bytes,8,opt,name=outpoint,proto3,oneof" json:"outpoint,omitempty"` + Txid []byte `protobuf:"bytes,9,opt,name=txid,proto3,oneof" json:"txid,omitempty"` + PaymentId []byte `protobuf:"bytes,10,opt,name=payment_id,json=paymentId,proto3,oneof" json:"payment_id,omitempty"` +} + +func (x *BkprlistincomeIncomeEvents) Reset() { + *x = BkprlistincomeIncomeEvents{} + if protoimpl.UnsafeEnabled { + mi := &file_node_proto_msgTypes[195] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BkprlistincomeIncomeEvents) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BkprlistincomeIncomeEvents) ProtoMessage() {} + +func (x *BkprlistincomeIncomeEvents) ProtoReflect() protoreflect.Message { + mi := &file_node_proto_msgTypes[195] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BkprlistincomeIncomeEvents.ProtoReflect.Descriptor instead. +func (*BkprlistincomeIncomeEvents) Descriptor() ([]byte, []int) { + return file_node_proto_rawDescGZIP(), []int{195} +} + +func (x *BkprlistincomeIncomeEvents) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *BkprlistincomeIncomeEvents) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *BkprlistincomeIncomeEvents) GetCreditMsat() *Amount { + if x != nil { + return x.CreditMsat + } + return nil +} + +func (x *BkprlistincomeIncomeEvents) GetDebitMsat() *Amount { + if x != nil { + return x.DebitMsat + } + return nil +} + +func (x *BkprlistincomeIncomeEvents) GetCurrency() string { + if x != nil { + return x.Currency + } + return "" +} + +func (x *BkprlistincomeIncomeEvents) GetTimestamp() uint32 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *BkprlistincomeIncomeEvents) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *BkprlistincomeIncomeEvents) GetOutpoint() string { + if x != nil && x.Outpoint != nil { + return *x.Outpoint + } + return "" +} + +func (x *BkprlistincomeIncomeEvents) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *BkprlistincomeIncomeEvents) GetPaymentId() []byte { + if x != nil { + return x.PaymentId + } + return nil +} + +var File_node_proto protoreflect.FileDescriptor + +var file_node_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x63, 0x6c, + 0x6e, 0x1a, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa4, 0x06, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, + 0x6d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, + 0x75, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x6e, 0x75, 0x6d, 0x5f, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x75, 0x6d, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6e, 0x75, 0x6d, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6e, 0x75, 0x6d, + 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x49, 0x6e, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x12, 0x40, 0x0a, 0x0c, + 0x6f, 0x75, 0x72, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, + 0x4f, 0x75, 0x72, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x48, 0x01, 0x52, 0x0b, + 0x6f, 0x75, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3b, 0x0a, 0x13, 0x66, 0x65, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x11, 0x66, 0x65, 0x65, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, + 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x37, 0x0a, 0x15, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x13, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, + 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x88, 0x01, 0x01, 0x12, 0x3b, + 0x0a, 0x17, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, + 0x69, 0x6e, 0x67, 0x64, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x03, 0x52, 0x15, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x6e, + 0x69, 0x6e, 0x67, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x61, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x75, 0x72, 0x5f, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x5f, 0x62, 0x69, 0x74, 0x63, 0x6f, 0x69, 0x6e, 0x64, 0x5f, 0x73, 0x79, 0x6e, 0x63, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x64, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x22, 0x71, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x4f, 0x75, 0x72, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0xdd, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, + 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x22, 0x47, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4e, 0x53, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, + 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x12, 0x09, 0x0a, + 0x05, 0x54, 0x4f, 0x52, 0x56, 0x32, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4f, 0x52, 0x56, + 0x33, 0x10, 0x04, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, + 0xab, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x69, + 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x69, 0x6e, + 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, + 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x06, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x88, 0x01, 0x01, 0x22, 0x5f, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x53, 0x4f, 0x43, 0x4b, + 0x45, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, + 0x54, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4f, 0x52, 0x56, 0x32, + 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4f, 0x52, 0x56, 0x33, 0x10, 0x04, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x53, 0x0a, + 0x10, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, + 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, + 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x22, 0x3e, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x05, 0x70, 0x65, 0x65, + 0x72, 0x73, 0x22, 0xd8, 0x02, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, + 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x6c, + 0x6f, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x4c, 0x6f, 0x67, + 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x37, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x61, 0x64, 0x64, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x6e, 0x65, 0x74, 0x61, 0x64, 0x64, 0x72, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, + 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x48, 0x02, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xb4, 0x03, + 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, + 0x4c, 0x6f, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x4c, 0x6f, 0x67, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x4c, 0x6f, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, + 0x0a, 0x0b, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6c, 0x6f, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x04, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x05, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x22, 0x69, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, + 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x4c, 0x6f, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x42, 0x52, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, + 0x55, 0x53, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, + 0x03, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, + 0x49, 0x4f, 0x5f, 0x49, 0x4e, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4f, 0x5f, 0x4f, 0x55, + 0x54, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x6b, 0x69, 0x70, + 0x70, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x6f, 0x67, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x22, 0xc7, 0x1d, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, + 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, + 0x4d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, + 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, + 0x0a, 0x0c, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, 0x54, + 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x07, 0x66, + 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x05, 0x52, + 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2a, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, + 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x46, + 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x08, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x46, + 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x0a, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x46, 0x65, 0x65, 0x53, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, + 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x49, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6c, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0b, 0x52, 0x07, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x53, 0x69, 0x64, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x48, 0x0d, + 0x52, 0x06, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x48, 0x0e, 0x52, 0x07, + 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x0a, 0x74, 0x6f, + 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x0f, 0x52, 0x08, 0x74, + 0x6f, 0x55, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0e, 0x6d, 0x69, + 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x10, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x54, 0x6f, 0x55, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x11, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x55, + 0x73, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x12, 0x52, 0x09, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0d, 0x66, 0x65, 0x65, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x13, 0x52, + 0x0b, 0x66, 0x65, 0x65, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x43, 0x0a, 0x1b, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x14, 0x52, 0x19, 0x66, 0x65, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x64, 0x75, 0x73, 0x74, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x15, 0x52, 0x0d, 0x64, 0x75, + 0x73, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, + 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x68, 0x74, 0x6c, 0x63, + 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x16, 0x52, 0x12, 0x6d, + 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, 0x4d, 0x73, 0x61, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x12, 0x74, 0x68, 0x65, 0x69, 0x72, 0x5f, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x17, 0x52, + 0x10, 0x74, 0x68, 0x65, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x73, 0x61, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x6f, 0x75, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x18, 0x52, 0x0e, 0x6f, + 0x75, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x73, + 0x61, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x19, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, + 0x6c, 0x65, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x1a, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x73, 0x61, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, + 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x1b, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x6e, + 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x48, 0x1c, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x74, + 0x6c, 0x63, 0x4f, 0x75, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x15, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6f, 0x75, 0x74, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x1d, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x48, 0x74, 0x6c, 0x63, 0x4f, 0x75, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x13, 0x74, 0x68, 0x65, 0x69, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, + 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1e, + 0x52, 0x10, 0x74, 0x68, 0x65, 0x69, 0x72, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x6f, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x5f, + 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x1f, 0x52, 0x0e, 0x6f, 0x75, 0x72, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x20, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, + 0x48, 0x74, 0x6c, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, 0x21, 0x52, 0x05, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x25, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, + 0x13, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x65, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x04, 0x48, 0x22, 0x52, 0x11, 0x69, 0x6e, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x69, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x23, 0x52, 0x0d, 0x69, 0x6e, 0x4f, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, + 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x75, 0x6c, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x04, 0x48, 0x24, 0x52, 0x13, 0x69, + 0x6e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x66, 0x75, 0x6c, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x25, 0x52, + 0x0f, 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x26, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x6f, 0x75, + 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x2b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x48, 0x27, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x4d, + 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, + 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x28, 0x52, 0x14, 0x6f, 0x75, 0x74, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x3e, 0x0a, 0x12, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x29, 0x52, 0x10, 0x6f, 0x75, + 0x74, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x36, 0x0a, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, + 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x48, 0x74, 0x6c, + 0x63, 0x73, 0x52, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x2a, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x88, + 0x01, 0x01, 0x22, 0xe0, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, + 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x50, 0x45, 0x4e, 0x49, 0x4e, 0x47, 0x44, 0x10, 0x00, + 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x57, 0x41, + 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x13, + 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, + 0x4c, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x44, 0x5f, + 0x53, 0x48, 0x55, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, + 0x18, 0x0a, 0x14, 0x43, 0x4c, 0x4f, 0x53, 0x49, 0x4e, 0x47, 0x44, 0x5f, 0x53, 0x49, 0x47, 0x45, + 0x58, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4c, 0x4f, + 0x53, 0x49, 0x4e, 0x47, 0x44, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x05, + 0x12, 0x17, 0x0a, 0x13, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x49, + 0x4c, 0x41, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x55, 0x4e, + 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x45, 0x45, 0x4e, 0x10, + 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x4e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x10, 0x08, 0x12, 0x17, + 0x0a, 0x13, 0x44, 0x55, 0x41, 0x4c, 0x4f, 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x4f, 0x50, 0x45, 0x4e, + 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x55, 0x41, 0x4c, 0x4f, + 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, + 0x43, 0x4b, 0x49, 0x4e, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x55, 0x41, 0x4c, 0x4f, 0x50, + 0x45, 0x4e, 0x44, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x54, + 0x45, 0x44, 0x10, 0x0b, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x55, 0x41, 0x4c, 0x4f, 0x50, 0x45, 0x4e, + 0x44, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x5f, 0x52, 0x45, + 0x41, 0x44, 0x59, 0x10, 0x0c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, + 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x69, + 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x75, + 0x74, 0x6e, 0x75, 0x6d, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x72, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x73, + 0x61, 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, + 0x68, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x75, 0x73, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x68, 0x65, 0x69, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x75, 0x72, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6f, + 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x74, 0x68, 0x65, 0x69, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x73, + 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x75, + 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, + 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x5f, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x75, 0x6c, + 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x5f, 0x66, 0x75, + 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6f, + 0x75, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x75, 0x6c, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x75, + 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0x4b, + 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x70, 0x65, 0x72, 0x6b, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62, 0x22, 0xd5, 0x02, 0x0a, 0x1e, + 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x78, 0x69, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x75, 0x74, + 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x12, 0x39, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x35, 0x0a, + 0x10, 0x6f, 0x75, 0x72, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, 0x6f, 0x75, 0x72, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x4d, 0x73, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x48, 0x00, 0x52, 0x0c, 0x73, + 0x70, 0x6c, 0x69, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, 0x54, 0x78, 0x69, + 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xe2, 0x02, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, + 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x46, 0x75, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x65, + 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x12, + 0x37, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, + 0x75, 0x6e, 0x64, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, + 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0b, + 0x66, 0x65, 0x65, 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x63, 0x76, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x48, 0x02, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x52, 0x63, 0x76, 0x64, 0x4d, 0x73, 0x61, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, + 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, + 0x63, 0x76, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x22, 0x6a, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, + 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x22, 0xbe, 0x03, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, + 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x48, + 0x74, 0x6c, 0x63, 0x73, 0x12, 0x63, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x48, 0x74, 0x6c, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, + 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x48, 0x74, 0x6c, 0x63, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x69, 0x6d, + 0x6d, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x54, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x48, + 0x74, 0x6c, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x37, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x50, 0x65, 0x65, 0x72, + 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x48, 0x74, 0x6c, 0x63, 0x73, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, 0x00, 0x12, + 0x07, 0x0a, 0x03, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x37, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x75, 0x6e, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x70, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x22, 0x78, + 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, + 0x75, 0x6e, 0x64, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x08, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xe1, 0x03, 0x0a, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x72, 0x65, + 0x64, 0x65, 0x65, 0x6d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x48, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x75, + 0x6e, 0x64, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, + 0x75, 0x6e, 0x64, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x22, 0x51, 0x0a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x46, 0x49, + 0x52, 0x4d, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x4e, 0x54, 0x10, + 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x4d, 0x41, 0x54, 0x55, 0x52, 0x45, 0x10, 0x03, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x97, 0x03, 0x0a, + 0x11, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0f, 0x6f, + 0x75, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x0d, 0x6f, 0x75, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, + 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x78, 0x69, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, + 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x22, 0xbb, 0x03, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x70, + 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, + 0x48, 0x05, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x69, 0x64, 0x22, 0xe5, 0x06, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x03, 0x52, 0x0a, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x04, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x10, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x73, + 0x61, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x06, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, + 0x6c, 0x74, 0x31, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x06, 0x62, 0x6f, + 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, + 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, + 0x32, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0a, + 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x88, 0x01, 0x01, 0x22, 0x2a, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x7c, 0x0a, 0x0c, + 0x53, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x0b, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xb8, 0x01, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x01, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x48, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, + 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x22, 0x80, 0x05, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x72, 0x74, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x61, + 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, + 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x61, 0x73, 0x65, 0x46, 0x65, 0x65, + 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x12, 0x2a, 0x0a, 0x11, + 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, + 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x65, 0x65, 0x50, 0x65, 0x72, 0x4d, + 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x37, + 0x0a, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0f, 0x68, 0x74, 0x6c, 0x63, 0x4d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x3c, 0x0a, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x5f, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x0f, 0x68, 0x74, 0x6c, 0x63, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4d, 0x73, + 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x22, 0x2c, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x67, 0x6f, + 0x73, 0x73, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x67, 0x6f, 0x73, 0x73, + 0x69, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x17, 0x41, + 0x75, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x5f, 0x62, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x79, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x79, + 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x74, 0x6f, 0x63, 0x6c, + 0x65, 0x61, 0x6e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0a, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0c, 0x63, 0x79, 0x63, 0x6c, 0x65, + 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x79, + 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x6d, 0x0a, 0x13, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x7a, 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x7a, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x22, 0x4a, 0x0a, 0x14, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x22, 0xad, 0x03, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x73, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x11, 0x75, 0x6e, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x14, 0x66, 0x65, 0x65, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x12, 0x66, 0x65, 0x65, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0d, 0x77, 0x72, 0x6f, 0x6e, + 0x67, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x03, + 0x52, 0x0c, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x10, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x08, 0x66, 0x65, 0x65, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6e, 0x65, 0x67, + 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x77, 0x72, 0x6f, 0x6e, 0x67, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x22, 0xbf, 0x01, 0x0a, 0x0d, 0x43, 0x6c, 0x6f, 0x73, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x02, 0x74, 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x88, 0x01, + 0x01, 0x22, 0x35, 0x0a, 0x09, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, + 0x0a, 0x06, 0x4d, 0x55, 0x54, 0x55, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, + 0x49, 0x4c, 0x41, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x4e, + 0x4f, 0x50, 0x45, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x78, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x22, 0x64, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x68, 0x6f, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xd6, + 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x43, + 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x23, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x07, + 0x0a, 0x03, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x22, 0x9c, 0x02, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x74, + 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x22, 0x50, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x4f, + 0x43, 0x41, 0x4c, 0x5f, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, + 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4f, 0x52, 0x56, 0x32, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x54, + 0x4f, 0x52, 0x56, 0x33, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x66, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, + 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0xc0, + 0x07, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1b, + 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, + 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x62, + 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x31, 0x0a, 0x0b, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x02, 0x52, + 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, + 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x14, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x05, + 0x52, 0x12, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x69, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x06, 0x70, 0x61, 0x69, 0x64, + 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x50, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x07, 0x52, + 0x0c, 0x70, 0x61, 0x69, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x08, 0x52, 0x0f, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, + 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0a, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, + 0x50, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, 0x22, 0x38, 0x0a, 0x13, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, + 0x50, 0x41, 0x49, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, + 0x31, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x61, + 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, + 0x65, 0x22, 0x66, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x50, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x17, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x6e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x6e, + 0x75, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x22, 0xd8, 0x02, 0x0a, 0x10, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, + 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x22, 0x70, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x55, 0x53, 0x54, + 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x55, 0x53, + 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, + 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x55, 0x53, 0x54, 0x5f, 0x41, 0x50, 0x50, 0x45, 0x4e, + 0x44, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x52, + 0x5f, 0x41, 0x50, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa0, 0x01, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0a, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x00, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, + 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x7b, 0x0a, 0x16, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x64, 0x61, + 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x22, 0x73, 0x0a, + 0x1c, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x15, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6b, + 0x65, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x6f, 0x6e, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x6f, 0x70, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x48, 0x6f, 0x70, 0x73, 0x52, 0x04, 0x68, + 0x6f, 0x70, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x6f, + 0x6e, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x52, 0x0a, 0x13, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x22, 0x43, + 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x48, 0x6f, 0x70, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x22, 0x5b, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0a, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x00, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xa3, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x0a, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x00, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, + 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x57, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0d, 0x6d, 0x61, 0x78, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x6d, 0x61, 0x78, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x74, 0x69, 0x6d, 0x65, 0x22, + 0x1b, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcf, 0x01, 0x0a, + 0x11, 0x44, 0x65, 0x6c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, + 0x65, 0x6c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x64, 0x65, 0x73, + 0x63, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x64, + 0x65, 0x73, 0x63, 0x6f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x22, 0x35, 0x0a, 0x10, 0x44, 0x65, + 0x6c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, + 0x0a, 0x04, 0x50, 0x41, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, + 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x50, 0x41, 0x49, 0x44, 0x10, + 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x6f, 0x6e, 0x6c, 0x79, 0x22, 0xac, + 0x05, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x06, 0x62, + 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x62, + 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, + 0x31, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, + 0x31, 0x32, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x6c, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x44, 0x65, 0x6c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x06, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, + 0x0f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x50, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x22, 0x35, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, 0x49, 0x44, 0x10, + 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x55, 0x4e, 0x50, 0x41, 0x49, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, + 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x76, 0x72, + 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0xcb, 0x02, + 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x4f, 0x72, 0x41, 0x6e, 0x79, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, + 0x73, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x06, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x06, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x65, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6c, 0x74, 0x76, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x63, 0x6c, 0x74, 0x76, 0x88, 0x01, 0x01, + 0x12, 0x27, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x68, 0x61, 0x73, 0x68, 0x6f, 0x6e, 0x6c, 0x79, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x63, 0x68, 0x61, + 0x73, 0x68, 0x6f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6c, 0x74, 0x76, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, + 0x65, 0x73, 0x63, 0x68, 0x61, 0x73, 0x68, 0x6f, 0x6e, 0x6c, 0x79, 0x22, 0xa6, 0x04, 0x0a, 0x0f, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, + 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, + 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4f, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x0f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x61, + 0x64, 0x65, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x14, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, + 0x70, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x4d, 0x70, 0x70, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x64, 0x65, 0x61, 0x64, 0x65, 0x6e, 0x64, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x6e, + 0x75, 0x73, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x70, 0x70, 0x22, 0x28, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x52, + 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x23, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x9b, 0x03, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, + 0x09, 0x69, 0x6e, 0x76, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x07, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x48, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x88, 0x01, 0x01, 0x22, 0x2d, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, + 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x44, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x76, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x4d, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x35, 0x0a, 0x08, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x52, 0x08, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x22, 0xa4, 0x08, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, + 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x4c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x34, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x31, 0x0a, + 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x01, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, + 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x05, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x50, 0x61, 0x79, 0x65, 0x72, 0x4e, + 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, + 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, + 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, + 0x08, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x14, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x09, 0x52, 0x12, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x0a, 0x52, 0x06, 0x70, 0x61, 0x69, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, + 0x0a, 0x0d, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, + 0x50, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x0b, 0x52, + 0x0c, 0x70, 0x61, 0x69, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0c, 0x52, 0x0f, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x22, 0x3f, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, + 0x0a, 0x06, 0x55, 0x4e, 0x50, 0x41, 0x49, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, + 0x49, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, + 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, + 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x70, 0x61, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x69, 0x64, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x6d, + 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x50, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x00, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x78, + 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x22, 0xff, 0x03, + 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x09, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x52, 0x08, 0x66, 0x69, 0x72, 0x73, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x04, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x05, + 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x69, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, + 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x76, 0x72, 0x65, + 0x71, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x22, + 0x89, 0x06, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0c, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x6f, 0x6e, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x6f, + 0x6e, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, + 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x02, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x35, 0x0a, 0x10, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x73, + 0x61, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x03, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, + 0x6c, 0x74, 0x31, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x06, 0x62, 0x6f, + 0x6c, 0x74, 0x31, 0x32, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x06, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x08, 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x22, 0x2c, 0x0a, + 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, + 0x31, 0x31, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x68, 0x0a, 0x12, 0x53, + 0x65, 0x6e, 0x64, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xd2, 0x03, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x65, + 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x48, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x65, 0x6e, + 0x64, 0x70, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, + 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, + 0x79, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x22, 0x3b, 0x0a, 0x12, 0x4c, 0x69, 0x73, + 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, + 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0x2d, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x65, + 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x44, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x4d, 0x0a, 0x14, 0x4c, 0x69, + 0x73, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x73, + 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x8b, 0x07, 0x0a, 0x14, 0x4c, 0x69, + 0x73, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, + 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x4c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x34, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, + 0x61, 0x79, 0x73, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, + 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x48, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x04, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x35, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x19, + 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, + 0x74, 0x31, 0x31, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x06, 0x62, 0x6f, 0x6c, + 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, + 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0a, + 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x22, + 0x43, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, + 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, + 0x54, 0x45, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, + 0x74, 0x31, 0x32, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x22, 0x19, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x61, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, + 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, + 0x77, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x61, 0x77, 0x74, 0x78, + 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x78, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x78, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x52, 0x06, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x07, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x6a, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x23, 0x4c, 0x69, 0x73, 0x74, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, + 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x50, 0x75, 0x62, + 0x4b, 0x65, 0x79, 0x22, 0xdc, 0x04, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x72, 0x69, 0x73, 0x6b, + 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0a, + 0x72, 0x69, 0x73, 0x6b, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x0d, 0x6d, 0x61, 0x78, 0x66, 0x65, 0x65, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x66, 0x65, 0x65, 0x70, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x72, + 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x08, 0x72, + 0x65, 0x74, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6d, 0x61, + 0x78, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x08, + 0x6d, 0x61, 0x78, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x09, 0x65, + 0x78, 0x65, 0x6d, 0x70, 0x74, 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x09, 0x65, + 0x78, 0x65, 0x6d, 0x70, 0x74, 0x66, 0x65, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x07, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x76, 0x72, 0x65, + 0x71, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x12, 0x28, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x66, 0x65, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x08, 0x52, + 0x06, 0x6d, 0x61, 0x78, 0x66, 0x65, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x72, 0x69, 0x73, 0x6b, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, + 0x61, 0x78, 0x66, 0x65, 0x65, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, + 0x61, 0x78, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x65, 0x6d, + 0x70, 0x74, 0x66, 0x65, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, + 0x6e, 0x76, 0x72, 0x65, 0x71, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x61, 0x78, 0x66, + 0x65, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0xf6, 0x03, 0x0a, 0x0b, 0x50, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, + 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x0b, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x35, 0x0a, 0x10, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x61, + 0x74, 0x12, 0x41, 0x0a, 0x1a, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x18, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x50, 0x61, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x32, 0x0a, 0x09, 0x50, 0x61, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, + 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, + 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, + 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x10, 0x4c, + 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x02, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x29, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x4e, + 0x6f, 0x64, 0x65, 0x73, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x0e, + 0x4c, 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x6e, 0x6f, 0x64, 0x65, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x03, 0x52, 0x08, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x81, 0x02, 0x0a, 0x17, 0x4c, 0x69, + 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x22, + 0x50, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, + 0x0a, 0x03, 0x44, 0x4e, 0x53, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x34, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x54, + 0x4f, 0x52, 0x56, 0x32, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4f, 0x52, 0x56, 0x33, 0x10, + 0x04, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7e, 0x0a, + 0x15, 0x57, 0x61, 0x69, 0x74, 0x61, 0x6e, 0x79, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x70, 0x61, + 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, + 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x70, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0xf0, 0x06, + 0x0a, 0x16, 0x57, 0x61, 0x69, 0x74, 0x61, 0x6e, 0x79, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x61, 0x6e, + 0x79, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x57, 0x61, 0x69, 0x74, 0x61, 0x6e, 0x79, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x31, 0x0a, 0x0b, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, + 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x70, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x05, 0x52, 0x08, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x42, 0x0a, 0x14, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x12, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, 0x70, 0x61, 0x69, 0x64, 0x41, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, + 0x61, 0x69, 0x74, 0x61, 0x6e, 0x79, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x61, 0x69, + 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x08, 0x52, 0x0c, 0x70, 0x61, + 0x69, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x22, 0x2d, 0x0a, + 0x14, 0x57, 0x61, 0x69, 0x74, 0x61, 0x6e, 0x79, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, 0x49, 0x44, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, + 0x31, 0x32, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x79, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, + 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x22, 0x67, 0x0a, 0x1b, 0x57, 0x61, 0x69, 0x74, 0x61, 0x6e, 0x79, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x50, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x17, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x6e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x6e, + 0x75, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x22, 0x2a, 0x0a, 0x12, 0x57, 0x61, 0x69, + 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xe1, 0x06, 0x0a, 0x13, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, + 0x61, 0x69, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x12, 0x31, 0x0a, 0x0b, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, + 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x62, + 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x03, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x14, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x12, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, 0x70, 0x61, 0x69, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x47, 0x0a, 0x0d, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, + 0x69, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, + 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x08, 0x52, 0x0c, 0x70, 0x61, 0x69, 0x64, 0x4f, 0x75, + 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0c, 0x48, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, + 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x22, 0x2a, 0x0a, 0x11, 0x57, 0x61, 0x69, + 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, + 0x0a, 0x04, 0x50, 0x41, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, + 0x52, 0x45, 0x44, 0x10, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, + 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x64, 0x0a, 0x18, 0x57, 0x61, 0x69, + 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x61, 0x69, 0x64, 0x5f, 0x6f, 0x75, 0x74, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x78, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x22, + 0xb5, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x69, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x69, 0x64, 0x22, 0xbd, 0x06, 0x0a, 0x13, 0x57, 0x61, 0x69, 0x74, + 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x28, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x07, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x04, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x48, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x10, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x61, + 0x74, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x06, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, + 0x74, 0x31, 0x31, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x06, 0x62, 0x6f, 0x6c, + 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0a, 0x52, + 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x88, 0x01, 0x01, 0x22, 0x21, 0x0a, 0x11, 0x57, 0x61, 0x69, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, + 0x4c, 0x45, 0x54, 0x45, 0x10, 0x00, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, + 0x31, 0x32, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, + 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 0x61, + 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4e, 0x65, 0x77, 0x61, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x61, 0x64, 0x64, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x22, 0x33, 0x0a, 0x12, 0x4e, 0x65, 0x77, + 0x61, 0x64, 0x64, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x0a, 0x0a, 0x06, 0x42, 0x45, 0x43, 0x48, 0x33, 0x32, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x50, + 0x32, 0x54, 0x52, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5b, + 0x0a, 0x0f, 0x4e, 0x65, 0x77, 0x61, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x32, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x04, 0x70, 0x32, 0x74, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x65, + 0x63, 0x68, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x62, 0x65, + 0x63, 0x68, 0x33, 0x32, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x32, 0x74, 0x72, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x65, 0x63, 0x68, 0x33, 0x32, 0x22, 0xf9, 0x01, 0x0a, 0x0f, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2f, 0x0a, 0x07, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, + 0x72, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x48, 0x01, 0x52, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x75, 0x74, + 0x78, 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x6d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x22, 0x4a, 0x0a, 0x10, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x73, 0x62, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x73, 0x62, 0x74, 0x22, 0xe7, 0x03, 0x0a, 0x0e, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x66, 0x65, 0x65, 0x70, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x66, + 0x65, 0x65, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x08, 0x72, 0x65, 0x74, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, + 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x74, 0x66, 0x65, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x04, 0x52, 0x09, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x74, 0x66, 0x65, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68, + 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x05, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x68, 0x69, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x72, + 0x61, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x54, 0x6c, 0x76, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x06, 0x52, 0x09, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x74, 0x6c, 0x76, 0x73, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6d, 0x61, 0x78, 0x66, 0x65, 0x65, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x74, 0x72, + 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x78, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x65, 0x6d, 0x70, 0x74, 0x66, 0x65, 0x65, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x74, 0x6c, 0x76, 0x73, 0x22, 0xed, 0x03, + 0x0a, 0x0f, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x0b, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x35, 0x0a, 0x10, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, + 0x12, 0x41, 0x0a, 0x1a, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x18, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x6e, + 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x1d, 0x0a, 0x0d, 0x4b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x00, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa3, 0x04, + 0x0a, 0x0f, 0x46, 0x75, 0x6e, 0x64, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, + 0x72, 0x41, 0x6c, 0x6c, 0x52, 0x07, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x12, 0x26, 0x0a, + 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x07, 0x66, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x63, 0x6f, + 0x6e, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x63, + 0x6f, 0x6e, 0x66, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x69, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x03, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x65, 0x78, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x41, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x6e, 0x6f, 0x6e, 0x77, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0a, + 0x6e, 0x6f, 0x6e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, + 0x16, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, + 0x14, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x69, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, + 0x61, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x6f, + 0x6e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x22, 0xab, 0x02, 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x64, 0x70, 0x73, 0x62, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x62, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x62, 0x74, 0x12, 0x24, 0x0a, 0x0e, + 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, + 0x4b, 0x77, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x14, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x65, + 0x73, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, + 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x75, 0x6e, + 0x64, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, + 0x6d, 0x22, 0xa9, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x76, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x76, 0x6f, + 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x77, 0x61, 0x73, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x6f, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x54, 0x6f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x50, 0x0a, + 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x73, 0x62, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, + 0x36, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x22, 0x41, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x70, + 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, + 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x62, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x6c, 0x79, 0x22, 0x33, 0x0a, 0x10, 0x53, 0x69, + 0x67, 0x6e, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x73, 0x62, 0x74, 0x22, + 0x98, 0x04, 0x0a, 0x0f, 0x55, 0x74, 0x78, 0x6f, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x07, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x07, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x12, 0x26, 0x0a, 0x07, 0x66, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x23, 0x0a, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x6f, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0a, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x6f, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, + 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x10, 0x6d, 0x69, + 0x6e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0e, 0x65, + 0x78, 0x63, 0x65, 0x73, 0x73, 0x41, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x39, 0x0a, 0x16, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x05, 0x52, 0x14, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x6f, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x74, + 0x69, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x6e, + 0x65, 0x73, 0x73, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x65, + 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x6e, 0x63, 0x68, + 0x6f, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xab, 0x02, 0x0a, 0x10, 0x55, + 0x74, 0x78, 0x6f, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x73, 0x62, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x6b, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x65, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x4b, 0x77, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x73, 0x74, + 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x65, 0x73, 0x74, 0x69, 0x6d, + 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x2c, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x28, 0x0a, + 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x75, + 0x74, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x22, 0xa9, 0x01, 0x0a, 0x14, 0x55, 0x74, 0x78, + 0x6f, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x76, 0x6f, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x73, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x77, 0x61, 0x73, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x54, 0x6f, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x26, 0x0a, 0x10, 0x54, 0x78, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x11, + 0x54, 0x78, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x10, 0x54, 0x78, 0x70, 0x72, 0x65, + 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x65, 0x73, 0x63, 0x52, 0x07, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x88, + 0x01, 0x01, 0x12, 0x23, 0x0a, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x52, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x65, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x22, + 0x5c, 0x0a, 0x11, 0x54, 0x78, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x62, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x75, + 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x22, 0x23, 0x0a, + 0x0d, 0x54, 0x78, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, + 0x69, 0x64, 0x22, 0x48, 0x0a, 0x0e, 0x54, 0x78, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x73, 0x62, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x70, 0x73, 0x62, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x22, 0x35, 0x0a, 0x17, + 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, + 0x5f, 0x69, 0x64, 0x22, 0x55, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x39, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0x84, 0x21, 0x0a, 0x18, 0x4c, + 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, + 0x0d, 0x70, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x56, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x63, 0x72, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x03, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, 0x54, 0x78, 0x69, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x43, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x37, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, + 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x48, 0x04, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x36, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x05, 0x52, 0x0f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x46, 0x65, 0x65, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x6f, 0x73, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x09, 0x6c, + 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x07, 0x66, + 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x46, 0x65, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x48, 0x07, 0x52, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x08, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, + 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0a, + 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0b, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, + 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0c, + 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x88, + 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x66, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x0e, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0e, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0f, + 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x27, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x10, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x46, + 0x65, 0x65, 0x53, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x69, 0x6e, 0x66, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x49, 0x6e, 0x66, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1e, 0x0a, 0x08, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x11, + 0x52, 0x07, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, + 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x12, 0x52, + 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x06, 0x6f, + 0x70, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x48, 0x13, 0x52, + 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x48, 0x14, 0x52, 0x06, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x07, 0x66, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x48, 0x15, 0x52, 0x07, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x16, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, + 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x48, 0x17, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x54, 0x6f, 0x55, 0x73, 0x4d, 0x73, + 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x5f, + 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x18, 0x52, 0x0b, 0x6d, 0x61, + 0x78, 0x54, 0x6f, 0x55, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0a, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x19, 0x52, + 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, + 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x48, 0x1a, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x73, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x1b, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, + 0x68, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1b, 0x52, 0x19, 0x66, 0x65, 0x65, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x6c, 0x69, + 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x64, 0x75, 0x73, 0x74, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x1c, + 0x52, 0x0d, 0x64, 0x75, 0x73, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x44, 0x0a, 0x16, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x1d, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x74, 0x6c, 0x63, 0x49, + 0x6e, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x12, 0x74, 0x68, 0x65, 0x69, + 0x72, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x48, 0x1e, 0x52, 0x10, 0x74, 0x68, 0x65, 0x69, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x6f, 0x75, 0x72, 0x5f, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, + 0x1f, 0x52, 0x0e, 0x6f, 0x75, 0x72, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x4d, 0x73, 0x61, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x20, 0x52, 0x0d, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, + 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x48, 0x21, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x61, 0x62, 0x6c, + 0x65, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x48, 0x22, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x74, + 0x6c, 0x63, 0x49, 0x6e, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x15, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x23, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x48, 0x74, 0x6c, 0x63, 0x4f, 0x75, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x24, 0x52, 0x12, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x74, 0x6c, 0x63, 0x4f, 0x75, 0x74, 0x4d, 0x73, + 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x74, 0x68, 0x65, 0x69, 0x72, 0x5f, 0x74, + 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x26, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x25, 0x52, 0x10, 0x74, 0x68, 0x65, 0x69, 0x72, 0x54, 0x6f, 0x53, 0x65, 0x6c, + 0x66, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x6f, 0x75, 0x72, + 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x27, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x26, 0x52, 0x0e, 0x6f, 0x75, 0x72, 0x54, 0x6f, 0x53, 0x65, 0x6c, + 0x66, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x18, + 0x28, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x27, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x65, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x05, + 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x48, + 0x28, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x29, 0x52, 0x11, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4f, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x69, 0x6e, 0x5f, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x2d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x2a, + 0x52, 0x0d, 0x69, 0x6e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x2e, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x2b, 0x52, 0x13, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, + 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x11, 0x69, + 0x6e, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x48, 0x2c, 0x52, 0x0f, 0x69, 0x6e, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6f, 0x75, 0x74, + 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, + 0x64, 0x18, 0x30, 0x20, 0x01, 0x28, 0x04, 0x48, 0x2d, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x50, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x3a, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x2e, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x4f, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, + 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x75, 0x6c, + 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x04, 0x48, 0x2f, 0x52, 0x14, + 0x6f, 0x75, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x75, 0x6c, 0x66, 0x69, + 0x6c, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x12, 0x6f, 0x75, 0x74, 0x5f, 0x66, + 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x33, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x48, 0x30, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x46, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, + 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x38, 0x20, 0x01, 0x28, 0x04, 0x48, 0x31, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x38, 0x0a, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x18, 0x34, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x48, 0x74, 0x6c, 0x63, 0x73, 0x52, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x12, 0x27, 0x0a, 0x0d, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x35, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x32, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x6f, 0x41, 0x64, + 0x64, 0x72, 0x88, 0x01, 0x01, 0x22, 0x80, 0x03, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, + 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x50, 0x45, 0x4e, 0x49, + 0x4e, 0x47, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, + 0x44, 0x5f, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x49, + 0x4e, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x44, 0x5f, + 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x48, 0x41, 0x4e, + 0x4e, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, + 0x57, 0x4e, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4c, 0x4f, 0x53, 0x49, 0x4e, 0x47, 0x44, + 0x5f, 0x53, 0x49, 0x47, 0x45, 0x58, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x12, 0x15, + 0x0a, 0x11, 0x43, 0x4c, 0x4f, 0x53, 0x49, 0x4e, 0x47, 0x44, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, + 0x45, 0x54, 0x45, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, + 0x47, 0x5f, 0x55, 0x4e, 0x49, 0x4c, 0x41, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x16, + 0x0a, 0x12, 0x46, 0x55, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x5f, + 0x53, 0x45, 0x45, 0x4e, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x4e, 0x43, 0x48, 0x41, 0x49, + 0x4e, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x55, 0x41, 0x4c, 0x4f, 0x50, 0x45, 0x4e, 0x44, + 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, + 0x44, 0x55, 0x41, 0x4c, 0x4f, 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, + 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x49, 0x4e, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x43, + 0x48, 0x41, 0x4e, 0x4e, 0x45, 0x4c, 0x44, 0x5f, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x50, 0x4c, 0x49, 0x43, 0x45, 0x10, 0x0b, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x55, 0x41, + 0x4c, 0x4f, 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, + 0x49, 0x54, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x55, 0x41, 0x4c, 0x4f, + 0x50, 0x45, 0x4e, 0x44, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, + 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x0d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, + 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x68, + 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, + 0x6d, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x66, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x75, + 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, + 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x65, 0x65, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x66, + 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, + 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, + 0x75, 0x73, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x68, 0x74, 0x6c, + 0x63, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x68, + 0x65, 0x69, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x75, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x6e, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x74, 0x68, + 0x65, 0x69, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, + 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x5f, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x73, + 0x61, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x22, 0xc5, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, + 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x48, + 0x00, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x48, 0x01, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0xc2, 0x03, 0x0a, 0x24, 0x4c, 0x69, + 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x12, 0x3c, 0x0a, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x68, 0x74, + 0x6c, 0x63, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x3c, 0x0a, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x74, 0x6c, 0x63, + 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x11, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x65, + 0x6c, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x63, 0x6c, 0x74, + 0x76, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x48, 0x03, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x42, 0x61, 0x73, 0x65, 0x4d, 0x73, + 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x1b, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, + 0x6e, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x19, 0x66, 0x65, + 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x69, 0x6c, + 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x68, + 0x74, 0x6c, 0x63, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6c, 0x74, 0x76, 0x5f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x1e, + 0x0a, 0x1c, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x22, 0xc3, + 0x03, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x3c, 0x0a, 0x11, 0x68, 0x74, 0x6c, 0x63, + 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x0f, 0x68, 0x74, 0x6c, 0x63, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4d, + 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x11, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01, + 0x52, 0x0f, 0x68, 0x74, 0x6c, 0x63, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4d, 0x73, 0x61, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x0f, 0x63, 0x6c, 0x74, 0x76, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x44, 0x65, 0x6c, + 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x03, 0x52, 0x0b, 0x66, 0x65, 0x65, + 0x42, 0x61, 0x73, 0x65, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x1b, 0x66, + 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, + 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x04, 0x52, 0x19, 0x66, 0x65, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, + 0x74, 0x61, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, + 0x6e, 0x74, 0x68, 0x73, 0x22, 0x6b, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x77, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x77, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x70, 0x65, 0x72, 0x6b, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x65, 0x72, 0x6b, + 0x62, 0x22, 0xe2, 0x03, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x49, 0x6e, + 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, + 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x4f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x66, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x66, + 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x12, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x48, 0x03, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x70, 0x6c, + 0x69, 0x63, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, + 0x48, 0x04, 0x52, 0x0c, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x6f, 0x75, 0x72, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x05, 0x52, 0x0e, 0x6f, 0x75, + 0x72, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x06, 0x52, 0x0b, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, 0x68, + 0x54, 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6f, 0x75, 0x72, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x63, 0x72, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x22, 0x99, 0x03, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x70, + 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x31, 0x0a, 0x0b, 0x70, 0x75, + 0x73, 0x68, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, + 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x46, 0x75, 0x6e, + 0x64, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x11, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x73, + 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, + 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x03, 0x52, 0x0b, 0x66, + 0x65, 0x65, 0x50, 0x61, 0x69, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, + 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x63, 0x76, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x48, 0x04, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x52, 0x63, 0x76, 0x64, 0x4d, 0x73, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x75, + 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x63, 0x76, 0x64, 0x5f, 0x6d, 0x73, + 0x61, 0x74, 0x22, 0x6c, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x22, 0xaf, 0x04, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x48, 0x74, 0x6c, + 0x63, 0x73, 0x12, 0x6c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x48, 0x74, 0x6c, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, + 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x48, 0x74, 0x6c, 0x63, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x02, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x04, 0x52, 0x0b, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, + 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x72, 0x69, + 0x6d, 0x6d, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x48, 0x74, 0x6c, 0x63, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x48, 0x07, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x22, + 0x39, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x48, 0x74, 0x6c, 0x63, 0x73, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, + 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x69, 0x6d, 0x6d, 0x65, 0x64, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x37, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x02, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0x6b, 0x0a, 0x1a, 0x4c, + 0x69, 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xd4, 0x0c, 0x0a, 0x20, 0x4c, 0x69, 0x73, + 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, + 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, + 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x68, + 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x05, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x41, + 0x6c, 0x69, 0x61, 0x73, 0x48, 0x02, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x69, + 0x64, 0x65, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x48, 0x03, 0x52, 0x06, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x68, + 0x74, 0x6c, 0x63, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x48, 0x74, 0x6c, 0x63, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x78, + 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x75, + 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x66, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x4f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x64, 0x12, 0x43, 0x0a, 0x15, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, + 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x04, 0x52, + 0x12, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x50, 0x61, 0x69, 0x64, 0x4d, + 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x15, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x63, 0x76, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x48, 0x05, 0x52, 0x12, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, + 0x52, 0x63, 0x76, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x13, 0x66, + 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x6d, 0x73, + 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x11, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x50, 0x75, 0x73, 0x68, 0x65, 0x64, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x34, 0x0a, 0x10, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x6f, 0x55, 0x73, 0x4d, 0x73, 0x61, 0x74, 0x12, + 0x30, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x54, 0x6f, 0x55, 0x73, 0x4d, 0x73, 0x61, + 0x74, 0x12, 0x30, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x55, 0x73, 0x4d, + 0x73, 0x61, 0x74, 0x12, 0x35, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x07, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x54, 0x78, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x18, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x65, + 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x08, 0x52, 0x15, 0x6c, 0x61, 0x73, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x65, 0x65, 0x4d, 0x73, + 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x72, 0x0a, 0x0b, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, + 0x61, 0x75, 0x73, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x51, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x52, 0x0a, 0x63, + 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x16, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x14, 0x6c, 0x61, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x22, 0x76, 0x0a, 0x2b, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x63, 0x61, + 0x75, 0x73, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x55, + 0x53, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, + 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x04, 0x12, + 0x0b, 0x0a, 0x07, 0x4f, 0x4e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x10, 0x05, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x68, 0x6f, + 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x72, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, + 0x65, 0x65, 0x5f, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x63, 0x76, + 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x74, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0x61, 0x0a, 0x10, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x70, + 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x6c, + 0x74, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, + 0x31, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc3, 0x05, 0x0a, 0x11, 0x44, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x70, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x02, 0x52, 0x0f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, + 0x63, 0x6c, 0x74, 0x76, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x74, 0x76, 0x45, + 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x03, 0x52, + 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0c, 0x48, 0x04, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x05, 0x52, 0x0f, + 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x09, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, + 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x70, 0x61, 0x79, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x09, + 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x70, 0x61, 0x79, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x05, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe5, + 0x01, 0x0a, 0x12, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x70, 0x61, 0x79, 0x46, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x70, 0x61, 0x79, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x70, 0x61, 0x79, 0x46, 0x61, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x68, + 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x68, 0x65, 0x78, 0x22, 0x4e, 0x0a, + 0x16, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x70, 0x61, 0x79, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x32, 0x50, 0x4b, 0x48, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x32, 0x53, 0x48, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x50, 0x32, 0x57, 0x50, 0x4b, 0x48, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x32, 0x57, 0x53, + 0x48, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x32, 0x54, 0x52, 0x10, 0x04, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0x36, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x70, 0x61, 0x79, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x27, + 0x0a, 0x0d, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0xd1, 0x2c, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x74, + 0x65, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x69, + 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x08, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, + 0x0c, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, + 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1e, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x03, 0x52, 0x1b, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, + 0x69, 0x6e, 0x6f, 0x72, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x04, 0x52, 0x11, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x69, 0x6e, 0x6f, 0x72, + 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, + 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x3c, 0x0a, 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, + 0x11, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x10, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x09, 0x52, 0x0d, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x61, 0x62, 0x73, + 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x0a, 0x52, 0x13, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x41, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, + 0x61, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x10, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x37, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x10, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x52, 0x0a, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x0c, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x1d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x19, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x21, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x0e, 0x52, 0x1e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x21, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x0f, 0x52, 0x1e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x1e, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x10, 0x52, 0x1b, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x73, 0x73, 0x75, + 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x48, 0x11, 0x52, 0x19, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x49, + 0x73, 0x73, 0x75, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x72, + 0x65, 0x71, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x12, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, + 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x13, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x50, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x14, 0x52, 0x0b, 0x69, 0x6e, 0x76, + 0x72, 0x65, 0x71, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x12, 0x69, + 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x15, 0x52, 0x10, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x69, + 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x16, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x69, 0x6e, 0x76, + 0x72, 0x65, 0x71, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x1e, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x17, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x72, 0x65, + 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x1f, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x18, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x50, 0x61, 0x79, 0x65, + 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x72, + 0x65, 0x71, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x19, 0x52, 0x17, 0x69, + 0x6e, 0x76, 0x72, 0x65, 0x71, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x76, + 0x72, 0x65, 0x71, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1a, 0x52, 0x15, 0x69, 0x6e, + 0x76, 0x72, 0x65, 0x71, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x1b, 0x52, 0x1c, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x1f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x48, 0x1c, 0x52, 0x1b, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, + 0x72, 0x65, 0x71, 0x50, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, + 0x21, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, + 0x74, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x48, 0x1d, 0x52, 0x1d, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x76, 0x72, 0x65, 0x71, + 0x50, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x29, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x1e, 0x52, 0x25, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5d, 0x0a, 0x29, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x48, 0x1f, + 0x52, 0x25, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x48, 0x20, 0x52, 0x10, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, + 0x17, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x21, + 0x52, 0x15, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x22, 0x52, 0x12, 0x69, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x40, 0x0a, 0x13, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x23, 0x52, 0x11, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x66, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x10, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x2e, + 0x0a, 0x10, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x24, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x25, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x1b, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x26, 0x52, 0x19, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x61, 0x73, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x46, 0x0a, 0x1d, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x48, 0x27, 0x52, 0x1a, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x22, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x70, 0x61, 0x79, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x28, 0x52, 0x1f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, + 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x6c, 0x69, + 0x6e, 0x64, 0x65, 0x64, 0x70, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x22, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x48, 0x29, 0x52, 0x1e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x24, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x48, 0x2a, 0x52, 0x20, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x48, 0x0a, 0x1e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x48, 0x2b, 0x52, 0x1b, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x61, 0x0a, 0x2b, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x2c, 0x52, 0x27, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x42, 0x61, 0x73, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x1f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x48, 0x2d, 0x52, 0x1b, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x21, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x39, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x2e, 0x52, 0x1e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x21, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x3a, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x2f, 0x52, 0x1e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x66, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x52, 0x09, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x30, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x31, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x70, 0x61, 0x79, 0x65, 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x32, 0x52, 0x05, + 0x70, 0x61, 0x79, 0x65, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x33, + 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x40, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x34, 0x52, 0x0f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x36, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x6c, + 0x74, 0x76, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x41, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x35, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x74, 0x76, 0x45, + 0x78, 0x70, 0x69, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x42, 0x20, 0x01, 0x28, 0x0c, + 0x48, 0x36, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x43, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x37, + 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x45, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, 0x20, 0x0a, 0x09, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x46, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x38, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x47, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x39, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x48, 0x20, 0x01, 0x28, 0x09, 0x48, 0x3a, 0x52, + 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0c, 0x72, 0x65, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x49, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e, 0x0a, 0x19, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, + 0x75, 0x74, 0x66, 0x38, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x3b, 0x52, 0x16, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x55, 0x74, 0x66, 0x38, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x4b, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x3c, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x21, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x4c, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x3d, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x22, 0x83, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x4f, 0x4c, 0x54, 0x31, 0x32, 0x5f, 0x4f, 0x46, 0x46, 0x45, 0x52, + 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x4f, 0x4c, 0x54, 0x31, 0x32, 0x5f, 0x49, 0x4e, 0x56, + 0x4f, 0x49, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4c, 0x54, 0x31, 0x32, + 0x5f, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, + 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x4f, 0x4c, 0x54, 0x31, 0x31, 0x5f, 0x49, 0x4e, 0x56, + 0x4f, 0x49, 0x43, 0x45, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x55, 0x4e, 0x45, 0x10, 0x04, + 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x52, 0x45, + 0x43, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x05, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, + 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x73, 0x73, + 0x75, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x5f, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x24, 0x0a, 0x22, 0x5f, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, + 0x76, 0x72, 0x65, 0x71, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x76, 0x72, + 0x65, 0x71, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x72, + 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x24, 0x0a, 0x22, 0x5f, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, + 0x69, 0x6e, 0x76, 0x72, 0x65, 0x71, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, + 0x65, 0x42, 0x2c, 0x0a, 0x2a, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, + 0x2c, 0x0a, 0x2a, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x42, 0x25, 0x0a, 0x23, + 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, + 0x70, 0x61, 0x79, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x27, 0x0a, 0x25, 0x5f, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x2e, 0x0a, 0x2c, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, + 0x73, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x63, + 0x6c, 0x74, 0x76, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x75, 0x74, 0x66, 0x38, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x22, 0x53, 0x0a, 0x11, 0x44, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, + 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x6f, + 0x64, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x22, 0xbb, 0x01, 0x0a, 0x1f, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, + 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x79, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x41, 0x66, 0x74, 0x65, 0x72, + 0x12, 0x34, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x12, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x7b, + 0x0a, 0x17, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x69, + 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x16, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x70, 0x0a, 0x17, 0x44, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x10, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x68, + 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x9e, 0x01, + 0x0a, 0x0f, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x73, 0x12, 0x5d, 0x0a, 0x29, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x25, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x42, 0x2c, 0x0a, 0x2a, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x22, 0x33, + 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x52, 0x0a, 0x12, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6c, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0c, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x48, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x66, + 0x6f, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x0a, 0x0f, 0x46, 0x65, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x22, 0x25, 0x0a, 0x0d, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, + 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x45, 0x52, 0x4b, 0x42, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x50, 0x45, 0x52, 0x4b, 0x57, 0x10, 0x01, 0x22, 0xd7, 0x02, 0x0a, 0x10, + 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3d, 0x0a, 0x18, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x16, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x69, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, + 0x6b, 0x62, 0x48, 0x01, 0x52, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x6b, + 0x77, 0x48, 0x02, 0x52, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x77, 0x88, 0x01, 0x01, 0x12, 0x5b, 0x0a, + 0x15, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x65, 0x73, 0x74, + 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x6e, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x48, 0x03, 0x52, 0x13, 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x65, 0x65, 0x45, 0x73, + 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x66, + 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x65, 0x72, 0x6b, + 0x62, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x65, 0x72, 0x6b, 0x77, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x6f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x65, 0x73, 0x74, 0x69, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x22, 0xe7, 0x04, 0x0a, 0x0d, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x73, 0x50, 0x65, 0x72, 0x6b, 0x62, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x88, 0x01, 0x01, + 0x12, 0x39, 0x0a, 0x09, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x73, 0x50, 0x65, 0x72, 0x6b, 0x62, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x09, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x75, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x02, 0x52, 0x0b, 0x6d, 0x75, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, + 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x5f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x15, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, + 0x64, 0x54, 0x6f, 0x55, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x68, 0x74, 0x6c, 0x63, + 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x06, 0x52, 0x0e, 0x68, 0x74, 0x6c, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, + 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x6d, 0x75, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, + 0x5f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x22, + 0xbc, 0x01, 0x0a, 0x16, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x6b, + 0x62, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x07, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x10, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x73, 0x6d, 0x6f, 0x6f, + 0x74, 0x68, 0x65, 0x64, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x6d, + 0x6f, 0x6f, 0x74, 0x68, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0xe7, + 0x04, 0x0a, 0x0d, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x6b, 0x77, + 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x6d, 0x61, 0x78, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, + 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, 0x65, 0x73, 0x74, + 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x6b, 0x77, + 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x09, 0x65, 0x73, 0x74, 0x69, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x75, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0b, 0x6d, 0x75, 0x74, + 0x75, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, + 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x75, + 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x15, + 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x05, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x54, 0x6f, 0x55, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0e, 0x68, 0x74, + 0x6c, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x1d, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x07, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x75, 0x74, 0x75, 0x61, 0x6c, 0x5f, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, + 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x75, + 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x74, 0x6c, + 0x63, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x22, 0xbc, 0x01, 0x0a, 0x16, 0x46, 0x65, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x6b, 0x77, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x66, 0x65, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x6d, 0x6f, 0x6f, 0x74, + 0x68, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x65, 0x64, 0x46, 0x65, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x65, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x65, 0x64, 0x5f, + 0x66, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x1d, 0x46, 0x65, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x73, 0x4f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x5f, + 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x61, 0x74, + 0x6f, 0x73, 0x68, 0x69, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6f, 0x70, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x61, 0x74, 0x6f, 0x73, + 0x68, 0x69, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x13, 0x6d, 0x75, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53, + 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x75, 0x6e, 0x69, 0x6c, 0x61, + 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x73, 0x61, 0x74, 0x6f, + 0x73, 0x68, 0x69, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x75, 0x6e, 0x69, 0x6c, + 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53, 0x61, 0x74, 0x6f, 0x73, + 0x68, 0x69, 0x73, 0x12, 0x52, 0x0a, 0x23, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, + 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x5f, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x00, 0x52, 0x20, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x43, 0x6c, + 0x6f, 0x73, 0x65, 0x4e, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x53, 0x61, 0x74, 0x6f, + 0x73, 0x68, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x15, 0x68, 0x74, 0x6c, 0x63, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x68, 0x74, 0x6c, 0x63, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x53, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x68, + 0x74, 0x6c, 0x63, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x61, 0x74, 0x6f, + 0x73, 0x68, 0x69, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x68, 0x74, 0x6c, 0x63, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x73, 0x42, + 0x26, 0x0a, 0x24, 0x5f, 0x75, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x63, + 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x5f, 0x73, + 0x61, 0x74, 0x6f, 0x73, 0x68, 0x69, 0x73, 0x22, 0xcf, 0x03, 0x0a, 0x13, 0x46, 0x65, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x10, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x10, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x48, 0x05, + 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x06, 0x52, 0x09, 0x70, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x14, 0x46, 0x65, + 0x74, 0x63, 0x68, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x12, 0x42, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x74, 0x63, + 0x68, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x22, 0xc7, 0x02, 0x0a, 0x13, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x14, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x76, + 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0d, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x04, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x22, 0xb9, + 0x01, 0x0a, 0x17, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, + 0x70, 0x61, 0x79, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x79, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x79, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, + 0x79, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x6e, 0x64, 0x22, 0xf7, 0x04, 0x0a, 0x12, 0x46, + 0x75, 0x6e, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x28, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, + 0x41, 0x6c, 0x6c, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x07, 0x66, + 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x07, 0x66, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x61, 0x6e, 0x6e, 0x6f, + 0x75, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x08, 0x61, 0x6e, + 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x69, 0x6e, + 0x63, 0x6f, 0x6e, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x6d, 0x69, + 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x03, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, + 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x65, + 0x5f, 0x74, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x54, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x61, 0x6d, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x41, 0x6d, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x06, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x73, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x18, 0x0b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x05, 0x75, 0x74, 0x78, 0x6f, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x08, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x07, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x65, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x69, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x6d, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x22, 0xa2, 0x02, 0x0a, 0x13, 0x46, 0x75, 0x6e, 0x64, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x78, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, + 0x08, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x01, 0x52, 0x07, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, + 0x08, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0x59, 0x0a, 0x17, 0x46, 0x75, 0x6e, + 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x04, 0x62, 0x69, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x05, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x22, 0xb5, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x69, 0x73, 0x6b, 0x66, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x69, 0x73, 0x6b, + 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6c, 0x74, 0x76, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6c, 0x74, 0x76, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x01, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, + 0x66, 0x75, 0x7a, 0x7a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x02, 0x52, 0x0b, 0x66, 0x75, 0x7a, 0x7a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x1d, 0x0a, + 0x07, 0x6d, 0x61, 0x78, 0x68, 0x6f, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, + 0x52, 0x07, 0x6d, 0x61, 0x78, 0x68, 0x6f, 0x70, 0x73, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x63, 0x6c, 0x74, 0x76, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x69, 0x64, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x75, 0x7a, 0x7a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x61, 0x78, 0x68, 0x6f, 0x70, 0x73, 0x22, 0x3c, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x28, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0xf7, 0x01, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, + 0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x1d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x54, + 0x4c, 0x56, 0x10, 0x00, 0x22, 0xeb, 0x03, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x69, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x75, + 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x45, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x48, 0x03, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x22, 0x4c, 0x0a, + 0x12, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x46, 0x46, 0x45, 0x52, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x54, 0x54, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, + 0x0c, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x22, 0x2d, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x22, 0x4d, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x22, 0xb9, 0x06, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x0a, 0x69, 0x6e, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x69, 0x6e, 0x48, 0x74, 0x6c, + 0x63, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x6d, 0x73, 0x61, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x4c, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x74, 0x6c, + 0x63, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x09, 0x6f, 0x75, + 0x74, 0x48, 0x74, 0x6c, 0x63, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x04, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x48, 0x05, 0x52, 0x05, 0x73, 0x74, 0x79, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x07, 0x66, 0x65, 0x65, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x48, 0x07, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x22, 0x54, + 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, + 0x4f, 0x46, 0x46, 0x45, 0x52, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x54, + 0x54, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x03, 0x22, 0x30, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x53, 0x74, 0x79, 0x6c, + 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, + 0x03, 0x54, 0x4c, 0x56, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x5f, + 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x74, 0x5f, + 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6d, 0x73, 0x61, 0x74, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x22, 0x76, 0x0a, + 0x11, 0x4c, 0x69, 0x73, 0x74, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x22, 0x43, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x4f, 0x66, 0x66, 0x65, + 0x72, 0x73, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x10, 0x4c, + 0x69, 0x73, 0x74, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x12, + 0x19, 0x0a, 0x08, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x55, 0x73, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x12, 0x19, 0x0a, + 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0xf8, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x48, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x22, 0x37, 0x0a, + 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, + 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, + 0x31, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x39, 0x0a, + 0x10, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x25, 0x0a, 0x04, 0x70, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x50, 0x61, + 0x79, 0x73, 0x52, 0x04, 0x70, 0x61, 0x79, 0x73, 0x22, 0x9e, 0x06, 0x0a, 0x0c, 0x4c, 0x69, 0x73, + 0x74, 0x70, 0x61, 0x79, 0x73, 0x50, 0x61, 0x79, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3c, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x50, 0x61, 0x79, 0x73, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x50, 0x61, 0x79, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, + 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, + 0x32, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, + 0x73, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x4d, 0x73, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x10, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x07, + 0x52, 0x0e, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x08, 0x52, 0x08, 0x70, 0x72, 0x65, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, + 0x66, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, + 0x0d, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x50, 0x61, 0x72, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x0a, 0x52, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x6f, 0x6e, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x22, 0x3b, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, + 0x79, 0x73, 0x50, 0x61, 0x79, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, + 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, + 0x45, 0x10, 0x02, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x6f, + 0x6c, 0x74, 0x31, 0x32, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, + 0x65, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x11, 0x4c, 0x69, 0x73, + 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, + 0x0a, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x48, 0x74, 0x6c, + 0x63, 0x73, 0x52, 0x05, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x0e, 0x4c, 0x69, + 0x73, 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x48, 0x74, 0x6c, 0x63, 0x73, 0x12, 0x28, 0x0a, 0x10, + 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x2c, + 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x49, 0x0a, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x48, + 0x74, 0x6c, 0x63, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x48, 0x74, + 0x6c, 0x63, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x48, 0x74, 0x6c, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x2a, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x48, 0x74, 0x6c, + 0x63, 0x73, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x07, 0x0a, 0x03, 0x4f, + 0x55, 0x54, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, 0x01, 0x22, 0xcf, 0x04, 0x0a, + 0x0c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0b, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x61, 0x62, 0x73, 0x6f, 0x6c, + 0x75, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x03, 0x52, 0x0e, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x65, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x42, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x72, 0x65, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x13, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x79, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0f, 0x72, 0x65, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x09, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x55, 0x73, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x71, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, + 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x73, + 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x5f, 0x70, 0x61, 0x79, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, + 0x65, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x22, 0xcc, + 0x01, 0x0a, 0x0d, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, 0x73, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x55, + 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x75, 0x73, 0x65, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x6d, 0x0a, + 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x03, + 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x65, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x6f, 0x6e, 0x67, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x6f, 0x6e, 0x67, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x65, 0x6e, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x6e, 0x67, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x26, 0x0a, 0x0c, + 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x6f, 0x74, 0x6c, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x6f, + 0x74, 0x6c, 0x65, 0x6e, 0x22, 0x41, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x2f, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xf0, 0x02, 0x0a, 0x11, 0x53, 0x65, 0x74, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2a, + 0x0a, 0x07, 0x66, 0x65, 0x65, 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, + 0x66, 0x65, 0x65, 0x62, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x65, + 0x65, 0x70, 0x70, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x66, 0x65, + 0x65, 0x70, 0x70, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x07, 0x68, 0x74, 0x6c, 0x63, 0x6d, + 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x07, 0x68, 0x74, 0x6c, 0x63, 0x6d, 0x69, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x07, 0x68, 0x74, 0x6c, 0x63, 0x6d, 0x61, 0x78, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x48, 0x03, 0x52, 0x07, 0x68, 0x74, 0x6c, 0x63, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0c, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x66, 0x65, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x05, 0x52, 0x0f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x66, 0x65, 0x65, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x66, 0x65, 0x65, 0x62, + 0x61, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x65, 0x65, 0x70, 0x70, 0x6d, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x6d, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x68, + 0x74, 0x6c, 0x63, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x66, 0x65, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x49, 0x0a, 0x12, 0x53, + 0x65, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x33, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x08, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xfb, 0x04, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x17, 0x0a, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x42, 0x61, 0x73, + 0x65, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x3e, 0x0a, 0x1b, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x6f, + 0x6e, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x66, 0x65, 0x65, 0x50, + 0x72, 0x6f, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x6c, 0x69, + 0x6f, 0x6e, 0x74, 0x68, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, + 0x66, 0x65, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x0f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x46, 0x65, 0x65, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x74, 0x6c, 0x63, 0x4f, + 0x75, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x3a, 0x0a, 0x17, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, + 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x48, 0x74, 0x6c, 0x63, 0x6d, 0x69, 0x6e, 0x54, 0x6f, 0x6f, 0x4c, 0x6f, 0x77, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x68, 0x74, + 0x6c, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x12, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x48, 0x74, 0x6c, 0x63, 0x4f, 0x75, 0x74, 0x4d, 0x73, + 0x61, 0x74, 0x12, 0x3c, 0x0a, 0x18, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x74, + 0x6c, 0x63, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x15, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x48, + 0x74, 0x6c, 0x63, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x6f, 0x48, 0x69, 0x67, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x6d, 0x69, 0x6e, 0x5f, + 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, 0x77, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, + 0x68, 0x69, 0x67, 0x68, 0x22, 0x32, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, + 0x76, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6e, 0x76, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x2d, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x22, 0x2e, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x5f, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x65, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x65, 0x63, + 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x7a, 0x62, 0x61, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x16, 0x57, 0x61, 0x69, 0x74, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, + 0x3b, 0x0a, 0x17, 0x57, 0x61, 0x69, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x9a, 0x02, 0x0a, + 0x0b, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x09, + 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, + 0x09, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x3c, 0x0a, 0x09, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x57, 0x61, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x78, 0x74, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x78, + 0x74, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x39, 0x0a, 0x0d, 0x57, 0x61, 0x69, 0x74, 0x53, 0x75, + 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x56, 0x4f, 0x49, + 0x43, 0x45, 0x53, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, + 0x53, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x45, 0x4e, 0x44, 0x50, 0x41, 0x59, 0x53, 0x10, + 0x02, 0x22, 0x36, 0x0a, 0x0d, 0x57, 0x61, 0x69, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x22, 0x89, 0x02, 0x0a, 0x0c, 0x57, 0x61, + 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x73, 0x75, + 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x57, 0x61, 0x69, 0x74, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x09, + 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x22, 0x39, 0x0a, 0x0d, 0x57, 0x61, 0x69, 0x74, 0x53, 0x75, + 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x56, 0x4f, 0x49, + 0x43, 0x45, 0x53, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, + 0x53, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x45, 0x4e, 0x44, 0x50, 0x41, 0x59, 0x53, 0x10, + 0x02, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x18, 0x50, 0x72, 0x65, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x01, + 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4d, 0x73, 0x61, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x6d, 0x73, 0x61, 0x74, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x72, 0x65, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x76, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x42, 0x0a, 0x18, 0x50, 0x72, 0x65, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x06, 0x62, 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, + 0x6f, 0x6c, 0x74, 0x31, 0x31, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x72, 0x65, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x63, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x63, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x03, + 0x73, 0x63, 0x62, 0x22, 0xbc, 0x01, 0x0a, 0x15, 0x42, 0x6b, 0x70, 0x72, 0x6c, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, + 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x65, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x66, 0x65, 0x65, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x16, 0x42, 0x6b, 0x70, 0x72, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, + 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x42, 0x6b, 0x70, 0x72, 0x6c, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0c, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x22, 0x97, 0x03, 0x0a, 0x1b, 0x42, 0x6b, 0x70, 0x72, 0x6c, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, + 0x2c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x2a, 0x0a, + 0x0a, 0x64, 0x65, 0x62, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, + 0x64, 0x65, 0x62, 0x69, 0x74, 0x4d, 0x73, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6f, 0x75, + 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, + 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x74, + 0x78, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x02, 0x52, 0x04, 0x74, 0x78, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x03, 0x52, 0x09, 0x70, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x75, 0x74, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x78, 0x69, 0x64, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x32, 0xe2, 0x20, + 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, + 0x6f, 0x12, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x69, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, 0x74, + 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, + 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x15, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x75, 0x6e, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x07, 0x53, 0x65, + 0x6e, 0x64, 0x50, 0x61, 0x79, 0x12, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x70, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x12, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x41, 0x64, 0x64, + 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x64, 0x64, + 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x67, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x6f, 0x43, + 0x6c, 0x65, 0x61, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x69, 0x6e, 0x76, 0x6f, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x41, 0x75, 0x74, 0x6f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x30, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x65, + 0x65, 0x72, 0x12, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x48, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x44, 0x61, 0x74, + 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x75, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x6e, + 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, + 0x65, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x64, 0x61, 0x74, 0x61, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x54, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x64, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x12, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x49, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, + 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, + 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x64, 0x61, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x3c, 0x0a, 0x09, 0x53, 0x65, 0x6e, 0x64, 0x4f, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x6f, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x6f, 0x6e, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, + 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x73, 0x12, 0x18, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x2a, 0x0a, 0x03, 0x50, 0x61, 0x79, 0x12, 0x0f, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x50, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x10, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x50, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, + 0x12, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x4b, 0x0a, 0x0e, 0x57, 0x61, 0x69, 0x74, 0x41, 0x6e, 0x79, 0x49, 0x6e, 0x76, 0x6f, + 0x69, 0x63, 0x65, 0x12, 0x1a, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x61, 0x6e, + 0x79, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x61, 0x6e, 0x79, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, + 0x0a, 0x0b, 0x57, 0x61, 0x69, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x17, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, + 0x74, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x57, 0x61, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, + 0x79, 0x12, 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x73, 0x65, 0x6e, 0x64, + 0x70, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x57, 0x61, 0x69, 0x74, 0x73, 0x65, 0x6e, 0x64, 0x70, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x41, 0x64, 0x64, + 0x72, 0x12, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4e, 0x65, 0x77, 0x61, 0x64, 0x64, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4e, 0x65, 0x77, + 0x61, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, + 0x0a, 0x08, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x14, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x07, 0x4b, 0x65, 0x79, + 0x53, 0x65, 0x6e, 0x64, 0x12, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x4b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x39, 0x0a, 0x08, 0x46, 0x75, 0x6e, 0x64, 0x50, 0x73, 0x62, 0x74, 0x12, 0x14, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x70, 0x73, + 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, + 0x53, 0x65, 0x6e, 0x64, 0x50, 0x73, 0x62, 0x74, 0x12, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x53, 0x69, 0x67, 0x6e, 0x50, + 0x73, 0x62, 0x74, 0x12, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x70, 0x73, + 0x62, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x55, 0x74, 0x78, 0x6f, 0x50, 0x73, 0x62, 0x74, 0x12, 0x14, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x70, 0x73, 0x62, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x55, 0x74, 0x78, 0x6f, 0x70, + 0x73, 0x62, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, + 0x09, 0x54, 0x78, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x12, 0x15, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x54, 0x78, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x54, 0x78, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x54, + 0x78, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x12, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x54, + 0x78, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x54, 0x78, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x06, 0x54, 0x78, 0x53, + 0x65, 0x6e, 0x64, 0x12, 0x12, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x54, 0x78, 0x73, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x54, 0x78, + 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, + 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, + 0x72, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x65, 0x65, 0x72, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x57, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x44, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x50, 0x61, 0x79, 0x12, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x70, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x70, 0x61, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x06, 0x44, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x12, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, + 0x0a, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x16, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, + 0x0a, 0x08, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x12, 0x14, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x46, 0x65, 0x74, + 0x63, 0x68, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x42, 0x0a, 0x0b, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x46, + 0x75, 0x6e, 0x64, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x12, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x47, 0x65, 0x74, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x45, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, + 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, + 0x66, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x61, 0x79, 0x73, 0x12, 0x14, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, + 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x70, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x74, 0x6c, 0x63, 0x73, 0x12, + 0x15, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x68, 0x74, 0x6c, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x30, 0x0a, 0x05, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x11, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x2e, 0x63, 0x6c, 0x6e, + 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x48, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, + 0x73, 0x67, 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x6d, 0x73, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x53, + 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, + 0x53, 0x65, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, + 0x53, 0x69, 0x67, 0x6e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x17, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x42, 0x0a, 0x0b, 0x53, 0x69, 0x67, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x17, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, + 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0f, 0x57, 0x61, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, + 0x69, 0x74, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x04, 0x57, 0x61, 0x69, 0x74, 0x12, 0x10, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x2d, 0x0a, 0x04, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x10, 0x2e, 0x63, 0x6c, + 0x6e, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, + 0x4b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x1d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x50, 0x72, + 0x65, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x50, 0x72, 0x65, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x2e, + 0x63, 0x6c, 0x6e, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x69, 0x6e, + 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, + 0x6c, 0x6e, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x69, 0x6e, 0x76, + 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, + 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x18, + 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x63, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x6b, 0x70, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x42, 0x6b, + 0x70, 0x72, 0x6c, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x42, 0x6b, 0x70, 0x72, 0x6c, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x42, 0x1f, 0x5a, 0x1d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x62, 0x72, 0x65, 0x65, 0x7a, 0x2f, 0x6c, 0x73, 0x70, 0x64, 0x2f, 0x63, 0x6c, 0x6e, 0x2f, + 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_node_proto_rawDescOnce sync.Once + file_node_proto_rawDescData = file_node_proto_rawDesc +) + +func file_node_proto_rawDescGZIP() []byte { + file_node_proto_rawDescOnce.Do(func() { + file_node_proto_rawDescData = protoimpl.X.CompressGZIP(file_node_proto_rawDescData) + }) + return file_node_proto_rawDescData +} + +var file_node_proto_enumTypes = make([]protoimpl.EnumInfo, 44) +var file_node_proto_msgTypes = make([]protoimpl.MessageInfo, 196) +var file_node_proto_goTypes = []interface{}{ + (GetinfoAddress_GetinfoAddressType)(0), // 0: cln.GetinfoAddress.GetinfoAddressType + (GetinfoBinding_GetinfoBindingType)(0), // 1: cln.GetinfoBinding.GetinfoBindingType + (ListpeersPeersLog_ListpeersPeersLogType)(0), // 2: cln.ListpeersPeersLog.ListpeersPeersLogType + (ListpeersPeersChannels_ListpeersPeersChannelsState)(0), // 3: cln.ListpeersPeersChannels.ListpeersPeersChannelsState + (ListpeersPeersChannelsHtlcs_ListpeersPeersChannelsHtlcsDirection)(0), // 4: cln.ListpeersPeersChannelsHtlcs.ListpeersPeersChannelsHtlcsDirection + (ListfundsOutputs_ListfundsOutputsStatus)(0), // 5: cln.ListfundsOutputs.ListfundsOutputsStatus + (SendpayResponse_SendpayStatus)(0), // 6: cln.SendpayResponse.SendpayStatus + (CloseResponse_CloseType)(0), // 7: cln.CloseResponse.CloseType + (ConnectResponse_ConnectDirection)(0), // 8: cln.ConnectResponse.ConnectDirection + (ConnectAddress_ConnectAddressType)(0), // 9: cln.ConnectAddress.ConnectAddressType + (CreateinvoiceResponse_CreateinvoiceStatus)(0), // 10: cln.CreateinvoiceResponse.CreateinvoiceStatus + (DatastoreRequest_DatastoreMode)(0), // 11: cln.DatastoreRequest.DatastoreMode + (DelinvoiceRequest_DelinvoiceStatus)(0), // 12: cln.DelinvoiceRequest.DelinvoiceStatus + (DelinvoiceResponse_DelinvoiceStatus)(0), // 13: cln.DelinvoiceResponse.DelinvoiceStatus + (ListinvoicesRequest_ListinvoicesIndex)(0), // 14: cln.ListinvoicesRequest.ListinvoicesIndex + (ListinvoicesInvoices_ListinvoicesInvoicesStatus)(0), // 15: cln.ListinvoicesInvoices.ListinvoicesInvoicesStatus + (SendonionResponse_SendonionStatus)(0), // 16: cln.SendonionResponse.SendonionStatus + (ListsendpaysRequest_ListsendpaysStatus)(0), // 17: cln.ListsendpaysRequest.ListsendpaysStatus + (ListsendpaysRequest_ListsendpaysIndex)(0), // 18: cln.ListsendpaysRequest.ListsendpaysIndex + (ListsendpaysPayments_ListsendpaysPaymentsStatus)(0), // 19: cln.ListsendpaysPayments.ListsendpaysPaymentsStatus + (PayResponse_PayStatus)(0), // 20: cln.PayResponse.PayStatus + (ListnodesNodesAddresses_ListnodesNodesAddressesType)(0), // 21: cln.ListnodesNodesAddresses.ListnodesNodesAddressesType + (WaitanyinvoiceResponse_WaitanyinvoiceStatus)(0), // 22: cln.WaitanyinvoiceResponse.WaitanyinvoiceStatus + (WaitinvoiceResponse_WaitinvoiceStatus)(0), // 23: cln.WaitinvoiceResponse.WaitinvoiceStatus + (WaitsendpayResponse_WaitsendpayStatus)(0), // 24: cln.WaitsendpayResponse.WaitsendpayStatus + (NewaddrRequest_NewaddrAddresstype)(0), // 25: cln.NewaddrRequest.NewaddrAddresstype + (KeysendResponse_KeysendStatus)(0), // 26: cln.KeysendResponse.KeysendStatus + (ListpeerchannelsChannels_ListpeerchannelsChannelsState)(0), // 27: cln.ListpeerchannelsChannels.ListpeerchannelsChannelsState + (ListpeerchannelsChannelsHtlcs_ListpeerchannelsChannelsHtlcsDirection)(0), // 28: cln.ListpeerchannelsChannelsHtlcs.ListpeerchannelsChannelsHtlcsDirection + (ListclosedchannelsClosedchannels_ListclosedchannelsClosedchannelsCloseCause)(0), // 29: cln.ListclosedchannelsClosedchannels.ListclosedchannelsClosedchannelsClose_cause + (DecodepayFallbacks_DecodepayFallbacksType)(0), // 30: cln.DecodepayFallbacks.DecodepayFallbacksType + (DecodeResponse_DecodeType)(0), // 31: cln.DecodeResponse.DecodeType + (FeeratesRequest_FeeratesStyle)(0), // 32: cln.FeeratesRequest.FeeratesStyle + (GetrouteRoute_GetrouteRouteStyle)(0), // 33: cln.GetrouteRoute.GetrouteRouteStyle + (ListforwardsRequest_ListforwardsStatus)(0), // 34: cln.ListforwardsRequest.ListforwardsStatus + (ListforwardsRequest_ListforwardsIndex)(0), // 35: cln.ListforwardsRequest.ListforwardsIndex + (ListforwardsForwards_ListforwardsForwardsStatus)(0), // 36: cln.ListforwardsForwards.ListforwardsForwardsStatus + (ListforwardsForwards_ListforwardsForwardsStyle)(0), // 37: cln.ListforwardsForwards.ListforwardsForwardsStyle + (ListpaysRequest_ListpaysStatus)(0), // 38: cln.ListpaysRequest.ListpaysStatus + (ListpaysPays_ListpaysPaysStatus)(0), // 39: cln.ListpaysPays.ListpaysPaysStatus + (ListhtlcsHtlcs_ListhtlcsHtlcsDirection)(0), // 40: cln.ListhtlcsHtlcs.ListhtlcsHtlcsDirection + (WaitRequest_WaitSubsystem)(0), // 41: cln.WaitRequest.WaitSubsystem + (WaitRequest_WaitIndexname)(0), // 42: cln.WaitRequest.WaitIndexname + (WaitResponse_WaitSubsystem)(0), // 43: cln.WaitResponse.WaitSubsystem + (*GetinfoRequest)(nil), // 44: cln.GetinfoRequest + (*GetinfoResponse)(nil), // 45: cln.GetinfoResponse + (*GetinfoOurFeatures)(nil), // 46: cln.GetinfoOur_features + (*GetinfoAddress)(nil), // 47: cln.GetinfoAddress + (*GetinfoBinding)(nil), // 48: cln.GetinfoBinding + (*ListpeersRequest)(nil), // 49: cln.ListpeersRequest + (*ListpeersResponse)(nil), // 50: cln.ListpeersResponse + (*ListpeersPeers)(nil), // 51: cln.ListpeersPeers + (*ListpeersPeersLog)(nil), // 52: cln.ListpeersPeersLog + (*ListpeersPeersChannels)(nil), // 53: cln.ListpeersPeersChannels + (*ListpeersPeersChannelsFeerate)(nil), // 54: cln.ListpeersPeersChannelsFeerate + (*ListpeersPeersChannelsInflight)(nil), // 55: cln.ListpeersPeersChannelsInflight + (*ListpeersPeersChannelsFunding)(nil), // 56: cln.ListpeersPeersChannelsFunding + (*ListpeersPeersChannelsAlias)(nil), // 57: cln.ListpeersPeersChannelsAlias + (*ListpeersPeersChannelsHtlcs)(nil), // 58: cln.ListpeersPeersChannelsHtlcs + (*ListfundsRequest)(nil), // 59: cln.ListfundsRequest + (*ListfundsResponse)(nil), // 60: cln.ListfundsResponse + (*ListfundsOutputs)(nil), // 61: cln.ListfundsOutputs + (*ListfundsChannels)(nil), // 62: cln.ListfundsChannels + (*SendpayRequest)(nil), // 63: cln.SendpayRequest + (*SendpayResponse)(nil), // 64: cln.SendpayResponse + (*SendpayRoute)(nil), // 65: cln.SendpayRoute + (*ListchannelsRequest)(nil), // 66: cln.ListchannelsRequest + (*ListchannelsResponse)(nil), // 67: cln.ListchannelsResponse + (*ListchannelsChannels)(nil), // 68: cln.ListchannelsChannels + (*AddgossipRequest)(nil), // 69: cln.AddgossipRequest + (*AddgossipResponse)(nil), // 70: cln.AddgossipResponse + (*AutocleaninvoiceRequest)(nil), // 71: cln.AutocleaninvoiceRequest + (*AutocleaninvoiceResponse)(nil), // 72: cln.AutocleaninvoiceResponse + (*CheckmessageRequest)(nil), // 73: cln.CheckmessageRequest + (*CheckmessageResponse)(nil), // 74: cln.CheckmessageResponse + (*CloseRequest)(nil), // 75: cln.CloseRequest + (*CloseResponse)(nil), // 76: cln.CloseResponse + (*ConnectRequest)(nil), // 77: cln.ConnectRequest + (*ConnectResponse)(nil), // 78: cln.ConnectResponse + (*ConnectAddress)(nil), // 79: cln.ConnectAddress + (*CreateinvoiceRequest)(nil), // 80: cln.CreateinvoiceRequest + (*CreateinvoiceResponse)(nil), // 81: cln.CreateinvoiceResponse + (*CreateinvoicePaidOutpoint)(nil), // 82: cln.CreateinvoicePaid_outpoint + (*DatastoreRequest)(nil), // 83: cln.DatastoreRequest + (*DatastoreResponse)(nil), // 84: cln.DatastoreResponse + (*DatastoreusageRequest)(nil), // 85: cln.DatastoreusageRequest + (*DatastoreusageResponse)(nil), // 86: cln.DatastoreusageResponse + (*DatastoreusageDatastoreusage)(nil), // 87: cln.DatastoreusageDatastoreusage + (*CreateonionRequest)(nil), // 88: cln.CreateonionRequest + (*CreateonionResponse)(nil), // 89: cln.CreateonionResponse + (*CreateonionHops)(nil), // 90: cln.CreateonionHops + (*DeldatastoreRequest)(nil), // 91: cln.DeldatastoreRequest + (*DeldatastoreResponse)(nil), // 92: cln.DeldatastoreResponse + (*DelexpiredinvoiceRequest)(nil), // 93: cln.DelexpiredinvoiceRequest + (*DelexpiredinvoiceResponse)(nil), // 94: cln.DelexpiredinvoiceResponse + (*DelinvoiceRequest)(nil), // 95: cln.DelinvoiceRequest + (*DelinvoiceResponse)(nil), // 96: cln.DelinvoiceResponse + (*InvoiceRequest)(nil), // 97: cln.InvoiceRequest + (*InvoiceResponse)(nil), // 98: cln.InvoiceResponse + (*ListdatastoreRequest)(nil), // 99: cln.ListdatastoreRequest + (*ListdatastoreResponse)(nil), // 100: cln.ListdatastoreResponse + (*ListdatastoreDatastore)(nil), // 101: cln.ListdatastoreDatastore + (*ListinvoicesRequest)(nil), // 102: cln.ListinvoicesRequest + (*ListinvoicesResponse)(nil), // 103: cln.ListinvoicesResponse + (*ListinvoicesInvoices)(nil), // 104: cln.ListinvoicesInvoices + (*ListinvoicesInvoicesPaidOutpoint)(nil), // 105: cln.ListinvoicesInvoicesPaid_outpoint + (*SendonionRequest)(nil), // 106: cln.SendonionRequest + (*SendonionResponse)(nil), // 107: cln.SendonionResponse + (*SendonionFirstHop)(nil), // 108: cln.SendonionFirst_hop + (*ListsendpaysRequest)(nil), // 109: cln.ListsendpaysRequest + (*ListsendpaysResponse)(nil), // 110: cln.ListsendpaysResponse + (*ListsendpaysPayments)(nil), // 111: cln.ListsendpaysPayments + (*ListtransactionsRequest)(nil), // 112: cln.ListtransactionsRequest + (*ListtransactionsResponse)(nil), // 113: cln.ListtransactionsResponse + (*ListtransactionsTransactions)(nil), // 114: cln.ListtransactionsTransactions + (*ListtransactionsTransactionsInputs)(nil), // 115: cln.ListtransactionsTransactionsInputs + (*ListtransactionsTransactionsOutputs)(nil), // 116: cln.ListtransactionsTransactionsOutputs + (*PayRequest)(nil), // 117: cln.PayRequest + (*PayResponse)(nil), // 118: cln.PayResponse + (*ListnodesRequest)(nil), // 119: cln.ListnodesRequest + (*ListnodesResponse)(nil), // 120: cln.ListnodesResponse + (*ListnodesNodes)(nil), // 121: cln.ListnodesNodes + (*ListnodesNodesAddresses)(nil), // 122: cln.ListnodesNodesAddresses + (*WaitanyinvoiceRequest)(nil), // 123: cln.WaitanyinvoiceRequest + (*WaitanyinvoiceResponse)(nil), // 124: cln.WaitanyinvoiceResponse + (*WaitanyinvoicePaidOutpoint)(nil), // 125: cln.WaitanyinvoicePaid_outpoint + (*WaitinvoiceRequest)(nil), // 126: cln.WaitinvoiceRequest + (*WaitinvoiceResponse)(nil), // 127: cln.WaitinvoiceResponse + (*WaitinvoicePaidOutpoint)(nil), // 128: cln.WaitinvoicePaid_outpoint + (*WaitsendpayRequest)(nil), // 129: cln.WaitsendpayRequest + (*WaitsendpayResponse)(nil), // 130: cln.WaitsendpayResponse + (*NewaddrRequest)(nil), // 131: cln.NewaddrRequest + (*NewaddrResponse)(nil), // 132: cln.NewaddrResponse + (*WithdrawRequest)(nil), // 133: cln.WithdrawRequest + (*WithdrawResponse)(nil), // 134: cln.WithdrawResponse + (*KeysendRequest)(nil), // 135: cln.KeysendRequest + (*KeysendResponse)(nil), // 136: cln.KeysendResponse + (*FundpsbtRequest)(nil), // 137: cln.FundpsbtRequest + (*FundpsbtResponse)(nil), // 138: cln.FundpsbtResponse + (*FundpsbtReservations)(nil), // 139: cln.FundpsbtReservations + (*SendpsbtRequest)(nil), // 140: cln.SendpsbtRequest + (*SendpsbtResponse)(nil), // 141: cln.SendpsbtResponse + (*SignpsbtRequest)(nil), // 142: cln.SignpsbtRequest + (*SignpsbtResponse)(nil), // 143: cln.SignpsbtResponse + (*UtxopsbtRequest)(nil), // 144: cln.UtxopsbtRequest + (*UtxopsbtResponse)(nil), // 145: cln.UtxopsbtResponse + (*UtxopsbtReservations)(nil), // 146: cln.UtxopsbtReservations + (*TxdiscardRequest)(nil), // 147: cln.TxdiscardRequest + (*TxdiscardResponse)(nil), // 148: cln.TxdiscardResponse + (*TxprepareRequest)(nil), // 149: cln.TxprepareRequest + (*TxprepareResponse)(nil), // 150: cln.TxprepareResponse + (*TxsendRequest)(nil), // 151: cln.TxsendRequest + (*TxsendResponse)(nil), // 152: cln.TxsendResponse + (*ListpeerchannelsRequest)(nil), // 153: cln.ListpeerchannelsRequest + (*ListpeerchannelsResponse)(nil), // 154: cln.ListpeerchannelsResponse + (*ListpeerchannelsChannels)(nil), // 155: cln.ListpeerchannelsChannels + (*ListpeerchannelsChannelsUpdates)(nil), // 156: cln.ListpeerchannelsChannelsUpdates + (*ListpeerchannelsChannelsUpdatesLocal)(nil), // 157: cln.ListpeerchannelsChannelsUpdatesLocal + (*ListpeerchannelsChannelsUpdatesRemote)(nil), // 158: cln.ListpeerchannelsChannelsUpdatesRemote + (*ListpeerchannelsChannelsFeerate)(nil), // 159: cln.ListpeerchannelsChannelsFeerate + (*ListpeerchannelsChannelsInflight)(nil), // 160: cln.ListpeerchannelsChannelsInflight + (*ListpeerchannelsChannelsFunding)(nil), // 161: cln.ListpeerchannelsChannelsFunding + (*ListpeerchannelsChannelsAlias)(nil), // 162: cln.ListpeerchannelsChannelsAlias + (*ListpeerchannelsChannelsHtlcs)(nil), // 163: cln.ListpeerchannelsChannelsHtlcs + (*ListclosedchannelsRequest)(nil), // 164: cln.ListclosedchannelsRequest + (*ListclosedchannelsResponse)(nil), // 165: cln.ListclosedchannelsResponse + (*ListclosedchannelsClosedchannels)(nil), // 166: cln.ListclosedchannelsClosedchannels + (*ListclosedchannelsClosedchannelsAlias)(nil), // 167: cln.ListclosedchannelsClosedchannelsAlias + (*DecodepayRequest)(nil), // 168: cln.DecodepayRequest + (*DecodepayResponse)(nil), // 169: cln.DecodepayResponse + (*DecodepayFallbacks)(nil), // 170: cln.DecodepayFallbacks + (*DecodepayExtra)(nil), // 171: cln.DecodepayExtra + (*DecodeRequest)(nil), // 172: cln.DecodeRequest + (*DecodeResponse)(nil), // 173: cln.DecodeResponse + (*DecodeOfferPaths)(nil), // 174: cln.DecodeOffer_paths + (*DecodeOfferRecurrencePaywindow)(nil), // 175: cln.DecodeOffer_recurrencePaywindow + (*DecodeInvoicePathsPath)(nil), // 176: cln.DecodeInvoice_pathsPath + (*DecodeInvoiceFallbacks)(nil), // 177: cln.DecodeInvoice_fallbacks + (*DecodeFallbacks)(nil), // 178: cln.DecodeFallbacks + (*DecodeExtra)(nil), // 179: cln.DecodeExtra + (*DecodeRestrictions)(nil), // 180: cln.DecodeRestrictions + (*DisconnectRequest)(nil), // 181: cln.DisconnectRequest + (*DisconnectResponse)(nil), // 182: cln.DisconnectResponse + (*FeeratesRequest)(nil), // 183: cln.FeeratesRequest + (*FeeratesResponse)(nil), // 184: cln.FeeratesResponse + (*FeeratesPerkb)(nil), // 185: cln.FeeratesPerkb + (*FeeratesPerkbEstimates)(nil), // 186: cln.FeeratesPerkbEstimates + (*FeeratesPerkw)(nil), // 187: cln.FeeratesPerkw + (*FeeratesPerkwEstimates)(nil), // 188: cln.FeeratesPerkwEstimates + (*FeeratesOnchainFeeEstimates)(nil), // 189: cln.FeeratesOnchain_fee_estimates + (*FetchinvoiceRequest)(nil), // 190: cln.FetchinvoiceRequest + (*FetchinvoiceResponse)(nil), // 191: cln.FetchinvoiceResponse + (*FetchinvoiceChanges)(nil), // 192: cln.FetchinvoiceChanges + (*FetchinvoiceNextPeriod)(nil), // 193: cln.FetchinvoiceNext_period + (*FundchannelRequest)(nil), // 194: cln.FundchannelRequest + (*FundchannelResponse)(nil), // 195: cln.FundchannelResponse + (*FundchannelChannelType)(nil), // 196: cln.FundchannelChannel_type + (*GetrouteRequest)(nil), // 197: cln.GetrouteRequest + (*GetrouteResponse)(nil), // 198: cln.GetrouteResponse + (*GetrouteRoute)(nil), // 199: cln.GetrouteRoute + (*ListforwardsRequest)(nil), // 200: cln.ListforwardsRequest + (*ListforwardsResponse)(nil), // 201: cln.ListforwardsResponse + (*ListforwardsForwards)(nil), // 202: cln.ListforwardsForwards + (*ListoffersRequest)(nil), // 203: cln.ListoffersRequest + (*ListoffersResponse)(nil), // 204: cln.ListoffersResponse + (*ListoffersOffers)(nil), // 205: cln.ListoffersOffers + (*ListpaysRequest)(nil), // 206: cln.ListpaysRequest + (*ListpaysResponse)(nil), // 207: cln.ListpaysResponse + (*ListpaysPays)(nil), // 208: cln.ListpaysPays + (*ListhtlcsRequest)(nil), // 209: cln.ListhtlcsRequest + (*ListhtlcsResponse)(nil), // 210: cln.ListhtlcsResponse + (*ListhtlcsHtlcs)(nil), // 211: cln.ListhtlcsHtlcs + (*OfferRequest)(nil), // 212: cln.OfferRequest + (*OfferResponse)(nil), // 213: cln.OfferResponse + (*PingRequest)(nil), // 214: cln.PingRequest + (*PingResponse)(nil), // 215: cln.PingResponse + (*SendcustommsgRequest)(nil), // 216: cln.SendcustommsgRequest + (*SendcustommsgResponse)(nil), // 217: cln.SendcustommsgResponse + (*SetchannelRequest)(nil), // 218: cln.SetchannelRequest + (*SetchannelResponse)(nil), // 219: cln.SetchannelResponse + (*SetchannelChannels)(nil), // 220: cln.SetchannelChannels + (*SigninvoiceRequest)(nil), // 221: cln.SigninvoiceRequest + (*SigninvoiceResponse)(nil), // 222: cln.SigninvoiceResponse + (*SignmessageRequest)(nil), // 223: cln.SignmessageRequest + (*SignmessageResponse)(nil), // 224: cln.SignmessageResponse + (*WaitblockheightRequest)(nil), // 225: cln.WaitblockheightRequest + (*WaitblockheightResponse)(nil), // 226: cln.WaitblockheightResponse + (*WaitRequest)(nil), // 227: cln.WaitRequest + (*WaitResponse)(nil), // 228: cln.WaitResponse + (*StopRequest)(nil), // 229: cln.StopRequest + (*StopResponse)(nil), // 230: cln.StopResponse + (*PreapprovekeysendRequest)(nil), // 231: cln.PreapprovekeysendRequest + (*PreapprovekeysendResponse)(nil), // 232: cln.PreapprovekeysendResponse + (*PreapproveinvoiceRequest)(nil), // 233: cln.PreapproveinvoiceRequest + (*PreapproveinvoiceResponse)(nil), // 234: cln.PreapproveinvoiceResponse + (*StaticbackupRequest)(nil), // 235: cln.StaticbackupRequest + (*StaticbackupResponse)(nil), // 236: cln.StaticbackupResponse + (*BkprlistincomeRequest)(nil), // 237: cln.BkprlistincomeRequest + (*BkprlistincomeResponse)(nil), // 238: cln.BkprlistincomeResponse + (*BkprlistincomeIncomeEvents)(nil), // 239: cln.BkprlistincomeIncome_events + (*Amount)(nil), // 240: cln.Amount + (ChannelSide)(0), // 241: cln.ChannelSide + (HtlcState)(0), // 242: cln.HtlcState + (ChannelState)(0), // 243: cln.ChannelState + (*Outpoint)(nil), // 244: cln.Outpoint + (*Feerate)(nil), // 245: cln.Feerate + (*AmountOrAny)(nil), // 246: cln.AmountOrAny + (*AmountOrAll)(nil), // 247: cln.AmountOrAll + (*RoutehintList)(nil), // 248: cln.RoutehintList + (*TlvStream)(nil), // 249: cln.TlvStream + (*OutputDesc)(nil), // 250: cln.OutputDesc + (ChannelTypeName)(0), // 251: cln.ChannelTypeName +} +var file_node_proto_depIdxs = []int32{ + 46, // 0: cln.GetinfoResponse.our_features:type_name -> cln.GetinfoOur_features + 240, // 1: cln.GetinfoResponse.fees_collected_msat:type_name -> cln.Amount + 47, // 2: cln.GetinfoResponse.address:type_name -> cln.GetinfoAddress + 48, // 3: cln.GetinfoResponse.binding:type_name -> cln.GetinfoBinding + 0, // 4: cln.GetinfoAddress.item_type:type_name -> cln.GetinfoAddress.GetinfoAddressType + 1, // 5: cln.GetinfoBinding.item_type:type_name -> cln.GetinfoBinding.GetinfoBindingType + 51, // 6: cln.ListpeersResponse.peers:type_name -> cln.ListpeersPeers + 52, // 7: cln.ListpeersPeers.log:type_name -> cln.ListpeersPeersLog + 53, // 8: cln.ListpeersPeers.channels:type_name -> cln.ListpeersPeersChannels + 2, // 9: cln.ListpeersPeersLog.item_type:type_name -> cln.ListpeersPeersLog.ListpeersPeersLogType + 3, // 10: cln.ListpeersPeersChannels.state:type_name -> cln.ListpeersPeersChannels.ListpeersPeersChannelsState + 54, // 11: cln.ListpeersPeersChannels.feerate:type_name -> cln.ListpeersPeersChannelsFeerate + 55, // 12: cln.ListpeersPeersChannels.inflight:type_name -> cln.ListpeersPeersChannelsInflight + 241, // 13: cln.ListpeersPeersChannels.opener:type_name -> cln.ChannelSide + 241, // 14: cln.ListpeersPeersChannels.closer:type_name -> cln.ChannelSide + 56, // 15: cln.ListpeersPeersChannels.funding:type_name -> cln.ListpeersPeersChannelsFunding + 240, // 16: cln.ListpeersPeersChannels.to_us_msat:type_name -> cln.Amount + 240, // 17: cln.ListpeersPeersChannels.min_to_us_msat:type_name -> cln.Amount + 240, // 18: cln.ListpeersPeersChannels.max_to_us_msat:type_name -> cln.Amount + 240, // 19: cln.ListpeersPeersChannels.total_msat:type_name -> cln.Amount + 240, // 20: cln.ListpeersPeersChannels.fee_base_msat:type_name -> cln.Amount + 240, // 21: cln.ListpeersPeersChannels.dust_limit_msat:type_name -> cln.Amount + 240, // 22: cln.ListpeersPeersChannels.max_total_htlc_in_msat:type_name -> cln.Amount + 240, // 23: cln.ListpeersPeersChannels.their_reserve_msat:type_name -> cln.Amount + 240, // 24: cln.ListpeersPeersChannels.our_reserve_msat:type_name -> cln.Amount + 240, // 25: cln.ListpeersPeersChannels.spendable_msat:type_name -> cln.Amount + 240, // 26: cln.ListpeersPeersChannels.receivable_msat:type_name -> cln.Amount + 240, // 27: cln.ListpeersPeersChannels.minimum_htlc_in_msat:type_name -> cln.Amount + 240, // 28: cln.ListpeersPeersChannels.minimum_htlc_out_msat:type_name -> cln.Amount + 240, // 29: cln.ListpeersPeersChannels.maximum_htlc_out_msat:type_name -> cln.Amount + 57, // 30: cln.ListpeersPeersChannels.alias:type_name -> cln.ListpeersPeersChannelsAlias + 240, // 31: cln.ListpeersPeersChannels.in_offered_msat:type_name -> cln.Amount + 240, // 32: cln.ListpeersPeersChannels.in_fulfilled_msat:type_name -> cln.Amount + 240, // 33: cln.ListpeersPeersChannels.out_offered_msat:type_name -> cln.Amount + 240, // 34: cln.ListpeersPeersChannels.out_fulfilled_msat:type_name -> cln.Amount + 58, // 35: cln.ListpeersPeersChannels.htlcs:type_name -> cln.ListpeersPeersChannelsHtlcs + 240, // 36: cln.ListpeersPeersChannelsInflight.total_funding_msat:type_name -> cln.Amount + 240, // 37: cln.ListpeersPeersChannelsInflight.our_funding_msat:type_name -> cln.Amount + 240, // 38: cln.ListpeersPeersChannelsFunding.pushed_msat:type_name -> cln.Amount + 240, // 39: cln.ListpeersPeersChannelsFunding.local_funds_msat:type_name -> cln.Amount + 240, // 40: cln.ListpeersPeersChannelsFunding.remote_funds_msat:type_name -> cln.Amount + 240, // 41: cln.ListpeersPeersChannelsFunding.fee_paid_msat:type_name -> cln.Amount + 240, // 42: cln.ListpeersPeersChannelsFunding.fee_rcvd_msat:type_name -> cln.Amount + 4, // 43: cln.ListpeersPeersChannelsHtlcs.direction:type_name -> cln.ListpeersPeersChannelsHtlcs.ListpeersPeersChannelsHtlcsDirection + 240, // 44: cln.ListpeersPeersChannelsHtlcs.amount_msat:type_name -> cln.Amount + 242, // 45: cln.ListpeersPeersChannelsHtlcs.state:type_name -> cln.HtlcState + 61, // 46: cln.ListfundsResponse.outputs:type_name -> cln.ListfundsOutputs + 62, // 47: cln.ListfundsResponse.channels:type_name -> cln.ListfundsChannels + 240, // 48: cln.ListfundsOutputs.amount_msat:type_name -> cln.Amount + 5, // 49: cln.ListfundsOutputs.status:type_name -> cln.ListfundsOutputs.ListfundsOutputsStatus + 240, // 50: cln.ListfundsChannels.our_amount_msat:type_name -> cln.Amount + 240, // 51: cln.ListfundsChannels.amount_msat:type_name -> cln.Amount + 243, // 52: cln.ListfundsChannels.state:type_name -> cln.ChannelState + 65, // 53: cln.SendpayRequest.route:type_name -> cln.SendpayRoute + 240, // 54: cln.SendpayRequest.amount_msat:type_name -> cln.Amount + 6, // 55: cln.SendpayResponse.status:type_name -> cln.SendpayResponse.SendpayStatus + 240, // 56: cln.SendpayResponse.amount_msat:type_name -> cln.Amount + 240, // 57: cln.SendpayResponse.amount_sent_msat:type_name -> cln.Amount + 240, // 58: cln.SendpayRoute.amount_msat:type_name -> cln.Amount + 68, // 59: cln.ListchannelsResponse.channels:type_name -> cln.ListchannelsChannels + 240, // 60: cln.ListchannelsChannels.amount_msat:type_name -> cln.Amount + 240, // 61: cln.ListchannelsChannels.htlc_minimum_msat:type_name -> cln.Amount + 240, // 62: cln.ListchannelsChannels.htlc_maximum_msat:type_name -> cln.Amount + 244, // 63: cln.CloseRequest.wrong_funding:type_name -> cln.Outpoint + 245, // 64: cln.CloseRequest.feerange:type_name -> cln.Feerate + 7, // 65: cln.CloseResponse.item_type:type_name -> cln.CloseResponse.CloseType + 8, // 66: cln.ConnectResponse.direction:type_name -> cln.ConnectResponse.ConnectDirection + 79, // 67: cln.ConnectResponse.address:type_name -> cln.ConnectAddress + 9, // 68: cln.ConnectAddress.item_type:type_name -> cln.ConnectAddress.ConnectAddressType + 240, // 69: cln.CreateinvoiceResponse.amount_msat:type_name -> cln.Amount + 10, // 70: cln.CreateinvoiceResponse.status:type_name -> cln.CreateinvoiceResponse.CreateinvoiceStatus + 240, // 71: cln.CreateinvoiceResponse.amount_received_msat:type_name -> cln.Amount + 82, // 72: cln.CreateinvoiceResponse.paid_outpoint:type_name -> cln.CreateinvoicePaid_outpoint + 11, // 73: cln.DatastoreRequest.mode:type_name -> cln.DatastoreRequest.DatastoreMode + 87, // 74: cln.DatastoreusageResponse.datastoreusage:type_name -> cln.DatastoreusageDatastoreusage + 90, // 75: cln.CreateonionRequest.hops:type_name -> cln.CreateonionHops + 12, // 76: cln.DelinvoiceRequest.status:type_name -> cln.DelinvoiceRequest.DelinvoiceStatus + 240, // 77: cln.DelinvoiceResponse.amount_msat:type_name -> cln.Amount + 13, // 78: cln.DelinvoiceResponse.status:type_name -> cln.DelinvoiceResponse.DelinvoiceStatus + 246, // 79: cln.InvoiceRequest.amount_msat:type_name -> cln.AmountOrAny + 101, // 80: cln.ListdatastoreResponse.datastore:type_name -> cln.ListdatastoreDatastore + 14, // 81: cln.ListinvoicesRequest.index:type_name -> cln.ListinvoicesRequest.ListinvoicesIndex + 104, // 82: cln.ListinvoicesResponse.invoices:type_name -> cln.ListinvoicesInvoices + 15, // 83: cln.ListinvoicesInvoices.status:type_name -> cln.ListinvoicesInvoices.ListinvoicesInvoicesStatus + 240, // 84: cln.ListinvoicesInvoices.amount_msat:type_name -> cln.Amount + 240, // 85: cln.ListinvoicesInvoices.amount_received_msat:type_name -> cln.Amount + 105, // 86: cln.ListinvoicesInvoices.paid_outpoint:type_name -> cln.ListinvoicesInvoicesPaid_outpoint + 108, // 87: cln.SendonionRequest.first_hop:type_name -> cln.SendonionFirst_hop + 240, // 88: cln.SendonionRequest.amount_msat:type_name -> cln.Amount + 16, // 89: cln.SendonionResponse.status:type_name -> cln.SendonionResponse.SendonionStatus + 240, // 90: cln.SendonionResponse.amount_msat:type_name -> cln.Amount + 240, // 91: cln.SendonionResponse.amount_sent_msat:type_name -> cln.Amount + 240, // 92: cln.SendonionFirst_hop.amount_msat:type_name -> cln.Amount + 17, // 93: cln.ListsendpaysRequest.status:type_name -> cln.ListsendpaysRequest.ListsendpaysStatus + 18, // 94: cln.ListsendpaysRequest.index:type_name -> cln.ListsendpaysRequest.ListsendpaysIndex + 111, // 95: cln.ListsendpaysResponse.payments:type_name -> cln.ListsendpaysPayments + 19, // 96: cln.ListsendpaysPayments.status:type_name -> cln.ListsendpaysPayments.ListsendpaysPaymentsStatus + 240, // 97: cln.ListsendpaysPayments.amount_msat:type_name -> cln.Amount + 240, // 98: cln.ListsendpaysPayments.amount_sent_msat:type_name -> cln.Amount + 114, // 99: cln.ListtransactionsResponse.transactions:type_name -> cln.ListtransactionsTransactions + 115, // 100: cln.ListtransactionsTransactions.inputs:type_name -> cln.ListtransactionsTransactionsInputs + 116, // 101: cln.ListtransactionsTransactions.outputs:type_name -> cln.ListtransactionsTransactionsOutputs + 240, // 102: cln.ListtransactionsTransactionsOutputs.amount_msat:type_name -> cln.Amount + 240, // 103: cln.PayRequest.amount_msat:type_name -> cln.Amount + 240, // 104: cln.PayRequest.exemptfee:type_name -> cln.Amount + 240, // 105: cln.PayRequest.maxfee:type_name -> cln.Amount + 240, // 106: cln.PayResponse.amount_msat:type_name -> cln.Amount + 240, // 107: cln.PayResponse.amount_sent_msat:type_name -> cln.Amount + 20, // 108: cln.PayResponse.status:type_name -> cln.PayResponse.PayStatus + 121, // 109: cln.ListnodesResponse.nodes:type_name -> cln.ListnodesNodes + 122, // 110: cln.ListnodesNodes.addresses:type_name -> cln.ListnodesNodesAddresses + 21, // 111: cln.ListnodesNodesAddresses.item_type:type_name -> cln.ListnodesNodesAddresses.ListnodesNodesAddressesType + 22, // 112: cln.WaitanyinvoiceResponse.status:type_name -> cln.WaitanyinvoiceResponse.WaitanyinvoiceStatus + 240, // 113: cln.WaitanyinvoiceResponse.amount_msat:type_name -> cln.Amount + 240, // 114: cln.WaitanyinvoiceResponse.amount_received_msat:type_name -> cln.Amount + 125, // 115: cln.WaitanyinvoiceResponse.paid_outpoint:type_name -> cln.WaitanyinvoicePaid_outpoint + 23, // 116: cln.WaitinvoiceResponse.status:type_name -> cln.WaitinvoiceResponse.WaitinvoiceStatus + 240, // 117: cln.WaitinvoiceResponse.amount_msat:type_name -> cln.Amount + 240, // 118: cln.WaitinvoiceResponse.amount_received_msat:type_name -> cln.Amount + 128, // 119: cln.WaitinvoiceResponse.paid_outpoint:type_name -> cln.WaitinvoicePaid_outpoint + 24, // 120: cln.WaitsendpayResponse.status:type_name -> cln.WaitsendpayResponse.WaitsendpayStatus + 240, // 121: cln.WaitsendpayResponse.amount_msat:type_name -> cln.Amount + 240, // 122: cln.WaitsendpayResponse.amount_sent_msat:type_name -> cln.Amount + 25, // 123: cln.NewaddrRequest.addresstype:type_name -> cln.NewaddrRequest.NewaddrAddresstype + 247, // 124: cln.WithdrawRequest.satoshi:type_name -> cln.AmountOrAll + 245, // 125: cln.WithdrawRequest.feerate:type_name -> cln.Feerate + 244, // 126: cln.WithdrawRequest.utxos:type_name -> cln.Outpoint + 240, // 127: cln.KeysendRequest.amount_msat:type_name -> cln.Amount + 240, // 128: cln.KeysendRequest.exemptfee:type_name -> cln.Amount + 248, // 129: cln.KeysendRequest.routehints:type_name -> cln.RoutehintList + 249, // 130: cln.KeysendRequest.extratlvs:type_name -> cln.TlvStream + 240, // 131: cln.KeysendResponse.amount_msat:type_name -> cln.Amount + 240, // 132: cln.KeysendResponse.amount_sent_msat:type_name -> cln.Amount + 26, // 133: cln.KeysendResponse.status:type_name -> cln.KeysendResponse.KeysendStatus + 247, // 134: cln.FundpsbtRequest.satoshi:type_name -> cln.AmountOrAll + 245, // 135: cln.FundpsbtRequest.feerate:type_name -> cln.Feerate + 240, // 136: cln.FundpsbtResponse.excess_msat:type_name -> cln.Amount + 139, // 137: cln.FundpsbtResponse.reservations:type_name -> cln.FundpsbtReservations + 240, // 138: cln.UtxopsbtRequest.satoshi:type_name -> cln.Amount + 245, // 139: cln.UtxopsbtRequest.feerate:type_name -> cln.Feerate + 244, // 140: cln.UtxopsbtRequest.utxos:type_name -> cln.Outpoint + 240, // 141: cln.UtxopsbtResponse.excess_msat:type_name -> cln.Amount + 146, // 142: cln.UtxopsbtResponse.reservations:type_name -> cln.UtxopsbtReservations + 250, // 143: cln.TxprepareRequest.outputs:type_name -> cln.OutputDesc + 245, // 144: cln.TxprepareRequest.feerate:type_name -> cln.Feerate + 244, // 145: cln.TxprepareRequest.utxos:type_name -> cln.Outpoint + 155, // 146: cln.ListpeerchannelsResponse.channels:type_name -> cln.ListpeerchannelsChannels + 27, // 147: cln.ListpeerchannelsChannels.state:type_name -> cln.ListpeerchannelsChannels.ListpeerchannelsChannelsState + 156, // 148: cln.ListpeerchannelsChannels.updates:type_name -> cln.ListpeerchannelsChannelsUpdates + 159, // 149: cln.ListpeerchannelsChannels.feerate:type_name -> cln.ListpeerchannelsChannelsFeerate + 160, // 150: cln.ListpeerchannelsChannels.inflight:type_name -> cln.ListpeerchannelsChannelsInflight + 241, // 151: cln.ListpeerchannelsChannels.opener:type_name -> cln.ChannelSide + 241, // 152: cln.ListpeerchannelsChannels.closer:type_name -> cln.ChannelSide + 161, // 153: cln.ListpeerchannelsChannels.funding:type_name -> cln.ListpeerchannelsChannelsFunding + 240, // 154: cln.ListpeerchannelsChannels.to_us_msat:type_name -> cln.Amount + 240, // 155: cln.ListpeerchannelsChannels.min_to_us_msat:type_name -> cln.Amount + 240, // 156: cln.ListpeerchannelsChannels.max_to_us_msat:type_name -> cln.Amount + 240, // 157: cln.ListpeerchannelsChannels.total_msat:type_name -> cln.Amount + 240, // 158: cln.ListpeerchannelsChannels.fee_base_msat:type_name -> cln.Amount + 240, // 159: cln.ListpeerchannelsChannels.dust_limit_msat:type_name -> cln.Amount + 240, // 160: cln.ListpeerchannelsChannels.max_total_htlc_in_msat:type_name -> cln.Amount + 240, // 161: cln.ListpeerchannelsChannels.their_reserve_msat:type_name -> cln.Amount + 240, // 162: cln.ListpeerchannelsChannels.our_reserve_msat:type_name -> cln.Amount + 240, // 163: cln.ListpeerchannelsChannels.spendable_msat:type_name -> cln.Amount + 240, // 164: cln.ListpeerchannelsChannels.receivable_msat:type_name -> cln.Amount + 240, // 165: cln.ListpeerchannelsChannels.minimum_htlc_in_msat:type_name -> cln.Amount + 240, // 166: cln.ListpeerchannelsChannels.minimum_htlc_out_msat:type_name -> cln.Amount + 240, // 167: cln.ListpeerchannelsChannels.maximum_htlc_out_msat:type_name -> cln.Amount + 162, // 168: cln.ListpeerchannelsChannels.alias:type_name -> cln.ListpeerchannelsChannelsAlias + 240, // 169: cln.ListpeerchannelsChannels.in_offered_msat:type_name -> cln.Amount + 240, // 170: cln.ListpeerchannelsChannels.in_fulfilled_msat:type_name -> cln.Amount + 240, // 171: cln.ListpeerchannelsChannels.out_offered_msat:type_name -> cln.Amount + 240, // 172: cln.ListpeerchannelsChannels.out_fulfilled_msat:type_name -> cln.Amount + 163, // 173: cln.ListpeerchannelsChannels.htlcs:type_name -> cln.ListpeerchannelsChannelsHtlcs + 157, // 174: cln.ListpeerchannelsChannelsUpdates.local:type_name -> cln.ListpeerchannelsChannelsUpdatesLocal + 158, // 175: cln.ListpeerchannelsChannelsUpdates.remote:type_name -> cln.ListpeerchannelsChannelsUpdatesRemote + 240, // 176: cln.ListpeerchannelsChannelsUpdatesLocal.htlc_minimum_msat:type_name -> cln.Amount + 240, // 177: cln.ListpeerchannelsChannelsUpdatesLocal.htlc_maximum_msat:type_name -> cln.Amount + 240, // 178: cln.ListpeerchannelsChannelsUpdatesLocal.fee_base_msat:type_name -> cln.Amount + 240, // 179: cln.ListpeerchannelsChannelsUpdatesRemote.htlc_minimum_msat:type_name -> cln.Amount + 240, // 180: cln.ListpeerchannelsChannelsUpdatesRemote.htlc_maximum_msat:type_name -> cln.Amount + 240, // 181: cln.ListpeerchannelsChannelsUpdatesRemote.fee_base_msat:type_name -> cln.Amount + 240, // 182: cln.ListpeerchannelsChannelsInflight.total_funding_msat:type_name -> cln.Amount + 240, // 183: cln.ListpeerchannelsChannelsInflight.our_funding_msat:type_name -> cln.Amount + 240, // 184: cln.ListpeerchannelsChannelsFunding.pushed_msat:type_name -> cln.Amount + 240, // 185: cln.ListpeerchannelsChannelsFunding.local_funds_msat:type_name -> cln.Amount + 240, // 186: cln.ListpeerchannelsChannelsFunding.remote_funds_msat:type_name -> cln.Amount + 240, // 187: cln.ListpeerchannelsChannelsFunding.fee_paid_msat:type_name -> cln.Amount + 240, // 188: cln.ListpeerchannelsChannelsFunding.fee_rcvd_msat:type_name -> cln.Amount + 28, // 189: cln.ListpeerchannelsChannelsHtlcs.direction:type_name -> cln.ListpeerchannelsChannelsHtlcs.ListpeerchannelsChannelsHtlcsDirection + 240, // 190: cln.ListpeerchannelsChannelsHtlcs.amount_msat:type_name -> cln.Amount + 242, // 191: cln.ListpeerchannelsChannelsHtlcs.state:type_name -> cln.HtlcState + 166, // 192: cln.ListclosedchannelsResponse.closedchannels:type_name -> cln.ListclosedchannelsClosedchannels + 167, // 193: cln.ListclosedchannelsClosedchannels.alias:type_name -> cln.ListclosedchannelsClosedchannelsAlias + 241, // 194: cln.ListclosedchannelsClosedchannels.opener:type_name -> cln.ChannelSide + 241, // 195: cln.ListclosedchannelsClosedchannels.closer:type_name -> cln.ChannelSide + 240, // 196: cln.ListclosedchannelsClosedchannels.funding_fee_paid_msat:type_name -> cln.Amount + 240, // 197: cln.ListclosedchannelsClosedchannels.funding_fee_rcvd_msat:type_name -> cln.Amount + 240, // 198: cln.ListclosedchannelsClosedchannels.funding_pushed_msat:type_name -> cln.Amount + 240, // 199: cln.ListclosedchannelsClosedchannels.total_msat:type_name -> cln.Amount + 240, // 200: cln.ListclosedchannelsClosedchannels.final_to_us_msat:type_name -> cln.Amount + 240, // 201: cln.ListclosedchannelsClosedchannels.min_to_us_msat:type_name -> cln.Amount + 240, // 202: cln.ListclosedchannelsClosedchannels.max_to_us_msat:type_name -> cln.Amount + 240, // 203: cln.ListclosedchannelsClosedchannels.last_commitment_fee_msat:type_name -> cln.Amount + 29, // 204: cln.ListclosedchannelsClosedchannels.close_cause:type_name -> cln.ListclosedchannelsClosedchannels.ListclosedchannelsClosedchannelsClose_cause + 240, // 205: cln.DecodepayResponse.amount_msat:type_name -> cln.Amount + 170, // 206: cln.DecodepayResponse.fallbacks:type_name -> cln.DecodepayFallbacks + 171, // 207: cln.DecodepayResponse.extra:type_name -> cln.DecodepayExtra + 30, // 208: cln.DecodepayFallbacks.item_type:type_name -> cln.DecodepayFallbacks.DecodepayFallbacksType + 31, // 209: cln.DecodeResponse.item_type:type_name -> cln.DecodeResponse.DecodeType + 240, // 210: cln.DecodeResponse.offer_amount_msat:type_name -> cln.Amount + 174, // 211: cln.DecodeResponse.offer_paths:type_name -> cln.DecodeOffer_paths + 240, // 212: cln.DecodeResponse.invreq_amount_msat:type_name -> cln.Amount + 240, // 213: cln.DecodeResponse.invoice_amount_msat:type_name -> cln.Amount + 177, // 214: cln.DecodeResponse.invoice_fallbacks:type_name -> cln.DecodeInvoice_fallbacks + 178, // 215: cln.DecodeResponse.fallbacks:type_name -> cln.DecodeFallbacks + 179, // 216: cln.DecodeResponse.extra:type_name -> cln.DecodeExtra + 180, // 217: cln.DecodeResponse.restrictions:type_name -> cln.DecodeRestrictions + 32, // 218: cln.FeeratesRequest.style:type_name -> cln.FeeratesRequest.FeeratesStyle + 185, // 219: cln.FeeratesResponse.perkb:type_name -> cln.FeeratesPerkb + 187, // 220: cln.FeeratesResponse.perkw:type_name -> cln.FeeratesPerkw + 189, // 221: cln.FeeratesResponse.onchain_fee_estimates:type_name -> cln.FeeratesOnchain_fee_estimates + 186, // 222: cln.FeeratesPerkb.estimates:type_name -> cln.FeeratesPerkbEstimates + 188, // 223: cln.FeeratesPerkw.estimates:type_name -> cln.FeeratesPerkwEstimates + 240, // 224: cln.FetchinvoiceRequest.amount_msat:type_name -> cln.Amount + 192, // 225: cln.FetchinvoiceResponse.changes:type_name -> cln.FetchinvoiceChanges + 193, // 226: cln.FetchinvoiceResponse.next_period:type_name -> cln.FetchinvoiceNext_period + 240, // 227: cln.FetchinvoiceChanges.amount_msat:type_name -> cln.Amount + 247, // 228: cln.FundchannelRequest.amount:type_name -> cln.AmountOrAll + 245, // 229: cln.FundchannelRequest.feerate:type_name -> cln.Feerate + 240, // 230: cln.FundchannelRequest.push_msat:type_name -> cln.Amount + 240, // 231: cln.FundchannelRequest.request_amt:type_name -> cln.Amount + 244, // 232: cln.FundchannelRequest.utxos:type_name -> cln.Outpoint + 240, // 233: cln.FundchannelRequest.reserve:type_name -> cln.Amount + 196, // 234: cln.FundchannelResponse.channel_type:type_name -> cln.FundchannelChannel_type + 251, // 235: cln.FundchannelChannel_type.names:type_name -> cln.ChannelTypeName + 240, // 236: cln.GetrouteRequest.amount_msat:type_name -> cln.Amount + 199, // 237: cln.GetrouteResponse.route:type_name -> cln.GetrouteRoute + 240, // 238: cln.GetrouteRoute.amount_msat:type_name -> cln.Amount + 33, // 239: cln.GetrouteRoute.style:type_name -> cln.GetrouteRoute.GetrouteRouteStyle + 34, // 240: cln.ListforwardsRequest.status:type_name -> cln.ListforwardsRequest.ListforwardsStatus + 35, // 241: cln.ListforwardsRequest.index:type_name -> cln.ListforwardsRequest.ListforwardsIndex + 202, // 242: cln.ListforwardsResponse.forwards:type_name -> cln.ListforwardsForwards + 240, // 243: cln.ListforwardsForwards.in_msat:type_name -> cln.Amount + 36, // 244: cln.ListforwardsForwards.status:type_name -> cln.ListforwardsForwards.ListforwardsForwardsStatus + 37, // 245: cln.ListforwardsForwards.style:type_name -> cln.ListforwardsForwards.ListforwardsForwardsStyle + 240, // 246: cln.ListforwardsForwards.fee_msat:type_name -> cln.Amount + 240, // 247: cln.ListforwardsForwards.out_msat:type_name -> cln.Amount + 205, // 248: cln.ListoffersResponse.offers:type_name -> cln.ListoffersOffers + 38, // 249: cln.ListpaysRequest.status:type_name -> cln.ListpaysRequest.ListpaysStatus + 208, // 250: cln.ListpaysResponse.pays:type_name -> cln.ListpaysPays + 39, // 251: cln.ListpaysPays.status:type_name -> cln.ListpaysPays.ListpaysPaysStatus + 240, // 252: cln.ListpaysPays.amount_msat:type_name -> cln.Amount + 240, // 253: cln.ListpaysPays.amount_sent_msat:type_name -> cln.Amount + 211, // 254: cln.ListhtlcsResponse.htlcs:type_name -> cln.ListhtlcsHtlcs + 240, // 255: cln.ListhtlcsHtlcs.amount_msat:type_name -> cln.Amount + 40, // 256: cln.ListhtlcsHtlcs.direction:type_name -> cln.ListhtlcsHtlcs.ListhtlcsHtlcsDirection + 242, // 257: cln.ListhtlcsHtlcs.state:type_name -> cln.HtlcState + 240, // 258: cln.SetchannelRequest.feebase:type_name -> cln.Amount + 240, // 259: cln.SetchannelRequest.htlcmin:type_name -> cln.Amount + 240, // 260: cln.SetchannelRequest.htlcmax:type_name -> cln.Amount + 220, // 261: cln.SetchannelResponse.channels:type_name -> cln.SetchannelChannels + 240, // 262: cln.SetchannelChannels.fee_base_msat:type_name -> cln.Amount + 240, // 263: cln.SetchannelChannels.minimum_htlc_out_msat:type_name -> cln.Amount + 240, // 264: cln.SetchannelChannels.maximum_htlc_out_msat:type_name -> cln.Amount + 41, // 265: cln.WaitRequest.subsystem:type_name -> cln.WaitRequest.WaitSubsystem + 42, // 266: cln.WaitRequest.indexname:type_name -> cln.WaitRequest.WaitIndexname + 43, // 267: cln.WaitResponse.subsystem:type_name -> cln.WaitResponse.WaitSubsystem + 240, // 268: cln.PreapprovekeysendRequest.amount_msat:type_name -> cln.Amount + 239, // 269: cln.BkprlistincomeResponse.income_events:type_name -> cln.BkprlistincomeIncome_events + 240, // 270: cln.BkprlistincomeIncome_events.credit_msat:type_name -> cln.Amount + 240, // 271: cln.BkprlistincomeIncome_events.debit_msat:type_name -> cln.Amount + 44, // 272: cln.Node.Getinfo:input_type -> cln.GetinfoRequest + 49, // 273: cln.Node.ListPeers:input_type -> cln.ListpeersRequest + 59, // 274: cln.Node.ListFunds:input_type -> cln.ListfundsRequest + 63, // 275: cln.Node.SendPay:input_type -> cln.SendpayRequest + 66, // 276: cln.Node.ListChannels:input_type -> cln.ListchannelsRequest + 69, // 277: cln.Node.AddGossip:input_type -> cln.AddgossipRequest + 71, // 278: cln.Node.AutoCleanInvoice:input_type -> cln.AutocleaninvoiceRequest + 73, // 279: cln.Node.CheckMessage:input_type -> cln.CheckmessageRequest + 75, // 280: cln.Node.Close:input_type -> cln.CloseRequest + 77, // 281: cln.Node.ConnectPeer:input_type -> cln.ConnectRequest + 80, // 282: cln.Node.CreateInvoice:input_type -> cln.CreateinvoiceRequest + 83, // 283: cln.Node.Datastore:input_type -> cln.DatastoreRequest + 85, // 284: cln.Node.DatastoreUsage:input_type -> cln.DatastoreusageRequest + 88, // 285: cln.Node.CreateOnion:input_type -> cln.CreateonionRequest + 91, // 286: cln.Node.DelDatastore:input_type -> cln.DeldatastoreRequest + 93, // 287: cln.Node.DelExpiredInvoice:input_type -> cln.DelexpiredinvoiceRequest + 95, // 288: cln.Node.DelInvoice:input_type -> cln.DelinvoiceRequest + 97, // 289: cln.Node.Invoice:input_type -> cln.InvoiceRequest + 99, // 290: cln.Node.ListDatastore:input_type -> cln.ListdatastoreRequest + 102, // 291: cln.Node.ListInvoices:input_type -> cln.ListinvoicesRequest + 106, // 292: cln.Node.SendOnion:input_type -> cln.SendonionRequest + 109, // 293: cln.Node.ListSendPays:input_type -> cln.ListsendpaysRequest + 112, // 294: cln.Node.ListTransactions:input_type -> cln.ListtransactionsRequest + 117, // 295: cln.Node.Pay:input_type -> cln.PayRequest + 119, // 296: cln.Node.ListNodes:input_type -> cln.ListnodesRequest + 123, // 297: cln.Node.WaitAnyInvoice:input_type -> cln.WaitanyinvoiceRequest + 126, // 298: cln.Node.WaitInvoice:input_type -> cln.WaitinvoiceRequest + 129, // 299: cln.Node.WaitSendPay:input_type -> cln.WaitsendpayRequest + 131, // 300: cln.Node.NewAddr:input_type -> cln.NewaddrRequest + 133, // 301: cln.Node.Withdraw:input_type -> cln.WithdrawRequest + 135, // 302: cln.Node.KeySend:input_type -> cln.KeysendRequest + 137, // 303: cln.Node.FundPsbt:input_type -> cln.FundpsbtRequest + 140, // 304: cln.Node.SendPsbt:input_type -> cln.SendpsbtRequest + 142, // 305: cln.Node.SignPsbt:input_type -> cln.SignpsbtRequest + 144, // 306: cln.Node.UtxoPsbt:input_type -> cln.UtxopsbtRequest + 147, // 307: cln.Node.TxDiscard:input_type -> cln.TxdiscardRequest + 149, // 308: cln.Node.TxPrepare:input_type -> cln.TxprepareRequest + 151, // 309: cln.Node.TxSend:input_type -> cln.TxsendRequest + 153, // 310: cln.Node.ListPeerChannels:input_type -> cln.ListpeerchannelsRequest + 164, // 311: cln.Node.ListClosedChannels:input_type -> cln.ListclosedchannelsRequest + 168, // 312: cln.Node.DecodePay:input_type -> cln.DecodepayRequest + 172, // 313: cln.Node.Decode:input_type -> cln.DecodeRequest + 181, // 314: cln.Node.Disconnect:input_type -> cln.DisconnectRequest + 183, // 315: cln.Node.Feerates:input_type -> cln.FeeratesRequest + 190, // 316: cln.Node.FetchInvoice:input_type -> cln.FetchinvoiceRequest + 194, // 317: cln.Node.FundChannel:input_type -> cln.FundchannelRequest + 197, // 318: cln.Node.GetRoute:input_type -> cln.GetrouteRequest + 200, // 319: cln.Node.ListForwards:input_type -> cln.ListforwardsRequest + 203, // 320: cln.Node.ListOffers:input_type -> cln.ListoffersRequest + 206, // 321: cln.Node.ListPays:input_type -> cln.ListpaysRequest + 209, // 322: cln.Node.ListHtlcs:input_type -> cln.ListhtlcsRequest + 212, // 323: cln.Node.Offer:input_type -> cln.OfferRequest + 214, // 324: cln.Node.Ping:input_type -> cln.PingRequest + 216, // 325: cln.Node.SendCustomMsg:input_type -> cln.SendcustommsgRequest + 218, // 326: cln.Node.SetChannel:input_type -> cln.SetchannelRequest + 221, // 327: cln.Node.SignInvoice:input_type -> cln.SigninvoiceRequest + 223, // 328: cln.Node.SignMessage:input_type -> cln.SignmessageRequest + 225, // 329: cln.Node.WaitBlockHeight:input_type -> cln.WaitblockheightRequest + 227, // 330: cln.Node.Wait:input_type -> cln.WaitRequest + 229, // 331: cln.Node.Stop:input_type -> cln.StopRequest + 231, // 332: cln.Node.PreApproveKeysend:input_type -> cln.PreapprovekeysendRequest + 233, // 333: cln.Node.PreApproveInvoice:input_type -> cln.PreapproveinvoiceRequest + 235, // 334: cln.Node.StaticBackup:input_type -> cln.StaticbackupRequest + 237, // 335: cln.Node.BkprListIncome:input_type -> cln.BkprlistincomeRequest + 45, // 336: cln.Node.Getinfo:output_type -> cln.GetinfoResponse + 50, // 337: cln.Node.ListPeers:output_type -> cln.ListpeersResponse + 60, // 338: cln.Node.ListFunds:output_type -> cln.ListfundsResponse + 64, // 339: cln.Node.SendPay:output_type -> cln.SendpayResponse + 67, // 340: cln.Node.ListChannels:output_type -> cln.ListchannelsResponse + 70, // 341: cln.Node.AddGossip:output_type -> cln.AddgossipResponse + 72, // 342: cln.Node.AutoCleanInvoice:output_type -> cln.AutocleaninvoiceResponse + 74, // 343: cln.Node.CheckMessage:output_type -> cln.CheckmessageResponse + 76, // 344: cln.Node.Close:output_type -> cln.CloseResponse + 78, // 345: cln.Node.ConnectPeer:output_type -> cln.ConnectResponse + 81, // 346: cln.Node.CreateInvoice:output_type -> cln.CreateinvoiceResponse + 84, // 347: cln.Node.Datastore:output_type -> cln.DatastoreResponse + 86, // 348: cln.Node.DatastoreUsage:output_type -> cln.DatastoreusageResponse + 89, // 349: cln.Node.CreateOnion:output_type -> cln.CreateonionResponse + 92, // 350: cln.Node.DelDatastore:output_type -> cln.DeldatastoreResponse + 94, // 351: cln.Node.DelExpiredInvoice:output_type -> cln.DelexpiredinvoiceResponse + 96, // 352: cln.Node.DelInvoice:output_type -> cln.DelinvoiceResponse + 98, // 353: cln.Node.Invoice:output_type -> cln.InvoiceResponse + 100, // 354: cln.Node.ListDatastore:output_type -> cln.ListdatastoreResponse + 103, // 355: cln.Node.ListInvoices:output_type -> cln.ListinvoicesResponse + 107, // 356: cln.Node.SendOnion:output_type -> cln.SendonionResponse + 110, // 357: cln.Node.ListSendPays:output_type -> cln.ListsendpaysResponse + 113, // 358: cln.Node.ListTransactions:output_type -> cln.ListtransactionsResponse + 118, // 359: cln.Node.Pay:output_type -> cln.PayResponse + 120, // 360: cln.Node.ListNodes:output_type -> cln.ListnodesResponse + 124, // 361: cln.Node.WaitAnyInvoice:output_type -> cln.WaitanyinvoiceResponse + 127, // 362: cln.Node.WaitInvoice:output_type -> cln.WaitinvoiceResponse + 130, // 363: cln.Node.WaitSendPay:output_type -> cln.WaitsendpayResponse + 132, // 364: cln.Node.NewAddr:output_type -> cln.NewaddrResponse + 134, // 365: cln.Node.Withdraw:output_type -> cln.WithdrawResponse + 136, // 366: cln.Node.KeySend:output_type -> cln.KeysendResponse + 138, // 367: cln.Node.FundPsbt:output_type -> cln.FundpsbtResponse + 141, // 368: cln.Node.SendPsbt:output_type -> cln.SendpsbtResponse + 143, // 369: cln.Node.SignPsbt:output_type -> cln.SignpsbtResponse + 145, // 370: cln.Node.UtxoPsbt:output_type -> cln.UtxopsbtResponse + 148, // 371: cln.Node.TxDiscard:output_type -> cln.TxdiscardResponse + 150, // 372: cln.Node.TxPrepare:output_type -> cln.TxprepareResponse + 152, // 373: cln.Node.TxSend:output_type -> cln.TxsendResponse + 154, // 374: cln.Node.ListPeerChannels:output_type -> cln.ListpeerchannelsResponse + 165, // 375: cln.Node.ListClosedChannels:output_type -> cln.ListclosedchannelsResponse + 169, // 376: cln.Node.DecodePay:output_type -> cln.DecodepayResponse + 173, // 377: cln.Node.Decode:output_type -> cln.DecodeResponse + 182, // 378: cln.Node.Disconnect:output_type -> cln.DisconnectResponse + 184, // 379: cln.Node.Feerates:output_type -> cln.FeeratesResponse + 191, // 380: cln.Node.FetchInvoice:output_type -> cln.FetchinvoiceResponse + 195, // 381: cln.Node.FundChannel:output_type -> cln.FundchannelResponse + 198, // 382: cln.Node.GetRoute:output_type -> cln.GetrouteResponse + 201, // 383: cln.Node.ListForwards:output_type -> cln.ListforwardsResponse + 204, // 384: cln.Node.ListOffers:output_type -> cln.ListoffersResponse + 207, // 385: cln.Node.ListPays:output_type -> cln.ListpaysResponse + 210, // 386: cln.Node.ListHtlcs:output_type -> cln.ListhtlcsResponse + 213, // 387: cln.Node.Offer:output_type -> cln.OfferResponse + 215, // 388: cln.Node.Ping:output_type -> cln.PingResponse + 217, // 389: cln.Node.SendCustomMsg:output_type -> cln.SendcustommsgResponse + 219, // 390: cln.Node.SetChannel:output_type -> cln.SetchannelResponse + 222, // 391: cln.Node.SignInvoice:output_type -> cln.SigninvoiceResponse + 224, // 392: cln.Node.SignMessage:output_type -> cln.SignmessageResponse + 226, // 393: cln.Node.WaitBlockHeight:output_type -> cln.WaitblockheightResponse + 228, // 394: cln.Node.Wait:output_type -> cln.WaitResponse + 230, // 395: cln.Node.Stop:output_type -> cln.StopResponse + 232, // 396: cln.Node.PreApproveKeysend:output_type -> cln.PreapprovekeysendResponse + 234, // 397: cln.Node.PreApproveInvoice:output_type -> cln.PreapproveinvoiceResponse + 236, // 398: cln.Node.StaticBackup:output_type -> cln.StaticbackupResponse + 238, // 399: cln.Node.BkprListIncome:output_type -> cln.BkprlistincomeResponse + 336, // [336:400] is the sub-list for method output_type + 272, // [272:336] is the sub-list for method input_type + 272, // [272:272] is the sub-list for extension type_name + 272, // [272:272] is the sub-list for extension extendee + 0, // [0:272] is the sub-list for field type_name +} + +func init() { file_node_proto_init() } +func file_node_proto_init() { + if File_node_proto != nil { + return + } + file_primitives_proto_init() + if !protoimpl.UnsafeEnabled { + file_node_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetinfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetinfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetinfoOurFeatures); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetinfoAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetinfoBinding); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersPeers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersPeersLog); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersPeersChannels); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersPeersChannelsFeerate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersPeersChannelsInflight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersPeersChannelsFunding); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersPeersChannelsAlias); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeersPeersChannelsHtlcs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListfundsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListfundsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListfundsOutputs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListfundsChannels); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendpayRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendpayResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendpayRoute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListchannelsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListchannelsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListchannelsChannels); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddgossipRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddgossipResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutocleaninvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutocleaninvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckmessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CheckmessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CloseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConnectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConnectResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConnectAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateinvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateinvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateinvoicePaidOutpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DatastoreRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DatastoreResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DatastoreusageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DatastoreusageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DatastoreusageDatastoreusage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateonionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateonionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateonionHops); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeldatastoreRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeldatastoreResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelexpiredinvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelexpiredinvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelinvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelinvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListdatastoreRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListdatastoreResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListdatastoreDatastore); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListinvoicesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListinvoicesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListinvoicesInvoices); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListinvoicesInvoicesPaidOutpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendonionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendonionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendonionFirstHop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListsendpaysRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListsendpaysResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListsendpaysPayments); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListtransactionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListtransactionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListtransactionsTransactions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListtransactionsTransactionsInputs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListtransactionsTransactionsOutputs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PayRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PayResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListnodesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListnodesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListnodesNodes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListnodesNodesAddresses); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitanyinvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitanyinvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitanyinvoicePaidOutpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitinvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitinvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitinvoicePaidOutpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitsendpayRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitsendpayResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NewaddrRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NewaddrResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithdrawRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithdrawResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KeysendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KeysendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundpsbtRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundpsbtResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundpsbtReservations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendpsbtRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendpsbtResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignpsbtRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignpsbtResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UtxopsbtRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UtxopsbtResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UtxopsbtReservations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxdiscardRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxdiscardResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxprepareRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxprepareResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxsendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxsendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannels); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannelsUpdates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannelsUpdatesLocal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannelsUpdatesRemote); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannelsFeerate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannelsInflight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannelsFunding); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannelsAlias); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpeerchannelsChannelsHtlcs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListclosedchannelsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListclosedchannelsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListclosedchannelsClosedchannels); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListclosedchannelsClosedchannelsAlias); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodepayRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodepayResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodepayFallbacks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodepayExtra); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeOfferPaths); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeOfferRecurrencePaywindow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeInvoicePathsPath); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeInvoiceFallbacks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeFallbacks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeExtra); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DecodeRestrictions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisconnectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisconnectResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeeratesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeeratesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeeratesPerkb); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeeratesPerkbEstimates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeeratesPerkw); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeeratesPerkwEstimates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeeratesOnchainFeeEstimates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchinvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchinvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchinvoiceChanges); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchinvoiceNextPeriod); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundchannelRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundchannelResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundchannelChannelType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetrouteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetrouteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetrouteRoute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListforwardsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListforwardsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListforwardsForwards); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListoffersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListoffersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListoffersOffers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpaysRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpaysResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListpaysPays); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListhtlcsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListhtlcsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListhtlcsHtlcs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfferRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfferResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendcustommsgRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendcustommsgResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetchannelRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetchannelResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetchannelChannels); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SigninvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SigninvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignmessageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignmessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitblockheightRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitblockheightResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WaitResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StopRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StopResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PreapprovekeysendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PreapprovekeysendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PreapproveinvoiceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PreapproveinvoiceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StaticbackupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StaticbackupResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BkprlistincomeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BkprlistincomeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_node_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BkprlistincomeIncomeEvents); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_node_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[27].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[29].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[32].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[33].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[35].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[37].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[38].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[39].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[40].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[42].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[43].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[44].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[47].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[48].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[49].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[51].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[52].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[53].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[54].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[57].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[58].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[60].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[61].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[62].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[63].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[65].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[67].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[73].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[74].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[75].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[77].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[78].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[79].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[80].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[81].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[83].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[84].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[85].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[86].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[87].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[88].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[89].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[91].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[92].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[93].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[94].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[96].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[100].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[101].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[105].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[109].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[111].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[112].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[113].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[114].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[115].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[116].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[117].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[118].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[119].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[120].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[122].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[123].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[124].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[125].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[126].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[129].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[131].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[133].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[134].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[137].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[140].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[141].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[142].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[143].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[144].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[145].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[146].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[147].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[148].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[150].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[151].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[153].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[156].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[158].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[159].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[161].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[162].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[164].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[165].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[168].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[169].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[170].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[174].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[176].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[181].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[184].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[187].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[189].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[193].OneofWrappers = []interface{}{} + file_node_proto_msgTypes[195].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_node_proto_rawDesc, + NumEnums: 44, + NumMessages: 196, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_node_proto_goTypes, + DependencyIndexes: file_node_proto_depIdxs, + EnumInfos: file_node_proto_enumTypes, + MessageInfos: file_node_proto_msgTypes, + }.Build() + File_node_proto = out.File + file_node_proto_rawDesc = nil + file_node_proto_goTypes = nil + file_node_proto_depIdxs = nil +} diff --git a/cln/rpc/node.proto b/cln/rpc/node.proto new file mode 100644 index 00000000..584c56d5 --- /dev/null +++ b/cln/rpc/node.proto @@ -0,0 +1,1999 @@ +syntax = "proto3"; +package cln; +option go_package = "github.com/breez/lspd/cln/rpc"; + +// This file was taken from cln v24.02.1 + +import "primitives.proto"; + +service Node { + rpc Getinfo(GetinfoRequest) returns (GetinfoResponse) {} + rpc ListPeers(ListpeersRequest) returns (ListpeersResponse) {} + rpc ListFunds(ListfundsRequest) returns (ListfundsResponse) {} + rpc SendPay(SendpayRequest) returns (SendpayResponse) {} + rpc ListChannels(ListchannelsRequest) returns (ListchannelsResponse) {} + rpc AddGossip(AddgossipRequest) returns (AddgossipResponse) {} + rpc AutoCleanInvoice(AutocleaninvoiceRequest) returns (AutocleaninvoiceResponse) {} + rpc CheckMessage(CheckmessageRequest) returns (CheckmessageResponse) {} + rpc Close(CloseRequest) returns (CloseResponse) {} + rpc ConnectPeer(ConnectRequest) returns (ConnectResponse) {} + rpc CreateInvoice(CreateinvoiceRequest) returns (CreateinvoiceResponse) {} + rpc Datastore(DatastoreRequest) returns (DatastoreResponse) {} + rpc DatastoreUsage(DatastoreusageRequest) returns (DatastoreusageResponse) {} + rpc CreateOnion(CreateonionRequest) returns (CreateonionResponse) {} + rpc DelDatastore(DeldatastoreRequest) returns (DeldatastoreResponse) {} + rpc DelExpiredInvoice(DelexpiredinvoiceRequest) returns (DelexpiredinvoiceResponse) {} + rpc DelInvoice(DelinvoiceRequest) returns (DelinvoiceResponse) {} + rpc Invoice(InvoiceRequest) returns (InvoiceResponse) {} + rpc ListDatastore(ListdatastoreRequest) returns (ListdatastoreResponse) {} + rpc ListInvoices(ListinvoicesRequest) returns (ListinvoicesResponse) {} + rpc SendOnion(SendonionRequest) returns (SendonionResponse) {} + rpc ListSendPays(ListsendpaysRequest) returns (ListsendpaysResponse) {} + rpc ListTransactions(ListtransactionsRequest) returns (ListtransactionsResponse) {} + rpc Pay(PayRequest) returns (PayResponse) {} + rpc ListNodes(ListnodesRequest) returns (ListnodesResponse) {} + rpc WaitAnyInvoice(WaitanyinvoiceRequest) returns (WaitanyinvoiceResponse) {} + rpc WaitInvoice(WaitinvoiceRequest) returns (WaitinvoiceResponse) {} + rpc WaitSendPay(WaitsendpayRequest) returns (WaitsendpayResponse) {} + rpc NewAddr(NewaddrRequest) returns (NewaddrResponse) {} + rpc Withdraw(WithdrawRequest) returns (WithdrawResponse) {} + rpc KeySend(KeysendRequest) returns (KeysendResponse) {} + rpc FundPsbt(FundpsbtRequest) returns (FundpsbtResponse) {} + rpc SendPsbt(SendpsbtRequest) returns (SendpsbtResponse) {} + rpc SignPsbt(SignpsbtRequest) returns (SignpsbtResponse) {} + rpc UtxoPsbt(UtxopsbtRequest) returns (UtxopsbtResponse) {} + rpc TxDiscard(TxdiscardRequest) returns (TxdiscardResponse) {} + rpc TxPrepare(TxprepareRequest) returns (TxprepareResponse) {} + rpc TxSend(TxsendRequest) returns (TxsendResponse) {} + rpc ListPeerChannels(ListpeerchannelsRequest) returns (ListpeerchannelsResponse) {} + rpc ListClosedChannels(ListclosedchannelsRequest) returns (ListclosedchannelsResponse) {} + rpc DecodePay(DecodepayRequest) returns (DecodepayResponse) {} + rpc Decode(DecodeRequest) returns (DecodeResponse) {} + rpc Disconnect(DisconnectRequest) returns (DisconnectResponse) {} + rpc Feerates(FeeratesRequest) returns (FeeratesResponse) {} + rpc FetchInvoice(FetchinvoiceRequest) returns (FetchinvoiceResponse) {} + rpc FundChannel(FundchannelRequest) returns (FundchannelResponse) {} + rpc GetRoute(GetrouteRequest) returns (GetrouteResponse) {} + rpc ListForwards(ListforwardsRequest) returns (ListforwardsResponse) {} + rpc ListOffers(ListoffersRequest) returns (ListoffersResponse) {} + rpc ListPays(ListpaysRequest) returns (ListpaysResponse) {} + rpc ListHtlcs(ListhtlcsRequest) returns (ListhtlcsResponse) {} + rpc Offer(OfferRequest) returns (OfferResponse) {} + rpc Ping(PingRequest) returns (PingResponse) {} + rpc SendCustomMsg(SendcustommsgRequest) returns (SendcustommsgResponse) {} + rpc SetChannel(SetchannelRequest) returns (SetchannelResponse) {} + rpc SignInvoice(SigninvoiceRequest) returns (SigninvoiceResponse) {} + rpc SignMessage(SignmessageRequest) returns (SignmessageResponse) {} + rpc WaitBlockHeight(WaitblockheightRequest) returns (WaitblockheightResponse) {} + rpc Wait(WaitRequest) returns (WaitResponse) {} + rpc Stop(StopRequest) returns (StopResponse) {} + rpc PreApproveKeysend(PreapprovekeysendRequest) returns (PreapprovekeysendResponse) {} + rpc PreApproveInvoice(PreapproveinvoiceRequest) returns (PreapproveinvoiceResponse) {} + rpc StaticBackup(StaticbackupRequest) returns (StaticbackupResponse) {} + rpc BkprListIncome(BkprlistincomeRequest) returns (BkprlistincomeResponse) {} +} + +message GetinfoRequest { +} + +message GetinfoResponse { + bytes id = 1; + optional string alias = 2; + bytes color = 3; + uint32 num_peers = 4; + uint32 num_pending_channels = 5; + uint32 num_active_channels = 6; + uint32 num_inactive_channels = 7; + string version = 8; + string lightning_dir = 9; + optional GetinfoOur_features our_features = 10; + uint32 blockheight = 11; + string network = 12; + Amount fees_collected_msat = 13; + repeated GetinfoAddress address = 14; + repeated GetinfoBinding binding = 15; + optional string warning_bitcoind_sync = 16; + optional string warning_lightningd_sync = 17; +} + +message GetinfoOur_features { + bytes init = 1; + bytes node = 2; + bytes channel = 3; + bytes invoice = 4; +} + +message GetinfoAddress { + // Getinfo.address[].type + enum GetinfoAddressType { + DNS = 0; + IPV4 = 1; + IPV6 = 2; + TORV2 = 3; + TORV3 = 4; + } + GetinfoAddressType item_type = 1; + uint32 port = 2; + optional string address = 3; +} + +message GetinfoBinding { + // Getinfo.binding[].type + enum GetinfoBindingType { + LOCAL_SOCKET = 0; + WEBSOCKET = 5; + IPV4 = 1; + IPV6 = 2; + TORV2 = 3; + TORV3 = 4; + } + GetinfoBindingType item_type = 1; + optional string address = 2; + optional uint32 port = 3; + optional string socket = 4; +} + +message ListpeersRequest { + optional bytes id = 1; + optional string level = 2; +} + +message ListpeersResponse { + repeated ListpeersPeers peers = 1; +} + +message ListpeersPeers { + bytes id = 1; + bool connected = 2; + optional uint32 num_channels = 8; + repeated ListpeersPeersLog log = 3; + repeated ListpeersPeersChannels channels = 4; + repeated string netaddr = 5; + optional string remote_addr = 7; + optional bytes features = 6; +} + +message ListpeersPeersLog { + // ListPeers.peers[].log[].type + enum ListpeersPeersLogType { + SKIPPED = 0; + BROKEN = 1; + UNUSUAL = 2; + INFO = 3; + DEBUG = 4; + IO_IN = 5; + IO_OUT = 6; + } + ListpeersPeersLogType item_type = 1; + optional uint32 num_skipped = 2; + optional string time = 3; + optional string source = 4; + optional string log = 5; + optional bytes node_id = 6; + optional bytes data = 7; +} + +message ListpeersPeersChannels { + // ListPeers.peers[].channels[].state + enum ListpeersPeersChannelsState { + OPENINGD = 0; + CHANNELD_AWAITING_LOCKIN = 1; + CHANNELD_NORMAL = 2; + CHANNELD_SHUTTING_DOWN = 3; + CLOSINGD_SIGEXCHANGE = 4; + CLOSINGD_COMPLETE = 5; + AWAITING_UNILATERAL = 6; + FUNDING_SPEND_SEEN = 7; + ONCHAIN = 8; + DUALOPEND_OPEN_INIT = 9; + DUALOPEND_AWAITING_LOCKIN = 10; + DUALOPEND_OPEN_COMMITTED = 11; + DUALOPEND_OPEN_COMMIT_READY = 12; + } + ListpeersPeersChannelsState state = 1; + optional bytes scratch_txid = 2; + optional ListpeersPeersChannelsFeerate feerate = 3; + optional string owner = 4; + optional string short_channel_id = 5; + optional bytes channel_id = 6; + optional bytes funding_txid = 7; + optional uint32 funding_outnum = 8; + optional string initial_feerate = 9; + optional string last_feerate = 10; + optional string next_feerate = 11; + optional uint32 next_fee_step = 12; + repeated ListpeersPeersChannelsInflight inflight = 13; + optional bytes close_to = 14; + optional bool private = 15; + ChannelSide opener = 16; + optional ChannelSide closer = 17; + repeated string features = 18; + optional ListpeersPeersChannelsFunding funding = 19; + optional Amount to_us_msat = 20; + optional Amount min_to_us_msat = 21; + optional Amount max_to_us_msat = 22; + optional Amount total_msat = 23; + optional Amount fee_base_msat = 24; + optional uint32 fee_proportional_millionths = 25; + optional Amount dust_limit_msat = 26; + optional Amount max_total_htlc_in_msat = 27; + optional Amount their_reserve_msat = 28; + optional Amount our_reserve_msat = 29; + optional Amount spendable_msat = 30; + optional Amount receivable_msat = 31; + optional Amount minimum_htlc_in_msat = 32; + optional Amount minimum_htlc_out_msat = 48; + optional Amount maximum_htlc_out_msat = 49; + optional uint32 their_to_self_delay = 33; + optional uint32 our_to_self_delay = 34; + optional uint32 max_accepted_htlcs = 35; + optional ListpeersPeersChannelsAlias alias = 50; + repeated string status = 37; + optional uint64 in_payments_offered = 38; + optional Amount in_offered_msat = 39; + optional uint64 in_payments_fulfilled = 40; + optional Amount in_fulfilled_msat = 41; + optional uint64 out_payments_offered = 42; + optional Amount out_offered_msat = 43; + optional uint64 out_payments_fulfilled = 44; + optional Amount out_fulfilled_msat = 45; + repeated ListpeersPeersChannelsHtlcs htlcs = 46; + optional string close_to_addr = 47; +} + +message ListpeersPeersChannelsFeerate { + uint32 perkw = 1; + uint32 perkb = 2; +} + +message ListpeersPeersChannelsInflight { + bytes funding_txid = 1; + uint32 funding_outnum = 2; + string feerate = 3; + Amount total_funding_msat = 4; + Amount our_funding_msat = 5; + optional sint64 splice_amount = 7; + bytes scratch_txid = 6; +} + +message ListpeersPeersChannelsFunding { + optional Amount pushed_msat = 3; + Amount local_funds_msat = 4; + Amount remote_funds_msat = 7; + optional Amount fee_paid_msat = 5; + optional Amount fee_rcvd_msat = 6; +} + +message ListpeersPeersChannelsAlias { + optional string local = 1; + optional string remote = 2; +} + +message ListpeersPeersChannelsHtlcs { + // ListPeers.peers[].channels[].htlcs[].direction + enum ListpeersPeersChannelsHtlcsDirection { + IN = 0; + OUT = 1; + } + ListpeersPeersChannelsHtlcsDirection direction = 1; + uint64 id = 2; + Amount amount_msat = 3; + uint32 expiry = 4; + bytes payment_hash = 5; + optional bool local_trimmed = 6; + optional string status = 7; + HtlcState state = 8; +} + +message ListfundsRequest { + optional bool spent = 1; +} + +message ListfundsResponse { + repeated ListfundsOutputs outputs = 1; + repeated ListfundsChannels channels = 2; +} + +message ListfundsOutputs { + // ListFunds.outputs[].status + enum ListfundsOutputsStatus { + UNCONFIRMED = 0; + CONFIRMED = 1; + SPENT = 2; + IMMATURE = 3; + } + bytes txid = 1; + uint32 output = 2; + Amount amount_msat = 3; + bytes scriptpubkey = 4; + optional string address = 5; + optional bytes redeemscript = 6; + ListfundsOutputsStatus status = 7; + bool reserved = 9; + optional uint32 blockheight = 8; +} + +message ListfundsChannels { + bytes peer_id = 1; + Amount our_amount_msat = 2; + Amount amount_msat = 3; + bytes funding_txid = 4; + uint32 funding_output = 5; + bool connected = 6; + ChannelState state = 7; + optional bytes channel_id = 9; + optional string short_channel_id = 8; +} + +message SendpayRequest { + repeated SendpayRoute route = 1; + bytes payment_hash = 2; + optional string label = 3; + optional Amount amount_msat = 10; + optional string bolt11 = 5; + optional bytes payment_secret = 6; + optional uint32 partid = 7; + optional bytes localinvreqid = 11; + optional uint64 groupid = 9; +} + +message SendpayResponse { + // SendPay.status + enum SendpayStatus { + PENDING = 0; + COMPLETE = 1; + } + optional uint64 created_index = 16; + optional uint64 updated_index = 17; + uint64 id = 1; + optional uint64 groupid = 2; + bytes payment_hash = 3; + SendpayStatus status = 4; + optional Amount amount_msat = 5; + optional bytes destination = 6; + uint64 created_at = 7; + optional uint64 completed_at = 15; + Amount amount_sent_msat = 8; + optional string label = 9; + optional uint64 partid = 10; + optional string bolt11 = 11; + optional string bolt12 = 12; + optional bytes payment_preimage = 13; + optional string message = 14; +} + +message SendpayRoute { + Amount amount_msat = 5; + bytes id = 2; + uint32 delay = 3; + string channel = 4; +} + +message ListchannelsRequest { + optional string short_channel_id = 1; + optional bytes source = 2; + optional bytes destination = 3; +} + +message ListchannelsResponse { + repeated ListchannelsChannels channels = 1; +} + +message ListchannelsChannels { + bytes source = 1; + bytes destination = 2; + string short_channel_id = 3; + uint32 direction = 16; + bool public = 4; + Amount amount_msat = 5; + uint32 message_flags = 6; + uint32 channel_flags = 7; + bool active = 8; + uint32 last_update = 9; + uint32 base_fee_millisatoshi = 10; + uint32 fee_per_millionth = 11; + uint32 delay = 12; + Amount htlc_minimum_msat = 13; + optional Amount htlc_maximum_msat = 14; + bytes features = 15; +} + +message AddgossipRequest { + bytes message = 1; +} + +message AddgossipResponse { +} + +message AutocleaninvoiceRequest { + optional uint64 expired_by = 1; + optional uint64 cycle_seconds = 2; +} + +message AutocleaninvoiceResponse { + bool enabled = 1; + optional uint64 expired_by = 2; + optional uint64 cycle_seconds = 3; +} + +message CheckmessageRequest { + string message = 1; + string zbase = 2; + optional bytes pubkey = 3; +} + +message CheckmessageResponse { + bool verified = 1; + bytes pubkey = 2; +} + +message CloseRequest { + string id = 1; + optional uint32 unilateraltimeout = 2; + optional string destination = 3; + optional string fee_negotiation_step = 4; + optional Outpoint wrong_funding = 5; + optional bool force_lease_closed = 6; + repeated Feerate feerange = 7; +} + +message CloseResponse { + // Close.type + enum CloseType { + MUTUAL = 0; + UNILATERAL = 1; + UNOPENED = 2; + } + CloseType item_type = 1; + optional bytes tx = 2; + optional bytes txid = 3; +} + +message ConnectRequest { + string id = 1; + optional string host = 2; + optional uint32 port = 3; +} + +message ConnectResponse { + // Connect.direction + enum ConnectDirection { + IN = 0; + OUT = 1; + } + bytes id = 1; + bytes features = 2; + ConnectDirection direction = 3; + ConnectAddress address = 4; +} + +message ConnectAddress { + // Connect.address.type + enum ConnectAddressType { + LOCAL_SOCKET = 0; + IPV4 = 1; + IPV6 = 2; + TORV2 = 3; + TORV3 = 4; + } + ConnectAddressType item_type = 1; + optional string socket = 2; + optional string address = 3; + optional uint32 port = 4; +} + +message CreateinvoiceRequest { + string invstring = 1; + string label = 2; + bytes preimage = 3; +} + +message CreateinvoiceResponse { + // CreateInvoice.status + enum CreateinvoiceStatus { + PAID = 0; + EXPIRED = 1; + UNPAID = 2; + } + string label = 1; + optional string bolt11 = 2; + optional string bolt12 = 3; + bytes payment_hash = 4; + optional Amount amount_msat = 5; + CreateinvoiceStatus status = 6; + string description = 7; + uint64 expires_at = 8; + optional uint64 created_index = 16; + optional uint64 pay_index = 9; + optional Amount amount_received_msat = 10; + optional uint64 paid_at = 11; + optional CreateinvoicePaid_outpoint paid_outpoint = 17; + optional bytes payment_preimage = 12; + optional bytes local_offer_id = 13; + optional string invreq_payer_note = 15; +} + +message CreateinvoicePaid_outpoint { + optional bytes txid = 1; + optional uint32 outnum = 2; +} + +message DatastoreRequest { + // Datastore.mode + enum DatastoreMode { + MUST_CREATE = 0; + MUST_REPLACE = 1; + CREATE_OR_REPLACE = 2; + MUST_APPEND = 3; + CREATE_OR_APPEND = 4; + } + repeated string key = 5; + optional string string = 6; + optional bytes hex = 2; + optional DatastoreMode mode = 3; + optional uint64 generation = 4; +} + +message DatastoreResponse { + repeated string key = 5; + optional uint64 generation = 2; + optional bytes hex = 3; + optional string string = 4; +} + +message DatastoreusageRequest { +} + +message DatastoreusageResponse { + optional DatastoreusageDatastoreusage datastoreusage = 1; +} + +message DatastoreusageDatastoreusage { + optional string key = 1; + optional uint64 total_bytes = 2; +} + +message CreateonionRequest { + repeated CreateonionHops hops = 1; + bytes assocdata = 2; + optional bytes session_key = 3; + optional uint32 onion_size = 4; +} + +message CreateonionResponse { + bytes onion = 1; + repeated bytes shared_secrets = 2; +} + +message CreateonionHops { + bytes pubkey = 1; + bytes payload = 2; +} + +message DeldatastoreRequest { + repeated string key = 3; + optional uint64 generation = 2; +} + +message DeldatastoreResponse { + repeated string key = 5; + optional uint64 generation = 2; + optional bytes hex = 3; + optional string string = 4; +} + +message DelexpiredinvoiceRequest { + optional uint64 maxexpirytime = 1; +} + +message DelexpiredinvoiceResponse { +} + +message DelinvoiceRequest { + // DelInvoice.status + enum DelinvoiceStatus { + PAID = 0; + EXPIRED = 1; + UNPAID = 2; + } + string label = 1; + DelinvoiceStatus status = 2; + optional bool desconly = 3; +} + +message DelinvoiceResponse { + // DelInvoice.status + enum DelinvoiceStatus { + PAID = 0; + EXPIRED = 1; + UNPAID = 2; + } + string label = 1; + optional string bolt11 = 2; + optional string bolt12 = 3; + optional Amount amount_msat = 4; + optional string description = 5; + bytes payment_hash = 6; + optional uint64 created_index = 12; + optional uint64 updated_index = 13; + DelinvoiceStatus status = 7; + uint64 expires_at = 8; + optional bytes local_offer_id = 9; + optional string invreq_payer_note = 11; +} + +message InvoiceRequest { + AmountOrAny amount_msat = 10; + string description = 2; + string label = 3; + optional uint64 expiry = 7; + repeated string fallbacks = 4; + optional bytes preimage = 5; + optional uint32 cltv = 6; + optional bool deschashonly = 9; +} + +message InvoiceResponse { + string bolt11 = 1; + bytes payment_hash = 2; + bytes payment_secret = 3; + uint64 expires_at = 4; + optional uint64 created_index = 10; + optional string warning_capacity = 5; + optional string warning_offline = 6; + optional string warning_deadends = 7; + optional string warning_private_unused = 8; + optional string warning_mpp = 9; +} + +message ListdatastoreRequest { + repeated string key = 2; +} + +message ListdatastoreResponse { + repeated ListdatastoreDatastore datastore = 1; +} + +message ListdatastoreDatastore { + repeated string key = 1; + optional uint64 generation = 2; + optional bytes hex = 3; + optional string string = 4; +} + +message ListinvoicesRequest { + // ListInvoices.index + enum ListinvoicesIndex { + CREATED = 0; + UPDATED = 1; + } + optional string label = 1; + optional string invstring = 2; + optional bytes payment_hash = 3; + optional string offer_id = 4; + optional ListinvoicesIndex index = 5; + optional uint64 start = 6; + optional uint32 limit = 7; +} + +message ListinvoicesResponse { + repeated ListinvoicesInvoices invoices = 1; +} + +message ListinvoicesInvoices { + // ListInvoices.invoices[].status + enum ListinvoicesInvoicesStatus { + UNPAID = 0; + PAID = 1; + EXPIRED = 2; + } + string label = 1; + optional string description = 2; + bytes payment_hash = 3; + ListinvoicesInvoicesStatus status = 4; + uint64 expires_at = 5; + optional Amount amount_msat = 6; + optional string bolt11 = 7; + optional string bolt12 = 8; + optional bytes local_offer_id = 9; + optional string invreq_payer_note = 15; + optional uint64 created_index = 16; + optional uint64 updated_index = 17; + optional uint64 pay_index = 11; + optional Amount amount_received_msat = 12; + optional uint64 paid_at = 13; + optional ListinvoicesInvoicesPaid_outpoint paid_outpoint = 18; + optional bytes payment_preimage = 14; +} + +message ListinvoicesInvoicesPaid_outpoint { + optional bytes txid = 1; + optional uint32 outnum = 2; +} + +message SendonionRequest { + bytes onion = 1; + SendonionFirst_hop first_hop = 2; + bytes payment_hash = 3; + optional string label = 4; + repeated bytes shared_secrets = 5; + optional uint32 partid = 6; + optional string bolt11 = 7; + optional Amount amount_msat = 12; + optional bytes destination = 9; + optional bytes localinvreqid = 13; + optional uint64 groupid = 11; +} + +message SendonionResponse { + // SendOnion.status + enum SendonionStatus { + PENDING = 0; + COMPLETE = 1; + } + optional uint64 created_index = 14; + uint64 id = 1; + bytes payment_hash = 2; + SendonionStatus status = 3; + optional Amount amount_msat = 4; + optional bytes destination = 5; + uint64 created_at = 6; + Amount amount_sent_msat = 7; + optional string label = 8; + optional string bolt11 = 9; + optional string bolt12 = 10; + optional uint64 partid = 13; + optional uint64 updated_index = 15; + optional bytes payment_preimage = 11; + optional string message = 12; +} + +message SendonionFirst_hop { + bytes id = 1; + Amount amount_msat = 2; + uint32 delay = 3; +} + +message ListsendpaysRequest { + // ListSendPays.status + enum ListsendpaysStatus { + PENDING = 0; + COMPLETE = 1; + FAILED = 2; + } + // ListSendPays.index + enum ListsendpaysIndex { + CREATED = 0; + UPDATED = 1; + } + optional string bolt11 = 1; + optional bytes payment_hash = 2; + optional ListsendpaysStatus status = 3; + optional ListsendpaysIndex index = 4; + optional uint64 start = 5; + optional uint32 limit = 6; +} + +message ListsendpaysResponse { + repeated ListsendpaysPayments payments = 1; +} + +message ListsendpaysPayments { + // ListSendPays.payments[].status + enum ListsendpaysPaymentsStatus { + PENDING = 0; + FAILED = 1; + COMPLETE = 2; + } + optional uint64 created_index = 16; + uint64 id = 1; + uint64 groupid = 2; + optional uint64 partid = 15; + bytes payment_hash = 3; + optional uint64 updated_index = 17; + ListsendpaysPaymentsStatus status = 4; + optional Amount amount_msat = 5; + optional bytes destination = 6; + uint64 created_at = 7; + Amount amount_sent_msat = 8; + optional string label = 9; + optional string bolt11 = 10; + optional string description = 14; + optional string bolt12 = 11; + optional bytes payment_preimage = 12; + optional bytes erroronion = 13; +} + +message ListtransactionsRequest { +} + +message ListtransactionsResponse { + repeated ListtransactionsTransactions transactions = 1; +} + +message ListtransactionsTransactions { + bytes hash = 1; + bytes rawtx = 2; + uint32 blockheight = 3; + uint32 txindex = 4; + uint32 locktime = 7; + uint32 version = 8; + repeated ListtransactionsTransactionsInputs inputs = 9; + repeated ListtransactionsTransactionsOutputs outputs = 10; +} + +message ListtransactionsTransactionsInputs { + bytes txid = 1; + uint32 index = 2; + uint32 sequence = 3; +} + +message ListtransactionsTransactionsOutputs { + uint32 index = 1; + Amount amount_msat = 6; + bytes scriptPubKey = 3; +} + +message PayRequest { + string bolt11 = 1; + optional Amount amount_msat = 13; + optional string label = 3; + optional double riskfactor = 8; + optional double maxfeepercent = 4; + optional uint32 retry_for = 5; + optional uint32 maxdelay = 6; + optional Amount exemptfee = 7; + optional bytes localinvreqid = 14; + repeated string exclude = 10; + optional Amount maxfee = 11; + optional string description = 12; +} + +message PayResponse { + // Pay.status + enum PayStatus { + COMPLETE = 0; + PENDING = 1; + FAILED = 2; + } + bytes payment_preimage = 1; + optional bytes destination = 2; + bytes payment_hash = 3; + double created_at = 4; + uint32 parts = 5; + Amount amount_msat = 6; + Amount amount_sent_msat = 7; + optional string warning_partial_completion = 8; + PayStatus status = 9; +} + +message ListnodesRequest { + optional bytes id = 1; +} + +message ListnodesResponse { + repeated ListnodesNodes nodes = 1; +} + +message ListnodesNodes { + bytes nodeid = 1; + optional uint32 last_timestamp = 2; + optional string alias = 3; + optional bytes color = 4; + optional bytes features = 5; + repeated ListnodesNodesAddresses addresses = 6; +} + +message ListnodesNodesAddresses { + // ListNodes.nodes[].addresses[].type + enum ListnodesNodesAddressesType { + DNS = 0; + IPV4 = 1; + IPV6 = 2; + TORV2 = 3; + TORV3 = 4; + } + ListnodesNodesAddressesType item_type = 1; + uint32 port = 2; + optional string address = 3; +} + +message WaitanyinvoiceRequest { + optional uint64 lastpay_index = 1; + optional uint64 timeout = 2; +} + +message WaitanyinvoiceResponse { + // WaitAnyInvoice.status + enum WaitanyinvoiceStatus { + PAID = 0; + EXPIRED = 1; + } + string label = 1; + string description = 2; + bytes payment_hash = 3; + WaitanyinvoiceStatus status = 4; + uint64 expires_at = 5; + optional Amount amount_msat = 6; + optional string bolt11 = 7; + optional string bolt12 = 8; + optional uint64 created_index = 13; + optional uint64 updated_index = 14; + optional uint64 pay_index = 9; + optional Amount amount_received_msat = 10; + optional uint64 paid_at = 11; + optional WaitanyinvoicePaid_outpoint paid_outpoint = 15; + optional bytes payment_preimage = 12; +} + +message WaitanyinvoicePaid_outpoint { + optional bytes txid = 1; + optional uint32 outnum = 2; +} + +message WaitinvoiceRequest { + string label = 1; +} + +message WaitinvoiceResponse { + // WaitInvoice.status + enum WaitinvoiceStatus { + PAID = 0; + EXPIRED = 1; + } + string label = 1; + string description = 2; + bytes payment_hash = 3; + WaitinvoiceStatus status = 4; + uint64 expires_at = 5; + optional Amount amount_msat = 6; + optional string bolt11 = 7; + optional string bolt12 = 8; + optional uint64 created_index = 13; + optional uint64 updated_index = 14; + optional uint64 pay_index = 9; + optional Amount amount_received_msat = 10; + optional uint64 paid_at = 11; + optional WaitinvoicePaid_outpoint paid_outpoint = 15; + optional bytes payment_preimage = 12; +} + +message WaitinvoicePaid_outpoint { + optional bytes txid = 1; + optional uint32 outnum = 2; +} + +message WaitsendpayRequest { + bytes payment_hash = 1; + optional uint32 timeout = 3; + optional uint64 partid = 2; + optional uint64 groupid = 4; +} + +message WaitsendpayResponse { + // WaitSendPay.status + enum WaitsendpayStatus { + COMPLETE = 0; + } + optional uint64 created_index = 15; + uint64 id = 1; + optional uint64 groupid = 2; + bytes payment_hash = 3; + WaitsendpayStatus status = 4; + optional Amount amount_msat = 5; + optional bytes destination = 6; + uint64 created_at = 7; + optional uint64 updated_index = 16; + optional double completed_at = 14; + Amount amount_sent_msat = 8; + optional string label = 9; + optional uint64 partid = 10; + optional string bolt11 = 11; + optional string bolt12 = 12; + optional bytes payment_preimage = 13; +} + +message NewaddrRequest { + // NewAddr.addresstype + enum NewaddrAddresstype { + BECH32 = 0; + P2TR = 3; + ALL = 2; + } + optional NewaddrAddresstype addresstype = 1; +} + +message NewaddrResponse { + optional string p2tr = 3; + optional string bech32 = 1; +} + +message WithdrawRequest { + string destination = 1; + optional AmountOrAll satoshi = 2; + optional Feerate feerate = 5; + optional uint32 minconf = 3; + repeated Outpoint utxos = 4; +} + +message WithdrawResponse { + bytes tx = 1; + bytes txid = 2; + string psbt = 3; +} + +message KeysendRequest { + bytes destination = 1; + Amount amount_msat = 10; + optional string label = 3; + optional double maxfeepercent = 4; + optional uint32 retry_for = 5; + optional uint32 maxdelay = 6; + optional Amount exemptfee = 7; + optional RoutehintList routehints = 8; + optional TlvStream extratlvs = 9; +} + +message KeysendResponse { + // KeySend.status + enum KeysendStatus { + COMPLETE = 0; + } + bytes payment_preimage = 1; + optional bytes destination = 2; + bytes payment_hash = 3; + double created_at = 4; + uint32 parts = 5; + Amount amount_msat = 6; + Amount amount_sent_msat = 7; + optional string warning_partial_completion = 8; + KeysendStatus status = 9; +} + +message FundpsbtRequest { + AmountOrAll satoshi = 1; + Feerate feerate = 2; + uint32 startweight = 3; + optional uint32 minconf = 4; + optional uint32 reserve = 5; + optional uint32 locktime = 6; + optional uint32 min_witness_weight = 7; + optional bool excess_as_change = 8; + optional bool nonwrapped = 9; + optional bool opening_anchor_channel = 10; +} + +message FundpsbtResponse { + string psbt = 1; + uint32 feerate_per_kw = 2; + uint32 estimated_final_weight = 3; + Amount excess_msat = 4; + optional uint32 change_outnum = 5; + repeated FundpsbtReservations reservations = 6; +} + +message FundpsbtReservations { + bytes txid = 1; + uint32 vout = 2; + bool was_reserved = 3; + bool reserved = 4; + uint32 reserved_to_block = 5; +} + +message SendpsbtRequest { + string psbt = 1; + optional bool reserve = 2; +} + +message SendpsbtResponse { + bytes tx = 1; + bytes txid = 2; +} + +message SignpsbtRequest { + string psbt = 1; + repeated uint32 signonly = 2; +} + +message SignpsbtResponse { + string signed_psbt = 1; +} + +message UtxopsbtRequest { + Amount satoshi = 1; + Feerate feerate = 2; + uint32 startweight = 3; + repeated Outpoint utxos = 4; + optional uint32 reserve = 5; + optional bool reservedok = 8; + optional uint32 locktime = 6; + optional uint32 min_witness_weight = 7; + optional bool excess_as_change = 9; + optional bool opening_anchor_channel = 10; +} + +message UtxopsbtResponse { + string psbt = 1; + uint32 feerate_per_kw = 2; + uint32 estimated_final_weight = 3; + Amount excess_msat = 4; + optional uint32 change_outnum = 5; + repeated UtxopsbtReservations reservations = 6; +} + +message UtxopsbtReservations { + bytes txid = 1; + uint32 vout = 2; + bool was_reserved = 3; + bool reserved = 4; + uint32 reserved_to_block = 5; +} + +message TxdiscardRequest { + bytes txid = 1; +} + +message TxdiscardResponse { + bytes unsigned_tx = 1; + bytes txid = 2; +} + +message TxprepareRequest { + repeated OutputDesc outputs = 5; + optional Feerate feerate = 2; + optional uint32 minconf = 3; + repeated Outpoint utxos = 4; +} + +message TxprepareResponse { + string psbt = 1; + bytes unsigned_tx = 2; + bytes txid = 3; +} + +message TxsendRequest { + bytes txid = 1; +} + +message TxsendResponse { + string psbt = 1; + bytes tx = 2; + bytes txid = 3; +} + +message ListpeerchannelsRequest { + optional bytes id = 1; +} + +message ListpeerchannelsResponse { + repeated ListpeerchannelsChannels channels = 1; +} + +message ListpeerchannelsChannels { + // ListPeerChannels.channels[].state + enum ListpeerchannelsChannelsState { + OPENINGD = 0; + CHANNELD_AWAITING_LOCKIN = 1; + CHANNELD_NORMAL = 2; + CHANNELD_SHUTTING_DOWN = 3; + CLOSINGD_SIGEXCHANGE = 4; + CLOSINGD_COMPLETE = 5; + AWAITING_UNILATERAL = 6; + FUNDING_SPEND_SEEN = 7; + ONCHAIN = 8; + DUALOPEND_OPEN_INIT = 9; + DUALOPEND_AWAITING_LOCKIN = 10; + CHANNELD_AWAITING_SPLICE = 11; + DUALOPEND_OPEN_COMMITTED = 12; + DUALOPEND_OPEN_COMMIT_READY = 13; + } + optional bytes peer_id = 1; + optional bool peer_connected = 2; + optional ListpeerchannelsChannelsState state = 3; + optional bytes scratch_txid = 4; + optional ListpeerchannelsChannelsUpdates updates = 55; + optional bool ignore_fee_limits = 54; + optional bool lost_state = 57; + optional ListpeerchannelsChannelsFeerate feerate = 6; + optional string owner = 7; + optional string short_channel_id = 8; + optional bytes channel_id = 9; + optional bytes funding_txid = 10; + optional uint32 funding_outnum = 11; + optional string initial_feerate = 12; + optional string last_feerate = 13; + optional string next_feerate = 14; + optional uint32 next_fee_step = 15; + repeated ListpeerchannelsChannelsInflight inflight = 16; + optional bytes close_to = 17; + optional bool private = 18; + optional ChannelSide opener = 19; + optional ChannelSide closer = 20; + optional ListpeerchannelsChannelsFunding funding = 22; + optional Amount to_us_msat = 23; + optional Amount min_to_us_msat = 24; + optional Amount max_to_us_msat = 25; + optional Amount total_msat = 26; + optional Amount fee_base_msat = 27; + optional uint32 fee_proportional_millionths = 28; + optional Amount dust_limit_msat = 29; + optional Amount max_total_htlc_in_msat = 30; + optional Amount their_reserve_msat = 31; + optional Amount our_reserve_msat = 32; + optional Amount spendable_msat = 33; + optional Amount receivable_msat = 34; + optional Amount minimum_htlc_in_msat = 35; + optional Amount minimum_htlc_out_msat = 36; + optional Amount maximum_htlc_out_msat = 37; + optional uint32 their_to_self_delay = 38; + optional uint32 our_to_self_delay = 39; + optional uint32 max_accepted_htlcs = 40; + optional ListpeerchannelsChannelsAlias alias = 41; + repeated string status = 43; + optional uint64 in_payments_offered = 44; + optional Amount in_offered_msat = 45; + optional uint64 in_payments_fulfilled = 46; + optional Amount in_fulfilled_msat = 47; + optional uint64 out_payments_offered = 48; + optional Amount out_offered_msat = 49; + optional uint64 out_payments_fulfilled = 50; + optional Amount out_fulfilled_msat = 51; + optional uint64 last_stable_connection = 56; + repeated ListpeerchannelsChannelsHtlcs htlcs = 52; + optional string close_to_addr = 53; +} + +message ListpeerchannelsChannelsUpdates { + optional ListpeerchannelsChannelsUpdatesLocal local = 1; + optional ListpeerchannelsChannelsUpdatesRemote remote = 2; +} + +message ListpeerchannelsChannelsUpdatesLocal { + optional Amount htlc_minimum_msat = 1; + optional Amount htlc_maximum_msat = 2; + optional uint32 cltv_expiry_delta = 3; + optional Amount fee_base_msat = 4; + optional uint32 fee_proportional_millionths = 5; +} + +message ListpeerchannelsChannelsUpdatesRemote { + optional Amount htlc_minimum_msat = 1; + optional Amount htlc_maximum_msat = 2; + optional uint32 cltv_expiry_delta = 3; + optional Amount fee_base_msat = 4; + optional uint32 fee_proportional_millionths = 5; +} + +message ListpeerchannelsChannelsFeerate { + optional uint32 perkw = 1; + optional uint32 perkb = 2; +} + +message ListpeerchannelsChannelsInflight { + optional bytes funding_txid = 1; + optional uint32 funding_outnum = 2; + optional string feerate = 3; + optional Amount total_funding_msat = 4; + optional sint64 splice_amount = 7; + optional Amount our_funding_msat = 5; + optional bytes scratch_txid = 6; +} + +message ListpeerchannelsChannelsFunding { + optional Amount pushed_msat = 1; + optional Amount local_funds_msat = 2; + optional Amount remote_funds_msat = 3; + optional Amount fee_paid_msat = 4; + optional Amount fee_rcvd_msat = 5; +} + +message ListpeerchannelsChannelsAlias { + optional string local = 1; + optional string remote = 2; +} + +message ListpeerchannelsChannelsHtlcs { + // ListPeerChannels.channels[].htlcs[].direction + enum ListpeerchannelsChannelsHtlcsDirection { + IN = 0; + OUT = 1; + } + optional ListpeerchannelsChannelsHtlcsDirection direction = 1; + optional uint64 id = 2; + optional Amount amount_msat = 3; + optional uint32 expiry = 4; + optional bytes payment_hash = 5; + optional bool local_trimmed = 6; + optional string status = 7; + optional HtlcState state = 8; +} + +message ListclosedchannelsRequest { + optional bytes id = 1; +} + +message ListclosedchannelsResponse { + repeated ListclosedchannelsClosedchannels closedchannels = 1; +} + +message ListclosedchannelsClosedchannels { + // ListClosedChannels.closedchannels[].close_cause + enum ListclosedchannelsClosedchannelsClose_cause { + UNKNOWN = 0; + LOCAL = 1; + USER = 2; + REMOTE = 3; + PROTOCOL = 4; + ONCHAIN = 5; + } + optional bytes peer_id = 1; + bytes channel_id = 2; + optional string short_channel_id = 3; + optional ListclosedchannelsClosedchannelsAlias alias = 4; + ChannelSide opener = 5; + optional ChannelSide closer = 6; + bool private = 7; + uint64 total_local_commitments = 9; + uint64 total_remote_commitments = 10; + uint64 total_htlcs_sent = 11; + bytes funding_txid = 12; + uint32 funding_outnum = 13; + bool leased = 14; + optional Amount funding_fee_paid_msat = 15; + optional Amount funding_fee_rcvd_msat = 16; + optional Amount funding_pushed_msat = 17; + Amount total_msat = 18; + Amount final_to_us_msat = 19; + Amount min_to_us_msat = 20; + Amount max_to_us_msat = 21; + optional bytes last_commitment_txid = 22; + optional Amount last_commitment_fee_msat = 23; + ListclosedchannelsClosedchannelsClose_cause close_cause = 24; + optional uint64 last_stable_connection = 25; +} + +message ListclosedchannelsClosedchannelsAlias { + optional string local = 1; + optional string remote = 2; +} + +message DecodepayRequest { + string bolt11 = 1; + optional string description = 2; +} + +message DecodepayResponse { + string currency = 1; + uint64 created_at = 2; + uint64 expiry = 3; + bytes payee = 4; + optional Amount amount_msat = 5; + bytes payment_hash = 6; + string signature = 7; + optional string description = 8; + optional bytes description_hash = 9; + uint32 min_final_cltv_expiry = 10; + optional bytes payment_secret = 11; + optional bytes features = 12; + optional bytes payment_metadata = 13; + repeated DecodepayFallbacks fallbacks = 14; + repeated DecodepayExtra extra = 16; +} + +message DecodepayFallbacks { + // DecodePay.fallbacks[].type + enum DecodepayFallbacksType { + P2PKH = 0; + P2SH = 1; + P2WPKH = 2; + P2WSH = 3; + P2TR = 4; + } + DecodepayFallbacksType item_type = 1; + optional string addr = 2; + bytes hex = 3; +} + +message DecodepayExtra { + string tag = 1; + string data = 2; +} + +message DecodeRequest { + string string = 1; +} + +message DecodeResponse { + // Decode.type + enum DecodeType { + BOLT12_OFFER = 0; + BOLT12_INVOICE = 1; + BOLT12_INVOICE_REQUEST = 2; + BOLT11_INVOICE = 3; + RUNE = 4; + EMERGENCY_RECOVER = 5; + } + DecodeType item_type = 1; + bool valid = 2; + optional bytes offer_id = 3; + repeated bytes offer_chains = 4; + optional bytes offer_metadata = 5; + optional string offer_currency = 6; + optional string warning_unknown_offer_currency = 7; + optional uint32 currency_minor_unit = 8; + optional uint64 offer_amount = 9; + optional Amount offer_amount_msat = 10; + optional string offer_description = 11; + optional string offer_issuer = 12; + optional bytes offer_features = 13; + optional uint64 offer_absolute_expiry = 14; + optional uint64 offer_quantity_max = 15; + repeated DecodeOffer_paths offer_paths = 16; + optional bytes offer_node_id = 17; + optional string warning_missing_offer_node_id = 20; + optional string warning_invalid_offer_description = 21; + optional string warning_missing_offer_description = 22; + optional string warning_invalid_offer_currency = 23; + optional string warning_invalid_offer_issuer = 24; + optional bytes invreq_metadata = 25; + optional bytes invreq_payer_id = 26; + optional bytes invreq_chain = 27; + optional Amount invreq_amount_msat = 28; + optional bytes invreq_features = 29; + optional uint64 invreq_quantity = 30; + optional string invreq_payer_note = 31; + optional uint32 invreq_recurrence_counter = 32; + optional uint32 invreq_recurrence_start = 33; + optional string warning_missing_invreq_metadata = 35; + optional string warning_missing_invreq_payer_id = 36; + optional string warning_invalid_invreq_payer_note = 37; + optional string warning_missing_invoice_request_signature = 38; + optional string warning_invalid_invoice_request_signature = 39; + optional uint64 invoice_created_at = 41; + optional uint32 invoice_relative_expiry = 42; + optional bytes invoice_payment_hash = 43; + optional Amount invoice_amount_msat = 44; + repeated DecodeInvoice_fallbacks invoice_fallbacks = 45; + optional bytes invoice_features = 46; + optional bytes invoice_node_id = 47; + optional uint64 invoice_recurrence_basetime = 48; + optional string warning_missing_invoice_paths = 50; + optional string warning_missing_invoice_blindedpay = 51; + optional string warning_missing_invoice_created_at = 52; + optional string warning_missing_invoice_payment_hash = 53; + optional string warning_missing_invoice_amount = 54; + optional string warning_missing_invoice_recurrence_basetime = 55; + optional string warning_missing_invoice_node_id = 56; + optional string warning_missing_invoice_signature = 57; + optional string warning_invalid_invoice_signature = 58; + repeated DecodeFallbacks fallbacks = 59; + optional uint64 created_at = 60; + optional uint64 expiry = 61; + optional bytes payee = 62; + optional bytes payment_hash = 63; + optional bytes description_hash = 64; + optional uint32 min_final_cltv_expiry = 65; + optional bytes payment_secret = 66; + optional bytes payment_metadata = 67; + repeated DecodeExtra extra = 69; + optional string unique_id = 70; + optional string version = 71; + optional string string = 72; + repeated DecodeRestrictions restrictions = 73; + optional string warning_rune_invalid_utf8 = 74; + optional bytes hex = 75; + optional bytes decrypted = 76; +} + +message DecodeOffer_paths { + bytes first_node_id = 1; + bytes blinding = 2; +} + +message DecodeOffer_recurrencePaywindow { + uint32 seconds_before = 1; + uint32 seconds_after = 2; + optional bool proportional_amount = 3; +} + +message DecodeInvoice_pathsPath { + bytes blinded_node_id = 1; + bytes encrypted_recipient_data = 2; +} + +message DecodeInvoice_fallbacks { + uint32 version = 1; + bytes hex = 2; + optional string address = 3; +} + +message DecodeFallbacks { + optional string warning_invoice_fallbacks_version_invalid = 1; +} + +message DecodeExtra { + string tag = 1; + string data = 2; +} + +message DecodeRestrictions { + repeated string alternatives = 1; + string summary = 2; +} + +message DisconnectRequest { + bytes id = 1; + optional bool force = 2; +} + +message DisconnectResponse { +} + +message FeeratesRequest { + // Feerates.style + enum FeeratesStyle { + PERKB = 0; + PERKW = 1; + } + FeeratesStyle style = 1; +} + +message FeeratesResponse { + optional string warning_missing_feerates = 1; + optional FeeratesPerkb perkb = 2; + optional FeeratesPerkw perkw = 3; + optional FeeratesOnchain_fee_estimates onchain_fee_estimates = 4; +} + +message FeeratesPerkb { + uint32 min_acceptable = 1; + uint32 max_acceptable = 2; + optional uint32 floor = 10; + repeated FeeratesPerkbEstimates estimates = 9; + optional uint32 opening = 3; + optional uint32 mutual_close = 4; + optional uint32 unilateral_close = 5; + optional uint32 unilateral_anchor_close = 11; + optional uint32 delayed_to_us = 6; + optional uint32 htlc_resolution = 7; + optional uint32 penalty = 8; +} + +message FeeratesPerkbEstimates { + optional uint32 blockcount = 1; + optional uint32 feerate = 2; + optional uint32 smoothed_feerate = 3; +} + +message FeeratesPerkw { + uint32 min_acceptable = 1; + uint32 max_acceptable = 2; + optional uint32 floor = 10; + repeated FeeratesPerkwEstimates estimates = 9; + optional uint32 opening = 3; + optional uint32 mutual_close = 4; + optional uint32 unilateral_close = 5; + optional uint32 unilateral_anchor_close = 11; + optional uint32 delayed_to_us = 6; + optional uint32 htlc_resolution = 7; + optional uint32 penalty = 8; +} + +message FeeratesPerkwEstimates { + optional uint32 blockcount = 1; + optional uint32 feerate = 2; + optional uint32 smoothed_feerate = 3; +} + +message FeeratesOnchain_fee_estimates { + uint64 opening_channel_satoshis = 1; + uint64 mutual_close_satoshis = 2; + uint64 unilateral_close_satoshis = 3; + optional uint64 unilateral_close_nonanchor_satoshis = 6; + uint64 htlc_timeout_satoshis = 4; + uint64 htlc_success_satoshis = 5; +} + +message FetchinvoiceRequest { + string offer = 1; + optional Amount amount_msat = 2; + optional uint64 quantity = 3; + optional uint64 recurrence_counter = 4; + optional double recurrence_start = 5; + optional string recurrence_label = 6; + optional double timeout = 7; + optional string payer_note = 8; +} + +message FetchinvoiceResponse { + string invoice = 1; + FetchinvoiceChanges changes = 2; + optional FetchinvoiceNext_period next_period = 3; +} + +message FetchinvoiceChanges { + optional string description_appended = 1; + optional string description = 2; + optional string vendor_removed = 3; + optional string vendor = 4; + optional Amount amount_msat = 5; +} + +message FetchinvoiceNext_period { + uint64 counter = 1; + uint64 starttime = 2; + uint64 endtime = 3; + uint64 paywindow_start = 4; + uint64 paywindow_end = 5; +} + +message FundchannelRequest { + bytes id = 9; + AmountOrAll amount = 1; + optional Feerate feerate = 2; + optional bool announce = 3; + optional uint32 minconf = 10; + optional Amount push_msat = 5; + optional string close_to = 6; + optional Amount request_amt = 7; + optional string compact_lease = 8; + repeated Outpoint utxos = 11; + optional uint32 mindepth = 12; + optional Amount reserve = 13; + repeated uint32 channel_type = 14; +} + +message FundchannelResponse { + bytes tx = 1; + bytes txid = 2; + uint32 outnum = 3; + bytes channel_id = 4; + optional FundchannelChannel_type channel_type = 7; + optional bytes close_to = 5; + optional uint32 mindepth = 6; +} + +message FundchannelChannel_type { + repeated uint32 bits = 1; + repeated ChannelTypeName names = 2; +} + +message GetrouteRequest { + bytes id = 1; + Amount amount_msat = 9; + uint64 riskfactor = 3; + optional uint32 cltv = 4; + optional bytes fromid = 5; + optional uint32 fuzzpercent = 6; + repeated string exclude = 7; + optional uint32 maxhops = 8; +} + +message GetrouteResponse { + repeated GetrouteRoute route = 1; +} + +message GetrouteRoute { + // GetRoute.route[].style + enum GetrouteRouteStyle { + TLV = 0; + } + bytes id = 1; + string channel = 2; + uint32 direction = 3; + Amount amount_msat = 4; + uint32 delay = 5; + GetrouteRouteStyle style = 6; +} + +message ListforwardsRequest { + // ListForwards.status + enum ListforwardsStatus { + OFFERED = 0; + SETTLED = 1; + LOCAL_FAILED = 2; + FAILED = 3; + } + // ListForwards.index + enum ListforwardsIndex { + CREATED = 0; + UPDATED = 1; + } + optional ListforwardsStatus status = 1; + optional string in_channel = 2; + optional string out_channel = 3; + optional ListforwardsIndex index = 4; + optional uint64 start = 5; + optional uint32 limit = 6; +} + +message ListforwardsResponse { + repeated ListforwardsForwards forwards = 1; +} + +message ListforwardsForwards { + // ListForwards.forwards[].status + enum ListforwardsForwardsStatus { + OFFERED = 0; + SETTLED = 1; + LOCAL_FAILED = 2; + FAILED = 3; + } + // ListForwards.forwards[].style + enum ListforwardsForwardsStyle { + LEGACY = 0; + TLV = 1; + } + optional uint64 created_index = 12; + string in_channel = 1; + optional uint64 in_htlc_id = 10; + Amount in_msat = 2; + ListforwardsForwardsStatus status = 3; + double received_time = 4; + optional string out_channel = 5; + optional uint64 out_htlc_id = 11; + optional uint64 updated_index = 13; + optional ListforwardsForwardsStyle style = 9; + optional Amount fee_msat = 7; + optional Amount out_msat = 8; +} + +message ListoffersRequest { + optional bytes offer_id = 1; + optional bool active_only = 2; +} + +message ListoffersResponse { + repeated ListoffersOffers offers = 1; +} + +message ListoffersOffers { + bytes offer_id = 1; + bool active = 2; + bool single_use = 3; + string bolt12 = 4; + bool used = 5; + optional string label = 6; +} + +message ListpaysRequest { + // ListPays.status + enum ListpaysStatus { + PENDING = 0; + COMPLETE = 1; + FAILED = 2; + } + optional string bolt11 = 1; + optional bytes payment_hash = 2; + optional ListpaysStatus status = 3; +} + +message ListpaysResponse { + repeated ListpaysPays pays = 1; +} + +message ListpaysPays { + // ListPays.pays[].status + enum ListpaysPaysStatus { + PENDING = 0; + FAILED = 1; + COMPLETE = 2; + } + bytes payment_hash = 1; + ListpaysPaysStatus status = 2; + optional bytes destination = 3; + uint64 created_at = 4; + optional uint64 completed_at = 12; + optional string label = 5; + optional string bolt11 = 6; + optional string description = 11; + optional string bolt12 = 7; + optional Amount amount_msat = 8; + optional Amount amount_sent_msat = 9; + optional bytes preimage = 13; + optional uint64 number_of_parts = 14; + optional bytes erroronion = 10; +} + +message ListhtlcsRequest { + optional string id = 1; +} + +message ListhtlcsResponse { + repeated ListhtlcsHtlcs htlcs = 1; +} + +message ListhtlcsHtlcs { + // ListHtlcs.htlcs[].direction + enum ListhtlcsHtlcsDirection { + OUT = 0; + IN = 1; + } + string short_channel_id = 1; + uint64 id = 2; + uint32 expiry = 3; + Amount amount_msat = 4; + ListhtlcsHtlcsDirection direction = 5; + bytes payment_hash = 6; + HtlcState state = 7; +} + +message OfferRequest { + string amount = 1; + string description = 2; + optional string issuer = 3; + optional string label = 4; + optional uint64 quantity_max = 5; + optional uint64 absolute_expiry = 6; + optional string recurrence = 7; + optional string recurrence_base = 8; + optional string recurrence_paywindow = 9; + optional uint64 recurrence_limit = 10; + optional bool single_use = 11; +} + +message OfferResponse { + bytes offer_id = 1; + bool active = 2; + bool single_use = 3; + string bolt12 = 4; + bool used = 5; + bool created = 6; + optional string label = 7; +} + +message PingRequest { + bytes id = 1; + optional uint32 len = 2; + optional uint32 pongbytes = 3; +} + +message PingResponse { + uint32 totlen = 1; +} + +message SendcustommsgRequest { + bytes node_id = 1; + bytes msg = 2; +} + +message SendcustommsgResponse { + string status = 1; +} + +message SetchannelRequest { + string id = 1; + optional Amount feebase = 2; + optional uint32 feeppm = 3; + optional Amount htlcmin = 4; + optional Amount htlcmax = 5; + optional uint32 enforcedelay = 6; + optional bool ignorefeelimits = 7; +} + +message SetchannelResponse { + repeated SetchannelChannels channels = 1; +} + +message SetchannelChannels { + bytes peer_id = 1; + bytes channel_id = 2; + optional string short_channel_id = 3; + Amount fee_base_msat = 4; + uint32 fee_proportional_millionths = 5; + optional bool ignore_fee_limits = 10; + Amount minimum_htlc_out_msat = 6; + optional string warning_htlcmin_too_low = 7; + Amount maximum_htlc_out_msat = 8; + optional string warning_htlcmax_too_high = 9; +} + +message SigninvoiceRequest { + string invstring = 1; +} + +message SigninvoiceResponse { + string bolt11 = 1; +} + +message SignmessageRequest { + string message = 1; +} + +message SignmessageResponse { + bytes signature = 1; + bytes recid = 2; + string zbase = 3; +} + +message WaitblockheightRequest { + uint32 blockheight = 1; + optional uint32 timeout = 2; +} + +message WaitblockheightResponse { + uint32 blockheight = 1; +} + +message WaitRequest { + // Wait.subsystem + enum WaitSubsystem { + INVOICES = 0; + FORWARDS = 1; + SENDPAYS = 2; + } + // Wait.indexname + enum WaitIndexname { + CREATED = 0; + UPDATED = 1; + DELETED = 2; + } + WaitSubsystem subsystem = 1; + WaitIndexname indexname = 2; + uint64 nextvalue = 3; +} + +message WaitResponse { + // Wait.subsystem + enum WaitSubsystem { + INVOICES = 0; + FORWARDS = 1; + SENDPAYS = 2; + } + WaitSubsystem subsystem = 1; + optional uint64 created = 2; + optional uint64 updated = 3; + optional uint64 deleted = 4; +} + +message StopRequest { +} + +message StopResponse { +} + +message PreapprovekeysendRequest { + optional bytes destination = 1; + optional bytes payment_hash = 2; + optional Amount amount_msat = 3; +} + +message PreapprovekeysendResponse { +} + +message PreapproveinvoiceRequest { + optional string bolt11 = 1; +} + +message PreapproveinvoiceResponse { +} + +message StaticbackupRequest { +} + +message StaticbackupResponse { + repeated bytes scb = 1; +} + +message BkprlistincomeRequest { + optional bool consolidate_fees = 1; + optional uint32 start_time = 2; + optional uint32 end_time = 3; +} + +message BkprlistincomeResponse { + repeated BkprlistincomeIncome_events income_events = 1; +} + +message BkprlistincomeIncome_events { + string account = 1; + string tag = 2; + Amount credit_msat = 3; + Amount debit_msat = 4; + string currency = 5; + uint32 timestamp = 6; + optional string description = 7; + optional string outpoint = 8; + optional bytes txid = 9; + optional bytes payment_id = 10; +} diff --git a/cln/rpc/node_grpc.pb.go b/cln/rpc/node_grpc.pb.go new file mode 100644 index 00000000..80ebb252 --- /dev/null +++ b/cln/rpc/node_grpc.pb.go @@ -0,0 +1,2373 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v4.25.3 +// source: node.proto + +package rpc + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// NodeClient is the client API for Node service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type NodeClient interface { + Getinfo(ctx context.Context, in *GetinfoRequest, opts ...grpc.CallOption) (*GetinfoResponse, error) + ListPeers(ctx context.Context, in *ListpeersRequest, opts ...grpc.CallOption) (*ListpeersResponse, error) + ListFunds(ctx context.Context, in *ListfundsRequest, opts ...grpc.CallOption) (*ListfundsResponse, error) + SendPay(ctx context.Context, in *SendpayRequest, opts ...grpc.CallOption) (*SendpayResponse, error) + ListChannels(ctx context.Context, in *ListchannelsRequest, opts ...grpc.CallOption) (*ListchannelsResponse, error) + AddGossip(ctx context.Context, in *AddgossipRequest, opts ...grpc.CallOption) (*AddgossipResponse, error) + AutoCleanInvoice(ctx context.Context, in *AutocleaninvoiceRequest, opts ...grpc.CallOption) (*AutocleaninvoiceResponse, error) + CheckMessage(ctx context.Context, in *CheckmessageRequest, opts ...grpc.CallOption) (*CheckmessageResponse, error) + Close(ctx context.Context, in *CloseRequest, opts ...grpc.CallOption) (*CloseResponse, error) + ConnectPeer(ctx context.Context, in *ConnectRequest, opts ...grpc.CallOption) (*ConnectResponse, error) + CreateInvoice(ctx context.Context, in *CreateinvoiceRequest, opts ...grpc.CallOption) (*CreateinvoiceResponse, error) + Datastore(ctx context.Context, in *DatastoreRequest, opts ...grpc.CallOption) (*DatastoreResponse, error) + DatastoreUsage(ctx context.Context, in *DatastoreusageRequest, opts ...grpc.CallOption) (*DatastoreusageResponse, error) + CreateOnion(ctx context.Context, in *CreateonionRequest, opts ...grpc.CallOption) (*CreateonionResponse, error) + DelDatastore(ctx context.Context, in *DeldatastoreRequest, opts ...grpc.CallOption) (*DeldatastoreResponse, error) + DelExpiredInvoice(ctx context.Context, in *DelexpiredinvoiceRequest, opts ...grpc.CallOption) (*DelexpiredinvoiceResponse, error) + DelInvoice(ctx context.Context, in *DelinvoiceRequest, opts ...grpc.CallOption) (*DelinvoiceResponse, error) + Invoice(ctx context.Context, in *InvoiceRequest, opts ...grpc.CallOption) (*InvoiceResponse, error) + ListDatastore(ctx context.Context, in *ListdatastoreRequest, opts ...grpc.CallOption) (*ListdatastoreResponse, error) + ListInvoices(ctx context.Context, in *ListinvoicesRequest, opts ...grpc.CallOption) (*ListinvoicesResponse, error) + SendOnion(ctx context.Context, in *SendonionRequest, opts ...grpc.CallOption) (*SendonionResponse, error) + ListSendPays(ctx context.Context, in *ListsendpaysRequest, opts ...grpc.CallOption) (*ListsendpaysResponse, error) + ListTransactions(ctx context.Context, in *ListtransactionsRequest, opts ...grpc.CallOption) (*ListtransactionsResponse, error) + Pay(ctx context.Context, in *PayRequest, opts ...grpc.CallOption) (*PayResponse, error) + ListNodes(ctx context.Context, in *ListnodesRequest, opts ...grpc.CallOption) (*ListnodesResponse, error) + WaitAnyInvoice(ctx context.Context, in *WaitanyinvoiceRequest, opts ...grpc.CallOption) (*WaitanyinvoiceResponse, error) + WaitInvoice(ctx context.Context, in *WaitinvoiceRequest, opts ...grpc.CallOption) (*WaitinvoiceResponse, error) + WaitSendPay(ctx context.Context, in *WaitsendpayRequest, opts ...grpc.CallOption) (*WaitsendpayResponse, error) + NewAddr(ctx context.Context, in *NewaddrRequest, opts ...grpc.CallOption) (*NewaddrResponse, error) + Withdraw(ctx context.Context, in *WithdrawRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) + KeySend(ctx context.Context, in *KeysendRequest, opts ...grpc.CallOption) (*KeysendResponse, error) + FundPsbt(ctx context.Context, in *FundpsbtRequest, opts ...grpc.CallOption) (*FundpsbtResponse, error) + SendPsbt(ctx context.Context, in *SendpsbtRequest, opts ...grpc.CallOption) (*SendpsbtResponse, error) + SignPsbt(ctx context.Context, in *SignpsbtRequest, opts ...grpc.CallOption) (*SignpsbtResponse, error) + UtxoPsbt(ctx context.Context, in *UtxopsbtRequest, opts ...grpc.CallOption) (*UtxopsbtResponse, error) + TxDiscard(ctx context.Context, in *TxdiscardRequest, opts ...grpc.CallOption) (*TxdiscardResponse, error) + TxPrepare(ctx context.Context, in *TxprepareRequest, opts ...grpc.CallOption) (*TxprepareResponse, error) + TxSend(ctx context.Context, in *TxsendRequest, opts ...grpc.CallOption) (*TxsendResponse, error) + ListPeerChannels(ctx context.Context, in *ListpeerchannelsRequest, opts ...grpc.CallOption) (*ListpeerchannelsResponse, error) + ListClosedChannels(ctx context.Context, in *ListclosedchannelsRequest, opts ...grpc.CallOption) (*ListclosedchannelsResponse, error) + DecodePay(ctx context.Context, in *DecodepayRequest, opts ...grpc.CallOption) (*DecodepayResponse, error) + Decode(ctx context.Context, in *DecodeRequest, opts ...grpc.CallOption) (*DecodeResponse, error) + Disconnect(ctx context.Context, in *DisconnectRequest, opts ...grpc.CallOption) (*DisconnectResponse, error) + Feerates(ctx context.Context, in *FeeratesRequest, opts ...grpc.CallOption) (*FeeratesResponse, error) + FetchInvoice(ctx context.Context, in *FetchinvoiceRequest, opts ...grpc.CallOption) (*FetchinvoiceResponse, error) + FundChannel(ctx context.Context, in *FundchannelRequest, opts ...grpc.CallOption) (*FundchannelResponse, error) + GetRoute(ctx context.Context, in *GetrouteRequest, opts ...grpc.CallOption) (*GetrouteResponse, error) + ListForwards(ctx context.Context, in *ListforwardsRequest, opts ...grpc.CallOption) (*ListforwardsResponse, error) + ListOffers(ctx context.Context, in *ListoffersRequest, opts ...grpc.CallOption) (*ListoffersResponse, error) + ListPays(ctx context.Context, in *ListpaysRequest, opts ...grpc.CallOption) (*ListpaysResponse, error) + ListHtlcs(ctx context.Context, in *ListhtlcsRequest, opts ...grpc.CallOption) (*ListhtlcsResponse, error) + Offer(ctx context.Context, in *OfferRequest, opts ...grpc.CallOption) (*OfferResponse, error) + Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error) + SendCustomMsg(ctx context.Context, in *SendcustommsgRequest, opts ...grpc.CallOption) (*SendcustommsgResponse, error) + SetChannel(ctx context.Context, in *SetchannelRequest, opts ...grpc.CallOption) (*SetchannelResponse, error) + SignInvoice(ctx context.Context, in *SigninvoiceRequest, opts ...grpc.CallOption) (*SigninvoiceResponse, error) + SignMessage(ctx context.Context, in *SignmessageRequest, opts ...grpc.CallOption) (*SignmessageResponse, error) + WaitBlockHeight(ctx context.Context, in *WaitblockheightRequest, opts ...grpc.CallOption) (*WaitblockheightResponse, error) + Wait(ctx context.Context, in *WaitRequest, opts ...grpc.CallOption) (*WaitResponse, error) + Stop(ctx context.Context, in *StopRequest, opts ...grpc.CallOption) (*StopResponse, error) + PreApproveKeysend(ctx context.Context, in *PreapprovekeysendRequest, opts ...grpc.CallOption) (*PreapprovekeysendResponse, error) + PreApproveInvoice(ctx context.Context, in *PreapproveinvoiceRequest, opts ...grpc.CallOption) (*PreapproveinvoiceResponse, error) + StaticBackup(ctx context.Context, in *StaticbackupRequest, opts ...grpc.CallOption) (*StaticbackupResponse, error) + BkprListIncome(ctx context.Context, in *BkprlistincomeRequest, opts ...grpc.CallOption) (*BkprlistincomeResponse, error) +} + +type nodeClient struct { + cc grpc.ClientConnInterface +} + +func NewNodeClient(cc grpc.ClientConnInterface) NodeClient { + return &nodeClient{cc} +} + +func (c *nodeClient) Getinfo(ctx context.Context, in *GetinfoRequest, opts ...grpc.CallOption) (*GetinfoResponse, error) { + out := new(GetinfoResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Getinfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListPeers(ctx context.Context, in *ListpeersRequest, opts ...grpc.CallOption) (*ListpeersResponse, error) { + out := new(ListpeersResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListPeers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListFunds(ctx context.Context, in *ListfundsRequest, opts ...grpc.CallOption) (*ListfundsResponse, error) { + out := new(ListfundsResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListFunds", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) SendPay(ctx context.Context, in *SendpayRequest, opts ...grpc.CallOption) (*SendpayResponse, error) { + out := new(SendpayResponse) + err := c.cc.Invoke(ctx, "/cln.Node/SendPay", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListChannels(ctx context.Context, in *ListchannelsRequest, opts ...grpc.CallOption) (*ListchannelsResponse, error) { + out := new(ListchannelsResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListChannels", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) AddGossip(ctx context.Context, in *AddgossipRequest, opts ...grpc.CallOption) (*AddgossipResponse, error) { + out := new(AddgossipResponse) + err := c.cc.Invoke(ctx, "/cln.Node/AddGossip", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) AutoCleanInvoice(ctx context.Context, in *AutocleaninvoiceRequest, opts ...grpc.CallOption) (*AutocleaninvoiceResponse, error) { + out := new(AutocleaninvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/AutoCleanInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) CheckMessage(ctx context.Context, in *CheckmessageRequest, opts ...grpc.CallOption) (*CheckmessageResponse, error) { + out := new(CheckmessageResponse) + err := c.cc.Invoke(ctx, "/cln.Node/CheckMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Close(ctx context.Context, in *CloseRequest, opts ...grpc.CallOption) (*CloseResponse, error) { + out := new(CloseResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Close", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ConnectPeer(ctx context.Context, in *ConnectRequest, opts ...grpc.CallOption) (*ConnectResponse, error) { + out := new(ConnectResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ConnectPeer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) CreateInvoice(ctx context.Context, in *CreateinvoiceRequest, opts ...grpc.CallOption) (*CreateinvoiceResponse, error) { + out := new(CreateinvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/CreateInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Datastore(ctx context.Context, in *DatastoreRequest, opts ...grpc.CallOption) (*DatastoreResponse, error) { + out := new(DatastoreResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Datastore", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) DatastoreUsage(ctx context.Context, in *DatastoreusageRequest, opts ...grpc.CallOption) (*DatastoreusageResponse, error) { + out := new(DatastoreusageResponse) + err := c.cc.Invoke(ctx, "/cln.Node/DatastoreUsage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) CreateOnion(ctx context.Context, in *CreateonionRequest, opts ...grpc.CallOption) (*CreateonionResponse, error) { + out := new(CreateonionResponse) + err := c.cc.Invoke(ctx, "/cln.Node/CreateOnion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) DelDatastore(ctx context.Context, in *DeldatastoreRequest, opts ...grpc.CallOption) (*DeldatastoreResponse, error) { + out := new(DeldatastoreResponse) + err := c.cc.Invoke(ctx, "/cln.Node/DelDatastore", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) DelExpiredInvoice(ctx context.Context, in *DelexpiredinvoiceRequest, opts ...grpc.CallOption) (*DelexpiredinvoiceResponse, error) { + out := new(DelexpiredinvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/DelExpiredInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) DelInvoice(ctx context.Context, in *DelinvoiceRequest, opts ...grpc.CallOption) (*DelinvoiceResponse, error) { + out := new(DelinvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/DelInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Invoice(ctx context.Context, in *InvoiceRequest, opts ...grpc.CallOption) (*InvoiceResponse, error) { + out := new(InvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Invoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListDatastore(ctx context.Context, in *ListdatastoreRequest, opts ...grpc.CallOption) (*ListdatastoreResponse, error) { + out := new(ListdatastoreResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListDatastore", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListInvoices(ctx context.Context, in *ListinvoicesRequest, opts ...grpc.CallOption) (*ListinvoicesResponse, error) { + out := new(ListinvoicesResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListInvoices", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) SendOnion(ctx context.Context, in *SendonionRequest, opts ...grpc.CallOption) (*SendonionResponse, error) { + out := new(SendonionResponse) + err := c.cc.Invoke(ctx, "/cln.Node/SendOnion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListSendPays(ctx context.Context, in *ListsendpaysRequest, opts ...grpc.CallOption) (*ListsendpaysResponse, error) { + out := new(ListsendpaysResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListSendPays", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListTransactions(ctx context.Context, in *ListtransactionsRequest, opts ...grpc.CallOption) (*ListtransactionsResponse, error) { + out := new(ListtransactionsResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListTransactions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Pay(ctx context.Context, in *PayRequest, opts ...grpc.CallOption) (*PayResponse, error) { + out := new(PayResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Pay", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListNodes(ctx context.Context, in *ListnodesRequest, opts ...grpc.CallOption) (*ListnodesResponse, error) { + out := new(ListnodesResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListNodes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) WaitAnyInvoice(ctx context.Context, in *WaitanyinvoiceRequest, opts ...grpc.CallOption) (*WaitanyinvoiceResponse, error) { + out := new(WaitanyinvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/WaitAnyInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) WaitInvoice(ctx context.Context, in *WaitinvoiceRequest, opts ...grpc.CallOption) (*WaitinvoiceResponse, error) { + out := new(WaitinvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/WaitInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) WaitSendPay(ctx context.Context, in *WaitsendpayRequest, opts ...grpc.CallOption) (*WaitsendpayResponse, error) { + out := new(WaitsendpayResponse) + err := c.cc.Invoke(ctx, "/cln.Node/WaitSendPay", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NewAddr(ctx context.Context, in *NewaddrRequest, opts ...grpc.CallOption) (*NewaddrResponse, error) { + out := new(NewaddrResponse) + err := c.cc.Invoke(ctx, "/cln.Node/NewAddr", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Withdraw(ctx context.Context, in *WithdrawRequest, opts ...grpc.CallOption) (*WithdrawResponse, error) { + out := new(WithdrawResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Withdraw", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) KeySend(ctx context.Context, in *KeysendRequest, opts ...grpc.CallOption) (*KeysendResponse, error) { + out := new(KeysendResponse) + err := c.cc.Invoke(ctx, "/cln.Node/KeySend", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) FundPsbt(ctx context.Context, in *FundpsbtRequest, opts ...grpc.CallOption) (*FundpsbtResponse, error) { + out := new(FundpsbtResponse) + err := c.cc.Invoke(ctx, "/cln.Node/FundPsbt", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) SendPsbt(ctx context.Context, in *SendpsbtRequest, opts ...grpc.CallOption) (*SendpsbtResponse, error) { + out := new(SendpsbtResponse) + err := c.cc.Invoke(ctx, "/cln.Node/SendPsbt", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) SignPsbt(ctx context.Context, in *SignpsbtRequest, opts ...grpc.CallOption) (*SignpsbtResponse, error) { + out := new(SignpsbtResponse) + err := c.cc.Invoke(ctx, "/cln.Node/SignPsbt", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) UtxoPsbt(ctx context.Context, in *UtxopsbtRequest, opts ...grpc.CallOption) (*UtxopsbtResponse, error) { + out := new(UtxopsbtResponse) + err := c.cc.Invoke(ctx, "/cln.Node/UtxoPsbt", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) TxDiscard(ctx context.Context, in *TxdiscardRequest, opts ...grpc.CallOption) (*TxdiscardResponse, error) { + out := new(TxdiscardResponse) + err := c.cc.Invoke(ctx, "/cln.Node/TxDiscard", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) TxPrepare(ctx context.Context, in *TxprepareRequest, opts ...grpc.CallOption) (*TxprepareResponse, error) { + out := new(TxprepareResponse) + err := c.cc.Invoke(ctx, "/cln.Node/TxPrepare", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) TxSend(ctx context.Context, in *TxsendRequest, opts ...grpc.CallOption) (*TxsendResponse, error) { + out := new(TxsendResponse) + err := c.cc.Invoke(ctx, "/cln.Node/TxSend", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListPeerChannels(ctx context.Context, in *ListpeerchannelsRequest, opts ...grpc.CallOption) (*ListpeerchannelsResponse, error) { + out := new(ListpeerchannelsResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListPeerChannels", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListClosedChannels(ctx context.Context, in *ListclosedchannelsRequest, opts ...grpc.CallOption) (*ListclosedchannelsResponse, error) { + out := new(ListclosedchannelsResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListClosedChannels", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) DecodePay(ctx context.Context, in *DecodepayRequest, opts ...grpc.CallOption) (*DecodepayResponse, error) { + out := new(DecodepayResponse) + err := c.cc.Invoke(ctx, "/cln.Node/DecodePay", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Decode(ctx context.Context, in *DecodeRequest, opts ...grpc.CallOption) (*DecodeResponse, error) { + out := new(DecodeResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Decode", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Disconnect(ctx context.Context, in *DisconnectRequest, opts ...grpc.CallOption) (*DisconnectResponse, error) { + out := new(DisconnectResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Disconnect", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Feerates(ctx context.Context, in *FeeratesRequest, opts ...grpc.CallOption) (*FeeratesResponse, error) { + out := new(FeeratesResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Feerates", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) FetchInvoice(ctx context.Context, in *FetchinvoiceRequest, opts ...grpc.CallOption) (*FetchinvoiceResponse, error) { + out := new(FetchinvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/FetchInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) FundChannel(ctx context.Context, in *FundchannelRequest, opts ...grpc.CallOption) (*FundchannelResponse, error) { + out := new(FundchannelResponse) + err := c.cc.Invoke(ctx, "/cln.Node/FundChannel", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) GetRoute(ctx context.Context, in *GetrouteRequest, opts ...grpc.CallOption) (*GetrouteResponse, error) { + out := new(GetrouteResponse) + err := c.cc.Invoke(ctx, "/cln.Node/GetRoute", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListForwards(ctx context.Context, in *ListforwardsRequest, opts ...grpc.CallOption) (*ListforwardsResponse, error) { + out := new(ListforwardsResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListForwards", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListOffers(ctx context.Context, in *ListoffersRequest, opts ...grpc.CallOption) (*ListoffersResponse, error) { + out := new(ListoffersResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListOffers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListPays(ctx context.Context, in *ListpaysRequest, opts ...grpc.CallOption) (*ListpaysResponse, error) { + out := new(ListpaysResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListPays", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) ListHtlcs(ctx context.Context, in *ListhtlcsRequest, opts ...grpc.CallOption) (*ListhtlcsResponse, error) { + out := new(ListhtlcsResponse) + err := c.cc.Invoke(ctx, "/cln.Node/ListHtlcs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Offer(ctx context.Context, in *OfferRequest, opts ...grpc.CallOption) (*OfferResponse, error) { + out := new(OfferResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Offer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingResponse, error) { + out := new(PingResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Ping", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) SendCustomMsg(ctx context.Context, in *SendcustommsgRequest, opts ...grpc.CallOption) (*SendcustommsgResponse, error) { + out := new(SendcustommsgResponse) + err := c.cc.Invoke(ctx, "/cln.Node/SendCustomMsg", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) SetChannel(ctx context.Context, in *SetchannelRequest, opts ...grpc.CallOption) (*SetchannelResponse, error) { + out := new(SetchannelResponse) + err := c.cc.Invoke(ctx, "/cln.Node/SetChannel", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) SignInvoice(ctx context.Context, in *SigninvoiceRequest, opts ...grpc.CallOption) (*SigninvoiceResponse, error) { + out := new(SigninvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/SignInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) SignMessage(ctx context.Context, in *SignmessageRequest, opts ...grpc.CallOption) (*SignmessageResponse, error) { + out := new(SignmessageResponse) + err := c.cc.Invoke(ctx, "/cln.Node/SignMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) WaitBlockHeight(ctx context.Context, in *WaitblockheightRequest, opts ...grpc.CallOption) (*WaitblockheightResponse, error) { + out := new(WaitblockheightResponse) + err := c.cc.Invoke(ctx, "/cln.Node/WaitBlockHeight", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Wait(ctx context.Context, in *WaitRequest, opts ...grpc.CallOption) (*WaitResponse, error) { + out := new(WaitResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Wait", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) Stop(ctx context.Context, in *StopRequest, opts ...grpc.CallOption) (*StopResponse, error) { + out := new(StopResponse) + err := c.cc.Invoke(ctx, "/cln.Node/Stop", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) PreApproveKeysend(ctx context.Context, in *PreapprovekeysendRequest, opts ...grpc.CallOption) (*PreapprovekeysendResponse, error) { + out := new(PreapprovekeysendResponse) + err := c.cc.Invoke(ctx, "/cln.Node/PreApproveKeysend", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) PreApproveInvoice(ctx context.Context, in *PreapproveinvoiceRequest, opts ...grpc.CallOption) (*PreapproveinvoiceResponse, error) { + out := new(PreapproveinvoiceResponse) + err := c.cc.Invoke(ctx, "/cln.Node/PreApproveInvoice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) StaticBackup(ctx context.Context, in *StaticbackupRequest, opts ...grpc.CallOption) (*StaticbackupResponse, error) { + out := new(StaticbackupResponse) + err := c.cc.Invoke(ctx, "/cln.Node/StaticBackup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) BkprListIncome(ctx context.Context, in *BkprlistincomeRequest, opts ...grpc.CallOption) (*BkprlistincomeResponse, error) { + out := new(BkprlistincomeResponse) + err := c.cc.Invoke(ctx, "/cln.Node/BkprListIncome", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeServer is the server API for Node service. +// All implementations must embed UnimplementedNodeServer +// for forward compatibility +type NodeServer interface { + Getinfo(context.Context, *GetinfoRequest) (*GetinfoResponse, error) + ListPeers(context.Context, *ListpeersRequest) (*ListpeersResponse, error) + ListFunds(context.Context, *ListfundsRequest) (*ListfundsResponse, error) + SendPay(context.Context, *SendpayRequest) (*SendpayResponse, error) + ListChannels(context.Context, *ListchannelsRequest) (*ListchannelsResponse, error) + AddGossip(context.Context, *AddgossipRequest) (*AddgossipResponse, error) + AutoCleanInvoice(context.Context, *AutocleaninvoiceRequest) (*AutocleaninvoiceResponse, error) + CheckMessage(context.Context, *CheckmessageRequest) (*CheckmessageResponse, error) + Close(context.Context, *CloseRequest) (*CloseResponse, error) + ConnectPeer(context.Context, *ConnectRequest) (*ConnectResponse, error) + CreateInvoice(context.Context, *CreateinvoiceRequest) (*CreateinvoiceResponse, error) + Datastore(context.Context, *DatastoreRequest) (*DatastoreResponse, error) + DatastoreUsage(context.Context, *DatastoreusageRequest) (*DatastoreusageResponse, error) + CreateOnion(context.Context, *CreateonionRequest) (*CreateonionResponse, error) + DelDatastore(context.Context, *DeldatastoreRequest) (*DeldatastoreResponse, error) + DelExpiredInvoice(context.Context, *DelexpiredinvoiceRequest) (*DelexpiredinvoiceResponse, error) + DelInvoice(context.Context, *DelinvoiceRequest) (*DelinvoiceResponse, error) + Invoice(context.Context, *InvoiceRequest) (*InvoiceResponse, error) + ListDatastore(context.Context, *ListdatastoreRequest) (*ListdatastoreResponse, error) + ListInvoices(context.Context, *ListinvoicesRequest) (*ListinvoicesResponse, error) + SendOnion(context.Context, *SendonionRequest) (*SendonionResponse, error) + ListSendPays(context.Context, *ListsendpaysRequest) (*ListsendpaysResponse, error) + ListTransactions(context.Context, *ListtransactionsRequest) (*ListtransactionsResponse, error) + Pay(context.Context, *PayRequest) (*PayResponse, error) + ListNodes(context.Context, *ListnodesRequest) (*ListnodesResponse, error) + WaitAnyInvoice(context.Context, *WaitanyinvoiceRequest) (*WaitanyinvoiceResponse, error) + WaitInvoice(context.Context, *WaitinvoiceRequest) (*WaitinvoiceResponse, error) + WaitSendPay(context.Context, *WaitsendpayRequest) (*WaitsendpayResponse, error) + NewAddr(context.Context, *NewaddrRequest) (*NewaddrResponse, error) + Withdraw(context.Context, *WithdrawRequest) (*WithdrawResponse, error) + KeySend(context.Context, *KeysendRequest) (*KeysendResponse, error) + FundPsbt(context.Context, *FundpsbtRequest) (*FundpsbtResponse, error) + SendPsbt(context.Context, *SendpsbtRequest) (*SendpsbtResponse, error) + SignPsbt(context.Context, *SignpsbtRequest) (*SignpsbtResponse, error) + UtxoPsbt(context.Context, *UtxopsbtRequest) (*UtxopsbtResponse, error) + TxDiscard(context.Context, *TxdiscardRequest) (*TxdiscardResponse, error) + TxPrepare(context.Context, *TxprepareRequest) (*TxprepareResponse, error) + TxSend(context.Context, *TxsendRequest) (*TxsendResponse, error) + ListPeerChannels(context.Context, *ListpeerchannelsRequest) (*ListpeerchannelsResponse, error) + ListClosedChannels(context.Context, *ListclosedchannelsRequest) (*ListclosedchannelsResponse, error) + DecodePay(context.Context, *DecodepayRequest) (*DecodepayResponse, error) + Decode(context.Context, *DecodeRequest) (*DecodeResponse, error) + Disconnect(context.Context, *DisconnectRequest) (*DisconnectResponse, error) + Feerates(context.Context, *FeeratesRequest) (*FeeratesResponse, error) + FetchInvoice(context.Context, *FetchinvoiceRequest) (*FetchinvoiceResponse, error) + FundChannel(context.Context, *FundchannelRequest) (*FundchannelResponse, error) + GetRoute(context.Context, *GetrouteRequest) (*GetrouteResponse, error) + ListForwards(context.Context, *ListforwardsRequest) (*ListforwardsResponse, error) + ListOffers(context.Context, *ListoffersRequest) (*ListoffersResponse, error) + ListPays(context.Context, *ListpaysRequest) (*ListpaysResponse, error) + ListHtlcs(context.Context, *ListhtlcsRequest) (*ListhtlcsResponse, error) + Offer(context.Context, *OfferRequest) (*OfferResponse, error) + Ping(context.Context, *PingRequest) (*PingResponse, error) + SendCustomMsg(context.Context, *SendcustommsgRequest) (*SendcustommsgResponse, error) + SetChannel(context.Context, *SetchannelRequest) (*SetchannelResponse, error) + SignInvoice(context.Context, *SigninvoiceRequest) (*SigninvoiceResponse, error) + SignMessage(context.Context, *SignmessageRequest) (*SignmessageResponse, error) + WaitBlockHeight(context.Context, *WaitblockheightRequest) (*WaitblockheightResponse, error) + Wait(context.Context, *WaitRequest) (*WaitResponse, error) + Stop(context.Context, *StopRequest) (*StopResponse, error) + PreApproveKeysend(context.Context, *PreapprovekeysendRequest) (*PreapprovekeysendResponse, error) + PreApproveInvoice(context.Context, *PreapproveinvoiceRequest) (*PreapproveinvoiceResponse, error) + StaticBackup(context.Context, *StaticbackupRequest) (*StaticbackupResponse, error) + BkprListIncome(context.Context, *BkprlistincomeRequest) (*BkprlistincomeResponse, error) + mustEmbedUnimplementedNodeServer() +} + +// UnimplementedNodeServer must be embedded to have forward compatible implementations. +type UnimplementedNodeServer struct { +} + +func (UnimplementedNodeServer) Getinfo(context.Context, *GetinfoRequest) (*GetinfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Getinfo not implemented") +} +func (UnimplementedNodeServer) ListPeers(context.Context, *ListpeersRequest) (*ListpeersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPeers not implemented") +} +func (UnimplementedNodeServer) ListFunds(context.Context, *ListfundsRequest) (*ListfundsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFunds not implemented") +} +func (UnimplementedNodeServer) SendPay(context.Context, *SendpayRequest) (*SendpayResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendPay not implemented") +} +func (UnimplementedNodeServer) ListChannels(context.Context, *ListchannelsRequest) (*ListchannelsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListChannels not implemented") +} +func (UnimplementedNodeServer) AddGossip(context.Context, *AddgossipRequest) (*AddgossipResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddGossip not implemented") +} +func (UnimplementedNodeServer) AutoCleanInvoice(context.Context, *AutocleaninvoiceRequest) (*AutocleaninvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AutoCleanInvoice not implemented") +} +func (UnimplementedNodeServer) CheckMessage(context.Context, *CheckmessageRequest) (*CheckmessageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckMessage not implemented") +} +func (UnimplementedNodeServer) Close(context.Context, *CloseRequest) (*CloseResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Close not implemented") +} +func (UnimplementedNodeServer) ConnectPeer(context.Context, *ConnectRequest) (*ConnectResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ConnectPeer not implemented") +} +func (UnimplementedNodeServer) CreateInvoice(context.Context, *CreateinvoiceRequest) (*CreateinvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateInvoice not implemented") +} +func (UnimplementedNodeServer) Datastore(context.Context, *DatastoreRequest) (*DatastoreResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Datastore not implemented") +} +func (UnimplementedNodeServer) DatastoreUsage(context.Context, *DatastoreusageRequest) (*DatastoreusageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DatastoreUsage not implemented") +} +func (UnimplementedNodeServer) CreateOnion(context.Context, *CreateonionRequest) (*CreateonionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateOnion not implemented") +} +func (UnimplementedNodeServer) DelDatastore(context.Context, *DeldatastoreRequest) (*DeldatastoreResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DelDatastore not implemented") +} +func (UnimplementedNodeServer) DelExpiredInvoice(context.Context, *DelexpiredinvoiceRequest) (*DelexpiredinvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DelExpiredInvoice not implemented") +} +func (UnimplementedNodeServer) DelInvoice(context.Context, *DelinvoiceRequest) (*DelinvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DelInvoice not implemented") +} +func (UnimplementedNodeServer) Invoice(context.Context, *InvoiceRequest) (*InvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Invoice not implemented") +} +func (UnimplementedNodeServer) ListDatastore(context.Context, *ListdatastoreRequest) (*ListdatastoreResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDatastore not implemented") +} +func (UnimplementedNodeServer) ListInvoices(context.Context, *ListinvoicesRequest) (*ListinvoicesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListInvoices not implemented") +} +func (UnimplementedNodeServer) SendOnion(context.Context, *SendonionRequest) (*SendonionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendOnion not implemented") +} +func (UnimplementedNodeServer) ListSendPays(context.Context, *ListsendpaysRequest) (*ListsendpaysResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSendPays not implemented") +} +func (UnimplementedNodeServer) ListTransactions(context.Context, *ListtransactionsRequest) (*ListtransactionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListTransactions not implemented") +} +func (UnimplementedNodeServer) Pay(context.Context, *PayRequest) (*PayResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Pay not implemented") +} +func (UnimplementedNodeServer) ListNodes(context.Context, *ListnodesRequest) (*ListnodesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListNodes not implemented") +} +func (UnimplementedNodeServer) WaitAnyInvoice(context.Context, *WaitanyinvoiceRequest) (*WaitanyinvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WaitAnyInvoice not implemented") +} +func (UnimplementedNodeServer) WaitInvoice(context.Context, *WaitinvoiceRequest) (*WaitinvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WaitInvoice not implemented") +} +func (UnimplementedNodeServer) WaitSendPay(context.Context, *WaitsendpayRequest) (*WaitsendpayResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WaitSendPay not implemented") +} +func (UnimplementedNodeServer) NewAddr(context.Context, *NewaddrRequest) (*NewaddrResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NewAddr not implemented") +} +func (UnimplementedNodeServer) Withdraw(context.Context, *WithdrawRequest) (*WithdrawResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Withdraw not implemented") +} +func (UnimplementedNodeServer) KeySend(context.Context, *KeysendRequest) (*KeysendResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method KeySend not implemented") +} +func (UnimplementedNodeServer) FundPsbt(context.Context, *FundpsbtRequest) (*FundpsbtResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FundPsbt not implemented") +} +func (UnimplementedNodeServer) SendPsbt(context.Context, *SendpsbtRequest) (*SendpsbtResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendPsbt not implemented") +} +func (UnimplementedNodeServer) SignPsbt(context.Context, *SignpsbtRequest) (*SignpsbtResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignPsbt not implemented") +} +func (UnimplementedNodeServer) UtxoPsbt(context.Context, *UtxopsbtRequest) (*UtxopsbtResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UtxoPsbt not implemented") +} +func (UnimplementedNodeServer) TxDiscard(context.Context, *TxdiscardRequest) (*TxdiscardResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TxDiscard not implemented") +} +func (UnimplementedNodeServer) TxPrepare(context.Context, *TxprepareRequest) (*TxprepareResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TxPrepare not implemented") +} +func (UnimplementedNodeServer) TxSend(context.Context, *TxsendRequest) (*TxsendResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TxSend not implemented") +} +func (UnimplementedNodeServer) ListPeerChannels(context.Context, *ListpeerchannelsRequest) (*ListpeerchannelsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPeerChannels not implemented") +} +func (UnimplementedNodeServer) ListClosedChannels(context.Context, *ListclosedchannelsRequest) (*ListclosedchannelsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListClosedChannels not implemented") +} +func (UnimplementedNodeServer) DecodePay(context.Context, *DecodepayRequest) (*DecodepayResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DecodePay not implemented") +} +func (UnimplementedNodeServer) Decode(context.Context, *DecodeRequest) (*DecodeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Decode not implemented") +} +func (UnimplementedNodeServer) Disconnect(context.Context, *DisconnectRequest) (*DisconnectResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Disconnect not implemented") +} +func (UnimplementedNodeServer) Feerates(context.Context, *FeeratesRequest) (*FeeratesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Feerates not implemented") +} +func (UnimplementedNodeServer) FetchInvoice(context.Context, *FetchinvoiceRequest) (*FetchinvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FetchInvoice not implemented") +} +func (UnimplementedNodeServer) FundChannel(context.Context, *FundchannelRequest) (*FundchannelResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FundChannel not implemented") +} +func (UnimplementedNodeServer) GetRoute(context.Context, *GetrouteRequest) (*GetrouteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRoute not implemented") +} +func (UnimplementedNodeServer) ListForwards(context.Context, *ListforwardsRequest) (*ListforwardsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListForwards not implemented") +} +func (UnimplementedNodeServer) ListOffers(context.Context, *ListoffersRequest) (*ListoffersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListOffers not implemented") +} +func (UnimplementedNodeServer) ListPays(context.Context, *ListpaysRequest) (*ListpaysResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPays not implemented") +} +func (UnimplementedNodeServer) ListHtlcs(context.Context, *ListhtlcsRequest) (*ListhtlcsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListHtlcs not implemented") +} +func (UnimplementedNodeServer) Offer(context.Context, *OfferRequest) (*OfferResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Offer not implemented") +} +func (UnimplementedNodeServer) Ping(context.Context, *PingRequest) (*PingResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") +} +func (UnimplementedNodeServer) SendCustomMsg(context.Context, *SendcustommsgRequest) (*SendcustommsgResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendCustomMsg not implemented") +} +func (UnimplementedNodeServer) SetChannel(context.Context, *SetchannelRequest) (*SetchannelResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetChannel not implemented") +} +func (UnimplementedNodeServer) SignInvoice(context.Context, *SigninvoiceRequest) (*SigninvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignInvoice not implemented") +} +func (UnimplementedNodeServer) SignMessage(context.Context, *SignmessageRequest) (*SignmessageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignMessage not implemented") +} +func (UnimplementedNodeServer) WaitBlockHeight(context.Context, *WaitblockheightRequest) (*WaitblockheightResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WaitBlockHeight not implemented") +} +func (UnimplementedNodeServer) Wait(context.Context, *WaitRequest) (*WaitResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Wait not implemented") +} +func (UnimplementedNodeServer) Stop(context.Context, *StopRequest) (*StopResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Stop not implemented") +} +func (UnimplementedNodeServer) PreApproveKeysend(context.Context, *PreapprovekeysendRequest) (*PreapprovekeysendResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PreApproveKeysend not implemented") +} +func (UnimplementedNodeServer) PreApproveInvoice(context.Context, *PreapproveinvoiceRequest) (*PreapproveinvoiceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PreApproveInvoice not implemented") +} +func (UnimplementedNodeServer) StaticBackup(context.Context, *StaticbackupRequest) (*StaticbackupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StaticBackup not implemented") +} +func (UnimplementedNodeServer) BkprListIncome(context.Context, *BkprlistincomeRequest) (*BkprlistincomeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BkprListIncome not implemented") +} +func (UnimplementedNodeServer) mustEmbedUnimplementedNodeServer() {} + +// UnsafeNodeServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NodeServer will +// result in compilation errors. +type UnsafeNodeServer interface { + mustEmbedUnimplementedNodeServer() +} + +func RegisterNodeServer(s grpc.ServiceRegistrar, srv NodeServer) { + s.RegisterService(&Node_ServiceDesc, srv) +} + +func _Node_Getinfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetinfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Getinfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Getinfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Getinfo(ctx, req.(*GetinfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListPeers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListpeersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListPeers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListPeers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListPeers(ctx, req.(*ListpeersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListFunds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListfundsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListFunds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListFunds", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListFunds(ctx, req.(*ListfundsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_SendPay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendpayRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).SendPay(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/SendPay", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).SendPay(ctx, req.(*SendpayRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListChannels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListchannelsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListChannels(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListChannels", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListChannels(ctx, req.(*ListchannelsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_AddGossip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddgossipRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).AddGossip(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/AddGossip", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).AddGossip(ctx, req.(*AddgossipRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_AutoCleanInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AutocleaninvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).AutoCleanInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/AutoCleanInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).AutoCleanInvoice(ctx, req.(*AutocleaninvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_CheckMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckmessageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).CheckMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/CheckMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).CheckMessage(ctx, req.(*CheckmessageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Close_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CloseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Close(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Close", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Close(ctx, req.(*CloseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ConnectPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ConnectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ConnectPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ConnectPeer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ConnectPeer(ctx, req.(*ConnectRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_CreateInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateinvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).CreateInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/CreateInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).CreateInvoice(ctx, req.(*CreateinvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Datastore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DatastoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Datastore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Datastore", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Datastore(ctx, req.(*DatastoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_DatastoreUsage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DatastoreusageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).DatastoreUsage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/DatastoreUsage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).DatastoreUsage(ctx, req.(*DatastoreusageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_CreateOnion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateonionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).CreateOnion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/CreateOnion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).CreateOnion(ctx, req.(*CreateonionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_DelDatastore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeldatastoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).DelDatastore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/DelDatastore", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).DelDatastore(ctx, req.(*DeldatastoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_DelExpiredInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DelexpiredinvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).DelExpiredInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/DelExpiredInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).DelExpiredInvoice(ctx, req.(*DelexpiredinvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_DelInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DelinvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).DelInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/DelInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).DelInvoice(ctx, req.(*DelinvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Invoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Invoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Invoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Invoice(ctx, req.(*InvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListDatastore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListdatastoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListDatastore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListDatastore", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListDatastore(ctx, req.(*ListdatastoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListInvoices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListinvoicesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListInvoices(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListInvoices", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListInvoices(ctx, req.(*ListinvoicesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_SendOnion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendonionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).SendOnion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/SendOnion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).SendOnion(ctx, req.(*SendonionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListSendPays_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListsendpaysRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListSendPays(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListSendPays", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListSendPays(ctx, req.(*ListsendpaysRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListTransactions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListtransactionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListTransactions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListTransactions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListTransactions(ctx, req.(*ListtransactionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Pay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PayRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Pay(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Pay", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Pay(ctx, req.(*PayRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListnodesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListNodes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListNodes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListNodes(ctx, req.(*ListnodesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_WaitAnyInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WaitanyinvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).WaitAnyInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/WaitAnyInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).WaitAnyInvoice(ctx, req.(*WaitanyinvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_WaitInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WaitinvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).WaitInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/WaitInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).WaitInvoice(ctx, req.(*WaitinvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_WaitSendPay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WaitsendpayRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).WaitSendPay(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/WaitSendPay", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).WaitSendPay(ctx, req.(*WaitsendpayRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NewAddr_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NewaddrRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NewAddr(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/NewAddr", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NewAddr(ctx, req.(*NewaddrRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Withdraw_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WithdrawRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Withdraw(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Withdraw", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Withdraw(ctx, req.(*WithdrawRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_KeySend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(KeysendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).KeySend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/KeySend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).KeySend(ctx, req.(*KeysendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_FundPsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FundpsbtRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).FundPsbt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/FundPsbt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).FundPsbt(ctx, req.(*FundpsbtRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_SendPsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendpsbtRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).SendPsbt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/SendPsbt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).SendPsbt(ctx, req.(*SendpsbtRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_SignPsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SignpsbtRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).SignPsbt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/SignPsbt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).SignPsbt(ctx, req.(*SignpsbtRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_UtxoPsbt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UtxopsbtRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).UtxoPsbt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/UtxoPsbt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).UtxoPsbt(ctx, req.(*UtxopsbtRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_TxDiscard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TxdiscardRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).TxDiscard(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/TxDiscard", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).TxDiscard(ctx, req.(*TxdiscardRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_TxPrepare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TxprepareRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).TxPrepare(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/TxPrepare", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).TxPrepare(ctx, req.(*TxprepareRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_TxSend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TxsendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).TxSend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/TxSend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).TxSend(ctx, req.(*TxsendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListPeerChannels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListpeerchannelsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListPeerChannels(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListPeerChannels", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListPeerChannels(ctx, req.(*ListpeerchannelsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListClosedChannels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListclosedchannelsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListClosedChannels(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListClosedChannels", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListClosedChannels(ctx, req.(*ListclosedchannelsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_DecodePay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DecodepayRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).DecodePay(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/DecodePay", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).DecodePay(ctx, req.(*DecodepayRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Decode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DecodeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Decode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Decode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Decode(ctx, req.(*DecodeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Disconnect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisconnectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Disconnect(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Disconnect", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Disconnect(ctx, req.(*DisconnectRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Feerates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FeeratesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Feerates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Feerates", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Feerates(ctx, req.(*FeeratesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_FetchInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FetchinvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).FetchInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/FetchInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).FetchInvoice(ctx, req.(*FetchinvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_FundChannel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FundchannelRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).FundChannel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/FundChannel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).FundChannel(ctx, req.(*FundchannelRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_GetRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetrouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).GetRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/GetRoute", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).GetRoute(ctx, req.(*GetrouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListForwards_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListforwardsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListForwards(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListForwards", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListForwards(ctx, req.(*ListforwardsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListOffers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListoffersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListOffers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListOffers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListOffers(ctx, req.(*ListoffersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListPays_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListpaysRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListPays(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListPays", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListPays(ctx, req.(*ListpaysRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_ListHtlcs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListhtlcsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).ListHtlcs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/ListHtlcs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).ListHtlcs(ctx, req.(*ListhtlcsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Offer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OfferRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Offer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Offer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Offer(ctx, req.(*OfferRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Ping(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Ping", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Ping(ctx, req.(*PingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_SendCustomMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendcustommsgRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).SendCustomMsg(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/SendCustomMsg", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).SendCustomMsg(ctx, req.(*SendcustommsgRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_SetChannel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetchannelRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).SetChannel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/SetChannel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).SetChannel(ctx, req.(*SetchannelRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_SignInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SigninvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).SignInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/SignInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).SignInvoice(ctx, req.(*SigninvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_SignMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SignmessageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).SignMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/SignMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).SignMessage(ctx, req.(*SignmessageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_WaitBlockHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WaitblockheightRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).WaitBlockHeight(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/WaitBlockHeight", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).WaitBlockHeight(ctx, req.(*WaitblockheightRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Wait_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WaitRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Wait(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Wait", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Wait(ctx, req.(*WaitRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_Stop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StopRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).Stop(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/Stop", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).Stop(ctx, req.(*StopRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_PreApproveKeysend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PreapprovekeysendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).PreApproveKeysend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/PreApproveKeysend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).PreApproveKeysend(ctx, req.(*PreapprovekeysendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_PreApproveInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PreapproveinvoiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).PreApproveInvoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/PreApproveInvoice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).PreApproveInvoice(ctx, req.(*PreapproveinvoiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_StaticBackup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StaticbackupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).StaticBackup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/StaticBackup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).StaticBackup(ctx, req.(*StaticbackupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_BkprListIncome_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BkprlistincomeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).BkprListIncome(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/cln.Node/BkprListIncome", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).BkprListIncome(ctx, req.(*BkprlistincomeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Node_ServiceDesc is the grpc.ServiceDesc for Node service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Node_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "cln.Node", + HandlerType: (*NodeServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Getinfo", + Handler: _Node_Getinfo_Handler, + }, + { + MethodName: "ListPeers", + Handler: _Node_ListPeers_Handler, + }, + { + MethodName: "ListFunds", + Handler: _Node_ListFunds_Handler, + }, + { + MethodName: "SendPay", + Handler: _Node_SendPay_Handler, + }, + { + MethodName: "ListChannels", + Handler: _Node_ListChannels_Handler, + }, + { + MethodName: "AddGossip", + Handler: _Node_AddGossip_Handler, + }, + { + MethodName: "AutoCleanInvoice", + Handler: _Node_AutoCleanInvoice_Handler, + }, + { + MethodName: "CheckMessage", + Handler: _Node_CheckMessage_Handler, + }, + { + MethodName: "Close", + Handler: _Node_Close_Handler, + }, + { + MethodName: "ConnectPeer", + Handler: _Node_ConnectPeer_Handler, + }, + { + MethodName: "CreateInvoice", + Handler: _Node_CreateInvoice_Handler, + }, + { + MethodName: "Datastore", + Handler: _Node_Datastore_Handler, + }, + { + MethodName: "DatastoreUsage", + Handler: _Node_DatastoreUsage_Handler, + }, + { + MethodName: "CreateOnion", + Handler: _Node_CreateOnion_Handler, + }, + { + MethodName: "DelDatastore", + Handler: _Node_DelDatastore_Handler, + }, + { + MethodName: "DelExpiredInvoice", + Handler: _Node_DelExpiredInvoice_Handler, + }, + { + MethodName: "DelInvoice", + Handler: _Node_DelInvoice_Handler, + }, + { + MethodName: "Invoice", + Handler: _Node_Invoice_Handler, + }, + { + MethodName: "ListDatastore", + Handler: _Node_ListDatastore_Handler, + }, + { + MethodName: "ListInvoices", + Handler: _Node_ListInvoices_Handler, + }, + { + MethodName: "SendOnion", + Handler: _Node_SendOnion_Handler, + }, + { + MethodName: "ListSendPays", + Handler: _Node_ListSendPays_Handler, + }, + { + MethodName: "ListTransactions", + Handler: _Node_ListTransactions_Handler, + }, + { + MethodName: "Pay", + Handler: _Node_Pay_Handler, + }, + { + MethodName: "ListNodes", + Handler: _Node_ListNodes_Handler, + }, + { + MethodName: "WaitAnyInvoice", + Handler: _Node_WaitAnyInvoice_Handler, + }, + { + MethodName: "WaitInvoice", + Handler: _Node_WaitInvoice_Handler, + }, + { + MethodName: "WaitSendPay", + Handler: _Node_WaitSendPay_Handler, + }, + { + MethodName: "NewAddr", + Handler: _Node_NewAddr_Handler, + }, + { + MethodName: "Withdraw", + Handler: _Node_Withdraw_Handler, + }, + { + MethodName: "KeySend", + Handler: _Node_KeySend_Handler, + }, + { + MethodName: "FundPsbt", + Handler: _Node_FundPsbt_Handler, + }, + { + MethodName: "SendPsbt", + Handler: _Node_SendPsbt_Handler, + }, + { + MethodName: "SignPsbt", + Handler: _Node_SignPsbt_Handler, + }, + { + MethodName: "UtxoPsbt", + Handler: _Node_UtxoPsbt_Handler, + }, + { + MethodName: "TxDiscard", + Handler: _Node_TxDiscard_Handler, + }, + { + MethodName: "TxPrepare", + Handler: _Node_TxPrepare_Handler, + }, + { + MethodName: "TxSend", + Handler: _Node_TxSend_Handler, + }, + { + MethodName: "ListPeerChannels", + Handler: _Node_ListPeerChannels_Handler, + }, + { + MethodName: "ListClosedChannels", + Handler: _Node_ListClosedChannels_Handler, + }, + { + MethodName: "DecodePay", + Handler: _Node_DecodePay_Handler, + }, + { + MethodName: "Decode", + Handler: _Node_Decode_Handler, + }, + { + MethodName: "Disconnect", + Handler: _Node_Disconnect_Handler, + }, + { + MethodName: "Feerates", + Handler: _Node_Feerates_Handler, + }, + { + MethodName: "FetchInvoice", + Handler: _Node_FetchInvoice_Handler, + }, + { + MethodName: "FundChannel", + Handler: _Node_FundChannel_Handler, + }, + { + MethodName: "GetRoute", + Handler: _Node_GetRoute_Handler, + }, + { + MethodName: "ListForwards", + Handler: _Node_ListForwards_Handler, + }, + { + MethodName: "ListOffers", + Handler: _Node_ListOffers_Handler, + }, + { + MethodName: "ListPays", + Handler: _Node_ListPays_Handler, + }, + { + MethodName: "ListHtlcs", + Handler: _Node_ListHtlcs_Handler, + }, + { + MethodName: "Offer", + Handler: _Node_Offer_Handler, + }, + { + MethodName: "Ping", + Handler: _Node_Ping_Handler, + }, + { + MethodName: "SendCustomMsg", + Handler: _Node_SendCustomMsg_Handler, + }, + { + MethodName: "SetChannel", + Handler: _Node_SetChannel_Handler, + }, + { + MethodName: "SignInvoice", + Handler: _Node_SignInvoice_Handler, + }, + { + MethodName: "SignMessage", + Handler: _Node_SignMessage_Handler, + }, + { + MethodName: "WaitBlockHeight", + Handler: _Node_WaitBlockHeight_Handler, + }, + { + MethodName: "Wait", + Handler: _Node_Wait_Handler, + }, + { + MethodName: "Stop", + Handler: _Node_Stop_Handler, + }, + { + MethodName: "PreApproveKeysend", + Handler: _Node_PreApproveKeysend_Handler, + }, + { + MethodName: "PreApproveInvoice", + Handler: _Node_PreApproveInvoice_Handler, + }, + { + MethodName: "StaticBackup", + Handler: _Node_StaticBackup_Handler, + }, + { + MethodName: "BkprListIncome", + Handler: _Node_BkprListIncome_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "node.proto", +} diff --git a/cln/rpc/primitives.pb.go b/cln/rpc/primitives.pb.go new file mode 100644 index 00000000..61fa7ed5 --- /dev/null +++ b/cln/rpc/primitives.pb.go @@ -0,0 +1,1411 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v4.25.3 +// source: primitives.proto + +package rpc + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ChannelSide int32 + +const ( + ChannelSide_LOCAL ChannelSide = 0 + ChannelSide_REMOTE ChannelSide = 1 +) + +// Enum value maps for ChannelSide. +var ( + ChannelSide_name = map[int32]string{ + 0: "LOCAL", + 1: "REMOTE", + } + ChannelSide_value = map[string]int32{ + "LOCAL": 0, + "REMOTE": 1, + } +) + +func (x ChannelSide) Enum() *ChannelSide { + p := new(ChannelSide) + *p = x + return p +} + +func (x ChannelSide) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChannelSide) Descriptor() protoreflect.EnumDescriptor { + return file_primitives_proto_enumTypes[0].Descriptor() +} + +func (ChannelSide) Type() protoreflect.EnumType { + return &file_primitives_proto_enumTypes[0] +} + +func (x ChannelSide) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChannelSide.Descriptor instead. +func (ChannelSide) EnumDescriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{0} +} + +type ChannelState int32 + +const ( + ChannelState_Openingd ChannelState = 0 + ChannelState_ChanneldAwaitingLockin ChannelState = 1 + ChannelState_ChanneldNormal ChannelState = 2 + ChannelState_ChanneldShuttingDown ChannelState = 3 + ChannelState_ClosingdSigexchange ChannelState = 4 + ChannelState_ClosingdComplete ChannelState = 5 + ChannelState_AwaitingUnilateral ChannelState = 6 + ChannelState_FundingSpendSeen ChannelState = 7 + ChannelState_Onchain ChannelState = 8 + ChannelState_DualopendOpenInit ChannelState = 9 + ChannelState_DualopendAwaitingLockin ChannelState = 10 + ChannelState_ChanneldAwaitingSplice ChannelState = 11 +) + +// Enum value maps for ChannelState. +var ( + ChannelState_name = map[int32]string{ + 0: "Openingd", + 1: "ChanneldAwaitingLockin", + 2: "ChanneldNormal", + 3: "ChanneldShuttingDown", + 4: "ClosingdSigexchange", + 5: "ClosingdComplete", + 6: "AwaitingUnilateral", + 7: "FundingSpendSeen", + 8: "Onchain", + 9: "DualopendOpenInit", + 10: "DualopendAwaitingLockin", + 11: "ChanneldAwaitingSplice", + } + ChannelState_value = map[string]int32{ + "Openingd": 0, + "ChanneldAwaitingLockin": 1, + "ChanneldNormal": 2, + "ChanneldShuttingDown": 3, + "ClosingdSigexchange": 4, + "ClosingdComplete": 5, + "AwaitingUnilateral": 6, + "FundingSpendSeen": 7, + "Onchain": 8, + "DualopendOpenInit": 9, + "DualopendAwaitingLockin": 10, + "ChanneldAwaitingSplice": 11, + } +) + +func (x ChannelState) Enum() *ChannelState { + p := new(ChannelState) + *p = x + return p +} + +func (x ChannelState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChannelState) Descriptor() protoreflect.EnumDescriptor { + return file_primitives_proto_enumTypes[1].Descriptor() +} + +func (ChannelState) Type() protoreflect.EnumType { + return &file_primitives_proto_enumTypes[1] +} + +func (x ChannelState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChannelState.Descriptor instead. +func (ChannelState) EnumDescriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{1} +} + +type HtlcState int32 + +const ( + HtlcState_SentAddHtlc HtlcState = 0 + HtlcState_SentAddCommit HtlcState = 1 + HtlcState_RcvdAddRevocation HtlcState = 2 + HtlcState_RcvdAddAckCommit HtlcState = 3 + HtlcState_SentAddAckRevocation HtlcState = 4 + HtlcState_RcvdAddAckRevocation HtlcState = 5 + HtlcState_RcvdRemoveHtlc HtlcState = 6 + HtlcState_RcvdRemoveCommit HtlcState = 7 + HtlcState_SentRemoveRevocation HtlcState = 8 + HtlcState_SentRemoveAckCommit HtlcState = 9 + HtlcState_RcvdRemoveAckRevocation HtlcState = 10 + HtlcState_RcvdAddHtlc HtlcState = 11 + HtlcState_RcvdAddCommit HtlcState = 12 + HtlcState_SentAddRevocation HtlcState = 13 + HtlcState_SentAddAckCommit HtlcState = 14 + HtlcState_SentRemoveHtlc HtlcState = 15 + HtlcState_SentRemoveCommit HtlcState = 16 + HtlcState_RcvdRemoveRevocation HtlcState = 17 + HtlcState_RcvdRemoveAckCommit HtlcState = 18 + HtlcState_SentRemoveAckRevocation HtlcState = 19 +) + +// Enum value maps for HtlcState. +var ( + HtlcState_name = map[int32]string{ + 0: "SentAddHtlc", + 1: "SentAddCommit", + 2: "RcvdAddRevocation", + 3: "RcvdAddAckCommit", + 4: "SentAddAckRevocation", + 5: "RcvdAddAckRevocation", + 6: "RcvdRemoveHtlc", + 7: "RcvdRemoveCommit", + 8: "SentRemoveRevocation", + 9: "SentRemoveAckCommit", + 10: "RcvdRemoveAckRevocation", + 11: "RcvdAddHtlc", + 12: "RcvdAddCommit", + 13: "SentAddRevocation", + 14: "SentAddAckCommit", + 15: "SentRemoveHtlc", + 16: "SentRemoveCommit", + 17: "RcvdRemoveRevocation", + 18: "RcvdRemoveAckCommit", + 19: "SentRemoveAckRevocation", + } + HtlcState_value = map[string]int32{ + "SentAddHtlc": 0, + "SentAddCommit": 1, + "RcvdAddRevocation": 2, + "RcvdAddAckCommit": 3, + "SentAddAckRevocation": 4, + "RcvdAddAckRevocation": 5, + "RcvdRemoveHtlc": 6, + "RcvdRemoveCommit": 7, + "SentRemoveRevocation": 8, + "SentRemoveAckCommit": 9, + "RcvdRemoveAckRevocation": 10, + "RcvdAddHtlc": 11, + "RcvdAddCommit": 12, + "SentAddRevocation": 13, + "SentAddAckCommit": 14, + "SentRemoveHtlc": 15, + "SentRemoveCommit": 16, + "RcvdRemoveRevocation": 17, + "RcvdRemoveAckCommit": 18, + "SentRemoveAckRevocation": 19, + } +) + +func (x HtlcState) Enum() *HtlcState { + p := new(HtlcState) + *p = x + return p +} + +func (x HtlcState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (HtlcState) Descriptor() protoreflect.EnumDescriptor { + return file_primitives_proto_enumTypes[2].Descriptor() +} + +func (HtlcState) Type() protoreflect.EnumType { + return &file_primitives_proto_enumTypes[2] +} + +func (x HtlcState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use HtlcState.Descriptor instead. +func (HtlcState) EnumDescriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{2} +} + +type ChannelTypeName int32 + +const ( + ChannelTypeName_static_remotekey_even ChannelTypeName = 0 + ChannelTypeName_anchor_outputs_even ChannelTypeName = 1 + ChannelTypeName_anchors_zero_fee_htlc_tx_even ChannelTypeName = 2 + ChannelTypeName_scid_alias_even ChannelTypeName = 3 + ChannelTypeName_zeroconf_even ChannelTypeName = 4 +) + +// Enum value maps for ChannelTypeName. +var ( + ChannelTypeName_name = map[int32]string{ + 0: "static_remotekey_even", + 1: "anchor_outputs_even", + 2: "anchors_zero_fee_htlc_tx_even", + 3: "scid_alias_even", + 4: "zeroconf_even", + } + ChannelTypeName_value = map[string]int32{ + "static_remotekey_even": 0, + "anchor_outputs_even": 1, + "anchors_zero_fee_htlc_tx_even": 2, + "scid_alias_even": 3, + "zeroconf_even": 4, + } +) + +func (x ChannelTypeName) Enum() *ChannelTypeName { + p := new(ChannelTypeName) + *p = x + return p +} + +func (x ChannelTypeName) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChannelTypeName) Descriptor() protoreflect.EnumDescriptor { + return file_primitives_proto_enumTypes[3].Descriptor() +} + +func (ChannelTypeName) Type() protoreflect.EnumType { + return &file_primitives_proto_enumTypes[3] +} + +func (x ChannelTypeName) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChannelTypeName.Descriptor instead. +func (ChannelTypeName) EnumDescriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{3} +} + +type Amount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msat uint64 `protobuf:"varint,1,opt,name=msat,proto3" json:"msat,omitempty"` +} + +func (x *Amount) Reset() { + *x = Amount{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Amount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Amount) ProtoMessage() {} + +func (x *Amount) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Amount.ProtoReflect.Descriptor instead. +func (*Amount) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{0} +} + +func (x *Amount) GetMsat() uint64 { + if x != nil { + return x.Msat + } + return 0 +} + +type AmountOrAll struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Value: + // + // *AmountOrAll_Amount + // *AmountOrAll_All + Value isAmountOrAll_Value `protobuf_oneof:"value"` +} + +func (x *AmountOrAll) Reset() { + *x = AmountOrAll{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AmountOrAll) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AmountOrAll) ProtoMessage() {} + +func (x *AmountOrAll) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AmountOrAll.ProtoReflect.Descriptor instead. +func (*AmountOrAll) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{1} +} + +func (m *AmountOrAll) GetValue() isAmountOrAll_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *AmountOrAll) GetAmount() *Amount { + if x, ok := x.GetValue().(*AmountOrAll_Amount); ok { + return x.Amount + } + return nil +} + +func (x *AmountOrAll) GetAll() bool { + if x, ok := x.GetValue().(*AmountOrAll_All); ok { + return x.All + } + return false +} + +type isAmountOrAll_Value interface { + isAmountOrAll_Value() +} + +type AmountOrAll_Amount struct { + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3,oneof"` +} + +type AmountOrAll_All struct { + All bool `protobuf:"varint,2,opt,name=all,proto3,oneof"` +} + +func (*AmountOrAll_Amount) isAmountOrAll_Value() {} + +func (*AmountOrAll_All) isAmountOrAll_Value() {} + +type AmountOrAny struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Value: + // + // *AmountOrAny_Amount + // *AmountOrAny_Any + Value isAmountOrAny_Value `protobuf_oneof:"value"` +} + +func (x *AmountOrAny) Reset() { + *x = AmountOrAny{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AmountOrAny) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AmountOrAny) ProtoMessage() {} + +func (x *AmountOrAny) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AmountOrAny.ProtoReflect.Descriptor instead. +func (*AmountOrAny) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{2} +} + +func (m *AmountOrAny) GetValue() isAmountOrAny_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *AmountOrAny) GetAmount() *Amount { + if x, ok := x.GetValue().(*AmountOrAny_Amount); ok { + return x.Amount + } + return nil +} + +func (x *AmountOrAny) GetAny() bool { + if x, ok := x.GetValue().(*AmountOrAny_Any); ok { + return x.Any + } + return false +} + +type isAmountOrAny_Value interface { + isAmountOrAny_Value() +} + +type AmountOrAny_Amount struct { + Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3,oneof"` +} + +type AmountOrAny_Any struct { + Any bool `protobuf:"varint,2,opt,name=any,proto3,oneof"` +} + +func (*AmountOrAny_Amount) isAmountOrAny_Value() {} + +func (*AmountOrAny_Any) isAmountOrAny_Value() {} + +type ChannelStateChangeCause struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ChannelStateChangeCause) Reset() { + *x = ChannelStateChangeCause{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelStateChangeCause) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelStateChangeCause) ProtoMessage() {} + +func (x *ChannelStateChangeCause) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelStateChangeCause.ProtoReflect.Descriptor instead. +func (*ChannelStateChangeCause) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{3} +} + +type Outpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"` + Outnum uint32 `protobuf:"varint,2,opt,name=outnum,proto3" json:"outnum,omitempty"` +} + +func (x *Outpoint) Reset() { + *x = Outpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Outpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Outpoint) ProtoMessage() {} + +func (x *Outpoint) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Outpoint.ProtoReflect.Descriptor instead. +func (*Outpoint) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{4} +} + +func (x *Outpoint) GetTxid() []byte { + if x != nil { + return x.Txid + } + return nil +} + +func (x *Outpoint) GetOutnum() uint32 { + if x != nil { + return x.Outnum + } + return 0 +} + +type Feerate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Style: + // + // *Feerate_Slow + // *Feerate_Normal + // *Feerate_Urgent + // *Feerate_Perkb + // *Feerate_Perkw + Style isFeerate_Style `protobuf_oneof:"style"` +} + +func (x *Feerate) Reset() { + *x = Feerate{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Feerate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Feerate) ProtoMessage() {} + +func (x *Feerate) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Feerate.ProtoReflect.Descriptor instead. +func (*Feerate) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{5} +} + +func (m *Feerate) GetStyle() isFeerate_Style { + if m != nil { + return m.Style + } + return nil +} + +func (x *Feerate) GetSlow() bool { + if x, ok := x.GetStyle().(*Feerate_Slow); ok { + return x.Slow + } + return false +} + +func (x *Feerate) GetNormal() bool { + if x, ok := x.GetStyle().(*Feerate_Normal); ok { + return x.Normal + } + return false +} + +func (x *Feerate) GetUrgent() bool { + if x, ok := x.GetStyle().(*Feerate_Urgent); ok { + return x.Urgent + } + return false +} + +func (x *Feerate) GetPerkb() uint32 { + if x, ok := x.GetStyle().(*Feerate_Perkb); ok { + return x.Perkb + } + return 0 +} + +func (x *Feerate) GetPerkw() uint32 { + if x, ok := x.GetStyle().(*Feerate_Perkw); ok { + return x.Perkw + } + return 0 +} + +type isFeerate_Style interface { + isFeerate_Style() +} + +type Feerate_Slow struct { + Slow bool `protobuf:"varint,1,opt,name=slow,proto3,oneof"` +} + +type Feerate_Normal struct { + Normal bool `protobuf:"varint,2,opt,name=normal,proto3,oneof"` +} + +type Feerate_Urgent struct { + Urgent bool `protobuf:"varint,3,opt,name=urgent,proto3,oneof"` +} + +type Feerate_Perkb struct { + Perkb uint32 `protobuf:"varint,4,opt,name=perkb,proto3,oneof"` +} + +type Feerate_Perkw struct { + Perkw uint32 `protobuf:"varint,5,opt,name=perkw,proto3,oneof"` +} + +func (*Feerate_Slow) isFeerate_Style() {} + +func (*Feerate_Normal) isFeerate_Style() {} + +func (*Feerate_Urgent) isFeerate_Style() {} + +func (*Feerate_Perkb) isFeerate_Style() {} + +func (*Feerate_Perkw) isFeerate_Style() {} + +type OutputDesc struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Amount *Amount `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *OutputDesc) Reset() { + *x = OutputDesc{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutputDesc) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutputDesc) ProtoMessage() {} + +func (x *OutputDesc) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutputDesc.ProtoReflect.Descriptor instead. +func (*OutputDesc) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{6} +} + +func (x *OutputDesc) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *OutputDesc) GetAmount() *Amount { + if x != nil { + return x.Amount + } + return nil +} + +type RouteHop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ShortChannelId string `protobuf:"bytes,2,opt,name=short_channel_id,json=shortChannelId,proto3" json:"short_channel_id,omitempty"` + Feebase *Amount `protobuf:"bytes,3,opt,name=feebase,proto3" json:"feebase,omitempty"` + Feeprop uint32 `protobuf:"varint,4,opt,name=feeprop,proto3" json:"feeprop,omitempty"` + Expirydelta uint32 `protobuf:"varint,5,opt,name=expirydelta,proto3" json:"expirydelta,omitempty"` +} + +func (x *RouteHop) Reset() { + *x = RouteHop{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RouteHop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteHop) ProtoMessage() {} + +func (x *RouteHop) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteHop.ProtoReflect.Descriptor instead. +func (*RouteHop) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{7} +} + +func (x *RouteHop) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +func (x *RouteHop) GetShortChannelId() string { + if x != nil { + return x.ShortChannelId + } + return "" +} + +func (x *RouteHop) GetFeebase() *Amount { + if x != nil { + return x.Feebase + } + return nil +} + +func (x *RouteHop) GetFeeprop() uint32 { + if x != nil { + return x.Feeprop + } + return 0 +} + +func (x *RouteHop) GetExpirydelta() uint32 { + if x != nil { + return x.Expirydelta + } + return 0 +} + +type Routehint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hops []*RouteHop `protobuf:"bytes,1,rep,name=hops,proto3" json:"hops,omitempty"` +} + +func (x *Routehint) Reset() { + *x = Routehint{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Routehint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Routehint) ProtoMessage() {} + +func (x *Routehint) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Routehint.ProtoReflect.Descriptor instead. +func (*Routehint) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{8} +} + +func (x *Routehint) GetHops() []*RouteHop { + if x != nil { + return x.Hops + } + return nil +} + +type RoutehintList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hints []*Routehint `protobuf:"bytes,2,rep,name=hints,proto3" json:"hints,omitempty"` +} + +func (x *RoutehintList) Reset() { + *x = RoutehintList{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RoutehintList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoutehintList) ProtoMessage() {} + +func (x *RoutehintList) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RoutehintList.ProtoReflect.Descriptor instead. +func (*RoutehintList) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{9} +} + +func (x *RoutehintList) GetHints() []*Routehint { + if x != nil { + return x.Hints + } + return nil +} + +type TlvEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type uint64 `protobuf:"varint,1,opt,name=type,proto3" json:"type,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *TlvEntry) Reset() { + *x = TlvEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TlvEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TlvEntry) ProtoMessage() {} + +func (x *TlvEntry) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TlvEntry.ProtoReflect.Descriptor instead. +func (*TlvEntry) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{10} +} + +func (x *TlvEntry) GetType() uint64 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *TlvEntry) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +type TlvStream struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entries []*TlvEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` +} + +func (x *TlvStream) Reset() { + *x = TlvStream{} + if protoimpl.UnsafeEnabled { + mi := &file_primitives_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TlvStream) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TlvStream) ProtoMessage() {} + +func (x *TlvStream) ProtoReflect() protoreflect.Message { + mi := &file_primitives_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TlvStream.ProtoReflect.Descriptor instead. +func (*TlvStream) Descriptor() ([]byte, []int) { + return file_primitives_proto_rawDescGZIP(), []int{11} +} + +func (x *TlvStream) GetEntries() []*TlvEntry { + if x != nil { + return x.Entries + } + return nil +} + +var File_primitives_proto protoreflect.FileDescriptor + +var file_primitives_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x03, 0x63, 0x6c, 0x6e, 0x22, 0x1c, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x04, 0x6d, 0x73, 0x61, 0x74, 0x22, 0x51, 0x0a, 0x0b, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, + 0x72, 0x41, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x61, + 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x42, + 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x51, 0x0a, 0x0b, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x4f, 0x72, 0x41, 0x6e, 0x79, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, + 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x61, + 0x6e, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x43, 0x61, 0x75, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x08, 0x4f, 0x75, 0x74, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x78, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x74, 0x78, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x6e, 0x75, 0x6d, 0x22, 0x8c, + 0x01, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x6c, + 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x77, + 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x06, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x06, 0x75, 0x72, + 0x67, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x72, + 0x67, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x70, 0x65, 0x72, 0x6b, 0x62, 0x12, 0x16, 0x0a, 0x05, + 0x70, 0x65, 0x72, 0x6b, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x70, + 0x65, 0x72, 0x6b, 0x77, 0x42, 0x07, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x4b, 0x0a, + 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x48, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x72, 0x74, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x07, 0x66, 0x65, 0x65, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x70, + 0x72, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x65, 0x65, 0x70, 0x72, + 0x6f, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x64, 0x65, 0x6c, 0x74, + 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x64, + 0x65, 0x6c, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69, 0x6e, + 0x74, 0x12, 0x21, 0x0a, 0x04, 0x68, 0x6f, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x6f, 0x70, 0x52, 0x04, + 0x68, 0x6f, 0x70, 0x73, 0x22, 0x35, 0x0a, 0x0d, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x68, 0x69, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x68, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x34, 0x0a, 0x08, 0x54, + 0x6c, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0x34, 0x0a, 0x09, 0x54, 0x6c, 0x76, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x27, + 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x63, 0x6c, 0x6e, 0x2e, 0x54, 0x6c, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x2a, 0x24, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x53, 0x69, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x01, 0x2a, 0xa0, 0x02, + 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0c, + 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x64, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, + 0x4c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x64, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, 0x53, 0x68, 0x75, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x44, 0x6f, 0x77, 0x6e, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x6c, 0x6f, 0x73, 0x69, 0x6e, + 0x67, 0x64, 0x53, 0x69, 0x67, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x04, 0x12, + 0x14, 0x0a, 0x10, 0x43, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, + 0x67, 0x55, 0x6e, 0x69, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x14, 0x0a, + 0x10, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x65, + 0x6e, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x6e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x10, 0x08, + 0x12, 0x15, 0x0a, 0x11, 0x44, 0x75, 0x61, 0x6c, 0x6f, 0x70, 0x65, 0x6e, 0x64, 0x4f, 0x70, 0x65, + 0x6e, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x75, 0x61, 0x6c, 0x6f, + 0x70, 0x65, 0x6e, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x63, 0x6b, + 0x69, 0x6e, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x64, + 0x41, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x10, 0x0b, + 0x2a, 0xd5, 0x03, 0x0a, 0x09, 0x48, 0x74, 0x6c, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, + 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x10, 0x00, 0x12, + 0x11, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x63, 0x76, 0x64, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x63, 0x76, + 0x64, 0x41, 0x64, 0x64, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x03, 0x12, + 0x18, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x76, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x63, 0x76, + 0x64, 0x41, 0x64, 0x64, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x63, 0x76, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x48, 0x74, 0x6c, 0x63, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x63, 0x76, 0x64, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x07, 0x12, 0x18, 0x0a, + 0x14, 0x53, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x09, + 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x63, 0x76, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, + 0x6b, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0a, 0x12, 0x0f, 0x0a, + 0x0b, 0x52, 0x63, 0x76, 0x64, 0x41, 0x64, 0x64, 0x48, 0x74, 0x6c, 0x63, 0x10, 0x0b, 0x12, 0x11, + 0x0a, 0x0d, 0x52, 0x63, 0x76, 0x64, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, + 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x65, 0x76, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x74, + 0x41, 0x64, 0x64, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x0e, 0x12, 0x12, + 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x74, 0x6c, 0x63, + 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x10, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x63, 0x76, 0x64, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x10, 0x11, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x63, 0x76, 0x64, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x12, 0x12, 0x1b, 0x0a, 0x17, 0x53, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x63, 0x6b, 0x52, 0x65, 0x76, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x13, 0x2a, 0x90, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x15, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x6b, 0x65, 0x79, + 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x61, 0x6e, 0x63, 0x68, 0x6f, + 0x72, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x10, 0x01, + 0x12, 0x21, 0x0a, 0x1d, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x73, 0x5f, 0x7a, 0x65, 0x72, 0x6f, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x68, 0x74, 0x6c, 0x63, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x76, 0x65, + 0x6e, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x63, 0x69, 0x64, 0x5f, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x7a, 0x65, 0x72, 0x6f, + 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x10, 0x04, 0x42, 0x1f, 0x5a, 0x1d, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x72, 0x65, 0x65, 0x7a, 0x2f, + 0x6c, 0x73, 0x70, 0x64, 0x2f, 0x63, 0x6c, 0x6e, 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_primitives_proto_rawDescOnce sync.Once + file_primitives_proto_rawDescData = file_primitives_proto_rawDesc +) + +func file_primitives_proto_rawDescGZIP() []byte { + file_primitives_proto_rawDescOnce.Do(func() { + file_primitives_proto_rawDescData = protoimpl.X.CompressGZIP(file_primitives_proto_rawDescData) + }) + return file_primitives_proto_rawDescData +} + +var file_primitives_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_primitives_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_primitives_proto_goTypes = []interface{}{ + (ChannelSide)(0), // 0: cln.ChannelSide + (ChannelState)(0), // 1: cln.ChannelState + (HtlcState)(0), // 2: cln.HtlcState + (ChannelTypeName)(0), // 3: cln.ChannelTypeName + (*Amount)(nil), // 4: cln.Amount + (*AmountOrAll)(nil), // 5: cln.AmountOrAll + (*AmountOrAny)(nil), // 6: cln.AmountOrAny + (*ChannelStateChangeCause)(nil), // 7: cln.ChannelStateChangeCause + (*Outpoint)(nil), // 8: cln.Outpoint + (*Feerate)(nil), // 9: cln.Feerate + (*OutputDesc)(nil), // 10: cln.OutputDesc + (*RouteHop)(nil), // 11: cln.RouteHop + (*Routehint)(nil), // 12: cln.Routehint + (*RoutehintList)(nil), // 13: cln.RoutehintList + (*TlvEntry)(nil), // 14: cln.TlvEntry + (*TlvStream)(nil), // 15: cln.TlvStream +} +var file_primitives_proto_depIdxs = []int32{ + 4, // 0: cln.AmountOrAll.amount:type_name -> cln.Amount + 4, // 1: cln.AmountOrAny.amount:type_name -> cln.Amount + 4, // 2: cln.OutputDesc.amount:type_name -> cln.Amount + 4, // 3: cln.RouteHop.feebase:type_name -> cln.Amount + 11, // 4: cln.Routehint.hops:type_name -> cln.RouteHop + 12, // 5: cln.RoutehintList.hints:type_name -> cln.Routehint + 14, // 6: cln.TlvStream.entries:type_name -> cln.TlvEntry + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_primitives_proto_init() } +func file_primitives_proto_init() { + if File_primitives_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_primitives_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Amount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AmountOrAll); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AmountOrAny); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelStateChangeCause); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Outpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Feerate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutputDesc); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RouteHop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Routehint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RoutehintList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TlvEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_primitives_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TlvStream); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_primitives_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*AmountOrAll_Amount)(nil), + (*AmountOrAll_All)(nil), + } + file_primitives_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*AmountOrAny_Amount)(nil), + (*AmountOrAny_Any)(nil), + } + file_primitives_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*Feerate_Slow)(nil), + (*Feerate_Normal)(nil), + (*Feerate_Urgent)(nil), + (*Feerate_Perkb)(nil), + (*Feerate_Perkw)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_primitives_proto_rawDesc, + NumEnums: 4, + NumMessages: 12, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_primitives_proto_goTypes, + DependencyIndexes: file_primitives_proto_depIdxs, + EnumInfos: file_primitives_proto_enumTypes, + MessageInfos: file_primitives_proto_msgTypes, + }.Build() + File_primitives_proto = out.File + file_primitives_proto_rawDesc = nil + file_primitives_proto_goTypes = nil + file_primitives_proto_depIdxs = nil +} diff --git a/cln/rpc/primitives.proto b/cln/rpc/primitives.proto new file mode 100644 index 00000000..78836119 --- /dev/null +++ b/cln/rpc/primitives.proto @@ -0,0 +1,120 @@ +syntax = "proto3"; +package cln; +option go_package = "github.com/breez/lspd/cln/rpc"; + +// This file was taken from cln v24.02.1 + +message Amount { + uint64 msat = 1; +} + +message AmountOrAll { + oneof value { + Amount amount = 1; + bool all = 2; + } +} + +message AmountOrAny { + oneof value { + Amount amount = 1; + bool any = 2; + } +} + +enum ChannelSide { + LOCAL = 0; + REMOTE = 1; +} + +enum ChannelState { + Openingd = 0; + ChanneldAwaitingLockin = 1; + ChanneldNormal = 2; + ChanneldShuttingDown = 3; + ClosingdSigexchange = 4; + ClosingdComplete = 5; + AwaitingUnilateral = 6; + FundingSpendSeen = 7; + Onchain = 8; + DualopendOpenInit = 9; + DualopendAwaitingLockin = 10; + ChanneldAwaitingSplice = 11; +} + +enum HtlcState { + SentAddHtlc = 0; + SentAddCommit = 1; + RcvdAddRevocation = 2; + RcvdAddAckCommit = 3; + SentAddAckRevocation = 4; + RcvdAddAckRevocation = 5; + RcvdRemoveHtlc = 6; + RcvdRemoveCommit = 7; + SentRemoveRevocation = 8; + SentRemoveAckCommit = 9; + RcvdRemoveAckRevocation = 10; + RcvdAddHtlc = 11; + RcvdAddCommit = 12; + SentAddRevocation = 13; + SentAddAckCommit = 14; + SentRemoveHtlc = 15; + SentRemoveCommit = 16; + RcvdRemoveRevocation = 17; + RcvdRemoveAckCommit = 18; + SentRemoveAckRevocation = 19; +} + +message ChannelStateChangeCause {} + +message Outpoint { + bytes txid = 1; + uint32 outnum = 2; +} + +message Feerate { + oneof style { + bool slow = 1; + bool normal = 2; + bool urgent = 3; + uint32 perkb = 4; + uint32 perkw = 5; + } +} + +message OutputDesc { + string address = 1; + Amount amount = 2; +} + +message RouteHop { + bytes id = 1; + string short_channel_id = 2; + Amount feebase = 3; + uint32 feeprop = 4; + uint32 expirydelta = 5; +} +message Routehint { + repeated RouteHop hops = 1; +} +message RoutehintList { + repeated Routehint hints = 2; +} + + +message TlvEntry { + uint64 type = 1; + bytes value = 2; +} + +message TlvStream { + repeated TlvEntry entries = 1; +} + +enum ChannelTypeName { + static_remotekey_even = 0; + anchor_outputs_even = 1; + anchors_zero_fee_htlc_tx_even = 2; + scid_alias_even = 3; + zeroconf_even = 4; +} diff --git a/cmd/lspd/main.go b/cmd/lspd/main.go index ac44ed16..504a8b1c 100644 --- a/cmd/lspd/main.go +++ b/cmd/lspd/main.go @@ -141,7 +141,7 @@ func main() { } if node.NodeConfig.Cln != nil { - client, err := cln.NewClnClient(node.NodeConfig.Cln.SocketPath) + client, err := cln.NewClnClient(node.NodeConfig.Cln) if err != nil { log.Fatalf("failed to initialize CLN client: %v", err) } @@ -293,7 +293,16 @@ func initializeNodes(configs []*config.NodeConfig) ([]*common.Node, error) { } if config.Cln != nil { - node.Client, err = cln.NewClnClient(config.Cln.SocketPath) + if caCert, err := os.ReadFile(config.Cln.CaCert); err == nil { + config.Cln.CaCert = string(caCert) + } + if clientCert, err := os.ReadFile(config.Cln.ClientCert); err == nil { + config.Cln.ClientCert = string(clientCert) + } + if clientKey, err := os.ReadFile(config.Cln.ClientKey); err == nil { + config.Cln.ClientKey = string(clientKey) + } + node.Client, err = cln.NewClnClient(config.Cln) if err != nil { return nil, err } diff --git a/config/config.go b/config/config.go index 19157413..48a0ecf6 100644 --- a/config/config.go +++ b/config/config.go @@ -114,7 +114,18 @@ type ClnConfig struct { // The address to the cln htlc acceptor grpc api shipped with lspd. PluginAddress string `json:"pluginAddress"` - // File path to the cln lightning-roc socket file. Find the path in - // cln-dir/mainnet/lightning-rpc - SocketPath string `json:"socketPath"` + // The address to the cln grpc api. + GrpcAddress string `json:"grpcAddress"` + + // CA cert for grpc access. Can either be a file path or the cert contents. + // Typically stored in `lightningd-dir/mainnet/ca.pem`. + CaCert string `json:"caCert"` + + // Client cert for grpc access. Can either be a file path or the cert + // contents. Typically stored in `lightningd-dir/{network}/client.pem`. + ClientCert string `json:"clientCert"` + + // Client key for grpc access. Can either be a file path or the key + // contents. Typically stored in `lightningd-dir/{network}/client-key.pem`. + ClientKey string `json:"clientKey"` } diff --git a/deploy/deploy.yml b/deploy/deploy.yml index 68b3e12d..bf67e0a5 100644 --- a/deploy/deploy.yml +++ b/deploy/deploy.yml @@ -233,6 +233,7 @@ Resources: wallet=postgres://lightning:$LIGHTNING_DB_PASSWORD@localhost:5432/lightning plugin=/home/lightning/.lightning/plugins/lspd_cln_plugin lsp-listen=127.0.0.1:12312 + grpc-port=12313 max-concurrent-htlcs=30 dev-allowdustreserve=true log-file=/var/log/lightningd/lightningd.log @@ -333,7 +334,7 @@ Resources: MEMPOOL_API_BASE_URL=https://mempool.space/api/v1/ MEMPOOL_PRIORITY=economy - NODES='[ { "name": "${LSPName}", "nodePubkey": "$PUBKEY", "lspdPrivateKey": "$LSPD_PRIVATE_KEY", "tokens": ["$TOKEN"], "host": "$EXTERNAL_IP:9735", "targetConf": "6", "minConfs": "6", "minHtlcMsat": "600", "baseFeeMsat": "1000", "feeRate": "0.000001", "timeLockDelta": "144", "channelFeePermyriad": "40", "channelMinimumFeeMsat": "2000000", "additionalChannelCapacity": "100000", "maxInactiveDuration": "3888000", "cln": { "pluginAddress": "127.0.0.1:12312", "socketPath": "/home/lightning/.lightning/bitcoin/lightning-rpc" } } ]' + NODES='[ { "name": "${LSPName}", "nodePubkey": "$PUBKEY", "lspdPrivateKey": "$LSPD_PRIVATE_KEY", "tokens": ["$TOKEN"], "host": "$EXTERNAL_IP:9735", "targetConf": "6", "minConfs": "6", "minHtlcMsat": "600", "baseFeeMsat": "1000", "feeRate": "0.000001", "timeLockDelta": "144", "channelFeePermyriad": "40", "channelMinimumFeeMsat": "2000000", "additionalChannelCapacity": "100000", "maxInactiveDuration": "3888000", "cln": { "pluginAddress": "127.0.0.1:12312", "grpcAddress": "127.0.0.1:12313", "caCert": "/home/lightning/.lightning/mainnet/ca.pem", "clientCert": "/home/lightning/.lightning/mainnet/client.pem", "clientKey": "/home/lightning/.lightning/mainnet/client-key.pem" } } ]' EOL sudo systemctl start lspd.service diff --git a/deploy/lspd-install.sh b/deploy/lspd-install.sh index 6ab75384..c77c4c72 100644 --- a/deploy/lspd-install.sh +++ b/deploy/lspd-install.sh @@ -164,6 +164,7 @@ alias="${LSPName}" wallet=postgres://lightning:$LIGHTNING_DB_PASSWORD@localhost:5432/lightning plugin=/home/lightning/.lightning/plugins/lspd_cln_plugin lsp-listen=127.0.0.1:12312 +grpc-port=12313 max-concurrent-htlcs=30 dev-allowdustreserve=true log-file=/var/log/lightningd/lightningd.log @@ -264,7 +265,7 @@ CHANNELMISMATCH_NOTIFICATION_FROM="replaceme@example.com" MEMPOOL_API_BASE_URL=https://mempool.space/api/v1/ MEMPOOL_PRIORITY=economy -NODES='[ { "name": "${LSPName}", "nodePubkey": "$PUBKEY", "lspdPrivateKey": "$LSPD_PRIVATE_KEY", "tokens": ["$TOKEN"], "host": "$EXTERNAL_IP:9735", "targetConf": "6", "minConfs": "6", "minHtlcMsat": "600", "baseFeeMsat": "1000", "feeRate": "0.000001", "timeLockDelta": "144", "channelFeePermyriad": "40", "channelMinimumFeeMsat": "2000000", "additionalChannelCapacity": "100000", "maxInactiveDuration": "3888000", "cln": { "pluginAddress": "127.0.0.1:12312", "socketPath": "/home/lightning/.lightning/bitcoin/lightning-rpc" } } ]' +NODES='[ { "name": "${LSPName}", "nodePubkey": "$PUBKEY", "lspdPrivateKey": "$LSPD_PRIVATE_KEY", "tokens": ["$TOKEN"], "host": "$EXTERNAL_IP:9735", "targetConf": "6", "minConfs": "6", "minHtlcMsat": "600", "baseFeeMsat": "1000", "feeRate": "0.000001", "timeLockDelta": "144", "channelFeePermyriad": "40", "channelMinimumFeeMsat": "2000000", "additionalChannelCapacity": "100000", "maxInactiveDuration": "3888000", "cln": { "pluginAddress": "127.0.0.1:12312", "grpcAddress": "127.0.0.1:12313", "caCert": "/home/lightning/.lightning/mainnet/ca.pem", "clientCert": "/home/lightning/.lightning/mainnet/client.pem", "clientKey": "/home/lightning/.lightning/mainnet/client-key.pem" } } ]' EOL sudo systemctl start lspd.service diff --git a/docs/CLN.md b/docs/CLN.md index b0a917f9..5ef0a7a6 100644 --- a/docs/CLN.md +++ b/docs/CLN.md @@ -56,7 +56,7 @@ ENV variables: Example of NODES variable: ``` -NODES='[ { "name": "${LSPName}", "nodePubkey": "$PUBKEY", "lspdPrivateKey": "$LSPD_PRIVATE_KEY", "tokens": ["$TOKEN"], "host": "$EXTERNAL_IP:9735", "targetConf": "6", "minConfs": "6", "minHtlcMsat": "600", "baseFeeMsat": "1000", "feeRate": "0.000001", "timeLockDelta": "144", "channelFeePermyriad": "40", "channelMinimumFeeMsat": "2000000", "additionalChannelCapacity": "100000", "maxInactiveDuration": "3888000", "cln": { "pluginAddress": "127.0.0.1:12312", "socketPath": "/home/lightning/.lightning/bitcoin/lightning-rpc" } } ]' +NODES='[ { "name": "${LSPName}", "nodePubkey": "$PUBKEY", "lspdPrivateKey": "$LSPD_PRIVATE_KEY", "tokens": ["$TOKEN"], "host": "$EXTERNAL_IP:9735", "targetConf": "6", "minConfs": "6", "minHtlcMsat": "600", "baseFeeMsat": "1000", "feeRate": "0.000001", "timeLockDelta": "144", "channelFeePermyriad": "40", "channelMinimumFeeMsat": "2000000", "additionalChannelCapacity": "100000", "maxInactiveDuration": "3888000", "cln": { "pluginAddress": "127.0.0.1:12312", "grpcAddress": "127.0.0.1:12313", "caCert": "/home/lightning/.lightning/mainnet/ca.pem", "clientCert": "/home/lightning/.lightning/mainnet/client.pem", "clientKey": "/home/lightning/.lightning/mainnet/client-key.pem" } } ]' ``` ### Running lspd on CLN @@ -68,6 +68,7 @@ In order to run lspd on top of CLN, you need to run the lspd process and run cln - `--max-concurrent-htlcs=30`: In order to use zero reserve channels on the client side, (local max_accepted_htlcs + remote max_accepted_htlcs + 2) * dust limit must be lower than the channel capacity. Reduce max-concurrent-htlcs or increase channel capacity accordingly. - `--dev-allowdustreserve=true`: In order to allow zero reserve on the client side (requires developer mode turned on) - `--lsp-listen=127.0.0.1:`: Set on which port the lspd_cln_plugin will listen for lspd communication, must be the same port that is used in pluginAddress parameter in NODES env variable. + - `--grpc-port=`: Set on which port the cln grpc server will listen. 1. Run lspd ### Final step diff --git a/go.mod b/go.mod index 96bd72eb..45ed8183 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.19 require ( github.com/GoWebProd/uuid7 v0.0.0-20230623091058-5f5954faed6a github.com/aws/aws-sdk-go v1.34.0 - github.com/breez/lntest v0.0.30-0.20240301123156-3c1dcbf88c1d + github.com/breez/lntest v0.0.30-0.20240324204336-6f828e9fca8f github.com/btcsuite/btcd v0.23.5-0.20230905170901-80f5a0ffdf36 github.com/btcsuite/btcd/btcec/v2 v2.3.2 github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 @@ -13,7 +13,6 @@ require ( github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 github.com/docker/docker v20.10.27+incompatible github.com/docker/go-connections v0.4.0 - github.com/elementsproject/glightning v0.0.0-20230525134205-ef34d849f564 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/jackc/pgtype v1.14.0 github.com/jackc/pgx/v5 v5.4.3 @@ -37,6 +36,7 @@ require ( github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect + github.com/elementsproject/glightning v0.0.0-20230525134205-ef34d849f564 // indirect github.com/ethereum/go-ethereum v1.13.5 // indirect github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect diff --git a/go.sum b/go.sum index 750cf93d..9549930c 100644 --- a/go.sum +++ b/go.sum @@ -172,8 +172,8 @@ github.com/breez/glightning v0.0.1-breez.0.20231123140102-d50d43e22138 h1:qNHyE7 github.com/breez/glightning v0.0.1-breez.0.20231123140102-d50d43e22138/go.mod h1:YAdIeSyx8VEhDCtEaGOJLmWNpPaQ3x4vYSAj9Vrppdo= github.com/breez/lnd v0.15.0-beta.rc6.0.20231122093500-0c939786ced7 h1:RLHCG90jBAE8wNCUFMeu7j4LNbXWdV8BOsVZtmsTFpk= github.com/breez/lnd v0.15.0-beta.rc6.0.20231122093500-0c939786ced7/go.mod h1:AOHMNILUI56HaVlVMai+ComGHsxMzMMCoxqFwN0wmvw= -github.com/breez/lntest v0.0.30-0.20240301123156-3c1dcbf88c1d h1:7MMuYkpZjlHLhzRcH2K7G4Lgl8t2e/CD+Zo1ysPl0oA= -github.com/breez/lntest v0.0.30-0.20240301123156-3c1dcbf88c1d/go.mod h1:TYaPUDOmJyag/+ezQFvMD3Qqwos8QIEE36CP06gwQUU= +github.com/breez/lntest v0.0.30-0.20240324204336-6f828e9fca8f h1:EnpiiJxDGFVO1waxiz/YTCn1sboN+O7gZJ6G9DbDlDk= +github.com/breez/lntest v0.0.30-0.20240324204336-6f828e9fca8f/go.mod h1:TYaPUDOmJyag/+ezQFvMD3Qqwos8QIEE36CP06gwQUU= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.22.0-beta.0.20220204213055-eaf0459ff879/go.mod h1:osu7EoKiL36UThEgzYPqdRaxeo0NU8VoXqgcnwpey0g= diff --git a/itest/cln_lspd_node.go b/itest/cln_lspd_node.go index c17447c1..fa0a52ee 100644 --- a/itest/cln_lspd_node.go +++ b/itest/cln_lspd_node.go @@ -67,7 +67,10 @@ func NewClnLspdNode(h *lntest.TestHarness, m *lntest.Miner, mem *mempoolApi, nam lightningNode := lntest.NewClnNode(h, m, name, args...) cln := &config.ClnConfig{ PluginAddress: pluginAddress, - SocketPath: filepath.Join(lightningNode.SocketDir(), lightningNode.SocketFile()), + GrpcAddress: fmt.Sprintf("localhost:%d", lightningNode.GrpcPort()), + CaCert: lightningNode.CaCertPath(), + ClientCert: lightningNode.ClientCertPath(), + ClientKey: lightningNode.ClientKeyPath(), } lspbase, err := newLspd(h, mem, name, nodeConfig, nil, cln) if err != nil {