139 txs
143 calls
constructor
constructor(address _sequencer, address _treasury, address _settleSequencer)
functions
accountCounter
viewfunction accountCounter(address) view returns (uint256)
auctionState
viewfunction auctionState(bytes32) view returns (uint8)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
calculateAuctionHash
purefunction calculateAuctionHash(address owner, address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve) pure returns (bytes32)
decimals
viewfunction decimals() view returns (uint8)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
feeMultiplier
viewfunction feeMultiplier() view returns (uint256)
forcedWithdrawDelay
viewfunction forcedWithdrawDelay() view returns (uint256)
guardians
viewfunction guardians(address) view returns (bool)
name
viewfunction name() view returns (string)
nonceState
viewfunction nonceState(uint256 nonce) view returns (bool)
orderNonces
viewfunction orderNonces(address account, uint256 nonce) view returns (bool)
owner
viewfunction owner() view returns (address)
pendingAuctionCancels
viewfunction pendingAuctionCancels(bytes32) view returns (uint256)
pendingWithdrawals
viewfunction pendingWithdrawals(address, uint256, uint256) view returns (uint256)
royaltyEngine
viewfunction royaltyEngine() view returns (address)
sealedFundingFactory
viewfunction sealedFundingFactory() view returns (address)
sequencer
viewfunction sequencer() view returns (address)
settleSequencer
viewfunction settleSequencer() view returns (address)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
treasury
viewfunction treasury() view returns (address)
cancelAuction
nonpayablefunction cancelAuction(address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve, tuple cancelAuctionPacket)
cancelOffer
nonpayablefunction cancelOffer(uint256 nonce)
cancelPendingWithdrawal
nonpayablefunction cancelPendingWithdrawal(uint256 timestamp, uint256 nonce)
changeAuction
nonpayablefunction changeAuction(address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve, uint256 newAuctionDuration, bytes32 newAuctionType, uint256 newReserve, tuple cancelAuctionPacket)
changeFee
nonpayablefunction changeFee(uint256 newFeeMultiplier)
changeForcedWithdrawDelay
nonpayablefunction changeForcedWithdrawDelay(uint256 newDelay)
changeSequencer
nonpayablefunction changeSequencer(address newSequencer, address newSettleSequencer)
changeTreasury
nonpayablefunction changeTreasury(address newTreasury)
createAuction
nonpayablefunction createAuction(address nftContract, uint256 auctionDuration, bytes32 auctionType, uint256 nftId, uint256 reserve)
deposit
payablefunction deposit(address receiver) payable
emergencyDisableSequencer
nonpayablefunction emergencyDisableSequencer()
executeCancelAuction
nonpayablefunction executeCancelAuction(address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve)
executePendingWithdrawal
nonpayablefunction executePendingWithdrawal(uint256 timestamp, uint256 nonce)
increaseCounter
nonpayablefunction increaseCounter(uint256 newCounter)
matchOrders
nonpayablefunction matchOrders(tuple sellerOffer, tuple buyerOffer, tuple sequencerStamp, address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve)
renounceOwnership
nonpayablefunction renounceOwnership()
setGuardian
nonpayablefunction setGuardian(address guardian, bool value)
settleAuction
nonpayablefunction settleAuction(address nftOwner, address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve, tuple bid, tuple bidWinner)
settleAuctionWithSealedBids
nonpayablefunction settleAuctionWithSealedBids(bytes32[] salts, address nftOwner, address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve, tuple bid, tuple bidWinner)
startCancelAuction
nonpayablefunction startCancelAuction(address nftContract, bytes32 auctionType, uint256 nftId, uint256 reserve)
startWithdrawal
nonpayablefunction startWithdrawal(uint256 amount, uint256 nonce)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(tuple packet)
withdrawWithSealedBids
nonpayablefunction withdrawWithSealedBids(bytes32[] salts, tuple packet)
events
AuctionCancelled
event AuctionCancelled(bytes32 auctionId)
AuctionCreated
event AuctionCreated(address owner, address nftContract, uint256 auctionDuration, bytes32 auctionType, uint256 nftId, uint256 reserve)
AuctionSettled
event AuctionSettled(bytes32 auctionId)
CancelWithdrawal
event CancelWithdrawal(address owner, uint256 timestamp, uint256 nonce)
CounterIncreased
event CounterIncreased(address account, uint256 newCounter)
ExecuteDelayedAuctionCancel
event ExecuteDelayedAuctionCancel(bytes32 auctionId)
ExecuteDelayedWithdrawal
event ExecuteDelayedWithdrawal(address owner, uint256 timestamp, uint256 nonce)
FeeChanged
event FeeChanged(uint256 newFeeMultiplier)
ForcedWithdrawDelayChanged
event ForcedWithdrawDelayChanged(uint256 newDelay)
GuardianSet
event GuardianSet(address guardian, bool value)
OfferCancelled
event OfferCancelled(address account, uint256 nonce)
OrdersMatched
event OrdersMatched(bytes32 auctionId, address buyer, address sender, uint256 buyerNonce, uint256 sellerNonce)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SequencerChanged
event SequencerChanged(address newSequencer, address newSettleSequencer)
SequencerDisabled
event SequencerDisabled(address guardian)
StartDelayedAuctionCancel
event StartDelayedAuctionCancel(bytes32 auctionId)
StartWithdrawal
event StartWithdrawal(address owner, uint256 timestamp, uint256 nonce, uint256 amount)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
TreasuryChanged
event TreasuryChanged(address newTreasury)
WithdrawNonceUsed
event WithdrawNonceUsed(uint256 nonce)
errors
No errors.
creation bytecode
0x60e06040526202a3006006553480156200001857600080fd5b5060405162004dbf38038062004dbf8339810160408190526200003b9162000270565b46608052620000e8604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f2aea0414eb9e6a9b2592f3f7f217c1e8a7593abc3be962bf885d94bc05072dd5918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60a052620000f633620001f9565b6001600160a01b038316158015906200011757506001600160a01b03811615155b620001685760405162461bcd60e51b815260206004820152601960248201527f3078302073657175656e636572206e6f7420616c6c6f77656400000000000000604482015260640160405180910390fd5b600280546001600160a01b038086166001600160a01b0319928316179092556004805485841690831617905560038054928416929091169190911790556040513090620001b59062000249565b6001600160a01b039091168152602001604051809103906000f080158015620001e2573d6000803e3d6000fd5b506001600160a01b031660c05250620002c4915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ae806200481183390190565b6001600160a01b03811681146200026d57600080fd5b50565b6000806000606084860312156200028657600080fd5b8351620002938162000257565b6020850151909350620002a68162000257565b6040850151909250620002b98162000257565b809150509250925092565b60805160a05160c051614516620002fb60003960008181610984015261356a015260006110ae01526000610fd901526145166000f3fe6080604052600436106102fd5760003560e01c8063715018a61161018f578063ba7df63d116100e1578063e5a70ef71161008a578063f2fde38b11610064578063f2fde38b146109fc578063f340fa0114610a1c578063fbde051114610a2f57600080fd5b8063e5a70ef7146109a6578063e67726f8146109bc578063ef706adf146109dc57600080fd5b8063cc8887f1116100bb578063cc8887f114610925578063d67c074e14610952578063e52044721461097257600080fd5b8063ba7df63d146108a7578063c02909ce146108c7578063c16973c61461090557600080fd5b806395d89b4111610143578063a03fd9c21161011d578063a03fd9c214610852578063b14f2a3914610867578063b85613e21461088757600080fd5b806395d89b41146107c95780639e80c074146108125780639fef66221461083257600080fd5b8063798289b011610174578063798289b01461075e5780637f86a2771461077e5780638da5cb5b1461079e57600080fd5b8063715018a6146107335780637522a6891461074857600080fd5b8063313ce567116102535780635c1bba38116101fc5780636a1db1bf116101d65780636a1db1bf146106b057806370431d29146106d057806370a08231146106f057600080fd5b80635c1bba381461061957806361d027b31461064657806364750c001461067357600080fd5b80633c5e3f461161022d5780633c5e3f46146105575780634b3c8643146105775780634c94c90c146105f157600080fd5b8063313ce567146104ee5780633644e5151461051557806337a61d721461052a57600080fd5b806325d86456116102b55780632d4353221161028f5780632d4353221461048e5780632e8f3cb8146104ae5780632ff4e454146104ce57600080fd5b806325d864561461042c57806327a9b06d1461044e5780632b8a1c5a1461046e57600080fd5b80630be650b2116102e65780630be650b21461039d57806318017d17146103ef57806318160ddd1461040f57600080fd5b80630633b14a1461030257806306fdde0314610347575b600080fd5b34801561030e57600080fd5b5061033261031d366004613bac565b600a6020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561035357600080fd5b506103906040518060400160405280600a81526020017f5365616c6564204554480000000000000000000000000000000000000000000081525081565b60405161033e9190613bc9565b3480156103a957600080fd5b506003546103ca9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161033e565b3480156103fb57600080fd5b5061033261040a366004613c35565b610a4f565b34801561041b57600080fd5b50475b60405190815260200161033e565b34801561043857600080fd5b5061044c610447366004613c4e565b610a74565b005b34801561045a57600080fd5b5061044c610469366004613caa565b610b14565b34801561047a57600080fd5b5061044c610489366004613d1a565b610b38565b34801561049a57600080fd5b5061044c6104a9366004613d58565b610bcf565b3480156104ba57600080fd5b5061044c6104c9366004613d7a565b610c2e565b3480156104da57600080fd5b5061044c6104e9366004613d58565b610ee9565b3480156104fa57600080fd5b50610503601281565b60405160ff909116815260200161033e565b34801561052157600080fd5b5061041e610fd5565b34801561053657600080fd5b5061041e610545366004613c35565b60096020526000908152604090205481565b34801561056357600080fd5b5061044c610572366004613dc8565b6110d0565b34801561058357600080fd5b5061041e610592366004613e6d565b6040805173ffffffffffffffffffffffffffffffffffffffff96871660208083019190915295909616868201526060860193909352608085019190915260a0808501919091528151808503909101815260c09093019052815191012090565b3480156105fd57600080fd5b506103ca73db0b8257cdf984d25f3446252e86c1163babe3dd81565b34801561062557600080fd5b506002546103ca9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561065257600080fd5b506004546103ca9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561067f57600080fd5b506106a361068e366004613c35565b60076020526000908152604090205460ff1681565b60405161033e9190613eed565b3480156106bc57600080fd5b5061044c6106cb366004613c35565b6119a4565b3480156106dc57600080fd5b5061044c6106eb366004613d58565b611a5a565b3480156106fc57600080fd5b5061041e61070b366004613bac565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205490565b34801561073f57600080fd5b5061044c611ac4565b34801561075457600080fd5b5061041e60065481565b34801561076a57600080fd5b5061044c610779366004613f8c565b611ad8565b34801561078a57600080fd5b5061044c610799366004613ff4565b611af1565b3480156107aa57600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff166103ca565b3480156107d557600080fd5b506103906040518060400160405280600481526020017f534554480000000000000000000000000000000000000000000000000000000081525081565b34801561081e57600080fd5b5061044c61082d366004613c35565b611b25565b34801561083e57600080fd5b5061044c61084d366004613d7a565b611be5565b34801561085e57600080fd5b5061044c611d19565b34801561087357600080fd5b5061044c610882366004613bac565b611e08565b34801561089357600080fd5b5061044c6108a236600461409d565b611e83565b3480156108b357600080fd5b506103326108c23660046140f1565b611f18565b3480156108d357600080fd5b5061041e6108e236600461411d565b600860209081526000938452604080852082529284528284209052825290205481565b34801561091157600080fd5b5061044c610920366004613c35565b611f5f565b34801561093157600080fd5b5061041e610940366004613bac565b600d6020526000908152604090205481565b34801561095e57600080fd5b5061044c61096d366004614152565b612008565b34801561097e57600080fd5b506103ca7f000000000000000000000000000000000000000000000000000000000000000081565b3480156109b257600080fd5b5061041e60055481565b3480156109c857600080fd5b5061044c6109d736600461416e565b612214565b3480156109e857600080fd5b5061044c6109f7366004613c35565b61273e565b348015610a0857600080fd5b5061044c610a17366004613bac565b61279b565b61044c610a2a366004613bac565b612852565b348015610a3b57600080fd5b5061044c610a4a3660046141e7565b6128dd565b600881901c6000908152600b6020526040812054600160ff84161b1615155b92915050565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810183905273ffffffffffffffffffffffffffffffffffffffff8616906323b872dd90606401600060405180830381600087803b158015610ae857600080fd5b505af1158015610afc573d6000803e3d6000fd5b50505050610b0d8585858585612a11565b5050505050565b610b218888888885612b97565b610b2e8885858986612a11565b5050505050505050565b610b40612ded565b73ffffffffffffffffffffffffffffffffffffffff82166000818152600a602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527fc4459d655e1efe034a75446f1f4db087f75d23bdfabccffafa6384cdb23a154491015b60405180910390a15050565b33600081815260086020908152604080832086845282528083208584528252808320929092558151928352820184905281018290527f0138d13a0a4f5066bd396cae651149d3b59142c266597178347e56af428f1bcf90606001610bc3565b604080513360208083019190915273ffffffffffffffffffffffffffffffffffffffff871682840152606082018690526080820185905260a08083018590528351808403909101815260c0909201835281519181019190912060008181526009909252919020548015801590610cb057504260065482610cae9190614244565b105b610d1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f746f6f20736f6f6e00000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600160008381526007602052604090205460ff166002811115610d4057610d40613ebe565b14610da7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f6e6f74206f70656e0000000000000000000000000000000000000000000000006044820152606401610d12565b600082815260076020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002179055600982528083209290925590518381527fd88fab4b08bf76f15cf2d6e03e382acf1edd6790ab82967e406abac37db20288910160405180910390a16040517f23b872dd0000000000000000000000000000000000000000000000000000000081523060048201523360248201526044810185905273ffffffffffffffffffffffffffffffffffffffff8716906323b872dd90606401600060405180830381600087803b158015610e9057600080fd5b505af1158015610ea4573d6000803e3d6000fd5b505050507f0dec9dd9ec09eb629e1af32788486e1b19b9b997c96f44ebf030db5e473fb45482604051610ed991815260200190565b60405180910390a1505050505050565b4260065483610ef89190614244565b10610f5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f746f6f20736f6f6e0000000000000000000000000000000000000000000000006044820152606401610d12565b336000908152600860209081526040808320858452825280832084845290915281208054919055610f8f81612e6e565b60408051338152602081018590529081018390527f6f503e8ca28bec5be28d038c8f1a6af9de4a4a7ee5bdbaa6f8702e169ae663219060600160405180910390a1505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146110ab576110a6604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f2aea0414eb9e6a9b2592f3f7f217c1e8a7593abc3be962bf885d94bc05072dd5918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b428560e001351161113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21646561646c696e6500000000000000000000000000000000000000000000006044820152606401610d12565b61114d60c0860160a08701613bac565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611276576111988661119360c0880160a08901613bac565b612f23565b6111a860c0860160a08701613bac565b73ffffffffffffffffffffffffffffffffffffffff166111c7876130ce565b73ffffffffffffffffffffffffffffffffffffffff16148015611210575060006111f760c0870160a08801613bac565b73ffffffffffffffffffffffffffffffffffffffff1614155b611276576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f21627579657200000000000000000000000000000000000000000000000000006044820152606401610d12565b61128660e0860160c08701613bac565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113aa576112cc8761119360e0880160c08901613bac565b6112dc60e0860160c08701613bac565b73ffffffffffffffffffffffffffffffffffffffff166112fb886131bf565b73ffffffffffffffffffffffffffffffffffffffff161480156113445750600061132b60e0870160c08801613bac565b73ffffffffffffffffffffffffffffffffffffffff1614155b6113aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2173656c6c6572000000000000000000000000000000000000000000000000006044820152606401610d12565b600061141b6113bf60e0880160c08901613bac565b6040805173ffffffffffffffffffffffffffffffffffffffff92831660208083019190915292891681830152606081018890526080810187905260a08082018790528251808303909101815260c0909101909152805191012090565b9050600160008281526007602052604090205460ff16600281111561144257611442613ebe565b1480156114525750808660600135145b6114b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6261642061756374696f6e2073746174650000000000000000000000000000006044820152606401610d12565b6080860135600160006114d160c08a0160a08b01613bac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461151a9190614257565b909155506000905061153260c0880160a08901613bac565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886080013560405161157d91815260200190565b60405180910390a3600081815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002179055608086013560a08901351480156115da57508660a001358660800135145b611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21616d6f756e74000000000000000000000000000000000000000000000000006044820152606401610d12565b6116506080890160608a01613bac565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156116c457506116956080880160608901613bac565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b61172a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f216e6674436f6e747261637400000000000000000000000000000000000000006044820152606401610d12565b8760800135831480156117405750866080013583145b6117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600660248201527f216e6674496400000000000000000000000000000000000000000000000000006044820152606401610d12565b60025473ffffffffffffffffffffffffffffffffffffffff166117c8876131f5565b73ffffffffffffffffffffffffffffffffffffffff1614611845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f2173657175656e636572000000000000000000000000000000000000000000006044820152606401610d12565b73ffffffffffffffffffffffffffffffffffffffff85166323b872dd3061187260c08a0160a08b01613bac565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260448101869052606401600060405180830381600087803b1580156118e657600080fd5b505af11580156118fa573d6000803e3d6000fd5b50505050611920858488608001358960c001602081019061191b9190613bac565b613293565b7fd39db9ec1f20b9c7d4edf4d5702674c36fac678aee167775904bd363e5246b188161195260c0890160a08a01613bac565b6040805192835273ffffffffffffffffffffffffffffffffffffffff90911660208301523390820152610100808a013560608301528a0135608082015260a00160405180910390a15050505050505050565b6119ac612ded565b67016345785d8a0000811115611a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f66656520746f6f206869676800000000000000000000000000000000000000006044820152606401610d12565b60058190556040518181527f6bbc57480a46553fa4d156ce702beef5f3ad66303b0ed1a5d4cb44966c6584c3906020015b60405180910390a150565b336000818152600860209081526040808320428085529083528184208685528352928190208690558051938452908301919091528101829052606081018390527f4b329ddc345d75efb083183f247a0b1e09018a8d4572c62794a1da50d353330590608001610bc3565b611acc612ded565b611ad660006134e8565b565b611ae383833361355d565b611aec81612008565b505050565b611b0b8989611b0660c0850160a08601613bac565b61355d565b611b1a87878787878787612214565b505050505050505050565b336000908152600d60205260409020548111611b9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f746f6f206c6f77000000000000000000000000000000000000000000000000006044820152606401610d12565b336000818152600d6020908152604091829020849055815192835282018390527f3a5e248acc8913ccb0680211c01d6d63a570cf10cc8e5b88555b96c292b1a6cd9101611a4f565b604080513360208083019190915273ffffffffffffffffffffffffffffffffffffffff871682840152606082018690526080820185905260a08083018590528351808403909101815260c09092019092528051910120600160008281526007602052604090205460ff166002811115611c6057611c60613ebe565b14611cc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6261642061756374696f6e2073746174650000000000000000000000000000006044820152606401610d12565b60008181526009602052604090819020429055517f8f11c790b515664c3e09e327db270b39ee57438bbdd0cb9f57d608fb3848d4a590611d0a9083815260200190565b60405180910390a15050505050565b336000908152600a602052604090205460ff161515600114611d97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420677561726469616e00000000000000000000000000000000000000006044820152606401610d12565b6002805461dead7fffffffffffffffffffffffff000000000000000000000000000000000000000091821681179092556003805490911690911790556040513381527f4848f4074ec7d0f96ffbb9c01b6907e9feafb4c0efaf3ba96a4cd5ed75ea09359060200160405180910390a1565b611e10612ded565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fc714d22a2f08b695f81e7c707058db484aa5b4d6b4c9fd64beb10fe85832f60890602001611a4f565b611e908585858585612b97565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523060048201523360248201526044810184905273ffffffffffffffffffffffffffffffffffffffff8616906323b872dd90606401600060405180830381600087803b158015611f0457600080fd5b505af1158015611b1a573d6000803e3d6000fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60209081526040808320600885901c8452909152812054600160ff84161b1615155b9392505050565b611f67612ded565b620d2f008110611fd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f3c313020646179730000000000000000000000000000000000000000000000006044820152606401610d12565b60068190556040518181527f3e0bee5a358b79753e71a357821c8a897cff484fccfa2509d98c25942652cd8e90602001611a4f565b60025473ffffffffffffffffffffffffffffffffffffffff1661202a82613639565b73ffffffffffffffffffffffffffffffffffffffff16146120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f2173657175656e636572000000000000000000000000000000000000000000006044820152606401610d12565b6120b48160a00135610a4f565b1561211b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f7265706c617965640000000000000000000000000000000000000000000000006044820152606401610d12565b60a0810135600881901c6000908152600b602052604090208054600160ff9093169290921b90911790553361215660e0830160c08401613bac565b73ffffffffffffffffffffffffffffffffffffffff16146121d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6e6f742073656e646572000000000000000000000000000000000000000000006044820152606401610d12565b6121e08160800135612e6e565b60405160a082013581527fc80927880e06c47f66a068a03d995487a7cb023cec681c517cd59c3f7ff1530290602001611a4f565b6040805173ffffffffffffffffffffffffffffffffffffffff808a1660208084019190915290891682840152606082018890526080820187905260a08083018790528351808403909101815260c09092019092528051910120600160008281526007602052604090205460ff16600281111561229257612292613ebe565b146122f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6261642061756374696f6e2073746174650000000000000000000000000000006044820152606401610d12565b600081815260076020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660021790556060820135811480156123465750808360600135145b6123ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f2161756374696f6e4964000000000000000000000000000000000000000000006044820152606401610d12565b6080808301359084013581118015906123c55750848110155b61242b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f21616d6f756e74000000000000000000000000000000000000000000000000006044820152606401610d12565b61243b60c0840160a08501613bac565b73ffffffffffffffffffffffffffffffffffffffff1661245a85613775565b73ffffffffffffffffffffffffffffffffffffffff16146124d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f2177696e6e6572000000000000000000000000000000000000000000000000006044820152606401610d12565b60035473ffffffffffffffffffffffffffffffffffffffff166124f984613848565b73ffffffffffffffffffffffffffffffffffffffff1614612576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f21736574746c6553657175656e636572000000000000000000000000000000006044820152606401610d12565b806001600061258b60c0870160a08801613bac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d49190614257565b90915550600090506125ec60c0850160a08601613bac565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161263391815260200190565b60405180910390a373ffffffffffffffffffffffffffffffffffffffff88166323b872dd3061266860c0870160a08801613bac565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260448101899052606401600060405180830381600087803b1580156126dc57600080fd5b505af11580156126f0573d6000803e3d6000fd5b505050506127008887838c613293565b6040518281527f9adaa52fec28b7d59b397f9b44bed38628a3d39e2c03278b14e9be3f14c799ba9060200160405180910390a1505050505050505050565b336000818152600c60209081526040808320600886901c84528252918290208054600160ff87161b179055815192835282018390527f899cab278284ae4a91172caa0943607a0bcb19766254c3ebe1139be00650b1029101611a4f565b6127a3612ded565b73ffffffffffffffffffffffffffffffffffffffff8116612846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d12565b61284f816134e8565b50565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604081208054349290612887908490614244565b909155505060405134815273ffffffffffffffffffffffffffffffffffffffff8216906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b6128e5612ded565b73ffffffffffffffffffffffffffffffffffffffff82161580159061291f575073ffffffffffffffffffffffffffffffffffffffff811615155b612985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f3078302073657175656e636572206e6f7420616c6c6f776564000000000000006044820152606401610d12565b6002805473ffffffffffffffffffffffffffffffffffffffff8481167fffffffffffffffffffffffff00000000000000000000000000000000000000009283168117909355600380549185169190921681179091556040805192835260208301919091527f6ec88bae255aa7e73521c3beb17e9bc7940169e669440c5531733c0d2e91110d9101610bc3565b604080513360208083019190915273ffffffffffffffffffffffffffffffffffffffff881682840152606082018690526080820185905260a08083018590528351808403909101815260c090920190925280519101206000808281526007602052604090205460ff166002811115612a8b57612a8b613ebe565b14612af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f72657065617465642061756374696f6e206964000000000000000000000000006044820152606401610d12565b60008181526007602052604090208054600191907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016828002179055506040805133815273ffffffffffffffffffffffffffffffffffffffff88166020820152908101869052606081018590526080810184905260a081018390527f8d23a5dfd11a91f2265cffdb358ef2106e197d9f5168852ec99ba53fb90526409060c001610ed9565b60025473ffffffffffffffffffffffffffffffffffffffff16612bb9826138c2565b73ffffffffffffffffffffffffffffffffffffffff1614612c36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f2173657175656e636572000000000000000000000000000000000000000000006044820152606401610d12565b604080513360208083019190915273ffffffffffffffffffffffffffffffffffffffff881682840152606082018790526080820186905260a08083018690528351808403909101815260c09092019092528051910120600160008281526007602052604090205460ff166002811115612cb157612cb1613ebe565b14612d18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f62616420737461746500000000000000000000000000000000000000000000006044820152606401610d12565b80826060013514612d85576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f2161756374696f6e4964000000000000000000000000000000000000000000006044820152606401610d12565b60008181526007602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600217905590518281527fd88fab4b08bf76f15cf2d6e03e382acf1edd6790ab82967e406abac37db202889101610ed9565b60005473ffffffffffffffffffffffffffffffffffffffff163314611ad6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d12565b3360009081526001602052604081208054839290612e8d908490614257565b9091555050604051600090339083908381818185875af1925050503d8060008114612ed4576040519150601f19603f3d011682016040523d82523d6000602084013e612ed9565b606091505b5050905080612ee757600080fd5b60405182815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b428260c0013511612f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21646561646c696e6500000000000000000000000000000000000000000000006044820152606401610d12565b612f9f81836101000135611f18565b15613006576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f216f726465724e6f6e63650000000000000000000000000000000000000000006044820152606401610d12565b336000908152600c60209081526040808320610100860135600881901c85529083528184208054600160ff9093169290921b909117905573ffffffffffffffffffffffffffffffffffffffff84168352600d90915290205460e0830135116130ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f21636f756e7465720000000000000000000000000000000000000000000000006044820152606401610d12565b5050565b6000610a6e7fbd0fdaf172daee893a4c200efd8c7fbcb1bb560cb6526afa5075a17583427f7f6131046080850160608601613bac565b84608001358560a001358660c001358760e00135886101000135604051602001613175979695949392919096875273ffffffffffffffffffffffffffffffffffffffff95909516602087015260408601939093526060850191909152608084015260a083015260c082015260e00190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526131b0602085018561426a565b84602001358560400135613983565b6000610a6e7ff776e24d515f23bab237cdb9dd891d82e2492aea54fe72cdfcb80ee25826f06b6131046080850160608601613bac565b6000610a6e7f5b04f53d4a6314f3487293714df115ceea564ec981a66b83d0353f46b603a2476060840135608085013561323560c0870160a08801613bac565b61324560e0880160c08901613bac565b604080516020810196909652850193909352606084019190915273ffffffffffffffffffffffffffffffffffffffff90811660808401521660a082015260e08085013560c083015201613175565b6040517ff533b80200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602481018490526044810183905260009073db0b8257cdf984d25f3446252e86c1163babe3dd9063f533b802906207a1209060640160006040518083038160008887f19350505050801561336957506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613366919081019061439a565b60015b1561347a57815160059081111561337e575081515b808251101561338b575080515b60005b81811015613401576133d28482815181106133ab576133ab61445f565b60200260200101518483815181106133c5576133c561445f565b6020026020010151613a89565b8281815181106133e4576133e461445f565b6020026020010151856133f79190614244565b945060010161338e565b5061340d60038761448e565b841115613476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f526f79616c747920746f6f2068696768000000000000000000000000000000006044820152606401610d12565b5050505b6000670de0b6b3a76400006005548561349391906144c9565b61349d919061448e565b6004549091506134c39073ffffffffffffffffffffffffffffffffffffffff1682613a89565b6134e0836134d18385614244565b6134db9087614257565b613a89565b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b82811015613633577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b32fe450620186a08686858181106135ba576135ba61445f565b90506020020135856040518463ffffffff1660e01b81526004016135fe92919091825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b600060405180830381600088803b15801561361857600080fd5b5087f19350505050801561362a575060015b50600101613560565b50505050565b6000816060013542106136a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f3e646561646c696e6500000000000000000000000000000000000000000000006044820152606401610d12565b6000611f587f8eb7a9de735afd3343c073938e4baa2ada22ae66f11efcae55e395d961cf33e16060850135608086013560a08701356136ed60e0890160c08a01613bac565b6040805160208101969096528501939093526060840191909152608083015273ffffffffffffffffffffffffffffffffffffffff1660a082015260c0015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052613766602086018661426a565b85602001358660400135613983565b6000806137c97fb1b810669639f245be94b8ea241be22267602ca9d3c88854583404de1bdb417f8460600135856080013560405160200161372b939291909283526020830191909152604082015260600190565b905073ffffffffffffffffffffffffffffffffffffffff8116610a6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f73696700000000000000000000000000000000000000000000000000000000006044820152606401610d12565b6000610a6e7fdefc6aec63d5066eb628bf3346255cf84fd74fbb3fdef120d9094162fededf686060840135608085013561388860c0870160a08801613bac565b604080516020810195909552840192909252606083015273ffffffffffffffffffffffffffffffffffffffff16608082015260a001613175565b60008160800135421115613932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f646561646c696e650000000000000000000000000000000000000000000000006044820152606401610d12565b610a6e7f2f569cb45ea15c1cad156c0991f7dfe0af8cb31fefdeb52b6d363915f6ed3a5683606001358460800135604051602001613175939291909283526020830191909152604082015260600190565b6000806001613990610fd5565b87805190602001206040516020016139da9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff881690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015613a56573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00151979650505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff1682620493e090604051600060405180830381858888f193505050503d8060008114613ae9576040519150601f19603f3d011682016040523d82523d6000602084013e613aee565b606091505b5090915050801515600003611aec5773ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081208054849290613b32908490614244565b909155505060405182815273ffffffffffffffffffffffffffffffffffffffff8416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461284f57600080fd5b600060208284031215613bbe57600080fd5b8135611f5881613b8a565b600060208083528351808285015260005b81811015613bf657858101830151858201604001528201613bda565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b600060208284031215613c4757600080fd5b5035919050565b600080600080600060a08688031215613c6657600080fd5b8535613c7181613b8a565b97602087013597506040870135966060810135965060800135945092505050565b600060a08284031215613ca457600080fd5b50919050565b600080600080600080600080610180898b031215613cc757600080fd5b8835613cd281613b8a565b97506020890135965060408901359550606089013594506080890135935060a0890135925060c08901359150613d0b8a60e08b01613c92565b90509295985092959890939650565b60008060408385031215613d2d57600080fd5b8235613d3881613b8a565b915060208301358015158114613d4d57600080fd5b809150509250929050565b60008060408385031215613d6b57600080fd5b50508035926020909101359150565b60008060008060808587031215613d9057600080fd5b8435613d9b81613b8a565b966020860135965060408601359560600135945092505050565b60006101208284031215613ca457600080fd5b60008060008060008060008789036103c0811215613de557600080fd5b613def8a8a613db5565b9750613dff8a6101208b01613db5565b96506101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc082011215613e3257600080fd5b5061024088019450610340880135613e4981613b8a565b969995985093966103608101359561038082013595506103a0909101359350915050565b600080600080600060a08688031215613e8557600080fd5b8535613e9081613b8a565b94506020860135613ea081613b8a565b94979496505050506040830135926060810135926080909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160038310613f28577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60008083601f840112613f4057600080fd5b50813567ffffffffffffffff811115613f5857600080fd5b6020830191508360208260051b8501011115613f7357600080fd5b9250929050565b600060e08284031215613ca457600080fd5b60008060006101008486031215613fa257600080fd5b833567ffffffffffffffff811115613fb957600080fd5b613fc586828701613f2e565b9094509250613fd990508560208601613f7a565b90509250925092565b600060c08284031215613ca457600080fd5b60008060008060008060008060006102208a8c03121561401357600080fd5b893567ffffffffffffffff81111561402a57600080fd5b6140368c828d01613f2e565b909a5098505060208a013561404a81613b8a565b965060408a013561405a81613b8a565b955060608a0135945060808a0135935060a08a0135925061407e8b60c08c01613c92565b915061408e8b6101608c01613fe2565b90509295985092959850929598565b600080600080600061012086880312156140b657600080fd5b85356140c181613b8a565b94506020860135935060408601359250606086013591506140e58760808801613c92565b90509295509295909350565b6000806040838503121561410457600080fd5b823561410f81613b8a565b946020939093013593505050565b60008060006060848603121561413257600080fd5b833561413d81613b8a565b95602085013595506040909401359392505050565b600060e0828403121561416457600080fd5b611f588383613f7a565b6000806000806000806000610200888a03121561418a57600080fd5b873561419581613b8a565b965060208801356141a581613b8a565b95506040880135945060608801359350608088013592506141c98960a08a01613c92565b91506141d9896101408a01613fe2565b905092959891949750929550565b600080604083850312156141fa57600080fd5b823561420581613b8a565b91506020830135613d4d81613b8a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610a6e57610a6e614215565b81810381811115610a6e57610a6e614215565b60006020828403121561427c57600080fd5b813560ff81168114611f5857600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156143035761430361428d565b604052919050565b600067ffffffffffffffff8211156143255761432561428d565b5060051b60200190565b600082601f83011261434057600080fd5b815160206143556143508361430b565b6142bc565b82815260059290921b8401810191818101908684111561437457600080fd5b8286015b8481101561438f5780518352918301918301614378565b509695505050505050565b600080604083850312156143ad57600080fd5b825167ffffffffffffffff808211156143c557600080fd5b818501915085601f8301126143d957600080fd5b815160206143e96143508361430b565b82815260059290921b8401810191818101908984111561440857600080fd5b948201945b8386101561442f57855161442081613b8a565b8252948201949082019061440d565b9188015191965090935050508082111561444857600080fd5b506144558582860161432f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000826144c4577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8082028115828204841417610a6e57610a6e61421556fea26469706673582212208304a4f246503d65aeaa2e40d59d621b599e33cc780c564b274f45ed29c548c564736f6c6343000812003360a060405234801561001057600080fd5b506040516105ae3803806105ae83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516105166100986000396000818160a401528181610157015261029f01526105166000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063772beaa414610046578063b32fe4501461008a578063d2f7265a1461009f575b600080fd5b61005961005436600461036e565b6100eb565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683529015156020830152015b60405180910390f35b61009d61009836600461036e565b61029b565b005b6100c67f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610081565b60008060ff60f81b30856040518060200161010590610362565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820381018352601f90910116604081815273ffffffffffffffffffffffffffffffffffffffff89811660208401527f00000000000000000000000000000000000000000000000000000000000000001690820152606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526101ba92916020016103e7565b6040516020818303038152906040528051906020012060405160200161024294939291907fff0000000000000000000000000000000000000000000000000000000000000094909416845260609290921b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660018401526015830152603582015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209473ffffffffffffffffffffffffffffffffffffffff86163b1515945092505050565b81817f00000000000000000000000000000000000000000000000000000000000000006040516102ca90610362565b73ffffffffffffffffffffffffffffffffffffffff9283168152911660208201526040018190604051809103906000f590508015801561030e573d6000803e3d6000fd5b50506040805183815273ffffffffffffffffffffffffffffffffffffffff831660208201527feb5dae965a83916e519cf288b851b63be1cc0d9e8df7f7d633de5761e4221372910160405180910390a15050565b60dc8061040583390190565b6000806040838503121561038157600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff811681146103ac57600080fd5b809150509250929050565b6000815160005b818110156103d857602081850181015186830152016103be565b50600093019283525090919050565b60006103fc6103f683866103b7565b846103b7565b94935050505056fe6080604052348015600f57600080fd5b506040516100dc3803806100dc833981016040819052602c9160ad565b60405163f340fa0160e01b81526001600160a01b03838116600483015282169063f340fa019047906024016000604051808303818588803b158015606f57600080fd5b505af11580156082573d6000803e3d6000fd5b505050505060fe60005360016000f35b80516001600160a01b038116811460a857600080fd5b919050565b6000806040838503121560bf57600080fd5b60c6836092565b915060d2602084016092565b9050925092905056fea26469706673582212206f6c48264074756dd9b7d85411f7952c8a2cde2d4e2e800d12a7e90419e6513864736f6c63430008120033000000000000000000000000bc0f82d123b76e8ff5e7e8e825762137b1574292000000000000000000000000b1dd2fdb023cb54b7cc2a0f5d9e8d47a9f7723ce000000000000000000000000b1dd2fdb023cb54b7cc2a0f5d9e8d47a9f7723ce