ETH Price: $2,134.08 (+2.46%)
Gas: 0.34 Gwei

Contract

0x28ed3fCC9e6291fC583e64e059EEb76323a7d5cF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve233220012025-09-09 0:38:11195 days ago1757378291IN
0x28ed3fCC...323a7d5cF
0 ETH0.000012640.51960189
Approve170090912023-04-09 6:50:231079 days ago1681023023IN
0x28ed3fCC...323a7d5cF
0 ETH0.0004717119.37868565
Transfer113290182020-11-25 18:01:241943 days ago1606327284IN
0x28ed3fCC...323a7d5cF
0 ETH0.0009483240
Transfer112388102020-11-11 21:44:401957 days ago1605131080IN
0x28ed3fCC...323a7d5cF
0 ETH0.0006322226.4
Approve112177412020-11-08 16:09:421960 days ago1604851782IN
0x28ed3fCC...323a7d5cF
0 ETH0.0004808433
Approve112177062020-11-08 16:00:331960 days ago1604851233IN
0x28ed3fCC...323a7d5cF
0 ETH0.0004954134
Transfer112168682020-11-08 13:01:091961 days ago1604840469IN
0x28ed3fCC...323a7d5cF
0 ETH0.0005308422.2
Transfer112151272020-11-08 6:21:261961 days ago1604816486IN
0x28ed3fCC...323a7d5cF
0 ETH0.000406717
Transfer112148702020-11-08 5:24:281961 days ago1604813068IN
0x28ed3fCC...323a7d5cF
0 ETH0.0004782420
Approve112146072020-11-08 4:21:171961 days ago1604809277IN
0x28ed3fCC...323a7d5cF
0 ETH0.000684815.37993142
Transfer112143002020-11-08 3:17:041961 days ago1604805424IN
0x28ed3fCC...323a7d5cF
0 ETH0.0005021521
Transfer112142912020-11-08 3:15:131961 days ago1604805313IN
0x28ed3fCC...323a7d5cF
0 ETH0.0005021521
Approve112142792020-11-08 3:13:511961 days ago1604805231IN
0x28ed3fCC...323a7d5cF
0 ETH0.0002243915.4
Approve112142012020-11-08 2:59:521961 days ago1604804392IN
0x28ed3fCC...323a7d5cF
0 ETH0.0003365923.1
Transfer112140742020-11-08 2:32:201961 days ago1604802740IN
0x28ed3fCC...323a7d5cF
0 ETH0.0004784820
Approve112140662020-11-08 2:30:571961 days ago1604802657IN
0x28ed3fCC...323a7d5cF
0 ETH0.002226350
Approve112140562020-11-08 2:28:581961 days ago1604802538IN
0x28ed3fCC...323a7d5cF
0 ETH0.0010285523.1
Approve112140462020-11-08 2:26:491961 days ago1604802409IN
0x28ed3fCC...323a7d5cF
0 ETH0.0011131525
Approve112140442020-11-08 2:26:151961 days ago1604802375IN
0x28ed3fCC...323a7d5cF
0 ETH0.0011131525
Approve112140382020-11-08 2:24:591961 days ago1604802299IN
0x28ed3fCC...323a7d5cF
0 ETH0.0011131525
Approve112140232020-11-08 2:20:061961 days ago1604802006IN
0x28ed3fCC...323a7d5cF
0 ETH0.0010285523.1
Approve112140102020-11-08 2:18:141961 days ago1604801894IN
0x28ed3fCC...323a7d5cF
0 ETH0.0013303830
Approve112140072020-11-08 2:17:561961 days ago1604801876IN
0x28ed3fCC...323a7d5cF
0 ETH0.0011086525
Approve112139822020-11-08 2:10:031961 days ago1604801403IN
0x28ed3fCC...323a7d5cF
0 ETH0.0011131525
Approve112139382020-11-08 2:02:281961 days ago1604800948IN
0x28ed3fCC...323a7d5cF
0 ETH0.0010285523.1
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Mint112140572020-11-08 2:29:061961 days ago1604802546
0x28ed3fCC...323a7d5cF
0 ETH
Mint112140542020-11-08 2:28:491961 days ago1604802529
0x28ed3fCC...323a7d5cF
0 ETH
Mint112140412020-11-08 2:25:271961 days ago1604802327
0x28ed3fCC...323a7d5cF
0 ETH
Mint112140382020-11-08 2:24:591961 days ago1604802299
0x28ed3fCC...323a7d5cF
0 ETH
Mint112140342020-11-08 2:24:001961 days ago1604802240
0x28ed3fCC...323a7d5cF
0 ETH
Mint112140332020-11-08 2:23:461961 days ago1604802226
0x28ed3fCC...323a7d5cF
0 ETH
Mint112140302020-11-08 2:22:341961 days ago1604802154
0x28ed3fCC...323a7d5cF
0 ETH
Mint112140072020-11-08 2:17:561961 days ago1604801876
0x28ed3fCC...323a7d5cF
0 ETH
Mint112138332020-11-08 1:40:471961 days ago1604799647
0x28ed3fCC...323a7d5cF
0 ETH
Mint112136922020-11-08 1:06:051961 days ago1604797565
0x28ed3fCC...323a7d5cF
0 ETH
Mint112133142020-11-07 23:39:591961 days ago1604792399
0x28ed3fCC...323a7d5cF
0 ETH
Mint112133132020-11-07 23:39:391961 days ago1604792379
0x28ed3fCC...323a7d5cF
0 ETH
Mint112124252020-11-07 20:17:011961 days ago1604780221
0x28ed3fCC...323a7d5cF
0 ETH
Mint112120652020-11-07 18:56:311961 days ago1604775391
0x28ed3fCC...323a7d5cF
0 ETH
Mint112115332020-11-07 17:00:531961 days ago1604768453
0x28ed3fCC...323a7d5cF
0 ETH
Mint112109522020-11-07 14:55:091962 days ago1604760909
0x28ed3fCC...323a7d5cF
0 ETH
Mint112106822020-11-07 13:51:401962 days ago1604757100
0x28ed3fCC...323a7d5cF
0 ETH
Mint112088962020-11-07 7:14:191962 days ago1604733259
0x28ed3fCC...323a7d5cF
0 ETH
Mint112084792020-11-07 5:43:371962 days ago1604727817
0x28ed3fCC...323a7d5cF
0 ETH
Mint112084522020-11-07 5:37:281962 days ago1604727448
0x28ed3fCC...323a7d5cF
0 ETH
Mint112083442020-11-07 5:15:411962 days ago1604726141
0x28ed3fCC...323a7d5cF
0 ETH
Mint112083292020-11-07 5:12:291962 days ago1604725949
0x28ed3fCC...323a7d5cF
0 ETH
Mint112083032020-11-07 5:07:331962 days ago1604725653
0x28ed3fCC...323a7d5cF
0 ETH
Mint112081912020-11-07 4:41:221962 days ago1604724082
0x28ed3fCC...323a7d5cF
0 ETH
Mint112081192020-11-07 4:25:461962 days ago1604723146
0x28ed3fCC...323a7d5cF
0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DotsCoin

