0 txs
456 calls
constructor
No constructor.
functions
getBlueprintHash
viewfunction getBlueprintHash(tuple blueprint) view returns (bytes32)
getBlueprintNonce
viewfunction getBlueprintNonce(bytes32 blueprintHash) view returns (uint256)
getCounter
viewfunction getCounter(address account, bytes32 counterId) view returns (uint256 count)
getCurrentBlueprintHash
viewfunction getCurrentBlueprintHash() view returns (bytes32)
getPublisherCounter
viewfunction getPublisherCounter(bytes32 counterId) view returns (uint256 count)
getTractorVersion
viewfunction getTractorVersion() view returns (string)
operator
viewfunction operator() view returns (address)
tractorUser
viewfunction tractorUser() view returns (address)
cancelBlueprint
nonpayablefunction cancelBlueprint(tuple requisition)
publishRequisition
nonpayablefunction publishRequisition(tuple requisition)
sendTokenToInternalBalance
payablefunction sendTokenToInternalBalance(address token, address recipient, uint256 amount) payable
tractor
payablefunction tractor(tuple requisition, bytes operatorData) payable returns (bytes[] results)
updatePublisherCounter
nonpayablefunction updatePublisherCounter(bytes32 counterId, uint8 updateType, uint256 amount) returns (uint256 count)
updateTractorVersion
nonpayablefunction updateTractorVersion(string version)
events
CancelBlueprint
event CancelBlueprint(bytes32 indexed blueprintHash)
InternalBalanceChanged
event InternalBalanceChanged(address indexed account, address indexed token, int256 delta)
PublishRequisition
event PublishRequisition(((address publisher, bytes data, bytes32[] operatorPasteInstrs, uint256 maxNonce, uint256 startTime, uint256 endTime) blueprint, bytes32 blueprintHash, bytes signature) requisition)
TokenTransferred
event TokenTransferred(address indexed token, address indexed sender, address indexed recipient, uint256 amount, uint8 fromMode, uint8 toMode)
Tractor
event Tractor(address indexed operator, address indexed publisher, bytes32 indexed blueprintHash, uint256 nonce, uint256 gasleft)
TractorExecutionBegan
event TractorExecutionBegan(address indexed operator, address indexed publisher, bytes32 indexed blueprintHash, uint256 nonce, uint256 gasleft)
TractorVersionSet
event TractorVersionSet(string version)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
FailedInnerCall
error FailedInnerCall()
SafeCastOverflowedUintToInt
error SafeCastOverflowedUintToInt(uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x6080604052348015600f57600080fd5b50614e988061001f6000396000f3fe6080604052600436106100bd5760003560e01c80635993514b1161006f5780635993514b146101a55780635ebc32e6146101c557806391a45154146101e5578063ca1e71ae14610205578063cc8a429d14610218578063df8d26bb14610238578063fe414fc81461025857600080fd5b806304cb49dc146100c25780632be32f6a146100e4578063454972dd1461010c578063507cea251461012e578063563957a814610150578063570ca735146101705780635723cc6014610185575b600080fd5b3480156100ce57600080fd5b506100e26100dd366004613ea5565b610278565b005b3480156100f057600080fd5b506100f9610537565b6040519081526020015b60405180910390f35b34801561011857600080fd5b50610121610546565b6040516101039190613f66565b34801561013a57600080fd5b506101436105e1565b6040516101039190613f79565b34801561015c57600080fd5b506100e261016b366004613f9f565b6105eb565b34801561017c57600080fd5b50610143610ae0565b34801561019157600080fd5b506100f96101a0366004613fd3565b610aea565b3480156101b157600080fd5b506100f96101c0366004614022565b610afb565b3480156101d157600080fd5b506100f96101e036600461404e565b610b32565b3480156101f157600080fd5b506100f961020036600461404e565b610b3d565b6100e2610213366004614067565b610b86565b34801561022457600080fd5b506100e2610233366004613f9f565b610e7f565b34801561024457600080fd5b506100f96102533660046140a8565b6112e9565b61026b610266366004614168565b61160e565b604051610103919061420e565b60c4546000610285611d93565b9050600061029282611ec7565b905060008060010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa1580156102e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103069190614272565b600354909150600119016103355760405162461bcd60e51b815260040161032c9061428b565b60405180910390fd5b6002600355610342611fcb565b61038186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061205492505050565b6001600381905554604080516318160ddd60e01b8152905183926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156103cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f39190614272565b146104105760405162461bcd60e51b815260040161032c906142c2565b50600061041c83611ec7565b905083600060c4015410156104435760405162461bcd60e51b815260040161032c906142ef565b60005b83518110156104a85781818151811061046157610461614326565b602002602001015183828151811061047b5761047b614326565b6020026020010151146104a05760405162461bcd60e51b815260040161032c9061433c565b600101610446565b505050505060006104b7611d93565b90506000806104c5836120a6565b9150915060005b835181101561052f578281815181106104e7576104e7614326565b602002602001015182828151811061050157610501614326565b602002602001015110156105275760405162461bcd60e51b815260040161032c90614380565b6001016104cc565b505050505050565b60006105416124b8565b905090565b60606105506124cb565b600301805461055e906143b7565b80601f016020809104026020016040519081016040528092919081815260200182805461058a906143b7565b80156105d75780601f106105ac576101008083540402835291602001916105d7565b820191906000526020600020905b8154815290600101906020018083116105ba57829003601f168201915b5050505050905090565b60006105416124ef565b60c45460006105f8611d93565b9050600061060582611ec7565b905060008060010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015610655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106799190614272565b905084600061069061068b83806143eb565b612512565b9050816020013581146106b55760405162461bcd60e51b815260040161032c9061440b565b60006106c183806143eb565b6106cf906020810190614442565b6001600160a01b03163b11156107b05760006106eb83806143eb565b6106f9906020810190614442565b6001600160a01b0316631626ba7e6020850135610719604087018761445f565b6040518463ffffffff1660e01b8152600401610737939291906144d5565b602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077891906144f8565b90506001600160e01b03198116630b135d3f60e11b146107aa5760405162461bcd60e51b815260040161032c90614522565b5061084d565b600061080160208401356107c7604086018661445f565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061261392505050565b905061080d83806143eb565b61081b906020810190614442565b6001600160a01b0316816001600160a01b03161461084b5760405162461bcd60e51b815260040161032c90614559565b505b600354600119016108705760405162461bcd60e51b815260040161032c9061428b565b600260035561087f87806143eb565b61088d906020810190614442565b6001600160a01b0316336001600160a01b0316146108ed5760405162461bcd60e51b815260206004820152601b60248201527f54726163746f7246616365743a206e6f74207075626c69736865720000000000604482015260640161032c565b6108fa876020013561263d565b6040516020880135907fc8f50fb0aa40a998e7d9e2a16962a065dac0fc6d4bd03ba2c4b278ad74cf725b90600090a250506001600381905554604080516318160ddd60e01b8152905183926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099d9190614272565b146109ba5760405162461bcd60e51b815260040161032c906142c2565b5060006109c683611ec7565b905083600060c4015410156109ed5760405162461bcd60e51b815260040161032c906142ef565b60005b8351811015610a5257818181518110610a0b57610a0b614326565b6020026020010151838281518110610a2557610a25614326565b602002602001015114610a4a5760405162461bcd60e51b815260040161032c9061433c565b6001016109f0565b50505050506000610a61611d93565b9050600080610a6f836120a6565b9150915060005b8351811015610ad957828181518110610a9157610a91614326565b6020026020010151828281518110610aab57610aab614326565b60200260200101511015610ad15760405162461bcd60e51b815260040161032c90614380565b600101610a76565b5050505050565b6000610541612658565b6000610af582612512565b92915050565b6000610b056124cb565b6001600160a01b039390931660009081526001909301602090815260408085209385529290525090205490565b6000610af582612674565b6000610b476124cb565b6001016000610b546124cb565b600201546001600160a01b03168152602080820192909252604090810160009081209481529390915290912054919050565b600154604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf49190614272565b60c4549091506000610c04611d93565b90506000610c1182611ec7565b60035490915060011901610c375760405162461bcd60e51b815260040161032c9061428b565b6002600355610c4c873388886000600161268f565b5060016003556000610c5d83611ec7565b905083600060c401541015610cb45760405162461bcd60e51b815260206004820152601e60248201527f494e563a206e6f4f7574466c6f77205374616c6b206465637265617365640000604482015260640161032c565b60005b8351811015610d5957818181518110610cd257610cd2614326565b6020026020010151838281518110610cec57610cec614326565b60200260200101511115610d515760405162461bcd60e51b815260206004820152602660248201527f494e563a206e6f4f7574466c6f7720546f6b656e2062616c616e6365206465636044820152651c99585cd95960d21b606482015260840161032c565b600101610cb7565b505050505080610d67600090565b60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015610db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd69190614272565b14610df35760405162461bcd60e51b815260040161032c906142c2565b506000610dfe611d93565b9050600080610e0c836120a6565b9150915060005b8351811015610e7657828181518110610e2e57610e2e614326565b6020026020010151828281518110610e4857610e48614326565b60200260200101511015610e6e5760405162461bcd60e51b815260040161032c90614380565b600101610e13565b50505050505050565b60c4546000610e8c611d93565b90506000610e9982611ec7565b905060008060010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d9190614272565b9050846000610f1f61068b83806143eb565b905081602001358114610f445760405162461bcd60e51b815260040161032c9061440b565b6000610f5083806143eb565b610f5e906020810190614442565b6001600160a01b03163b111561103f576000610f7a83806143eb565b610f88906020810190614442565b6001600160a01b0316631626ba7e6020850135610fa8604087018761445f565b6040518463ffffffff1660e01b8152600401610fc6939291906144d5565b602060405180830381865afa158015610fe3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100791906144f8565b90506001600160e01b03198116630b135d3f60e11b146110395760405162461bcd60e51b815260040161032c90614522565b506110a2565b600061105660208401356107c7604086018661445f565b905061106283806143eb565b611070906020810190614442565b6001600160a01b0316816001600160a01b0316146110a05760405162461bcd60e51b815260040161032c90614559565b505b600354600119016110c55760405162461bcd60e51b815260040161032c9061428b565b60026003556110d487806143eb565b606001356110e58860200135612674565b106111025760405162461bcd60e51b815260040161032c90614590565b7f4376f5f9f462e92b26f2199cc2c7311bb255a02bac9a7efaa366a034a5c53bf187604051611131919061463e565b60405180910390a150506001600381905554604080516318160ddd60e01b8152905183926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ad9190614272565b146111ca5760405162461bcd60e51b815260040161032c906142c2565b5060006111d683611ec7565b905083600060c4015410156111fd5760405162461bcd60e51b815260040161032c906142ef565b60005b83518110156112625781818151811061121b5761121b614326565b602002602001015183828151811061123557611235614326565b60200260200101511461125a5760405162461bcd60e51b815260040161032c9061433c565b600101611200565b50505050506000611271611d93565b905060008061127f836120a6565b9150915060005b8351811015610ad9578281815181106112a1576112a1614326565b60200260200101518282815181106112bb576112bb614326565b602002602001015110156112e15760405162461bcd60e51b815260040161032c90614380565b600101611286565b60c454600090816112f8611d93565b9050600061130582611ec7565b905060008060010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113799190614272565b6003549091506001190161139f5760405162461bcd60e51b815260040161032c9061428b565b60026003556000808860018111156113b9576113b9614750565b036113d8576113d1876113cb8b610b3d565b90612847565b9050611407565b60018860018111156113ec576113ec614750565b0361140757611404876113fe8b610b3d565b9061285a565b90505b806114106124cb565b600101600061141d6124cb565b600201546001600160a01b03168152602080820192909252604090810160009081208d82529092529020559450600160035580611458600090565b60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa1580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c79190614272565b146114e45760405162461bcd60e51b815260040161032c906142c2565b5060006114f083611ec7565b905083600060c4015410156115175760405162461bcd60e51b815260040161032c906142ef565b60005b835181101561157c5781818151811061153557611535614326565b602002602001015183828151811061154f5761154f614326565b6020026020010151146115745760405162461bcd60e51b815260040161032c9061433c565b60010161151a565b5050505050600061158b611d93565b9050600080611599836120a6565b9150915060005b8351811015611603578281815181106115bb576115bb614326565b60200260200101518282815181106115d5576115d5614326565b602002602001015110156115fb5760405162461bcd60e51b815260040161032c90614380565b6001016115a0565b505050509392505050565b600454606090600119016116705760405162461bcd60e51b8152602060048201526024808201527f5265656e7472616e637947756172643a207265656e7472616e74206661726d2060448201526318d85b1b60e21b606482015260840161032c565b600354600119016116935760405162461bcd60e51b815260040161032c9061428b565b600260048190556003558260006116ad61068b83806143eb565b9050816020013581146116d25760405162461bcd60e51b815260040161032c9061440b565b60006116de83806143eb565b6116ec906020810190614442565b6001600160a01b03163b11156117cd57600061170883806143eb565b611716906020810190614442565b6001600160a01b0316631626ba7e6020850135611736604087018761445f565b6040518463ffffffff1660e01b8152600401611754939291906144d5565b602060405180830381865afa158015611771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179591906144f8565b90506001600160e01b03198116630b135d3f60e11b146117c75760405162461bcd60e51b815260040161032c90614522565b50611830565b60006117e460208401356107c7604086018661445f565b90506117f083806143eb565b6117fe906020810190614442565b6001600160a01b0316816001600160a01b03161461182e5760405162461bcd60e51b815260040161032c90614559565b505b8460006118408260200135612674565b905061184c82806143eb565b60600135811061186e5760405162461bcd60e51b815260040161032c90614590565b4261187983806143eb565b6080013511158015611898575061189082806143eb565b60a001354211155b6118f25760405162461bcd60e51b815260206004820152602560248201527f54726163746f7246616365743a20626c75657072696e74206973206e6f742061604482015264637469766560d81b606482015260840161032c565b602082013561190183806143eb565b61190f906020810190614442565b6001600160a01b0316337fec6826ad3e6d9c7a0e858c00562eade7c9772b8958ca60fbc54685dca9ab973b845a6040805192835260208301919091520160405180910390a46119618260200135612866565b61198161196e83806143eb565b61197c906020810190614442565b612891565b600061198d88806143eb565b61199b90602081019061445f565b9050116119e05760405162461bcd60e51b815260206004820152601360248201527254726163746f723a206461746120656d70747960681b604482015260640161032c565b6119ed876020013561292b565b6119f63361293b565b6000611a50611a0589806143eb565b611a1390602081019061445f565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060049250612968915050565b806020019051810190611a6391906147d9565b905060005b611a7289806143eb565b611a809060408101906148e4565b9050811015611b6a576000611a958a806143eb565b611aa39060408101906148e4565b83818110611ab357611ab3614326565b9050602002013590506000611ad4826001600160501b0360509190911c1690565b9050806001600160501b0316845111611b2f5760405162461bcd60e51b815260206004820152601b60248201527f54726163746f723a20706173746543616c6c496e646578204f4f420000000000604482015260640161032c565b611b60828b86846001600160501b031681518110611b4f57611b4f614326565b602002602001015160000151612a2d565b5050600101611a68565b5080516001600160401b03811115611b8457611b846140d3565b604051908082528060200260200182016040528015611bb757816020015b6060815260200190600190039081611ba25790505b50955060005b8151811015611c7c57818181518110611bd857611bd8614326565b60200260200101516000015151600003611c345760405162461bcd60e51b815260206004820152601f60248201527f54726163746f723a20656d70747920416476616e6365644661726d43616c6c00604482015260640161032c565b611c57828281518110611c4957611c49614326565b602002602001015188612b16565b878281518110611c6957611c69614326565b6020908102919091010152600101611bbd565b50611c85612ba6565b611c8d612bb6565b50611c96612be3565b6020820135611ca583806143eb565b611cb3906020810190614442565b6001600160a01b0316337f2a59671df0213f367a602d98450174900bf8fd2cf1feb73395b9d464e6d28474845a6040805192835260208301919091520160405180910390a45050600160048190556003555060009050611d11611d93565b9050600080611d1f836120a6565b9150915060005b8351811015611d8957828181518110611d4157611d41614326565b6020026020010151828281518110611d5b57611d5b614326565b60200260200101511015611d815760405162461bcd60e51b815260040161032c90614380565b600101611d26565b5050505092915050565b60606000611d9f612bed565b90506000611dab612cf2565b9050600081518351611dbd9190614943565b9050806001600160401b03811115611dd757611dd76140d3565b604051908082528060200260200182016040528015611e00578160200160208202803683370190505b50935060005b8351811015611e5b57838181518110611e2157611e21614326565b6020026020010151858281518110611e3b57611e3b614326565b6001600160a01b0390921660209283029190910190910152600101611e06565b5060005b8251811015611ec057828181518110611e7a57611e7a614326565b602002602001015185828651611e909190614943565b81518110611ea057611ea0614326565b6001600160a01b0390921660209283029190910190910152600101611e5f565b5050505090565b606081516001600160401b03811115611ee257611ee26140d3565b604051908082528060200260200182016040528015611f0b578160200160208202803683370190505b50905060005b8251811015611fc557828181518110611f2c57611f2c614326565b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611f5f9190613f79565b602060405180830381865afa158015611f7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa09190614272565b828281518110611fb257611fb2614326565b6020908102919091010152600101611f11565b50919050565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c600401546001600160a01b031633146120525760405162461bcd60e51b815260206004820152602260248201527f4c69624469616d6f6e643a204d75737420626520636f6e7472616374206f776e60448201526132b960f11b606482015260840161032c565b565b8061205d6124cb565b6003019061206b908261499e565b507ff971fd59bb19eeced60eb31fd11f75cb65846e5e5e576b063a072676a1759d2c8160405161209b9190613f66565b60405180910390a150565b606080600083516001600160401b038111156120c4576120c46140d3565b6040519080825280602002602001820160405280156120ed578160200160208202803683370190505b50925083516001600160401b03811115612109576121096140d3565b604051908082528060200260200182016040528015612132578160200160208202803683370190505b50915060005b84518110156124b15781600101601b01600086838151811061215c5761215c614326565b6020908102919091018101516001600160a01b031682528101919091526040016000908120549060ca8401906001815260200190815260200160002060008784815181106121ac576121ac614326565b6020908102919091018101516001600160a01b031682528101919091526040016000908120546001600160801b03169060ca850190808152602001908152602001600020600088858151811061220457612204614326565b6020908102919091018101516001600160a01b0316825281019190915260400160009081205488516001600160801b039091169160c78701918a908790811061224f5761224f614326565b6020908102919091018101516001600160a01b031682528101919091526040016000205461228691906001600160801b0316614a5d565b6122909190614a5d565b6001600160801b03166122a39190614943565b8482815181106122b5576122b5614326565b6020908102919091010152600182015485516001600160a01b03909116908690839081106122e5576122e5614326565b60200260200101516001600160a01b03160361239357816001016008015484828151811061231557612315614326565b602002602001018181516123299190614943565b90525060005b6008830154811015612391576000818152602080850190526040902060018101546002909101546123609190614a7d565b85838151811061237257612372614326565b602002602001018181516123869190614943565b90525060010161232f565b505b816001016101010160000160008683815181106123b2576123b2614326565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548482815181106123ed576123ed614326565b602002602001018181516124019190614943565b905250845185908290811061241857612418614326565b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161244b9190613f79565b602060405180830381865afa158015612468573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248c9190614272565b83828151811061249e5761249e614326565b6020908102919091010152600101612138565b5050915091565b60006124c26124cb565b60040154905090565b7f7efbaaac9214ca1879e26b4df38e29a72561affb741bba775ce66d5bb6a82a0790565b60006124f9612d60565b905060016001600160a01b0382161161250f5750335b90565b6000610af56040518060a0016040528060788152602001614d996078913980516020918201209061254590850185614442565b612552602086018661445f565b604051612560929190614a90565b604051809103902085806040019061257891906148e4565b604051602001612589929190614aa0565b60405160208183030381529060405280519060200120866060013587608001358860a001356040516020016125f897969594939291909687526001600160a01b0395909516602087015260408601939093526060850191909152608084015260a083015260c082015260e00190565b60405160208183030381529060405280519060200120612d7c565b6000806000806126238686612dc3565b9250925092506126338282612e10565b5090949350505050565b6000196126486124cb565b6000928352602052604090912055565b60006126626124cb565b600501546001600160a01b0316919050565b600061267e6124cb565b600092835260205250604090205490565b6000808360038111156126a4576126a4614750565b1480156126c2575060008260018111156126c0576126c0614750565b145b156127c7576040516370a0823160e01b81526000906001600160a01b038916906370a08231906126f6908990600401613f79565b602060405180830381865afa158015612713573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127379190614272565b905061274e6001600160a01b038916888888612ecd565b6127bf81896001600160a01b03166370a08231896040518263ffffffff1660e01b815260040161277e9190613f79565b602060405180830381865afa15801561279b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fe9190614272565b91505061283d565b6127d387858886612f3a565b93506127e187858785613085565b846001600160a01b0316866001600160a01b0316886001600160a01b03167ff17dedb192dec928d65fe29571baf7bb2940578a1f9070ee29a836bf1a07283287878760405161283293929190614ac9565b60405180910390a450825b9695505050505050565b60006128538284614943565b9392505050565b60006128538284614a7d565b61286e6124cb565b60008281526020919091526040812080549161288983614b04565b919050555050565b600061289b6124cb565b600281015490915060016001600160a01b0390911611156129085760405162461bcd60e51b815260206004820152602160248201527f4c696254726163746f723a207075626c697368657220616c72656164792073656044820152601d60fa1b606482015260840161032c565b60020180546001600160a01b0319166001600160a01b0392909216919091179055565b806129346124cb565b6004015550565b806129446124cb565b60050180546001600160a01b0319166001600160a01b039290921691909117905550565b606060008284516129799190614a7d565b90506000816001600160401b03811115612995576129956140d3565b6040519080825280601f01601f1916602001820160405280156129bf576020820181803683370190505b50905060005b82811015612a2457856129d88287614943565b815181106129e8576129e8614326565b602001015160f81c60f81b828281518110612a0557612a05614326565b60200101906001600160f81b031916908160001a9053506001016129c5565b50949350505050565b6001600160501b0360a084901c811690841669fffffffffffffffffffe198201612a8c57612a596124cb565b60020154604080516001600160a01b03909216602083015201604051602081830303815290604052935060209150612ad7565b612a9e60016001600160501b03614b1d565b6001600160501b0316826001600160501b031603612ad75760408051336020820152016040516020818303038152906040529350602091505b612aea826001600160501b0316856130c8565b612afd816001600160501b03168461317e565b6001600160501b03808316850151908216840152610ad9565b60606000836020015151600014612b52578360200151600081518110612b3e57612b3e614326565b01602001516001600160f81b031916612b55565b60005b90506001600160f81b03198116600003612b7b578351612b7490613236565b9150612b9f565b6000612b90856000015186602001518661326c565b9050612b9b81613236565b9250505b5092915050565b6001612bb06124cb565b60040155565b6001612bc06124cb565b60050180546001600160a01b0319166001600160a01b0392909216919091179055565b60016129086124cb565b60c95460609060009081816001600160401b03811115612c0f57612c0f6140d3565b604051908082528060200260200182016040528015612c38578160200160208202803683370190505b50935060005b82811015612ce85760c98401805482908110612c5c57612c5c614326565b600091825260209091200154600160a01b900460ff1615612ce05760c98401805482908110612c8d57612c8d614326565b6000918252602090912001546001600160a01b03168583612cad81614b04565b945081518110612cbf57612cbf614326565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101612c3e565b5080845250505090565b60606000612cfe61333b565b905060005b8151811015611fc557612d2e828281518110612d2157612d21614326565b6020026020010151613436565b828281518110612d4057612d40614326565b6001600160a01b0390921660209283029190910190910152600101612d03565b6000612d6a6124cb565b600201546001600160a01b0316919050565b6000612d866134cb565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050919050565b60008060008351604103612dfd5760208401516040850151606086015160001a612def88828585613590565b955095509550505050612e09565b50508151600091506002905b9250925092565b6000826003811115612e2457612e24614750565b03612e2d575050565b6001826003811115612e4157612e41614750565b03612e5f5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612e7357612e73614750565b03612e945760405163fce698f760e01b81526004810182905260240161032c565b6003826003811115612ea857612ea8614750565b03612ec9576040516335e2f38360e21b81526004810182905260240161032c565b5050565b6040516001600160a01b038481166024830152838116604483015260648201839052612f349186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613655565b50505050565b600083600003612f4c5750600061307d565b6000826003811115612f6057612f60614750565b14612fac57612f868386866001866003811115612f7f57612f7f614750565b14156136b4565b905080841480612fa757506003826003811115612fa557612fa5614750565b145b61307d575b6040516370a0823160e01b81526000906001600160a01b038716906370a0823190612fdb903090600401613f79565b602060405180830381865afa158015612ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301c9190614272565b905061303f843061302d8589614a7d565b6001600160a01b038a16929190612ecd565b61307961307282886001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161277e9190613f79565b8390612847565b9150505b949350505050565b8215612f3457600181600181111561309f5761309f614750565b036130b4576130af82858561376b565b612f34565b612f346001600160a01b0385168385613796565b60208210156131235760405162461bcd60e51b815260206004820152602160248201527f4c696242797465733a20636f707942797465496e64657820746f6f20736d616c6044820152601b60fa1b606482015260840161032c565b8051821115612ec95760405162461bcd60e51b815260206004820152602160248201527f4c696242797465733a20636f707942797465496e64657820746f6f206c6172676044820152606560f81b606482015260840161032c565b60208210156131da5760405162461bcd60e51b815260206004820152602260248201527f4c696242797465733a20706173746542797465496e64657820746f6f20736d616044820152611b1b60f21b606482015260840161032c565b8051821115612ec95760405162461bcd60e51b815260206004820152602260248201527f4c696242797465733a20706173746542797465496e64657820746f6f206c6172604482015261676560f01b606482015260840161032c565b602081015160609060008061324a836137c7565b9050613256818661385a565b945091506132648285613922565b505050919050565b606060008061327a85613969565b91935090915050600160f81b6001600160f81b0319831614806132aa5750600160f91b6001600160f81b03198316145b6132f65760405162461bcd60e51b815260206004820152601d60248201527f436c6970626f6172643a2054797065206e6f7420737570706f72746564000000604482015260640161032c565b85925060005b81518110156133315761332982828151811061331a5761331a614326565b60200260200101518686613a78565b6001016132fc565b5050509392505050565b60c95460609060009081816001600160401b0381111561335d5761335d6140d3565b604051908082528060200260200182016040528015613386578160200160208202803683370190505b50935060005b82811015612ce85760c984018054829081106133aa576133aa614326565b600091825260209091200154600160b81b900460ff161561342e5760c984018054829081106133db576133db614326565b6000918252602090912001546001600160a01b031685836133fb81614b04565b94508151811061340d5761340d614326565b60200260200101906001600160a01b031690816001600160a01b0316815250505b60010161338c565b600080826001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015613477573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261349f9190810190614b3d565b9050806134ab82613ad5565b815181106134bb576134bb614326565b6020026020010151915050919050565b6000604051806080016040528060528152602001614e116052913980516020918201206040805180820190915260078152662a3930b1ba37b960c91b9201919091527f81c9350df56df21f753a346355759c2d2795e66332fa4a6e4f330e4e4924cd076135366124cb565b6003016040516135469190614bd6565b60408051918290038220602083019490945281019190915260608101919091524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600080806fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411156135c1575060009150600390508261364b565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613615573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166136415750600092506001915082905061364b565b9250600091508190505b9450945094915050565b600061366a6001600160a01b03841683613b67565b9050805160001415801561368f57508080602001905181019061368d9190614c4c565b155b156136af5782604051635274afe760e01b815260040161032c9190613f79565b505050565b6000806136c18686613b75565b905082806136cf5750838110155b61372a5760405162461bcd60e51b815260206004820152602660248201527f42616c616e63653a20496e73756666696369656e7420696e7465726e616c2062604482015265616c616e636560d01b606482015260840161032c565b6137348185613ba2565b915060006137428383614a7d565b905061376187878361375387613bb8565b61375c90614c6e565b613be9565b5050949350505050565b60006137778484613b75565b905060006137858284612847565b9050610ad985858361375c87613bb8565b6040516001600160a01b038381166024830152604482018390526136af91859182169063a9059cbb90606401612f02565b6001600160e01b0319811660009081527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c60208190526040909120546001600160a01b03169081611fc55760405162461bcd60e51b815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f74206578697374604482015260640161032c565b60045460009060609082906002146138ac5760405162461bcd60e51b8152602060048201526015602482015274155b9c1c9bdd1958dd19590819985c9b4818d85b1b605a1b604482015260640161032c565b600160038201556040516001600160a01b038616906138cc908690614c8a565b600060405180830381855af49150503d8060008114613907576040519150601f19603f3d011682016040523d82523d6000602084013e61390c565b606091505b5060026003909301929092559590945092505050565b81612ec95760448151101561393657600080fd5b600481019050808060200190518101906139509190614c9c565b60405162461bcd60e51b815260040161032c9190613f66565b60008060608360008151811061398157613981614326565b01602001516001600160f81b0319169250600160f81b8390036139f6576040805160018082528183019092529060208083019080368337019050509050838060200190518101906139d29190614272565b816000815181106139e5576139e5614326565b602002602001018181525050613a23565b6001600160f81b03198316600160f91b03613a235783806020019051810190613a1f9190614ce4565b9150505b600084600181518110613a3857613a38614326565b01602001516001600160f81b0319169050600160f81b819003613a7057613a6d60208651613a669190614a7d565b8690613ceb565b92505b509193909250565b81516001600160501b0360a085901c811691605086901c821691861690600090869085908110613aaa57613aaa614326565b60200260200101519050613abe83826130c8565b613ac8828661317e565b8281015182860152610e76565b6000805b8251821015613b2757828281518110613af457613af4614326565b602090810291909101015160018201546001600160a01b03908116911614613b1c5750919050565b816001019150613ad9565b60405162461bcd60e51b81526020600482015260156024820152742737b716a132b0b7103737ba1034b7102bb2b6361760591b604482015260640161032c565b606061285383836000613d98565b6001600160a01b03918216600090815260208181526040808320939094168252601b909201909152205490565b6000818310613bb15781612853565b5090919050565b60006001600160ff1b03821115613be55760405163123baf0360e11b81526004810183905260240161032c565b5090565b600080821215613c4257613c20613bff83614c6e565b6001600160a01b0386166000908152601c840160205260409020549061285a565b6001600160a01b0385166000908152601c830160205260409020819055613c85565b6001600160a01b0384166000908152601c82016020526040902054613c679083612847565b6001600160a01b0385166000908152601c8301602052604090208190555b506001600160a01b03858116600081815260208481526040808320948916808452601b90950182529182902087905590518581527f18e1ea4139e68413d7d08aa752e71568e36b2c5bf940893314c2c5b01eaa0c42910160405180910390a35050505050565b600081613cf9816020614943565b1015613d3c5760405162461bcd60e51b8152602060048201526012602482015271746f55696e743235365f6f766572666c6f7760701b604482015260640161032c565b613d47826020614943565b83511015613d8f5760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b604482015260640161032c565b50016020015190565b606081471015613dbd573060405163cd78605960e01b815260040161032c9190613f79565b600080856001600160a01b03168486604051613dd99190614c8a565b60006040518083038185875af1925050503d8060008114613e16576040519150601f19603f3d011682016040523d82523d6000602084013e613e1b565b606091505b509150915061283d868383606082613e3b57613e3682613e79565b612853565b8151158015613e5257506001600160a01b0384163b155b15613e725783604051639996b31560e01b815260040161032c9190613f79565b5080612853565b805115613e895780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b60008060208385031215613eb857600080fd5b82356001600160401b0380821115613ecf57600080fd5b818501915085601f830112613ee357600080fd5b813581811115613ef257600080fd5b866020828501011115613f0457600080fd5b60209290920196919550909350505050565b60005b83811015613f31578181015183820152602001613f19565b50506000910152565b60008151808452613f52816020860160208601613f16565b601f01601f19169290920160200192915050565b6020815260006128536020830184613f3a565b6001600160a01b0391909116815260200190565b600060608284031215611fc557600080fd5b600060208284031215613fb157600080fd5b81356001600160401b03811115613fc757600080fd5b61307d84828501613f8d565b600060208284031215613fe557600080fd5b81356001600160401b03811115613ffb57600080fd5b820160c0818503121561285357600080fd5b6001600160a01b0381168114613ea257600080fd5b6000806040838503121561403557600080fd5b82356140408161400d565b946020939093013593505050565b60006020828403121561406057600080fd5b5035919050565b60008060006060848603121561407c57600080fd5b83356140878161400d565b925060208401356140978161400d565b929592945050506040919091013590565b6000806000606084860312156140bd57600080fd5b8335925060208401356002811061409757600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561410b5761410b6140d3565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614139576141396140d3565b604052919050565b60006001600160401b0382111561415a5761415a6140d3565b50601f01601f191660200190565b6000806040838503121561417b57600080fd5b82356001600160401b038082111561419257600080fd5b61419e86838701613f8d565b935060208501359150808211156141b457600080fd5b508301601f810185136141c657600080fd5b80356141d96141d482614141565b614111565b8181528660208385010111156141ee57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561426557603f19888603018452614253858351613f3a565b94509285019290850190600101614237565b5092979650505050505050565b60006020828403121561428457600080fd5b5051919050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252601390820152721253958e8814dd5c1c1b1e4818da185b99d959606a1b604082015260600190565b6020808252601e908201527f494e563a206e6f4e6574466c6f77205374616c6b206465637265617365640000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526024908201527f494e563a206e6f4e6574466c6f7720546f6b656e2062616c616e6365206368616040820152631b99d95960e21b606082015260800190565b6020808252601f908201527f494e563a20496e73756666696369656e7420746f6b656e2062616c616e636500604082015260600190565b600181811c908216806143cb57607f821691505b602082108103611fc557634e487b7160e01b600052602260045260246000fd5b6000823560be1983360301811261440157600080fd5b9190910192915050565b6020808252601a908201527f54726163746f7246616365743a20696e76616c69642068617368000000000000604082015260600190565b60006020828403121561445457600080fd5b81356128538161400d565b6000808335601e1984360301811261447657600080fd5b8301803591506001600160401b0382111561449057600080fd5b6020019150368190038213156144a557600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8381526040602082015260006144ef6040830184866144ac565b95945050505050565b60006020828403121561450a57600080fd5b81516001600160e01b03198116811461285357600080fd5b6020808252601f908201527f54726163746f7246616365743a20696e76616c6964207369676e617475726500604082015260600190565b6020808252601d908201527f54726163746f7246616365743a207369676e6572206d69736d61746368000000604082015260600190565b6020808252601e908201527f54726163746f7246616365743a206d61784e6f6e636520726561636865640000604082015260600190565b6000808335601e198436030181126145de57600080fd5b83016020810192503590506001600160401b038111156145fd57600080fd5b8036038213156144a557600080fd5b81835260006001600160fb1b0383111561462557600080fd5b8260051b80836020870137939093016020019392505050565b602081526000823560be1984360301811261465857600080fd5b606060208401528301803561466c8161400d565b6001600160a01b0316608084015261468760208201826145c7565b60c060a086015261469d610140860182846144ac565b9150506040820135601e198336030181126146b757600080fd5b82016020810190356001600160401b038111156146d357600080fd5b8060051b36038213156146e557600080fd5b858303607f190160c08701526146fc83828461460c565b92505050606082013560e0850152608082013561010085015260a08201356101208501526020850135604085015261473760408601866145c7565b858303601f19016060870152925061283d8284836144ac565b634e487b7160e01b600052602160045260246000fd5b60006001600160401b0382111561477f5761477f6140d3565b5060051b60200190565b60006147976141d484614141565b90508281528383830111156147ab57600080fd5b612853836020830184613f16565b600082601f8301126147ca57600080fd5b61285383835160208501614789565b600060208083850312156147ec57600080fd5b82516001600160401b038082111561480357600080fd5b818501915085601f83011261481757600080fd5b81516148256141d482614766565b81815260059190911b8301840190848101908883111561484457600080fd5b8585015b838110156148d7578051858111156148605760008081fd5b86016040818c03601f19018113156148785760008081fd5b6148806140e9565b89830151888111156148925760008081fd5b6148a08e8c838701016147b9565b8252509082015190878211156148b65760008081fd5b6148c48d8b848601016147b9565b818b015285525050918601918601614848565b5098975050505050505050565b6000808335601e198436030181126148fb57600080fd5b8301803591506001600160401b0382111561491557600080fd5b6020019150600581901b36038213156144a557600080fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610af557610af561492d565b601f8211156136af576000816000526020600020601f850160051c8101602086101561497f5750805b601f850160051c820191505b8181101561052f5782815560010161498b565b81516001600160401b038111156149b7576149b76140d3565b6149cb816149c584546143b7565b84614956565b602080601f831160018114614a0057600084156149e85750858301515b600019600386901b1c1916600185901b17855561052f565b600085815260208120601f198616915b82811015614a2f57888601518255948401946001909101908401614a10565b5085821015614a4d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160801b03818116838216019080821115612b9f57612b9f61492d565b81810381811115610af557610af561492d565b8183823760009101908152919050565b60006001600160fb1b03831115614ab657600080fd5b8260051b80858437919091019392505050565b8381526060810160048410614ae057614ae0614750565b83602083015260028310614af657614af6614750565b826040830152949350505050565b600060018201614b1657614b1661492d565b5060010190565b6001600160501b03828116828216039080821115612b9f57612b9f61492d565b60006020808385031215614b5057600080fd5b82516001600160401b03811115614b6657600080fd5b8301601f81018513614b7757600080fd5b8051614b856141d482614766565b81815260059190911b82018301908381019087831115614ba457600080fd5b928401925b82841015614bcb578351614bbc8161400d565b82529284019290840190614ba9565b979650505050505050565b6000808354614be4816143b7565b60018281168015614bfc5760018114614c1157614c40565b60ff1984168752821515830287019450614c40565b8760005260208060002060005b85811015614c375781548a820152908401908201614c1e565b50505082870194505b50929695505050505050565b600060208284031215614c5e57600080fd5b8151801515811461285357600080fd5b6000600160ff1b8201614c8357614c8361492d565b5060000390565b60008251614401818460208701613f16565b600060208284031215614cae57600080fd5b81516001600160401b03811115614cc457600080fd5b8201601f81018413614cd557600080fd5b61307d84825160208401614789565b60008060408385031215614cf757600080fd5b82516001600160f01b031981168114614d0f57600080fd5b809250506020808401516001600160401b03811115614d2d57600080fd5b8401601f81018613614d3e57600080fd5b8051614d4c6141d482614766565b81815260059190911b82018301908381019088831115614d6b57600080fd5b928401925b82841015614d8957835182529284019290840190614d70565b8095505050505050925092905056fe426c75657072696e742861646472657373207075626c69736865722c627974657320646174612c627974657333325b5d206f70657261746f725061737465496e737472732c75696e74323536206d61784e6f6e63652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d6529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a2646970667358221220203e3797fe5aed9108302801a46342c4c750d4bf55424b1a12ee13b3e2aff97664736f6c63430008190033