Merge pull request #2640 from joostjager/cltv-limit

routing: add cltv limit
This commit is contained in:
Johan T. Halseth 2019-03-27 10:05:02 +01:00 committed by GitHub
commit 4d8100cc9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 841 additions and 591 deletions

@ -1954,6 +1954,12 @@ func closedChannels(ctx *cli.Context) error {
return nil return nil
} }
var cltvLimitFlag = cli.UintFlag{
Name: "cltv_limit",
Usage: "the maximum time lock that may be used for " +
"this payment",
}
var sendPaymentCommand = cli.Command{ var sendPaymentCommand = cli.Command{
Name: "sendpayment", Name: "sendpayment",
Category: "Payments", Category: "Payments",
@ -2000,6 +2006,7 @@ var sendPaymentCommand = cli.Command{
Usage: "percentage of the payment's amount used as the" + Usage: "percentage of the payment's amount used as the" +
"maximum fee allowed when sending the payment", "maximum fee allowed when sending the payment",
}, },
cltvLimitFlag,
cli.StringFlag{ cli.StringFlag{
Name: "payment_hash, r", Name: "payment_hash, r",
Usage: "the hash to use within the payment's HTLC", Usage: "the hash to use within the payment's HTLC",
@ -2119,6 +2126,7 @@ func sendPayment(ctx *cli.Context) error {
Amt: ctx.Int64("amt"), Amt: ctx.Int64("amt"),
FeeLimit: feeLimit, FeeLimit: feeLimit,
OutgoingChanId: ctx.Uint64("outgoing_chan_id"), OutgoingChanId: ctx.Uint64("outgoing_chan_id"),
CltvLimit: uint32(ctx.Int(cltvLimitFlag.Name)),
} }
return sendPaymentRequest(client, req) return sendPaymentRequest(client, req)
@ -2266,6 +2274,7 @@ var payInvoiceCommand = cli.Command{
Usage: "percentage of the payment's amount used as the" + Usage: "percentage of the payment's amount used as the" +
"maximum fee allowed when sending the payment", "maximum fee allowed when sending the payment",
}, },
cltvLimitFlag,
cli.Uint64Flag{ cli.Uint64Flag{
Name: "outgoing_chan_id", Name: "outgoing_chan_id",
Usage: "short channel id of the outgoing channel to " + Usage: "short channel id of the outgoing channel to " +
@ -2312,7 +2321,9 @@ func payInvoice(ctx *cli.Context) error {
Amt: ctx.Int64("amt"), Amt: ctx.Int64("amt"),
FeeLimit: feeLimit, FeeLimit: feeLimit,
OutgoingChanId: ctx.Uint64("outgoing_chan_id"), OutgoingChanId: ctx.Uint64("outgoing_chan_id"),
CltvLimit: uint32(ctx.Int(cltvLimitFlag.Name)),
} }
return sendPaymentRequest(client, req) return sendPaymentRequest(client, req)
} }

