github.com/ZihuaZhang/fabric-protos-go@v1.0.7/peer/transaction.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // source: peer/transaction.proto
     3  
     4  package peer
     5  
     6  import (
     7  	fmt "fmt"
     8  	proto "github.com/golang/protobuf/proto"
     9  	common "github.com/ZihuaZhang/fabric-protos-go/common"
    10  	math "math"
    11  )
    12  
    13  // Reference imports to suppress errors if they are not otherwise used.
    14  var _ = proto.Marshal
    15  var _ = fmt.Errorf
    16  var _ = math.Inf
    17  
    18  // This is a compile-time assertion to ensure that this generated file
    19  // is compatible with the proto package it is being compiled against.
    20  // A compilation error at this line likely means your copy of the
    21  // proto package needs to be updated.
    22  const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
    23  
    24  type TxValidationCode int32
    25  
    26  const (
    27  	TxValidationCode_VALID                        TxValidationCode = 0
    28  	TxValidationCode_NIL_ENVELOPE                 TxValidationCode = 1
    29  	TxValidationCode_BAD_PAYLOAD                  TxValidationCode = 2
    30  	TxValidationCode_BAD_COMMON_HEADER            TxValidationCode = 3
    31  	TxValidationCode_BAD_CREATOR_SIGNATURE        TxValidationCode = 4
    32  	TxValidationCode_INVALID_ENDORSER_TRANSACTION TxValidationCode = 5
    33  	TxValidationCode_INVALID_CONFIG_TRANSACTION   TxValidationCode = 6
    34  	TxValidationCode_UNSUPPORTED_TX_PAYLOAD       TxValidationCode = 7
    35  	TxValidationCode_BAD_PROPOSAL_TXID            TxValidationCode = 8
    36  	TxValidationCode_DUPLICATE_TXID               TxValidationCode = 9
    37  	TxValidationCode_ENDORSEMENT_POLICY_FAILURE   TxValidationCode = 10
    38  	TxValidationCode_MVCC_READ_CONFLICT           TxValidationCode = 11
    39  	TxValidationCode_PHANTOM_READ_CONFLICT        TxValidationCode = 12
    40  	TxValidationCode_UNKNOWN_TX_TYPE              TxValidationCode = 13
    41  	TxValidationCode_TARGET_CHAIN_NOT_FOUND       TxValidationCode = 14
    42  	TxValidationCode_MARSHAL_TX_ERROR             TxValidationCode = 15
    43  	TxValidationCode_NIL_TXACTION                 TxValidationCode = 16
    44  	TxValidationCode_EXPIRED_CHAINCODE            TxValidationCode = 17
    45  	TxValidationCode_CHAINCODE_VERSION_CONFLICT   TxValidationCode = 18
    46  	TxValidationCode_BAD_HEADER_EXTENSION         TxValidationCode = 19
    47  	TxValidationCode_BAD_CHANNEL_HEADER           TxValidationCode = 20
    48  	TxValidationCode_BAD_RESPONSE_PAYLOAD         TxValidationCode = 21
    49  	TxValidationCode_BAD_RWSET                    TxValidationCode = 22
    50  	TxValidationCode_ILLEGAL_WRITESET             TxValidationCode = 23
    51  	TxValidationCode_INVALID_WRITESET             TxValidationCode = 24
    52  	TxValidationCode_INVALID_CHAINCODE            TxValidationCode = 25
    53  	TxValidationCode_NOT_VALIDATED                TxValidationCode = 254
    54  	TxValidationCode_INVALID_OTHER_REASON         TxValidationCode = 255
    55  )
    56  
    57  var TxValidationCode_name = map[int32]string{
    58  	0:   "VALID",
    59  	1:   "NIL_ENVELOPE",
    60  	2:   "BAD_PAYLOAD",
    61  	3:   "BAD_COMMON_HEADER",
    62  	4:   "BAD_CREATOR_SIGNATURE",
    63  	5:   "INVALID_ENDORSER_TRANSACTION",
    64  	6:   "INVALID_CONFIG_TRANSACTION",
    65  	7:   "UNSUPPORTED_TX_PAYLOAD",
    66  	8:   "BAD_PROPOSAL_TXID",
    67  	9:   "DUPLICATE_TXID",
    68  	10:  "ENDORSEMENT_POLICY_FAILURE",
    69  	11:  "MVCC_READ_CONFLICT",
    70  	12:  "PHANTOM_READ_CONFLICT",
    71  	13:  "UNKNOWN_TX_TYPE",
    72  	14:  "TARGET_CHAIN_NOT_FOUND",
    73  	15:  "MARSHAL_TX_ERROR",
    74  	16:  "NIL_TXACTION",
    75  	17:  "EXPIRED_CHAINCODE",
    76  	18:  "CHAINCODE_VERSION_CONFLICT",
    77  	19:  "BAD_HEADER_EXTENSION",
    78  	20:  "BAD_CHANNEL_HEADER",
    79  	21:  "BAD_RESPONSE_PAYLOAD",
    80  	22:  "BAD_RWSET",
    81  	23:  "ILLEGAL_WRITESET",
    82  	24:  "INVALID_WRITESET",
    83  	25:  "INVALID_CHAINCODE",
    84  	254: "NOT_VALIDATED",
    85  	255: "INVALID_OTHER_REASON",
    86  }
    87  
    88  var TxValidationCode_value = map[string]int32{
    89  	"VALID":                        0,
    90  	"NIL_ENVELOPE":                 1,
    91  	"BAD_PAYLOAD":                  2,
    92  	"BAD_COMMON_HEADER":            3,
    93  	"BAD_CREATOR_SIGNATURE":        4,
    94  	"INVALID_ENDORSER_TRANSACTION": 5,
    95  	"INVALID_CONFIG_TRANSACTION":   6,
    96  	"UNSUPPORTED_TX_PAYLOAD":       7,
    97  	"BAD_PROPOSAL_TXID":            8,
    98  	"DUPLICATE_TXID":               9,
    99  	"ENDORSEMENT_POLICY_FAILURE":   10,
   100  	"MVCC_READ_CONFLICT":           11,
   101  	"PHANTOM_READ_CONFLICT":        12,
   102  	"UNKNOWN_TX_TYPE":              13,
   103  	"TARGET_CHAIN_NOT_FOUND":       14,
   104  	"MARSHAL_TX_ERROR":             15,
   105  	"NIL_TXACTION":                 16,
   106  	"EXPIRED_CHAINCODE":            17,
   107  	"CHAINCODE_VERSION_CONFLICT":   18,
   108  	"BAD_HEADER_EXTENSION":         19,
   109  	"BAD_CHANNEL_HEADER":           20,
   110  	"BAD_RESPONSE_PAYLOAD":         21,
   111  	"BAD_RWSET":                    22,
   112  	"ILLEGAL_WRITESET":             23,
   113  	"INVALID_WRITESET":             24,
   114  	"INVALID_CHAINCODE":            25,
   115  	"NOT_VALIDATED":                254,
   116  	"INVALID_OTHER_REASON":         255,
   117  }
   118  
   119  func (x TxValidationCode) String() string {
   120  	return proto.EnumName(TxValidationCode_name, int32(x))
   121  }
   122  
   123  func (TxValidationCode) EnumDescriptor() ([]byte, []int) {
   124  	return fileDescriptor_25804bbfb0752368, []int{0}
   125  }
   126  
   127  // Reserved entries in the key-level metadata map
   128  type MetaDataKeys int32
   129  
   130  const (
   131  	MetaDataKeys_VALIDATION_PARAMETER    MetaDataKeys = 0
   132  	MetaDataKeys_VALIDATION_PARAMETER_V2 MetaDataKeys = 1
   133  )
   134  
   135  var MetaDataKeys_name = map[int32]string{
   136  	0: "VALIDATION_PARAMETER",
   137  	1: "VALIDATION_PARAMETER_V2",
   138  }
   139  
   140  var MetaDataKeys_value = map[string]int32{
   141  	"VALIDATION_PARAMETER":    0,
   142  	"VALIDATION_PARAMETER_V2": 1,
   143  }
   144  
   145  func (x MetaDataKeys) String() string {
   146  	return proto.EnumName(MetaDataKeys_name, int32(x))
   147  }
   148  
   149  func (MetaDataKeys) EnumDescriptor() ([]byte, []int) {
   150  	return fileDescriptor_25804bbfb0752368, []int{1}
   151  }
   152  
   153  // ProcessedTransaction wraps an Envelope that includes a transaction along with an indication
   154  // of whether the transaction was validated or invalidated by committing peer.
   155  // The use case is that GetTransactionByID API needs to retrieve the transaction Envelope
   156  // from block storage, and return it to a client, and indicate whether the transaction
   157  // was validated or invalidated by committing peer. So that the originally submitted
   158  // transaction Envelope is not modified, the ProcessedTransaction wrapper is returned.
   159  type ProcessedTransaction struct {
   160  	// An Envelope which includes a processed transaction
   161  	TransactionEnvelope *common.Envelope `protobuf:"bytes,1,opt,name=transactionEnvelope,proto3" json:"transactionEnvelope,omitempty"`
   162  	// An indication of whether the transaction was validated or invalidated by committing peer
   163  	ValidationCode       int32    `protobuf:"varint,2,opt,name=validationCode,proto3" json:"validationCode,omitempty"`
   164  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   165  	XXX_unrecognized     []byte   `json:"-"`
   166  	XXX_sizecache        int32    `json:"-"`
   167  }
   168  
   169  func (m *ProcessedTransaction) Reset()         { *m = ProcessedTransaction{} }
   170  func (m *ProcessedTransaction) String() string { return proto.CompactTextString(m) }
   171  func (*ProcessedTransaction) ProtoMessage()    {}
   172  func (*ProcessedTransaction) Descriptor() ([]byte, []int) {
   173  	return fileDescriptor_25804bbfb0752368, []int{0}
   174  }
   175  
   176  func (m *ProcessedTransaction) XXX_Unmarshal(b []byte) error {
   177  	return xxx_messageInfo_ProcessedTransaction.Unmarshal(m, b)
   178  }
   179  func (m *ProcessedTransaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   180  	return xxx_messageInfo_ProcessedTransaction.Marshal(b, m, deterministic)
   181  }
   182  func (m *ProcessedTransaction) XXX_Merge(src proto.Message) {
   183  	xxx_messageInfo_ProcessedTransaction.Merge(m, src)
   184  }
   185  func (m *ProcessedTransaction) XXX_Size() int {
   186  	return xxx_messageInfo_ProcessedTransaction.Size(m)
   187  }
   188  func (m *ProcessedTransaction) XXX_DiscardUnknown() {
   189  	xxx_messageInfo_ProcessedTransaction.DiscardUnknown(m)
   190  }
   191  
   192  var xxx_messageInfo_ProcessedTransaction proto.InternalMessageInfo
   193  
   194  func (m *ProcessedTransaction) GetTransactionEnvelope() *common.Envelope {
   195  	if m != nil {
   196  		return m.TransactionEnvelope
   197  	}
   198  	return nil
   199  }
   200  
   201  func (m *ProcessedTransaction) GetValidationCode() int32 {
   202  	if m != nil {
   203  		return m.ValidationCode
   204  	}
   205  	return 0
   206  }
   207  
   208  // The transaction to be sent to the ordering service. A transaction contains
   209  // one or more TransactionAction. Each TransactionAction binds a proposal to
   210  // potentially multiple actions. The transaction is atomic meaning that either
   211  // all actions in the transaction will be committed or none will.  Note that
   212  // while a Transaction might include more than one Header, the Header.creator
   213  // field must be the same in each.
   214  // A single client is free to issue a number of independent Proposal, each with
   215  // their header (Header) and request payload (ChaincodeProposalPayload).  Each
   216  // proposal is independently endorsed generating an action
   217  // (ProposalResponsePayload) with one signature per Endorser. Any number of
   218  // independent proposals (and their action) might be included in a transaction
   219  // to ensure that they are treated atomically.
   220  type Transaction struct {
   221  	// The payload is an array of TransactionAction. An array is necessary to
   222  	// accommodate multiple actions per transaction
   223  	Actions              []*TransactionAction `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"`
   224  	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
   225  	XXX_unrecognized     []byte               `json:"-"`
   226  	XXX_sizecache        int32                `json:"-"`
   227  }
   228  
   229  func (m *Transaction) Reset()         { *m = Transaction{} }
   230  func (m *Transaction) String() string { return proto.CompactTextString(m) }
   231  func (*Transaction) ProtoMessage()    {}
   232  func (*Transaction) Descriptor() ([]byte, []int) {
   233  	return fileDescriptor_25804bbfb0752368, []int{1}
   234  }
   235  
   236  func (m *Transaction) XXX_Unmarshal(b []byte) error {
   237  	return xxx_messageInfo_Transaction.Unmarshal(m, b)
   238  }
   239  func (m *Transaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   240  	return xxx_messageInfo_Transaction.Marshal(b, m, deterministic)
   241  }
   242  func (m *Transaction) XXX_Merge(src proto.Message) {
   243  	xxx_messageInfo_Transaction.Merge(m, src)
   244  }
   245  func (m *Transaction) XXX_Size() int {
   246  	return xxx_messageInfo_Transaction.Size(m)
   247  }
   248  func (m *Transaction) XXX_DiscardUnknown() {
   249  	xxx_messageInfo_Transaction.DiscardUnknown(m)
   250  }
   251  
   252  var xxx_messageInfo_Transaction proto.InternalMessageInfo
   253  
   254  func (m *Transaction) GetActions() []*TransactionAction {
   255  	if m != nil {
   256  		return m.Actions
   257  	}
   258  	return nil
   259  }
   260  
   261  // TransactionAction binds a proposal to its action.  The type field in the
   262  // header dictates the type of action to be applied to the ledger.
   263  type TransactionAction struct {
   264  	// The header of the proposal action, which is the proposal header
   265  	Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
   266  	// The payload of the action as defined by the type in the header For
   267  	// chaincode, it's the bytes of ChaincodeActionPayload
   268  	Payload              []byte   `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
   269  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
   270  	XXX_unrecognized     []byte   `json:"-"`
   271  	XXX_sizecache        int32    `json:"-"`
   272  }
   273  
   274  func (m *TransactionAction) Reset()         { *m = TransactionAction{} }
   275  func (m *TransactionAction) String() string { return proto.CompactTextString(m) }
   276  func (*TransactionAction) ProtoMessage()    {}
   277  func (*TransactionAction) Descriptor() ([]byte, []int) {
   278  	return fileDescriptor_25804bbfb0752368, []int{2}
   279  }
   280  
   281  func (m *TransactionAction) XXX_Unmarshal(b []byte) error {
   282  	return xxx_messageInfo_TransactionAction.Unmarshal(m, b)
   283  }
   284  func (m *TransactionAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   285  	return xxx_messageInfo_TransactionAction.Marshal(b, m, deterministic)
   286  }
   287  func (m *TransactionAction) XXX_Merge(src proto.Message) {
   288  	xxx_messageInfo_TransactionAction.Merge(m, src)
   289  }
   290  func (m *TransactionAction) XXX_Size() int {
   291  	return xxx_messageInfo_TransactionAction.Size(m)
   292  }
   293  func (m *TransactionAction) XXX_DiscardUnknown() {
   294  	xxx_messageInfo_TransactionAction.DiscardUnknown(m)
   295  }
   296  
   297  var xxx_messageInfo_TransactionAction proto.InternalMessageInfo
   298  
   299  func (m *TransactionAction) GetHeader() []byte {
   300  	if m != nil {
   301  		return m.Header
   302  	}
   303  	return nil
   304  }
   305  
   306  func (m *TransactionAction) GetPayload() []byte {
   307  	if m != nil {
   308  		return m.Payload
   309  	}
   310  	return nil
   311  }
   312  
   313  // ChaincodeActionPayload is the message to be used for the TransactionAction's
   314  // payload when the Header's type is set to CHAINCODE.  It carries the
   315  // chaincodeProposalPayload and an endorsed action to apply to the ledger.
   316  type ChaincodeActionPayload struct {
   317  	// This field contains the bytes of the ChaincodeProposalPayload message from
   318  	// the original invocation (essentially the arguments) after the application
   319  	// of the visibility function. The main visibility modes are "full" (the
   320  	// entire ChaincodeProposalPayload message is included here), "hash" (only
   321  	// the hash of the ChaincodeProposalPayload message is included) or
   322  	// "nothing".  This field will be used to check the consistency of
   323  	// ProposalResponsePayload.proposalHash.  For the CHAINCODE type,
   324  	// ProposalResponsePayload.proposalHash is supposed to be H(ProposalHeader ||
   325  	// f(ChaincodeProposalPayload)) where f is the visibility function.
   326  	ChaincodeProposalPayload []byte `protobuf:"bytes,1,opt,name=chaincode_proposal_payload,json=chaincodeProposalPayload,proto3" json:"chaincode_proposal_payload,omitempty"`
   327  	// The list of actions to apply to the ledger
   328  	Action               *ChaincodeEndorsedAction `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
   329  	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
   330  	XXX_unrecognized     []byte                   `json:"-"`
   331  	XXX_sizecache        int32                    `json:"-"`
   332  }
   333  
   334  func (m *ChaincodeActionPayload) Reset()         { *m = ChaincodeActionPayload{} }
   335  func (m *ChaincodeActionPayload) String() string { return proto.CompactTextString(m) }
   336  func (*ChaincodeActionPayload) ProtoMessage()    {}
   337  func (*ChaincodeActionPayload) Descriptor() ([]byte, []int) {
   338  	return fileDescriptor_25804bbfb0752368, []int{3}
   339  }
   340  
   341  func (m *ChaincodeActionPayload) XXX_Unmarshal(b []byte) error {
   342  	return xxx_messageInfo_ChaincodeActionPayload.Unmarshal(m, b)
   343  }
   344  func (m *ChaincodeActionPayload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   345  	return xxx_messageInfo_ChaincodeActionPayload.Marshal(b, m, deterministic)
   346  }
   347  func (m *ChaincodeActionPayload) XXX_Merge(src proto.Message) {
   348  	xxx_messageInfo_ChaincodeActionPayload.Merge(m, src)
   349  }
   350  func (m *ChaincodeActionPayload) XXX_Size() int {
   351  	return xxx_messageInfo_ChaincodeActionPayload.Size(m)
   352  }
   353  func (m *ChaincodeActionPayload) XXX_DiscardUnknown() {
   354  	xxx_messageInfo_ChaincodeActionPayload.DiscardUnknown(m)
   355  }
   356  
   357  var xxx_messageInfo_ChaincodeActionPayload proto.InternalMessageInfo
   358  
   359  func (m *ChaincodeActionPayload) GetChaincodeProposalPayload() []byte {
   360  	if m != nil {
   361  		return m.ChaincodeProposalPayload
   362  	}
   363  	return nil
   364  }
   365  
   366  func (m *ChaincodeActionPayload) GetAction() *ChaincodeEndorsedAction {
   367  	if m != nil {
   368  		return m.Action
   369  	}
   370  	return nil
   371  }
   372  
   373  // ChaincodeEndorsedAction carries information about the endorsement of a
   374  // specific proposal
   375  type ChaincodeEndorsedAction struct {
   376  	// This is the bytes of the ProposalResponsePayload message signed by the
   377  	// endorsers.  Recall that for the CHAINCODE type, the
   378  	// ProposalResponsePayload's extenstion field carries a ChaincodeAction
   379  	ProposalResponsePayload []byte `protobuf:"bytes,1,opt,name=proposal_response_payload,json=proposalResponsePayload,proto3" json:"proposal_response_payload,omitempty"`
   380  	// The endorsement of the proposal, basically the endorser's signature over
   381  	// proposalResponsePayload
   382  	Endorsements         []*Endorsement `protobuf:"bytes,2,rep,name=endorsements,proto3" json:"endorsements,omitempty"`
   383  	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
   384  	XXX_unrecognized     []byte         `json:"-"`
   385  	XXX_sizecache        int32          `json:"-"`
   386  }
   387  
   388  func (m *ChaincodeEndorsedAction) Reset()         { *m = ChaincodeEndorsedAction{} }
   389  func (m *ChaincodeEndorsedAction) String() string { return proto.CompactTextString(m) }
   390  func (*ChaincodeEndorsedAction) ProtoMessage()    {}
   391  func (*ChaincodeEndorsedAction) Descriptor() ([]byte, []int) {
   392  	return fileDescriptor_25804bbfb0752368, []int{4}
   393  }
   394  
   395  func (m *ChaincodeEndorsedAction) XXX_Unmarshal(b []byte) error {
   396  	return xxx_messageInfo_ChaincodeEndorsedAction.Unmarshal(m, b)
   397  }
   398  func (m *ChaincodeEndorsedAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   399  	return xxx_messageInfo_ChaincodeEndorsedAction.Marshal(b, m, deterministic)
   400  }
   401  func (m *ChaincodeEndorsedAction) XXX_Merge(src proto.Message) {
   402  	xxx_messageInfo_ChaincodeEndorsedAction.Merge(m, src)
   403  }
   404  func (m *ChaincodeEndorsedAction) XXX_Size() int {
   405  	return xxx_messageInfo_ChaincodeEndorsedAction.Size(m)
   406  }
   407  func (m *ChaincodeEndorsedAction) XXX_DiscardUnknown() {
   408  	xxx_messageInfo_ChaincodeEndorsedAction.DiscardUnknown(m)
   409  }
   410  
   411  var xxx_messageInfo_ChaincodeEndorsedAction proto.InternalMessageInfo
   412  
   413  func (m *ChaincodeEndorsedAction) GetProposalResponsePayload() []byte {
   414  	if m != nil {
   415  		return m.ProposalResponsePayload
   416  	}
   417  	return nil
   418  }
   419  
   420  func (m *ChaincodeEndorsedAction) GetEndorsements() []*Endorsement {
   421  	if m != nil {
   422  		return m.Endorsements
   423  	}
   424  	return nil
   425  }
   426  
   427  func init() {
   428  	proto.RegisterEnum("protos.TxValidationCode", TxValidationCode_name, TxValidationCode_value)
   429  	proto.RegisterEnum("protos.MetaDataKeys", MetaDataKeys_name, MetaDataKeys_value)
   430  	proto.RegisterType((*ProcessedTransaction)(nil), "protos.ProcessedTransaction")
   431  	proto.RegisterType((*Transaction)(nil), "protos.Transaction")
   432  	proto.RegisterType((*TransactionAction)(nil), "protos.TransactionAction")
   433  	proto.RegisterType((*ChaincodeActionPayload)(nil), "protos.ChaincodeActionPayload")
   434  	proto.RegisterType((*ChaincodeEndorsedAction)(nil), "protos.ChaincodeEndorsedAction")
   435  }
   436  
   437  func init() { proto.RegisterFile("peer/transaction.proto", fileDescriptor_25804bbfb0752368) }
   438  
   439  var fileDescriptor_25804bbfb0752368 = []byte{
   440  	// 838 bytes of a gzipped FileDescriptorProto
   441  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x54, 0x5d, 0x6f, 0x22, 0x37,
   442  	0x14, 0xdd, 0xc9, 0x36, 0x49, 0x63, 0x48, 0xe2, 0x18, 0x42, 0x80, 0xae, 0xda, 0x88, 0x87, 0x2a,
   443  	0x5a, 0x75, 0x41, 0xca, 0x3e, 0x54, 0xaa, 0xfa, 0x62, 0x66, 0x6e, 0xc2, 0x68, 0x07, 0x7b, 0xe4,
   444  	0x31, 0x84, 0xf4, 0xc5, 0x9a, 0x80, 0x97, 0xa0, 0x12, 0x06, 0xcd, 0xd0, 0x55, 0xf3, 0xda, 0x1f,
   445  	0xd0, 0xfe, 0x90, 0xfe, 0xc7, 0xb6, 0xf2, 0x7c, 0x85, 0x64, 0xb7, 0x2f, 0x18, 0x9f, 0x73, 0xee,
   446  	0xbd, 0xe7, 0xde, 0xab, 0x31, 0x6a, 0xac, 0xb5, 0x8e, 0x7b, 0x9b, 0x38, 0x5c, 0x25, 0xe1, 0x74,
   447  	0xb3, 0x88, 0x56, 0xdd, 0x75, 0x1c, 0x6d, 0x22, 0xb2, 0x97, 0x1e, 0x49, 0xfb, 0x4d, 0xca, 0xaf,
   448  	0xe3, 0x68, 0x1d, 0x25, 0xe1, 0x52, 0xc5, 0x3a, 0x59, 0x47, 0xab, 0x44, 0x67, 0xaa, 0x76, 0x6d,
   449  	0x1a, 0x3d, 0x3c, 0x44, 0xab, 0x5e, 0x76, 0x64, 0x60, 0xe7, 0x0f, 0x0b, 0xd5, 0xfd, 0x38, 0x9a,
   450  	0xea, 0x24, 0xd1, 0x33, 0xf9, 0x94, 0x99, 0xf4, 0x51, 0x6d, 0xab, 0x10, 0xac, 0x3e, 0xe9, 0x65,
   451  	0xb4, 0xd6, 0x4d, 0xeb, 0xdc, 0xba, 0xa8, 0x5c, 0xe2, 0x6e, 0x9e, 0xa4, 0xc0, 0xc5, 0x97, 0xc4,
   452  	0xe4, 0x7b, 0x74, 0xf4, 0x29, 0x5c, 0x2e, 0x66, 0xa1, 0x41, 0xed, 0x68, 0xa6, 0x9b, 0x3b, 0xe7,
   453  	0xd6, 0xc5, 0xae, 0x78, 0x81, 0x76, 0xfa, 0xa8, 0xb2, 0x5d, 0xfa, 0x3d, 0xda, 0xcf, 0xfe, 0x25,
   454  	0x4d, 0xeb, 0xfc, 0xf5, 0x45, 0xe5, 0xb2, 0x95, 0x99, 0x4d, 0xba, 0x5b, 0x2a, 0x9a, 0xfe, 0x8a,
   455  	0x42, 0xd9, 0x01, 0x74, 0xf2, 0x19, 0x4b, 0x1a, 0x68, 0xef, 0x5e, 0x87, 0x33, 0x1d, 0xa7, 0xbe,
   456  	0xab, 0x22, 0xbf, 0x91, 0x26, 0xda, 0x5f, 0x87, 0x8f, 0xcb, 0x28, 0x9c, 0xa5, 0x8e, 0xaa, 0xa2,
   457  	0xb8, 0x76, 0xfe, 0xb2, 0x50, 0xc3, 0xbe, 0x0f, 0x17, 0xab, 0x69, 0x34, 0xd3, 0x59, 0x16, 0x3f,
   458  	0xa3, 0xc8, 0xcf, 0xa8, 0x3d, 0x2d, 0x18, 0x55, 0x0e, 0xb9, 0xc8, 0x93, 0x15, 0x68, 0x96, 0x0a,
   459  	0x3f, 0x17, 0x14, 0xd1, 0x3f, 0xa2, 0xbd, 0xcc, 0x5a, 0x5a, 0xb1, 0x72, 0xf9, 0x5d, 0xd1, 0x53,
   460  	0x59, 0x0d, 0x56, 0xb3, 0x28, 0x4e, 0xf4, 0x2c, 0xef, 0x2c, 0x97, 0x77, 0xfe, 0xb4, 0xd0, 0xd9,
   461  	0xff, 0x68, 0xc8, 0x4f, 0xa8, 0xf5, 0xd9, 0xb6, 0x5f, 0x38, 0x3a, 0x2b, 0x04, 0x22, 0xe7, 0x9f,
   462  	0x0c, 0x55, 0x75, 0x96, 0xed, 0x41, 0xaf, 0x36, 0x49, 0x73, 0x27, 0x1d, 0x75, 0xad, 0xb0, 0x05,
   463  	0x4f, 0x9c, 0x78, 0x26, 0x7c, 0xfb, 0xf7, 0x2e, 0xc2, 0xf2, 0xf7, 0xf1, 0xb3, 0x15, 0x92, 0x03,
   464  	0xb4, 0x3b, 0xa6, 0x9e, 0xeb, 0xe0, 0x57, 0x04, 0xa3, 0x2a, 0x73, 0x3d, 0x05, 0x6c, 0x0c, 0x1e,
   465  	0xf7, 0x01, 0x5b, 0xe4, 0x18, 0x55, 0xfa, 0xd4, 0x51, 0x3e, 0xbd, 0xf5, 0x38, 0x75, 0xf0, 0x0e,
   466  	0x39, 0x45, 0x27, 0x06, 0xb0, 0xf9, 0x70, 0xc8, 0x99, 0x1a, 0x00, 0x75, 0x40, 0xe0, 0xd7, 0xa4,
   467  	0x85, 0x4e, 0x53, 0x58, 0x00, 0x95, 0x5c, 0xa8, 0xc0, 0xbd, 0x66, 0x54, 0x8e, 0x04, 0xe0, 0xaf,
   468  	0xc8, 0x39, 0x7a, 0xe3, 0xb2, 0xb4, 0x82, 0x02, 0xe6, 0x70, 0x11, 0x80, 0x50, 0x52, 0x50, 0x16,
   469  	0x50, 0x5b, 0xba, 0x9c, 0xe1, 0x5d, 0xf2, 0x2d, 0x6a, 0x17, 0x0a, 0x9b, 0xb3, 0x2b, 0xf7, 0xfa,
   470  	0x19, 0xbf, 0x47, 0xda, 0xa8, 0x31, 0x62, 0xc1, 0xc8, 0xf7, 0xb9, 0x90, 0xe0, 0x28, 0x39, 0x29,
   471  	0xfd, 0xec, 0x17, 0x7e, 0x7c, 0xc1, 0x7d, 0x1e, 0x50, 0x4f, 0xc9, 0x89, 0xeb, 0xe0, 0xaf, 0x09,
   472  	0x41, 0x47, 0xce, 0xc8, 0xf7, 0x5c, 0x9b, 0x4a, 0xc8, 0xb0, 0x03, 0x53, 0x26, 0x37, 0x30, 0x04,
   473  	0x26, 0x95, 0xcf, 0x3d, 0xd7, 0xbe, 0x55, 0x57, 0xd4, 0xf5, 0x8c, 0x51, 0x44, 0x1a, 0x88, 0x0c,
   474  	0xc7, 0xb6, 0xad, 0x04, 0xd0, 0xcc, 0x88, 0xe7, 0xda, 0x12, 0x57, 0x4c, 0x6f, 0xfe, 0x80, 0x32,
   475  	0xc9, 0x87, 0x2f, 0xa8, 0x2a, 0xa9, 0xa1, 0xe3, 0x11, 0xfb, 0xc0, 0xf8, 0x0d, 0x33, 0xae, 0xe4,
   476  	0xad, 0x0f, 0xf8, 0xd0, 0xd8, 0x95, 0x54, 0x5c, 0x83, 0x54, 0xf6, 0x80, 0xba, 0x4c, 0x31, 0x2e,
   477  	0xd5, 0x15, 0x1f, 0x31, 0x07, 0x1f, 0x91, 0x3a, 0xc2, 0x43, 0x2a, 0x82, 0x41, 0xea, 0x54, 0x81,
   478  	0x10, 0x5c, 0xe0, 0xe3, 0x62, 0xee, 0x72, 0x92, 0xb7, 0x8c, 0x4d, 0x5b, 0x30, 0xf1, 0x5d, 0x01,
   479  	0x4e, 0x96, 0xc4, 0xe6, 0x0e, 0xe0, 0x13, 0xd3, 0x42, 0x79, 0x55, 0x63, 0x10, 0x81, 0xcb, 0xd9,
   480  	0x93, 0x1f, 0x42, 0x9a, 0xa8, 0x6e, 0xa6, 0x91, 0xad, 0x45, 0xc1, 0x44, 0x02, 0x33, 0x12, 0x5c,
   481  	0x33, 0xcd, 0xa5, 0x0b, 0x1a, 0x50, 0xc6, 0xc0, 0x2b, 0x16, 0x57, 0x2f, 0x22, 0x04, 0x04, 0x3e,
   482  	0x67, 0x01, 0x94, 0x93, 0x3d, 0x25, 0x87, 0xe8, 0x20, 0x65, 0x6e, 0x02, 0x90, 0xb8, 0x61, 0x9c,
   483  	0xbb, 0x9e, 0x07, 0xd7, 0xd4, 0x53, 0x37, 0xc2, 0x95, 0x60, 0xd0, 0xb3, 0x14, 0xcd, 0x57, 0x57,
   484  	0xa2, 0x4d, 0xe3, 0xbe, 0x5c, 0x68, 0xe9, 0xbe, 0x45, 0x08, 0x3a, 0x34, 0xb3, 0x48, 0x09, 0x2a,
   485  	0xc1, 0xc1, 0xff, 0x58, 0xa4, 0x85, 0xea, 0x85, 0x94, 0xcb, 0x01, 0x08, 0x33, 0xe2, 0x80, 0x33,
   486  	0xfc, 0xaf, 0xf5, 0x16, 0x50, 0x75, 0xa8, 0x37, 0xa1, 0x13, 0x6e, 0xc2, 0x0f, 0xfa, 0x31, 0x31,
   487  	0x56, 0xf3, 0x50, 0xd3, 0xb5, 0x4f, 0x05, 0x1d, 0x82, 0x04, 0x81, 0x5f, 0x91, 0x6f, 0xd0, 0xd9,
   488  	0x97, 0x18, 0x35, 0xbe, 0xc4, 0x56, 0xff, 0x23, 0xea, 0x44, 0xf1, 0xbc, 0x7b, 0xff, 0xb8, 0xd6,
   489  	0xf1, 0x52, 0xcf, 0xe6, 0x3a, 0xee, 0x7e, 0x0c, 0xef, 0xe2, 0xc5, 0xb4, 0xf8, 0x5e, 0xcc, 0xd3,
   490  	0xdb, 0x27, 0x5b, 0x4f, 0x90, 0x1f, 0x4e, 0x7f, 0x0d, 0xe7, 0xfa, 0x97, 0x1f, 0xe6, 0x8b, 0xcd,
   491  	0xfd, 0x6f, 0x77, 0xe6, 0xc5, 0xec, 0x6d, 0x85, 0xf7, 0xb2, 0xf0, 0x77, 0x59, 0xf8, 0xbb, 0x79,
   492  	0xd4, 0x33, 0x19, 0xee, 0xb2, 0xa7, 0xfc, 0xfd, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa8, 0xb6,
   493  	0xfa, 0xa9, 0xeb, 0x05, 0x00, 0x00,
   494  }