0 txs
119 calls
constructor
constructor()
functions
auctionV1
viewfunction auctionV1() view returns (address)
currentStage
viewfunction currentStage() view returns (uint8)
ethToShib
viewfunction ethToShib() view returns (uint256)
getCategory
viewfunction getCategory(int16 x, int16 y) view returns (int8)
getMessageFee
viewfunction getMessageFee(tuple[] updates) view returns (uint256)
getPriceInEth
viewfunction getPriceInEth(int16 x, int16 y) view returns (uint256)
getPriceInShib
viewfunction getPriceInShib(int16 x, int16 y) view returns (uint256)
getRouter
viewfunction getRouter() view returns (address)
getRouterAddress
viewfunction getRouterAddress() view returns (address)
landRegistry
viewfunction landRegistry() view returns (address)
mintedOnShibarium
viewfunction mintedOnShibarium(uint256) view returns (bool)
moderator
viewfunction moderator() view returns (address)
multiMintEnabled
viewfunction multiMintEnabled() view returns (bool)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
purchases
viewfunction purchases(int16, int16) view returns (uint256 amount, address buyer, bool isShib)
SHIB
viewfunction SHIB() view returns (address)
shibariumChainSelector
viewfunction shibariumChainSelector() view returns (uint64)
shibariumSaleContract
viewfunction shibariumSaleContract() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
xHigh
viewfunction xHigh() view returns (int16)
xLow
viewfunction xLow() view returns (int16)
yHigh
viewfunction yHigh() view returns (int16)
yLow
viewfunction yLow() view returns (int16)
ccipReceive
nonpayablefunction ccipReceive(tuple message)
getData
nonpayablefunction getData(address _provider, uint256 _fee) returns (bytes32)
increaseRouterAllowance
nonpayablefunction increaseRouterAllowance(uint256 _amount)
initialize
nonpayablefunction initialize(address _landRegistry, address _auctionV1, address _shib, uint64 _shibariumChainSelector, address _xfund, address _router, address _ccipRouter)
mintPublic
payablefunction mintPublic(int16 x, int16 y) payable
mintPublicMulti
payablefunction mintPublicMulti(int16[] xs, int16[] ys) payable
mintPublicWithShib
payablefunction mintPublicWithShib(int16 x, int16 y) payable
mintPublicWithShibMulti
payablefunction mintPublicWithShibMulti(int16[] xs, int16[] ys) payable
mintWinningBid
payablefunction mintWinningBid(int16[] xs, int16[] ys) payable
rawReceiveData
nonpayablefunction rawReceiveData(uint256 _price, bytes32 _requestId)
renounceOwnership
nonpayablefunction renounceOwnership()
setAuctionV1
nonpayablefunction setAuctionV1(address _auctionV1)
setLandRegistry
nonpayablefunction setLandRegistry(address _landRegistry)
setModerator
nonpayablefunction setModerator(address _moderator)
setMultiMint
nonpayablefunction setMultiMint(bool enabled)
setShibariumSaleContract
nonpayablefunction setShibariumSaleContract(address _saleContract)
setStage
nonpayablefunction setStage(uint8 stage)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw()
withdrawShib
nonpayablefunction withdrawShib()
withdrawXFund
nonpayablefunction withdrawXFund()
events
Initialized
event Initialized(uint64 version)
LandBought
event LandBought(address indexed user, uint32 indexed encXY, int16 x, int16 y, uint256 price, bool isShib, uint256 time)
MintStatusUpdated
event MintStatusUpdated(uint256 indexed id, bool isMinted)
MultiMintToggled
event MultiMintToggled(bool newValue)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
StageSet
event StageSet(uint8 stage)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidAddress
error InvalidAddress()
InvalidInitialization
error InvalidInitialization()
InvalidRouter
error InvalidRouter(address router)
MessageSendFailed
error MessageSendFailed()
NoMessageToSend
error NoMessageToSend()
NotEnoughBalance
error NotEnoughBalance(uint256 currentBalance, uint256 calculatedFees)
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b60805161487162000104600039600081816134710152818161349a01526135db01526148716000f3fe60806040526004361061028c5760003560e01c80638da5cb5b1161015a578063ce3cd997116100c1578063e24b85e71161007a578063e24b85e71461080d578063e45d1cf81461082d578063f1e2bf5414610840578063f2fde38b14610860578063f7eeae6214610880578063fd49dc5e146108b357600080fd5b8063ce3cd99714610754578063d1b5cd1514610774578063d54f7d5e146107a4578063d598c9e9146107c2578063d5ed9cba146107d7578063dfc1a731146107f757600080fd5b8063b0f479a111610113578063b0f479a1146106a3578063b3a6807c146106c1578063bd4dc024146106e1578063c1864d6c14610701578063c78daced14610721578063cacee6211461074157600080fd5b80638da5cb5b146105f1578063969890e414610606578063a4e756e714610626578063ad3cb1cc14610639578063afadcda614610677578063afc01ac31461068d57600080fd5b80634f1ef286116101fe57806375bba189116101b757806375bba189146104b857806379aaba3e146104d85780637c54e2521461055157806380ca56a31461059057806385572ffb146105b15780638a37a379146105d157600080fd5b80634f1ef2861461041857806352d1902d1461042b5780635bf5d54c14610440578063609af8ca1461046e5780636991cf8914610483578063715018a6146104a357600080fd5b80633874390411610250578063387439041461035d5780633ccfd60b1461039557806340f19a6a146103aa57806347c3593f146103bd5780634ae44563146103e55780634c83c4231461040557600080fd5b806301ffc9a7146102985780630e459224146102cd5780631f166bb9146102ef5780631f960cb51461030f5780632979d0251461033d57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102b86102b3366004613c0d565b6108c8565b60405190151581526020015b60405180910390f35b3480156102d957600080fd5b506102ed6102e8366004613c4c565b6108ff565b005b3480156102fb57600080fd5b506102ed61030a366004613c85565b610950565b34801561031b57600080fd5b5061032f61032a366004613d2b565b610bac565b6040519081526020016102c4565b34801561034957600080fd5b5061032f610358366004613d5e565b610c2c565b34801561036957600080fd5b5060085461037d906001600160a01b031681565b6040516001600160a01b0390911681526020016102c4565b3480156103a157600080fd5b506102ed610ca6565b6102ed6103b8366004613d2b565b610d31565b3480156103c957600080fd5b506103d2606381565b60405160019190910b81526020016102c4565b3480156103f157600080fd5b5061032f610400366004613e4b565b6110ea565b6102ed610413366004613f5a565b611210565b6102ed610426366004614034565b611863565b34801561043757600080fd5b5061032f61187e565b34801561044c57600080fd5b5060055461046190600160a01b900460ff1681565b6040516102c49190614099565b34801561047a57600080fd5b506102ed61189b565b34801561048f57600080fd5b506102ed61049e3660046140c1565b61199a565b3480156104af57600080fd5b506102ed611a37565b3480156104c457600080fd5b506102ed6104d3366004613c4c565b611a4b565b3480156104e457600080fd5b5061052c6104f3366004613d2b565b600b602090815260009283526040808420909152908252902080546001909101546001600160a01b03811690600160a01b900460ff1683565b604080519384526001600160a01b0390921660208401521515908201526060016102c4565b34801561055d57600080fd5b5060085461057890600160a01b90046001600160401b031681565b6040516001600160401b0390911681526020016102c4565b34801561059c57600080fd5b506005546102b890600160a81b900460ff1681565b3480156105bd57600080fd5b506102ed6105cc3660046140da565b611abe565b3480156105dd57600080fd5b506102ed6105ec366004613c4c565b611afc565b3480156105fd57600080fd5b5061037d611b4d565b34801561061257600080fd5b506102ed610621366004614114565b611b7b565b6102ed610634366004613f5a565b611bd5565b34801561064557600080fd5b5061066a604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516102c49190614186565b34801561068357600080fd5b5061032f60075481565b34801561069957600080fd5b506103d260621981565b3480156106af57600080fd5b506003546001600160a01b031661037d565b3480156106cd57600080fd5b5060055461037d906001600160a01b031681565b3480156106ed57600080fd5b5060045461037d906001600160a01b031681565b34801561070d57600080fd5b5060095461037d906001600160a01b031681565b34801561072d57600080fd5b506102ed61073c366004614199565b612124565b6102ed61074f366004613d2b565b6121d6565b34801561076057600080fd5b506102ed61076f3660046141b6565b6124cb565b34801561078057600080fd5b506102b861078f3660046140c1565b600a6020526000908152604090205460ff1681565b3480156107b057600080fd5b506002546001600160a01b031661037d565b3480156107ce57600080fd5b506103d2606081565b3480156107e357600080fd5b506102ed6107f2366004613c4c565b61252c565b34801561080357600080fd5b506103d2605f1981565b34801561081957600080fd5b5060065461037d906001600160a01b031681565b6102ed61083b366004613f5a565b61257d565b34801561084c57600080fd5b5061032f61085b366004613d2b565b612c0e565b34801561086c57600080fd5b506102ed61087b366004613c4c565b612c92565b34801561088c57600080fd5b506108a061089b366004613d2b565b612ccd565b60405160009190910b81526020016102c4565b3480156108bf57600080fd5b506102ed612d46565b60006001600160e01b031982166385572ffb60e01b14806108f957506001600160e01b031982166301ffc9a760e01b145b92915050565b610907612e88565b6001600160a01b03811661092e5760405163e6c4247b60e01b815260040160405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156109955750825b90506000826001600160401b031660011480156109b15750303b155b9050811580156109bf575080155b156109dd5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a0757845460ff60401b1916600160401b1785555b610a1033612eba565b610a18612ecb565b610a20612edb565b33600860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555085600360006101000a8154816001600160a01b0302191690836001600160a01b031602179055508b600460006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a600560006101000a8154816001600160a01b0302191690836001600160a01b0316021790555089600660006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088600860146101000a8154816001600160401b0302191690836001600160401b0316021790555087600160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555086600260006101000a8154816001600160a01b0302191690836001600160a01b031602179055508315610b9e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b6005546040516324d4c0b360e21b8152600184810b600483015283900b60248201526000916001600160a01b03169063935302cc90604401602060405180830381865afa158015610c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2591906141d7565b9392505050565b6008546000906001600160a01b03163314610c835760405162461bcd60e51b815260206004820152601260248201527122a9292fa7a7262cafa6a7a222a920aa27a960711b60448201526064015b60405180910390fd5b6b15d155120b94d212508b905160a21b610c9e848483612ee3565b949350505050565b610cae612e88565b4780610ced5760405162461bcd60e51b815260206004820152600e60248201526d4552525f4e4f5f42414c414e434560901b6044820152606401610c7a565b610cf5611b4d565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610d2d573d6000803e3d6000fd5b5050565b600180600554600160a01b900460ff166001811115610d5257610d52614083565b14610d6f5760405162461bcd60e51b8152600401610c7a906141f0565b610d7761302c565b6000610d838484613064565b60048054604051634f558e7960e01b81529293506001600160a01b031691634f558e7991610dbd9163ffffffff8616910190815260200190565b602060405180830381865afa158015610dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfe919061421d565b15610e1b5760405162461bcd60e51b8152600401610c7a9061423a565b63ffffffff81166000908152600a602052604090205460ff1615610e515760405162461bcd60e51b8152600401610c7a90614266565b60055460405163aaf5ddcd60e01b8152600186810b600483015285900b602482015260009182916001600160a01b039091169063aaf5ddcd906044016040805180830381865afa158015610ea9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecd919061429d565b90925090506001600160a01b03811615610ef95760405162461bcd60e51b8152600401610c7a906142cd565b6000610f058787612c0e565b600188810b6000908152600b60209081526040808320938b900b83529290522080549192509015610f485760405162461bcd60e51b8152600401610c7a906142fd565b604080516001808252818301909252600091816020015b6040805180820190915260008082526020820152815260200190600190039081610f5f57905050905060405180604001604052808763ffffffff1681526020016001151581525081600081518110610fb957610fb961432c565b60200260200101819052506000610fcf826110ea565b905080341015610ff15760405162461bcd60e51b8152600401610c7a90614342565b6006546040516323b872dd60e01b8152336004820152306024820152604481018690526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c919061421d565b5061107a8a8a866001613090565b611083826131fe565b600061108f823461438f565b905080156110c657604051339082156108fc029083906000818181858888f193505050501580156110c4573d6000803e3d6000fd5b505b50505050505050506110e5600160008051602061481c83398151915255565b505050565b600080826040516020016110fe91906143a2565b6040516020818303038152906040529050600061111c826000613370565b90506000306001600160a01b031663b0f479a16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561115e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118291906143fb565b6008546040516320487ded60e01b81529192506001600160a01b038316916320487ded916111c691600160a01b9091046001600160401b0316908690600401614418565b602060405180830381865afa1580156111e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120791906141d7565b95945050505050565b600180600554600160a01b900460ff16600181111561123157611231614083565b1461124e5760405162461bcd60e51b8152600401610c7a906141f0565b61125661302c565b600554600160a81b900460ff166112a95760405162461bcd60e51b815260206004820152601760248201527611549497d35553151257d352539517d11254d050931151604a1b6044820152606401610c7a565b838281146112c95760405162461bcd60e51b8152600401610c7a906144f4565b600080826001600160401b038111156112e4576112e4613d8a565b60405190808252806020026020018201604052801561132957816020015b60408051808201909152600080825260208201528152602001906001900390816113025790505b50905060005b8381101561169c57600061138f8a8a8481811061134e5761134e61432c565b90506020020160208101906113639190614521565b8989858181106113755761137561432c565b905060200201602081019061138a9190614521565b613064565b60048054604051634f558e7960e01b81529293506001600160a01b031691634f558e79916113c99163ffffffff8616910190815260200190565b602060405180830381865afa1580156113e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140a919061421d565b156114275760405162461bcd60e51b8152600401610c7a9061423a565b63ffffffff81166000908152600a602052604090205460ff161561145d5760405162461bcd60e51b8152600401610c7a90614266565b60055460009081906001600160a01b031663aaf5ddcd8d8d878181106114855761148561432c565b905060200201602081019061149a9190614521565b8c8c888181106114ac576114ac61432c565b90506020020160208101906114c19190614521565b6040516001600160e01b031960e085901b168152600192830b6004820152910b60248201526044016040805180830381865afa158015611505573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611529919061429d565b90925090506001600160a01b038116156115555760405162461bcd60e51b8152600401610c7a906142cd565b6000600b60008e8e8881811061156d5761156d61432c565b90506020020160208101906115829190614521565b60010b60010b815260200190815260200160002060008c8c888181106115aa576115aa61432c565b90506020020160208101906115bf9190614521565b60010b815260208101919091526040016000208054909150156115f45760405162461bcd60e51b8152600401610c7a906142fd565b60405180604001604052808563ffffffff168152602001600115158152508686815181106116245761162461432c565b60200260200101819052506116808d8d878181106116445761164461432c565b90506020020160208101906116599190614521565b8c8c8881811061166b5761166b61432c565b905060200201602081019061085b9190614521565b61168a908861453c565b9650506001909301925061132f915050565b5060006116a8826110ea565b9050803410156116ca5760405162461bcd60e51b8152600401610c7a90614342565b6006546040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611721573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611745919061421d565b5060005b848110156117f357600061178f8b8b848181106117685761176861432c565b905060200201602081019061177d9190614521565b8a8a8581811061166b5761166b61432c565b90506117ea8b8b848181106117a6576117a661432c565b90506020020160208101906117bb9190614521565b8a8a858181106117cd576117cd61432c565b90506020020160208101906117e29190614521565b836001613090565b50600101611749565b506117fd826131fe565b6000611809823461438f565b9050801561184057604051339082156108fc029083906000818181858888f1935050505015801561183e573d6000803e3d6000fd5b505b505050505061185c600160008051602061481c83398151915255565b5050505050565b61186b613466565b6118748261350b565b610d2d8282613513565b60006118886135d0565b506000805160206147fc83398151915290565b6118a3612e88565b6006546001600160a01b031663a9059cbb6118bc611b4d565b6006546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611904573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192891906141d7565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611973573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611997919061421d565b50565b6008546001600160a01b031633146119e95760405162461bcd60e51b815260206004820152601260248201527122a9292fa7a7262cafa6a7a222a920aa27a960711b6044820152606401610c7a565b6119f281613619565b6119975760405162461bcd60e51b81526020600482015260166024820152754552525f4641494c45445f544f5f494e43524541534560501b6044820152606401610c7a565b611a3f612e88565b611a4960006136eb565b565b611a53612e88565b6001600160a01b038116611a9c5760405162461bcd60e51b815260206004820152601060248201526f4552525f5a45524f5f4144445245535360801b6044820152606401610c7a565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b03163314611aeb576040516335fdcccd60e21b8152336004820152602401610c7a565b611997611af7826145e2565b61375c565b611b04612e88565b6001600160a01b038116611b2b5760405163e6c4247b60e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6002546001600160a01b03163314611bcc5760405162461bcd60e51b81526020600482015260146024820152731bdb9b1e48149bdd5d195c8818d85b8818d85b1b60621b6044820152606401610c7a565b610d2d82600755565b600180600554600160a01b900460ff166001811115611bf657611bf6614083565b14611c135760405162461bcd60e51b8152600401610c7a906141f0565b611c1b61302c565b600554600160a81b900460ff16611c6e5760405162461bcd60e51b815260206004820152601760248201527611549497d35553151257d352539517d11254d050931151604a1b6044820152606401610c7a565b83828114611c8e5760405162461bcd60e51b8152600401610c7a906144f4565b600080826001600160401b03811115611ca957611ca9613d8a565b604051908082528060200260200182016040528015611cee57816020015b6040805180820190915260008082526020820152815260200190600190039081611cc75790505b50905060005b83811015612020576000611d138a8a8481811061134e5761134e61432c565b60048054604051634f558e7960e01b81529293506001600160a01b031691634f558e7991611d4d9163ffffffff8616910190815260200190565b602060405180830381865afa158015611d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8e919061421d565b15611dab5760405162461bcd60e51b8152600401610c7a9061423a565b63ffffffff81166000908152600a602052604090205460ff1615611de15760405162461bcd60e51b8152600401610c7a90614266565b60055460009081906001600160a01b031663aaf5ddcd8d8d87818110611e0957611e0961432c565b9050602002016020810190611e1e9190614521565b8c8c88818110611e3057611e3061432c565b9050602002016020810190611e459190614521565b6040516001600160e01b031960e085901b168152600192830b6004820152910b60248201526044016040805180830381865afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead919061429d565b90925090506001600160a01b03811615611ed95760405162461bcd60e51b8152600401610c7a906142cd565b6000600b60008e8e88818110611ef157611ef161432c565b9050602002016020810190611f069190614521565b60010b60010b815260200190815260200160002060008c8c88818110611f2e57611f2e61432c565b9050602002016020810190611f439190614521565b60010b81526020810191909152604001600020805490915015611f785760405162461bcd60e51b8152600401610c7a906142fd565b60405180604001604052808563ffffffff16815260200160011515815250868681518110611fa857611fa861432c565b60200260200101819052506120048d8d87818110611fc857611fc861432c565b9050602002016020810190611fdd9190614521565b8c8c88818110611fef57611fef61432c565b905060200201602081019061032a9190614521565b61200e908861453c565b96505060019093019250611cf4915050565b50600061202c826110ea565b9050612038818461453c565b3410156120575760405162461bcd60e51b8152600401610c7a90614342565b60005b848110156121045760006120a08b8b848181106120795761207961432c565b905060200201602081019061208e9190614521565b8a8a85818110611fef57611fef61432c565b90506120fb8b8b848181106120b7576120b761432c565b90506020020160208101906120cc9190614521565b8a8a858181106120de576120de61432c565b90506020020160208101906120f39190614521565b836000613090565b5060010161205a565b5061210e826131fe565b600061211a828561453c565b611809903461438f565b61212c612e88565b801515600560159054906101000a900460ff1615150361217e5760405162461bcd60e51b815260206004820152600d60248201526c4552525f4e4f5f4348414e474560981b6044820152606401610c7a565b60058054821515600160a81b0260ff60a81b199091161790556040517fd8373d79d93cdfd438ab7d1911510595c9674c7e25171cb08f3b9673081ced18906121cb90831515815260200190565b60405180910390a150565b600180600554600160a01b900460ff1660018111156121f7576121f7614083565b146122145760405162461bcd60e51b8152600401610c7a906141f0565b61221c61302c565b60006122288484613064565b60048054604051634f558e7960e01b81529293506001600160a01b031691634f558e79916122629163ffffffff8616910190815260200190565b602060405180830381865afa15801561227f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a3919061421d565b156122c05760405162461bcd60e51b8152600401610c7a9061423a565b63ffffffff81166000908152600a602052604090205460ff16156122f65760405162461bcd60e51b8152600401610c7a90614266565b60055460405163aaf5ddcd60e01b8152600186810b600483015285900b602482015260009182916001600160a01b039091169063aaf5ddcd906044016040805180830381865afa15801561234e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612372919061429d565b90925090506001600160a01b0381161561239e5760405162461bcd60e51b8152600401610c7a906142cd565b60006123aa8787610bac565b600188810b6000908152600b60209081526040808320938b900b835292905220805491925090156123ed5760405162461bcd60e51b8152600401610c7a906142fd565b604080516001808252818301909252600091816020015b604080518082019091526000808252602082015281526020019060019003908161240457905050905060405180604001604052808763ffffffff168152602001600115158152508160008151811061245e5761245e61432c565b60200260200101819052506000612474826110ea565b9050612480818561453c565b34101561249f5760405162461bcd60e51b8152600401610c7a90614342565b6124ac8a8a866000613090565b6124b5826131fe565b60006124c1828661453c565b61108f903461438f565b6124d3612e88565b6005805482919060ff60a01b1916600160a01b8360018111156124f8576124f8614083565b02179055507f4ff5ebba87c29de84b67e21a40cf0f57ae9a017da902f978ed57d591852e849c816040516121cb9190614099565b612534612e88565b6001600160a01b03811661255b5760405163e6c4247b60e01b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b61258561302c565b828181146125a55760405162461bcd60e51b8152600401610c7a906144f4565b6000816001600160401b038111156125bf576125bf613d8a565b60405190808252806020026020018201604052801561260457816020015b60408051808201909152600080825260208201528152602001906001900390816125dd5790505b50905060005b828110156128865760006126508888848181106126295761262961432c565b905060200201602081019061263e9190614521565b8787858181106113755761137561432c565b60048054604051634f558e7960e01b81529293506001600160a01b031691634f558e799161268a9163ffffffff8616910190815260200190565b602060405180830381865afa1580156126a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cb919061421d565b156126e85760405162461bcd60e51b8152600401610c7a9061423a565b63ffffffff81166000908152600a602052604090205460ff161561271e5760405162461bcd60e51b8152600401610c7a90614266565b60055460009081906001600160a01b031663aaf5ddcd8b8b878181106127465761274661432c565b905060200201602081019061275b9190614521565b8a8a8881811061276d5761276d61432c565b90506020020160208101906127829190614521565b6040516001600160e01b031960e085901b168152600192830b6004820152910b60248201526044016040805180830381865afa1580156127c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127ea919061429d565b90925090506001600160a01b03811633146128405760405162461bcd60e51b815260206004820152601660248201527522a9292fa727aa2faba4a72724a723afa124a22222a960511b6044820152606401610c7a565b60405180604001604052808463ffffffff168152602001600115158152508585815181106128705761287061432c565b602090810291909101015250505060010161260a565b506000612892826110ea565b9050803410156128e45760405162461bcd60e51b815260206004820152601c60248201527f4552525f494e53554646494349454e545f4d4553534147455f464545000000006044820152606401610c7a565b60005b83811015612ba057600061292d8989848181106129065761290661432c565b905060200201602081019061291b9190614521565b8888858181106113755761137561432c565b90506000600b60008b8b868181106129475761294761432c565b905060200201602081019061295c9190614521565b60010b60010b815260200190815260200160002060008989868181106129845761298461432c565b90506020020160208101906129999190614521565b600190810b82526020808301939093526040918201600090812081815580830180546001600160a81b0319163360ff60a01b19811691909117909155808352600c865293822080549384018155825293902060088204018054600790921660049081026101000a63ffffffff8181021990941693881602929092179055549192506001600160a01b03909116906376e61180908c8c87818110612a3e57612a3e61432c565b9050602002016020810190612a539190614521565b8b8b88818110612a6557612a6561432c565b9050602002016020810190612a7a9190614521565b6040516001600160e01b031960e086901b1681526001600160a01b039093166004840152600191820b6024840152900b6044820152606401600060405180830381600087803b158015612acc57600080fd5b505af1158015612ae0573d6000803e3d6000fd5b505050508163ffffffff16336001600160a01b03167fca96251beb7865c082fa77d85f923fbfdec44a8c053cd6b2e6546113d320e6ad8c8c87818110612b2857612b2861432c565b9050602002016020810190612b3d9190614521565b8b8b88818110612b4f57612b4f61432c565b9050602002016020810190612b649190614521565b60408051600193840b81529190920b60208201526000818301819052606082015242608082015290519081900360a00190a350506001016128e7565b50612baa826131fe565b6000612bb6823461438f565b90508015612bed57604051339082156108fc029083906000818181858888f19350505050158015612beb573d6000803e3d6000fd5b505b50505050612c08600160008051602061481c83398151915255565b50505050565b600080612c1b8484610bac565b90506000670de0b6b3a764000082600754612c36919061468e565b612c4091906146a5565b905060008111610c9e5760405162461bcd60e51b815260206004820152601c60248201527f4552525f494e56414c49445f50524943455f434f4e56455253494f4e000000006044820152606401610c7a565b612c9a612e88565b6001600160a01b038116612cc457604051631e4fbdf760e01b815260006004820152602401610c7a565b611997816136eb565b600554604051637bf7573160e11b8152600184810b600483015283900b60248201526000916001600160a01b03169063f7eeae6290604401602060405180830381865afa158015612d22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2591906146c7565b612d4e612e88565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015612d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dbb91906141d7565b905060008111612dfe5760405162461bcd60e51b815260206004820152600e60248201526d4552525f4e4f5f42414c414e434560901b6044820152606401610c7a565b6001546001600160a01b031663a9059cbb612e17611b4d565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015612e64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2d919061421d565b33612e91611b4d565b6001600160a01b031614611a495760405163118cdaa760e01b8152336004820152602401610c7a565b612ec2613936565b6119978161397f565b612ed3613936565b611a49613987565b611a49613936565b6002546001600160a01b03841660009081526020818152604080832054815130606090811b6bffffffffffffffffffffffff19908116838701528a821b8116603484015296901b9095166048860152605c850152607c80850186905281518086039091018152609c9094019052825192019190912081906002546040516001620fb3e960e11b031981526001600160a01b038881166004830152602482018890526044820187905292935091169063ffe0982e906064016020604051808303816000875af1158015612fb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fdd919061421d565b612fe657600080fd5b6001600160a01b03851660009081526020819052604090205461300a90600161398f565b6001600160a01b03861660009081526020819052604090205590509392505050565b60008051602061481c83398151915280546001190161305e57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600061ffff8261ffff161663ffff0000620100008561ffff1661308791906146ea565b16179392505050565b600184810b6000908152600b6020908152604080832087850b8452909152812084815591820180546001600160a81b0319163360ff60a01b191617600160a01b851515021790556130e18686613064565b336000818152600c60209081526040808320805460018082018355918552929093206008830401805463ffffffff8781166004600790961686026101000a9081029102199091161790558154905162edcc2360e71b81529182019390935289820b60248201529088900b60448201529192506001600160a01b0316906376e6118090606401600060405180830381600087803b15801561318057600080fd5b505af1158015613194573d6000803e3d6000fd5b50506040805160018a810b825289900b6020820152908101879052851515606082015242608082015263ffffffff841692503391507fca96251beb7865c082fa77d85f923fbfdec44a8c053cd6b2e6546113d320e6ad9060a00160405180910390a3505050505050565b6000613209826110ea565b90503481111561323557604051634787a10360e11b815234600482015260248101829052604401610c7a565b60008260405160200161324891906143a2565b60405160208183030381529060405290506000613266826000613370565b90506000306001600160a01b031663b0f479a16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156132a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cc91906143fb565b6008546040516396f4e9f960e01b81529192506001600160a01b038316916396f4e9f991879161331191600160a01b90046001600160401b0316908790600401614418565b60206040518083038185885af115801561332f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061335491906141d7565b505050505050565b600160008051602061481c83398151915255565b6133ab6040518060a0016040528060608152602001606081526020016060815260200160006001600160a01b03168152602001606081525090565b6040805160a081019091526009546001600160a01b031660c08201528060e0810160408051808303601f190181529181529082526020808301879052815160008082529181018352929091019190613425565b60408051808201909152600080825260208201528152602001906001900390816133fe5790505b508152602001836001600160a01b0316815260200161345d60405180604001604052806207a1208152602001600115158152506139ee565b90529392505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806134ed57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166134e16000805160206147fc833981519152546001600160a01b031690565b6001600160a01b031614155b15611a495760405163703e46dd60e11b815260040160405180910390fd5b611997612e88565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561356d575060408051601f3d908101601f1916820190925261356a918101906141d7565b60015b61359557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610c7a565b6000805160206147fc83398151915281146135c657604051632a87526960e21b815260048101829052602401610c7a565b6110e58383613a41565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a495760405163703e46dd60e11b815260040160405180910390fd5b600154600254604051633950935160e01b81526001600160a01b0391821660048201526024810184905260009291909116906339509351906044016020604051808303816000875af1158015613673573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613697919061421d565b6136e35760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f20696e63726561736520616c6c6f77616e6365000000006044820152606401610c7a565b506001919050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60085460208201516001600160401b03908116600160a01b90920416146137bc5760405162461bcd60e51b81526020600482015260146024820152732bb937b7339031b430b4b71039b2b632b1ba37b960611b6044820152606401610c7a565b600954604082015180516001600160a01b03909216916137e4916020918101820191016143fb565b6001600160a01b03161461382b5760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b2b73232b960911b6044820152606401610c7a565b600081606001518060200190518101906138459190614712565b905060005b81518110156110e5578181815181106138655761386561432c565b602002602001015160200151600a60008484815181106138875761388761432c565b602002602001015160000151815260200190815260200160002060006101000a81548160ff0219169083151502179055508181815181106138ca576138ca61432c565b6020026020010151600001517f0d3b9e836525256429ec72234733d4c5e98c2050ed60a3a617b60d1c9a428b8c8383815181106139095761390961432c565b602002602001015160200151604051613926911515815260200190565b60405180910390a260010161384a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611a4957604051631afcd79f60e31b815260040160405180910390fd5b612c9a613936565b61335c613936565b60008061399c838561453c565b905083811015610c255760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c7a565b606063181dcf1060e01b82604051602401613a0991906147c6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915292915050565b613a4a82613a97565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115613a8f576110e58282613afc565b610d2d613b69565b806001600160a01b03163b600003613acd57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610c7a565b6000805160206147fc83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051613b1991906147df565b600060405180830381855af49150503d8060008114613b54576040519150601f19603f3d011682016040523d82523d6000602084013e613b59565b606091505b5091509150611207858383613b88565b3415611a495760405163b398979f60e01b815260040160405180910390fd5b606082613b9d57613b9882613be4565b610c25565b8151158015613bb457506001600160a01b0384163b155b15613bdd57604051639996b31560e01b81526001600160a01b0385166004820152602401610c7a565b5080610c25565b805115613bf45780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b600060208284031215613c1f57600080fd5b81356001600160e01b031981168114610c2557600080fd5b6001600160a01b038116811461199757600080fd5b600060208284031215613c5e57600080fd5b8135610c2581613c37565b80356001600160401b0381168114613c8057600080fd5b919050565b600080600080600080600060e0888a031215613ca057600080fd5b8735613cab81613c37565b96506020880135613cbb81613c37565b95506040880135613ccb81613c37565b9450613cd960608901613c69565b93506080880135613ce981613c37565b925060a0880135613cf981613c37565b915060c0880135613d0981613c37565b8091505092959891949750929550565b8035600181900b8114613c8057600080fd5b60008060408385031215613d3e57600080fd5b613d4783613d19565b9150613d5560208401613d19565b90509250929050565b60008060408385031215613d7157600080fd5b8235613d7c81613c37565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613dc257613dc2613d8a565b60405290565b60405160a081016001600160401b0381118282101715613dc257613dc2613d8a565b604051601f8201601f191681016001600160401b0381118282101715613e1257613e12613d8a565b604052919050565b60006001600160401b03821115613e3357613e33613d8a565b5060051b60200190565b801515811461199757600080fd5b60006020808385031215613e5e57600080fd5b82356001600160401b03811115613e7457600080fd5b8301601f81018513613e8557600080fd5b8035613e98613e9382613e1a565b613dea565b81815260069190911b82018301908381019087831115613eb757600080fd5b928401925b82841015613f045760408489031215613ed55760008081fd5b613edd613da0565b8435815285850135613eee81613e3d565b8187015282526040939093019290840190613ebc565b979650505050505050565b60008083601f840112613f2157600080fd5b5081356001600160401b03811115613f3857600080fd5b6020830191508360208260051b8501011115613f5357600080fd5b9250929050565b60008060008060408587031215613f7057600080fd5b84356001600160401b0380821115613f8757600080fd5b613f9388838901613f0f565b90965094506020870135915080821115613fac57600080fd5b50613fb987828801613f0f565b95989497509550505050565b600082601f830112613fd657600080fd5b81356001600160401b03811115613fef57613fef613d8a565b614002601f8201601f1916602001613dea565b81815284602083860101111561401757600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561404757600080fd5b823561405281613c37565b915060208301356001600160401b0381111561406d57600080fd5b61407985828601613fc5565b9150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106140bb57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156140d357600080fd5b5035919050565b6000602082840312156140ec57600080fd5b81356001600160401b0381111561410257600080fd5b820160a08185031215610c2557600080fd5b6000806040838503121561412757600080fd5b50508035926020909101359150565b60005b83811015614151578181015183820152602001614139565b50506000910152565b60008151808452614172816020860160208601614136565b601f01601f19169290920160200192915050565b602081526000610c25602083018461415a565b6000602082840312156141ab57600080fd5b8135610c2581613e3d565b6000602082840312156141c857600080fd5b813560028110610c2557600080fd5b6000602082840312156141e957600080fd5b5051919050565b6020808252601390820152724552525f53414c455f4e4f545f41435449564560681b604082015260600190565b60006020828403121561422f57600080fd5b8151610c2581613e3d565b60208082526012908201527111549497d053149150511657d3525395115160721b604082015260600190565b60208082526017908201527f4552525f4d494e5445445f4f4e5f53484942415249554d000000000000000000604082015260600190565b600080604083850312156142b057600080fd5b8251915060208301516142c281613c37565b809150509250929050565b60208082526016908201527522a9292fa420a9afaba4a72724a723afa124a22222a960511b604082015260600190565b60208082526015908201527411549497d053149150511657d4155490d21054d151605a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526018908201527f4552525f494e53554646494349454e545f5041594d454e540000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108f9576108f9614379565b602080825282518282018190526000919060409081850190868401855b828110156143ee576143de848351805182526020908101511515910152565b92840192908501906001016143bf565b5091979650505050505050565b60006020828403121561440d57600080fd5b8151610c2581613c37565b600060406001600160401b03851683526020604081850152845160a0604086015261444660e086018261415a565b905081860151603f1980878403016060880152614463838361415a565b6040890151888203830160808a01528051808352908601945060009350908501905b808410156144b757845180516001600160a01b0316835286015186830152938501936001939093019290860190614485565b5060608901516001600160a01b031660a08901526080890151888203830160c08a015295506144e6818761415a565b9a9950505050505050505050565b60208082526013908201527208aa4a4be988a9c8ea890be9a92a69a82a8869606b1b604082015260600190565b60006020828403121561453357600080fd5b610c2582613d19565b808201808211156108f9576108f9614379565b600082601f83011261456057600080fd5b81356020614570613e9383613e1a565b82815260069290921b8401810191818101908684111561458f57600080fd5b8286015b848110156145d757604081890312156145ac5760008081fd5b6145b4613da0565b81356145bf81613c37565b81528185013585820152835291830191604001614593565b509695505050505050565b600060a082360312156145f457600080fd5b6145fc613dc8565b8235815261460c60208401613c69565b602082015260408301356001600160401b038082111561462b57600080fd5b61463736838701613fc5565b6040840152606085013591508082111561465057600080fd5b61465c36838701613fc5565b6060840152608085013591508082111561467557600080fd5b506146823682860161454f565b60808301525092915050565b80820281158282048414176108f9576108f9614379565b6000826146c257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156146d957600080fd5b81518060000b8114610c2557600080fd5b63ffffffff81811683821602808216919082811461470a5761470a614379565b505092915050565b6000602080838503121561472557600080fd5b82516001600160401b0381111561473b57600080fd5b8301601f8101851361474c57600080fd5b805161475a613e9382613e1a565b81815260069190911b8201830190838101908783111561477957600080fd5b928401925b82841015613f0457604084890312156147975760008081fd5b61479f613da0565b84518152858501516147b081613e3d565b818701528252604093909301929084019061477e565b81518152602080830151151590820152604081016108f9565b600082516147f1818460208701614136565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220f06f5e3eb37504de1e660f50cfbe9c4960ca035d0f4fe28017aea514eb7b41c464736f6c63430008160033