@ -55,7 +55,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_373041af9a5aff0b, []int{0} return fileDescriptor_rpc_66c3f3a59b568a14, []int{0}
} }
type ChannelCloseSummary_ClosureType int32 type ChannelCloseSummary_ClosureType int32
@ -90,7 +90,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_373041af9a5aff0b, []int{41, 0} return fileDescriptor_rpc_66c3f3a59b568a14, []int{41, 0}
} }
type ChannelEventUpdate_UpdateType int32 type ChannelEventUpdate_UpdateType int32
@ -119,7 +119,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_373041af9a5aff0b, []int{62, 0} return fileDescriptor_rpc_66c3f3a59b568a14, []int{62, 0}
} }
type Invoice_InvoiceState int32 type Invoice_InvoiceState int32
@ -148,7 +148,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_373041af9a5aff0b, []int{92, 0} return fileDescriptor_rpc_66c3f3a59b568a14, []int{92, 0}
} }
type GenSeedRequest struct { type GenSeedRequest struct {
@ -169,7 +169,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_373041af9a5aff0b, []int{0} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -224,7 +224,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_373041af9a5aff0b, []int{1} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -289,7 +289,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_373041af9a5aff0b, []int{2} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -347,7 +347,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_373041af9a5aff0b, []int{3} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -389,7 +389,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_373041af9a5aff0b, []int{4} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -433,7 +433,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_373041af9a5aff0b, []int{5} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -471,7 +471,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_373041af9a5aff0b, []int{6} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -515,7 +515,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_373041af9a5aff0b, []int{7} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -557,7 +557,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_373041af9a5aff0b, []int{8} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -645,7 +645,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_373041af9a5aff0b, []int{9} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -731,7 +731,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_373041af9a5aff0b, []int{10} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -763,7 +763,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_373041af9a5aff0b, []int{11} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -804,7 +804,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_373041af9a5aff0b, []int{12} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -954,7 +954,11 @@ type SendRequest struct {
// * // *
// The channel id of the channel that must be taken to the first hop. If zero, // The channel id of the channel that must be taken to the first hop. If zero,
// any channel may be used. // any channel may be used.
OutgoingChanId uint64 `protobuf:"varint,9,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"` OutgoingChanId uint64 `protobuf:"varint,9,opt,name=outgoing_chan_id,json=outgoingChanId,proto3" json:"outgoing_chan_id,omitempty"`
// *
// An optional maximum total time lock for the route. If zero, there is no
// maximum enforced.
CltvLimit uint32 `protobuf:"varint,10,opt,name=cltv_limit,json=cltvLimit,proto3" json:"cltv_limit,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:"-"`
@ -964,7 +968,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_373041af9a5aff0b, []int{13} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -1047,6 +1051,13 @@ func (m *SendRequest) GetOutgoingChanId() uint64 {
return 0 return 0
} }
func (m *SendRequest) GetCltvLimit() uint32 {
if m != nil {
return m.CltvLimit
}
return 0
}
type SendResponse struct { type SendResponse struct {
PaymentError string `protobuf:"bytes,1,opt,name=payment_error,proto3" json:"payment_error,omitempty"` PaymentError string `protobuf:"bytes,1,opt,name=payment_error,proto3" json:"payment_error,omitempty"`
PaymentPreimage []byte `protobuf:"bytes,2,opt,name=payment_preimage,proto3" json:"payment_preimage,omitempty"` PaymentPreimage []byte `protobuf:"bytes,2,opt,name=payment_preimage,proto3" json:"payment_preimage,omitempty"`
@ -1061,7 +1072,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_373041af9a5aff0b, []int{14} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -1131,7 +1142,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_373041af9a5aff0b, []int{15} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -1196,7 +1207,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_373041af9a5aff0b, []int{16} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -1342,7 +1353,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_373041af9a5aff0b, []int{17} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -1397,7 +1408,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_373041af9a5aff0b, []int{18} return fileDescriptor_rpc_66c3f3a59b568a14, []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)
@ -1445,7 +1456,7 @@ func (m *EstimateFeeRequest) Reset() { *m = EstimateFeeRequest{} }
func (m *EstimateFeeRequest) String() string { return proto.CompactTextString(m) } func (m *EstimateFeeRequest) String() string { return proto.CompactTextString(m) }
func (*EstimateFeeRequest) ProtoMessage() {} func (*EstimateFeeRequest) ProtoMessage() {}
func (*EstimateFeeRequest) Descriptor() ([]byte, []int) { func (*EstimateFeeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_373041af9a5aff0b, []int{19} return fileDescriptor_rpc_66c3f3a59b568a14, []int{19}
} }
func (m *EstimateFeeRequest) XXX_Unmarshal(b []byte) error { func (m *EstimateFeeRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EstimateFeeRequest.Unmarshal(m, b) return xxx_messageInfo_EstimateFeeRequest.Unmarshal(m, b)
@ -1493,7 +1504,7 @@ func (m *EstimateFeeResponse) Reset() { *m = EstimateFeeResponse{} }
func (m *EstimateFeeResponse) String() string { return proto.CompactTextString(m) } func (m *EstimateFeeResponse) String() string { return proto.CompactTextString(m) }
func (*EstimateFeeResponse) ProtoMessage() {} func (*EstimateFeeResponse) ProtoMessage() {}
func (*EstimateFeeResponse) Descriptor() ([]byte, []int) { func (*EstimateFeeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_373041af9a5aff0b, []int{20} return fileDescriptor_rpc_66c3f3a59b568a14, []int{20}
} }
func (m *EstimateFeeResponse) XXX_Unmarshal(b []byte) error { func (m *EstimateFeeResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EstimateFeeResponse.Unmarshal(m, b) return xxx_messageInfo_EstimateFeeResponse.Unmarshal(m, b)
@ -1543,7 +1554,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_373041af9a5aff0b, []int{21} return fileDescriptor_rpc_66c3f3a59b568a14, []int{21}
} }
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)
@ -1596,7 +1607,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_373041af9a5aff0b, []int{22} return fileDescriptor_rpc_66c3f3a59b568a14, []int{22}
} }
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)
@ -1646,7 +1657,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_373041af9a5aff0b, []int{23} return fileDescriptor_rpc_66c3f3a59b568a14, []int{23}
} }
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)
@ -1713,7 +1724,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_373041af9a5aff0b, []int{24} return fileDescriptor_rpc_66c3f3a59b568a14, []int{24}
} }
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)
@ -1754,7 +1765,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_373041af9a5aff0b, []int{25} return fileDescriptor_rpc_66c3f3a59b568a14, []int{25}
} }
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)
@ -1800,7 +1811,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_373041af9a5aff0b, []int{26} return fileDescriptor_rpc_66c3f3a59b568a14, []int{26}
} }
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)
@ -1839,7 +1850,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_373041af9a5aff0b, []int{27} return fileDescriptor_rpc_66c3f3a59b568a14, []int{27}
} }
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)
@ -1878,7 +1889,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_373041af9a5aff0b, []int{28} return fileDescriptor_rpc_66c3f3a59b568a14, []int{28}
} }
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)
@ -1917,7 +1928,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_373041af9a5aff0b, []int{29} return fileDescriptor_rpc_66c3f3a59b568a14, []int{29}
} }
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)
@ -1956,7 +1967,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_373041af9a5aff0b, []int{30} return fileDescriptor_rpc_66c3f3a59b568a14, []int{30}
} }
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)
@ -1997,7 +2008,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_373041af9a5aff0b, []int{31} return fileDescriptor_rpc_66c3f3a59b568a14, []int{31}
} }
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)
@ -2045,7 +2056,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_373041af9a5aff0b, []int{32} return fileDescriptor_rpc_66c3f3a59b568a14, []int{32}
} }
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)
@ -2094,7 +2105,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_373041af9a5aff0b, []int{33} return fileDescriptor_rpc_66c3f3a59b568a14, []int{33}
} }
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)
@ -2138,7 +2149,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_373041af9a5aff0b, []int{34} return fileDescriptor_rpc_66c3f3a59b568a14, []int{34}
} }
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)
@ -2170,7 +2181,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_373041af9a5aff0b, []int{35} return fileDescriptor_rpc_66c3f3a59b568a14, []int{35}
} }
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)
@ -2207,7 +2218,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_373041af9a5aff0b, []int{36} return fileDescriptor_rpc_66c3f3a59b568a14, []int{36}
} }
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)
@ -2241,7 +2252,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_373041af9a5aff0b, []int{37} return fileDescriptor_rpc_66c3f3a59b568a14, []int{37}
} }
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)
@ -2355,7 +2366,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_373041af9a5aff0b, []int{38} return fileDescriptor_rpc_66c3f3a59b568a14, []int{38}
} }
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)
@ -2515,7 +2526,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_373041af9a5aff0b, []int{39} return fileDescriptor_rpc_66c3f3a59b568a14, []int{39}
} }
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)
@ -2575,7 +2586,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_373041af9a5aff0b, []int{40} return fileDescriptor_rpc_66c3f3a59b568a14, []int{40}
} }
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)
@ -2632,7 +2643,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_373041af9a5aff0b, []int{41} return fileDescriptor_rpc_66c3f3a59b568a14, []int{41}
} }
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)
@ -2738,7 +2749,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_373041af9a5aff0b, []int{42} return fileDescriptor_rpc_66c3f3a59b568a14, []int{42}
} }
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)
@ -2811,7 +2822,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_373041af9a5aff0b, []int{43} return fileDescriptor_rpc_66c3f3a59b568a14, []int{43}
} }
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)
@ -2864,7 +2875,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_373041af9a5aff0b, []int{44} return fileDescriptor_rpc_66c3f3a59b568a14, []int{44}
} }
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)
@ -2950,7 +2961,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_373041af9a5aff0b, []int{45} return fileDescriptor_rpc_66c3f3a59b568a14, []int{45}
} }
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)
@ -2982,7 +2993,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_373041af9a5aff0b, []int{46} return fileDescriptor_rpc_66c3f3a59b568a14, []int{46}
} }
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)
@ -3019,7 +3030,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_373041af9a5aff0b, []int{47} return fileDescriptor_rpc_66c3f3a59b568a14, []int{47}
} }
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)
@ -3079,7 +3090,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_373041af9a5aff0b, []int{48} return fileDescriptor_rpc_66c3f3a59b568a14, []int{48}
} }
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)
@ -3212,7 +3223,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_373041af9a5aff0b, []int{49} return fileDescriptor_rpc_66c3f3a59b568a14, []int{49}
} }
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)
@ -3259,7 +3270,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_373041af9a5aff0b, []int{50} return fileDescriptor_rpc_66c3f3a59b568a14, []int{50}
} }
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)
@ -3311,7 +3322,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_373041af9a5aff0b, []int{51} return fileDescriptor_rpc_66c3f3a59b568a14, []int{51}
} }
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)
@ -3350,7 +3361,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_373041af9a5aff0b, []int{52} return fileDescriptor_rpc_66c3f3a59b568a14, []int{52}
} }
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)
@ -3405,7 +3416,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_373041af9a5aff0b, []int{53} return fileDescriptor_rpc_66c3f3a59b568a14, []int{53}
} }
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)
@ -3467,7 +3478,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_373041af9a5aff0b, []int{54} return fileDescriptor_rpc_66c3f3a59b568a14, []int{54}
} }
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)
@ -3610,7 +3621,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_373041af9a5aff0b, []int{55} return fileDescriptor_rpc_66c3f3a59b568a14, []int{55}
} }
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)
@ -3676,7 +3687,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_373041af9a5aff0b, []int{56} return fileDescriptor_rpc_66c3f3a59b568a14, []int{56}
} }
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)
@ -3787,7 +3798,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_373041af9a5aff0b, []int{57} return fileDescriptor_rpc_66c3f3a59b568a14, []int{57}
} }
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)
@ -3943,7 +3954,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_373041af9a5aff0b, []int{58} return fileDescriptor_rpc_66c3f3a59b568a14, []int{58}
} }
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)
@ -4015,7 +4026,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_373041af9a5aff0b, []int{59} return fileDescriptor_rpc_66c3f3a59b568a14, []int{59}
} }
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)
@ -4055,7 +4066,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_373041af9a5aff0b, []int{60} return fileDescriptor_rpc_66c3f3a59b568a14, []int{60}
} }
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)
@ -4127,7 +4138,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_373041af9a5aff0b, []int{60, 0} return fileDescriptor_rpc_66c3f3a59b568a14, []int{60, 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)
@ -4214,7 +4225,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_373041af9a5aff0b, []int{60, 1} return fileDescriptor_rpc_66c3f3a59b568a14, []int{60, 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)
@ -4287,7 +4298,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_373041af9a5aff0b, []int{60, 2} return fileDescriptor_rpc_66c3f3a59b568a14, []int{60, 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)
@ -4335,7 +4346,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_373041af9a5aff0b, []int{60, 3} return fileDescriptor_rpc_66c3f3a59b568a14, []int{60, 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)
@ -4399,7 +4410,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_373041af9a5aff0b, []int{60, 4} return fileDescriptor_rpc_66c3f3a59b568a14, []int{60, 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)
@ -4478,7 +4489,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_373041af9a5aff0b, []int{61} return fileDescriptor_rpc_66c3f3a59b568a14, []int{61}
} }
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)
@ -4515,7 +4526,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_373041af9a5aff0b, []int{62} return fileDescriptor_rpc_66c3f3a59b568a14, []int{62}
} }
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)
@ -4727,7 +4738,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_373041af9a5aff0b, []int{63} return fileDescriptor_rpc_66c3f3a59b568a14, []int{63}
} }
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)
@ -4763,7 +4774,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_373041af9a5aff0b, []int{64} return fileDescriptor_rpc_66c3f3a59b568a14, []int{64}
} }
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)
@ -4814,7 +4825,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_373041af9a5aff0b, []int{65} return fileDescriptor_rpc_66c3f3a59b568a14, []int{65}
} }
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)
@ -4848,7 +4859,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_373041af9a5aff0b, []int{66} return fileDescriptor_rpc_66c3f3a59b568a14, []int{66}
} }
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)
@ -4918,7 +4929,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_373041af9a5aff0b, []int{67} return fileDescriptor_rpc_66c3f3a59b568a14, []int{67}
} }
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)
@ -5013,7 +5024,7 @@ func (m *EdgeLocator) Reset() { *m = EdgeLocator{} }
func (m *EdgeLocator) String() string { return proto.CompactTextString(m) } func (m *EdgeLocator) String() string { return proto.CompactTextString(m) }
func (*EdgeLocator) ProtoMessage() {} func (*EdgeLocator) ProtoMessage() {}
func (*EdgeLocator) Descriptor() ([]byte, []int) { func (*EdgeLocator) Descriptor() ([]byte, []int) {
return fileDescriptor_rpc_373041af9a5aff0b, []int{68} return fileDescriptor_rpc_66c3f3a59b568a14, []int{68}
} }
func (m *EdgeLocator) XXX_Unmarshal(b []byte) error { func (m *EdgeLocator) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_EdgeLocator.Unmarshal(m, b) return xxx_messageInfo_EdgeLocator.Unmarshal(m, b)
@ -5058,7 +5069,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_373041af9a5aff0b, []int{69} return fileDescriptor_rpc_66c3f3a59b568a14, []int{69}
} }
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)
@ -5110,7 +5121,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_373041af9a5aff0b, []int{70} return fileDescriptor_rpc_66c3f3a59b568a14, []int{70}
} }
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)
@ -5231,7 +5242,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_373041af9a5aff0b, []int{71} return fileDescriptor_rpc_66c3f3a59b568a14, []int{71}
} }
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)
@ -5307,7 +5318,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_373041af9a5aff0b, []int{72} return fileDescriptor_rpc_66c3f3a59b568a14, []int{72}
} }
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)
@ -5352,7 +5363,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_373041af9a5aff0b, []int{73} return fileDescriptor_rpc_66c3f3a59b568a14, []int{73}
} }
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)
@ -5413,7 +5424,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_373041af9a5aff0b, []int{74} return fileDescriptor_rpc_66c3f3a59b568a14, []int{74}
} }
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)
@ -5480,7 +5491,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_373041af9a5aff0b, []int{75} return fileDescriptor_rpc_66c3f3a59b568a14, []int{75}
} }
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)
@ -5530,7 +5541,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_373041af9a5aff0b, []int{76} return fileDescriptor_rpc_66c3f3a59b568a14, []int{76}
} }
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)
@ -5620,7 +5631,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_373041af9a5aff0b, []int{77} return fileDescriptor_rpc_66c3f3a59b568a14, []int{77}
} }
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)
@ -5711,7 +5722,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_373041af9a5aff0b, []int{78} return fileDescriptor_rpc_66c3f3a59b568a14, []int{78}
} }
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)
@ -5753,7 +5764,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_373041af9a5aff0b, []int{79} return fileDescriptor_rpc_66c3f3a59b568a14, []int{79}
} }
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)
@ -5802,7 +5813,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_373041af9a5aff0b, []int{80} return fileDescriptor_rpc_66c3f3a59b568a14, []int{80}
} }
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)
@ -5839,7 +5850,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_373041af9a5aff0b, []int{81} return fileDescriptor_rpc_66c3f3a59b568a14, []int{81}
} }
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)
@ -5878,7 +5889,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_373041af9a5aff0b, []int{82} return fileDescriptor_rpc_66c3f3a59b568a14, []int{82}
} }
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)
@ -5971,7 +5982,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_373041af9a5aff0b, []int{83} return fileDescriptor_rpc_66c3f3a59b568a14, []int{83}
} }
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)
@ -6001,7 +6012,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_373041af9a5aff0b, []int{84} return fileDescriptor_rpc_66c3f3a59b568a14, []int{84}
} }
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)
@ -6031,7 +6042,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_373041af9a5aff0b, []int{85} return fileDescriptor_rpc_66c3f3a59b568a14, []int{85}
} }
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)
@ -6064,7 +6075,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_373041af9a5aff0b, []int{86} return fileDescriptor_rpc_66c3f3a59b568a14, []int{86}
} }
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)
@ -6119,7 +6130,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_373041af9a5aff0b, []int{87} return fileDescriptor_rpc_66c3f3a59b568a14, []int{87}
} }
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)
@ -6187,7 +6198,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_373041af9a5aff0b, []int{88} return fileDescriptor_rpc_66c3f3a59b568a14, []int{88}
} }
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)
@ -6267,7 +6278,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_373041af9a5aff0b, []int{89} return fileDescriptor_rpc_66c3f3a59b568a14, []int{89}
} }
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)
@ -6337,7 +6348,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_373041af9a5aff0b, []int{90} return fileDescriptor_rpc_66c3f3a59b568a14, []int{90}
} }
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)
@ -6406,7 +6417,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_373041af9a5aff0b, []int{91} return fileDescriptor_rpc_66c3f3a59b568a14, []int{91}
} }
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)
@ -6521,7 +6532,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_373041af9a5aff0b, []int{92} return fileDescriptor_rpc_66c3f3a59b568a14, []int{92}
} }
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)
@ -6713,7 +6724,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_373041af9a5aff0b, []int{93} return fileDescriptor_rpc_66c3f3a59b568a14, []int{93}
} }
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)
@ -6770,7 +6781,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_373041af9a5aff0b, []int{94} return fileDescriptor_rpc_66c3f3a59b568a14, []int{94}
} }
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)
@ -6826,7 +6837,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_373041af9a5aff0b, []int{95} return fileDescriptor_rpc_66c3f3a59b568a14, []int{95}
} }
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)
@ -6896,7 +6907,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_373041af9a5aff0b, []int{96} return fileDescriptor_rpc_66c3f3a59b568a14, []int{96}
} }
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)
@ -6959,7 +6970,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_373041af9a5aff0b, []int{97} return fileDescriptor_rpc_66c3f3a59b568a14, []int{97}
} }
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)
@ -7019,7 +7030,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_373041af9a5aff0b, []int{98} return fileDescriptor_rpc_66c3f3a59b568a14, []int{98}
} }
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)
@ -7106,7 +7117,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_373041af9a5aff0b, []int{99} return fileDescriptor_rpc_66c3f3a59b568a14, []int{99}
} }
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)
@ -7138,7 +7149,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_373041af9a5aff0b, []int{100} return fileDescriptor_rpc_66c3f3a59b568a14, []int{100}
} }
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)
@ -7175,7 +7186,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_373041af9a5aff0b, []int{101} return fileDescriptor_rpc_66c3f3a59b568a14, []int{101}
} }
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)
@ -7205,7 +7216,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_373041af9a5aff0b, []int{102} return fileDescriptor_rpc_66c3f3a59b568a14, []int{102}
} }
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)
@ -7236,7 +7247,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_373041af9a5aff0b, []int{103} return fileDescriptor_rpc_66c3f3a59b568a14, []int{103}
} }
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)
@ -7273,7 +7284,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_373041af9a5aff0b, []int{104} return fileDescriptor_rpc_66c3f3a59b568a14, []int{104}
} }
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)
@ -7305,7 +7316,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_373041af9a5aff0b, []int{105} return fileDescriptor_rpc_66c3f3a59b568a14, []int{105}
} }
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)
@ -7350,7 +7361,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_373041af9a5aff0b, []int{106} return fileDescriptor_rpc_66c3f3a59b568a14, []int{106}
} }
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)
@ -7389,7 +7400,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_373041af9a5aff0b, []int{107} return fileDescriptor_rpc_66c3f3a59b568a14, []int{107}
} }
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)
@ -7436,7 +7447,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_373041af9a5aff0b, []int{108} return fileDescriptor_rpc_66c3f3a59b568a14, []int{108}
} }
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)
@ -7536,7 +7547,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_373041af9a5aff0b, []int{109} return fileDescriptor_rpc_66c3f3a59b568a14, []int{109}
} }
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)
@ -7574,7 +7585,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_373041af9a5aff0b, []int{110} return fileDescriptor_rpc_66c3f3a59b568a14, []int{110}
} }
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)
@ -7640,7 +7651,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_373041af9a5aff0b, []int{111} return fileDescriptor_rpc_66c3f3a59b568a14, []int{111}
} }
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)
@ -7708,7 +7719,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_373041af9a5aff0b, []int{112} return fileDescriptor_rpc_66c3f3a59b568a14, []int{112}
} }
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)
@ -7869,7 +7880,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_373041af9a5aff0b, []int{113} return fileDescriptor_rpc_66c3f3a59b568a14, []int{113}
} }
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)
@ -7907,7 +7918,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_373041af9a5aff0b, []int{114} return fileDescriptor_rpc_66c3f3a59b568a14, []int{114}
} }
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)
@ -7979,7 +7990,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_373041af9a5aff0b, []int{115} return fileDescriptor_rpc_66c3f3a59b568a14, []int{115}
} }
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)
@ -8062,7 +8073,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_373041af9a5aff0b, []int{116} return fileDescriptor_rpc_66c3f3a59b568a14, []int{116}
} }
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)
@ -10605,461 +10616,462 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
Metadata: "rpc.proto", Metadata: "rpc.proto",
} }
func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_373041af9a5aff0b) } func init() { proto.RegisterFile("rpc.proto", fileDescriptor_rpc_66c3f3a59b568a14) }
var fileDescriptor_rpc_373041af9a5aff0b = []byte{ var fileDescriptor_rpc_66c3f3a59b568a14 = []byte{
// 7234 bytes of a gzipped FileDescriptorProto // 7254 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0x5d, 0x6c, 0x24, 0xd9, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0x5d, 0x6c, 0x1c, 0xc9,
0x59, 0xf6, 0x54, 0xff, 0xd8, 0xdd, 0x6f, 0xb7, 0xdb, 0xed, 0xe3, 0xbf, 0x9e, 0xde, 0xd9, 0xd9, 0x7d, 0xa7, 0x7a, 0x3e, 0xc8, 0x99, 0xff, 0x0c, 0x87, 0xc3, 0xe2, 0x87, 0x46, 0xb3, 0x5a, 0xad,
0xd9, 0xca, 0x7c, 0x3b, 0x8e, 0x77, 0xbf, 0xf1, 0xec, 0x24, 0xd9, 0x6c, 0x76, 0xbe, 0x7c, 0xdf, 0xb6, 0xac, 0x5b, 0xd1, 0xdc, 0x3d, 0x51, 0x2b, 0xdb, 0xeb, 0xf5, 0xee, 0xf9, 0xee, 0x28, 0x92,
0xe7, 0xb1, 0x3d, 0xe3, 0x49, 0xbc, 0x1e, 0xa7, 0x3c, 0x93, 0x21, 0x9b, 0xa0, 0x4e, 0xb9, 0xfb, 0x12, 0x65, 0x73, 0x29, 0xba, 0x29, 0x59, 0xe7, 0xb5, 0x0f, 0xe3, 0xe6, 0x4c, 0x71, 0xd8, 0xab,
0xb8, 0x5d, 0x3b, 0xd5, 0x55, 0x9d, 0xaa, 0x6a, 0x7b, 0x9c, 0x65, 0x24, 0x04, 0x08, 0x24, 0x04, 0x99, 0xee, 0x71, 0x77, 0x0f, 0x29, 0x7a, 0x4f, 0xc0, 0xe1, 0xee, 0x70, 0x01, 0x82, 0x04, 0x41,
0x42, 0x80, 0x90, 0x08, 0x0a, 0x42, 0x0a, 0x48, 0x10, 0xee, 0xb8, 0x08, 0x42, 0xe2, 0xe7, 0x0a, 0x12, 0x04, 0x88, 0x03, 0x07, 0x01, 0x9c, 0x00, 0x89, 0xf3, 0x96, 0x07, 0x07, 0x01, 0xf2, 0xf1,
0x09, 0x09, 0x09, 0x21, 0xc8, 0x25, 0x12, 0x12, 0x82, 0x1b, 0xe0, 0x02, 0x09, 0x89, 0x4b, 0x24, 0x14, 0x20, 0x40, 0x80, 0x20, 0x08, 0xfc, 0x18, 0x20, 0x40, 0x90, 0xbc, 0x24, 0x79, 0x08, 0x12,
0x74, 0xde, 0xf3, 0x53, 0xe7, 0x54, 0x55, 0x8f, 0x67, 0x93, 0xc0, 0x95, 0x7d, 0x9e, 0xf3, 0xd6, 0x20, 0x8f, 0x01, 0x82, 0xfa, 0xd7, 0x47, 0x57, 0x75, 0x37, 0x45, 0xad, 0xed, 0xe4, 0x89, 0xac,
0xf9, 0x7d, 0xff, 0xce, 0x7b, 0xde, 0xd3, 0x50, 0x8f, 0xc6, 0xfd, 0x9b, 0xe3, 0x28, 0x4c, 0x42, 0x5f, 0xfd, 0xbb, 0x3e, 0xff, 0x5f, 0xf5, 0xaf, 0x7f, 0x0d, 0xd4, 0xa3, 0x49, 0xff, 0xd6, 0x24,
0x52, 0xf5, 0x83, 0x68, 0xdc, 0xef, 0x5e, 0x19, 0x86, 0xe1, 0xd0, 0xa7, 0x1b, 0xee, 0xd8, 0xdb, 0x0a, 0x93, 0x90, 0x54, 0x47, 0x41, 0x34, 0xe9, 0x77, 0xaf, 0x0e, 0xc3, 0x70, 0x38, 0x62, 0xeb,
0x70, 0x83, 0x20, 0x4c, 0xdc, 0xc4, 0x0b, 0x83, 0x98, 0x13, 0xd9, 0x5f, 0x87, 0xd6, 0x7d, 0x1a, 0xde, 0xc4, 0x5f, 0xf7, 0x82, 0x20, 0x4c, 0xbc, 0xc4, 0x0f, 0x83, 0x58, 0x10, 0xd1, 0x6f, 0x42,
0x1c, 0x52, 0x3a, 0x70, 0xe8, 0x37, 0x26, 0x34, 0x4e, 0xc8, 0x9b, 0xb0, 0xe0, 0xd2, 0x6f, 0x52, 0xeb, 0x3e, 0x0b, 0x0e, 0x18, 0x1b, 0xb8, 0xec, 0x5b, 0x53, 0x16, 0x27, 0xe4, 0x4d, 0x58, 0xf0,
0x3a, 0xe8, 0x8d, 0xdd, 0x38, 0x1e, 0x9f, 0x44, 0x6e, 0x4c, 0x3b, 0xd6, 0x35, 0x6b, 0xad, 0xe9, 0xd8, 0xb7, 0x19, 0x1b, 0xf4, 0x26, 0x5e, 0x1c, 0x4f, 0x8e, 0x23, 0x2f, 0x66, 0x1d, 0xe7, 0xba,
0xb4, 0x79, 0xc5, 0x81, 0xc2, 0xc9, 0xeb, 0xd0, 0x8c, 0x19, 0x29, 0x0d, 0x92, 0x28, 0x1c, 0x9f, 0xb3, 0xda, 0x74, 0xdb, 0xa2, 0x62, 0x5f, 0xe3, 0xe4, 0x75, 0x68, 0xc6, 0x9c, 0x94, 0x05, 0x49,
0x77, 0x4a, 0x48, 0xd7, 0x60, 0xd8, 0x0e, 0x87, 0x6c, 0x1f, 0xe6, 0x55, 0x0f, 0xf1, 0x38, 0x0c, 0x14, 0x4e, 0xce, 0x3a, 0x25, 0xa4, 0x6b, 0x70, 0x6c, 0x5b, 0x40, 0x74, 0x04, 0xf3, 0xba, 0x87,
0x62, 0x4a, 0x6e, 0xc1, 0x52, 0xdf, 0x1b, 0x9f, 0xd0, 0xa8, 0x87, 0x1f, 0x8f, 0x02, 0x3a, 0x0a, 0x78, 0x12, 0x06, 0x31, 0x23, 0xb7, 0x61, 0xa9, 0xef, 0x4f, 0x8e, 0x59, 0xd4, 0xc3, 0x8f, 0xc7,
0x03, 0xaf, 0xdf, 0xb1, 0xae, 0x95, 0xd7, 0xea, 0x0e, 0xe1, 0x75, 0xec, 0x8b, 0xf7, 0x45, 0x0d, 0x01, 0x1b, 0x87, 0x81, 0xdf, 0xef, 0x38, 0xd7, 0xcb, 0xab, 0x75, 0x97, 0x88, 0x3a, 0xfe, 0xc5,
0xb9, 0x01, 0xf3, 0x34, 0xe0, 0x38, 0x1d, 0xe0, 0x57, 0xa2, 0xab, 0x56, 0x0a, 0xb3, 0x0f, 0xec, 0x07, 0xb2, 0x86, 0xdc, 0x84, 0x79, 0x16, 0x08, 0x9c, 0x0d, 0xf0, 0x2b, 0xd9, 0x55, 0x2b, 0x85,
0x3f, 0xb7, 0x60, 0xe1, 0x41, 0xe0, 0x25, 0x4f, 0x5c, 0xdf, 0xa7, 0x89, 0x9c, 0xd3, 0x0d, 0x98, 0xf9, 0x07, 0xf4, 0x8f, 0x1d, 0x58, 0x78, 0x10, 0xf8, 0xc9, 0x13, 0x6f, 0x34, 0x62, 0x89, 0x9a,
0x3f, 0x43, 0x00, 0xe7, 0x74, 0x16, 0x46, 0x03, 0x31, 0xa3, 0x16, 0x87, 0x0f, 0x04, 0x3a, 0x75, 0xd3, 0x4d, 0x98, 0x3f, 0x45, 0x00, 0xe7, 0x74, 0x1a, 0x46, 0x03, 0x39, 0xa3, 0x96, 0x80, 0xf7,
0x64, 0xa5, 0xa9, 0x23, 0x2b, 0x5c, 0xae, 0xf2, 0x94, 0xe5, 0xba, 0x01, 0xf3, 0x11, 0xed, 0x87, 0x25, 0x7a, 0xee, 0xc8, 0x4a, 0xe7, 0x8e, 0xac, 0x70, 0xb9, 0xca, 0xe7, 0x2c, 0xd7, 0x4d, 0x98,
0xa7, 0x34, 0x3a, 0xef, 0x9d, 0x79, 0xc1, 0x20, 0x3c, 0xeb, 0x54, 0xae, 0x59, 0x6b, 0x55, 0xa7, 0x8f, 0x58, 0x3f, 0x3c, 0x61, 0xd1, 0x59, 0xef, 0xd4, 0x0f, 0x06, 0xe1, 0x69, 0xa7, 0x72, 0xdd,
0x25, 0xe1, 0x27, 0x88, 0xda, 0x4b, 0x40, 0xf4, 0x59, 0xf0, 0x75, 0xb3, 0x87, 0xb0, 0xf8, 0x38, 0x59, 0xad, 0xba, 0x2d, 0x05, 0x3f, 0x41, 0x94, 0x2e, 0x01, 0x31, 0x67, 0x21, 0xd6, 0x8d, 0x0e,
0xf0, 0xc3, 0xfe, 0xd3, 0x1f, 0x70, 0x76, 0x05, 0xdd, 0x97, 0x0a, 0xbb, 0x5f, 0x81, 0x25, 0xb3, 0x61, 0xf1, 0x71, 0x30, 0x0a, 0xfb, 0x4f, 0x7f, 0xc4, 0xd9, 0x15, 0x74, 0x5f, 0x2a, 0xec, 0x7e,
0x23, 0x31, 0x00, 0x0a, 0xcb, 0x5b, 0x27, 0x6e, 0x30, 0xa4, 0xb2, 0x49, 0x39, 0x84, 0x4f, 0x42, 0x05, 0x96, 0xec, 0x8e, 0xe4, 0x00, 0x18, 0x2c, 0x6f, 0x1e, 0x7b, 0xc1, 0x90, 0xa9, 0x26, 0xd5,
0xbb, 0x3f, 0x89, 0x22, 0x1a, 0xe4, 0xc6, 0x30, 0x2f, 0x70, 0x35, 0x88, 0xd7, 0xa1, 0x19, 0xd0, 0x10, 0x3e, 0x0d, 0xed, 0xfe, 0x34, 0x8a, 0x58, 0x90, 0x1b, 0xc3, 0xbc, 0xc4, 0xf5, 0x20, 0x5e,
0xb3, 0x94, 0x4c, 0xb0, 0x4c, 0x40, 0xcf, 0x24, 0x89, 0xdd, 0x81, 0x95, 0x6c, 0x37, 0x62, 0x00, 0x87, 0x66, 0xc0, 0x4e, 0x53, 0x32, 0xc9, 0x32, 0x01, 0x3b, 0x55, 0x24, 0xb4, 0x03, 0x2b, 0xd9,
0xff, 0x60, 0x41, 0xe5, 0x71, 0xf2, 0x2c, 0x24, 0x37, 0xa1, 0x92, 0x9c, 0x8f, 0x39, 0x63, 0xb6, 0x6e, 0xe4, 0x00, 0xfe, 0xda, 0x81, 0xca, 0xe3, 0xe4, 0x59, 0x48, 0x6e, 0x41, 0x25, 0x39, 0x9b,
0x6e, 0x93, 0x9b, 0xc8, 0xeb, 0x37, 0x37, 0x07, 0x83, 0x88, 0xc6, 0xf1, 0xa3, 0xf3, 0x31, 0x75, 0x08, 0xc6, 0x6c, 0xdd, 0x21, 0xb7, 0x90, 0xd7, 0x6f, 0x6d, 0x0c, 0x06, 0x11, 0x8b, 0xe3, 0x47,
0x9a, 0x2e, 0x2f, 0xf4, 0x18, 0x1d, 0xe9, 0xc0, 0xac, 0x28, 0x63, 0x87, 0x75, 0x47, 0x16, 0xc9, 0x67, 0x13, 0xe6, 0x36, 0x3d, 0x51, 0xe8, 0x71, 0x3a, 0xd2, 0x81, 0x59, 0x59, 0xc6, 0x0e, 0xeb,
0x55, 0x00, 0x77, 0x14, 0x4e, 0x82, 0xa4, 0x17, 0xbb, 0x09, 0xee, 0x5c, 0xd9, 0xd1, 0x10, 0x72, 0xae, 0x2a, 0x92, 0x6b, 0x00, 0xde, 0x38, 0x9c, 0x06, 0x49, 0x2f, 0xf6, 0x12, 0xdc, 0xb9, 0xb2,
0x05, 0xea, 0xe3, 0xa7, 0xbd, 0xb8, 0x1f, 0x79, 0xe3, 0x04, 0x77, 0xab, 0xee, 0xa4, 0x00, 0x79, 0x6b, 0x20, 0xe4, 0x2a, 0xd4, 0x27, 0x4f, 0x7b, 0x71, 0x3f, 0xf2, 0x27, 0x09, 0xee, 0x56, 0xdd,
0x13, 0x6a, 0xe1, 0x24, 0x19, 0x87, 0x5e, 0x90, 0x74, 0xaa, 0xd7, 0xac, 0xb5, 0xc6, 0xed, 0x79, 0x4d, 0x01, 0xf2, 0x26, 0xd4, 0xc2, 0x69, 0x32, 0x09, 0xfd, 0x20, 0xe9, 0x54, 0xaf, 0x3b, 0xab,
0x31, 0x96, 0x87, 0x93, 0xe4, 0x80, 0xc1, 0x8e, 0x22, 0x20, 0xd7, 0x61, 0xae, 0x1f, 0x06, 0xc7, 0x8d, 0x3b, 0xf3, 0x72, 0x2c, 0x0f, 0xa7, 0xc9, 0x3e, 0x87, 0x5d, 0x4d, 0x40, 0x6e, 0xc0, 0x5c,
0x5e, 0x34, 0xe2, 0x32, 0xd8, 0x99, 0xc1, 0xde, 0x4c, 0xd0, 0xfe, 0x56, 0x09, 0x1a, 0x8f, 0x22, 0x3f, 0x0c, 0x8e, 0xfc, 0x68, 0x2c, 0x64, 0xb0, 0x33, 0x83, 0xbd, 0xd9, 0x20, 0xfd, 0x4e, 0x09,
0x37, 0x88, 0xdd, 0x3e, 0x03, 0xd8, 0xd0, 0x93, 0x67, 0xbd, 0x13, 0x37, 0x3e, 0xc1, 0xd9, 0xd6, 0x1a, 0x8f, 0x22, 0x2f, 0x88, 0xbd, 0x3e, 0x07, 0xf8, 0xd0, 0x93, 0x67, 0xbd, 0x63, 0x2f, 0x3e,
0x1d, 0x59, 0x24, 0x2b, 0x30, 0xc3, 0x07, 0x8a, 0x73, 0x2a, 0x3b, 0xa2, 0x44, 0xde, 0x82, 0x85, 0xc6, 0xd9, 0xd6, 0x5d, 0x55, 0x24, 0x2b, 0x30, 0x23, 0x06, 0x8a, 0x73, 0x2a, 0xbb, 0xb2, 0x44,
0x60, 0x32, 0xea, 0x99, 0x7d, 0x95, 0x71, 0xa7, 0xf3, 0x15, 0x6c, 0x01, 0x8e, 0xd8, 0x5e, 0xf3, 0xde, 0x82, 0x85, 0x60, 0x3a, 0xee, 0xd9, 0x7d, 0x95, 0x71, 0xa7, 0xf3, 0x15, 0x7c, 0x01, 0x0e,
0x2e, 0xf8, 0x0c, 0x35, 0x84, 0xd8, 0xd0, 0x14, 0x25, 0xea, 0x0d, 0x4f, 0xf8, 0x34, 0xab, 0x8e, 0xf9, 0x5e, 0x8b, 0x2e, 0xc4, 0x0c, 0x0d, 0x84, 0x50, 0x68, 0xca, 0x12, 0xf3, 0x87, 0xc7, 0x62,
0x81, 0xb1, 0x36, 0x12, 0x6f, 0x44, 0x7b, 0x71, 0xe2, 0x8e, 0xc6, 0x62, 0x5a, 0x1a, 0x82, 0xf5, 0x9a, 0x55, 0xd7, 0xc2, 0x78, 0x1b, 0x89, 0x3f, 0x66, 0xbd, 0x38, 0xf1, 0xc6, 0x13, 0x39, 0x2d,
0x61, 0xe2, 0xfa, 0xbd, 0x63, 0x4a, 0xe3, 0xce, 0xac, 0xa8, 0x57, 0x08, 0x79, 0x03, 0x5a, 0x03, 0x03, 0xc1, 0xfa, 0x30, 0xf1, 0x46, 0xbd, 0x23, 0xc6, 0xe2, 0xce, 0xac, 0xac, 0xd7, 0x08, 0x79,
0x1a, 0x27, 0x3d, 0xb1, 0x29, 0x34, 0xee, 0xd4, 0x50, 0xe2, 0x32, 0x28, 0xe3, 0x8c, 0xfb, 0x34, 0x03, 0x5a, 0x03, 0x16, 0x27, 0x3d, 0xb9, 0x29, 0x2c, 0xee, 0xd4, 0x50, 0xe2, 0x32, 0x28, 0xe7,
0xd1, 0x56, 0x27, 0x16, 0x1c, 0x68, 0xef, 0x01, 0xd1, 0xe0, 0x6d, 0x9a, 0xb8, 0x9e, 0x1f, 0x93, 0x8c, 0xfb, 0x2c, 0x31, 0x56, 0x27, 0x96, 0x1c, 0x48, 0x77, 0x81, 0x18, 0xf0, 0x16, 0x4b, 0x3c,
0x77, 0xa0, 0x99, 0x68, 0xc4, 0xa8, 0x61, 0x1a, 0x8a, 0x5d, 0xb4, 0x0f, 0x1c, 0x83, 0xce, 0xbe, 0x7f, 0x14, 0x93, 0x77, 0xa0, 0x99, 0x18, 0xc4, 0xa8, 0x61, 0x1a, 0x9a, 0x5d, 0x8c, 0x0f, 0x5c,
0x0f, 0xb5, 0x7b, 0x94, 0xee, 0x79, 0x23, 0x2f, 0x21, 0x2b, 0x50, 0x3d, 0xf6, 0x9e, 0x51, 0xce, 0x8b, 0x8e, 0xde, 0x87, 0xda, 0x3d, 0xc6, 0x76, 0xfd, 0xb1, 0x9f, 0x90, 0x15, 0xa8, 0x1e, 0xf9,
0xd0, 0xe5, 0xdd, 0x4b, 0x0e, 0x2f, 0x92, 0x2e, 0xcc, 0x8e, 0x69, 0xd4, 0xa7, 0x72, 0xf9, 0x77, 0xcf, 0x98, 0x60, 0xe8, 0xf2, 0xce, 0x25, 0x57, 0x14, 0x49, 0x17, 0x66, 0x27, 0x2c, 0xea, 0x33,
0x2f, 0x39, 0x12, 0xb8, 0x3b, 0x0b, 0x55, 0x9f, 0x7d, 0x6c, 0xff, 0x6d, 0x09, 0x1a, 0x87, 0x34, 0xb5, 0xfc, 0x3b, 0x97, 0x5c, 0x05, 0xdc, 0x9d, 0x85, 0xea, 0x88, 0x7f, 0x4c, 0xff, 0xa9, 0x04,
0x50, 0x82, 0x42, 0xa0, 0xc2, 0xa6, 0x24, 0x84, 0x03, 0xff, 0x27, 0xaf, 0x41, 0x03, 0xa7, 0x19, 0x8d, 0x03, 0x16, 0x68, 0x41, 0x21, 0x50, 0xe1, 0x53, 0x92, 0xc2, 0x81, 0xff, 0x93, 0xd7, 0xa0,
0x27, 0x91, 0x17, 0x0c, 0x05, 0x7f, 0x02, 0x83, 0x0e, 0x11, 0x21, 0x6d, 0x28, 0xbb, 0x23, 0xc9, 0x81, 0xd3, 0x8c, 0x93, 0xc8, 0x0f, 0x86, 0x92, 0x3f, 0x81, 0x43, 0x07, 0x88, 0x90, 0x36, 0x94,
0x9b, 0xec, 0x5f, 0x26, 0x44, 0x63, 0xf7, 0x7c, 0xc4, 0xe4, 0x4d, 0xed, 0x5a, 0xd3, 0x69, 0x08, 0xbd, 0xb1, 0xe2, 0x4d, 0xfe, 0x2f, 0x17, 0xa2, 0x89, 0x77, 0x36, 0xe6, 0xf2, 0xa6, 0x77, 0xad,
0x6c, 0x97, 0x6d, 0xdb, 0x4d, 0x58, 0xd4, 0x49, 0x64, 0xeb, 0x55, 0x6c, 0x7d, 0x41, 0xa3, 0x14, 0xe9, 0x36, 0x24, 0xb6, 0xc3, 0xb7, 0xed, 0x16, 0x2c, 0x9a, 0x24, 0xaa, 0xf5, 0x2a, 0xb6, 0xbe,
0x9d, 0xdc, 0x80, 0x79, 0x49, 0x1f, 0xf1, 0xc1, 0xe2, 0x3e, 0xd6, 0x9d, 0x96, 0x80, 0xe5, 0x14, 0x60, 0x50, 0xca, 0x4e, 0x6e, 0xc2, 0xbc, 0xa2, 0x8f, 0xc4, 0x60, 0x71, 0x1f, 0xeb, 0x6e, 0x4b,
0xd6, 0xa0, 0x7d, 0xec, 0x05, 0xae, 0xdf, 0xeb, 0xfb, 0xc9, 0x69, 0x6f, 0x40, 0xfd, 0xc4, 0xc5, 0xc2, 0x6a, 0x0a, 0xab, 0xd0, 0x3e, 0xf2, 0x03, 0x6f, 0xd4, 0xeb, 0x8f, 0x92, 0x93, 0xde, 0x80,
0x1d, 0xad, 0x3a, 0x2d, 0xc4, 0xb7, 0xfc, 0xe4, 0x74, 0x9b, 0xa1, 0xe4, 0x2d, 0xa8, 0x1f, 0x53, 0x8d, 0x12, 0x0f, 0x77, 0xb4, 0xea, 0xb6, 0x10, 0xdf, 0x1c, 0x25, 0x27, 0x5b, 0x1c, 0x25, 0x6f,
0xda, 0xc3, 0x95, 0xe8, 0xd4, 0x0c, 0xe9, 0x90, 0xab, 0xeb, 0xd4, 0x8e, 0xe5, 0x3a, 0xaf, 0x41, 0x41, 0xfd, 0x88, 0xb1, 0x1e, 0xae, 0x44, 0xa7, 0x66, 0x49, 0x87, 0x5a, 0x5d, 0xb7, 0x76, 0xa4,
0x3b, 0x9c, 0x24, 0xc3, 0xd0, 0x0b, 0x86, 0xbd, 0xfe, 0x89, 0x1b, 0xf4, 0xbc, 0x41, 0xa7, 0x7e, 0xd6, 0x79, 0x15, 0xda, 0xe1, 0x34, 0x19, 0x86, 0x7e, 0x30, 0xec, 0xf5, 0x8f, 0xbd, 0xa0, 0xe7,
0xcd, 0x5a, 0xab, 0x38, 0x2d, 0x89, 0x33, 0xad, 0xf0, 0x60, 0x60, 0xff, 0x91, 0x05, 0x4d, 0xbe, 0x0f, 0x3a, 0xf5, 0xeb, 0xce, 0x6a, 0xc5, 0x6d, 0x29, 0x9c, 0x6b, 0x85, 0x07, 0x03, 0xf2, 0x2a,
0xa8, 0xc2, 0xa0, 0x5c, 0x87, 0x39, 0x39, 0x76, 0x1a, 0x45, 0x61, 0x24, 0x04, 0xc5, 0x04, 0xc9, 0x00, 0xf6, 0x2d, 0x1a, 0x86, 0xeb, 0xce, 0xea, 0x9c, 0x5b, 0xe7, 0x08, 0x36, 0x44, 0x7f, 0xcf,
0x3a, 0xb4, 0x25, 0x30, 0x8e, 0xa8, 0x37, 0x72, 0x87, 0x54, 0x68, 0x9f, 0x1c, 0x4e, 0x6e, 0xa7, 0x81, 0xa6, 0x58, 0x73, 0x69, 0x6f, 0x6e, 0xc0, 0x9c, 0x9a, 0x1a, 0x8b, 0xa2, 0x30, 0x92, 0x72,
0x2d, 0x46, 0xe1, 0x24, 0xe1, 0x2a, 0xbd, 0x71, 0xbb, 0x29, 0x86, 0xef, 0x30, 0xcc, 0x31, 0x49, 0x64, 0x83, 0x64, 0x0d, 0xda, 0x0a, 0x98, 0x44, 0xcc, 0x1f, 0x7b, 0x43, 0x26, 0x95, 0x53, 0x0e,
0x98, 0xa0, 0x14, 0x6c, 0x8a, 0x81, 0xd9, 0xdf, 0xb3, 0x80, 0xb0, 0xa1, 0x3f, 0x0a, 0x79, 0x13, 0x27, 0x77, 0xd2, 0x16, 0xa3, 0x70, 0x9a, 0x08, 0x8d, 0xdf, 0xb8, 0xd3, 0x94, 0xb3, 0x73, 0x39,
0x62, 0x4d, 0xb3, 0xfb, 0x69, 0xbd, 0xf4, 0x7e, 0x96, 0xa6, 0xed, 0xe7, 0x1a, 0xcc, 0xe0, 0xb0, 0xe6, 0xda, 0x24, 0x5c, 0x8e, 0x0a, 0xf6, 0xcc, 0xc2, 0xe8, 0x0f, 0x1c, 0x20, 0x7c, 0xe8, 0x8f,
0x98, 0xe4, 0x97, 0xb3, 0x43, 0xbf, 0x5b, 0xea, 0x58, 0x8e, 0xa8, 0x27, 0x36, 0x54, 0xf9, 0x1c, 0x42, 0xd1, 0x84, 0x5c, 0xf2, 0xec, 0x76, 0x3b, 0x2f, 0xbd, 0xdd, 0xa5, 0xf3, 0xb6, 0x7b, 0x15,
0x2b, 0x05, 0x73, 0xe4, 0x55, 0xf6, 0x77, 0x2c, 0x68, 0xb2, 0xd5, 0x0f, 0xa8, 0x8f, 0x5a, 0x8d, 0x66, 0x70, 0x58, 0x5c, 0x31, 0x94, 0xb3, 0x43, 0xbf, 0x5b, 0xea, 0x38, 0xae, 0xac, 0x27, 0x14,
0xdc, 0x02, 0x72, 0x3c, 0x09, 0x06, 0x6c, 0xb3, 0x92, 0x67, 0xde, 0xa0, 0x77, 0x74, 0xce, 0xba, 0xaa, 0x62, 0x8e, 0x95, 0x82, 0x39, 0x8a, 0x2a, 0xfa, 0x3d, 0x07, 0x9a, 0x7c, 0x73, 0x02, 0x36,
0xc2, 0x71, 0xef, 0x5e, 0x72, 0x0a, 0xea, 0xc8, 0x5b, 0xd0, 0x36, 0xd0, 0x38, 0x89, 0xf8, 0xe8, 0x42, 0xa5, 0x47, 0x6e, 0x03, 0x39, 0x9a, 0x06, 0x03, 0xbe, 0x97, 0xc9, 0x33, 0x7f, 0xd0, 0x3b,
0x77, 0x2f, 0x39, 0xb9, 0x1a, 0xb6, 0x98, 0x4c, 0x6f, 0x4e, 0x92, 0x9e, 0x17, 0x0c, 0xe8, 0x33, 0x3c, 0xe3, 0x5d, 0xe1, 0xb8, 0x77, 0x2e, 0xb9, 0x05, 0x75, 0xe4, 0x2d, 0x68, 0x5b, 0x68, 0x9c,
0x5c, 0xff, 0x39, 0xc7, 0xc0, 0xee, 0xb6, 0xa0, 0xa9, 0x7f, 0x67, 0x7f, 0x08, 0x35, 0xa9, 0x75, 0x44, 0x62, 0xf4, 0x3b, 0x97, 0xdc, 0x5c, 0x0d, 0x5f, 0x4c, 0xae, 0x56, 0xa7, 0x49, 0xcf, 0x0f,
0x51, 0xe3, 0x64, 0xc6, 0xe5, 0x68, 0x08, 0xe9, 0x42, 0xcd, 0x1c, 0x85, 0x53, 0xfb, 0x38, 0x7d, 0x06, 0xec, 0x19, 0xae, 0xff, 0x9c, 0x6b, 0x61, 0x77, 0x5b, 0xd0, 0x34, 0xbf, 0xa3, 0x1f, 0x41,
0xdb, 0xff, 0x17, 0xda, 0x7b, 0x4c, 0xf5, 0x05, 0x5e, 0x30, 0x14, 0x66, 0x87, 0xe9, 0xe3, 0xf1, 0x4d, 0x29, 0x65, 0x54, 0x48, 0x99, 0x71, 0xb9, 0x06, 0x42, 0xba, 0x50, 0xb3, 0x47, 0xe1, 0xd6,
0xe4, 0xe8, 0x29, 0x3d, 0x17, 0xfc, 0x27, 0x4a, 0x4c, 0xe8, 0x4f, 0xc2, 0x38, 0x11, 0xfd, 0xe0, 0x3e, 0x49, 0xdf, 0xf4, 0xbf, 0x42, 0x7b, 0x97, 0x6b, 0xc6, 0xc0, 0x0f, 0x86, 0xd2, 0x2a, 0x71,
0xff, 0xf6, 0x5f, 0x58, 0x40, 0x76, 0xe2, 0xc4, 0x1b, 0xb9, 0x09, 0xbd, 0x47, 0x15, 0x23, 0x3c, 0x75, 0x3d, 0x99, 0x1e, 0x3e, 0x65, 0x67, 0x92, 0xff, 0x64, 0x89, 0xeb, 0x84, 0xe3, 0x30, 0x4e,
0x84, 0x26, 0x6b, 0xed, 0x51, 0xb8, 0xc9, 0x15, 0x3b, 0x57, 0x58, 0x6f, 0x8a, 0x2d, 0xc9, 0x7f, 0x64, 0x3f, 0xf8, 0x3f, 0xfd, 0x13, 0x07, 0xc8, 0x76, 0x9c, 0xf8, 0x63, 0x2f, 0x61, 0xf7, 0x98,
0x70, 0x53, 0xa7, 0x66, 0x2e, 0xd7, 0xb9, 0x63, 0x34, 0xc0, 0x94, 0x4b, 0xe2, 0x46, 0x43, 0x9a, 0x66, 0x84, 0x87, 0xd0, 0xe4, 0xad, 0x3d, 0x0a, 0x37, 0x84, 0xde, 0x17, 0xfa, 0xec, 0x4d, 0xb9,
0xa0, 0xd6, 0x17, 0xf6, 0x1e, 0x38, 0xb4, 0x15, 0x06, 0xc7, 0xdd, 0xff, 0x07, 0x0b, 0xb9, 0x36, 0x25, 0xf9, 0x0f, 0x6e, 0x99, 0xd4, 0xdc, 0x23, 0x3b, 0x73, 0xad, 0x06, 0xb8, 0xee, 0x49, 0xbc,
0x98, 0xc6, 0x49, 0xa7, 0xc1, 0xfe, 0x25, 0x4b, 0x50, 0x3d, 0x75, 0xfd, 0x09, 0x15, 0xa6, 0x86, 0x68, 0xc8, 0x12, 0x34, 0x0a, 0xd2, 0x1d, 0x00, 0x01, 0x6d, 0x86, 0xc1, 0x51, 0xf7, 0xbf, 0xc1,
0x17, 0xde, 0x2b, 0xbd, 0x6b, 0xd9, 0x7d, 0x58, 0x34, 0xc6, 0x25, 0x64, 0xb2, 0x03, 0xb3, 0x4c, 0x42, 0xae, 0x0d, 0xae, 0x90, 0xd2, 0x69, 0xf0, 0x7f, 0xc9, 0x12, 0x54, 0x4f, 0xbc, 0xd1, 0x94,
0xf8, 0x99, 0x51, 0x45, 0xc5, 0xe9, 0xc8, 0x22, 0xb9, 0x0d, 0x4b, 0xc7, 0x94, 0x46, 0x6e, 0x82, 0x49, 0x4b, 0x24, 0x0a, 0xef, 0x95, 0xde, 0x75, 0x68, 0x1f, 0x16, 0xad, 0x71, 0x49, 0x99, 0xec,
0xc5, 0xde, 0x98, 0x46, 0xb8, 0x27, 0xa2, 0xe5, 0xc2, 0x3a, 0xfb, 0x1f, 0x2d, 0x98, 0x67, 0x72, 0xc0, 0x2c, 0xd7, 0x0d, 0xdc, 0xe6, 0xa2, 0x5e, 0x75, 0x55, 0x91, 0xdc, 0x81, 0xa5, 0x23, 0xc6,
0xf3, 0xbe, 0x1b, 0x9c, 0xcb, 0xb5, 0xda, 0x2b, 0x5c, 0xab, 0x35, 0xb1, 0x56, 0x19, 0xea, 0x8f, 0x22, 0x2f, 0xc1, 0x62, 0x6f, 0xc2, 0x22, 0xdc, 0x13, 0xd9, 0x72, 0x61, 0x1d, 0xfd, 0x1b, 0x07,
0xbb, 0x50, 0xe5, 0xec, 0x42, 0x91, 0x6b, 0xd0, 0x34, 0x86, 0x5b, 0xe5, 0x56, 0x2c, 0x76, 0x93, 0xe6, 0xb9, 0xdc, 0x7c, 0xe0, 0x05, 0x67, 0x6a, 0xad, 0x76, 0x0b, 0xd7, 0x6a, 0x55, 0xae, 0x55,
0x03, 0x1a, 0xdd, 0x3d, 0x4f, 0xe8, 0x0f, 0xbf, 0x94, 0x6f, 0x40, 0x3b, 0x1d, 0xb6, 0x58, 0x47, 0x86, 0xfa, 0x93, 0x2e, 0x54, 0x39, 0xbb, 0x50, 0xe4, 0x3a, 0x34, 0xad, 0xe1, 0x56, 0x85, 0x91,
0x02, 0x15, 0xc6, 0x98, 0xa2, 0x01, 0xfc, 0xdf, 0xfe, 0xb6, 0xc5, 0x09, 0xb7, 0x42, 0x4f, 0x59, 0x8b, 0xbd, 0x64, 0x9f, 0x45, 0x77, 0xcf, 0x12, 0xf6, 0xe3, 0x2f, 0xe5, 0x1b, 0xd0, 0x4e, 0x87,
0x40, 0x46, 0xc8, 0x0c, 0xa5, 0x24, 0x64, 0xff, 0x4f, 0xf5, 0x10, 0x7e, 0xf8, 0xc9, 0x92, 0xcb, 0x2d, 0xd7, 0x91, 0x40, 0x85, 0x33, 0xa6, 0x6c, 0x00, 0xff, 0xa7, 0xdf, 0x75, 0x04, 0xe1, 0x66,
0x50, 0x8b, 0x69, 0x30, 0xe8, 0xb9, 0xbe, 0x8f, 0x86, 0xa2, 0xe6, 0xcc, 0xb2, 0xf2, 0xa6, 0xef, 0xe8, 0x6b, 0x03, 0xc9, 0x09, 0xb9, 0x1d, 0x55, 0x84, 0xfc, 0xff, 0x73, 0x1d, 0x88, 0x1f, 0x7f,
0xdb, 0x37, 0x60, 0x41, 0x1b, 0xdd, 0x0b, 0xe6, 0xb1, 0x0f, 0x64, 0xcf, 0x8b, 0x93, 0xc7, 0x41, 0xb2, 0xe4, 0x0a, 0xd4, 0x62, 0x16, 0x0c, 0x7a, 0xde, 0x68, 0x84, 0x76, 0xa4, 0xe6, 0xce, 0xf2,
0x3c, 0xd6, 0x0c, 0xcc, 0x2b, 0x50, 0x1f, 0x79, 0x01, 0x8e, 0x8c, 0x4b, 0x6e, 0xd5, 0xa9, 0x8d, 0xf2, 0xc6, 0x68, 0x44, 0x6f, 0xc2, 0x82, 0x31, 0xba, 0x17, 0xcc, 0x63, 0x0f, 0xc8, 0xae, 0x1f,
0xbc, 0x80, 0x8d, 0x2b, 0xc6, 0x4a, 0xf7, 0x99, 0xa8, 0x2c, 0x89, 0x4a, 0xf7, 0x19, 0x56, 0xda, 0x27, 0x8f, 0x83, 0x78, 0x62, 0xd8, 0x9f, 0x57, 0xa0, 0x3e, 0xf6, 0x03, 0x1c, 0x99, 0x90, 0xdc,
0xef, 0xc2, 0xa2, 0xd1, 0x9e, 0xe8, 0xfa, 0x75, 0xa8, 0x4e, 0x92, 0x67, 0xa1, 0x34, 0xff, 0x0d, 0xaa, 0x5b, 0x1b, 0xfb, 0x01, 0x1f, 0x57, 0x8c, 0x95, 0xde, 0x33, 0x59, 0x59, 0x92, 0x95, 0xde,
0xc1, 0x21, 0xcc, 0x91, 0x74, 0x78, 0x8d, 0x7d, 0x07, 0x16, 0xf6, 0xe9, 0x99, 0x10, 0x64, 0x39, 0x33, 0xac, 0xa4, 0xef, 0xc2, 0xa2, 0xd5, 0x9e, 0xec, 0xfa, 0x75, 0xa8, 0x4e, 0x93, 0x67, 0xa1,
0x90, 0x37, 0x2e, 0x74, 0x32, 0xb1, 0xde, 0xbe, 0x09, 0x44, 0xff, 0x38, 0x15, 0x00, 0xe9, 0x72, 0xf2, 0x0e, 0x1a, 0x92, 0x43, 0xb8, 0x9f, 0xe9, 0x8a, 0x1a, 0xfa, 0x3e, 0x2c, 0xec, 0xb1, 0x53,
0x5a, 0x86, 0xcb, 0x69, 0xbf, 0x01, 0xe4, 0xd0, 0x1b, 0x06, 0xef, 0xd3, 0x38, 0x76, 0x87, 0x4a, 0x29, 0xc8, 0x6a, 0x20, 0x6f, 0x5c, 0xe8, 0x83, 0x62, 0x3d, 0xbd, 0x05, 0xc4, 0xfc, 0x38, 0x15,
0xf4, 0xdb, 0x50, 0x1e, 0xc5, 0x43, 0xa1, 0xaa, 0xd8, 0xbf, 0xf6, 0xa7, 0x60, 0xd1, 0xa0, 0x13, 0x00, 0xe5, 0x91, 0x3a, 0x96, 0x47, 0x4a, 0xdf, 0x00, 0x72, 0xe0, 0x0f, 0x83, 0x0f, 0x58, 0x1c,
0x0d, 0x5f, 0x81, 0x7a, 0xec, 0x0d, 0x03, 0x37, 0x99, 0x44, 0x54, 0x34, 0x9d, 0x02, 0xf6, 0x3d, 0x7b, 0x43, 0x2d, 0xfa, 0x6d, 0x28, 0x8f, 0xe3, 0xa1, 0x54, 0x55, 0xfc, 0x5f, 0xfa, 0x19, 0x58,
0x58, 0xfa, 0x32, 0x8d, 0xbc, 0xe3, 0xf3, 0x8b, 0x9a, 0x37, 0xdb, 0x29, 0x65, 0xdb, 0xd9, 0x81, 0xb4, 0xe8, 0x64, 0xc3, 0x57, 0xa1, 0x1e, 0xfb, 0xc3, 0xc0, 0x4b, 0xa6, 0x11, 0x93, 0x4d, 0xa7,
0xe5, 0x4c, 0x3b, 0xa2, 0x7b, 0xce, 0xbe, 0x62, 0x27, 0x6b, 0x0e, 0x2f, 0x68, 0xba, 0xaf, 0xa4, 0x00, 0xbd, 0x07, 0x4b, 0x5f, 0x65, 0x91, 0x7f, 0x74, 0x76, 0x51, 0xf3, 0x76, 0x3b, 0xa5, 0x6c,
0xeb, 0x3e, 0xfb, 0x31, 0x90, 0xad, 0x30, 0x08, 0x68, 0x3f, 0x39, 0xa0, 0x34, 0x4a, 0x0f, 0x99, 0x3b, 0xdb, 0xb0, 0x9c, 0x69, 0x47, 0x76, 0x2f, 0xd8, 0x57, 0xee, 0x64, 0xcd, 0x15, 0x05, 0x43,
0x29, 0xaf, 0x36, 0x6e, 0xaf, 0x8a, 0x95, 0xcd, 0x2a, 0x54, 0xc1, 0xc4, 0x04, 0x2a, 0x63, 0x1a, 0xf7, 0x95, 0x4c, 0xdd, 0x47, 0x1f, 0x03, 0xd9, 0x0c, 0x83, 0x80, 0xf5, 0x93, 0x7d, 0xc6, 0xa2,
0x8d, 0xb0, 0xe1, 0x9a, 0x83, 0xff, 0xdb, 0xcb, 0xb0, 0x68, 0x34, 0x2b, 0xce, 0x07, 0x6f, 0xc3, 0xf4, 0x0c, 0x9a, 0xf2, 0x6a, 0xe3, 0xce, 0x65, 0xb9, 0xb2, 0x59, 0x85, 0x2a, 0x99, 0x98, 0x40,
0xf2, 0xb6, 0x17, 0xf7, 0xf3, 0x1d, 0x76, 0x60, 0x76, 0x3c, 0x39, 0xea, 0xa5, 0x92, 0x28, 0x8b, 0x65, 0xc2, 0xa2, 0x31, 0x36, 0x5c, 0x73, 0xf1, 0x7f, 0xba, 0x0c, 0x8b, 0x56, 0xb3, 0xf2, 0xf8,
0xcc, 0xa5, 0xcc, 0x7e, 0x22, 0x1a, 0xfb, 0x59, 0x0b, 0x2a, 0xbb, 0x8f, 0xf6, 0xb6, 0x98, 0xad, 0xf0, 0x36, 0x2c, 0x6f, 0xf9, 0x71, 0x3f, 0xdf, 0x61, 0x07, 0x66, 0x27, 0xd3, 0xc3, 0x5e, 0x2a,
0xf0, 0x82, 0x7e, 0x38, 0x62, 0xf6, 0x96, 0x4f, 0x5a, 0x95, 0xa7, 0x4a, 0xd8, 0x15, 0xa8, 0xa3, 0x89, 0xaa, 0xc8, 0x3d, 0xce, 0xec, 0x27, 0xb2, 0xb1, 0xff, 0xef, 0x40, 0x65, 0xe7, 0xd1, 0xee,
0x99, 0x66, 0x5e, 0xb2, 0x38, 0x0f, 0xa6, 0x00, 0xf3, 0xd0, 0xe9, 0xb3, 0xb1, 0x17, 0xa1, 0x0b, 0x26, 0xb7, 0x15, 0x7e, 0xd0, 0x0f, 0xc7, 0xdc, 0xde, 0x8a, 0x49, 0xeb, 0xf2, 0xb9, 0x12, 0x76,
0x2e, 0x1d, 0xeb, 0x0a, 0x9a, 0x99, 0x7c, 0x85, 0xfd, 0xed, 0x2a, 0xcc, 0x0a, 0xe3, 0x8b, 0xfd, 0x15, 0xea, 0x68, 0xa6, 0xb9, 0x13, 0x2d, 0x8f, 0x8b, 0x29, 0xc0, 0x1d, 0x78, 0xf6, 0x6c, 0xe2,
0xf5, 0x13, 0xef, 0x94, 0x8a, 0x91, 0x88, 0x12, 0x73, 0x81, 0x22, 0x3a, 0x0a, 0x13, 0xda, 0x33, 0x47, 0xe8, 0xa1, 0x2b, 0xbf, 0xbb, 0x82, 0x66, 0x26, 0x5f, 0x41, 0xbf, 0x5b, 0x85, 0x59, 0x69,
0xb6, 0xc1, 0x04, 0xf1, 0x04, 0xc2, 0x1b, 0xea, 0xf1, 0x33, 0x4b, 0x99, 0x53, 0x19, 0x20, 0x5b, 0x7c, 0xb1, 0xbf, 0x7e, 0xe2, 0x9f, 0x30, 0x39, 0x12, 0x59, 0xe2, 0x2e, 0x50, 0xc4, 0xc6, 0x61,
0x2c, 0xe9, 0x80, 0x55, 0xd0, 0x01, 0x93, 0x45, 0xb6, 0x12, 0x7d, 0x77, 0xec, 0xf6, 0xbd, 0xe4, 0xc2, 0x7a, 0xd6, 0x36, 0xd8, 0x20, 0x1e, 0x50, 0x44, 0x43, 0x3d, 0x71, 0xa4, 0x29, 0x0b, 0x2a,
0x5c, 0xa8, 0x04, 0x55, 0x66, 0x6d, 0xfb, 0x61, 0xdf, 0xf5, 0x7b, 0x47, 0xae, 0xef, 0x06, 0x7d, 0x0b, 0xe4, 0x8b, 0xa5, 0xfc, 0xb3, 0x0a, 0xfa, 0x67, 0xaa, 0xc8, 0x57, 0xa2, 0xef, 0x4d, 0xbc,
0x2a, 0x4f, 0x37, 0x06, 0xc8, 0x3c, 0x7d, 0x31, 0x24, 0x49, 0xc6, 0x4f, 0x03, 0x19, 0x94, 0xd9, 0xbe, 0x9f, 0x9c, 0x49, 0x95, 0xa0, 0xcb, 0xbc, 0xed, 0x51, 0xd8, 0xf7, 0x46, 0xbd, 0x43, 0x6f,
0xef, 0x7e, 0x38, 0x1a, 0x79, 0x09, 0x3b, 0x20, 0xa0, 0xf3, 0x58, 0x76, 0x34, 0x84, 0x9f, 0xa5, 0xe4, 0x05, 0x7d, 0xa6, 0x0e, 0x3f, 0x16, 0xc8, 0x0f, 0x02, 0x72, 0x48, 0x8a, 0x4c, 0x1c, 0x16,
0xb0, 0x74, 0xc6, 0x57, 0xaf, 0x2e, 0xcf, 0x52, 0x1a, 0xc8, 0x5a, 0x61, 0x56, 0x87, 0xa9, 0xb1, 0x32, 0x28, 0xb7, 0xdf, 0xfd, 0x70, 0x3c, 0xf6, 0x13, 0x7e, 0x7e, 0x40, 0xdf, 0xb2, 0xec, 0x1a,
0xa7, 0x67, 0x1d, 0xe0, 0xad, 0xa4, 0x08, 0xdb, 0x87, 0x49, 0x10, 0xd3, 0x24, 0xf1, 0xe9, 0x40, 0x88, 0x38, 0x6a, 0x61, 0xe9, 0x54, 0xac, 0x5e, 0x5d, 0x1d, 0xb5, 0x0c, 0x90, 0xb7, 0xc2, 0xad,
0x0d, 0xa8, 0x81, 0x64, 0xf9, 0x0a, 0x72, 0x0b, 0x16, 0xf9, 0x99, 0x25, 0x76, 0x93, 0x30, 0x3e, 0x0e, 0x57, 0x63, 0x4f, 0x4f, 0xd1, 0x91, 0x2c, 0xbb, 0x06, 0xc2, 0xf7, 0x61, 0x1a, 0xc4, 0x2c,
0xf1, 0xe2, 0x5e, 0xcc, 0xbc, 0xff, 0x26, 0xd2, 0x17, 0x55, 0x91, 0x77, 0x61, 0x35, 0x03, 0x47, 0x49, 0x46, 0x6c, 0xa0, 0x07, 0xd4, 0x40, 0xb2, 0x7c, 0x05, 0xb9, 0x0d, 0x8b, 0xe2, 0x48, 0x13,
0xb4, 0x4f, 0xbd, 0x53, 0x3a, 0xe8, 0xcc, 0xe1, 0x57, 0xd3, 0xaa, 0xc9, 0x35, 0x68, 0xb0, 0xa3, 0x7b, 0x49, 0x18, 0x1f, 0xfb, 0x71, 0x2f, 0xe6, 0x87, 0x83, 0x26, 0xd2, 0x17, 0x55, 0x91, 0x77,
0xda, 0x64, 0x3c, 0x70, 0x99, 0x03, 0xd3, 0xc2, 0x7d, 0xd0, 0x21, 0xf2, 0x36, 0xcc, 0x8d, 0x29, 0xe1, 0x72, 0x06, 0x8e, 0x58, 0x9f, 0xf9, 0x27, 0x6c, 0xd0, 0x99, 0xc3, 0xaf, 0xce, 0xab, 0x26,
0xf7, 0x7e, 0x4e, 0x12, 0xbf, 0x1f, 0x77, 0xe6, 0x0d, 0xed, 0xc6, 0x38, 0xd7, 0x31, 0x29, 0x18, 0xd7, 0xa1, 0xc1, 0x4f, 0x72, 0xd3, 0xc9, 0xc0, 0xe3, 0x0e, 0x4c, 0x0b, 0xf7, 0xc1, 0x84, 0xc8,
0x53, 0xf6, 0x63, 0xf4, 0xd9, 0xdd, 0xf3, 0x4e, 0x1b, 0xd9, 0x2d, 0x05, 0x50, 0x46, 0x22, 0xef, 0xdb, 0x30, 0x37, 0x61, 0xc2, 0xfb, 0x39, 0x4e, 0x46, 0xfd, 0xb8, 0x33, 0x6f, 0x69, 0x37, 0xce,
0xd4, 0x4d, 0x68, 0x67, 0x81, 0x2b, 0x74, 0x51, 0x64, 0xdf, 0x79, 0x81, 0x97, 0x78, 0x6e, 0x12, 0xb9, 0xae, 0x4d, 0xc1, 0x99, 0xb2, 0x1f, 0xa3, 0x4b, 0xef, 0x9d, 0x75, 0xda, 0xd2, 0xad, 0x56,
0x46, 0x1d, 0x82, 0x75, 0x29, 0x60, 0xff, 0x96, 0xc5, 0xd5, 0xae, 0x60, 0x51, 0xa5, 0x3e, 0x5f, 0x00, 0xca, 0x48, 0xe4, 0x9f, 0x78, 0x09, 0xeb, 0x2c, 0x08, 0x85, 0x2e, 0x8b, 0xfc, 0x3b, 0x3f,
0x83, 0x06, 0x67, 0xce, 0x5e, 0x18, 0xf8, 0xe7, 0x82, 0x5f, 0x81, 0x43, 0x0f, 0x03, 0xff, 0x9c, 0xf0, 0x13, 0xdf, 0x4b, 0xc2, 0xa8, 0x43, 0xb0, 0x2e, 0x05, 0xe8, 0xaf, 0x39, 0x42, 0xed, 0x4a,
0x7c, 0x02, 0xe6, 0xbc, 0x40, 0x27, 0xe1, 0x12, 0xde, 0x94, 0x20, 0x12, 0xbd, 0x06, 0x8d, 0xf1, 0x16, 0xd5, 0xea, 0xf3, 0x35, 0x68, 0x08, 0xe6, 0xec, 0x85, 0xc1, 0xe8, 0x4c, 0xf2, 0x2b, 0x08,
0xe4, 0xc8, 0xf7, 0xfa, 0x9c, 0xa4, 0xcc, 0x5b, 0xe1, 0x10, 0x12, 0x30, 0xdf, 0x99, 0x8f, 0x93, 0xe8, 0x61, 0x30, 0x3a, 0x23, 0x9f, 0x82, 0x39, 0x3f, 0x30, 0x49, 0x84, 0x84, 0x37, 0x15, 0x88,
0x53, 0x54, 0x90, 0xa2, 0x21, 0x30, 0x46, 0x62, 0xdf, 0x85, 0x25, 0x73, 0x80, 0x42, 0x95, 0xad, 0x44, 0xaf, 0x41, 0x63, 0x32, 0x3d, 0x1c, 0xf9, 0x7d, 0x41, 0x52, 0x16, 0xad, 0x08, 0x08, 0x09,
0x43, 0x4d, 0x70, 0x7e, 0xdc, 0x69, 0xe0, 0xea, 0xb5, 0xc4, 0xea, 0x09, 0x52, 0x47, 0xd5, 0xdb, 0xb8, 0xef, 0x2c, 0xc6, 0x29, 0x28, 0x2a, 0x48, 0xd1, 0x90, 0x18, 0x27, 0xa1, 0x77, 0x61, 0xc9,
0x7f, 0x58, 0x81, 0x45, 0x81, 0x6e, 0xf9, 0x61, 0x4c, 0x0f, 0x27, 0xa3, 0x91, 0x1b, 0x15, 0x88, 0x1e, 0xa0, 0x54, 0x65, 0x6b, 0x50, 0x93, 0x9c, 0x1f, 0x77, 0x1a, 0xb8, 0x7a, 0x2d, 0xb9, 0x7a,
0x94, 0x75, 0x81, 0x48, 0x95, 0x4c, 0x91, 0x62, 0x8c, 0x7e, 0xe2, 0x7a, 0x01, 0x77, 0xfc, 0xb9, 0x92, 0xd4, 0xd5, 0xf5, 0xf4, 0x77, 0x2b, 0xb0, 0x28, 0xd1, 0xcd, 0x51, 0x18, 0xb3, 0x83, 0xe9,
0x3c, 0x6a, 0x08, 0x59, 0x83, 0xf9, 0xbe, 0x1f, 0xc6, 0xdc, 0xc9, 0xd5, 0xcf, 0xe8, 0x59, 0x38, 0x78, 0xec, 0x45, 0x05, 0x22, 0xe5, 0x5c, 0x20, 0x52, 0x25, 0x5b, 0xa4, 0x38, 0xa3, 0x1f, 0x7b,
0xaf, 0x02, 0xaa, 0x45, 0x2a, 0x40, 0x17, 0xe1, 0x99, 0x8c, 0x08, 0xdb, 0xd0, 0x64, 0x8d, 0x52, 0x7e, 0x20, 0x1c, 0x7f, 0x21, 0x8f, 0x06, 0x42, 0x56, 0x61, 0xbe, 0x3f, 0x0a, 0x63, 0xe1, 0xe4,
0xa9, 0x91, 0x66, 0xb9, 0xe3, 0xab, 0x63, 0x6c, 0x3c, 0x59, 0x81, 0xe1, 0xd2, 0x39, 0x5f, 0x24, 0x9a, 0x47, 0xf8, 0x2c, 0x9c, 0x57, 0x01, 0xd5, 0x22, 0x15, 0x60, 0x8a, 0xf0, 0x4c, 0x46, 0x84,
0x2e, 0xde, 0x88, 0xa2, 0xc6, 0xd3, 0xa8, 0xeb, 0x42, 0x5c, 0xf2, 0x55, 0xe4, 0x1e, 0x00, 0xef, 0x29, 0x34, 0x79, 0xa3, 0x4c, 0x69, 0xa4, 0x59, 0xe1, 0xf8, 0x9a, 0x18, 0x1f, 0x4f, 0x56, 0x60,
0x0b, 0xcd, 0x2e, 0xa0, 0xd9, 0x7d, 0xc3, 0xdc, 0x11, 0x7d, 0xed, 0x6f, 0xb2, 0xc2, 0x24, 0xa2, 0x84, 0x74, 0xce, 0x17, 0x89, 0x8b, 0x3f, 0x66, 0xa8, 0xf1, 0x0c, 0xea, 0xba, 0x14, 0x97, 0x7c,
0x68, 0x8a, 0xb5, 0x2f, 0xed, 0x9f, 0xb7, 0xa0, 0xa1, 0xd5, 0x91, 0x65, 0x58, 0xd8, 0x7a, 0xf8, 0x15, 0xb9, 0xc7, 0xcf, 0x7d, 0xbc, 0x2f, 0x34, 0xbb, 0x80, 0x66, 0xf7, 0x0d, 0x7b, 0x47, 0xcc,
0xf0, 0x60, 0xc7, 0xd9, 0x7c, 0xf4, 0xe0, 0xcb, 0x3b, 0xbd, 0xad, 0xbd, 0x87, 0x87, 0x3b, 0xed, 0xb5, 0xbf, 0xc5, 0x0b, 0xd3, 0x88, 0xa1, 0x29, 0x36, 0xbe, 0xa4, 0x3f, 0xed, 0x40, 0xc3, 0xa8,
0x4b, 0x0c, 0xde, 0x7b, 0xb8, 0xb5, 0xb9, 0xd7, 0xbb, 0xf7, 0xd0, 0xd9, 0x92, 0xb0, 0x45, 0x56, 0x23, 0xcb, 0xb0, 0xb0, 0xf9, 0xf0, 0xe1, 0xfe, 0xb6, 0xbb, 0xf1, 0xe8, 0xc1, 0x57, 0xb7, 0x7b,
0x80, 0x38, 0x3b, 0xef, 0x3f, 0x7c, 0xb4, 0x63, 0xe0, 0x25, 0xd2, 0x86, 0xe6, 0x5d, 0x67, 0x67, 0x9b, 0xbb, 0x0f, 0x0f, 0xb6, 0xdb, 0x97, 0x38, 0xbc, 0xfb, 0x70, 0x73, 0x63, 0xb7, 0x77, 0xef,
0x73, 0x6b, 0x57, 0x20, 0x65, 0xb2, 0x04, 0xed, 0x7b, 0x8f, 0xf7, 0xb7, 0x1f, 0xec, 0xdf, 0xef, 0xa1, 0xbb, 0xa9, 0x60, 0x87, 0xac, 0x00, 0x71, 0xb7, 0x3f, 0x78, 0xf8, 0x68, 0xdb, 0xc2, 0x4b,
0x6d, 0x6d, 0xee, 0x6f, 0xed, 0xec, 0xed, 0x6c, 0xb7, 0x2b, 0x64, 0x0e, 0xea, 0x9b, 0x77, 0x37, 0xa4, 0x0d, 0xcd, 0xbb, 0xee, 0xf6, 0xc6, 0xe6, 0x8e, 0x44, 0xca, 0x64, 0x09, 0xda, 0xf7, 0x1e,
0xf7, 0xb7, 0x1f, 0xee, 0xef, 0x6c, 0xb7, 0xab, 0xf6, 0xdf, 0x5b, 0xb0, 0x8c, 0xa3, 0x1e, 0x64, 0xef, 0x6d, 0x3d, 0xd8, 0xbb, 0xdf, 0xdb, 0xdc, 0xd8, 0xdb, 0xdc, 0xde, 0xdd, 0xde, 0x6a, 0x57,
0x05, 0xe4, 0x1a, 0x34, 0xfa, 0x61, 0x38, 0x66, 0xee, 0x6e, 0xaa, 0xd0, 0x75, 0x88, 0x31, 0x3f, 0xc8, 0x1c, 0xd4, 0x37, 0xee, 0x6e, 0xec, 0x6d, 0x3d, 0xdc, 0xdb, 0xde, 0x6a, 0x57, 0xe9, 0x5f,
0x57, 0x9f, 0xc7, 0x61, 0xd4, 0xa7, 0x42, 0x3e, 0x00, 0xa1, 0x7b, 0x0c, 0x61, 0xcc, 0x2f, 0xb6, 0x39, 0xb0, 0x8c, 0xa3, 0x1e, 0x64, 0x05, 0xe4, 0x3a, 0x34, 0xfa, 0x61, 0x38, 0xe1, 0xee, 0x6e,
0x97, 0x53, 0x70, 0xf1, 0x68, 0x70, 0x8c, 0x93, 0xac, 0xc0, 0xcc, 0x51, 0x44, 0xdd, 0xfe, 0x89, 0xaa, 0xd0, 0x4d, 0x88, 0x33, 0xbf, 0x50, 0x9f, 0x47, 0x61, 0xd4, 0x67, 0x52, 0x3e, 0x00, 0xa1,
0x90, 0x0c, 0x51, 0x22, 0x9f, 0x4c, 0xcf, 0x63, 0x7d, 0xb6, 0xfa, 0x3e, 0x1d, 0x20, 0xc7, 0xd4, 0x7b, 0x1c, 0xe1, 0xcc, 0x2f, 0xb7, 0x57, 0x50, 0x08, 0xf1, 0x68, 0x08, 0x4c, 0x90, 0xac, 0xc0,
0x9c, 0x79, 0x81, 0x6f, 0x09, 0x98, 0xc9, 0xbf, 0x7b, 0xe4, 0x06, 0x83, 0x30, 0xa0, 0x03, 0xe1, 0xcc, 0x61, 0xc4, 0xbc, 0xfe, 0xb1, 0x94, 0x0c, 0x59, 0x22, 0x9f, 0x4e, 0xcf, 0x63, 0x7d, 0xbe,
0xec, 0xa5, 0x80, 0x7d, 0x00, 0x2b, 0xd9, 0xf9, 0x09, 0xf9, 0x7a, 0x47, 0x93, 0x2f, 0xee, 0x7b, 0xfa, 0x23, 0x36, 0x40, 0x8e, 0xa9, 0xb9, 0xf3, 0x12, 0xdf, 0x94, 0x30, 0x97, 0x7f, 0xef, 0xd0,
0x75, 0xa7, 0xef, 0xa6, 0x26, 0x6b, 0xff, 0x62, 0x41, 0x85, 0x99, 0xe2, 0xe9, 0x66, 0x5b, 0xf7, 0x0b, 0x06, 0x61, 0xc0, 0x06, 0xd2, 0xd9, 0x4b, 0x01, 0xba, 0x0f, 0x2b, 0xd9, 0xf9, 0x49, 0xf9,
0xae, 0xca, 0xb9, 0x80, 0x1e, 0x1e, 0xf1, 0xb8, 0x72, 0xe6, 0x06, 0x4c, 0x43, 0xd2, 0xfa, 0x88, 0x7a, 0xc7, 0x90, 0x2f, 0xe1, 0x7b, 0x75, 0xcf, 0xdf, 0x4d, 0x43, 0xd6, 0xfe, 0xde, 0x81, 0x0a,
0xf6, 0x4f, 0x71, 0xc6, 0xaa, 0x9e, 0x21, 0x4c, 0x40, 0x98, 0xeb, 0x8b, 0x5f, 0x0b, 0x01, 0x91, 0x37, 0xc5, 0xe7, 0x9b, 0x6d, 0xd3, 0xbb, 0x2a, 0xe7, 0xe2, 0x7d, 0x78, 0xc4, 0x13, 0xca, 0x59,
0x65, 0x59, 0x87, 0x5f, 0xce, 0xa6, 0x75, 0xf8, 0x5d, 0x07, 0x66, 0xbd, 0xe0, 0x28, 0x9c, 0x04, 0x18, 0x30, 0x03, 0x49, 0xeb, 0x23, 0xd6, 0x3f, 0xc1, 0x19, 0xeb, 0x7a, 0x8e, 0x70, 0x01, 0xe1,
0x03, 0x14, 0x88, 0x9a, 0x23, 0x8b, 0x18, 0x42, 0x44, 0x41, 0xf5, 0x46, 0x92, 0xfd, 0x53, 0xc0, 0xae, 0x2f, 0x7e, 0x2d, 0x05, 0x44, 0x95, 0x55, 0x1d, 0x7e, 0x39, 0x9b, 0xd6, 0xe1, 0x77, 0x1d,
0x26, 0xec, 0x24, 0x19, 0xa3, 0xeb, 0xa1, 0xa2, 0x59, 0xef, 0xc0, 0x82, 0x86, 0xa5, 0x6e, 0xec, 0x98, 0xf5, 0x83, 0xc3, 0x70, 0x1a, 0x0c, 0x50, 0x20, 0x6a, 0xae, 0x2a, 0x62, 0x84, 0x11, 0x05,
0x98, 0x01, 0x19, 0x37, 0x16, 0x7d, 0x16, 0x5e, 0x63, 0xb7, 0xa1, 0x75, 0x9f, 0x26, 0x0f, 0x82, 0xd5, 0x1f, 0x2b, 0xf6, 0x4f, 0x01, 0x4a, 0xf8, 0x49, 0x32, 0x46, 0xd7, 0x43, 0x07, 0xbb, 0xde,
0xe3, 0x50, 0xb6, 0xf4, 0xbb, 0x15, 0x98, 0x57, 0x90, 0x68, 0x68, 0x0d, 0xe6, 0xbd, 0x01, 0x0d, 0x81, 0x05, 0x03, 0x4b, 0xdd, 0xd8, 0x09, 0x07, 0x32, 0x6e, 0x2c, 0xfa, 0x2c, 0xa2, 0x86, 0xb6,
0x12, 0x2f, 0x39, 0xef, 0x19, 0x07, 0xd6, 0x2c, 0xcc, 0x7c, 0x3d, 0xd7, 0xf7, 0x5c, 0x19, 0x34, 0xa1, 0x75, 0x9f, 0x25, 0x0f, 0x82, 0xa3, 0x50, 0xb5, 0xf4, 0x9b, 0x15, 0x98, 0xd7, 0x90, 0x6c,
0xe5, 0x05, 0x76, 0x80, 0x63, 0x86, 0x48, 0xda, 0x16, 0xb5, 0xc5, 0xfc, 0x9c, 0x5c, 0x58, 0xc7, 0x68, 0x15, 0xe6, 0xfd, 0x01, 0x0b, 0x12, 0x3f, 0x39, 0xeb, 0x59, 0x07, 0xd6, 0x2c, 0xcc, 0x7d,
0x94, 0x01, 0xc3, 0x85, 0xb6, 0x57, 0x9f, 0x70, 0x9f, 0xa7, 0xa8, 0x8a, 0xad, 0x1a, 0x6f, 0x89, 0x3d, 0x6f, 0xe4, 0x7b, 0x2a, 0xa6, 0x2a, 0x0a, 0xfc, 0x00, 0xc7, 0x0d, 0x91, 0xb2, 0x2d, 0x7a,
0x4d, 0xb9, 0xca, 0x8d, 0x95, 0x02, 0x72, 0x51, 0xc9, 0x19, 0xae, 0xaa, 0xb2, 0x51, 0x49, 0x2d, 0x8b, 0xc5, 0x39, 0xb9, 0xb0, 0x8e, 0x2b, 0x03, 0x8e, 0x4b, 0x6d, 0xaf, 0x3f, 0x11, 0x3e, 0x4f,
0xb2, 0x59, 0xcb, 0x45, 0x36, 0x99, 0x2a, 0x3b, 0x0f, 0xfa, 0x74, 0xd0, 0x4b, 0xc2, 0x1e, 0xaa, 0x51, 0x15, 0x5f, 0x35, 0xd1, 0x12, 0x9f, 0x72, 0x55, 0x18, 0x2b, 0x0d, 0xe4, 0x82, 0x96, 0x33,
0x5c, 0xdc, 0x9d, 0x9a, 0x93, 0x85, 0xc9, 0x15, 0x98, 0x4d, 0x68, 0x9c, 0x04, 0x34, 0x41, 0xad, 0x42, 0x55, 0x65, 0x83, 0x96, 0x46, 0xe0, 0xb3, 0x96, 0x0b, 0x7c, 0x72, 0x55, 0x76, 0x16, 0xf4,
0x54, 0xc3, 0xf8, 0x89, 0x84, 0x98, 0x83, 0x3a, 0x89, 0xbc, 0xb8, 0xd3, 0xc4, 0x98, 0x25, 0xfe, 0xd9, 0xa0, 0x97, 0x84, 0x3d, 0x54, 0xb9, 0xb8, 0x3b, 0x35, 0x37, 0x0b, 0x93, 0xab, 0x30, 0x9b,
0x4f, 0x3e, 0x0d, 0xcb, 0x47, 0x34, 0x4e, 0x7a, 0x27, 0xd4, 0x1d, 0xd0, 0x08, 0x77, 0x9a, 0x07, 0xb0, 0x38, 0x09, 0x98, 0x88, 0x46, 0xd5, 0x30, 0x7e, 0xa2, 0x20, 0xee, 0xa0, 0x4e, 0x23, 0x3f,
0x47, 0xb9, 0xdd, 0x2f, 0xae, 0x64, 0x3c, 0x74, 0x4a, 0xa3, 0xd8, 0x0b, 0x03, 0xb4, 0xf8, 0x75, 0xee, 0x34, 0x31, 0xa4, 0x89, 0xff, 0x93, 0xcf, 0xc2, 0xf2, 0x21, 0x8b, 0x93, 0xde, 0x31, 0xf3,
0x47, 0x16, 0x59, 0x7b, 0x6c, 0xf2, 0xca, 0x5e, 0xaa, 0x15, 0x9c, 0xc7, 0x89, 0x17, 0x57, 0x92, 0x06, 0x2c, 0xc2, 0x9d, 0x16, 0xb1, 0x53, 0x61, 0xf7, 0x8b, 0x2b, 0x39, 0x0f, 0x9d, 0xb0, 0x28,
0xeb, 0x30, 0x83, 0x13, 0x88, 0x3b, 0x6d, 0x23, 0x08, 0xb4, 0xc5, 0x40, 0x47, 0xd4, 0x7d, 0xa1, 0xf6, 0xc3, 0x00, 0x2d, 0x7e, 0xdd, 0x55, 0x45, 0xde, 0x1e, 0x9f, 0xbc, 0xb6, 0x97, 0x7a, 0x05,
0x52, 0x6b, 0xb4, 0x9b, 0xf6, 0x67, 0xa1, 0x8a, 0x30, 0xdb, 0x74, 0xbe, 0x18, 0x9c, 0x29, 0x78, 0xe7, 0x71, 0xe2, 0xc5, 0x95, 0xe4, 0x06, 0xcc, 0xe0, 0x04, 0xe2, 0x4e, 0xdb, 0x0a, 0x02, 0x6d,
0x81, 0x0d, 0x2d, 0xa0, 0xc9, 0x59, 0x18, 0x3d, 0x95, 0x11, 0x74, 0x51, 0xb4, 0xbf, 0x89, 0x2e, 0x72, 0xd0, 0x95, 0x75, 0x5f, 0xaa, 0xd4, 0x1a, 0xed, 0x26, 0xfd, 0x3c, 0x54, 0x11, 0xe6, 0x9b,
0xbe, 0x8a, 0x28, 0x3f, 0x46, 0xff, 0x84, 0x1d, 0xd4, 0xf8, 0x52, 0xc7, 0x27, 0xae, 0x38, 0x75, 0x2e, 0x16, 0x43, 0x30, 0x85, 0x28, 0xf0, 0xa1, 0x05, 0x2c, 0x39, 0x0d, 0xa3, 0xa7, 0x2a, 0xc0,
0xd4, 0x10, 0x38, 0x3c, 0x71, 0x99, 0xda, 0x32, 0x76, 0x8f, 0x1f, 0xe4, 0x1a, 0x88, 0xed, 0xf2, 0x2e, 0x8b, 0xf4, 0xdb, 0xe8, 0xe2, 0xeb, 0x80, 0xf3, 0x63, 0xf4, 0x4f, 0xf8, 0x41, 0x4d, 0x2c,
0xcd, 0xbb, 0x0e, 0x2d, 0x19, 0xab, 0x8e, 0x7b, 0x3e, 0x3d, 0x4e, 0x64, 0x18, 0x26, 0x98, 0x8c, 0x75, 0x7c, 0xec, 0xc9, 0x53, 0x47, 0x0d, 0x81, 0x83, 0x63, 0x8f, 0xab, 0x2d, 0x6b, 0xf7, 0xc4,
0xf0, 0xb4, 0xb7, 0x47, 0x8f, 0x13, 0x7b, 0x1f, 0x16, 0x84, 0x2a, 0x79, 0x38, 0xa6, 0xb2, 0xeb, 0x41, 0xae, 0x81, 0xd8, 0x8e, 0xd8, 0xbc, 0x1b, 0xd0, 0x52, 0xa1, 0xec, 0xb8, 0x37, 0x62, 0x47,
0xcf, 0x15, 0x99, 0xe4, 0xc6, 0xed, 0x45, 0x53, 0xf7, 0xf0, 0xe8, 0xbc, 0x49, 0x69, 0x3b, 0x40, 0x89, 0x0a, 0xc3, 0x04, 0xd3, 0x31, 0x9e, 0xf6, 0x76, 0xd9, 0x51, 0x42, 0xf7, 0x60, 0x41, 0xaa,
0x74, 0xd5, 0x24, 0x1a, 0x14, 0x76, 0x51, 0x06, 0x9a, 0xc4, 0x74, 0x0c, 0x8c, 0xad, 0x4f, 0x3c, 0x92, 0x87, 0x13, 0xa6, 0xba, 0xfe, 0x42, 0x91, 0x49, 0x6e, 0xdc, 0x59, 0xb4, 0x75, 0x8f, 0x08,
0xe9, 0xf7, 0xe5, 0x0d, 0x03, 0x3b, 0x0e, 0xf3, 0xa2, 0xfd, 0x7b, 0x16, 0x2c, 0x62, 0x6b, 0xd2, 0xde, 0xdb, 0x94, 0xd4, 0x05, 0x62, 0xaa, 0x26, 0xd9, 0xa0, 0xb4, 0x8b, 0x2a, 0xd0, 0x24, 0xa7,
0xa9, 0x10, 0xea, 0xff, 0xdd, 0x8f, 0x31, 0xcc, 0x66, 0x5f, 0x0f, 0xbe, 0x2d, 0x41, 0x55, 0x37, 0x63, 0x61, 0x7c, 0x7d, 0xe2, 0x69, 0xbf, 0xaf, 0x2e, 0x20, 0xf8, 0x71, 0x58, 0x14, 0xe9, 0x6f,
0x08, 0xbc, 0xf0, 0xf1, 0x0f, 0xf5, 0x95, 0xec, 0xa1, 0xde, 0xfe, 0x75, 0x0b, 0x16, 0xb8, 0x4e, 0x39, 0xb0, 0x88, 0xad, 0x29, 0xa7, 0x42, 0xaa, 0xff, 0x77, 0x3f, 0xc1, 0x30, 0x9b, 0x7d, 0x33,
0x4e, 0xdc, 0x64, 0x12, 0x8b, 0xe9, 0xff, 0x1f, 0x98, 0xe3, 0xc6, 0x55, 0x48, 0xb5, 0x18, 0xe8, 0xf8, 0xb6, 0x04, 0x55, 0xd3, 0x20, 0x88, 0xc2, 0x27, 0x3f, 0xd4, 0x57, 0xb2, 0x87, 0x7a, 0xfa,
0x92, 0x52, 0x40, 0x88, 0x72, 0xe2, 0xdd, 0x4b, 0x8e, 0x49, 0x4c, 0xee, 0xa0, 0x83, 0x13, 0xf4, 0xcb, 0x0e, 0x2c, 0x08, 0x9d, 0x9c, 0x78, 0xc9, 0x34, 0x96, 0xd3, 0xff, 0x2f, 0x30, 0x27, 0x8c,
0x10, 0x15, 0x71, 0xd4, 0xcb, 0x05, 0x66, 0x40, 0x7d, 0xaf, 0x91, 0xdf, 0xad, 0xc1, 0x0c, 0xf7, 0xab, 0x94, 0x6a, 0x39, 0xd0, 0x25, 0xad, 0x80, 0x10, 0x15, 0xc4, 0x3b, 0x97, 0x5c, 0x9b, 0x98,
0x77, 0xed, 0xfb, 0x30, 0x67, 0x74, 0x64, 0x04, 0x14, 0x9a, 0x3c, 0xa0, 0x90, 0x8b, 0xdc, 0x95, 0xbc, 0x8f, 0x0e, 0x4e, 0xd0, 0x43, 0x54, 0xc6, 0x51, 0xaf, 0x14, 0x98, 0x01, 0xfd, 0xbd, 0x41,
0x0a, 0x22, 0x77, 0x7f, 0x50, 0x06, 0xc2, 0x98, 0x25, 0xb3, 0x1b, 0xcc, 0xe1, 0x0e, 0x07, 0xc6, 0x7e, 0xb7, 0x06, 0x33, 0xc2, 0xdf, 0xa5, 0xf7, 0x61, 0xce, 0xea, 0xc8, 0x0a, 0x28, 0x34, 0x45,
0xf1, 0xa9, 0xe9, 0xe8, 0x10, 0xb9, 0x09, 0x44, 0x2b, 0xca, 0x00, 0x2c, 0xb7, 0x3e, 0x05, 0x35, 0x40, 0x21, 0x17, 0xb9, 0x2b, 0x15, 0x44, 0xee, 0x7e, 0xa7, 0x0c, 0x84, 0x33, 0x4b, 0x66, 0x37,
0x4c, 0x4d, 0x0a, 0xe3, 0x2d, 0xcc, 0xac, 0x38, 0x28, 0xf2, 0x65, 0x2f, 0xac, 0x63, 0x06, 0x66, 0xb8, 0xc3, 0x1d, 0x0e, 0xac, 0xe3, 0x53, 0xd3, 0x35, 0x21, 0x72, 0x0b, 0x88, 0x51, 0x54, 0x01,
0x3c, 0x89, 0x4f, 0x30, 0x6c, 0x26, 0x0e, 0x58, 0xb2, 0x9c, 0xdd, 0xdf, 0x99, 0x0b, 0xf7, 0x77, 0x58, 0x61, 0x7d, 0x0a, 0x6a, 0xb8, 0x9a, 0x94, 0xc6, 0x5b, 0x9a, 0x59, 0x79, 0x50, 0x14, 0xcb,
0x36, 0x17, 0xb4, 0xd1, 0x5c, 0xfc, 0x9a, 0xe9, 0xe2, 0x5f, 0x87, 0xb9, 0x11, 0x73, 0x39, 0x13, 0x5e, 0x58, 0xc7, 0x0d, 0xcc, 0x64, 0x1a, 0x1f, 0x63, 0xd8, 0x4c, 0x1e, 0xb0, 0x54, 0x39, 0xbb,
0xbf, 0xdf, 0x1b, 0xb1, 0xde, 0xc5, 0x79, 0xca, 0x00, 0xc9, 0x3a, 0xb4, 0x85, 0xbb, 0x91, 0x9e, 0xbf, 0x33, 0x17, 0xee, 0xef, 0x6c, 0x2e, 0x68, 0x63, 0xb8, 0xf8, 0x35, 0xdb, 0xc5, 0xbf, 0x01,
0x23, 0x00, 0xd7, 0x38, 0x87, 0x33, 0xfd, 0x9d, 0x86, 0x71, 0x1a, 0x38, 0xd8, 0x14, 0x60, 0x27, 0x73, 0x63, 0xee, 0x72, 0x26, 0xa3, 0x7e, 0x6f, 0xcc, 0x7b, 0x97, 0xe7, 0x29, 0x0b, 0x24, 0x6b,
0xaf, 0x98, 0x71, 0x48, 0x6f, 0x12, 0x88, 0xeb, 0x28, 0x3a, 0xc0, 0x93, 0x54, 0xcd, 0xc9, 0x57, 0xd0, 0x96, 0xee, 0x46, 0x7a, 0x8e, 0x10, 0xe1, 0xf9, 0x1c, 0xce, 0xf5, 0x77, 0x1a, 0xc6, 0x69,
0xd8, 0xbf, 0x62, 0x41, 0x9b, 0xed, 0x99, 0xc1, 0x96, 0xef, 0x01, 0x4a, 0xc5, 0x4b, 0x72, 0xa5, 0xe0, 0x60, 0x53, 0x80, 0x9f, 0xbc, 0x62, 0xce, 0x21, 0xbd, 0x69, 0x20, 0x6f, 0xab, 0xd8, 0x00,
0x41, 0x4b, 0xde, 0x85, 0x3a, 0x96, 0xc3, 0x31, 0x0d, 0x04, 0x4f, 0x76, 0x4c, 0x9e, 0x4c, 0xf5, 0x4f, 0x52, 0x35, 0x37, 0x5f, 0x41, 0x7f, 0xc1, 0x81, 0x36, 0xdf, 0x33, 0x8b, 0x2d, 0xdf, 0x03,
0xc9, 0xee, 0x25, 0x27, 0x25, 0xd6, 0x38, 0xf2, 0xaf, 0x2d, 0x68, 0x88, 0x5e, 0x7e, 0xe0, 0x30, 0x94, 0x8a, 0x97, 0xe4, 0x4a, 0x8b, 0x96, 0xbc, 0x0b, 0x75, 0x2c, 0x87, 0x13, 0x16, 0x48, 0x9e,
0x41, 0x57, 0xbb, 0x3f, 0xe4, 0x9c, 0x94, 0x5e, 0x17, 0xae, 0xc1, 0xfc, 0xc8, 0x4d, 0x26, 0x11, 0xec, 0xd8, 0x3c, 0x99, 0xea, 0x93, 0x9d, 0x4b, 0x6e, 0x4a, 0x6c, 0x70, 0xe4, 0x9f, 0x3b, 0xd0,
0xb3, 0xc7, 0x46, 0x88, 0x20, 0x0b, 0x33, 0xe3, 0x8a, 0xaa, 0x33, 0xee, 0x25, 0x9e, 0xdf, 0x93, 0x90, 0xbd, 0xfc, 0xc8, 0x61, 0x82, 0xae, 0x71, 0xbd, 0x28, 0x38, 0x29, 0xbd, 0x4d, 0x5c, 0x85,
0xb5, 0xe2, 0xa6, 0xae, 0xa8, 0x8a, 0x69, 0x90, 0x38, 0x71, 0x87, 0x54, 0xd8, 0x4d, 0x5e, 0xb0, 0xf9, 0xb1, 0x97, 0x4c, 0x23, 0x6e, 0x8f, 0xad, 0x10, 0x41, 0x16, 0xe6, 0xc6, 0x15, 0x55, 0x67,
0x3b, 0xb0, 0x22, 0x26, 0x94, 0x71, 0x55, 0xed, 0x3f, 0x6d, 0xc2, 0x6a, 0xae, 0x4a, 0x5d, 0xe7, 0xdc, 0x4b, 0xfc, 0x51, 0x4f, 0xd5, 0xca, 0x8b, 0xbc, 0xa2, 0x2a, 0xae, 0x41, 0xe2, 0xc4, 0x1b,
0x8b, 0xb3, 0xaf, 0xef, 0x8d, 0x8e, 0x42, 0xe5, 0xe7, 0x5b, 0xfa, 0xb1, 0xd8, 0xa8, 0x22, 0x43, 0x32, 0x69, 0x37, 0x45, 0x81, 0x76, 0x60, 0x45, 0x4e, 0x28, 0xe3, 0xaa, 0xd2, 0x3f, 0x6c, 0xc2,
0x58, 0x96, 0x0e, 0x02, 0x5b, 0xd3, 0xd4, 0x98, 0x95, 0xd0, 0x4a, 0xbd, 0x6d, 0x6e, 0x61, 0xb6, 0xe5, 0x5c, 0x95, 0xbe, 0xed, 0x97, 0x67, 0xdf, 0x91, 0x3f, 0x3e, 0x0c, 0xb5, 0x9f, 0xef, 0x98,
0x43, 0x89, 0xeb, 0x42, 0x5c, 0xdc, 0x1e, 0x39, 0x81, 0x8e, 0xf2, 0x44, 0x84, 0xb2, 0xd6, 0xbc, 0xc7, 0x62, 0xab, 0x8a, 0x0c, 0x61, 0x59, 0x39, 0x08, 0x7c, 0x4d, 0x53, 0x63, 0x56, 0x42, 0x2b,
0x15, 0xd6, 0xd7, 0x5b, 0x17, 0xf4, 0x65, 0x78, 0xb6, 0xce, 0xd4, 0xd6, 0xc8, 0x39, 0x5c, 0x95, 0xf5, 0xb6, 0xbd, 0x85, 0xd9, 0x0e, 0x15, 0x6e, 0x0a, 0x71, 0x71, 0x7b, 0xe4, 0x18, 0x3a, 0xda,
0x75, 0xa8, 0x8d, 0xf3, 0xfd, 0x55, 0x5e, 0x6a, 0x6e, 0xe8, 0xb3, 0x9b, 0x9d, 0x5e, 0xd0, 0x30, 0x13, 0x91, 0xca, 0xda, 0xf0, 0x56, 0x78, 0x5f, 0x6f, 0x5d, 0xd0, 0x97, 0xe5, 0xd9, 0xba, 0xe7,
0xf9, 0x10, 0x56, 0xce, 0x5c, 0x2f, 0x91, 0xc3, 0xd2, 0x7c, 0x83, 0x2a, 0x76, 0x79, 0xfb, 0x82, 0xb6, 0x46, 0xce, 0xe0, 0x9a, 0xaa, 0x43, 0x6d, 0x9c, 0xef, 0xaf, 0xf2, 0x52, 0x73, 0x43, 0x9f,
0x2e, 0x9f, 0xf0, 0x8f, 0x0d, 0x13, 0x35, 0xa5, 0xc5, 0xee, 0x5f, 0x5a, 0xd0, 0x32, 0xdb, 0x61, 0xdd, 0xee, 0xf4, 0x82, 0x86, 0xc9, 0x47, 0xb0, 0x72, 0xea, 0xf9, 0x89, 0x1a, 0x96, 0xe1, 0x1b,
0x6c, 0x2a, 0x64, 0x5f, 0xea, 0x40, 0xe9, 0x4d, 0x66, 0xe0, 0xfc, 0x51, 0xb9, 0x54, 0x74, 0x54, 0x54, 0xb1, 0xcb, 0x3b, 0x17, 0x74, 0xf9, 0x44, 0x7c, 0x6c, 0x99, 0xa8, 0x73, 0x5a, 0xec, 0xfe,
0xd6, 0x0f, 0xa8, 0xe5, 0x8b, 0x62, 0x4c, 0x95, 0x97, 0x8b, 0x31, 0x55, 0x8b, 0x62, 0x4c, 0xdd, 0xa9, 0x03, 0x2d, 0xbb, 0x1d, 0xce, 0xa6, 0x52, 0xf6, 0x95, 0x0e, 0x54, 0xde, 0x64, 0x06, 0xce,
0xff, 0xb0, 0x80, 0xe4, 0x79, 0x89, 0xdc, 0xe7, 0x67, 0xf5, 0x80, 0xfa, 0x42, 0xa5, 0xfc, 0xef, 0x1f, 0x95, 0x4b, 0x45, 0x47, 0x65, 0xf3, 0x80, 0x5a, 0xbe, 0x28, 0xc6, 0x54, 0x79, 0xb9, 0x18,
0x97, 0xe3, 0x47, 0xb9, 0x76, 0xf2, 0x6b, 0x26, 0x18, 0xfa, 0x55, 0xbb, 0xee, 0xec, 0xcc, 0x39, 0x53, 0xb5, 0x28, 0xc6, 0xd4, 0xfd, 0x17, 0x07, 0x48, 0x9e, 0x97, 0xc8, 0x7d, 0x71, 0x56, 0x0f,
0x45, 0x55, 0x99, 0xa8, 0x57, 0xe5, 0xe2, 0xa8, 0x57, 0xf5, 0xe2, 0xa8, 0xd7, 0x4c, 0x36, 0xea, 0xd8, 0x48, 0xaa, 0x94, 0xff, 0xfc, 0x72, 0xfc, 0xa8, 0xd6, 0x4e, 0x7d, 0xcd, 0x05, 0xc3, 0xbc,
0xd5, 0xfd, 0x19, 0x0b, 0x16, 0x0b, 0x36, 0xfd, 0x47, 0x37, 0x71, 0xb6, 0x4d, 0x86, 0x2e, 0x28, 0x89, 0x37, 0x9d, 0x9d, 0x39, 0xb7, 0xa8, 0x2a, 0x13, 0xf5, 0xaa, 0x5c, 0x1c, 0xf5, 0xaa, 0x5e,
0x89, 0x6d, 0xd2, 0xc1, 0xee, 0x4f, 0xc0, 0x9c, 0xc1, 0xe8, 0x3f, 0xba, 0xfe, 0xb3, 0xfe, 0x1a, 0x1c, 0xf5, 0x9a, 0xc9, 0x46, 0xbd, 0xba, 0xff, 0xcf, 0x81, 0xc5, 0x82, 0x4d, 0xff, 0xc9, 0x4d,
0xe7, 0x33, 0x03, 0xeb, 0xfe, 0x6b, 0x09, 0x48, 0x5e, 0xd8, 0xfe, 0x47, 0xc7, 0x90, 0x5f, 0xa7, 0x9c, 0x6f, 0x93, 0xa5, 0x0b, 0x4a, 0x72, 0x9b, 0x4c, 0xb0, 0xfb, 0xbf, 0x60, 0xce, 0x62, 0xf4,
0x72, 0xc1, 0x3a, 0xfd, 0xb7, 0xda, 0x81, 0xb7, 0x60, 0x41, 0xe4, 0xfe, 0x68, 0x11, 0x1a, 0xce, 0x9f, 0x5c, 0xff, 0x59, 0x7f, 0x4d, 0xf0, 0x99, 0x85, 0x75, 0xff, 0xa1, 0x04, 0x24, 0x2f, 0x6c,
0x31, 0xf9, 0x0a, 0xe6, 0xb1, 0x9a, 0x21, 0xc7, 0x9a, 0x91, 0x4f, 0xa1, 0x19, 0xc3, 0x4c, 0xe4, 0xff, 0xa1, 0x63, 0xc8, 0xaf, 0x53, 0xb9, 0x60, 0x9d, 0xfe, 0x5d, 0xed, 0xc0, 0x5b, 0xb0, 0x20,
0xd1, 0xee, 0x42, 0x47, 0xac, 0xd0, 0xce, 0x29, 0x0d, 0x92, 0xc3, 0xc9, 0x11, 0x4f, 0xa0, 0xf1, 0x53, 0x83, 0x8c, 0x08, 0x8d, 0xe0, 0x98, 0x7c, 0x05, 0xf7, 0x58, 0xed, 0x90, 0x63, 0xcd, 0x4a,
0xc2, 0xc0, 0xfe, 0x5e, 0x59, 0x39, 0xdd, 0x58, 0x29, 0xcc, 0xfb, 0xa7, 0xa1, 0xa9, 0x2b, 0x73, 0xb7, 0x30, 0x8c, 0x61, 0x26, 0xf2, 0x48, 0xbb, 0xd0, 0x91, 0x2b, 0xb4, 0x7d, 0xc2, 0x82, 0xe4,
0xb1, 0x1d, 0x99, 0x00, 0x1d, 0x33, 0xec, 0x3a, 0x15, 0xd9, 0x86, 0x16, 0xaa, 0xac, 0x81, 0xfa, 0x60, 0x7a, 0x28, 0xf2, 0x6b, 0xfc, 0x30, 0xa0, 0x3f, 0x28, 0x6b, 0xa7, 0x1b, 0x2b, 0xa5, 0x79,
0xae, 0x84, 0xdf, 0xbd, 0x20, 0xf0, 0xb0, 0x7b, 0xc9, 0xc9, 0x7c, 0x43, 0x3e, 0x0f, 0x2d, 0xf3, 0xff, 0x2c, 0x34, 0x4d, 0x65, 0x2e, 0xb7, 0x23, 0x13, 0xa0, 0xe3, 0x86, 0xdd, 0xa4, 0x22, 0x5b,
0x28, 0x25, 0x7c, 0x84, 0x22, 0xdf, 0x9c, 0x7d, 0x6e, 0x12, 0x93, 0x4d, 0x68, 0x67, 0xcf, 0x62, 0xd0, 0x42, 0x95, 0x35, 0xd0, 0xdf, 0x95, 0xf0, 0xbb, 0x17, 0x04, 0x1e, 0x76, 0x2e, 0xb9, 0x99,
0xe2, 0x72, 0x7d, 0x4a, 0x03, 0x39, 0x72, 0xf2, 0xae, 0xb8, 0x7b, 0xaa, 0x62, 0x10, 0xec, 0xba, 0x6f, 0xc8, 0x17, 0xa1, 0x65, 0x1f, 0xa5, 0xa4, 0x8f, 0x50, 0xe4, 0x9b, 0xf3, 0xcf, 0x6d, 0x62,
0xf9, 0x99, 0xb6, 0x4c, 0x37, 0xf9, 0x1f, 0xed, 0x36, 0xea, 0x6b, 0x00, 0x29, 0x46, 0xda, 0xd0, 0xb2, 0x01, 0xed, 0xec, 0x59, 0x4c, 0x5e, 0xae, 0x9f, 0xd3, 0x40, 0x8e, 0x9c, 0xbc, 0x2b, 0xef,
0x7c, 0x78, 0xb0, 0xb3, 0xdf, 0xdb, 0xda, 0xdd, 0xdc, 0xdf, 0xdf, 0xd9, 0x6b, 0x5f, 0x22, 0x04, 0x9e, 0xaa, 0x18, 0x04, 0xbb, 0x61, 0x7f, 0x66, 0x2c, 0xd3, 0x2d, 0xf1, 0xc7, 0xb8, 0x8d, 0xfa,
0x5a, 0x18, 0xbf, 0xda, 0x56, 0x98, 0xc5, 0xb0, 0xcd, 0x2d, 0x1e, 0x1b, 0x13, 0x58, 0x89, 0x2c, 0x06, 0x40, 0x8a, 0x91, 0x36, 0x34, 0x1f, 0xee, 0x6f, 0xef, 0xf5, 0x36, 0x77, 0x36, 0xf6, 0xf6,
0x41, 0xfb, 0xc1, 0x7e, 0x06, 0x2d, 0xdf, 0xad, 0x2b, 0xf9, 0xb0, 0x57, 0x60, 0x89, 0xe7, 0x87, 0xb6, 0x77, 0xdb, 0x97, 0x08, 0x81, 0x16, 0xc6, 0xaf, 0xb6, 0x34, 0xe6, 0x70, 0x6c, 0x63, 0x53,
0xdd, 0xe5, 0xec, 0x21, 0x7d, 0x85, 0xdf, 0xb4, 0x60, 0x39, 0x53, 0x91, 0xe6, 0x69, 0x70, 0x77, 0xc4, 0xc6, 0x24, 0x56, 0x22, 0x4b, 0xd0, 0x7e, 0xb0, 0x97, 0x41, 0xcb, 0x77, 0xeb, 0x5a, 0x3e,
0xc0, 0xf4, 0x11, 0x4c, 0x90, 0xf1, 0xa4, 0xf2, 0xfc, 0x32, 0x1a, 0x24, 0x5f, 0xc1, 0x78, 0x5e, 0xe8, 0x0a, 0x2c, 0x89, 0xf4, 0xb1, 0xbb, 0x82, 0x3d, 0x94, 0xaf, 0xf0, 0xab, 0x0e, 0x2c, 0x67,
0xf3, 0x14, 0x33, 0x92, 0x54, 0x54, 0x65, 0xaf, 0xf2, 0x2c, 0xb6, 0x80, 0xfa, 0x99, 0x81, 0x1f, 0x2a, 0xd2, 0x3c, 0x0d, 0xe1, 0x0e, 0xd8, 0x3e, 0x82, 0x0d, 0x72, 0x9e, 0xd4, 0x9e, 0x5f, 0x46,
0xf3, 0xbc, 0x33, 0xbd, 0x22, 0xbd, 0xcb, 0x33, 0x87, 0x2c, 0x8b, 0xcc, 0xc9, 0x37, 0x5c, 0x0f, 0x83, 0xe4, 0x2b, 0x38, 0xcf, 0x1b, 0x9e, 0x62, 0x46, 0x92, 0x8a, 0xaa, 0xe8, 0x65, 0x91, 0xe4,
0x73, 0xbc, 0x85, 0x75, 0xf6, 0x9f, 0x95, 0x80, 0x7c, 0x69, 0x42, 0xa3, 0x73, 0x4c, 0xb1, 0x50, 0x16, 0xb0, 0x51, 0x66, 0xe0, 0x47, 0x22, 0x2d, 0xcd, 0xac, 0x48, 0xef, 0xf2, 0xec, 0x21, 0xab,
0xe1, 0xc0, 0xd5, 0x6c, 0xb0, 0x6b, 0x66, 0x3c, 0x39, 0xfa, 0x22, 0x3d, 0x97, 0xf9, 0x3f, 0x25, 0x22, 0x77, 0xf2, 0x2d, 0xd7, 0xc3, 0x1e, 0x6f, 0x61, 0x1d, 0xfd, 0xa3, 0x12, 0x90, 0xaf, 0x4c,
0x3d, 0xff, 0x07, 0xd8, 0xe1, 0x58, 0x25, 0x78, 0x58, 0x6b, 0x55, 0x0c, 0x49, 0xd4, 0x83, 0xc9, 0x59, 0x74, 0x86, 0x29, 0x16, 0x3a, 0x1c, 0x78, 0x39, 0x1b, 0xec, 0x9a, 0x99, 0x4c, 0x0f, 0xbf,
0x88, 0x37, 0x5a, 0x98, 0xa6, 0x53, 0xb9, 0x38, 0x4d, 0xa7, 0x7a, 0x51, 0x9a, 0xce, 0x27, 0x60, 0xcc, 0xce, 0x54, 0x7a, 0x50, 0xc9, 0x4c, 0x0f, 0x02, 0x7e, 0x38, 0xd6, 0x09, 0x1e, 0xce, 0x6a,
0xce, 0x1b, 0x06, 0x21, 0x53, 0x0b, 0xcc, 0xb0, 0xc7, 0x9d, 0x99, 0x6b, 0x65, 0x76, 0x18, 0x16, 0x15, 0x43, 0x12, 0xf5, 0x60, 0x3a, 0x16, 0x8d, 0x16, 0x66, 0xf1, 0x54, 0x2e, 0xce, 0xe2, 0xa9,
0xe0, 0x3e, 0xc3, 0xc8, 0x67, 0x53, 0x22, 0x3a, 0x18, 0x62, 0xca, 0x97, 0xae, 0x28, 0x76, 0x06, 0x5e, 0x94, 0xc5, 0xf3, 0x29, 0x98, 0xf3, 0x87, 0x41, 0xc8, 0xd5, 0x02, 0x37, 0xec, 0x71, 0x67,
0x43, 0xba, 0x17, 0xf6, 0xdd, 0x24, 0x8c, 0xd4, 0x87, 0x0c, 0x8b, 0xd9, 0xa9, 0x3f, 0x0e, 0x27, 0xe6, 0x7a, 0x99, 0x1f, 0x86, 0x25, 0xb8, 0xc7, 0x31, 0xf2, 0xf9, 0x94, 0x88, 0x0d, 0x86, 0x98,
0xcc, 0xcd, 0x91, 0x4b, 0xc1, 0xc3, 0x36, 0x4d, 0x8e, 0x1e, 0xe0, 0x82, 0xd8, 0x5f, 0x81, 0x86, 0x11, 0x66, 0x2a, 0x8a, 0xed, 0xc1, 0x90, 0xed, 0x86, 0x7d, 0x2f, 0x09, 0x23, 0xfd, 0x21, 0xc7,
0xd6, 0x04, 0x79, 0x95, 0x9f, 0x30, 0x99, 0x0b, 0x21, 0xce, 0x83, 0x15, 0xee, 0xb1, 0x07, 0xd4, 0x62, 0x7e, 0xea, 0x8f, 0xc3, 0x29, 0x77, 0x73, 0xd4, 0x52, 0x88, 0xb0, 0x4d, 0x53, 0xa0, 0xfb,
0x7f, 0x30, 0x20, 0x6f, 0xc2, 0xc2, 0xc0, 0x8b, 0x28, 0xa6, 0x76, 0xf5, 0x22, 0x7a, 0x4a, 0xa3, 0xb8, 0x20, 0xf4, 0x6b, 0xd0, 0x30, 0x9a, 0xc0, 0x74, 0x21, 0xe9, 0x42, 0xc8, 0xf3, 0x60, 0x45,
0x58, 0x9e, 0x9c, 0xdb, 0xaa, 0xc2, 0xe1, 0xb8, 0x7d, 0x07, 0x16, 0x8d, 0xad, 0x51, 0x9c, 0x2b, 0x78, 0xec, 0x01, 0x1b, 0x3d, 0x18, 0x90, 0x37, 0x61, 0x61, 0xe0, 0x47, 0x0c, 0x33, 0xbf, 0x7a,
0xb3, 0x69, 0xac, 0x7c, 0x36, 0x8d, 0xcc, 0xa4, 0xb1, 0x7f, 0xae, 0x04, 0xe5, 0xdd, 0x70, 0xac, 0x11, 0x3b, 0x61, 0x51, 0xac, 0x4e, 0xce, 0x6d, 0x5d, 0xe1, 0x0a, 0x9c, 0xbe, 0x0f, 0x8b, 0xd6,
0x47, 0xfb, 0x2d, 0x33, 0xda, 0x2f, 0x5c, 0xa0, 0x9e, 0xf2, 0x70, 0x84, 0x65, 0x34, 0x40, 0xb2, 0xd6, 0x68, 0xce, 0x55, 0xd9, 0x34, 0x4e, 0x3e, 0x9b, 0x46, 0x65, 0xd2, 0xd0, 0x9f, 0x2a, 0x41,
0x0e, 0x2d, 0x77, 0x94, 0xf4, 0x92, 0x90, 0xb9, 0x7c, 0x67, 0x6e, 0x34, 0xe0, 0xec, 0x8c, 0x5b, 0x79, 0x27, 0x9c, 0x98, 0xd1, 0x7e, 0xc7, 0x8e, 0xf6, 0x4b, 0x17, 0xa8, 0xa7, 0x3d, 0x1c, 0x69,
0x9c, 0xa9, 0x21, 0x4b, 0x50, 0x56, 0xbe, 0x02, 0x12, 0xb0, 0x22, 0x3b, 0x6f, 0xe0, 0x3d, 0xe2, 0x19, 0x2d, 0x90, 0xac, 0x41, 0xcb, 0x1b, 0x27, 0xbd, 0x24, 0xe4, 0x2e, 0xdf, 0xa9, 0x17, 0x0d,
0xb9, 0x88, 0x9c, 0x89, 0x12, 0x93, 0x16, 0xf3, 0x7b, 0x7e, 0xd8, 0xe3, 0x1a, 0xbf, 0xa8, 0x8a, 0x04, 0x3b, 0xe3, 0x16, 0x67, 0x6a, 0xc8, 0x12, 0x94, 0xb5, 0xaf, 0x80, 0x04, 0xbc, 0xc8, 0xcf,
0xb9, 0x63, 0x8c, 0x3b, 0x90, 0x4c, 0x84, 0x3c, 0x65, 0x59, 0x0f, 0xcf, 0xd6, 0xcc, 0x5b, 0xd5, 0x1b, 0x78, 0x8f, 0x78, 0x26, 0x23, 0x67, 0xb2, 0xc4, 0xa5, 0xc5, 0xfe, 0x5e, 0x1c, 0xf6, 0x84,
0x7f, 0xb6, 0xa0, 0x8a, 0x6b, 0xc3, 0xac, 0x17, 0x17, 0x6f, 0x15, 0xf0, 0xc7, 0x35, 0x99, 0x73, 0xc6, 0x2f, 0xaa, 0xe2, 0xee, 0x18, 0xe7, 0x0e, 0x24, 0x93, 0x21, 0x4f, 0x55, 0x36, 0xc3, 0xb3,
0xb2, 0x30, 0xb1, 0x8d, 0x24, 0xc1, 0x92, 0x9a, 0x90, 0x9e, 0x28, 0x78, 0x0d, 0xea, 0xbc, 0xa4, 0x35, 0xfb, 0x56, 0xf5, 0xef, 0x1c, 0xa8, 0xe2, 0xda, 0x70, 0xeb, 0x25, 0xc4, 0x5b, 0x07, 0xfc,
0x12, 0xe2, 0x38, 0xdf, 0x2b, 0x90, 0x5c, 0x85, 0xca, 0x49, 0x38, 0x96, 0xee, 0x36, 0xc8, 0xdb, 0x71, 0x4d, 0xe6, 0xdc, 0x2c, 0x4c, 0xa8, 0x95, 0x43, 0x58, 0xd2, 0x13, 0x32, 0xf3, 0x08, 0xaf,
0xb0, 0x70, 0xec, 0x20, 0x9e, 0x8e, 0x87, 0xb5, 0xc7, 0xa7, 0xc5, 0x9d, 0xa8, 0x2c, 0xcc, 0xdc, 0x43, 0x5d, 0x94, 0x74, 0xbe, 0x9c, 0xe0, 0x7b, 0x0d, 0x92, 0x6b, 0x50, 0x39, 0x0e, 0x27, 0xca,
0x48, 0xd5, 0xac, 0xbe, 0x4c, 0x19, 0xd4, 0x5e, 0x87, 0x79, 0xc6, 0xf5, 0x5a, 0xd4, 0x75, 0xaa, 0xdd, 0x06, 0x75, 0x1b, 0x16, 0x4e, 0x5c, 0xc4, 0xd3, 0xf1, 0xf0, 0xf6, 0xc4, 0xb4, 0x84, 0x13,
0x28, 0xdb, 0x3f, 0x69, 0x41, 0x4d, 0x12, 0x93, 0x35, 0xa8, 0x30, 0x11, 0xca, 0x1c, 0x5c, 0xd5, 0x95, 0x85, 0xb9, 0x1b, 0xa9, 0x9b, 0x35, 0x97, 0x29, 0x83, 0xd2, 0x35, 0x98, 0xe7, 0x5c, 0x6f,
0x2d, 0x38, 0xa3, 0x73, 0x90, 0x82, 0x39, 0x13, 0x18, 0x0c, 0x4b, 0xcf, 0x49, 0x32, 0x14, 0x96, 0x44, 0x5d, 0xcf, 0x15, 0x65, 0xfa, 0xbf, 0x1d, 0xa8, 0x29, 0x62, 0xb2, 0x0a, 0x15, 0x2e, 0x42,
0x1e, 0x03, 0xd4, 0x70, 0x33, 0xde, 0x73, 0x06, 0xb5, 0xbf, 0x6b, 0xc1, 0x9c, 0xd1, 0x07, 0xb9, 0x99, 0x83, 0xab, 0xbe, 0x05, 0xe7, 0x74, 0x2e, 0x52, 0x70, 0x67, 0x02, 0x83, 0x61, 0xe9, 0x39,
0x06, 0x0d, 0xdf, 0x8d, 0x13, 0x71, 0xb3, 0x28, 0xb6, 0x47, 0x87, 0xf4, 0x8d, 0x2e, 0x99, 0x71, 0x49, 0x85, 0xc2, 0xd2, 0x63, 0x80, 0x1e, 0x6e, 0xc6, 0x7b, 0xce, 0xa0, 0xf4, 0xfb, 0x0e, 0xcc,
0x78, 0x15, 0x21, 0x2e, 0xeb, 0x11, 0xe2, 0x5b, 0x50, 0x4f, 0x53, 0x39, 0x2b, 0x86, 0xec, 0xb3, 0x59, 0x7d, 0x90, 0xeb, 0xd0, 0x18, 0x79, 0x71, 0x22, 0x6f, 0x16, 0xe5, 0xf6, 0x98, 0x90, 0xb9,
0x1e, 0xe5, 0xfd, 0x7e, 0x4a, 0x84, 0x41, 0xc7, 0xd0, 0x0f, 0x23, 0x71, 0x69, 0xc5, 0x0b, 0xf6, 0xd1, 0x25, 0x3b, 0x0e, 0xaf, 0x23, 0xc4, 0x65, 0x33, 0x42, 0x7c, 0x1b, 0xea, 0x69, 0xa6, 0x67,
0x1d, 0x68, 0x68, 0xf4, 0x7a, 0x0c, 0xd2, 0x32, 0x62, 0x90, 0x2a, 0xf9, 0xa5, 0x94, 0x26, 0xbf, 0xc5, 0x92, 0x7d, 0xde, 0xa3, 0xba, 0xdf, 0x4f, 0x89, 0x30, 0xe8, 0x18, 0x8e, 0xc2, 0x48, 0x5e,
0xd8, 0xff, 0x66, 0xc1, 0x1c, 0xe3, 0x41, 0x2f, 0x18, 0x1e, 0x84, 0xbe, 0xd7, 0x3f, 0xc7, 0xbd, 0x5a, 0x89, 0x02, 0x7d, 0x1f, 0x1a, 0x06, 0xbd, 0x19, 0x83, 0x74, 0xac, 0x18, 0xa4, 0x4e, 0x7e,
0x97, 0xec, 0x26, 0x54, 0xa2, 0xe4, 0x45, 0x13, 0x66, 0x5c, 0x2f, 0x23, 0x1f, 0x42, 0x44, 0x55, 0x29, 0xa5, 0xc9, 0x2f, 0xf4, 0x1f, 0x1d, 0x98, 0xe3, 0x3c, 0xe8, 0x07, 0xc3, 0xfd, 0x70, 0xe4,
0x99, 0xc9, 0x30, 0x93, 0x80, 0x23, 0x37, 0x16, 0x62, 0x21, 0xbc, 0x36, 0x03, 0x64, 0x92, 0xc6, 0xf7, 0xcf, 0x70, 0xef, 0x15, 0xbb, 0x49, 0x95, 0xa8, 0x78, 0xd1, 0x86, 0x39, 0xd7, 0xab, 0xc8,
0x00, 0x4c, 0x65, 0x1a, 0x79, 0xbe, 0xef, 0x71, 0x5a, 0xee, 0xd3, 0x17, 0x55, 0xb1, 0x3e, 0x07, 0x87, 0x14, 0x51, 0x5d, 0xe6, 0x32, 0xcc, 0x25, 0xe0, 0xd0, 0x8b, 0xa5, 0x58, 0x48, 0xaf, 0xcd,
0x5e, 0xec, 0x1e, 0xa5, 0x17, 0x31, 0xaa, 0x8c, 0xe1, 0x19, 0xf7, 0x99, 0x16, 0x9e, 0x99, 0x41, 0x02, 0xb9, 0xa4, 0x71, 0x00, 0x53, 0x99, 0xc6, 0xfe, 0x68, 0xe4, 0x0b, 0x5a, 0xe1, 0xd3, 0x17,
0xbd, 0x62, 0x82, 0xf6, 0x1f, 0x97, 0xa0, 0x21, 0x5d, 0x84, 0xc1, 0x90, 0x8a, 0xbb, 0x45, 0x53, 0x55, 0xf1, 0x3e, 0x07, 0x7e, 0xec, 0x1d, 0xa6, 0x17, 0x31, 0xba, 0x8c, 0xe1, 0x19, 0xef, 0x99,
0x31, 0x6a, 0x88, 0xac, 0x37, 0x4e, 0x63, 0x1a, 0x92, 0x65, 0x8c, 0x72, 0x9e, 0x31, 0xae, 0x40, 0x11, 0x9e, 0x99, 0x41, 0xbd, 0x62, 0x83, 0xf4, 0xf7, 0x4b, 0xd0, 0x50, 0x2e, 0xc2, 0x60, 0xc8,
0x9d, 0x31, 0xe8, 0xdb, 0x78, 0xec, 0x13, 0xd9, 0xd1, 0x0a, 0x90, 0xb5, 0xb7, 0xb1, 0xb6, 0x9a, 0xe4, 0xdd, 0xa2, 0xad, 0x18, 0x0d, 0x44, 0xd5, 0x5b, 0xa7, 0x31, 0x03, 0xc9, 0x32, 0x46, 0x39,
0xd6, 0x22, 0xf0, 0xc2, 0x9b, 0xc8, 0x77, 0xa1, 0x29, 0x9a, 0xc1, 0x9d, 0x43, 0xcd, 0x93, 0x8a, 0xcf, 0x18, 0x57, 0xa1, 0xce, 0x19, 0xf4, 0x6d, 0x3c, 0xf6, 0xc9, 0xe4, 0x69, 0x0d, 0xa8, 0xda,
0x88, 0xb1, 0xab, 0x8e, 0x41, 0x29, 0xbf, 0xbc, 0x2d, 0xbf, 0xac, 0x5d, 0xf4, 0xa5, 0xa4, 0xb4, 0x3b, 0x58, 0x5b, 0x4d, 0x6b, 0x11, 0x78, 0xe1, 0x4d, 0xe4, 0xbb, 0xd0, 0x94, 0xcd, 0xe0, 0xce,
0xef, 0xab, 0x0b, 0xde, 0xfb, 0x91, 0x3b, 0x3e, 0x91, 0xb2, 0x7c, 0x0b, 0x16, 0xbd, 0xa0, 0xef, 0xa1, 0xe6, 0x49, 0x45, 0xc4, 0xda, 0x55, 0xd7, 0xa2, 0x54, 0x5f, 0xde, 0x51, 0x5f, 0xd6, 0x2e,
0x4f, 0x06, 0xb4, 0x37, 0x09, 0xdc, 0x20, 0x08, 0x27, 0x41, 0x9f, 0xca, 0xec, 0x97, 0xa2, 0x2a, 0xfa, 0x52, 0x51, 0xd2, 0xfb, 0xfa, 0x82, 0xf7, 0x7e, 0xe4, 0x4d, 0x8e, 0x95, 0x2c, 0xdf, 0x86,
0x7b, 0xa0, 0x72, 0x25, 0xb1, 0x21, 0xb2, 0x0e, 0x55, 0x6e, 0x2a, 0xb9, 0xed, 0x28, 0x16, 0x74, 0x45, 0x3f, 0xe8, 0x8f, 0xa6, 0x03, 0xd6, 0x9b, 0x06, 0x5e, 0x10, 0x84, 0xd3, 0xa0, 0xcf, 0x54,
0x4e, 0x42, 0xd6, 0xa0, 0xca, 0x2d, 0x66, 0xc9, 0x90, 0x1a, 0x6d, 0x57, 0x1d, 0x4e, 0xc0, 0xd4, 0xf6, 0x4b, 0x51, 0x15, 0x1d, 0xe8, 0x5c, 0x49, 0x6c, 0x88, 0xac, 0x41, 0x55, 0x98, 0x4a, 0x61,
0x0e, 0xe6, 0xc3, 0x9a, 0x6a, 0xc7, 0xb4, 0x3b, 0x33, 0x7d, 0x9e, 0x31, 0xbb, 0x04, 0x64, 0x9f, 0x3b, 0x8a, 0x05, 0x5d, 0x90, 0x90, 0x55, 0xa8, 0x0a, 0x8b, 0x59, 0xb2, 0xa4, 0xc6, 0xd8, 0x55,
0x4b, 0x8a, 0x7e, 0x37, 0xf4, 0xd3, 0x65, 0x68, 0x68, 0x30, 0xd3, 0x20, 0x43, 0x36, 0xe0, 0xde, 0x57, 0x10, 0x70, 0xb5, 0x83, 0xe9, 0xb2, 0xb6, 0xda, 0xb1, 0xed, 0xce, 0x4c, 0x1f, 0x13, 0x6a,
0xc0, 0x73, 0x47, 0x34, 0xa1, 0x91, 0x90, 0x8e, 0x0c, 0xca, 0xe8, 0xdc, 0xd3, 0x61, 0x2f, 0x9c, 0xe9, 0x12, 0x90, 0x3d, 0x21, 0x29, 0xe6, 0xdd, 0xd0, 0xff, 0x2d, 0x43, 0xc3, 0x80, 0xb9, 0x06,
0x24, 0xbd, 0x01, 0x1d, 0x46, 0x94, 0x5b, 0x53, 0x66, 0x9a, 0x0c, 0x94, 0xd1, 0x31, 0xfe, 0xd4, 0x19, 0xf2, 0x01, 0xf7, 0x06, 0xbe, 0x37, 0x66, 0x09, 0x8b, 0xa4, 0x74, 0x64, 0x50, 0x4e, 0xe7,
0xe8, 0x38, 0x07, 0x65, 0x50, 0x79, 0xd3, 0xc3, 0xd7, 0xa8, 0x92, 0xde, 0xf4, 0xf0, 0x15, 0xc9, 0x9d, 0x0c, 0x7b, 0xe1, 0x34, 0xe9, 0x0d, 0xd8, 0x30, 0x62, 0xc2, 0x9a, 0x72, 0xd3, 0x64, 0xa1,
0xea, 0xbe, 0x6a, 0x81, 0xee, 0x7b, 0x07, 0x56, 0xb8, 0x96, 0x13, 0xfa, 0xa0, 0x97, 0x61, 0xac, 0x9c, 0x8e, 0xf3, 0xa7, 0x41, 0x27, 0x38, 0x28, 0x83, 0xaa, 0x9b, 0x1e, 0xb1, 0x46, 0x95, 0xf4,
0x29, 0xb5, 0x64, 0x1d, 0xda, 0x6c, 0xcc, 0x52, 0x24, 0x62, 0xef, 0x9b, 0x3c, 0x6a, 0x6a, 0x39, 0xa6, 0x47, 0xac, 0x48, 0x56, 0xf7, 0x55, 0x0b, 0x74, 0xdf, 0x3b, 0xb0, 0x22, 0xb4, 0x9c, 0xd4,
0x39, 0x9c, 0xd1, 0x62, 0xf8, 0x52, 0xa7, 0xe5, 0x37, 0xdf, 0x39, 0x1c, 0x69, 0xdd, 0x67, 0x26, 0x07, 0xbd, 0x0c, 0x63, 0x9d, 0x53, 0x4b, 0xd6, 0xa0, 0xcd, 0xc7, 0xac, 0x44, 0x22, 0xf6, 0xbf,
0x6d, 0x5d, 0xd0, 0x66, 0x70, 0x7b, 0x0e, 0x1a, 0x87, 0x49, 0x38, 0x96, 0x9b, 0xd2, 0x82, 0x26, 0x2d, 0xa2, 0xa6, 0x8e, 0x9b, 0xc3, 0x39, 0x2d, 0x86, 0x2f, 0x4d, 0x5a, 0x71, 0xf3, 0x9d, 0xc3,
0x2f, 0x8a, 0x2c, 0xa4, 0x57, 0xe0, 0x32, 0x72, 0xd1, 0xa3, 0x70, 0x1c, 0xfa, 0xe1, 0xf0, 0xdc, 0x91, 0xd6, 0x7b, 0x66, 0xd3, 0xd6, 0x25, 0x6d, 0x06, 0xa7, 0x73, 0xd0, 0x38, 0x48, 0xc2, 0x89,
0x38, 0x3a, 0xfd, 0x95, 0x05, 0x8b, 0x46, 0x6d, 0x7a, 0x76, 0xc2, 0xa8, 0x8b, 0x4c, 0x1f, 0xe1, 0xda, 0x94, 0x16, 0x34, 0x45, 0x51, 0x66, 0x21, 0xbd, 0x02, 0x57, 0x90, 0x8b, 0x1e, 0x85, 0x93,
0x8c, 0xb7, 0xa0, 0xa9, 0x60, 0x4e, 0xc8, 0x03, 0xdc, 0x8f, 0x45, 0x46, 0xc9, 0x26, 0xcc, 0xcb, 0x70, 0x14, 0x0e, 0xcf, 0xac, 0xa3, 0xd3, 0x9f, 0x39, 0xb0, 0x68, 0xd5, 0xa6, 0x67, 0x27, 0x8c,
0x91, 0xc9, 0x0f, 0x39, 0x17, 0x76, 0xf2, 0x5c, 0x28, 0xbe, 0x6f, 0x89, 0x0f, 0x64, 0x13, 0x9f, 0xba, 0xa8, 0xf4, 0x11, 0xc1, 0x78, 0x0b, 0x86, 0x0a, 0x16, 0x84, 0x22, 0xc0, 0xfd, 0x58, 0x66,
0x17, 0x19, 0x04, 0xfc, 0x28, 0x25, 0x83, 0x6c, 0xea, 0xf0, 0xa5, 0x1f, 0xb5, 0xe5, 0x08, 0xfa, 0x94, 0x6c, 0xc0, 0xbc, 0x1a, 0x99, 0xfa, 0x50, 0x70, 0x61, 0x27, 0xcf, 0x85, 0xf2, 0xfb, 0x96,
0x0a, 0x8c, 0xed, 0x5f, 0xb0, 0x00, 0xd2, 0xd1, 0xe1, 0xbd, 0xb3, 0x32, 0x23, 0xfc, 0x75, 0x90, 0xfc, 0x40, 0x35, 0xf1, 0x45, 0x99, 0x41, 0x20, 0x8e, 0x52, 0x2a, 0xc8, 0xa6, 0x0f, 0x5f, 0xe6,
0x66, 0x32, 0x5e, 0x87, 0xa6, 0xba, 0xaf, 0x4c, 0x2d, 0x53, 0x43, 0x62, 0xcc, 0x73, 0xbe, 0x01, 0x51, 0x5b, 0x8d, 0xa0, 0xaf, 0xc1, 0x98, 0xfe, 0x8c, 0x03, 0x90, 0x8e, 0x0e, 0xef, 0x9d, 0xb5,
0xf3, 0x43, 0x3f, 0x3c, 0x42, 0xb3, 0x8e, 0x69, 0x6d, 0xb1, 0xc8, 0xc5, 0x6a, 0x71, 0xf8, 0x9e, 0x19, 0x11, 0x8f, 0x87, 0x0c, 0x93, 0xf1, 0x3a, 0x34, 0xf5, 0x7d, 0x65, 0x6a, 0x99, 0x1a, 0x0a,
0x40, 0x53, 0x33, 0x56, 0xd1, 0xcc, 0x98, 0xfd, 0x8b, 0x25, 0x75, 0xbd, 0x94, 0xce, 0x79, 0xaa, 0xe3, 0x9e, 0xf3, 0x4d, 0x98, 0x1f, 0x8e, 0xc2, 0x43, 0x34, 0xeb, 0x98, 0xd6, 0x16, 0xcb, 0x5c,
0x94, 0x91, 0xdb, 0x39, 0x75, 0x3a, 0xe5, 0x36, 0x07, 0x9d, 0xd3, 0x83, 0x0b, 0xa3, 0x5d, 0x77, 0xac, 0x96, 0x80, 0xef, 0x49, 0x34, 0x35, 0x63, 0x15, 0xc3, 0x8c, 0xd1, 0x9f, 0x2d, 0xe9, 0xeb,
0xa0, 0x15, 0x71, 0x7d, 0x25, 0x95, 0x59, 0xe5, 0x05, 0xca, 0x6c, 0x2e, 0x32, 0x6c, 0xdd, 0x27, 0xa5, 0x74, 0xce, 0xe7, 0x4a, 0x19, 0xb9, 0x93, 0x53, 0xa7, 0xe7, 0xdc, 0xe6, 0xa0, 0x73, 0xba,
0xa1, 0xed, 0x0e, 0x4e, 0x69, 0x94, 0x78, 0x18, 0x6f, 0x40, 0x47, 0x83, 0xab, 0xe0, 0x79, 0x0d, 0x7f, 0x61, 0xb4, 0xeb, 0x7d, 0x68, 0x45, 0x42, 0x5f, 0x29, 0x65, 0x56, 0x79, 0x81, 0x32, 0x9b,
0x47, 0xfb, 0x7f, 0x03, 0xe6, 0x45, 0xfe, 0x9b, 0xa2, 0x14, 0xa9, 0xff, 0x29, 0xcc, 0x08, 0xed, 0x8b, 0x2c, 0x5b, 0xf7, 0x69, 0x68, 0x7b, 0x83, 0x13, 0x16, 0x25, 0x3e, 0xc6, 0x1b, 0xd0, 0xd1,
0xdf, 0x96, 0x37, 0x59, 0xe6, 0x1e, 0x4e, 0x5f, 0x11, 0x7d, 0x76, 0xa5, 0xcc, 0xec, 0x3e, 0x21, 0x10, 0x2a, 0x78, 0xde, 0xc0, 0xd1, 0xfe, 0xdf, 0x84, 0x79, 0x99, 0xff, 0xa6, 0x29, 0xe5, 0xcb,
0x6e, 0x95, 0x06, 0x32, 0xa8, 0x51, 0xd6, 0xb2, 0x4d, 0x06, 0xe2, 0x16, 0xd0, 0x5c, 0xd2, 0xca, 0x80, 0x14, 0xe6, 0x84, 0xf4, 0xd7, 0xd5, 0x4d, 0x96, 0xbd, 0x87, 0xe7, 0xaf, 0x88, 0x39, 0xbb,
0xcb, 0x2c, 0xa9, 0xfd, 0x7d, 0x0b, 0x66, 0x77, 0xc3, 0xf1, 0xae, 0xc8, 0xbb, 0x41, 0x41, 0x50, 0x52, 0x66, 0x76, 0x9f, 0x92, 0xb7, 0x4a, 0x03, 0x15, 0xd4, 0x28, 0x1b, 0xd9, 0x26, 0x03, 0x79,
0x89, 0xa7, 0xb2, 0xf8, 0x82, 0x8c, 0x9c, 0x42, 0xfb, 0x3e, 0x97, 0xb5, 0xef, 0xff, 0x1f, 0x5e, 0x0b, 0x68, 0x2f, 0x69, 0xe5, 0x65, 0x96, 0x94, 0xfe, 0xd0, 0x81, 0xd9, 0x9d, 0x70, 0xb2, 0x23,
0xc1, 0x90, 0x5a, 0x14, 0x8e, 0xc3, 0x88, 0x09, 0xa3, 0xeb, 0x73, 0x63, 0x1e, 0x06, 0xc9, 0x89, 0xf3, 0x6e, 0x50, 0x10, 0x74, 0xe2, 0xa9, 0x2a, 0xbe, 0x20, 0x23, 0xa7, 0xd0, 0xbe, 0xcf, 0x65,
0x54, 0x63, 0x2f, 0x22, 0xc1, 0x73, 0x2e, 0x3b, 0x9b, 0x71, 0xd7, 0x5c, 0xf8, 0x23, 0x5c, 0xbb, 0xed, 0xfb, 0x7f, 0x87, 0x57, 0x30, 0xa4, 0x16, 0x85, 0x93, 0x30, 0xe2, 0xc2, 0xe8, 0x8d, 0x84,
0xe5, 0x2b, 0xec, 0xcf, 0x41, 0x1d, 0x1d, 0x6a, 0x9c, 0xd6, 0x5b, 0x50, 0x3f, 0x09, 0xc7, 0xbd, 0x31, 0x0f, 0x83, 0xe4, 0x58, 0xa9, 0xb1, 0x17, 0x91, 0xe0, 0x39, 0x97, 0x9f, 0xcd, 0x84, 0x6b,
0x13, 0x2f, 0x48, 0xa4, 0x70, 0xb7, 0x52, 0x4f, 0x77, 0x17, 0x17, 0x44, 0x11, 0xd8, 0xbf, 0x36, 0x2e, 0xfd, 0x11, 0xa1, 0xdd, 0xf2, 0x15, 0xf4, 0x0b, 0x50, 0x47, 0x87, 0x1a, 0xa7, 0xf5, 0x16,
0x03, 0xb3, 0x0f, 0x82, 0xd3, 0xd0, 0xeb, 0xe3, 0xad, 0xd9, 0x88, 0x8e, 0x42, 0x99, 0x86, 0xcb, 0xd4, 0x8f, 0xc3, 0x49, 0xef, 0xd8, 0x0f, 0x12, 0x25, 0xdc, 0xad, 0xd4, 0xd3, 0xdd, 0xc1, 0x05,
0xfe, 0x27, 0x57, 0x60, 0x16, 0xf3, 0xce, 0xc6, 0x9c, 0x69, 0x9b, 0xfc, 0x76, 0x5b, 0x40, 0xcc, 0xd1, 0x04, 0xf4, 0x97, 0x66, 0x60, 0xf6, 0x41, 0x70, 0x12, 0xfa, 0x7d, 0xbc, 0x35, 0x1b, 0xb3,
0x49, 0x88, 0xd2, 0x07, 0x13, 0x5c, 0x7c, 0x34, 0x84, 0x1d, 0x35, 0x22, 0xfd, 0xc1, 0x83, 0x28, 0x71, 0xa8, 0xd2, 0x70, 0xf9, 0xff, 0xe4, 0x2a, 0xcc, 0x62, 0xde, 0xd9, 0x44, 0x30, 0x6d, 0x53,
0xa5, 0x69, 0xce, 0x55, 0x2d, 0xcd, 0x99, 0xf5, 0x25, 0xf2, 0x84, 0x78, 0x22, 0x09, 0xef, 0x4b, 0xdc, 0x6e, 0x4b, 0x88, 0x3b, 0x09, 0x51, 0xfa, 0x60, 0x42, 0x88, 0x8f, 0x81, 0xf0, 0xa3, 0x46,
0x40, 0x78, 0x3c, 0x8a, 0x28, 0x0f, 0x89, 0xa2, 0xcb, 0x31, 0x2b, 0x8e, 0x47, 0x3a, 0xc8, 0xdc, 0x64, 0x3e, 0x78, 0x90, 0xa5, 0x34, 0xcd, 0xb9, 0x6a, 0xa4, 0x39, 0xf3, 0xbe, 0x64, 0x9e, 0x90,
0x12, 0xfe, 0x01, 0xa7, 0xe1, 0x4a, 0x58, 0x87, 0x98, 0xa3, 0x97, 0x7d, 0xcc, 0x52, 0xe7, 0xbc, 0x48, 0x24, 0x11, 0x7d, 0x49, 0x08, 0x8f, 0x47, 0x11, 0x13, 0x21, 0x51, 0x74, 0x39, 0x66, 0xe5,
0x9f, 0x81, 0x99, 0xa6, 0x1e, 0x50, 0xa5, 0x50, 0xf9, 0x3c, 0x80, 0x3f, 0x0a, 0xc9, 0xe2, 0xda, 0xf1, 0xc8, 0x04, 0xb9, 0x5b, 0x22, 0x3e, 0x10, 0x34, 0x42, 0x09, 0x9b, 0x10, 0x77, 0xf4, 0xb2,
0xa1, 0x8a, 0xa7, 0x08, 0xca, 0x43, 0x15, 0x63, 0x18, 0xd7, 0xf7, 0x8f, 0xdc, 0xfe, 0x53, 0x7c, 0x6f, 0x5d, 0xea, 0x82, 0xf7, 0x33, 0x30, 0xd7, 0xd4, 0x03, 0xa6, 0x15, 0xaa, 0x98, 0x07, 0x88,
0xab, 0x84, 0xf7, 0x58, 0x75, 0xc7, 0x04, 0x31, 0xdb, 0x27, 0xdd, 0x55, 0xcc, 0x03, 0xa8, 0x38, 0x47, 0x21, 0x59, 0xdc, 0x38, 0x54, 0x89, 0x14, 0x41, 0x75, 0xa8, 0xe2, 0x0c, 0xe3, 0x8d, 0x46,
0x3a, 0x44, 0x6e, 0x43, 0x03, 0x0f, 0x92, 0x62, 0x5f, 0x5b, 0xb8, 0xaf, 0x6d, 0xfd, 0xa4, 0x89, 0x87, 0x5e, 0xff, 0x29, 0x3e, 0x65, 0xc2, 0x7b, 0xac, 0xba, 0x6b, 0x83, 0x98, 0xed, 0x93, 0xee,
0x3b, 0xab, 0x13, 0xe9, 0x37, 0x7a, 0xf3, 0xb9, 0xa4, 0x3d, 0x77, 0x30, 0x10, 0x17, 0xa1, 0x6d, 0x2a, 0xe6, 0x01, 0x54, 0x5c, 0x13, 0x22, 0x77, 0xa0, 0x81, 0x07, 0x49, 0xb9, 0xaf, 0x2d, 0xdc,
0x7e, 0x28, 0x56, 0x00, 0xb3, 0xaa, 0x62, 0xc1, 0x38, 0xc1, 0x02, 0x12, 0x18, 0x18, 0xb9, 0x0a, 0xd7, 0xb6, 0x79, 0xd2, 0xc4, 0x9d, 0x35, 0x89, 0xcc, 0x1b, 0xbd, 0xf9, 0x5c, 0xd2, 0x9e, 0x37,
0x35, 0x76, 0xc8, 0x19, 0xbb, 0xde, 0x00, 0xb3, 0xfe, 0xf8, 0x59, 0x4b, 0x61, 0xac, 0x0d, 0xf9, 0x18, 0xc8, 0x8b, 0xd0, 0xb6, 0x38, 0x14, 0x6b, 0x80, 0x5b, 0x55, 0xb9, 0x60, 0x82, 0x60, 0x01,
0x3f, 0x5e, 0x58, 0x2e, 0xe2, 0xaa, 0x18, 0x18, 0x5b, 0x1b, 0x55, 0x46, 0x61, 0x5a, 0xe2, 0x3b, 0x09, 0x2c, 0x8c, 0x5c, 0x83, 0x1a, 0x3f, 0xe4, 0x4c, 0x3c, 0x7f, 0x80, 0x59, 0x7f, 0xe2, 0xac,
0x6a, 0x80, 0xe4, 0x6d, 0xbc, 0x8e, 0x4a, 0x68, 0x67, 0x19, 0xc3, 0x5d, 0xaf, 0x88, 0x39, 0x0b, 0xa5, 0x31, 0xde, 0x86, 0xfa, 0x1f, 0x2f, 0x2c, 0x17, 0x71, 0x55, 0x2c, 0x8c, 0xaf, 0x8d, 0x2e,
0xa6, 0x95, 0x7f, 0x0f, 0x19, 0x89, 0xc3, 0x29, 0xed, 0x4d, 0x68, 0xea, 0x30, 0xa9, 0x41, 0xe5, 0xa3, 0x30, 0x2d, 0x89, 0x1d, 0xb5, 0x40, 0xf2, 0x36, 0x5e, 0x47, 0x25, 0xac, 0xb3, 0x8c, 0xe1,
0xe1, 0xc1, 0xce, 0x7e, 0xfb, 0x12, 0x69, 0xc0, 0xec, 0xe1, 0xce, 0xa3, 0x47, 0x7b, 0x3b, 0xdb, 0xae, 0x57, 0xe4, 0x9c, 0x25, 0xd3, 0xaa, 0xbf, 0x07, 0x9c, 0xc4, 0x15, 0x94, 0x74, 0x03, 0x9a,
0x6d, 0x8b, 0x34, 0xa1, 0xa6, 0x52, 0xb3, 0x4a, 0xac, 0xb4, 0xb9, 0xb5, 0xb5, 0x73, 0xf0, 0x68, 0x26, 0x4c, 0x6a, 0x50, 0x79, 0xb8, 0xbf, 0xbd, 0xd7, 0xbe, 0x44, 0x1a, 0x30, 0x7b, 0xb0, 0xfd,
0x67, 0xbb, 0x5d, 0xb6, 0x13, 0x20, 0x9b, 0x83, 0x81, 0x68, 0x45, 0x1d, 0xf5, 0x53, 0x7e, 0xb6, 0xe8, 0xd1, 0xee, 0xf6, 0x56, 0xdb, 0x21, 0x4d, 0xa8, 0xe9, 0xd4, 0xac, 0x12, 0x2f, 0x6d, 0x6c,
0x0c, 0x7e, 0x2e, 0xe0, 0xa9, 0x52, 0x31, 0x4f, 0xbd, 0x70, 0xe5, 0xed, 0x1d, 0x68, 0x1c, 0x68, 0x6e, 0x6e, 0xef, 0x3f, 0xda, 0xde, 0x6a, 0x97, 0x69, 0x02, 0x64, 0x63, 0x30, 0x90, 0xad, 0xe8,
0xef, 0x7a, 0x50, 0xbc, 0xe4, 0x8b, 0x1e, 0x21, 0x96, 0x1a, 0xa2, 0x0d, 0xa7, 0xa4, 0x0f, 0xc7, 0xa3, 0x7e, 0xca, 0xcf, 0x8e, 0xc5, 0xcf, 0x05, 0x3c, 0x55, 0x2a, 0xe6, 0xa9, 0x17, 0xae, 0x3c,
0xfe, 0x1d, 0x8b, 0x27, 0xcf, 0xab, 0xe1, 0xf3, 0xbe, 0x6d, 0x68, 0xaa, 0x98, 0x53, 0x9a, 0x75, 0xdd, 0x86, 0xc6, 0xbe, 0xf1, 0xae, 0x07, 0xc5, 0x4b, 0xbd, 0xe8, 0x91, 0x62, 0x69, 0x20, 0xc6,
0x69, 0x60, 0x8c, 0x06, 0x87, 0xd2, 0x0b, 0x8f, 0x8f, 0x63, 0x2a, 0x73, 0xa4, 0x0c, 0x8c, 0xc9, 0x70, 0x4a, 0xe6, 0x70, 0xe8, 0x6f, 0x38, 0x22, 0x79, 0x5e, 0x0f, 0x5f, 0xf4, 0x4d, 0xa1, 0xa9,
0x05, 0xf3, 0xb0, 0x98, 0xb7, 0xe2, 0xf1, 0x1e, 0x62, 0x91, 0x2b, 0x95, 0xc3, 0x99, 0x96, 0x17, 0x63, 0x4e, 0x69, 0xd6, 0xa5, 0x85, 0x71, 0x1a, 0x1c, 0x4a, 0x2f, 0x3c, 0x3a, 0x8a, 0x99, 0xca,
0x61, 0x15, 0x99, 0x1d, 0xa6, 0xca, 0x2a, 0x39, 0x34, 0xbb, 0xca, 0xeb, 0x50, 0x53, 0xed, 0x9a, 0x91, 0xb2, 0x30, 0x2e, 0x17, 0xdc, 0xc3, 0xe2, 0xde, 0x8a, 0x2f, 0x7a, 0x88, 0x65, 0xae, 0x54,
0x0a, 0x4c, 0x52, 0xaa, 0x7a, 0xa6, 0x28, 0xf1, 0xcc, 0x61, 0x0c, 0x9a, 0x2b, 0xed, 0x7c, 0x05, 0x0e, 0xe7, 0x5a, 0x5e, 0x86, 0x55, 0x54, 0x76, 0x98, 0x2e, 0xeb, 0xe4, 0xd0, 0xec, 0x2a, 0xaf,
0xb9, 0x09, 0xe4, 0xd8, 0x8b, 0xb2, 0xe4, 0x65, 0x24, 0x2f, 0xa8, 0xb1, 0x9f, 0xc0, 0xa2, 0x64, 0x41, 0x4d, 0xb7, 0x6b, 0x2b, 0x30, 0x45, 0xa9, 0xeb, 0xb9, 0xa2, 0xc4, 0x33, 0x87, 0x35, 0x68,
0x24, 0xcd, 0xb5, 0x32, 0x37, 0xd1, 0xba, 0x48, 0x7c, 0x4a, 0x79, 0xf1, 0xb1, 0xff, 0xd3, 0x82, 0xa1, 0xb4, 0xf3, 0x15, 0xe4, 0x16, 0x90, 0x23, 0x3f, 0xca, 0x92, 0x97, 0x91, 0xbc, 0xa0, 0x86,
0x59, 0xb1, 0xd3, 0xb9, 0xb7, 0x61, 0x7c, 0x9f, 0x0d, 0x8c, 0x74, 0x8c, 0x77, 0x21, 0x28, 0x6b, 0x3e, 0x81, 0x45, 0xc5, 0x48, 0x86, 0x6b, 0x65, 0x6f, 0xa2, 0x73, 0x91, 0xf8, 0x94, 0xf2, 0xe2,
0x42, 0x69, 0xe6, 0xd4, 0x62, 0xb9, 0x48, 0x2d, 0x12, 0xa8, 0x8c, 0xdd, 0xe4, 0x04, 0xcf, 0xdb, 0x43, 0xff, 0xd5, 0x81, 0x59, 0xb9, 0xd3, 0xb9, 0xb7, 0x61, 0x62, 0x9f, 0x2d, 0x8c, 0x74, 0xac,
0x75, 0x07, 0xff, 0x27, 0x6d, 0x1e, 0x1d, 0xe2, 0x2a, 0x18, 0x23, 0x43, 0x45, 0xaf, 0xe0, 0xb8, 0x77, 0x21, 0x28, 0x6b, 0x52, 0x69, 0xe6, 0xd4, 0x62, 0xb9, 0x48, 0x2d, 0x12, 0xa8, 0x4c, 0xbc,
0xb5, 0xcf, 0xbf, 0x82, 0xbb, 0x02, 0x75, 0x1c, 0x40, 0x2f, 0x0d, 0xfe, 0xa4, 0x00, 0xe3, 0x5c, 0xe4, 0x18, 0xcf, 0xdb, 0x75, 0x17, 0xff, 0x27, 0x6d, 0x11, 0x1d, 0x12, 0x2a, 0x18, 0x23, 0x43,
0x5e, 0x40, 0xb9, 0x16, 0x29, 0xda, 0x29, 0x62, 0x2f, 0xf3, 0x9d, 0x17, 0x4b, 0xa0, 0xae, 0x92, 0x45, 0xaf, 0xe0, 0x84, 0xb5, 0xcf, 0xbf, 0x82, 0xbb, 0x0a, 0x75, 0x1c, 0x40, 0x2f, 0x0d, 0xfe,
0x45, 0x32, 0x6e, 0x0a, 0xa7, 0x1c, 0x21, 0x06, 0x90, 0xe5, 0x08, 0x41, 0xea, 0xa8, 0x7a, 0xbb, 0xa4, 0x00, 0xe7, 0x5c, 0x51, 0x40, 0xb9, 0x96, 0x29, 0xda, 0x29, 0x42, 0x97, 0xc5, 0xce, 0xcb,
0x0b, 0x9d, 0x6d, 0xea, 0xd3, 0x84, 0x6e, 0xfa, 0x7e, 0xb6, 0xfd, 0x57, 0xe0, 0x72, 0x41, 0x9d, 0x25, 0xd0, 0x57, 0xc9, 0x32, 0x19, 0x37, 0x85, 0x53, 0x8e, 0x90, 0x03, 0xc8, 0x72, 0x84, 0x24,
0xf0, 0xa6, 0xbf, 0x04, 0xcb, 0x9b, 0x3c, 0x71, 0xf1, 0x47, 0x95, 0x8c, 0x63, 0x77, 0x60, 0x25, 0x75, 0x75, 0x3d, 0xed, 0x42, 0x67, 0x8b, 0x8d, 0x58, 0xc2, 0x36, 0x46, 0xa3, 0x6c, 0xfb, 0xaf,
0xdb, 0xa4, 0xe8, 0xec, 0x1e, 0x2c, 0x6c, 0xd3, 0xa3, 0xc9, 0x70, 0x8f, 0x9e, 0xa6, 0x1d, 0x11, 0xc0, 0x95, 0x82, 0x3a, 0xe9, 0x4d, 0x7f, 0x05, 0x96, 0x37, 0x44, 0xe2, 0xe2, 0x4f, 0x2a, 0x19,
0xa8, 0xc4, 0x27, 0xe1, 0x99, 0x10, 0x4c, 0xfc, 0x9f, 0xbc, 0x0a, 0xe0, 0x33, 0x9a, 0x5e, 0x3c, 0x87, 0x76, 0x60, 0x25, 0xdb, 0xa4, 0xec, 0xec, 0x1e, 0x2c, 0x6c, 0xb1, 0xc3, 0xe9, 0x70, 0x97,
0xa6, 0x7d, 0xf9, 0x14, 0x03, 0x91, 0xc3, 0x31, 0xed, 0xdb, 0xef, 0x00, 0xd1, 0xdb, 0x11, 0xeb, 0x9d, 0xa4, 0x1d, 0x11, 0xa8, 0xc4, 0xc7, 0xe1, 0xa9, 0x14, 0x4c, 0xfc, 0x9f, 0xbc, 0x0a, 0x30,
0xc5, 0xac, 0xe0, 0xe4, 0xa8, 0x17, 0x9f, 0xc7, 0x09, 0x1d, 0xc9, 0x37, 0x26, 0x3a, 0x64, 0xdf, 0xe2, 0x34, 0xbd, 0x78, 0xc2, 0xfa, 0xea, 0x29, 0x06, 0x22, 0x07, 0x13, 0xd6, 0xa7, 0xef, 0x00,
0x80, 0xe6, 0x81, 0x7b, 0xee, 0xd0, 0x6f, 0x88, 0x27, 0x81, 0xab, 0x30, 0x3b, 0x76, 0xcf, 0x99, 0x31, 0xdb, 0x91, 0xeb, 0xc5, 0xad, 0xe0, 0xf4, 0xb0, 0x17, 0x9f, 0xc5, 0x09, 0x1b, 0xab, 0x37,
0x9a, 0x52, 0x51, 0x29, 0xac, 0xb6, 0xff, 0xbd, 0x04, 0x33, 0x9c, 0x92, 0xb5, 0x3a, 0xa0, 0x71, 0x26, 0x26, 0x44, 0x6f, 0x42, 0x73, 0xdf, 0x3b, 0x73, 0xd9, 0xb7, 0xe4, 0x93, 0xc0, 0xcb, 0x30,
0xe2, 0x05, 0xc8, 0x58, 0xb2, 0x55, 0x0d, 0xca, 0xb1, 0x72, 0xa9, 0x80, 0x95, 0xc5, 0x99, 0x4d, 0x3b, 0xf1, 0xce, 0xb8, 0x9a, 0xd2, 0x51, 0x29, 0xac, 0xa6, 0xff, 0x5c, 0x82, 0x19, 0x41, 0xc9,
0xa6, 0xb5, 0x0b, 0x7e, 0x35, 0x30, 0xc6, 0x5c, 0x69, 0x56, 0x1c, 0x0f, 0x8b, 0xa4, 0x40, 0x26, 0x5b, 0x1d, 0xb0, 0x38, 0xf1, 0x03, 0x64, 0x2c, 0xd5, 0xaa, 0x01, 0xe5, 0x58, 0xb9, 0x54, 0xc0,
0x80, 0x99, 0xda, 0x5a, 0x3e, 0x3e, 0x29, 0xa5, 0x82, 0x73, 0x75, 0xa8, 0xd0, 0xa2, 0xcf, 0x72, 0xca, 0xf2, 0xcc, 0xa6, 0xd2, 0xda, 0x25, 0xbf, 0x5a, 0x18, 0x67, 0xae, 0x34, 0x2b, 0x4e, 0x84,
0x06, 0xcf, 0x59, 0xf4, 0x9c, 0xe5, 0xae, 0xbd, 0x84, 0xe5, 0xe6, 0x07, 0xb9, 0x17, 0x59, 0x6e, 0x45, 0x52, 0x20, 0x13, 0xc0, 0x4c, 0x6d, 0xad, 0x18, 0x9f, 0x92, 0x52, 0xc9, 0xb9, 0x26, 0x54,
0x78, 0x09, 0xcb, 0x6d, 0x13, 0x68, 0xe3, 0x7b, 0x39, 0xe6, 0x1b, 0x4a, 0xde, 0xfd, 0x96, 0x05, 0x68, 0xd1, 0x67, 0x05, 0x83, 0xe7, 0x2c, 0x7a, 0xce, 0x72, 0xd7, 0x5e, 0xc2, 0x72, 0x8b, 0x83,
0x6d, 0xc1, 0x45, 0xaa, 0x8e, 0xbc, 0x6e, 0xf8, 0xc0, 0x85, 0xe9, 0xe5, 0xd7, 0x61, 0x0e, 0x3d, 0xdc, 0x8b, 0x2c, 0x37, 0xbc, 0x84, 0xe5, 0xa6, 0x04, 0xda, 0xf8, 0x5e, 0x8e, 0xfb, 0x86, 0x8a,
0x53, 0x15, 0xa9, 0x15, 0x61, 0x65, 0x03, 0x64, 0xf3, 0x90, 0xb7, 0xc0, 0x23, 0xcf, 0x17, 0x9b, 0x77, 0xbf, 0xe3, 0x40, 0x5b, 0x72, 0x91, 0xae, 0x23, 0xaf, 0x5b, 0x3e, 0x70, 0x61, 0x7a, 0xf9,
0xa2, 0x43, 0x32, 0xd8, 0x1b, 0xb9, 0x22, 0x3b, 0xcc, 0x72, 0x54, 0xd9, 0xfe, 0x13, 0x0b, 0x16, 0x0d, 0x98, 0x43, 0xcf, 0x54, 0x47, 0x6a, 0x65, 0x58, 0xd9, 0x02, 0xf9, 0x3c, 0xd4, 0x2d, 0xf0,
0xb4, 0x01, 0x0b, 0x2e, 0xbc, 0x03, 0x52, 0x1a, 0x78, 0xd8, 0x96, 0x4b, 0xee, 0xaa, 0x29, 0x36, 0xd8, 0x1f, 0xc9, 0x4d, 0x31, 0x21, 0x15, 0xec, 0x8d, 0x3c, 0x99, 0x1d, 0xe6, 0xb8, 0xba, 0x4c,
0xe9, 0x67, 0x06, 0x31, 0x6e, 0xa6, 0x7b, 0x8e, 0x03, 0x8c, 0x27, 0x23, 0xa1, 0x44, 0x75, 0x88, 0xff, 0xc0, 0x81, 0x05, 0x63, 0xc0, 0x92, 0x0b, 0xdf, 0x07, 0x25, 0x0d, 0x22, 0x6c, 0x2b, 0x24,
0x31, 0xd2, 0x19, 0xa5, 0x4f, 0x15, 0x09, 0x57, 0xe3, 0x06, 0x86, 0xb1, 0x31, 0xe6, 0x51, 0x2b, 0xf7, 0xb2, 0x2d, 0x36, 0xe9, 0x67, 0x16, 0x31, 0x6e, 0xa6, 0x77, 0x86, 0x03, 0x8c, 0xa7, 0x63,
0xa2, 0x8a, 0x88, 0x8d, 0xe9, 0xa0, 0xfd, 0x77, 0x16, 0x2c, 0xf2, 0xa3, 0x91, 0x38, 0x78, 0xaa, 0xa9, 0x44, 0x4d, 0x88, 0x33, 0xd2, 0x29, 0x63, 0x4f, 0x35, 0x89, 0x50, 0xe3, 0x16, 0x86, 0xb1,
0x97, 0x41, 0x33, 0xfc, 0x2c, 0xc8, 0x25, 0x72, 0xf7, 0x92, 0x23, 0xca, 0xe4, 0x33, 0x2f, 0x79, 0x31, 0xee, 0x51, 0x6b, 0xa2, 0x8a, 0x8c, 0x8d, 0x99, 0x20, 0xfd, 0x4b, 0x07, 0x16, 0xc5, 0xd1,
0x9c, 0x53, 0x29, 0x6b, 0x53, 0xf6, 0xa2, 0x5c, 0xb4, 0x17, 0x2f, 0x58, 0xe9, 0xa2, 0x30, 0x65, 0x48, 0x1e, 0x3c, 0xf5, 0xcb, 0xa0, 0x19, 0x71, 0x16, 0x14, 0x12, 0xb9, 0x73, 0xc9, 0x95, 0x65,
0xb5, 0x30, 0x4c, 0x79, 0x77, 0x16, 0xaa, 0x71, 0x3f, 0x1c, 0x53, 0x7b, 0x05, 0x96, 0xcc, 0xc9, 0xf2, 0xb9, 0x97, 0x3c, 0xce, 0xe9, 0x94, 0xb5, 0x73, 0xf6, 0xa2, 0x5c, 0xb4, 0x17, 0x2f, 0x58,
0x09, 0x15, 0xf4, 0x1d, 0x0b, 0x3a, 0xf7, 0x78, 0x38, 0xdf, 0x0b, 0x86, 0xbb, 0x5e, 0x9c, 0x84, 0xe9, 0xa2, 0x30, 0x65, 0xb5, 0x30, 0x4c, 0x79, 0x77, 0x16, 0xaa, 0x71, 0x3f, 0x9c, 0x30, 0xba,
0x91, 0x7a, 0x40, 0x79, 0x15, 0x20, 0x4e, 0xdc, 0x28, 0xe1, 0x89, 0xc9, 0x22, 0x3c, 0x98, 0x22, 0x02, 0x4b, 0xf6, 0xe4, 0xa4, 0x0a, 0xfa, 0x9e, 0x03, 0x9d, 0x7b, 0x22, 0x9c, 0xef, 0x07, 0xc3,
0x6c, 0x8c, 0x34, 0x18, 0xf0, 0x5a, 0xbe, 0x37, 0xaa, 0x9c, 0xf3, 0x21, 0xc4, 0xe1, 0xcd, 0xb0, 0x1d, 0x3f, 0x4e, 0xc2, 0x48, 0x3f, 0xa0, 0xbc, 0x06, 0x10, 0x27, 0x5e, 0x94, 0x88, 0xc4, 0x64,
0xc4, 0x6f, 0xf0, 0x14, 0x4e, 0xe6, 0x2b, 0xd0, 0x53, 0xd4, 0xeb, 0xfc, 0x54, 0x94, 0x41, 0xed, 0x19, 0x1e, 0x4c, 0x11, 0x3e, 0x46, 0x16, 0x0c, 0x44, 0xad, 0xd8, 0x1b, 0x5d, 0xce, 0xf9, 0x10,
0xbf, 0xb1, 0x60, 0x3e, 0x1d, 0x24, 0x5e, 0x6e, 0x9a, 0xda, 0x41, 0x98, 0xdf, 0x54, 0x3b, 0xc8, 0xf2, 0xf0, 0x66, 0x59, 0xe2, 0x37, 0x44, 0x0a, 0x27, 0xf7, 0x15, 0xd8, 0x09, 0xea, 0x75, 0x71,
0xc0, 0xa5, 0xc7, 0xec, 0xb1, 0x18, 0x9b, 0x86, 0xa0, 0xc4, 0x8a, 0x52, 0x38, 0x91, 0x0e, 0x8e, 0x2a, 0xca, 0xa0, 0xf4, 0x2f, 0x1c, 0x98, 0x4f, 0x07, 0x89, 0x97, 0x9b, 0xb6, 0x76, 0x90, 0xe6,
0x0e, 0xf1, 0x84, 0x2c, 0xe6, 0x09, 0x08, 0xaf, 0x46, 0x94, 0x30, 0xaf, 0x7c, 0x94, 0xe0, 0x57, 0x37, 0xd5, 0x0e, 0x2a, 0x70, 0xe9, 0x73, 0x7b, 0x2c, 0xc7, 0x66, 0x20, 0x28, 0xb1, 0xb2, 0x14,
0x3c, 0xc4, 0x2a, 0x8b, 0xd2, 0x94, 0xce, 0x22, 0x8a, 0xa6, 0x54, 0xbf, 0x1a, 0xa9, 0xf1, 0xf5, 0x4e, 0x95, 0x83, 0x63, 0x42, 0x22, 0x21, 0x8b, 0x7b, 0x02, 0xd2, 0xab, 0x91, 0x25, 0xcc, 0x2b,
0x91, 0x65, 0xfb, 0x97, 0x2c, 0xb8, 0x5c, 0xb0, 0xf0, 0x42, 0x6a, 0xb6, 0x61, 0xe1, 0x58, 0x55, 0x1f, 0x27, 0xf8, 0x95, 0x08, 0xb1, 0xaa, 0xa2, 0x32, 0xa5, 0xb3, 0x88, 0xa2, 0x29, 0x35, 0xaf,
0xca, 0xc5, 0xe1, 0xa2, 0xb3, 0x22, 0xaf, 0xde, 0xcc, 0x05, 0x71, 0xf2, 0x1f, 0x28, 0xbf, 0x88, 0x46, 0x6a, 0x62, 0x7d, 0x54, 0x99, 0xfe, 0x9c, 0x03, 0x57, 0x0a, 0x16, 0x5e, 0x4a, 0xcd, 0x16,
0x2f, 0xb7, 0x91, 0xf2, 0x98, 0xaf, 0x58, 0x7f, 0x0e, 0x0d, 0xed, 0xe9, 0x22, 0x59, 0x85, 0xc5, 0x2c, 0x1c, 0xe9, 0x4a, 0xb5, 0x38, 0x42, 0x74, 0x56, 0xd4, 0xd5, 0x9b, 0xbd, 0x20, 0x6e, 0xfe,
0x27, 0x0f, 0x1e, 0xed, 0xef, 0x1c, 0x1e, 0xf6, 0x0e, 0x1e, 0xdf, 0xfd, 0xe2, 0xce, 0x57, 0x7a, 0x03, 0xed, 0x17, 0x89, 0xe5, 0xb6, 0x52, 0x1e, 0xf3, 0x15, 0x6b, 0xcf, 0xa1, 0x61, 0x3c, 0x5d,
0xbb, 0x9b, 0x87, 0xbb, 0xed, 0x4b, 0x64, 0x05, 0xc8, 0xfe, 0xce, 0xe1, 0xa3, 0x9d, 0x6d, 0x03, 0x24, 0x97, 0x61, 0xf1, 0xc9, 0x83, 0x47, 0x7b, 0xdb, 0x07, 0x07, 0xbd, 0xfd, 0xc7, 0x77, 0xbf,
0xb7, 0xc8, 0x55, 0xe8, 0x3e, 0xde, 0x7f, 0x7c, 0xb8, 0xb3, 0xdd, 0x2b, 0xfa, 0xae, 0x44, 0x5e, 0xbc, 0xfd, 0xb5, 0xde, 0xce, 0xc6, 0xc1, 0x4e, 0xfb, 0x12, 0x59, 0x01, 0xb2, 0xb7, 0x7d, 0xf0,
0x85, 0xcb, 0xa2, 0xbe, 0xe0, 0xf3, 0xf2, 0xed, 0x5f, 0x2e, 0x43, 0x8b, 0xdf, 0x0a, 0xf3, 0x9f, 0x68, 0x7b, 0xcb, 0xc2, 0x1d, 0x72, 0x0d, 0xba, 0x8f, 0xf7, 0x1e, 0x1f, 0x6c, 0x6f, 0xf5, 0x8a,
0x16, 0xa1, 0x11, 0x79, 0x1f, 0x66, 0xc5, 0x4f, 0xc3, 0x90, 0x65, 0x31, 0x6b, 0xf3, 0xc7, 0x68, 0xbe, 0x2b, 0x91, 0x57, 0xe1, 0x8a, 0xac, 0x2f, 0xf8, 0xbc, 0x7c, 0xe7, 0xe7, 0xcb, 0xd0, 0x12,
0xba, 0x2b, 0x59, 0x58, 0xb0, 0xf5, 0xe2, 0x4f, 0x7d, 0xff, 0x9f, 0x7e, 0xb5, 0x34, 0x47, 0x1a, 0xb7, 0xc2, 0xe2, 0x97, 0x47, 0x58, 0x44, 0x3e, 0x80, 0x59, 0xf9, 0xcb, 0x31, 0x64, 0x59, 0xce,
0x1b, 0xa7, 0x6f, 0x6f, 0x0c, 0x69, 0x10, 0xb3, 0x36, 0xbe, 0x06, 0x90, 0xfe, 0x68, 0x0a, 0xe9, 0xda, 0xfe, 0xad, 0x9a, 0xee, 0x4a, 0x16, 0x96, 0x6c, 0xbd, 0xf8, 0x7f, 0x7e, 0xf8, 0xb7, 0xbf,
0x28, 0x77, 0x32, 0xf3, 0x6b, 0x30, 0xdd, 0xcb, 0x05, 0x35, 0xa2, 0xdd, 0xcb, 0xd8, 0xee, 0xa2, 0x58, 0x9a, 0x23, 0x8d, 0xf5, 0x93, 0xb7, 0xd7, 0x87, 0x2c, 0x88, 0x79, 0x1b, 0xdf, 0x00, 0x48,
0xdd, 0x62, 0xed, 0x7a, 0x81, 0x97, 0xf0, 0x5f, 0x50, 0x79, 0xcf, 0x5a, 0x27, 0x03, 0x68, 0xea, 0x7f, 0x53, 0x85, 0x74, 0xb4, 0x3b, 0x99, 0xf9, 0xb1, 0x98, 0xee, 0x95, 0x82, 0x1a, 0xd9, 0xee,
0xbf, 0x89, 0x42, 0x64, 0x4c, 0xab, 0xe0, 0x17, 0x59, 0xba, 0xaf, 0x14, 0xd6, 0xc9, 0x80, 0x1e, 0x15, 0x6c, 0x77, 0x91, 0xb6, 0x78, 0xbb, 0x7e, 0xe0, 0x27, 0xe2, 0x07, 0x56, 0xde, 0x73, 0xd6,
0xf6, 0xb1, 0x6c, 0xb7, 0x59, 0x1f, 0x13, 0xa4, 0x48, 0x7b, 0xf1, 0xa1, 0x65, 0xfe, 0xf4, 0x09, 0xc8, 0x00, 0x9a, 0xe6, 0x4f, 0xa6, 0x10, 0x15, 0xd3, 0x2a, 0xf8, 0xc1, 0x96, 0xee, 0x2b, 0x85,
0xb9, 0xa2, 0x69, 0x9c, 0xdc, 0x0f, 0xaf, 0x74, 0x5f, 0x9d, 0x52, 0x2b, 0xfa, 0x7a, 0x15, 0xfb, 0x75, 0x2a, 0xa0, 0x87, 0x7d, 0x2c, 0xd3, 0x36, 0xef, 0x63, 0x8a, 0x14, 0x69, 0x2f, 0x23, 0x68,
0x5a, 0xb5, 0x09, 0xeb, 0xab, 0x8f, 0x34, 0xf2, 0x87, 0x57, 0xde, 0xb3, 0xd6, 0x6f, 0xff, 0xfe, 0xd9, 0xbf, 0x8c, 0x42, 0xae, 0x1a, 0x1a, 0x27, 0xf7, 0xbb, 0x2c, 0xdd, 0x57, 0xcf, 0xa9, 0x95,
0xeb, 0x50, 0x57, 0x51, 0x68, 0xf2, 0x21, 0xcc, 0x19, 0xd7, 0xf6, 0x44, 0x4e, 0xa3, 0xe8, 0x96, 0x7d, 0xbd, 0x8a, 0x7d, 0x5d, 0xa6, 0x84, 0xf7, 0xd5, 0x47, 0x1a, 0xf5, 0xbb, 0x2c, 0xef, 0x39,
0xbf, 0x7b, 0xa5, 0xb8, 0x52, 0x74, 0x7c, 0x15, 0x3b, 0xee, 0x90, 0x15, 0xd6, 0xb1, 0xb8, 0xf7, 0x6b, 0x77, 0x7e, 0xfb, 0x75, 0xa8, 0xeb, 0x28, 0x34, 0xf9, 0x08, 0xe6, 0xac, 0x6b, 0x7b, 0xa2,
0xde, 0xc0, 0x04, 0x14, 0x9e, 0x4d, 0xfe, 0x94, 0xcf, 0x33, 0xbd, 0x6a, 0x37, 0xe6, 0x99, 0xbb, 0xa6, 0x51, 0x74, 0xcb, 0xdf, 0xbd, 0x5a, 0x5c, 0x29, 0x3b, 0xbe, 0x86, 0x1d, 0x77, 0xc8, 0x0a,
0x9a, 0x37, 0xe6, 0x99, 0xbf, 0x9f, 0xb7, 0xaf, 0x60, 0x77, 0x2b, 0x64, 0x49, 0xef, 0x4e, 0x45, 0xef, 0x58, 0xde, 0x7b, 0xaf, 0x63, 0x02, 0x8a, 0xc8, 0x26, 0x7f, 0x2a, 0xe6, 0x99, 0x5e, 0xb5,
0x87, 0x29, 0x3e, 0x81, 0xd0, 0x7f, 0x35, 0x84, 0xbc, 0xaa, 0x18, 0xab, 0xe8, 0xd7, 0x44, 0x14, 0x5b, 0xf3, 0xcc, 0x5d, 0xcd, 0x5b, 0xf3, 0xcc, 0xdf, 0xcf, 0xd3, 0xab, 0xd8, 0xdd, 0x0a, 0x59,
0x8b, 0xe4, 0x7f, 0x52, 0xc4, 0xee, 0x60, 0x57, 0x84, 0xe0, 0xf6, 0xe9, 0x3f, 0x1a, 0x42, 0x8e, 0x32, 0xbb, 0xd3, 0xd1, 0x61, 0x86, 0x4f, 0x20, 0xcc, 0x1f, 0x15, 0x21, 0xaf, 0x6a, 0xc6, 0x2a,
0xa0, 0xa1, 0x3d, 0x84, 0x27, 0x97, 0xa7, 0x3e, 0xda, 0xef, 0x76, 0x8b, 0xaa, 0x8a, 0xa6, 0xa2, 0xfa, 0xb1, 0x11, 0xcd, 0x22, 0xf9, 0x5f, 0x1c, 0xa1, 0x1d, 0xec, 0x8a, 0x10, 0xdc, 0x3e, 0xf3,
0xb7, 0xbf, 0xc1, 0x54, 0xce, 0x57, 0xa1, 0xae, 0x9e, 0x56, 0x93, 0x55, 0xed, 0xa9, 0xbb, 0xfe, 0x37, 0x45, 0xc8, 0x21, 0x34, 0x8c, 0x87, 0xf0, 0xe4, 0xca, 0xb9, 0x8f, 0xf6, 0xbb, 0xdd, 0xa2,
0x14, 0xbc, 0xdb, 0xc9, 0x57, 0x14, 0x31, 0x9f, 0xde, 0x3a, 0x63, 0xbe, 0x27, 0xd0, 0xd0, 0x9e, 0xaa, 0xa2, 0xa9, 0x98, 0xed, 0xaf, 0x73, 0x95, 0xf3, 0x75, 0xa8, 0xeb, 0xa7, 0xd5, 0xe4, 0xb2,
0x4f, 0xab, 0x09, 0xe4, 0x9f, 0x68, 0xab, 0x09, 0x14, 0xbc, 0xb6, 0xb6, 0x17, 0xb0, 0x8b, 0x06, 0xf1, 0xd4, 0xdd, 0x7c, 0x0a, 0xde, 0xed, 0xe4, 0x2b, 0x8a, 0x98, 0xcf, 0x6c, 0x9d, 0x33, 0xdf,
0xa9, 0x23, 0x7f, 0x27, 0xcf, 0xc2, 0x98, 0xec, 0xc1, 0xb2, 0x38, 0x5b, 0x1d, 0xd1, 0x8f, 0xb3, 0x13, 0x68, 0x18, 0xcf, 0xa7, 0xf5, 0x04, 0xf2, 0x4f, 0xb4, 0xf5, 0x04, 0x0a, 0x5e, 0x5b, 0xd3,
0x0d, 0x05, 0x3f, 0xd4, 0x72, 0xcb, 0x22, 0x77, 0xa0, 0x26, 0x5f, 0xc9, 0x93, 0x95, 0xe2, 0xd7, 0x05, 0xec, 0xa2, 0x41, 0xea, 0xc8, 0xdf, 0xc9, 0xb3, 0x30, 0x26, 0xbb, 0xb0, 0x2c, 0xcf, 0x56,
0xfe, 0xdd, 0xd5, 0x1c, 0x2e, 0x34, 0xef, 0x57, 0x00, 0xd2, 0xb7, 0xda, 0x4a, 0x49, 0xe4, 0xde, 0x87, 0xec, 0x93, 0x6c, 0x43, 0xc1, 0xef, 0xb8, 0xdc, 0x76, 0xc8, 0xfb, 0x50, 0x53, 0xaf, 0xe4,
0x7e, 0x2b, 0x0e, 0xc8, 0x3f, 0xec, 0xb6, 0x57, 0x70, 0x82, 0x6d, 0x82, 0x4a, 0x22, 0xa0, 0x67, 0xc9, 0x4a, 0xf1, 0x6b, 0xff, 0xee, 0xe5, 0x1c, 0x2e, 0x35, 0xef, 0xd7, 0x00, 0xd2, 0xb7, 0xda,
0xf2, 0xe1, 0xd1, 0xd7, 0xa1, 0xa1, 0x3d, 0xd7, 0x56, 0xcb, 0x97, 0x7f, 0xea, 0xad, 0x96, 0xaf, 0x5a, 0x49, 0xe4, 0xde, 0x7e, 0x6b, 0x0e, 0xc8, 0x3f, 0xec, 0xa6, 0x2b, 0x38, 0xc1, 0x36, 0x41,
0xe0, 0x75, 0xb7, 0xdd, 0xc5, 0xd6, 0x97, 0xec, 0x79, 0xd6, 0x7a, 0xec, 0x0d, 0x83, 0x11, 0x27, 0x25, 0x11, 0xb0, 0x53, 0xf5, 0xf0, 0xe8, 0x9b, 0xd0, 0x30, 0x9e, 0x6b, 0xeb, 0xe5, 0xcb, 0x3f,
0x60, 0x1b, 0x74, 0x02, 0x73, 0xc6, 0x9b, 0x6c, 0x25, 0xa1, 0x45, 0x2f, 0xbe, 0x95, 0x84, 0x16, 0xf5, 0xd6, 0xcb, 0x57, 0xf0, 0xba, 0x9b, 0x76, 0xb1, 0xf5, 0x25, 0x3a, 0xcf, 0x5b, 0x8f, 0xfd,
0x3e, 0xe3, 0x96, 0x7c, 0x66, 0x2f, 0xb0, 0x7e, 0x4e, 0x91, 0x44, 0xeb, 0xe9, 0x03, 0x68, 0x68, 0x61, 0x30, 0x16, 0x04, 0x7c, 0x83, 0x8e, 0x61, 0xce, 0x7a, 0x93, 0xad, 0x25, 0xb4, 0xe8, 0xc5,
0xef, 0xab, 0xd5, 0x5c, 0xf2, 0x4f, 0xb9, 0xd5, 0x5c, 0x8a, 0x9e, 0x63, 0x2f, 0x61, 0x1f, 0x2d, 0xb7, 0x96, 0xd0, 0xc2, 0x67, 0xdc, 0x8a, 0xcf, 0xe8, 0x02, 0xef, 0xe7, 0x04, 0x49, 0x8c, 0x9e,
0x1b, 0x59, 0x01, 0xdf, 0xed, 0xb0, 0xb6, 0x3f, 0x84, 0x96, 0xf9, 0xe2, 0x5a, 0xc9, 0x7e, 0xe1, 0x3e, 0x84, 0x86, 0xf1, 0xbe, 0x5a, 0xcf, 0x25, 0xff, 0x94, 0x5b, 0xcf, 0xa5, 0xe8, 0x39, 0xf6,
0xdb, 0x6d, 0x25, 0xfb, 0x53, 0x9e, 0x69, 0x0b, 0x96, 0x5e, 0x5f, 0x54, 0x9d, 0x6c, 0x7c, 0x24, 0x12, 0xf6, 0xd1, 0xa2, 0xc8, 0x0a, 0xf8, 0x6e, 0x87, 0xb7, 0xfd, 0x11, 0xb4, 0xec, 0x17, 0xd7,
0x6e, 0xa7, 0x9f, 0x93, 0x2f, 0x31, 0x05, 0x27, 0x1e, 0x52, 0x91, 0x55, 0x8d, 0x6b, 0xf5, 0xe7, 0x5a, 0xf6, 0x0b, 0xdf, 0x6e, 0x6b, 0xd9, 0x3f, 0xe7, 0x99, 0xb6, 0x64, 0xe9, 0xb5, 0x45, 0xdd,
0x56, 0x4a, 0x5e, 0x72, 0x6f, 0xae, 0x4c, 0x66, 0xe6, 0x2f, 0x8f, 0xd0, 0x6a, 0xe1, 0x83, 0x2a, 0xc9, 0xfa, 0xc7, 0xf2, 0x76, 0xfa, 0x39, 0xf9, 0x0a, 0x57, 0x70, 0xf2, 0x21, 0x15, 0xb9, 0x6c,
0xcd, 0x6a, 0xe9, 0x6f, 0xae, 0x34, 0xab, 0x65, 0xbc, 0xbb, 0xca, 0x5a, 0xad, 0xc4, 0x63, 0x6d, 0x70, 0xad, 0xf9, 0xdc, 0x4a, 0xcb, 0x4b, 0xee, 0xcd, 0x95, 0xcd, 0xcc, 0xe2, 0xe5, 0x11, 0x5a,
0x04, 0x30, 0x9f, 0x49, 0x2d, 0x54, 0x52, 0x51, 0x9c, 0x8b, 0xdd, 0xbd, 0xfa, 0xe2, 0x8c, 0x44, 0x2d, 0x7c, 0x50, 0x65, 0x58, 0x2d, 0xf3, 0xcd, 0x95, 0x61, 0xb5, 0xac, 0x77, 0x57, 0x59, 0xab,
0x53, 0x83, 0x48, 0x25, 0xb8, 0x21, 0x33, 0xdf, 0x7f, 0x1c, 0x9a, 0xfa, 0x5b, 0x58, 0xa2, 0x8b, 0x95, 0xf8, 0xbc, 0x8d, 0x00, 0xe6, 0x33, 0xa9, 0x85, 0x5a, 0x2a, 0x8a, 0x73, 0xb1, 0xbb, 0xd7,
0x72, 0xb6, 0xa7, 0x57, 0x0a, 0xeb, 0xcc, 0xcd, 0x25, 0x4d, 0xbd, 0x1b, 0xf2, 0x65, 0x58, 0x51, 0x5e, 0x9c, 0x91, 0x68, 0x6b, 0x10, 0xa5, 0x04, 0xd7, 0x55, 0xe6, 0xfb, 0xff, 0x84, 0xa6, 0xf9,
0xa2, 0xae, 0x67, 0xab, 0xc5, 0xe4, 0xb5, 0x82, 0x1c, 0x36, 0x3d, 0xe2, 0xd2, 0xbd, 0x3c, 0x35, 0x16, 0x96, 0x98, 0xa2, 0x9c, 0xed, 0xe9, 0x95, 0xc2, 0x3a, 0x7b, 0x73, 0x49, 0xd3, 0xec, 0x86,
0xc9, 0xed, 0x96, 0xc5, 0x98, 0xc6, 0x7c, 0x64, 0x98, 0x1a, 0x8c, 0xa2, 0xb7, 0x95, 0xa9, 0xc1, 0x7c, 0x15, 0x56, 0xb4, 0xa8, 0x9b, 0xd9, 0x6a, 0x31, 0x79, 0xad, 0x20, 0x87, 0xcd, 0x8c, 0xb8,
0x28, 0x7c, 0x99, 0x28, 0x99, 0x86, 0x2c, 0x1a, 0x6b, 0xc4, 0xaf, 0x1e, 0xc8, 0x07, 0x30, 0xaf, 0x74, 0xaf, 0x9c, 0x9b, 0xe4, 0x76, 0xdb, 0xe1, 0x4c, 0x63, 0x3f, 0x32, 0x4c, 0x0d, 0x46, 0xd1,
0xe5, 0x03, 0x1f, 0x9e, 0x07, 0x7d, 0x25, 0x00, 0xf9, 0x87, 0x23, 0xdd, 0xa2, 0x23, 0x81, 0xbd, 0xdb, 0xca, 0xd4, 0x60, 0x14, 0xbe, 0x4c, 0x54, 0x4c, 0x43, 0x16, 0xad, 0x35, 0x12, 0x57, 0x0f,
0x8a, 0xed, 0x2f, 0xd8, 0xc6, 0xe2, 0x30, 0xe6, 0xdf, 0x82, 0x86, 0x9e, 0x6b, 0xfc, 0x82, 0x76, 0xe4, 0x43, 0x98, 0x37, 0xf2, 0x81, 0x0f, 0xce, 0x82, 0xbe, 0x16, 0x80, 0xfc, 0xc3, 0x91, 0x6e,
0x57, 0xb5, 0x2a, 0xfd, 0xdd, 0xc3, 0x2d, 0x8b, 0xfc, 0x86, 0x05, 0x4d, 0x23, 0x73, 0xd7, 0xb8, 0xd1, 0x91, 0x80, 0x5e, 0xc6, 0xf6, 0x17, 0xa8, 0xb5, 0x38, 0x9c, 0xf9, 0x37, 0xa1, 0x61, 0xe6,
0x60, 0xcb, 0xb4, 0xd3, 0xd1, 0xeb, 0xf4, 0x86, 0x6c, 0x07, 0x07, 0xb9, 0xb7, 0xfe, 0x05, 0x63, 0x1a, 0xbf, 0xa0, 0xdd, 0xcb, 0x46, 0x95, 0xf9, 0xee, 0xe1, 0xb6, 0x43, 0x7e, 0xc5, 0x81, 0xa6,
0x11, 0x3e, 0x32, 0x8e, 0x96, 0x37, 0xb3, 0xbf, 0xcc, 0xf3, 0x3c, 0x4b, 0xa0, 0x3f, 0xae, 0x79, 0x95, 0xb9, 0x6b, 0x5d, 0xb0, 0x65, 0xda, 0xe9, 0x98, 0x75, 0x66, 0x43, 0xd4, 0xc5, 0x41, 0xee,
0x7e, 0xcb, 0x22, 0xdf, 0xb5, 0xa0, 0x65, 0x06, 0x44, 0xd4, 0x56, 0x15, 0x86, 0x5e, 0xd4, 0x56, 0xae, 0x7d, 0xc9, 0x5a, 0x84, 0x8f, 0xad, 0xa3, 0xe5, 0xad, 0xec, 0x2f, 0xf3, 0x3c, 0xcf, 0x12,
0x4d, 0x89, 0xa2, 0x7c, 0x80, 0xa3, 0x7c, 0xb4, 0xee, 0x18, 0xa3, 0x14, 0xcf, 0x4f, 0x7f, 0xb8, 0x98, 0x8f, 0x6b, 0x9e, 0xdf, 0x76, 0xc8, 0xf7, 0x1d, 0x68, 0xd9, 0x01, 0x11, 0xbd, 0x55, 0x85,
0xd1, 0x92, 0xf7, 0xf8, 0xaf, 0x73, 0xc9, 0x28, 0x1d, 0xd1, 0xac, 0x46, 0x76, 0x7b, 0xf5, 0x1f, 0xa1, 0x17, 0xbd, 0x55, 0xe7, 0x44, 0x51, 0x3e, 0xc4, 0x51, 0x3e, 0x5a, 0x73, 0xad, 0x51, 0xca,
0x9c, 0x5a, 0xb3, 0x6e, 0x59, 0xe4, 0xeb, 0xfc, 0x17, 0x69, 0xc4, 0xb7, 0xc8, 0x25, 0x2f, 0xfb, 0xe7, 0xa7, 0x3f, 0xde, 0x68, 0xc9, 0x7b, 0xe2, 0xc7, 0xbb, 0x54, 0x94, 0x8e, 0x18, 0x56, 0x23,
0xbd, 0x7d, 0x1d, 0xe7, 0x74, 0xd5, 0xbe, 0x6c, 0xcc, 0x29, 0x6b, 0x8f, 0x37, 0xf9, 0xe8, 0xc4, 0xbb, 0xbd, 0xe6, 0x0f, 0x4e, 0xad, 0x3a, 0xb7, 0x1d, 0xf2, 0x4d, 0xf1, 0x8b, 0x34, 0xf2, 0x5b,
0x6f, 0x45, 0xa5, 0x06, 0x25, 0xf7, 0xfb, 0x51, 0xd3, 0x07, 0x39, 0xe2, 0x83, 0x14, 0xe4, 0x06, 0xe4, 0x92, 0x97, 0xfd, 0x9e, 0xde, 0xc0, 0x39, 0x5d, 0xa3, 0x57, 0xac, 0x39, 0x65, 0xed, 0xf1,
0x2b, 0xbf, 0x64, 0x33, 0xf6, 0x3a, 0x8e, 0xf5, 0xba, 0xfd, 0xda, 0xd4, 0xb1, 0x6e, 0x60, 0x58, 0x86, 0x18, 0x9d, 0xfc, 0xad, 0xa8, 0xd4, 0xa0, 0xe4, 0x7e, 0x3f, 0xea, 0xfc, 0x41, 0x8e, 0xc5,
0x83, 0x8d, 0xf8, 0x00, 0x20, 0x8d, 0xa8, 0x93, 0x4c, 0x44, 0x57, 0x09, 0x78, 0x3e, 0xe8, 0x6e, 0x20, 0x25, 0xb9, 0xc5, 0xca, 0x2f, 0xd9, 0x0c, 0x5d, 0xc3, 0xb1, 0xde, 0xa0, 0xaf, 0x9d, 0x3b,
0xca, 0x8b, 0x0c, 0xfc, 0xb2, 0x16, 0xbf, 0xca, 0xd5, 0xd5, 0x03, 0x19, 0x0b, 0xd6, 0x9d, 0x12, 0xd6, 0x75, 0x0c, 0x6b, 0xf0, 0x11, 0xef, 0x03, 0xa4, 0x11, 0x75, 0x92, 0x89, 0xe8, 0x6a, 0x01,
0x33, 0xf4, 0x6d, 0x38, 0x25, 0xd9, 0xf6, 0x0d, 0x65, 0xa5, 0x02, 0xcb, 0x8f, 0x61, 0x6e, 0x2f, 0xcf, 0x07, 0xdd, 0x6d, 0x79, 0x51, 0x81, 0x5f, 0xde, 0xe2, 0xd7, 0x85, 0xba, 0x7a, 0xa0, 0x62,
0x0c, 0x9f, 0x4e, 0xc6, 0xea, 0x76, 0xcc, 0x8c, 0x38, 0xee, 0xba, 0xf1, 0x49, 0x37, 0x33, 0x0b, 0xc1, 0xa6, 0x53, 0x62, 0x87, 0xbe, 0x2d, 0xa7, 0x24, 0xdb, 0xbe, 0xa5, 0xac, 0x74, 0x60, 0xf9,
0xfb, 0x1a, 0x36, 0xd5, 0x25, 0x1d, 0xad, 0xa9, 0x8d, 0x8f, 0xd2, 0x88, 0xfd, 0x73, 0xe2, 0xc2, 0x31, 0xcc, 0xed, 0x86, 0xe1, 0xd3, 0xe9, 0x44, 0xdf, 0x8e, 0xd9, 0x11, 0xc7, 0x1d, 0x2f, 0x3e,
0x82, 0xd2, 0x81, 0x6a, 0xe0, 0x5d, 0xb3, 0x19, 0x43, 0xf3, 0x65, 0xbb, 0x30, 0xbc, 0x67, 0x39, 0xee, 0x66, 0x66, 0x41, 0xaf, 0x63, 0x53, 0x5d, 0xd2, 0x31, 0x9a, 0x5a, 0xff, 0x38, 0x8d, 0xd8,
0xda, 0x8d, 0x58, 0xb6, 0x79, 0xcb, 0x22, 0x07, 0xd0, 0xdc, 0xa6, 0xfd, 0x70, 0x40, 0x45, 0xd8, 0x3f, 0x27, 0x1e, 0x2c, 0x68, 0x1d, 0xa8, 0x07, 0xde, 0xb5, 0x9b, 0xb1, 0x34, 0x5f, 0xb6, 0x0b,
0x6e, 0x31, 0x1d, 0xb8, 0x8a, 0xf7, 0x75, 0xe7, 0x0c, 0xd0, 0xb4, 0x0b, 0x63, 0xf7, 0x3c, 0xa2, 0xcb, 0x7b, 0x56, 0xa3, 0x5d, 0x8f, 0x55, 0x9b, 0xb7, 0x1d, 0xb2, 0x0f, 0xcd, 0x2d, 0xd6, 0x0f,
0xdf, 0xd8, 0xf8, 0x48, 0x04, 0x04, 0x9f, 0x4b, 0xbb, 0x20, 0x23, 0xa6, 0x86, 0x5d, 0xc8, 0x84, 0x07, 0x4c, 0x86, 0xed, 0x16, 0xd3, 0x81, 0xeb, 0x78, 0x5f, 0x77, 0xce, 0x02, 0x6d, 0xbb, 0x30,
0x58, 0x0d, 0xbb, 0x90, 0x0b, 0xb1, 0x1a, 0x4b, 0x2d, 0x23, 0xb6, 0xc4, 0x87, 0x85, 0x5c, 0x54, 0xf1, 0xce, 0x22, 0xf6, 0xad, 0xf5, 0x8f, 0x65, 0x40, 0xf0, 0xb9, 0xb2, 0x0b, 0x2a, 0x62, 0x6a,
0x56, 0x99, 0x84, 0x69, 0xb1, 0xdc, 0xee, 0xb5, 0xe9, 0x04, 0x66, 0x6f, 0xeb, 0x66, 0x6f, 0x87, 0xd9, 0x85, 0x4c, 0x88, 0xd5, 0xb2, 0x0b, 0xb9, 0x10, 0xab, 0xb5, 0xd4, 0x2a, 0x62, 0x4b, 0x46,
0x30, 0xb7, 0x4d, 0xf9, 0x62, 0xf1, 0x14, 0x9c, 0x4c, 0xfa, 0xb7, 0x9e, 0xe0, 0x93, 0x55, 0xe0, 0xb0, 0x90, 0x8b, 0xca, 0x6a, 0x93, 0x70, 0x5e, 0x2c, 0xb7, 0x7b, 0xfd, 0x7c, 0x02, 0xbb, 0xb7,
0x58, 0x67, 0x1a, 0x7e, 0xcc, 0x7f, 0x21, 0x5f, 0x85, 0xc6, 0x7d, 0x9a, 0xc8, 0x9c, 0x1b, 0xe5, 0x35, 0xbb, 0xb7, 0x03, 0x98, 0xdb, 0x62, 0x62, 0xb1, 0x44, 0x0a, 0x4e, 0x26, 0xfd, 0xdb, 0x4c,
0x7a, 0x66, 0x92, 0x70, 0xba, 0x05, 0x29, 0x3b, 0x26, 0xcf, 0x60, 0x6b, 0x1b, 0x74, 0x30, 0xa4, 0xf0, 0xc9, 0x2a, 0x70, 0xac, 0xb3, 0x0d, 0x3f, 0xe6, 0xbf, 0x90, 0xaf, 0x43, 0xe3, 0x3e, 0x4b,
0x5c, 0x39, 0xf5, 0xbc, 0xc1, 0x73, 0xf2, 0x63, 0xd8, 0xb8, 0x4a, 0x0d, 0x5c, 0xd1, 0x52, 0x35, 0x54, 0xce, 0x8d, 0x76, 0x3d, 0x33, 0x49, 0x38, 0xdd, 0x82, 0x94, 0x1d, 0x9b, 0x67, 0xb0, 0xb5,
0xf4, 0xc6, 0xe7, 0x33, 0x78, 0x51, 0xcb, 0x41, 0x38, 0xa0, 0x9a, 0x0b, 0x14, 0x40, 0x43, 0xcb, 0x75, 0x36, 0x18, 0x32, 0xa1, 0x9c, 0x7a, 0xfe, 0xe0, 0x39, 0xf9, 0x1f, 0xd8, 0xb8, 0x4e, 0x0d,
0x68, 0x55, 0x02, 0x94, 0x4f, 0x40, 0x56, 0x02, 0x54, 0x90, 0x00, 0x6b, 0xaf, 0x61, 0x3f, 0x36, 0x5c, 0x31, 0x52, 0x35, 0xcc, 0xc6, 0xe7, 0x33, 0x78, 0x51, 0xcb, 0x41, 0x38, 0x60, 0x86, 0x0b,
0xb9, 0x96, 0xf6, 0xc3, 0x93, 0x5e, 0xd3, 0x9e, 0x36, 0x3e, 0x72, 0x47, 0xc9, 0x73, 0xf2, 0x04, 0x14, 0x40, 0xc3, 0xc8, 0x68, 0xd5, 0x02, 0x94, 0x4f, 0x40, 0xd6, 0x02, 0x54, 0x90, 0x00, 0x4b,
0xdf, 0xa0, 0xeb, 0x79, 0x45, 0xa9, 0x2f, 0x9d, 0x4d, 0x41, 0x52, 0x8b, 0xa5, 0x55, 0x99, 0xfe, 0x57, 0xb1, 0x1f, 0x4a, 0xae, 0xa7, 0xfd, 0x88, 0xa4, 0xd7, 0xb4, 0xa7, 0xf5, 0x8f, 0xbd, 0x71,
0x35, 0xef, 0x0a, 0x3d, 0xa5, 0xcf, 0x00, 0x1c, 0x26, 0xe1, 0x78, 0xdb, 0xa5, 0xa3, 0x30, 0x48, 0xf2, 0x9c, 0x3c, 0xc1, 0x37, 0xe8, 0x66, 0x5e, 0x51, 0xea, 0x4b, 0x67, 0x53, 0x90, 0xf4, 0x62,
0x75, 0x6d, 0x9a, 0x3b, 0x93, 0xea, 0x2f, 0x2d, 0x81, 0x86, 0x3c, 0xd1, 0x0e, 0x1f, 0x46, 0x5a, 0x19, 0x55, 0xb6, 0x7f, 0x2d, 0xba, 0x42, 0x4f, 0xe9, 0x73, 0x00, 0x07, 0x49, 0x38, 0xd9, 0xf2,
0x96, 0x64, 0xae, 0xa9, 0xe9, 0x35, 0x6a, 0x41, 0x0a, 0x52, 0x6c, 0x6e, 0x59, 0x64, 0x13, 0x20, 0xd8, 0x38, 0x0c, 0x52, 0x5d, 0x9b, 0xe6, 0xce, 0xa4, 0xfa, 0xcb, 0x48, 0xa0, 0x21, 0x4f, 0x8c,
0x0d, 0xcb, 0xab, 0xa3, 0x44, 0x2e, 0xe2, 0xaf, 0xd4, 0x5e, 0x41, 0x0c, 0xff, 0x00, 0xea, 0x69, 0xc3, 0x87, 0x95, 0x96, 0xa5, 0x98, 0xeb, 0xdc, 0xf4, 0x1a, 0xbd, 0x20, 0x05, 0x29, 0x36, 0xb7,
0x9c, 0x77, 0x35, 0x4d, 0xba, 0x36, 0xa2, 0xc2, 0xca, 0x82, 0xe7, 0xa2, 0xaf, 0x76, 0x1b, 0x97, 0x1d, 0xb2, 0x01, 0x90, 0x86, 0xe5, 0xf5, 0x51, 0x22, 0x17, 0xf1, 0xd7, 0x6a, 0xaf, 0x20, 0x86,
0x0a, 0x48, 0x8d, 0x2d, 0x15, 0x86, 0x54, 0x3d, 0x58, 0xe4, 0x03, 0x54, 0xee, 0x08, 0x66, 0x83, 0xbf, 0x0f, 0xf5, 0x34, 0xce, 0x7b, 0x39, 0x4d, 0xba, 0xb6, 0xa2, 0xc2, 0xda, 0x82, 0xe7, 0xa2,
0xc8, 0x99, 0x14, 0x44, 0x40, 0x95, 0x34, 0x17, 0x06, 0x10, 0x8d, 0x88, 0x08, 0xe3, 0x56, 0x9e, 0xaf, 0xb4, 0x8d, 0x4b, 0x05, 0xa4, 0xc6, 0x97, 0x0a, 0x43, 0xaa, 0x3e, 0x2c, 0x8a, 0x01, 0x6a,
0x89, 0xc2, 0x54, 0xf3, 0x08, 0x16, 0x72, 0x11, 0x2e, 0x25, 0xd2, 0xd3, 0x82, 0x8e, 0x4a, 0xa4, 0x77, 0x04, 0xb3, 0x41, 0xd4, 0x4c, 0x0a, 0x22, 0xa0, 0x5a, 0x9a, 0x0b, 0x03, 0x88, 0x56, 0x44,
0xa7, 0x06, 0xc7, 0xec, 0x65, 0xec, 0x72, 0xde, 0x06, 0x3c, 0x01, 0x9d, 0x79, 0x49, 0xff, 0xe4, 0x84, 0x73, 0xab, 0xc8, 0x44, 0xe1, 0xaa, 0x79, 0x0c, 0x0b, 0xb9, 0x08, 0x97, 0x16, 0xe9, 0xf3,
0x3d, 0x6b, 0xfd, 0xee, 0x8d, 0x0f, 0xfe, 0xd7, 0xd0, 0x4b, 0x4e, 0x26, 0x47, 0x37, 0xfb, 0xe1, 0x82, 0x8e, 0x5a, 0xa4, 0xcf, 0x0d, 0x8e, 0xd1, 0x65, 0xec, 0x72, 0x9e, 0x02, 0x9e, 0x80, 0x4e,
0x68, 0xc3, 0x97, 0x61, 0x0b, 0x91, 0xd3, 0xb5, 0xe1, 0x07, 0x83, 0x0d, 0x6c, 0xf9, 0x68, 0x06, 0xfd, 0xa4, 0x7f, 0xfc, 0x9e, 0xb3, 0x76, 0xf7, 0xe6, 0x87, 0xff, 0x69, 0xe8, 0x27, 0xc7, 0xd3,
0x7f, 0xda, 0xf8, 0x53, 0xff, 0x15, 0x00, 0x00, 0xff, 0xff, 0x8e, 0xf8, 0xad, 0x38, 0x0c, 0x59, 0xc3, 0x5b, 0xfd, 0x70, 0xbc, 0x3e, 0x52, 0x61, 0x0b, 0x99, 0xd3, 0xb5, 0x3e, 0x0a, 0x06, 0xeb,
0x00, 0x00, 0xd8, 0xf2, 0xe1, 0x0c, 0xfe, 0xf2, 0xf1, 0x67, 0xfe, 0x2d, 0x00, 0x00, 0xff, 0xff, 0xda, 0x2f,
0x55, 0x67, 0x2b, 0x59, 0x00, 0x00,
} }

