ERC-20
Source Code
Overview
Max Total Supply
100,000,000,000 CLANKER
Holders
1,184
Transfers
-
12
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
CLANKER
Compiler Version
v0.8.27+commit.40a35a09
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
/*
██████╗██╗ █████╗ ███╗ ██╗██╗ ██╗███████╗██████╗
██╔════╝██║ ██╔══██╗████╗ ██║██║ ██╔╝██╔════╝██╔══██╗
██║ ██║ ███████║██╔██╗ ██║█████╔╝ █████╗ ██████╔╝
██║ ██║ ██╔══██║██║╚██╗██║██╔═██╗ ██╔══╝ ██╔══██╗
╚██████╗███████╗██║ ██║██║ ╚████║██║ ██╗███████╗██║ ██║
╚═════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
fknclanker.com
*/
pragma solidity ^0.8.0;
abstract contract Ctx {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
}
interface IToken {
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 SafeCalc {
function add(uint256 x, uint256 y) internal pure returns (uint256) {
uint256 z = x + y;
require(z >= x, "SafeCalc: addition overflow");
return z;
}
function sub(uint256 x, uint256 y) internal pure returns (uint256) {
return sub(x, y, "SafeCalc: subtraction overflow");
}
function sub(uint256 x, uint256 y, string memory err) internal pure returns (uint256) {
require(y <= x, err);
uint256 z = x - y;
return z;
}
function mul(uint256 x, uint256 y) internal pure returns (uint256) {
if (x == 0) {
return 0;
}
uint256 z = x * y;
require(z / x == y, "SafeCalc: multiplication overflow");
return z;
}
function div(uint256 x, uint256 y) internal pure returns (uint256) {
return div(x, y, "SafeCalc: division by zero");
}
function div(uint256 x, uint256 y, string memory err) internal pure returns (uint256) {
require(y > 0, err);
uint256 z = x / y;
return z;
}
}
contract Owned is Ctx {
address private _adm;
event OwnershipTransferred(address indexed prevAdm, address indexed newAdm);
constructor () {
address msgSndr = _msgSender();
_adm = msgSndr;
emit OwnershipTransferred(address(0), msgSndr);
}
function owner() public view returns (address) {
return _adm;
}
modifier onlyOwner() {
require(_adm == _msgSender(), "Owned: caller is not the admin");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(_adm, address(0));
_adm = address(0);
}
}
interface IUniFact {
function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniRtr {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amtIn,
uint amtOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amtTokenDesired,
uint amtTokenMin,
uint amtETHMin,
address to,
uint deadline
) external payable returns (uint amtToken, uint amtETH, uint liquidity);
}
contract CLANKER is Ctx, IToken, Owned {
using SafeCalc for uint256;
mapping (address => uint256) private _bals;
mapping (address => mapping (address => uint256)) private _allws;
mapping (address => bool) private _exmpt;
address payable private _feeAddr;
uint256 private _bFeeInit=15;
uint256 private _sFeeInit=35;
uint256 private _bFeeEnd=0;
uint256 private _sFeeEnd=0;
uint256 private _bFeeThresh=150;
uint256 private _sFeeThresh=45;
uint256 private _swapDelay=42;
uint256 private _tFee=0;
uint256 private _txCnt=0;
uint8 private constant _dec = 9;
uint256 private constant _totSup = 100_000_000_000 * 10**_dec;
string private constant _nm = unicode"Clanker";
string private constant _sym = unicode"CLANKER";
uint256 public _maxTxAmt = 3 * (_totSup/100);
uint256 public _maxWltAmt = 3 * (_totSup/100);
uint256 public _swapThresh = 2 * (_totSup/1000);
uint256 public _maxSwapAmt = 3 * (_totSup/100);
IUniRtr private rtr;
address private pr;
bool private tradingEnabled;
bool private swapping = false;
bool private swapEnabled = false;
bool private tradingInitialized = false;
uint256 private sellCount = 0;
uint256 private lastSellBlock = 0;
event MaxTransactionUpdated(uint _maxTxAmt);
event TransferFeeUpdated(uint _fee);
modifier lockSwap {
swapping = true;
_;
swapping = false;
}
constructor () {
_feeAddr = payable(0x284a9Cd33BC2315193D606F7358752795693dFb9);
_bals[_msgSender()] = _totSup;
_exmpt[owner()] = true;
_exmpt[address(this)] = true;
_exmpt[_feeAddr] = true;
_exmpt[address(0xdead)] = true;
emit Transfer(address(0), _msgSender(), _totSup);
}
function name() public pure returns (string memory) {
return _nm;
}
function symbol() public pure returns (string memory) {
return _sym;
}
function decimals() public pure returns (uint8) {
return _dec;
}
function totalSupply() public pure override returns (uint256) {
return _totSup;
}
function balanceOf(address acct) public view override returns (uint256) {
return _bals[acct];
}
function transfer(address rcpt, uint256 amt) public override returns (bool) {
_transfer(_msgSender(), rcpt, amt);
return true;
}
function allowance(address ownr, address spndr) public view override returns (uint256) {
return _allws[ownr][spndr];
}
function approve(address spndr, uint256 amt) public override returns (bool) {
_approve(_msgSender(), spndr, amt);
return true;
}
function transferFrom(address sndr, address rcpt, uint256 amt) public override returns (bool) {
_transfer(sndr, rcpt, amt);
_approve(sndr, _msgSender(), _allws[sndr][_msgSender()].sub(amt, "IToken: transfer amount exceeds allowance"));
return true;
}
function _approve(address ownr, address spndr, uint256 amt) private {
require(ownr != address(0), "IToken: approve from the zero address");
require(spndr != address(0), "IToken: approve to the zero address");
_allws[ownr][spndr] = amt;
emit Approval(ownr, spndr, amt);
}
function _transfer(address sndr, address rcpt, uint256 tAmt) private {
require(sndr != address(0), "IToken: transfer from the zero address");
require(rcpt != address(0), "IToken: transfer to the zero address");
require(tAmt > 0, "Transfer amount must be greater than zero");
uint256 feeAmt=0;
if (sndr != owner() && rcpt != owner()) {
require(_exmpt[rcpt] || tradingEnabled == true);
if(_txCnt==0)
{
feeAmt = 0;
}
if(_txCnt>0)
{
feeAmt = tAmt.mul(_tFee).div(100);
}
if ((sndr == pr && rcpt != address(rtr) && !_exmpt[rcpt]))
{
require(tAmt <= _maxTxAmt, "Exceeds the _maxTxAmt.");
require(balanceOf(rcpt) + tAmt <= _maxWltAmt, "Exceeds the maxWltAmt.");
feeAmt = tAmt.mul((_txCnt>_bFeeThresh)?_bFeeEnd:_bFeeInit).div(100);
_txCnt++;
}
if(rcpt == pr && sndr!= address(this)) {
feeAmt = tAmt.mul((_txCnt>_sFeeThresh)?_sFeeEnd:_sFeeInit).div(100);
}
uint256 contTokBal = balanceOf(address(this));
if (!swapping && rcpt == pr && swapEnabled && contTokBal > _swapThresh && _txCnt > _swapDelay) {
if (block.number > lastSellBlock) {
sellCount = 0;
}
require(sellCount < 5, "Only 5 sells per block!");
swapTokensForEth(getMinimum(tAmt, getMinimum(contTokBal, _maxSwapAmt)));
uint256 contEthBal = address(this).balance;
if (contEthBal > 0) {
sendETHToFee(address(this).balance);
}
sellCount++;
lastSellBlock = block.number;
}
}
if(feeAmt>0){
_bals[address(this)]=_bals[address(this)].add(feeAmt);
emit Transfer(sndr, address(this),feeAmt);
}
_bals[sndr]=_bals[sndr].sub(tAmt);
_bals[rcpt]=_bals[rcpt].add(tAmt.sub(feeAmt));
emit Transfer(sndr, rcpt, tAmt.sub(feeAmt));
}
function getMinimum(uint256 x, uint256 y) private pure returns (uint256) {
return (x < y) ? x : y;
}
function setLPorBurnAddress(address[] calldata addrs, bool stat) external onlyOwner {
for (uint256 i = 0; i < addrs.length; i++) {
_exmpt[addrs[i]] = stat;
}
}
function swapTokensForEth(uint256 tokAmt) private lockSwap {
address[] memory swapPth = new address[](2);
swapPth[0] = address(this);
swapPth[1] = rtr.WETH();
_approve(address(this), address(rtr), tokAmt);
rtr.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokAmt,
0,
swapPth,
address(this),
block.timestamp
);
}
function removeLimits() external onlyOwner {
_maxTxAmt = _totSup;
_maxWltAmt=_totSup;
emit MaxTransactionUpdated(_totSup);
}
function removeTax() external onlyOwner {
_tFee = 0;
_bFeeInit = 0;
_sFeeInit= 0;
_bFeeEnd = 0;
_sFeeEnd = 0;
emit TransferFeeUpdated(0);
}
function transitionToEndFees() external onlyOwner {
_txCnt = _bFeeThresh + 1;
emit TransferFeeUpdated(_bFeeEnd);
}
function sendETHToFee(uint256 amt) private {
_feeAddr.transfer(amt);
}
function openTrading() external onlyOwner {
tradingEnabled = true;
}
function enableTrading() external onlyOwner {
require(!tradingInitialized, "Trading is already Enabled");
rtr = IUniRtr(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
_approve(address(this), address(rtr), _totSup);
pr = IUniFact(rtr.factory()).createPair(address(this), rtr.WETH());
rtr.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
IToken(pr).approve(address(rtr), type(uint).max);
swapEnabled = true;
tradingInitialized = true;
}
receive() external payable {}
function manualSwap() external {
require(_msgSender() == _feeAddr || _msgSender() == owner(), "Only fee collector or owner can call this function");
uint256 contToks=balanceOf(address(this));
if(contToks>0){
swapTokensForEth(contToks);
}
uint256 contEth=address(this).balance;
if(contEth>0){
sendETHToFee(contEth);
}
}
function manualSendAllTokens() external {
require(_msgSender() == _feeAddr || _msgSender() == owner(), "Only fee collector or owner can call this function");
uint256 contToks = balanceOf(address(this));
require(contToks > 0, "No tokens to send");
_transfer(address(this), _feeAddr, contToks);
}
function manualTokenSend(uint256 tokAmt) external {
require(_msgSender() == _feeAddr || _msgSender() == owner(), "Only fee collector or owner can call this function");
require(tokAmt > 0, "Token amount must be greater than zero");
uint256 contToks = balanceOf(address(this));
require(contToks >= tokAmt, "Insufficient balance in contract");
_transfer(address(this), _feeAddr, tokAmt);
}
function manualSend() external {
require(_msgSender() == _feeAddr || _msgSender() == owner(), "Only fee collector or owner can call this function");
uint256 contETH = address(this).balance;
sendETHToFee(contETH);
}
function removeSellCountLimit() external {
require(_msgSender() == _feeAddr || _msgSender() == owner(), "Only fee collector or owner can call this function");
sellCount = 0;
lastSellBlock = 0;
}
function disableSellCountLimit() external {
require(_msgSender() == _feeAddr || _msgSender() == owner(), "Only fee collector or owner can call this function");
// Set a very high number to effectively disable the limit
sellCount = 999999;
lastSellBlock = 0;
}
}{
"evmVersion": "paris",
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmt","type":"uint256"}],"name":"MaxTransactionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevAdm","type":"address"},{"indexed":true,"internalType":"address","name":"newAdm","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"TransferFeeUpdated","type":"event"},{"inputs":[],"name":"_maxSwapAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWltAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapThresh","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ownr","type":"address"},{"internalType":"address","name":"spndr","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spndr","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acct","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableSellCountLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSendAllTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokAmt","type":"uint256"}],"name":"manualTokenSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeSellCountLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"stat","type":"bool"}],"name":"setLPorBurnAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"rcpt","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sndr","type":"address"},{"internalType":"address","name":"rcpt","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transitionToEndFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080604052600f6005556023600655600060075560006008556096600955602d600a55602a600b556000600c556000600d5560646009600a61004191906106bf565b64174876e800610051919061070a565b61005b919061077b565b6003610067919061070a565b600e5560646009600a61007a91906106bf565b64174876e80061008a919061070a565b610094919061077b565b60036100a0919061070a565b600f556103e86009600a6100b491906106bf565b64174876e8006100c4919061070a565b6100ce919061077b565b60026100da919061070a565b60105560646009600a6100ed91906106bf565b64174876e8006100fd919061070a565b610107919061077b565b6003610113919061070a565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000601360176101000a81548160ff0219169083151502179055506000601455600060155534801561017d57600080fd5b50600061018e61051560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073284a9cd33bc2315193d606f7358752795693dfb9600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61028f91906106bf565b64174876e80061029f919061070a565b600160006102b161051560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600061030361051d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061048e61051560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6104eb91906106bf565b64174876e8006104fb919061070a565b60405161050891906107bb565b60405180910390a36107d6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156105cc578086048111156105a8576105a7610546565b5b60018516156105b75780820291505b80810290506105c585610575565b945061058c565b94509492505050565b6000826105e557600190506106a1565b816105f357600090506106a1565b8160018114610609576002811461061357610642565b60019150506106a1565b60ff84111561062557610624610546565b5b8360020a91508482111561063c5761063b610546565b5b506106a1565b5060208310610133831016604e8410600b84101617156106775782820a90508381111561067257610671610546565b5b6106a1565b6106848484846001610582565b9250905081840481111561069b5761069a610546565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006106ca826106a8565b91506106d5836106b2565b92506107027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846105d5565b905092915050565b6000610715826106a8565b9150610720836106a8565b925082820261072e816106a8565b9150828204841483151761074557610744610546565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610786826106a8565b9150610791836106a8565b9250826107a1576107a061074c565b5b828204905092915050565b6107b5816106a8565b82525050565b60006020820190506107d060008301846107ac565b92915050565b613e06806107e56000396000f3fe6080604052600436106101a05760003560e01c806363700d5b116100ec5780639638c5181161008a578063d3c3542711610064578063d3c3542714610507578063dd62ed3e14610532578063ee9d2f291461056f578063f429389014610598576101a7565b80639638c5181461048a578063a9059cbb146104b3578063c9567bf9146104f0576101a7565b8063751039fc116100c6578063751039fc146104065780638a8c523c1461041d5780638da5cb5b1461043457806395d89b411461045f576101a7565b806363700d5b1461038757806370a08231146103b2578063715018a6146103ef576101a7565b806318160ddd116101595780632f5f2572116101335780632f5f257214610317578063313ce5671461032e5780633c0fa7f91461035957806351bc3c8514610370576101a7565b806318160ddd1461029857806323b872dd146102c35780632cedc85414610300576101a7565b806302a2c446146101ac57806306792d02146101d757806306fdde03146101ee57806307b6221b14610219578063095ea7b31461023057806311b290af1461026d576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c16105af565b6040516101ce9190612b2d565b60405180910390f35b3480156101e357600080fd5b506101ec6105b5565b005b3480156101fa57600080fd5b506102036106a2565b6040516102109190612bd8565b60405180910390f35b34801561022557600080fd5b5061022e6106df565b005b34801561023c57600080fd5b5061025760048036038101906102529190612c8e565b6107ce565b6040516102649190612ce9565b60405180910390f35b34801561027957600080fd5b506102826107ec565b60405161028f9190612b2d565b60405180910390f35b3480156102a457600080fd5b506102ad6107f2565b6040516102ba9190612b2d565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612d04565b610817565b6040516102f79190612ce9565b60405180910390f35b34801561030c57600080fd5b506103156108f0565b005b34801561032357600080fd5b5061032c6109d5565b005b34801561033a57600080fd5b50610343610acc565b6040516103509190612d73565b60405180910390f35b34801561036557600080fd5b5061036e610ad5565b005b34801561037c57600080fd5b50610385610c30565b005b34801561039357600080fd5b5061039c610d47565b6040516103a99190612b2d565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612d8e565b610d4d565b6040516103e69190612b2d565b60405180910390f35b3480156103fb57600080fd5b50610404610d96565b005b34801561041257600080fd5b5061041b610ee9565b005b34801561042957600080fd5b5061043261101c565b005b34801561044057600080fd5b50610449611555565b6040516104569190612dca565b60405180910390f35b34801561046b57600080fd5b5061047461157e565b6040516104819190612bd8565b60405180910390f35b34801561049657600080fd5b506104b160048036038101906104ac9190612de5565b6115bb565b005b3480156104bf57600080fd5b506104da60048036038101906104d59190612c8e565b61175a565b6040516104e79190612ce9565b60405180910390f35b3480156104fc57600080fd5b50610505611778565b005b34801561051357600080fd5b5061051c61182a565b6040516105299190612b2d565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190612e12565b611830565b6040516105669190612b2d565b60405180910390f35b34801561057b57600080fd5b5061059660048036038101906105919190612ee3565b6118b7565b005b3480156105a457600080fd5b506105ad6119eb565b005b60105481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f6611ad7565b73ffffffffffffffffffffffffffffffffffffffff161480610651575061061b611555565b73ffffffffffffffffffffffffffffffffffffffff16610639611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b610690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068790612fb5565b60405180910390fd5b60006014819055506000601581905550565b60606040518060400160405280600781526020017f436c616e6b657200000000000000000000000000000000000000000000000000815250905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610720611ad7565b73ffffffffffffffffffffffffffffffffffffffff16148061077b5750610745611555565b73ffffffffffffffffffffffffffffffffffffffff16610763611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b6107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190612fb5565b60405180910390fd5b620f423f6014819055506000601581905550565b60006107e26107db611ad7565b8484611adf565b6001905092915050565b600f5481565b60006009600a6108029190613137565b64174876e8006108129190613182565b905090565b6000610824848484611ca8565b6108e584610830611ad7565b6108e085604051806060016040528060298152602001613da860299139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610896611ad7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e39092919063ffffffff16565b611adf565b600190509392505050565b6108f8611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90613210565b60405180910390fd5b60016009546109949190613230565b600d819055507ff9f635b7cf851af6071aaf78ef8a5f752dc52f19d556fea4512b0c2ad4baea726007546040516109cb9190612b2d565b60405180910390a1565b6109dd611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190613210565b60405180910390fd5b6000600c8190555060006005819055506000600681905550600060078190555060006008819055507ff9f635b7cf851af6071aaf78ef8a5f752dc52f19d556fea4512b0c2ad4baea726000604051610ac291906132a9565b60405180910390a1565b60006009905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b16611ad7565b73ffffffffffffffffffffffffffffffffffffffff161480610b715750610b3b611555565b73ffffffffffffffffffffffffffffffffffffffff16610b59611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790612fb5565b60405180910390fd5b6000610bbb30610d4d565b905060008111610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790613310565b60405180910390fd5b610c2d30600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611ca8565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c71611ad7565b73ffffffffffffffffffffffffffffffffffffffff161480610ccc5750610c96611555565b73ffffffffffffffffffffffffffffffffffffffff16610cb4611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0290612fb5565b60405180910390fd5b6000610d1630610d4d565b90506000811115610d2b57610d2a81612647565b5b60004790506000811115610d4357610d42816128c0565b5b5050565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d9e611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290613210565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ef1611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590613210565b60405180910390fd5b6009600a610f8c9190613137565b64174876e800610f9c9190613182565b600e819055506009600a610fb09190613137565b64174876e800610fc09190613182565b600f819055507fcc18a23b5455befc64930dd79aa26a968e67d6953c8c9b683acf16d4c26fff5c6009600a610ff59190613137565b64174876e8006110059190613182565b6040516110129190612b2d565b60405180910390a1565b611024611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a890613210565b60405180910390fd5b601360179054906101000a900460ff1615611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f89061337c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111a030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61118b9190613137565b64174876e80061119b9190613182565b611adf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561120d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123191906133b1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112de91906133b1565b6040518363ffffffff1660e01b81526004016112fb9291906133de565b6020604051808303816000875af115801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e91906133b1565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113c730610d4d565b6000806113d2611555565b426040518863ffffffff1660e01b81526004016113f496959493929190613407565b60606040518083038185885af1158015611412573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611437919061347d565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114d99291906134d0565b6020604051808303816000875af11580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c919061350e565b506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f434c414e4b455200000000000000000000000000000000000000000000000000815250905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115fc611ad7565b73ffffffffffffffffffffffffffffffffffffffff1614806116575750611621611555565b73ffffffffffffffffffffffffffffffffffffffff1661163f611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d90612fb5565b60405180910390fd5b600081116116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d0906135ad565b60405180910390fd5b60006116e430610d4d565b905081811015611729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172090613619565b60405180910390fd5b61175630600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ca8565b5050565b600061176e611767611ad7565b8484611ca8565b6001905092915050565b611780611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490613210565b60405180910390fd5b6001601360146101000a81548160ff021916908315150217905550565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118bf611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194390613210565b60405180910390fd5b60005b838390508110156119e557816003600086868581811061197257611971613639565b5b90506020020160208101906119879190612d8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505061194f565b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a2c611ad7565b73ffffffffffffffffffffffffffffffffffffffff161480611a875750611a51611555565b73ffffffffffffffffffffffffffffffffffffffff16611a6f611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90612fb5565b60405180910390fd5b6000479050611ad4816128c0565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b45906136da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb49061376c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c9b9190612b2d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e906137fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d90613890565b60405180910390fd5b60008111611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613922565b60405180910390fd5b6000611dd3611555565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e415750611e11611555565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561232657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eb1575060011515601360149054906101000a900460ff161515145b611eba57600080fd5b6000600d5403611ec957600090505b6000600d541115611eff57611efc6064611eee600c548561292c90919063ffffffff16565b6129a690919063ffffffff16565b90505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611faa5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120005750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120f957600e5482111561204a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120419061398e565b60405180910390fd5b600f548261205785610d4d565b6120619190613230565b11156120a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612099906139fa565b60405180910390fd5b6120de60646120d0600954600d54116120bd576005546120c1565b6007545b8561292c90919063ffffffff16565b6129a690919063ffffffff16565b9050600d60008154809291906120f390613a1a565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561218257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121c6576121c360646121b5600a54600d54116121a2576006546121a6565b6008545b8561292c90919063ffffffff16565b6129a690919063ffffffff16565b90505b60006121d130610d4d565b9050601360159054906101000a900460ff1615801561223d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156122555750601360169054906101000a900460ff165b8015612262575060105481115b80156122715750600b54600d54115b15612324576015544311156122895760006014819055505b6005601454106122ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c590613aae565b60405180910390fd5b6122eb6122e6846122e1846011546129f0565b6129f0565b612647565b6000479050600081111561230357612302476128c0565b5b6014600081548092919061231690613a1a565b919050555043601581905550505b505b600081111561242a5761238181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124219190612b2d565b60405180910390a35b61247c82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125236124d58284612a6790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6125c88486612a6790919063ffffffff16565b6040516125d59190612b2d565b60405180910390a350505050565b600083831115829061262b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126229190612bd8565b60405180910390fd5b506000838561263a9190613ace565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561267f5761267e613b02565b5b6040519080825280602002602001820160405280156126ad5781602001602082028036833780820191505090505b50905030816000815181106126c5576126c4613639565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279091906133b1565b816001815181106127a4576127a3613639565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061280b30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611adf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161286f959493929190613bef565b600060405180830381600087803b15801561288957600080fd5b505af115801561289d573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612928573d6000803e3d6000fd5b5050565b600080830361293e57600090506129a0565b6000828461294c9190613182565b905082848261295b9190613c78565b1461299b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299290613d1b565b60405180910390fd5b809150505b92915050565b60006129e883836040518060400160405280601a81526020017f5361666543616c633a206469766973696f6e206279207a65726f000000000000815250612ab1565b905092915050565b60008183106129ff5781612a01565b825b905092915050565b6000808284612a189190613230565b905083811015612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5490613d87565b60405180910390fd5b8091505092915050565b6000612aa983836040518060400160405280601e81526020017f5361666543616c633a207375627472616374696f6e206f766572666c6f7700008152506125e3565b905092915050565b60008083118290612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef9190612bd8565b60405180910390fd5b5060008385612b079190613c78565b9050809150509392505050565b6000819050919050565b612b2781612b14565b82525050565b6000602082019050612b426000830184612b1e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b82578082015181840152602081019050612b67565b60008484015250505050565b6000601f19601f8301169050919050565b6000612baa82612b48565b612bb48185612b53565b9350612bc4818560208601612b64565b612bcd81612b8e565b840191505092915050565b60006020820190508181036000830152612bf28184612b9f565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2f82612c04565b9050919050565b612c3f81612c24565b8114612c4a57600080fd5b50565b600081359050612c5c81612c36565b92915050565b612c6b81612b14565b8114612c7657600080fd5b50565b600081359050612c8881612c62565b92915050565b60008060408385031215612ca557612ca4612bfa565b5b6000612cb385828601612c4d565b9250506020612cc485828601612c79565b9150509250929050565b60008115159050919050565b612ce381612cce565b82525050565b6000602082019050612cfe6000830184612cda565b92915050565b600080600060608486031215612d1d57612d1c612bfa565b5b6000612d2b86828701612c4d565b9350506020612d3c86828701612c4d565b9250506040612d4d86828701612c79565b9150509250925092565b600060ff82169050919050565b612d6d81612d57565b82525050565b6000602082019050612d886000830184612d64565b92915050565b600060208284031215612da457612da3612bfa565b5b6000612db284828501612c4d565b91505092915050565b612dc481612c24565b82525050565b6000602082019050612ddf6000830184612dbb565b92915050565b600060208284031215612dfb57612dfa612bfa565b5b6000612e0984828501612c79565b91505092915050565b60008060408385031215612e2957612e28612bfa565b5b6000612e3785828601612c4d565b9250506020612e4885828601612c4d565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e7757612e76612e52565b5b8235905067ffffffffffffffff811115612e9457612e93612e57565b5b602083019150836020820283011115612eb057612eaf612e5c565b5b9250929050565b612ec081612cce565b8114612ecb57600080fd5b50565b600081359050612edd81612eb7565b92915050565b600080600060408486031215612efc57612efb612bfa565b5b600084013567ffffffffffffffff811115612f1a57612f19612bff565b5b612f2686828701612e61565b93509350506020612f3986828701612ece565b9150509250925092565b7f4f6e6c792066656520636f6c6c6563746f72206f72206f776e65722063616e2060008201527f63616c6c20746869732066756e6374696f6e0000000000000000000000000000602082015250565b6000612f9f603283612b53565b9150612faa82612f43565b604082019050919050565b60006020820190508181036000830152612fce81612f92565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561305b5780860481111561303757613036612fd5565b5b60018516156130465780820291505b808102905061305485613004565b945061301b565b94509492505050565b6000826130745760019050613130565b816130825760009050613130565b816001811461309857600281146130a2576130d1565b6001915050613130565b60ff8411156130b4576130b3612fd5565b5b8360020a9150848211156130cb576130ca612fd5565b5b50613130565b5060208310610133831016604e8410600b84101617156131065782820a90508381111561310157613100612fd5565b5b613130565b6131138484846001613011565b9250905081840481111561312a57613129612fd5565b5b81810290505b9392505050565b600061314282612b14565b915061314d83612d57565b925061317a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613064565b905092915050565b600061318d82612b14565b915061319883612b14565b92508282026131a681612b14565b915082820484148315176131bd576131bc612fd5565b5b5092915050565b7f4f776e65643a2063616c6c6572206973206e6f74207468652061646d696e0000600082015250565b60006131fa601e83612b53565b9150613205826131c4565b602082019050919050565b60006020820190508181036000830152613229816131ed565b9050919050565b600061323b82612b14565b915061324683612b14565b925082820190508082111561325e5761325d612fd5565b5b92915050565b6000819050919050565b6000819050919050565b600061329361328e61328984613264565b61326e565b612b14565b9050919050565b6132a381613278565b82525050565b60006020820190506132be600083018461329a565b92915050565b7f4e6f20746f6b656e7320746f2073656e64000000000000000000000000000000600082015250565b60006132fa601183612b53565b9150613305826132c4565b602082019050919050565b60006020820190508181036000830152613329816132ed565b9050919050565b7f54726164696e6720697320616c726561647920456e61626c6564000000000000600082015250565b6000613366601a83612b53565b915061337182613330565b602082019050919050565b6000602082019050818103600083015261339581613359565b9050919050565b6000815190506133ab81612c36565b92915050565b6000602082840312156133c7576133c6612bfa565b5b60006133d58482850161339c565b91505092915050565b60006040820190506133f36000830185612dbb565b6134006020830184612dbb565b9392505050565b600060c08201905061341c6000830189612dbb565b6134296020830188612b1e565b613436604083018761329a565b613443606083018661329a565b6134506080830185612dbb565b61345d60a0830184612b1e565b979650505050505050565b60008151905061347781612c62565b92915050565b60008060006060848603121561349657613495612bfa565b5b60006134a486828701613468565b93505060206134b586828701613468565b92505060406134c686828701613468565b9150509250925092565b60006040820190506134e56000830185612dbb565b6134f26020830184612b1e565b9392505050565b60008151905061350881612eb7565b92915050565b60006020828403121561352457613523612bfa565b5b6000613532848285016134f9565b91505092915050565b7f546f6b656e20616d6f756e74206d75737420626520677265617465722074686160008201527f6e207a65726f0000000000000000000000000000000000000000000000000000602082015250565b6000613597602683612b53565b91506135a28261353b565b604082019050919050565b600060208201905081810360008301526135c68161358a565b9050919050565b7f496e73756666696369656e742062616c616e636520696e20636f6e7472616374600082015250565b6000613603602083612b53565b915061360e826135cd565b602082019050919050565b60006020820190508181036000830152613632816135f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f49546f6b656e3a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136c4602583612b53565b91506136cf82613668565b604082019050919050565b600060208201905081810360008301526136f3816136b7565b9050919050565b7f49546f6b656e3a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613756602383612b53565b9150613761826136fa565b604082019050919050565b6000602082019050818103600083015261378581613749565b9050919050565b7f49546f6b656e3a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137e8602683612b53565b91506137f38261378c565b604082019050919050565b60006020820190508181036000830152613817816137db565b9050919050565b7f49546f6b656e3a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061387a602483612b53565b91506138858261381e565b604082019050919050565b600060208201905081810360008301526138a98161386d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061390c602983612b53565b9150613917826138b0565b604082019050919050565b6000602082019050818103600083015261393b816138ff565b9050919050565b7f4578636565647320746865205f6d61785478416d742e00000000000000000000600082015250565b6000613978601683612b53565b915061398382613942565b602082019050919050565b600060208201905081810360008301526139a78161396b565b9050919050565b7f4578636565647320746865206d6178576c74416d742e00000000000000000000600082015250565b60006139e4601683612b53565b91506139ef826139ae565b602082019050919050565b60006020820190508181036000830152613a13816139d7565b9050919050565b6000613a2582612b14565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a5757613a56612fd5565b5b600182019050919050565b7f4f6e6c7920352073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000613a98601783612b53565b9150613aa382613a62565b602082019050919050565b60006020820190508181036000830152613ac781613a8b565b9050919050565b6000613ad982612b14565b9150613ae483612b14565b9250828203905081811115613afc57613afb612fd5565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b6681612c24565b82525050565b6000613b788383613b5d565b60208301905092915050565b6000602082019050919050565b6000613b9c82613b31565b613ba68185613b3c565b9350613bb183613b4d565b8060005b83811015613be2578151613bc98882613b6c565b9750613bd483613b84565b925050600181019050613bb5565b5085935050505092915050565b600060a082019050613c046000830188612b1e565b613c11602083018761329a565b8181036040830152613c238186613b91565b9050613c326060830185612dbb565b613c3f6080830184612b1e565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8382612b14565b9150613c8e83612b14565b925082613c9e57613c9d613c49565b5b828204905092915050565b7f5361666543616c633a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d05602183612b53565b9150613d1082613ca9565b604082019050919050565b60006020820190508181036000830152613d3481613cf8565b9050919050565b7f5361666543616c633a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d71601b83612b53565b9150613d7c82613d3b565b602082019050919050565b60006020820190508181036000830152613da081613d64565b905091905056fe49546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b832d7645f78be0387030c1b1fe79156a0fc79bd794cef9ebcdb3e5c871689f764736f6c634300081b0033
Deployed Bytecode
0x6080604052600436106101a05760003560e01c806363700d5b116100ec5780639638c5181161008a578063d3c3542711610064578063d3c3542714610507578063dd62ed3e14610532578063ee9d2f291461056f578063f429389014610598576101a7565b80639638c5181461048a578063a9059cbb146104b3578063c9567bf9146104f0576101a7565b8063751039fc116100c6578063751039fc146104065780638a8c523c1461041d5780638da5cb5b1461043457806395d89b411461045f576101a7565b806363700d5b1461038757806370a08231146103b2578063715018a6146103ef576101a7565b806318160ddd116101595780632f5f2572116101335780632f5f257214610317578063313ce5671461032e5780633c0fa7f91461035957806351bc3c8514610370576101a7565b806318160ddd1461029857806323b872dd146102c35780632cedc85414610300576101a7565b806302a2c446146101ac57806306792d02146101d757806306fdde03146101ee57806307b6221b14610219578063095ea7b31461023057806311b290af1461026d576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c16105af565b6040516101ce9190612b2d565b60405180910390f35b3480156101e357600080fd5b506101ec6105b5565b005b3480156101fa57600080fd5b506102036106a2565b6040516102109190612bd8565b60405180910390f35b34801561022557600080fd5b5061022e6106df565b005b34801561023c57600080fd5b5061025760048036038101906102529190612c8e565b6107ce565b6040516102649190612ce9565b60405180910390f35b34801561027957600080fd5b506102826107ec565b60405161028f9190612b2d565b60405180910390f35b3480156102a457600080fd5b506102ad6107f2565b6040516102ba9190612b2d565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e59190612d04565b610817565b6040516102f79190612ce9565b60405180910390f35b34801561030c57600080fd5b506103156108f0565b005b34801561032357600080fd5b5061032c6109d5565b005b34801561033a57600080fd5b50610343610acc565b6040516103509190612d73565b60405180910390f35b34801561036557600080fd5b5061036e610ad5565b005b34801561037c57600080fd5b50610385610c30565b005b34801561039357600080fd5b5061039c610d47565b6040516103a99190612b2d565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d49190612d8e565b610d4d565b6040516103e69190612b2d565b60405180910390f35b3480156103fb57600080fd5b50610404610d96565b005b34801561041257600080fd5b5061041b610ee9565b005b34801561042957600080fd5b5061043261101c565b005b34801561044057600080fd5b50610449611555565b6040516104569190612dca565b60405180910390f35b34801561046b57600080fd5b5061047461157e565b6040516104819190612bd8565b60405180910390f35b34801561049657600080fd5b506104b160048036038101906104ac9190612de5565b6115bb565b005b3480156104bf57600080fd5b506104da60048036038101906104d59190612c8e565b61175a565b6040516104e79190612ce9565b60405180910390f35b3480156104fc57600080fd5b50610505611778565b005b34801561051357600080fd5b5061051c61182a565b6040516105299190612b2d565b60405180910390f35b34801561053e57600080fd5b5061055960048036038101906105549190612e12565b611830565b6040516105669190612b2d565b60405180910390f35b34801561057b57600080fd5b5061059660048036038101906105919190612ee3565b6118b7565b005b3480156105a457600080fd5b506105ad6119eb565b005b60105481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f6611ad7565b73ffffffffffffffffffffffffffffffffffffffff161480610651575061061b611555565b73ffffffffffffffffffffffffffffffffffffffff16610639611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b610690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068790612fb5565b60405180910390fd5b60006014819055506000601581905550565b60606040518060400160405280600781526020017f436c616e6b657200000000000000000000000000000000000000000000000000815250905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610720611ad7565b73ffffffffffffffffffffffffffffffffffffffff16148061077b5750610745611555565b73ffffffffffffffffffffffffffffffffffffffff16610763611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b6107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b190612fb5565b60405180910390fd5b620f423f6014819055506000601581905550565b60006107e26107db611ad7565b8484611adf565b6001905092915050565b600f5481565b60006009600a6108029190613137565b64174876e8006108129190613182565b905090565b6000610824848484611ca8565b6108e584610830611ad7565b6108e085604051806060016040528060298152602001613da860299139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610896611ad7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e39092919063ffffffff16565b611adf565b600190509392505050565b6108f8611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097c90613210565b60405180910390fd5b60016009546109949190613230565b600d819055507ff9f635b7cf851af6071aaf78ef8a5f752dc52f19d556fea4512b0c2ad4baea726007546040516109cb9190612b2d565b60405180910390a1565b6109dd611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190613210565b60405180910390fd5b6000600c8190555060006005819055506000600681905550600060078190555060006008819055507ff9f635b7cf851af6071aaf78ef8a5f752dc52f19d556fea4512b0c2ad4baea726000604051610ac291906132a9565b60405180910390a1565b60006009905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b16611ad7565b73ffffffffffffffffffffffffffffffffffffffff161480610b715750610b3b611555565b73ffffffffffffffffffffffffffffffffffffffff16610b59611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790612fb5565b60405180910390fd5b6000610bbb30610d4d565b905060008111610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790613310565b60405180910390fd5b610c2d30600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611ca8565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c71611ad7565b73ffffffffffffffffffffffffffffffffffffffff161480610ccc5750610c96611555565b73ffffffffffffffffffffffffffffffffffffffff16610cb4611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b610d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0290612fb5565b60405180910390fd5b6000610d1630610d4d565b90506000811115610d2b57610d2a81612647565b5b60004790506000811115610d4357610d42816128c0565b5b5050565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d9e611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2290613210565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ef1611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7590613210565b60405180910390fd5b6009600a610f8c9190613137565b64174876e800610f9c9190613182565b600e819055506009600a610fb09190613137565b64174876e800610fc09190613182565b600f819055507fcc18a23b5455befc64930dd79aa26a968e67d6953c8c9b683acf16d4c26fff5c6009600a610ff59190613137565b64174876e8006110059190613182565b6040516110129190612b2d565b60405180910390a1565b611024611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a890613210565b60405180910390fd5b601360179054906101000a900460ff1615611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f89061337c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111a030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61118b9190613137565b64174876e80061119b9190613182565b611adf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561120d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123191906133b1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112de91906133b1565b6040518363ffffffff1660e01b81526004016112fb9291906133de565b6020604051808303816000875af115801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e91906133b1565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113c730610d4d565b6000806113d2611555565b426040518863ffffffff1660e01b81526004016113f496959493929190613407565b60606040518083038185885af1158015611412573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611437919061347d565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114d99291906134d0565b6020604051808303816000875af11580156114f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151c919061350e565b506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f434c414e4b455200000000000000000000000000000000000000000000000000815250905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115fc611ad7565b73ffffffffffffffffffffffffffffffffffffffff1614806116575750611621611555565b73ffffffffffffffffffffffffffffffffffffffff1661163f611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d90612fb5565b60405180910390fd5b600081116116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d0906135ad565b60405180910390fd5b60006116e430610d4d565b905081811015611729576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172090613619565b60405180910390fd5b61175630600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ca8565b5050565b600061176e611767611ad7565b8484611ca8565b6001905092915050565b611780611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461180d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180490613210565b60405180910390fd5b6001601360146101000a81548160ff021916908315150217905550565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118bf611ad7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194390613210565b60405180910390fd5b60005b838390508110156119e557816003600086868581811061197257611971613639565b5b90506020020160208101906119879190612d8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808060010191505061194f565b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a2c611ad7565b73ffffffffffffffffffffffffffffffffffffffff161480611a875750611a51611555565b73ffffffffffffffffffffffffffffffffffffffff16611a6f611ad7565b73ffffffffffffffffffffffffffffffffffffffff16145b611ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611abd90612fb5565b60405180910390fd5b6000479050611ad4816128c0565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b45906136da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb49061376c565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c9b9190612b2d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0e906137fe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d90613890565b60405180910390fd5b60008111611dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc090613922565b60405180910390fd5b6000611dd3611555565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e415750611e11611555565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561232657600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611eb1575060011515601360149054906101000a900460ff161515145b611eba57600080fd5b6000600d5403611ec957600090505b6000600d541115611eff57611efc6064611eee600c548561292c90919063ffffffff16565b6129a690919063ffffffff16565b90505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611faa5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120005750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120f957600e5482111561204a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120419061398e565b60405180910390fd5b600f548261205785610d4d565b6120619190613230565b11156120a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612099906139fa565b60405180910390fd5b6120de60646120d0600954600d54116120bd576005546120c1565b6007545b8561292c90919063ffffffff16565b6129a690919063ffffffff16565b9050600d60008154809291906120f390613a1a565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561218257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121c6576121c360646121b5600a54600d54116121a2576006546121a6565b6008545b8561292c90919063ffffffff16565b6129a690919063ffffffff16565b90505b60006121d130610d4d565b9050601360159054906101000a900460ff1615801561223d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156122555750601360169054906101000a900460ff165b8015612262575060105481115b80156122715750600b54600d54115b15612324576015544311156122895760006014819055505b6005601454106122ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c590613aae565b60405180910390fd5b6122eb6122e6846122e1846011546129f0565b6129f0565b612647565b6000479050600081111561230357612302476128c0565b5b6014600081548092919061231690613a1a565b919050555043601581905550505b505b600081111561242a5761238181600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124219190612b2d565b60405180910390a35b61247c82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a6790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125236124d58284612a6790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a0990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6125c88486612a6790919063ffffffff16565b6040516125d59190612b2d565b60405180910390a350505050565b600083831115829061262b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126229190612bd8565b60405180910390fd5b506000838561263a9190613ace565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561267f5761267e613b02565b5b6040519080825280602002602001820160405280156126ad5781602001602082028036833780820191505090505b50905030816000815181106126c5576126c4613639565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279091906133b1565b816001815181106127a4576127a3613639565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061280b30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611adf565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161286f959493929190613bef565b600060405180830381600087803b15801561288957600080fd5b505af115801561289d573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612928573d6000803e3d6000fd5b5050565b600080830361293e57600090506129a0565b6000828461294c9190613182565b905082848261295b9190613c78565b1461299b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299290613d1b565b60405180910390fd5b809150505b92915050565b60006129e883836040518060400160405280601a81526020017f5361666543616c633a206469766973696f6e206279207a65726f000000000000815250612ab1565b905092915050565b60008183106129ff5781612a01565b825b905092915050565b6000808284612a189190613230565b905083811015612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5490613d87565b60405180910390fd5b8091505092915050565b6000612aa983836040518060400160405280601e81526020017f5361666543616c633a207375627472616374696f6e206f766572666c6f7700008152506125e3565b905092915050565b60008083118290612af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aef9190612bd8565b60405180910390fd5b5060008385612b079190613c78565b9050809150509392505050565b6000819050919050565b612b2781612b14565b82525050565b6000602082019050612b426000830184612b1e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b82578082015181840152602081019050612b67565b60008484015250505050565b6000601f19601f8301169050919050565b6000612baa82612b48565b612bb48185612b53565b9350612bc4818560208601612b64565b612bcd81612b8e565b840191505092915050565b60006020820190508181036000830152612bf28184612b9f565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2f82612c04565b9050919050565b612c3f81612c24565b8114612c4a57600080fd5b50565b600081359050612c5c81612c36565b92915050565b612c6b81612b14565b8114612c7657600080fd5b50565b600081359050612c8881612c62565b92915050565b60008060408385031215612ca557612ca4612bfa565b5b6000612cb385828601612c4d565b9250506020612cc485828601612c79565b9150509250929050565b60008115159050919050565b612ce381612cce565b82525050565b6000602082019050612cfe6000830184612cda565b92915050565b600080600060608486031215612d1d57612d1c612bfa565b5b6000612d2b86828701612c4d565b9350506020612d3c86828701612c4d565b9250506040612d4d86828701612c79565b9150509250925092565b600060ff82169050919050565b612d6d81612d57565b82525050565b6000602082019050612d886000830184612d64565b92915050565b600060208284031215612da457612da3612bfa565b5b6000612db284828501612c4d565b91505092915050565b612dc481612c24565b82525050565b6000602082019050612ddf6000830184612dbb565b92915050565b600060208284031215612dfb57612dfa612bfa565b5b6000612e0984828501612c79565b91505092915050565b60008060408385031215612e2957612e28612bfa565b5b6000612e3785828601612c4d565b9250506020612e4885828601612c4d565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e7757612e76612e52565b5b8235905067ffffffffffffffff811115612e9457612e93612e57565b5b602083019150836020820283011115612eb057612eaf612e5c565b5b9250929050565b612ec081612cce565b8114612ecb57600080fd5b50565b600081359050612edd81612eb7565b92915050565b600080600060408486031215612efc57612efb612bfa565b5b600084013567ffffffffffffffff811115612f1a57612f19612bff565b5b612f2686828701612e61565b93509350506020612f3986828701612ece565b9150509250925092565b7f4f6e6c792066656520636f6c6c6563746f72206f72206f776e65722063616e2060008201527f63616c6c20746869732066756e6374696f6e0000000000000000000000000000602082015250565b6000612f9f603283612b53565b9150612faa82612f43565b604082019050919050565b60006020820190508181036000830152612fce81612f92565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561305b5780860481111561303757613036612fd5565b5b60018516156130465780820291505b808102905061305485613004565b945061301b565b94509492505050565b6000826130745760019050613130565b816130825760009050613130565b816001811461309857600281146130a2576130d1565b6001915050613130565b60ff8411156130b4576130b3612fd5565b5b8360020a9150848211156130cb576130ca612fd5565b5b50613130565b5060208310610133831016604e8410600b84101617156131065782820a90508381111561310157613100612fd5565b5b613130565b6131138484846001613011565b9250905081840481111561312a57613129612fd5565b5b81810290505b9392505050565b600061314282612b14565b915061314d83612d57565b925061317a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613064565b905092915050565b600061318d82612b14565b915061319883612b14565b92508282026131a681612b14565b915082820484148315176131bd576131bc612fd5565b5b5092915050565b7f4f776e65643a2063616c6c6572206973206e6f74207468652061646d696e0000600082015250565b60006131fa601e83612b53565b9150613205826131c4565b602082019050919050565b60006020820190508181036000830152613229816131ed565b9050919050565b600061323b82612b14565b915061324683612b14565b925082820190508082111561325e5761325d612fd5565b5b92915050565b6000819050919050565b6000819050919050565b600061329361328e61328984613264565b61326e565b612b14565b9050919050565b6132a381613278565b82525050565b60006020820190506132be600083018461329a565b92915050565b7f4e6f20746f6b656e7320746f2073656e64000000000000000000000000000000600082015250565b60006132fa601183612b53565b9150613305826132c4565b602082019050919050565b60006020820190508181036000830152613329816132ed565b9050919050565b7f54726164696e6720697320616c726561647920456e61626c6564000000000000600082015250565b6000613366601a83612b53565b915061337182613330565b602082019050919050565b6000602082019050818103600083015261339581613359565b9050919050565b6000815190506133ab81612c36565b92915050565b6000602082840312156133c7576133c6612bfa565b5b60006133d58482850161339c565b91505092915050565b60006040820190506133f36000830185612dbb565b6134006020830184612dbb565b9392505050565b600060c08201905061341c6000830189612dbb565b6134296020830188612b1e565b613436604083018761329a565b613443606083018661329a565b6134506080830185612dbb565b61345d60a0830184612b1e565b979650505050505050565b60008151905061347781612c62565b92915050565b60008060006060848603121561349657613495612bfa565b5b60006134a486828701613468565b93505060206134b586828701613468565b92505060406134c686828701613468565b9150509250925092565b60006040820190506134e56000830185612dbb565b6134f26020830184612b1e565b9392505050565b60008151905061350881612eb7565b92915050565b60006020828403121561352457613523612bfa565b5b6000613532848285016134f9565b91505092915050565b7f546f6b656e20616d6f756e74206d75737420626520677265617465722074686160008201527f6e207a65726f0000000000000000000000000000000000000000000000000000602082015250565b6000613597602683612b53565b91506135a28261353b565b604082019050919050565b600060208201905081810360008301526135c68161358a565b9050919050565b7f496e73756666696369656e742062616c616e636520696e20636f6e7472616374600082015250565b6000613603602083612b53565b915061360e826135cd565b602082019050919050565b60006020820190508181036000830152613632816135f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f49546f6b656e3a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136c4602583612b53565b91506136cf82613668565b604082019050919050565b600060208201905081810360008301526136f3816136b7565b9050919050565b7f49546f6b656e3a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613756602383612b53565b9150613761826136fa565b604082019050919050565b6000602082019050818103600083015261378581613749565b9050919050565b7f49546f6b656e3a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137e8602683612b53565b91506137f38261378c565b604082019050919050565b60006020820190508181036000830152613817816137db565b9050919050565b7f49546f6b656e3a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061387a602483612b53565b91506138858261381e565b604082019050919050565b600060208201905081810360008301526138a98161386d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061390c602983612b53565b9150613917826138b0565b604082019050919050565b6000602082019050818103600083015261393b816138ff565b9050919050565b7f4578636565647320746865205f6d61785478416d742e00000000000000000000600082015250565b6000613978601683612b53565b915061398382613942565b602082019050919050565b600060208201905081810360008301526139a78161396b565b9050919050565b7f4578636565647320746865206d6178576c74416d742e00000000000000000000600082015250565b60006139e4601683612b53565b91506139ef826139ae565b602082019050919050565b60006020820190508181036000830152613a13816139d7565b9050919050565b6000613a2582612b14565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a5757613a56612fd5565b5b600182019050919050565b7f4f6e6c7920352073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000613a98601783612b53565b9150613aa382613a62565b602082019050919050565b60006020820190508181036000830152613ac781613a8b565b9050919050565b6000613ad982612b14565b9150613ae483612b14565b9250828203905081811115613afc57613afb612fd5565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b6681612c24565b82525050565b6000613b788383613b5d565b60208301905092915050565b6000602082019050919050565b6000613b9c82613b31565b613ba68185613b3c565b9350613bb183613b4d565b8060005b83811015613be2578151613bc98882613b6c565b9750613bd483613b84565b925050600181019050613bb5565b5085935050505092915050565b600060a082019050613c046000830188612b1e565b613c11602083018761329a565b8181036040830152613c238186613b91565b9050613c326060830185612dbb565b613c3f6080830184612b1e565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c8382612b14565b9150613c8e83612b14565b925082613c9e57613c9d613c49565b5b828204905092915050565b7f5361666543616c633a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d05602183612b53565b9150613d1082613ca9565b604082019050919050565b60006020820190508181036000830152613d3481613cf8565b9050919050565b7f5361666543616c633a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d71601b83612b53565b9150613d7c82613d3b565b602082019050919050565b60006020820190508181036000830152613da081613d64565b905091905056fe49546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b832d7645f78be0387030c1b1fe79156a0fc79bd794cef9ebcdb3e5c871689f764736f6c634300081b0033
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.
Add Token to MetaMask (Web3)