0 txs
369 calls
constructor
constructor()
functions
bridgeVersion
viewfunction bridgeVersion() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultAdmin
viewfunction defaultAdmin() view returns (address)
defaultAdminDelay
viewfunction defaultAdminDelay() view returns (uint48)
defaultAdminDelayIncreaseWait
viewfunction defaultAdminDelayIncreaseWait() view returns (uint48)
emergencyTokenStorage
viewfunction emergencyTokenStorage(address, address) view returns (uint256)
estimateFee
viewfunction estimateFee(uint256 toChain, uint256 gasLimit) view returns (uint256)
feeInBp
viewfunction feeInBp() view returns (uint256)
getAllowedTokenOperations
viewfunction getAllowedTokenOperations(uint256 chainId, address token) view returns (uint8)
getIsTokenSupportedToSend
viewfunction getIsTokenSupportedToSend(address token) view returns (bool)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getSupportedBridges
viewfunction getSupportedBridges(uint256 chainId) view returns (address)
getSupportedTokensForReceive
viewfunction getSupportedTokensForReceive(uint256 fromChainId, address fromToken) view returns (address)
getWrappedTokenMaxSupply
viewfunction getWrappedTokenMaxSupply(address dioneERC20) view returns (uint256)
GOVERNANCE_ROLE
viewfunction GOVERNANCE_ROLE() view returns (bytes32)
grantRole
purefunction grantRole(bytes32, address) pure
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isFeeFree
viewfunction isFeeFree(address) view returns (bool)
messageGasLimit
viewfunction messageGasLimit() view returns (uint256)
minBridgedAmounts
viewfunction minBridgedAmounts(address) view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingDefaultAdmin
viewfunction pendingDefaultAdmin() view returns (address newAdmin, uint48 schedule)
pendingDefaultAdminDelay
viewfunction pendingDefaultAdminDelay() view returns (uint48 newDelay, uint48 schedule)
pendingRoles
viewfunction pendingRoles(bytes32, address) view returns (uint256)
percentConverter
viewfunction percentConverter() view returns (uint256)
RESCUER_ROLE
viewfunction RESCUER_ROLE() view returns (bytes32)
startBlockNumber
viewfunction startBlockNumber() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
trustedRemotes
viewfunction trustedRemotes(uint256, address) view returns (bool)
WETH_ADDRESS
viewfunction WETH_ADDRESS() view returns (address)
wmbGateway
viewfunction wmbGateway() view returns (address)
acceptDefaultAdminTransfer
nonpayablefunction acceptDefaultAdminTransfer()
acceptRole
nonpayablefunction acceptRole(bytes32 role)
beginDefaultAdminTransfer
nonpayablefunction beginDefaultAdminTransfer(address newAdmin)
cancelDefaultAdminTransfer
nonpayablefunction cancelDefaultAdminTransfer()
changeDefaultAdminDelay
nonpayablefunction changeDefaultAdminDelay(uint48 newDelay)
deposit
payablefunction deposit(address to, uint256 chainId, address token, uint256 amount) payable
grantRole
nonpayablefunction grantRole(bytes32 role, address account, uint256 validAtTimestamp)
initialize
nonpayablefunction initialize(address _wmbGateway)
pause
nonpayablefunction pause()
redeem
payablefunction redeem(address to, uint256 chainId, address token, uint256 amount) payable
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
rescueTokens
nonpayablefunction rescueTokens(address token, address to, uint256 amount)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
rollbackDefaultAdminDelay
nonpayablefunction rollbackDefaultAdminDelay()
setFee
nonpayablefunction setFee(uint256 _fee)
setFeeFreelist
nonpayablefunction setFeeFreelist(address account, bool add)
setMaxSupply
nonpayablefunction setMaxSupply(address dioneERC20, uint256 maxSupply)
setMessageGasLimit
nonpayablefunction setMessageGasLimit(uint256 gasLimit)
setMinBridgedAmounts
nonpayablefunction setMinBridgedAmounts(address token, uint256 amount)
setSupportedBridge
nonpayablefunction setSupportedBridge(uint256 chainId, address _bridgeAddress)
setTokenForReceive
nonpayablefunction setTokenForReceive(uint256 fromChainId, address fromToken, address toToken, uint8 allowedOp)
setTokenToSend
nonpayablefunction setTokenToSend(address token, bool isSupported, uint8 allowedOp)
setTrustedRemotes
nonpayablefunction setTrustedRemotes(uint256[] fromChainIds, address[] froms, bool[] trusted)
setWethAddress
nonpayablefunction setWethAddress(address _wethAddress)
unpause
nonpayablefunction unpause()
withdrawFees
nonpayablefunction withdrawFees(address token, address to, uint256 amount)
withdrawFromEmergencyStorage
nonpayablefunction withdrawFromEmergencyStorage(address token, uint256 amount)
wmbReceive
nonpayablefunction wmbReceive(bytes data, bytes32 messageId, uint256 fromChainId, address from)
events
DefaultAdminDelayChangeCanceled
event DefaultAdminDelayChangeCanceled()
DefaultAdminDelayChangeScheduled
event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule)
DefaultAdminTransferCanceled
event DefaultAdminTransferCanceled()
DefaultAdminTransferScheduled
event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule)
FeeFreeListUpdated
event FeeFreeListUpdated(address account, bool isFeeFree)
FeeUpdated
event FeeUpdated(uint256 fee)
Initialized
event Initialized(uint8 version)
MessageGasLimitUpdated
event MessageGasLimitUpdated(uint256 newGasLimit)
MinBridgetAmountsUpdated
event MinBridgetAmountsUpdated(address token, uint256 amount)
Paused
event Paused(address account)
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)
SupportedBridgeUpdated
event SupportedBridgeUpdated(uint256 chainId, address newBridgeAddress)
SupportedTokenForReceiveUpdated
event SupportedTokenForReceiveUpdated(uint256 fromChainId, address fromToken, address toToken, uint8 allowedOp)
SupportedTokenForSendUpdated
event SupportedTokenForSendUpdated(address token, bool isSupported, uint8 allowedOp)
TokenAddedToEmergencyTokenStorage
event TokenAddedToEmergencyTokenStorage(address indexed account, address indexed token, uint256 amount)
TokenDeposit
event TokenDeposit(address indexed to, uint256 chainId, address token, uint256 amount, uint256 feeAmount)
TokenMint
event TokenMint(address indexed to, address token, uint256 amount, uint256 feeInBp, bytes32 indexed messageId)
TokenRedeem
event TokenRedeem(address indexed to, uint256 chainId, address token, uint256 amount, uint256 feeAmount)
TokenWithdraw
event TokenWithdraw(address indexed to, address token, uint256 amount, uint256 feeInBp, bytes32 indexed messageId)
Unpaused
event Unpaused(address account)
WethAddressUpdated
event WethAddressUpdated(address newWethAddress)
WrappedTokenMaxSupplyUpdated
event WrappedTokenMaxSupplyUpdated(address token, uint256 newMaxSupply)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61523080620000f36000396000f3fe60806040526004361061039a5760003560e01c806384ef8ffc116101dc578063cab0071e11610102578063d3af7d75116100a0578063e3d4683b1161006f578063e3d4683b14610b7c578063e55dc4e614610bb7578063f36c8f5c14610bd7578063f3f094a114610bf957600080fd5b8063d3af7d7514610b07578063d547741f14610b27578063d602b9fd14610b47578063dc94fc5614610b5c57600080fd5b8063cd41c0dc116100dc578063cd41c0dc14610a5e578063cea9d26f14610a97578063cefc142914610ab7578063cf6eefb714610acc57600080fd5b8063cab0071e14610a04578063cb20478714610a1b578063cc8463c814610a4957600080fd5b8063a217fddf1161017a578063b21196a611610149578063b21196a61461096a578063b78bfaa91461098a578063c4d66de8146109aa578063c7d35c72146109ca57600080fd5b8063a217fddf146108db578063a2e85285146108f0578063a96e242314610935578063ac8656261461095557600080fd5b806390d25074116101b657806390d250741461084357806391d14854146108565780639e36eda614610876578063a1eda53c146108a757600080fd5b806384ef8ffc146107f0578063874302371461080e5780638da5cb5b1461082e57600080fd5b80633a1a5b76116102c15780635c975abb1161025f578063707ff6fa1161022e578063707ff6fa1461076757806371372544146107875780637f34071d146107bb5780638456cb59146107db57600080fd5b80635c975abb146106ef578063634e93da14610707578063649a5ec71461072757806369fe0e2d1461074757600080fd5b80633f4ba83a1161029b5780633f4ba83a1461067457806341cf5fb514610689578063498a4c2d1461069f57806355c590ba146106b657600080fd5b80633a1a5b76146105fd5780633b9a2c211461061d5780633e4fb34a1461065457600080fd5b80631f33d769116103395780633041db5c116103085780633041db5c146105495780633088a5f91461059d57806336568abe146105bd57806336fc1787146105dd57600080fd5b80631f33d769146104c2578063246feb9a146104e2578063248a9ca3146104f95780632f2ff15d1461052957600080fd5b8063040141e511610375578063040141e5146104325780630898e30e1461046b5780630aa6220b1461048d5780630d26c53b146104a257600080fd5b8062e1d8d0146103a657806301ffc9a7146103d9578063022d63fb1461040957600080fd5b366103a157005b600080fd5b3480156103b257600080fd5b506103c66103c13660046148c7565b610c0c565b6040519081526020015b60405180910390f35b3480156103e557600080fd5b506103f96103f43660046148e9565b610c88565b60405190151581526020016103d0565b34801561041557600080fd5b50620697805b60405165ffffffffffff90911681526020016103d0565b34801561043e57600080fd5b5061013054610453906001600160a01b031681565b6040516001600160a01b0390911681526020016103d0565b34801561047757600080fd5b5061048b610486366004614928565b610cad565b005b34801561049957600080fd5b5061048b610e1b565b3480156104ae57600080fd5b5061048b6104bd366004614954565b610e31565b3480156104ce57600080fd5b5061048b6104dd36600461498c565b610ee8565b3480156104ee57600080fd5b506103c66101325481565b34801561050557600080fd5b506103c661051436600461498c565b60009081526065602052604090206001015490565b34801561053557600080fd5b5061048b6105443660046149a5565b6110c5565b34801561055557600080fd5b506105906105643660046149a5565b6000918252610136602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6040516103d09190614a0d565b3480156105a957600080fd5b5060c954610453906001600160a01b031681565b3480156105c957600080fd5b5061048b6105d83660046149a5565b611118565b3480156105e957600080fd5b5061048b6105f836600461498c565b611206565b34801561060957600080fd5b5061048b610618366004614a1b565b611298565b34801561062957600080fd5b5061045361063836600461498c565b600090815261013760205260409020546001600160a01b031690565b34801561066057600080fd5b5061048b61066f366004614acd565b611390565b34801561068057600080fd5b5061048b611517565b34801561069557600080fd5b506103c661271081565b3480156106ab57600080fd5b506103c661012f5481565b3480156106c257600080fd5b506103c66106d13660046149a5565b61013360209081526000928352604080842090915290825290205481565b3480156106fb57600080fd5b5060fd5460ff166103f9565b34801561071357600080fd5b5061048b610722366004614b18565b611576565b34801561073357600080fd5b5061048b610742366004614b35565b61158a565b34801561075357600080fd5b5061048b61076236600461498c565b61159e565b34801561077357600080fd5b5061048b610782366004614928565b61163b565b34801561079357600080fd5b506103c67fcf6f9f892731e14b8859835f2ff35575f447fb501f46243c4eb8bac19e31a05081565b3480156107c757600080fd5b5061048b6107d6366004614ba9565b611712565b3480156107e757600080fd5b5061048b6118a0565b3480156107fc57600080fd5b506098546001600160a01b0316610453565b34801561081a57600080fd5b5061048b610829366004614c43565b6118fd565b34801561083a57600080fd5b50610453611a75565b61048b610851366004614c96565b611a8e565b34801561086257600080fd5b506103f96108713660046149a5565b612010565b34801561088257600080fd5b506103f9610891366004614b18565b61013b6020526000908152604090205460ff1681565b3480156108b357600080fd5b506108bc61203b565b6040805165ffffffffffff9384168152929091166020830152016103d0565b3480156108e757600080fd5b506103c6600081565b3480156108fc57600080fd5b5061045361090b3660046149a5565b6000918252610135602090815260408084206001600160a01b039384168552909152909120541690565b34801561094157600080fd5b5061048b610950366004614b18565b61208f565b34801561096157600080fd5b506103c6600181565b34801561097657600080fd5b5061048b6109853660046149a5565b612152565b34801561099657600080fd5b506103c66109a5366004614b18565b612228565b3480156109b657600080fd5b5061048b6109c5366004614b18565b61226f565b3480156109d657600080fd5b506103f96109e5366004614b18565b6001600160a01b03166000908152610138602052604090205460ff1690565b348015610a1057600080fd5b506103c66101315481565b348015610a2757600080fd5b506103c6610a36366004614b18565b61013c6020526000908152604090205481565b348015610a5557600080fd5b5061041b61242a565b348015610a6a57600080fd5b506103c6610a79366004614cde565b61013d60209081526000928352604080842090915290825290205481565b348015610aa357600080fd5b5061048b610ab2366004614d0c565b612489565b348015610ac357600080fd5b5061048b6126cf565b348015610ad857600080fd5b50610ae161274d565b604080516001600160a01b03909316835265ffffffffffff9091166020830152016103d0565b348015610b1357600080fd5b5061048b610b22366004614d3c565b61276e565b348015610b3357600080fd5b5061048b610b423660046149a5565b612848565b348015610b5357600080fd5b5061048b6128c5565b348015610b6857600080fd5b5061048b610b77366004614928565b6128d8565b348015610b8857600080fd5b506103f9610b973660046149a5565b60ca60209081526000928352604080842090915290825290205460ff1681565b348015610bc357600080fd5b5061048b610bd2366004614d0c565b61299f565b348015610be357600080fd5b506103c66000805160206151db83398151915281565b61048b610c07366004614c96565b612ab7565b60c954604051620e1d8d60e41b815260048101849052602481018390526000916001600160a01b03169062e1d8d090604401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7f9190614d6a565b90505b92915050565b60006001600160e01b031982166318a4c3c360e11b1480610c825750610c8282612f4a565b33600081815261013d602090815260408083206001600160a01b0387168452909152902054821115610d3e5760405162461bcd60e51b815260206004820152602f60248201527f416d6f756e7420657863656564732074686520746f6b656e732073746f72656460448201526e20696e207468652073746f7261676560881b60648201526084015b60405180910390fd5b6001600160a01b03808216600090815261013d6020908152604080832093871683529290529081208054849290610d76908490614d99565b90915550506001600160a01b038316610e02576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114610dd6576040519150601f19603f3d011682016040523d82523d6000602084013e610ddb565b606091505b5050905080610dfc5760405162461bcd60e51b8152600401610d3590614dac565b50505050565b610e166001600160a01b0384168284612f7f565b505050565b6000610e2681612fe2565b610e2e612fec565b50565b600083815260656020526040902060010154610e4d8133612010565b610eb15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60448201526e0818591b5a5b881d1bc819dc985b9d608a1b6064820152608401610d35565b610ebb8484612010565b610dfc57506000928352610133602090815260408085206001600160a01b03949094168552929052912055565b610ef3600033612010565b610f0f5760405162461bcd60e51b8152600401610d3590614dd9565b60c960009054906101000a90046001600160a01b03166001600160a01b0316635aeb4d776040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f889190614d6a565b811015610fcb5760405162461bcd60e51b8152602060048201526011602482015270476173206c696d697420746f6f206c6f7760781b6044820152606401610d35565b60c960009054906101000a90046001600160a01b03166001600160a01b0316635e45da236040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190614d6a565b8111156110885760405162461bcd60e51b815260206004820152601260248201527108ec2e640d8d2dad2e840e8dede40d0d2ced60731b6044820152606401610d35565b6101318190556040518181527fedbca4ae7e4d2064baefb0ae72b2988d5c308fa17bf8f2f326e001fa2ceafd5e906020015b60405180910390a150565b60405162461bcd60e51b815260206004820152602260248201527f44697265637420726f6c652061737369676e6d656e74206e6f7420616c6c6f77604482015261195960f21b6064820152608401610d35565b8115801561113357506098546001600160a01b038281169116145b156111f85760008061114361274d565b90925090506001600160a01b038216158015611166575065ffffffffffff811615155b801561117957504265ffffffffffff8216105b6111e35760405162461bcd60e51b815260206004820152603560248201527f416363657373436f6e74726f6c3a206f6e6c792063616e2072656e6f756e636560448201527420696e2074776f2064656c6179656420737465707360581b6064820152608401610d35565b50506097805465ffffffffffff60a01b191690555b6112028282612ff7565b5050565b60008181526101336020908152604080832033845290915290205442811180159061123057508015155b6112705760405162461bcd60e51b8152602060048201526011602482015270149bdb19481b9bdd08185cdcda59db9959607a1b6044820152606401610d35565b61127a8233613071565b50600090815261013360209081526040808320338452909152812055565b60c9546001600160a01b0316331461130a5760405162461bcd60e51b815260206004820152602f60248201527f576d624170703a204f6e6c7920574d4220676174657761792063616e2063616c60448201526e36103a3434b990333ab731ba34b7b760891b6064820152608401610d35565b600082815260ca602090815260408083206001600160a01b038516845290915290205460ff1661137c5760405162461bcd60e51b815260206004820152601d60248201527f576d624170703a2052656d6f7465206973206e6f7420747275737465640000006044820152606401610d35565b611389858585858561307b565b5050505050565b61139b600033612010565b6113b75760405162461bcd60e51b8152600401610d3590614dd9565b6001600160a01b0383166114055760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610d35565b60c95460408051634d4502c960e11b815290516000926001600160a01b031691639a8a0592916004808301926020929190829003018187875af1158015611450573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114749190614d6a565b6001600160a01b038516600081815261013860209081526040808320805489151560ff199182161790915585845261013683528184209484529390915290208054929350849290911660018360048111156114d1576114d16149d5565b02179055507f66ce09d084bf7739fffb4486f433f112e0292e36c9b72b9a07065648a1efadec84848460405161150993929190614dfc565b60405180910390a150505050565b61152f6000805160206151db83398151915233612010565b61156c5760405162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b6044820152606401610d35565b611574613280565b565b600061158181612fe2565b611202826132d2565b600061159581612fe2565b61120282613345565b6115a9600033612010565b6115c55760405162461bcd60e51b8152600401610d3590614dd9565b6127108111156116055760405162461bcd60e51b815260206004820152600b60248201526a496e76616c69642066656560a81b6044820152606401610d35565b6101328190556040518181527f8c4d35e54a3f2ef1134138fd8ea3daee6a3c89e10d2665996babdf70261e2c76906020016110ba565b611646600033612010565b6116625760405162461bcd60e51b8152600401610d3590614dd9565b6001600160a01b0382166116b85760405162461bcd60e51b815260206004820152601b60248201527f496e76616c69642064696f6e65204552433230206164647265737300000000006044820152606401610d35565b6001600160a01b03821660008181526101346020908152604091829020849055815192835282018390527f98ad6328db47db2bbccde3162592bfc732b744db6b54cff38e30e71dfb7dadf091015b60405180910390a15050565b61171d600033612010565b6117855760405162461bcd60e51b815260206004820152603360248201527f576d624170703a206d75737420686176652061646d696e20726f6c6520746f2060448201527273657420747275737465642072656d6f74657360681b6064820152608401610d35565b848314801561179357508281145b6117d75760405162461bcd60e51b815260206004820152601560248201527415db58905c1c0e881a5b9d985b1a59081a5b9c1d5d605a1b6044820152606401610d35565b60005b85811015611897578282828181106117f4576117f4614e21565b90506020020160208101906118099190614e37565b60ca600089898581811061181f5761181f614e21565b905060200201358152602001908152602001600020600087878581811061184857611848614e21565b905060200201602081019061185d9190614b18565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061188f81614e54565b9150506117da565b50505050505050565b6118b86000805160206151db83398151915233612010565b6118f55760405162461bcd60e51b815260206004820152600e60248201526d4e6f7420676f7665726e616e636560901b6044820152606401610d35565b6115746133ae565b611908600033612010565b6119245760405162461bcd60e51b8152600401610d3590614dd9565b6001600160a01b03831661197a5760405162461bcd60e51b815260206004820152601960248201527f496e76616c69642066726f6d546f6b656e2061646472657373000000000000006044820152606401610d35565b6001600160a01b0382166119d05760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420746f546f6b656e20616464726573730000000000000000006044820152606401610d35565b6000848152610135602090815260408083206001600160a01b0387811680865291845282852080546001600160a01b03191691881691909117905587845261013683528184209084529091529020805482919060ff19166001836004811115611a3b57611a3b6149d5565b02179055507fb78d2d5201ef1e95156173899d539c807e86d86eebbbcef747747ff086a9f7a3848484846040516115099493929190614e6d565b6000611a896098546001600160a01b031690565b905090565b611a966133eb565b611a9e613444565b60006001600160a01b03831615611ab55782611ac3565b610130546001600160a01b03165b6001600160a01b0381166000908152610138602052604090205490915060ff16611aff5760405162461bcd60e51b8152600401610d3590614e98565b60c95460408051634d4502c960e11b815290516000926001600160a01b031691639a8a0592916004808301926020929190829003018187875af1158015611b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6e9190614d6a565b905060036000828152610136602090815260408083206001600160a01b038716845290915290205460ff166004811115611baa57611baa6149d5565b14611bef5760405162461bcd60e51b81526020600482015260156024820152742ab739bab83837b93a32b21037b832b930ba34b7b760591b6044820152606401610d35565b6000611bfe8661013154610c0c565b6001600160a01b038416600090815261013c6020526040902054909150841015611c3a5760405162461bcd60e51b8152600401610d3590614ec3565b6000806001600160a01b038716611d3357611c558684614f20565b341015611cb35760405162461bcd60e51b815260206004820152602660248201527f496e73756666696369656e7420616d6f756e74206f72206d657373616765206660448201526506565496e42760d41b6064820152608401610d35565b61013060009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0876040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d0457600080fd5b505af1158015611d18573d6000803e3d6000fd5b50505050508591508534611d2c9190614d99565b9050611e80565b82341015611d835760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e74206d65737361676520666565496e4270000000006044820152606401610d35565b6040516370a0823160e01b81523060048201526000906001600160a01b038916906370a0823190602401602060405180830381865afa158015611dca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dee9190614d6a565b9050611e056001600160a01b03891633308a61348a565b6040516370a0823160e01b815230600482015281906001600160a01b038a16906370a0823190602401602060405180830381865afa158015611e4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6f9190614d6a565b611e799190614d99565b9250349150505b6000611e8b836134c2565b9050611e978184614d99565b6001600160a01b038716600090815261013a602052604081208054909190611ec0908490614f20565b90915550506001600160a01b0386166000908152610139602052604081208054839290611eee908490614f20565b90915550506001600160a01b038a167f9b42c995337c12dd7a5a1a5328a037e094b21b429c6cd6e5e1f478ba546b2d2b8a8a611f2a8588614d99565b604080519384526001600160a01b039092166020840152908201526060810184905260800160405180910390a26000611f638584614d99565b1115611fda57600033611f768685614d99565b604051600081818185875af1925050503d8060008114611fb2576040519150601f19603f3d011682016040523d82523d6000602084013e611fb7565b606091505b5050905080611fd85760405162461bcd60e51b8152600401610d3590614dac565b505b6000611ff28b88611feb8588614d99565b6002613503565b9050611fff8a8287613536565b50505050505050610dfc600160cb55565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b609854600090600160d01b900465ffffffffffff16801515801561206757504265ffffffffffff821610155b61207357600080612087565b609854600160a01b900465ffffffffffff16815b915091509091565b61209a600033612010565b6120b65760405162461bcd60e51b8152600401610d3590614dd9565b6001600160a01b0381166121035760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642057455448206164647265737360601b6044820152606401610d35565b61013080546001600160a01b0319166001600160a01b0383169081179091556040519081527f40fd0712a7b8df44393b337607712a3e34dd27b0c6cff622715516bad5d1ad35906020016110ba565b61215d600033612010565b6121795760405162461bcd60e51b8152600401610d3590614dd9565b6001600160a01b0381166121c85760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420627269646765206164647265737360501b6044820152606401610d35565b6000828152610137602090815260409182902080546001600160a01b0319166001600160a01b0385169081179091558251858152918201527f2bf7cee7952c3ef76d0b4e74761a9c7ca27207342180ed5ab9504cde0557705c9101611706565b6001600160a01b0381166000908152610134602052604081205415612266576001600160a01b03821660009081526101346020526040902054610c82565b60001992915050565b600054610100900460ff161580801561228f5750600054600160ff909116105b806122a95750303b1580156122a9575060005460ff166001145b61230c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d35565b6000805460ff19166001179055801561232f576000805461ff0019166101001790555b6001600160a01b0382166123855760405162461bcd60e51b815260206004820152601a60248201527f496e76616c696420776d624761746577617920616464726573730000000000006044820152606401610d35565b4361012f556123956000336135c1565b6123bf7fcf6f9f892731e14b8859835f2ff35575f447fb501f46243c4eb8bac19e31a05033613071565b6123d76000805160206151db83398151915233613071565b6123e0826135f2565b62027100610131558015611202576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611706565b609854600090600160d01b900465ffffffffffff16801515801561245557504265ffffffffffff8216105b61247057609754600160d01b900465ffffffffffff16612483565b609854600160a01b900465ffffffffffff165b91505090565b6124916133eb565b6124bb7fcf6f9f892731e14b8859835f2ff35575f447fb501f46243c4eb8bac19e31a05033612010565b6124f55760405162461bcd60e51b815260206004820152600b60248201526a2737ba103932b9b1bab2b960a91b6044820152606401610d35565b60006001600160a01b03841615612573576040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa15801561254a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256e9190614d6a565b612575565b475b6001600160a01b0385166000908152610139602090815260408083205461013a9092529091205491925083916125ab9190614f20565b6125b59083614d99565b10156126295760405162461bcd60e51b815260206004820152603960248201527f43616e6e6f742077697468647261772075736572206465706f7369746564207460448201527f6f6b656e73206f7220616363756d756c617465642066656573000000000000006064820152608401610d35565b6001600160a01b0384166126b0576000836001600160a01b03168360405160006040518083038185875af1925050503d8060008114612684576040519150601f19603f3d011682016040523d82523d6000602084013e612689565b606091505b50509050806126aa5760405162461bcd60e51b8152600401610d3590614dac565b506126c4565b6126c46001600160a01b0385168484612f7f565b50610e16600160cb55565b60006126d961274d565b509050336001600160a01b038216146127455760405162461bcd60e51b815260206004820152602860248201527f416363657373436f6e74726f6c3a2070656e64696e672061646d696e206d75736044820152671d081858d8d95c1d60c21b6064820152608401610d35565b610e2e61366a565b6097546001600160a01b03811691600160a01b90910465ffffffffffff1690565b612779600033612010565b6127955760405162461bcd60e51b8152600401610d3590614dd9565b6001600160a01b0382166127eb5760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206163636f756e7420616464726573730000000000000000006044820152606401610d35565b6001600160a01b038216600081815261013b6020908152604091829020805460ff19168515159081179091558251938452908301527f96e17ca77d771534007d221a974f505f628eb25139a8367689bc7e7b0af31e779101611706565b816128bb5760405162461bcd60e51b815260206004820152603760248201527f416363657373436f6e74726f6c3a2063616e2774206469726563746c7920726560448201527f766f6b652064656661756c742061646d696e20726f6c650000000000000000006064820152608401610d35565b6112028282613735565b60006128d081612fe2565b610e2e61375a565b6128e3600033612010565b6128ff5760405162461bcd60e51b8152600401610d3590614dd9565b6001600160a01b03821661294d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610d35565b6001600160a01b038216600081815261013c6020908152604091829020849055815192835282018390527f3ddca0aa0e78814a4fffc02d5c4ea7f826838e0319d65a27736113289d501b3b9101611706565b6129aa600033612010565b6129c65760405162461bcd60e51b8152600401610d3590614dd9565b6001600160a01b038216612a0b5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f206164647265737360a01b6044820152606401610d35565b6001600160a01b03831660009081526101396020526040902054811115612a745760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e742065786565647320616363756d756c61746564206665657300006044820152606401610d35565b6001600160a01b0383166000908152610139602052604081208054839290612a9d908490614d99565b90915550610e1690506001600160a01b0384168383612f7f565b612abf6133eb565b612ac7613444565b6001600160a01b0382166000908152610138602052604090205460ff16612b005760405162461bcd60e51b8152600401610d3590614e98565b60c95460408051634d4502c960e11b815290516000926001600160a01b031691639a8a0592916004808301926020929190829003018187875af1158015612b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6f9190614d6a565b905060046000828152610136602090815260408083206001600160a01b038816845290915290205460ff166004811115612bab57612bab6149d5565b14612bf05760405162461bcd60e51b81526020600482015260156024820152742ab739bab83837b93a32b21037b832b930ba34b7b760591b6044820152606401610d35565b6000612bff8561013154610c0c565b905080341015612c515760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e74206d65737361676520666565496e4270000000006044820152606401610d35565b6001600160a01b038416600090815261013c6020526040902054831015612c8a5760405162461bcd60e51b8152600401610d3590614ec3565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015612cd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf59190614d6a565b9050612d0c6001600160a01b03861633308761348a565b6040516370a0823160e01b815230600482015260009082906001600160a01b038816906370a0823190602401602060405180830381865afa158015612d55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d799190614d6a565b612d839190614d99565b90506000612d90826134c2565b6001600160a01b03881660009081526101396020526040812080549293508392909190612dbe908490614f20565b90915550506001600160a01b0389167f0a0c78ab6849299b963a629168f1a89863b5809b7a289ce3538236ad4ef4bd9c8989612dfa8587614d99565b604080519384526001600160a01b039092166020840152908201526060810184905260800160405180910390a26001600160a01b0387166342966c68612e408385614d99565b6040518263ffffffff1660e01b8152600401612e5e91815260200190565b600060405180830381600087803b158015612e7857600080fd5b505af1158015612e8c573d6000803e3d6000fd5b5050505060008434612e9e9190614d99565b1115612f1557600033612eb18634614d99565b604051600081818185875af1925050503d8060008114612eed576040519150601f19603f3d011682016040523d82523d6000602084013e612ef2565b606091505b5050905080612f135760405162461bcd60e51b8152600401610d3590614dac565b505b6000612f2d8a89612f268587614d99565b6001613503565b9050612f3a898287613536565b505050505050610dfc600160cb55565b60006001600160e01b03198216637965db0b60e01b1480610c8257506301ffc9a760e01b6001600160e01b0319831614610c82565b6040516001600160a01b038316602482015260448101829052610e1690849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613765565b610e2e813361383a565b611574600080613893565b6001600160a01b03811633146130675760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610d35565b6112028282613953565b611202828261398e565b6000806000806130c089898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613a3892505050565b60008a8152610135602090815260408083206001600160a01b03808816855292529091205494985092965090945092501661310d5760405162461bcd60e51b8152600401610d3590614e98565b80600481111561311f5761311f6149d5565b6000878152610136602090815260408083206001600160a01b038816845290915290205460ff166004811115613157576131576149d5565b1461319c5760405162461bcd60e51b81526020600482015260156024820152742737ba1030b63637bbb2b21037b832b930ba34b7b760591b6044820152606401610d35565b60018160048111156131b0576131b06149d5565b036131ed576000868152610135602090815260408083206001600160a01b0380881685529252909120546131e891869116848a613a61565b613275565b6002816004811115613201576132016149d5565b03613239576000868152610135602090815260408083206001600160a01b0380881685529252909120546131e891869116848a613e13565b60405162461bcd60e51b815260206004820152601160248201527024b73b30b634b21037b832b930ba34b7b760791b6044820152606401610d35565b505050505050505050565b6132886141e2565b60fd805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006132dc61242a565b6132e54261422b565b6132ef9190614f33565b90506132fb8282614296565b60405165ffffffffffff821681526001600160a01b038316907f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed69060200160405180910390a25050565b600061335082614315565b6133594261422b565b6133639190614f33565b905061336f8282613893565b6040805165ffffffffffff8085168252831660208201527ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b9101611706565b6133b6613444565b60fd805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586132b53390565b600260cb540361343d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610d35565b600260cb55565b60fd5460ff16156115745760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610d35565b6040516001600160a01b0380851660248301528316604482015260648101829052610dfc9085906323b872dd60e01b90608401612fab565b33600090815261013b602052604081205460ff166134fb5761271061013254836134ec9190614f59565b6134f69190614f70565b610c82565b600092915050565b60608484848460405160200161351c9493929190614f92565b60405160208183030381529060405290505b949350505050565b600083815261013760205260409020546001600160a01b031661359b5760405162461bcd60e51b815260206004820152601f60248201527f44657374696e6174696f6e206272696467652061646472657373207a65726f006044820152606401610d35565b60008381526101376020526040902054610dfc9084906001600160a01b03168484614364565b600054610100900460ff166135e85760405162461bcd60e51b8152600401610d3590614fbe565b61120282826143e7565b6001600160a01b0381166136485760405162461bcd60e51b815260206004820152601c60248201527f576d624170703a20676174657761792061646472657373207a65726f000000006044820152606401610d35565b60c980546001600160a01b0319166001600160a01b0392909216919091179055565b60008061367561274d565b9150915061368a8165ffffffffffff16151590565b801561369d57504265ffffffffffff8216105b6136fa5760405162461bcd60e51b815260206004820152602860248201527f416363657373436f6e74726f6c3a207472616e736665722064656c6179206e6f6044820152671d081c185cdcd95960c21b6064820152608401610d35565b61371660006137116098546001600160a01b031690565b613953565b61372160008361398e565b5050609780546001600160d01b0319169055565b60008281526065602052604090206001015461375081612fe2565b610e168383613953565b611574600080614296565b60006137ba826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661448e9092919063ffffffff16565b90508051600014806137db5750808060200190518101906137db9190615009565b610e165760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610d35565b6138448282612010565b611202576138518161449d565b61385c8360206144af565b60405160200161386d92919061504a565b60408051601f198184030181529082905262461bcd60e51b8252610d35916004016150eb565b609854600160d01b900465ffffffffffff168015613916574265ffffffffffff821610156138ec57609854609780546001600160d01b0316600160a01b90920465ffffffffffff16600160d01b02919091179055613916565b6040517f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec590600090a15b50609880546001600160a01b0316600160a01b65ffffffffffff948516026001600160d01b031617600160d01b9290931691909102919091179055565b8115801561396e57506098546001600160a01b038281169116145b1561398457609880546001600160a01b03191690555b611202828261464b565b81613a2e5760006139a76098546001600160a01b031690565b6001600160a01b031614613a125760405162461bcd60e51b815260206004820152602c60248201527f416363657373436f6e74726f6c3a2064656661756c742061646d696e20616c7260448201526b1958591e4819dc985b9d195960a21b6064820152608401610d35565b609880546001600160a01b0319166001600160a01b0383161790555b61120282826146b2565b60008060008084806020019051810190613a5291906150fe565b92989197509550909350915050565b613a696133eb565b6001600160a01b038316600090815261013a6020526040902054821115613aca5760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206578656564732062616c616e636560581b6044820152606401610d35565b6001600160a01b038316600090815261013a602052604081208054849290613af3908490614d99565b9091555050610130546001600160a01b038481169116148015613b215750610130546001600160a01b031615155b15613cb75761013054604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015613b6d57600080fd5b505af1158015613b81573d6000803e3d6000fd5b505050506000846001600160a01b03168360405160006040518083038185875af1925050503d8060008114613bd2576040519150601f19603f3d011682016040523d82523d6000602084013e613bd7565b606091505b505090508015613c3657604080516001600160a01b03868116825260208201869052600082840152915184928816917f8b0afdc777af6946e53045a4a75212769075d30455a212ac51c9b16f9c5c9b26919081900360600190a3613cb1565b6001600160a01b038516600090815261013d6020908152604080832083805290915281208054859290613c6a908490614f20565b90915550506040518381526000906001600160a01b038716907f4536b6d59904ba2a675f5c47373e0fe56c19a2da4c62e94a6c2c2290a08f03db9060200160405180910390a35b50613e09565b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905284169063a9059cbb906044016020604051808303816000875af1925050508015613d22575060408051601f3d908101601f19168201909252613d1f91810190615009565b60015b613db7576001600160a01b03808516600090815261013d6020908152604080832093871683529290529081208054849290613d5e908490614f20565b92505081905550826001600160a01b0316846001600160a01b03167f4536b6d59904ba2a675f5c47373e0fe56c19a2da4c62e94a6c2c2290a08f03db84604051613daa91815260200190565b60405180910390a3613e09565b50604080516001600160a01b03858116825260208201859052600082840152915183928716917f8b0afdc777af6946e53045a4a75212769075d30455a212ac51c9b16f9c5c9b26919081900360600190a35b610dfc600160cb55565b613e1b6133eb565b604080516001600160a01b03858116825260208201859052600082840152915183928716917fbf14b9fde87f6e1c29a7e0787ad1d0d64b4648d8ae63da21524d9fd0f283dd38919081900360600190a3610130546001600160a01b038481169116148015613e945750610130546001600160a01b031615155b15614016576001600160a01b038316600090815261013a6020526040902054821115613efa5760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206578656564732062616c616e636560581b6044820152606401610d35565b6001600160a01b038316600090815261013a602052604081208054849290613f23908490614d99565b909155505061013054604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015613f6f57600080fd5b505af1158015613f83573d6000803e3d6000fd5b505050506000846001600160a01b03168360405160006040518083038185875af1925050503d8060008114613fd4576040519150601f19603f3d011682016040523d82523d6000602084013e613fd9565b606091505b5050905080613cb1576001600160a01b038516600090815261013d6020908152604080832083805290915281208054859290613c6a908490614f20565b6001600160a01b038316600090815261013a602052604090205482811015614194576001600160a01b038416600090815261013a602052604081208054839290614061908490614d99565b90915550600090506140738285614d99565b905061407e85612228565b81866001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156140bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140e19190614d6a565b6140eb9190614f20565b111561412e5760405162461bcd60e51b815260206004820152601260248201527145786365656473206d617820737570706c7960701b6044820152606401610d35565b6040516340c10f1960e01b8152306004820152602481018290526001600160a01b038616906340c10f1990604401600060405180830381600087803b15801561417657600080fd5b505af115801561418a573d6000803e3d6000fd5b50505050506141c3565b6001600160a01b038416600090815261013a6020526040812080548592906141bd908490614d99565b90915550505b6141d76001600160a01b0385168685612f7f565b50610dfc600160cb55565b60fd5460ff166115745760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610d35565b600065ffffffffffff8211156142925760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608401610d35565b5090565b60006142a061274d565b6097805465ffffffffffff8616600160a01b026001600160d01b03199091166001600160a01b0388161717905591506142e290508165ffffffffffff16151590565b15610e16576040517f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a960510990600090a1505050565b60008061432061242a565b90508065ffffffffffff168365ffffffffffff1611614348576143438382615148565b61435d565b61435d65ffffffffffff841662069780614738565b9392505050565b60c95460405163fe39827b60e01b81526000916001600160a01b03169063fe39827b90849061439b90899089908990600401615167565b60206040518083038185885af11580156143b9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906143de9190614d6a565b95945050505050565b600054610100900460ff1661440e5760405162461bcd60e51b8152600401610d3590614fbe565b6001600160a01b0381166144645760405162461bcd60e51b815260206004820152601e60248201527f416363657373436f6e74726f6c3a20302064656661756c742061646d696e00006044820152606401610d35565b609780546001600160d01b0316600160d01b65ffffffffffff85160217905561120260008261398e565b606061352e848460008561474e565b6060610c826001600160a01b03831660145b606060006144be836002614f59565b6144c9906002614f20565b67ffffffffffffffff8111156144e1576144e1615191565b6040519080825280601f01601f19166020018201604052801561450b576020820181803683370190505b509050600360fc1b8160008151811061452657614526614e21565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061455557614555614e21565b60200101906001600160f81b031916908160001a9053506000614579846002614f59565b614584906001614f20565b90505b60018111156145fc576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106145b8576145b8614e21565b1a60f81b8282815181106145ce576145ce614e21565b60200101906001600160f81b031916908160001a90535060049490941c936145f5816151a7565b9050614587565b508315610c7f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610d35565b6146558282612010565b156112025760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6146bc8282612010565b6112025760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556146f43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008183106147475781610c7f565b5090919050565b6060824710156147af5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610d35565b600080866001600160a01b031685876040516147cb91906151be565b60006040518083038185875af1925050503d8060008114614808576040519150601f19603f3d011682016040523d82523d6000602084013e61480d565b606091505b509150915061481e87838387614829565b979650505050505050565b60608315614898578251600003614891576001600160a01b0385163b6148915760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d35565b508161352e565b61352e83838151156148ad5781518083602001fd5b8060405162461bcd60e51b8152600401610d3591906150eb565b600080604083850312156148da57600080fd5b50508035926020909101359150565b6000602082840312156148fb57600080fd5b81356001600160e01b031981168114610c7f57600080fd5b6001600160a01b0381168114610e2e57600080fd5b6000806040838503121561493b57600080fd5b823561494681614913565b946020939093013593505050565b60008060006060848603121561496957600080fd5b83359250602084013561497b81614913565b929592945050506040919091013590565b60006020828403121561499e57600080fd5b5035919050565b600080604083850312156149b857600080fd5b8235915060208301356149ca81614913565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60058110614a0957634e487b7160e01b600052602160045260246000fd5b9052565b60208101610c8282846149eb565b600080600080600060808688031215614a3357600080fd5b853567ffffffffffffffff80821115614a4b57600080fd5b818801915088601f830112614a5f57600080fd5b813581811115614a6e57600080fd5b896020828501011115614a8057600080fd5b602092830197509550508601359250604086013591506060860135614aa481614913565b809150509295509295909350565b8015158114610e2e57600080fd5b60058110610e2e57600080fd5b600080600060608486031215614ae257600080fd5b8335614aed81614913565b92506020840135614afd81614ab2565b91506040840135614b0d81614ac0565b809150509250925092565b600060208284031215614b2a57600080fd5b8135610c7f81614913565b600060208284031215614b4757600080fd5b813565ffffffffffff81168114610c7f57600080fd5b60008083601f840112614b6f57600080fd5b50813567ffffffffffffffff811115614b8757600080fd5b6020830191508360208260051b8501011115614ba257600080fd5b9250929050565b60008060008060008060608789031215614bc257600080fd5b863567ffffffffffffffff80821115614bda57600080fd5b614be68a838b01614b5d565b90985096506020890135915080821115614bff57600080fd5b614c0b8a838b01614b5d565b90965094506040890135915080821115614c2457600080fd5b50614c3189828a01614b5d565b979a9699509497509295939492505050565b60008060008060808587031215614c5957600080fd5b843593506020850135614c6b81614913565b92506040850135614c7b81614913565b91506060850135614c8b81614ac0565b939692955090935050565b60008060008060808587031215614cac57600080fd5b8435614cb781614913565b9350602085013592506040850135614cce81614913565b9396929550929360600135925050565b60008060408385031215614cf157600080fd5b8235614cfc81614913565b915060208301356149ca81614913565b600080600060608486031215614d2157600080fd5b8335614d2c81614913565b9250602084013561497b81614913565b60008060408385031215614d4f57600080fd5b8235614d5a81614913565b915060208301356149ca81614ab2565b600060208284031215614d7c57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c8257610c82614d83565b60208082526013908201527211551217d514905394d1915497d19052531151606a1b604082015260600190565b6020808252600990820152682737ba1030b236b4b760b91b604082015260600190565b6001600160a01b038416815282151560208201526060810161352e60408301846149eb565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614e4957600080fd5b8135610c7f81614ab2565b600060018201614e6657614e66614d83565b5060010190565b8481526001600160a01b03848116602083015283166040820152608081016143de60608301846149eb565b6020808252601190820152702ab739bab83837b93a32b2103a37b5b2b760791b604082015260600190565b6020808252603a908201527f416d6f756e74206f6620746f6b656e7320646f6573206e6f742065786365656460408201527f20746865206d696e696d756d20627269646765642076616c7565000000000000606082015260800190565b80820180821115610c8257610c82614d83565b65ffffffffffff818116838216019080821115614f5257614f52614d83565b5092915050565b8082028115828204841417610c8257610c82614d83565b600082614f8d57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b0385811682528416602082015260408101839052608081016143de60608301846149eb565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561501b57600080fd5b8151610c7f81614ab2565b60005b83811015615041578181015183820152602001615029565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615082816017850160208801615026565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516150b3816028840160208801615026565b01602801949350505050565b600081518084526150d7816020860160208601615026565b601f01601f19169290920160200192915050565b602081526000610c7f60208301846150bf565b6000806000806080858703121561511457600080fd5b845161511f81614913565b602086015190945061513081614913565b604086015160608701519194509250614c8b81614ac0565b65ffffffffffff828116828216039080821115614f5257614f52614d83565b8381526001600160a01b03831660208201526060604082018190526000906143de908301846150bf565b634e487b7160e01b600052604160045260246000fd5b6000816151b6576151b6614d83565b506000190190565b600082516151d0818460208701615026565b919091019291505056fe71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1a2646970667358221220aabfcf6afccc42cd8962b5ede75f88ecc98f6e6b8450661f898ccd49ad9763f064736f6c63430008120033