@ -790,7 +790,14 @@ message SendRequest {
any channel may be used. any channel may be used.
*/ */
uint64 outgoing_chan_id = 9; uint64 outgoing_chan_id = 9;
/**
An optional maximum total time lock for the route. If zero, there is no
maximum enforced.
*/
uint32 cltv_limit = 10;
} }
message SendResponse { message SendResponse {
string payment_error = 1 [json_name = "payment_error"]; string payment_error = 1 [json_name = "payment_error"];
bytes payment_preimage = 2 [json_name = "payment_preimage"]; bytes payment_preimage = 2 [json_name = "payment_preimage"];

@ -2977,6 +2977,11 @@
"type": "string", "type": "string",
"format": "uint64", "format": "uint64",
"description": "*\nThe channel id of the channel that must be taken to the first hop. If zero,\nany channel may be used." "description": "*\nThe channel id of the channel that must be taken to the first hop. If zero,\nany channel may be used."
},
"cltv_limit": {
"type": "integer",
"format": "int64",
"description": "* \nAn optional maximum total time lock for the route. If zero, there is no\nmaximum enforced."
} }
} }
}, },

@ -21,6 +21,10 @@ type nodeWithDist struct {
// amount that includes also the fees for subsequent hops. // amount that includes also the fees for subsequent hops.
amountToReceive lnwire.MilliSatoshi amountToReceive lnwire.MilliSatoshi
// incomingCltv is the expected cltv value for the incoming htlc of this
// node. This value does not include the final cltv.
incomingCltv uint32
// fee is the fee that this node is charging for forwarding. // fee is the fee that this node is charging for forwarding.
fee lnwire.MilliSatoshi fee lnwire.MilliSatoshi
} }

