Merge pull request #2434 from valentinewallace/fwding-policy-max-htlc

Set max HTLC in forwarding policies.
This commit is contained in:
Olaoluwa Osuntokun 2019-02-25 12:43:15 -03:00 committed by GitHub
commit b13d8cd261
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 699 additions and 564 deletions

@ -71,6 +71,9 @@ type ForwardingPolicy struct {
// lifetime of the channel. // lifetime of the channel.
MinHTLC lnwire.MilliSatoshi MinHTLC lnwire.MilliSatoshi
// MaxHTLC is the largest HTLC that is to be forwarded.
MaxHTLC lnwire.MilliSatoshi
// BaseFee is the base fee, expressed in milli-satoshi that must be // BaseFee is the base fee, expressed in milli-satoshi that must be
// paid for each incoming HTLC. This field, combined with FeeRate is // paid for each incoming HTLC. This field, combined with FeeRate is
// used to compute the required fee for a given HTLC. // used to compute the required fee for a given HTLC.
@ -1964,6 +1967,25 @@ func (l *channelLink) HtlcSatifiesPolicy(payHash [32]byte,
return failure return failure
} }
// Next, ensure that the passed HTLC isn't too large. If so, we'll cancel
// the HTLC directly.
if policy.MaxHTLC != 0 && amtToForward > policy.MaxHTLC {
l.errorf("outgoing htlc(%x) is too large: max_htlc=%v, "+
"htlc_value=%v", payHash[:], policy.MaxHTLC, amtToForward)
// As part of the returned error, we'll send our latest routing policy
// so the sending node obtains the most up-to-date data.
var failure lnwire.FailureMessage
update, err := l.cfg.FetchLastChannelUpdate(l.ShortChanID())
if err != nil {
failure = &lnwire.FailTemporaryNodeFailure{}
} else {
failure = lnwire.NewTemporaryChannelFailure(update)
}
return failure
}
// Next, using the amount of the incoming HTLC, we'll calculate the // Next, using the amount of the incoming HTLC, we'll calculate the
// expected fee this incoming HTLC must carry in order to satisfy the // expected fee this incoming HTLC must carry in order to satisfy the
// constraints of the outgoing link. // constraints of the outgoing link.

