content: package com.alipay.antchain.bridge.plugins.fiscobcos.abi;
  
  import java.math.BigInteger;
  import java.util.Arrays;
  import java.util.Collections;
  import java.util.List;
  import org.fisco.bcos.sdk.v3.client.Client;
  import org.fisco.bcos.sdk.v3.codec.datatypes.Bool;
  import org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes;
  import org.fisco.bcos.sdk.v3.codec.datatypes.DynamicStruct;
  import org.fisco.bcos.sdk.v3.codec.datatypes.Function;
  import org.fisco.bcos.sdk.v3.codec.datatypes.Type;
  import org.fisco.bcos.sdk.v3.codec.datatypes.TypeReference;
  import org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String;
  import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32;
  import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32;
  import org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint8;
  import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple1;
  import org.fisco.bcos.sdk.v3.codec.datatypes.generated.tuples.generated.Tuple2;
  import org.fisco.bcos.sdk.v3.contract.Contract;
  import org.fisco.bcos.sdk.v3.crypto.CryptoSuite;
  import org.fisco.bcos.sdk.v3.crypto.keypair.CryptoKeyPair;
  import org.fisco.bcos.sdk.v3.model.CryptoType;
  import org.fisco.bcos.sdk.v3.model.TransactionReceipt;
  import org.fisco.bcos.sdk.v3.model.callback.TransactionCallback;
  import org.fisco.bcos.sdk.v3.transaction.model.exception.ContractException;
  
  @SuppressWarnings("unchecked")
  public class CommitteePtcVerifier extends Contract {
      public static final String[] BINARY_ARRAY = {"608060405234801561001057600080fd5b50613899806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806348a3c57014610046578063b93ba39c1461006e578063bff3093b1461007d575b600080fd5b6100596100543660046132d4565b610090565b60405190151581526020015b60405180910390f35b60016040516100659190613402565b61005961008b36600461342a565b6100a5565b600061009c83836100c1565b90505b92915050565b600061009c6100b38461349d565b6100bc846134fd565b610334565b6000806100d18460e001516103d2565b905060006100e28460600151610559565b80518351815160209283012081519290910191909120919250146101735760405162461bcd60e51b815260206004820152603c60248201527f636f6d6d697474656520696420696e2070726f6f66206e6f7420657175616c2060448201527f7769746820746865206f6e6520696e20656e646f72736520726f6f740000000060648201526084015b60405180910390fd5b600061017e856106f6565b90506000805b846040015151811015610318576000856040015182815181106101a9576101a9613509565b602002602001015190506000805b86602001515181101561029957610200876020015182815181106101dd576101dd613509565b602090810291909101810151518551815191830191909120815191909201201490565b156102875761025f8760200151828151811061021e5761021e613509565b6020026020010151602001516102378560400151610810565b888a60200151858151811061024e5761024e613509565b6020026020010151604001516108be565b915081801561027057508260200151155b15610287578461027f81613535565b955050610299565b8061029181613559565b9150506101b7565b5060808a0151875183516040517f086b0f54ca3b94dae1a005bcc90b18a8265302363c906965449e99133d8692ed936102d7939092909186906135d0565b60405180910390a1801580156102ee575081602001515b1561030357600097505050505050505061009f565b5050808061031090613559565b915050610184565b506020840151516103299082610a89565b979650505050505050565b60006103438260400151610d17565b835161034e90610d17565b1461039b5760405162461bcd60e51b815260206004820152601f60248201527f76657269667920616e63686f722076657273696f6e206e6f7420657175616c00604482015260640161016a565b60006103aa8460200151610dd3565b905060006103bc846101000151610559565b90506103c9828286610f4a565b95945050505050565b6103da612da7565b6103e2612da7565b60006103ed84611259565b905060005b8160200151518110156105505760008260200151828151811061041757610417613509565b60200260200101519050600061ffff16816000015161ffff161415610442576040810151845261053d565b805161ffff166001141561046d5761046361045e826040015190565b611434565b602085015261053d565b805161ffff166002141561053d576000610486826114e5565b9050600061049382611513565b6001600160401b038111156104aa576104aa612e27565b6040519080825280602002602001820160405280156104e357816020015b6104d0612dea565b8152602001906001900390816104c85790505b50905060005b60208301515183511015610535576105086105038461154a565b6115eb565b828261051381613559565b93508151811061052557610525613509565b60200260200101819052506104e9565b506040860152505b508061054881613559565b9150506103f2565b50909392505050565b60408051808201909152606080825260208201526040805180820190915260608082526020820152600061058c84611259565b905060005b816020015151811015610550576000826020015182815181106105b6576105b6613509565b60200260200101519050600061ffff16816000015161ffff1614156105e157604081015184526106cd565b805161ffff16600114156106cd5760006105fa826114e5565b9050600061060782611513565b6001600160401b0381111561061e5761061e612e27565b60405190808252806020026020018201604052801561067357816020015b61066060405180606001604052806060815260200160608152602001606081525090565b81526020019060019003908161063c5790505b50905060005b602083015151835110156106c5576106986106938461154a565b6116cc565b82826106a381613559565b9350815181106106b5576106b5613509565b6020026020010181905250610679565b506020860152505b50806106d881613559565b915050610591565b8051602091820120825192909101919091201490565b6040805160038082526080820190925260609160009190816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161071257905050905061075361010084604001516117bd565b8160008151811061076657610766613509565b60200260200101819052506107886005610783856000015161183d565b6118ab565b8160018151811061079b5761079b613509565b60200260200101819052506107b961010161078385602001516118ee565b816002815181106107cc576107cc613509565b60200260200101819052506107f86040518060400160405280600061ffff168152602001606081525090565b6020810182905261080881611b78565b949350505050565b6060604082602001515110156108685760405162461bcd60e51b815260206004820152601c60248201527f7075626c6963206b6579206c656e677468206e6f7420656e6f75746800000000604482015260640161016a565b6020820151805160009061087e90604090613667565b6040805181815260608101825291925060009190602082018180368337019050509290910160208181015190840152604090810151908301525092915050565b6000610901604051806040016040528060168152602001754b656363616b32353657697468536563703235366b3160501b815250866106e090919063ffffffff16565b6109695760405162461bcd60e51b815260206004820152603360248201527f6f6e6c7920737570706f7274204b454343414b3235365f574954485f534543506044820152723235364b31207369676e6174757265206e6f7760681b606482015260840161016a565b6041825110156109bb5760405162461bcd60e51b815260206004820152601a60248201527f77726f6e6720736563703235366b3120736967206c656e677468000000000000604482015260640161016a565b601b826040815181106109d0576109d0613509565b01602001516109e2919060f81c61367e565b60f81b826040815181106109f8576109f8613509565b60200101906001600160f81b031916908160001a90535083516020850120600090610a2a908551602087012085611c82565b9050601b83604081518110610a4157610a41613509565b0160200151610a53919060f81c6136a3565b60f81b83604081518110610a6957610a69613509565b60200101906001600160f81b031916908160001a90535095945050505050565b6040805180820190915260018152600f60fa1b602091820152825180519101206000907f8cb938a03d27235fdf22924e770f8c8a7fc7441e706e979b359839d1efe725201415610aed57826020015163ffffffff168263ffffffff1610905061009f565b6040805180820190915260018152601f60f91b602091820152835180519101207feff31f7855752a3582db9a0d965d5063f23d94003e66f8c5a8f8e8fe2ab247531415610b4e57826020015163ffffffff168263ffffffff1611905061009f565b6040805180820190915260028152613d3d60f01b602091820152835180519101207f8130d264cf52b536814fc69bd2deac50f17224d36413db41792fe7f8742c2b5a1415610bb057826020015163ffffffff168263ffffffff1614905061009f565b6040805180820190915260028152613e3d60f01b602091820152835180519101207f07cb807c6a0dff35ec91f1d7c9113298207e728f628c0def2060de1af723685a1415610c1357826020015163ffffffff168263ffffffff161015905061009f565b6040805180820190915260028152613c3d60f01b602091820152835180519101207fe5a87a2aa5cf9e4c4a6b6ca07e0c091c8a0118e9066affa9adc7f6ae150a71a21415610c7657826020015163ffffffff168263ffffffff161115905061009f565b604080518082019091526002815261213d60f01b602091820152835180519101207f9ac244772c728e3ea33abaab05d51ed9065114029a53892fd1ed2fbb33ede3c81415610cd957826020015163ffffffff168263ffffffff161415905061009f565b60405162461bcd60e51b81526020600482015260136024820152721b9bc81bdc195c985d1bdc881b585d18da1959606a1b604482015260640161016a565b80516000906020811115610d795760405162461bcd60e51b815260206004820152602360248201527f333262797465732062696720696e7465676572206174206d6f737420666f72206044820152626e6f7760e81b606482015260840161016a565b6000816001600160401b03811115610d9357610d93612e27565b6040519080825280601f01601f191660200182016040528015610dbd576020820181803683370190505b5084518152938201519190930151900392915050565b604080518082019091526060808252602082015260408051808201909152606080825260208201526000610e0684611259565b905060005b81602001515181101561055057600082602001518281518110610e3057610e30613509565b60200260200101519050600061ffff16816000015161ffff161415610e5b5760408101518452610f37565b805161ffff1660011415610f37576000610e74826114e5565b90506000610e8182611513565b6001600160401b03811115610e9857610e98612e27565b604051908082528060200260200182016040528015610edd57816020015b6040805180820190915260608082526020820152815260200190600190039081610eb65790505b50905060005b60208301515183511015610f2f57610f02610efd8461154a565b611ce3565b8282610f0d81613559565b935081518110610f1f57610f1f613509565b6020026020010181905250610ee3565b506020860152505b5080610f4281613559565b915050610e0b565b8151835181516020928301208151929091019190912060009114610fd65760405162461bcd60e51b815260206004820152603d60248201527f636f6d6d697474656520696420696e2070726f6f66206e6f7420657175616c2060448201527f7769746820746865206f6e6520696e2076657269667920616e63686f72000000606482015260840161016a565b6000610fe183611e55","565b90506000805b8560200151518110156112315760008660200151828151811061100c5761100c613509565b6020026020010151905061105b604051806040016040528060168152602001754b656363616b32353657697468536563703235366b3160501b81525082602001516106e090919063ffffffff16565b6110b95760405162461bcd60e51b815260206004820152602960248201527f6f6e6c7920737570706f7274204b454343414b3235365f574954485f534543506044820152683235364b312073696760b81b606482015260840161016a565b60005b88602001515181101561121c5761110182600001518a6020015183815181106110e7576110e7613509565b6020026020010151600001516106e090919063ffffffff16565b1561120a576000805b8a60200151838151811061112057611120613509565b602002602001015160200151518110156111a95761118a846020015161117f8d60200151868151811061115557611155613509565b602002602001015160200151848151811061117257611172613509565b6020026020010151610810565b8987604001516108be565b91508115611197576111a9565b806111a181613559565b91505061110a565b5060808801518a5184516040517fd3b78160828b77fd969b374a2530bcefe0239a4ca0d07bea18709283476964e9936111e7939092909186906135d0565b60405180910390a1801561120857846111ff81613559565b9550505061121c565b505b8061121481613559565b9150506110bc565b5050808061122990613559565b915050610fe7565b506020860151516112439060026136c6565b61124e8260036136c6565b119695505050505050565b6040805180820190915260008152606060208201526006825110156112c05760405162461bcd60e51b815260206004820152601760248201527f696c6c6567616c207261772064617461206c656e677468000000000000000000604482015260640161016a565b60408051808201909152600080825260606020830152906112e96112e48584612006565b61202e565b61ffff1681526112fa6006836136e5565b91506000825b8551811015611354576113256113208761131b8460026136e5565b6120c6565b6120f0565b6113309060066136fd565b6113409063ffffffff16826136e5565b90508161134c81613559565b925050611300565b6000826001600160401b0381111561136e5761136e612e27565b6040519080825280602002602001820160405280156113bb57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161138c5790505b509050600092505b865185101561142557604080516060808201835260008083526020830152918101919091526113f288876121ea565b9650905080828561140281613559565b96508151811061141457611414613509565b6020026020010181905250506113c3565b60208401525090949350505050565b60408051606080820183526020808301828152600084860181905290845284518084018652918201928352938101849052908152909161147384611259565b905060005b8160200151518110156105505760008260200151828151811061149d5761149d613509565b60200260200101519050600061ffff16816000015161ffff1614156114d2576114cf6114ca826040015190565b612345565b84525b50806114dd81613559565b915050611478565b6040805180820190915260008152606060208201525060408051808201825260008152910151602082015290565b8051600090815b60208401515184511015611544576115318461154a565b508061153c81613559565b91505061151a565b92525090565b60608160200151518260000151106115b35760405162461bcd60e51b815260206004820152602660248201527f4279746573417272617953747265616d3a206f6666657374206f7574206f6620604482015265313ab33332b960d11b606482015260840161016a565b60006115c783600001518460200151612405565b80518451919250906115da9060046136e5565b6115e491906136e5565b9092525090565b6115f3612dea565b6115fb612dea565b600061160684611259565b905060005b8160200151518110156105505760008260200151828151811061163057611630613509565b60200260200101519050600061ffff16816000015161ffff16141561165b57604081015184526116b9565b805161ffff166001141561169257600061167482612499565b60ff1611611683576000611686565b60015b151560208501526116b9565b805161ffff16600214156116b9576116b36116ae826040015190565b6124aa565b60408501525b50806116c481613559565b91505061160b565b6116f060405180606001604052806060815260200160608152602001606081525090565b61171460405180606001604052806060815260200160608152602001606081525090565b600061171f84611259565b905060005b8160200151518110156105505760008260200151828151811061174957611749613509565b60200260200101519050600061ffff16816000015161ffff16141561177457604081015184526117aa565b805161ffff166001141561179157604081015160208501526117aa565b805161ffff16600214156117aa57604081015160408501525b50806117b581613559565b915050611724565b604080516060808201835260008083526020830152918101919091526040805160048082528183019092526000916020820181803683370190505090506118196004611808856120f0565b908301600319810180519290915252565b6040805160608101825261ffff959095168552600460208601528401525090919050565b60408051600180825281830190925260609160009190816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081611858579050509050611898600084600001516118ab565b816000815181106107cc576107cc613509565b60408051606080820183526000808352602083015291810191909152506040805160608101825261ffff939093168352815163ffffffff16602084015282015290565b6020810151606090819015801561190757506040830151155b156119875760408051600180825281830190925290816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816119215790505090506119646000610783856000015161255e565b8160008151811061197757611977613509565b6020026020010181905250611b5e565b60208301511580159061199d5750604083015115155b15611b16576040805160038082526080820190925290816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816119b85790505090506119fb6000610783856000015161255e565b81600081518110611a0e57611a0e613509565b6020026020010181905250600060206001600160401b03811115611a3457611a34612e27565b6040519080825280601f01601f191660200182016040528015611a5e576020820181803683370190505b50602085810151908201529050611a766001826118ab565b82600181518110611a8957611a89613509565b6020026020010181905250600060206001600160401b03811115611aaf57611aaf612e27565b6040519080825280601f01601f191660200182016040528015611ad9576020820181803683370190505b50604086015160208201529050611af16002826118ab565b83600281518110611b0457611b04613509565b60200260200101819052505050611b5e565b60405162461bcd60e51b815260206004820152601760248201527f696e76616c69642063726f7373636861696e206c616e65000000000000000000604482015260640161016a565b6040805180820190915260008152606060208201526107f8565b60606000611b858361263b565b90506000611b948260066136fd565b63ffffffff166001600160401b03811115611bb157611bb1612e27565b6040519080825280601f01601f191660200182016040528015611bdb576020820181803683370190505b509050611c016002611bf0866000015161202e565b908301600119810180519290915252565b611c0f6006611808846120f0565b600660005b602086015151811015611c78576000611c4987602001518381518110611c3c57611c3c613509565b60200260200101516126af565b9050611c5683828661273e565b8051611c6290846136e5565b9250508080611c7090613559565b915050611c14565b5090949350505050565b6000806000611c918585612823565b90925090506000816004811115611caa57611caa6133ec565b148015611cc85750856001600160a01b0316826001600160a01b0316145b80611cd95750611cd9868686612866565b9695505050505050565b604080518082019091526060808252602082015260408051808201909152606080825260208201526000611d1684611259565b905060005b81602001515181101561055057600082602001518281518110611d4057611d40613509565b60200260200101519050600061ffff16816000015161ffff161415611d6b5760408101518452611e42565b805161ffff1660011415611e42576000611d84826114e5565b90506000611d9182611513565b6001600160401b03811115611da857611da8612e27565b604051908082528060200260200182016040528015611ded57816020015b6040805180820190915260608082526020820152815260200190600190039081611dc65790505b50905060005b60208301515183511015611e3a57611e0d6116ae8461154a565b8282611e1881613559565b935081518110611e2a57611e2a613509565b6020026020010181905250611df3565b506020860152505b5080611e4d81613559565b915050611d1b565b604080516008808252610120820190925260609160009190816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081611e72579050509050611eb2600084600001516117bd565b81600081518110611ec557611ec5613509565b6020026020010181905250611edf600184602001516117bd565b81600181518110611ef257611ef2613509565b6020026020010181905250611f0c600284604001516118ab565b81600281518110611f1f57611f1f613509565b6020026020010181905250611f3c60036107838560600151612952565b81600381518110611f4f57611f4f613509565b6020026020010181905250611f6c600461078385608001516118ee565b81600481518110611f7f57611f7f613509565b6020026020010181905250611f9960058460a001516117bd565b81600581518110611fac57611fac613509565b6020026020010181905250611fc660068460c001516118ab565b81600681518110611fd957611fd9613509565b602002602001","0181905250611ff360078460e001516118ab565b816007815181106107cc576107cc613509565b81516000906120168360026136e5565b111561202157600080fd5b50016002015161ffff1690565b60408051600280825281830190925260009160f084901b9183916020820181803683370190505090508160011a60f81b8160008151811061207157612071613509565b60200101906001600160f81b031916908160001a9053508160001a60f81b816001815181106120a2576120a2613509565b60200101906001600160f81b031916908160001a90535060006103c9826000612006565b81516000906120d68360046136e5565b11156120e157600080fd5b50016004015163ffffffff1690565b60408051600480825281830190925260009160e084901b9183916020820181803683370190505090508160031a60f81b8160008151811061213357612133613509565b60200101906001600160f81b031916908160001a9053508160021a60f81b8160018151811061216457612164613509565b60200101906001600160f81b031916908160001a9053508160011a60f81b8160028151811061219557612195613509565b60200101906001600160f81b031916908160001a9053508160001a60f81b816003815181106121c6576121c6613509565b60200101906001600160f81b031916908160001a90535060006103c98260006120c6565b604080516060808201835260008083526020830152918101919091526000828451116122645760405162461bcd60e51b815260206004820152602360248201527f6c656e677468206f66207261772064617461206c657373207468616e206f66666044820152621cd95d60ea1b606482015260840161016a565b60068310156122a65760405162461bcd60e51b815260206004820152600e60248201526d1a5b1b1959d85b081bd9999cd95d60921b604482015260640161016a565b604080516060808201835260008083526020830152918101919091526122cf6112e48686612006565b61ffff1681526122e06002856136e5565b93506122ef61132086866120c6565b63ffffffff1660208201526123056004856136e5565b935061231c8585836020015163ffffffff16612a91565b604082015260208101516123369063ffffffff16856136e5565b935091508290505b9250929050565b604080518082019091526060815260006020820152604080518082019091526060815260006020820152600061237a84611259565b905060005b816020015151811015610550576000826020015182815181106123a4576123a4613509565b60200260200101519050600061ffff16816000015161ffff1614156123cf57604081015184526123f2565b805161ffff16600114156123f2576123e681612b12565b63ffffffff1660208501525b50806123fd81613559565b91505061237f565b60606124126004846136e5565b925060006124236113208585015190565b63ffffffff16905060608115801561244657604051915060208201604052612490565b6040519150601f8316801560200281840101848101888315602002848a0101015b8183101561247f578051835260209283019201612467565b5050848452601f01601f1916604052505b50949350505050565b600061009f60018360400151015190565b6040805180820190915260608082526020820152604080518082019091526060808252602082015260006124dd84611259565b905060005b8160200151518110156105505760008260200151828151811061250757612507613509565b60200260200101519050600061ffff16816000015161ffff161415612532576040810151845261254b565b805161ffff166001141561254b57604081015160208501525b508061255681613559565b9150506124e2565b60608060008360200151511115612605576040805160028082526060820190925290816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816125855790505090506125c5600084600001516118ab565b816000815181106125d8576125d8613509565b60200260200101819052506125f2600184602001516118ab565b8160018151811061197757611977613509565b50604080516001815260a081018252600091810182815260608083018490526080830152602082015283519091611898916118ab565b600080805b6020840151518110156126a85760008460200151828151811061266557612665613509565b6020026020010151905080604001515183600661268291906136fd565b63ffffffff1661269291906136e5565b92505080806126a090613559565b915050612640565b5092915050565b60606000826020015160066126c491906136fd565b63ffffffff166001600160401b038111156126e1576126e1612e27565b6040519080825280601f01601f19166020018201604052801561270b576020820181803683370190505b5090506127206002611bf0856000015161202e565b612732600661180885602001516120f0565b61009f60068460400151835b8151815161275263ffffffff8316866136e5565b11156127d15760405162461bcd60e51b815260206004820152604260248201527f7661724279746573546f4279746573426967456e6469616e3a206f666673657460448201527f2069732067726561746572207468616e20746865206f7574707574206c656e676064820152610e8d60f31b608482015260a40161016a565b801580156127de5761281c565b8483018051601f84168015602002818801018581018215602002838601015b818310156128155782518152602092830192016127fd565b5050509152505b5050505050565b60008082516041141561285a5760208301516040840151606085015160001a61284e87828585612b26565b9450945050505061233e565b5060009050600261233e565b6000806000856001600160a01b0316631626ba7e60e01b8686604051602401612890929190613725565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516128ce919061373e565b600060405180830381855afa9150503d8060008114612909576040519150601f19603f3d011682016040523d82523d6000602084013e61290e565b606091505b509150915081801561292257506020815110155b8015611cd957508051630b135d3f60e11b90612947908301602090810190840161375a565b149695505050505050565b60408051600580825260c0820190925260609160009190816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161296e5790505090506129ae600084600001516118ab565b816000815181106129c1576129c1613509565b60200260200101819052506129db600184602001516118ab565b816001815181106129ee576129ee613509565b6020026020010181905250612a216002612a1c85604001516002811115612a1757612a176133ec565b612bea565b612bfe565b81600281518110612a3457612a34613509565b6020026020010181905250612a5160036107838560600151612c6a565b81600381518110612a6457612a64613509565b6020026020010181905250612a7e600484608001516118ab565b816004815181106107cc576107cc613509565b8251606090612aa083856136e5565b1115612aab57600080fd5b6000826001600160401b03811115612ac557612ac5612e27565b6040519080825280601f01601f191660200182016040528015612aef576020820181803683370190505b50905060208082019086860101612b07828287612d18565b509095945050505050565b600061009f61132060048460400151015190565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612b5d5750600090506003612be1565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612bb1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612bda57600060019250925050612be1565b9150600090505b94509492505050565b600081600281111561009f5761009f6133ec565b6040805160608082018352600080835260208301529181019190915260408051600180825281830190925260009160208201818036833701905050805160018201859052815290506040805160608101825261ffff959095168552600160208601528401525090919050565b604080516002808252606082810190935260009190816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081612c84579050509050612cd86000612a1c85600001516001811115612cd357612cd36133ec565b612d93565b81600081518110612ceb57612ceb613509565b6020026020010181905250612d05600184602001516118ab565b816001815181106107cc576107cc613509565b60208110612d505781518352612d2f6020846136e5565b9250612d3c6020836136e5565b9150612d49602082613667565b9050612d18565b80612d5a57505050565b60006001612d69836020613667565b612d7590610100613857565b612d7f9190613667565b925184518416931916929092179092525050565b600081600181111561009f5761009f6133ec565b604051806060016040528060608152602001612ddd60408051606080820183526020820190815260009282019290925290815290565b8152602001606081525090565b604051806060016040528060608152602001600015158152602001612e22604051806040016040528060608152602001606081525090565b905290565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612e5f57612e5f612e27565b60405290565b60405160a081016001600160401b0381118282101715612e5f57612e5f612e27565b604051606081016001600160401b0381118282101715612e5f57612e5f612e27565b60405161012081016001600160401b0381118282101715612e5f57612e5f612e27565b604051608081016001600160401b0381118282101715612e5f57612e5f612e27565b604051602081016001600160401b0381118282101715612e5f57612e5f612e27565b803563ffffffff81168114612f2457600080fd5b919050565b600082601f830112612f3a57600080fd5b81356001600160401b0380821115612f5457612f54612e27565b604051601f8301601f19908116603f01168101908282118183101715612f7c57612f7c612e27565b81604052838152866020858801011115612f9557600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560038110612f2457600080fd5b600060408284031215612fd657600080fd5b612fde612e3d565b90","50813560028110612fef57600080fd5b815260208201356001600160401b0381111561300a57600080fd5b61301684828501612f29565b60208301525092915050565b600060a0828403121561303457600080fd5b61303c612e65565b905081356001600160401b038082111561305557600080fd5b61306185838601612f29565b8352602084013591508082111561307757600080fd5b61308385838601612f29565b602084015261309460408501612fb5565b604084015260608401359150808211156130ad57600080fd5b6130b985838601612fc4565b606084015260808401359150808211156130d257600080fd5b506130df84828501612f29565b60808301525092915050565b6000606082840312156130fd57600080fd5b613105612e87565b905081356001600160401b038082111561311e57600080fd5b908301906040828603121561313257600080fd5b61313a612e3d565b82358281111561314957600080fd5b61315587828601612f29565b82525060208301358281111561316a57600080fd5b61317687828601612f29565b602083015250808452505050602082013560208201526040820135604082015292915050565b600061012082840312156131af57600080fd5b6131b7612ea9565b90506131c282612f10565b81526131d060208301612f10565b602082015260408201356001600160401b03808211156131ef57600080fd5b6131fb85838601612f29565b6040840152606084013591508082111561321457600080fd5b61322085838601613022565b6060840152608084013591508082111561323957600080fd5b613245858386016130eb565b608084015261325660a08501612f10565b60a084015260c084013591508082111561326f57600080fd5b61327b85838601612f29565b60c084015260e084013591508082111561329457600080fd5b6132a085838601612f29565b60e0840152610100915081840135818111156132bb57600080fd5b6132c786828701612f29565b8385015250505092915050565b600080604083850312156132e757600080fd5b82356001600160401b03808211156132fe57600080fd5b61330a8683870161319c565b9350602085013591508082111561332057600080fd5b908401906080828703121561333457600080fd5b61333c612ecc565b82358281111561334b57600080fd5b83016020818903121561335d57600080fd5b613365612eee565b81358481111561337457600080fd5b6133808a828501612f29565b82525082525060208301358281111561339857600080fd5b6133a4888286016130eb565b6020830152506133b660408401612f10565b60408201526060830135828111156133cd57600080fd5b6133d988828601612f29565b6060830152508093505050509250929050565b634e487b7160e01b600052602160045260246000fd5b602081016003831061342457634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561343d57600080fd5b82356001600160401b038082111561345457600080fd5b908401906040828703121561346857600080fd5b9092506020840135908082111561347e57600080fd5b508301610120818603121561349257600080fd5b809150509250929050565b6000604082360312156134af57600080fd5b6134b7612e3d565b82356001600160401b03808211156134ce57600080fd5b6134da36838701612f29565b835260208501359150808211156134f057600080fd5b5061301636828601612f29565b600061009f368361319c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff8083168181141561354f5761354f61351f565b6001019392505050565b600060001982141561356d5761356d61351f565b5060010190565b60005b8381101561358f578181015183820152602001613577565b8381111561359e576000848401525b50505050565b600081518084526135bc816020860160208601613574565b601f01601f19169290920160200192915050565b6080815260008551606060808401528051604060e08501526135f66101208501826135a4565b90506020820151915060df198482030161010085015261361681836135a4565b915050602087015160a0840152604087015160c0840152828103602084015261363f81876135a4565b9050828103604084015261365381866135a4565b915050821515606083015295945050505050565b6000828210156136795761367961351f565b500390565b600060ff821660ff84168060ff0382111561369b5761369b61351f565b019392505050565b600060ff821660ff8416808210156136bd576136bd61351f565b90039392505050565b60008160001904831182151516156136e0576136e061351f565b500290565b600082198211156136f8576136f861351f565b500190565b600063ffffffff80831681851680830382111561371c5761371c61351f565b01949350505050565b82815260406020820152600061080860408301846135a4565b60008251613750818460208701613574565b9190910192915050565b60006020828403121561376c57600080fd5b5051919050565b600181815b808511156137ae5781600019048211156137945761379461351f565b808516156137a157918102915b93841c9390800290613778565b509250929050565b6000826137c55750600161009f565b816137d25750600061009f565b81600181146137e857600281146137f25761380e565b600191505061009f565b60ff8411156138035761380361351f565b50506001821b61009f565b5060208310610133831016604e8410600b8410161715613831575081810a61009f565b61383b8383613773565b806000190482111561384f5761384f61351f565b029392505050565b600061009c83836137b656fea2646970667358221220c14f1c87039e8682da8350c8db67d3f11f1884f656936b1077525a6052b6f49264736f6c634300080b0033"};
  
      public static final String BINARY = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", BINARY_ARRAY);
  
      public static final String[] SM_BINARY_ARRAY = {"608060405234801561001057600080fd5b506138ac806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631272ad5814610046578063a2b04ada1461005e578063e0b011b814610081575b600080fd5b60016040516100559190612e50565b60405180910390f35b61007161006c366004613325565b610094565b6040519015158152602001610055565b61007161008f36600461343d565b6100a9565b60006100a083836100c5565b90505b92915050565b60006100a06100b7846134b0565b6100c084613510565b610339565b6000806100d58460e001516103d8565b905060006100e6846060015161055f565b805183518151602092830120815192909101919091209192501461017857604051636381e58960e11b815260206004820152603c60248201527f636f6d6d697474656520696420696e2070726f6f66206e6f7420657175616c2060448201527f7769746820746865206f6e6520696e20656e646f72736520726f6f740000000060648201526084015b60405180910390fd5b6000610183856106fc565b90506000805b84604001515181101561031d576000856040015182815181106101ae576101ae61351c565b602002602001015190506000805b86602001515181101561029e57610205876020015182815181106101e2576101e261351c565b602090810291909101810151518551815191830191909120815191909201201490565b1561028c57610264876020015182815181106102235761022361351c565b60200260200101516020015161023c8560400151610816565b888a6020015185815181106102535761025361351c565b6020026020010151604001516108c5565b915081801561027557508260200151155b1561028c578461028481613548565b95505061029e565b806102968161356c565b9150506101bc565b5060808a0151875183516040517f1d1b77552f06fdab2027dfbcb7976adcec559223ac8194da00497bf58be13dc7936102dc939092909186906135e3565b60405180910390a1801580156102f3575081602001515b156103085760009750505050505050506100a3565b505080806103159061356c565b915050610189565b5060208401515161032e9082610a92565b979650505050505050565b60006103488260400151610d21565b835161035390610d21565b146103a157604051636381e58960e11b815260206004820152601f60248201527f76657269667920616e63686f722076657273696f6e206e6f7420657175616c00604482015260640161016f565b60006103b08460200151610dde565b905060006103c284610100015161055f565b90506103cf828286610f55565b95945050505050565b6103e0612dba565b6103e8612dba565b60006103f384611266565b905060005b8160200151518110156105565760008260200151828151811061041d5761041d61351c565b60200260200101519050600061ffff16816000015161ffff1614156104485760408101518452610543565b805161ffff166001141561047357610469610464826040015190565b611442565b6020850152610543565b805161ffff166002141561054357600061048c826114f3565b9050600061049982611521565b6001600160401b038111156104b0576104b0612e78565b6040519080825280602002602001820160405280156104e957816020015b6104d6612dfd565b8152602001906001900390816104ce5790505b50905060005b6020830151518351101561053b5761050e61050984611558565b6115fa565b82826105198161356c565b93508151811061052b5761052b61351c565b60200260200101819052506104ef565b506040860152505b508061054e8161356c565b9150506103f8565b50909392505050565b60408051808201909152606080825260208201526040805180820190915260608082526020820152600061059284611266565b905060005b816020015151811015610556576000826020015182815181106105bc576105bc61351c565b60200260200101519050600061ffff16816000015161ffff1614156105e757604081015184526106d3565b805161ffff16600114156106d3576000610600826114f3565b9050600061060d82611521565b6001600160401b0381111561062457610624612e78565b60405190808252806020026020018201604052801561067957816020015b61066660405180606001604052806060815260200160608152602001606081525090565b8152602001906001900390816106425790505b50905060005b602083015151835110156106cb5761069e61069984611558565b6116db565b82826106a98161356c565b9350815181106106bb576106bb61351c565b602002602001018190525061067f565b506020860152505b50806106de8161356c565b915050610597565b8051602091820120825192909101919091201490565b6040805160038082526080820190925260609160009190816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161071857905050905061075961010084604001516117cc565b8160008151811061076c5761076c61351c565b602002602001018190525061078e6005610789856000015161184c565b6118ba565b816001815181106107a1576107a161351c565b60200260200101819052506107bf61010161078985602001516118fd565b816002815181106107d2576107d261351c565b60200260200101819052506107fe6040518060400160405280600061ffff168152602001606081525090565b6020810182905261080e81611b88565b949350505050565b60606040826020015151101561086f57604051636381e58960e11b815260206004820152601c60248201527f7075626c6963206b6579206c656e677468206e6f7420656e6f75746800000000604482015260640161016f565b602082015180516000906108859060409061367a565b6040805181815260608101825291925060009190602082018180368337019050509290910160208181015190840152604090810151908301525092915050565b6000610908604051806040016040528060168152602001754b656363616b32353657697468536563703235366b3160501b815250866106e690919063ffffffff16565b61097157604051636381e58960e11b815260206004820152603360248201527f6f6e6c7920737570706f7274204b454343414b3235365f574954485f534543506044820152723235364b31207369676e6174757265206e6f7760681b606482015260840161016f565b6041825110156109c457604051636381e58960e11b815260206004820152601a60248201527f77726f6e6720736563703235366b3120736967206c656e677468000000000000604482015260640161016f565b601b826040815181106109d9576109d961351c565b01602001516109eb919060f81c613691565b60f81b82604081518110610a0157610a0161351c565b60200101906001600160f81b031916908160001a90535083516020850120600090610a33908551602087012085611c92565b9050601b83604081518110610a4a57610a4a61351c565b0160200151610a5c919060f81c6136b6565b60f81b83604081518110610a7257610a7261351c565b60200101906001600160f81b031916908160001a90535095945050505050565b6040805180820190915260018152600f60fa1b602091820152825180519101206000907f1a83a22570ae851a72e0a2ffc218628d558535e52a54bb98de0d4439dfbc78861415610af657826020015163ffffffff168263ffffffff161090506100a3565b6040805180820190915260018152601f60f91b602091820152835180519101207f42efe63385f22718f8c87a878c50edd45bda229a3efc257e207e8b332225ff1c1415610b5757826020015163ffffffff168263ffffffff161190506100a3565b6040805180820190915260028152613d3d60f01b602091820152835180519101207f0d5bd1dab64a124378c1bb762ceba748096841145ff73f0b98d316ffa1d29c501415610bb957826020015163ffffffff168263ffffffff161490506100a3565b6040805180820190915260028152613e3d60f01b602091820152835180519101207ffb3e4e2b290f49c37c7ff57899285e85c64aa83adb30a9cfe503065d3d692b5a1415610c1c57826020015163ffffffff168263ffffffff16101590506100a3565b6040805180820190915260028152613c3d60f01b602091820152835180519101207ffe073fcec6ccafdb38953d2bf0cec4c84de0fe62c400de941e31ab445bda168e1415610c7f57826020015163ffffffff168263ffffffff16111590506100a3565b604080518082019091526002815261213d60f01b602091820152835180519101207f20eb1849b32f1b642dfa61efbd8bd9a756c396b0f1a3c1d46966fde89b0195ba1415610ce257826020015163ffffffff168263ffffffff16141590506100a3565b604051636381e58960e11b81526020600482015260136024820152721b9bc81bdc195c985d1bdc881b585d18da1959606a1b604482015260640161016f565b80516000906020811115610d8457604051636381e58960e11b815260206004820152602360248201527f333262797465732062696720696e7465676572206174206d6f737420666f72206044820152626e6f7760e81b606482015260840161016f565b6000816001600160401b03811115610d9e57610d9e612e78565b6040519080825280601f01601f191660200182016040528015610dc8576020820181803683370190505b5084518152938201519190930151900392915050565b604080518082019091526060808252602082015260408051808201909152606080825260208201526000610e1184611266565b905060005b81602001515181101561055657600082602001518281518110610e3b57610e3b61351c565b60200260200101519050600061ffff16816000015161ffff161415610e665760408101518452610f42565b805161ffff1660011415610f42576000610e7f826114f3565b90506000610e8c82611521565b6001600160401b03811115610ea357610ea3612e78565b604051908082528060200260200182016040528015610ee857816020015b6040805180820190915260608082526020820152815260200190600190039081610ec15790505b50905060005b60208301515183511015610f3a57610f0d610f0884611558565b611cf3565b8282610f188161356c565b935081518110610f2a57610f2a61351c565b6020026020010181905250610eee565b506020860152505b5080610f4d8161356c565b915050610e16565b8151835181516020928301208151929091019190912060009114610fe257604051636381e58960e11b815260206004820152603d60248201527f636f6d6d697474656520696420696e2070726f6f66206e6f7420657175616c2060448201527f7769746820746865206f6e6520696e2076657269667920616e63686f7200000060648201526084016101","6f565b6000610fed83611e65565b90506000805b85602001515181101561123e576000866020015182815181106110185761101861351c565b60200260200101519050611067604051806040016040528060168152602001754b656363616b32353657697468536563703235366b3160501b81525082602001516106e690919063ffffffff16565b6110c657604051636381e58960e11b815260206004820152602960248201527f6f6e6c7920737570706f7274204b454343414b3235365f574954485f534543506044820152683235364b312073696760b81b606482015260840161016f565b60005b8860200151518110156112295761110e82600001518a6020015183815181106110f4576110f461351c565b6020026020010151600001516106e690919063ffffffff16565b15611217576000805b8a60200151838151811061112d5761112d61351c565b602002602001015160200151518110156111b657611197846020015161118c8d6020015186815181106111625761116261351c565b602002602001015160200151848151811061117f5761117f61351c565b6020026020010151610816565b8987604001516108c5565b915081156111a4576111b6565b806111ae8161356c565b915050611117565b5060808801518a5184516040517ff9a1e9d39ff5138cfbf6ee2703c375f1eac237bd40d3c026c4eeadffa814ab49936111f4939092909186906135e3565b60405180910390a18015611215578461120c8161356c565b95505050611229565b505b806112218161356c565b9150506110c9565b505080806112369061356c565b915050610ff3565b506020860151516112509060026136d9565b61125b8260036136d9565b119695505050505050565b6040805180820190915260008152606060208201526006825110156112ce57604051636381e58960e11b815260206004820152601760248201527f696c6c6567616c207261772064617461206c656e677468000000000000000000604482015260640161016f565b60408051808201909152600080825260606020830152906112f76112f28584612016565b61203e565b61ffff1681526113086006836136f8565b91506000825b85518110156113625761133361132e876113298460026136f8565b6120d6565b612100565b61133e906006613710565b61134e9063ffffffff16826136f8565b90508161135a8161356c565b92505061130e565b6000826001600160401b0381111561137c5761137c612e78565b6040519080825280602002602001820160405280156113c957816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161139a5790505b509050600092505b8651851015611433576040805160608082018352600080835260208301529181019190915261140088876121fa565b965090508082856114108161356c565b9650815181106114225761142261351c565b6020026020010181905250506113d1565b60208401525090949350505050565b60408051606080820183526020808301828152600084860181905290845284518084018652918201928352938101849052908152909161148184611266565b905060005b816020015151811015610556576000826020015182815181106114ab576114ab61351c565b60200260200101519050600061ffff16816000015161ffff1614156114e0576114dd6114d8826040015190565b612357565b84525b50806114eb8161356c565b915050611486565b6040805180820190915260008152606060208201525060408051808201825260008152910151602082015290565b8051600090815b602084015151845110156115525761153f84611558565b508061154a8161356c565b915050611528565b92525090565b60608160200151518260000151106115c257604051636381e58960e11b815260206004820152602660248201527f4279746573417272617953747265616d3a206f6666657374206f7574206f6620604482015265313ab33332b960d11b606482015260840161016f565b60006115d683600001518460200151612417565b80518451919250906115e99060046136f8565b6115f391906136f8565b9092525090565b611602612dfd565b61160a612dfd565b600061161584611266565b905060005b8160200151518110156105565760008260200151828151811061163f5761163f61351c565b60200260200101519050600061ffff16816000015161ffff16141561166a57604081015184526116c8565b805161ffff16600114156116a1576000611683826124ab565b60ff1611611692576000611695565b60015b151560208501526116c8565b805161ffff16600214156116c8576116c26116bd826040015190565b6124bc565b60408501525b50806116d38161356c565b91505061161a565b6116ff60405180606001604052806060815260200160608152602001606081525090565b61172360405180606001604052806060815260200160608152602001606081525090565b600061172e84611266565b905060005b816020015151811015610556576000826020015182815181106117585761175861351c565b60200260200101519050600061ffff16816000015161ffff16141561178357604081015184526117b9565b805161ffff16600114156117a057604081015160208501526117b9565b805161ffff16600214156117b957604081015160408501525b50806117c48161356c565b915050611733565b60408051606080820183526000808352602083015291810191909152604080516004808252818301909252600091602082018180368337019050509050611828600461181785612100565b908301600319810180519290915252565b6040805160608101825261ffff959095168552600460208601528401525090919050565b60408051600180825281830190925260609160009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816118675790505090506118a7600084600001516118ba565b816000815181106107d2576107d261351c565b60408051606080820183526000808352602083015291810191909152506040805160608101825261ffff939093168352815163ffffffff16602084015282015290565b6020810151606090819015801561191657506040830151155b156119965760408051600180825281830190925290816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161193057905050905061197360006107898560000151612570565b816000815181106119865761198661351c565b6020026020010181905250611b6e565b6020830151158015906119ac5750604083015115155b15611b25576040805160038082526080820190925290816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816119c7579050509050611a0a60006107898560000151612570565b81600081518110611a1d57611a1d61351c565b6020026020010181905250600060206001600160401b03811115611a4357611a43612e78565b6040519080825280601f01601f191660200182016040528015611a6d576020820181803683370190505b50602085810151908201529050611a856001826118ba565b82600181518110611a9857611a9861351c565b6020026020010181905250600060206001600160401b03811115611abe57611abe612e78565b6040519080825280601f01601f191660200182016040528015611ae8576020820181803683370190505b50604086015160208201529050611b006002826118ba565b83600281518110611b1357611b1361351c565b60200260200101819052505050611b6e565b604051636381e58960e11b815260206004820152601760248201527f696e76616c69642063726f7373636861696e206c616e65000000000000000000604482015260640161016f565b6040805180820190915260008152606060208201526107fe565b60606000611b958361264d565b90506000611ba4826006613710565b63ffffffff166001600160401b03811115611bc157611bc1612e78565b6040519080825280601f01601f191660200182016040528015611beb576020820181803683370190505b509050611c116002611c00866000015161203e565b908301600119810180519290915252565b611c1f600661181784612100565b600660005b602086015151811015611c88576000611c5987602001518381518110611c4c57611c4c61351c565b60200260200101516126c1565b9050611c66838286612750565b8051611c7290846136f8565b9250508080611c809061356c565b915050611c24565b5090949350505050565b6000806000611ca18585612836565b90925090506000816004811115611cba57611cba612e3a565b148015611cd85750856001600160a01b0316826001600160a01b0316145b80611ce95750611ce9868686612879565b9695505050505050565b604080518082019091526060808252602082015260408051808201909152606080825260208201526000611d2684611266565b905060005b81602001515181101561055657600082602001518281518110611d5057611d5061351c565b60200260200101519050600061ffff16816000015161ffff161415611d7b5760408101518452611e52565b805161ffff1660011415611e52576000611d94826114f3565b90506000611da182611521565b6001600160401b03811115611db857611db8612e78565b604051908082528060200260200182016040528015611dfd57816020015b6040805180820190915260608082526020820152815260200190600190039081611dd65790505b50905060005b60208301515183511015611e4a57611e1d6116bd84611558565b8282611e288161356c565b935081518110611e3a57611e3a61351c565b6020026020010181905250611e03565b506020860152505b5080611e5d8161356c565b915050611d2b565b604080516008808252610120820190925260609160009190816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081611e82579050509050611ec2600084600001516117cc565b81600081518110611ed557611ed561351c565b6020026020010181905250611eef600184602001516117cc565b81600181518110611f0257611f0261351c565b6020026020010181905250611f1c600284604001516118ba565b81600281518110611f2f57611f2f61351c565b6020026020010181905250611f4c60036107898560600151612965565b81600381518110611f5f57611f5f61351c565b6020026020010181905250611f7c600461078985608001516118fd565b81600481518110611f8f57611f8f61351c565b6020026020010181905250611fa960058460a001516117cc565b81600581518110611fbc57611fbc61351c565b6020026020010181905250611fd660068460c001516118ba565b81600681518110611f","e957611fe961351c565b602002602001018190525061200360078460e001516118ba565b816007815181106107d2576107d261351c565b81516000906120268360026136f8565b111561203157600080fd5b50016002015161ffff1690565b60408051600280825281830190925260009160f084901b9183916020820181803683370190505090508160011a60f81b816000815181106120815761208161351c565b60200101906001600160f81b031916908160001a9053508160001a60f81b816001815181106120b2576120b261351c565b60200101906001600160f81b031916908160001a90535060006103cf826000612016565b81516000906120e68360046136f8565b11156120f157600080fd5b50016004015163ffffffff1690565b60408051600480825281830190925260009160e084901b9183916020820181803683370190505090508160031a60f81b816000815181106121435761214361351c565b60200101906001600160f81b031916908160001a9053508160021a60f81b816001815181106121745761217461351c565b60200101906001600160f81b031916908160001a9053508160011a60f81b816002815181106121a5576121a561351c565b60200101906001600160f81b031916908160001a9053508160001a60f81b816003815181106121d6576121d661351c565b60200101906001600160f81b031916908160001a90535060006103cf8260006120d6565b6040805160608082018352600080835260208301529181019190915260008284511161227557604051636381e58960e11b815260206004820152602360248201527f6c656e677468206f66207261772064617461206c657373207468616e206f66666044820152621cd95d60ea1b606482015260840161016f565b60068310156122b857604051636381e58960e11b815260206004820152600e60248201526d1a5b1b1959d85b081bd9999cd95d60921b604482015260640161016f565b604080516060808201835260008083526020830152918101919091526122e16112f28686612016565b61ffff1681526122f26002856136f8565b935061230161132e86866120d6565b63ffffffff1660208201526123176004856136f8565b935061232e8585836020015163ffffffff16612aa4565b604082015260208101516123489063ffffffff16856136f8565b935091508290505b9250929050565b604080518082019091526060815260006020820152604080518082019091526060815260006020820152600061238c84611266565b905060005b816020015151811015610556576000826020015182815181106123b6576123b661351c565b60200260200101519050600061ffff16816000015161ffff1614156123e15760408101518452612404565b805161ffff1660011415612404576123f881612b25565b63ffffffff1660208501525b508061240f8161356c565b915050612391565b60606124246004846136f8565b9250600061243561132e8585015190565b63ffffffff169050606081158015612458576040519150602082016040526124a2565b6040519150601f8316801560200281840101848101888315602002848a0101015b81831015612491578051835260209283019201612479565b5050848452601f01601f1916604052505b50949350505050565b60006100a360018360400151015190565b6040805180820190915260608082526020820152604080518082019091526060808252602082015260006124ef84611266565b905060005b816020015151811015610556576000826020015182815181106125195761251961351c565b60200260200101519050600061ffff16816000015161ffff161415612544576040810151845261255d565b805161ffff166001141561255d57604081015160208501525b50806125688161356c565b9150506124f4565b60608060008360200151511115612617576040805160028082526060820190925290816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816125975790505090506125d7600084600001516118ba565b816000815181106125ea576125ea61351c565b6020026020010181905250612604600184602001516118ba565b816001815181106119865761198661351c565b50604080516001815260a0810182526000918101828152606080830184905260808301526020820152835190916118a7916118ba565b600080805b6020840151518110156126ba576000846020015182815181106126775761267761351c565b602002602001015190508060400151518360066126949190613710565b63ffffffff166126a491906136f8565b92505080806126b29061356c565b915050612652565b5092915050565b60606000826020015160066126d69190613710565b63ffffffff166001600160401b038111156126f3576126f3612e78565b6040519080825280601f01601f19166020018201604052801561271d576020820181803683370190505b5090506127326002611c00856000015161203e565b61274460066118178560200151612100565b6100a360068460400151835b8151815161276463ffffffff8316866136f8565b11156127e457604051636381e58960e11b815260206004820152604260248201527f7661724279746573546f4279746573426967456e6469616e3a206f666673657460448201527f2069732067726561746572207468616e20746865206f7574707574206c656e676064820152610e8d60f31b608482015260a40161016f565b801580156127f15761282f565b8483018051601f84168015602002818801018581018215602002838601015b81831015612828578251815260209283019201612810565b5050509152505b5050505050565b60008082516041141561286d5760208301516040840151606085015160001a61286187828585612b39565b94509450505050612350565b50600090506002612350565b6000806000856001600160a01b031663973e417a60e01b86866040516024016128a3929190613738565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516128e19190613751565b600060405180830381855afa9150503d806000811461291c576040519150601f19603f3d011682016040523d82523d6000602084013e612921565b606091505b509150915081801561293557506020815110155b8015611ce957508051634b9f20bd60e11b9061295a908301602090810190840161376d565b149695505050505050565b60408051600580825260c0820190925260609160009190816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816129815790505090506129c1600084600001516118ba565b816000815181106129d4576129d461351c565b60200260200101819052506129ee600184602001516118ba565b81600181518110612a0157612a0161351c565b6020026020010181905250612a346002612a2f85604001516002811115612a2a57612a2a612e3a565b612bfd565b612c11565b81600281518110612a4757612a4761351c565b6020026020010181905250612a6460036107898560600151612c7d565b81600381518110612a7757612a7761351c565b6020026020010181905250612a91600484608001516118ba565b816004815181106107d2576107d261351c565b8251606090612ab383856136f8565b1115612abe57600080fd5b6000826001600160401b03811115612ad857612ad8612e78565b6040519080825280601f01601f191660200182016040528015612b02576020820181803683370190505b50905060208082019086860101612b1a828287612d2b565b509095945050505050565b60006100a361132e60048460400151015190565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612b705750600090506003612bf4565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612bc4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612bed57600060019250925050612bf4565b9150600090505b94509492505050565b60008160028111156100a3576100a3612e3a565b6040805160608082018352600080835260208301529181019190915260408051600180825281830190925260009160208201818036833701905050805160018201859052815290506040805160608101825261ffff959095168552600160208601528401525090919050565b604080516002808252606082810190935260009190816020015b60408051606080820183526000808352602083015291810191909152815260200190600190039081612c97579050509050612ceb6000612a2f85600001516001811115612ce657612ce6612e3a565b612da6565b81600081518110612cfe57612cfe61351c565b6020026020010181905250612d18600184602001516118ba565b816001815181106107d2576107d261351c565b60208110612d635781518352612d426020846136f8565b9250612d4f6020836136f8565b9150612d5c60208261367a565b9050612d2b565b80612d6d57505050565b60006001612d7c83602061367a565b612d889061010061386a565b612d92919061367a565b925184518416931916929092179092525050565b60008160018111156100a3576100a3612e3a565b604051806060016040528060608152602001612df060408051606080820183526020820190815260009282019290925290815290565b8152602001606081525090565b604051806060016040528060608152602001600015158152602001612e35604051806040016040528060608152602001606081525090565b905290565b63b95aa35560e01b600052602160045260246000fd5b6020810160038310612e725763b95aa35560e01b600052602160045260246000fd5b91905290565b63b95aa35560e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612eb057612eb0612e78565b60405290565b60405160a081016001600160401b0381118282101715612eb057612eb0612e78565b604051606081016001600160401b0381118282101715612eb057612eb0612e78565b60405161012081016001600160401b0381118282101715612eb057612eb0612e78565b604051608081016001600160401b0381118282101715612eb057612eb0612e78565b604051602081016001600160401b0381118282101715612eb057612eb0612e78565b803563ffffffff81168114612f7557600080fd5b919050565b600082601f830112612f8b57600080fd5b81356001600160401b0380821115612fa557612fa5612e78565b604051601f8301601f19908116603f01168101908282118183101715612fcd57612fcd612e78565b81604052838152866020858801011115612f","e657600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560038110612f7557600080fd5b60006040828403121561302757600080fd5b61302f612e8e565b905081356002811061304057600080fd5b815260208201356001600160401b0381111561305b57600080fd5b61306784828501612f7a565b60208301525092915050565b600060a0828403121561308557600080fd5b61308d612eb6565b905081356001600160401b03808211156130a657600080fd5b6130b285838601612f7a565b835260208401359150808211156130c857600080fd5b6130d485838601612f7a565b60208401526130e560408501613006565b604084015260608401359150808211156130fe57600080fd5b61310a85838601613015565b6060840152608084013591508082111561312357600080fd5b5061313084828501612f7a565b60808301525092915050565b60006060828403121561314e57600080fd5b613156612ed8565b905081356001600160401b038082111561316f57600080fd5b908301906040828603121561318357600080fd5b61318b612e8e565b82358281111561319a57600080fd5b6131a687828601612f7a565b8252506020830135828111156131bb57600080fd5b6131c787828601612f7a565b602083015250808452505050602082013560208201526040820135604082015292915050565b6000610120828403121561320057600080fd5b613208612efa565b905061321382612f61565b815261322160208301612f61565b602082015260408201356001600160401b038082111561324057600080fd5b61324c85838601612f7a565b6040840152606084013591508082111561326557600080fd5b61327185838601613073565b6060840152608084013591508082111561328a57600080fd5b6132968583860161313c565b60808401526132a760a08501612f61565b60a084015260c08401359150808211156132c057600080fd5b6132cc85838601612f7a565b60c084015260e08401359150808211156132e557600080fd5b6132f185838601612f7a565b60e08401526101009150818401358181111561330c57600080fd5b61331886828701612f7a565b8385015250505092915050565b6000806040838503121561333857600080fd5b82356001600160401b038082111561334f57600080fd5b61335b868387016131ed565b9350602085013591508082111561337157600080fd5b908401906080828703121561338557600080fd5b61338d612f1d565b82358281111561339c57600080fd5b8301602081890312156133ae57600080fd5b6133b6612f3f565b8135848111156133c557600080fd5b6133d18a828501612f7a565b8252508252506020830135828111156133e957600080fd5b6133f58882860161313c565b60208301525061340760408401612f61565b604082015260608301358281111561341e57600080fd5b61342a88828601612f7a565b6060830152508093505050509250929050565b6000806040838503121561345057600080fd5b82356001600160401b038082111561346757600080fd5b908401906040828703121561347b57600080fd5b9092506020840135908082111561349157600080fd5b50830161012081860312156134a557600080fd5b809150509250929050565b6000604082360312156134c257600080fd5b6134ca612e8e565b82356001600160401b03808211156134e157600080fd5b6134ed36838701612f7a565b8352602085013591508082111561350357600080fd5b5061306736828601612f7a565b60006100a336836131ed565b63b95aa35560e01b600052603260045260246000fd5b63b95aa35560e01b600052601160045260246000fd5b600063ffffffff8083168181141561356257613562613532565b6001019392505050565b600060001982141561358057613580613532565b5060010190565b60005b838110156135a257818101518382015260200161358a565b838111156135b1576000848401525b50505050565b600081518084526135cf816020860160208601613587565b601f01601f19169290920160200192915050565b6080815260008551606060808401528051604060e08501526136096101208501826135b7565b90506020820151915060df198482030161010085015261362981836135b7565b915050602087015160a0840152604087015160c0840152828103602084015261365281876135b7565b9050828103604084015261366681866135b7565b915050821515606083015295945050505050565b60008282101561368c5761368c613532565b500390565b600060ff821660ff84168060ff038211156136ae576136ae613532565b019392505050565b600060ff821660ff8416808210156136d0576136d0613532565b90039392505050565b60008160001904831182151516156136f3576136f3613532565b500290565b6000821982111561370b5761370b613532565b500190565b600063ffffffff80831681851680830382111561372f5761372f613532565b01949350505050565b82815260406020820152600061080e60408301846135b7565b60008251613763818460208701613587565b9190910192915050565b60006020828403121561377f57600080fd5b5051919050565b600181815b808511156137c15781600019048211156137a7576137a7613532565b808516156137b457918102915b93841c939080029061378b565b509250929050565b6000826137d8575060016100a3565b816137e5575060006100a3565b81600181146137fb576002811461380557613821565b60019150506100a3565b60ff84111561381657613816613532565b50506001821b6100a3565b5060208310610133831016604e8410600b8410161715613844575081810a6100a3565b61384e8383613786565b806000190482111561386257613862613532565b029392505050565b60006100a083836137c956fea264697066735822122078c319624b557615dd28cb9a6b0b35ed2180b5bfcddaf96c8066019b82e4edb964736f6c634300080b0033"};
  
      public static final String SM_BINARY = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", SM_BINARY_ARRAY);
  
      public static final String[] ABI_ARRAY = {"[{\"inputs\":[],\"name\":\"myPtcType\",\"outputs\":[{\"internalType\":\"enum PTCTypeEnum\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"version\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"anchor\",\"type\":\"bytes\"}],\"internalType\":\"struct PTCVerifyAnchor\",\"name\":\"va\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"tpbtaVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"ptcVerifyAnchorVersion\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"enum PTCTypeEnum\",\"name\":\"ptcType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum ObjectIdentityType\",\"name\":\"oidType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"rawId\",\"type\":\"bytes\"}],\"internalType\":\"struct ObjectIdentity\",\"name\":\"applicant\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"subjectInfo\",\"type\":\"bytes\"}],\"internalType\":\"struct PTCCredentialSubject\",\"name\":\"signerPtcCredentialSubject\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"}],\"internalType\":\"struct CrossChainChannel\",\"name\":\"channel\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"senderId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"receiverId\",\"type\":\"bytes32\"}],\"internalType\":\"struct CrossChainLane\",\"name\":\"crossChainLane\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"btaSubjectVersion\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"ucpMessageHashAlgo\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"endorseRoot\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"endorseProof\",\"type\":\"bytes\"}],\"internalType\":\"struct TpBta\",\"name\":\"tpBta\",\"type\":\"tuple\"}],\"name\":\"verifyTpBta\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"tpbtaVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"ptcVerifyAnchorVersion\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"enum PTCTypeEnum\",\"name\":\"ptcType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"enum ObjectIdentityType\",\"name\":\"oidType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"rawId\",\"type\":\"bytes\"}],\"internalType\":\"struct ObjectIdentity\",\"name\":\"applicant\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"subjectInfo\",\"type\":\"bytes\"}],\"internalType\":\"struct PTCCredentialSubject\",\"name\":\"signerPtcCredentialSubject\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"}],\"internalType\":\"struct CrossChainChannel\",\"name\":\"channel\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"senderId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"receiverId\",\"type\":\"bytes32\"}],\"internalType\":\"struct CrossChainLane\",\"name\":\"crossChainLane\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"btaSubjectVersion\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"ucpMessageHashAlgo\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"endorseRoot\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"endorseProof\",\"type\":\"bytes\"}],\"internalType\":\"struct TpBta\",\"name\":\"tpBta\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"body\",\"type\":\"bytes\"}],\"internalType\":\"struct ThirdPartyResp\",\"name\":\"resp\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"senderDomain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"receiverDomain\",\"type\":\"string\"}],\"internalType\":\"struct CrossChainChannel\",\"name\":\"channel\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"senderId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"receiverId\",\"type\":\"bytes32\"}],\"internalType\":\"struct CrossChainLane\",\"name\":\"tpbtaCrossChainLane\",\"type\":\"tuple\"},{\"internalType\":\"uint32\",\"name\":\"tpbtaVersion\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"rawProof\",\"type\":\"bytes\"}],\"internalType\":\"struct ThirdPartyProof\",\"name\":\"tpProof\",\"type\":\"tuple\"}],\"name\":\"verifyTpProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"};
  
      public static final String ABI = org.fisco.bcos.sdk.v3.utils.StringUtils.joinAll("", ABI_ARRAY);
  
      public static final String FUNC_MYPTCTYPE = "myPtcType";
  
      public static final String FUNC_VERIFYTPBTA = "verifyTpBta";
  
      public static final String FUNC_VERIFYTPPROOF = "verifyTpProof";
  
      protected CommitteePtcVerifier(String contractAddress, Client client,
              CryptoKeyPair credential) {
          super(getBinary(client.getCryptoSuite()), contractAddress, client, credential);
      }
  
      public static String getBinary(CryptoSuite cryptoSuite) {
          return (cryptoSuite.getCryptoTypeConfig() == CryptoType.ECDSA_TYPE ? BINARY : SM_BINARY);
      }
  
      public static String getABI() {
          return ABI;
      }
  
      public BigInteger myPtcType() throws ContractException {
          final Function function = new Function(FUNC_MYPTCTYPE, 
                  Arrays.<Type>asList(), 
                  Arrays.<TypeReference<?>>asList(new TypeReference<Uint8>() {}));
          return executeCallWithSingleValueReturn(function, BigInteger.class);
      }
  
      public Function getMethodMyPtcTypeRawFunction() throws ContractException {
          final Function function = new Function(FUNC_MYPTCTYPE, 
                  Arrays.<Type>asList(), 
                  Arrays.<TypeReference<?>>asList(new TypeReference<Uint8>() {}));
          return function;
      }
  
      public TransactionReceipt verifyTpBta(PTCVerifyAnchor va, TpBta tpBta) {
          final Function function = new Function(
                  FUNC_VERIFYTPBTA, 
                  Arrays.<Type>asList(va, 
                  tpBta), 
                  Collections.<TypeReference<?>>emptyList(), 0);
          return executeTransaction(function);
      }
  
      public Function getMethodVerifyTpBtaRawFunction(PTCVerifyAnchor va, TpBta tpBta) throws
              ContractException {
          final Function function = new Function(FUNC_VERIFYTPBTA, 
                  Arrays.<Type>asList(va, 
                  tpBta), 
                  Arrays.<TypeReference<?>>asList(new TypeReference<Bool>() {}));
          return function;
      }
  
      public String getSignedTransactionForVerifyTpBta(PTCVerifyAnchor va, TpBta tpBta) {
          final Function function = new Function(
                  FUNC_VERIFYTPBTA, 
                  Arrays.<Type>asList(va, 
                  tpBta), 
                  Collections.<TypeReference<?>>emptyList(), 0);
          return createSignedTransaction(function);
      }
  
      public String verifyTpBta(PTCVerifyAnchor va, TpBta tpBta, TransactionCallback callback) {
          final Function function = new Function(
                  FUNC_VERIFYTPBTA, 
                  Arrays.<Type>asList(va, 
                  tpBta), 
                  Collections.<TypeReference<?>>emptyList(), 0);
          return asyncExecuteTransaction(function, callback);
      }
  
      public Tuple2<PTCVerifyAnchor, TpBta> getVerifyTpBtaInput(
              TransactionReceipt transactionReceipt) {
          String data = transactionReceipt.getInput().substring(10);
          final Function function = new Function(FUNC_VERIFYTPBTA, 
                  Arrays.<Type>asList(), 
                  Arrays.<TypeReference<?>>asList(new TypeReference<PTCVerifyAnchor>() {}, new TypeReference<TpBta>() {}));
          List<Type> results = this.functionReturnDecoder.decode(data, function.getOutputParameters());
          return new Tuple2<PTCVerifyAnchor, TpBta>(
  
                  (PTCVerifyAnchor) results.get(0), 
                  (TpBta) results.get(1)
                  );
      }
  
      public Tuple1<Boolean> getVerifyTpBtaOutput(TransactionReceipt transactionReceipt) {
          String data = transactionReceipt.getOutput();
          final Function function = new Function(FUNC_VERIFYTPBTA, 
                  Arrays.<Type>asList(), 
                  Arrays.<TypeReference<?>>asList(new TypeReference<Bool>() {}));
          List<Type> results = this.functionReturnDecoder.decode(data, function.getOutputParameters());
          return new Tuple1<Boolean>(
  
                  (Boolean) results.get(0).getValue()
                  );
      }
  
      public TransactionReceipt verifyTpProof(TpBta tpBta, ThirdPartyProof tpProof) {
          final Function function = new Function(
                  FUNC_VERIFYTPPROOF, 
                  Arrays.<Type>asList(tpBta, 
                  tpProof), 
                  Collections.<TypeReference<?>>emptyList(), 0);
          return executeTransaction(function);
      }
  
      public Function getMethodVerifyTpProofRawFunction(TpBta tpBta, ThirdPartyProof tpProof) throws
              ContractException {
          final Function function = new Function(FUNC_VERIFYTPPROOF, 
                  Arrays.<Type>asList(tpBta, 
                  tpProof), 
                  Arrays.<TypeReference<?>>asList(new TypeReference<Bool>() {}));
          return function;
      }
  
      public String getSignedTransactionForVerifyTpProof(TpBta tpBta, ThirdPartyProof tpProof) {
          final Function function = new Function(
                  FUNC_VERIFYTPPROOF, 
                  Arrays.<Type>asList(tpBta, 
                  tpProof), 
                  Collections.<TypeReference<?>>emptyList(), 0);
          return createSignedTransaction(function);
      }
  
      public String verifyTpProof(TpBta tpBta, ThirdPartyProof tpProof,
              TransactionCallback callback) {
          final Function function = new Function(
                  FUNC_VERIFYTPPROOF, 
                  Arrays.<Type>asList(tpBta, 
                  tpProof), 
                  Collections.<TypeReference<?>>emptyList(), 0);
          return asyncExecuteTransaction(function, callback);
      }
  
      public Tuple2<TpBta, ThirdPartyProof> getVerifyTpProofInput(
              TransactionReceipt transactionReceipt) {
          String data = transactionReceipt.getInput().substring(10);
          final Function function = new Function(FUNC_VERIFYTPPROOF, 
                  Arrays.<Type>asList(), 
                  Arrays.<TypeReference<?>>asList(new TypeReference<TpBta>() {}, new TypeReference<ThirdPartyProof>() {}));
          List<Type> results = this.functionReturnDecoder.decode(data, function.getOutputParameters());
          return new Tuple2<TpBta, ThirdPartyProof>(
  
                  (TpBta) results.get(0), 
                  (ThirdPartyProof) results.get(1)
                  );
      }
  
      public Tuple1<Boolean> getVerifyTpProofOutput(TransactionReceipt transactionReceipt) {
          String data = transactionReceipt.getOutput();
          final Function function = new Function(FUNC_VERIFYTPPROOF, 
                  Arrays.<Type>asList(), 
                  Arrays.<TypeReference<?>>asList(new TypeReference<Bool>() {}));
          List<Type> results = this.functionReturnDecoder.decode(data, function.getOutputParameters());
          return new Tuple1<Boolean>(
  
                  (Boolean) results.get(0).getValue()
                  );
      }
  
      public static CommitteePtcVerifier load(String contractAddress, Client client,
              CryptoKeyPair credential) {
          return new CommitteePtcVerifier(contractAddress, client, credential);
      }
  
      public static CommitteePtcVerifier deploy(Client client, CryptoKeyPair credential) throws
              ContractException {
          return deploy(CommitteePtcVerifier.class, client, credential, getBinary(client.getCryptoSuite()), getABI(), null, null);
      }
  
      public static class PTCVerifyAnchor extends DynamicStruct {
          public byte[] version;
  
          public byte[] anchor;
  
          public PTCVerifyAnchor(DynamicBytes version, DynamicBytes anchor) {
              super(version,anchor);
              this.version = version.getValue();
              this.anchor = anchor.getValue();
          }
  
          public PTCVerifyAnchor(byte[] version, byte[] anchor) {
              super(new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(version),new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(anchor));
              this.version = version;
              this.anchor = anchor;
          }
      }
  
      public static class ObjectIdentity extends DynamicStruct {
          public BigInteger oidType;
  
          public byte[] rawId;
  
          public ObjectIdentity(Uint8 oidType, DynamicBytes rawId) {
              super(oidType,rawId);
              this.oidType = oidType.getValue();
              this.rawId = rawId.getValue();
          }
  
          public ObjectIdentity(BigInteger oidType, byte[] rawId) {
              super(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint8(oidType),new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(rawId));
              this.oidType = oidType;
              this.rawId = rawId;
          }
      }
  
      public static class CrossChainChannel extends DynamicStruct {
          public String senderDomain;
  
          public String receiverDomain;
  
          public CrossChainChannel(Utf8String senderDomain, Utf8String receiverDomain) {
              super(senderDomain,receiverDomain);
              this.senderDomain = senderDomain.getValue();
              this.receiverDomain = receiverDomain.getValue();
          }
  
          public CrossChainChannel(String senderDomain, String receiverDomain) {
              super(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(senderDomain),new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(receiverDomain));
              this.senderDomain = senderDomain;
              this.receiverDomain = receiverDomain;
          }
      }
  
      public static class ThirdPartyResp extends DynamicStruct {
          public byte[] body;
  
          public ThirdPartyResp(DynamicBytes body) {
              super(body);
              this.body = body.getValue();
          }
  
          public ThirdPartyResp(byte[] body) {
              super(new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(body));
              this.body = body;
          }
      }
  
      public static class PTCCredentialSubject extends DynamicStruct {
          public String version;
  
          public String name;
  
          public BigInteger ptcType;
  
          public ObjectIdentity applicant;
  
          public byte[] subjectInfo;
  
          public PTCCredentialSubject(Utf8String version, Utf8String name, Uint8 ptcType,
                  ObjectIdentity applicant, DynamicBytes subjectInfo) {
              super(version,name,ptcType,applicant,subjectInfo);
              this.version = version.getValue();
              this.name = name.getValue();
              this.ptcType = ptcType.getValue();
              this.applicant = applicant;
              this.subjectInfo = subjectInfo.getValue();
          }
  
          public PTCCredentialSubject(String version, String name, BigInteger ptcType,
                  ObjectIdentity applicant, byte[] subjectInfo) {
              super(new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(version),new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(name),new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint8(ptcType),applicant,new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(subjectInfo));
              this.version = version;
              this.name = name;
              this.ptcType = ptcType;
              this.applicant = applicant;
              this.subjectInfo = subjectInfo;
          }
      }
  
      public static class CrossChainLane extends DynamicStruct {
          public CrossChainChannel channel;
  
          public byte[] senderId;
  
          public byte[] receiverId;
  
          public CrossChainLane(CrossChainChannel channel, Bytes32 senderId, Bytes32 receiverId) {
              super(channel,senderId,receiverId);
              this.channel = channel;
              this.senderId = senderId.getValue();
              this.receiverId = receiverId.getValue();
          }
  
          public CrossChainLane(CrossChainChannel channel, byte[] senderId, byte[] receiverId) {
              super(channel,new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(senderId),new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Bytes32(receiverId));
              this.channel = channel;
              this.senderId = senderId;
              this.receiverId = receiverId;
          }
      }
  
      public static class TpBta extends DynamicStruct {
          public BigInteger version;
  
          public BigInteger tpbtaVersion;
  
          public byte[] ptcVerifyAnchorVersion;
  
          public PTCCredentialSubject signerPtcCredentialSubject;
  
          public CrossChainLane crossChainLane;
  
          public BigInteger btaSubjectVersion;
  
          public String ucpMessageHashAlgo;
  
          public byte[] endorseRoot;
  
          public byte[] endorseProof;
  
          public TpBta(Uint32 version, Uint32 tpbtaVersion, DynamicBytes ptcVerifyAnchorVersion,
                  PTCCredentialSubject signerPtcCredentialSubject, CrossChainLane crossChainLane,
                  Uint32 btaSubjectVersion, Utf8String ucpMessageHashAlgo, DynamicBytes endorseRoot,
                  DynamicBytes endorseProof) {
              super(version,tpbtaVersion,ptcVerifyAnchorVersion,signerPtcCredentialSubject,crossChainLane,btaSubjectVersion,ucpMessageHashAlgo,endorseRoot,endorseProof);
              this.version = version.getValue();
              this.tpbtaVersion = tpbtaVersion.getValue();
              this.ptcVerifyAnchorVersion = ptcVerifyAnchorVersion.getValue();
              this.signerPtcCredentialSubject = signerPtcCredentialSubject;
              this.crossChainLane = crossChainLane;
              this.btaSubjectVersion = btaSubjectVersion.getValue();
              this.ucpMessageHashAlgo = ucpMessageHashAlgo.getValue();
              this.endorseRoot = endorseRoot.getValue();
              this.endorseProof = endorseProof.getValue();
          }
  
          public TpBta(BigInteger version, BigInteger tpbtaVersion, byte[] ptcVerifyAnchorVersion,
                  PTCCredentialSubject signerPtcCredentialSubject, CrossChainLane crossChainLane,
                  BigInteger btaSubjectVersion, String ucpMessageHashAlgo, byte[] endorseRoot,
                  byte[] endorseProof) {
              super(new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(version),new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(tpbtaVersion),new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(ptcVerifyAnchorVersion),signerPtcCredentialSubject,crossChainLane,new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(btaSubjectVersion),new org.fisco.bcos.sdk.v3.codec.datatypes.Utf8String(ucpMessageHashAlgo),new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(endorseRoot),new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(endorseProof));
              this.version = version;
              this.tpbtaVersion = tpbtaVersion;
              this.ptcVerifyAnchorVersion = ptcVerifyAnchorVersion;
              this.signerPtcCredentialSubject = signerPtcCredentialSubject;
              this.crossChainLane = crossChainLane;
              this.btaSubjectVersion = btaSubjectVersion;
              this.ucpMessageHashAlgo = ucpMessageHashAlgo;
              this.endorseRoot = endorseRoot;
              this.endorseProof = endorseProof;
          }
      }
  
      public static class ThirdPartyProof extends DynamicStruct {
          public ThirdPartyResp resp;
  
          public CrossChainLane tpbtaCrossChainLane;
  
          public BigInteger tpbtaVersion;
  
          public byte[] rawProof;
  
          public ThirdPartyProof(ThirdPartyResp resp, CrossChainLane tpbtaCrossChainLane,
                  Uint32 tpbtaVersion, DynamicBytes rawProof) {
              super(resp,tpbtaCrossChainLane,tpbtaVersion,rawProof);
              this.resp = resp;
              this.tpbtaCrossChainLane = tpbtaCrossChainLane;
              this.tpbtaVersion = tpbtaVersion.getValue();
              this.rawProof = rawProof.getValue();
          }
  
          public ThirdPartyProof(ThirdPartyResp resp, CrossChainLane tpbtaCrossChainLane,
                  BigInteger tpbtaVersion, byte[] rawProof) {
              super(resp,tpbtaCrossChainLane,new org.fisco.bcos.sdk.v3.codec.datatypes.generated.Uint32(tpbtaVersion),new org.fisco.bcos.sdk.v3.codec.datatypes.DynamicBytes(rawProof));
              this.resp = resp;
              this.tpbtaCrossChainLane = tpbtaCrossChainLane;
              this.tpbtaVersion = tpbtaVersion;
              this.rawProof = rawProof;
          }
      }
  }
  