Compiler Version
v0.7.2+commit.51b20bc0

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-11-06
*/

pragma solidity ^0.7.0;


abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; 
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }


    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }


    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }
    function name() public view returns (string memory) {
        return _name;
    }
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    function decimals() public view returns (uint8) {
        return _decimals;
    }
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract DotsCoinCore is ERC20("DotSwaps", "DOTS"), Ownable {
    using SafeMath for uint256;
    address internal _taxer;
    address internal _taxDestination;
    uint internal _taxRate = 0;
    bool internal _lock = true;
    mapping (address => bool) internal _taxWhitelist;
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        require(msg.sender == owner() || !_lock, "Transfer is locking");
        uint256 taxAmount = amount.mul(_taxRate).div(100);
        if (_taxWhitelist[msg.sender] == true) {
            taxAmount = 0;
        }
        uint256 transferAmount = amount.sub(taxAmount);
        require(balanceOf(msg.sender) >= amount, "insufficient balance.");
        super.transfer(recipient, transferAmount);
        if (taxAmount != 0) {
            super.transfer(_taxDestination, taxAmount);
        }
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        require(sender == owner() || !_lock, "TransferFrom is locking");

        uint256 taxAmount = amount.mul(_taxRate).div(100);
        if (_taxWhitelist[sender] == true) {
            taxAmount = 0;
        }
        uint256 transferAmount = amount.sub(taxAmount);
        require(balanceOf(sender) >= amount, "insufficient balance.");
        super.transferFrom(sender, recipient, transferAmount);
        if (taxAmount != 0) {
            super.transferFrom(sender, _taxDestination, taxAmount);
        }
        return true;
    }
}


