45 txs
86 calls
constructor
constructor(address _ec_contract_address, address _rng, address _presigner)
functions
_iRnd
viewfunction _iRnd() view returns (address)
_randomReceived
viewfunction _randomReceived() view returns (bool)
_reqID
viewfunction _reqID() view returns (bytes32)
_tokenPreRevealURI
viewfunction _tokenPreRevealURI() view returns (string)
_tokenRevealedBaseURI
viewfunction _tokenRevealedBaseURI() view returns (string)
availableSales
viewfunction availableSales() view returns (uint128)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
currentIndex
viewfunction currentIndex() view returns (uint128)
discontMintLimit
viewfunction discontMintLimit() view returns (uint128)
discount_end
viewfunction discount_end() view returns (uint256)
discount_start
viewfunction discount_start() view returns (uint256)
ec_contract_address
viewfunction ec_contract_address() view returns (address)
EcSold
viewfunction EcSold() view returns (uint128)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getControllers
viewfunction getControllers() view returns (address[] _allowed)
how_long_more
viewfunction how_long_more(uint8 _phase) view returns (uint256 Days, uint256 Hours, uint256 Minutes, uint256 Seconds)
indexArray
viewfunction indexArray(address _user) view returns (uint256[])
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isController
viewfunction isController(address _controller) view returns (bool)
maxSold
viewfunction maxSold() view returns (uint128)
maxSupply
viewfunction maxSupply() view returns (uint128)
name
viewfunction name() view returns (string)
normalPrice
viewfunction normalPrice() view returns (uint256)
offset
viewfunction offset() view returns (uint256)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
presigner
viewfunction presigner() view returns (address)
reveal_start
viewfunction reveal_start() view returns (uint256)
revealLocked
viewfunction revealLocked() view returns (bool)
sale_end
viewfunction sale_end() view returns (uint256)
sale_start
viewfunction sale_start() view returns (uint256)
setupTime
viewfunction setupTime() view returns (bool)
shares
viewfunction shares(uint256) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tellEverything
viewfunction tellEverything() view returns (tuple)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
uri
viewfunction uri(uint256 n) view returns (uint256)
verify
viewfunction verify(address _user, bytes _signature) view returns (bool)
whitelist_claimed
viewfunction whitelist_claimed(address) view returns (uint256)
whiteListPrice
viewfunction whiteListPrice() view returns (uint256)
whiteListSold
viewfunction whiteListSold() view returns (uint128)
adminMint
nonpayablefunction adminMint(address _receiver, uint8 loop)
approve
nonpayablefunction approve(address to, uint256 tokenId)
approveController
nonpayablefunction approveController(address _controller)
buyCard
payablefunction buyCard(uint8 _amount) payable
changePresigner
nonpayablefunction changePresigner(address _presigner)
extendTime
nonpayablefunction extendTime(uint256 _discount_end, uint256 _sale_end, uint256 _reveal_start)
process
nonpayablefunction process(uint256 random, bytes32 reqID)
renounceOwnership
nonpayablefunction renounceOwnership()
retrieve721
nonpayablefunction retrieve721(address _tracker, uint256 _id)
retrieveERC20
nonpayablefunction retrieveERC20(address _token)
reveal
nonpayablefunction reveal()
revokeController
nonpayablefunction revokeController(address _controller)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setDataFolder
nonpayablefunction setDataFolder(string __tokenPreRevealURI, string __tokenRevealedBaseURI, bool _resetReveal)
setTime
nonpayablefunction setTime(uint256 _discount_start, uint256 _sale_start, address[] _wallets, uint256[] _shares)
setWallets
nonpayablefunction setWallets(address[] _wallets, uint256[] _shares)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
whiteListBuySignature
payablefunction whiteListBuySignature(uint8 _tokenCount, bytes signature, uint256 _ec_token_id) payable
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
ApprovedController
event ApprovedController(address indexed account, address indexed sender)
buyWithoutDiscount
event buyWithoutDiscount(address _buyer, uint8 __amount)
ECSale
event ECSale(uint256 tokenCount, address receiver, uint256 ecID)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RandomProcessed
event RandomProcessed(uint256 _offset)
RevokedController
event RevokedController(address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
WhiteListSale
event WhiteListSale(uint256 tokenCount, address receiver)
errors
No errors.
creation bytecode
0x67024a32a033f08000600f55670214e8348c4f00006010556000601755600360801b60185561027160841b601955601d805460ff1916905561010060405260566080818152906200525c60a03980516200006291602191602090910190620001ad565b503480156200007057600080fd5b50604051620052b2380380620052b2833981016040819052620000939162000253565b604080518082018252600a81526947656e6574696361747360b01b6020808301918252835180850190945260048452634754434160e01b908401528151919291620000e191600091620001ad565b508051620000f7906001906020840190620001ad565b505050620001146200010e6200015760201b60201c565b6200015b565b600d80546001600160a01b039485166001600160a01b031991821617909155600e80549385169382169390931790925560118054919093169116179055620002fc565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620001bb90620002a6565b90600052602060002090601f016020900481019282620001df57600085556200022a565b82601f10620001fa57805160ff19168380011785556200022a565b828001600101855582156200022a579182015b828111156200022a5782518255916020019190600101906200020d565b50620002389291506200023c565b5090565b5b808211156200023857600081556001016200023d565b60008060006060848603121562000268578283fd5b83516200027581620002e3565b60208501519093506200028881620002e3565b60408501519092506200029b81620002e3565b809150509250925092565b600281046001821680620002bb57607f821691505b60208210811415620002dd57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160a01b0381168114620002f957600080fd5b50565b614f50806200030c6000396000f3fe6080604052600436106103fd5760003560e01c80638b3e76fd1161020d578063b4e8a6c411610128578063d1be750b116100bb578063db86e4001161008a578063ece8ea4e1161006f578063ece8ea4e14610b0f578063f2fde38b14610b24578063f8f82c3414610b445761040d565b8063db86e40014610ada578063e985e9c514610aef5761040d565b8063d1be750b14610a63578063d555654414610a90578063d5abeb0114610aa5578063d7c48e7a14610aba5761040d565b8063be2b089f116100f7578063be2b089f146109f9578063c2ef7f5414610a0e578063c87b56dd14610a23578063cd627ef514610a435761040d565b8063b4e8a6c41461098f578063b53d706f146109b1578063b88d4fde146109c4578063b9b994d7146109e45761040d565b80639fd72b94116101a0578063ab5dea541161016f578063ab5dea541461091a578063b103dd291461093a578063b429afeb1461095a578063b46bc2691461097a5761040d565b80639fd72b94146108a5578063a22cb465146108c5578063a475b5dd146108e5578063a5b3abfb146108fa5761040d565b806393647ecb116101dc57806393647ecb14610846578063942723b114610866578063945ec9dd1461087b57806395d89b41146108905761040d565b80638b3e76fd146107e75780638da5cb5b146108075780638e74955b1461081c57806392ccacda146108315761040d565b806337dfcaac116103185780635fcc5adf116102ab5780636d26620e1161027a578063715018a61161025f578063715018a6146107a85780637d212732146107bd578063848628bf146107d25761040d565b80636d26620e1461077357806370a08231146107885761040d565b80635fcc5adf146107095780636352211e1461071e578063662326751461073e578063685756851461075e5761040d565b80634a41d1ac116102e75780634a41d1ac146106895780634f6ccce7146106a957806356e541bd146106c957806357a858fc146106e95761040d565b806337dfcaac146106045780633d64ac9b1461061957806342842e0e14610639578063457a8991146106595761040d565b806326987b60116103905780632f3ef7ac1161035f5780632f3ef7ac1461059a5780632f745c59146105af5780632feb9524146105cf57806335ce5395146105e45761040d565b806326987b601461052c5780632e5c0fe71461054e5780632eb0b99b146105635780632f151b76146105785761040d565b80630ad2db6d116103cc5780630ad2db6d146104b75780630e89341c146104ca57806318160ddd146104f757806323b872dd1461050c5761040d565b806301ffc9a71461041257806306fdde0314610448578063081812fc1461046a578063095ea7b3146104975761040d565b3661040d5761040b34610b59565b005b600080fd5b34801561041e57600080fd5b5061043261042d366004613c3a565b610cb4565b60405161043f9190614024565b60405180910390f35b34801561045457600080fd5b5061045d610cfa565b60405161043f9190614056565b34801561047657600080fd5b5061048a610485366004613ce7565b610d8c565b60405161043f9190613ef6565b3480156104a357600080fd5b5061040b6104b2366004613b50565b610dcf565b61040b6104c5366004613db3565b610e67565b3480156104d657600080fd5b506104ea6104e5366004613ce7565b610efe565b60405161043f919061402f565b34801561050357600080fd5b506104ea610f2c565b34801561051857600080fd5b5061040b610527366004613a2b565b610f32565b34801561053857600080fd5b50610541610f6a565b60405161043f9190614c14565b34801561055a57600080fd5b506104ea610f79565b34801561056f57600080fd5b50610541610f7f565b34801561058457600080fd5b5061058d610f95565b60405161043f9190614bd0565b3480156105a657600080fd5b506104ea610fe8565b3480156105bb57600080fd5b506104ea6105ca366004613b50565b610fee565b3480156105db57600080fd5b5061045d611043565b3480156105f057600080fd5b506104ea6105ff3660046139bb565b6110d1565b34801561061057600080fd5b506104326110e3565b34801561062557600080fd5b5061040b610634366004613cff565b6110ec565b34801561064557600080fd5b5061040b610654366004613a2b565b6111dd565b34801561066557600080fd5b50610679610674366004613db3565b6111f8565b60405161043f9493929190614c28565b34801561069557600080fd5b506104326106a4366004613b02565b6112de565b3480156106b557600080fd5b506104ea6106c4366004613ce7565b611380565b3480156106d557600080fd5b5061040b6106e43660046139bb565b6113db565b3480156106f557600080fd5b506104ea610704366004613ce7565b61143e565b34801561071557600080fd5b5061043261145f565b34801561072a57600080fd5b5061048a610739366004613ce7565b611468565b34801561074a57600080fd5b5061040b6107593660046139bb565b61149d565b34801561076a57600080fd5b506104ea611549565b34801561077f57600080fd5b5061045d61154f565b34801561079457600080fd5b506104ea6107a33660046139bb565b61155c565b3480156107b457600080fd5b5061040b6115a0565b3480156107c957600080fd5b506104ea6115eb565b3480156107de57600080fd5b506105416115f1565b3480156107f357600080fd5b5061040b6108023660046139bb565b611600565b34801561081357600080fd5b5061048a6116ab565b34801561082857600080fd5b5061048a6116ba565b34801561083d57600080fd5b506104ea6116c9565b34801561085257600080fd5b5061040b610861366004613b7b565b6116cf565b34801561087257600080fd5b5061054161178b565b34801561088757600080fd5b506104ea6117a1565b34801561089c57600080fd5b5061045d6117a7565b3480156108b157600080fd5b5061040b6108c0366004613d20565b6117b6565b3480156108d157600080fd5b5061040b6108e0366004613ad5565b61188f565b3480156108f157600080fd5b5061040b6118a1565b34801561090657600080fd5b5061040b610915366004613b50565b611a19565b34801561092657600080fd5b5061040b610935366004613c72565b611ad7565b34801561094657600080fd5b5061040b6109553660046139bb565b611b66565b34801561096657600080fd5b506104326109753660046139bb565b611cfe565b34801561098657600080fd5b50610541611d2d565b34801561099b57600080fd5b506109a4611d55565b60405161043f9190613f9f565b61040b6109bf366004613dcd565b611e20565b3480156109d057600080fd5b5061040b6109df366004613a6b565b612101565b3480156109f057600080fd5b506104ea61213a565b348015610a0557600080fd5b5061048a612140565b348015610a1a57600080fd5b5061043261214f565b348015610a2f57600080fd5b5061045d610a3e366004613ce7565b612158565b348015610a4f57600080fd5b5061040b610a5e366004613d88565b61234d565b348015610a6f57600080fd5b50610a83610a7e3660046139bb565b61239c565b60405161043f9190613fec565b348015610a9c57600080fd5b506104ea61254a565b348015610ab157600080fd5b50610541612550565b348015610ac657600080fd5b5061040b610ad5366004613baf565b612566565b348015610ae657600080fd5b506105416125ef565b348015610afb57600080fd5b50610432610b0a3660046139f3565b6125fe565b348015610b1b57600080fd5b506104ea61262c565b348015610b3057600080fd5b5061040b610b3f3660046139bb565b612632565b348015610b5057600080fd5b5061048a6126a0565b60008060005b602354811015610cae5760006103e860228381548110610b8f57634e487b7160e01b600052603260045260246000fd5b906000526020600020015486610ba59190614d28565b610baf9190614d14565b602354909150610bc190600190614d6f565b821415610bd957610bd28386614d6f565b9050610be6565b610be38184614cfc565b92505b60238281548110610c0757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546040516001600160a01b03909116908290610c2d90613ef3565b60006040518083038185875af1925050503d8060008114610c6a576040519150601f19603f3d011682016040523d82523d6000602084013e610c6f565b606091505b50508094505083610c9b5760405162461bcd60e51b8152600401610c9290614327565b60405180910390fd5b5080610ca681614e14565b915050610b5f565b50505050565b60006001600160e01b031982167f780e9d63000000000000000000000000000000000000000000000000000000001480610cf25750610cf2826126af565b90505b919050565b606060008054610d0990614db2565b80601f0160208091040260200160405190810160405280929190818152602001828054610d3590614db2565b8015610d825780601f10610d5757610100808354040283529160200191610d82565b820191906000526020600020905b815481529060010190602001808311610d6557829003601f168201915b5050505050905090565b6000610d9782612721565b610db35760405162461bcd60e51b8152600401610c9290614758565b506000908152600460205260409020546001600160a01b031690565b6000610dda82611468565b9050806001600160a01b0316836001600160a01b03161415610e0e5760405162461bcd60e51b8152600401610c9290614938565b806001600160a01b0316610e2061273e565b6001600160a01b03161480610e3c5750610e3c81610b0a61273e565b610e585760405162461bcd60e51b8152600401610c92906145ca565b610e628383612742565b505050565b601a5460ff16610e895760405162461bcd60e51b8152600401610c9290614429565b60145442118015610e9b575060155442105b610eb75760405162461bcd60e51b8152600401610c9290614a97565b610ec28160006127b0565b7ffa7834a1093287aa2ad7d58c362e5c73de010ba8c4ff5a2e56443e9cd6d67e1e3382604051610ef3929190613f83565b60405180910390a150565b601954601c54600091600160801b90046001600160801b031690610f229084614cfc565b610cf29190614e4f565b60085490565b610f43610f3d61273e565b826128a9565b610f5f5760405162461bcd60e51b8152600401610c9290614995565b610e6283838361292e565b6017546001600160801b031681565b60145481565b601754600160801b90046001600160801b031681565b610f9d613716565b6040518060c0016040528060125481526020016013548152602001601454815260200160155481526020016016548152602001610fd8611d2d565b6001600160801b03169052905090565b60165481565b6000610ff98361155c565b82106110175760405162461bcd60e51b8152600401610c929061410e565b506001600160a01b03821660009081526006602090815260408083208484529091529020545b92915050565b6021805461105090614db2565b80601f016020809104026020016040519081016040528092919081815260200182805461107c90614db2565b80156110c95780601f1061109e576101008083540402835291602001916110c9565b820191906000526020600020905b8154815290600101906020018083116110ac57829003601f168201915b505050505081565b60246020526000908152604090205481565b601d5460ff1681565b600e546001600160a01b031633146111165760405162461bcd60e51b8152600401610c9290614a29565b80601f5414156111c15760205460ff16156111435760405162461bcd60e51b8152600401610c92906143bb565b60195461116190600160801b90046001600160801b03166001614cd1565b611174906001600160801b031683614e4f565b601c8190556040517fff74eb8ed2a85f7032abbd6ce624acfda4ace664c3cc8ad760c0fd30c9d7eed9916111a79161402f565b60405180910390a16020805460ff191660011790556111d9565b60405162461bcd60e51b8152600401610c9290614293565b5050565b610e6283838360405180602001604052806000815250612101565b60008060008060008560ff16600114156112155750601254611253565b8560ff166002141561122a5750601454611253565b8560ff166003141561123f5750601654611253565b6000806000809450945094509450506112d7565b8042106112725760405162461bcd60e51b8152600401610c9290614b99565b600061127e4283614d6f565b905061128d6201518082614d14565b955061129c6201518082614e4f565b90506112aa610e1082614d14565b94506112b8610e1082614e4f565b90506112c5603c82614d14565b93506112d2603c82614e4f565b925050505b9193509193565b60006001600160a01b0383166113065760405162461bcd60e51b8152600401610c92906142ca565b60006113378460405160200161131c9190613e4e565b60405160208183030381529060405280519060200120612a5b565b9050825160411461135a5760405162461bcd60e51b8152600401610c9290614a60565b60006113668285612a8b565b6011546001600160a01b0391821691161495945050505050565b600061138a610f2c565b82106113a85760405162461bcd60e51b8152600401610c9290614ace565b600882815481106113c957634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6113e6600b33612aa7565b806114005750336113f56116ab565b6001600160a01b0316145b61141c5760405162461bcd60e51b8152600401610c92906140d7565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6022818154811061144e57600080fd5b600091825260209091200154905081565b601a5460ff1681565b6000818152600260205260408120546001600160a01b031680610cf25760405162461bcd60e51b8152600401610c9290614684565b6114a561273e565b6001600160a01b03166114b66116ab565b6001600160a01b0316146114dc5760405162461bcd60e51b8152600401610c92906147a4565b6114e7600b82612aa7565b156115045760405162461bcd60e51b8152600401610c929061486d565b61150f600b82612ac3565b5060405133906001600160a01b038316907fde4bbadbdbd1ed4cfc0454fa40ae242b7ef106adbe8466849ebf5cff831bc10590600090a350565b60105481565b601e805461105090614db2565b60006001600160a01b0382166115845760405162461bcd60e51b8152600401610c9290614627565b506001600160a01b031660009081526003602052604090205490565b6115a861273e565b6001600160a01b03166115b96116ab565b6001600160a01b0316146115df5760405162461bcd60e51b8152600401610c92906147a4565b6115e96000612ad8565b565b60125481565b6019546001600160801b031681565b61160861273e565b6001600160a01b03166116196116ab565b6001600160a01b03161461163f5760405162461bcd60e51b8152600401610c92906147a4565b61164a600b82612aa7565b6116665760405162461bcd60e51b8152600401610c92906148db565b611671600b82612b2a565b5060405133906001600160a01b038316907f799caeba7dd7e8649fefe03dd79338a265cf8f9738da0cd834338f2cab9abd1c90600090a350565b600a546001600160a01b031690565b600e546001600160a01b031681565b60135481565b6116da600b33612aa7565b806116f45750336116e96116ab565b6001600160a01b0316145b6117105760405162461bcd60e51b8152600401610c92906140d7565b6019546017546001600160801b03600160801b9092048216916117389160ff85169116614cd1565b6001600160801b0316111561175f5760405162461bcd60e51b8152600401610c92906149f2565b60005b8160ff168160ff161015610e625761177983612b3f565b8061178381614e2f565b915050611762565b601854600160801b90046001600160801b031681565b600f5481565b606060018054610d0990614db2565b6117c1600b33612aa7565b806117db5750336117d06116ab565b6001600160a01b0316145b6117f75760405162461bcd60e51b8152600401610c92906140d7565b60128490556118098462015180614cfc565b601355601483905561181e8362093a80614cfc565b60158190556118309062015180614cfc565b60165580518251146118545760405162461bcd60e51b8152600401610c9290614b62565b815161186790602390602085019061374c565b50805161187b9060229060208401906137ad565b5050601a805460ff19166001179055505050565b6111d961189a61273e565b8383612b88565b601a5460ff166118c35760405162461bcd60e51b8152600401610c9290614429565b60165442116118e45760405162461bcd60e51b8152600401610c9290614a97565b6118ef600b33612aa7565b806119095750336118fe6116ab565b6001600160a01b0316145b6119255760405162461bcd60e51b8152600401610c92906140d7565b601d5460ff16156119485760405162461bcd60e51b8152600401610c92906148a4565b601d805460ff191660011790556040805160608101909152603c808252614edf6020830139805161198191601e916020909101906137e8565b5060205460ff166115e957600e60009054906101000a90046001600160a01b03166001600160a01b031663c532bbac6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156119dc57600080fd5b505af11580156119f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a149190613c22565b601f55565b611a2161273e565b6001600160a01b0316611a326116ab565b6001600160a01b031614611a585760405162461bcd60e51b8152600401610c92906147a4565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081526001600160a01b038316906323b872dd90611aa190309033908690600401613f0a565b600060405180830381600087803b158015611abb57600080fd5b505af1158015611acf573d6000803e3d6000fd5b505050505050565b611ae2600b33612aa7565b80611afc575033611af16116ab565b6001600160a01b0316145b611b185760405162461bcd60e51b8152600401610c92906140d7565b8251611b2b9060219060208601906137e8565b508151611b3f90601e9060208501906137e8565b508015610e62576000601c556020805460ff19908116909155601d80549091169055505050565b611b6e61273e565b6001600160a01b0316611b7f6116ab565b6001600160a01b031614611ba55760405162461bcd60e51b8152600401610c92906147a4565b6001600160a01b038116611bf957611bbb6116ab565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015611bf3573d6000803e3d6000fd5b50611cfb565b806001600160a01b031663a9059cbb611c106116ab565b6040516370a0823160e01b81526001600160a01b038516906370a0823190611c3c903090600401613ef6565b60206040518083038186803b158015611c5457600080fd5b505afa158015611c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8c9190613c22565b6040518363ffffffff1660e01b8152600401611ca9929190613f6a565b602060405180830381600087803b158015611cc357600080fd5b505af1158015611cd7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d99190613c06565b50565b6000816001600160a01b0316611d126116ab565b6001600160a01b03161480610cf25750610cf2600b83612aa7565b601954600090611d50906001600160801b0380821691600160801b900416614d47565b905090565b6060611d61600b612c2b565b67ffffffffffffffff811115611d8757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611db0578160200160208202803683370190505b50905060005b611dc0600b612c2b565b811015611e1c57611dd2600b82612c36565b828281518110611df257634e487b7160e01b600052603260045260246000fd5b6001600160a01b039092166020928302919091019091015280611e1481614e14565b915050611db6565b5090565b601a5460ff16611e425760405162461bcd60e51b8152600401610c9290614429565b6012544210158015611e5657506013544211155b611e725760405162461bcd60e51b8152600401610c92906144a2565b80611f4c57611e8133836112de565b611e9d5760405162461bcd60e51b8152600401610c9290614593565b33600090815260246020526040812054611ebb9060ff861690614cfc565b336000908152602460205260409020819055601854909150600160801b90046001600160801b0316811115611f025760405162461bcd60e51b8152600401610c9290614225565b611f0d8460016127b0565b7f20259357ce779a72449719a600d07b9d13aa576c3dc85d22501bdcb539f750f58433604051611f3e929190614c43565b60405180910390a150610e62565b600d546040517f6352211e00000000000000000000000000000000000000000000000000000000815233916001600160a01b031690636352211e90611f9590859060040161402f565b60206040518083038186803b158015611fad57600080fd5b505afa158015611fc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe591906139d7565b6001600160a01b03161461200b5760405162461bcd60e51b8152600401610c9290614b2b565b336000908152602460205260408120546120299060ff861690614cfc565b336000908152602460205260409020819055601854909150600160801b90046001600160801b03168111156120705760405162461bcd60e51b8152600401610c9290614225565b6018805460ff861691906000906120919084906001600160801b0316614cd1565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506120c08460016127b0565b7f667d45dd3c4af7a44db20873026946cdd4c30116423f0a37085981b2fc2d1f498433846040516120f393929190614c5f565b60405180910390a150505050565b61211261210c61273e565b836128a9565b61212e5760405162461bcd60e51b8152600401610c9290614995565b610cae84848484612c42565b60155481565b600d546001600160a01b031681565b60205460ff1681565b606061216382612721565b61217f5760405162461bcd60e51b8152600401610c92906144d9565b6000601e805461218e90614db2565b80601f01602080910402602001604051908101604052809291908181526020018280546121ba90614db2565b80156122075780601f106121dc57610100808354040283529160200191612207565b820191906000526020600020905b8154815290600101906020018083116121ea57829003601f168201915b50506020549394505060ff90921691506122b09050576021805461222a90614db2565b80601f016020809104026020016040519081016040528092919081815260200182805461225690614db2565b80156122a35780601f10612278576101008083540402835291602001916122a3565b820191906000526020600020905b81548152906001019060200180831161228657829003601f168201915b5050505050915050610cf5565b60006122bb84610efe565b905060006122d26122cd606484614e4f565b612c75565b905060006122df83612c75565b905060006040518060400160405280600181526020017f2f000000000000000000000000000000000000000000000000000000000000008152509050848382846040516020016123329493929190613e6b565b60405160208183030381529060405295505050505050919050565b612358600b33612aa7565b806123725750336123676116ab565b6001600160a01b0316145b61238e5760405162461bcd60e51b8152600401610c92906140d7565b601392909255601555601655565b6040516370a0823160e01b815260609060009030906370a08231906123c5908690600401613ef6565b60206040518083038186803b1580156123dd57600080fd5b505afa1580156123f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124159190613c22565b905060008167ffffffffffffffff81111561244057634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612469578160200160208202803683370190505b50905060005b82811015612542576040517f2f745c590000000000000000000000000000000000000000000000000000000081523090632f745c59906124b59088908590600401613f6a565b60206040518083038186803b1580156124cd57600080fd5b505afa1580156124e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125059190613c22565b82828151811061252557634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061253a81614e14565b91505061246f565b509392505050565b601c5481565b601954600160801b90046001600160801b031681565b612571600b33612aa7565b8061258b5750336125806116ab565b6001600160a01b0316145b6125a75760405162461bcd60e51b8152600401610c92906140d7565b80518251146125c85760405162461bcd60e51b8152600401610c9290614b62565b81516125db90602390602085019061374c565b508051610e629060229060208401906137ad565b6018546001600160801b031681565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b601f5481565b61263a61273e565b6001600160a01b031661264b6116ab565b6001600160a01b0316146126715760405162461bcd60e51b8152600401610c92906147a4565b6001600160a01b0381166126975760405162461bcd60e51b8152600401610c92906141c8565b611cfb81612ad8565b6011546001600160a01b031681565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061271257506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610cf25750610cf282612dc4565b6000908152600260205260409020546001600160a01b0316151590565b3390565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061277782611468565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081156127cf576010546127c89060ff8516614d28565b90506127e2565b600f546127df9060ff8516614d28565b90505b8034146128015760405162461bcd60e51b8152600401610c92906147d9565b8260ff1661280d611d2d565b6001600160801b031610156128345760405162461bcd60e51b8152600401610c929061455c565b60005b8360ff168160ff16101561289f5761284e33612b3f565b601980546001600160801b031690600061286783614ded565b91906101000a8154816001600160801b0302191690836001600160801b0316021790555050808061289790614e2f565b915050612837565b50610e6234610b59565b60006128b482612721565b6128d05760405162461bcd60e51b8152600401610c9290614510565b60006128db83611468565b9050806001600160a01b0316846001600160a01b031614806129165750836001600160a01b031661290b84610d8c565b6001600160a01b0316145b80612926575061292681856125fe565b949350505050565b826001600160a01b031661294182611468565b6001600160a01b0316146129675760405162461bcd60e51b8152600401610c9290614810565b6001600160a01b03821661298d5760405162461bcd60e51b8152600401610c929061435e565b612998838383612df6565b6129a3600082612742565b6001600160a01b03831660009081526003602052604081208054600192906129cc908490614d6f565b90915550506001600160a01b03821660009081526003602052604081208054600192906129fa908490614cfc565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600081604051602001612a6e9190613ec2565b604051602081830303815290604052805190602001209050919050565b6000806000612a9a8585612e7f565b9150915061254281612eef565b6000612abc836001600160a01b03841661301c565b9392505050565b6000612abc836001600160a01b038416613034565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000612abc836001600160a01b03841661307e565b601780546001600160801b0316906000612b5883614ded565b82546101009290920a6001600160801b03818102199093169183160217909155601754611cfb925083911661319b565b816001600160a01b0316836001600160a01b03161415612bba5760405162461bcd60e51b8152600401610c92906143f2565b6001600160a01b0383811660008181526005602090815260408083209487168084529490915290819020805460ff1916851515179055517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190612c1e908590614024565b60405180910390a3505050565b6000610cf28261327a565b6000612abc838361327e565b612c4d84848461292e565b612c59848484846132b6565b610cae5760405162461bcd60e51b8152600401610c929061416b565b606081612cb6575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610cf5565b8160005b8115612ce05780612cca81614e14565b9150612cd99050600a83614d14565b9150612cba565b60008167ffffffffffffffff811115612d0957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612d33576020820181803683370190505b5090505b841561292657612d48600183614d6f565b9150612d55600a86614e4f565b612d60906030614cfc565b60f81b818381518110612d8357634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612dbd600a86614d14565b9450612d37565b6001600160e01b031981167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b612e01838383610e62565b6001600160a01b038316612e1d57612e18816133ea565b612e40565b816001600160a01b0316836001600160a01b031614612e4057612e40838261342e565b6001600160a01b038216612e5c57612e57816134cb565b610e62565b826001600160a01b0316826001600160a01b031614610e6257610e6282826135a4565b600080825160411415612eb65760208301516040840151606085015160001a612eaa878285856135e8565b94509450505050612ee8565b825160401415612ee05760208301516040840151612ed58683836136c8565b935093505050612ee8565b506000905060025b9250929050565b6000816004811115612f1157634e487b7160e01b600052602160045260246000fd5b1415612f1c57611cfb565b6001816004811115612f3e57634e487b7160e01b600052602160045260246000fd5b1415612f5c5760405162461bcd60e51b8152600401610c9290614069565b6002816004811115612f7e57634e487b7160e01b600052602160045260246000fd5b1415612f9c5760405162461bcd60e51b8152600401610c92906140a0565b6003816004811115612fbe57634e487b7160e01b600052602160045260246000fd5b1415612fdc5760405162461bcd60e51b8152600401610c9290614460565b6004816004811115612ffe57634e487b7160e01b600052602160045260246000fd5b1415611cfb5760405162461bcd60e51b8152600401610c92906146e1565b60009081526001919091016020526040902054151590565b6000613040838361301c565b6130765750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561103d565b50600061103d565b600081815260018301602052604081205480156131915760006130a2600183614d6f565b85549091506000906130b690600190614d6f565b90508181146131375760008660000182815481106130e457634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061311557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061315657634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061103d565b600091505061103d565b6001600160a01b0382166131c15760405162461bcd60e51b8152600401610c9290614723565b6131ca81612721565b156131e75760405162461bcd60e51b8152600401610c929061425c565b6131f360008383612df6565b6001600160a01b038216600090815260036020526040812080546001929061321c908490614cfc565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5490565b60008260000182815481106132a357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60006132ca846001600160a01b0316613710565b156133df57836001600160a01b031663150b7a026132e661273e565b8786866040518563ffffffff1660e01b81526004016133089493929190613f2e565b602060405180830381600087803b15801561332257600080fd5b505af1925050508015613352575060408051601f3d908101601f1916820190925261334f91810190613c56565b60015b6133ac573d808015613380576040519150601f19603f3d011682016040523d82523d6000602084013e613385565b606091505b5080516133a45760405162461bcd60e51b8152600401610c929061416b565b805181602001fd5b6001600160e01b0319167f150b7a0200000000000000000000000000000000000000000000000000000000149050612926565b506001949350505050565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6000600161343b8461155c565b6134459190614d6f565b600083815260076020526040902054909150808214613498576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906134dd90600190614d6f565b6000838152600960205260408120546008805493945090928490811061351357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050806008838154811061354257634e487b7160e01b600052603260045260246000fd5b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061358857634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b60006135af8361155c565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561361f57506000905060036136bf565b8460ff16601b1415801561363757508460ff16601c14155b1561364857506000905060046136bf565b60006001878787876040516000815260200160405260405161366d9493929190614038565b6020604051602081039080840390855afa15801561368f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166136b8576000600192509250506136bf565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660ff84901c601b01613702878288856135e8565b935093505050935093915050565b3b151590565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8280548282559060005260206000209081019282156137a1579160200282015b828111156137a157825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061376c565b50611e1c92915061385b565b8280548282559060005260206000209081019282156137a1579160200282015b828111156137a15782518255916020019190600101906137cd565b8280546137f490614db2565b90600052602060002090601f01602090048101928261381657600085556137a1565b82601f1061382f57805160ff19168380011785556137a1565b828001600101855582156137a157918201828111156137a15782518255916020019190600101906137cd565b5b80821115611e1c576000815560010161385c565b600082601f830112613880578081fd5b8135602061389561389083614cad565b614c83565b82815281810190858301838502870184018810156138b1578586fd5b855b858110156138d85781356138c681614ea5565b845292840192908401906001016138b3565b5090979650505050505050565b600082601f8301126138f5578081fd5b8135602061390561389083614cad565b8281528181019085830183850287018401881015613921578586fd5b855b858110156138d857813584529284019290840190600101613923565b600082601f83011261394f578081fd5b813567ffffffffffffffff81111561396957613969614e8f565b61397c601f8201601f1916602001614c83565b818152846020838601011115613990578283fd5b816020850160208301379081016020019190915292915050565b803560ff81168114610cf557600080fd5b6000602082840312156139cc578081fd5b8135612abc81614ea5565b6000602082840312156139e8578081fd5b8151612abc81614ea5565b60008060408385031215613a05578081fd5b8235613a1081614ea5565b91506020830135613a2081614ea5565b809150509250929050565b600080600060608486031215613a3f578081fd5b8335613a4a81614ea5565b92506020840135613a5a81614ea5565b929592945050506040919091013590565b60008060008060808587031215613a80578081fd5b8435613a8b81614ea5565b93506020850135613a9b81614ea5565b925060408501359150606085013567ffffffffffffffff811115613abd578182fd5b613ac98782880161393f565b91505092959194509250565b60008060408385031215613ae7578182fd5b8235613af281614ea5565b91506020830135613a2081614eba565b60008060408385031215613b14578182fd5b8235613b1f81614ea5565b9150602083013567ffffffffffffffff811115613b3a578182fd5b613b468582860161393f565b9150509250929050565b60008060408385031215613b62578182fd5b8235613b6d81614ea5565b946020939093013593505050565b60008060408385031215613b8d578182fd5b8235613b9881614ea5565b9150613ba6602084016139aa565b90509250929050565b60008060408385031215613bc1578182fd5b823567ffffffffffffffff80821115613bd8578384fd5b613be486838701613870565b93506020850135915080821115613bf9578283fd5b50613b46858286016138e5565b600060208284031215613c17578081fd5b8151612abc81614eba565b600060208284031215613c33578081fd5b5051919050565b600060208284031215613c4b578081fd5b8135612abc81614ec8565b600060208284031215613c67578081fd5b8151612abc81614ec8565b600080600060608486031215613c86578081fd5b833567ffffffffffffffff80821115613c9d578283fd5b613ca98783880161393f565b94506020860135915080821115613cbe578283fd5b50613ccb8682870161393f565b9250506040840135613cdc81614eba565b809150509250925092565b600060208284031215613cf8578081fd5b5035919050565b60008060408385031215613d11578182fd5b50508035926020909101359150565b60008060008060808587031215613d35578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613d5a578384fd5b613d6688838901613870565b93506060870135915080821115613d7b578283fd5b50613ac9878288016138e5565b600080600060608486031215613d9c578081fd5b505081359360208301359350604090920135919050565b600060208284031215613dc4578081fd5b612abc826139aa565b600080600060608486031215613de1578081fd5b613dea846139aa565b9250602084013567ffffffffffffffff811115613e05578182fd5b613e118682870161393f565b925050604084013590509250925092565b60008151808452613e3a816020860160208601614d86565b601f01601f19169290920160200192915050565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60008551613e7d818460208a01614d86565b855190830190613e91818360208a01614d86565b8551910190613ea4818360208901614d86565b8451910190613eb7818360208801614d86565b019695505050505050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b90565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006001600160a01b03808716835280861660208401525083604083015260806060830152613f606080830184613e22565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392909216825260ff16602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015613fe05783516001600160a01b031683529284019291840191600101613fbb565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613fe057835183529284019291840191600101614008565b901515815260200190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b600060208252612abc6020830184613e22565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b6020808252601f908201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604082015260600190565b6020808252600e908201527f4e6f7420417574686f7269736564000000000000000000000000000000000000604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201527f74206f6620626f756e6473000000000000000000000000000000000000000000606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527f63656976657220696d706c656d656e7465720000000000000000000000000000606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b6020808252600f908201527f77686974656c697374204c696d69740000000000000000000000000000000000604082015260600190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526019908201527f496e636f727265637420726571756573742049442073656e7400000000000000604082015260600190565b60208082526024908201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5f60408201527f7573657200000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526014908201527f4661696c656420746f2073656e64204574686572000000000000000000000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f52616e646f6d204e6f2e20616c72656164792072656365697665640000000000604082015260600190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252600e908201527f6e6f74496e697469616c69736564000000000000000000000000000000000000604082015260600190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526002908201527f2144000000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526014908201527f546f6b656e20646f6573206e6f74206578697374000000000000000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526008908201527f736f6c64206f7574000000000000000000000000000000000000000000000000604082015260600190565b6020808252600c908201527f556e617574686f72697365640000000000000000000000000000000000000000604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560408201527f726f206164647265737300000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201527f656e7420746f6b656e0000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201527f5072696365206e6f74206d657400000000000000000000000000000000000000604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201527f73206e6f74206f776e0000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f436f6e74726f6c6c657220616c72656164792061646465642e00000000000000604082015260600190565b60208082526006908201527f6c6f636b65640000000000000000000000000000000000000000000000000000604082015260600190565b60208082526024908201527f436f6e74726f6c6c657220646f206e6f7420686f6c642061646d696e2072696760408201527f6874732e00000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560408201527f7200000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60408201527f776e6572206e6f7220617070726f766564000000000000000000000000000000606082015260800190565b60208082526008908201527f4f7665726d696e74000000000000000000000000000000000000000000000000604082015260600190565b60208082526010908201527f556e617574686f726973656420524e4700000000000000000000000000000000604082015260600190565b60208082526018908201527f496e76616c6964207369676e6174757265206c656e6774680000000000000000604082015260600190565b60208082526002908201527f2153000000000000000000000000000000000000000000000000000000000000604082015260600190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201527f7574206f6620626f756e64730000000000000000000000000000000000000000606082015260800190565b60208082526003908201527f2145430000000000000000000000000000000000000000000000000000000000604082015260600190565b60208082526007908201527f216c656e67746800000000000000000000000000000000000000000000000000604082015260600190565b60208082526007908201527f5374617274656400000000000000000000000000000000000000000000000000604082015260600190565b600060c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b6001600160801b0391909116815260200190565b93845260208401929092526040830152606082015260800190565b60ff9290921682526001600160a01b0316602082015260400190565b60ff9390931683526001600160a01b03919091166020830152604082015260600190565b60405181810167ffffffffffffffff81118282101715614ca557614ca5614e8f565b604052919050565b600067ffffffffffffffff821115614cc757614cc7614e8f565b5060209081020190565b60006001600160801b03808316818516808303821115614cf357614cf3614e63565b01949350505050565b60008219821115614d0f57614d0f614e63565b500190565b600082614d2357614d23614e79565b500490565b6000816000190483118215151615614d4257614d42614e63565b500290565b60006001600160801b0383811690831681811015614d6757614d67614e63565b039392505050565b600082821015614d8157614d81614e63565b500390565b60005b83811015614da1578181015183820152602001614d89565b83811115610cae5750506000910152565b600281046001821680614dc657607f821691505b60208210811415614de757634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160801b0380831681811415614e0a57614e0a614e63565b6001019392505050565b6000600019821415614e2857614e28614e63565b5060010190565b600060ff821660ff811415614e4657614e46614e63565b60010192915050565b600082614e5e57614e5e614e79565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611cfb57600080fd5b8015158114611cfb57600080fd5b6001600160e01b031981168114611cfb57600080fdfe68747470733a2f2f67656e657469636174732d6d657461646174612d7365727665722e65746865722e63617264732f6170692f6d657461646174612fa26469706673582212206e5de8746b1c95ed00c257129242de8ddebaf02dc1881d9dacc1a68c053a782b64736f6c6343000800003368747470733a2f2f65746865722d63617264732e6d7970696e6174612e636c6f75642f697066732f516d5a6a795032654b684e7375614b33363362706a677442553755355852594c3677706757447348416b5857526700000000000000000000000097ca7fe0b0288f5eb85f386fed876618fb9b8ab800000000000000000000000072170f577f3b221b3478e09ccd5323445a8460d7000000000000000000000000669f499e7ba51836bb76f7dd2bc3c1a37a5342d7