0 txs
65 calls
constructor
constructor()
functions
getAddress
viewfunction getAddress() view returns (address nft, address ft, address deposit, address rtree)
getFeeConfigs
viewfunction getFeeConfigs() view returns (tuple secondaryFee, tuple withdrawalFee, tuple withdrawalDepositFee)
getManagerAddress
viewfunction getManagerAddress() view returns (address manager, address publishManager, address secondaryManager, address auditor, address finance)
getManagers
viewfunction getManagers() view returns (tuple)
holderOf
viewfunction holderOf(bytes12 pid) view returns (address holder)
initialed
viewfunction initialed() view returns (bool)
loadNFT
viewfunction loadNFT(string uri) view returns (uint256 tokenId)
onERC721Received
purefunction onERC721Received(address operator, address from, uint256 tokenId, bytes data) pure returns (bytes4)
owner
viewfunction owner() view returns (address)
version
viewfunction version() view returns (uint64)
buy
nonpayablefunction buy(bytes12 pid, uint256 pay, uint256 income)
confirmAuction
nonpayablefunction confirmAuction(bytes12 pid, address buyer, uint256 amount, uint256 uintPrice)
depositNFT
nonpayablefunction depositNFT(address holder, uint256 tokenId)
initial
nonpayablefunction initial(address nft, address deposit, address ft, address rtree)
mintNFT
nonpayablefunction mintNFT(address holder, string uri)
publishProduct
nonpayablefunction publishProduct(tuple info)
publishSecondary
nonpayablefunction publishSecondary(bytes12 pid, bytes12 sid, uint256 legalAmount, uint256 tokenAmount, uint256 fee, uint256 expireTime)
recharge
nonpayablefunction recharge(bytes12 pid, uint256 amount, uint256 pay, uint256 uintPrice)
redemption
nonpayablefunction redemption(bytes12 pid, uint256 amount)
requestAuction
nonpayablefunction requestAuction(bytes12 pid)
secondaryBuy
nonpayablefunction secondaryBuy(bytes12 pid, bytes12 sid, uint256 legalAmount, uint256 tokenAmount)
setFeeConfigs
nonpayablefunction setFeeConfigs(tuple secondaryFee, tuple withdrawalFee, tuple withdrawalDepositFee)
stopDeposit
nonpayablefunction stopDeposit(bytes12 pid)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unPublish
nonpayablefunction unPublish(bytes12 pid, bytes12 sid)
unPublishProduct
nonpayablefunction unPublishProduct(bytes12 pid)
updateManager
nonpayablefunction updateManager(tuple manager)
withdrawal
nonpayablefunction withdrawal(bytes12 reqId, bytes12 pid, uint256 amount, uint256 coin, uint256 managerFee, uint256 withdrawalFee)
withdrawalDeposit
nonpayablefunction withdrawalDeposit(bytes12 pid, uint256 amount, uint256 fee)
events
BuyerWithdrawalEvent
event BuyerWithdrawalEvent(bytes12 indexed pid, address to, uint256 amount, uint256 managerFee, uint256 withdrawalFee, uint256 reward)
ConfirmAuctionEvent
event ConfirmAuctionEvent(bytes12 indexed pid, address confimer, uint256 legalAmount)
DepositEvent
event DepositEvent(bytes12 indexed pid, address from, address to, uint256 tokenId)
DepositStatusChangeEvent
event DepositStatusChangeEvent(bytes12 indexed pid, uint8 before, uint8 end)
FeeConfigEvent
event FeeConfigEvent()
InitialedEvent
event InitialedEvent()
MainBuyEvent
event MainBuyEvent(bytes12 indexed pid, address buyer, uint256 tokenAmount, uint256 legalAmount)
ManagerUpdated
event ManagerUpdated(string role, address newAddress)
PublishDepositEvent
event PublishDepositEvent(bytes12 indexed pid, address depositor, uint256 tokenAmount, uint256 endTime, uint256 tokenId, address pft)
PublishNTFEvent
event PublishNTFEvent(bytes12 indexed pid, address depositor, uint256 tokenAmount, uint256 endTime, bool fixedRate, uint256 tokenId)
RechargeEvent
event RechargeEvent(bytes12 indexed pid, address payer, uint256 legalAmount)
RedemptionEvent
event RedemptionEvent(bytes12 indexed pid, address depositor, uint256 amount)
RequestAuctionEvent
event RequestAuctionEvent(bytes12 indexed pid, address requster)
RevokeAuctionEvent
event RevokeAuctionEvent(bytes12 indexed pid, address requster)
SecondaryBuyEvent
event SecondaryBuyEvent(bytes12 indexed pid, bytes12 sid, address buyer, uint256 tokenAmount, uint256 legalAmount)
SecondaryPublishEvent
event SecondaryPublishEvent(bytes12 indexed pid, bytes12 sid, uint256 tokenAmount, uint256 legalAmount, uint256 fee)
UpdateManagerEvent
event UpdateManagerEvent()
WithdrawalDepositEvent
event WithdrawalDepositEvent(bytes12 indexed pid, address depositor, uint256 amount, uint256 fee)
errors
No errors.
creation bytecode
0x6080604052600d80546001600160481b031916600317905534801561002357600080fd5b50600080546001600160a01b03191633179055600180556134f5806100496000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806383e2255111610104578063b0316f2f116100a2578063e347e88011610071578063e347e88014610545578063eacabe1414610558578063f2fde38b1461056b578063f5f03e1d1461057e57600080fd5b8063b0316f2f146104c2578063b436ad9b146104d5578063c162d7da146104e8578063c5e38cec1461053257600080fd5b80639563ecbd116100de5780639563ecbd146103c35780639b5b9b18146103d6578063a8d088bb146103e9578063aea7c1d1146104af57600080fd5b806383e22551146103725780638a20866a146103855780638da5cb5b1461039857600080fd5b8063200ea9541161017157806354fd4d501161014b57806354fd4d501461030a5780635cb9ba541461033557806365202b161461034c5780636cb6dbc21461035f57600080fd5b8063200ea954146102a457806338cc4831146102b75780634a8ad2d3146102f757600080fd5b80631197b6c3116101ad5780631197b6c3146102335780631296b7f414610246578063150b7a02146102595780631546b05d1461029157600080fd5b8063021c17ad146101d45780630837f257146101fd5780630ae664bc1461021e575b600080fd5b600d546101e890600160401b900460ff1681565b60405190151581526020015b60405180910390f35b61021061020b366004612d1d565b610591565b6040519081526020016101f4565b61023161022c366004612be0565b6105d1565b005b610231610241366004612e53565b61064a565b610231610254366004612b9c565b61071f565b610278610267366004612a00565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016101f4565b61023161029f366004612cb1565b610a28565b6102316102b2366004612b81565b610b45565b600254600354600554600454604080516001600160a01b0395861681529385166020850152918416918301919091529190911660608201526080016101f4565b610231610305366004612c40565b610bf0565b600d5461031d906001600160401b031681565b6040516001600160401b0390911681526020016101f4565b61033d610d09565b6040516101f4939291906132d0565b61023161035a3660046129a4565b610dd7565b61023161036d366004612e18565b611048565b610231610380366004612e06565b6113da565b610231610393366004612c13565b6117d6565b6000546103ab906001600160a01b031681565b6040516001600160a01b0390911681526020016101f4565b6102316103d1366004612b81565b611914565b6102316103e4366004612aed565b6119cf565b6104606040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506040805160a0810182526006546001600160a01b0390811682526007548116602083015260085481169282019290925260095482166060820152600a54909116608082015290565b6040516101f4919081516001600160a01b039081168252602080840151821690830152604080840151821690830152606080840151821690830152608092830151169181019190915260a00190565b6102316104bd366004612c40565b611afe565b6102316104d0366004612ce4565b611d47565b6102316104e3366004612b81565b611ec9565b600654600754600854600954600a54604080516001600160a01b0396871681529486166020860152928516928401929092528316606083015291909116608082015260a0016101f4565b610231610540366004612c95565b611fc3565b6103ab610553366004612b81565b6121bb565b610231610566366004612a9e565b612252565b610231610579366004612963565b612367565b61023161058c366004612cb1565b6123ad565b600080826040516020016105a59190612ffb565b60408051601f1981840301815291815281516020928301206000908152600b9092529020549392505050565b600554604051631a4a33ab60e11b81526001600160a01b03198085166004830152831660248201523360448201526001600160a01b0390911690633494675690606401600060405180830381600087803b15801561062e57600080fd5b505af1158015610642573d6000803e3d6000fd5b505050505050565b600a546001600160a01b031633148061066d57506006546001600160a01b031633145b8061068257506000546001600160a01b031633145b61068b57600080fd5b600554604051631197b6c360e01b81526001600160a01b0390911690631197b6c3906106bf908690869086906004016132a8565b600060405180830381600087803b1580156106d957600080fd5b505af11580156106ed573d6000803e3d6000fd5b50506040517f88a4711044442c04d5bece52576bce70bd312b47180b2647480a603fcef863cb925060009150a1505050565b6107276124f2565b6006546001600160a01b031633148061074a57506000546001600160a01b031633145b8061075f5750600a546001600160a01b031633145b6107955760405162461bcd60e51b8152602060048201526002602482015261323760f01b60448201526064015b60405180910390fd5b6006546001600160a01b03848116911614806107be57506000546001600160a01b038481169116145b806107d65750600a546001600160a01b038481169116145b6108075760405162461bcd60e51b8152602060048201526002602482015261064760f31b604482015260640161078c565b6005546040516304a5adfd60e21b81526000918291829182916001600160a01b0390911690631296b7f490610846908b908b908b908b906004016130af565b608060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108989190612eef565b935093509350935060008611156108c1576003546108c1906001600160a01b031688308961254c565b83156108f957620f42406108d586866133d9565b6108df91906133b7565b6003549094506108f9906001600160a01b03168486612649565b6000828152600c6020526040812081905561091383612735565b9050876001600160a01b0316816001600160a01b0316146109c657806001600160a01b0316826001600160a01b03161461095f5760405162461bcd60e51b815260040161078c9061314e565b60025460405163dab0dbfb60e01b81526001600160a01b039091169063dab0dbfb906109939084908c908890600401613017565b600060405180830381600087803b1580156109ad57600080fd5b505af11580156109c1573d6000803e3d6000fd5b505050505b604080516001600160a01b038a168152602081018990526001600160a01b03198b16917f127f4d3c350b66f46b91fd6901c65260599a1eac64b1aa08db1cea4fa1fb2fdd910160405180910390a25050505050610a2260018055565b50505050565b610a306124f2565b6005546040516364a931ff60e01b81526001600160a01b03909116906364a931ff90610a669086903390879087906004016130af565b600060405180830381600087803b158015610a8057600080fd5b505af1158015610a94573d6000803e3d6000fd5b5050505060008183610aa691906133f8565b90508015610ac557600354610ac5906001600160a01b03163383612649565b8115610ae857600354600a54610ae8916001600160a01b03908116911684612649565b60408051338152602081018590529081018390526001600160a01b03198516907fc3d36aca85b02e1e01a235a29e305adb936832940d0a63e52f749b9b5b2e3521906060015b60405180910390a250610b4060018055565b505050565b6008546001600160a01b0316331480610b6857506006546001600160a01b031633145b80610b7d57506000546001600160a01b031633145b610b8657600080fd5b600554604051630803aa5560e21b81526001600160a01b0319831660048201526001600160a01b039091169063200ea95490602401600060405180830381600087803b158015610bd557600080fd5b505af1158015610be9573d6000803e3d6000fd5b5050505050565b610bf86124f2565b60008311610c185760405162461bcd60e51b815260040161078c90613116565b600554604051632b4e943560e21b81526001600160a01b0319808916600483015287166024820152336044820152606481018690526084810185905260a4810184905260c481018390526001600160a01b039091169063ad3a50d49060e401600060405180830381600087803b158015610c9157600080fd5b505af1158015610ca5573d6000803e3d6000fd5b5050604080516001600160a01b03198981168252602082018890529181018890526060810186905290891692507f92bd2c92264b79623ae000441fbb39c3307a0d17d441305f82925257745f12bb915060800160405180910390a261064260018055565b604080518082019091526000808252602082015260408051808201909152600080825260208201526040805180820190915260008082526020820152600560009054906101000a90046001600160a01b03166001600160a01b0316635cb9ba546040518163ffffffff1660e01b815260040160c06040518083038186803b158015610d9357600080fd5b505afa158015610da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dcb9190612e99565b91959094509092509050565b600d54600160401b900460ff1615610e165760405162461bcd60e51b8152602060048201526002602482015261313960f01b604482015260640161078c565b833b63ffffffff1615158015610e3457506001600160a01b03841615155b610e655760405162461bcd60e51b8152602060048201526002602482015261323360f01b604482015260640161078c565b823b63ffffffff1615158015610e8357506001600160a01b03831615155b610e9f5760405162461bcd60e51b815260040161078c906130fa565b813b63ffffffff1615158015610ebd57506001600160a01b03821615155b610ed95760405162461bcd60e51b815260040161078c90613132565b803b63ffffffff1615158015610ef757506001600160a01b03811615155b610f285760405162461bcd60e51b8152602060048201526002602482015261191b60f11b604482015260640161078c565b600080546001600160a01b031990811633178255600680548216736f8b92703744592bfee542faf1c3269e6863ae8b908117909155600780548316734b76997fa40f21fbabfa17d92f635775087f3621179055600880548316737d8f7a29c116c224fb5d62b292a84ebb48aa8ee61790556009805483167365fb09003abeebfbfbab29e82d93e591a8a1a372179055600a805483169091179055600280546001600160a01b038881169184169190911790915560058054878316908416179055600380548683169084161790556004805491851691909216179055600d805468ff00000000000000001916600160401b1790556040517f9089337c6bdfe43ae25c037d623b3bd688e5d555e43083e72895be353512c28a9190a150505050565b6007546001600160a01b031633148061106b57506006546001600160a01b031633145b8061108057506000546001600160a01b031633145b61108957600080fd5b6110916124f2565b600d54600160401b900460ff166110cf5760405162461bcd60e51b8152602060048201526002602482015261191960f11b604482015260640161078c565b6110e161016082016101408301612b47565b61111f5760008161012001351161111f5760405162461bcd60e51b81526020600482015260026024820152610c4d60f21b604482015260640161078c565b61113161016082016101408301612b47565b156112bc576101c08101356000908152600c60209081526040918290209161115e91908401908401612963565b8154600160601b90046001600160a01b039081169116146111a65760405162461bcd60e51b8152602060048201526002602482015261313560f01b604482015260640161078c565b805460a01b6001600160a01b031916156111e75760405162461bcd60e51b8152602060048201526002602482015261032360f41b604482015260640161078c565b6111f46020830183612b81565b81546bffffffffffffffffffffffff191660a09190911c1781556002546040516331a9108f60e11b81526101c084013560048201526000916001600160a01b031690636352211e9060240160206040518083038186803b15801561125757600080fd5b505afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128f9190612987565b9050306001600160a01b038216146112b95760405162461bcd60e51b815260040161078c9061314e565b50505b600554604051630ad1878160e21b81526000916001600160a01b031690632b461e04906112ef908590309060040161316a565b602060405180830381600087803b15801561130957600080fd5b505af115801561131d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113419190612987565b90506113506020830183612b81565b6001600160a01b0319167f95eb2e52df07c7e22b53f4c912482a822cb9eab5c688a6935966c054e56a1dc661138b6040850160208601612963565b604080516001600160a01b03928316815260c08701356020820152610100870135818301526101c087013560608201529185166080830152519081900360a00190a2506113d760018055565b50565b6000546001600160a01b031633146113f157600080fd5b6114066114016020830183612963565b6127b8565b6114196114016040830160208401612963565b61142c6114016060830160408401612963565b61143f6114016080830160608401612963565b61145261140160a0830160808401612963565b61145f6020820182612963565b6006546001600160a01b039081169116146114f4576114816020820182612963565b600680546001600160a01b0319166001600160a01b03929092169190911790556000805160206134a08339815191526114bd6020830183612963565b604080518181526005818301526430b236b4b760d91b60608201526001600160a01b03929092166020830152519081900360800190a15b6115046040820160208301612963565b6007546001600160a01b039081169116146115a1576115296040820160208301612963565b600780546001600160a01b0319166001600160a01b03929092169190911790556000805160206134a08339815191526115686040830160208401612963565b60408051818152600781830152660e0eac4d8d2e6d60cb1b60608201526001600160a01b03929092166020830152519081900360800190a15b6115b16060820160408301612963565b6008546001600160a01b03908116911614611650576115d66060820160408301612963565b600880546001600160a01b0319166001600160a01b03929092169190911790556000805160206134a08339815191526116156060830160408401612963565b60408051818152600981830152687365636f6e6461727960b81b60608201526001600160a01b03929092166020830152519081900360800190a15b6116606080820160608301612963565b6009546001600160a01b039081169116146116fd576116856080820160608301612963565b600980546001600160a01b0319166001600160a01b03929092169190911790556000805160206134a08339815191526116c46080830160608401612963565b604080518181526007818301526630bab234ba37b960c91b60608201526001600160a01b03929092166020830152519081900360800190a15b61170d60a0820160808301612963565b600a546001600160a01b039081169116146117aa5761173260a0820160808301612963565b600a80546001600160a01b0319166001600160a01b03929092169190911790556000805160206134a083398151915261177160a0830160808401612963565b604080518181526007818301526666696e616e636560c81b60608201526001600160a01b03929092166020830152519081900360800190a15b6040517fba9e668bf2f658f1dba73d68db093cbea5cbebf3f2a7da6255a46a2dda544e4690600090a150565b6117de6124f2565b600554604051631a80f79d60e01b81523360048201526001600160a01b0319808716602483015285166044820152606481018490526084810183905260009182916001600160a01b0390911690631a80f79d9060a4016040805180830381600087803b15801561184d57600080fd5b505af1158015611861573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118859190612b19565b60035491935091506118a2906001600160a01b031633848761254c565b600354600a546118c1916001600160a01b03908116918591168461254c565b856001600160a01b0319167faf0431dd72e03ea5b69873a27e06188b350b065d25dda732ae445fb2dc4a35c08633878760405161190194939291906130af565b60405180910390a25050610a2260018055565b61191c6124f2565b60055460405163389c680760e11b81526001600160a01b0390911690637138d00e9061194e908490339060040161308c565b600060405180830381600087803b15801561196857600080fd5b505af115801561197c573d6000803e3d6000fd5b50505050806001600160a01b0319167fdaba398e91ee46878ce49dcc8ebb5694a272c078f6056b16afef47a49793f3a6600160026040516119be9291906130df565b60405180910390a26113d760018055565b6007546001600160a01b03163314806119f257506006546001600160a01b031633145b80611a0757506000546001600160a01b031633145b611a1057600080fd5b611a186124f2565b6000818152600c602052604090208054600160601b90046001600160a01b031615611a6a5760405162461bcd60e51b81526020600482015260026024820152610c4d60f21b604482015260640161078c565b80546001600160a01b03808516600160601b026bffffffffffffffffffffffff90921691909117825560025460405163dab0dbfb60e01b815291169063dab0dbfb90611abe90869030908790600401613017565b600060405180830381600087803b158015611ad857600080fd5b505af1158015611aec573d6000803e3d6000fd5b5050505050611afa60018055565b5050565b611b066124f2565b60008411611b265760405162461bcd60e51b815260040161078c90613116565b600554604051639e11ef6b60e01b815260009182916001600160a01b0390911690639e11ef6b90611b61908a9033908b908b906004016130af565b6040805180830381600087803b158015611b7a57600080fd5b505af1158015611b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb29190612f57565b91509150818414611bd55760405162461bcd60e51b815260040161078c90613132565b600480546040516378b8b78d60e11b815260009283926001600160a01b03169163f1716f1a91611c0d918e9133918d918a91016130af565b6040805180830381600087803b158015611c2657600080fd5b505af1158015611c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5e9190612f57565b91509150818514611c815760405162461bcd60e51b815260040161078c906130fa565b6000611c8d868861339f565b90506000611c9b828a6133f8565b90508015611cba57600354611cba906001600160a01b03163383612649565b8115611cdd57600354600a54611cdd916001600160a01b03908116911684612649565b60408051338152602081018c905290810189905260608101859052608081018490526001600160a01b03198c16907fd2ec6d2beb4eef17977fed48ce24ae71577d7b409420f8fdc676964b3b0d74d79060a00160405180910390a250505050505061064260018055565b611d4f6124f2565b60008311611d6f5760405162461bcd60e51b815260040161078c90613116565b6006546001600160a01b0316331480611d9257506000546001600160a01b031633145b80611da75750600a546001600160a01b031633145b611dd85760405162461bcd60e51b8152602060048201526002602482015261323760f01b604482015260640161078c565b600554604051630c49553b60e31b81526001600160a01b0319861660048201523060248201526044810185905260648101849052608481018390526001600160a01b039091169063624aa9d89060a401600060405180830381600087803b158015611e4257600080fd5b505af1158015611e56573d6000803e3d6000fd5b505050506000821115611e7b57600354611e7b906001600160a01b031633308561254c565b60408051338152602081018590526001600160a01b03198616917f59048e5b94b450fdd347e83ea50aa4e378a64af8505082fddb630374839271d9910160405180910390a2610a2260018055565b6006546001600160a01b0316331480611eec57506000546001600160a01b031633145b611ef557600080fd5b611efd6124f2565b6005546006546040516317f0c51360e31b81526001600160a01b039283169263bf86289892611f349286929091169060040161308c565b602060405180830381600087803b158015611f4e57600080fd5b505af1158015611f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f869190612ed6565b506040513381526001600160a01b03198216907f2b0aea2ce0236a385e8077a6d971bacf5a0d77a0341c98bba564077620164d19906020016119be565b611fcb6124f2565b600554604051633448cced60e21b81526001600160a01b031984166004820152336024820152604481018390526000918291829182916001600160a01b039091169063d12333b490606401608060405180830381600087803b15801561203057600080fd5b505af1158015612044573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120689190612f2f565b9350935093509350600085111561209157600354612091906001600160a01b031633308861254c565b83156120ae576003546120ae906001600160a01b03163386612649565b8215612169576000828152600c602052604081208190556120ce83612735565b9050806001600160a01b0316826001600160a01b0316146121015760405162461bcd60e51b815260040161078c9061314e565b60025460405163dab0dbfb60e01b81526001600160a01b039091169063dab0dbfb9061213590849033908890600401613017565b600060405180830381600087803b15801561214f57600080fd5b505af1158015612163573d6000803e3d6000fd5b50505050505b60408051338152602081018790526001600160a01b03198816917f39328d6b85d3ae97a1525af5f281c411159fdb785919cecf126be676d88656ce910160405180910390a250505050611afa60018055565b6005546040516377c24b1160e01b81526001600160a01b03198316600482015260009182916001600160a01b03909116906377c24b11906024016101406040518083038186803b15801561220e57600080fd5b505afa158015612222573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122469190612d59565b61012001519392505050565b6007546001600160a01b031633148061227557506006546001600160a01b031633145b8061228a57506000546001600160a01b031633145b61229357600080fd5b61229b6124f2565b6002546040516310512e0360e01b81526000916001600160a01b0316906310512e03906122ce908690869060040161304a565b602060405180830381600087803b1580156122e857600080fd5b505af11580156122fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123209190612ed6565b90506000826040516020016123359190612ffb565b60408051601f1981840301815291815281516020928301206000908152600b90925290209190915550611afa60018055565b6000546001600160a01b0316331461237e57600080fd5b6001600160a01b038116156113d757600080546001600160a01b0383166001600160a01b031990911617905550565b6123b56124f2565b600081116123d55760405162461bcd60e51b815260040161078c90613116565b600554604051630cd9c7a760e01b81526000916001600160a01b031690630cd9c7a79061240c9087903390889088906004016130af565b602060405180830381600087803b15801561242657600080fd5b505af115801561243a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061245e9190612b64565b905082156124a857801561248957600354612484906001600160a01b031633308661254c565b6124a8565b600354600a546124a8916001600160a01b03908116913391168661254c565b60408051338152602081018590529081018390526001600160a01b03198516907f35ba37bc95a812ff0922cb5d5f37782c95c7d284cbaa6b8b077a67e7badb3de290606001610b2e565b600260015414156125455760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161078c565b6002600155565b6040516001600160a01b038085166024830152831660448201526064810182905260009060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b1790525190915060009081906001600160a01b038816906125bc908590612ffb565b6000604051808303816000865af19150503d80600081146125f9576040519150601f19603f3d011682016040523d82523d6000602084013e6125fe565b606091505b509150915081801561260f57508051155b6126405760405162461bcd60e51b8152602060048201526002602482015261353560f01b604482015260640161078c565b50505050505050565b6040516001600160a01b03831660248201526044810182905260009060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525190915060009081906001600160a01b038716906126b1908590612ffb565b6000604051808303816000865af19150503d80600081146126ee576040519150601f19603f3d011682016040523d82523d6000602084013e6126f3565b606091505b509150915081801561270457508051155b6106425760405162461bcd60e51b8152602060048201526002602482015261353560f01b604482015260640161078c565b6002546040516331a9108f60e11b8152600481018390526000916001600160a01b031690636352211e9060240160206040518083038186803b15801561277a57600080fd5b505afa15801561278e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b29190612987565b92915050565b6001600160a01b0381166127de5760405162461bcd60e51b815260040161078c906130fa565b803b63ffffffff16156113d75760405162461bcd60e51b815260040161078c90613132565b803561280e81613467565b919050565b805161280e81613467565b803561280e8161347c565b805161280e8161347c565b80356001600160a01b03198116811461280e57600080fd5b80516005811061280e57600080fd5b600082601f83011261286c57600080fd5b81356001600160401b038082111561288657612886613451565b604051601f8301601f19908116603f011681019082821181831017156128ae576128ae613451565b816040528381528660208588010111156128c757600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156128f957600080fd5b50919050565b60006040828403121561291157600080fd5b604051604081018181106001600160401b038211171561293357612933613451565b806040525080915082516129468161348a565b815260208301516129568161348a565b6020919091015292915050565b60006020828403121561297557600080fd5b813561298081613467565b9392505050565b60006020828403121561299957600080fd5b815161298081613467565b600080600080608085870312156129ba57600080fd5b84356129c581613467565b935060208501356129d581613467565b925060408501356129e581613467565b915060608501356129f581613467565b939692955090935050565b600080600080600060808688031215612a1857600080fd5b8535612a2381613467565b94506020860135612a3381613467565b93506040860135925060608601356001600160401b0380821115612a5657600080fd5b818801915088601f830112612a6a57600080fd5b813581811115612a7957600080fd5b896020828501011115612a8b57600080fd5b9699959850939650602001949392505050565b60008060408385031215612ab157600080fd5b8235612abc81613467565b915060208301356001600160401b03811115612ad757600080fd5b612ae38582860161285b565b9150509250929050565b60008060408385031215612b0057600080fd5b8235612b0b81613467565b946020939093013593505050565b60008060408385031215612b2c57600080fd5b8251612b3781613467565b6020939093015192949293505050565b600060208284031215612b5957600080fd5b81356129808161347c565b600060208284031215612b7657600080fd5b81516129808161347c565b600060208284031215612b9357600080fd5b61298082612834565b60008060008060808587031215612bb257600080fd5b612bbb85612834565b93506020850135612bcb81613467565b93969395505050506040820135916060013590565b60008060408385031215612bf357600080fd5b612bfc83612834565b9150612c0a60208401612834565b90509250929050565b60008060008060808587031215612c2957600080fd5b612c3285612834565b9350612bcb60208601612834565b60008060008060008060c08789031215612c5957600080fd5b612c6287612834565b9550612c7060208801612834565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60008060408385031215612ca857600080fd5b612b0b83612834565b600080600060608486031215612cc657600080fd5b612ccf84612834565b95602085013595506040909401359392505050565b60008060008060808587031215612cfa57600080fd5b612d0385612834565b966020860135965060408601359560600135945092505050565b600060208284031215612d2f57600080fd5b81356001600160401b03811115612d4557600080fd5b612d518482850161285b565b949350505050565b60006101408284031215612d6c57600080fd5b612d7461332a565b612d7d83612813565b8152612d8b60208401612813565b6020820152612d9c60408401612829565b60408201526060830151606082015260808301516080820152612dc160a0840161284c565b60a0820152612dd260c08401612829565b60c082015260e083015160e0820152610100808401518183015250610120612dfb818501612813565b908201529392505050565b600060a082840312156128f957600080fd5b600060208284031215612e2a57600080fd5b81356001600160401b03811115612e4057600080fd5b8201610200818503121561298057600080fd5b600080600060c08486031215612e6857600080fd5b612e7285856128e7565b9250612e8185604086016128e7565b9150612e9085608086016128e7565b90509250925092565b600080600060c08486031215612eae57600080fd5b612eb885856128ff565b9250612ec785604086016128ff565b9150612e9085608086016128ff565b600060208284031215612ee857600080fd5b5051919050565b60008060008060808587031215612f0557600080fd5b845193506020850151612f1781613467565b6040860151606087015191945092506129f581613467565b60008060008060808587031215612f4557600080fd5b845193506020850151612f178161347c565b60008060408385031215612f6a57600080fd5b505080516020909101519092909150565b60058110612f9957634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8035612fd18161348a565b6001600160401b039081168352602082013590612fed8261348a565b808216602085015250505050565b6000825161300d81846020870161340f565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260806060820181905260009082015260a00190565b60018060a01b0383168152604060208201526000825180604084015261307781606085016020870161340f565b601f01601f1916919091016060019392505050565b6001600160a01b03199290921682526001600160a01b0316602082015260400190565b6001600160a01b03199490941684526001600160a01b039290921660208401526040830152606082015260800190565b604081016130ed8285612f7b565b6129806020830184612f7b565b6020808252600290820152610c8d60f21b604082015260600190565b602080825260029082015261313160f01b604082015260600190565b602080825260029082015261323560f01b604082015260600190565b602080825260029082015261323160f01b604082015260600190565b6040815261318c6040820161317e85612834565b6001600160a01b0319169052565b600061319a60208501612803565b6001600160a01b031660608301526131b86080830160408601612fc6565b6131c860c0830160808601612fc6565b61010060c08501358184015261012060e08601358185015261014082870135818601526101609250818701358386015261320381880161281e565b9150506101806132168186018315159052565b61322283880188613353565b935091506102006101a0818188015261324061024088018686612f9d565b945061324e838a018a613353565b945092506101c0603f19888703018189015261326b868686612f9d565b918a01356101e089810191909152908a013592880192909252908801356102208701526001600160a01b0387166020870152935061298092505050565b60c081016132b68286612fc6565b6132c36040830185612fc6565b612d516080830184612fc6565b60c081016132f4828680516001600160401b03908116835260209182015116910152565b83516001600160401b039081166040840152602080860151821660608501528451821660808501528401511660a0830152612d51565b60405161014081016001600160401b038111828210171561334d5761334d613451565b60405290565b6000808335601e1984360301811261336a57600080fd5b83016020810192503590506001600160401b0381111561338957600080fd5b80360383131561339857600080fd5b9250929050565b600082198211156133b2576133b261343b565b500190565b6000826133d457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156133f3576133f361343b565b500290565b60008282101561340a5761340a61343b565b500390565b60005b8381101561342a578181015183820152602001613412565b83811115610a225750506000910152565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146113d757600080fd5b80151581146113d757600080fd5b6001600160401b03811681146113d757600080fdfeca34933fea0ffdb5b2791c1644e4ca9a2ab287e741991dd7be70aae8470da63da26469706673582212205bb234cef972dab6911a223cbfc4fe2b8a080996c8aef2c3a8e23c6490b2e0f264736f6c63430008070033