contract DotsCoin is DotsCoinCore {
    mapping (address => bool) public minters;
    constructor() {
        _taxer = owner();
        _taxDestination = owner();
    }
    function mint(address to, uint amount) public onlyMinter {
        _mint(to, amount);
    }
    function burn(uint amount) public {
        require(amount > 0);
        require(balanceOf(msg.sender) >= amount);
        _burn(msg.sender, amount);
    }
    function addMinter(address account) public onlyOwner {
        minters[account] = true;
    }
    function removeMinter(address account) public onlyOwner {
        minters[account] = false;
    }
    modifier onlyMinter() {
        require(minters[msg.sender], "Restricted to minters.");
        _;
    }
    modifier onlyTaxer() {
        require(msg.sender == _taxer, "Only for taxer.");
        _;
    }
    function setTaxer(address account) public onlyTaxer {
        _taxer = account;
    }
    function setTaxRate(uint256 rate) public onlyTaxer {
        _taxRate = rate;
    }
    function setTaxDestination(address account) public onlyTaxer {
        _taxDestination = account;
    }
    function addToWhitelist(address account) public onlyTaxer {
        _taxWhitelist[account] = true;
    }
    function removeFromWhitelist(address account) public onlyTaxer {
        _taxWhitelist[account] = false;
    }
    function taxer() public view returns(address) {
        return _taxer;
    }
    function taxDestination() public view returns(address) {
        return _taxDestination;
    }
    function taxRate() public view returns(uint256) {
        return _taxRate;
    }
    function isInWhitelist(address account) public view returns(bool) {
        return _taxWhitelist[account];
    }
    function unlock() public onlyOwner {
        _lock = false;
    }
    function getLockStatus() view public returns(bool) {
        return _lock;
    }
}
/**
 *DOTSWAPS . COM - WEBSITE
 *DOTSWAPS IS A DUAL TOKEN MODEL SWAPS CONTRACT FOLLOW
*/

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLockStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isInWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setTaxDestination","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setTaxer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxDestination","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260006008556001600960006101000a81548160ff0219169083151502179055503480156200003157600080fd5b506040518060400160405280600881526020017f446f7453776170730000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f444f5453000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000b692919062000277565b508060049080519060200190620000cf92919062000277565b506012600560006101000a81548160ff021916908360ff16021790555050506000620001006200024560201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001af6200024d60201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001ff6200024d60201b60201c565b600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200031d565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ba57805160ff1916838001178555620002eb565b82800160010185558215620002eb579182015b82811115620002ea578251825591602001919060010190620002cd565b5b509050620002fa9190620002fe565b5090565b5b8082111562000319576000816000905550600101620002ff565b5090565b612e85806200032d6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c8063715018a611610104578063a457c2d7116100a2578063dd62ed3e11610071578063dd62ed3e146108d6578063e43252d71461094e578063f2fde38b14610992578063f46eccc4146109d6576101da565b8063a457c2d7146107d6578063a69df4b51461083a578063a9059cbb14610844578063c6d69a30146108a8576101da565b80638da5cb5b116100de5780638da5cb5b146106bb57806395d89b41146106ef578063983b2d56146107725780639ae8ad45146107b6576101da565b8063715018a61461064f578063771a3a1d146106595780638ab1d68114610677576101da565b806323b872dd1161017c578063395093511161014b578063395093511461051757806340c10f191461057b57806342966c68146105c957806370a08231146105f7576101da565b806323b872dd146103fa5780632c547b3d1461047e5780633092afd5146104b2578063313ce567146104f6576101da565b80630d2f0b2e116101b85780630d2f0b2e146103205780631163c3eb1461036457806317c81c1d146103a857806318160ddd146103dc576101da565b806306fdde03146101df578063095ea7b31461026257806309fd8212146102c6575b600080fd5b6101e7610a30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ad2565b60405180821515815260200191505060405180910390f35b610308600480360360208110156102dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610af0565b60405180821515815260200191505060405180910390f35b6103626004803603602081101561033657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b46565b005b6103a66004803603602081101561037a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c4d565b005b6103b0610d54565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e4610d7e565b6040518082815260200191505060405180910390f35b6104666004803603606081101561041057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d88565b60405180821515815260200191505060405180910390f35b610486610fb9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104f4600480360360208110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe3565b005b6104fe611108565b604051808260ff16815260200191505060405180910390f35b6105636004803603604081101561052d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111f565b60405180821515815260200191505060405180910390f35b6105c76004803603604081101561059157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b6105f5600480360360208110156105df57600080fd5b810190808035906020019092919050505061129f565b005b6106396004803603602081101561060d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ce565b6040518082815260200191505060405180910390f35b610657611316565b005b6106616114a1565b6040518082815260200191505060405180910390f35b6106b96004803603602081101561068d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ab565b005b6106c36115c9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106f76115f3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073757808201518184015260208101905061071c565b50505050905090810190601f1680156107645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107b46004803603602081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611695565b005b6107be6117ba565b60405180821515815260200191505060405180910390f35b610822600480360360408110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117d1565b60405180821515815260200191505060405180910390f35b61084261189e565b005b6108906004803603604081101561085a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611985565b60405180821515815260200191505060405180910390f35b6108d4600480360360208110156108be57600080fd5b8101908080359060200190929190505050611bb3565b005b610938600480360360408110156108ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c80565b6040518082815260200191505060405180910390f35b6109906004803603602081101561096457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d07565b005b6109d4600480360360208110156109a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e25565b005b610a18600480360360208110156109ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612035565b60405180821515815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ac85780601f10610a9d57610100808354040283529160200191610ac8565b820191906000526020600020905b815481529060010190602001808311610aab57829003601f168201915b5050505050905090565b6000610ae6610adf612055565b848461205d565b6001905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600254905090565b6000610d926115c9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dd85750600960009054906101000a900460ff16155b610e4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5472616e7366657246726f6d206973206c6f636b696e6700000000000000000081525060200191505060405180910390fd5b6000610e746064610e666008548661225490919063ffffffff16565b6122da90919063ffffffff16565b905060011515600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610ed457600090505b6000610ee9828561232490919063ffffffff16565b905083610ef5876112ce565b1015610f69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e73756666696369656e742062616c616e63652e000000000000000000000081525060200191505060405180910390fd5b610f7486868361236e565b5060008214610fac57610faa86600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461236e565b505b6001925050509392505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610feb612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560009054906101000a900460ff16905090565b60006111c861112c612055565b846111c3856001600061113d612055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b61205d565b6001905092915050565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f5265737472696374656420746f206d696e746572732e0000000000000000000081525060200191505060405180910390fd5b61129b82826124cf565b5050565b600081116112ac57600080fd5b806112b6336112ce565b10156112c157600080fd5b6112cb3382612696565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61131e612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600854905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461156e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561168b5780601f106116605761010080835404028352916020019161168b565b820191906000526020600020905b81548152906001019060200180831161166e57829003601f168201915b5050505050905090565b61169d612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600960009054906101000a900460ff16905090565b60006118946117de612055565b8461188f85604051806060016040528060258152602001612e2b6025913960016000611808612055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a9092919063ffffffff16565b61205d565b6001905092915050565b6118a6612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611968576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600960006101000a81548160ff021916908315150217905550565b600061198f6115c9565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119d55750600960009054906101000a900460ff16155b611a47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5472616e73666572206973206c6f636b696e670000000000000000000000000081525060200191505060405180910390fd5b6000611a716064611a636008548661225490919063ffffffff16565b6122da90919063ffffffff16565b905060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611ad157600090505b6000611ae6828561232490919063ffffffff16565b905083611af2336112ce565b1015611b66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e73756666696369656e742062616c616e63652e000000000000000000000081525060200191505060405180910390fd5b611b70858261291a565b5060008214611ba757611ba5600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361291a565b505b60019250505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611e2d612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d0a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612e076024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612169576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612d306022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008083141561226757600090506122d4565b600082840290508284828161227857fe5b04146122cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612d786021913960400191505060405180910390fd5b809150505b92915050565b600061231c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612938565b905092915050565b600061236683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061285a565b905092915050565b600061237b8484846129fe565b61243c84612387612055565b61243785604051806060016040528060288152602001612d9960289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006123ed612055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a9092919063ffffffff16565b61205d565b600190509392505050565b6000808284019050838110156124c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61257e60008383612cbf565b6125938160025461244790919063ffffffff16565b6002819055506125ea816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561271c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dc16021913960400191505060405180910390fd5b61272882600083612cbf565b61279381604051806060016040528060228152602001612ce8602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ea8160025461232490919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000838311158290612907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128cc5780820151818401526020810190506128b1565b50505050905090810190601f1680156128f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600061292e612927612055565b84846129fe565b6001905092915050565b600080831182906129e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129a957808201518184015260208101905061298e565b50505050905090810190601f1680156129d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816129f057fe5b049050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612de26025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612cc56023913960400191505060405180910390fd5b612b15838383612cbf565b612b8081604051806060016040528060268152602001612d52602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c13816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c722fff4b9e635909a0876e7ae5ab6cd2ec7422d52b0b356dca46ba6b5902e6664736f6c63430007020033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101da5760003560e01c8063715018a611610104578063a457c2d7116100a2578063dd62ed3e11610071578063dd62ed3e146108d6578063e43252d71461094e578063f2fde38b14610992578063f46eccc4146109d6576101da565b8063a457c2d7146107d6578063a69df4b51461083a578063a9059cbb14610844578063c6d69a30146108a8576101da565b80638da5cb5b116100de5780638da5cb5b146106bb57806395d89b41146106ef578063983b2d56146107725780639ae8ad45146107b6576101da565b8063715018a61461064f578063771a3a1d146106595780638ab1d68114610677576101da565b806323b872dd1161017c578063395093511161014b578063395093511461051757806340c10f191461057b57806342966c68146105c957806370a08231146105f7576101da565b806323b872dd146103fa5780632c547b3d1461047e5780633092afd5146104b2578063313ce567146104f6576101da565b80630d2f0b2e116101b85780630d2f0b2e146103205780631163c3eb1461036457806317c81c1d146103a857806318160ddd146103dc576101da565b806306fdde03146101df578063095ea7b31461026257806309fd8212146102c6575b600080fd5b6101e7610a30565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102ae6004803603604081101561027857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ad2565b60405180821515815260200191505060405180910390f35b610308600480360360208110156102dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610af0565b60405180821515815260200191505060405180910390f35b6103626004803603602081101561033657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b46565b005b6103a66004803603602081101561037a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c4d565b005b6103b0610d54565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103e4610d7e565b6040518082815260200191505060405180910390f35b6104666004803603606081101561041057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d88565b60405180821515815260200191505060405180910390f35b610486610fb9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104f4600480360360208110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe3565b005b6104fe611108565b604051808260ff16815260200191505060405180910390f35b6105636004803603604081101561052d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111f565b60405180821515815260200191505060405180910390f35b6105c76004803603604081101561059157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111d2565b005b6105f5600480360360208110156105df57600080fd5b810190808035906020019092919050505061129f565b005b6106396004803603602081101561060d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ce565b6040518082815260200191505060405180910390f35b610657611316565b005b6106616114a1565b6040518082815260200191505060405180910390f35b6106b96004803603602081101561068d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ab565b005b6106c36115c9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106f76115f3565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073757808201518184015260208101905061071c565b50505050905090810190601f1680156107645780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107b46004803603602081101561078857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611695565b005b6107be6117ba565b60405180821515815260200191505060405180910390f35b610822600480360360408110156107ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117d1565b60405180821515815260200191505060405180910390f35b61084261189e565b005b6108906004803603604081101561085a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611985565b60405180821515815260200191505060405180910390f35b6108d4600480360360208110156108be57600080fd5b8101908080359060200190929190505050611bb3565b005b610938600480360360408110156108ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c80565b6040518082815260200191505060405180910390f35b6109906004803603602081101561096457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d07565b005b6109d4600480360360208110156109a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e25565b005b610a18600480360360208110156109ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612035565b60405180821515815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ac85780601f10610a9d57610100808354040283529160200191610ac8565b820191906000526020600020905b815481529060010190602001808311610aab57829003601f168201915b5050505050905090565b6000610ae6610adf612055565b848461205d565b6001905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600254905090565b6000610d926115c9565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dd85750600960009054906101000a900460ff16155b610e4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5472616e7366657246726f6d206973206c6f636b696e6700000000000000000081525060200191505060405180910390fd5b6000610e746064610e666008548661225490919063ffffffff16565b6122da90919063ffffffff16565b905060011515600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610ed457600090505b6000610ee9828561232490919063ffffffff16565b905083610ef5876112ce565b1015610f69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e73756666696369656e742062616c616e63652e000000000000000000000081525060200191505060405180910390fd5b610f7486868361236e565b5060008214610fac57610faa86600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461236e565b505b6001925050509392505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610feb612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560009054906101000a900460ff16905090565b60006111c861112c612055565b846111c3856001600061113d612055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b61205d565b6001905092915050565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f5265737472696374656420746f206d696e746572732e0000000000000000000081525060200191505060405180910390fd5b61129b82826124cf565b5050565b600081116112ac57600080fd5b806112b6336112ce565b10156112c157600080fd5b6112cb3382612696565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61131e612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600854905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461156e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561168b5780601f106116605761010080835404028352916020019161168b565b820191906000526020600020905b81548152906001019060200180831161166e57829003601f168201915b5050505050905090565b61169d612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600960009054906101000a900460ff16905090565b60006118946117de612055565b8461188f85604051806060016040528060258152602001612e2b6025913960016000611808612055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a9092919063ffffffff16565b61205d565b6001905092915050565b6118a6612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611968576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600960006101000a81548160ff021916908315150217905550565b600061198f6115c9565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119d55750600960009054906101000a900460ff16155b611a47576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5472616e73666572206973206c6f636b696e670000000000000000000000000081525060200191505060405180910390fd5b6000611a716064611a636008548661225490919063ffffffff16565b6122da90919063ffffffff16565b905060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415611ad157600090505b6000611ae6828561232490919063ffffffff16565b905083611af2336112ce565b1015611b66576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f696e73756666696369656e742062616c616e63652e000000000000000000000081525060200191505060405180910390fd5b611b70858261291a565b5060008214611ba757611ba5600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361291a565b505b60019250505092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c76576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b8060088190555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4f6e6c7920666f722074617865722e000000000000000000000000000000000081525060200191505060405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611e2d612055565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611eef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612d0a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612e076024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612169576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612d306022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008083141561226757600090506122d4565b600082840290508284828161227857fe5b04146122cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612d786021913960400191505060405180910390fd5b809150505b92915050565b600061231c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612938565b905092915050565b600061236683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061285a565b905092915050565b600061237b8484846129fe565b61243c84612387612055565b61243785604051806060016040528060288152602001612d9960289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006123ed612055565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a9092919063ffffffff16565b61205d565b600190509392505050565b6000808284019050838110156124c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61257e60008383612cbf565b6125938160025461244790919063ffffffff16565b6002819055506125ea816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561271c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dc16021913960400191505060405180910390fd5b61272882600083612cbf565b61279381604051806060016040528060228152602001612ce8602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127ea8160025461232490919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000838311158290612907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156128cc5780820151818401526020810190506128b1565b50505050905090810190601f1680156128f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600061292e612927612055565b84846129fe565b6001905092915050565b600080831182906129e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129a957808201518184015260208101905061298e565b50505050905090810190601f1680156129d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816129f057fe5b049050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612de26025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612cc56023913960400191505060405180910390fd5b612b15838383612cbf565b612b8081604051806060016040528060268152602001612d52602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285a9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c13816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461244790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c722fff4b9e635909a0876e7ae5ab6cd2ec7422d52b0b356dca46ba6b5902e6664736f6c63430007020033