@ -226,6 +226,7 @@ func (m *missionControl) NewPaymentSession(routeHints [][]zpay32.HopHint,
bandwidthHints: bandwidthHints, bandwidthHints: bandwidthHints,
errFailedPolicyChans: make(map[EdgeLocator]struct{}), errFailedPolicyChans: make(map[EdgeLocator]struct{}),
mc: m, mc: m,
pathFinder: findPath,
}, nil }, nil
} }
@ -240,6 +241,7 @@ func (m *missionControl) NewPaymentSessionFromRoutes(routes []*Route) *paymentSe
preBuiltRoutes: routes, preBuiltRoutes: routes,
errFailedPolicyChans: make(map[EdgeLocator]struct{}), errFailedPolicyChans: make(map[EdgeLocator]struct{}),
mc: m, mc: m,
pathFinder: findPath,
} }
} }

@ -39,6 +39,11 @@ const (
RiskFactorBillionths = 15 RiskFactorBillionths = 15
) )
// pathFinder defines the interface of a path finding algorithm.
type pathFinder = func(g *graphParams, r *RestrictParams,
source, target Vertex, amt lnwire.MilliSatoshi) (
[]*channeldb.ChannelEdgePolicy, error)
// Hop represents an intermediate or final node of the route. This naming // Hop represents an intermediate or final node of the route. This naming
// is in line with the definition given in BOLT #4: Onion Routing Protocol. // is in line with the definition given in BOLT #4: Onion Routing Protocol.
// The struct houses the channel along which this hop can be reached and // The struct houses the channel along which this hop can be reached and
@ -393,6 +398,11 @@ type RestrictParams struct {
// OutgoingChannelID is the channel that needs to be taken to the first // OutgoingChannelID is the channel that needs to be taken to the first
// hop. If nil, any channel may be used. // hop. If nil, any channel may be used.
OutgoingChannelID *uint64 OutgoingChannelID *uint64
// CltvLimit is the maximum time lock of the route excluding the final
// ctlv. After path finding is complete, the caller needs to increase
// all cltv expiry heights with the required final cltv delta.
CltvLimit *uint32
} }
// findPath attempts to find a path from the source node within the // findPath attempts to find a path from the source node within the
@ -479,6 +489,7 @@ func findPath(g *graphParams, r *RestrictParams, source, target Vertex,
node: targetNode, node: targetNode,
amountToReceive: amt, amountToReceive: amt,
fee: 0, fee: 0,
incomingCltv: 0,
} }
// We'll use this map as a series of "next" hop pointers. So to get // We'll use this map as a series of "next" hop pointers. So to get
@ -575,6 +586,14 @@ func findPath(g *graphParams, r *RestrictParams, source, target Vertex,
timeLockDelta = edge.TimeLockDelta timeLockDelta = edge.TimeLockDelta
} }
incomingCltv := toNodeDist.incomingCltv +
uint32(timeLockDelta)
// Check that we have cltv limit and that we are within it.
if r.CltvLimit != nil && incomingCltv > *r.CltvLimit {
return
}
// amountToReceive is the amount that the node that is added to // amountToReceive is the amount that the node that is added to
// the distance map needs to receive from a (to be found) // the distance map needs to receive from a (to be found)
// previous node in the route. That previous node will need to // previous node in the route. That previous node will need to
@ -606,14 +625,11 @@ func findPath(g *graphParams, r *RestrictParams, source, target Vertex,
return return
} }
// If the edge has no time lock delta, the payment will always // Every edge should have a positive time lock delta. If we
// fail, so return. // encounter a zero delta, log a warning line.
//
// TODO(joostjager): Is this really true? Can't it be that
// nodes take this risk in exchange for a extraordinary high
// fee?
if edge.TimeLockDelta == 0 { if edge.TimeLockDelta == 0 {
return log.Warnf("Channel %v has zero cltv delta",
edge.ChannelID)
} }
// All conditions are met and this new tentative distance is // All conditions are met and this new tentative distance is
@ -625,6 +641,7 @@ func findPath(g *graphParams, r *RestrictParams, source, target Vertex,
node: fromNode, node: fromNode,
amountToReceive: amountToReceive, amountToReceive: amountToReceive,
fee: fee, fee: fee,
incomingCltv: incomingCltv,
} }
next[fromVertex] = edge next[fromVertex] = edge

