12 txs
61 calls
constructor
constructor(address _auctionV1, address _landRegistry, address _lockLeash, address _lockShiboshi)
functions
allBidInfoOf
viewfunction allBidInfoOf(address user) view returns (int16[], int16[])
auctionV1
viewfunction auctionV1() view returns (address)
availableCapacityOf
viewfunction availableCapacityOf(address user) view returns (uint256)
bidInfoOf
viewfunction bidInfoOf(address user) view returns (int16[], int16[])
currentStage
viewfunction currentStage() view returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getCategory
viewfunction getCategory(int16 x, int16 y) view returns (int8)
getCurrentBid
viewfunction getCurrentBid(int16, int16) view returns (uint256 amount, address bidder)
getOutbidPrice
purefunction getOutbidPrice(uint256 bidPrice) pure returns (uint256)
getPriceOf
viewfunction getPriceOf(int16 x, int16 y) view returns (uint256)
getReservePrice
viewfunction getReservePrice(int16 x, int16 y) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isShiboshiZone
purefunction isShiboshiZone(int16 x, int16 y) pure returns (bool)
landRegistry
viewfunction landRegistry() view returns (address)
lockLeash
viewfunction lockLeash() view returns (address)
lockShiboshi
viewfunction lockShiboshi() view returns (address)
mintedBy
viewfunction mintedBy(address user) view returns (int16[], int16[])
multiMintEnabled
viewfunction multiMintEnabled() view returns (bool)
priceOfCategory
viewfunction priceOfCategory(int8 category) view returns (uint256)
signerAddress
viewfunction signerAddress() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
weightToCapacity
purefunction weightToCapacity(uint256 weightLeash, uint256 weightShiboshi) pure returns (uint256)
winningsBidsOf
viewfunction winningsBidsOf(address user) view returns (uint256)
xHigh
viewfunction xHigh() view returns (int16)
xLow
viewfunction xLow() view returns (int16)
yHigh
viewfunction yHigh() view returns (int16)
yLow
viewfunction yLow() view returns (int16)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
mintPrivate
payablefunction mintPrivate(int16 x, int16 y) payable
mintPrivateMulti
payablefunction mintPrivateMulti(int16[] xs, int16[] ys, uint256[] prices) payable
mintPrivateShiboshiZone
payablefunction mintPrivateShiboshiZone(int16 x, int16 y, bytes signature) payable
mintPrivateShiboshiZoneMulti
payablefunction mintPrivateShiboshiZoneMulti(int16[] xs, int16[] ys, uint256[] prices, bytes signature) payable
mintPublic
payablefunction mintPublic(int16 x, int16 y) payable
mintPublicMulti
payablefunction mintPublicMulti(int16[] xs, int16[] ys, uint256[] prices) payable
mintWinningBid
nonpayablefunction mintWinningBid(int16[] xs, int16[] ys)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAuctionV1
nonpayablefunction setAuctionV1(address _auctionV1)
setLandRegistry
nonpayablefunction setLandRegistry(address _landRegistry)
setLockLeash
nonpayablefunction setLockLeash(address _lockLeash)
setLockShiboshi
nonpayablefunction setLockShiboshi(address _lockShiboshi)
setMultiMint
nonpayablefunction setMultiMint(bool desiredValue)
setSignerAddress
nonpayablefunction setSignerAddress(address signer)
setStage
nonpayablefunction setStage(uint256 stage)
withdraw
nonpayablefunction withdraw(address to, uint256 amount)
events
LandBought
event LandBought(address indexed user, uint32 indexed encXY, int16 x, int16 y, uint256 price, uint256 time, uint8 saleStage)
multiMintToggled
event multiMintToggled(bool newValue)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SignerSet
event SignerSet(address signer)
StageSet
event StageSet(uint256 stage)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50604051620040443803806200404483398101604081905262000034916200015f565b6001805562000045600033620000a5565b600280546001600160a01b03199081166001600160a01b03968716179091556003805482169486169490941790935560048054841692851692909217909155600580548316919093161790915560068054339216919091179055620001c7565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000142576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001013390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6001600160a01b03811681146200015c57600080fd5b50565b600080600080608085870312156200017657600080fd5b8451620001838162000146565b6020860151909450620001968162000146565b6040860151909350620001a98162000146565b6060860151909250620001bc8162000146565b939692955090935050565b613e6d80620001d76000396000f3fe60806040526004361061027c5760003560e01c8063935302cc1161014f578063d5ed9cba116100c1578063ed9969a41161007a578063ed9969a4146107da578063f3fef3a3146107ed578063f43612b91461080d578063f4c9cbf314610820578063f5ada9ad14610840578063f7eeae621461086057600080fd5b8063d5ed9cba14610731578063d630891014610751578063dce5fdbf14610771578063dfc1a73114610791578063e45d1cf8146107a7578063ebd6f3c0146107c757600080fd5b8063bd4dc02411610113578063bd4dc02414610689578063c67d0545146106a9578063c78daced146106c9578063cacee621146106e9578063d547741f146106fc578063d598c9e91461071c57600080fd5b8063935302cc146105b9578063a217fddf146105d9578063aaf5ddcd146105ee578063afc01ac314610653578063b3a6807c1461066957600080fd5b806344619830116101f35780636e6bdc2b116101ac5780636e6bdc2b146104f857806370cbc961146105185780637be8a6771461053857806380ca56a3146105585780638a37a3791461057957806391d148541461059957600080fd5b8063446198301461042457806347c3593f146104375780635b7633d01461045f5780635bf5d54c1461049757806363b15769146104c5578063674cb7c6146104d857600080fd5b80631b3e9916116102455780631b3e991614610346578063248a9ca3146103745780632f2ff15d146103a457806336568abe146103c45780633cef28d2146103e45780633eb1d7771461040457600080fd5b80626a25dd1461028157806301ffc9a7146102b457806302ed71ae146102e4578063046dc166146103065780630c6838bc14610326575b600080fd5b34801561028d57600080fd5b506102a161029c366004613480565b610893565b6040519081526020015b60405180910390f35b3480156102c057600080fd5b506102d46102cf36600461349d565b6109a2565b60405190151581526020016102ab565b3480156102f057600080fd5b506103046102ff366004613480565b6109d9565b005b34801561031257600080fd5b50610304610321366004613480565b610a08565b34801561033257600080fd5b506102a1610341366004613480565b610ac5565b34801561035257600080fd5b50610366610361366004613480565b610b57565b6040516102ab929190613505565b34801561038057600080fd5b506102a161038f366004613533565b60009081526020819052604090206001015490565b3480156103b057600080fd5b506103046103bf36600461354c565b610def565b3480156103d057600080fd5b506103046103df36600461354c565b610e1a565b3480156103f057600080fd5b506103666103ff366004613480565b610e98565b34801561041057600080fd5b5061030461041f366004613533565b610fd3565b6103046104323660046135c0565b611125565b34801561044357600080fd5b5061044c606381565b60405160019190910b81526020016102ab565b34801561046b57600080fd5b5060065461047f906001600160a01b031681565b6040516001600160a01b0390911681526020016102ab565b3480156104a357600080fd5b506006546104b890600160a01b900460ff1681565b6040516102ab9190613691565b6103046104d33660046136ef565b61136e565b3480156104e457600080fd5b5060055461047f906001600160a01b031681565b34801561050457600080fd5b506102d4610513366004613753565b61150f565b34801561052457600080fd5b5060045461047f906001600160a01b031681565b34801561054457600080fd5b506102a1610553366004613753565b61161d565b34801561056457600080fd5b506005546102d490600160a01b900460ff1681565b34801561058557600080fd5b50610304610594366004613480565b6116d2565b3480156105a557600080fd5b506102d46105b436600461354c565b611701565b3480156105c557600080fd5b506102a16105d4366004613753565b61172a565b3480156105e557600080fd5b506102a1600081565b3480156105fa57600080fd5b50610636610609366004613753565b6007602090815260009283526040808420909152908252902080546001909101546001600160a01b031682565b604080519283526001600160a01b039091166020830152016102ab565b34801561065f57600080fd5b5061044c60621981565b34801561067557600080fd5b5060025461047f906001600160a01b031681565b34801561069557600080fd5b5060035461047f906001600160a01b031681565b3480156106b557600080fd5b506102a16106c4366004613781565b6117aa565b3480156106d557600080fd5b506103046106e43660046137a3565b611984565b6103046106f7366004613753565b611a3f565b34801561070857600080fd5b5061030461071736600461354c565b611b01565b34801561072857600080fd5b5061044c606081565b34801561073d57600080fd5b5061030461074c366004613480565b611b27565b34801561075d57600080fd5b506102a161076c366004613533565b611b56565b34801561077d57600080fd5b506102a161078c3660046137d4565b611b6f565b34801561079d57600080fd5b5061044c605f1981565b3480156107b357600080fd5b506103046107c23660046137f1565b611bde565b6103046107d53660046135c0565b611f5e565b6103046107e8366004613753565b612239565b3480156107f957600080fd5b50610304610808366004613850565b612391565b61030461081b36600461387c565b6123d9565b34801561082c57600080fd5b5061030461083b366004613480565b6126f5565b34801561084c57600080fd5b5061036661085b366004613480565b612724565b34801561086c57600080fd5b5061088061087b366004613753565b612a04565b60405160009190910b81526020016102ab565b6004805460405163dd4bc10160e01b81526001600160a01b03848116938201939093526000928392169063dd4bc10190602401602060405180830381865afa1580156108e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610907919061393f565b60055460405163dd4bc10160e01b81526001600160a01b0386811660048301529293506000929091169063dd4bc10190602401602060405180830381865afa158015610957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097b919061393f565b905061098684610ac5565b61099083836117aa565b61099a919061396e565b949350505050565b60006001600160e01b03198216637965db0b60e01b14806109d357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006109e58133612a7d565b50600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a148133612a7d565b6001600160a01b038216610a6f5760405162461bcd60e51b815260206004820152601a60248201527f4552525f43414e4e4f545f42455f5a45524f5f4144445245535300000000000060448201526064015b60405180910390fd5b600680546001600160a01b0319166001600160a01b0384169081179091556040519081527f9eaa897564d022fb8c5efaf0acdb5d9d27b440b2aad44400b6e1c702e65b9ed3906020015b60405180910390a15050565b60025460405163031a0e2f60e21b81526001600160a01b0383811660048301526000921690630c6838bc90602401602060405180830381865afa158015610b10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b34919061393f565b6001600160a01b0383166000908152600860205260409020546109d39190613985565b600254604051630d9f4c8b60e11b81526001600160a01b038381166004830152606092839260009283921690631b3e991690602401600060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bd19190810190613a64565b81516001600160a01b0388166000908152600a602052604081208054949650929450909290610c008483613985565b6001600160401b03811115610c1757610c1761399d565b604051908082528060200260200182016040528015610c40578160200160208202803683370190505b5090506000610c4f8584613985565b6001600160401b03811115610c6657610c6661399d565b604051908082528060200260200182016040528015610c8f578160200160208202803683370190505b50905060005b85811015610d1f57878181518110610caf57610caf613ac7565b6020026020010151838281518110610cc957610cc9613ac7565b602002602001019060010b908160010b81525050868181518110610cef57610cef613ac7565b6020026020010151828281518110610d0957610d09613ac7565b600192830b602091820292909201015201610c95565b50845b610d2c8487613985565b811015610ddf57600080610d7f87610d448a8661396e565b81548110610d5457610d54613ac7565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16612ae1565b9150915081858481518110610d9657610d96613ac7565b602002602001019060010b908160010b8152505080848481518110610dbd57610dbd613ac7565b600192830b602091820292909201015283019150610dd89050565b9050610d22565b5090999098509650505050505050565b600082815260208190526040902060010154610e0b8133612a7d565b610e158383612b0b565b505050565b6001600160a01b0381163314610e8a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610a66565b610e948282612b8f565b5050565b6001600160a01b0381166000908152600960205260408120805460609283929190816001600160401b03811115610ed157610ed161399d565b604051908082528060200260200182016040528015610efa578160200160208202803683370190505b5090506000826001600160401b03811115610f1757610f1761399d565b604051908082528060200260200182016040528015610f40578160200160208202803683370190505b50905060005b83811015610fc657600080610f66878481548110610d5457610d54613ac7565b9150915081858481518110610f7d57610f7d613ac7565b602002602001019060010b908160010b8152505080848481518110610fa457610fa4613ac7565b600192830b602091820292909201015283019150610fbf9050565b9050610f46565b5090969095509350505050565b6000610fdf8133612a7d565b600282106110bc57600260009054906101000a90046001600160a01b03166001600160a01b0316635bf5d54c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105e9190613add565b600381111561106f5761106f613659565b156110bc5760405162461bcd60e51b815260206004820152601e60248201527f4552525f41554354494f4e5f56315f49535f4e4f545f44495341424c454400006044820152606401610a66565b8160038111156110ce576110ce613659565b6006805460ff60a01b1916600160a01b8360038111156110f0576110f0613659565b02179055506040518281527f02f604feff374725ab69a4a6b22fbfb7f79b787bc42299abdea1de38ec4ef4b690602001610ab9565b600380600654600160a01b900460ff16600381111561114657611146613659565b146111635760405162461bcd60e51b8152600401610a6690613afe565b6002600154036111855760405162461bcd60e51b8152600401610a6690613b35565b6002600155600554600160a01b900460ff166111b35760405162461bcd60e51b8152600401610a6690613b6c565b8560008190036111d55760405162461bcd60e51b8152600401610a6690613b9c565b8085146111f45760405162461bcd60e51b8152600401610a6690613bc2565b8083146112135760405162461bcd60e51b8152600401610a6690613bc2565b6000805b8281101561124d5785858281811061123157611231613ac7565b90506020020135826112439190613985565b9150600101611217565b5080341461126d5760405162461bcd60e51b8152600401610a6690613bf9565b3360005b8381101561135d5760008b8b8381811061128d5761128d613ac7565b90506020020160208101906112a29190613c30565b905060008a8a848181106112b8576112b8613ac7565b90506020020160208101906112cd9190613c30565b90506112f38483838c8c888181106112e7576112e7613ac7565b90506020020135612bf4565b6112fd8282612e71565b63ffffffff16846001600160a01b0316600080516020613e1883398151915284848d8d8981811061133057611330613ac7565b9050602002013542600360405161134b959493929190613c4d565b60405180910390a35050600101611271565b505060018055505050505050505050565b600280600654600160a01b900460ff16600381111561138f5761138f613659565b146113ac5760405162461bcd60e51b8152600401610a6690613afe565b6002600154036113ce5760405162461bcd60e51b8152600401610a6690613b35565b600260015561141b6113df33612e9d565b84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612edd92505050565b61145f5760405162461bcd60e51b815260206004820152601560248201527411549497d4d251d3905515549157d2539590531251605a1b6044820152606401610a66565b611469858561150f565b6114b05760405162461bcd60e51b81526020600482015260186024820152774552525f4e4f545f494e5f534849424f5348495f5a4f4e4560401b6044820152606401610a66565b6114bc33868634612bf4565b6114c68585612e71565b63ffffffff16336001600160a01b0316600080516020613e188339815191528787344260026040516114fc959493929190613c4d565b60405180910390a3505060018055505050565b6000600c8360010b12158015611529575060308360010b13155b8015611539575060638260010b13155b8015611549575060418260010b12155b15611556575060016109d3565b60318360010b1215801561156e5750604d8360010b13155b801561157e575060638260010b13155b801561158e5750604e8260010b12155b1561159b575060016109d3565b604c8360010b121580156115b35750604d8360010b13155b80156115c35750604d8260010b13155b80156115d3575060328260010b12155b156115e0575060016109d3565b60418360010b121580156115f85750604b8360010b13155b801561160757508160010b6032145b15611614575060016109d3565b50600092915050565b600182810b60009081526007602090815260408083209385900b8352929052908120805482036116c757600254604051637be8a67760e01b8152600186810b600483015285900b60248201526001600160a01b0390911690637be8a67790604401602060405180830381865afa15801561169b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bf919061393f565b9150506109d3565b80546116bf90611b56565b60006116de8133612a7d565b50600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6002546040516324d4c0b360e21b8152600184810b600483015283900b60248201526000916001600160a01b03169063935302cc90604401602060405180830381865afa15801561177f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a3919061393f565b9392505050565b60008060405180610140016040528060098152602001601e8152602001603c8152602001606481526020016082815260200160b4815260200160dc815260200161012c815260200161017281526020016101a381525090506000604051806101400160405280602d8152602001605981526020016096815260200160fa815260200161015e81526020016101e0815260200161025881526020016102bc81526020016103208152602001610352815250905060006040518061014001604052806001815260200160058152602001600a815260200160148152602001603281526020016050815260200160648152602001608c815260200160b4815260200160c881525090506000808711156119205760095b8481600a81106118cf576118cf613ac7565b60200201516118e690670de0b6b3a7640000613c7d565b881115611915578281600a81106118ff576118ff613ac7565b602002015161190e9083613985565b915061191e565b600019016118bd565b505b851561197a5760095b8381600a811061193b5761193b613ac7565b602002015187111561196f578281600a811061195957611959613ac7565b60200201516119689083613985565b9150611978565b60001901611929565b505b9695505050505050565b60006119908133612a7d565b811515600560149054906101000a900460ff161515036119f25760405162461bcd60e51b815260206004820152601960248201527f4552525f414c52454144595f444553495245445f56414c5545000000000000006044820152606401610a66565b60058054831515600160a01b0260ff60a01b199091161790556040517f81d89e0116bfd05c650b4de6b8a465c851946c4305a9552b6f757c4229df7c3b90610ab990841515815260200190565b600380600654600160a01b900460ff166003811115611a6057611a60613659565b14611a7d5760405162461bcd60e51b8152600401610a6690613afe565b600260015403611a9f5760405162461bcd60e51b8152600401610a6690613b35565b6002600155611ab033848434612bf4565b611aba8383612e71565b63ffffffff16336001600160a01b0316600080516020613e18833981519152858534426003604051611af0959493929190613c4d565b60405180910390a350506001805550565b600082815260208190526040902060010154611b1d8133612a7d565b610e158383612b8f565b6000611b338133612a7d565b50600380546001600160a01b0319166001600160a01b0392909216919091179055565b60006014611b65836015613c7d565b6109d39190613c9c565b60025460405163dce5fdbf60e01b8152600083810b6004830152916001600160a01b03169063dce5fdbf90602401602060405180830381865afa158015611bba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d3919061393f565b6003600654600160a01b900460ff166003811115611bfe57611bfe613659565b1480611c2757506002600654600160a01b900460ff166003811115611c2557611c25613659565b145b611c735760405162461bcd60e51b815260206004820181905260248201527f4552525f4d5553545f574149545f464f525f42494444494e475f544f5f454e446044820152606401610a66565b82818114611c935760405162461bcd60e51b8152600401610a6690613bc2565b60005b81811015611f56576000868683818110611cb257611cb2613ac7565b9050602002016020810190611cc79190613c30565b90506000858584818110611cdd57611cdd613ac7565b9050602002016020810190611cf29190613c30565b9050600182900b605f1913801590611d0f57506060600183900b13155b611d505760405162461bcd60e51b81526020600482015260126024820152714552525f585f4f55545f4f465f52414e474560701b6044820152606401610a66565b600181900b60621913801590611d6b57506063600182900b13155b611dac5760405162461bcd60e51b81526020600482015260126024820152714552525f595f4f55545f4f465f52414e474560701b6044820152606401610a66565b60025460405163aaf5ddcd60e01b8152600184810b600483015283900b60248201526000916001600160a01b03169063aaf5ddcd906044016040805180830381865afa158015611e00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e249190613cbe565b9150506001600160a01b038116611e705760405162461bcd60e51b815260206004820152601060248201526f11549497d393d7d0925117d193d5539160821b6044820152606401610a66565b60035460405162edcc2360e71b81526001600160a01b038381166004830152600186810b602484015285900b6044830152909116906376e6118090606401600060405180830381600087803b158015611ec857600080fd5b505af1158015611edc573d6000803e3d6000fd5b505050506001600160a01b0381166000908152600960205260409020611f028484612e71565b8154600181018355600092835260209092206008830401805463ffffffff92831660046007909516949094026101000a938402929093021990921617905550611f4f915082905060010190565b9050611c96565b505050505050565b600280600654600160a01b900460ff166003811115611f7f57611f7f613659565b14611f9c5760405162461bcd60e51b8152600401610a6690613afe565b600260015403611fbe5760405162461bcd60e51b8152600401610a6690613b35565b6002600155600554600160a01b900460ff16611fec5760405162461bcd60e51b8152600401610a6690613b6c565b85600081900361200e5760405162461bcd60e51b8152600401610a6690613b9c565b80851461202d5760405162461bcd60e51b8152600401610a6690613bc2565b80831461204c5760405162461bcd60e51b8152600401610a6690613bc2565b338161205782610893565b10156120a55760405162461bcd60e51b815260206004820152601f60248201527f4552525f494e53554646494349454e545f424944535f52454d41494e494e47006044820152606401610a66565b6000805b838110156120df578686828181106120c3576120c3613ac7565b90506020020135826120d59190613985565b91506001016120a9565b508034146120ff5760405162461bcd60e51b8152600401610a6690613bf9565b60005b8381101561135d5760008b8b8381811061211e5761211e613ac7565b90506020020160208101906121339190613c30565b905060008a8a8481811061214957612149613ac7565b905060200201602081019061215e9190613c30565b905061216a828261150f565b156121b75760405162461bcd60e51b815260206004820152601c60248201527f4552525f4e4f5f4d494e545f494e5f534849424f5348495f5a4f4e45000000006044820152606401610a66565b6121cf8583838c8c888181106112e7576112e7613ac7565b6121d98282612e71565b63ffffffff16856001600160a01b0316600080516020613e1883398151915284848d8d8981811061220c5761220c613ac7565b90506020020135426002604051612227959493929190613c4d565b60405180910390a35050600101612102565b600280600654600160a01b900460ff16600381111561225a5761225a613659565b146122775760405162461bcd60e51b8152600401610a6690613afe565b6002600154036122995760405162461bcd60e51b8152600401610a6690613b35565b60026001556122a733610893565b6000036122ee5760405162461bcd60e51b81526020600482015260156024820152744552525f4e4f5f424944535f52454d41494e494e4760581b6044820152606401610a66565b6122f8838361150f565b156123455760405162461bcd60e51b815260206004820152601c60248201527f4552525f4e4f5f4d494e545f494e5f534849424f5348495f5a4f4e45000000006044820152606401610a66565b61235133848434612bf4565b61235b8383612e71565b63ffffffff16336001600160a01b0316600080516020613e18833981519152858534426002604051611af0959493929190613c4d565b600061239d8133612a7d565b6040516001600160a01b0384169083156108fc029084906000818181858888f193505050501580156123d3573d6000803e3d6000fd5b50505050565b600280600654600160a01b900460ff1660038111156123fa576123fa613659565b146124175760405162461bcd60e51b8152600401610a6690613afe565b6002600154036124395760405162461bcd60e51b8152600401610a6690613b35565b6002600155600554600160a01b900460ff166124675760405162461bcd60e51b8152600401610a6690613b6c565b336124b061247482612e9d565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612edd92505050565b6124f45760405162461bcd60e51b815260206004820152601560248201527411549497d4d251d3905515549157d2539590531251605a1b6044820152606401610a66565b8860008190036125165760405162461bcd60e51b8152600401610a6690613b9c565b8088146125355760405162461bcd60e51b8152600401610a6690613bc2565b8086146125545760405162461bcd60e51b8152600401610a6690613bc2565b6000805b8281101561258e5788888281811061257257612572613ac7565b90506020020135826125849190613985565b9150600101612558565b508034146125ae5760405162461bcd60e51b8152600401610a6690613bf9565b60005b828110156126e25760008d8d838181106125cd576125cd613ac7565b90506020020160208101906125e29190613c30565b905060008c8c848181106125f8576125f8613ac7565b905060200201602081019061260d9190613c30565b9050612619828261150f565b6126605760405162461bcd60e51b81526020600482015260186024820152774552525f4e4f545f494e5f534849424f5348495f5a4f4e4560401b6044820152606401610a66565b6126788683838e8e888181106112e7576112e7613ac7565b6126828282612e71565b63ffffffff16866001600160a01b0316600080516020613e1883398151915284848f8f898181106126b5576126b5613ac7565b905060200201354260026040516126d0959493929190613c4d565b60405180910390a350506001016125b1565b5050600180555050505050505050505050565b60006127018133612a7d565b50600580546001600160a01b0319166001600160a01b0392909216919091179055565b60025460405163f5ada9ad60e01b81526001600160a01b03838116600483015260609283926000928392169063f5ada9ad90602401600060405180830381865afa158015612776573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261279e9190810190613a64565b81516001600160a01b03881660009081526008602052604081205493955091935091906127cb8383613985565b6001600160401b038111156127e2576127e261399d565b60405190808252806020026020018201604052801561280b578160200160208202803683370190505b509050600061281a8484613985565b6001600160401b038111156128315761283161399d565b60405190808252806020026020018201604052801561285a578160200160208202803683370190505b50905060005b848110156128ea5786818151811061287a5761287a613ac7565b602002602001015183828151811061289457612894613ac7565b602002602001019060010b908160010b815250508581815181106128ba576128ba613ac7565b60200260200101518282815181106128d4576128d4613ac7565b600192830b602091820292909201015201612860565b506001600160a01b0389166000908152600a60205260408120805486925b818110156129f1576001600160a01b038d166000908152600b60205260408120845490919085908490811061293f5761293f613ac7565b6000918252602080832060088304015460079092166004026101000a90910463ffffffff16835282019290925260400190205460ff166001036129e957600080612994858481548110610d5457610d54613ac7565b91509150818887815181106129ab576129ab613ac7565b602002602001019060010b908160010b81525050808787815181106129d2576129d2613ac7565b600192830b60209182029290920101528601955050505b600101612908565b50939b929a509198505050505050505050565b600254604051637bf7573160e11b8152600184810b600483015283900b60248201526000916001600160a01b03169063f7eeae6290604401602060405180830381865afa158015612a59573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a39190613ce3565b612a878282611701565b610e9457612a9f816001600160a01b03166014612f0a565b612aaa836020612f0a565b604051602001612abb929190613d2c565b60408051601f198184030181529082905262461bcd60e51b8252610a6691600401613da1565b600080612af561ffff601085901c166130a5565b9150612b0461ffff84166130a5565b9050915091565b612b158282611701565b610e94576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055612b4b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612b998282611701565b15610e94576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b8282600182900b605f1913801590612c1157506060600183900b13155b612c525760405162461bcd60e51b81526020600482015260126024820152714552525f585f4f55545f4f465f52414e474560701b6044820152606401610a66565b600181900b60621913801590612c6d57506063600182900b13155b612cae5760405162461bcd60e51b81526020600482015260126024820152714552525f595f4f55545f4f465f52414e474560701b6044820152606401610a66565b600185810b60009081526007602090815260408083209388900b835292905220805415612d135760405162461bcd60e51b81526020600482015260136024820152724552525f4e4f545f55505f464f525f53414c4560681b6044820152606401610a66565b612d1d868661172a565b8414612d3b5760405162461bcd60e51b8152600401610a6690613bf9565b600181810180546001600160a01b0319166001600160a01b038a1690811790915585835560009081526008602052604081208054909190612d7d908490613985565b9091555060009050612d8f8787612e71565b6001600160a01b038981166000818152600a602090815260408083208054600180820183559185528385206008820401805463ffffffff8a81166004600790951685026101000a81810292021990921617909155868652600b855283862090865290935292819020805460ff191684179055600354905162edcc2360e71b8152918201939093528b820b6024820152908a900b604482015292935016906376e6118090606401600060405180830381600087803b158015612e4f57600080fd5b505af1158015612e63573d6000803e3d6000fd5b505050505050505050505050565b600061ffff8261ffff161663ffff0000620100008561ffff16612e949190613dd4565b16179392505050565b6040516bffffffffffffffffffffffff19606083901b1660208201526000906034015b604051602081830303815290604052805190602001209050919050565b6000612ef282612eec856130bf565b906130fa565b6006546001600160a01b039182169116149392505050565b60606000612f19836002613c7d565b612f24906002613985565b6001600160401b03811115612f3b57612f3b61399d565b6040519080825280601f01601f191660200182016040528015612f65576020820181803683370190505b509050600360fc1b81600081518110612f8057612f80613ac7565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612faf57612faf613ac7565b60200101906001600160f81b031916908160001a9053506000612fd3846002613c7d565b612fde906001613985565b90505b6001811115613056576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061301257613012613ac7565b1a60f81b82828151811061302857613028613ac7565b60200101906001600160f81b031916908160001a90535060049490941c9361304f81613e00565b9050612fe1565b5083156117a35760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a66565b60006180008216156130bb575063ffff00001790565b5090565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01612ec0565b6000806000613109858561311e565b915091506131168161318c565b509392505050565b60008082516041036131545760208301516040840151606085015160001a61314887828585613345565b94509450505050613185565b825160400361317d5760208301516040840151613172868383613432565b935093505050613185565b506000905060025b9250929050565b60008160048111156131a0576131a0613659565b036131a85750565b60018160048111156131bc576131bc613659565b036132095760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a66565b600281600481111561321d5761321d613659565b0361326a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a66565b600381600481111561327e5761327e613659565b036132d65760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a66565b60048160048111156132ea576132ea613659565b036133425760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610a66565b50565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561337c5750600090506003613429565b8460ff16601b1415801561339457508460ff16601c14155b156133a55750600090506004613429565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156133f9573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661342257600060019250925050613429565b9150600090505b94509492505050565b6000806001600160ff1b0383168161344f60ff86901c601b613985565b905061345d87828885613345565b935093505050935093915050565b6001600160a01b038116811461334257600080fd5b60006020828403121561349257600080fd5b81356117a38161346b565b6000602082840312156134af57600080fd5b81356001600160e01b0319811681146117a357600080fd5b600081518084526020808501945080840160005b838110156134fa578151600190810b88529683019691830191016134db565b509495945050505050565b60408152600061351860408301856134c7565b828103602084015261352a81856134c7565b95945050505050565b60006020828403121561354557600080fd5b5035919050565b6000806040838503121561355f57600080fd5b8235915060208301356135718161346b565b809150509250929050565b60008083601f84011261358e57600080fd5b5081356001600160401b038111156135a557600080fd5b6020830191508360208260051b850101111561318557600080fd5b600080600080600080606087890312156135d957600080fd5b86356001600160401b03808211156135f057600080fd5b6135fc8a838b0161357c565b9098509650602089013591508082111561361557600080fd5b6136218a838b0161357c565b9096509450604089013591508082111561363a57600080fd5b5061364789828a0161357c565b979a9699509497509295939492505050565b634e487b7160e01b600052602160045260246000fd5b6004811061368d57634e487b7160e01b600052602160045260246000fd5b9052565b602081016109d3828461366f565b8060010b811461334257600080fd5b60008083601f8401126136c057600080fd5b5081356001600160401b038111156136d757600080fd5b60208301915083602082850101111561318557600080fd5b6000806000806060858703121561370557600080fd5b84356137108161369f565b935060208501356137208161369f565b925060408501356001600160401b0381111561373b57600080fd5b613747878288016136ae565b95989497509550505050565b6000806040838503121561376657600080fd5b82356137718161369f565b915060208301356135718161369f565b6000806040838503121561379457600080fd5b50508035926020909101359150565b6000602082840312156137b557600080fd5b813580151581146117a357600080fd5b8060000b811461334257600080fd5b6000602082840312156137e657600080fd5b81356117a3816137c5565b6000806000806040858703121561380757600080fd5b84356001600160401b038082111561381e57600080fd5b61382a8883890161357c565b9096509450602087013591508082111561384357600080fd5b506137478782880161357c565b6000806040838503121561386357600080fd5b823561386e8161346b565b946020939093013593505050565b6000806000806000806000806080898b03121561389857600080fd5b88356001600160401b03808211156138af57600080fd5b6138bb8c838d0161357c565b909a50985060208b01359150808211156138d457600080fd5b6138e08c838d0161357c565b909850965060408b01359150808211156138f957600080fd5b6139058c838d0161357c565b909650945060608b013591508082111561391e57600080fd5b5061392b8b828c016136ae565b999c989b5096995094979396929594505050565b60006020828403121561395157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561398057613980613958565b500390565b6000821982111561399857613998613958565b500190565b634e487b7160e01b600052604160045260246000fd5b80516139be8161369f565b919050565b600082601f8301126139d457600080fd5b815160206001600160401b03808311156139f0576139f061399d565b8260051b604051601f19603f83011681018181108482111715613a1557613a1561399d565b604052938452858101830193838101925087851115613a3357600080fd5b83870191505b84821015613a5957613a4a826139b3565b83529183019190830190613a39565b979650505050505050565b60008060408385031215613a7757600080fd5b82516001600160401b0380821115613a8e57600080fd5b613a9a868387016139c3565b93506020850151915080821115613ab057600080fd5b50613abd858286016139c3565b9150509250929050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215613aef57600080fd5b8151600481106117a357600080fd5b6020808252601b908201527f4552525f544849535f53544147455f4e4f545f4c4956455f5945540000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526016908201527511549497d35553151257d0925117d11254d05093115160521b604082015260600190565b6020808252600c908201526b11549497d393d7d25394155560a21b604082015260600190565b60208082526019908201527f4552525f494e5055545f4c454e4754485f4d49534d4154434800000000000000604082015260600190565b6020808252601c908201527f4552525f494e53554646494349454e545f414d4f554e545f53454e5400000000604082015260600190565b600060208284031215613c4257600080fd5b81356117a38161369f565b600060a0820190508660010b82528560010b602083015284604083015283606083015261197a608083018461366f565b6000816000190483118215151615613c9757613c97613958565b500290565b600082613cb957634e487b7160e01b600052601260045260246000fd5b500490565b60008060408385031215613cd157600080fd5b8251915060208301516135718161346b565b600060208284031215613cf557600080fd5b81516117a3816137c5565b60005b83811015613d1b578181015183820152602001613d03565b838111156123d35750506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613d64816017850160208801613d00565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613d95816028840160208801613d00565b01602801949350505050565b6020815260008251806020840152613dc0816040850160208701613d00565b601f01601f19169190910160400192915050565b600063ffffffff80831681851681830481118215151615613df757613df7613958565b02949350505050565b600081613e0f57613e0f613958565b50600019019056fed62a7516129ae59493adc9aebaefd2a06d20313fdd586db8540cca620ef97ce3a2646970667358221220ce9e8ebc627c51a76bdb8b294b646b2fdf49aaeb29cfc8bcc35f563ddc90fd7e64736f6c634300080d00330000000000000000000000009ed0f787223ff1feb0cfb33a9207c646d182e918000000000000000000000000efaed650f1a94801806bb110019d9b0dc79531a8000000000000000000000000f790b73f11fa1636d0d26db24bafb0f9b0ac337200000000000000000000000067cf6ebc89cc50f09a10745c414192fd62bbccd3