0 txs
16.7k calls
constructor
No constructor.
functions
channel
viewfunction channel(uint256 channelId) view returns (tuple)
channelPrice
viewfunction channelPrice(uint256) view returns (uint256)
owner
viewfunction owner() view returns (address)
settings
viewfunction settings() view returns (address)
terminateExpiration
viewfunction terminateExpiration() view returns (uint256)
checkpoint
nonpayablefunction checkpoint(tuple query)
claim
nonpayablefunction claim(uint256 channelId)
extend
nonpayablefunction extend(uint256 channelId, uint256 preExpirationAt, uint256 expiration, bytes indexerSign, bytes consumerSign, uint256 price)
fund
nonpayablefunction fund(uint256 channelId, uint256 preTotal, uint256 amount, bytes callback, bytes sign)
initialize
nonpayablefunction initialize(address _settings)
open
nonpayablefunction open(uint256 channelId, address indexer, address consumer, uint256 amount, uint256 price, uint256 expiration, bytes32 deploymentId, bytes callback, bytes indexerSign, bytes consumerSign)
renounceOwnership
nonpayablefunction renounceOwnership()
respond
nonpayablefunction respond(tuple query)
setSettings
nonpayablefunction setSettings(address _settings)
setTerminateExpiration
nonpayablefunction setTerminateExpiration(uint256 expiration)
terminate
nonpayablefunction terminate(tuple query)
terminateWithCurrentState
nonpayablefunction terminateWithCurrentState(uint256 channelId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ChannelCheckpoint
event ChannelCheckpoint(uint256 indexed channelId, uint256 spent, bool isFinal)
ChannelExtend
event ChannelExtend(uint256 indexed channelId, uint256 expiredAt, uint256 price)
ChannelFinalize
event ChannelFinalize(uint256 indexed channelId, uint256 total, uint256 remain)
ChannelFund
event ChannelFund(uint256 indexed channelId, uint256 realTotal, uint256 total)
ChannelLabor
event ChannelLabor(bytes32 deploymentId, address indexer, uint256 amount)
ChannelLabor2
event ChannelLabor2(uint256 indexed channelId, bytes32 deploymentId, address indexer, uint256 amount)
ChannelOpen
event ChannelOpen(uint256 indexed channelId, address indexer, address consumer, uint256 total, uint256 price, uint256 expiredAt, bytes32 deploymentId, bytes callback)
ChannelTerminate
event ChannelTerminate(uint256 indexed channelId, uint256 spent, uint256 terminatedAt, bool terminateByIndexer)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Parameter
event Parameter(string name, bytes value)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613783806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806393368310116100a2578063cd739ca511610071578063cd739ca514610231578063e06174e414610251578063f2fde38b14610264578063f4d59b5814610277578063f771c57b1461028a57600080fd5b806393368310146101e5578063a01d3c2c146101f8578063bacc28bb1461020b578063c4d66de81461021e57600080fd5b8063381930e6116100e9578063381930e6146101895780633b09c0b9146101925780634f066fca146101a5578063715018a6146101b85780638da5cb5b146101c057600080fd5b80630455fd181461011b5780632005864a1461014e578063276b00c014610163578063379607f514610176575b600080fd5b61013b610129366004612f7e565b60686020526000908152604090205481565b6040519081526020015b60405180910390f35b61016161015c366004612f97565b61029d565b005b610161610171366004613075565b610487565b610161610184366004612f7e565b61067d565b61013b60665481565b6101616101a0366004612f7e565b610701565b6101616101b33660046130fe565b610761565b610161610c6a565b6033546001600160a01b03165b6040516001600160a01b039091168152602001610145565b6101616101f33660046131a4565b610c7e565b610161610206366004613280565b611115565b610161610219366004612f97565b61113f565b61016161022c366004613280565b611372565b61024461023f366004612f7e565b6114f8565b60405161014591906132c7565b6065546101cd906001600160a01b031681565b610161610272366004613280565b611604565b610161610285366004612f7e565b61167d565b610161610298366004612f97565b6118fc565b6001813560009081526067602052604090205460ff1660028111156102c4576102c461329d565b146102fe5760405162461bcd60e51b815260206004820152600560248201526414d0cc0c0d60da1b60448201526064015b60405180910390fd5b803560009081526067602090815260409091206004015490820135116103365760405162461bcd60e51b81526004016102f59061336b565b60008135602083013561034f6060850160408601613398565b6040805160208101949094528301919091521515606082015260800160408051601f198184030181529190528051602090910120905061041482358261039860608601866133b5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103da9250505060808701876133b5565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca192505050565b81357fb3a2afaa64af32fdb05b5d3b4ad78b4ea624153b4cbfb05770dbe725997d0aaf602084013561044c6060860160408701613398565b6040805192835290151560208301520160405180910390a26104838235602084013561047e6060860160408701613398565b611d8a565b5050565b6000868152606760205260409020805460018201546005909201546101009091046001600160a01b0390811692169087146104ec5760405162461bcd60e51b815260206004820152600560248201526429a198181960d91b60448201526064016102f5565b6040805160208082018b90526001600160a01b0385811683850152841660608301526080820186905260a082018a905260c08083018a90528351808403909101815260e09092019092528051910120813b63ffffffff16156105da57604051630f685fa960e01b81526001600160a01b03831690630f685fa990610578908c9085908a90600401613454565b602060405180830381865afa158015610595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b9919061347c565b6105d55760405162461bcd60e51b81526004016102f590613499565b6105e7565b6105e78186846000611fc6565b6105f48187856001611fc6565b600089815260676020526040812060050180548992906106159084906134cd565b9091555050600089815260686020908152604080832087905560678252918290206005015482519081529081018690528a917f82ca7cea36badd3b0fed2ea847b896ef726c843271bc7bc6d800cfbd7c1dda5e910160405180910390a2505050505050505050565b6000600260008381526067602052604090205460ff1660028111156106a4576106a461329d565b1480156106c1575060008281526067602052604090206006015442115b9050806106f85760405162461bcd60e51b81526020600482015260056024820152640a6866060760db1b60448201526064016102f5565b610483826122c0565b61070961276a565b606681905560408051602081018390527f63c3003ba148ae22ef0cecea7dab164660fafd04037d699677e4478e17ef7b1b910160408051601f1981840301815290829052610756916134e5565b60405180910390a150565b600160008681526067602052604090205460ff1660028111156107865761078661329d565b146107bb5760405162461bcd60e51b8152602060048201526005602482015264534330303360d81b60448201526064016102f5565b60008581526067602052604090206003015484146108035760405162461bcd60e51b8152602060048201526005602482015264053433031360dc1b60448201526064016102f5565b6000858152606760209081526040808320805460019091015491516101009091046001600160a01b0390811694921692610849918a91869186918c918c918c9101613522565b60408051808303601f190181529190528051602090910120905081803b63ffffffff161561097157604051630f685fa960e01b815283906001600160a01b03821690630f685fa9906108a3908d9087908b90600401613454565b602060405180830381865afa1580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e4919061347c565b6109005760405162461bcd60e51b81526004016102f590613499565b6040516357c65a5760e01b8152600481018b90526001600160a01b038216906357c65a5790602401602060405180830381865afa158015610945573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610969919061356e565b91505061097e565b61097e8286856000611fc6565b60655460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906109b09060139060040161358b565b602060405180830381865afa1580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f1919061356e565b90506000816001600160a01b031663a3700702606760008e815260200190815260200160002060070154858c8f604051602001610a3091815260200190565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401610a5e94939291906135a5565b6020604051808303816000875af1158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa191906135dc565b905088811015610be0576000610ab7828b6135f5565b9050853b63ffffffff1615610b2b57604051639304c78360e01b81526001600160a01b03871690639304c78390610af8908f90339086908f906004016135a5565b600060405180830381600087803b158015610b1257600080fd5b505af1158015610b26573d6000803e3d6000fd5b505050505b60655460405163f4e5699160e01b8152610bb8918891309185916001600160a01b039091169063f4e5699190610b669060009060040161358b565b602060405180830381865afa158015610b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba7919061356e565b6001600160a01b03169291906127c4565b60008c81526067602052604081206002018054839290610bd99084906134cd565b9091555050505b60008b815260676020526040812060030180548b9290610c019084906134cd565b909155505060008b81526067602090815260409182902060028101546003909101548351918252918101919091528c917f1d0232126b461e33ca71006cd193e3cbaf5a246ace60b2d3b50526942f56610791015b60405180910390a25050505050505050505050565b610c7261276a565b610c7c600061282f565b565b60008a81526067602052604081205460ff166002811115610ca157610ca161329d565b14610cd65760405162461bcd60e51b8152602060048201526005602482015264534330303160d81b60448201526064016102f5565b60655460405163f4e5699160e01b81526000916001600160a01b03169063f4e5699190610d089060039060040161358b565b602060405180830381865afa158015610d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d49919061356e565b6040516316367a7160e11b81526001600160a01b038c8116600483015291925090821690632c6cf4e290602401602060405180830381865afa158015610d93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db7919061347c565b610dec5760405162461bcd60e51b81526004016102f5906020808252600490820152632398181960e11b604082015260600190565b60008b8b8b8b8b8b8b8b604051602001610e0d98979695949392919061360c565b604051602081830303815290604052805190602001209050610e368a63ffffffff903b16151590565b15610f8657610e556001600160a01b038b16633e1dcb5560e11b612881565b610e8a5760405162461bcd60e51b81526004016102f59060208082526004908201526308e6062760e31b604082015260600190565b60008a9050806001600160a01b0316630f685fa98e84876040518463ffffffff1660e01b8152600401610ebf93929190613454565b602060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f00919061347c565b610f1c5760405162461bcd60e51b81526004016102f590613499565b806001600160a01b0316639304c7838e338d8a6040518563ffffffff1660e01b8152600401610f4e94939291906135a5565b600060405180830381600087803b158015610f6857600080fd5b505af1158015610f7c573d6000803e3d6000fd5b5050505050610fd3565b610f9381848c6000611fc6565b336001600160a01b038b1614610fd35760405162461bcd60e51b8152602060048201526005602482015264534331313160d81b60448201526064016102f5565b610fe081858d6001611fc6565b60655460405163f4e5699160e01b815261101b918c9130918d916001600160a01b039091169063f4e5699190610b669060009060040161358b565b60008c815260676020526040902080546001600160a01b038d8116610100026001600160a81b0319909216919091176001908117835582018054918d166001600160a01b031990921691909117905561107488426134cd565b6005820155600281018a9055600381018a9055600060048201819055600682018190556007820188905560088201805460ff191690558d81526068602052604090208990558c7fdce31697f0e6122fe66bcba66ce4e3a49d4c9707bbca427ebf7bb9f3343a916f8d8d8d8d6110e98e426134cd565b8d8d6040516110fe9796959493929190613665565b60405180910390a250505050505050505050505050565b61111d61276a565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b803560009081526067602052604090206002815460ff1660028111156111675761116761329d565b1461119c5760405162461bcd60e51b8152602060048201526005602482015264534330303760d81b60448201526064016102f5565b600881015460ff16156112625760018101546001600160a01b0316338114903b63ffffffff161561123f576001820154604051636f2cdea760e01b8152843560048201523360248201526001600160a01b0390911690636f2cdea790604401602060405180830381865afa158015611218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123c919061347c565b90505b8061125c5760405162461bcd60e51b81526004016102f5906136b5565b50611290565b805461010090046001600160a01b031633146112905760405162461bcd60e51b81526004016102f5906136b5565b8060040154826020013510156112b85760405162461bcd60e51b81526004016102f59061336b565b6000823560208401356112d16060860160408701613398565b6040805160208101949094528301919091521515606082015260800160408051601f198184030181529190528051602090910120905061135c83358261131a60608701876133b5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103da9250505060808801886133b5565b61136d833560208501356001611d8a565b505050565b600054610100900460ff16158080156113925750600054600160ff909116105b806113ac5750303b1580156113ac575060005460ff166001145b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102f5565b6000805460ff191660011790558015611432576000805461ff0019166101001790555b61143a6128a4565b620151806066819055606580546001600160a01b0319166001600160a01b0385161790556040805160208101929092527f63c3003ba148ae22ef0cecea7dab164660fafd04037d699677e4478e17ef7b1b910160408051601f19818403018152908290526114a7916134e5565b60405180910390a18015610483576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081019190915260008281526067602052604090819020815161014081019092528054829060ff16600281111561157b5761157b61329d565b600281111561158c5761158c61329d565b815281546001600160a01b03610100918290048116602084015260018401541660408301526002830154606083015260038301546080830152600483015460a0830152600583015460c0830152600683015460e083015260078301549082015260089091015460ff1615156101209091015292915050565b61160c61276a565b6001600160a01b0381166116715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102f5565b61167a8161282f565b50565b600081815260676020526040902080546001820154336001600160a01b03610100909304831681149291909116148115826116b6575080155b156117ae5760655460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906116ed9060039060040161358b565b602060405180830381865afa15801561170a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172e919061356e565b8454604051634463315560e11b81526001600160a01b03610100909204821660048201529116906388c662aa90602401602060405180830381865afa15801561177b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179f919061356e565b6001600160a01b031633149250505b60018301546001600160a01b03163b63ffffffff1615611840576001830154604051636f2cdea760e01b8152600481018690523360248201526001600160a01b0390911690636f2cdea790604401602060405180830381865afa158015611819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183d919061347c565b90505b81806118495750805b6118655760405162461bcd60e51b81526004016102f5906136b5565b825460ff1916600217835560665460009061188090426134cd565b6006850181905560088501805460ff19168515159081179091556004860154604080519182526020820184905281019190915290915085907f0d778a22967eaa98ed5a1dc78d02c1ac54b345f19835543e7387f0658a646e6f9060600160405180910390a26118f58585600401546000611d8a565b5050505050565b8035600090815260676020526040902080546001820154336001600160a01b0361010090930483168114929190911614811582611937575080155b15611a2f5760655460405163f4e5699160e01b81526000916001600160a01b03169063f4e569919061196e9060039060040161358b565b602060405180830381865afa15801561198b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119af919061356e565b8454604051634463315560e11b81526001600160a01b03610100909204821660048201529116906388c662aa90602401602060405180830381865afa1580156119fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a20919061356e565b6001600160a01b031633149250505b60018301546001600160a01b03163b63ffffffff1615611ac1576001830154604051636f2cdea760e01b8152853560048201523360248201526001600160a01b0390911690636f2cdea790604401602060405180830381865afa158015611a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abe919061347c565b90505b8180611aca5750805b611ae65760405162461bcd60e51b81526004016102f5906136b5565b826004015484602001351015611b0e5760405162461bcd60e51b81526004016102f59061336b565b602084013515611bc257600084356020860135611b316060880160408901613398565b6040805160208101949094528301919091521515606082015260800160408051601f1981840301815291905280516020909101209050611bbc853582611b7a60608901896133b5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506103da9250505060808a018a6133b5565b50611c07565b611bd26060850160408601613398565b15611c075760405162461bcd60e51b815260206004820152600560248201526429a198181b60d91b60448201526064016102f5565b825460ff19166002178355606654600090611c2290426134cd565b6006850181905560088501805460ff1916851515908117909155604080516020808a013582528101849052908101919091529091508535907f0d778a22967eaa98ed5a1dc78d02c1ac54b345f19835543e7387f0658a646e6f9060600160405180910390a26118f58535602087013561047e6060890160408a01613398565b600084815260676020526040902080546001909101546001600160a01b036101009092048216911663ffffffff813b1615611d6857604051630f685fa960e01b81526001600160a01b03821690630f685fa990611d0690899089908890600401613454565b602060405180830381865afa158015611d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d47919061347c565b611d635760405162461bcd60e51b81526004016102f590613499565b611d75565b611d758584836000611fc6565b611d828585846001611fc6565b505050505050565b60008381526067602052604081206004810154909190611daa90856135f5565b90508382600301541115611dc45760048201849055611de5565b81600401548260030154611dd891906135f5565b6003830154600484015590505b8015611fb7578154600783015460655460405163f4e5699160e01b81526001600160a01b03610100909404841693600092169063f4e5699190611e2d9060099060040161358b565b602060405180830381865afa158015611e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6e919061356e565b60655460405163f4e5699160e01b8152919250611efb91839187916001600160a01b039091169063f4e5699190611eaa9060009060040161358b565b602060405180830381865afa158015611ec7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eeb919061356e565b6001600160a01b031691906128d3565b604051638b72ad0d60e01b8152600481018390526001600160a01b03848116602483015260448201869052829190821690638b72ad0d90606401600060405180830381600087803b158015611f4f57600080fd5b505af1158015611f63573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201529081018890528b92507f01afc1753796861f14072edbf5533d92c3be2f07c5807135e69c1fbe6be2765d915060600160405180910390a2505050505b82156118f5576118f5856122c0565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101859052600090605c0160405160208183030381529060405280519060200120905060006120208286612980565b9050821561217857836001600160a01b0316816001600160a01b0316036120485750506122ba565b60655460405163f4e5699160e01b81526000916001600160a01b03169063f4e569919061207a9060039060040161358b565b602060405180830381865afa158015612097573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120bb919061356e565b604051634463315560e11b81526001600160a01b03878116600483015291909116906388c662aa90602401602060405180830381865afa158015612103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612127919061356e565b9050806001600160a01b0316826001600160a01b0316146121725760405162461bcd60e51b8152602060048201526005602482015264534330303960d81b60448201526064016102f5565b50611d82565b836001600160a01b0316816001600160a01b0316036121985750506122ba565b60655460405163f4e5699160e01b81526000916001600160a01b03169063f4e56991906121ca9060109060040161358b565b602060405180830381865afa1580156121e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220b919061356e565b604051636488dab760e11b81526001600160a01b0387811660048301528481166024830152919091169063c911b56e90604401602060405180830381865afa15801561225b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227f919061347c565b9050806122b65760405162461bcd60e51b8152602060048201526005602482015264534330313160d81b60448201526064016102f5565b5050505b50505050565b6000818152606760205260409020600181015460028201546004909201546001600160a01b03909116919082803b63ffffffff1615612365576040516357c65a5760e01b8152600481018690526001600160a01b038516906357c65a5790602401602060405180830381865afa15801561233e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612362919061356e565b90505b60008581526067602052604080822060030154606554915163f4e5699160e01b81529092916001600160a01b03169063f4e56991906123a99060139060040161358b565b602060405180830381865afa1580156123c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ea919061356e565b905060006123f886846135f5565b9050808511156124c4576000888152606760205260408120600701546001600160a01b0384169063a37007029087612430868b6135f5565b8d60405160200161244391815260200190565b6040516020818303038152906040526040518563ffffffff1660e01b815260040161247194939291906135a5565b6020604051808303816000875af1158015612490573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b491906135dc565b90506124c081856134cd565b9350505b60006124d086856135f5565b905060006124de82896129a4565b905060006124ec82846135f5565b9050811561257c5760655460405163f4e5699160e01b815261257c918c9185916001600160a01b03169063f4e569919061252b9060009060040161358b565b602060405180830381865afa158015612548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256c919061356e565b6001600160a01b031691906129b9565b80156126555760655460405163f4e5699160e01b81526125b991879184916001600160a01b03169063f4e569919061252b9060009060040161358b565b846001600160a01b0316638e81f729606760008e81526020019081526020016000206007015489848f6040516020016125f491815260200190565b6040516020818303038152906040526040518563ffffffff1660e01b815260040161262294939291906135a5565b600060405180830381600087803b15801561263c57600080fd5b505af1158015612650573d6000803e3d6000fd5b505050505b893b63ffffffff16156126c45760405163a54ab45760e01b8152600481018c9052602481018390526001600160a01b038b169063a54ab45790604401600060405180830381600087803b1580156126ab57600080fd5b505af11580156126bf573d6000803e3d6000fd5b505050505b60008b815260676020908152604080832080546001600160a81b03191681556001810180546001600160a01b0319169055600281018490556003810184905560048101849055600581018490556006810184905560078101849055600801805460ff19169055606882528083209290925581518881529081018490528c917f6a1470f04a8ae76a618f26cf00b68c66839088732fe6de43c8f2431ea6bef7e09101610c55565b6033546001600160a01b03163314610c7c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102f5565b6040516001600160a01b03808516602483015283166044820152606481018290526122ba9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526129e9565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600061288c83612abe565b801561289d575061289d8383612af2565b9392505050565b600054610100900460ff166128cb5760405162461bcd60e51b81526004016102f5906136d3565b610c7c612b7b565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa158015612923573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294791906135dc565b90506122ba8463095ea7b360e01b8561296086866134cd565b6040516001600160a01b03909216602483015260448201526064016127f8565b600080600061298f8585612bab565b9150915061299c81612bf0565b509392505050565b60008183116129b3578261289d565b50919050565b6040516001600160a01b03831660248201526044810182905261136d90849063a9059cbb60e01b906064016127f8565b6000612a3e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d3a9092919063ffffffff16565b9050805160001480612a5f575080806020019051810190612a5f919061347c565b61136d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102f5565b6000612ad1826301ffc9a760e01b612af2565b8015612aec5750612aea826001600160e01b0319612af2565b155b92915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015612b64575060208210155b8015612b705750600081115b979650505050505050565b600054610100900460ff16612ba25760405162461bcd60e51b81526004016102f5906136d3565b610c7c3361282f565b6000808251604103612be15760208301516040840151606085015160001a612bd587828585612d51565b94509450505050612be9565b506000905060025b9250929050565b6000816004811115612c0457612c0461329d565b03612c0c5750565b6001816004811115612c2057612c2061329d565b03612c6d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016102f5565b6002816004811115612c8157612c8161329d565b03612cce5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016102f5565b6003816004811115612ce257612ce261329d565b0361167a5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016102f5565b6060612d498484600085612e15565b949350505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612d885750600090506003612e0c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612ddc573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612e0557600060019250925050612e0c565b9150600090505b94509492505050565b606082471015612e765760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102f5565b600080866001600160a01b03168587604051612e92919061371e565b60006040518083038185875af1925050503d8060008114612ecf576040519150601f19603f3d011682016040523d82523d6000602084013e612ed4565b606091505b5091509150612b708783838760608315612f4f578251600003612f48576001600160a01b0385163b612f485760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102f5565b5081612d49565b612d498383815115612f645781518083602001fd5b8060405162461bcd60e51b81526004016102f5919061373a565b600060208284031215612f9057600080fd5b5035919050565b600060208284031215612fa957600080fd5b813567ffffffffffffffff811115612fc057600080fd5b820160a0818503121561289d57600080fd5b634e487b7160e01b600052604160045260246000fd5b600082601f830112612ff957600080fd5b813567ffffffffffffffff8082111561301457613014612fd2565b604051601f8301601f19908116603f0116810190828211818310171561303c5761303c612fd2565b8160405283815286602085880101111561305557600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c0878903121561308e57600080fd5b863595506020870135945060408701359350606087013567ffffffffffffffff808211156130bb57600080fd5b6130c78a838b01612fe8565b945060808901359150808211156130dd57600080fd5b506130ea89828a01612fe8565b92505060a087013590509295509295509295565b600080600080600060a0868803121561311657600080fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8082111561314357600080fd5b61314f89838a01612fe8565b9350608088013591508082111561316557600080fd5b5061317288828901612fe8565b9150509295509295909350565b6001600160a01b038116811461167a57600080fd5b803561319f8161317f565b919050565b6000806000806000806000806000806101408b8d0312156131c457600080fd5b8a3599506131d460208c01613194565b98506131e260408c01613194565b975060608b0135965060808b0135955060a08b0135945060c08b0135935060e08b013567ffffffffffffffff8082111561321b57600080fd5b6132278e838f01612fe8565b94506101008d013591508082111561323e57600080fd5b61324a8e838f01612fe8565b93506101208d013591508082111561326157600080fd5b5061326e8d828e01612fe8565b9150509295989b9194979a5092959850565b60006020828403121561329257600080fd5b813561289d8161317f565b634e487b7160e01b600052602160045260246000fd5b600381106132c3576132c361329d565b9052565b6000610140820190506132db8284516132b3565b60208301516132f560208401826001600160a01b03169052565b50604083015161331060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516133638285018215159052565b505092915050565b602080825260059082015264534330303560d81b604082015260600190565b801515811461167a57600080fd5b6000602082840312156133aa57600080fd5b813561289d8161338a565b6000808335601e198436030181126133cc57600080fd5b83018035915067ffffffffffffffff8211156133e757600080fd5b602001915036819003821315612be957600080fd5b60005b838110156134175781810151838201526020016133ff565b838111156122ba5750506000910152565b600081518084526134408160208601602086016133fc565b601f01601f19169290920160200192915050565b8381528260208201526060604082015260006134736060830184613428565b95945050505050565b60006020828403121561348e57600080fd5b815161289d8161338a565b6020808252600490820152632198181b60e11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156134e0576134e06134b7565b500190565b6040815260136040820152723a32b936b4b730ba32a2bc3834b930ba34b7b760691b606082015260806020820152600061289d6080830184613428565b8681526001600160a01b03868116602083015285166040820152606081018490526080810183905260c060a0820181905260009061356290830184613428565b98975050505050505050565b60006020828403121561358057600080fd5b815161289d8161317f565b602081016015831061359f5761359f61329d565b91905290565b84815260018060a01b03841660208201528260408201526080606082015260006135d26080830184613428565b9695505050505050565b6000602082840312156135ee57600080fd5b5051919050565b600082821015613607576136076134b7565b500390565b60006101008a835260018060a01b03808b166020850152808a166040850152508760608401528660808401528560a08401528460c08401528060e084015261365681840185613428565b9b9a5050505050505050505050565b600060018060a01b03808a1683528089166020840152508660408301528560608301528460808301528360a083015260e060c08301526136a860e0830184613428565b9998505050505050505050565b60208082526004908201526308e6060760e31b604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082516137308184602087016133fc565b9190910192915050565b60208152600061289d602083018461342856fea26469706673582212209bd8dfd32d885d6f7551ee489c71f2eecd97015bc10b3be90f599f3a7ce75eaf64736f6c634300080f0033