false
false

Contract Address Details

0xF3063a653Ec31f4e570A7C639d2Ff590Fb27aCfe

Contract Name
Bridge
Creator
0x01e766–0d50e9 at 0x51b7a1–609ec2
Balance
0 BVM
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
32908204
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
Bridge




Optimization enabled
true
Compiler version
v0.8.17+commit.8df45f5f




Optimization runs
200
EVM Version
default




Verified at
2023-07-01T07:35:27.118100Z

Contract source code

Sol2uml
new
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.17;
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
// OpenZeppelin Contracts (last updated v4.8.0) (proxy/utils/Initializable.sol)
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)
/**
* @dev Collection of functions related to the address type
*/
library AddressUpgradeable {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
*
* Furthermore, `isContract` will also return true if the target contract within
* the same transaction is already scheduled for destruction by `SELFDESTRUCT`,
* which only has an effect at the end of a transaction.
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract ABI

[{"type":"event","name":"BridgeToken","inputs":[{"type":"address","name":"token","internalType":"contract WrappedToken","indexed":false},{"type":"address","name":"burner","internalType":"address","indexed":false},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false},{"type":"string","name":"extddr","internalType":"string","indexed":false},{"type":"uint256","name":"destChainId","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"type":"uint8","name":"version","internalType":"uint8","indexed":false}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"type":"address[]","name":"tokens","internalType":"contract WrappedToken[]","indexed":false},{"type":"address[]","name":"recipients","internalType":"address[]","indexed":false},{"type":"uint256[]","name":"amounts","internalType":"uint256[]","indexed":false}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"type":"address","name":"token","internalType":"contract WrappedToken","indexed":false},{"type":"address[]","name":"recipients","internalType":"address[]","indexed":false},{"type":"uint256[]","name":"amounts","internalType":"uint256[]","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IERC20"}],"name":"ETH_TOKEN","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"bridgeToken","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"string","name":"externalAddr","internalType":"string"},{"type":"uint256","name":"destChainId","internalType":"uint256"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"bridgeToken","inputs":[{"type":"string","name":"externalAddr","internalType":"string"},{"type":"uint256","name":"destChainId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"burnableToken","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[{"type":"address","name":"safeMultisigContractAddress","internalType":"address"},{"type":"address","name":"operator_","internalType":"address"},{"type":"address[]","name":"tokens","internalType":"address[]"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"mint","inputs":[{"type":"address[]","name":"tokens","internalType":"contract WrappedToken[]"},{"type":"address[]","name":"recipients","internalType":"address[]"},{"type":"uint256[]","name":"amounts","internalType":"uint256[]"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"mint","inputs":[{"type":"address","name":"token","internalType":"contract WrappedToken"},{"type":"address[]","name":"recipients","internalType":"address[]"},{"type":"uint256[]","name":"amounts","internalType":"uint256[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"operator","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOperator","inputs":[{"type":"address","name":"operator_","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"updateToken","inputs":[{"type":"address[]","name":"tokens","internalType":"address[]"},{"type":"bool[]","name":"isBurns","internalType":"bool[]"}]}]
              

Contract Creation Code

0x608060405234801561001057600080fd5b50611898806100206000396000f3fe6080604052600436106100c25760003560e01c806358bc83371161007f5780638da5cb5b116100595780638da5cb5b14610210578063a3bf277e1461022e578063d4546d231461024e578063f2fde38b1461026157600080fd5b806358bc8337146101c6578063715018a6146101db57806377a24f36146101f057600080fd5b806307ef210c146100c75780630e93b35c1461010c57806329605e771461012e5780634432e6b71461014e5780635530f4a51461016e578063570ca7351461018e575b600080fd5b3480156100d357600080fd5b506100f76100e2366004611275565b60656020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561011857600080fd5b5061012c6101273660046112e2565b610281565b005b34801561013a57600080fd5b5061012c610149366004611275565b610329565b34801561015a57600080fd5b5061012c61016936600461138b565b6103a5565b34801561017a57600080fd5b5061012c6101893660046113f7565b6104ec565b34801561019a57600080fd5b506066546101ae906001600160a01b031681565b6040516001600160a01b039091168152602001610103565b3480156101d257600080fd5b506101ae600081565b3480156101e757600080fd5b5061012c610768565b3480156101fc57600080fd5b5061012c61020b366004611491565b61077c565b34801561021c57600080fd5b506033546001600160a01b03166101ae565b34801561023a57600080fd5b5061012c6102493660046114ea565b61098b565b61012c61025c36600461156d565b610b58565b34801561026d57600080fd5b5061012c61027c366004611275565b610bf0565b468181036102d65760405162461bcd60e51b815260206004820152601d60248201527f4272696467653a20696e76616c6964206465737420636861696e20696400000060448201526064015b60405180910390fd5b6102e08686610c69565b7fc28e54186544d7357308b86c8319edd275e0db552d62381cf49f827791845c61863387878787604051610319969594939291906115b9565b60405180910390a1505050505050565b6066546001600160a01b0316336001600160a01b0316146103835760405162461bcd60e51b8152602060048201526014602482015273109c9a5919d94e881d5b985d5d1a1bdc9a5cd95960621b60448201526064016102cd565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6066546001600160a01b0316336001600160a01b0316146103ff5760405162461bcd60e51b8152602060048201526014602482015273109c9a5919d94e881d5b985d5d1a1bdc9a5cd95960621b60448201526064016102cd565b82811461044e5760405162461bcd60e51b815260206004820152601c60248201527f4272696467653a206d69736d617463682064617461206c656e6774680000000060448201526064016102cd565b60005b838110156104e55782828281811061046b5761046b611614565b90506020020160208101906104809190611638565b6065600087878581811061049657610496611614565b90506020020160208101906104ab9190611275565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806104dd81611655565b915050610451565b5050505050565b6104f4610d16565b848314801561050257508281145b61054e5760405162461bcd60e51b815260206004820152601a60248201527f4272696467653a20696e76616c696420696e707574206461746100000000000060448201526064016102cd565b60005b8381101561072e57600087878381811061056d5761056d611614565b90506020020160208101906105829190611275565b6001600160a01b0316141580156105ce57506105ce308888848181106105aa576105aa611614565b90506020020160208101906105bf9190611275565b6001600160a01b031690610d70565b156106ad578686828181106105e5576105e5611614565b90506020020160208101906105fa9190611275565b6001600160a01b03166340c10f1986868481811061061a5761061a611614565b905060200201602081019061062f9190611275565b85858581811061064157610641611614565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401600060405180830381600087803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b5050505061071c565b61071c8787838181106106c2576106c2611614565b90506020020160208101906106d79190611275565b8686848181106106e9576106e9611614565b90506020020160208101906106fe9190611275565b85858581811061071057610710611614565b90506020020135610e3e565b8061072681611655565b915050610551565b507fe9914506df53b6ba40090fea5ed4edb71623a51062de3125c2dc65b23de6d05e868686868686604051610319969594939291906116f7565b610770610d16565b61077a6000610f0e565b565b600054610100900460ff161580801561079c5750600054600160ff909116105b806107b65750303b1580156107b6575060005460ff166001145b6108195760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102cd565b6000805460ff19166001179055801561083c576000805461ff0019166101001790555b6001600160a01b0385161580159061085c57506001600160a01b03841615155b6108a85760405162461bcd60e51b815260206004820152601760248201527f4272696467653a20696e76616c6964206164647265737300000000000000000060448201526064016102cd565b6108b185610f0e565b606680546001600160a01b0319166001600160a01b03861617905560005b8281101561093e576001606560008686858181106108ef576108ef611614565b90506020020160208101906109049190611275565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061093681611655565b9150506108cf565b5080156104e5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b610993610d16565b8281146109e25760405162461bcd60e51b815260206004820152601a60248201527f4272696467653a20696e76616c696420696e707574206461746100000000000060448201526064016102cd565b60006001600160a01b03861615801590610a0a5750610a0a6001600160a01b03871630610d70565b905060005b84811015610b20578115610ad157866001600160a01b03166340c10f19878784818110610a3e57610a3e611614565b9050602002016020810190610a539190611275565b868685818110610a6557610a65611614565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401600060405180830381600087803b158015610ab457600080fd5b505af1158015610ac8573d6000803e3d6000fd5b50505050610b0e565b610b0e87878784818110610ae757610ae7611614565b9050602002016020810190610afc9190611275565b86868581811061071057610710611614565b80610b1881611655565b915050610a0f565b507fa20ca4d8d83b89ff090c0ea7b3c3c600625d46681874e0c0d1e35a1d1d4964dd8686868686604051610319959493929190611771565b46818103610ba85760405162461bcd60e51b815260206004820152601d60248201527f4272696467653a20696e76616c6964206465737420636861696e20696400000060448201526064016102cd565b7fc28e54186544d7357308b86c8319edd275e0db552d62381cf49f827791845c6160003334878787604051610be2969594939291906115b9565b60405180910390a150505050565b610bf8610d16565b6001600160a01b038116610c5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102cd565b610c6681610f0e565b50565b6001600160a01b03821660009081526065602052604090205460ff16610ca257610c9e6001600160a01b038316333084610f60565b5050565b6001600160a01b0382166379cc6790336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610cfa57600080fd5b505af1158015610d0e573d6000803e3d6000fd5b505050505050565b6033546001600160a01b0316331461077a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102cd565b60408051600481526024810182526020810180516001600160e01b0316638da5cb5b60e01b1790529051600091829182916001600160a01b03871691610db691906117d9565b600060405180830381855afa9150503d8060008114610df1576040519150601f19603f3d011682016040523d82523d6000602084013e610df6565b606091505b509150915081610e0b57600092505050610e38565b836001600160a01b031681806020019051810190610e2991906117f5565b6001600160a01b031614925050505b92915050565b6001600160a01b038316610ef5576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e99576040519150601f19603f3d011682016040523d82523d6000602084013e610e9e565b606091505b5050905080610eef5760405162461bcd60e51b815260206004820152601b60248201527f4272696467653a207472616e7366657220657468206661696c6564000000000060448201526064016102cd565b50505050565b610f096001600160a01b0384168383610fcb565b505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052610eef9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610ffb565b6040516001600160a01b038316602482015260448101829052610f0990849063a9059cbb60e01b90606401610f94565b6000611050826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110d09092919063ffffffff16565b90508051600014806110715750808060200190518101906110719190611812565b610f095760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102cd565b60606110df84846000856110e7565b949350505050565b6060824710156111485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102cd565b600080866001600160a01b0316858760405161116491906117d9565b60006040518083038185875af1925050503d80600081146111a1576040519150601f19603f3d011682016040523d82523d6000602084013e6111a6565b606091505b50915091506111b7878383876111c2565b979650505050505050565b6060831561123157825160000361122a576001600160a01b0385163b61122a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102cd565b50816110df565b6110df83838151156112465781518083602001fd5b8060405162461bcd60e51b81526004016102cd919061182f565b6001600160a01b0381168114610c6657600080fd5b60006020828403121561128757600080fd5b813561129281611260565b9392505050565b60008083601f8401126112ab57600080fd5b50813567ffffffffffffffff8111156112c357600080fd5b6020830191508360208285010111156112db57600080fd5b9250929050565b6000806000806000608086880312156112fa57600080fd5b853561130581611260565b945060208601359350604086013567ffffffffffffffff81111561132857600080fd5b61133488828901611299565b96999598509660600135949350505050565b60008083601f84011261135857600080fd5b50813567ffffffffffffffff81111561137057600080fd5b6020830191508360208260051b85010111156112db57600080fd5b600080600080604085870312156113a157600080fd5b843567ffffffffffffffff808211156113b957600080fd5b6113c588838901611346565b909650945060208701359150808211156113de57600080fd5b506113eb87828801611346565b95989497509550505050565b6000806000806000806060878903121561141057600080fd5b863567ffffffffffffffff8082111561142857600080fd5b6114348a838b01611346565b9098509650602089013591508082111561144d57600080fd5b6114598a838b01611346565b9096509450604089013591508082111561147257600080fd5b5061147f89828a01611346565b979a9699509497509295939492505050565b600080600080606085870312156114a757600080fd5b84356114b281611260565b935060208501356114c281611260565b9250604085013567ffffffffffffffff8111156114de57600080fd5b6113eb87828801611346565b60008060008060006060868803121561150257600080fd5b853561150d81611260565b9450602086013567ffffffffffffffff8082111561152a57600080fd5b61153689838a01611346565b9096509450604088013591508082111561154f57600080fd5b5061155c88828901611346565b969995985093965092949392505050565b60008060006040848603121561158257600080fd5b833567ffffffffffffffff81111561159957600080fd5b6115a586828701611299565b909790965060209590950135949350505050565b6001600160a01b038781168252861660208201526040810185905260a06060820181905281018390526000838560c0840137600060c0858401015260c0601f19601f8601168301019050826080830152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b8015158114610c6657600080fd5b60006020828403121561164a57600080fd5b81356112928161162a565b60006001820161167557634e487b7160e01b600052601160045260246000fd5b5060010190565b8183526000602080850194508260005b858110156116ba57813561169f81611260565b6001600160a01b03168752958201959082019060010161168c565b509495945050505050565b81835260006001600160fb1b038311156116de57600080fd5b8260051b80836020870137939093016020019392505050565b6060808252810186905260008760808301825b8981101561173a57823561171d81611260565b6001600160a01b031682526020928301929091019060010161170a565b50838103602085015261174e81888a61167c565b91505082810360408401526117648185876116c5565b9998505050505050505050565b6001600160a01b0386168152606060208201819052600090611796908301868861167c565b82810360408401526117a98185876116c5565b98975050505050505050565b60005b838110156117d05781810151838201526020016117b8565b50506000910152565b600082516117eb8184602087016117b5565b9190910192915050565b60006020828403121561180757600080fd5b815161129281611260565b60006020828403121561182457600080fd5b81516112928161162a565b602081526000825180602084015261184e8160408501602087016117b5565b601f01601f1916919091016040019291505056fea2646970667358221220fbcd93433e7bcd9977d6caf81a40ba09b9120c1dee0f2f8f6cbe537963f25b4564736f6c63430008110033

Deployed ByteCode

0x6080604052600436106100c25760003560e01c806358bc83371161007f5780638da5cb5b116100595780638da5cb5b14610210578063a3bf277e1461022e578063d4546d231461024e578063f2fde38b1461026157600080fd5b806358bc8337146101c6578063715018a6146101db57806377a24f36146101f057600080fd5b806307ef210c146100c75780630e93b35c1461010c57806329605e771461012e5780634432e6b71461014e5780635530f4a51461016e578063570ca7351461018e575b600080fd5b3480156100d357600080fd5b506100f76100e2366004611275565b60656020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561011857600080fd5b5061012c6101273660046112e2565b610281565b005b34801561013a57600080fd5b5061012c610149366004611275565b610329565b34801561015a57600080fd5b5061012c61016936600461138b565b6103a5565b34801561017a57600080fd5b5061012c6101893660046113f7565b6104ec565b34801561019a57600080fd5b506066546101ae906001600160a01b031681565b6040516001600160a01b039091168152602001610103565b3480156101d257600080fd5b506101ae600081565b3480156101e757600080fd5b5061012c610768565b3480156101fc57600080fd5b5061012c61020b366004611491565b61077c565b34801561021c57600080fd5b506033546001600160a01b03166101ae565b34801561023a57600080fd5b5061012c6102493660046114ea565b61098b565b61012c61025c36600461156d565b610b58565b34801561026d57600080fd5b5061012c61027c366004611275565b610bf0565b468181036102d65760405162461bcd60e51b815260206004820152601d60248201527f4272696467653a20696e76616c6964206465737420636861696e20696400000060448201526064015b60405180910390fd5b6102e08686610c69565b7fc28e54186544d7357308b86c8319edd275e0db552d62381cf49f827791845c61863387878787604051610319969594939291906115b9565b60405180910390a1505050505050565b6066546001600160a01b0316336001600160a01b0316146103835760405162461bcd60e51b8152602060048201526014602482015273109c9a5919d94e881d5b985d5d1a1bdc9a5cd95960621b60448201526064016102cd565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6066546001600160a01b0316336001600160a01b0316146103ff5760405162461bcd60e51b8152602060048201526014602482015273109c9a5919d94e881d5b985d5d1a1bdc9a5cd95960621b60448201526064016102cd565b82811461044e5760405162461bcd60e51b815260206004820152601c60248201527f4272696467653a206d69736d617463682064617461206c656e6774680000000060448201526064016102cd565b60005b838110156104e55782828281811061046b5761046b611614565b90506020020160208101906104809190611638565b6065600087878581811061049657610496611614565b90506020020160208101906104ab9190611275565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806104dd81611655565b915050610451565b5050505050565b6104f4610d16565b848314801561050257508281145b61054e5760405162461bcd60e51b815260206004820152601a60248201527f4272696467653a20696e76616c696420696e707574206461746100000000000060448201526064016102cd565b60005b8381101561072e57600087878381811061056d5761056d611614565b90506020020160208101906105829190611275565b6001600160a01b0316141580156105ce57506105ce308888848181106105aa576105aa611614565b90506020020160208101906105bf9190611275565b6001600160a01b031690610d70565b156106ad578686828181106105e5576105e5611614565b90506020020160208101906105fa9190611275565b6001600160a01b03166340c10f1986868481811061061a5761061a611614565b905060200201602081019061062f9190611275565b85858581811061064157610641611614565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401600060405180830381600087803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b5050505061071c565b61071c8787838181106106c2576106c2611614565b90506020020160208101906106d79190611275565b8686848181106106e9576106e9611614565b90506020020160208101906106fe9190611275565b85858581811061071057610710611614565b90506020020135610e3e565b8061072681611655565b915050610551565b507fe9914506df53b6ba40090fea5ed4edb71623a51062de3125c2dc65b23de6d05e868686868686604051610319969594939291906116f7565b610770610d16565b61077a6000610f0e565b565b600054610100900460ff161580801561079c5750600054600160ff909116105b806107b65750303b1580156107b6575060005460ff166001145b6108195760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102cd565b6000805460ff19166001179055801561083c576000805461ff0019166101001790555b6001600160a01b0385161580159061085c57506001600160a01b03841615155b6108a85760405162461bcd60e51b815260206004820152601760248201527f4272696467653a20696e76616c6964206164647265737300000000000000000060448201526064016102cd565b6108b185610f0e565b606680546001600160a01b0319166001600160a01b03861617905560005b8281101561093e576001606560008686858181106108ef576108ef611614565b90506020020160208101906109049190611275565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061093681611655565b9150506108cf565b5080156104e5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b610993610d16565b8281146109e25760405162461bcd60e51b815260206004820152601a60248201527f4272696467653a20696e76616c696420696e707574206461746100000000000060448201526064016102cd565b60006001600160a01b03861615801590610a0a5750610a0a6001600160a01b03871630610d70565b905060005b84811015610b20578115610ad157866001600160a01b03166340c10f19878784818110610a3e57610a3e611614565b9050602002016020810190610a539190611275565b868685818110610a6557610a65611614565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401600060405180830381600087803b158015610ab457600080fd5b505af1158015610ac8573d6000803e3d6000fd5b50505050610b0e565b610b0e87878784818110610ae757610ae7611614565b9050602002016020810190610afc9190611275565b86868581811061071057610710611614565b80610b1881611655565b915050610a0f565b507fa20ca4d8d83b89ff090c0ea7b3c3c600625d46681874e0c0d1e35a1d1d4964dd8686868686604051610319959493929190611771565b46818103610ba85760405162461bcd60e51b815260206004820152601d60248201527f4272696467653a20696e76616c6964206465737420636861696e20696400000060448201526064016102cd565b7fc28e54186544d7357308b86c8319edd275e0db552d62381cf49f827791845c6160003334878787604051610be2969594939291906115b9565b60405180910390a150505050565b610bf8610d16565b6001600160a01b038116610c5d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102cd565b610c6681610f0e565b50565b6001600160a01b03821660009081526065602052604090205460ff16610ca257610c9e6001600160a01b038316333084610f60565b5050565b6001600160a01b0382166379cc6790336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015610cfa57600080fd5b505af1158015610d0e573d6000803e3d6000fd5b505050505050565b6033546001600160a01b0316331461077a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102cd565b60408051600481526024810182526020810180516001600160e01b0316638da5cb5b60e01b1790529051600091829182916001600160a01b03871691610db691906117d9565b600060405180830381855afa9150503d8060008114610df1576040519150601f19603f3d011682016040523d82523d6000602084013e610df6565b606091505b509150915081610e0b57600092505050610e38565b836001600160a01b031681806020019051810190610e2991906117f5565b6001600160a01b031614925050505b92915050565b6001600160a01b038316610ef5576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e99576040519150601f19603f3d011682016040523d82523d6000602084013e610e9e565b606091505b5050905080610eef5760405162461bcd60e51b815260206004820152601b60248201527f4272696467653a207472616e7366657220657468206661696c6564000000000060448201526064016102cd565b50505050565b610f096001600160a01b0384168383610fcb565b505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516001600160a01b0380851660248301528316604482015260648101829052610eef9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610ffb565b6040516001600160a01b038316602482015260448101829052610f0990849063a9059cbb60e01b90606401610f94565b6000611050826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166110d09092919063ffffffff16565b90508051600014806110715750808060200190518101906110719190611812565b610f095760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102cd565b60606110df84846000856110e7565b949350505050565b6060824710156111485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016102cd565b600080866001600160a01b0316858760405161116491906117d9565b60006040518083038185875af1925050503d80600081146111a1576040519150601f19603f3d011682016040523d82523d6000602084013e6111a6565b606091505b50915091506111b7878383876111c2565b979650505050505050565b6060831561123157825160000361122a576001600160a01b0385163b61122a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102cd565b50816110df565b6110df83838151156112465781518083602001fd5b8060405162461bcd60e51b81526004016102cd919061182f565b6001600160a01b0381168114610c6657600080fd5b60006020828403121561128757600080fd5b813561129281611260565b9392505050565b60008083601f8401126112ab57600080fd5b50813567ffffffffffffffff8111156112c357600080fd5b6020830191508360208285010111156112db57600080fd5b9250929050565b6000806000806000608086880312156112fa57600080fd5b853561130581611260565b945060208601359350604086013567ffffffffffffffff81111561132857600080fd5b61133488828901611299565b96999598509660600135949350505050565b60008083601f84011261135857600080fd5b50813567ffffffffffffffff81111561137057600080fd5b6020830191508360208260051b85010111156112db57600080fd5b600080600080604085870312156113a157600080fd5b843567ffffffffffffffff808211156113b957600080fd5b6113c588838901611346565b909650945060208701359150808211156113de57600080fd5b506113eb87828801611346565b95989497509550505050565b6000806000806000806060878903121561141057600080fd5b863567ffffffffffffffff8082111561142857600080fd5b6114348a838b01611346565b9098509650602089013591508082111561144d57600080fd5b6114598a838b01611346565b9096509450604089013591508082111561147257600080fd5b5061147f89828a01611346565b979a9699509497509295939492505050565b600080600080606085870312156114a757600080fd5b84356114b281611260565b935060208501356114c281611260565b9250604085013567ffffffffffffffff8111156114de57600080fd5b6113eb87828801611346565b60008060008060006060868803121561150257600080fd5b853561150d81611260565b9450602086013567ffffffffffffffff8082111561152a57600080fd5b61153689838a01611346565b9096509450604088013591508082111561154f57600080fd5b5061155c88828901611346565b969995985093965092949392505050565b60008060006040848603121561158257600080fd5b833567ffffffffffffffff81111561159957600080fd5b6115a586828701611299565b909790965060209590950135949350505050565b6001600160a01b038781168252861660208201526040810185905260a06060820181905281018390526000838560c0840137600060c0858401015260c0601f19601f8601168301019050826080830152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b8015158114610c6657600080fd5b60006020828403121561164a57600080fd5b81356112928161162a565b60006001820161167557634e487b7160e01b600052601160045260246000fd5b5060010190565b8183526000602080850194508260005b858110156116ba57813561169f81611260565b6001600160a01b03168752958201959082019060010161168c565b509495945050505050565b81835260006001600160fb1b038311156116de57600080fd5b8260051b80836020870137939093016020019392505050565b6060808252810186905260008760808301825b8981101561173a57823561171d81611260565b6001600160a01b031682526020928301929091019060010161170a565b50838103602085015261174e81888a61167c565b91505082810360408401526117648185876116c5565b9998505050505050505050565b6001600160a01b0386168152606060208201819052600090611796908301868861167c565b82810360408401526117a98185876116c5565b98975050505050505050565b60005b838110156117d05781810151838201526020016117b8565b50506000910152565b600082516117eb8184602087016117b5565b9190910192915050565b60006020828403121561180757600080fd5b815161129281611260565b60006020828403121561182457600080fd5b81516112928161162a565b602081526000825180602084015261184e8160408501602087016117b5565b601f01601f1916919091016040019291505056fea2646970667358221220fbcd93433e7bcd9977d6caf81a40ba09b9120c1dee0f2f8f6cbe537963f25b4564736f6c63430008110033