@ -2021,3 +2021,111 @@ func TestRestrictOutgoingChannel(t *testing.T) {
"but channel %v was selected instead", route.Hops[0].ChannelID) "but channel %v was selected instead", route.Hops[0].ChannelID)
} }
} }
// TestCltvLimit asserts that a cltv limit is obeyed by the path finding
// algorithm.
func TestCltvLimit(t *testing.T) {
t.Run("no limit", func(t *testing.T) { testCltvLimit(t, 0, 1) })
t.Run("no path", func(t *testing.T) { testCltvLimit(t, 50, 0) })
t.Run("force high cost", func(t *testing.T) { testCltvLimit(t, 80, 3) })
}
func testCltvLimit(t *testing.T, limit uint32, expectedChannel uint64) {
t.Parallel()
// Set up a test graph with three possible paths to the target. The path
// through a is the lowest cost with a high time lock (144). The path
// through b has a higher cost but a lower time lock (100). That path
// through c and d (two hops) has the same case as the path through b,
// but the total time lock is lower (60).
testChannels := []*testChannel{
symmetricTestChannel("roasbeef", "a", 100000, &testChannelPolicy{}, 1),
symmetricTestChannel("a", "target", 100000, &testChannelPolicy{
Expiry: 144,
FeeBaseMsat: 10000,
MinHTLC: 1,
}),
symmetricTestChannel("roasbeef", "b", 100000, &testChannelPolicy{}, 2),
symmetricTestChannel("b", "target", 100000, &testChannelPolicy{
Expiry: 100,
FeeBaseMsat: 20000,
MinHTLC: 1,
}),
symmetricTestChannel("roasbeef", "c", 100000, &testChannelPolicy{}, 3),
symmetricTestChannel("c", "d", 100000, &testChannelPolicy{
Expiry: 30,
FeeBaseMsat: 10000,
MinHTLC: 1,
}),
symmetricTestChannel("d", "target", 100000, &testChannelPolicy{
Expiry: 30,
FeeBaseMsat: 10000,
MinHTLC: 1,
}),
}
testGraphInstance, err := createTestGraphFromChannels(testChannels)
if err != nil {
t.Fatalf("unable to create graph: %v", err)
}
defer testGraphInstance.cleanUp()
sourceNode, err := testGraphInstance.graph.SourceNode()
if err != nil {
t.Fatalf("unable to fetch source node: %v", err)
}
sourceVertex := Vertex(sourceNode.PubKeyBytes)
ignoredEdges := make(map[EdgeLocator]struct{})
ignoredVertexes := make(map[Vertex]struct{})
paymentAmt := lnwire.NewMSatFromSatoshis(100)
target := testGraphInstance.aliasMap["target"]
// Find the best path given the cltv limit.
var cltvLimit *uint32
if limit != 0 {
cltvLimit = &limit
}
path, err := findPath(
&graphParams{
graph: testGraphInstance.graph,
},
&RestrictParams{
IgnoredNodes: ignoredVertexes,
IgnoredEdges: ignoredEdges,
FeeLimit: noFeeLimit,
CltvLimit: cltvLimit,
},
sourceVertex, target, paymentAmt,
)
if expectedChannel == 0 {
// Finish test if we expect no route.
if IsError(err, ErrNoPathFound) {
return
}
t.Fatal("expected no path to be found")
}
if err != nil {
t.Fatalf("unable to find path: %v", err)
}
const (
startingHeight = 100
finalHopCLTV = 1
)
route, err := newRoute(
paymentAmt, sourceVertex, path, startingHeight, finalHopCLTV,
)
if err != nil {
t.Fatalf("unable to create path: %v", err)
}
// Assert that the route starts with the expected channel.
if route.Hops[0].ChannelID != expectedChannel {
t.Fatalf("expected route to pass through channel %v, "+
"but channel %v was selected instead", expectedChannel,
route.Hops[0].ChannelID)
}
}

