// Code generated by protoc-gen-go. DO NOT EDIT. // source: types.proto /* Package trezor is a generated protocol buffer package. It is generated from these files: types.proto messages.proto It has these top-level messages: HDNodeType HDNodePathType CoinType MultisigRedeemScriptType TxInputType TxOutputType TxOutputBinType TransactionType TxRequestDetailsType TxRequestSerializedType IdentityType Initialize GetFeatures Features ClearSession ApplySettings ApplyFlags ChangePin Ping Success Failure ButtonRequest ButtonAck PinMatrixRequest PinMatrixAck Cancel PassphraseRequest PassphraseAck GetEntropy Entropy GetPublicKey PublicKey GetAddress EthereumGetAddress Address EthereumAddress WipeDevice LoadDevice ResetDevice BackupDevice EntropyRequest EntropyAck RecoveryDevice WordRequest WordAck SignMessage VerifyMessage MessageSignature EncryptMessage EncryptedMessage DecryptMessage DecryptedMessage CipherKeyValue CipheredKeyValue EstimateTxSize TxSize SignTx SimpleSignTx TxRequest TxAck EthereumSignTx EthereumTxRequest EthereumTxAck EthereumSignMessage EthereumVerifyMessage EthereumMessageSignature SignIdentity SignedIdentity GetECDHSessionKey ECDHSessionKey SetU2FCounter FirmwareErase FirmwareRequest FirmwareUpload SelfTest DebugLinkDecision DebugLinkGetState DebugLinkState DebugLinkStop DebugLinkLog DebugLinkMemoryRead DebugLinkMemory DebugLinkMemoryWrite DebugLinkFlashErase */ package trezor import proto "github.com/golang/protobuf/proto" import fmt "fmt" import math "math" import google_protobuf "github.com/golang/protobuf/protoc-gen-go/descriptor" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package // * // Type of failures returned by Failure message // @used_in Failure type FailureType int32 const ( FailureType_Failure_UnexpectedMessage FailureType = 1 FailureType_Failure_ButtonExpected FailureType = 2 FailureType_Failure_DataError FailureType = 3 FailureType_Failure_ActionCancelled FailureType = 4 FailureType_Failure_PinExpected FailureType = 5 FailureType_Failure_PinCancelled FailureType = 6 FailureType_Failure_PinInvalid FailureType = 7 FailureType_Failure_InvalidSignature FailureType = 8 FailureType_Failure_ProcessError FailureType = 9 FailureType_Failure_NotEnoughFunds FailureType = 10 FailureType_Failure_NotInitialized FailureType = 11 FailureType_Failure_FirmwareError FailureType = 99 ) var FailureType_name = map[int32]string{ 1: "Failure_UnexpectedMessage", 2: "Failure_ButtonExpected", 3: "Failure_DataError", 4: "Failure_ActionCancelled", 5: "Failure_PinExpected", 6: "Failure_PinCancelled", 7: "Failure_PinInvalid", 8: "Failure_InvalidSignature", 9: "Failure_ProcessError", 10: "Failure_NotEnoughFunds", 11: "Failure_NotInitialized", 99: "Failure_FirmwareError", } var FailureType_value = map[string]int32{ "Failure_UnexpectedMessage": 1, "Failure_ButtonExpected": 2, "Failure_DataError": 3, "Failure_ActionCancelled": 4, "Failure_PinExpected": 5, "Failure_PinCancelled": 6, "Failure_PinInvalid": 7, "Failure_InvalidSignature": 8, "Failure_ProcessError": 9, "Failure_NotEnoughFunds": 10, "Failure_NotInitialized": 11, "Failure_FirmwareError": 99, } func (x FailureType) Enum() *FailureType { p := new(FailureType) *p = x return p } func (x FailureType) String() string { return proto.EnumName(FailureType_name, int32(x)) } func (x *FailureType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(FailureType_value, data, "FailureType") if err != nil { return err } *x = FailureType(value) return nil } func (FailureType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } // * // Type of script which will be used for transaction output // @used_in TxOutputType type OutputScriptType int32 const ( OutputScriptType_PAYTOADDRESS OutputScriptType = 0 OutputScriptType_PAYTOSCRIPTHASH OutputScriptType = 1 OutputScriptType_PAYTOMULTISIG OutputScriptType = 2 OutputScriptType_PAYTOOPRETURN OutputScriptType = 3 OutputScriptType_PAYTOWITNESS OutputScriptType = 4 OutputScriptType_PAYTOP2SHWITNESS OutputScriptType = 5 ) var OutputScriptType_name = map[int32]string{ 0: "PAYTOADDRESS", 1: "PAYTOSCRIPTHASH", 2: "PAYTOMULTISIG", 3: "PAYTOOPRETURN", 4: "PAYTOWITNESS", 5: "PAYTOP2SHWITNESS", } var OutputScriptType_value = map[string]int32{ "PAYTOADDRESS": 0, "PAYTOSCRIPTHASH": 1, "PAYTOMULTISIG": 2, "PAYTOOPRETURN": 3, "PAYTOWITNESS": 4, "PAYTOP2SHWITNESS": 5, } func (x OutputScriptType) Enum() *OutputScriptType { p := new(OutputScriptType) *p = x return p } func (x OutputScriptType) String() string { return proto.EnumName(OutputScriptType_name, int32(x)) } func (x *OutputScriptType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(OutputScriptType_value, data, "OutputScriptType") if err != nil { return err } *x = OutputScriptType(value) return nil } func (OutputScriptType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } // * // Type of script which will be used for transaction output // @used_in TxInputType type InputScriptType int32 const ( InputScriptType_SPENDADDRESS InputScriptType = 0 InputScriptType_SPENDMULTISIG InputScriptType = 1 InputScriptType_EXTERNAL InputScriptType = 2 InputScriptType_SPENDWITNESS InputScriptType = 3 InputScriptType_SPENDP2SHWITNESS InputScriptType = 4 ) var InputScriptType_name = map[int32]string{ 0: "SPENDADDRESS", 1: "SPENDMULTISIG", 2: "EXTERNAL", 3: "SPENDWITNESS", 4: "SPENDP2SHWITNESS", } var InputScriptType_value = map[string]int32{ "SPENDADDRESS": 0, "SPENDMULTISIG": 1, "EXTERNAL": 2, "SPENDWITNESS": 3, "SPENDP2SHWITNESS": 4, } func (x InputScriptType) Enum() *InputScriptType { p := new(InputScriptType) *p = x return p } func (x InputScriptType) String() string { return proto.EnumName(InputScriptType_name, int32(x)) } func (x *InputScriptType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(InputScriptType_value, data, "InputScriptType") if err != nil { return err } *x = InputScriptType(value) return nil } func (InputScriptType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } // * // Type of information required by transaction signing process // @used_in TxRequest type RequestType int32 const ( RequestType_TXINPUT RequestType = 0 RequestType_TXOUTPUT RequestType = 1 RequestType_TXMETA RequestType = 2 RequestType_TXFINISHED RequestType = 3 RequestType_TXEXTRADATA RequestType = 4 ) var RequestType_name = map[int32]string{ 0: "TXINPUT", 1: "TXOUTPUT", 2: "TXMETA", 3: "TXFINISHED", 4: "TXEXTRADATA", } var RequestType_value = map[string]int32{ "TXINPUT": 0, "TXOUTPUT": 1, "TXMETA": 2, "TXFINISHED": 3, "TXEXTRADATA": 4, } func (x RequestType) Enum() *RequestType { p := new(RequestType) *p = x return p } func (x RequestType) String() string { return proto.EnumName(RequestType_name, int32(x)) } func (x *RequestType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(RequestType_value, data, "RequestType") if err != nil { return err } *x = RequestType(value) return nil } func (RequestType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } // * // Type of button request // @used_in ButtonRequest type ButtonRequestType int32 const ( ButtonRequestType_ButtonRequest_Other ButtonRequestType = 1 ButtonRequestType_ButtonRequest_FeeOverThreshold ButtonRequestType = 2 ButtonRequestType_ButtonRequest_ConfirmOutput ButtonRequestType = 3 ButtonRequestType_ButtonRequest_ResetDevice ButtonRequestType = 4 ButtonRequestType_ButtonRequest_ConfirmWord ButtonRequestType = 5 ButtonRequestType_ButtonRequest_WipeDevice ButtonRequestType = 6 ButtonRequestType_ButtonRequest_ProtectCall ButtonRequestType = 7 ButtonRequestType_ButtonRequest_SignTx ButtonRequestType = 8 ButtonRequestType_ButtonRequest_FirmwareCheck ButtonRequestType = 9 ButtonRequestType_ButtonRequest_Address ButtonRequestType = 10 ButtonRequestType_ButtonRequest_PublicKey ButtonRequestType = 11 ) var ButtonRequestType_name = map[int32]string{ 1: "ButtonRequest_Other", 2: "ButtonRequest_FeeOverThreshold", 3: "ButtonRequest_ConfirmOutput", 4: "ButtonRequest_ResetDevice", 5: "ButtonRequest_ConfirmWord", 6: "ButtonRequest_WipeDevice", 7: "ButtonRequest_ProtectCall", 8: "ButtonRequest_SignTx", 9: "ButtonRequest_FirmwareCheck", 10: "ButtonRequest_Address", 11: "ButtonRequest_PublicKey", } var ButtonRequestType_value = map[string]int32{ "ButtonRequest_Other": 1, "ButtonRequest_FeeOverThreshold": 2, "ButtonRequest_ConfirmOutput": 3, "ButtonRequest_ResetDevice": 4, "ButtonRequest_ConfirmWord": 5, "ButtonRequest_WipeDevice": 6, "ButtonRequest_ProtectCall": 7, "ButtonRequest_SignTx": 8, "ButtonRequest_FirmwareCheck": 9, "ButtonRequest_Address": 10, "ButtonRequest_PublicKey": 11, } func (x ButtonRequestType) Enum() *ButtonRequestType { p := new(ButtonRequestType) *p = x return p } func (x ButtonRequestType) String() string { return proto.EnumName(ButtonRequestType_name, int32(x)) } func (x *ButtonRequestType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(ButtonRequestType_value, data, "ButtonRequestType") if err != nil { return err } *x = ButtonRequestType(value) return nil } func (ButtonRequestType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } // * // Type of PIN request // @used_in PinMatrixRequest type PinMatrixRequestType int32 const ( PinMatrixRequestType_PinMatrixRequestType_Current PinMatrixRequestType = 1 PinMatrixRequestType_PinMatrixRequestType_NewFirst PinMatrixRequestType = 2 PinMatrixRequestType_PinMatrixRequestType_NewSecond PinMatrixRequestType = 3 ) var PinMatrixRequestType_name = map[int32]string{ 1: "PinMatrixRequestType_Current", 2: "PinMatrixRequestType_NewFirst", 3: "PinMatrixRequestType_NewSecond", } var PinMatrixRequestType_value = map[string]int32{ "PinMatrixRequestType_Current": 1, "PinMatrixRequestType_NewFirst": 2, "PinMatrixRequestType_NewSecond": 3, } func (x PinMatrixRequestType) Enum() *PinMatrixRequestType { p := new(PinMatrixRequestType) *p = x return p } func (x PinMatrixRequestType) String() string { return proto.EnumName(PinMatrixRequestType_name, int32(x)) } func (x *PinMatrixRequestType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(PinMatrixRequestType_value, data, "PinMatrixRequestType") if err != nil { return err } *x = PinMatrixRequestType(value) return nil } func (PinMatrixRequestType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } // * // Type of recovery procedure. These should be used as bitmask, e.g., // `RecoveryDeviceType_ScrambledWords | RecoveryDeviceType_Matrix` // listing every method supported by the host computer. // // Note that ScrambledWords must be supported by every implementation // for backward compatibility; there is no way to not support it. // // @used_in RecoveryDevice type RecoveryDeviceType int32 const ( // use powers of two when extending this field RecoveryDeviceType_RecoveryDeviceType_ScrambledWords RecoveryDeviceType = 0 RecoveryDeviceType_RecoveryDeviceType_Matrix RecoveryDeviceType = 1 ) var RecoveryDeviceType_name = map[int32]string{ 0: "RecoveryDeviceType_ScrambledWords", 1: "RecoveryDeviceType_Matrix", } var RecoveryDeviceType_value = map[string]int32{ "RecoveryDeviceType_ScrambledWords": 0, "RecoveryDeviceType_Matrix": 1, } func (x RecoveryDeviceType) Enum() *RecoveryDeviceType { p := new(RecoveryDeviceType) *p = x return p } func (x RecoveryDeviceType) String() string { return proto.EnumName(RecoveryDeviceType_name, int32(x)) } func (x *RecoveryDeviceType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(RecoveryDeviceType_value, data, "RecoveryDeviceType") if err != nil { return err } *x = RecoveryDeviceType(value) return nil } func (RecoveryDeviceType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } // * // Type of Recovery Word request // @used_in WordRequest type WordRequestType int32 const ( WordRequestType_WordRequestType_Plain WordRequestType = 0 WordRequestType_WordRequestType_Matrix9 WordRequestType = 1 WordRequestType_WordRequestType_Matrix6 WordRequestType = 2 ) var WordRequestType_name = map[int32]string{ 0: "WordRequestType_Plain", 1: "WordRequestType_Matrix9", 2: "WordRequestType_Matrix6", } var WordRequestType_value = map[string]int32{ "WordRequestType_Plain": 0, "WordRequestType_Matrix9": 1, "WordRequestType_Matrix6": 2, } func (x WordRequestType) Enum() *WordRequestType { p := new(WordRequestType) *p = x return p } func (x WordRequestType) String() string { return proto.EnumName(WordRequestType_name, int32(x)) } func (x *WordRequestType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(WordRequestType_value, data, "WordRequestType") if err != nil { return err } *x = WordRequestType(value) return nil } func (WordRequestType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } // * // Structure representing BIP32 (hierarchical deterministic) node // Used for imports of private key into the device and exporting public key out of device // @used_in PublicKey // @used_in LoadDevice // @used_in DebugLinkState // @used_in Storage type HDNodeType struct { Depth *uint32 `protobuf:"varint,1,req,name=depth" json:"depth,omitempty"` Fingerprint *uint32 `protobuf:"varint,2,req,name=fingerprint" json:"fingerprint,omitempty"` ChildNum *uint32 `protobuf:"varint,3,req,name=child_num,json=childNum" json:"child_num,omitempty"` ChainCode []byte `protobuf:"bytes,4,req,name=chain_code,json=chainCode" json:"chain_code,omitempty"` PrivateKey []byte `protobuf:"bytes,5,opt,name=private_key,json=privateKey" json:"private_key,omitempty"` PublicKey []byte `protobuf:"bytes,6,opt,name=public_key,json=publicKey" json:"public_key,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *HDNodeType) Reset() { *m = HDNodeType{} } func (m *HDNodeType) String() string { return proto.CompactTextString(m) } func (*HDNodeType) ProtoMessage() {} func (*HDNodeType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } func (m *HDNodeType) GetDepth() uint32 { if m != nil && m.Depth != nil { return *m.Depth } return 0 } func (m *HDNodeType) GetFingerprint() uint32 { if m != nil && m.Fingerprint != nil { return *m.Fingerprint } return 0 } func (m *HDNodeType) GetChildNum() uint32 { if m != nil && m.ChildNum != nil { return *m.ChildNum } return 0 } func (m *HDNodeType) GetChainCode() []byte { if m != nil { return m.ChainCode } return nil } func (m *HDNodeType) GetPrivateKey() []byte { if m != nil { return m.PrivateKey } return nil } func (m *HDNodeType) GetPublicKey() []byte { if m != nil { return m.PublicKey } return nil } type HDNodePathType struct { Node *HDNodeType `protobuf:"bytes,1,req,name=node" json:"node,omitempty"` AddressN []uint32 `protobuf:"varint,2,rep,name=address_n,json=addressN" json:"address_n,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *HDNodePathType) Reset() { *m = HDNodePathType{} } func (m *HDNodePathType) String() string { return proto.CompactTextString(m) } func (*HDNodePathType) ProtoMessage() {} func (*HDNodePathType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } func (m *HDNodePathType) GetNode() *HDNodeType { if m != nil { return m.Node } return nil } func (m *HDNodePathType) GetAddressN() []uint32 { if m != nil { return m.AddressN } return nil } // * // Structure representing Coin // @used_in Features type CoinType struct { CoinName *string `protobuf:"bytes,1,opt,name=coin_name,json=coinName" json:"coin_name,omitempty"` CoinShortcut *string `protobuf:"bytes,2,opt,name=coin_shortcut,json=coinShortcut" json:"coin_shortcut,omitempty"` AddressType *uint32 `protobuf:"varint,3,opt,name=address_type,json=addressType,def=0" json:"address_type,omitempty"` MaxfeeKb *uint64 `protobuf:"varint,4,opt,name=maxfee_kb,json=maxfeeKb" json:"maxfee_kb,omitempty"` AddressTypeP2Sh *uint32 `protobuf:"varint,5,opt,name=address_type_p2sh,json=addressTypeP2sh,def=5" json:"address_type_p2sh,omitempty"` SignedMessageHeader *string `protobuf:"bytes,8,opt,name=signed_message_header,json=signedMessageHeader" json:"signed_message_header,omitempty"` XpubMagic *uint32 `protobuf:"varint,9,opt,name=xpub_magic,json=xpubMagic,def=76067358" json:"xpub_magic,omitempty"` XprvMagic *uint32 `protobuf:"varint,10,opt,name=xprv_magic,json=xprvMagic,def=76066276" json:"xprv_magic,omitempty"` Segwit *bool `protobuf:"varint,11,opt,name=segwit" json:"segwit,omitempty"` Forkid *uint32 `protobuf:"varint,12,opt,name=forkid" json:"forkid,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *CoinType) Reset() { *m = CoinType{} } func (m *CoinType) String() string { return proto.CompactTextString(m) } func (*CoinType) ProtoMessage() {} func (*CoinType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } const Default_CoinType_AddressType uint32 = 0 const Default_CoinType_AddressTypeP2Sh uint32 = 5 const Default_CoinType_XpubMagic uint32 = 76067358 const Default_CoinType_XprvMagic uint32 = 76066276 func (m *CoinType) GetCoinName() string { if m != nil && m.CoinName != nil { return *m.CoinName } return "" } func (m *CoinType) GetCoinShortcut() string { if m != nil && m.CoinShortcut != nil { return *m.CoinShortcut } return "" } func (m *CoinType) GetAddressType() uint32 { if m != nil && m.AddressType != nil { return *m.AddressType } return Default_CoinType_AddressType } func (m *CoinType) GetMaxfeeKb() uint64 { if m != nil && m.MaxfeeKb != nil { return *m.MaxfeeKb } return 0 } func (m *CoinType) GetAddressTypeP2Sh() uint32 { if m != nil && m.AddressTypeP2Sh != nil { return *m.AddressTypeP2Sh } return Default_CoinType_AddressTypeP2Sh } func (m *CoinType) GetSignedMessageHeader() string { if m != nil && m.SignedMessageHeader != nil { return *m.SignedMessageHeader } return "" } func (m *CoinType) GetXpubMagic() uint32 { if m != nil && m.XpubMagic != nil { return *m.XpubMagic } return Default_CoinType_XpubMagic } func (m *CoinType) GetXprvMagic() uint32 { if m != nil && m.XprvMagic != nil { return *m.XprvMagic } return Default_CoinType_XprvMagic } func (m *CoinType) GetSegwit() bool { if m != nil && m.Segwit != nil { return *m.Segwit } return false } func (m *CoinType) GetForkid() uint32 { if m != nil && m.Forkid != nil { return *m.Forkid } return 0 } // * // Type of redeem script used in input // @used_in TxInputType type MultisigRedeemScriptType struct { Pubkeys []*HDNodePathType `protobuf:"bytes,1,rep,name=pubkeys" json:"pubkeys,omitempty"` Signatures [][]byte `protobuf:"bytes,2,rep,name=signatures" json:"signatures,omitempty"` M *uint32 `protobuf:"varint,3,opt,name=m" json:"m,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *MultisigRedeemScriptType) Reset() { *m = MultisigRedeemScriptType{} } func (m *MultisigRedeemScriptType) String() string { return proto.CompactTextString(m) } func (*MultisigRedeemScriptType) ProtoMessage() {} func (*MultisigRedeemScriptType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } func (m *MultisigRedeemScriptType) GetPubkeys() []*HDNodePathType { if m != nil { return m.Pubkeys } return nil } func (m *MultisigRedeemScriptType) GetSignatures() [][]byte { if m != nil { return m.Signatures } return nil } func (m *MultisigRedeemScriptType) GetM() uint32 { if m != nil && m.M != nil { return *m.M } return 0 } // * // Structure representing transaction input // @used_in SimpleSignTx // @used_in TransactionType type TxInputType struct { AddressN []uint32 `protobuf:"varint,1,rep,name=address_n,json=addressN" json:"address_n,omitempty"` PrevHash []byte `protobuf:"bytes,2,req,name=prev_hash,json=prevHash" json:"prev_hash,omitempty"` PrevIndex *uint32 `protobuf:"varint,3,req,name=prev_index,json=prevIndex" json:"prev_index,omitempty"` ScriptSig []byte `protobuf:"bytes,4,opt,name=script_sig,json=scriptSig" json:"script_sig,omitempty"` Sequence *uint32 `protobuf:"varint,5,opt,name=sequence,def=4294967295" json:"sequence,omitempty"` ScriptType *InputScriptType `protobuf:"varint,6,opt,name=script_type,json=scriptType,enum=InputScriptType,def=0" json:"script_type,omitempty"` Multisig *MultisigRedeemScriptType `protobuf:"bytes,7,opt,name=multisig" json:"multisig,omitempty"` Amount *uint64 `protobuf:"varint,8,opt,name=amount" json:"amount,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *TxInputType) Reset() { *m = TxInputType{} } func (m *TxInputType) String() string { return proto.CompactTextString(m) } func (*TxInputType) ProtoMessage() {} func (*TxInputType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } const Default_TxInputType_Sequence uint32 = 4294967295 const Default_TxInputType_ScriptType InputScriptType = InputScriptType_SPENDADDRESS func (m *TxInputType) GetAddressN() []uint32 { if m != nil { return m.AddressN } return nil } func (m *TxInputType) GetPrevHash() []byte { if m != nil { return m.PrevHash } return nil } func (m *TxInputType) GetPrevIndex() uint32 { if m != nil && m.PrevIndex != nil { return *m.PrevIndex } return 0 } func (m *TxInputType) GetScriptSig() []byte { if m != nil { return m.ScriptSig } return nil } func (m *TxInputType) GetSequence() uint32 { if m != nil && m.Sequence != nil { return *m.Sequence } return Default_TxInputType_Sequence } func (m *TxInputType) GetScriptType() InputScriptType { if m != nil && m.ScriptType != nil { return *m.ScriptType } return Default_TxInputType_ScriptType } func (m *TxInputType) GetMultisig() *MultisigRedeemScriptType { if m != nil { return m.Multisig } return nil } func (m *TxInputType) GetAmount() uint64 { if m != nil && m.Amount != nil { return *m.Amount } return 0 } // * // Structure representing transaction output // @used_in SimpleSignTx // @used_in TransactionType type TxOutputType struct { Address *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` AddressN []uint32 `protobuf:"varint,2,rep,name=address_n,json=addressN" json:"address_n,omitempty"` Amount *uint64 `protobuf:"varint,3,req,name=amount" json:"amount,omitempty"` ScriptType *OutputScriptType `protobuf:"varint,4,req,name=script_type,json=scriptType,enum=OutputScriptType" json:"script_type,omitempty"` Multisig *MultisigRedeemScriptType `protobuf:"bytes,5,opt,name=multisig" json:"multisig,omitempty"` OpReturnData []byte `protobuf:"bytes,6,opt,name=op_return_data,json=opReturnData" json:"op_return_data,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *TxOutputType) Reset() { *m = TxOutputType{} } func (m *TxOutputType) String() string { return proto.CompactTextString(m) } func (*TxOutputType) ProtoMessage() {} func (*TxOutputType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } func (m *TxOutputType) GetAddress() string { if m != nil && m.Address != nil { return *m.Address } return "" } func (m *TxOutputType) GetAddressN() []uint32 { if m != nil { return m.AddressN } return nil } func (m *TxOutputType) GetAmount() uint64 { if m != nil && m.Amount != nil { return *m.Amount } return 0 } func (m *TxOutputType) GetScriptType() OutputScriptType { if m != nil && m.ScriptType != nil { return *m.ScriptType } return OutputScriptType_PAYTOADDRESS } func (m *TxOutputType) GetMultisig() *MultisigRedeemScriptType { if m != nil { return m.Multisig } return nil } func (m *TxOutputType) GetOpReturnData() []byte { if m != nil { return m.OpReturnData } return nil } // * // Structure representing compiled transaction output // @used_in TransactionType type TxOutputBinType struct { Amount *uint64 `protobuf:"varint,1,req,name=amount" json:"amount,omitempty"` ScriptPubkey []byte `protobuf:"bytes,2,req,name=script_pubkey,json=scriptPubkey" json:"script_pubkey,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *TxOutputBinType) Reset() { *m = TxOutputBinType{} } func (m *TxOutputBinType) String() string { return proto.CompactTextString(m) } func (*TxOutputBinType) ProtoMessage() {} func (*TxOutputBinType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } func (m *TxOutputBinType) GetAmount() uint64 { if m != nil && m.Amount != nil { return *m.Amount } return 0 } func (m *TxOutputBinType) GetScriptPubkey() []byte { if m != nil { return m.ScriptPubkey } return nil } // * // Structure representing transaction // @used_in SimpleSignTx type TransactionType struct { Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` Inputs []*TxInputType `protobuf:"bytes,2,rep,name=inputs" json:"inputs,omitempty"` BinOutputs []*TxOutputBinType `protobuf:"bytes,3,rep,name=bin_outputs,json=binOutputs" json:"bin_outputs,omitempty"` Outputs []*TxOutputType `protobuf:"bytes,5,rep,name=outputs" json:"outputs,omitempty"` LockTime *uint32 `protobuf:"varint,4,opt,name=lock_time,json=lockTime" json:"lock_time,omitempty"` InputsCnt *uint32 `protobuf:"varint,6,opt,name=inputs_cnt,json=inputsCnt" json:"inputs_cnt,omitempty"` OutputsCnt *uint32 `protobuf:"varint,7,opt,name=outputs_cnt,json=outputsCnt" json:"outputs_cnt,omitempty"` ExtraData []byte `protobuf:"bytes,8,opt,name=extra_data,json=extraData" json:"extra_data,omitempty"` ExtraDataLen *uint32 `protobuf:"varint,9,opt,name=extra_data_len,json=extraDataLen" json:"extra_data_len,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *TransactionType) Reset() { *m = TransactionType{} } func (m *TransactionType) String() string { return proto.CompactTextString(m) } func (*TransactionType) ProtoMessage() {} func (*TransactionType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } func (m *TransactionType) GetVersion() uint32 { if m != nil && m.Version != nil { return *m.Version } return 0 } func (m *TransactionType) GetInputs() []*TxInputType { if m != nil { return m.Inputs } return nil } func (m *TransactionType) GetBinOutputs() []*TxOutputBinType { if m != nil { return m.BinOutputs } return nil } func (m *TransactionType) GetOutputs() []*TxOutputType { if m != nil { return m.Outputs } return nil } func (m *TransactionType) GetLockTime() uint32 { if m != nil && m.LockTime != nil { return *m.LockTime } return 0 } func (m *TransactionType) GetInputsCnt() uint32 { if m != nil && m.InputsCnt != nil { return *m.InputsCnt } return 0 } func (m *TransactionType) GetOutputsCnt() uint32 { if m != nil && m.OutputsCnt != nil { return *m.OutputsCnt } return 0 } func (m *TransactionType) GetExtraData() []byte { if m != nil { return m.ExtraData } return nil } func (m *TransactionType) GetExtraDataLen() uint32 { if m != nil && m.ExtraDataLen != nil { return *m.ExtraDataLen } return 0 } // * // Structure representing request details // @used_in TxRequest type TxRequestDetailsType struct { RequestIndex *uint32 `protobuf:"varint,1,opt,name=request_index,json=requestIndex" json:"request_index,omitempty"` TxHash []byte `protobuf:"bytes,2,opt,name=tx_hash,json=txHash" json:"tx_hash,omitempty"` ExtraDataLen *uint32 `protobuf:"varint,3,opt,name=extra_data_len,json=extraDataLen" json:"extra_data_len,omitempty"` ExtraDataOffset *uint32 `protobuf:"varint,4,opt,name=extra_data_offset,json=extraDataOffset" json:"extra_data_offset,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *TxRequestDetailsType) Reset() { *m = TxRequestDetailsType{} } func (m *TxRequestDetailsType) String() string { return proto.CompactTextString(m) } func (*TxRequestDetailsType) ProtoMessage() {} func (*TxRequestDetailsType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } func (m *TxRequestDetailsType) GetRequestIndex() uint32 { if m != nil && m.RequestIndex != nil { return *m.RequestIndex } return 0 } func (m *TxRequestDetailsType) GetTxHash() []byte { if m != nil { return m.TxHash } return nil } func (m *TxRequestDetailsType) GetExtraDataLen() uint32 { if m != nil && m.ExtraDataLen != nil { return *m.ExtraDataLen } return 0 } func (m *TxRequestDetailsType) GetExtraDataOffset() uint32 { if m != nil && m.ExtraDataOffset != nil { return *m.ExtraDataOffset } return 0 } // * // Structure representing serialized data // @used_in TxRequest type TxRequestSerializedType struct { SignatureIndex *uint32 `protobuf:"varint,1,opt,name=signature_index,json=signatureIndex" json:"signature_index,omitempty"` Signature []byte `protobuf:"bytes,2,opt,name=signature" json:"signature,omitempty"` SerializedTx []byte `protobuf:"bytes,3,opt,name=serialized_tx,json=serializedTx" json:"serialized_tx,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *TxRequestSerializedType) Reset() { *m = TxRequestSerializedType{} } func (m *TxRequestSerializedType) String() string { return proto.CompactTextString(m) } func (*TxRequestSerializedType) ProtoMessage() {} func (*TxRequestSerializedType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } func (m *TxRequestSerializedType) GetSignatureIndex() uint32 { if m != nil && m.SignatureIndex != nil { return *m.SignatureIndex } return 0 } func (m *TxRequestSerializedType) GetSignature() []byte { if m != nil { return m.Signature } return nil } func (m *TxRequestSerializedType) GetSerializedTx() []byte { if m != nil { return m.SerializedTx } return nil } // * // Structure representing identity data // @used_in IdentityType type IdentityType struct { Proto *string `protobuf:"bytes,1,opt,name=proto" json:"proto,omitempty"` User *string `protobuf:"bytes,2,opt,name=user" json:"user,omitempty"` Host *string `protobuf:"bytes,3,opt,name=host" json:"host,omitempty"` Port *string `protobuf:"bytes,4,opt,name=port" json:"port,omitempty"` Path *string `protobuf:"bytes,5,opt,name=path" json:"path,omitempty"` Index *uint32 `protobuf:"varint,6,opt,name=index,def=0" json:"index,omitempty"` XXX_unrecognized []byte `json:"-"` } func (m *IdentityType) Reset() { *m = IdentityType{} } func (m *IdentityType) String() string { return proto.CompactTextString(m) } func (*IdentityType) ProtoMessage() {} func (*IdentityType) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } const Default_IdentityType_Index uint32 = 0 func (m *IdentityType) GetProto() string { if m != nil && m.Proto != nil { return *m.Proto } return "" } func (m *IdentityType) GetUser() string { if m != nil && m.User != nil { return *m.User } return "" } func (m *IdentityType) GetHost() string { if m != nil && m.Host != nil { return *m.Host } return "" } func (m *IdentityType) GetPort() string { if m != nil && m.Port != nil { return *m.Port } return "" } func (m *IdentityType) GetPath() string { if m != nil && m.Path != nil { return *m.Path } return "" } func (m *IdentityType) GetIndex() uint32 { if m != nil && m.Index != nil { return *m.Index } return Default_IdentityType_Index } var E_WireIn = &proto.ExtensionDesc{ ExtendedType: (*google_protobuf.EnumValueOptions)(nil), ExtensionType: (*bool)(nil), Field: 50002, Name: "wire_in", Tag: "varint,50002,opt,name=wire_in,json=wireIn", Filename: "types.proto", } var E_WireOut = &proto.ExtensionDesc{ ExtendedType: (*google_protobuf.EnumValueOptions)(nil), ExtensionType: (*bool)(nil), Field: 50003, Name: "wire_out", Tag: "varint,50003,opt,name=wire_out,json=wireOut", Filename: "types.proto", } var E_WireDebugIn = &proto.ExtensionDesc{ ExtendedType: (*google_protobuf.EnumValueOptions)(nil), ExtensionType: (*bool)(nil), Field: 50004, Name: "wire_debug_in", Tag: "varint,50004,opt,name=wire_debug_in,json=wireDebugIn", Filename: "types.proto", } var E_WireDebugOut = &proto.ExtensionDesc{ ExtendedType: (*google_protobuf.EnumValueOptions)(nil), ExtensionType: (*bool)(nil), Field: 50005, Name: "wire_debug_out", Tag: "varint,50005,opt,name=wire_debug_out,json=wireDebugOut", Filename: "types.proto", } var E_WireTiny = &proto.ExtensionDesc{ ExtendedType: (*google_protobuf.EnumValueOptions)(nil), ExtensionType: (*bool)(nil), Field: 50006, Name: "wire_tiny", Tag: "varint,50006,opt,name=wire_tiny,json=wireTiny", Filename: "types.proto", } var E_WireBootloader = &proto.ExtensionDesc{ ExtendedType: (*google_protobuf.EnumValueOptions)(nil), ExtensionType: (*bool)(nil), Field: 50007, Name: "wire_bootloader", Tag: "varint,50007,opt,name=wire_bootloader,json=wireBootloader", Filename: "types.proto", } func init() { proto.RegisterType((*HDNodeType)(nil), "HDNodeType") proto.RegisterType((*HDNodePathType)(nil), "HDNodePathType") proto.RegisterType((*CoinType)(nil), "CoinType") proto.RegisterType((*MultisigRedeemScriptType)(nil), "MultisigRedeemScriptType") proto.RegisterType((*TxInputType)(nil), "TxInputType") proto.RegisterType((*TxOutputType)(nil), "TxOutputType") proto.RegisterType((*TxOutputBinType)(nil), "TxOutputBinType") proto.RegisterType((*TransactionType)(nil), "TransactionType") proto.RegisterType((*TxRequestDetailsType)(nil), "TxRequestDetailsType") proto.RegisterType((*TxRequestSerializedType)(nil), "TxRequestSerializedType") proto.RegisterType((*IdentityType)(nil), "IdentityType") proto.RegisterEnum("FailureType", FailureType_name, FailureType_value) proto.RegisterEnum("OutputScriptType", OutputScriptType_name, OutputScriptType_value) proto.RegisterEnum("InputScriptType", InputScriptType_name, InputScriptType_value) proto.RegisterEnum("RequestType", RequestType_name, RequestType_value) proto.RegisterEnum("ButtonRequestType", ButtonRequestType_name, ButtonRequestType_value) proto.RegisterEnum("PinMatrixRequestType", PinMatrixRequestType_name, PinMatrixRequestType_value) proto.RegisterEnum("RecoveryDeviceType", RecoveryDeviceType_name, RecoveryDeviceType_value) proto.RegisterEnum("WordRequestType", WordRequestType_name, WordRequestType_value) proto.RegisterExtension(E_WireIn) proto.RegisterExtension(E_WireOut) proto.RegisterExtension(E_WireDebugIn) proto.RegisterExtension(E_WireDebugOut) proto.RegisterExtension(E_WireTiny) proto.RegisterExtension(E_WireBootloader) } func init() { proto.RegisterFile("types.proto", fileDescriptor0) } var fileDescriptor0 = []byte{ // 1899 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x57, 0xdb, 0x72, 0x1a, 0xc9, 0x19, 0xf6, 0x00, 0x92, 0xe0, 0x07, 0xc4, 0xa8, 0x7d, 0xd0, 0x78, 0x6d, 0xaf, 0x31, 0x76, 0x62, 0x45, 0x55, 0x61, 0x77, 0xc9, 0x5a, 0x8e, 0x55, 0xa9, 0x24, 0x3a, 0xa0, 0x15, 0x65, 0x0b, 0x51, 0xc3, 0x28, 0x56, 0x72, 0x33, 0x35, 0xcc, 0xb4, 0xa0, 0x4b, 0x43, 0x37, 0xe9, 0xe9, 0x91, 0xd1, 0xde, 0xe4, 0x2a, 0xc9, 0x55, 0x5e, 0x23, 0x6f, 0x91, 0xaa, 0xbc, 0x41, 0xaa, 0x36, 0xa7, 0xcb, 0xbc, 0x41, 0xae, 0xf2, 0x00, 0xa9, 0x3e, 0x0c, 0x02, 0xc9, 0xde, 0xd2, 0x1d, 0xfd, 0x7d, 0xff, 0xf9, 0xd0, 0x3d, 0x40, 0x59, 0x5c, 0x4e, 0x70, 0xd2, 0x9c, 0x70, 0x26, 0xd8, 0x67, 0xf5, 0x21, 0x63, 0xc3, 0x18, 0x7f, 0xa1, 0x4e, 0x83, 0xf4, 0xec, 0x8b, 0x08, 0x27, 0x21, 0x27, 0x13, 0xc1, 0xb8, 0x96, 0x68, 0xfc, 0xd5, 0x02, 0x38, 0xdc, 0xef, 0xb2, 0x08, 0x7b, 0x97, 0x13, 0x8c, 0xee, 0xc1, 0x52, 0x84, 0x27, 0x62, 0xe4, 0x58, 0xf5, 0xdc, 0x46, 0xd5, 0xd5, 0x07, 0x54, 0x87, 0xf2, 0x19, 0xa1, 0x43, 0xcc, 0x27, 0x9c, 0x50, 0xe1, 0xe4, 0x14, 0x37, 0x0f, 0xa1, 0x47, 0x50, 0x0a, 0x47, 0x24, 0x8e, 0x7c, 0x9a, 0x8e, 0x9d, 0xbc, 0xe2, 0x8b, 0x0a, 0xe8, 0xa6, 0x63, 0xf4, 0x04, 0x20, 0x1c, 0x05, 0x84, 0xfa, 0x21, 0x8b, 0xb0, 0x53, 0xa8, 0xe7, 0x36, 0x2a, 0x6e, 0x49, 0x21, 0x7b, 0x2c, 0xc2, 0xe8, 0x29, 0x94, 0x27, 0x9c, 0x5c, 0x04, 0x02, 0xfb, 0xe7, 0xf8, 0xd2, 0x59, 0xaa, 0x5b, 0x1b, 0x15, 0x17, 0x0c, 0xf4, 0x16, 0x5f, 0x4a, 0xfd, 0x49, 0x3a, 0x88, 0x49, 0xa8, 0xf8, 0x65, 0xc5, 0x97, 0x34, 0xf2, 0x16, 0x5f, 0x36, 0xba, 0xb0, 0xaa, 0x33, 0xe8, 0x05, 0x62, 0xa4, 0xb2, 0x78, 0x0a, 0x05, 0x2a, 0x5d, 0xc9, 0x24, 0xca, 0xad, 0x72, 0xf3, 0x2a, 0x41, 0x57, 0x11, 0x32, 0xdc, 0x20, 0x8a, 0x38, 0x4e, 0x12, 0x9f, 0x3a, 0xb9, 0x7a, 0x5e, 0x86, 0x6b, 0x80, 0x6e, 0xe3, 0x7f, 0x39, 0x28, 0xee, 0x31, 0x42, 0x95, 0x29, 0x99, 0x18, 0x23, 0xd4, 0xa7, 0xc1, 0x58, 0xda, 0xb3, 0x36, 0x4a, 0x6e, 0x51, 0x02, 0xdd, 0x60, 0x8c, 0xd1, 0x73, 0xa8, 0x2a, 0x32, 0x19, 0x31, 0x2e, 0xc2, 0x54, 0x56, 0x46, 0x0a, 0x54, 0x24, 0xd8, 0x37, 0x18, 0x7a, 0x01, 0x95, 0xcc, 0x97, 0x6c, 0x8d, 0x93, 0xaf, 0x5b, 0x1b, 0xd5, 0x6d, 0xeb, 0x4b, 0xb7, 0x6c, 0xe0, 0xcc, 0xcf, 0x38, 0x98, 0x9e, 0x61, 0xec, 0x9f, 0x0f, 0x9c, 0x42, 0xdd, 0xda, 0x28, 0xb8, 0x45, 0x0d, 0xbc, 0x1d, 0xa0, 0x1f, 0xc3, 0xda, 0xbc, 0x09, 0x7f, 0xd2, 0x4a, 0x46, 0xaa, 0x4e, 0xd5, 0x6d, 0xeb, 0x95, 0x5b, 0x9b, 0xb3, 0xd3, 0x6b, 0x25, 0x23, 0xd4, 0x82, 0xfb, 0x09, 0x19, 0x52, 0x1c, 0xf9, 0x63, 0x9c, 0x24, 0xc1, 0x10, 0xfb, 0x23, 0x1c, 0x44, 0x98, 0x3b, 0x45, 0x15, 0xde, 0x5d, 0x4d, 0x1e, 0x69, 0xee, 0x50, 0x51, 0xe8, 0x25, 0xc0, 0x74, 0x92, 0x0e, 0xfc, 0x71, 0x30, 0x24, 0xa1, 0x53, 0x52, 0xb6, 0x8b, 0xaf, 0xb7, 0xbe, 0xdc, 0x7a, 0xfd, 0x93, 0x57, 0x3f, 0x75, 0x4b, 0x92, 0x3b, 0x92, 0x94, 0x16, 0xe4, 0x17, 0x46, 0x10, 0xae, 0x04, 0xb7, 0x5a, 0xaf, 0xb7, 0xa4, 0x20, 0xbf, 0xd0, 0x82, 0x0f, 0x60, 0x39, 0xc1, 0xc3, 0x0f, 0x44, 0x38, 0xe5, 0xba, 0xb5, 0x51, 0x74, 0xcd, 0x49, 0xe2, 0x67, 0x8c, 0x9f, 0x93, 0xc8, 0xa9, 0x48, 0x65, 0xd7, 0x9c, 0x1a, 0x09, 0x38, 0x47, 0x69, 0x2c, 0x48, 0x42, 0x86, 0x2e, 0x8e, 0x30, 0x1e, 0xf7, 0xd5, 0xa4, 0xaa, 0xea, 0xfc, 0x08, 0x56, 0x26, 0xe9, 0xe0, 0x1c, 0x5f, 0x26, 0x8e, 0x55, 0xcf, 0x6f, 0x94, 0x5b, 0xb5, 0xe6, 0x62, 0xcb, 0xdd, 0x8c, 0x47, 0x9f, 0x03, 0xc8, 0xfc, 0x02, 0x91, 0x72, 0x9c, 0xa8, 0xde, 0x56, 0xdc, 0x39, 0x04, 0x55, 0xc0, 0x1a, 0xeb, 0x1e, 0xb8, 0xd6, 0xb8, 0xf1, 0x97, 0x1c, 0x94, 0xbd, 0x69, 0x87, 0x4e, 0x52, 0x91, 0xb5, 0xe1, 0x6a, 0x30, 0xac, 0xc5, 0xc1, 0x90, 0xe4, 0x84, 0xe3, 0x0b, 0x7f, 0x14, 0x24, 0x23, 0xb5, 0x04, 0x15, 0xb7, 0x28, 0x81, 0xc3, 0x20, 0x19, 0xa9, 0x21, 0x95, 0x24, 0xa1, 0x11, 0x9e, 0x9a, 0x15, 0x50, 0xe2, 0x1d, 0x09, 0x48, 0x5a, 0x6f, 0x9e, 0x9f, 0x90, 0xa1, 0x6a, 0x70, 0xc5, 0x2d, 0x69, 0xa4, 0x4f, 0x86, 0xe8, 0x87, 0x50, 0x4c, 0xf0, 0x6f, 0x53, 0x4c, 0x43, 0x6c, 0x1a, 0x0b, 0x5f, 0xb7, 0xde, 0x7c, 0xfd, 0x66, 0xeb, 0x75, 0xeb, 0xcd, 0x2b, 0x77, 0xc6, 0xa1, 0x5f, 0x40, 0xd9, 0x98, 0x51, 0xb3, 0x24, 0x77, 0x61, 0xb5, 0x65, 0x37, 0x55, 0x02, 0x57, 0xf5, 0xda, 0xae, 0xf4, 0x7b, 0xed, 0xee, 0xfe, 0xce, 0xfe, 0xbe, 0xdb, 0xee, 0xf7, 0x5d, 0xe3, 0x59, 0x25, 0xf8, 0x0a, 0x8a, 0x63, 0x53, 0x65, 0x67, 0xa5, 0x6e, 0x6d, 0x94, 0x5b, 0x0f, 0x9b, 0x9f, 0x2a, 0xbb, 0x3b, 0x13, 0x95, 0x4d, 0x0b, 0xc6, 0x2c, 0xa5, 0x42, 0xcd, 0x50, 0xc1, 0x35, 0xa7, 0xc6, 0x7f, 0x2d, 0xa8, 0x78, 0xd3, 0xe3, 0x54, 0x64, 0x05, 0x74, 0x60, 0xc5, 0xd4, 0xcb, 0x6c, 0x4b, 0x76, 0xfc, 0xde, 0x9d, 0x9b, 0xb3, 0x2f, 0x2b, 0x37, 0xb3, 0x8f, 0x5a, 0x8b, 0xf9, 0xca, 0xbb, 0x63, 0xb5, 0xb5, 0xd6, 0xd4, 0x0e, 0xe7, 0x22, 0xfd, 0x54, 0x8a, 0x4b, 0xb7, 0x4f, 0xf1, 0x05, 0xac, 0xb2, 0x89, 0xcf, 0xb1, 0x48, 0x39, 0xf5, 0xa3, 0x40, 0x04, 0xe6, 0xa6, 0xa9, 0xb0, 0x89, 0xab, 0xc0, 0xfd, 0x40, 0x04, 0x8d, 0x2e, 0xd4, 0xb2, 0x7c, 0x77, 0xcd, 0x15, 0x71, 0x15, 0xbb, 0xb5, 0x10, 0xfb, 0x73, 0xa8, 0x9a, 0xd8, 0xf5, 0x6c, 0x9a, 0x91, 0xa9, 0x68, 0xb0, 0xa7, 0xb0, 0xc6, 0xdf, 0x72, 0x50, 0xf3, 0x78, 0x40, 0x93, 0x20, 0x14, 0x84, 0xd1, 0xac, 0x86, 0x17, 0x98, 0x27, 0x84, 0x51, 0x55, 0xc3, 0xaa, 0x9b, 0x1d, 0xd1, 0x0b, 0x58, 0x26, 0xb2, 0xd5, 0x7a, 0xb0, 0xcb, 0xad, 0x4a, 0x73, 0x6e, 0x78, 0x5d, 0xc3, 0xa1, 0xaf, 0xa0, 0x3c, 0x20, 0xd4, 0x67, 0x2a, 0xca, 0xc4, 0xc9, 0x2b, 0x51, 0xbb, 0x79, 0x2d, 0x6e, 0x17, 0x06, 0x84, 0x6a, 0x24, 0x41, 0x2f, 0x61, 0x25, 0x13, 0x5f, 0x52, 0xe2, 0xd5, 0xe6, 0x7c, 0x5b, 0xdd, 0x8c, 0x95, 0x5d, 0x8c, 0x59, 0x78, 0xee, 0x0b, 0x32, 0xc6, 0x6a, 0x8c, 0xab, 0x6e, 0x51, 0x02, 0x1e, 0x19, 0x63, 0x39, 0xe4, 0x3a, 0x04, 0x3f, 0xa4, 0x42, 0x95, 0xaf, 0xea, 0x96, 0x34, 0xb2, 0x47, 0x85, 0xbc, 0xe8, 0x8d, 0x19, 0xc5, 0xaf, 0x28, 0x1e, 0x0c, 0x24, 0x05, 0x9e, 0x00, 0xe0, 0xa9, 0xe0, 0x81, 0x2e, 0x7f, 0x51, 0x2f, 0x89, 0x42, 0x64, 0xed, 0x65, 0x87, 0xae, 0x68, 0x3f, 0xc6, 0x54, 0xdf, 0x53, 0x6e, 0x65, 0x26, 0xf2, 0x0e, 0xd3, 0xc6, 0x9f, 0x2d, 0xb8, 0xe7, 0x4d, 0x5d, 0xb9, 0x31, 0x89, 0xd8, 0xc7, 0x22, 0x20, 0xb1, 0xbe, 0x62, 0x9f, 0x43, 0x95, 0x6b, 0xd4, 0x2c, 0xa9, 0x2e, 0x6e, 0xc5, 0x80, 0x7a, 0x4f, 0xd7, 0x61, 0x45, 0x4c, 0xb3, 0x0d, 0x97, 0xfe, 0x97, 0xc5, 0x54, 0xed, 0xf7, 0x4d, 0xe7, 0xf9, 0x9b, 0xce, 0xd1, 0x26, 0xac, 0xcd, 0x49, 0xb1, 0xb3, 0xb3, 0x04, 0x0b, 0x53, 0xa6, 0xda, 0x4c, 0xf0, 0x58, 0xc1, 0x8d, 0xdf, 0x5b, 0xb0, 0x3e, 0x0b, 0xb4, 0x8f, 0x39, 0x09, 0x62, 0xf2, 0x2d, 0x8e, 0x54, 0xac, 0x2f, 0xa1, 0x36, 0xbb, 0xb3, 0x16, 0xa2, 0x5d, 0x9d, 0xc1, 0x3a, 0xde, 0xc7, 0x50, 0x9a, 0x21, 0x26, 0xe2, 0x2b, 0x40, 0x8d, 0xe0, 0xcc, 0xb0, 0x2f, 0xa6, 0x2a, 0x66, 0x39, 0x82, 0x57, 0xde, 0xa6, 0x8d, 0x3f, 0x59, 0x50, 0xe9, 0x44, 0x98, 0x0a, 0x22, 0x2e, 0xb3, 0x8f, 0x00, 0xf5, 0x71, 0x60, 0x36, 0x58, 0x1f, 0x10, 0x82, 0x42, 0x9a, 0x60, 0x6e, 0xde, 0x38, 0xf5, 0x5b, 0x62, 0x23, 0x96, 0x08, 0x65, 0xb6, 0xe4, 0xaa, 0xdf, 0x12, 0x9b, 0x30, 0xae, 0xb3, 0x2e, 0xb9, 0xea, 0xb7, 0xc2, 0x02, 0xa1, 0xdf, 0x2c, 0x89, 0x05, 0x62, 0x84, 0xd6, 0x61, 0x49, 0x27, 0xb6, 0x9c, 0x3d, 0x88, 0xfa, 0xbc, 0xf9, 0x5d, 0x0e, 0xca, 0x07, 0x01, 0x89, 0x53, 0xae, 0xbf, 0x49, 0x9e, 0xc0, 0x43, 0x73, 0xf4, 0x4f, 0x28, 0x9e, 0x4e, 0x70, 0x28, 0x66, 0xaf, 0x97, 0x6d, 0xa1, 0xcf, 0xe0, 0x41, 0x46, 0xef, 0xa6, 0x42, 0x30, 0xda, 0x36, 0x22, 0x76, 0x0e, 0xdd, 0x87, 0xb5, 0x8c, 0x93, 0x85, 0x6f, 0x73, 0xce, 0xb8, 0x9d, 0x47, 0x8f, 0x60, 0x3d, 0x83, 0x77, 0xd4, 0xda, 0xed, 0x05, 0x34, 0xc4, 0x71, 0x8c, 0x23, 0xbb, 0x80, 0xd6, 0xe1, 0x6e, 0x46, 0xf6, 0xc8, 0x95, 0xb1, 0x25, 0xe4, 0xc0, 0xbd, 0x39, 0xe2, 0x4a, 0x65, 0x19, 0x3d, 0x00, 0x34, 0xc7, 0x74, 0xe8, 0x45, 0x10, 0x93, 0xc8, 0x5e, 0x41, 0x8f, 0xc1, 0xc9, 0x70, 0x03, 0xf6, 0xb3, 0xd6, 0xd8, 0xc5, 0x05, 0x7b, 0x9c, 0x85, 0x38, 0x49, 0x74, 0x7c, 0xa5, 0xf9, 0x94, 0xba, 0x4c, 0xb4, 0x29, 0x4b, 0x87, 0xa3, 0x83, 0x94, 0x46, 0x89, 0x0d, 0xd7, 0xb8, 0x0e, 0x25, 0xc2, 0x74, 0xd2, 0x2e, 0xa3, 0x87, 0x70, 0x3f, 0xe3, 0x0e, 0x08, 0x1f, 0x7f, 0x08, 0x38, 0xd6, 0x26, 0xc3, 0xcd, 0x3f, 0x5a, 0x60, 0x5f, 0xbf, 0x35, 0x91, 0x0d, 0x95, 0xde, 0xce, 0xaf, 0xbd, 0x63, 0xf3, 0x50, 0xd8, 0x77, 0xd0, 0x5d, 0xa8, 0x29, 0xa4, 0xbf, 0xe7, 0x76, 0x7a, 0xde, 0xe1, 0x4e, 0xff, 0xd0, 0xb6, 0xd0, 0x1a, 0x54, 0x15, 0x78, 0x74, 0xf2, 0xce, 0xeb, 0xf4, 0x3b, 0xdf, 0xd8, 0xb9, 0x19, 0x74, 0xdc, 0x73, 0xdb, 0xde, 0x89, 0xdb, 0xb5, 0xf3, 0x33, 0x63, 0xef, 0x3b, 0x5e, 0x57, 0x1a, 0x2b, 0xa0, 0x7b, 0x60, 0x2b, 0xa4, 0xd7, 0xea, 0x1f, 0x66, 0xe8, 0xd2, 0x66, 0x0c, 0xb5, 0x6b, 0xcf, 0x95, 0x54, 0x9d, 0x7f, 0xb0, 0xec, 0x3b, 0xd2, 0xbe, 0x42, 0x66, 0x2e, 0x2d, 0x54, 0x81, 0x62, 0xfb, 0xd4, 0x6b, 0xbb, 0xdd, 0x9d, 0x77, 0x76, 0x6e, 0xa6, 0x92, 0xd9, 0xcd, 0x4b, 0x6f, 0x0a, 0x99, 0xf7, 0x56, 0xd8, 0x3c, 0x81, 0xb2, 0xd9, 0x30, 0xe5, 0xa9, 0x0c, 0x2b, 0xde, 0x69, 0xa7, 0xdb, 0x3b, 0xf1, 0xec, 0x3b, 0xd2, 0xa2, 0x77, 0x7a, 0x7c, 0xe2, 0xc9, 0x93, 0x85, 0x00, 0x96, 0xbd, 0xd3, 0xa3, 0xb6, 0xb7, 0x63, 0xe7, 0xd0, 0x2a, 0x80, 0x77, 0x7a, 0xd0, 0xe9, 0x76, 0xfa, 0x87, 0xed, 0x7d, 0x3b, 0x8f, 0x6a, 0x50, 0xf6, 0x4e, 0xdb, 0xa7, 0x9e, 0xbb, 0xb3, 0xbf, 0xe3, 0xed, 0xd8, 0x85, 0xcd, 0xff, 0xe4, 0x60, 0x4d, 0x4f, 0xdb, 0xbc, 0xf5, 0x75, 0xb8, 0xbb, 0x00, 0xfa, 0xc7, 0x62, 0x84, 0xb9, 0x6d, 0xa1, 0x06, 0x7c, 0xbe, 0x48, 0x1c, 0x60, 0x7c, 0x7c, 0x81, 0xb9, 0x37, 0xe2, 0x38, 0x19, 0xb1, 0x58, 0xce, 0xea, 0x53, 0x78, 0xb4, 0x28, 0xb3, 0xc7, 0xe8, 0x19, 0xe1, 0x63, 0xdd, 0x35, 0x3b, 0x2f, 0xf7, 0x60, 0x51, 0xc0, 0xc5, 0x09, 0x16, 0xfb, 0xf8, 0x82, 0x84, 0xd8, 0x2e, 0xdc, 0xa4, 0x8d, 0xfe, 0x7b, 0xc6, 0xe5, 0xf4, 0x3e, 0x06, 0x67, 0x91, 0x7e, 0x4f, 0x26, 0xd8, 0x28, 0x2f, 0xdf, 0x54, 0xee, 0x71, 0x26, 0x70, 0x28, 0xf6, 0x82, 0x38, 0xb6, 0x57, 0xe4, 0xa8, 0x2e, 0xd2, 0x72, 0x8e, 0xbd, 0xa9, 0x5d, 0xbc, 0x19, 0x75, 0x36, 0x78, 0x7b, 0x23, 0x1c, 0x9e, 0xdb, 0x25, 0x39, 0x93, 0x8b, 0x02, 0x3b, 0xfa, 0xcd, 0xb7, 0x41, 0xae, 0xe1, 0x35, 0xa7, 0xd9, 0x37, 0xbd, 0x5d, 0xde, 0xfc, 0x1d, 0xdc, 0xeb, 0x11, 0x7a, 0x14, 0x08, 0x4e, 0xa6, 0xf3, 0x35, 0xae, 0xc3, 0xe3, 0x8f, 0xe1, 0xfe, 0x5e, 0xca, 0x39, 0xa6, 0xc2, 0xb6, 0xd0, 0x33, 0x78, 0xf2, 0x51, 0x89, 0x2e, 0xfe, 0x70, 0x40, 0x78, 0x22, 0xec, 0x9c, 0xec, 0xc7, 0xa7, 0x44, 0xfa, 0x38, 0x64, 0x34, 0xb2, 0xf3, 0x9b, 0xbf, 0x01, 0xe4, 0xe2, 0x90, 0x5d, 0x60, 0x7e, 0xa9, 0xcb, 0xa4, 0xdc, 0xff, 0x00, 0x9e, 0xdd, 0x44, 0xfd, 0x7e, 0xc8, 0x83, 0xf1, 0x20, 0xc6, 0x91, 0x2c, 0x76, 0x62, 0xdf, 0x91, 0xf5, 0xfc, 0x88, 0x98, 0x76, 0x68, 0x5b, 0x9b, 0x67, 0x50, 0x93, 0x92, 0xf3, 0x79, 0x3d, 0x84, 0xfb, 0xd7, 0x20, 0xbf, 0x17, 0x07, 0x84, 0xda, 0x77, 0x64, 0x9d, 0xae, 0x53, 0xda, 0xd2, 0x1b, 0xdb, 0xfa, 0x34, 0xb9, 0x65, 0xe7, 0xb6, 0x7f, 0x06, 0x2b, 0x1f, 0x88, 0x7a, 0x41, 0xd0, 0xb3, 0xa6, 0xfe, 0x2f, 0xd8, 0xcc, 0xfe, 0x0b, 0x36, 0xdb, 0x34, 0x1d, 0xff, 0x2a, 0x88, 0x53, 0x7c, 0x3c, 0x91, 0x77, 0x60, 0xe2, 0x7c, 0xf7, 0x87, 0xbc, 0xfe, 0x52, 0x97, 0x3a, 0x1d, 0xba, 0xfd, 0x73, 0x28, 0x2a, 0x6d, 0x96, 0x8a, 0xdb, 0xa8, 0xff, 0xdd, 0xa8, 0x2b, 0x97, 0xc7, 0xa9, 0xd8, 0xfe, 0x06, 0xaa, 0x4a, 0x3f, 0xc2, 0x83, 0x74, 0x78, 0xcb, 0x18, 0xfe, 0x61, 0x8c, 0x94, 0xa5, 0xe6, 0xbe, 0x54, 0xec, 0xd0, 0xed, 0x0e, 0xac, 0xce, 0x19, 0xba, 0x65, 0x38, 0xff, 0x34, 0x96, 0x2a, 0x33, 0x4b, 0x32, 0xa6, 0x5f, 0x42, 0x49, 0x99, 0x12, 0x84, 0x5e, 0xde, 0xc6, 0xca, 0xbf, 0x8c, 0x15, 0x55, 0x09, 0x8f, 0xd0, 0xcb, 0xed, 0x77, 0x50, 0x53, 0x16, 0x06, 0x8c, 0x89, 0x98, 0xa9, 0x3f, 0x4f, 0xb7, 0xb0, 0xf3, 0x6f, 0x63, 0x47, 0x25, 0xb2, 0x3b, 0x53, 0xdd, 0xfd, 0x0a, 0x9e, 0x87, 0x6c, 0xdc, 0x4c, 0x02, 0xc1, 0x92, 0x11, 0x89, 0x83, 0x41, 0xd2, 0x14, 0x1c, 0x7f, 0xcb, 0x78, 0x33, 0x26, 0x83, 0x99, 0xbd, 0x5d, 0xf0, 0x14, 0x28, 0xdb, 0xfb, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x70, 0x88, 0xcd, 0x71, 0xe2, 0x0f, 0x00, 0x00, }