@ -772,6 +772,73 @@ func TestLinkForwardMinHTLCPolicyMismatch(t *testing.T) {
} }
} }
// TestLinkForwardMaxHTLCPolicyMismatch tests that if a node is an intermediate
// node and receives an HTLC which is _above_ its max HTLC policy then the
// HTLC will be rejected.
func TestLinkForwardMaxHTLCPolicyMismatch(t *testing.T) {
t.Parallel()
channels, cleanUp, _, err := createClusterChannels(
btcutil.SatoshiPerBitcoin*5, btcutil.SatoshiPerBitcoin*5,
)
if err != nil {
t.Fatalf("unable to create channel: %v", err)
}
defer cleanUp()
n := newThreeHopNetwork(
t, channels.aliceToBob, channels.bobToAlice, channels.bobToCarol,
channels.carolToBob, testStartingHeight,
)
if err := n.start(); err != nil {
t.Fatal(err)
}
defer n.stop()
// In order to trigger this failure mode, we'll update our policy to have
// a new max HTLC of 10 satoshis.
maxHtlc := lnwire.NewMSatFromSatoshis(10)
// First we'll generate a route over 2 hops within the network that
// attempts to pay out an amount greater than the max HTLC we're about to
// set.
amountNoFee := maxHtlc + 1
htlcAmt, htlcExpiry, hops := generateHops(
amountNoFee, testStartingHeight, n.firstBobChannelLink,
n.carolChannelLink,
)
// We'll now update Bob's policy to set the max HTLC we chose earlier.
n.secondBobChannelLink.cfg.FwrdingPolicy.MaxHTLC = maxHtlc
// Finally, we'll make the payment which'll send an HTLC with our
// specified parameters.
firstHop := n.firstBobChannelLink.ShortChanID()
_, err = makePayment(
n.aliceServer, n.carolServer, firstHop, hops, amountNoFee,
htlcAmt, htlcExpiry,
).Wait(30 * time.Second)
// We should get an error indicating a temporary channel failure, The
// failure is temporary because this payment would be allowed if Bob
// updated his policy to increase the max HTLC.
if err == nil {
t.Fatalf("payment should have failed but didn't")
}
ferr, ok := err.(*ForwardingError)
if !ok {
t.Fatalf("expected a ForwardingError, instead got: %T", err)
}
switch ferr.FailureMessage.(type) {
case *lnwire.FailTemporaryChannelFailure:
default:
t.Fatalf("incorrect error, expected temporary channel failure, "+
"instead have: %v", err)
}
}
// TestUpdateForwardingPolicy tests that the forwarding policy for a link is // TestUpdateForwardingPolicy tests that the forwarding policy for a link is
// able to be updated properly. We'll first create an HTLC that meets the // able to be updated properly. We'll first create an HTLC that meets the
// specified policy, assert that it succeeds, update the policy (to invalidate // specified policy, assert that it succeeds, update the policy (to invalidate
@ -1528,6 +1595,7 @@ func newSingleLinkTestHarness(chanAmt, chanReserve btcutil.Amount) (
} }
globalPolicy = ForwardingPolicy{ globalPolicy = ForwardingPolicy{
MinHTLC: lnwire.NewMSatFromSatoshis(5), MinHTLC: lnwire.NewMSatFromSatoshis(5),
MaxHTLC: lnwire.NewMSatFromSatoshis(chanAmt),
BaseFee: lnwire.NewMSatFromSatoshis(1), BaseFee: lnwire.NewMSatFromSatoshis(1),
TimeLockDelta: 6, TimeLockDelta: 6,
} }
@ -5400,6 +5468,7 @@ func TestHtlcSatisfyPolicy(t *testing.T) {
FwrdingPolicy: ForwardingPolicy{ FwrdingPolicy: ForwardingPolicy{
TimeLockDelta: 20, TimeLockDelta: 20,
MinHTLC: 500, MinHTLC: 500,
MaxHTLC: 1000,
BaseFee: 10, BaseFee: 10,
}, },
FetchLastChannelUpdate: fetchLastChannelUpdate, FetchLastChannelUpdate: fetchLastChannelUpdate,
@ -5424,6 +5493,14 @@ func TestHtlcSatisfyPolicy(t *testing.T) {
} }
}) })
t.Run("above maxhtlc", func(t *testing.T) {
result := link.HtlcSatifiesPolicy(hash, 1500, 1200,
200, 150, 0)
if _, ok := result.(*lnwire.FailTemporaryChannelFailure); !ok {
t.Fatalf("expected FailTemporaryChannelFailure failure code")
}
})
t.Run("insufficient fee", func(t *testing.T) { t.Run("insufficient fee", func(t *testing.T) {
result := link.HtlcSatifiesPolicy(hash, 1005, 1000, result := link.HtlcSatifiesPolicy(hash, 1005, 1000,
200, 150, 0) 200, 150, 0)

@ -49,7 +49,7 @@ func (x AddressType) String() string {
return proto.EnumName(AddressType_name, int32(x)) return proto.EnumName(AddressType_name, int32(x))
} }
func (AddressType) EnumDescriptor() ([]byte, []int) { func (AddressType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{0} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{0}
} }
type ChannelCloseSummary_ClosureType int32 type ChannelCloseSummary_ClosureType int32
@ -84,7 +84,7 @@ func (x ChannelCloseSummary_ClosureType) String() string {
return proto.EnumName(ChannelCloseSummary_ClosureType_name, int32(x)) return proto.EnumName(ChannelCloseSummary_ClosureType_name, int32(x))
} }
func (ChannelCloseSummary_ClosureType) EnumDescriptor() ([]byte, []int) { func (ChannelCloseSummary_ClosureType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{39, 0} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{39, 0}
} }
type ChannelEventUpdate_UpdateType int32 type ChannelEventUpdate_UpdateType int32
@ -113,7 +113,7 @@ func (x ChannelEventUpdate_UpdateType) String() string {
return proto.EnumName(ChannelEventUpdate_UpdateType_name, int32(x)) return proto.EnumName(ChannelEventUpdate_UpdateType_name, int32(x))
} }
func (ChannelEventUpdate_UpdateType) EnumDescriptor() ([]byte, []int) { func (ChannelEventUpdate_UpdateType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{60, 0} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{60, 0}
} }
type Invoice_InvoiceState int32 type Invoice_InvoiceState int32
@ -139,7 +139,7 @@ func (x Invoice_InvoiceState) String() string {
return proto.EnumName(Invoice_InvoiceState_name, int32(x)) return proto.EnumName(Invoice_InvoiceState_name, int32(x))
} }
func (Invoice_InvoiceState) EnumDescriptor() ([]byte, []int) { func (Invoice_InvoiceState) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{89, 0} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{89, 0}
} }
type GenSeedRequest struct { type GenSeedRequest struct {
@ -160,7 +160,7 @@ func (m *GenSeedRequest) Reset() { *m = GenSeedRequest{} }
func (m *GenSeedRequest) String() string { return proto.CompactTextString(m) } func (m *GenSeedRequest) String() string { return proto.CompactTextString(m) }
func (*GenSeedRequest) ProtoMessage() {} func (*GenSeedRequest) ProtoMessage() {}
func (*GenSeedRequest) Descriptor() ([]byte, []int) { func (*GenSeedRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{0} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{0}
} }
func (m *GenSeedRequest) XXX_Unmarshal(b []byte) error { func (m *GenSeedRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GenSeedRequest.Unmarshal(m, b) return xxx_messageInfo_GenSeedRequest.Unmarshal(m, b)
@ -215,7 +215,7 @@ func (m *GenSeedResponse) Reset() { *m = GenSeedResponse{} }
func (m *GenSeedResponse) String() string { return proto.CompactTextString(m) } func (m *GenSeedResponse) String() string { return proto.CompactTextString(m) }
func (*GenSeedResponse) ProtoMessage() {} func (*GenSeedResponse) ProtoMessage() {}
func (*GenSeedResponse) Descriptor() ([]byte, []int) { func (*GenSeedResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{1} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{1}
} }
func (m *GenSeedResponse) XXX_Unmarshal(b []byte) error { func (m *GenSeedResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GenSeedResponse.Unmarshal(m, b) return xxx_messageInfo_GenSeedResponse.Unmarshal(m, b)
@ -280,7 +280,7 @@ func (m *InitWalletRequest) Reset() { *m = InitWalletRequest{} }
func (m *InitWalletRequest) String() string { return proto.CompactTextString(m) } func (m *InitWalletRequest) String() string { return proto.CompactTextString(m) }
func (*InitWalletRequest) ProtoMessage() {} func (*InitWalletRequest) ProtoMessage() {}
func (*InitWalletRequest) Descriptor() ([]byte, []int) { func (*InitWalletRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{2} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{2}
} }
func (m *InitWalletRequest) XXX_Unmarshal(b []byte) error { func (m *InitWalletRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InitWalletRequest.Unmarshal(m, b) return xxx_messageInfo_InitWalletRequest.Unmarshal(m, b)
@ -338,7 +338,7 @@ func (m *InitWalletResponse) Reset() { *m = InitWalletResponse{} }
func (m *InitWalletResponse) String() string { return proto.CompactTextString(m) } func (m *InitWalletResponse) String() string { return proto.CompactTextString(m) }
func (*InitWalletResponse) ProtoMessage() {} func (*InitWalletResponse) ProtoMessage() {}
func (*InitWalletResponse) Descriptor() ([]byte, []int) { func (*InitWalletResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{3} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{3}
} }
func (m *InitWalletResponse) XXX_Unmarshal(b []byte) error { func (m *InitWalletResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InitWalletResponse.Unmarshal(m, b) return xxx_messageInfo_InitWalletResponse.Unmarshal(m, b)
@ -380,7 +380,7 @@ func (m *UnlockWalletRequest) Reset() { *m = UnlockWalletRequest{} }
func (m *UnlockWalletRequest) String() string { return proto.CompactTextString(m) } func (m *UnlockWalletRequest) String() string { return proto.CompactTextString(m) }
func (*UnlockWalletRequest) ProtoMessage() {} func (*UnlockWalletRequest) ProtoMessage() {}
func (*UnlockWalletRequest) Descriptor() ([]byte, []int) { func (*UnlockWalletRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{4} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{4}
} }
func (m *UnlockWalletRequest) XXX_Unmarshal(b []byte) error { func (m *UnlockWalletRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnlockWalletRequest.Unmarshal(m, b) return xxx_messageInfo_UnlockWalletRequest.Unmarshal(m, b)
@ -424,7 +424,7 @@ func (m *UnlockWalletResponse) Reset() { *m = UnlockWalletResponse{} }
func (m *UnlockWalletResponse) String() string { return proto.CompactTextString(m) } func (m *UnlockWalletResponse) String() string { return proto.CompactTextString(m) }
func (*UnlockWalletResponse) ProtoMessage() {} func (*UnlockWalletResponse) ProtoMessage() {}
func (*UnlockWalletResponse) Descriptor() ([]byte, []int) { func (*UnlockWalletResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{5} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{5}
} }
func (m *UnlockWalletResponse) XXX_Unmarshal(b []byte) error { func (m *UnlockWalletResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UnlockWalletResponse.Unmarshal(m, b) return xxx_messageInfo_UnlockWalletResponse.Unmarshal(m, b)
@ -462,7 +462,7 @@ func (m *ChangePasswordRequest) Reset() { *m = ChangePasswordRequest{} }
func (m *ChangePasswordRequest) String() string { return proto.CompactTextString(m) } func (m *ChangePasswordRequest) String() string { return proto.CompactTextString(m) }
func (*ChangePasswordRequest) ProtoMessage() {} func (*ChangePasswordRequest) ProtoMessage() {}
func (*ChangePasswordRequest) Descriptor() ([]byte, []int) { func (*ChangePasswordRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{6} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{6}
} }
func (m *ChangePasswordRequest) XXX_Unmarshal(b []byte) error { func (m *ChangePasswordRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChangePasswordRequest.Unmarshal(m, b) return xxx_messageInfo_ChangePasswordRequest.Unmarshal(m, b)
@ -506,7 +506,7 @@ func (m *ChangePasswordResponse) Reset() { *m = ChangePasswordResponse{}
func (m *ChangePasswordResponse) String() string { return proto.CompactTextString(m) } func (m *ChangePasswordResponse) String() string { return proto.CompactTextString(m) }
func (*ChangePasswordResponse) ProtoMessage() {} func (*ChangePasswordResponse) ProtoMessage() {}
func (*ChangePasswordResponse) Descriptor() ([]byte, []int) { func (*ChangePasswordResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{7} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{7}
} }
func (m *ChangePasswordResponse) XXX_Unmarshal(b []byte) error { func (m *ChangePasswordResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChangePasswordResponse.Unmarshal(m, b) return xxx_messageInfo_ChangePasswordResponse.Unmarshal(m, b)
@ -548,7 +548,7 @@ func (m *Utxo) Reset() { *m = Utxo{} }
func (m *Utxo) String() string { return proto.CompactTextString(m) } func (m *Utxo) String() string { return proto.CompactTextString(m) }
func (*Utxo) ProtoMessage() {} func (*Utxo) ProtoMessage() {}
func (*Utxo) Descriptor() ([]byte, []int) { func (*Utxo) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{8} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{8}
} }
func (m *Utxo) XXX_Unmarshal(b []byte) error { func (m *Utxo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Utxo.Unmarshal(m, b) return xxx_messageInfo_Utxo.Unmarshal(m, b)
@ -636,7 +636,7 @@ func (m *Transaction) Reset() { *m = Transaction{} }
func (m *Transaction) String() string { return proto.CompactTextString(m) } func (m *Transaction) String() string { return proto.CompactTextString(m) }
func (*Transaction) ProtoMessage() {} func (*Transaction) ProtoMessage() {}
func (*Transaction) Descriptor() ([]byte, []int) { func (*Transaction) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{9} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{9}
} }
func (m *Transaction) XXX_Unmarshal(b []byte) error { func (m *Transaction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Transaction.Unmarshal(m, b) return xxx_messageInfo_Transaction.Unmarshal(m, b)
@ -722,7 +722,7 @@ func (m *GetTransactionsRequest) Reset() { *m = GetTransactionsRequest{}
func (m *GetTransactionsRequest) String() string { return proto.CompactTextString(m) } func (m *GetTransactionsRequest) String() string { return proto.CompactTextString(m) }
func (*GetTransactionsRequest) ProtoMessage() {} func (*GetTransactionsRequest) ProtoMessage() {}
func (*GetTransactionsRequest) Descriptor() ([]byte, []int) { func (*GetTransactionsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{10} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{10}
} }
func (m *GetTransactionsRequest) XXX_Unmarshal(b []byte) error { func (m *GetTransactionsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTransactionsRequest.Unmarshal(m, b) return xxx_messageInfo_GetTransactionsRequest.Unmarshal(m, b)
@ -754,7 +754,7 @@ func (m *TransactionDetails) Reset() { *m = TransactionDetails{} }
func (m *TransactionDetails) String() string { return proto.CompactTextString(m) } func (m *TransactionDetails) String() string { return proto.CompactTextString(m) }
func (*TransactionDetails) ProtoMessage() {} func (*TransactionDetails) ProtoMessage() {}
func (*TransactionDetails) Descriptor() ([]byte, []int) { func (*TransactionDetails) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{11} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{11}
} }
func (m *TransactionDetails) XXX_Unmarshal(b []byte) error { func (m *TransactionDetails) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransactionDetails.Unmarshal(m, b) return xxx_messageInfo_TransactionDetails.Unmarshal(m, b)
@ -795,7 +795,7 @@ func (m *FeeLimit) Reset() { *m = FeeLimit{} }
func (m *FeeLimit) String() string { return proto.CompactTextString(m) } func (m *FeeLimit) String() string { return proto.CompactTextString(m) }
func (*FeeLimit) ProtoMessage() {} func (*FeeLimit) ProtoMessage() {}
func (*FeeLimit) Descriptor() ([]byte, []int) { func (*FeeLimit) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{12} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{12}
} }
func (m *FeeLimit) XXX_Unmarshal(b []byte) error { func (m *FeeLimit) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeLimit.Unmarshal(m, b) return xxx_messageInfo_FeeLimit.Unmarshal(m, b)
@ -955,7 +955,7 @@ func (m *SendRequest) Reset() { *m = SendRequest{} }
func (m *SendRequest) String() string { return proto.CompactTextString(m) } func (m *SendRequest) String() string { return proto.CompactTextString(m) }
func (*SendRequest) ProtoMessage() {} func (*SendRequest) ProtoMessage() {}
func (*SendRequest) Descriptor() ([]byte, []int) { func (*SendRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{13} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{13}
} }
func (m *SendRequest) XXX_Unmarshal(b []byte) error { func (m *SendRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendRequest.Unmarshal(m, b) return xxx_messageInfo_SendRequest.Unmarshal(m, b)
@ -1052,7 +1052,7 @@ func (m *SendResponse) Reset() { *m = SendResponse{} }
func (m *SendResponse) String() string { return proto.CompactTextString(m) } func (m *SendResponse) String() string { return proto.CompactTextString(m) }
func (*SendResponse) ProtoMessage() {} func (*SendResponse) ProtoMessage() {}
func (*SendResponse) Descriptor() ([]byte, []int) { func (*SendResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{14} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{14}
} }
func (m *SendResponse) XXX_Unmarshal(b []byte) error { func (m *SendResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendResponse.Unmarshal(m, b) return xxx_messageInfo_SendResponse.Unmarshal(m, b)
@ -1122,7 +1122,7 @@ func (m *SendToRouteRequest) Reset() { *m = SendToRouteRequest{} }
func (m *SendToRouteRequest) String() string { return proto.CompactTextString(m) } func (m *SendToRouteRequest) String() string { return proto.CompactTextString(m) }
func (*SendToRouteRequest) ProtoMessage() {} func (*SendToRouteRequest) ProtoMessage() {}
func (*SendToRouteRequest) Descriptor() ([]byte, []int) { func (*SendToRouteRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{15} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{15}
} }
func (m *SendToRouteRequest) XXX_Unmarshal(b []byte) error { func (m *SendToRouteRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendToRouteRequest.Unmarshal(m, b) return xxx_messageInfo_SendToRouteRequest.Unmarshal(m, b)
@ -1187,7 +1187,7 @@ func (m *ChannelPoint) Reset() { *m = ChannelPoint{} }
func (m *ChannelPoint) String() string { return proto.CompactTextString(m) } func (m *ChannelPoint) String() string { return proto.CompactTextString(m) }
func (*ChannelPoint) ProtoMessage() {} func (*ChannelPoint) ProtoMessage() {}
func (*ChannelPoint) Descriptor() ([]byte, []int) { func (*ChannelPoint) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{16} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{16}
} }
func (m *ChannelPoint) XXX_Unmarshal(b []byte) error { func (m *ChannelPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelPoint.Unmarshal(m, b) return xxx_messageInfo_ChannelPoint.Unmarshal(m, b)
@ -1333,7 +1333,7 @@ func (m *OutPoint) Reset() { *m = OutPoint{} }
func (m *OutPoint) String() string { return proto.CompactTextString(m) } func (m *OutPoint) String() string { return proto.CompactTextString(m) }
func (*OutPoint) ProtoMessage() {} func (*OutPoint) ProtoMessage() {}
func (*OutPoint) Descriptor() ([]byte, []int) { func (*OutPoint) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{17} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{17}
} }
func (m *OutPoint) XXX_Unmarshal(b []byte) error { func (m *OutPoint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OutPoint.Unmarshal(m, b) return xxx_messageInfo_OutPoint.Unmarshal(m, b)
@ -1388,7 +1388,7 @@ func (m *LightningAddress) Reset() { *m = LightningAddress{} }
func (m *LightningAddress) String() string { return proto.CompactTextString(m) } func (m *LightningAddress) String() string { return proto.CompactTextString(m) }
func (*LightningAddress) ProtoMessage() {} func (*LightningAddress) ProtoMessage() {}
func (*LightningAddress) Descriptor() ([]byte, []int) { func (*LightningAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{18} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{18}
} }
func (m *LightningAddress) XXX_Unmarshal(b []byte) error { func (m *LightningAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LightningAddress.Unmarshal(m, b) return xxx_messageInfo_LightningAddress.Unmarshal(m, b)
@ -1438,7 +1438,7 @@ func (m *SendManyRequest) Reset() { *m = SendManyRequest{} }
func (m *SendManyRequest) String() string { return proto.CompactTextString(m) } func (m *SendManyRequest) String() string { return proto.CompactTextString(m) }
func (*SendManyRequest) ProtoMessage() {} func (*SendManyRequest) ProtoMessage() {}
func (*SendManyRequest) Descriptor() ([]byte, []int) { func (*SendManyRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{19} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{19}
} }
func (m *SendManyRequest) XXX_Unmarshal(b []byte) error { func (m *SendManyRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendManyRequest.Unmarshal(m, b) return xxx_messageInfo_SendManyRequest.Unmarshal(m, b)
@ -1491,7 +1491,7 @@ func (m *SendManyResponse) Reset() { *m = SendManyResponse{} }
func (m *SendManyResponse) String() string { return proto.CompactTextString(m) } func (m *SendManyResponse) String() string { return proto.CompactTextString(m) }
func (*SendManyResponse) ProtoMessage() {} func (*SendManyResponse) ProtoMessage() {}
func (*SendManyResponse) Descriptor() ([]byte, []int) { func (*SendManyResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{20} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{20}
} }
func (m *SendManyResponse) XXX_Unmarshal(b []byte) error { func (m *SendManyResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendManyResponse.Unmarshal(m, b) return xxx_messageInfo_SendManyResponse.Unmarshal(m, b)
@ -1541,7 +1541,7 @@ func (m *SendCoinsRequest) Reset() { *m = SendCoinsRequest{} }
func (m *SendCoinsRequest) String() string { return proto.CompactTextString(m) } func (m *SendCoinsRequest) String() string { return proto.CompactTextString(m) }
func (*SendCoinsRequest) ProtoMessage() {} func (*SendCoinsRequest) ProtoMessage() {}
func (*SendCoinsRequest) Descriptor() ([]byte, []int) { func (*SendCoinsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{21} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{21}
} }
func (m *SendCoinsRequest) XXX_Unmarshal(b []byte) error { func (m *SendCoinsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendCoinsRequest.Unmarshal(m, b) return xxx_messageInfo_SendCoinsRequest.Unmarshal(m, b)
@ -1608,7 +1608,7 @@ func (m *SendCoinsResponse) Reset() { *m = SendCoinsResponse{} }
func (m *SendCoinsResponse) String() string { return proto.CompactTextString(m) } func (m *SendCoinsResponse) String() string { return proto.CompactTextString(m) }
func (*SendCoinsResponse) ProtoMessage() {} func (*SendCoinsResponse) ProtoMessage() {}
func (*SendCoinsResponse) Descriptor() ([]byte, []int) { func (*SendCoinsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{22} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{22}
} }
func (m *SendCoinsResponse) XXX_Unmarshal(b []byte) error { func (m *SendCoinsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendCoinsResponse.Unmarshal(m, b) return xxx_messageInfo_SendCoinsResponse.Unmarshal(m, b)
@ -1649,7 +1649,7 @@ func (m *ListUnspentRequest) Reset() { *m = ListUnspentRequest{} }
func (m *ListUnspentRequest) String() string { return proto.CompactTextString(m) } func (m *ListUnspentRequest) String() string { return proto.CompactTextString(m) }
func (*ListUnspentRequest) ProtoMessage() {} func (*ListUnspentRequest) ProtoMessage() {}
func (*ListUnspentRequest) Descriptor() ([]byte, []int) { func (*ListUnspentRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{23} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{23}
} }
func (m *ListUnspentRequest) XXX_Unmarshal(b []byte) error { func (m *ListUnspentRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListUnspentRequest.Unmarshal(m, b) return xxx_messageInfo_ListUnspentRequest.Unmarshal(m, b)
@ -1695,7 +1695,7 @@ func (m *ListUnspentResponse) Reset() { *m = ListUnspentResponse{} }
func (m *ListUnspentResponse) String() string { return proto.CompactTextString(m) } func (m *ListUnspentResponse) String() string { return proto.CompactTextString(m) }
func (*ListUnspentResponse) ProtoMessage() {} func (*ListUnspentResponse) ProtoMessage() {}
func (*ListUnspentResponse) Descriptor() ([]byte, []int) { func (*ListUnspentResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{24} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{24}
} }
func (m *ListUnspentResponse) XXX_Unmarshal(b []byte) error { func (m *ListUnspentResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListUnspentResponse.Unmarshal(m, b) return xxx_messageInfo_ListUnspentResponse.Unmarshal(m, b)
@ -1734,7 +1734,7 @@ func (m *NewAddressRequest) Reset() { *m = NewAddressRequest{} }
func (m *NewAddressRequest) String() string { return proto.CompactTextString(m) } func (m *NewAddressRequest) String() string { return proto.CompactTextString(m) }
func (*NewAddressRequest) ProtoMessage() {} func (*NewAddressRequest) ProtoMessage() {}
func (*NewAddressRequest) Descriptor() ([]byte, []int) { func (*NewAddressRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{25} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{25}
} }
func (m *NewAddressRequest) XXX_Unmarshal(b []byte) error { func (m *NewAddressRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NewAddressRequest.Unmarshal(m, b) return xxx_messageInfo_NewAddressRequest.Unmarshal(m, b)
@ -1773,7 +1773,7 @@ func (m *NewAddressResponse) Reset() { *m = NewAddressResponse{} }
func (m *NewAddressResponse) String() string { return proto.CompactTextString(m) } func (m *NewAddressResponse) String() string { return proto.CompactTextString(m) }
func (*NewAddressResponse) ProtoMessage() {} func (*NewAddressResponse) ProtoMessage() {}
func (*NewAddressResponse) Descriptor() ([]byte, []int) { func (*NewAddressResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{26} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{26}
} }
func (m *NewAddressResponse) XXX_Unmarshal(b []byte) error { func (m *NewAddressResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NewAddressResponse.Unmarshal(m, b) return xxx_messageInfo_NewAddressResponse.Unmarshal(m, b)
@ -1812,7 +1812,7 @@ func (m *SignMessageRequest) Reset() { *m = SignMessageRequest{} }
func (m *SignMessageRequest) String() string { return proto.CompactTextString(m) } func (m *SignMessageRequest) String() string { return proto.CompactTextString(m) }
func (*SignMessageRequest) ProtoMessage() {} func (*SignMessageRequest) ProtoMessage() {}
func (*SignMessageRequest) Descriptor() ([]byte, []int) { func (*SignMessageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{27} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{27}
} }
func (m *SignMessageRequest) XXX_Unmarshal(b []byte) error { func (m *SignMessageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignMessageRequest.Unmarshal(m, b) return xxx_messageInfo_SignMessageRequest.Unmarshal(m, b)
@ -1851,7 +1851,7 @@ func (m *SignMessageResponse) Reset() { *m = SignMessageResponse{} }
func (m *SignMessageResponse) String() string { return proto.CompactTextString(m) } func (m *SignMessageResponse) String() string { return proto.CompactTextString(m) }
func (*SignMessageResponse) ProtoMessage() {} func (*SignMessageResponse) ProtoMessage() {}
func (*SignMessageResponse) Descriptor() ([]byte, []int) { func (*SignMessageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{28} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{28}
} }
func (m *SignMessageResponse) XXX_Unmarshal(b []byte) error { func (m *SignMessageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignMessageResponse.Unmarshal(m, b) return xxx_messageInfo_SignMessageResponse.Unmarshal(m, b)
@ -1892,7 +1892,7 @@ func (m *VerifyMessageRequest) Reset() { *m = VerifyMessageRequest{} }
func (m *VerifyMessageRequest) String() string { return proto.CompactTextString(m) } func (m *VerifyMessageRequest) String() string { return proto.CompactTextString(m) }
func (*VerifyMessageRequest) ProtoMessage() {} func (*VerifyMessageRequest) ProtoMessage() {}
func (*VerifyMessageRequest) Descriptor() ([]byte, []int) { func (*VerifyMessageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{29} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{29}
} }
func (m *VerifyMessageRequest) XXX_Unmarshal(b []byte) error { func (m *VerifyMessageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VerifyMessageRequest.Unmarshal(m, b) return xxx_messageInfo_VerifyMessageRequest.Unmarshal(m, b)
@ -1940,7 +1940,7 @@ func (m *VerifyMessageResponse) Reset() { *m = VerifyMessageResponse{} }
func (m *VerifyMessageResponse) String() string { return proto.CompactTextString(m) } func (m *VerifyMessageResponse) String() string { return proto.CompactTextString(m) }
func (*VerifyMessageResponse) ProtoMessage() {} func (*VerifyMessageResponse) ProtoMessage() {}
func (*VerifyMessageResponse) Descriptor() ([]byte, []int) { func (*VerifyMessageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{30} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{30}
} }
func (m *VerifyMessageResponse) XXX_Unmarshal(b []byte) error { func (m *VerifyMessageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_VerifyMessageResponse.Unmarshal(m, b) return xxx_messageInfo_VerifyMessageResponse.Unmarshal(m, b)
@ -1989,7 +1989,7 @@ func (m *ConnectPeerRequest) Reset() { *m = ConnectPeerRequest{} }
func (m *ConnectPeerRequest) String() string { return proto.CompactTextString(m) } func (m *ConnectPeerRequest) String() string { return proto.CompactTextString(m) }
func (*ConnectPeerRequest) ProtoMessage() {} func (*ConnectPeerRequest) ProtoMessage() {}
func (*ConnectPeerRequest) Descriptor() ([]byte, []int) { func (*ConnectPeerRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{31} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{31}
} }
func (m *ConnectPeerRequest) XXX_Unmarshal(b []byte) error { func (m *ConnectPeerRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConnectPeerRequest.Unmarshal(m, b) return xxx_messageInfo_ConnectPeerRequest.Unmarshal(m, b)
@ -2033,7 +2033,7 @@ func (m *ConnectPeerResponse) Reset() { *m = ConnectPeerResponse{} }
func (m *ConnectPeerResponse) String() string { return proto.CompactTextString(m) } func (m *ConnectPeerResponse) String() string { return proto.CompactTextString(m) }
func (*ConnectPeerResponse) ProtoMessage() {} func (*ConnectPeerResponse) ProtoMessage() {}
func (*ConnectPeerResponse) Descriptor() ([]byte, []int) { func (*ConnectPeerResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{32} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{32}
} }
func (m *ConnectPeerResponse) XXX_Unmarshal(b []byte) error { func (m *ConnectPeerResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConnectPeerResponse.Unmarshal(m, b) return xxx_messageInfo_ConnectPeerResponse.Unmarshal(m, b)
@ -2065,7 +2065,7 @@ func (m *DisconnectPeerRequest) Reset() { *m = DisconnectPeerRequest{} }
func (m *DisconnectPeerRequest) String() string { return proto.CompactTextString(m) } func (m *DisconnectPeerRequest) String() string { return proto.CompactTextString(m) }
func (*DisconnectPeerRequest) ProtoMessage() {} func (*DisconnectPeerRequest) ProtoMessage() {}
func (*DisconnectPeerRequest) Descriptor() ([]byte, []int) { func (*DisconnectPeerRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{33} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{33}
} }
func (m *DisconnectPeerRequest) XXX_Unmarshal(b []byte) error { func (m *DisconnectPeerRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DisconnectPeerRequest.Unmarshal(m, b) return xxx_messageInfo_DisconnectPeerRequest.Unmarshal(m, b)
@ -2102,7 +2102,7 @@ func (m *DisconnectPeerResponse) Reset() { *m = DisconnectPeerResponse{}
func (m *DisconnectPeerResponse) String() string { return proto.CompactTextString(m) } func (m *DisconnectPeerResponse) String() string { return proto.CompactTextString(m) }
func (*DisconnectPeerResponse) ProtoMessage() {} func (*DisconnectPeerResponse) ProtoMessage() {}
func (*DisconnectPeerResponse) Descriptor() ([]byte, []int) { func (*DisconnectPeerResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{34} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{34}
} }
func (m *DisconnectPeerResponse) XXX_Unmarshal(b []byte) error { func (m *DisconnectPeerResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DisconnectPeerResponse.Unmarshal(m, b) return xxx_messageInfo_DisconnectPeerResponse.Unmarshal(m, b)
@ -2136,7 +2136,7 @@ func (m *HTLC) Reset() { *m = HTLC{} }
func (m *HTLC) String() string { return proto.CompactTextString(m) } func (m *HTLC) String() string { return proto.CompactTextString(m) }
func (*HTLC) ProtoMessage() {} func (*HTLC) ProtoMessage() {}
func (*HTLC) Descriptor() ([]byte, []int) { func (*HTLC) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{35} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{35}
} }
func (m *HTLC) XXX_Unmarshal(b []byte) error { func (m *HTLC) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HTLC.Unmarshal(m, b) return xxx_messageInfo_HTLC.Unmarshal(m, b)
@ -2250,7 +2250,7 @@ func (m *Channel) Reset() { *m = Channel{} }
func (m *Channel) String() string { return proto.CompactTextString(m) } func (m *Channel) String() string { return proto.CompactTextString(m) }
func (*Channel) ProtoMessage() {} func (*Channel) ProtoMessage() {}
func (*Channel) Descriptor() ([]byte, []int) { func (*Channel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{36} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{36}
} }
func (m *Channel) XXX_Unmarshal(b []byte) error { func (m *Channel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Channel.Unmarshal(m, b) return xxx_messageInfo_Channel.Unmarshal(m, b)
@ -2410,7 +2410,7 @@ func (m *ListChannelsRequest) Reset() { *m = ListChannelsRequest{} }
func (m *ListChannelsRequest) String() string { return proto.CompactTextString(m) } func (m *ListChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*ListChannelsRequest) ProtoMessage() {} func (*ListChannelsRequest) ProtoMessage() {}
func (*ListChannelsRequest) Descriptor() ([]byte, []int) { func (*ListChannelsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{37} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{37}
} }
func (m *ListChannelsRequest) XXX_Unmarshal(b []byte) error { func (m *ListChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListChannelsRequest.Unmarshal(m, b) return xxx_messageInfo_ListChannelsRequest.Unmarshal(m, b)
@ -2470,7 +2470,7 @@ func (m *ListChannelsResponse) Reset() { *m = ListChannelsResponse{} }
func (m *ListChannelsResponse) String() string { return proto.CompactTextString(m) } func (m *ListChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*ListChannelsResponse) ProtoMessage() {} func (*ListChannelsResponse) ProtoMessage() {}
func (*ListChannelsResponse) Descriptor() ([]byte, []int) { func (*ListChannelsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{38} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{38}
} }
func (m *ListChannelsResponse) XXX_Unmarshal(b []byte) error { func (m *ListChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListChannelsResponse.Unmarshal(m, b) return xxx_messageInfo_ListChannelsResponse.Unmarshal(m, b)
@ -2527,7 +2527,7 @@ func (m *ChannelCloseSummary) Reset() { *m = ChannelCloseSummary{} }
func (m *ChannelCloseSummary) String() string { return proto.CompactTextString(m) } func (m *ChannelCloseSummary) String() string { return proto.CompactTextString(m) }
func (*ChannelCloseSummary) ProtoMessage() {} func (*ChannelCloseSummary) ProtoMessage() {}
func (*ChannelCloseSummary) Descriptor() ([]byte, []int) { func (*ChannelCloseSummary) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{39} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{39}
} }
func (m *ChannelCloseSummary) XXX_Unmarshal(b []byte) error { func (m *ChannelCloseSummary) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelCloseSummary.Unmarshal(m, b) return xxx_messageInfo_ChannelCloseSummary.Unmarshal(m, b)
@ -2633,7 +2633,7 @@ func (m *ClosedChannelsRequest) Reset() { *m = ClosedChannelsRequest{} }
func (m *ClosedChannelsRequest) String() string { return proto.CompactTextString(m) } func (m *ClosedChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelsRequest) ProtoMessage() {} func (*ClosedChannelsRequest) ProtoMessage() {}
func (*ClosedChannelsRequest) Descriptor() ([]byte, []int) { func (*ClosedChannelsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{40} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{40}
} }
func (m *ClosedChannelsRequest) XXX_Unmarshal(b []byte) error { func (m *ClosedChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelsRequest.Unmarshal(m, b) return xxx_messageInfo_ClosedChannelsRequest.Unmarshal(m, b)
@ -2706,7 +2706,7 @@ func (m *ClosedChannelsResponse) Reset() { *m = ClosedChannelsResponse{}
func (m *ClosedChannelsResponse) String() string { return proto.CompactTextString(m) } func (m *ClosedChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelsResponse) ProtoMessage() {} func (*ClosedChannelsResponse) ProtoMessage() {}
func (*ClosedChannelsResponse) Descriptor() ([]byte, []int) { func (*ClosedChannelsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{41} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{41}
} }
func (m *ClosedChannelsResponse) XXX_Unmarshal(b []byte) error { func (m *ClosedChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelsResponse.Unmarshal(m, b) return xxx_messageInfo_ClosedChannelsResponse.Unmarshal(m, b)
@ -2759,7 +2759,7 @@ func (m *Peer) Reset() { *m = Peer{} }
func (m *Peer) String() string { return proto.CompactTextString(m) } func (m *Peer) String() string { return proto.CompactTextString(m) }
func (*Peer) ProtoMessage() {} func (*Peer) ProtoMessage() {}
func (*Peer) Descriptor() ([]byte, []int) { func (*Peer) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{42} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{42}
} }
func (m *Peer) XXX_Unmarshal(b []byte) error { func (m *Peer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Peer.Unmarshal(m, b) return xxx_messageInfo_Peer.Unmarshal(m, b)
@ -2845,7 +2845,7 @@ func (m *ListPeersRequest) Reset() { *m = ListPeersRequest{} }
func (m *ListPeersRequest) String() string { return proto.CompactTextString(m) } func (m *ListPeersRequest) String() string { return proto.CompactTextString(m) }
func (*ListPeersRequest) ProtoMessage() {} func (*ListPeersRequest) ProtoMessage() {}
func (*ListPeersRequest) Descriptor() ([]byte, []int) { func (*ListPeersRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{43} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{43}
} }
func (m *ListPeersRequest) XXX_Unmarshal(b []byte) error { func (m *ListPeersRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPeersRequest.Unmarshal(m, b) return xxx_messageInfo_ListPeersRequest.Unmarshal(m, b)
@ -2877,7 +2877,7 @@ func (m *ListPeersResponse) Reset() { *m = ListPeersResponse{} }
func (m *ListPeersResponse) String() string { return proto.CompactTextString(m) } func (m *ListPeersResponse) String() string { return proto.CompactTextString(m) }
func (*ListPeersResponse) ProtoMessage() {} func (*ListPeersResponse) ProtoMessage() {}
func (*ListPeersResponse) Descriptor() ([]byte, []int) { func (*ListPeersResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{44} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{44}
} }
func (m *ListPeersResponse) XXX_Unmarshal(b []byte) error { func (m *ListPeersResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPeersResponse.Unmarshal(m, b) return xxx_messageInfo_ListPeersResponse.Unmarshal(m, b)
@ -2914,7 +2914,7 @@ func (m *GetInfoRequest) Reset() { *m = GetInfoRequest{} }
func (m *GetInfoRequest) String() string { return proto.CompactTextString(m) } func (m *GetInfoRequest) String() string { return proto.CompactTextString(m) }
func (*GetInfoRequest) ProtoMessage() {} func (*GetInfoRequest) ProtoMessage() {}
func (*GetInfoRequest) Descriptor() ([]byte, []int) { func (*GetInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{45} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{45}
} }
func (m *GetInfoRequest) XXX_Unmarshal(b []byte) error { func (m *GetInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetInfoRequest.Unmarshal(m, b) return xxx_messageInfo_GetInfoRequest.Unmarshal(m, b)
@ -2974,7 +2974,7 @@ func (m *GetInfoResponse) Reset() { *m = GetInfoResponse{} }
func (m *GetInfoResponse) String() string { return proto.CompactTextString(m) } func (m *GetInfoResponse) String() string { return proto.CompactTextString(m) }
func (*GetInfoResponse) ProtoMessage() {} func (*GetInfoResponse) ProtoMessage() {}
func (*GetInfoResponse) Descriptor() ([]byte, []int) { func (*GetInfoResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{46} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{46}
} }
func (m *GetInfoResponse) XXX_Unmarshal(b []byte) error { func (m *GetInfoResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetInfoResponse.Unmarshal(m, b) return xxx_messageInfo_GetInfoResponse.Unmarshal(m, b)
@ -3107,7 +3107,7 @@ func (m *Chain) Reset() { *m = Chain{} }
func (m *Chain) String() string { return proto.CompactTextString(m) } func (m *Chain) String() string { return proto.CompactTextString(m) }
func (*Chain) ProtoMessage() {} func (*Chain) ProtoMessage() {}
func (*Chain) Descriptor() ([]byte, []int) { func (*Chain) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{47} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{47}
} }
func (m *Chain) XXX_Unmarshal(b []byte) error { func (m *Chain) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Chain.Unmarshal(m, b) return xxx_messageInfo_Chain.Unmarshal(m, b)
@ -3154,7 +3154,7 @@ func (m *ConfirmationUpdate) Reset() { *m = ConfirmationUpdate{} }
func (m *ConfirmationUpdate) String() string { return proto.CompactTextString(m) } func (m *ConfirmationUpdate) String() string { return proto.CompactTextString(m) }
func (*ConfirmationUpdate) ProtoMessage() {} func (*ConfirmationUpdate) ProtoMessage() {}
func (*ConfirmationUpdate) Descriptor() ([]byte, []int) { func (*ConfirmationUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{48} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{48}
} }
func (m *ConfirmationUpdate) XXX_Unmarshal(b []byte) error { func (m *ConfirmationUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConfirmationUpdate.Unmarshal(m, b) return xxx_messageInfo_ConfirmationUpdate.Unmarshal(m, b)
@ -3206,7 +3206,7 @@ func (m *ChannelOpenUpdate) Reset() { *m = ChannelOpenUpdate{} }
func (m *ChannelOpenUpdate) String() string { return proto.CompactTextString(m) } func (m *ChannelOpenUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelOpenUpdate) ProtoMessage() {} func (*ChannelOpenUpdate) ProtoMessage() {}
func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) { func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{49} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{49}
} }
func (m *ChannelOpenUpdate) XXX_Unmarshal(b []byte) error { func (m *ChannelOpenUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelOpenUpdate.Unmarshal(m, b) return xxx_messageInfo_ChannelOpenUpdate.Unmarshal(m, b)
@ -3245,7 +3245,7 @@ func (m *ChannelCloseUpdate) Reset() { *m = ChannelCloseUpdate{} }
func (m *ChannelCloseUpdate) String() string { return proto.CompactTextString(m) } func (m *ChannelCloseUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelCloseUpdate) ProtoMessage() {} func (*ChannelCloseUpdate) ProtoMessage() {}
func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) { func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{50} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{50}
} }
func (m *ChannelCloseUpdate) XXX_Unmarshal(b []byte) error { func (m *ChannelCloseUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelCloseUpdate.Unmarshal(m, b) return xxx_messageInfo_ChannelCloseUpdate.Unmarshal(m, b)
@ -3300,7 +3300,7 @@ func (m *CloseChannelRequest) Reset() { *m = CloseChannelRequest{} }
func (m *CloseChannelRequest) String() string { return proto.CompactTextString(m) } func (m *CloseChannelRequest) String() string { return proto.CompactTextString(m) }
func (*CloseChannelRequest) ProtoMessage() {} func (*CloseChannelRequest) ProtoMessage() {}
func (*CloseChannelRequest) Descriptor() ([]byte, []int) { func (*CloseChannelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{51} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{51}
} }
func (m *CloseChannelRequest) XXX_Unmarshal(b []byte) error { func (m *CloseChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CloseChannelRequest.Unmarshal(m, b) return xxx_messageInfo_CloseChannelRequest.Unmarshal(m, b)
@ -3362,7 +3362,7 @@ func (m *CloseStatusUpdate) Reset() { *m = CloseStatusUpdate{} }
func (m *CloseStatusUpdate) String() string { return proto.CompactTextString(m) } func (m *CloseStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*CloseStatusUpdate) ProtoMessage() {} func (*CloseStatusUpdate) ProtoMessage() {}
func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { func (*CloseStatusUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{52} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{52}
} }
func (m *CloseStatusUpdate) XXX_Unmarshal(b []byte) error { func (m *CloseStatusUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CloseStatusUpdate.Unmarshal(m, b) return xxx_messageInfo_CloseStatusUpdate.Unmarshal(m, b)
@ -3505,7 +3505,7 @@ func (m *PendingUpdate) Reset() { *m = PendingUpdate{} }
func (m *PendingUpdate) String() string { return proto.CompactTextString(m) } func (m *PendingUpdate) String() string { return proto.CompactTextString(m) }
func (*PendingUpdate) ProtoMessage() {} func (*PendingUpdate) ProtoMessage() {}
func (*PendingUpdate) Descriptor() ([]byte, []int) { func (*PendingUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{53} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{53}
} }
func (m *PendingUpdate) XXX_Unmarshal(b []byte) error { func (m *PendingUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingUpdate.Unmarshal(m, b) return xxx_messageInfo_PendingUpdate.Unmarshal(m, b)
@ -3571,7 +3571,7 @@ func (m *OpenChannelRequest) Reset() { *m = OpenChannelRequest{} }
func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) } func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) }
func (*OpenChannelRequest) ProtoMessage() {} func (*OpenChannelRequest) ProtoMessage() {}
func (*OpenChannelRequest) Descriptor() ([]byte, []int) { func (*OpenChannelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{54} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{54}
} }
func (m *OpenChannelRequest) XXX_Unmarshal(b []byte) error { func (m *OpenChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OpenChannelRequest.Unmarshal(m, b) return xxx_messageInfo_OpenChannelRequest.Unmarshal(m, b)
@ -3682,7 +3682,7 @@ func (m *OpenStatusUpdate) Reset() { *m = OpenStatusUpdate{} }
func (m *OpenStatusUpdate) String() string { return proto.CompactTextString(m) } func (m *OpenStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*OpenStatusUpdate) ProtoMessage() {} func (*OpenStatusUpdate) ProtoMessage() {}
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { func (*OpenStatusUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{55} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{55}
} }
func (m *OpenStatusUpdate) XXX_Unmarshal(b []byte) error { func (m *OpenStatusUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OpenStatusUpdate.Unmarshal(m, b) return xxx_messageInfo_OpenStatusUpdate.Unmarshal(m, b)
@ -3838,7 +3838,7 @@ func (m *PendingHTLC) Reset() { *m = PendingHTLC{} }
func (m *PendingHTLC) String() string { return proto.CompactTextString(m) } func (m *PendingHTLC) String() string { return proto.CompactTextString(m) }
func (*PendingHTLC) ProtoMessage() {} func (*PendingHTLC) ProtoMessage() {}
func (*PendingHTLC) Descriptor() ([]byte, []int) { func (*PendingHTLC) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{56} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{56}
} }
func (m *PendingHTLC) XXX_Unmarshal(b []byte) error { func (m *PendingHTLC) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingHTLC.Unmarshal(m, b) return xxx_messageInfo_PendingHTLC.Unmarshal(m, b)
@ -3910,7 +3910,7 @@ func (m *PendingChannelsRequest) Reset() { *m = PendingChannelsRequest{}
func (m *PendingChannelsRequest) String() string { return proto.CompactTextString(m) } func (m *PendingChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsRequest) ProtoMessage() {} func (*PendingChannelsRequest) ProtoMessage() {}
func (*PendingChannelsRequest) Descriptor() ([]byte, []int) { func (*PendingChannelsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{57} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{57}
} }
func (m *PendingChannelsRequest) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsRequest.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsRequest.Unmarshal(m, b)
@ -3950,7 +3950,7 @@ func (m *PendingChannelsResponse) Reset() { *m = PendingChannelsResponse
func (m *PendingChannelsResponse) String() string { return proto.CompactTextString(m) } func (m *PendingChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse) ProtoMessage() {} func (*PendingChannelsResponse) ProtoMessage() {}
func (*PendingChannelsResponse) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{58} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{58}
} }
func (m *PendingChannelsResponse) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse.Unmarshal(m, b)
@ -4022,7 +4022,7 @@ func (m *PendingChannelsResponse_PendingChannel) Reset() {
func (m *PendingChannelsResponse_PendingChannel) String() string { return proto.CompactTextString(m) } func (m *PendingChannelsResponse_PendingChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse_PendingChannel) ProtoMessage() {} func (*PendingChannelsResponse_PendingChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_PendingChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{58, 0} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{58, 0}
} }
func (m *PendingChannelsResponse_PendingChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_PendingChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_PendingChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_PendingChannel.Unmarshal(m, b)
@ -4109,7 +4109,7 @@ func (m *PendingChannelsResponse_PendingOpenChannel) String() string {
} }
func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {} func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{58, 1} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{58, 1}
} }
func (m *PendingChannelsResponse_PendingOpenChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_PendingOpenChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_PendingOpenChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_PendingOpenChannel.Unmarshal(m, b)
@ -4182,7 +4182,7 @@ func (m *PendingChannelsResponse_WaitingCloseChannel) String() string {
} }
func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {} func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {}
func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{58, 2} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{58, 2}
} }
func (m *PendingChannelsResponse_WaitingCloseChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_WaitingCloseChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_WaitingCloseChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_WaitingCloseChannel.Unmarshal(m, b)
@ -4230,7 +4230,7 @@ func (m *PendingChannelsResponse_ClosedChannel) Reset() { *m = PendingCh
func (m *PendingChannelsResponse_ClosedChannel) String() string { return proto.CompactTextString(m) } func (m *PendingChannelsResponse_ClosedChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse_ClosedChannel) ProtoMessage() {} func (*PendingChannelsResponse_ClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ClosedChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_ClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{58, 3} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{58, 3}
} }
func (m *PendingChannelsResponse_ClosedChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_ClosedChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_ClosedChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_ClosedChannel.Unmarshal(m, b)
@ -4294,7 +4294,7 @@ func (m *PendingChannelsResponse_ForceClosedChannel) String() string {
} }
func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {} func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) { func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{58, 4} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{58, 4}
} }
func (m *PendingChannelsResponse_ForceClosedChannel) XXX_Unmarshal(b []byte) error { func (m *PendingChannelsResponse_ForceClosedChannel) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingChannelsResponse_ForceClosedChannel.Unmarshal(m, b) return xxx_messageInfo_PendingChannelsResponse_ForceClosedChannel.Unmarshal(m, b)
@ -4373,7 +4373,7 @@ func (m *ChannelEventSubscription) Reset() { *m = ChannelEventSubscripti
func (m *ChannelEventSubscription) String() string { return proto.CompactTextString(m) } func (m *ChannelEventSubscription) String() string { return proto.CompactTextString(m) }
func (*ChannelEventSubscription) ProtoMessage() {} func (*ChannelEventSubscription) ProtoMessage() {}
func (*ChannelEventSubscription) Descriptor() ([]byte, []int) { func (*ChannelEventSubscription) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{59} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{59}
} }
func (m *ChannelEventSubscription) XXX_Unmarshal(b []byte) error { func (m *ChannelEventSubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEventSubscription.Unmarshal(m, b) return xxx_messageInfo_ChannelEventSubscription.Unmarshal(m, b)
@ -4410,7 +4410,7 @@ func (m *ChannelEventUpdate) Reset() { *m = ChannelEventUpdate{} }
func (m *ChannelEventUpdate) String() string { return proto.CompactTextString(m) } func (m *ChannelEventUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelEventUpdate) ProtoMessage() {} func (*ChannelEventUpdate) ProtoMessage() {}
func (*ChannelEventUpdate) Descriptor() ([]byte, []int) { func (*ChannelEventUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{60} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{60}
} }
func (m *ChannelEventUpdate) XXX_Unmarshal(b []byte) error { func (m *ChannelEventUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEventUpdate.Unmarshal(m, b) return xxx_messageInfo_ChannelEventUpdate.Unmarshal(m, b)
@ -4622,7 +4622,7 @@ func (m *WalletBalanceRequest) Reset() { *m = WalletBalanceRequest{} }
func (m *WalletBalanceRequest) String() string { return proto.CompactTextString(m) } func (m *WalletBalanceRequest) String() string { return proto.CompactTextString(m) }
func (*WalletBalanceRequest) ProtoMessage() {} func (*WalletBalanceRequest) ProtoMessage() {}
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { func (*WalletBalanceRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{61} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{61}
} }
func (m *WalletBalanceRequest) XXX_Unmarshal(b []byte) error { func (m *WalletBalanceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WalletBalanceRequest.Unmarshal(m, b) return xxx_messageInfo_WalletBalanceRequest.Unmarshal(m, b)
@ -4658,7 +4658,7 @@ func (m *WalletBalanceResponse) Reset() { *m = WalletBalanceResponse{} }
func (m *WalletBalanceResponse) String() string { return proto.CompactTextString(m) } func (m *WalletBalanceResponse) String() string { return proto.CompactTextString(m) }
func (*WalletBalanceResponse) ProtoMessage() {} func (*WalletBalanceResponse) ProtoMessage() {}
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { func (*WalletBalanceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{62} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{62}
} }
func (m *WalletBalanceResponse) XXX_Unmarshal(b []byte) error { func (m *WalletBalanceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_WalletBalanceResponse.Unmarshal(m, b) return xxx_messageInfo_WalletBalanceResponse.Unmarshal(m, b)
@ -4709,7 +4709,7 @@ func (m *ChannelBalanceRequest) Reset() { *m = ChannelBalanceRequest{} }
func (m *ChannelBalanceRequest) String() string { return proto.CompactTextString(m) } func (m *ChannelBalanceRequest) String() string { return proto.CompactTextString(m) }
func (*ChannelBalanceRequest) ProtoMessage() {} func (*ChannelBalanceRequest) ProtoMessage() {}
func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{63} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{63}
} }
func (m *ChannelBalanceRequest) XXX_Unmarshal(b []byte) error { func (m *ChannelBalanceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBalanceRequest.Unmarshal(m, b) return xxx_messageInfo_ChannelBalanceRequest.Unmarshal(m, b)
@ -4743,7 +4743,7 @@ func (m *ChannelBalanceResponse) Reset() { *m = ChannelBalanceResponse{}
func (m *ChannelBalanceResponse) String() string { return proto.CompactTextString(m) } func (m *ChannelBalanceResponse) String() string { return proto.CompactTextString(m) }
func (*ChannelBalanceResponse) ProtoMessage() {} func (*ChannelBalanceResponse) ProtoMessage() {}
func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{64} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{64}
} }
func (m *ChannelBalanceResponse) XXX_Unmarshal(b []byte) error { func (m *ChannelBalanceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelBalanceResponse.Unmarshal(m, b) return xxx_messageInfo_ChannelBalanceResponse.Unmarshal(m, b)
@ -4801,7 +4801,7 @@ func (m *QueryRoutesRequest) Reset() { *m = QueryRoutesRequest{} }
func (m *QueryRoutesRequest) String() string { return proto.CompactTextString(m) } func (m *QueryRoutesRequest) String() string { return proto.CompactTextString(m) }
func (*QueryRoutesRequest) ProtoMessage() {} func (*QueryRoutesRequest) ProtoMessage() {}
func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { func (*QueryRoutesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{65} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{65}
} }
func (m *QueryRoutesRequest) XXX_Unmarshal(b []byte) error { func (m *QueryRoutesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QueryRoutesRequest.Unmarshal(m, b) return xxx_messageInfo_QueryRoutesRequest.Unmarshal(m, b)
@ -4867,7 +4867,7 @@ func (m *QueryRoutesResponse) Reset() { *m = QueryRoutesResponse{} }
func (m *QueryRoutesResponse) String() string { return proto.CompactTextString(m) } func (m *QueryRoutesResponse) String() string { return proto.CompactTextString(m) }
func (*QueryRoutesResponse) ProtoMessage() {} func (*QueryRoutesResponse) ProtoMessage() {}
func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { func (*QueryRoutesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{66} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{66}
} }
func (m *QueryRoutesResponse) XXX_Unmarshal(b []byte) error { func (m *QueryRoutesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QueryRoutesResponse.Unmarshal(m, b) return xxx_messageInfo_QueryRoutesResponse.Unmarshal(m, b)
@ -4919,7 +4919,7 @@ func (m *Hop) Reset() { *m = Hop{} }
func (m *Hop) String() string { return proto.CompactTextString(m) } func (m *Hop) String() string { return proto.CompactTextString(m) }
func (*Hop) ProtoMessage() {} func (*Hop) ProtoMessage() {}
func (*Hop) Descriptor() ([]byte, []int) { func (*Hop) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{67} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{67}
} }
func (m *Hop) XXX_Unmarshal(b []byte) error { func (m *Hop) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Hop.Unmarshal(m, b) return xxx_messageInfo_Hop.Unmarshal(m, b)
@ -5040,7 +5040,7 @@ func (m *Route) Reset() { *m = Route{} }
func (m *Route) String() string { return proto.CompactTextString(m) } func (m *Route) String() string { return proto.CompactTextString(m) }
func (*Route) ProtoMessage() {} func (*Route) ProtoMessage() {}
func (*Route) Descriptor() ([]byte, []int) { func (*Route) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{68} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{68}
} }
func (m *Route) XXX_Unmarshal(b []byte) error { func (m *Route) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Route.Unmarshal(m, b) return xxx_messageInfo_Route.Unmarshal(m, b)
@ -5116,7 +5116,7 @@ func (m *NodeInfoRequest) Reset() { *m = NodeInfoRequest{} }
func (m *NodeInfoRequest) String() string { return proto.CompactTextString(m) } func (m *NodeInfoRequest) String() string { return proto.CompactTextString(m) }
func (*NodeInfoRequest) ProtoMessage() {} func (*NodeInfoRequest) ProtoMessage() {}
func (*NodeInfoRequest) Descriptor() ([]byte, []int) { func (*NodeInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{69} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{69}
} }
func (m *NodeInfoRequest) XXX_Unmarshal(b []byte) error { func (m *NodeInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeInfoRequest.Unmarshal(m, b) return xxx_messageInfo_NodeInfoRequest.Unmarshal(m, b)
@ -5161,7 +5161,7 @@ func (m *NodeInfo) Reset() { *m = NodeInfo{} }
func (m *NodeInfo) String() string { return proto.CompactTextString(m) } func (m *NodeInfo) String() string { return proto.CompactTextString(m) }
func (*NodeInfo) ProtoMessage() {} func (*NodeInfo) ProtoMessage() {}
func (*NodeInfo) Descriptor() ([]byte, []int) { func (*NodeInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{70} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{70}
} }
func (m *NodeInfo) XXX_Unmarshal(b []byte) error { func (m *NodeInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeInfo.Unmarshal(m, b) return xxx_messageInfo_NodeInfo.Unmarshal(m, b)
@ -5222,7 +5222,7 @@ func (m *LightningNode) Reset() { *m = LightningNode{} }
func (m *LightningNode) String() string { return proto.CompactTextString(m) } func (m *LightningNode) String() string { return proto.CompactTextString(m) }
func (*LightningNode) ProtoMessage() {} func (*LightningNode) ProtoMessage() {}
func (*LightningNode) Descriptor() ([]byte, []int) { func (*LightningNode) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{71} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{71}
} }
func (m *LightningNode) XXX_Unmarshal(b []byte) error { func (m *LightningNode) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LightningNode.Unmarshal(m, b) return xxx_messageInfo_LightningNode.Unmarshal(m, b)
@ -5289,7 +5289,7 @@ func (m *NodeAddress) Reset() { *m = NodeAddress{} }
func (m *NodeAddress) String() string { return proto.CompactTextString(m) } func (m *NodeAddress) String() string { return proto.CompactTextString(m) }
func (*NodeAddress) ProtoMessage() {} func (*NodeAddress) ProtoMessage() {}
func (*NodeAddress) Descriptor() ([]byte, []int) { func (*NodeAddress) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{72} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{72}
} }
func (m *NodeAddress) XXX_Unmarshal(b []byte) error { func (m *NodeAddress) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeAddress.Unmarshal(m, b) return xxx_messageInfo_NodeAddress.Unmarshal(m, b)
@ -5329,6 +5329,7 @@ type RoutingPolicy struct {
FeeBaseMsat int64 `protobuf:"varint,3,opt,name=fee_base_msat,proto3" json:"fee_base_msat,omitempty"` FeeBaseMsat int64 `protobuf:"varint,3,opt,name=fee_base_msat,proto3" json:"fee_base_msat,omitempty"`
FeeRateMilliMsat int64 `protobuf:"varint,4,opt,name=fee_rate_milli_msat,proto3" json:"fee_rate_milli_msat,omitempty"` FeeRateMilliMsat int64 `protobuf:"varint,4,opt,name=fee_rate_milli_msat,proto3" json:"fee_rate_milli_msat,omitempty"`
Disabled bool `protobuf:"varint,5,opt,name=disabled,proto3" json:"disabled,omitempty"` Disabled bool `protobuf:"varint,5,opt,name=disabled,proto3" json:"disabled,omitempty"`
MaxHtlc uint64 `protobuf:"varint,6,opt,name=max_htlc,proto3" json:"max_htlc,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -5338,7 +5339,7 @@ func (m *RoutingPolicy) Reset() { *m = RoutingPolicy{} }
func (m *RoutingPolicy) String() string { return proto.CompactTextString(m) } func (m *RoutingPolicy) String() string { return proto.CompactTextString(m) }
func (*RoutingPolicy) ProtoMessage() {} func (*RoutingPolicy) ProtoMessage() {}
func (*RoutingPolicy) Descriptor() ([]byte, []int) { func (*RoutingPolicy) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{73} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{73}
} }
func (m *RoutingPolicy) XXX_Unmarshal(b []byte) error { func (m *RoutingPolicy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RoutingPolicy.Unmarshal(m, b) return xxx_messageInfo_RoutingPolicy.Unmarshal(m, b)
@ -5393,6 +5394,13 @@ func (m *RoutingPolicy) GetDisabled() bool {
return false return false
} }
func (m *RoutingPolicy) GetMaxHtlc() uint64 {
if m != nil {
return m.MaxHtlc
}
return 0
}
// * // *
// A fully authenticated channel along with all its unique attributes. // A fully authenticated channel along with all its unique attributes.
// Once an authenticated channel announcement has been processed on the network, // Once an authenticated channel announcement has been processed on the network,
@ -5421,7 +5429,7 @@ func (m *ChannelEdge) Reset() { *m = ChannelEdge{} }
func (m *ChannelEdge) String() string { return proto.CompactTextString(m) } func (m *ChannelEdge) String() string { return proto.CompactTextString(m) }
func (*ChannelEdge) ProtoMessage() {} func (*ChannelEdge) ProtoMessage() {}
func (*ChannelEdge) Descriptor() ([]byte, []int) { func (*ChannelEdge) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{74} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{74}
} }
func (m *ChannelEdge) XXX_Unmarshal(b []byte) error { func (m *ChannelEdge) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEdge.Unmarshal(m, b) return xxx_messageInfo_ChannelEdge.Unmarshal(m, b)
@ -5512,7 +5520,7 @@ func (m *ChannelGraphRequest) Reset() { *m = ChannelGraphRequest{} }
func (m *ChannelGraphRequest) String() string { return proto.CompactTextString(m) } func (m *ChannelGraphRequest) String() string { return proto.CompactTextString(m) }
func (*ChannelGraphRequest) ProtoMessage() {} func (*ChannelGraphRequest) ProtoMessage() {}
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { func (*ChannelGraphRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{75} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{75}
} }
func (m *ChannelGraphRequest) XXX_Unmarshal(b []byte) error { func (m *ChannelGraphRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelGraphRequest.Unmarshal(m, b) return xxx_messageInfo_ChannelGraphRequest.Unmarshal(m, b)
@ -5554,7 +5562,7 @@ func (m *ChannelGraph) Reset() { *m = ChannelGraph{} }
func (m *ChannelGraph) String() string { return proto.CompactTextString(m) } func (m *ChannelGraph) String() string { return proto.CompactTextString(m) }
func (*ChannelGraph) ProtoMessage() {} func (*ChannelGraph) ProtoMessage() {}
func (*ChannelGraph) Descriptor() ([]byte, []int) { func (*ChannelGraph) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{76} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{76}
} }
func (m *ChannelGraph) XXX_Unmarshal(b []byte) error { func (m *ChannelGraph) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelGraph.Unmarshal(m, b) return xxx_messageInfo_ChannelGraph.Unmarshal(m, b)
@ -5603,7 +5611,7 @@ func (m *ChanInfoRequest) Reset() { *m = ChanInfoRequest{} }
func (m *ChanInfoRequest) String() string { return proto.CompactTextString(m) } func (m *ChanInfoRequest) String() string { return proto.CompactTextString(m) }
func (*ChanInfoRequest) ProtoMessage() {} func (*ChanInfoRequest) ProtoMessage() {}
func (*ChanInfoRequest) Descriptor() ([]byte, []int) { func (*ChanInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{77} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{77}
} }
func (m *ChanInfoRequest) XXX_Unmarshal(b []byte) error { func (m *ChanInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChanInfoRequest.Unmarshal(m, b) return xxx_messageInfo_ChanInfoRequest.Unmarshal(m, b)
@ -5640,7 +5648,7 @@ func (m *NetworkInfoRequest) Reset() { *m = NetworkInfoRequest{} }
func (m *NetworkInfoRequest) String() string { return proto.CompactTextString(m) } func (m *NetworkInfoRequest) String() string { return proto.CompactTextString(m) }
func (*NetworkInfoRequest) ProtoMessage() {} func (*NetworkInfoRequest) ProtoMessage() {}
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { func (*NetworkInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{78} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{78}
} }
func (m *NetworkInfoRequest) XXX_Unmarshal(b []byte) error { func (m *NetworkInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkInfoRequest.Unmarshal(m, b) return xxx_messageInfo_NetworkInfoRequest.Unmarshal(m, b)
@ -5679,7 +5687,7 @@ func (m *NetworkInfo) Reset() { *m = NetworkInfo{} }
func (m *NetworkInfo) String() string { return proto.CompactTextString(m) } func (m *NetworkInfo) String() string { return proto.CompactTextString(m) }
func (*NetworkInfo) ProtoMessage() {} func (*NetworkInfo) ProtoMessage() {}
func (*NetworkInfo) Descriptor() ([]byte, []int) { func (*NetworkInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{79} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{79}
} }
func (m *NetworkInfo) XXX_Unmarshal(b []byte) error { func (m *NetworkInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NetworkInfo.Unmarshal(m, b) return xxx_messageInfo_NetworkInfo.Unmarshal(m, b)
@ -5772,7 +5780,7 @@ func (m *StopRequest) Reset() { *m = StopRequest{} }
func (m *StopRequest) String() string { return proto.CompactTextString(m) } func (m *StopRequest) String() string { return proto.CompactTextString(m) }
func (*StopRequest) ProtoMessage() {} func (*StopRequest) ProtoMessage() {}
func (*StopRequest) Descriptor() ([]byte, []int) { func (*StopRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{80} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{80}
} }
func (m *StopRequest) XXX_Unmarshal(b []byte) error { func (m *StopRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StopRequest.Unmarshal(m, b) return xxx_messageInfo_StopRequest.Unmarshal(m, b)
@ -5802,7 +5810,7 @@ func (m *StopResponse) Reset() { *m = StopResponse{} }
func (m *StopResponse) String() string { return proto.CompactTextString(m) } func (m *StopResponse) String() string { return proto.CompactTextString(m) }
func (*StopResponse) ProtoMessage() {} func (*StopResponse) ProtoMessage() {}
func (*StopResponse) Descriptor() ([]byte, []int) { func (*StopResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{81} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{81}
} }
func (m *StopResponse) XXX_Unmarshal(b []byte) error { func (m *StopResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StopResponse.Unmarshal(m, b) return xxx_messageInfo_StopResponse.Unmarshal(m, b)
@ -5832,7 +5840,7 @@ func (m *GraphTopologySubscription) Reset() { *m = GraphTopologySubscrip
func (m *GraphTopologySubscription) String() string { return proto.CompactTextString(m) } func (m *GraphTopologySubscription) String() string { return proto.CompactTextString(m) }
func (*GraphTopologySubscription) ProtoMessage() {} func (*GraphTopologySubscription) ProtoMessage() {}
func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { func (*GraphTopologySubscription) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{82} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{82}
} }
func (m *GraphTopologySubscription) XXX_Unmarshal(b []byte) error { func (m *GraphTopologySubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphTopologySubscription.Unmarshal(m, b) return xxx_messageInfo_GraphTopologySubscription.Unmarshal(m, b)
@ -5865,7 +5873,7 @@ func (m *GraphTopologyUpdate) Reset() { *m = GraphTopologyUpdate{} }
func (m *GraphTopologyUpdate) String() string { return proto.CompactTextString(m) } func (m *GraphTopologyUpdate) String() string { return proto.CompactTextString(m) }
func (*GraphTopologyUpdate) ProtoMessage() {} func (*GraphTopologyUpdate) ProtoMessage() {}
func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{83} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{83}
} }
func (m *GraphTopologyUpdate) XXX_Unmarshal(b []byte) error { func (m *GraphTopologyUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphTopologyUpdate.Unmarshal(m, b) return xxx_messageInfo_GraphTopologyUpdate.Unmarshal(m, b)
@ -5920,7 +5928,7 @@ func (m *NodeUpdate) Reset() { *m = NodeUpdate{} }
func (m *NodeUpdate) String() string { return proto.CompactTextString(m) } func (m *NodeUpdate) String() string { return proto.CompactTextString(m) }
func (*NodeUpdate) ProtoMessage() {} func (*NodeUpdate) ProtoMessage() {}
func (*NodeUpdate) Descriptor() ([]byte, []int) { func (*NodeUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{84} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{84}
} }
func (m *NodeUpdate) XXX_Unmarshal(b []byte) error { func (m *NodeUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NodeUpdate.Unmarshal(m, b) return xxx_messageInfo_NodeUpdate.Unmarshal(m, b)
@ -5988,7 +5996,7 @@ func (m *ChannelEdgeUpdate) Reset() { *m = ChannelEdgeUpdate{} }
func (m *ChannelEdgeUpdate) String() string { return proto.CompactTextString(m) } func (m *ChannelEdgeUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelEdgeUpdate) ProtoMessage() {} func (*ChannelEdgeUpdate) ProtoMessage() {}
func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{85} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{85}
} }
func (m *ChannelEdgeUpdate) XXX_Unmarshal(b []byte) error { func (m *ChannelEdgeUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelEdgeUpdate.Unmarshal(m, b) return xxx_messageInfo_ChannelEdgeUpdate.Unmarshal(m, b)
@ -6068,7 +6076,7 @@ func (m *ClosedChannelUpdate) Reset() { *m = ClosedChannelUpdate{} }
func (m *ClosedChannelUpdate) String() string { return proto.CompactTextString(m) } func (m *ClosedChannelUpdate) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelUpdate) ProtoMessage() {} func (*ClosedChannelUpdate) ProtoMessage() {}
func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{86} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{86}
} }
func (m *ClosedChannelUpdate) XXX_Unmarshal(b []byte) error { func (m *ClosedChannelUpdate) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ClosedChannelUpdate.Unmarshal(m, b) return xxx_messageInfo_ClosedChannelUpdate.Unmarshal(m, b)
@ -6138,7 +6146,7 @@ func (m *HopHint) Reset() { *m = HopHint{} }
func (m *HopHint) String() string { return proto.CompactTextString(m) } func (m *HopHint) String() string { return proto.CompactTextString(m) }
func (*HopHint) ProtoMessage() {} func (*HopHint) ProtoMessage() {}
func (*HopHint) Descriptor() ([]byte, []int) { func (*HopHint) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{87} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{87}
} }
func (m *HopHint) XXX_Unmarshal(b []byte) error { func (m *HopHint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HopHint.Unmarshal(m, b) return xxx_messageInfo_HopHint.Unmarshal(m, b)
@ -6207,7 +6215,7 @@ func (m *RouteHint) Reset() { *m = RouteHint{} }
func (m *RouteHint) String() string { return proto.CompactTextString(m) } func (m *RouteHint) String() string { return proto.CompactTextString(m) }
func (*RouteHint) ProtoMessage() {} func (*RouteHint) ProtoMessage() {}
func (*RouteHint) Descriptor() ([]byte, []int) { func (*RouteHint) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{88} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{88}
} }
func (m *RouteHint) XXX_Unmarshal(b []byte) error { func (m *RouteHint) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RouteHint.Unmarshal(m, b) return xxx_messageInfo_RouteHint.Unmarshal(m, b)
@ -6322,7 +6330,7 @@ func (m *Invoice) Reset() { *m = Invoice{} }
func (m *Invoice) String() string { return proto.CompactTextString(m) } func (m *Invoice) String() string { return proto.CompactTextString(m) }
func (*Invoice) ProtoMessage() {} func (*Invoice) ProtoMessage() {}
func (*Invoice) Descriptor() ([]byte, []int) { func (*Invoice) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{89} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{89}
} }
func (m *Invoice) XXX_Unmarshal(b []byte) error { func (m *Invoice) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Invoice.Unmarshal(m, b) return xxx_messageInfo_Invoice.Unmarshal(m, b)
@ -6514,7 +6522,7 @@ func (m *AddInvoiceResponse) Reset() { *m = AddInvoiceResponse{} }
func (m *AddInvoiceResponse) String() string { return proto.CompactTextString(m) } func (m *AddInvoiceResponse) String() string { return proto.CompactTextString(m) }
func (*AddInvoiceResponse) ProtoMessage() {} func (*AddInvoiceResponse) ProtoMessage() {}
func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { func (*AddInvoiceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{90} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{90}
} }
func (m *AddInvoiceResponse) XXX_Unmarshal(b []byte) error { func (m *AddInvoiceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddInvoiceResponse.Unmarshal(m, b) return xxx_messageInfo_AddInvoiceResponse.Unmarshal(m, b)
@ -6571,7 +6579,7 @@ func (m *PaymentHash) Reset() { *m = PaymentHash{} }
func (m *PaymentHash) String() string { return proto.CompactTextString(m) } func (m *PaymentHash) String() string { return proto.CompactTextString(m) }
func (*PaymentHash) ProtoMessage() {} func (*PaymentHash) ProtoMessage() {}
func (*PaymentHash) Descriptor() ([]byte, []int) { func (*PaymentHash) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{91} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{91}
} }
func (m *PaymentHash) XXX_Unmarshal(b []byte) error { func (m *PaymentHash) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PaymentHash.Unmarshal(m, b) return xxx_messageInfo_PaymentHash.Unmarshal(m, b)
@ -6627,7 +6635,7 @@ func (m *ListInvoiceRequest) Reset() { *m = ListInvoiceRequest{} }
func (m *ListInvoiceRequest) String() string { return proto.CompactTextString(m) } func (m *ListInvoiceRequest) String() string { return proto.CompactTextString(m) }
func (*ListInvoiceRequest) ProtoMessage() {} func (*ListInvoiceRequest) ProtoMessage() {}
func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { func (*ListInvoiceRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{92} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{92}
} }
func (m *ListInvoiceRequest) XXX_Unmarshal(b []byte) error { func (m *ListInvoiceRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListInvoiceRequest.Unmarshal(m, b) return xxx_messageInfo_ListInvoiceRequest.Unmarshal(m, b)
@ -6697,7 +6705,7 @@ func (m *ListInvoiceResponse) Reset() { *m = ListInvoiceResponse{} }
func (m *ListInvoiceResponse) String() string { return proto.CompactTextString(m) } func (m *ListInvoiceResponse) String() string { return proto.CompactTextString(m) }
func (*ListInvoiceResponse) ProtoMessage() {} func (*ListInvoiceResponse) ProtoMessage() {}
func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { func (*ListInvoiceResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{93} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{93}
} }
func (m *ListInvoiceResponse) XXX_Unmarshal(b []byte) error { func (m *ListInvoiceResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListInvoiceResponse.Unmarshal(m, b) return xxx_messageInfo_ListInvoiceResponse.Unmarshal(m, b)
@ -6760,7 +6768,7 @@ func (m *InvoiceSubscription) Reset() { *m = InvoiceSubscription{} }
func (m *InvoiceSubscription) String() string { return proto.CompactTextString(m) } func (m *InvoiceSubscription) String() string { return proto.CompactTextString(m) }
func (*InvoiceSubscription) ProtoMessage() {} func (*InvoiceSubscription) ProtoMessage() {}
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { func (*InvoiceSubscription) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{94} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{94}
} }
func (m *InvoiceSubscription) XXX_Unmarshal(b []byte) error { func (m *InvoiceSubscription) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InvoiceSubscription.Unmarshal(m, b) return xxx_messageInfo_InvoiceSubscription.Unmarshal(m, b)
@ -6820,7 +6828,7 @@ func (m *Payment) Reset() { *m = Payment{} }
func (m *Payment) String() string { return proto.CompactTextString(m) } func (m *Payment) String() string { return proto.CompactTextString(m) }
func (*Payment) ProtoMessage() {} func (*Payment) ProtoMessage() {}
func (*Payment) Descriptor() ([]byte, []int) { func (*Payment) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{95} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{95}
} }
func (m *Payment) XXX_Unmarshal(b []byte) error { func (m *Payment) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Payment.Unmarshal(m, b) return xxx_messageInfo_Payment.Unmarshal(m, b)
@ -6907,7 +6915,7 @@ func (m *ListPaymentsRequest) Reset() { *m = ListPaymentsRequest{} }
func (m *ListPaymentsRequest) String() string { return proto.CompactTextString(m) } func (m *ListPaymentsRequest) String() string { return proto.CompactTextString(m) }
func (*ListPaymentsRequest) ProtoMessage() {} func (*ListPaymentsRequest) ProtoMessage() {}
func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { func (*ListPaymentsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{96} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{96}
} }
func (m *ListPaymentsRequest) XXX_Unmarshal(b []byte) error { func (m *ListPaymentsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPaymentsRequest.Unmarshal(m, b) return xxx_messageInfo_ListPaymentsRequest.Unmarshal(m, b)
@ -6939,7 +6947,7 @@ func (m *ListPaymentsResponse) Reset() { *m = ListPaymentsResponse{} }
func (m *ListPaymentsResponse) String() string { return proto.CompactTextString(m) } func (m *ListPaymentsResponse) String() string { return proto.CompactTextString(m) }
func (*ListPaymentsResponse) ProtoMessage() {} func (*ListPaymentsResponse) ProtoMessage() {}
func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { func (*ListPaymentsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{97} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{97}
} }
func (m *ListPaymentsResponse) XXX_Unmarshal(b []byte) error { func (m *ListPaymentsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListPaymentsResponse.Unmarshal(m, b) return xxx_messageInfo_ListPaymentsResponse.Unmarshal(m, b)
@ -6976,7 +6984,7 @@ func (m *DeleteAllPaymentsRequest) Reset() { *m = DeleteAllPaymentsReque
func (m *DeleteAllPaymentsRequest) String() string { return proto.CompactTextString(m) } func (m *DeleteAllPaymentsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteAllPaymentsRequest) ProtoMessage() {} func (*DeleteAllPaymentsRequest) ProtoMessage() {}
func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{98} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{98}
} }
func (m *DeleteAllPaymentsRequest) XXX_Unmarshal(b []byte) error { func (m *DeleteAllPaymentsRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteAllPaymentsRequest.Unmarshal(m, b) return xxx_messageInfo_DeleteAllPaymentsRequest.Unmarshal(m, b)
@ -7006,7 +7014,7 @@ func (m *DeleteAllPaymentsResponse) Reset() { *m = DeleteAllPaymentsResp
func (m *DeleteAllPaymentsResponse) String() string { return proto.CompactTextString(m) } func (m *DeleteAllPaymentsResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteAllPaymentsResponse) ProtoMessage() {} func (*DeleteAllPaymentsResponse) ProtoMessage() {}
func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{99} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{99}
} }
func (m *DeleteAllPaymentsResponse) XXX_Unmarshal(b []byte) error { func (m *DeleteAllPaymentsResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteAllPaymentsResponse.Unmarshal(m, b) return xxx_messageInfo_DeleteAllPaymentsResponse.Unmarshal(m, b)
@ -7037,7 +7045,7 @@ func (m *AbandonChannelRequest) Reset() { *m = AbandonChannelRequest{} }
func (m *AbandonChannelRequest) String() string { return proto.CompactTextString(m) } func (m *AbandonChannelRequest) String() string { return proto.CompactTextString(m) }
func (*AbandonChannelRequest) ProtoMessage() {} func (*AbandonChannelRequest) ProtoMessage() {}
func (*AbandonChannelRequest) Descriptor() ([]byte, []int) { func (*AbandonChannelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{100} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{100}
} }
func (m *AbandonChannelRequest) XXX_Unmarshal(b []byte) error { func (m *AbandonChannelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AbandonChannelRequest.Unmarshal(m, b) return xxx_messageInfo_AbandonChannelRequest.Unmarshal(m, b)
@ -7074,7 +7082,7 @@ func (m *AbandonChannelResponse) Reset() { *m = AbandonChannelResponse{}
func (m *AbandonChannelResponse) String() string { return proto.CompactTextString(m) } func (m *AbandonChannelResponse) String() string { return proto.CompactTextString(m) }
func (*AbandonChannelResponse) ProtoMessage() {} func (*AbandonChannelResponse) ProtoMessage() {}
func (*AbandonChannelResponse) Descriptor() ([]byte, []int) { func (*AbandonChannelResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{101} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{101}
} }
func (m *AbandonChannelResponse) XXX_Unmarshal(b []byte) error { func (m *AbandonChannelResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AbandonChannelResponse.Unmarshal(m, b) return xxx_messageInfo_AbandonChannelResponse.Unmarshal(m, b)
@ -7106,7 +7114,7 @@ func (m *DebugLevelRequest) Reset() { *m = DebugLevelRequest{} }
func (m *DebugLevelRequest) String() string { return proto.CompactTextString(m) } func (m *DebugLevelRequest) String() string { return proto.CompactTextString(m) }
func (*DebugLevelRequest) ProtoMessage() {} func (*DebugLevelRequest) ProtoMessage() {}
func (*DebugLevelRequest) Descriptor() ([]byte, []int) { func (*DebugLevelRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{102} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{102}
} }
func (m *DebugLevelRequest) XXX_Unmarshal(b []byte) error { func (m *DebugLevelRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DebugLevelRequest.Unmarshal(m, b) return xxx_messageInfo_DebugLevelRequest.Unmarshal(m, b)
@ -7151,7 +7159,7 @@ func (m *DebugLevelResponse) Reset() { *m = DebugLevelResponse{} }
func (m *DebugLevelResponse) String() string { return proto.CompactTextString(m) } func (m *DebugLevelResponse) String() string { return proto.CompactTextString(m) }
func (*DebugLevelResponse) ProtoMessage() {} func (*DebugLevelResponse) ProtoMessage() {}
func (*DebugLevelResponse) Descriptor() ([]byte, []int) { func (*DebugLevelResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{103} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{103}
} }
func (m *DebugLevelResponse) XXX_Unmarshal(b []byte) error { func (m *DebugLevelResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DebugLevelResponse.Unmarshal(m, b) return xxx_messageInfo_DebugLevelResponse.Unmarshal(m, b)
@ -7190,7 +7198,7 @@ func (m *PayReqString) Reset() { *m = PayReqString{} }
func (m *PayReqString) String() string { return proto.CompactTextString(m) } func (m *PayReqString) String() string { return proto.CompactTextString(m) }
func (*PayReqString) ProtoMessage() {} func (*PayReqString) ProtoMessage() {}
func (*PayReqString) Descriptor() ([]byte, []int) { func (*PayReqString) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{104} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{104}
} }
func (m *PayReqString) XXX_Unmarshal(b []byte) error { func (m *PayReqString) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PayReqString.Unmarshal(m, b) return xxx_messageInfo_PayReqString.Unmarshal(m, b)
@ -7237,7 +7245,7 @@ func (m *PayReq) Reset() { *m = PayReq{} }
func (m *PayReq) String() string { return proto.CompactTextString(m) } func (m *PayReq) String() string { return proto.CompactTextString(m) }
func (*PayReq) ProtoMessage() {} func (*PayReq) ProtoMessage() {}
func (*PayReq) Descriptor() ([]byte, []int) { func (*PayReq) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{105} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{105}
} }
func (m *PayReq) XXX_Unmarshal(b []byte) error { func (m *PayReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PayReq.Unmarshal(m, b) return xxx_messageInfo_PayReq.Unmarshal(m, b)
@ -7337,7 +7345,7 @@ func (m *FeeReportRequest) Reset() { *m = FeeReportRequest{} }
func (m *FeeReportRequest) String() string { return proto.CompactTextString(m) } func (m *FeeReportRequest) String() string { return proto.CompactTextString(m) }
func (*FeeReportRequest) ProtoMessage() {} func (*FeeReportRequest) ProtoMessage() {}
func (*FeeReportRequest) Descriptor() ([]byte, []int) { func (*FeeReportRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{106} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{106}
} }
func (m *FeeReportRequest) XXX_Unmarshal(b []byte) error { func (m *FeeReportRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeReportRequest.Unmarshal(m, b) return xxx_messageInfo_FeeReportRequest.Unmarshal(m, b)
@ -7375,7 +7383,7 @@ func (m *ChannelFeeReport) Reset() { *m = ChannelFeeReport{} }
func (m *ChannelFeeReport) String() string { return proto.CompactTextString(m) } func (m *ChannelFeeReport) String() string { return proto.CompactTextString(m) }
func (*ChannelFeeReport) ProtoMessage() {} func (*ChannelFeeReport) ProtoMessage() {}
func (*ChannelFeeReport) Descriptor() ([]byte, []int) { func (*ChannelFeeReport) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{107} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{107}
} }
func (m *ChannelFeeReport) XXX_Unmarshal(b []byte) error { func (m *ChannelFeeReport) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ChannelFeeReport.Unmarshal(m, b) return xxx_messageInfo_ChannelFeeReport.Unmarshal(m, b)
@ -7441,7 +7449,7 @@ func (m *FeeReportResponse) Reset() { *m = FeeReportResponse{} }
func (m *FeeReportResponse) String() string { return proto.CompactTextString(m) } func (m *FeeReportResponse) String() string { return proto.CompactTextString(m) }
func (*FeeReportResponse) ProtoMessage() {} func (*FeeReportResponse) ProtoMessage() {}
func (*FeeReportResponse) Descriptor() ([]byte, []int) { func (*FeeReportResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{108} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{108}
} }
func (m *FeeReportResponse) XXX_Unmarshal(b []byte) error { func (m *FeeReportResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FeeReportResponse.Unmarshal(m, b) return xxx_messageInfo_FeeReportResponse.Unmarshal(m, b)
@ -7509,7 +7517,7 @@ func (m *PolicyUpdateRequest) Reset() { *m = PolicyUpdateRequest{} }
func (m *PolicyUpdateRequest) String() string { return proto.CompactTextString(m) } func (m *PolicyUpdateRequest) String() string { return proto.CompactTextString(m) }
func (*PolicyUpdateRequest) ProtoMessage() {} func (*PolicyUpdateRequest) ProtoMessage() {}
func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{109} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{109}
} }
func (m *PolicyUpdateRequest) XXX_Unmarshal(b []byte) error { func (m *PolicyUpdateRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PolicyUpdateRequest.Unmarshal(m, b) return xxx_messageInfo_PolicyUpdateRequest.Unmarshal(m, b)
@ -7670,7 +7678,7 @@ func (m *PolicyUpdateResponse) Reset() { *m = PolicyUpdateResponse{} }
func (m *PolicyUpdateResponse) String() string { return proto.CompactTextString(m) } func (m *PolicyUpdateResponse) String() string { return proto.CompactTextString(m) }
func (*PolicyUpdateResponse) ProtoMessage() {} func (*PolicyUpdateResponse) ProtoMessage() {}
func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) { func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{110} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{110}
} }
func (m *PolicyUpdateResponse) XXX_Unmarshal(b []byte) error { func (m *PolicyUpdateResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PolicyUpdateResponse.Unmarshal(m, b) return xxx_messageInfo_PolicyUpdateResponse.Unmarshal(m, b)
@ -7708,7 +7716,7 @@ func (m *ForwardingHistoryRequest) Reset() { *m = ForwardingHistoryReque
func (m *ForwardingHistoryRequest) String() string { return proto.CompactTextString(m) } func (m *ForwardingHistoryRequest) String() string { return proto.CompactTextString(m) }
func (*ForwardingHistoryRequest) ProtoMessage() {} func (*ForwardingHistoryRequest) ProtoMessage() {}
func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) { func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{111} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{111}
} }
func (m *ForwardingHistoryRequest) XXX_Unmarshal(b []byte) error { func (m *ForwardingHistoryRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingHistoryRequest.Unmarshal(m, b) return xxx_messageInfo_ForwardingHistoryRequest.Unmarshal(m, b)
@ -7780,7 +7788,7 @@ func (m *ForwardingEvent) Reset() { *m = ForwardingEvent{} }
func (m *ForwardingEvent) String() string { return proto.CompactTextString(m) } func (m *ForwardingEvent) String() string { return proto.CompactTextString(m) }
func (*ForwardingEvent) ProtoMessage() {} func (*ForwardingEvent) ProtoMessage() {}
func (*ForwardingEvent) Descriptor() ([]byte, []int) { func (*ForwardingEvent) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{112} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{112}
} }
func (m *ForwardingEvent) XXX_Unmarshal(b []byte) error { func (m *ForwardingEvent) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingEvent.Unmarshal(m, b) return xxx_messageInfo_ForwardingEvent.Unmarshal(m, b)
@ -7863,7 +7871,7 @@ func (m *ForwardingHistoryResponse) Reset() { *m = ForwardingHistoryResp
func (m *ForwardingHistoryResponse) String() string { return proto.CompactTextString(m) } func (m *ForwardingHistoryResponse) String() string { return proto.CompactTextString(m) }
func (*ForwardingHistoryResponse) ProtoMessage() {} func (*ForwardingHistoryResponse) ProtoMessage() {}
func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) { func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_38da331231ebb227, []int{113} return fileDescriptor_rpc_b39befcd0cdbfb71, []int{113}
} }
func (m *ForwardingHistoryResponse) XXX_Unmarshal(b []byte) error { func (m *ForwardingHistoryResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForwardingHistoryResponse.Unmarshal(m, b) return xxx_messageInfo_ForwardingHistoryResponse.Unmarshal(m, b)
@ -10363,446 +10371,447 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
Metadata: "rpc.proto", Metadata: "rpc.proto",
} }
func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_38da331231ebb227) } func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_b39befcd0cdbfb71) }
var fileDescriptor_rpc_38da331231ebb227 = []byte{ var fileDescriptor_rpc_b39befcd0cdbfb71 = []byte{
// 7002 bytes of a gzipped FileDescriptorProto // 7012 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x5f, 0x6c, 0x24, 0xc9, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x5c, 0x5f, 0x6c, 0x24, 0xc9,
0x59, 0xdf, 0x9e, 0x3f, 0xf6, 0xcc, 0x37, 0xe3, 0xf1, 0xb8, 0xfc, 0x67, 0x67, 0xe7, 0xf6, 0xf6, 0x59, 0xdf, 0x9e, 0x3f, 0xf6, 0xcc, 0x37, 0xe3, 0xf1, 0xb8, 0xfc, 0x67, 0x67, 0xe7, 0xf6, 0xf6,
0xf6, 0x3a, 0xcb, 0xad, 0xe3, 0x1c, 0xeb, 0xbd, 0x4d, 0x72, 0x5c, 0xee, 0x48, 0xc0, 0x6b, 0x7b, 0xf6, 0x3a, 0xcb, 0xad, 0xe3, 0x1c, 0xeb, 0xbd, 0x4d, 0x72, 0x5c, 0xee, 0x48, 0xc0, 0x6b, 0x7b,
0xd7, 0x9b, 0xf8, 0xbc, 0x4e, 0x7b, 0x37, 0x4b, 0x2e, 0x41, 0x93, 0xf6, 0x4c, 0x79, 0xdc, 0xb7, 0xd7, 0x9b, 0xf8, 0xbc, 0x4e, 0x7b, 0x37, 0x4b, 0x2e, 0x41, 0x93, 0xf6, 0x4c, 0x79, 0xdc, 0xb7,
0x3d, 0xdd, 0x93, 0xee, 0x1e, 0x7b, 0x27, 0xc7, 0x49, 0x08, 0x10, 0x91, 0x10, 0x08, 0x01, 0x2f, 0x3d, 0xdd, 0x93, 0xee, 0x1e, 0x7b, 0x27, 0xc7, 0x49, 0x08, 0x10, 0x91, 0x10, 0x08, 0x01, 0x2f,
0x04, 0x05, 0x21, 0x05, 0x24, 0xc8, 0x23, 0x0f, 0x89, 0x90, 0x80, 0x37, 0x84, 0x04, 0x12, 0x42, 0x04, 0x05, 0x21, 0x05, 0x24, 0xc8, 0x23, 0x0f, 0x89, 0x90, 0x80, 0x37, 0xc4, 0x03, 0x12, 0x42,
0x90, 0x47, 0x24, 0x24, 0x04, 0x2f, 0xc0, 0x1b, 0x12, 0x8f, 0x48, 0xa8, 0xbe, 0xfa, 0xd3, 0x55, 0x90, 0x47, 0x24, 0x24, 0x04, 0x3c, 0x00, 0x6f, 0x48, 0x3c, 0x22, 0xa1, 0xfa, 0xea, 0x4f, 0x57,
0xdd, 0x3d, 0xeb, 0xbd, 0x24, 0xf0, 0x64, 0xd7, 0xaf, 0xbe, 0xae, 0xbf, 0xdf, 0xbf, 0xfa, 0xea, 0x75, 0xf7, 0xac, 0xf7, 0x92, 0xc0, 0x93, 0x5d, 0xbf, 0xfa, 0xba, 0xfe, 0x7e, 0xff, 0xea, 0xab,
0xab, 0x81, 0x7a, 0x34, 0xee, 0xdf, 0x1a, 0x47, 0x61, 0x12, 0x92, 0xaa, 0x1f, 0x44, 0xe3, 0x7e, 0xaf, 0x06, 0xea, 0xd1, 0xb8, 0x7f, 0x6b, 0x1c, 0x85, 0x49, 0x48, 0xaa, 0x7e, 0x10, 0x8d, 0xfb,
0xf7, 0xea, 0x30, 0x0c, 0x87, 0x3e, 0xdd, 0x74, 0xc7, 0xde, 0xa6, 0x1b, 0x04, 0x61, 0xe2, 0x26, 0xdd, 0xab, 0xc3, 0x30, 0x1c, 0xfa, 0x74, 0xd3, 0x1d, 0x7b, 0x9b, 0x6e, 0x10, 0x84, 0x89, 0x9b,
0x5e, 0x18, 0xc4, 0x9c, 0xc8, 0xfe, 0x1a, 0xb4, 0xee, 0xd3, 0xe0, 0x88, 0xd2, 0x81, 0x43, 0xbf, 0x78, 0x61, 0x10, 0x73, 0x22, 0xfb, 0x6b, 0xd0, 0xba, 0x4f, 0x83, 0x23, 0x4a, 0x07, 0x0e, 0xfd,
0x3e, 0xa1, 0x71, 0x42, 0x3e, 0x01, 0x4b, 0x2e, 0xfd, 0x06, 0xa5, 0x83, 0xde, 0xd8, 0x8d, 0xe3, 0xfa, 0x84, 0xc6, 0x09, 0xf9, 0x04, 0x2c, 0xb9, 0xf4, 0x1b, 0x94, 0x0e, 0x7a, 0x63, 0x37, 0x8e,
0xf1, 0x69, 0xe4, 0xc6, 0xb4, 0x63, 0x5d, 0xb7, 0xd6, 0x9b, 0x4e, 0x9b, 0x57, 0x1c, 0x2a, 0x9c, 0xc7, 0xa7, 0x91, 0x1b, 0xd3, 0x8e, 0x75, 0xdd, 0x5a, 0x6f, 0x3a, 0x6d, 0x5e, 0x71, 0xa8, 0x70,
0xbc, 0x0a, 0xcd, 0x98, 0x91, 0xd2, 0x20, 0x89, 0xc2, 0xf1, 0xb4, 0x53, 0x42, 0xba, 0x06, 0xc3, 0xf2, 0x2a, 0x34, 0x63, 0x46, 0x4a, 0x83, 0x24, 0x0a, 0xc7, 0xd3, 0x4e, 0x09, 0xe9, 0x1a, 0x0c,
0x76, 0x39, 0x64, 0xfb, 0xb0, 0xa8, 0x7a, 0x88, 0xc7, 0x61, 0x10, 0x53, 0x72, 0x1b, 0x56, 0xfa, 0xdb, 0xe5, 0x90, 0xed, 0xc3, 0xa2, 0xea, 0x21, 0x1e, 0x87, 0x41, 0x4c, 0xc9, 0x6d, 0x58, 0xe9,
0xde, 0xf8, 0x94, 0x46, 0x3d, 0xfc, 0x78, 0x14, 0xd0, 0x51, 0x18, 0x78, 0xfd, 0x8e, 0x75, 0xbd, 0x7b, 0xe3, 0x53, 0x1a, 0xf5, 0xf0, 0xe3, 0x51, 0x40, 0x47, 0x61, 0xe0, 0xf5, 0x3b, 0xd6, 0xf5,
0xbc, 0x5e, 0x77, 0x08, 0xaf, 0x63, 0x5f, 0xbc, 0x2b, 0x6a, 0xc8, 0x4d, 0x58, 0xa4, 0x01, 0xc7, 0xf2, 0x7a, 0xdd, 0x21, 0xbc, 0x8e, 0x7d, 0xf1, 0xae, 0xa8, 0x21, 0x37, 0x61, 0x91, 0x06, 0x1c,
0xe9, 0x00, 0xbf, 0x12, 0x5d, 0xb5, 0x52, 0x98, 0x7d, 0x60, 0xff, 0x95, 0x05, 0x4b, 0x0f, 0x02, 0xa7, 0x03, 0xfc, 0x4a, 0x74, 0xd5, 0x4a, 0x61, 0xf6, 0x81, 0xfd, 0x57, 0x16, 0x2c, 0x3d, 0x08,
0x2f, 0x79, 0xe2, 0xfa, 0x3e, 0x4d, 0xe4, 0x9c, 0x6e, 0xc2, 0xe2, 0x39, 0x02, 0x38, 0xa7, 0xf3, 0xbc, 0xe4, 0x89, 0xeb, 0xfb, 0x34, 0x91, 0x73, 0xba, 0x09, 0x8b, 0xe7, 0x08, 0xe0, 0x9c, 0xce,
0x30, 0x1a, 0x88, 0x19, 0xb5, 0x38, 0x7c, 0x28, 0xd0, 0x99, 0x23, 0x2b, 0xcd, 0x1c, 0x59, 0xe1, 0xc3, 0x68, 0x20, 0x66, 0xd4, 0xe2, 0xf0, 0xa1, 0x40, 0x67, 0x8e, 0xac, 0x34, 0x73, 0x64, 0x85,
0x72, 0x95, 0x67, 0x2c, 0xd7, 0x4d, 0x58, 0x8c, 0x68, 0x3f, 0x3c, 0xa3, 0xd1, 0xb4, 0x77, 0xee, 0xcb, 0x55, 0x9e, 0xb1, 0x5c, 0x37, 0x61, 0x31, 0xa2, 0xfd, 0xf0, 0x8c, 0x46, 0xd3, 0xde, 0xb9,
0x05, 0x83, 0xf0, 0xbc, 0x53, 0xb9, 0x6e, 0xad, 0x57, 0x9d, 0x96, 0x84, 0x9f, 0x20, 0x6a, 0xaf, 0x17, 0x0c, 0xc2, 0xf3, 0x4e, 0xe5, 0xba, 0xb5, 0x5e, 0x75, 0x5a, 0x12, 0x7e, 0x82, 0xa8, 0xbd,
0x00, 0xd1, 0x67, 0xc1, 0xd7, 0xcd, 0x1e, 0xc2, 0xf2, 0xe3, 0xc0, 0x0f, 0xfb, 0x4f, 0x7f, 0xc8, 0x02, 0x44, 0x9f, 0x05, 0x5f, 0x37, 0x7b, 0x08, 0xcb, 0x8f, 0x03, 0x3f, 0xec, 0x3f, 0xfd, 0x21,
0xd9, 0x15, 0x74, 0x5f, 0x2a, 0xec, 0x7e, 0x0d, 0x56, 0xcc, 0x8e, 0xc4, 0x00, 0x28, 0xac, 0x6e, 0x67, 0x57, 0xd0, 0x7d, 0xa9, 0xb0, 0xfb, 0x35, 0x58, 0x31, 0x3b, 0x12, 0x03, 0xa0, 0xb0, 0xba,
0x9f, 0xba, 0xc1, 0x90, 0xca, 0x26, 0xe5, 0x10, 0x3e, 0x0e, 0xed, 0xfe, 0x24, 0x8a, 0x68, 0x90, 0x7d, 0xea, 0x06, 0x43, 0x2a, 0x9b, 0x94, 0x43, 0xf8, 0x38, 0xb4, 0xfb, 0x93, 0x28, 0xa2, 0x41,
0x1b, 0xc3, 0xa2, 0xc0, 0xd5, 0x20, 0x5e, 0x85, 0x66, 0x40, 0xcf, 0x53, 0x32, 0xc1, 0x32, 0x01, 0x6e, 0x0c, 0x8b, 0x02, 0x57, 0x83, 0x78, 0x15, 0x9a, 0x01, 0x3d, 0x4f, 0xc9, 0x04, 0xcb, 0x04,
0x3d, 0x97, 0x24, 0x76, 0x07, 0xd6, 0xb2, 0xdd, 0x88, 0x01, 0xfc, 0x8b, 0x05, 0x95, 0xc7, 0xc9, 0xf4, 0x5c, 0x92, 0xd8, 0x1d, 0x58, 0xcb, 0x76, 0x23, 0x06, 0xf0, 0xcf, 0x16, 0x54, 0x1e, 0x27,
0xb3, 0x90, 0xdc, 0x82, 0x4a, 0x32, 0x1d, 0x73, 0xc6, 0x6c, 0xdd, 0x21, 0xb7, 0x90, 0xd7, 0x6f, 0xcf, 0x42, 0x72, 0x0b, 0x2a, 0xc9, 0x74, 0xcc, 0x19, 0xb3, 0x75, 0x87, 0xdc, 0x42, 0x5e, 0xbf,
0x6d, 0x0d, 0x06, 0x11, 0x8d, 0xe3, 0x47, 0xd3, 0x31, 0x75, 0x9a, 0x2e, 0x2f, 0xf4, 0x18, 0x1d, 0xb5, 0x35, 0x18, 0x44, 0x34, 0x8e, 0x1f, 0x4d, 0xc7, 0xd4, 0x69, 0xba, 0xbc, 0xd0, 0x63, 0x74,
0xe9, 0xc0, 0xbc, 0x28, 0x63, 0x87, 0x75, 0x47, 0x16, 0xc9, 0x35, 0x00, 0x77, 0x14, 0x4e, 0x82, 0xa4, 0x03, 0xf3, 0xa2, 0x8c, 0x1d, 0xd6, 0x1d, 0x59, 0x24, 0xd7, 0x00, 0xdc, 0x51, 0x38, 0x09,
0xa4, 0x17, 0xbb, 0x09, 0xee, 0x5c, 0xd9, 0xd1, 0x10, 0x72, 0x15, 0xea, 0xe3, 0xa7, 0xbd, 0xb8, 0x92, 0x5e, 0xec, 0x26, 0xb8, 0x73, 0x65, 0x47, 0x43, 0xc8, 0x55, 0xa8, 0x8f, 0x9f, 0xf6, 0xe2,
0x1f, 0x79, 0xe3, 0x04, 0x77, 0xab, 0xee, 0xa4, 0x00, 0xf9, 0x04, 0xd4, 0xc2, 0x49, 0x32, 0x0e, 0x7e, 0xe4, 0x8d, 0x13, 0xdc, 0xad, 0xba, 0x93, 0x02, 0xe4, 0x13, 0x50, 0x0b, 0x27, 0xc9, 0x38,
0xbd, 0x20, 0xe9, 0x54, 0xaf, 0x5b, 0xeb, 0x8d, 0x3b, 0x8b, 0x62, 0x2c, 0x0f, 0x27, 0xc9, 0x21, 0xf4, 0x82, 0xa4, 0x53, 0xbd, 0x6e, 0xad, 0x37, 0xee, 0x2c, 0x8a, 0xb1, 0x3c, 0x9c, 0x24, 0x87,
0x83, 0x1d, 0x45, 0x40, 0x6e, 0xc0, 0x42, 0x3f, 0x0c, 0x4e, 0xbc, 0x68, 0xc4, 0x65, 0xb0, 0x33, 0x0c, 0x76, 0x14, 0x01, 0xb9, 0x01, 0x0b, 0xfd, 0x30, 0x38, 0xf1, 0xa2, 0x11, 0x97, 0xc1, 0xce,
0x87, 0xbd, 0x99, 0xa0, 0xfd, 0xad, 0x12, 0x34, 0x1e, 0x45, 0x6e, 0x10, 0xbb, 0x7d, 0x06, 0xb0, 0x1c, 0xf6, 0x66, 0x82, 0xf6, 0xb7, 0x4a, 0xd0, 0x78, 0x14, 0xb9, 0x41, 0xec, 0xf6, 0x19, 0xc0,
0xa1, 0x27, 0xcf, 0x7a, 0xa7, 0x6e, 0x7c, 0x8a, 0xb3, 0xad, 0x3b, 0xb2, 0x48, 0xd6, 0x60, 0x8e, 0x86, 0x9e, 0x3c, 0xeb, 0x9d, 0xba, 0xf1, 0x29, 0xce, 0xb6, 0xee, 0xc8, 0x22, 0x59, 0x83, 0x39,
0x0f, 0x14, 0xe7, 0x54, 0x76, 0x44, 0x89, 0xbc, 0x0e, 0x4b, 0xc1, 0x64, 0xd4, 0x33, 0xfb, 0x2a, 0x3e, 0x50, 0x9c, 0x53, 0xd9, 0x11, 0x25, 0xf2, 0x3a, 0x2c, 0x05, 0x93, 0x51, 0xcf, 0xec, 0xab,
0xe3, 0x4e, 0xe7, 0x2b, 0xd8, 0x02, 0x1c, 0xb3, 0xbd, 0xe6, 0x5d, 0xf0, 0x19, 0x6a, 0x08, 0xb1, 0x8c, 0x3b, 0x9d, 0xaf, 0x60, 0x0b, 0x70, 0xcc, 0xf6, 0x9a, 0x77, 0xc1, 0x67, 0xa8, 0x21, 0xc4,
0xa1, 0x29, 0x4a, 0xd4, 0x1b, 0x9e, 0xf2, 0x69, 0x56, 0x1d, 0x03, 0x63, 0x6d, 0x24, 0xde, 0x88, 0x86, 0xa6, 0x28, 0x51, 0x6f, 0x78, 0xca, 0xa7, 0x59, 0x75, 0x0c, 0x8c, 0xb5, 0x91, 0x78, 0x23,
0xf6, 0xe2, 0xc4, 0x1d, 0x8d, 0xc5, 0xb4, 0x34, 0x04, 0xeb, 0xc3, 0xc4, 0xf5, 0x7b, 0x27, 0x94, 0xda, 0x8b, 0x13, 0x77, 0x34, 0x16, 0xd3, 0xd2, 0x10, 0xac, 0x0f, 0x13, 0xd7, 0xef, 0x9d, 0x50,
0xc6, 0x9d, 0x79, 0x51, 0xaf, 0x10, 0xf2, 0x1a, 0xb4, 0x06, 0x34, 0x4e, 0x7a, 0x62, 0x53, 0x68, 0x1a, 0x77, 0xe6, 0x45, 0xbd, 0x42, 0xc8, 0x6b, 0xd0, 0x1a, 0xd0, 0x38, 0xe9, 0x89, 0x4d, 0xa1,
0xdc, 0xa9, 0xa1, 0xc4, 0x65, 0x50, 0xc6, 0x19, 0xf7, 0x69, 0xa2, 0xad, 0x4e, 0x2c, 0x38, 0xd0, 0x71, 0xa7, 0x86, 0x12, 0x97, 0x41, 0x19, 0x67, 0xdc, 0xa7, 0x89, 0xb6, 0x3a, 0xb1, 0xe0, 0x40,
0xde, 0x07, 0xa2, 0xc1, 0x3b, 0x34, 0x71, 0x3d, 0x3f, 0x26, 0x6f, 0x42, 0x33, 0xd1, 0x88, 0x51, 0x7b, 0x1f, 0x88, 0x06, 0xef, 0xd0, 0xc4, 0xf5, 0xfc, 0x98, 0xbc, 0x09, 0xcd, 0x44, 0x23, 0x46,
0xc3, 0x34, 0x14, 0xbb, 0x68, 0x1f, 0x38, 0x06, 0x9d, 0x7d, 0x1f, 0x6a, 0xf7, 0x28, 0xdd, 0xf7, 0x0d, 0xd3, 0x50, 0xec, 0xa2, 0x7d, 0xe0, 0x18, 0x74, 0xf6, 0x7d, 0xa8, 0xdd, 0xa3, 0x74, 0xdf,
0x46, 0x5e, 0x42, 0xd6, 0xa0, 0x7a, 0xe2, 0x3d, 0xa3, 0x9c, 0xa1, 0xcb, 0x7b, 0x97, 0x1c, 0x5e, 0x1b, 0x79, 0x09, 0x59, 0x83, 0xea, 0x89, 0xf7, 0x8c, 0x72, 0x86, 0x2e, 0xef, 0x5d, 0x72, 0x78,
0x24, 0x5d, 0x98, 0x1f, 0xd3, 0xa8, 0x4f, 0xe5, 0xf2, 0xef, 0x5d, 0x72, 0x24, 0x70, 0x77, 0x1e, 0x91, 0x74, 0x61, 0x7e, 0x4c, 0xa3, 0x3e, 0x95, 0xcb, 0xbf, 0x77, 0xc9, 0x91, 0xc0, 0xdd, 0x79,
0xaa, 0x3e, 0xfb, 0xd8, 0xfe, 0xc7, 0x12, 0x34, 0x8e, 0x68, 0xa0, 0x04, 0x85, 0x40, 0x85, 0x4d, 0xa8, 0xfa, 0xec, 0x63, 0xfb, 0x1f, 0x4a, 0xd0, 0x38, 0xa2, 0x81, 0x12, 0x14, 0x02, 0x15, 0x36,
0x49, 0x08, 0x07, 0xfe, 0x4f, 0x5e, 0x81, 0x06, 0x4e, 0x33, 0x4e, 0x22, 0x2f, 0x18, 0x0a, 0xfe, 0x25, 0x21, 0x1c, 0xf8, 0x3f, 0x79, 0x05, 0x1a, 0x38, 0xcd, 0x38, 0x89, 0xbc, 0x60, 0x28, 0xf8,
0x04, 0x06, 0x1d, 0x21, 0x42, 0xda, 0x50, 0x76, 0x47, 0x92, 0x37, 0xd9, 0xbf, 0x4c, 0x88, 0xc6, 0x13, 0x18, 0x74, 0x84, 0x08, 0x69, 0x43, 0xd9, 0x1d, 0x49, 0xde, 0x64, 0xff, 0x32, 0x21, 0x1a,
0xee, 0x74, 0xc4, 0xe4, 0x4d, 0xed, 0x5a, 0xd3, 0x69, 0x08, 0x6c, 0x8f, 0x6d, 0xdb, 0x2d, 0x58, 0xbb, 0xd3, 0x11, 0x93, 0x37, 0xb5, 0x6b, 0x4d, 0xa7, 0x21, 0xb0, 0x3d, 0xb6, 0x6d, 0xb7, 0x60,
0xd6, 0x49, 0x64, 0xeb, 0x55, 0x6c, 0x7d, 0x49, 0xa3, 0x14, 0x9d, 0xdc, 0x84, 0x45, 0x49, 0x1f, 0x59, 0x27, 0x91, 0xad, 0x57, 0xb1, 0xf5, 0x25, 0x8d, 0x52, 0x74, 0x72, 0x13, 0x16, 0x25, 0x7d,
0xf1, 0xc1, 0xe2, 0x3e, 0xd6, 0x9d, 0x96, 0x80, 0xe5, 0x14, 0xd6, 0xa1, 0x7d, 0xe2, 0x05, 0xae, 0xc4, 0x07, 0x8b, 0xfb, 0x58, 0x77, 0x5a, 0x02, 0x96, 0x53, 0x58, 0x87, 0xf6, 0x89, 0x17, 0xb8,
0xdf, 0xeb, 0xfb, 0xc9, 0x59, 0x6f, 0x40, 0xfd, 0xc4, 0xc5, 0x1d, 0xad, 0x3a, 0x2d, 0xc4, 0xb7, 0x7e, 0xaf, 0xef, 0x27, 0x67, 0xbd, 0x01, 0xf5, 0x13, 0x17, 0x77, 0xb4, 0xea, 0xb4, 0x10, 0xdf,
0xfd, 0xe4, 0x6c, 0x87, 0xa1, 0xe4, 0x75, 0xa8, 0x9f, 0x50, 0xda, 0xc3, 0x95, 0xe8, 0xd4, 0x0c, 0xf6, 0x93, 0xb3, 0x1d, 0x86, 0x92, 0xd7, 0xa1, 0x7e, 0x42, 0x69, 0x0f, 0x57, 0xa2, 0x53, 0x33,
0xe9, 0x90, 0xab, 0xeb, 0xd4, 0x4e, 0xe4, 0x3a, 0xaf, 0x43, 0x3b, 0x9c, 0x24, 0xc3, 0xd0, 0x0b, 0xa4, 0x43, 0xae, 0xae, 0x53, 0x3b, 0x91, 0xeb, 0xbc, 0x0e, 0xed, 0x70, 0x92, 0x0c, 0x43, 0x2f,
0x86, 0xbd, 0xfe, 0xa9, 0x1b, 0xf4, 0xbc, 0x41, 0xa7, 0x7e, 0xdd, 0x5a, 0xaf, 0x38, 0x2d, 0x89, 0x18, 0xf6, 0xfa, 0xa7, 0x6e, 0xd0, 0xf3, 0x06, 0x9d, 0xfa, 0x75, 0x6b, 0xbd, 0xe2, 0xb4, 0x24,
0x33, 0xad, 0xf0, 0x60, 0x60, 0xff, 0x99, 0x05, 0x4d, 0xbe, 0xa8, 0xc2, 0xa0, 0xdc, 0x80, 0x05, 0xce, 0xb4, 0xc2, 0x83, 0x81, 0xfd, 0x67, 0x16, 0x34, 0xf9, 0xa2, 0x0a, 0x83, 0x72, 0x03, 0x16,
0x39, 0x76, 0x1a, 0x45, 0x61, 0x24, 0x04, 0xc5, 0x04, 0xc9, 0x06, 0xb4, 0x25, 0x30, 0x8e, 0xa8, 0xe4, 0xd8, 0x69, 0x14, 0x85, 0x91, 0x10, 0x14, 0x13, 0x24, 0x1b, 0xd0, 0x96, 0xc0, 0x38, 0xa2,
0x37, 0x72, 0x87, 0x54, 0x68, 0x9f, 0x1c, 0x4e, 0xee, 0xa4, 0x2d, 0x46, 0xe1, 0x24, 0xe1, 0x2a, 0xde, 0xc8, 0x1d, 0x52, 0xa1, 0x7d, 0x72, 0x38, 0xb9, 0x93, 0xb6, 0x18, 0x85, 0x93, 0x84, 0xab,
0xbd, 0x71, 0xa7, 0x29, 0x86, 0xef, 0x30, 0xcc, 0x31, 0x49, 0x98, 0xa0, 0x14, 0x6c, 0x8a, 0x81, 0xf4, 0xc6, 0x9d, 0xa6, 0x18, 0xbe, 0xc3, 0x30, 0xc7, 0x24, 0x61, 0x82, 0x52, 0xb0, 0x29, 0x06,
0xd9, 0xdf, 0xb3, 0x80, 0xb0, 0xa1, 0x3f, 0x0a, 0x79, 0x13, 0x62, 0x4d, 0xb3, 0xfb, 0x69, 0xbd, 0x66, 0x7f, 0xcf, 0x02, 0xc2, 0x86, 0xfe, 0x28, 0xe4, 0x4d, 0x88, 0x35, 0xcd, 0xee, 0xa7, 0xf5,
0xf0, 0x7e, 0x96, 0x66, 0xed, 0xe7, 0x3a, 0xcc, 0xe1, 0xb0, 0x98, 0xe4, 0x97, 0xb3, 0x43, 0xbf, 0xc2, 0xfb, 0x59, 0x9a, 0xb5, 0x9f, 0xeb, 0x30, 0x87, 0xc3, 0x62, 0x92, 0x5f, 0xce, 0x0e, 0xfd,
0x5b, 0xea, 0x58, 0x8e, 0xa8, 0x27, 0x36, 0x54, 0xf9, 0x1c, 0x2b, 0x05, 0x73, 0xe4, 0x55, 0xf6, 0x6e, 0xa9, 0x63, 0x39, 0xa2, 0x9e, 0xd8, 0x50, 0xe5, 0x73, 0xac, 0x14, 0xcc, 0x91, 0x57, 0xd9,
0x77, 0x2c, 0x68, 0xb2, 0xd5, 0x0f, 0xa8, 0x8f, 0x5a, 0x8d, 0xdc, 0x06, 0x72, 0x32, 0x09, 0x06, 0xdf, 0xb1, 0xa0, 0xc9, 0x56, 0x3f, 0xa0, 0x3e, 0x6a, 0x35, 0x72, 0x1b, 0xc8, 0xc9, 0x24, 0x18,
0x6c, 0xb3, 0x92, 0x67, 0xde, 0xa0, 0x77, 0x3c, 0x65, 0x5d, 0xe1, 0xb8, 0xf7, 0x2e, 0x39, 0x05, 0xb0, 0xcd, 0x4a, 0x9e, 0x79, 0x83, 0xde, 0xf1, 0x94, 0x75, 0x85, 0xe3, 0xde, 0xbb, 0xe4, 0x14,
0x75, 0xe4, 0x75, 0x68, 0x1b, 0x68, 0x9c, 0x44, 0x7c, 0xf4, 0x7b, 0x97, 0x9c, 0x5c, 0x0d, 0x5b, 0xd4, 0x91, 0xd7, 0xa1, 0x6d, 0xa0, 0x71, 0x12, 0xf1, 0xd1, 0xef, 0x5d, 0x72, 0x72, 0x35, 0x6c,
0x4c, 0xa6, 0x37, 0x27, 0x49, 0xcf, 0x0b, 0x06, 0xf4, 0x19, 0xae, 0xff, 0x82, 0x63, 0x60, 0x77, 0x31, 0x99, 0xde, 0x9c, 0x24, 0x3d, 0x2f, 0x18, 0xd0, 0x67, 0xb8, 0xfe, 0x0b, 0x8e, 0x81, 0xdd,
0x5b, 0xd0, 0xd4, 0xbf, 0xb3, 0xdf, 0x87, 0x9a, 0xd4, 0xba, 0xa8, 0x71, 0x32, 0xe3, 0x72, 0x34, 0x6d, 0x41, 0x53, 0xff, 0xce, 0x7e, 0x1f, 0x6a, 0x52, 0xeb, 0xa2, 0xc6, 0xc9, 0x8c, 0xcb, 0xd1,
0x84, 0x74, 0xa1, 0x66, 0x8e, 0xc2, 0xa9, 0x7d, 0x94, 0xbe, 0xed, 0xcf, 0x41, 0x7b, 0x9f, 0xa9, 0x10, 0xd2, 0x85, 0x9a, 0x39, 0x0a, 0xa7, 0xf6, 0x51, 0xfa, 0xb6, 0x3f, 0x07, 0xed, 0x7d, 0xa6,
0xbe, 0xc0, 0x0b, 0x86, 0xc2, 0xec, 0x30, 0x7d, 0x3c, 0x9e, 0x1c, 0x3f, 0xa5, 0x53, 0xc1, 0x7f, 0xfa, 0x02, 0x2f, 0x18, 0x0a, 0xb3, 0xc3, 0xf4, 0xf1, 0x78, 0x72, 0xfc, 0x94, 0x4e, 0x05, 0xff,
0xa2, 0xc4, 0x84, 0xfe, 0x34, 0x8c, 0x13, 0xd1, 0x0f, 0xfe, 0x6f, 0xff, 0xab, 0x05, 0x8b, 0x8c, 0x89, 0x12, 0x13, 0xfa, 0xd3, 0x30, 0x4e, 0x44, 0x3f, 0xf8, 0xbf, 0xfd, 0x2f, 0x16, 0x2c, 0x32,
0x11, 0xde, 0x75, 0x83, 0xa9, 0xe4, 0x82, 0x7d, 0x68, 0xb2, 0xa6, 0x1e, 0x85, 0x5b, 0x5c, 0xab, 0x46, 0x78, 0xd7, 0x0d, 0xa6, 0x92, 0x0b, 0xf6, 0xa1, 0xc9, 0x9a, 0x7a, 0x14, 0x6e, 0x71, 0xad,
0x73, 0x6d, 0xb5, 0x2e, 0xf6, 0x23, 0x43, 0x7d, 0x4b, 0x27, 0x65, 0xce, 0xd6, 0xd4, 0x31, 0xbe, 0xce, 0xb5, 0xd5, 0xba, 0xd8, 0x8f, 0x0c, 0xf5, 0x2d, 0x9d, 0x94, 0x39, 0x5b, 0x53, 0xc7, 0xf8,
0x66, 0x6a, 0x25, 0x71, 0xa3, 0x21, 0x4d, 0x50, 0xdf, 0x0b, 0xfd, 0x0f, 0x1c, 0xda, 0x0e, 0x83, 0x9a, 0xa9, 0x95, 0xc4, 0x8d, 0x86, 0x34, 0x41, 0x7d, 0x2f, 0xf4, 0x3f, 0x70, 0x68, 0x3b, 0x0c,
0x13, 0x72, 0x1d, 0x9a, 0xb1, 0x9b, 0xf4, 0xc6, 0x34, 0xc2, 0x35, 0x41, 0xd5, 0x50, 0x76, 0x20, 0x4e, 0xc8, 0x75, 0x68, 0xc6, 0x6e, 0xd2, 0x1b, 0xd3, 0x08, 0xd7, 0x04, 0x55, 0x43, 0xd9, 0x81,
0x76, 0x93, 0x43, 0x1a, 0xdd, 0x9d, 0x26, 0xb4, 0xfb, 0x33, 0xb0, 0x94, 0xeb, 0x85, 0x69, 0xa3, 0xd8, 0x4d, 0x0e, 0x69, 0x74, 0x77, 0x9a, 0xd0, 0xee, 0xcf, 0xc0, 0x52, 0xae, 0x17, 0xa6, 0x8d,
0x74, 0x8a, 0xec, 0x5f, 0xb2, 0x02, 0xd5, 0x33, 0xd7, 0x9f, 0x50, 0x61, 0x86, 0x78, 0xe1, 0xed, 0xd2, 0x29, 0xb2, 0x7f, 0xc9, 0x0a, 0x54, 0xcf, 0x5c, 0x7f, 0x42, 0x85, 0x19, 0xe2, 0x85, 0xb7,
0xd2, 0x5b, 0x96, 0xfd, 0x1a, 0xb4, 0xd3, 0x61, 0x0b, 0x61, 0x25, 0x50, 0x61, 0x2b, 0x2d, 0x1a, 0x4b, 0x6f, 0x59, 0xf6, 0x6b, 0xd0, 0x4e, 0x87, 0x2d, 0x84, 0x95, 0x40, 0x85, 0xad, 0xb4, 0x68,
0xc0, 0xff, 0xed, 0x6f, 0x5b, 0x9c, 0x70, 0x3b, 0xf4, 0x94, 0x4a, 0x67, 0x84, 0x4c, 0xf3, 0x4b, 0x00, 0xff, 0xb7, 0xbf, 0x6d, 0x71, 0xc2, 0xed, 0xd0, 0x53, 0x2a, 0x9d, 0x11, 0x32, 0xcd, 0x2f,
0x42, 0xf6, 0xff, 0x4c, 0x93, 0xf7, 0xa3, 0x4f, 0x96, 0x5c, 0x81, 0x5a, 0x4c, 0x83, 0x41, 0xcf, 0x09, 0xd9, 0xff, 0x33, 0x4d, 0xde, 0x8f, 0x3e, 0x59, 0x72, 0x05, 0x6a, 0x31, 0x0d, 0x06, 0x3d,
0xf5, 0x7d, 0xd4, 0x7c, 0x35, 0x67, 0x9e, 0x95, 0xb7, 0x7c, 0xdf, 0xbe, 0x09, 0x4b, 0xda, 0xe8, 0xd7, 0xf7, 0x51, 0xf3, 0xd5, 0x9c, 0x79, 0x56, 0xde, 0xf2, 0x7d, 0xfb, 0x26, 0x2c, 0x69, 0xa3,
0x9e, 0x33, 0x8f, 0x03, 0x20, 0xfb, 0x5e, 0x9c, 0x3c, 0x0e, 0xe2, 0xb1, 0xa6, 0x31, 0x5f, 0x82, 0x7b, 0xce, 0x3c, 0x0e, 0x80, 0xec, 0x7b, 0x71, 0xf2, 0x38, 0x88, 0xc7, 0x9a, 0xc6, 0x7c, 0x09,
0xfa, 0xc8, 0x0b, 0x70, 0x64, 0x9c, 0x15, 0xab, 0x4e, 0x6d, 0xe4, 0x05, 0x6c, 0x5c, 0x31, 0x56, 0xea, 0x23, 0x2f, 0xc0, 0x91, 0x71, 0x56, 0xac, 0x3a, 0xb5, 0x91, 0x17, 0xb0, 0x71, 0xc5, 0x58,
0xba, 0xcf, 0x44, 0x65, 0x49, 0x54, 0xba, 0xcf, 0xb0, 0xd2, 0x7e, 0x0b, 0x96, 0x8d, 0xf6, 0x44, 0xe9, 0x3e, 0x13, 0x95, 0x25, 0x51, 0xe9, 0x3e, 0xc3, 0x4a, 0xfb, 0x2d, 0x58, 0x36, 0xda, 0x13,
0xd7, 0xaf, 0x42, 0x75, 0x92, 0x3c, 0x0b, 0xa5, 0x3d, 0x6b, 0x08, 0x0e, 0x61, 0x9e, 0x91, 0xc3, 0x5d, 0xbf, 0x0a, 0xd5, 0x49, 0xf2, 0x2c, 0x94, 0xf6, 0xac, 0x21, 0x38, 0x84, 0x79, 0x46, 0x0e,
0x6b, 0xec, 0x77, 0x60, 0xe9, 0x80, 0x9e, 0x0b, 0xce, 0x94, 0x03, 0x79, 0xed, 0x42, 0xaf, 0x09, 0xaf, 0xb1, 0xdf, 0x81, 0xa5, 0x03, 0x7a, 0x2e, 0x38, 0x53, 0x0e, 0xe4, 0xb5, 0x0b, 0xbd, 0x26,
0xeb, 0xed, 0x5b, 0x40, 0xf4, 0x8f, 0x45, 0xaf, 0x9a, 0x0f, 0x65, 0x19, 0x3e, 0x94, 0xfd, 0x1a, 0xac, 0xb7, 0x6f, 0x01, 0xd1, 0x3f, 0x16, 0xbd, 0x6a, 0x3e, 0x94, 0x65, 0xf8, 0x50, 0xf6, 0x6b,
0x90, 0x23, 0x6f, 0x18, 0xbc, 0x4b, 0xe3, 0xd8, 0x1d, 0x2a, 0xa5, 0xd6, 0x86, 0xf2, 0x28, 0x1e, 0x40, 0x8e, 0xbc, 0x61, 0xf0, 0x2e, 0x8d, 0x63, 0x77, 0xa8, 0x94, 0x5a, 0x1b, 0xca, 0xa3, 0x78,
0x0a, 0xd9, 0x63, 0xff, 0xda, 0x9f, 0x84, 0x65, 0x83, 0x4e, 0x34, 0x7c, 0x15, 0xea, 0xb1, 0x37, 0x28, 0x64, 0x8f, 0xfd, 0x6b, 0x7f, 0x12, 0x96, 0x0d, 0x3a, 0xd1, 0xf0, 0x55, 0xa8, 0xc7, 0xde,
0x0c, 0xdc, 0x64, 0x12, 0x51, 0xd1, 0x74, 0x0a, 0xd8, 0xf7, 0x60, 0xe5, 0x4b, 0x34, 0xf2, 0x4e, 0x30, 0x70, 0x93, 0x49, 0x44, 0x45, 0xd3, 0x29, 0x60, 0xdf, 0x83, 0x95, 0x2f, 0xd1, 0xc8, 0x3b,
0xa6, 0x17, 0x35, 0x6f, 0xb6, 0x53, 0xca, 0xb6, 0xb3, 0x0b, 0xab, 0x99, 0x76, 0x44, 0xf7, 0x9c, 0x99, 0x5e, 0xd4, 0xbc, 0xd9, 0x4e, 0x29, 0xdb, 0xce, 0x2e, 0xac, 0x66, 0xda, 0x11, 0xdd, 0x73,
0x7d, 0xc5, 0x4e, 0xd6, 0x1c, 0x5e, 0xd0, 0x84, 0xb9, 0xa4, 0x0b, 0xb3, 0xfd, 0x18, 0xc8, 0x76, 0xf6, 0x15, 0x3b, 0x59, 0x73, 0x78, 0x41, 0x13, 0xe6, 0x92, 0x2e, 0xcc, 0xf6, 0x63, 0x20, 0xdb,
0x18, 0x04, 0xb4, 0x9f, 0x1c, 0x52, 0x1a, 0xa5, 0xa7, 0xa6, 0x94, 0x57, 0x1b, 0x77, 0x2e, 0x8b, 0x61, 0x10, 0xd0, 0x7e, 0x72, 0x48, 0x69, 0x94, 0x9e, 0x9a, 0x52, 0x5e, 0x6d, 0xdc, 0xb9, 0x2c,
0x95, 0xcd, 0x6a, 0x08, 0xc1, 0xc4, 0x04, 0x2a, 0x63, 0x1a, 0x8d, 0xb0, 0xe1, 0x9a, 0x83, 0xff, 0x56, 0x36, 0xab, 0x21, 0x04, 0x13, 0x13, 0xa8, 0x8c, 0x69, 0x34, 0xc2, 0x86, 0x6b, 0x0e, 0xfe,
0xdb, 0xab, 0xb0, 0x6c, 0x34, 0x2b, 0x1c, 0xde, 0x37, 0x60, 0x75, 0xc7, 0x8b, 0xfb, 0xf9, 0x0e, 0x6f, 0xaf, 0xc2, 0xb2, 0xd1, 0xac, 0x70, 0x78, 0xdf, 0x80, 0xd5, 0x1d, 0x2f, 0xee, 0xe7, 0x3b,
0x3b, 0x30, 0x3f, 0x9e, 0x1c, 0xf7, 0x52, 0x49, 0x94, 0x45, 0xe6, 0x23, 0x65, 0x3f, 0x11, 0x8d, 0xec, 0xc0, 0xfc, 0x78, 0x72, 0xdc, 0x4b, 0x25, 0x51, 0x16, 0x99, 0x8f, 0x94, 0xfd, 0x44, 0x34,
0xfd, 0xaa, 0x05, 0x95, 0xbd, 0x47, 0xfb, 0xdb, 0x4c, 0xf9, 0x79, 0x41, 0x3f, 0x1c, 0x31, 0x03, 0xf6, 0xab, 0x16, 0x54, 0xf6, 0x1e, 0xed, 0x6f, 0x33, 0xe5, 0xe7, 0x05, 0xfd, 0x70, 0xc4, 0x0c,
0xc2, 0x27, 0xad, 0xca, 0x33, 0x25, 0xec, 0x2a, 0xd4, 0xd1, 0xee, 0x30, 0xb7, 0x4f, 0x1c, 0x70, 0x08, 0x9f, 0xb4, 0x2a, 0xcf, 0x94, 0xb0, 0xab, 0x50, 0x47, 0xbb, 0xc3, 0xdc, 0x3e, 0x71, 0xc0,
0x52, 0x80, 0xb9, 0x9c, 0xf4, 0xd9, 0xd8, 0x8b, 0xd0, 0xa7, 0x94, 0x9e, 0x62, 0x05, 0xf5, 0x66, 0x49, 0x01, 0xe6, 0x72, 0xd2, 0x67, 0x63, 0x2f, 0x42, 0x9f, 0x52, 0x7a, 0x8a, 0x15, 0xd4, 0x9b,
0xbe, 0xc2, 0xfe, 0x76, 0x15, 0xe6, 0x85, 0x35, 0xc1, 0xfe, 0xfa, 0x89, 0x77, 0x46, 0xc5, 0x48, 0xf9, 0x0a, 0xfb, 0xdb, 0x55, 0x98, 0x17, 0xd6, 0x04, 0xfb, 0xeb, 0x27, 0xde, 0x19, 0x15, 0x23,
0x44, 0x89, 0xd9, 0xf4, 0x88, 0x8e, 0xc2, 0x84, 0xf6, 0x8c, 0x6d, 0x30, 0x41, 0x74, 0xa9, 0x79, 0x11, 0x25, 0x66, 0xd3, 0x23, 0x3a, 0x0a, 0x13, 0xda, 0x33, 0xb6, 0xc1, 0x04, 0xd1, 0xa5, 0xe6,
0x43, 0x3d, 0xee, 0x84, 0x97, 0x39, 0x95, 0x01, 0xb2, 0xc5, 0x92, 0x1e, 0x45, 0x05, 0x3d, 0x0a, 0x0d, 0xf5, 0xb8, 0x13, 0x5e, 0xe6, 0x54, 0x06, 0xc8, 0x16, 0x4b, 0x7a, 0x14, 0x15, 0xf4, 0x28,
0x59, 0x64, 0x2b, 0xd1, 0x77, 0xc7, 0x6e, 0xdf, 0x4b, 0xa6, 0x42, 0x25, 0xa8, 0x32, 0x6b, 0xdb, 0x64, 0x91, 0xad, 0x44, 0xdf, 0x1d, 0xbb, 0x7d, 0x2f, 0x99, 0x0a, 0x95, 0xa0, 0xca, 0xac, 0x6d,
0x0f, 0xfb, 0xae, 0xdf, 0x3b, 0x76, 0x7d, 0x37, 0xe8, 0x53, 0xe9, 0xae, 0x1b, 0x20, 0x73, 0x5d, 0x3f, 0xec, 0xbb, 0x7e, 0xef, 0xd8, 0xf5, 0xdd, 0xa0, 0x4f, 0xa5, 0xbb, 0x6e, 0x80, 0xcc, 0x75,
0xc5, 0x90, 0x24, 0x19, 0x77, 0x6f, 0x33, 0x28, 0x33, 0x48, 0xfd, 0x70, 0x34, 0xf2, 0x12, 0xe6, 0x15, 0x43, 0x92, 0x64, 0xdc, 0xbd, 0xcd, 0xa0, 0xcc, 0x20, 0xf5, 0xc3, 0xd1, 0xc8, 0x4b, 0x98,
0xf1, 0xa2, 0x37, 0x54, 0x76, 0x34, 0x84, 0x1f, 0x0e, 0xb0, 0x74, 0xce, 0x57, 0xaf, 0x2e, 0x0f, 0xc7, 0x8b, 0xde, 0x50, 0xd9, 0xd1, 0x10, 0x7e, 0x38, 0xc0, 0xd2, 0x39, 0x5f, 0xbd, 0xba, 0x3c,
0x07, 0x1a, 0xc8, 0x5a, 0x61, 0x2e, 0x15, 0x53, 0x63, 0x4f, 0xcf, 0x3b, 0xc0, 0x5b, 0x49, 0x11, 0x1c, 0x68, 0x20, 0x6b, 0x85, 0xb9, 0x54, 0x4c, 0x8d, 0x3d, 0x3d, 0xef, 0x00, 0x6f, 0x25, 0x45,
0xb6, 0x0f, 0x93, 0x20, 0xa6, 0x49, 0xe2, 0xd3, 0x81, 0x1a, 0x50, 0x03, 0xc9, 0xf2, 0x15, 0xe4, 0xd8, 0x3e, 0x4c, 0x82, 0x98, 0x26, 0x89, 0x4f, 0x07, 0x6a, 0x40, 0x0d, 0x24, 0xcb, 0x57, 0x90,
0x36, 0x2c, 0x73, 0x27, 0x3c, 0x76, 0x93, 0x30, 0x3e, 0xf5, 0xe2, 0x5e, 0xcc, 0xdc, 0xd9, 0x26, 0xdb, 0xb0, 0xcc, 0x9d, 0xf0, 0xd8, 0x4d, 0xc2, 0xf8, 0xd4, 0x8b, 0x7b, 0x31, 0x73, 0x67, 0x9b,
0xd2, 0x17, 0x55, 0x91, 0xb7, 0xe0, 0x72, 0x06, 0x8e, 0x68, 0x9f, 0x7a, 0x67, 0x74, 0xd0, 0x59, 0x48, 0x5f, 0x54, 0x45, 0xde, 0x82, 0xcb, 0x19, 0x38, 0xa2, 0x7d, 0xea, 0x9d, 0xd1, 0x41, 0x67,
0xc0, 0xaf, 0x66, 0x55, 0x93, 0xeb, 0xd0, 0x60, 0x67, 0x8f, 0xc9, 0x78, 0xe0, 0x32, 0x8b, 0xdc, 0x01, 0xbf, 0x9a, 0x55, 0x4d, 0xae, 0x43, 0x83, 0x9d, 0x3d, 0x26, 0xe3, 0x81, 0xcb, 0x2c, 0x72,
0xc2, 0x7d, 0xd0, 0x21, 0xf2, 0x06, 0x2c, 0x8c, 0x29, 0x37, 0xe7, 0xa7, 0x89, 0xdf, 0x8f, 0x3b, 0x0b, 0xf7, 0x41, 0x87, 0xc8, 0x1b, 0xb0, 0x30, 0xa6, 0xdc, 0x9c, 0x9f, 0x26, 0x7e, 0x3f, 0xee,
0x8b, 0x86, 0x76, 0x63, 0x9c, 0xeb, 0x98, 0x14, 0x8c, 0x29, 0xfb, 0x31, 0x3a, 0xa1, 0xee, 0xb4, 0x2c, 0x1a, 0xda, 0x8d, 0x71, 0xae, 0x63, 0x52, 0x30, 0xa6, 0xec, 0xc7, 0xe8, 0x84, 0xba, 0xd3,
0xd3, 0x46, 0x76, 0x4b, 0x01, 0x94, 0x91, 0xc8, 0x3b, 0x73, 0x13, 0xda, 0x59, 0xe2, 0x0a, 0x5d, 0x4e, 0x1b, 0xd9, 0x2d, 0x05, 0x50, 0x46, 0x22, 0xef, 0xcc, 0x4d, 0x68, 0x67, 0x89, 0x2b, 0x74,
0x14, 0xd9, 0x77, 0x5e, 0xe0, 0x25, 0x9e, 0x9b, 0x84, 0x51, 0x87, 0x60, 0x5d, 0x0a, 0xd8, 0x7f, 0x51, 0x64, 0xdf, 0x79, 0x81, 0x97, 0x78, 0x6e, 0x12, 0x46, 0x1d, 0x82, 0x75, 0x29, 0x60, 0xff,
0x60, 0x71, 0xb5, 0x2b, 0x58, 0x54, 0xa9, 0xcf, 0x57, 0xa0, 0xc1, 0x99, 0xb3, 0x17, 0x06, 0xfe, 0x81, 0xc5, 0xd5, 0xae, 0x60, 0x51, 0xa5, 0x3e, 0x5f, 0x81, 0x06, 0x67, 0xce, 0x5e, 0x18, 0xf8,
0x54, 0xf0, 0x2b, 0x70, 0xe8, 0x61, 0xe0, 0x4f, 0xc9, 0xc7, 0x60, 0xc1, 0x0b, 0x74, 0x12, 0x2e, 0x53, 0xc1, 0xaf, 0xc0, 0xa1, 0x87, 0x81, 0x3f, 0x25, 0x1f, 0x83, 0x05, 0x2f, 0xd0, 0x49, 0xb8,
0xe1, 0x4d, 0x09, 0x22, 0xd1, 0x2b, 0xd0, 0x18, 0x4f, 0x8e, 0x7d, 0xaf, 0xcf, 0x49, 0xca, 0xbc, 0x84, 0x37, 0x25, 0x88, 0x44, 0xaf, 0x40, 0x63, 0x3c, 0x39, 0xf6, 0xbd, 0x3e, 0x27, 0x29, 0xf3,
0x15, 0x0e, 0x21, 0x01, 0x73, 0x06, 0xf9, 0x38, 0x39, 0x45, 0x05, 0x29, 0x1a, 0x02, 0x63, 0x24, 0x56, 0x38, 0x84, 0x04, 0xcc, 0x19, 0xe4, 0xe3, 0xe4, 0x14, 0x15, 0xa4, 0x68, 0x08, 0x8c, 0x91,
0xf6, 0x5d, 0x58, 0x31, 0x07, 0x28, 0x54, 0xd9, 0x06, 0xd4, 0x04, 0xe7, 0xc7, 0x9d, 0x06, 0xae, 0xd8, 0x77, 0x61, 0xc5, 0x1c, 0xa0, 0x50, 0x65, 0x1b, 0x50, 0x13, 0x9c, 0x1f, 0x77, 0x1a, 0xb8,
0x5e, 0x4b, 0xac, 0x9e, 0x20, 0x75, 0x54, 0xbd, 0xfd, 0xfd, 0x0a, 0x2c, 0x0b, 0x74, 0xdb, 0x0f, 0x7a, 0x2d, 0xb1, 0x7a, 0x82, 0xd4, 0x51, 0xf5, 0xf6, 0xf7, 0x2b, 0xb0, 0x2c, 0xd0, 0x6d, 0x3f,
0x63, 0x7a, 0x34, 0x19, 0x8d, 0xdc, 0xa8, 0x40, 0xa4, 0xac, 0x0b, 0x44, 0xaa, 0x64, 0x8a, 0x14, 0x8c, 0xe9, 0xd1, 0x64, 0x34, 0x72, 0xa3, 0x02, 0x91, 0xb2, 0x2e, 0x10, 0xa9, 0x92, 0x29, 0x52,
0x63, 0xf4, 0x53, 0xd7, 0x0b, 0xb8, 0x27, 0xcb, 0xe5, 0x51, 0x43, 0xc8, 0x3a, 0x2c, 0xf6, 0xfd, 0x8c, 0xd1, 0x4f, 0x5d, 0x2f, 0xe0, 0x9e, 0x2c, 0x97, 0x47, 0x0d, 0x21, 0xeb, 0xb0, 0xd8, 0xf7,
0x30, 0xe6, 0x5e, 0x9b, 0x7e, 0xe8, 0xcc, 0xc2, 0x79, 0x15, 0x50, 0x2d, 0x52, 0x01, 0xba, 0x08, 0xc3, 0x98, 0x7b, 0x6d, 0xfa, 0xa1, 0x33, 0x0b, 0xe7, 0x55, 0x40, 0xb5, 0x48, 0x05, 0xe8, 0x22,
0xcf, 0x65, 0x44, 0xd8, 0x86, 0x26, 0x6b, 0x94, 0x4a, 0x8d, 0x34, 0xcf, 0x3d, 0x39, 0x1d, 0x63, 0x3c, 0x97, 0x11, 0x61, 0x1b, 0x9a, 0xac, 0x51, 0x2a, 0x35, 0xd2, 0x3c, 0xf7, 0xe4, 0x74, 0x8c,
0xe3, 0xc9, 0x0a, 0x0c, 0x97, 0xce, 0xc5, 0x22, 0x71, 0x61, 0x67, 0x5a, 0xa6, 0xf1, 0x34, 0xea, 0x8d, 0x27, 0x2b, 0x30, 0x5c, 0x3a, 0x17, 0x8b, 0xc4, 0x85, 0x9d, 0x69, 0x99, 0xc6, 0xd3, 0xa8,
0xba, 0x10, 0x97, 0x7c, 0x15, 0xb9, 0x07, 0xc0, 0xfb, 0x42, 0xb3, 0x0b, 0x68, 0x76, 0x5f, 0x33, 0xeb, 0x42, 0x5c, 0xf2, 0x55, 0xe4, 0x1e, 0x00, 0xef, 0x0b, 0xcd, 0x2e, 0xa0, 0xd9, 0x7d, 0xcd,
0x77, 0x44, 0x5f, 0xfb, 0x5b, 0xac, 0x30, 0x89, 0x28, 0x9a, 0x62, 0xed, 0x4b, 0xfb, 0xd7, 0x2c, 0xdc, 0x11, 0x7d, 0xed, 0x6f, 0xb1, 0xc2, 0x24, 0xa2, 0x68, 0x8a, 0xb5, 0x2f, 0xed, 0x5f, 0xb3,
0x68, 0x68, 0x75, 0x64, 0x15, 0x96, 0xb6, 0x1f, 0x3e, 0x3c, 0xdc, 0x75, 0xb6, 0x1e, 0x3d, 0xf8, 0xa0, 0xa1, 0xd5, 0x91, 0x55, 0x58, 0xda, 0x7e, 0xf8, 0xf0, 0x70, 0xd7, 0xd9, 0x7a, 0xf4, 0xe0,
0xd2, 0x6e, 0x6f, 0x7b, 0xff, 0xe1, 0xd1, 0x6e, 0xfb, 0x12, 0x83, 0xf7, 0x1f, 0x6e, 0x6f, 0xed, 0x4b, 0xbb, 0xbd, 0xed, 0xfd, 0x87, 0x47, 0xbb, 0xed, 0x4b, 0x0c, 0xde, 0x7f, 0xb8, 0xbd, 0xb5,
0xf7, 0xee, 0x3d, 0x74, 0xb6, 0x25, 0x6c, 0x91, 0x35, 0x20, 0xce, 0xee, 0xbb, 0x0f, 0x1f, 0xed, 0xdf, 0xbb, 0xf7, 0xd0, 0xd9, 0x96, 0xb0, 0x45, 0xd6, 0x80, 0x38, 0xbb, 0xef, 0x3e, 0x7c, 0xb4,
0x1a, 0x78, 0x89, 0xb4, 0xa1, 0x79, 0xd7, 0xd9, 0xdd, 0xda, 0xde, 0x13, 0x48, 0x99, 0xac, 0x40, 0x6b, 0xe0, 0x25, 0xd2, 0x86, 0xe6, 0x5d, 0x67, 0x77, 0x6b, 0x7b, 0x4f, 0x20, 0x65, 0xb2, 0x02,
0xfb, 0xde, 0xe3, 0x83, 0x9d, 0x07, 0x07, 0xf7, 0x7b, 0xdb, 0x5b, 0x07, 0xdb, 0xbb, 0xfb, 0xbb, 0xed, 0x7b, 0x8f, 0x0f, 0x76, 0x1e, 0x1c, 0xdc, 0xef, 0x6d, 0x6f, 0x1d, 0x6c, 0xef, 0xee, 0xef,
0x3b, 0xed, 0x0a, 0x59, 0x80, 0xfa, 0xd6, 0xdd, 0xad, 0x83, 0x9d, 0x87, 0x07, 0xbb, 0x3b, 0xed, 0xee, 0xb4, 0x2b, 0x64, 0x01, 0xea, 0x5b, 0x77, 0xb7, 0x0e, 0x76, 0x1e, 0x1e, 0xec, 0xee, 0xb4,
0xaa, 0xfd, 0xcf, 0x16, 0xac, 0xe2, 0xa8, 0x07, 0x59, 0x01, 0xb9, 0x0e, 0x8d, 0x7e, 0x18, 0x8e, 0xab, 0xf6, 0x3f, 0x59, 0xb0, 0x8a, 0xa3, 0x1e, 0x64, 0x05, 0xe4, 0x3a, 0x34, 0xfa, 0x61, 0x38,
0x29, 0xd3, 0xf6, 0x4a, 0xa1, 0xeb, 0x10, 0x63, 0x7e, 0xae, 0x3e, 0x4f, 0xc2, 0xa8, 0x4f, 0x85, 0xa6, 0x4c, 0xdb, 0x2b, 0x85, 0xae, 0x43, 0x8c, 0xf9, 0xb9, 0xfa, 0x3c, 0x09, 0xa3, 0x3e, 0x15,
0x7c, 0x00, 0x42, 0xf7, 0x18, 0xc2, 0x98, 0x5f, 0x6c, 0x2f, 0xa7, 0xe0, 0xe2, 0xd1, 0xe0, 0x18, 0xf2, 0x01, 0x08, 0xdd, 0x63, 0x08, 0x63, 0x7e, 0xb1, 0xbd, 0x9c, 0x82, 0x8b, 0x47, 0x83, 0x63,
0x27, 0x59, 0x83, 0xb9, 0xe3, 0x88, 0xba, 0xfd, 0x53, 0x21, 0x19, 0xa2, 0x44, 0x3e, 0x9e, 0x1e, 0x9c, 0x64, 0x0d, 0xe6, 0x8e, 0x23, 0xea, 0xf6, 0x4f, 0x85, 0x64, 0x88, 0x12, 0xf9, 0x78, 0x7a,
0x30, 0xfa, 0x6c, 0xf5, 0x7d, 0x3a, 0x40, 0x8e, 0xa9, 0x39, 0x8b, 0x02, 0xdf, 0x16, 0x30, 0x93, 0xc0, 0xe8, 0xb3, 0xd5, 0xf7, 0xe9, 0x00, 0x39, 0xa6, 0xe6, 0x2c, 0x0a, 0x7c, 0x5b, 0xc0, 0x4c,
0x7f, 0xf7, 0xd8, 0x0d, 0x06, 0x61, 0x40, 0x07, 0xc2, 0xd9, 0x4b, 0x01, 0xfb, 0x10, 0xd6, 0xb2, 0xfe, 0xdd, 0x63, 0x37, 0x18, 0x84, 0x01, 0x1d, 0x08, 0x67, 0x2f, 0x05, 0xec, 0x43, 0x58, 0xcb,
0xf3, 0x13, 0xf2, 0xf5, 0xa6, 0x26, 0x5f, 0xdc, 0xf7, 0xea, 0xce, 0xde, 0x4d, 0x4d, 0xd6, 0xfe, 0xce, 0x4f, 0xc8, 0xd7, 0x9b, 0x9a, 0x7c, 0x71, 0xdf, 0xab, 0x3b, 0x7b, 0x37, 0x35, 0x59, 0xfb,
0xc3, 0x82, 0x0a, 0x33, 0xc5, 0xb3, 0xcd, 0xb6, 0xee, 0x5d, 0x95, 0x73, 0x11, 0x2a, 0x3c, 0xb3, 0x0f, 0x0b, 0x2a, 0xcc, 0x14, 0xcf, 0x36, 0xdb, 0xba, 0x77, 0x55, 0xce, 0x45, 0xa8, 0xf0, 0xcc,
0x70, 0xe5, 0xcc, 0x0d, 0x98, 0x86, 0xa4, 0xf5, 0x11, 0xed, 0x9f, 0xe1, 0x8c, 0x55, 0x3d, 0x43, 0xc2, 0x95, 0x33, 0x37, 0x60, 0x1a, 0x92, 0xd6, 0x47, 0xb4, 0x7f, 0x86, 0x33, 0x56, 0xf5, 0x0c,
0x98, 0x80, 0x30, 0xd7, 0x17, 0xbf, 0x16, 0x02, 0x22, 0xcb, 0xb2, 0x0e, 0xbf, 0x9c, 0x4f, 0xeb, 0x61, 0x02, 0xc2, 0x5c, 0x5f, 0xfc, 0x5a, 0x08, 0x88, 0x2c, 0xcb, 0x3a, 0xfc, 0x72, 0x3e, 0xad,
0xf0, 0xbb, 0x0e, 0xcc, 0x7b, 0xc1, 0x71, 0x38, 0x09, 0x06, 0x28, 0x10, 0x35, 0x47, 0x16, 0x31, 0xc3, 0xef, 0x3a, 0x30, 0xef, 0x05, 0xc7, 0xe1, 0x24, 0x18, 0xa0, 0x40, 0xd4, 0x1c, 0x59, 0xc4,
0x26, 0x86, 0x82, 0xea, 0x8d, 0x24, 0xfb, 0xa7, 0x80, 0x4d, 0xd8, 0xd1, 0x28, 0x46, 0xd7, 0x43, 0x98, 0x18, 0x0a, 0xaa, 0x37, 0x92, 0xec, 0x9f, 0x02, 0x36, 0x61, 0x47, 0xa3, 0x18, 0x5d, 0x0f,
0x85, 0x67, 0xde, 0x84, 0x25, 0x0d, 0x4b, 0xdd, 0xd8, 0x31, 0x03, 0x32, 0x6e, 0x2c, 0xfa, 0x2c, 0x15, 0x9e, 0x79, 0x13, 0x96, 0x34, 0x2c, 0x75, 0x63, 0xc7, 0x0c, 0xc8, 0xb8, 0xb1, 0xe8, 0xb3,
0xbc, 0xc6, 0x6e, 0x43, 0xeb, 0x3e, 0x4d, 0x1e, 0x04, 0x27, 0xa1, 0x6c, 0xe9, 0x8f, 0x2b, 0xb0, 0xf0, 0x1a, 0xbb, 0x0d, 0xad, 0xfb, 0x34, 0x79, 0x10, 0x9c, 0x84, 0xb2, 0xa5, 0x3f, 0xae, 0xc0,
0xa8, 0x20, 0xd1, 0xd0, 0x3a, 0x2c, 0x7a, 0x03, 0x1a, 0x24, 0x5e, 0x32, 0xed, 0x19, 0x27, 0xb0, 0xa2, 0x82, 0x44, 0x43, 0xeb, 0xb0, 0xe8, 0x0d, 0x68, 0x90, 0x78, 0xc9, 0xb4, 0x67, 0x9c, 0xc0,
0x2c, 0xcc, 0x7c, 0x3d, 0xd7, 0xf7, 0x5c, 0x19, 0x05, 0xe4, 0x05, 0x72, 0x07, 0x56, 0x98, 0x21, 0xb2, 0x30, 0xf3, 0xf5, 0x5c, 0xdf, 0x73, 0x65, 0x14, 0x90, 0x17, 0xc8, 0x1d, 0x58, 0x61, 0x86,
0x92, 0xb6, 0x45, 0x6d, 0x31, 0x3f, 0xf8, 0x15, 0xd6, 0x31, 0x65, 0xc0, 0x70, 0xa1, 0xed, 0xd5, 0x48, 0xda, 0x16, 0xb5, 0xc5, 0xfc, 0xe0, 0x57, 0x58, 0xc7, 0x94, 0x01, 0xc3, 0x85, 0xb6, 0x57,
0x27, 0xdc, 0xe7, 0x29, 0xaa, 0x62, 0xab, 0xc6, 0x5b, 0x62, 0x53, 0xae, 0x72, 0x63, 0xa5, 0x80, 0x9f, 0x70, 0x9f, 0xa7, 0xa8, 0x8a, 0xad, 0x1a, 0x6f, 0x89, 0x4d, 0xb9, 0xca, 0x8d, 0x95, 0x02,
0x5c, 0x98, 0x6d, 0x8e, 0xab, 0xaa, 0x6c, 0x98, 0x4d, 0x0b, 0xd5, 0xd5, 0x72, 0xa1, 0x3a, 0xa6, 0x72, 0x61, 0xb6, 0x39, 0xae, 0xaa, 0xb2, 0x61, 0x36, 0x2d, 0x54, 0x57, 0xcb, 0x85, 0xea, 0x98,
0xca, 0xa6, 0x41, 0x9f, 0x0e, 0x7a, 0x49, 0xd8, 0x43, 0x95, 0x8b, 0xbb, 0x53, 0x73, 0xb2, 0x30, 0x2a, 0x9b, 0x06, 0x7d, 0x3a, 0xe8, 0x25, 0x61, 0x0f, 0x55, 0x2e, 0xee, 0x4e, 0xcd, 0xc9, 0xc2,
0xb9, 0x0a, 0xf3, 0x09, 0x8d, 0x93, 0x80, 0x26, 0xa8, 0x95, 0x6a, 0x18, 0x10, 0x90, 0x10, 0x73, 0xe4, 0x2a, 0xcc, 0x27, 0x34, 0x4e, 0x02, 0x9a, 0xa0, 0x56, 0xaa, 0x61, 0x40, 0x40, 0x42, 0xcc,
0x50, 0x27, 0x91, 0x17, 0x77, 0x9a, 0x18, 0x84, 0xc3, 0xff, 0xc9, 0xa7, 0x60, 0xf5, 0x98, 0xc6, 0x41, 0x9d, 0x44, 0x5e, 0xdc, 0x69, 0x62, 0x10, 0x0e, 0xff, 0x27, 0x9f, 0x82, 0xd5, 0x63, 0x1a,
0x49, 0xef, 0x94, 0xba, 0x03, 0x1a, 0xe1, 0x4e, 0xf3, 0x68, 0x1f, 0xb7, 0xfb, 0xc5, 0x95, 0x8c, 0x27, 0xbd, 0x53, 0xea, 0x0e, 0x68, 0x84, 0x3b, 0xcd, 0xa3, 0x7d, 0xdc, 0xee, 0x17, 0x57, 0x32,
0x87, 0xce, 0x68, 0x14, 0x7b, 0x61, 0x80, 0x16, 0xbf, 0xee, 0xc8, 0x22, 0x6b, 0x8f, 0x4d, 0x5e, 0x1e, 0x3a, 0xa3, 0x51, 0xec, 0x85, 0x01, 0x5a, 0xfc, 0xba, 0x23, 0x8b, 0xac, 0x3d, 0x36, 0x79,
0xd9, 0x4b, 0xb5, 0x82, 0x8b, 0x38, 0xf1, 0xe2, 0x4a, 0x72, 0x03, 0xe6, 0x70, 0x02, 0x71, 0xa7, 0x65, 0x2f, 0xd5, 0x0a, 0x2e, 0xe2, 0xc4, 0x8b, 0x2b, 0xc9, 0x0d, 0x98, 0xc3, 0x09, 0xc4, 0x9d,
0x6d, 0x44, 0x35, 0xb6, 0x19, 0xe8, 0x88, 0xba, 0xcf, 0x57, 0x6a, 0x8d, 0x76, 0xd3, 0xfe, 0x29, 0xb6, 0x11, 0xd5, 0xd8, 0x66, 0xa0, 0x23, 0xea, 0x3e, 0x5f, 0xa9, 0x35, 0xda, 0x4d, 0xfb, 0xa7,
0xa8, 0x22, 0xcc, 0x36, 0x9d, 0x2f, 0x06, 0x67, 0x0a, 0x5e, 0x60, 0x43, 0x0b, 0x68, 0x72, 0x1e, 0xa0, 0x8a, 0x30, 0xdb, 0x74, 0xbe, 0x18, 0x9c, 0x29, 0x78, 0x81, 0x0d, 0x2d, 0xa0, 0xc9, 0x79,
0x46, 0x4f, 0x65, 0x48, 0x58, 0x14, 0xed, 0x6f, 0xa0, 0x8b, 0xaf, 0x42, 0xa4, 0x8f, 0xd1, 0x3f, 0x18, 0x3d, 0x95, 0x21, 0x61, 0x51, 0xb4, 0xbf, 0x81, 0x2e, 0xbe, 0x0a, 0x91, 0x3e, 0x46, 0xff,
0x61, 0x07, 0x35, 0xbe, 0xd4, 0xf1, 0xa9, 0x2b, 0x4e, 0x1d, 0x35, 0x04, 0x8e, 0x4e, 0x5d, 0xa6, 0x84, 0x1d, 0xd4, 0xf8, 0x52, 0xc7, 0xa7, 0xae, 0x38, 0x75, 0xd4, 0x10, 0x38, 0x3a, 0x75, 0x99,
0xb6, 0x8c, 0xdd, 0xe3, 0x07, 0xb9, 0x06, 0x62, 0x7b, 0x7c, 0xf3, 0x6e, 0x40, 0x4b, 0x06, 0x5f, 0xda, 0x32, 0x76, 0x8f, 0x1f, 0xe4, 0x1a, 0x88, 0xed, 0xf1, 0xcd, 0xbb, 0x01, 0x2d, 0x19, 0x7c,
0xe3, 0x9e, 0x4f, 0x4f, 0x12, 0x19, 0x57, 0x08, 0x26, 0x23, 0x3c, 0xed, 0xed, 0xd3, 0x93, 0xc4, 0x8d, 0x7b, 0x3e, 0x3d, 0x49, 0x64, 0x5c, 0x21, 0x98, 0x8c, 0xf0, 0xb4, 0xb7, 0x4f, 0x4f, 0x12,
0x3e, 0x80, 0x25, 0xa1, 0x4a, 0x1e, 0x8e, 0xa9, 0xec, 0xfa, 0x33, 0x45, 0x26, 0xb9, 0x71, 0x67, 0xfb, 0x00, 0x96, 0x84, 0x2a, 0x79, 0x38, 0xa6, 0xb2, 0xeb, 0xcf, 0x14, 0x99, 0xe4, 0xc6, 0x9d,
0xd9, 0xd4, 0x3d, 0x3c, 0xdc, 0x6c, 0x52, 0xda, 0x0e, 0x10, 0x5d, 0x35, 0x89, 0x06, 0x85, 0x5d, 0x65, 0x53, 0xf7, 0xf0, 0x70, 0xb3, 0x49, 0x69, 0x3b, 0x40, 0x74, 0xd5, 0x24, 0x1a, 0x14, 0x76,
0x94, 0x91, 0x13, 0x31, 0x1d, 0x03, 0x63, 0xeb, 0x13, 0x4f, 0xfa, 0x7d, 0x19, 0x32, 0x67, 0xc7, 0x51, 0x46, 0x4e, 0xc4, 0x74, 0x0c, 0x8c, 0xad, 0x4f, 0x3c, 0xe9, 0xf7, 0x65, 0xc8, 0x9c, 0x1d,
0x61, 0x5e, 0xb4, 0xff, 0xc4, 0x82, 0x65, 0x6c, 0x4d, 0x3a, 0x15, 0x42, 0xfd, 0xbf, 0xf5, 0x11, 0x87, 0x79, 0xd1, 0xfe, 0x13, 0x0b, 0x96, 0xb1, 0x35, 0xe9, 0x54, 0x08, 0xf5, 0xff, 0xd6, 0x47,
0x86, 0xd9, 0xec, 0xeb, 0xd1, 0xa4, 0x15, 0xa8, 0xea, 0x06, 0x81, 0x17, 0x3e, 0xfa, 0xa1, 0xbe, 0x18, 0x66, 0xb3, 0xaf, 0x47, 0x93, 0x56, 0xa0, 0xaa, 0x1b, 0x04, 0x5e, 0xf8, 0xe8, 0x87, 0xfa,
0x92, 0x3d, 0xd4, 0xdb, 0xbf, 0x6b, 0xc1, 0x12, 0xd7, 0xc9, 0x89, 0x9b, 0x4c, 0x62, 0x31, 0xfd, 0x4a, 0xf6, 0x50, 0x6f, 0xff, 0xae, 0x05, 0x4b, 0x5c, 0x27, 0x27, 0x6e, 0x32, 0x89, 0xc5, 0xf4,
0x9f, 0x86, 0x05, 0x6e, 0x5c, 0x85, 0x54, 0x8b, 0x81, 0xae, 0x28, 0x05, 0x84, 0x28, 0x27, 0xde, 0x7f, 0x1a, 0x16, 0xb8, 0x71, 0x15, 0x52, 0x2d, 0x06, 0xba, 0xa2, 0x14, 0x10, 0xa2, 0x9c, 0x78,
0xbb, 0xe4, 0x98, 0xc4, 0xe4, 0x1d, 0x74, 0x70, 0x82, 0x1e, 0xa2, 0x22, 0x30, 0x78, 0xa5, 0xc0, 0xef, 0x92, 0x63, 0x12, 0x93, 0x77, 0xd0, 0xc1, 0x09, 0x7a, 0x88, 0x8a, 0xc0, 0xe0, 0x95, 0x02,
0x0c, 0xa8, 0xef, 0x35, 0xf2, 0xbb, 0x35, 0x98, 0xe3, 0xfe, 0xae, 0x7d, 0x1f, 0x16, 0x8c, 0x8e, 0x33, 0xa0, 0xbe, 0xd7, 0xc8, 0xef, 0xd6, 0x60, 0x8e, 0xfb, 0xbb, 0xf6, 0x7d, 0x58, 0x30, 0x3a,
0x8c, 0x80, 0x42, 0x93, 0x07, 0x14, 0x72, 0xa1, 0xa8, 0x52, 0x41, 0x28, 0xea, 0x4f, 0xcb, 0x40, 0x32, 0x02, 0x0a, 0x4d, 0x1e, 0x50, 0xc8, 0x85, 0xa2, 0x4a, 0x05, 0xa1, 0xa8, 0x3f, 0x2d, 0x03,
0x18, 0xb3, 0x64, 0x76, 0x83, 0x39, 0xdc, 0xe1, 0xc0, 0x38, 0x3e, 0x35, 0x1d, 0x1d, 0x22, 0xb7, 0x61, 0xcc, 0x92, 0xd9, 0x0d, 0xe6, 0x70, 0x87, 0x03, 0xe3, 0xf8, 0xd4, 0x74, 0x74, 0x88, 0xdc,
0x80, 0x68, 0x45, 0x19, 0x51, 0xe4, 0xd6, 0xa7, 0xa0, 0x86, 0xa9, 0x49, 0x61, 0xbc, 0x85, 0x99, 0x02, 0xa2, 0x15, 0x65, 0x44, 0x91, 0x5b, 0x9f, 0x82, 0x1a, 0xa6, 0x26, 0x85, 0xf1, 0x16, 0x66,
0x15, 0x07, 0x45, 0xbe, 0xec, 0x85, 0x75, 0xcc, 0xc0, 0x8c, 0x27, 0xf1, 0x29, 0x5e, 0xae, 0x88, 0x56, 0x1c, 0x14, 0xf9, 0xb2, 0x17, 0xd6, 0x31, 0x03, 0x33, 0x9e, 0xc4, 0xa7, 0x78, 0xb9, 0x22,
0x03, 0x96, 0x2c, 0x67, 0xf7, 0x77, 0xee, 0xc2, 0xfd, 0x9d, 0xcf, 0x05, 0x6d, 0x34, 0x17, 0xbf, 0x0e, 0x58, 0xb2, 0x9c, 0xdd, 0xdf, 0xb9, 0x0b, 0xf7, 0x77, 0x3e, 0x17, 0xb4, 0xd1, 0x5c, 0xfc,
0x66, 0xba, 0xf8, 0x37, 0x60, 0x61, 0xc4, 0x5c, 0xce, 0xc4, 0xef, 0xf7, 0x46, 0xac, 0x77, 0x71, 0x9a, 0xe9, 0xe2, 0xdf, 0x80, 0x85, 0x11, 0x73, 0x39, 0x13, 0xbf, 0xdf, 0x1b, 0xb1, 0xde, 0xc5,
0x9e, 0x32, 0x40, 0xb2, 0x01, 0x6d, 0xe1, 0x6e, 0xa4, 0xe7, 0x08, 0xc0, 0x35, 0xce, 0xe1, 0x4c, 0x79, 0xca, 0x00, 0xc9, 0x06, 0xb4, 0x85, 0xbb, 0x91, 0x9e, 0x23, 0x00, 0xd7, 0x38, 0x87, 0x33,
0x7f, 0xa7, 0x61, 0x9c, 0x06, 0x0e, 0x36, 0x05, 0xd8, 0xc9, 0x2b, 0x66, 0x1c, 0xd2, 0x9b, 0x04, 0xfd, 0x9d, 0x86, 0x71, 0x1a, 0x38, 0xd8, 0x14, 0x60, 0x27, 0xaf, 0x98, 0x71, 0x48, 0x6f, 0x12,
0xe2, 0x7e, 0x85, 0x0e, 0xf0, 0x24, 0x55, 0x73, 0xf2, 0x15, 0xf6, 0x6f, 0x5b, 0xd0, 0x66, 0x7b, 0x88, 0xfb, 0x15, 0x3a, 0xc0, 0x93, 0x54, 0xcd, 0xc9, 0x57, 0xd8, 0xbf, 0x6d, 0x41, 0x9b, 0xed,
0x66, 0xb0, 0xe5, 0xdb, 0x80, 0x52, 0xf1, 0x82, 0x5c, 0x69, 0xd0, 0x92, 0xb7, 0xa0, 0x8e, 0xe5, 0x99, 0xc1, 0x96, 0x6f, 0x03, 0x4a, 0xc5, 0x0b, 0x72, 0xa5, 0x41, 0x4b, 0xde, 0x82, 0x3a, 0x96,
0x70, 0x4c, 0x03, 0xc1, 0x93, 0x1d, 0x93, 0x27, 0x53, 0x7d, 0xb2, 0x77, 0xc9, 0x49, 0x89, 0x35, 0xc3, 0x31, 0x0d, 0x04, 0x4f, 0x76, 0x4c, 0x9e, 0x4c, 0xf5, 0xc9, 0xde, 0x25, 0x27, 0x25, 0xd6,
0x8e, 0xfc, 0x7b, 0x0b, 0x1a, 0xa2, 0x97, 0x1f, 0x3a, 0x4c, 0xd0, 0xd5, 0x2e, 0xc4, 0x38, 0x27, 0x38, 0xf2, 0xef, 0x2c, 0x68, 0x88, 0x5e, 0x7e, 0xe8, 0x30, 0x41, 0x57, 0xbb, 0x10, 0xe3, 0x9c,
0xa5, 0xf7, 0x5f, 0xeb, 0xb0, 0x38, 0x72, 0x93, 0x49, 0xc4, 0xec, 0xb1, 0x11, 0x22, 0xc8, 0xc2, 0x94, 0xde, 0x7f, 0xad, 0xc3, 0xe2, 0xc8, 0x4d, 0x26, 0x11, 0xb3, 0xc7, 0x46, 0x88, 0x20, 0x0b,
0xcc, 0xb8, 0xa2, 0xea, 0x8c, 0x7b, 0x89, 0xe7, 0xf7, 0x64, 0xad, 0xb8, 0x7a, 0x2a, 0xaa, 0x62, 0x33, 0xe3, 0x8a, 0xaa, 0x33, 0xee, 0x25, 0x9e, 0xdf, 0x93, 0xb5, 0xe2, 0xea, 0xa9, 0xa8, 0x8a,
0x1a, 0x24, 0x4e, 0xdc, 0x21, 0x15, 0x76, 0x93, 0x17, 0xec, 0x0e, 0xac, 0x89, 0x09, 0x65, 0x5c, 0x69, 0x90, 0x38, 0x71, 0x87, 0x54, 0xd8, 0x4d, 0x5e, 0xb0, 0x3b, 0xb0, 0x26, 0x26, 0x94, 0x71,
0x55, 0xfb, 0x2f, 0x9b, 0x70, 0x39, 0x57, 0xa5, 0xee, 0xa7, 0xc5, 0xd9, 0xd7, 0xf7, 0x46, 0xc7, 0x55, 0xed, 0xbf, 0x6c, 0xc2, 0xe5, 0x5c, 0x95, 0xba, 0x9f, 0x16, 0x67, 0x5f, 0xdf, 0x1b, 0x1d,
0xa1, 0xf2, 0xf3, 0x2d, 0xfd, 0x58, 0x6c, 0x54, 0x91, 0x21, 0xac, 0x4a, 0x07, 0x81, 0xad, 0x69, 0x87, 0xca, 0xcf, 0xb7, 0xf4, 0x63, 0xb1, 0x51, 0x45, 0x86, 0xb0, 0x2a, 0x1d, 0x04, 0xb6, 0xa6,
0x6a, 0xcc, 0x4a, 0x68, 0xa5, 0xde, 0x30, 0xb7, 0x30, 0xdb, 0xa1, 0xc4, 0x75, 0x21, 0x2e, 0x6e, 0xa9, 0x31, 0x2b, 0xa1, 0x95, 0x7a, 0xc3, 0xdc, 0xc2, 0x6c, 0x87, 0x12, 0xd7, 0x85, 0xb8, 0xb8,
0x8f, 0x9c, 0x42, 0x47, 0x79, 0x22, 0x42, 0x59, 0x6b, 0xde, 0x0a, 0xeb, 0xeb, 0xf5, 0x0b, 0xfa, 0x3d, 0x72, 0x0a, 0x1d, 0xe5, 0x89, 0x08, 0x65, 0xad, 0x79, 0x2b, 0xac, 0xaf, 0xd7, 0x2f, 0xe8,
0x32, 0x3c, 0x5b, 0x67, 0x66, 0x6b, 0x64, 0x0a, 0xd7, 0x64, 0x1d, 0x6a, 0xe3, 0x7c, 0x7f, 0x95, 0xcb, 0xf0, 0x6c, 0x9d, 0x99, 0xad, 0x91, 0x29, 0x5c, 0x93, 0x75, 0xa8, 0x8d, 0xf3, 0xfd, 0x55,
0x17, 0x9a, 0x1b, 0xfa, 0xec, 0x66, 0xa7, 0x17, 0x34, 0x4c, 0xde, 0x87, 0xb5, 0x73, 0xd7, 0x4b, 0x5e, 0x68, 0x6e, 0xe8, 0xb3, 0x9b, 0x9d, 0x5e, 0xd0, 0x30, 0x79, 0x1f, 0xd6, 0xce, 0x5d, 0x2f,
0xe4, 0xb0, 0x34, 0xdf, 0xa0, 0x8a, 0x5d, 0xde, 0xb9, 0xa0, 0xcb, 0x27, 0xfc, 0x63, 0xc3, 0x44, 0x91, 0xc3, 0xd2, 0x7c, 0x83, 0x2a, 0x76, 0x79, 0xe7, 0x82, 0x2e, 0x9f, 0xf0, 0x8f, 0x0d, 0x13,
0xcd, 0x68, 0xb1, 0xfb, 0xb7, 0x16, 0xb4, 0xcc, 0x76, 0x18, 0x9b, 0x0a, 0xd9, 0x97, 0x3a, 0x50, 0x35, 0xa3, 0xc5, 0xee, 0xdf, 0x58, 0xd0, 0x32, 0xdb, 0x61, 0x6c, 0x2a, 0x64, 0x5f, 0xea, 0x40,
0x7a, 0x93, 0x19, 0x38, 0x7f, 0x54, 0x2e, 0x15, 0x1d, 0x95, 0xf5, 0x03, 0x6a, 0xf9, 0xa2, 0x18, 0xe9, 0x4d, 0x66, 0xe0, 0xfc, 0x51, 0xb9, 0x54, 0x74, 0x54, 0xd6, 0x0f, 0xa8, 0xe5, 0x8b, 0x62,
0x53, 0xe5, 0xc5, 0x62, 0x4c, 0xd5, 0xa2, 0x18, 0x53, 0xf7, 0xbf, 0x2d, 0x20, 0x79, 0x5e, 0x22, 0x4c, 0x95, 0x17, 0x8b, 0x31, 0x55, 0x8b, 0x62, 0x4c, 0xdd, 0xff, 0xb6, 0x80, 0xe4, 0x79, 0x89,
0xf7, 0xf9, 0x59, 0x3d, 0xa0, 0xbe, 0x50, 0x29, 0x3f, 0xf9, 0x62, 0xfc, 0x28, 0xd7, 0x4e, 0x7e, 0xdc, 0xe7, 0x67, 0xf5, 0x80, 0xfa, 0x42, 0xa5, 0xfc, 0xe4, 0x8b, 0xf1, 0xa3, 0x5c, 0x3b, 0xf9,
0xcd, 0x04, 0x43, 0xbf, 0x3b, 0xd6, 0x9d, 0x9d, 0x05, 0xa7, 0xa8, 0x2a, 0x13, 0xf5, 0xaa, 0x5c, 0x35, 0x13, 0x0c, 0xfd, 0xee, 0x58, 0x77, 0x76, 0x16, 0x9c, 0xa2, 0xaa, 0x4c, 0xd4, 0xab, 0x72,
0x1c, 0xf5, 0xaa, 0x5e, 0x1c, 0xf5, 0x9a, 0xcb, 0x46, 0xbd, 0xba, 0xbf, 0x62, 0xc1, 0x72, 0xc1, 0x71, 0xd4, 0xab, 0x7a, 0x71, 0xd4, 0x6b, 0x2e, 0x1b, 0xf5, 0xea, 0xfe, 0x8a, 0x05, 0xcb, 0x05,
0xa6, 0xff, 0xf8, 0x26, 0xce, 0xb6, 0xc9, 0xd0, 0x05, 0x25, 0xb1, 0x4d, 0x3a, 0xd8, 0xfd, 0x05, 0x9b, 0xfe, 0xe3, 0x9b, 0x38, 0xdb, 0x26, 0x43, 0x17, 0x94, 0xc4, 0x36, 0xe9, 0x60, 0xf7, 0x17,
0x58, 0x30, 0x18, 0xfd, 0xc7, 0xd7, 0x7f, 0xd6, 0x5f, 0xe3, 0x7c, 0x66, 0x60, 0xdd, 0xff, 0x2c, 0x60, 0xc1, 0x60, 0xf4, 0x1f, 0x5f, 0xff, 0x59, 0x7f, 0x8d, 0xf3, 0x99, 0x81, 0x75, 0xff, 0xb3,
0x01, 0xc9, 0x0b, 0xdb, 0xff, 0xeb, 0x18, 0xf2, 0xeb, 0x54, 0x2e, 0x58, 0xa7, 0xff, 0x53, 0x3b, 0x04, 0x24, 0x2f, 0x6c, 0xff, 0xaf, 0x63, 0xc8, 0xaf, 0x53, 0xb9, 0x60, 0x9d, 0xfe, 0x4f, 0xed,
0xf0, 0x3a, 0x2c, 0x89, 0x64, 0x16, 0x2d, 0x42, 0xc3, 0x39, 0x26, 0x5f, 0xc1, 0x3c, 0x56, 0x33, 0xc0, 0xeb, 0xb0, 0x24, 0x92, 0x59, 0xb4, 0x08, 0x0d, 0xe7, 0x98, 0x7c, 0x05, 0xf3, 0x58, 0xcd,
0xe4, 0x58, 0x33, 0x12, 0x04, 0x34, 0x63, 0x98, 0x89, 0x3c, 0xda, 0x5d, 0xe8, 0x88, 0x15, 0xda, 0x90, 0x63, 0xcd, 0x48, 0x10, 0xd0, 0x8c, 0x61, 0x26, 0xf2, 0x68, 0x77, 0xa1, 0x23, 0x56, 0x68,
0x3d, 0xa3, 0x41, 0x72, 0x34, 0x39, 0xe6, 0x19, 0x21, 0x5e, 0x18, 0xd8, 0xdf, 0x2b, 0x2b, 0xa7, 0xf7, 0x8c, 0x06, 0xc9, 0xd1, 0xe4, 0x98, 0x67, 0x84, 0x78, 0x61, 0x60, 0x7f, 0xaf, 0xac, 0x9c,
0x1b, 0x2b, 0x85, 0x79, 0xff, 0x14, 0x34, 0x75, 0x65, 0x2e, 0xb6, 0x23, 0x13, 0xa0, 0x63, 0x86, 0x6e, 0xac, 0x14, 0xe6, 0xfd, 0x53, 0xd0, 0xd4, 0x95, 0xb9, 0xd8, 0x8e, 0x4c, 0x80, 0x8e, 0x19,
0x5d, 0xa7, 0x22, 0x3b, 0xd0, 0x42, 0x95, 0x35, 0x50, 0xdf, 0x95, 0xf0, 0xbb, 0xe7, 0x04, 0x1e, 0x76, 0x9d, 0x8a, 0xec, 0x40, 0x0b, 0x55, 0xd6, 0x40, 0x7d, 0x57, 0xc2, 0xef, 0x9e, 0x13, 0x78,
0xf6, 0x2e, 0x39, 0x99, 0x6f, 0xc8, 0x67, 0xa1, 0x65, 0x1e, 0xa5, 0x84, 0x8f, 0x50, 0xe4, 0x9b, 0xd8, 0xbb, 0xe4, 0x64, 0xbe, 0x21, 0x9f, 0x85, 0x96, 0x79, 0x94, 0x12, 0x3e, 0x42, 0x91, 0x6f,
0xb3, 0xcf, 0x4d, 0x62, 0xb2, 0x05, 0xed, 0xec, 0x59, 0x4c, 0xdc, 0x16, 0xcf, 0x68, 0x20, 0x47, 0xce, 0x3e, 0x37, 0x89, 0xc9, 0x16, 0xb4, 0xb3, 0x67, 0x31, 0x71, 0x5b, 0x3c, 0xa3, 0x81, 0x1c,
0x4e, 0xde, 0x12, 0x77, 0x4f, 0x55, 0x0c, 0x82, 0xdd, 0x30, 0x3f, 0xd3, 0x96, 0xe9, 0x16, 0xff, 0x39, 0x79, 0x4b, 0xdc, 0x3d, 0x55, 0x31, 0x08, 0x76, 0xc3, 0xfc, 0x4c, 0x5b, 0xa6, 0x5b, 0xfc,
0xa3, 0xdd, 0x46, 0x7d, 0x15, 0x20, 0xc5, 0x48, 0x1b, 0x9a, 0x0f, 0x0f, 0x77, 0x0f, 0x7a, 0xdb, 0x8f, 0x76, 0x1b, 0xf5, 0x55, 0x80, 0x14, 0x23, 0x6d, 0x68, 0x3e, 0x3c, 0xdc, 0x3d, 0xe8, 0x6d,
0x7b, 0x5b, 0x07, 0x07, 0xbb, 0xfb, 0xed, 0x4b, 0x84, 0x40, 0x0b, 0xe3, 0x57, 0x3b, 0x0a, 0xb3, 0xef, 0x6d, 0x1d, 0x1c, 0xec, 0xee, 0xb7, 0x2f, 0x11, 0x02, 0x2d, 0x8c, 0x5f, 0xed, 0x28, 0xcc,
0x18, 0xb6, 0xb5, 0xcd, 0x63, 0x63, 0x02, 0x2b, 0x91, 0x15, 0x68, 0x3f, 0x38, 0xc8, 0xa0, 0xe5, 0x62, 0xd8, 0xd6, 0x36, 0x8f, 0x8d, 0x09, 0xac, 0x44, 0x56, 0xa0, 0xfd, 0xe0, 0x20, 0x83, 0x96,
0xbb, 0x75, 0x25, 0x1f, 0xf6, 0x1a, 0xac, 0xf0, 0x84, 0xa7, 0xbb, 0x9c, 0x3d, 0xa4, 0xaf, 0xf0, 0xef, 0xd6, 0x95, 0x7c, 0xd8, 0x6b, 0xb0, 0xc2, 0x13, 0x9e, 0xee, 0x72, 0xf6, 0x90, 0xbe, 0xc2,
0xfb, 0x16, 0xac, 0x66, 0x2a, 0xd2, 0xc4, 0x03, 0xee, 0x0e, 0x98, 0x3e, 0x82, 0x09, 0x32, 0x9e, 0xef, 0x5b, 0xb0, 0x9a, 0xa9, 0x48, 0x13, 0x0f, 0xb8, 0x3b, 0x60, 0xfa, 0x08, 0x26, 0xc8, 0x78,
0x54, 0x9e, 0x5f, 0x46, 0x83, 0xe4, 0x2b, 0x18, 0xcf, 0x6b, 0x9e, 0x62, 0x46, 0x92, 0x8a, 0xaa, 0x52, 0x79, 0x7e, 0x19, 0x0d, 0x92, 0xaf, 0x60, 0x3c, 0xaf, 0x79, 0x8a, 0x19, 0x49, 0x2a, 0xaa,
0xec, 0xcb, 0x3c, 0x2d, 0x2b, 0xa0, 0x7e, 0x66, 0xe0, 0x27, 0x3c, 0x91, 0x4a, 0xaf, 0x48, 0xef, 0xb2, 0x2f, 0xf3, 0xb4, 0xac, 0x80, 0xfa, 0x99, 0x81, 0x9f, 0xf0, 0x44, 0x2a, 0xbd, 0x22, 0xbd,
0xf2, 0xcc, 0x21, 0xcb, 0x22, 0x73, 0xf2, 0x0d, 0xd7, 0xc3, 0x1c, 0x6f, 0x61, 0x9d, 0xfd, 0x7d, 0xcb, 0x33, 0x87, 0x2c, 0x8b, 0xcc, 0xc9, 0x37, 0x5c, 0x0f, 0x73, 0xbc, 0x85, 0x75, 0xf6, 0xf7,
0x0b, 0xc8, 0x17, 0x27, 0x34, 0x9a, 0x62, 0xce, 0x80, 0x0a, 0x07, 0x5e, 0xce, 0x06, 0xbb, 0xe6, 0x2d, 0x20, 0x5f, 0x9c, 0xd0, 0x68, 0x8a, 0x39, 0x03, 0x2a, 0x1c, 0x78, 0x39, 0x1b, 0xec, 0x9a,
0xc6, 0x93, 0xe3, 0x2f, 0xd0, 0xa9, 0x4c, 0x68, 0x29, 0xa5, 0x09, 0x2d, 0x2f, 0x03, 0xb0, 0xc3, 0x1b, 0x4f, 0x8e, 0xbf, 0x40, 0xa7, 0x32, 0xa1, 0xa5, 0x94, 0x26, 0xb4, 0xbc, 0x0c, 0xc0, 0x0e,
0xb1, 0xca, 0x58, 0x40, 0xe7, 0x3a, 0x98, 0x8c, 0x78, 0x83, 0x85, 0x39, 0x27, 0x95, 0x8b, 0x73, 0xc7, 0x2a, 0x63, 0x01, 0x9d, 0xeb, 0x60, 0x32, 0xe2, 0x0d, 0x16, 0xe6, 0x9c, 0x54, 0x2e, 0xce,
0x4e, 0xaa, 0x17, 0xe4, 0x9c, 0xd8, 0xef, 0xc0, 0xb2, 0x31, 0x6e, 0xb5, 0xad, 0x32, 0x77, 0xc2, 0x39, 0xa9, 0x5e, 0x90, 0x73, 0x62, 0xbf, 0x03, 0xcb, 0xc6, 0xb8, 0xd5, 0xb6, 0xca, 0xdc, 0x09,
0xca, 0xe7, 0x4e, 0xc8, 0xbc, 0x09, 0xfb, 0x9b, 0x25, 0x28, 0xef, 0x85, 0x63, 0x3d, 0x14, 0x6e, 0x2b, 0x9f, 0x3b, 0x21, 0xf3, 0x26, 0xec, 0x6f, 0x96, 0xa0, 0xbc, 0x17, 0x8e, 0xf5, 0x50, 0xb8,
0x99, 0xa1, 0x70, 0xe1, 0x1f, 0xf4, 0x94, 0xf9, 0x17, 0x66, 0xc3, 0x00, 0xc9, 0x06, 0xb4, 0xdc, 0x65, 0x86, 0xc2, 0x85, 0x7f, 0xd0, 0x53, 0xe6, 0x5f, 0x98, 0x0d, 0x03, 0x24, 0x1b, 0xd0, 0x72,
0x51, 0xd2, 0x4b, 0x42, 0xe6, 0x0f, 0x9d, 0xbb, 0xd1, 0x80, 0xef, 0x35, 0x86, 0x64, 0x32, 0x35, 0x47, 0x49, 0x2f, 0x09, 0x99, 0x3f, 0x74, 0xee, 0x46, 0x03, 0xbe, 0xd7, 0x18, 0x92, 0xc9, 0xd4,
0x64, 0x05, 0xca, 0xca, 0x90, 0x22, 0x01, 0x2b, 0x32, 0x67, 0x1c, 0x2f, 0xd9, 0xa6, 0x22, 0xac, 0x90, 0x15, 0x28, 0x2b, 0x43, 0x8a, 0x04, 0xac, 0xc8, 0x9c, 0x71, 0xbc, 0x64, 0x9b, 0x8a, 0xb0,
0x24, 0x4a, 0x8c, 0x95, 0xcc, 0xef, 0xf9, 0x49, 0x88, 0xab, 0xc3, 0xa2, 0x2a, 0xe6, 0xab, 0xb0, 0x92, 0x28, 0x31, 0x56, 0x32, 0xbf, 0xe7, 0x27, 0x21, 0xae, 0x0e, 0x8b, 0xaa, 0x98, 0xaf, 0xc2,
0xe5, 0x43, 0x32, 0x11, 0x0f, 0x94, 0x65, 0x3d, 0x76, 0x59, 0x33, 0xaf, 0x1c, 0xff, 0xdd, 0x82, 0x96, 0x0f, 0xc9, 0x44, 0x3c, 0x50, 0x96, 0xf5, 0xd8, 0x65, 0xcd, 0xbc, 0x72, 0xfc, 0x77, 0x0b,
0x2a, 0xae, 0x0d, 0x53, 0xed, 0x9c, 0xf7, 0x55, 0x34, 0x1c, 0xd7, 0x64, 0xc1, 0xc9, 0xc2, 0xc4, 0xaa, 0xb8, 0x36, 0x4c, 0xb5, 0x73, 0xde, 0x57, 0xd1, 0x70, 0x5c, 0x93, 0x05, 0x27, 0x0b, 0x13,
0x36, 0x52, 0xc2, 0x4a, 0x6a, 0x42, 0x7a, 0x5a, 0xd8, 0x75, 0xa8, 0xf3, 0x92, 0x4a, 0x7f, 0x42, 0xdb, 0x48, 0x09, 0x2b, 0xa9, 0x09, 0xe9, 0x69, 0x61, 0xd7, 0xa1, 0xce, 0x4b, 0x2a, 0xfd, 0x09,
0x92, 0x14, 0x24, 0xd7, 0xa0, 0x72, 0x1a, 0x8e, 0xa5, 0x2f, 0x0a, 0xf2, 0xaa, 0x28, 0x1c, 0x3b, 0x49, 0x52, 0x90, 0x5c, 0x83, 0xca, 0x69, 0x38, 0x96, 0xbe, 0x28, 0xc8, 0xab, 0xa2, 0x70, 0xec,
0x88, 0xa7, 0xe3, 0x61, 0xed, 0xf1, 0x69, 0x71, 0x0f, 0x23, 0x0b, 0x33, 0x1f, 0x4b, 0x35, 0xab, 0x20, 0x9e, 0x8e, 0x87, 0xb5, 0xc7, 0xa7, 0xc5, 0x3d, 0x8c, 0x2c, 0xcc, 0x7c, 0x2c, 0xd5, 0xac,
0x2f, 0x53, 0x06, 0xb5, 0x37, 0x60, 0xf1, 0x20, 0x1c, 0x50, 0x2d, 0x24, 0x39, 0x93, 0xcf, 0xed, 0xbe, 0x4c, 0x19, 0xd4, 0xde, 0x80, 0xc5, 0x83, 0x70, 0x40, 0xb5, 0x90, 0xe4, 0x4c, 0x3e, 0xb7,
0x5f, 0xb4, 0xa0, 0x26, 0x89, 0xc9, 0x3a, 0x54, 0x98, 0xe3, 0x98, 0x39, 0xd5, 0xa9, 0x2b, 0x62, 0x7f, 0xd1, 0x82, 0x9a, 0x24, 0x26, 0xeb, 0x50, 0x61, 0x8e, 0x63, 0xe6, 0x54, 0xa7, 0xae, 0x88,
0x46, 0xe7, 0x20, 0x05, 0xb3, 0xb4, 0x18, 0x29, 0x4a, 0x0f, 0x11, 0x32, 0x4e, 0x94, 0xfa, 0xc8, 0x19, 0x9d, 0x83, 0x14, 0xcc, 0xd2, 0x62, 0xa4, 0x28, 0x3d, 0x44, 0xc8, 0x38, 0x51, 0xea, 0x23,
0x6a, 0xb8, 0x19, 0xd7, 0x32, 0x83, 0xda, 0xdf, 0xb5, 0x60, 0xc1, 0xe8, 0x83, 0x5c, 0x87, 0x86, 0xab, 0xe1, 0x66, 0x5c, 0xcb, 0x0c, 0x6a, 0x7f, 0xd7, 0x82, 0x05, 0xa3, 0x0f, 0x72, 0x1d, 0x1a,
0xef, 0xc6, 0x89, 0xb8, 0x76, 0x13, 0xdb, 0xa3, 0x43, 0xfa, 0x46, 0x97, 0xcc, 0x20, 0xb5, 0x0a, 0xbe, 0x1b, 0x27, 0xe2, 0xda, 0x4d, 0x6c, 0x8f, 0x0e, 0xe9, 0x1b, 0x5d, 0x32, 0x83, 0xd4, 0x2a,
0x9f, 0x96, 0xf5, 0xf0, 0xe9, 0x6d, 0xa8, 0xa7, 0x89, 0x7b, 0x15, 0xc3, 0x82, 0xb2, 0x1e, 0xe5, 0x7c, 0x5a, 0xd6, 0xc3, 0xa7, 0xb7, 0xa1, 0x9e, 0x26, 0xee, 0x55, 0x0c, 0x0b, 0xca, 0x7a, 0x94,
0xe5, 0x77, 0x4a, 0x84, 0x11, 0xb9, 0xd0, 0x0f, 0x23, 0x71, 0xa3, 0xc3, 0x0b, 0xf6, 0x3b, 0xd0, 0x97, 0xdf, 0x29, 0x11, 0x46, 0xe4, 0x42, 0x3f, 0x8c, 0xc4, 0x8d, 0x0e, 0x2f, 0xd8, 0xef, 0x40,
0xd0, 0xe8, 0xf5, 0x00, 0x9d, 0x65, 0x04, 0xe8, 0x54, 0x66, 0x48, 0x29, 0xcd, 0x0c, 0xb1, 0xff, 0x43, 0xa3, 0xd7, 0x03, 0x74, 0x96, 0x11, 0xa0, 0x53, 0x99, 0x21, 0xa5, 0x34, 0x33, 0xc4, 0xfe,
0xc6, 0x82, 0x05, 0xc6, 0x83, 0x5e, 0x30, 0x3c, 0x0c, 0x7d, 0xaf, 0x3f, 0xc5, 0xbd, 0x97, 0xec, 0x37, 0x0b, 0x16, 0x18, 0x0f, 0x7a, 0xc1, 0xf0, 0x30, 0xf4, 0xbd, 0xfe, 0x14, 0xf7, 0x5e, 0xb2,
0x26, 0x74, 0x86, 0xe4, 0x45, 0x13, 0x66, 0x5c, 0x2f, 0xc3, 0x02, 0x42, 0x44, 0x55, 0x99, 0xc9, 0x9b, 0xd0, 0x19, 0x92, 0x17, 0x4d, 0x98, 0x71, 0xbd, 0x0c, 0x0b, 0x08, 0x11, 0x55, 0x65, 0x26,
0x30, 0x93, 0x80, 0x63, 0x37, 0x16, 0x62, 0x21, 0x5c, 0x1a, 0x03, 0x64, 0x92, 0xc6, 0x80, 0xc8, 0xc3, 0x4c, 0x02, 0x8e, 0xdd, 0x58, 0x88, 0x85, 0x70, 0x69, 0x0c, 0x90, 0x49, 0x1a, 0x03, 0x22,
0x4d, 0x68, 0x6f, 0xe4, 0xf9, 0xbe, 0xc7, 0x69, 0xb9, 0xc3, 0x5b, 0x54, 0xc5, 0xfa, 0x1c, 0x78, 0x37, 0xa1, 0xbd, 0x91, 0xe7, 0xfb, 0x1e, 0xa7, 0xe5, 0x0e, 0x6f, 0x51, 0x15, 0xeb, 0x73, 0xe0,
0xb1, 0x7b, 0x9c, 0xde, 0x52, 0xa8, 0xb2, 0xfd, 0xe7, 0x25, 0x68, 0x48, 0xcb, 0x38, 0x18, 0x52, 0xc5, 0xee, 0x71, 0x7a, 0x4b, 0xa1, 0xca, 0x38, 0x1e, 0xf7, 0x19, 0x1f, 0xcf, 0x1c, 0xaa, 0x14,
0x71, 0xa5, 0x86, 0x47, 0x0a, 0xa5, 0x64, 0x34, 0x44, 0xd6, 0x1b, 0x87, 0x10, 0x0d, 0xc9, 0x6e, 0x55, 0xb6, 0xff, 0xbc, 0x04, 0x0d, 0x69, 0x35, 0x07, 0x43, 0x2a, 0xae, 0xdb, 0xf0, 0xb8, 0xa1,
0x79, 0x39, 0xbf, 0xe5, 0x57, 0xa1, 0xce, 0x58, 0xef, 0x0d, 0x3c, 0xed, 0x88, 0x2c, 0x57, 0x05, 0x14, 0x90, 0x86, 0xc8, 0x7a, 0xe3, 0x80, 0xa2, 0x21, 0x59, 0x76, 0x28, 0xe7, 0xd9, 0xe1, 0x2a,
0xc8, 0xda, 0x3b, 0x58, 0x5b, 0x4d, 0x6b, 0x11, 0x78, 0xee, 0x05, 0xdc, 0x5b, 0xd0, 0x14, 0xcd, 0xd4, 0x19, 0x5b, 0xbe, 0x81, 0x27, 0x21, 0x91, 0x01, 0xab, 0x00, 0x59, 0x7b, 0x07, 0x6b, 0xab,
0xe0, 0x9e, 0xa0, 0x4e, 0x49, 0x99, 0xdf, 0xd8, 0x2f, 0xc7, 0xa0, 0x94, 0x5f, 0xde, 0x91, 0x5f, 0x69, 0x2d, 0x02, 0xcf, 0xbd, 0x9c, 0x7b, 0x0b, 0x9a, 0xa2, 0x19, 0xdc, 0x2f, 0xd4, 0x37, 0xa9,
0xd6, 0x2e, 0xfa, 0x52, 0x52, 0xda, 0xf7, 0xd5, 0xbd, 0xe6, 0xfd, 0xc8, 0x1d, 0x9f, 0x4a, 0x29, 0x60, 0x18, 0x7b, 0xe9, 0x18, 0x94, 0xf2, 0xcb, 0x3b, 0xf2, 0xcb, 0xda, 0x45, 0x5f, 0x4a, 0x4a,
0xbd, 0x0d, 0xcb, 0x5e, 0xd0, 0xf7, 0x27, 0x03, 0xda, 0x9b, 0x04, 0x6e, 0x10, 0x84, 0x93, 0xa0, 0xfb, 0xbe, 0xba, 0xf3, 0xbc, 0x1f, 0xb9, 0xe3, 0x53, 0x29, 0xc1, 0xb7, 0x61, 0xd9, 0x0b, 0xfa,
0x4f, 0x65, 0xd2, 0x47, 0x51, 0x95, 0x3d, 0x50, 0x39, 0x6f, 0xd8, 0x10, 0xd9, 0x80, 0x2a, 0xeb, 0xfe, 0x64, 0x40, 0x7b, 0x93, 0xc0, 0x0d, 0x82, 0x70, 0x12, 0xf4, 0xa9, 0x4c, 0x08, 0x29, 0xaa,
0x48, 0x5a, 0x85, 0x62, 0x11, 0xe6, 0x24, 0x64, 0x1d, 0xaa, 0x74, 0x30, 0xa4, 0x32, 0x02, 0x40, 0xb2, 0x07, 0x2a, 0x1f, 0x0e, 0x1b, 0x22, 0x1b, 0x50, 0x65, 0x1d, 0x49, 0x8b, 0x51, 0x2c, 0xde,
0x32, 0xfe, 0xce, 0x60, 0x48, 0x1d, 0x4e, 0xc0, 0x14, 0x0a, 0xe6, 0x35, 0x9a, 0x0a, 0xc5, 0xb4, 0x9c, 0x84, 0xac, 0x43, 0x95, 0x0e, 0x86, 0x54, 0x46, 0x07, 0x48, 0xc6, 0x17, 0x1a, 0x0c, 0xa9,
0x28, 0x73, 0x7d, 0x9e, 0xf9, 0xb8, 0x02, 0xe4, 0x80, 0xcb, 0x80, 0x7e, 0x25, 0xf2, 0xcb, 0x65, 0xc3, 0x09, 0x98, 0xb2, 0xc1, 0x9c, 0x47, 0x53, 0xd9, 0x98, 0xd6, 0x66, 0xae, 0xcf, 0xb3, 0x22,
0x68, 0x68, 0x30, 0xd3, 0x0d, 0x43, 0x36, 0xe0, 0xde, 0xc0, 0x73, 0x47, 0x34, 0xa1, 0x91, 0xe0, 0x57, 0x80, 0x1c, 0x70, 0xf9, 0xd0, 0xaf, 0x4b, 0x7e, 0xb9, 0x0c, 0x0d, 0x0d, 0x66, 0x7a, 0x63,
0xfb, 0x0c, 0xca, 0xe8, 0xdc, 0xb3, 0x61, 0x2f, 0x9c, 0x24, 0xbd, 0x01, 0x1d, 0x46, 0x94, 0x1b, 0xc8, 0x06, 0xdc, 0x1b, 0x78, 0xee, 0x88, 0x26, 0x34, 0x12, 0x32, 0x91, 0x41, 0x19, 0x9d, 0x7b,
0x79, 0x66, 0x74, 0x0c, 0x94, 0xd1, 0x8d, 0xdc, 0x67, 0x3a, 0x1d, 0xe7, 0xa0, 0x0c, 0x2a, 0x2f, 0x36, 0xec, 0x85, 0x93, 0xa4, 0x37, 0xa0, 0xc3, 0x88, 0x72, 0x07, 0x80, 0x19, 0x24, 0x03, 0x65,
0x38, 0xf8, 0x1a, 0x55, 0xd2, 0x0b, 0x0e, 0xbe, 0x22, 0x59, 0xad, 0x56, 0x2d, 0xd0, 0x6a, 0x6f, 0x74, 0x8c, 0x35, 0x35, 0x3a, 0xce, 0x41, 0x19, 0x54, 0x5e, 0x7e, 0xf0, 0x35, 0xaa, 0xa4, 0x97,
0xc2, 0x1a, 0xd7, 0x5f, 0x42, 0xd2, 0x7b, 0x19, 0xc6, 0x9a, 0x51, 0x4b, 0x36, 0xa0, 0xcd, 0xc6, 0x1f, 0x7c, 0x45, 0xb2, 0x1a, 0xaf, 0x5a, 0xa0, 0xf1, 0xde, 0x84, 0x35, 0xae, 0xdb, 0x84, 0x16,
0x2c, 0x45, 0x22, 0xf6, 0xbe, 0xc1, 0x83, 0x85, 0x96, 0x93, 0xc3, 0x19, 0x2d, 0x46, 0xed, 0x74, 0xe8, 0x65, 0x18, 0x6b, 0x46, 0x2d, 0xd9, 0x80, 0x36, 0x1b, 0xb3, 0x14, 0x89, 0xd8, 0xfb, 0x06,
0x5a, 0x7e, 0xe1, 0x9b, 0xc3, 0x91, 0xd6, 0x7d, 0x66, 0xd2, 0xd6, 0x05, 0x6d, 0x06, 0xb7, 0x17, 0x0f, 0x24, 0x5a, 0x4e, 0x0e, 0x67, 0xb4, 0x18, 0xd1, 0xd3, 0x69, 0xf9, 0x65, 0x70, 0x0e, 0x47,
0xa0, 0x71, 0x94, 0x84, 0x63, 0xb9, 0x29, 0x2d, 0x68, 0xf2, 0xa2, 0x48, 0xbe, 0x79, 0x09, 0xae, 0x5a, 0xf7, 0x99, 0x49, 0x5b, 0x17, 0xb4, 0x19, 0xdc, 0x5e, 0x80, 0xc6, 0x51, 0x12, 0x8e, 0xe5,
0x20, 0x17, 0x3d, 0x0a, 0xc7, 0xa1, 0x1f, 0x0e, 0xa7, 0xc6, 0x89, 0xe1, 0xef, 0x2c, 0x58, 0x36, 0xa6, 0xb4, 0xa0, 0xc9, 0x8b, 0x22, 0x31, 0xe7, 0x25, 0xb8, 0x82, 0x5c, 0xf4, 0x28, 0x1c, 0x87,
0x6a, 0xd3, 0x23, 0x03, 0x06, 0x1b, 0x64, 0xd6, 0x04, 0x67, 0xbc, 0x25, 0x4d, 0xb9, 0x72, 0x42, 0x7e, 0x38, 0x9c, 0x1a, 0xa7, 0x89, 0xbf, 0xb5, 0x60, 0xd9, 0xa8, 0x4d, 0x8f, 0x13, 0x18, 0x88,
0x1e, 0xd7, 0x7d, 0x2c, 0x12, 0x29, 0xb6, 0x60, 0x51, 0x8e, 0x4c, 0x7e, 0xc8, 0xb9, 0xb0, 0x93, 0x90, 0x19, 0x15, 0x9c, 0xf1, 0x96, 0x34, 0xc5, 0xcb, 0x09, 0x79, 0xcc, 0xf7, 0xb1, 0x48, 0xb2,
0xe7, 0x42, 0xf1, 0x7d, 0x4b, 0x7c, 0x20, 0x9b, 0xf8, 0xac, 0xb8, 0x38, 0xe7, 0x27, 0x08, 0x19, 0xd8, 0x82, 0x45, 0x39, 0x32, 0xf9, 0x21, 0xe7, 0xc2, 0x4e, 0x9e, 0x0b, 0xc5, 0xf7, 0x2d, 0xf1,
0x5b, 0x52, 0x67, 0x0e, 0xfd, 0x84, 0x29, 0x47, 0xd0, 0x57, 0x60, 0x6c, 0xff, 0xba, 0x05, 0x90, 0x81, 0x6c, 0xe2, 0xb3, 0xe2, 0x52, 0x9d, 0x9f, 0x2e, 0x64, 0xdc, 0x49, 0x9d, 0x47, 0xf4, 0xd3,
0x8e, 0x0e, 0xaf, 0x5b, 0x95, 0x81, 0xe0, 0xaf, 0x3c, 0x34, 0x63, 0xf0, 0x2a, 0x34, 0xd5, 0x35, 0xa7, 0x1c, 0x41, 0x5f, 0x81, 0xb1, 0xfd, 0xeb, 0x16, 0x40, 0x3a, 0x3a, 0xbc, 0x8a, 0x55, 0xc6,
0x5d, 0x6a, 0x73, 0x1a, 0x12, 0x63, 0x0e, 0xe3, 0x4d, 0x58, 0x1c, 0xfa, 0xe1, 0x31, 0x1a, 0x6c, 0x83, 0xbf, 0x00, 0xd1, 0x0c, 0xc5, 0xab, 0xd0, 0x54, 0x57, 0x78, 0xa9, 0x3d, 0x6a, 0x48, 0x8c,
0xcc, 0xe6, 0x8a, 0x45, 0x0a, 0x52, 0x8b, 0xc3, 0xf7, 0x04, 0x9a, 0x1a, 0xa8, 0x8a, 0x66, 0xa0, 0x39, 0x93, 0x37, 0x61, 0x71, 0xe8, 0x87, 0xc7, 0x68, 0xcc, 0x31, 0xd3, 0x2b, 0x16, 0xe9, 0x49,
0xec, 0xdf, 0x28, 0xa9, 0x5b, 0x95, 0x74, 0xce, 0x33, 0xa5, 0x8c, 0xdc, 0xc9, 0xa9, 0xd3, 0x19, 0x2d, 0x0e, 0xdf, 0x13, 0x68, 0x6a, 0xbc, 0x2a, 0x9a, 0xf1, 0xb2, 0x7f, 0xa3, 0xa4, 0x6e, 0x5c,
0x97, 0x18, 0x18, 0x45, 0x3d, 0xbc, 0x30, 0xc8, 0xf3, 0x0e, 0xb4, 0x22, 0xae, 0xaf, 0xa4, 0x32, 0xd2, 0x39, 0xcf, 0x94, 0x32, 0x72, 0x27, 0xa7, 0x4e, 0x67, 0x5c, 0x70, 0x60, 0x84, 0xf5, 0xf0,
0xab, 0x3c, 0x47, 0x99, 0x2d, 0x44, 0x86, 0x15, 0xfb, 0x38, 0xb4, 0xdd, 0xc1, 0x19, 0x8d, 0x12, 0xc2, 0x00, 0xd0, 0x3b, 0xd0, 0x8a, 0xb8, 0xbe, 0x92, 0xca, 0xac, 0xf2, 0x1c, 0x65, 0xb6, 0x10,
0x0f, 0x8f, 0xd9, 0xe8, 0x42, 0x70, 0x15, 0xbc, 0xa8, 0xe1, 0x68, 0xd9, 0x6f, 0xc2, 0xa2, 0x48, 0x19, 0x16, 0xee, 0xe3, 0xd0, 0x76, 0x07, 0x67, 0x34, 0x4a, 0x3c, 0x3c, 0x82, 0xa3, 0x7b, 0xc1,
0xfb, 0x52, 0x94, 0x22, 0x85, 0x3b, 0x85, 0x19, 0xa1, 0xfd, 0x87, 0xf2, 0x02, 0xc7, 0xdc, 0xc3, 0x55, 0xf0, 0xa2, 0x86, 0xa3, 0xd5, 0xbf, 0x09, 0x8b, 0x22, 0x25, 0x4c, 0x51, 0x8a, 0xf4, 0xee,
0xd9, 0x2b, 0xa2, 0xcf, 0xae, 0x94, 0x99, 0xdd, 0xc7, 0xc4, 0x65, 0xca, 0x40, 0x9e, 0xe5, 0xcb, 0x14, 0x66, 0x84, 0xf6, 0x1f, 0xca, 0xcb, 0x1d, 0x73, 0x0f, 0x67, 0xaf, 0x88, 0x3e, 0xbb, 0x52,
0x5a, 0x92, 0xc5, 0x40, 0x5c, 0x7e, 0x99, 0x4b, 0x5a, 0x79, 0x91, 0x25, 0xb5, 0x7f, 0x60, 0xc1, 0x66, 0x76, 0x1f, 0x13, 0x17, 0x2d, 0x03, 0x79, 0xce, 0x2f, 0x6b, 0x09, 0x18, 0x03, 0x71, 0x31,
0xfc, 0x5e, 0x38, 0xde, 0x13, 0xe9, 0x26, 0x28, 0x08, 0x2a, 0xdf, 0x52, 0x16, 0x9f, 0x93, 0x88, 0x66, 0x2e, 0x69, 0xe5, 0x45, 0x96, 0xd4, 0xfe, 0x81, 0x05, 0xf3, 0x7b, 0xe1, 0x78, 0x4f, 0xa4,
0x52, 0x68, 0xb9, 0x17, 0xb2, 0x96, 0xfb, 0x67, 0xe1, 0x25, 0x8c, 0x24, 0x45, 0xe1, 0x38, 0x8c, 0xa2, 0xa0, 0x20, 0xa8, 0x5c, 0x4c, 0x59, 0x7c, 0x4e, 0x92, 0x4a, 0xa1, 0x55, 0x5f, 0xc8, 0x5a,
0x98, 0x30, 0xba, 0x3e, 0x37, 0xd3, 0x61, 0x90, 0x9c, 0x4a, 0x35, 0xf6, 0x3c, 0x12, 0x3c, 0xde, 0xf5, 0x9f, 0x85, 0x97, 0x30, 0xca, 0x14, 0x85, 0xe3, 0x30, 0x62, 0xc2, 0xe8, 0xfa, 0xdc, 0x84,
0xb1, 0x63, 0x09, 0x77, 0xba, 0x85, 0xa7, 0xc1, 0xb5, 0x5b, 0xbe, 0xc2, 0xfe, 0x0c, 0xd4, 0xd1, 0x87, 0x41, 0x72, 0x2a, 0xd5, 0xd8, 0xf3, 0x48, 0xf0, 0xe8, 0xc7, 0x8e, 0x2c, 0xdc, 0x21, 0x17,
0x55, 0xc6, 0x69, 0xbd, 0x0e, 0xf5, 0xd3, 0x70, 0xdc, 0x3b, 0xf5, 0x82, 0x44, 0x0a, 0x77, 0x2b, 0x5e, 0x08, 0xd7, 0x6e, 0xf9, 0x0a, 0xfb, 0x33, 0x50, 0x47, 0x37, 0x1a, 0xa7, 0xf5, 0x3a, 0xd4,
0xf5, 0x61, 0xf7, 0x70, 0x41, 0x14, 0x81, 0xfd, 0xcd, 0x39, 0x98, 0x7f, 0x10, 0x9c, 0x85, 0x5e, 0x4f, 0xc3, 0x71, 0xef, 0xd4, 0x0b, 0x12, 0x29, 0xdc, 0xad, 0xd4, 0xbf, 0xdd, 0xc3, 0x05, 0x51,
0x1f, 0x2f, 0x8b, 0x46, 0x74, 0x14, 0xca, 0xec, 0x53, 0xf6, 0x3f, 0xb9, 0x0a, 0xf3, 0x98, 0x6e, 0x04, 0xf6, 0x37, 0xe7, 0x60, 0xfe, 0x41, 0x70, 0x16, 0x7a, 0x7d, 0xbc, 0x48, 0x1a, 0xd1, 0x51,
0x35, 0xe6, 0x4c, 0xdb, 0xe4, 0x97, 0xba, 0x02, 0x62, 0x4e, 0x42, 0x94, 0x26, 0xbe, 0x73, 0xf1, 0x28, 0x33, 0x53, 0xd9, 0xff, 0xe4, 0x2a, 0xcc, 0x63, 0x2a, 0xd6, 0x98, 0x33, 0x6d, 0x93, 0x5f,
0xd1, 0x10, 0x76, 0x88, 0x88, 0xf4, 0xc4, 0x75, 0x51, 0x4a, 0xb3, 0x7b, 0xab, 0x5a, 0x76, 0x2f, 0xf8, 0x0a, 0x88, 0x39, 0x09, 0x51, 0x9a, 0x14, 0xcf, 0xc5, 0x47, 0x43, 0xd8, 0x01, 0x23, 0xd2,
0xeb, 0x4b, 0xa4, 0xc7, 0xf0, 0xfc, 0x09, 0xde, 0x97, 0x80, 0xf0, 0xe0, 0x13, 0x51, 0x1e, 0x09, 0x93, 0xda, 0x45, 0x29, 0xcd, 0xfc, 0xad, 0x6a, 0x99, 0xbf, 0xac, 0x2f, 0x91, 0x3a, 0xc3, 0x73,
0x44, 0x97, 0x63, 0x5e, 0x1c, 0x7c, 0x74, 0x90, 0xb9, 0x25, 0xfc, 0x03, 0x4e, 0xc3, 0x95, 0xb0, 0x2b, 0x78, 0x5f, 0x02, 0xc2, 0x43, 0x51, 0x44, 0x79, 0x94, 0x10, 0x5d, 0x8e, 0x79, 0x71, 0x28,
0x0e, 0x31, 0x17, 0x2e, 0xfb, 0x28, 0xa1, 0xce, 0x79, 0x3f, 0x03, 0x33, 0x4d, 0x3d, 0xa0, 0x4a, 0xd2, 0x41, 0xe6, 0x96, 0xf0, 0x0f, 0x38, 0x0d, 0x57, 0xc2, 0x3a, 0xc4, 0xdc, 0xbb, 0xec, 0x83,
0xa1, 0xf2, 0x79, 0x00, 0x4f, 0xee, 0xcf, 0xe2, 0xda, 0x71, 0x89, 0x67, 0xc6, 0xc9, 0xe3, 0x12, 0x85, 0x3a, 0xe7, 0xfd, 0x0c, 0xcc, 0x34, 0xf5, 0x80, 0x2a, 0x85, 0xca, 0xe7, 0x01, 0x3c, 0xf1,
0x63, 0x18, 0xd7, 0xf7, 0x8f, 0xdd, 0xfe, 0x53, 0x7c, 0x73, 0x82, 0xd7, 0x37, 0x75, 0xc7, 0x04, 0x3f, 0x8b, 0x6b, 0x47, 0x29, 0x9e, 0x35, 0x27, 0x8f, 0x52, 0x8c, 0x61, 0x5c, 0xdf, 0x3f, 0x76,
0x31, 0xc9, 0x25, 0xdd, 0x55, 0xbc, 0xfe, 0xae, 0x38, 0x3a, 0x44, 0xee, 0x40, 0x03, 0x8f, 0x88, 0xfb, 0x4f, 0xf1, 0x3d, 0x0a, 0x5e, 0xed, 0xd4, 0x1d, 0x13, 0xc4, 0x04, 0x98, 0x74, 0x57, 0xf1,
0x62, 0x5f, 0x5b, 0xb8, 0xaf, 0x6d, 0xfd, 0x0c, 0x89, 0x3b, 0xab, 0x13, 0xe9, 0x17, 0x59, 0x8b, 0x6a, 0xbc, 0xe2, 0xe8, 0x10, 0xb9, 0x03, 0x0d, 0x3c, 0x3e, 0x8a, 0x7d, 0x6d, 0xe1, 0xbe, 0xb6,
0xb9, 0x5c, 0x35, 0x77, 0x30, 0x10, 0xf7, 0x7f, 0x6d, 0xec, 0x2d, 0x05, 0x98, 0x55, 0x15, 0x0b, 0xf5, 0xf3, 0x25, 0xee, 0xac, 0x4e, 0xa4, 0x5f, 0x72, 0x2d, 0xe6, 0xf2, 0xd8, 0xdc, 0xc1, 0x40,
0xc6, 0x09, 0x96, 0x90, 0xc0, 0xc0, 0xc8, 0x35, 0xa8, 0xb1, 0xe3, 0xcb, 0xd8, 0xf5, 0x06, 0x98, 0xdc, 0x0d, 0xb6, 0xb1, 0xb7, 0x14, 0x60, 0x56, 0x55, 0x2c, 0x18, 0x27, 0x58, 0x42, 0x02, 0x03,
0xec, 0xc6, 0x4f, 0x51, 0x0a, 0x63, 0x6d, 0xc8, 0xff, 0xf1, 0x9e, 0x6e, 0x19, 0x57, 0xc5, 0xc0, 0x23, 0xd7, 0xa0, 0xc6, 0x8e, 0x36, 0x63, 0xd7, 0x1b, 0x60, 0x22, 0x1c, 0x3f, 0x61, 0x29, 0x8c,
0xd8, 0xda, 0xa8, 0x32, 0x0a, 0xd3, 0x0a, 0xdf, 0x51, 0x03, 0x24, 0x6f, 0xe0, 0x2d, 0x4c, 0x42, 0xb5, 0x21, 0xff, 0xc7, 0x3b, 0xbc, 0x65, 0x5c, 0x15, 0x03, 0x63, 0x6b, 0xa3, 0xca, 0x28, 0x4c,
0x3b, 0xab, 0x18, 0xe5, 0x79, 0x49, 0xcc, 0x59, 0x30, 0xad, 0xfc, 0x7b, 0xc4, 0x48, 0x1c, 0x4e, 0x2b, 0x7c, 0x47, 0x0d, 0x90, 0xbc, 0x81, 0x37, 0x34, 0x09, 0xed, 0xac, 0x62, 0x04, 0xe8, 0x25,
0x69, 0x7f, 0x12, 0x9a, 0x3a, 0x4c, 0x6a, 0x50, 0x79, 0x78, 0xb8, 0x7b, 0xd0, 0xbe, 0x44, 0x1a, 0x31, 0x67, 0xc1, 0xb4, 0xf2, 0xef, 0x11, 0x23, 0x71, 0x38, 0xa5, 0xfd, 0x49, 0x68, 0xea, 0x30,
0x30, 0x7f, 0xb4, 0xfb, 0xe8, 0xd1, 0xfe, 0xee, 0x4e, 0xdb, 0x22, 0x4d, 0xa8, 0xa9, 0x8c, 0xa4, 0xa9, 0x41, 0xe5, 0xe1, 0xe1, 0xee, 0x41, 0xfb, 0x12, 0x69, 0xc0, 0xfc, 0xd1, 0xee, 0xa3, 0x47,
0x92, 0x9d, 0x00, 0xd9, 0x1a, 0x0c, 0xc4, 0x77, 0xea, 0xd8, 0x9e, 0x72, 0xb0, 0x65, 0x70, 0x70, 0xfb, 0xbb, 0x3b, 0x6d, 0x8b, 0x34, 0xa1, 0xa6, 0xb2, 0x95, 0x4a, 0x76, 0x02, 0x64, 0x6b, 0x30,
0x01, 0x17, 0x95, 0x8a, 0xb9, 0xe8, 0xb9, 0x6b, 0x6d, 0xef, 0x42, 0xe3, 0x50, 0x7b, 0x91, 0x81, 0x10, 0xdf, 0xa9, 0x23, 0x7d, 0xca, 0xc1, 0x96, 0xc1, 0xc1, 0x05, 0x5c, 0x54, 0x2a, 0xe6, 0xa2,
0x02, 0x25, 0xdf, 0x62, 0x08, 0x41, 0xd4, 0x10, 0x6d, 0x38, 0x25, 0x7d, 0x38, 0xf6, 0x1f, 0x59, 0xe7, 0xae, 0xb5, 0xbd, 0x0b, 0x8d, 0x43, 0xed, 0xb5, 0x06, 0x0a, 0x94, 0x7c, 0xa7, 0x21, 0x04,
0x3c, 0x4b, 0x5c, 0x0d, 0x9f, 0xf7, 0x6d, 0x43, 0x53, 0x05, 0x57, 0xd2, 0xf4, 0x42, 0x03, 0x63, 0x51, 0x43, 0xb4, 0xe1, 0x94, 0xf4, 0xe1, 0xd8, 0x7f, 0x64, 0xf1, 0x0c, 0x72, 0x35, 0x7c, 0xde,
0x34, 0x38, 0x94, 0x5e, 0x78, 0x72, 0x12, 0x53, 0x99, 0x0c, 0x64, 0x60, 0x4c, 0x12, 0x98, 0x4f, 0xb7, 0x0d, 0x4d, 0x15, 0x78, 0x49, 0x53, 0x0f, 0x0d, 0x8c, 0xd1, 0xe0, 0x50, 0x7a, 0xe1, 0xc9,
0xc5, 0xfc, 0x13, 0x8f, 0xf7, 0x10, 0x8b, 0xa4, 0xa0, 0x1c, 0xce, 0xf4, 0x7a, 0x44, 0xcf, 0x68, 0x49, 0x4c, 0x65, 0xa2, 0x90, 0x81, 0x31, 0x49, 0x60, 0x3e, 0x15, 0xf3, 0x4f, 0x3c, 0xde, 0x43,
0x14, 0xab, 0x34, 0x28, 0x55, 0x56, 0x59, 0x90, 0xd9, 0x55, 0xde, 0x80, 0x9a, 0x6a, 0xd7, 0x54, 0x2c, 0x12, 0x86, 0x72, 0x38, 0xd3, 0xeb, 0x11, 0x3d, 0xa3, 0x51, 0xac, 0x52, 0xa4, 0x54, 0x59,
0x59, 0x92, 0x52, 0xd5, 0x33, 0xd5, 0x88, 0xa7, 0x0c, 0x63, 0xd0, 0x5c, 0x4d, 0xe7, 0x2b, 0xc8, 0x65, 0x48, 0x66, 0x57, 0x79, 0x03, 0x6a, 0xaa, 0x5d, 0x53, 0x65, 0x49, 0x4a, 0x55, 0xcf, 0x54,
0x2d, 0x20, 0x27, 0x5e, 0x94, 0x25, 0x2f, 0x23, 0x79, 0x41, 0x8d, 0xfd, 0x04, 0x96, 0x25, 0xeb, 0x23, 0x9e, 0x32, 0x8c, 0x41, 0x73, 0x35, 0x9d, 0xaf, 0x20, 0xb7, 0x80, 0x9c, 0x78, 0x51, 0x96,
0x68, 0xce, 0x94, 0xb9, 0x89, 0xd6, 0x45, 0x02, 0x53, 0xca, 0x0b, 0x8c, 0xfd, 0x3f, 0x16, 0xcc, 0xbc, 0x8c, 0xe4, 0x05, 0x35, 0xf6, 0x13, 0x58, 0x96, 0xac, 0xa3, 0x39, 0x53, 0xe6, 0x26, 0x5a,
0x8b, 0x9d, 0xce, 0xbd, 0xea, 0xe1, 0xfb, 0x6c, 0x60, 0xa4, 0x63, 0x3c, 0x80, 0x40, 0xe9, 0x12, 0x17, 0x09, 0x4c, 0x29, 0x2f, 0x30, 0xf6, 0xff, 0x58, 0x30, 0x2f, 0x76, 0x3a, 0xf7, 0xe2, 0x87,
0x6a, 0x32, 0xa7, 0x08, 0xcb, 0x45, 0x8a, 0x90, 0x40, 0x65, 0xec, 0x26, 0xa7, 0x78, 0x76, 0xae, 0xef, 0xb3, 0x81, 0x91, 0x8e, 0xf1, 0x38, 0x02, 0xa5, 0x4b, 0xa8, 0xc9, 0x9c, 0x22, 0x2c, 0x17,
0x3b, 0xf8, 0x3f, 0x69, 0xf3, 0x48, 0x0f, 0x57, 0xba, 0x18, 0xe5, 0x29, 0x7a, 0xbf, 0xc4, 0xed, 0x29, 0x42, 0x02, 0x95, 0xb1, 0x9b, 0x9c, 0xe2, 0xb9, 0xba, 0xee, 0xe0, 0xff, 0xa4, 0xcd, 0xa3,
0x7b, 0xfe, 0xfd, 0xd2, 0x55, 0xa8, 0xe3, 0x00, 0x7a, 0x69, 0x20, 0x27, 0x05, 0x18, 0xe7, 0xf2, 0x40, 0x5c, 0xe9, 0x62, 0x04, 0xa8, 0xe8, 0x6d, 0x13, 0xb7, 0xef, 0xf9, 0xb7, 0x4d, 0x57, 0xa1,
0x02, 0x4a, 0xb2, 0xc8, 0x45, 0x4e, 0x11, 0x7b, 0x95, 0xef, 0xbc, 0x58, 0x02, 0x75, 0x67, 0x2a, 0x8e, 0x03, 0xe8, 0xa5, 0x41, 0x9e, 0x14, 0x60, 0x9c, 0xcb, 0x0b, 0x28, 0xc9, 0x22, 0x4f, 0x39,
0xb2, 0x4e, 0x53, 0x38, 0xe5, 0x08, 0x31, 0x80, 0x2c, 0x47, 0x08, 0x52, 0x47, 0xd5, 0xdb, 0x5d, 0x45, 0xec, 0x55, 0xbe, 0xf3, 0x62, 0x09, 0xd4, 0x7d, 0xaa, 0xc8, 0x48, 0x4d, 0xe1, 0x94, 0x23,
0xe8, 0xec, 0x50, 0x9f, 0x26, 0x74, 0xcb, 0xf7, 0xb3, 0xed, 0xbf, 0x04, 0x57, 0x0a, 0xea, 0x84, 0xc4, 0x00, 0xb2, 0x1c, 0x21, 0x48, 0x1d, 0x55, 0x6f, 0x77, 0xa1, 0xb3, 0x43, 0x7d, 0x9a, 0xd0,
0xff, 0xfc, 0x45, 0x58, 0xdd, 0xe2, 0x19, 0x7a, 0x3f, 0xae, 0xac, 0x13, 0xbb, 0x03, 0x6b, 0xd9, 0x2d, 0xdf, 0xcf, 0xb6, 0xff, 0x12, 0x5c, 0x29, 0xa8, 0x13, 0xfe, 0xf3, 0x17, 0x61, 0x75, 0x8b,
0x26, 0x45, 0x67, 0xf7, 0x60, 0x69, 0x87, 0x1e, 0x4f, 0x86, 0xfb, 0xf4, 0x2c, 0xed, 0x88, 0x40, 0x67, 0xef, 0xfd, 0xb8, 0x32, 0x52, 0xec, 0x0e, 0xac, 0x65, 0x9b, 0x14, 0x9d, 0xdd, 0x83, 0xa5,
0x25, 0x3e, 0x0d, 0xcf, 0x85, 0x60, 0xe2, 0xff, 0xe4, 0x65, 0x00, 0x9f, 0xd1, 0xf4, 0xe2, 0x31, 0x1d, 0x7a, 0x3c, 0x19, 0xee, 0xd3, 0xb3, 0xb4, 0x23, 0x02, 0x95, 0xf8, 0x34, 0x3c, 0x17, 0x82,
0xed, 0xcb, 0x37, 0x07, 0x88, 0x1c, 0x8d, 0x69, 0xdf, 0x7e, 0x13, 0x88, 0xde, 0x8e, 0x58, 0x2f, 0x89, 0xff, 0x93, 0x97, 0x01, 0x7c, 0x46, 0xd3, 0x8b, 0xc7, 0xb4, 0x2f, 0xdf, 0x23, 0x20, 0x72,
0x66, 0xf7, 0x26, 0xc7, 0xbd, 0x78, 0x1a, 0x27, 0x74, 0x24, 0x1f, 0x53, 0xe8, 0x90, 0x7d, 0x13, 0x34, 0xa6, 0x7d, 0xfb, 0x4d, 0x20, 0x7a, 0x3b, 0x62, 0xbd, 0x98, 0xdd, 0x9b, 0x1c, 0xf7, 0xe2,
0x9a, 0x87, 0xee, 0xd4, 0xa1, 0x5f, 0x17, 0x8f, 0xb9, 0x2e, 0xc3, 0xfc, 0xd8, 0x9d, 0x32, 0x35, 0x69, 0x9c, 0xd0, 0x91, 0x7c, 0x68, 0xa1, 0x43, 0xf6, 0x4d, 0x68, 0x1e, 0xba, 0x53, 0x87, 0x7e,
0xa5, 0x22, 0x4c, 0x58, 0x6d, 0xff, 0x57, 0x09, 0xe6, 0x38, 0x25, 0x6b, 0x75, 0x40, 0xe3, 0xc4, 0x5d, 0x3c, 0xf4, 0xba, 0x0c, 0xf3, 0x63, 0x77, 0xca, 0xd4, 0x94, 0x8a, 0x3e, 0x61, 0xb5, 0xfd,
0x0b, 0x90, 0xb1, 0x64, 0xab, 0x1a, 0x94, 0x63, 0xe5, 0x52, 0x01, 0x2b, 0x8b, 0x53, 0x9a, 0xcc, 0x5f, 0x25, 0x98, 0xe3, 0x94, 0xac, 0xd5, 0x01, 0x8d, 0x13, 0x2f, 0x40, 0xc6, 0x92, 0xad, 0x6a,
0xdf, 0x16, 0xfc, 0x6a, 0x60, 0x8c, 0xb9, 0xd2, 0xf4, 0x2f, 0x1e, 0xe2, 0x48, 0x81, 0x4c, 0x30, 0x50, 0x8e, 0x95, 0x4b, 0x05, 0xac, 0x2c, 0x4e, 0x69, 0x32, 0xb7, 0x5b, 0xf0, 0xab, 0x81, 0x31,
0x32, 0xb5, 0xae, 0x7c, 0x7c, 0x52, 0x4a, 0x05, 0xe7, 0xea, 0x50, 0xa1, 0x0d, 0x9f, 0xe7, 0x0c, 0xe6, 0x4a, 0x53, 0xc3, 0x78, 0xf8, 0x23, 0x05, 0x32, 0x81, 0xca, 0xd4, 0xba, 0xf2, 0xf1, 0x49,
0x9e, 0xb3, 0xe1, 0x39, 0x5b, 0x5d, 0x7b, 0x01, 0x5b, 0xcd, 0x8f, 0x6e, 0xcf, 0xb3, 0xd5, 0xf0, 0x29, 0x15, 0x9c, 0xab, 0x43, 0x85, 0x36, 0x7c, 0x9e, 0x33, 0x78, 0xce, 0x86, 0xe7, 0x6c, 0x75,
0x02, 0xb6, 0xda, 0x26, 0xd0, 0xbe, 0x47, 0xa9, 0x43, 0x99, 0x37, 0x28, 0x79, 0xf7, 0x5b, 0x16, 0xed, 0x05, 0x6c, 0x35, 0x3f, 0xba, 0x3d, 0xcf, 0x56, 0xc3, 0x0b, 0xd8, 0x6a, 0x9b, 0x40, 0xfb,
0xb4, 0x05, 0x17, 0xa9, 0x3a, 0xf2, 0xaa, 0xe1, 0xf5, 0x16, 0xe6, 0x51, 0xdf, 0x80, 0x05, 0xf4, 0x1e, 0xa5, 0x0e, 0x65, 0xde, 0xa0, 0xe4, 0xdd, 0x6f, 0x59, 0xd0, 0x16, 0x5c, 0xa4, 0xea, 0xc8,
0x45, 0x55, 0xd4, 0x55, 0x84, 0x88, 0x0d, 0x90, 0xcd, 0x43, 0x5e, 0x77, 0x8e, 0x3c, 0x5f, 0x6c, 0xab, 0x86, 0xd7, 0x5b, 0x98, 0x63, 0x7d, 0x03, 0x16, 0xd0, 0x17, 0x55, 0x11, 0x59, 0x11, 0x3e,
0x8a, 0x0e, 0xc9, 0xc0, 0x6d, 0xe4, 0x8a, 0x34, 0x28, 0xcb, 0x51, 0x65, 0xfb, 0x2f, 0x2c, 0x58, 0x36, 0x40, 0x36, 0x0f, 0x79, 0x15, 0x3a, 0xf2, 0x7c, 0xb1, 0x29, 0x3a, 0x24, 0x83, 0xba, 0x91,
0xd2, 0x06, 0x2c, 0xb8, 0xf0, 0x1d, 0x90, 0xd2, 0xc0, 0x43, 0xb0, 0x5c, 0x72, 0x2f, 0x9b, 0x62, 0x2b, 0x52, 0xa4, 0x2c, 0x47, 0x95, 0xed, 0xbf, 0xb0, 0x60, 0x49, 0x1b, 0xb0, 0xe0, 0xc2, 0x77,
0x93, 0x7e, 0x66, 0x10, 0xe3, 0x66, 0xba, 0x53, 0x1c, 0x60, 0x3c, 0x19, 0x09, 0x25, 0xaa, 0x43, 0x40, 0x4a, 0x03, 0x0f, 0xcf, 0x72, 0xc9, 0xbd, 0x6c, 0x8a, 0x4d, 0xfa, 0x99, 0x41, 0x8c, 0x9b,
0x8c, 0x91, 0xce, 0x29, 0x7d, 0xaa, 0x48, 0xb8, 0x1a, 0x37, 0x30, 0xcc, 0xd1, 0x61, 0x3e, 0xb4, 0xe9, 0x4e, 0x71, 0x80, 0xf1, 0x64, 0x24, 0x94, 0xa8, 0x0e, 0x31, 0x46, 0x3a, 0xa7, 0xf4, 0xa9,
0x22, 0xe2, 0xf6, 0xcc, 0x04, 0xed, 0x7f, 0xb2, 0x60, 0x99, 0x1f, 0x86, 0xc4, 0x51, 0x53, 0x3d, 0x22, 0xe1, 0x6a, 0xdc, 0xc0, 0x30, 0x7f, 0x87, 0xf9, 0xd0, 0x8a, 0x88, 0xdb, 0x33, 0x13, 0xb4,
0x81, 0x99, 0xe3, 0xa7, 0x3f, 0x2e, 0x91, 0x7b, 0x97, 0x1c, 0x51, 0x26, 0x9f, 0x7e, 0xc1, 0x03, 0xff, 0xd1, 0x82, 0x65, 0x7e, 0x18, 0x12, 0x47, 0x4d, 0xf5, 0x3c, 0x66, 0x8e, 0x9f, 0xfe, 0xb8,
0x9c, 0xca, 0xcd, 0x9a, 0xb1, 0x17, 0xe5, 0xa2, 0xbd, 0x78, 0xce, 0x4a, 0x17, 0x85, 0x1c, 0xab, 0x44, 0xee, 0x5d, 0x72, 0x44, 0x99, 0x7c, 0xfa, 0x05, 0x0f, 0x70, 0x2a, 0x6f, 0x6b, 0xc6, 0x5e,
0x85, 0x21, 0xc7, 0xbb, 0xf3, 0x50, 0x8d, 0xfb, 0xe1, 0x98, 0xda, 0x6b, 0xb0, 0x62, 0x4e, 0x4e, 0x94, 0x8b, 0xf6, 0xe2, 0x39, 0x2b, 0x5d, 0x14, 0x8e, 0xac, 0x16, 0x86, 0x23, 0xef, 0xce, 0x43,
0xa8, 0xa0, 0xef, 0x58, 0xd0, 0xb9, 0xc7, 0x43, 0xf3, 0x5e, 0x30, 0xdc, 0xf3, 0xe2, 0x24, 0x8c, 0x35, 0xee, 0x87, 0x63, 0x6a, 0xaf, 0xc1, 0x8a, 0x39, 0x39, 0xa1, 0x82, 0xbe, 0x63, 0x41, 0xe7,
0xd4, 0x4b, 0xc1, 0x6b, 0x00, 0x71, 0xe2, 0x46, 0x09, 0xcf, 0xc0, 0x15, 0x01, 0xc1, 0x14, 0x61, 0x1e, 0x0f, 0xdb, 0x7b, 0xc1, 0x70, 0xcf, 0x8b, 0x93, 0x30, 0x52, 0xaf, 0x08, 0xaf, 0x01, 0xc4,
0x63, 0xa4, 0xc1, 0x80, 0xd7, 0xf2, 0xbd, 0x51, 0xe5, 0x9c, 0x0f, 0x21, 0x8e, 0x6b, 0x86, 0x25, 0x89, 0x1b, 0x25, 0x3c, 0x3b, 0x57, 0x04, 0x04, 0x53, 0x84, 0x8d, 0x91, 0x06, 0x03, 0x5e, 0xcb,
0x7e, 0x8d, 0xe7, 0x2a, 0x32, 0x5f, 0x81, 0x9e, 0xa1, 0x5e, 0xe7, 0xe7, 0xa0, 0x0c, 0x6a, 0xff, 0xf7, 0x46, 0x95, 0x73, 0x3e, 0x84, 0x38, 0xae, 0x19, 0x96, 0xf8, 0x35, 0x9e, 0xc7, 0xc8, 0x7c,
0x83, 0x05, 0x8b, 0xe9, 0x20, 0xf1, 0x16, 0xcf, 0xd4, 0x0e, 0xc2, 0xfc, 0xa6, 0xda, 0x41, 0x86, 0x05, 0x7a, 0x86, 0x7a, 0x9d, 0x9f, 0x83, 0x32, 0xa8, 0xfd, 0xf7, 0x16, 0x2c, 0xa6, 0x83, 0xc4,
0x2a, 0x3d, 0x66, 0x8f, 0xc5, 0xd8, 0x34, 0x04, 0x25, 0x56, 0x94, 0xc2, 0x89, 0x74, 0x70, 0x74, 0x1b, 0x3e, 0x53, 0x3b, 0x08, 0xf3, 0x9b, 0x6a, 0x07, 0x19, 0xaa, 0xf4, 0x98, 0x3d, 0x16, 0x63,
0x88, 0x67, 0x1e, 0x31, 0x4f, 0x40, 0x78, 0x35, 0xa2, 0x84, 0x09, 0xd4, 0xa3, 0x04, 0xbf, 0x9a, 0xd3, 0x10, 0x94, 0x58, 0x51, 0x0a, 0x27, 0xd2, 0xc1, 0xd1, 0x21, 0x9e, 0x95, 0xc4, 0x3c, 0x01,
0xe3, 0x07, 0x41, 0x51, 0x94, 0xa6, 0x74, 0x1e, 0x51, 0x34, 0xa5, 0xfa, 0x35, 0x47, 0x8d, 0xaf, 0xe1, 0xd5, 0x88, 0x12, 0x26, 0x57, 0x8f, 0x12, 0xfc, 0x8a, 0xc7, 0x53, 0x65, 0x51, 0x9a, 0xd2,
0x8f, 0x2c, 0xdb, 0xbf, 0x69, 0xc1, 0x95, 0x82, 0x85, 0x17, 0x52, 0xb3, 0x03, 0x4b, 0x27, 0xaa, 0x79, 0x44, 0xd1, 0x94, 0xea, 0x57, 0x20, 0x35, 0xbe, 0x3e, 0xb2, 0x6c, 0xff, 0xa6, 0x05, 0x57,
0x52, 0x2e, 0x0e, 0x17, 0x9d, 0x35, 0x79, 0xcf, 0x64, 0x2e, 0x88, 0x93, 0xff, 0x40, 0xf9, 0x45, 0x0a, 0x16, 0x5e, 0x48, 0xcd, 0x0e, 0x2c, 0x9d, 0xa8, 0x4a, 0xb9, 0x38, 0x5c, 0x74, 0xd6, 0xe4,
0x7c, 0xb9, 0x8d, 0xdc, 0xbe, 0x7c, 0xc5, 0xc6, 0xe7, 0xa0, 0xa1, 0xbd, 0xd1, 0x23, 0x97, 0x61, 0x1d, 0x94, 0xb9, 0x20, 0x4e, 0xfe, 0x03, 0xe5, 0x17, 0xf1, 0xe5, 0x36, 0xf2, 0xfe, 0xf2, 0x15,
0xf9, 0xc9, 0x83, 0x47, 0x07, 0xbb, 0x47, 0x47, 0xbd, 0xc3, 0xc7, 0x77, 0xbf, 0xb0, 0xfb, 0xe5, 0x1b, 0x9f, 0x83, 0x86, 0xf6, 0x7e, 0x8f, 0x5c, 0x86, 0xe5, 0x27, 0x0f, 0x1e, 0x1d, 0xec, 0x1e,
0xde, 0xde, 0xd6, 0xd1, 0x5e, 0xfb, 0x12, 0x59, 0x03, 0x72, 0xb0, 0x7b, 0xf4, 0x68, 0x77, 0xc7, 0x1d, 0xf5, 0x0e, 0x1f, 0xdf, 0xfd, 0xc2, 0xee, 0x97, 0x7b, 0x7b, 0x5b, 0x47, 0x7b, 0xed, 0x4b,
0xc0, 0xad, 0x3b, 0xbf, 0x55, 0x86, 0x16, 0xbf, 0xbf, 0xe4, 0xbf, 0xea, 0x40, 0x23, 0xf2, 0x2e, 0x64, 0x0d, 0xc8, 0xc1, 0xee, 0xd1, 0xa3, 0xdd, 0x1d, 0x03, 0xb7, 0xee, 0xfc, 0x56, 0x19, 0x5a,
0xcc, 0x8b, 0x5f, 0xe5, 0x20, 0xab, 0x62, 0xd8, 0xe6, 0xef, 0x80, 0x74, 0xd7, 0xb2, 0xb0, 0xe0, 0xfc, 0x6e, 0x93, 0xff, 0xe2, 0x03, 0x8d, 0xc8, 0xbb, 0x30, 0x2f, 0x7e, 0xb1, 0x83, 0xac, 0x8a,
0xcb, 0xe5, 0x5f, 0xfa, 0xc1, 0xbf, 0xfd, 0x4e, 0x69, 0x81, 0x34, 0x36, 0xcf, 0xde, 0xd8, 0x1c, 0x61, 0x9b, 0xbf, 0x11, 0xd2, 0x5d, 0xcb, 0xc2, 0x82, 0x2f, 0x97, 0x7f, 0xe9, 0x07, 0xff, 0xfa,
0xd2, 0x20, 0x66, 0x6d, 0x7c, 0x15, 0x20, 0xfd, 0xbd, 0x0a, 0xd2, 0x51, 0xfe, 0x60, 0xe6, 0x87, 0x3b, 0xa5, 0x05, 0xd2, 0xd8, 0x3c, 0x7b, 0x63, 0x73, 0x48, 0x83, 0x98, 0xb5, 0xf1, 0x55, 0x80,
0x38, 0xba, 0x57, 0x0a, 0x6a, 0x44, 0xbb, 0x57, 0xb0, 0xdd, 0x65, 0xbb, 0xc5, 0xda, 0xf5, 0x02, 0xf4, 0xb7, 0x2c, 0x48, 0x47, 0xf9, 0x83, 0x99, 0x1f, 0xe9, 0xe8, 0x5e, 0x29, 0xa8, 0x11, 0xed,
0x2f, 0xe1, 0x3f, 0x5e, 0xf1, 0xb6, 0xb5, 0x41, 0x06, 0xd0, 0xd4, 0x7f, 0x8e, 0x82, 0xc8, 0x30, 0x5e, 0xc1, 0x76, 0x97, 0xed, 0x16, 0x6b, 0xd7, 0x0b, 0xbc, 0x84, 0xff, 0xb0, 0xc5, 0xdb, 0xd6,
0x54, 0xc1, 0x8f, 0x61, 0x74, 0x5f, 0x2a, 0xac, 0x93, 0x31, 0x38, 0xec, 0x63, 0xd5, 0x6e, 0xb3, 0x06, 0x19, 0x40, 0x53, 0xff, 0xa9, 0x0a, 0x22, 0xc3, 0x50, 0x05, 0x3f, 0x94, 0xd1, 0x7d, 0xa9,
0x3e, 0x26, 0x48, 0x91, 0xf6, 0xe2, 0x43, 0xcb, 0xfc, 0xd5, 0x09, 0x72, 0x55, 0x53, 0x19, 0xb9, 0xb0, 0x4e, 0xc6, 0xe0, 0xb0, 0x8f, 0x55, 0xbb, 0xcd, 0xfa, 0x98, 0x20, 0x45, 0xda, 0x8b, 0x0f,
0xdf, 0xbc, 0xe8, 0xbe, 0x3c, 0xa3, 0x56, 0xf4, 0xf5, 0x32, 0xf6, 0x75, 0xd9, 0x26, 0xac, 0xaf, 0x2d, 0xf3, 0x17, 0x29, 0xc8, 0x55, 0x4d, 0x65, 0xe4, 0x7e, 0x0f, 0xa3, 0xfb, 0xf2, 0x8c, 0x5a,
0x3e, 0xd2, 0xc8, 0xdf, 0xbc, 0x78, 0xdb, 0xda, 0xb8, 0xf3, 0xd7, 0xd7, 0xa1, 0xae, 0x02, 0xc7, 0xd1, 0xd7, 0xcb, 0xd8, 0xd7, 0x65, 0x9b, 0xb0, 0xbe, 0xfa, 0x48, 0x23, 0x7f, 0x0f, 0xe3, 0x6d,
0xe4, 0x7d, 0x58, 0x30, 0x2e, 0x98, 0x89, 0x9c, 0x46, 0xd1, 0x7d, 0x74, 0xf7, 0x6a, 0x71, 0xa5, 0x6b, 0xe3, 0xce, 0x5f, 0x5f, 0x87, 0xba, 0x0a, 0x1c, 0x93, 0xf7, 0x61, 0xc1, 0xb8, 0x7c, 0x26,
0xe8, 0xf8, 0x1a, 0x76, 0xdc, 0x21, 0x6b, 0xac, 0x63, 0x71, 0x43, 0xbb, 0x89, 0xa9, 0x12, 0x3c, 0x72, 0x1a, 0x45, 0x77, 0xd5, 0xdd, 0xab, 0xc5, 0x95, 0xa2, 0xe3, 0x6b, 0xd8, 0x71, 0x87, 0xac,
0xef, 0xf9, 0x29, 0x9f, 0x67, 0x7a, 0x29, 0x6c, 0xcc, 0x33, 0x77, 0x89, 0x6c, 0xcc, 0x33, 0x7f, 0xb1, 0x8e, 0xc5, 0xed, 0xed, 0x26, 0xa6, 0x51, 0xf0, 0x9c, 0xe8, 0xa7, 0x7c, 0x9e, 0xe9, 0x85,
0x93, 0x6c, 0x5f, 0xc5, 0xee, 0xd6, 0xc8, 0x8a, 0xde, 0x9d, 0x0a, 0xe8, 0x52, 0x4c, 0xd6, 0xd7, 0xb1, 0x31, 0xcf, 0xdc, 0x05, 0xb3, 0x31, 0xcf, 0xfc, 0x2d, 0xb3, 0x7d, 0x15, 0xbb, 0x5b, 0x23,
0x7f, 0xb0, 0x81, 0xbc, 0xac, 0x18, 0xab, 0xe8, 0x87, 0x1c, 0x14, 0x8b, 0xe4, 0x7f, 0xcd, 0xc1, 0x2b, 0x7a, 0x77, 0x2a, 0xa0, 0x4b, 0x31, 0x91, 0x5f, 0xff, 0x31, 0x07, 0xf2, 0xb2, 0x62, 0xac,
0xee, 0x60, 0x57, 0x84, 0xe0, 0xf6, 0xe9, 0xbf, 0xd7, 0x40, 0xbe, 0x02, 0x75, 0xf5, 0x40, 0x97, 0xa2, 0x1f, 0x79, 0x50, 0x2c, 0x92, 0xff, 0xa5, 0x07, 0xbb, 0x83, 0x5d, 0x11, 0x82, 0xdb, 0xa7,
0x5c, 0xd6, 0x1e, 0x4c, 0xeb, 0x0f, 0x8a, 0xbb, 0x9d, 0x7c, 0x45, 0x11, 0x63, 0xe8, 0x2d, 0x33, 0xff, 0x96, 0x03, 0xf9, 0x0a, 0xd4, 0xd5, 0xe3, 0x5d, 0x72, 0x59, 0x7b, 0x4c, 0xad, 0x3f, 0x36,
0xc6, 0x78, 0x02, 0x0d, 0xed, 0x11, 0x2e, 0xb9, 0xa2, 0xc2, 0xfe, 0xd9, 0x87, 0xbe, 0xdd, 0x6e, 0xee, 0x76, 0xf2, 0x15, 0x45, 0x8c, 0xa1, 0xb7, 0xcc, 0x18, 0xe3, 0x09, 0x34, 0xb4, 0x07, 0xba,
0x51, 0x95, 0xe8, 0x62, 0x09, 0xbb, 0x68, 0x90, 0x3a, 0xf2, 0x5e, 0xf2, 0x2c, 0x8c, 0xc9, 0x3e, 0xe4, 0x8a, 0x0a, 0xfb, 0x67, 0x1f, 0x01, 0x77, 0xbb, 0x45, 0x55, 0xa2, 0x8b, 0x25, 0xec, 0xa2,
0xac, 0x8a, 0x83, 0xcb, 0x31, 0xfd, 0x28, 0x4b, 0x54, 0xf0, 0xfb, 0x15, 0xb7, 0x2d, 0xf2, 0x0e, 0x41, 0xea, 0xc8, 0x7b, 0xc9, 0xb3, 0x30, 0x26, 0xfb, 0xb0, 0x2a, 0x0e, 0x2e, 0xc7, 0xf4, 0xa3,
0xd4, 0xe4, 0x5b, 0x6b, 0xb2, 0x56, 0xfc, 0x66, 0xbc, 0x7b, 0x39, 0x87, 0x0b, 0xb5, 0xf6, 0x65, 0x2c, 0x51, 0xc1, 0x6f, 0x5b, 0xdc, 0xb6, 0xc8, 0x3b, 0x50, 0x93, 0xef, 0xb0, 0xc9, 0x5a, 0xf1,
0x80, 0xf4, 0xc5, 0xaf, 0x12, 0xe0, 0xdc, 0x0b, 0x62, 0xb5, 0x3b, 0xf9, 0xe7, 0xc1, 0xf6, 0x1a, 0x7b, 0xf2, 0xee, 0xe5, 0x1c, 0x2e, 0xd4, 0xda, 0x97, 0x01, 0xd2, 0xd7, 0xc0, 0x4a, 0x80, 0x73,
0x4e, 0xb0, 0x4d, 0x50, 0x80, 0x03, 0x7a, 0x2e, 0x9f, 0xaf, 0x7c, 0x0d, 0x1a, 0xda, 0xa3, 0x5f, 0xaf, 0x8b, 0xd5, 0xee, 0xe4, 0x9f, 0x0e, 0xdb, 0x6b, 0x38, 0xc1, 0x36, 0x41, 0x01, 0x0e, 0xe8,
0xb5, 0x7c, 0xf9, 0x07, 0xc3, 0x6a, 0xf9, 0x0a, 0xde, 0x08, 0xdb, 0x5d, 0x6c, 0x7d, 0xc5, 0x5e, 0xb9, 0x7c, 0xda, 0xf2, 0x35, 0x68, 0x68, 0x0f, 0x82, 0xd5, 0xf2, 0xe5, 0x1f, 0x13, 0xab, 0xe5,
0x64, 0xad, 0xc7, 0xde, 0x30, 0x18, 0x71, 0x02, 0xb6, 0x41, 0xa7, 0xb0, 0x60, 0xbc, 0xec, 0x55, 0x2b, 0x78, 0x3f, 0x6c, 0x77, 0xb1, 0xf5, 0x15, 0x7b, 0x91, 0xb5, 0x1e, 0x7b, 0xc3, 0x60, 0xc4,
0xd2, 0x53, 0xf4, 0x6e, 0x58, 0x49, 0x4f, 0xe1, 0x63, 0x60, 0xc9, 0xce, 0xf6, 0x12, 0xeb, 0xe7, 0x09, 0xd8, 0x06, 0x9d, 0xc2, 0x82, 0xf1, 0xea, 0x57, 0x49, 0x4f, 0xd1, 0x9b, 0x62, 0x25, 0x3d,
0x0c, 0x49, 0xb4, 0x9e, 0xde, 0x83, 0x86, 0xf6, 0x4a, 0x57, 0xcd, 0x25, 0xff, 0x20, 0x58, 0xcd, 0x85, 0x0f, 0x85, 0x25, 0x3b, 0xdb, 0x4b, 0xac, 0x9f, 0x33, 0x24, 0xd1, 0x7a, 0x7a, 0x0f, 0x1a,
0xa5, 0xe8, 0x51, 0xef, 0x0a, 0xf6, 0xd1, 0xb2, 0x91, 0x15, 0xf0, 0xf5, 0x07, 0x6b, 0xfb, 0x7d, 0xda, 0x0b, 0x5e, 0x35, 0x97, 0xfc, 0x63, 0x61, 0x35, 0x97, 0xa2, 0x07, 0xbf, 0x2b, 0xd8, 0x47,
0x68, 0x99, 0xef, 0x76, 0x95, 0x5c, 0x16, 0xbe, 0x00, 0x56, 0x72, 0x39, 0xe3, 0xb1, 0xaf, 0x60, 0xcb, 0x46, 0x56, 0xc0, 0x97, 0x21, 0xac, 0xed, 0xf7, 0xa1, 0x65, 0xbe, 0xe9, 0x55, 0x72, 0x59,
0xe9, 0x8d, 0x65, 0xd5, 0xc9, 0xe6, 0x07, 0xe2, 0x1a, 0xf7, 0x43, 0xf2, 0x45, 0xa6, 0x7c, 0xc4, 0xf8, 0x3a, 0x58, 0xc9, 0xe5, 0x8c, 0x87, 0xc0, 0x82, 0xa5, 0x37, 0x96, 0x55, 0x27, 0x9b, 0x1f,
0x73, 0x1c, 0x72, 0x59, 0xe3, 0x5a, 0xfd, 0xd1, 0x8e, 0x92, 0x97, 0xdc, 0xcb, 0x1d, 0x93, 0x99, 0x88, 0x2b, 0xde, 0x0f, 0xc9, 0x17, 0x99, 0xf2, 0x11, 0x4f, 0x75, 0xc8, 0x65, 0x8d, 0x6b, 0xf5,
0xf9, 0xfb, 0x15, 0xb4, 0x28, 0xf8, 0x2c, 0x47, 0xb3, 0x28, 0xfa, 0xcb, 0x1d, 0xcd, 0xa2, 0x18, 0x07, 0x3d, 0x4a, 0x5e, 0x72, 0xaf, 0x7a, 0x4c, 0x66, 0xe6, 0x6f, 0x5b, 0xd0, 0xa2, 0xe0, 0x93,
0xaf, 0x77, 0xb2, 0x16, 0x25, 0xf1, 0x58, 0x1b, 0x01, 0x2c, 0x66, 0x12, 0xd4, 0x94, 0x54, 0x14, 0x1d, 0xcd, 0xa2, 0xe8, 0xaf, 0x7a, 0x34, 0x8b, 0x62, 0xbc, 0xec, 0xc9, 0x5a, 0x94, 0xc4, 0x63,
0x67, 0xf4, 0x76, 0xaf, 0x3d, 0x3f, 0xaf, 0xcd, 0x54, 0x54, 0x52, 0x41, 0x6d, 0xca, 0xfc, 0xe9, 0x6d, 0x04, 0xb0, 0x98, 0x49, 0x5e, 0x53, 0x52, 0x51, 0x9c, 0xed, 0xdb, 0xbd, 0xf6, 0xfc, 0x9c,
0x9f, 0x87, 0xa6, 0xfe, 0xa2, 0x92, 0xe8, 0xa2, 0x9c, 0xed, 0xe9, 0xa5, 0xc2, 0x3a, 0x73, 0x73, 0x37, 0x53, 0x51, 0x49, 0x05, 0xb5, 0x29, 0x73, 0xab, 0x7f, 0x1e, 0x9a, 0xfa, 0x6b, 0x4b, 0xa2,
0x49, 0x53, 0xef, 0x86, 0x7c, 0x09, 0xd6, 0x94, 0xa8, 0xeb, 0x39, 0x4f, 0x31, 0x79, 0xa5, 0x20, 0x8b, 0x72, 0xb6, 0xa7, 0x97, 0x0a, 0xeb, 0xcc, 0xcd, 0x25, 0x4d, 0xbd, 0x1b, 0xf2, 0x25, 0x58,
0x13, 0x4a, 0x0f, 0x67, 0x74, 0xaf, 0xcc, 0x4c, 0x95, 0xba, 0x6d, 0x31, 0xa6, 0x31, 0x9f, 0xaa, 0x53, 0xa2, 0xae, 0xe7, 0x43, 0xc5, 0xe4, 0x95, 0x82, 0x2c, 0x29, 0x3d, 0x9c, 0xd1, 0xbd, 0x32,
0xa5, 0xca, 0xbc, 0xe8, 0x85, 0x5e, 0xaa, 0xcc, 0x0b, 0xdf, 0xb7, 0x49, 0xa6, 0x21, 0xcb, 0xc6, 0x33, 0x8d, 0xea, 0xb6, 0xc5, 0x98, 0xc6, 0x7c, 0xc6, 0x96, 0x2a, 0xf3, 0xa2, 0xd7, 0x7b, 0xa9,
0x1a, 0xf1, 0x48, 0x3e, 0x79, 0x0f, 0x16, 0xb5, 0xac, 0xd2, 0xa3, 0x69, 0xd0, 0x57, 0x02, 0x90, 0x32, 0x2f, 0x7c, 0xfb, 0x26, 0x99, 0x86, 0x2c, 0x1b, 0x6b, 0xc4, 0x23, 0xf9, 0xe4, 0x3d, 0x58,
0x7f, 0x7e, 0xd0, 0x2d, 0xf2, 0xb7, 0xed, 0xcb, 0xd8, 0xfe, 0x92, 0x6d, 0x2c, 0x0e, 0x63, 0xfe, 0xd4, 0x32, 0x4e, 0x8f, 0xa6, 0x41, 0x5f, 0x09, 0x40, 0xfe, 0x69, 0x42, 0xb7, 0xc8, 0xdf, 0xb6,
0x6d, 0x68, 0xe8, 0x19, 0xab, 0xcf, 0x69, 0xf7, 0xb2, 0x56, 0xa5, 0x67, 0xcf, 0xdf, 0xb6, 0xc8, 0x2f, 0x63, 0xfb, 0x4b, 0xb6, 0xb1, 0x38, 0x8c, 0xf9, 0xb7, 0xa1, 0xa1, 0x67, 0xb3, 0x3e, 0xa7,
0xef, 0x59, 0xd0, 0x34, 0xf2, 0x3f, 0x8d, 0xfb, 0xaa, 0x4c, 0x3b, 0x1d, 0xbd, 0x4e, 0x6f, 0xc8, 0xdd, 0xcb, 0x5a, 0x95, 0x9e, 0x59, 0x7f, 0xdb, 0x22, 0xbf, 0x67, 0x41, 0xd3, 0xc8, 0x0d, 0x35,
0x76, 0x70, 0x90, 0xfb, 0x1b, 0x9f, 0x37, 0x16, 0xe1, 0x03, 0xe3, 0xdc, 0x76, 0x2b, 0xfb, 0x83, 0xee, 0xab, 0x32, 0xed, 0x74, 0xf4, 0x3a, 0xbd, 0x21, 0xdb, 0xc1, 0x41, 0xee, 0x6f, 0x7c, 0xde,
0x25, 0x1f, 0x66, 0x09, 0xf4, 0x27, 0x1a, 0x1f, 0xde, 0xb6, 0xc8, 0x77, 0x2d, 0x68, 0x99, 0xd1, 0x58, 0x84, 0x0f, 0x8c, 0x73, 0xdb, 0xad, 0xec, 0x8f, 0x99, 0x7c, 0x98, 0x25, 0xd0, 0x9f, 0x6f,
0x06, 0xb5, 0x55, 0x85, 0x71, 0x0d, 0xb5, 0x55, 0x33, 0x42, 0x14, 0xef, 0xe1, 0x28, 0x1f, 0x6d, 0x7c, 0x78, 0xdb, 0x22, 0xdf, 0xb5, 0xa0, 0x65, 0x46, 0x1b, 0xd4, 0x56, 0x15, 0xc6, 0x35, 0xd4,
0x38, 0xc6, 0x28, 0xc5, 0x23, 0xc6, 0x1f, 0x6d, 0xb4, 0xe4, 0x6d, 0xfe, 0xa3, 0x45, 0x32, 0x04, 0x56, 0xcd, 0x08, 0x51, 0xbc, 0x87, 0xa3, 0x7c, 0xb4, 0xe1, 0x18, 0xa3, 0x14, 0x0f, 0x1c, 0x7f,
0x46, 0x34, 0xab, 0x91, 0xdd, 0x5e, 0xfd, 0x77, 0x78, 0xd6, 0xad, 0xdb, 0x16, 0xf9, 0x1a, 0xff, 0xb4, 0xd1, 0x92, 0xb7, 0xf9, 0x0f, 0x1a, 0xc9, 0x10, 0x18, 0xd1, 0xac, 0x46, 0x76, 0x7b, 0xf5,
0x5d, 0x13, 0xf1, 0x2d, 0x72, 0xc9, 0x8b, 0x7e, 0x6f, 0xdf, 0xc0, 0x39, 0x5d, 0xb3, 0xaf, 0x18, 0xdf, 0xe8, 0x59, 0xb7, 0x6e, 0x5b, 0xe4, 0x6b, 0xfc, 0x37, 0x4f, 0xc4, 0xb7, 0xc8, 0x25, 0x2f,
0x73, 0xca, 0xda, 0xe3, 0x2d, 0x3e, 0x3a, 0xf1, 0x13, 0x3a, 0xa9, 0x41, 0xc9, 0xfd, 0xac, 0xce, 0xfa, 0xbd, 0x7d, 0x03, 0xe7, 0x74, 0xcd, 0xbe, 0x62, 0xcc, 0x29, 0x6b, 0x8f, 0xb7, 0xf8, 0xe8,
0xec, 0x41, 0x8e, 0xf8, 0x20, 0x05, 0xb9, 0xc1, 0xca, 0x2f, 0xd8, 0x8c, 0xbd, 0x81, 0x63, 0xbd, 0xc4, 0xcf, 0xeb, 0xa4, 0x06, 0x25, 0xf7, 0x93, 0x3b, 0xb3, 0x07, 0x39, 0xe2, 0x83, 0x14, 0xe4,
0x61, 0xbf, 0x32, 0x73, 0xac, 0x9b, 0x18, 0x33, 0x60, 0x23, 0x3e, 0x04, 0x48, 0xc3, 0xd5, 0x24, 0x06, 0x2b, 0xbf, 0x60, 0x33, 0xf6, 0x06, 0x8e, 0xf5, 0x86, 0xfd, 0xca, 0xcc, 0xb1, 0x6e, 0x62,
0x13, 0x2e, 0x55, 0x02, 0x9e, 0x8f, 0x68, 0x9b, 0xf2, 0x22, 0xa3, 0xaa, 0xac, 0xc5, 0xaf, 0x70, 0xcc, 0x80, 0x8d, 0xf8, 0x10, 0x20, 0x0d, 0x57, 0x93, 0x4c, 0xb8, 0x54, 0x09, 0x78, 0x3e, 0xa2,
0x75, 0xf5, 0x40, 0x06, 0x5a, 0x75, 0xa7, 0xc4, 0x8c, 0x2b, 0x1b, 0x4e, 0x49, 0xb6, 0x7d, 0x43, 0x6d, 0xca, 0x8b, 0x8c, 0xaa, 0xb2, 0x16, 0xbf, 0xc2, 0xd5, 0xd5, 0x03, 0x19, 0x68, 0xd5, 0x9d,
0x59, 0xa9, 0xa8, 0xed, 0x63, 0x58, 0xd8, 0x0f, 0xc3, 0xa7, 0x93, 0xb1, 0xba, 0x6c, 0x32, 0xc3, 0x12, 0x33, 0xae, 0x6c, 0x38, 0x25, 0xd9, 0xf6, 0x0d, 0x65, 0xa5, 0xa2, 0xb6, 0x8f, 0x61, 0x61,
0x79, 0x7b, 0x6e, 0x7c, 0xda, 0xcd, 0xcc, 0xc2, 0xbe, 0x8e, 0x4d, 0x75, 0x49, 0x47, 0x6b, 0x6a, 0x3f, 0x0c, 0x9f, 0x4e, 0xc6, 0xea, 0xb2, 0xc9, 0x0c, 0xe7, 0xed, 0xb9, 0xf1, 0x69, 0x37, 0x33,
0xf3, 0x83, 0x34, 0x1c, 0xfe, 0x21, 0x71, 0x61, 0x49, 0xe9, 0x40, 0x35, 0xf0, 0xae, 0xd9, 0x8c, 0x0b, 0xfb, 0x3a, 0x36, 0xd5, 0x25, 0x1d, 0xad, 0xa9, 0xcd, 0x0f, 0xd2, 0x70, 0xf8, 0x87, 0xc4,
0xa1, 0xf9, 0xb2, 0x5d, 0x18, 0x9e, 0xad, 0x1c, 0xed, 0x66, 0x2c, 0xdb, 0xbc, 0x6d, 0x91, 0x43, 0x85, 0x25, 0xa5, 0x03, 0xd5, 0xc0, 0xbb, 0x66, 0x33, 0x86, 0xe6, 0xcb, 0x76, 0x61, 0x78, 0xb6,
0x68, 0xee, 0xd0, 0x7e, 0x38, 0xa0, 0x22, 0x26, 0xb6, 0x9c, 0x0e, 0x5c, 0x05, 0xd3, 0xba, 0x0b, 0x72, 0xb4, 0x9b, 0xb1, 0x6c, 0xf3, 0xb6, 0x45, 0x0e, 0xa1, 0xb9, 0x43, 0xfb, 0xe1, 0x80, 0x8a,
0x06, 0x68, 0xda, 0x85, 0xb1, 0x3b, 0x8d, 0xe8, 0xd7, 0x37, 0x3f, 0x10, 0xd1, 0xb6, 0x0f, 0xa5, 0x98, 0xd8, 0x72, 0x3a, 0x70, 0x15, 0x4c, 0xeb, 0x2e, 0x18, 0xa0, 0x69, 0x17, 0xc6, 0xee, 0x34,
0x5d, 0x90, 0xe1, 0x48, 0xc3, 0x2e, 0x64, 0xe2, 0x97, 0x86, 0x5d, 0xc8, 0xc5, 0x2f, 0x8d, 0xa5, 0xa2, 0x5f, 0xdf, 0xfc, 0x40, 0x44, 0xdb, 0x3e, 0x94, 0x76, 0x41, 0x86, 0x23, 0x0d, 0xbb, 0x90,
0x96, 0xe1, 0x50, 0xe2, 0xc3, 0x52, 0x2e, 0xe4, 0xa9, 0x4c, 0xc2, 0xac, 0x40, 0x69, 0xf7, 0xfa, 0x89, 0x5f, 0x1a, 0x76, 0x21, 0x17, 0xbf, 0x34, 0x96, 0x5a, 0x86, 0x43, 0x89, 0x0f, 0x4b, 0xb9,
0x6c, 0x02, 0xb3, 0xb7, 0x0d, 0xb3, 0xb7, 0x23, 0x58, 0xd8, 0xa1, 0x7c, 0xb1, 0x78, 0x46, 0x4b, 0x90, 0xa7, 0x32, 0x09, 0xb3, 0x02, 0xa5, 0xdd, 0xeb, 0xb3, 0x09, 0xcc, 0xde, 0x36, 0xcc, 0xde,
0x26, 0x89, 0x58, 0xcf, 0x97, 0xc9, 0x2a, 0x70, 0xac, 0x33, 0x0d, 0x3f, 0xa6, 0x93, 0x90, 0xaf, 0x8e, 0x60, 0x61, 0x87, 0xf2, 0xc5, 0xe2, 0x19, 0x2d, 0x99, 0x04, 0x63, 0x3d, 0x5f, 0x26, 0xab,
0x40, 0xe3, 0x3e, 0x4d, 0x64, 0x0a, 0x8b, 0x72, 0x3d, 0x33, 0x39, 0x2d, 0xdd, 0x82, 0x0c, 0x18, 0xc0, 0xb1, 0xce, 0x34, 0xfc, 0x98, 0x4e, 0x42, 0xbe, 0x02, 0x8d, 0xfb, 0x34, 0x91, 0x29, 0x2c,
0x93, 0x67, 0xb0, 0xb5, 0x4d, 0x3a, 0x18, 0x52, 0xae, 0x9c, 0x7a, 0xde, 0xe0, 0x43, 0xf2, 0x73, 0xca, 0xf5, 0xcc, 0xe4, 0xb4, 0x74, 0x0b, 0x32, 0x60, 0x4c, 0x9e, 0xc1, 0xd6, 0x36, 0xe9, 0x60,
0xd8, 0xb8, 0xca, 0xa1, 0x5b, 0xd3, 0x32, 0x1f, 0xf4, 0xc6, 0x17, 0x33, 0x78, 0x51, 0xcb, 0x41, 0x48, 0xb9, 0x72, 0xea, 0x79, 0x83, 0x0f, 0xc9, 0xcf, 0x61, 0xe3, 0x2a, 0xbf, 0x6e, 0x4d, 0xcb,
0x38, 0xa0, 0x9a, 0x0b, 0x14, 0x40, 0x43, 0x4b, 0xfd, 0x54, 0x02, 0x94, 0x4f, 0x63, 0x55, 0x02, 0x7c, 0xd0, 0x1b, 0x5f, 0xcc, 0xe0, 0x45, 0x2d, 0x07, 0xe1, 0x80, 0x6a, 0x2e, 0x50, 0x00, 0x0d,
0x54, 0x90, 0x29, 0x6a, 0xaf, 0x63, 0x3f, 0x36, 0xb9, 0x9e, 0xf6, 0xc3, 0xb3, 0x43, 0xd3, 0x9e, 0x2d, 0x2d, 0x54, 0x09, 0x50, 0x3e, 0xc5, 0x55, 0x09, 0x50, 0x41, 0x16, 0xa9, 0xbd, 0x8e, 0xfd,
0x36, 0x3f, 0x70, 0x47, 0xc9, 0x87, 0xe4, 0x09, 0xbe, 0x64, 0xd6, 0xd3, 0x74, 0x52, 0x5f, 0x3a, 0xd8, 0xe4, 0x7a, 0xda, 0x0f, 0xcf, 0x1c, 0x4d, 0x7b, 0xda, 0xfc, 0xc0, 0x1d, 0x25, 0x1f, 0x92,
0x9b, 0xd1, 0xa3, 0x16, 0x4b, 0xab, 0x32, 0xfd, 0x6b, 0xde, 0x15, 0x7a, 0x4a, 0x9f, 0x06, 0x38, 0x27, 0xf8, 0xca, 0x59, 0x4f, 0xd3, 0x49, 0x7d, 0xe9, 0x6c, 0x46, 0x8f, 0x5a, 0x2c, 0xad, 0xca,
0x4a, 0xc2, 0xf1, 0x8e, 0x4b, 0x47, 0x61, 0x90, 0xea, 0xda, 0x34, 0x15, 0x25, 0xd5, 0x5f, 0x5a, 0xf4, 0xaf, 0x79, 0x57, 0xe8, 0x29, 0x7d, 0x1a, 0xe0, 0x28, 0x09, 0xc7, 0x3b, 0x2e, 0x1d, 0x85,
0x3e, 0x0a, 0x79, 0xa2, 0x1d, 0x3e, 0x8c, 0x2c, 0x27, 0xc9, 0x5c, 0x33, 0xb3, 0x55, 0xd4, 0x82, 0x41, 0xaa, 0x6b, 0xd3, 0x54, 0x94, 0x54, 0x7f, 0x69, 0xf9, 0x28, 0xe4, 0x89, 0x76, 0xf8, 0x30,
0x14, 0x64, 0xac, 0xdc, 0xb6, 0xc8, 0x16, 0x40, 0x1a, 0xf3, 0x56, 0x47, 0x89, 0x5c, 0x38, 0x5d, 0xb2, 0x9c, 0x24, 0x73, 0xcd, 0xcc, 0x56, 0x51, 0x0b, 0x52, 0x90, 0xb1, 0x72, 0xdb, 0x22, 0x5b,
0xa9, 0xbd, 0x82, 0x00, 0xf9, 0x21, 0xd4, 0xd3, 0x20, 0xea, 0xe5, 0x34, 0x7d, 0xd7, 0x08, 0xb9, 0x00, 0x69, 0xcc, 0x5b, 0x1d, 0x25, 0x72, 0xe1, 0x74, 0xa5, 0xf6, 0x0a, 0x02, 0xe4, 0x87, 0x50,
0x2a, 0x0b, 0x9e, 0x0b, 0x6d, 0xda, 0x6d, 0x5c, 0x2a, 0x20, 0x35, 0xb6, 0x54, 0x18, 0xaf, 0xf4, 0x4f, 0x83, 0xa8, 0x97, 0xd3, 0xd4, 0x5e, 0x23, 0xe4, 0xaa, 0x2c, 0x78, 0x2e, 0xb4, 0x69, 0xb7,
0x60, 0x99, 0x0f, 0x50, 0xb9, 0x23, 0x98, 0x5c, 0x21, 0x67, 0x52, 0x10, 0x5e, 0x54, 0xd2, 0x5c, 0x71, 0xa9, 0x80, 0xd4, 0xd8, 0x52, 0x61, 0xbc, 0xd2, 0x83, 0x65, 0x3e, 0x40, 0xe5, 0x8e, 0x60,
0x18, 0x9d, 0x33, 0xa2, 0x15, 0x8c, 0x5b, 0x79, 0x62, 0x07, 0x53, 0xcd, 0x23, 0x58, 0xca, 0x85, 0x72, 0x85, 0x9c, 0x49, 0x41, 0x78, 0x51, 0x49, 0x73, 0x61, 0x74, 0xce, 0x88, 0x56, 0x30, 0x6e,
0x8f, 0x94, 0x48, 0xcf, 0x8a, 0xe8, 0x29, 0x91, 0x9e, 0x19, 0x79, 0xb2, 0x57, 0xb1, 0xcb, 0x45, 0xe5, 0x89, 0x1d, 0x4c, 0x35, 0x8f, 0x60, 0x29, 0x17, 0x3e, 0x52, 0x22, 0x3d, 0x2b, 0xa2, 0xa7,
0x1b, 0xf0, 0x04, 0x74, 0xee, 0x25, 0xfd, 0xd3, 0xb7, 0xad, 0x8d, 0xbb, 0x37, 0xdf, 0xfb, 0x89, 0x44, 0x7a, 0x66, 0xe4, 0xc9, 0x5e, 0xc5, 0x2e, 0x17, 0x6d, 0xc0, 0x13, 0xd0, 0xb9, 0x97, 0xf4,
0xa1, 0x97, 0x9c, 0x4e, 0x8e, 0x6f, 0xf5, 0xc3, 0xd1, 0xa6, 0x2f, 0x43, 0x0a, 0x22, 0x45, 0x6a, 0x4f, 0xdf, 0xb6, 0x36, 0xee, 0xde, 0x7c, 0xef, 0x27, 0x86, 0x5e, 0x72, 0x3a, 0x39, 0xbe, 0xd5,
0xd3, 0x0f, 0x06, 0x9b, 0xd8, 0xf2, 0xf1, 0x1c, 0xfe, 0xe2, 0xeb, 0x27, 0xff, 0x37, 0x00, 0x00, 0x0f, 0x47, 0x9b, 0xbe, 0x0c, 0x29, 0x88, 0x14, 0xa9, 0x4d, 0x3f, 0x18, 0x6c, 0x62, 0xcb, 0xc7,
0xff, 0xff, 0xb1, 0x6a, 0x89, 0xcb, 0x23, 0x56, 0x00, 0x00, 0x73, 0xf8, 0x6b, 0xb0, 0x9f, 0xfc, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x59, 0xe7, 0x9f, 0x71,
0x3f, 0x56, 0x00, 0x00,
} }

@ -1597,6 +1597,7 @@ message RoutingPolicy {
int64 fee_base_msat = 3 [json_name = "fee_base_msat"]; int64 fee_base_msat = 3 [json_name = "fee_base_msat"];
int64 fee_rate_milli_msat = 4 [json_name = "fee_rate_milli_msat"]; int64 fee_rate_milli_msat = 4 [json_name = "fee_rate_milli_msat"];
bool disabled = 5 [json_name = "disabled"]; bool disabled = 5 [json_name = "disabled"];
uint64 max_htlc = 6 [json_name = "max_htlc"];
} }
/** /**

@ -2815,6 +2815,10 @@
"disabled": { "disabled": {
"type": "boolean", "type": "boolean",
"format": "boolean" "format": "boolean"
},
"max_htlc": {
"type": "string",
"format": "uint64"
} }
} }
}, },

@ -6336,3 +6336,9 @@ func (lc *LightningChannel) RemoteCommitHeight() uint64 {
func (lc *LightningChannel) FwdMinHtlc() lnwire.MilliSatoshi { func (lc *LightningChannel) FwdMinHtlc() lnwire.MilliSatoshi {
return lc.localChanCfg.MinHTLC return lc.localChanCfg.MinHTLC
} }
// MaxPendingAmount returns the maximum HTLC value that can be pending at
// any time over this channel.
func (lc *LightningChannel) MaxPendingAmount() lnwire.MilliSatoshi {
return lc.localChanCfg.MaxPendingAmount
}

13
peer.go

@ -488,6 +488,7 @@ func (p *peer) loadActiveChannels(chans []*channeldb.OpenChannel) error {
if selfPolicy != nil { if selfPolicy != nil {
forwardingPolicy = &htlcswitch.ForwardingPolicy{ forwardingPolicy = &htlcswitch.ForwardingPolicy{
MinHTLC: selfPolicy.MinHTLC, MinHTLC: selfPolicy.MinHTLC,
MaxHTLC: selfPolicy.MaxHTLC,
BaseFee: selfPolicy.FeeBaseMSat, BaseFee: selfPolicy.FeeBaseMSat,
FeeRate: selfPolicy.FeeProportionalMillionths, FeeRate: selfPolicy.FeeProportionalMillionths,
TimeLockDelta: uint32(selfPolicy.TimeLockDelta), TimeLockDelta: uint32(selfPolicy.TimeLockDelta),
@ -1699,15 +1700,17 @@ out:
continue continue
} }
// We'll query the localChanCfg of the new channel to // We'll query the localChanCfg of the new channel to determine the
// determine the minimum HTLC value that can be // minimum HTLC value that can be forwarded. For the maximum HTLC
// forwarded. For fees we'll use the default values, as // value that can be forwarded and fees we'll use the default
// they currently are always set to the default values // values, as they currently are always set to the default values
// at initial channel creation. // at initial channel creation. Note that the maximum HTLC value
// defaults to the cap on the total value of outstanding HTLCs.
fwdMinHtlc := lnChan.FwdMinHtlc() fwdMinHtlc := lnChan.FwdMinHtlc()
defaultPolicy := p.server.cc.routingPolicy defaultPolicy := p.server.cc.routingPolicy
forwardingPolicy := &htlcswitch.ForwardingPolicy{ forwardingPolicy := &htlcswitch.ForwardingPolicy{
MinHTLC: fwdMinHtlc, MinHTLC: fwdMinHtlc,
MaxHTLC: lnChan.MaxPendingAmount(),
BaseFee: defaultPolicy.BaseFee, BaseFee: defaultPolicy.BaseFee,
FeeRate: defaultPolicy.FeeRate, FeeRate: defaultPolicy.FeeRate,
TimeLockDelta: defaultPolicy.TimeLockDelta, TimeLockDelta: defaultPolicy.TimeLockDelta,

@ -266,6 +266,9 @@ type ChannelEdgeUpdate struct {
// MinHTLC is the minimum HTLC amount that this channel will forward. // MinHTLC is the minimum HTLC amount that this channel will forward.
MinHTLC lnwire.MilliSatoshi MinHTLC lnwire.MilliSatoshi
// MaxHTLC is the maximum HTLC amount that this channel will forward.
MaxHTLC lnwire.MilliSatoshi
// BaseFee is the base fee that will charged for all HTLC's forwarded // BaseFee is the base fee that will charged for all HTLC's forwarded
// across the this channel direction. // across the this channel direction.
BaseFee lnwire.MilliSatoshi BaseFee lnwire.MilliSatoshi
@ -359,6 +362,7 @@ func addToTopologyChange(graph *channeldb.ChannelGraph, update *TopologyChange,
TimeLockDelta: m.TimeLockDelta, TimeLockDelta: m.TimeLockDelta,
Capacity: edgeInfo.Capacity, Capacity: edgeInfo.Capacity,
MinHTLC: m.MinHTLC, MinHTLC: m.MinHTLC,
MaxHTLC: m.MaxHTLC,
BaseFee: m.FeeBaseMSat, BaseFee: m.FeeBaseMSat,
FeeRate: m.FeeProportionalMillionths, FeeRate: m.FeeProportionalMillionths,
AdvertisingNode: aNode, AdvertisingNode: aNode,

@ -77,6 +77,7 @@ func randEdgePolicy(chanID *lnwire.ShortChannelID,
LastUpdate: time.Unix(int64(prand.Int31()), 0), LastUpdate: time.Unix(int64(prand.Int31()), 0),
TimeLockDelta: uint16(prand.Int63()), TimeLockDelta: uint16(prand.Int63()),
MinHTLC: lnwire.MilliSatoshi(prand.Int31()), MinHTLC: lnwire.MilliSatoshi(prand.Int31()),
MaxHTLC: lnwire.MilliSatoshi(prand.Int31()),
FeeBaseMSat: lnwire.MilliSatoshi(prand.Int31()), FeeBaseMSat: lnwire.MilliSatoshi(prand.Int31()),
FeeProportionalMillionths: lnwire.MilliSatoshi(prand.Int31()), FeeProportionalMillionths: lnwire.MilliSatoshi(prand.Int31()),
Node: node, Node: node,
@ -435,6 +436,11 @@ func TestEdgeUpdateNotification(t *testing.T) {
"expected %v, got %v", edgeAnn.MinHTLC, "expected %v, got %v", edgeAnn.MinHTLC,
edgeUpdate.MinHTLC) edgeUpdate.MinHTLC)
} }
if edgeUpdate.MaxHTLC != edgeAnn.MaxHTLC {
t.Fatalf("max HTLC of edge doesn't match: "+
"expected %v, got %v", edgeAnn.MaxHTLC,
edgeUpdate.MaxHTLC)
}
if edgeUpdate.BaseFee != edgeAnn.FeeBaseMSat { if edgeUpdate.BaseFee != edgeAnn.FeeBaseMSat {
t.Fatalf("base fee of edge doesn't match: "+ t.Fatalf("base fee of edge doesn't match: "+
"expected %v, got %v", edgeAnn.FeeBaseMSat, "expected %v, got %v", edgeAnn.FeeBaseMSat,

@ -3850,6 +3850,7 @@ func marshalDbEdge(edgeInfo *channeldb.ChannelEdgeInfo,
edge.Node1Policy = &lnrpc.RoutingPolicy{ edge.Node1Policy = &lnrpc.RoutingPolicy{
TimeLockDelta: uint32(c1.TimeLockDelta), TimeLockDelta: uint32(c1.TimeLockDelta),
MinHtlc: int64(c1.MinHTLC), MinHtlc: int64(c1.MinHTLC),
MaxHtlc: uint64(c1.MaxHTLC),
FeeBaseMsat: int64(c1.FeeBaseMSat), FeeBaseMsat: int64(c1.FeeBaseMSat),
FeeRateMilliMsat: int64(c1.FeeProportionalMillionths), FeeRateMilliMsat: int64(c1.FeeProportionalMillionths),
Disabled: c1.ChannelFlags&lnwire.ChanUpdateDisabled != 0, Disabled: c1.ChannelFlags&lnwire.ChanUpdateDisabled != 0,
@ -3860,6 +3861,7 @@ func marshalDbEdge(edgeInfo *channeldb.ChannelEdgeInfo,
edge.Node2Policy = &lnrpc.RoutingPolicy{ edge.Node2Policy = &lnrpc.RoutingPolicy{
TimeLockDelta: uint32(c2.TimeLockDelta), TimeLockDelta: uint32(c2.TimeLockDelta),
MinHtlc: int64(c2.MinHTLC), MinHtlc: int64(c2.MinHTLC),
MaxHtlc: uint64(c2.MaxHTLC),
FeeBaseMsat: int64(c2.FeeBaseMSat), FeeBaseMsat: int64(c2.FeeBaseMSat),
FeeRateMilliMsat: int64(c2.FeeProportionalMillionths), FeeRateMilliMsat: int64(c2.FeeProportionalMillionths),
Disabled: c2.ChannelFlags&lnwire.ChanUpdateDisabled != 0, Disabled: c2.ChannelFlags&lnwire.ChanUpdateDisabled != 0,
@ -4408,6 +4410,7 @@ func marshallTopologyChange(topChange *routing.TopologyChange) *lnrpc.GraphTopol
RoutingPolicy: &lnrpc.RoutingPolicy{ RoutingPolicy: &lnrpc.RoutingPolicy{
TimeLockDelta: uint32(channelUpdate.TimeLockDelta), TimeLockDelta: uint32(channelUpdate.TimeLockDelta),
MinHtlc: int64(channelUpdate.MinHTLC), MinHtlc: int64(channelUpdate.MinHTLC),
MaxHtlc: uint64(channelUpdate.MaxHTLC),
FeeBaseMsat: int64(channelUpdate.BaseFee), FeeBaseMsat: int64(channelUpdate.BaseFee),
FeeRateMilliMsat: int64(channelUpdate.FeeRate), FeeRateMilliMsat: int64(channelUpdate.FeeRate),
Disabled: channelUpdate.Disabled, Disabled: channelUpdate.Disabled,