@ -33,6 +33,8 @@ type paymentSession struct {
haveRoutes bool haveRoutes bool
preBuiltRoutes []*Route preBuiltRoutes []*Route
pathFinder pathFinder
} }
// ReportVertexFailure adds a vertex to the graph prune view after a client // ReportVertexFailure adds a vertex to the graph prune view after a client
@ -136,12 +138,22 @@ func (p *paymentSession) RequestRoute(payment *LightningPayment,
"edges, %v vertexes", len(pruneView.edges), "edges, %v vertexes", len(pruneView.edges),
len(pruneView.vertexes)) len(pruneView.vertexes))
// If a route cltv limit was specified, we need to subtract the final
// delta before passing it into path finding. The optimal path is
// independent of the final cltv delta and the path finding algorithm is
// unaware of this value.
var cltvLimit *uint32
if payment.CltvLimit != nil {
limit := *payment.CltvLimit - uint32(finalCltvDelta)
cltvLimit = &limit
}
// TODO(roasbeef): sync logic amongst dist sys // TODO(roasbeef): sync logic amongst dist sys
// Taking into account this prune view, we'll attempt to locate a path // Taking into account this prune view, we'll attempt to locate a path
// to our destination, respecting the recommendations from // to our destination, respecting the recommendations from
// missionControl. // missionControl.
path, err := findPath( path, err := p.pathFinder(
&graphParams{ &graphParams{
graph: p.mc.graph, graph: p.mc.graph,
additionalEdges: p.additionalEdges, additionalEdges: p.additionalEdges,
@ -152,6 +164,7 @@ func (p *paymentSession) RequestRoute(payment *LightningPayment,
IgnoredEdges: pruneView.edges, IgnoredEdges: pruneView.edges,
FeeLimit: payment.FeeLimit, FeeLimit: payment.FeeLimit,
OutgoingChannelID: payment.OutgoingChannelID, OutgoingChannelID: payment.OutgoingChannelID,
CltvLimit: cltvLimit,
}, },
p.mc.selfNode.PubKeyBytes, payment.Target, p.mc.selfNode.PubKeyBytes, payment.Target,
payment.Amount, payment.Amount,

@ -0,0 +1,60 @@
package routing
import (
"testing"
"github.com/lightningnetwork/lnd/channeldb"
"github.com/lightningnetwork/lnd/lnwire"
)
func TestRequestRoute(t *testing.T) {
const (
height = 10
)
findPath := func(g *graphParams, r *RestrictParams,
source, target Vertex, amt lnwire.MilliSatoshi) (
[]*channeldb.ChannelEdgePolicy, error) {
// We expect find path to receive a cltv limit excluding the
// final cltv delta.
if *r.CltvLimit != 22 {
t.Fatal("wrong cltv limit")
}
path := []*channeldb.ChannelEdgePolicy{
{
Node: &channeldb.LightningNode{},
},
}
return path, nil
}
session := &paymentSession{
mc: &missionControl{
selfNode: &channeldb.LightningNode{},
},
pruneViewSnapshot: graphPruneView{},
pathFinder: findPath,
}
cltvLimit := uint32(30)
finalCltvDelta := uint16(8)
payment := &LightningPayment{
CltvLimit: &cltvLimit,
FinalCLTVDelta: &finalCltvDelta,
}
route, err := session.RequestRoute(payment, height, finalCltvDelta)
if err != nil {
t.Fatal(err)
}
// We expect an absolute route lock value of height + finalCltvDelta
if route.TotalTimeLock != 18 {
t.Fatalf("unexpected total time lock of %v",
route.TotalTimeLock)
}
}

@ -1523,6 +1523,10 @@ type LightningPayment struct {
// if there isn't a route with lower fees than this limit. // if there isn't a route with lower fees than this limit.
FeeLimit lnwire.MilliSatoshi FeeLimit lnwire.MilliSatoshi
// CltvLimit is the maximum time lock that is allowed for attempts to
// complete this payment.
CltvLimit *uint32
// PaymentHash is the r-hash value to use within the HTLC extended to // PaymentHash is the r-hash value to use within the HTLC extended to
// the first hop. // the first hop.
PaymentHash [32]byte PaymentHash [32]byte

@ -2852,6 +2852,7 @@ func unmarshallSendToRouteRequest(req *lnrpc.SendToRouteRequest,
type rpcPaymentIntent struct { type rpcPaymentIntent struct {
msat lnwire.MilliSatoshi msat lnwire.MilliSatoshi
feeLimit lnwire.MilliSatoshi feeLimit lnwire.MilliSatoshi
cltvLimit *uint32
dest routing.Vertex dest routing.Vertex
rHash [32]byte rHash [32]byte
cltvDelta uint16 cltvDelta uint16
@ -2895,6 +2896,11 @@ func extractPaymentIntent(rpcPayReq *rpcPaymentRequest) (rpcPaymentIntent, error
payIntent.outgoingChannelID = &rpcPayReq.OutgoingChanId payIntent.outgoingChannelID = &rpcPayReq.OutgoingChanId
} }
// Take cltv limit from request if set.
if rpcPayReq.CltvLimit != 0 {
payIntent.cltvLimit = &rpcPayReq.CltvLimit
}
// If the payment request field isn't blank, then the details of the // If the payment request field isn't blank, then the details of the
// invoice are encoded entirely within the encoded payReq. So we'll // invoice are encoded entirely within the encoded payReq. So we'll
// attempt to decode it, populating the payment accordingly. // attempt to decode it, populating the payment accordingly.
@ -3044,6 +3050,7 @@ func (r *rpcServer) dispatchPaymentIntent(
Target: payIntent.dest, Target: payIntent.dest,
Amount: payIntent.msat, Amount: payIntent.msat,
FeeLimit: payIntent.feeLimit, FeeLimit: payIntent.feeLimit,
CltvLimit: payIntent.cltvLimit,
PaymentHash: payIntent.rHash, PaymentHash: payIntent.rHash,
RouteHints: payIntent.routeHints, RouteHints: payIntent.routeHints,
OutgoingChannelID: payIntent.outgoingChannelID, OutgoingChannelID: payIntent.outgoingChannelID,