Deployed Bytecode Sourcemap

9172:1945:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2915:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3755:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10839:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10040:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10224:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10565:78;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3186:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8504:659;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10649:96;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9716:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3097:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4257:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9351:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9450:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3292:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7180:148;;;:::i;:::-;;10751:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10447:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6970:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3004:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9615:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11032:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4481:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10959:67;;;:::i;:::-;;7875:621;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10133:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3598:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10335:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7334:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9213:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2915:83;2952:13;2985:5;2978:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2915:83;:::o;3755:169::-;3838:4;3855:39;3864:12;:10;:12::i;:::-;3878:7;3887:6;3855:8;:39::i;:::-;3912:4;3905:11;;3755:169;;;;:::o;10839:114::-;10899:4;10923:13;:22;10937:7;10923:22;;;;;;;;;;;;;;;;;;;;;;;;;10916:29;;10839:114;;;:::o;10040:87::-;9988:6;;;;;;;;;;;9974:20;;:10;:20;;;9966:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10112:7:::1;10103:6;;:16;;;;;;;;;;;;;;;;;;10040:87:::0;:::o;10224:105::-;9988:6;;;;;;;;;;;9974:20;;:10;:20;;;9966:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10314:7:::1;10296:15;;:25;;;;;;;;;;;;;;;;;;10224:105:::0;:::o;10565:78::-;10602:7;10629:6;;;;;;;;;;;10622:13;;10565:78;:::o;3186:100::-;3239:7;3266:12;;3259:19;;3186:100;:::o;8504:659::-;8602:4;8637:7;:5;:7::i;:::-;8627:17;;:6;:17;;;:27;;;;8649:5;;;;;;;;;;;8648:6;8627:27;8619:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8695:17;8715:29;8740:3;8715:20;8726:8;;8715:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8695:49;;8784:4;8759:29;;:13;:21;8773:6;8759:21;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;8755:75;;;8817:1;8805:13;;8755:75;8840:22;8865:21;8876:9;8865:6;:10;;:21;;;;:::i;:::-;8840:46;;8926:6;8905:17;8915:6;8905:9;:17::i;:::-;:27;;8897:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8969:53;8988:6;8996:9;9007:14;8969:18;:53::i;:::-;;9050:1;9037:9;:14;9033:101;;9068:54;9087:6;9095:15;;;;;;;;;;;9112:9;9068:18;:54::i;:::-;;9033:101;9151:4;9144:11;;;;8504:659;;;;;:::o;10649:96::-;10695:7;10722:15;;;;;;;;;;;10715:22;;10649:96;:::o;9716:99::-;7105:12;:10;:12::i;:::-;7095:22;;:6;;;;;;;;;;;:22;;;7087:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9802:5:::1;9783:7;:16;9791:7;9783:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;9716:99:::0;:::o;3097:83::-;3138:5;3163:9;;;;;;;;;;;3156:16;;3097:83;:::o;4257:218::-;4345:4;4362:83;4371:12;:10;:12::i;:::-;4385:7;4394:50;4433:10;4394:11;:25;4406:12;:10;:12::i;:::-;4394:25;;;;;;;;;;;;;;;:34;4420:7;4394:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;4362:8;:83::i;:::-;4463:4;4456:11;;4257:218;;;;:::o;9351:93::-;9862:7;:19;9870:10;9862:19;;;;;;;;;;;;;;;;;;;;;;;;;9854:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9419:17:::1;9425:2;9429:6;9419:5;:17::i;:::-;9351:93:::0;;:::o;9450:159::-;9512:1;9503:6;:10;9495:19;;;;;;9558:6;9533:21;9543:10;9533:9;:21::i;:::-;:31;;9525:40;;;;;;9576:25;9582:10;9594:6;9576:5;:25::i;:::-;9450:159;:::o;3292:119::-;3358:7;3385:9;:18;3395:7;3385:18;;;;;;;;;;;;;;;;3378:25;;3292:119;;;:::o;7180:148::-;7105:12;:10;:12::i;:::-;7095:22;;:6;;;;;;;;;;;:22;;;7087:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7287:1:::1;7250:40;;7271:6;;;;;;;;;;;7250:40;;;;;;;;;;;;7318:1;7301:6;;:19;;;;;;;;;;;;;;;;;;7180:148::o:0;10751:82::-;10790:7;10817:8;;10810:15;;10751:82;:::o;10447:112::-;9988:6;;;;;;;;;;;9974:20;;:10;:20;;;9966:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10546:5:::1;10521:13;:22;10535:7;10521:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10447:112:::0;:::o;6970:79::-;7008:7;7035:6;;;;;;;;;;;7028:13;;6970:79;:::o;3004:87::-;3043:13;3076:7;3069:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3004:87;:::o;9615:95::-;7105:12;:10;:12::i;:::-;7095:22;;:6;;;;;;;;;;;:22;;;7087:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9698:4:::1;9679:7;:16;9687:7;9679:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;9615:95:::0;:::o;11032:82::-;11077:4;11101:5;;;;;;;;;;;11094:12;;11032:82;:::o;4481:269::-;4574:4;4591:129;4600:12;:10;:12::i;:::-;4614:7;4623:96;4662:15;4623:96;;;;;;;;;;;;;;;;;:11;:25;4635:12;:10;:12::i;:::-;4623:25;;;;;;;;;;;;;;;:34;4649:7;4623:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4591:8;:129::i;:::-;4738:4;4731:11;;4481:269;;;;:::o;10959:67::-;7105:12;:10;:12::i;:::-;7095:22;;:6;;;;;;;;;;;:22;;;7087:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11013:5:::1;11005;;:13;;;;;;;;;;;;;;;;;;10959:67::o:0;7875:621::-;7953:4;7992:7;:5;:7::i;:::-;7978:21;;:10;:21;;;:31;;;;8004:5;;;;;;;;;;;8003:6;7978:31;7970:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8044:17;8064:29;8089:3;8064:20;8075:8;;8064:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8044:49;;8137:4;8108:33;;:13;:25;8122:10;8108:25;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;8104:79;;;8170:1;8158:13;;8104:79;8193:22;8218:21;8229:9;8218:6;:10;;:21;;;;:::i;:::-;8193:46;;8283:6;8258:21;8268:10;8258:9;:21::i;:::-;:31;;8250:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8326:41;8341:9;8352:14;8326;:41::i;:::-;;8395:1;8382:9;:14;8378:89;;8413:42;8428:15;;;;;;;;;;;8445:9;8413:14;:42::i;:::-;;8378:89;8484:4;8477:11;;;;7875:621;;;;:::o;10133:85::-;9988:6;;;;;;;;;;;9974:20;;:10;:20;;;9966:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10206:4:::1;10195:8;:15;;;;10133:85:::0;:::o;3598:151::-;3687:7;3714:11;:18;3726:5;3714:18;;;;;;;;;;;;;;;:27;3733:7;3714:27;;;;;;;;;;;;;;;;3707:34;;3598:151;;;;:::o;10335:106::-;9988:6;;;;;;;;;;;9974:20;;:10;:20;;;9966:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10429:4:::1;10404:13;:22;10418:7;10404:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;10335:106:::0;:::o;7334:244::-;7105:12;:10;:12::i;:::-;7095:22;;:6;;;;;;;;;;;:22;;;7087:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7443:1:::1;7423:22;;:8;:22;;;;7415:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7533:8;7504:38;;7525:6;;;;;;;;;;;7504:38;;;;;;;;;;;;7562:8;7553:6;;:17;;;;;;;;;;;;;;;;;;7334:244:::0;:::o;9213:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;62:106::-;115:15;150:10;143:17;;62:106;:::o;6109:346::-;6228:1;6211:19;;:5;:19;;;;6203:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6309:1;6290:21;;:7;:21;;;;6282:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6393:6;6363:11;:18;6375:5;6363:18;;;;;;;;;;;;;;;:27;6382:7;6363:27;;;;;;;;;;;;;;;:36;;;;6431:7;6415:32;;6424:5;6415:32;;;6440:6;6415:32;;;;;;;;;;;;;;;;;;6109:346;;;:::o;1536:248::-;1594:7;1623:1;1618;:6;1614:47;;;1648:1;1641:8;;;;1614:47;1673:9;1689:1;1685;:5;1673:17;;1718:1;1713;1709;:5;;;;;;:10;1701:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1775:1;1768:8;;;1536:248;;;;;:::o;1792:132::-;1850:7;1877:39;1881:1;1884;1877:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1870:46;;1792:132;;;;:::o;1192:136::-;1250:7;1277:43;1281:1;1284;1277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1270:50;;1192:136;;;;:::o;3930:321::-;4036:4;4053:36;4063:6;4071:9;4082:6;4053:9;:36::i;:::-;4100:121;4109:6;4117:12;:10;:12::i;:::-;4131:89;4169:6;4131:89;;;;;;;;;;;;;;;;;:11;:19;4143:6;4131:19;;;;;;;;;;;;;;;:33;4151:12;:10;:12::i;:::-;4131:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;4100:8;:121::i;:::-;4239:4;4232:11;;3930:321;;;;;:::o;1003:179::-;1061:7;1081:9;1097:1;1093;:5;1081:17;;1122:1;1117;:6;;1109:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1173:1;1166:8;;;1003:179;;;;:::o;5301:378::-;5404:1;5385:21;;:7;:21;;;;5377:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5455:49;5484:1;5488:7;5497:6;5455:20;:49::i;:::-;5532:24;5549:6;5532:12;;:16;;:24;;;;:::i;:::-;5517:12;:39;;;;5588:30;5611:6;5588:9;:18;5598:7;5588:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5567:9;:18;5577:7;5567:18;;;;;;;;;;;;;;;:51;;;;5655:7;5634:37;;5651:1;5634:37;;;5664:6;5634:37;;;;;;;;;;;;;;;;;;5301:378;;:::o;5685:418::-;5788:1;5769:21;;:7;:21;;;;5761:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5841:49;5862:7;5879:1;5883:6;5841:20;:49::i;:::-;5924:68;5947:6;5924:68;;;;;;;;;;;;;;;;;:9;:18;5934:7;5924:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;5903:9;:18;5913:7;5903:18;;;;;;;;;;;;;;;:89;;;;6018:24;6035:6;6018:12;;:16;;:24;;;;:::i;:::-;6003:12;:39;;;;6084:1;6058:37;;6067:7;6058:37;;;6088:6;6058:37;;;;;;;;;;;;;;;;;;5685:418;;:::o;1338:190::-;1424:7;1457:1;1452;:6;;1460:12;1444:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1484:9;1500:1;1496;:5;1484:17;;1519:1;1512:8;;;1338:190;;;;;:::o;3417:175::-;3503:4;3520:42;3530:12;:10;:12::i;:::-;3544:9;3555:6;3520:9;:42::i;:::-;3580:4;3573:11;;3417:175;;;;:::o;1932:189::-;2018:7;2050:1;2046;:5;2053:12;2038:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2077:9;2093:1;2089;:5;;;;;;2077:17;;2112:1;2105:8;;;1932:189;;;;;:::o;4756:539::-;4880:1;4862:20;;:6;:20;;;;4854:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4964:1;4943:23;;:9;:23;;;;4935:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5019:47;5040:6;5048:9;5059:6;5019:20;:47::i;:::-;5099:71;5121:6;5099:71;;;;;;;;;;;;;;;;;:9;:17;5109:6;5099:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;5079:9;:17;5089:6;5079:17;;;;;;;;;;;;;;;:91;;;;5204:32;5229:6;5204:9;:20;5214:9;5204:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5181:9;:20;5191:9;5181:20;;;;;;;;;;;;;;;:55;;;;5269:9;5252:35;;5261:6;5252:35;;;5280:6;5252:35;;;;;;;;;;;;;;;;;;4756:539;;;:::o;6557:92::-;;;;:::o

Swarm Source

ipfs://c722fff4b9e635909a0876e7ae5ab6cd2ec7422d52b0b356dca46ba6b5902e66

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.