ETH Price: $3,070.89 (-1.37%)

Token

SPI Club (SPIC)
 

Overview

Max Total Supply

119,542.337621029833138503 SPIC

Holders

1,396

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
send-here.eth
Balance
12.894135027513697101 SPIC

Value
$0.00
0x081ffb021d5076040e39d891a01abaab0ffb192b
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SPIClub

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license, Audited

Contract Source Code (Solidity)Audit Report

/**
 *Submitted for verification at Etherscan.io on 2020-12-15
*/

/*
    SPI CLUB
    SPI Staking Contract
    --------------------
    10% buy fee
    10% sell fee 
    2% referral fee 
    1% transfer fee 
    
    Launch time 12/18/2020 @ 12:00pm
    SPI token 0x9B02dD390a603Add5c07f9fd9175b7DABE8D63B7
*/

pragma solidity ^ 0.4.26;

library SafeMath {

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

 function div(uint256 a, uint256 b) internal pure returns(uint256) {
  return a / b;
 }

 function sub(uint256 a, uint256 b) internal pure returns(uint256) {
  assert(b <= a);
  return a - b;
 }

 function add(uint256 a, uint256 b) internal pure returns(uint256 c) {
  c = a + b;
  assert(c >= a);
  return c;
 }

}

contract TOKEN {
 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);
}

contract Ownable {
 address public owner;
 event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 constructor() public {
  owner = msg.sender;
 }
 modifier onlyOwner() {
  require(msg.sender == owner);
  _;
 }
 function transferOwnership(address newOwner) public onlyOwner {
  require(newOwner != address(0));
  emit OwnershipTransferred(owner, newOwner);
  owner = newOwner;
 }
}

contract SPIClub is Ownable {

 mapping(address => bool) internal ambassadors_;
 uint256 constant internal ambassadorMaxPurchase_ = 10000e18; // 10k
 mapping(address => uint256) internal ambassadorAccumulatedQuota_;
 bool public onlyAmbassadors = true;
 uint256 ACTIVATION_TIME = 1608292800; // 12/18/2020 @ 12:00pm (UTC)

 modifier antiEarlyWhale(uint256 _amountOfSTAT, address _customerAddress) {
  if (now >= ACTIVATION_TIME) {
   onlyAmbassadors = false;
  }

  if (onlyAmbassadors) {
   require((ambassadors_[_customerAddress] == true && (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfSTAT) <= ambassadorMaxPurchase_));
   ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfSTAT);
   _;
  } else {
   onlyAmbassadors = false;
   _;
  }
 }

 modifier onlyTokenHolders {
  require(myTokens() > 0);
  _;
 }

 modifier onlyDivis {
  require(myDividends(true) > 0);
  _;
 }

 event onDistribute(
  address indexed customerAddress,
  uint256 price
 );

 event onTokenPurchase(
  address indexed customerAddress,
  uint256 incomingSTAT,
  uint256 tokensMinted,
  address indexed referredBy,
  uint timestamp
 );

 event onTokenSell(
  address indexed customerAddress,
  uint256 tokensBurned,
  uint256 statEarned,
  uint timestamp
 );

 event onReinvestment(
  address indexed customerAddress,
  uint256 statReinvested,
  uint256 tokensMinted
 );

 event onWithdraw(
  address indexed customerAddress,
  uint256 statWithdrawn
 );

 event Transfer(
  address indexed from,
  address indexed to,
  uint256 tokens
 );

 string public name = "SPI Club";
 string public symbol = "SPIC";
 uint8 constant public decimals = 18;
 uint256 internal entryFee_ = 10; // 10%
 uint256 internal transferFee_ = 1;
 uint256 internal exitFee_ = 10; // 10%
 uint256 internal referralFee_ = 20; // 2% of the 10% fee 
 uint256 constant internal magnitude = 2 ** 64;
 mapping(address => uint256) internal tokenBalanceLedger_;
 mapping(address => uint256) internal referralBalance_;
 mapping(address => int256) internal payoutsTo_;
 mapping(address => uint256) internal invested_;
 uint256 internal tokenSupply_;
 uint256 internal profitPerShare_;
 uint256 public stakingRequirement;
 uint256 public totalHolder = 0;
 uint256 public totalDonation = 0;
 TOKEN erc20;

 constructor() public {
  erc20 = TOKEN(address(0x9B02dD390a603Add5c07f9fd9175b7DABE8D63B7));
 }

 function checkAndTransferSTAT(uint256 _amount) private {
  require(erc20.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed");
 }

 function distribute(uint256 _amount) public returns(uint256) {
  require(_amount > 0, "must be a positive value");
  checkAndTransferSTAT(_amount);
  totalDonation += _amount;
  profitPerShare_ = SafeMath.add(profitPerShare_, (_amount * magnitude) / tokenSupply_);
  emit onDistribute(msg.sender, _amount);
 }

 function buy(uint256 _amount, address _referredBy) public returns(uint256) {
  checkAndTransferSTAT(_amount);
  return purchaseTokens(_referredBy, msg.sender, _amount);
 }

 function buyFor(uint256 _amount, address _customerAddress, address _referredBy) public returns(uint256) {
  checkAndTransferSTAT(_amount);
  return purchaseTokens(_referredBy, _customerAddress, _amount);
 }

 function() payable public {
  revert();
 }

 function reinvest() onlyDivis public {
  address _customerAddress = msg.sender;
  uint256 _dividends = myDividends(false);
  payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
  _dividends += referralBalance_[_customerAddress];
  referralBalance_[_customerAddress] = 0;
  uint256 _tokens = purchaseTokens(0x0, _customerAddress, _dividends);
  emit onReinvestment(_customerAddress, _dividends, _tokens);
 }

 function exit() external {
  address _customerAddress = msg.sender;
  uint256 _tokens = tokenBalanceLedger_[_customerAddress];
  if (_tokens > 0) sell(_tokens);
  withdraw();
 }

 function withdraw() onlyDivis public {
  address _customerAddress = msg.sender;
  uint256 _dividends = myDividends(false);
  payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
  _dividends += referralBalance_[_customerAddress];
  referralBalance_[_customerAddress] = 0;
  erc20.transfer(_customerAddress, _dividends);
  emit onWithdraw(_customerAddress, _dividends);
 }

 function sell(uint256 _amountOfTokens) onlyTokenHolders public {
  address _customerAddress = msg.sender;
  require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

  uint256 _dividends = SafeMath.div(SafeMath.mul(_amountOfTokens, exitFee_), 100);
  uint256 _taxedSTAT = SafeMath.sub(_amountOfTokens, _dividends);

  tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfTokens);
  tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

  int256 _updatedPayouts = (int256)(profitPerShare_ * _amountOfTokens + (_taxedSTAT * magnitude));
  payoutsTo_[_customerAddress] -= _updatedPayouts;

  if (tokenSupply_ > 0) {
   profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
  }

  emit Transfer(_customerAddress, address(0), _amountOfTokens);
  emit onTokenSell(_customerAddress, _amountOfTokens, _taxedSTAT, now);
 }

 function transfer(address _toAddress, uint256 _amountOfTokens) onlyTokenHolders external returns(bool) {
  address _customerAddress = msg.sender;
  require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

  if (myDividends(true) > 0) {
   withdraw();
  }

  uint256 _tokenFee = SafeMath.div(SafeMath.mul(_amountOfTokens, transferFee_), 100);
  uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
  uint256 _dividends = _tokenFee;

  tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);

  tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
  tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);

  payoutsTo_[_customerAddress] -= (int256)(profitPerShare_ * _amountOfTokens);
  payoutsTo_[_toAddress] += (int256)(profitPerShare_ * _taxedTokens);

  profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);

  emit Transfer(_customerAddress, _toAddress, _taxedTokens);

  return true;
 }

 function setName(string _name) onlyOwner public {
  name = _name;
 }

 function setSymbol(string _symbol) onlyOwner public {
  symbol = _symbol;
 }

 function totalPowerBalance() public view returns(uint256) {
  return erc20.balanceOf(address(this));
 }

 function totalSupply() public view returns(uint256) {
  return tokenSupply_;
 }

 function myTokens() public view returns(uint256) {
  address _customerAddress = msg.sender;
  return balanceOf(_customerAddress);
 }

 function myDividends(bool _includeReferralBonus) public view returns(uint256) {
  address _customerAddress = msg.sender;
  return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress);
 }

 function balanceOf(address _customerAddress) public view returns(uint256) {
  return tokenBalanceLedger_[_customerAddress];
 }

 function dividendsOf(address _customerAddress) public view returns(uint256) {
  return (uint256)((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
 }

 function sellPrice() public view returns(uint256) {
  uint256 _stat = 1e18;
  uint256 _dividends = SafeMath.div(SafeMath.mul(_stat, exitFee_), 100);
  uint256 _taxedSTAT = SafeMath.sub(_stat, _dividends);

  return _taxedSTAT;
 }

 function buyPrice() public view returns(uint256) {
  uint256 _stat = 1e18;
  uint256 _dividends = SafeMath.div(SafeMath.mul(_stat, entryFee_), 100);
  uint256 _taxedSTAT = SafeMath.add(_stat, _dividends);

  return _taxedSTAT;
 }

 function calculateTokensReceived(uint256 _powerToSpend) public view returns(uint256) {
  uint256 _dividends = SafeMath.div(SafeMath.mul(_powerToSpend, entryFee_), 100);
  uint256 _amountOfTokens = SafeMath.sub(_powerToSpend, _dividends);

  return _amountOfTokens;
 }

 function calculatePowerReceived(uint256 _tokensToSell) public view returns(uint256) {
  require(_tokensToSell <= tokenSupply_);
  uint256 _dividends = SafeMath.div(SafeMath.mul(_tokensToSell, exitFee_), 100);
  uint256 _taxedSTAT = SafeMath.sub(_tokensToSell, _dividends);

  return _taxedSTAT;
 }

 function getInvested() public view returns(uint256) {
  return invested_[msg.sender];
 }

 function purchaseTokens(address _referredBy, address _customerAddress, uint256 _incomingSTAT) internal antiEarlyWhale(_incomingSTAT, _customerAddress) returns(uint256) {
  if (getInvested() == 0) {
   totalHolder++;
  }

  invested_[msg.sender] += _incomingSTAT;

  uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingSTAT, entryFee_), 100);

  uint256 _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends, referralFee_), 100);

  uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
  uint256 _amountOfTokens = SafeMath.sub(_incomingSTAT, _undividedDividends);
  uint256 _fee = _dividends * magnitude;

  require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

  if (_referredBy != address(0) && _referredBy != _customerAddress && tokenBalanceLedger_[_referredBy] >= stakingRequirement) {
   referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
  } else {
   _dividends = SafeMath.add(_dividends, _referralBonus);
   _fee = _dividends * magnitude;
  }

  if (tokenSupply_ > 0) {
   tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
   profitPerShare_ += (_dividends * magnitude / tokenSupply_);
   _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
  } else {
   tokenSupply_ = _amountOfTokens;
  }

  tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);

  int256 _updatedPayouts = (int256)(profitPerShare_ * _amountOfTokens - _fee);
  payoutsTo_[_customerAddress] += _updatedPayouts;

  emit Transfer(address(0), msg.sender, _amountOfTokens);
  emit onTokenPurchase(_customerAddress, _incomingSTAT, _amountOfTokens, _referredBy, now);

  return _amountOfTokens;
 }

 function multiData()
 public
 view
 returns(uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
  return (
   totalPowerBalance(),
   totalSupply(),
   balanceOf(msg.sender),
   erc20.balanceOf(msg.sender),
   dividendsOf(msg.sender),
   buyPrice(),
   sellPrice()

  );
 }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_powerToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"},{"name":"_referredBy","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalPowerBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"distribute","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculatePowerReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalDonation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalHolder","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiData","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingSTAT","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"statEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"statReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"statWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040526001600360006101000a81548160ff021916908315150217905550635fdc99c06004556040805190810160405280600881526020017f53504920436c756200000000000000000000000000000000000000000000000081525060059080519060200190620000749291906200018a565b506040805190810160405280600481526020017f535049430000000000000000000000000000000000000000000000000000000081525060069080519060200190620000c29291906200018a565b50600a6007556001600855600a6009556014600a5560006012556000601355348015620000ee57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739b02dd390a603add5c07f9fd9175b7dabe8d63b7601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000239565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001cd57805160ff1916838001178555620001fe565b82800160010185558215620001fe579182015b82811115620001fd578251825591602001919060010190620001e0565b5b5090506200020d919062000211565b5090565b6200023691905b808211156200023257600081600090555060010162000218565b5090565b90565b612b8480620002496000396000f30060806040526004361061018a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461018f57806306fdde03146101e657806310d0ffdd1461027657806318160ddd146102b757806327defa1f146102e2578063313ce5671461031157806332b74ec7146103425780633ccfd60b146103c35780634b750334146103da57806356d399e814610405578063688abbf7146104305780636b4096351461047357806370a082311461049e5780637deb6025146104f55780638620410b146105565780638da5cb5b1461058157806391c05b0b146105d8578063949e8acd1461061957806395d89b4114610644578063a9059cbb146106d4578063b84c824614610739578063befc3e2b146107a2578063c47f0027146107cd578063d7d7928914610836578063e4849b3214610877578063e9fad8ee146108a4578063ee2ac05f146108bb578063f11745df146108e6578063f2b79df914610911578063f2fde38b14610966578063fdb5a03e146109a9575b600080fd5b34801561019b57600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109c0565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a62565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102a160048036038101908080359060200190929190505050610b00565b6040518082815260200191505060405180910390f35b3480156102c357600080fd5b506102cc610b33565b6040518082815260200191505060405180910390f35b3480156102ee57600080fd5b506102f7610b3d565b604051808215151515815260200191505060405180910390f35b34801561031d57600080fd5b50610326610b50565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034e57600080fd5b506103ad60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b55565b6040518082815260200191505060405180910390f35b3480156103cf57600080fd5b506103d8610b74565b005b3480156103e657600080fd5b506103ef610dd2565b6040518082815260200191505060405180910390f35b34801561041157600080fd5b5061041a610e10565b6040518082815260200191505060405180910390f35b34801561043c57600080fd5b5061045d600480360381019080803515159060200190929190505050610e16565b6040518082815260200191505060405180910390f35b34801561047f57600080fd5b50610488610e82565b6040518082815260200191505060405180910390f35b3480156104aa57600080fd5b506104df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f81565b6040518082815260200191505060405180910390f35b34801561050157600080fd5b5061054060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fca565b6040518082815260200191505060405180910390f35b34801561056257600080fd5b5061056b610fe8565b6040518082815260200191505060405180910390f35b34801561058d57600080fd5b50610596611026565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e457600080fd5b506106036004803603810190808035906020019092919050505061104b565b6040518082815260200191505060405180910390f35b34801561062557600080fd5b5061062e61115a565b6040518082815260200191505060405180910390f35b34801561065057600080fd5b5061065961116f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069957808201518184015260208101905061067e565b50505050905090810190601f1680156106c65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106e057600080fd5b5061071f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061120d565b604051808215151515815260200191505060405180910390f35b34801561074557600080fd5b506107a0600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611526565b005b3480156107ae57600080fd5b506107b761159b565b6040518082815260200191505060405180910390f35b3480156107d957600080fd5b50610834600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506115e2565b005b34801561084257600080fd5b5061086160048036038101908080359060200190929190505050611657565b6040518082815260200191505060405180910390f35b34801561088357600080fd5b506108a26004803603810190808035906020019092919050505061169b565b005b3480156108b057600080fd5b506108b961192c565b005b3480156108c757600080fd5b506108d0611993565b6040518082815260200191505060405180910390f35b3480156108f257600080fd5b506108fb611999565b6040518082815260200191505060405180910390f35b34801561091d57600080fd5b5061092661199f565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b34801561097257600080fd5b506109a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aeb565b005b3480156109b557600080fd5b506109be611c40565b005b600068010000000000000000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546010540203811515610a5a57fe5b049050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610af85780601f10610acd57610100808354040283529160200191610af8565b820191906000526020600020905b815481529060010190602001808311610adb57829003601f168201915b505050505081565b6000806000610b1b610b1485600754611db5565b6064611ded565b9150610b278483611e03565b90508092505050919050565b6000600f54905090565b600360009054906101000a900460ff1681565b601281565b6000610b6084611e1c565b610b6b828486611fce565b90509392505050565b6000806000610b836001610e16565b111515610b8f57600080fd5b339150610b9c6000610e16565b9050680100000000000000008102600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d4457600080fd5b505af1158015610d58573d6000803e3d6000fd5b505050506040513d6020811015610d6e57600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600080600080670de0b6b3a76400009250610df9610df284600954611db5565b6064611ded565b9150610e058383611e03565b905080935050505090565b60115481565b60008033905082610e2f57610e2a816109c0565b610e7a565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e78826109c0565b015b915050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610f4157600080fd5b505af1158015610f55573d6000803e3d6000fd5b505050506040513d6020811015610f6b57600080fd5b8101908080519060200190929190505050905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610fd583611e1c565b610fe0823385611fce565b905092915050565b600080600080670de0b6b3a7640000925061100f61100884600754611db5565b6064611ded565b915061101b8383612a97565b905080935050505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821115156110c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6d757374206265206120706f7369746976652076616c7565000000000000000081525060200191505060405180910390fd5b6110cd82611e1c565b81601360008282540192505081905550611101601054600f546801000000000000000085028115156110fb57fe5b04612a97565b6010819055503373ffffffffffffffffffffffffffffffffffffffff167fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064836040518082815260200191505060405180910390a2919050565b60008033905061116981610f81565b91505090565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112055780601f106111da57610100808354040283529160200191611205565b820191906000526020600020905b8154815290600101906020018083116111e857829003601f168201915b505050505081565b60008060008060008061121e61115a565b11151561122a57600080fd5b339350600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561127b57600080fd5b60006112876001610e16565b111561129657611295610b74565b5b6112ac6112a587600854611db5565b6064611ded565b92506112b88684611e03565b91508290506112c9600f5484611e03565b600f81905550611318600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611e03565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113a4600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612a97565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560105402600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160105402600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506114ad601054600f546801000000000000000084028115156114a757fe5b04612a97565b6010819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158157600080fd5b8060069080519060200190611597929190612ab3565b5050565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163d57600080fd5b8060059080519060200190611653929190612ab3565b5050565b6000806000600f54841115151561166d57600080fd5b61168361167c85600954611db5565b6064611ded565b915061168f8483611e03565b90508092505050919050565b60008060008060006116ab61115a565b1115156116b757600080fd5b339350600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115151561170857600080fd5b61171e61171786600954611db5565b6064611ded565b925061172a8584611e03565b9150611738600f5486611e03565b600f81905550611787600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611e03565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856010540201905080600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600f5411156118615761185a601054600f5468010000000000000000860281151561185457fe5b04612a97565b6010819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e586844260405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600080339150600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611987576119868161169b565b5b61198f610b74565b5050565b60135481565b60125481565b60008060008060008060006119b2610e82565b6119ba610b33565b6119c333610f81565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050506040513d6020811015611aaa57600080fd5b8101908080519060200190929190505050611ac4336109c0565b611acc610fe8565b611ad4610dd2565b965096509650965096509650965090919293949596565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b8257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080611c506001610e16565b111515611c5c57600080fd5b339250611c696000610e16565b9150680100000000000000008202600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d5860008484611fce565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b600080831415611dc85760009050611de7565b8183029050818382811515611dd957fe5b04141515611de357fe5b8090505b92915050565b60008183811515611dfa57fe5b04905092915050565b6000828211151515611e1157fe5b818303905092915050565b60011515601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f1957600080fd5b505af1158015611f2d573d6000803e3d6000fd5b505050506040513d6020811015611f4357600080fd5b81019080805190602001909291905050501515141515611fcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b6000806000806000806000878960045442101515612002576000600360006101000a81548160ff0219169083151502179055505b600360009054906101000a900460ff16156125e55760011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480156120c2575069021e19e0c9bab240000082600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b15156120cd57600080fd5b612116600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612a97565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061216361159b565b141561217c576012600081548092919060010191905055505b89600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506121df6121d88b600754611db5565b6064611ded565b97506121f76121f089600a54611db5565b6064611ded565b96506122038888611e03565b955061220f8a89611e03565b9450680100000000000000008602935060008511801561223b5750600f5461223986600f54612a97565b115b151561224657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16141580156122af57508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b80156122fc5750601154600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156123925761234a600c60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488612a97565b600c60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123ad565b61239c8688612a97565b955068010000000000000000860293505b6000600f541115612418576123c4600f5486612a97565b600f81905550600f546801000000000000000087028115156123e257fe5b04601060008282540192505081905550600f5468010000000000000000870281151561240a57fe5b048502840384039350612420565b84600f819055505b612469600b60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612a97565b600b60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856010540203925082600d60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38b73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868c884260405180848152602001838152602001828152602001935050505060405180910390a3849850612a88565b6000600360006101000a81548160ff021916908315150217905550600061260a61159b565b1415612623576012600081548092919060010191905055505b89600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061268661267f8b600754611db5565b6064611ded565b975061269e61269789600a54611db5565b6064611ded565b96506126aa8888611e03565b95506126b68a89611e03565b945068010000000000000000860293506000851180156126e25750600f546126e086600f54612a97565b115b15156126ed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff161415801561275657508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b80156127a35750601154600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612839576127f1600c60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488612a97565b600c60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612854565b6128438688612a97565b955068010000000000000000860293505b6000600f5411156128bf5761286b600f5486612a97565b600f81905550600f5468010000000000000000870281151561288957fe5b04601060008282540192505081905550600f546801000000000000000087028115156128b157fe5b0485028403840393506128c7565b84600f819055505b612910600b60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612a97565b600b60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856010540203925082600d60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38b73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868c884260405180848152602001838152602001828152602001935050505060405180910390a38498505b50505050505050509392505050565b60008183019050828110151515612aaa57fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612af457805160ff1916838001178555612b22565b82800160010185558215612b22579182015b82811115612b21578251825591602001919060010190612b06565b5b509050612b2f9190612b33565b5090565b612b5591905b80821115612b51576000816000905550600101612b39565b5090565b905600a165627a7a72305820e81f568b85562bdfb27032f34c546b03754629d5c29c2acb963dd9c6cf95a0e20029

Deployed Bytecode

0x60806040526004361061018a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461018f57806306fdde03146101e657806310d0ffdd1461027657806318160ddd146102b757806327defa1f146102e2578063313ce5671461031157806332b74ec7146103425780633ccfd60b146103c35780634b750334146103da57806356d399e814610405578063688abbf7146104305780636b4096351461047357806370a082311461049e5780637deb6025146104f55780638620410b146105565780638da5cb5b1461058157806391c05b0b146105d8578063949e8acd1461061957806395d89b4114610644578063a9059cbb146106d4578063b84c824614610739578063befc3e2b146107a2578063c47f0027146107cd578063d7d7928914610836578063e4849b3214610877578063e9fad8ee146108a4578063ee2ac05f146108bb578063f11745df146108e6578063f2b79df914610911578063f2fde38b14610966578063fdb5a03e146109a9575b600080fd5b34801561019b57600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109c0565b6040518082815260200191505060405180910390f35b3480156101f257600080fd5b506101fb610a62565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023b578082015181840152602081019050610220565b50505050905090810190601f1680156102685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028257600080fd5b506102a160048036038101908080359060200190929190505050610b00565b6040518082815260200191505060405180910390f35b3480156102c357600080fd5b506102cc610b33565b6040518082815260200191505060405180910390f35b3480156102ee57600080fd5b506102f7610b3d565b604051808215151515815260200191505060405180910390f35b34801561031d57600080fd5b50610326610b50565b604051808260ff1660ff16815260200191505060405180910390f35b34801561034e57600080fd5b506103ad60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b55565b6040518082815260200191505060405180910390f35b3480156103cf57600080fd5b506103d8610b74565b005b3480156103e657600080fd5b506103ef610dd2565b6040518082815260200191505060405180910390f35b34801561041157600080fd5b5061041a610e10565b6040518082815260200191505060405180910390f35b34801561043c57600080fd5b5061045d600480360381019080803515159060200190929190505050610e16565b6040518082815260200191505060405180910390f35b34801561047f57600080fd5b50610488610e82565b6040518082815260200191505060405180910390f35b3480156104aa57600080fd5b506104df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f81565b6040518082815260200191505060405180910390f35b34801561050157600080fd5b5061054060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fca565b6040518082815260200191505060405180910390f35b34801561056257600080fd5b5061056b610fe8565b6040518082815260200191505060405180910390f35b34801561058d57600080fd5b50610596611026565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105e457600080fd5b506106036004803603810190808035906020019092919050505061104b565b6040518082815260200191505060405180910390f35b34801561062557600080fd5b5061062e61115a565b6040518082815260200191505060405180910390f35b34801561065057600080fd5b5061065961116f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069957808201518184015260208101905061067e565b50505050905090810190601f1680156106c65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106e057600080fd5b5061071f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061120d565b604051808215151515815260200191505060405180910390f35b34801561074557600080fd5b506107a0600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611526565b005b3480156107ae57600080fd5b506107b761159b565b6040518082815260200191505060405180910390f35b3480156107d957600080fd5b50610834600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506115e2565b005b34801561084257600080fd5b5061086160048036038101908080359060200190929190505050611657565b6040518082815260200191505060405180910390f35b34801561088357600080fd5b506108a26004803603810190808035906020019092919050505061169b565b005b3480156108b057600080fd5b506108b961192c565b005b3480156108c757600080fd5b506108d0611993565b6040518082815260200191505060405180910390f35b3480156108f257600080fd5b506108fb611999565b6040518082815260200191505060405180910390f35b34801561091d57600080fd5b5061092661199f565b6040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390f35b34801561097257600080fd5b506109a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aeb565b005b3480156109b557600080fd5b506109be611c40565b005b600068010000000000000000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546010540203811515610a5a57fe5b049050919050565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610af85780601f10610acd57610100808354040283529160200191610af8565b820191906000526020600020905b815481529060010190602001808311610adb57829003601f168201915b505050505081565b6000806000610b1b610b1485600754611db5565b6064611ded565b9150610b278483611e03565b90508092505050919050565b6000600f54905090565b600360009054906101000a900460ff1681565b601281565b6000610b6084611e1c565b610b6b828486611fce565b90509392505050565b6000806000610b836001610e16565b111515610b8f57600080fd5b339150610b9c6000610e16565b9050680100000000000000008102600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d4457600080fd5b505af1158015610d58573d6000803e3d6000fd5b505050506040513d6020811015610d6e57600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600080600080670de0b6b3a76400009250610df9610df284600954611db5565b6064611ded565b9150610e058383611e03565b905080935050505090565b60115481565b60008033905082610e2f57610e2a816109c0565b610e7a565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e78826109c0565b015b915050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610f4157600080fd5b505af1158015610f55573d6000803e3d6000fd5b505050506040513d6020811015610f6b57600080fd5b8101908080519060200190929190505050905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610fd583611e1c565b610fe0823385611fce565b905092915050565b600080600080670de0b6b3a7640000925061100f61100884600754611db5565b6064611ded565b915061101b8383612a97565b905080935050505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821115156110c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f6d757374206265206120706f7369746976652076616c7565000000000000000081525060200191505060405180910390fd5b6110cd82611e1c565b81601360008282540192505081905550611101601054600f546801000000000000000085028115156110fb57fe5b04612a97565b6010819055503373ffffffffffffffffffffffffffffffffffffffff167fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064836040518082815260200191505060405180910390a2919050565b60008033905061116981610f81565b91505090565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112055780601f106111da57610100808354040283529160200191611205565b820191906000526020600020905b8154815290600101906020018083116111e857829003601f168201915b505050505081565b60008060008060008061121e61115a565b11151561122a57600080fd5b339350600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561127b57600080fd5b60006112876001610e16565b111561129657611295610b74565b5b6112ac6112a587600854611db5565b6064611ded565b92506112b88684611e03565b91508290506112c9600f5484611e03565b600f81905550611318600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487611e03565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113a4600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612a97565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560105402600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160105402600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506114ad601054600f546801000000000000000084028115156114a757fe5b04612a97565b6010819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561158157600080fd5b8060069080519060200190611597929190612ab3565b5050565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163d57600080fd5b8060059080519060200190611653929190612ab3565b5050565b6000806000600f54841115151561166d57600080fd5b61168361167c85600954611db5565b6064611ded565b915061168f8483611e03565b90508092505050919050565b60008060008060006116ab61115a565b1115156116b757600080fd5b339350600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054851115151561170857600080fd5b61171e61171786600954611db5565b6064611ded565b925061172a8584611e03565b9150611738600f5486611e03565b600f81905550611787600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611e03565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856010540201905080600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600f5411156118615761185a601054600f5468010000000000000000860281151561185457fe5b04612a97565b6010819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e586844260405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600080339150600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611987576119868161169b565b5b61198f610b74565b5050565b60135481565b60125481565b60008060008060008060006119b2610e82565b6119ba610b33565b6119c333610f81565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050506040513d6020811015611aaa57600080fd5b8101908080519060200190929190505050611ac4336109c0565b611acc610fe8565b611ad4610dd2565b965096509650965096509650965090919293949596565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b8257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080611c506001610e16565b111515611c5c57600080fd5b339250611c696000610e16565b9150680100000000000000008202600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d5860008484611fce565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b600080831415611dc85760009050611de7565b8183029050818382811515611dd957fe5b04141515611de357fe5b8090505b92915050565b60008183811515611dfa57fe5b04905092915050565b6000828211151515611e1157fe5b818303905092915050565b60011515601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f1957600080fd5b505af1158015611f2d573d6000803e3d6000fd5b505050506040513d6020811015611f4357600080fd5b81019080805190602001909291905050501515141515611fcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b6000806000806000806000878960045442101515612002576000600360006101000a81548160ff0219169083151502179055505b600360009054906101000a900460ff16156125e55760011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480156120c2575069021e19e0c9bab240000082600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b15156120cd57600080fd5b612116600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612a97565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061216361159b565b141561217c576012600081548092919060010191905055505b89600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506121df6121d88b600754611db5565b6064611ded565b97506121f76121f089600a54611db5565b6064611ded565b96506122038888611e03565b955061220f8a89611e03565b9450680100000000000000008602935060008511801561223b5750600f5461223986600f54612a97565b115b151561224657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16141580156122af57508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b80156122fc5750601154600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156123925761234a600c60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488612a97565b600c60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123ad565b61239c8688612a97565b955068010000000000000000860293505b6000600f541115612418576123c4600f5486612a97565b600f81905550600f546801000000000000000087028115156123e257fe5b04601060008282540192505081905550600f5468010000000000000000870281151561240a57fe5b048502840384039350612420565b84600f819055505b612469600b60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612a97565b600b60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856010540203925082600d60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38b73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868c884260405180848152602001838152602001828152602001935050505060405180910390a3849850612a88565b6000600360006101000a81548160ff021916908315150217905550600061260a61159b565b1415612623576012600081548092919060010191905055505b89600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061268661267f8b600754611db5565b6064611ded565b975061269e61269789600a54611db5565b6064611ded565b96506126aa8888611e03565b95506126b68a89611e03565b945068010000000000000000860293506000851180156126e25750600f546126e086600f54612a97565b115b15156126ed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff161415801561275657508a73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b80156127a35750601154600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15612839576127f1600c60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205488612a97565b600c60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612854565b6128438688612a97565b955068010000000000000000860293505b6000600f5411156128bf5761286b600f5486612a97565b600f81905550600f5468010000000000000000870281151561288957fe5b04601060008282540192505081905550600f546801000000000000000087028115156128b157fe5b0485028403840393506128c7565b84600f819055505b612910600b60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612a97565b600b60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856010540203925082600d60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38b73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868c884260405180848152602001838152602001828152602001935050505060405180910390a38498505b50505050505050509392505050565b60008183019050828110151515612aaa57fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612af457805160ff1916838001178555612b22565b82800160010185558215612b22579182015b82811115612b21578251825591602001919060010190612b06565b5b509050612b2f9190612b33565b5090565b612b5591905b80821115612b51576000816000905550600101612b39565b5090565b905600a165627a7a72305820e81f568b85562bdfb27032f34c546b03754629d5c29c2acb963dd9c6cf95a0e20029

Deployed Bytecode Sourcemap

1726:10870:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5146:8;;;9084:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9084:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3388:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3388:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3388:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9781:272;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9781:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8461:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8461:81:0;;;;;;;;;;;;;;;;;;;;;;;1948:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1948:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3456:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3456:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4901:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4901:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5784:392;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5784:392:0;;;;;;9301:235;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9301:235:0;;;;;;;;;;;;;;;;;;;;;;;4010:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4010:33:0;;;;;;;;;;;;;;;;;;;;;;;8687:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8687:259:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8351:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8351:105:0;;;;;;;;;;;;;;;;;;;;;;;8951:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8951:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4722:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4722:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9541:235;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9541:235:0;;;;;;;;;;;;;;;;;;;;;;;1317:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1317:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4402:315;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4402:315:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8547:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8547:135:0;;;;;;;;;;;;;;;;;;;;;;;3423:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3423:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3423:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7119:1069;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7119:1069:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8268:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8268:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10366:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10366:90:0;;;;;;;;;;;;;;;;;;;;;;;8193:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8193:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10058:303;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10058:303:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6181:933;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6181:933:0;;;;;;;;;;;;;;;;;;;;;;;;;;5597:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5597:182:0;;;;;;4081:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4081:32:0;;;;;;;;;;;;;;;;;;;;;;;4047:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4047:30:0;;;;;;;;;;;;;;;;;;;;;;;12293:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12293:300:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1548:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1548:171:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5164:428;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5164:428:0;;;;;;9084:212;9151:7;3713;9250:10;:28;9261:16;9250:28;;;;;;;;;;;;;;;;9209:19;:37;9229:16;9209:37;;;;;;;;;;;;;;;;9191:15;;:55;9182:96;9172:119;;;;;;;;9165:126;;9084:212;;;:::o;3388:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9781:272::-;9857:7;9871:18;9954:23;9892:57;9905:38;9918:13;9933:9;;9905:12;:38::i;:::-;9945:3;9892:12;:57::i;:::-;9871:78;;9980:39;9993:13;10008:10;9980:12;:39::i;:::-;9954:65;;10033:15;10026:22;;9781:272;;;;;:::o;8461:81::-;8504:7;8525:12;;8518:19;;8461:81;:::o;1948:34::-;;;;;;;;;;;;;:::o;3456:35::-;3489:2;3456:35;:::o;4901:209::-;4996:7;5010:29;5031:7;5010:20;:29::i;:::-;5051:54;5066:11;5079:16;5097:7;5051:14;:54::i;:::-;5044:61;;4901:209;;;;;:::o;5784:392::-;5826:24;5868:18;2694:1;2674:17;2686:4;2674:11;:17::i;:::-;:21;2666:30;;;;;;;;5853:10;5826:37;;5889:18;5901:5;5889:11;:18::i;:::-;5868:39;;3713:7;5953:10;:22;5912:10;:28;5923:16;5912:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;5995:16;:34;6012:16;5995:34;;;;;;;;;;;;;;;;5981:48;;;;6071:1;6034:16;:34;6051:16;6034:34;;;;;;;;;;;;;;;:38;;;;6077:5;;;;;;;;;;;:14;;;6092:16;6110:10;6077:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6077:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6077:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6077:44:0;;;;;;;;;;;;;;;;;6142:16;6131:40;;;6160:10;6131:40;;;;;;;;;;;;;;;;;;5784:392;;:::o;9301:235::-;9342:7;9356:13;9381:18;9455;9372:4;9356:20;;9402:48;9415:29;9428:5;9435:8;;9415:12;:29::i;:::-;9446:3;9402:12;:48::i;:::-;9381:69;;9476:31;9489:5;9496:10;9476:12;:31::i;:::-;9455:52;;9521:10;9514:17;;9301:235;;;;:::o;4010:33::-;;;;:::o;8687:259::-;8756:7;8770:24;8797:10;8770:37;;8819:21;:122;;8912:29;8924:16;8912:11;:29::i;:::-;8819:122;;;8875:16;:34;8892:16;8875:34;;;;;;;;;;;;;;;;8843:29;8855:16;8843:11;:29::i;:::-;:66;8819:122;8812:129;;8687:259;;;;:::o;8351:105::-;8400:7;8421:5;;;;;;;;;;;:15;;;8445:4;8421:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8421:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8421:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8421:30:0;;;;;;;;;;;;;;;;8414:37;;8351:105;:::o;8951:128::-;9016:7;9037:19;:37;9057:16;9037:37;;;;;;;;;;;;;;;;9030:44;;8951:128;;;:::o;4722:174::-;4788:7;4802:29;4823:7;4802:20;:29::i;:::-;4843:48;4858:11;4871:10;4883:7;4843:14;:48::i;:::-;4836:55;;4722:174;;;;:::o;9541:235::-;9581:7;9595:13;9620:18;9695;9611:4;9595:20;;9641:49;9654:30;9667:5;9674:9;;9654:12;:30::i;:::-;9686:3;9641:12;:49::i;:::-;9620:70;;9716:31;9729:5;9736:10;9716:12;:31::i;:::-;9695:52;;9761:10;9754:17;;9541:235;;;;:::o;1317:20::-;;;;;;;;;;;;;:::o;4402:315::-;4454:7;4486:1;4476:7;:11;4468:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4521:29;4542:7;4521:20;:29::i;:::-;4572:7;4555:13;;:24;;;;;;;;;;;4602:67;4615:15;;4656:12;;3713:7;4633;:19;4632:36;;;;;;;;4602:12;:67::i;:::-;4584:15;:85;;;;4692:10;4679:33;;;4704:7;4679:33;;;;;;;;;;;;;;;;;;4402:315;;;:::o;8547:135::-;8587:7;8601:24;8628:10;8601:37;;8650:27;8660:16;8650:9;:27::i;:::-;8643:34;;8547:135;;:::o;3423:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7119:1069::-;7216:4;7227:24;7396:17;7483:20;7551:18;2624:1;2611:10;:8;:10::i;:::-;:14;2603:23;;;;;;;;7254:10;7227:37;;7296:19;:37;7316:16;7296:37;;;;;;;;;;;;;;;;7277:15;:56;;7269:65;;;;;;;;7365:1;7345:17;7357:4;7345:11;:17::i;:::-;:21;7341:49;;;7374:10;:8;:10::i;:::-;7341:49;7416:62;7429:43;7442:15;7459:12;;7429;:43::i;:::-;7474:3;7416:12;:62::i;:::-;7396:82;;7506:40;7519:15;7536:9;7506:12;:40::i;:::-;7483:63;;7572:9;7551:30;;7603:37;7616:12;;7630:9;7603:12;:37::i;:::-;7588:12;:52;;;;7687:68;7700:19;:37;7720:16;7700:37;;;;;;;;;;;;;;;;7739:15;7687:12;:68::i;:::-;7647:19;:37;7667:16;7647:37;;;;;;;;;;;;;;;:108;;;;7794:59;7807:19;:31;7827:10;7807:31;;;;;;;;;;;;;;;;7840:12;7794;:59::i;:::-;7760:19;:31;7780:10;7760:31;;;;;;;;;;;;;;;:93;;;;7919:15;7901;;:33;7860:10;:28;7871:16;7860:28;;;;;;;;;;;;;;;;:75;;;;;;;;;;;7993:12;7975:15;;:30;7940:10;:22;7951:10;7940:22;;;;;;;;;;;;;;;;:66;;;;;;;;;;;8031:70;8044:15;;8088:12;;3713:7;8062:10;:22;8061:39;;;;;;;;8031:12;:70::i;:::-;8013:15;:88;;;;8140:10;8113:52;;8122:16;8113:52;;;8152:12;8113:52;;;;;;;;;;;;;;;;;;8179:4;8172:11;;7119:1069;;;;;;;;:::o;8268:78::-;1528:5;;;;;;;;;;;1514:19;;:10;:19;;;1506:28;;;;;;;;8334:7;8325:6;:16;;;;;;;;;;;;:::i;:::-;;8268:78;:::o;10366:90::-;10409:7;10430:9;:21;10440:10;10430:21;;;;;;;;;;;;;;;;10423:28;;10366:90;:::o;8193:70::-;1528:5;;;;;;;;;;;1514:19;;:10;:19;;;1506:28;;;;;;;;8253:5;8246:4;:12;;;;;;;;;;;;:::i;:::-;;8193:70;:::o;10058:303::-;10133:7;10190:18;10272;10172:12;;10155:13;:29;;10147:38;;;;;;;;10211:56;10224:37;10237:13;10252:8;;10224:12;:37::i;:::-;10263:3;10211:12;:56::i;:::-;10190:77;;10293:39;10306:13;10321:10;10293:12;:39::i;:::-;10272:60;;10346:10;10339:17;;10058:303;;;;;:::o;6181:933::-;6249:24;6363:18;6447;6694:22;2624:1;2611:10;:8;:10::i;:::-;:14;2603:23;;;;;;;;6276:10;6249:37;;6318:19;:37;6338:16;6318:37;;;;;;;;;;;;;;;;6299:15;:56;;6291:65;;;;;;;;6384:58;6397:39;6410:15;6427:8;;6397:12;:39::i;:::-;6438:3;6384:12;:58::i;:::-;6363:79;;6468:41;6481:15;6498:10;6468:12;:41::i;:::-;6447:62;;6531:43;6544:12;;6558:15;6531:12;:43::i;:::-;6516:12;:58;;;;6619:68;6632:19;:37;6652:16;6632:37;;;;;;;;;;;;;;;;6671:15;6619:12;:68::i;:::-;6579:19;:37;6599:16;6579:37;;;;;;;;;;;;;;;:108;;;;3713:7;6765:10;:22;6746:15;6728;;:33;:60;6694:95;;6826:15;6794:10;:28;6805:16;6794:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;6867:1;6852:12;;:16;6848:122;;;6894:70;6907:15;;6951:12;;3713:7;6925:10;:22;6924:39;;;;;;;;6894:12;:70::i;:::-;6876:15;:88;;;;6848:122;7016:1;6981:55;;6990:16;6981:55;;;7020:15;6981:55;;;;;;;;;;;;;;;;;;7058:16;7046:63;;;7076:15;7093:10;7105:3;7046:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6181:933;;;;;:::o;5597:182::-;5627:24;5669:15;5654:10;5627:37;;5687:19;:37;5707:16;5687:37;;;;;;;;;;;;;;;;5669:55;;5743:1;5733:7;:11;5729:30;;;5746:13;5751:7;5746:4;:13::i;:::-;5729:30;5764:10;:8;:10::i;:::-;5597:182;;:::o;4081:32::-;;;;:::o;4047:30::-;;;;:::o;12293:300::-;12340:7;12349;12358;12367;12376;12385;12394;12421:19;:17;:19::i;:::-;12446:13;:11;:13::i;:::-;12465:21;12475:10;12465:9;:21::i;:::-;12492:5;;;;;;;;;;;:15;;;12508:10;12492:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12492:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12492:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12492:27:0;;;;;;;;;;;;;;;;12525:23;12537:10;12525:11;:23::i;:::-;12554:10;:8;:10::i;:::-;12570:11;:9;:11::i;:::-;12408:180;;;;;;;;;;;;;;12293:300;;;;;;;:::o;1548:171::-;1528:5;;;;;;;;;;;1514:19;;:10;:19;;;1506:28;;;;;;;;1643:1;1623:22;;:8;:22;;;;1615:31;;;;;;;;1684:8;1656:37;;1677:5;;;;;;;;;;;1656:37;;;;;;;;;;;;1706:8;1698:5;;:16;;;;;;;;;;;;;;;;;;1548:171;:::o;5164:428::-;5206:24;5248:18;5457:15;2694:1;2674:17;2686:4;2674:11;:17::i;:::-;:21;2666:30;;;;;;;;5233:10;5206:37;;5269:18;5281:5;5269:11;:18::i;:::-;5248:39;;3713:7;5333:10;:22;5292:10;:28;5303:16;5292:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;5375:16;:34;5392:16;5375:34;;;;;;;;;;;;;;;;5361:48;;;;5451:1;5414:16;:34;5431:16;5414:34;;;;;;;;;;;;;;;:38;;;;5475:49;5490:3;5495:16;5513:10;5475:14;:49::i;:::-;5457:67;;5549:16;5534:53;;;5567:10;5579:7;5534:53;;;;;;;;;;;;;;;;;;;;;;;;5164:428;;;:::o;310:159::-;367:9;392:1;387;:6;383:32;;;408:1;401:8;;;;383:32;427:1;423;:5;419:9;;449:1;444;440;:5;;;;;;;;:10;433:18;;;;;;463:1;456:8;;310:159;;;;;:::o;474:88::-;531:7;556:1;552;:5;;;;;;;;545:12;;474:88;;;;:::o;567:107::-;624:7;650:1;645;:6;;638:14;;;;;;668:1;664;:5;657:12;;567:107;;;;:::o;4236:161::-;4362:4;4304:62;;:5;;;;;;;;;;;:18;;;4323:10;4343:4;4350:7;4304:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4304:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4304:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4304:54:0;;;;;;;;;;;;;;;;:62;;;4296:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4236:161;:::o;10461:1827::-;10620:7;10734:27;10828:22;10926:18;11001:23;11080:12;11973:22;10579:13;10594:16;2147:15;;2140:3;:22;;2136:63;;;2188:5;2170:15;;:23;;;;;;;;;;;;;;;;;;2136:63;2209:15;;;;;;;;;;;2205:358;;;2275:4;2241:38;;:12;:30;2254:16;2241:30;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;:131;;;;;1861:8;2332:13;2284:27;:45;2312:16;2284:45;;;;;;;;;;;;;;;;:61;2283:89;;2241:131;2232:142;;;;;;;;2428:74;2441:27;:45;2469:16;2441:45;;;;;;;;;;;;;;;;2488:13;2428:12;:74::i;:::-;2380:27;:45;2408:16;2380:45;;;;;;;;;;;;;;;:122;;;;10655:1;10638:13;:11;:13::i;:::-;:18;10634:49;;;10664:11;;:13;;;;;;;;;;;;;10634:49;10714:13;10689:9;:21;10699:10;10689:21;;;;;;;;;;;;;;;;:38;;;;;;;;;;;10764:57;10777:38;10790:13;10805:9;;10777:12;:38::i;:::-;10817:3;10764:12;:57::i;:::-;10734:87;;10853:66;10866:47;10879:19;10900:12;;10866;:47::i;:::-;10915:3;10853:12;:66::i;:::-;10828:91;;10947:49;10960:19;10981:14;10947:12;:49::i;:::-;10926:70;;11027:48;11040:13;11055:19;11027:12;:48::i;:::-;11001:74;;3713:7;11095:10;:22;11080:37;;11150:1;11132:15;:19;:81;;;;;11201:12;;11155:43;11168:15;11185:12;;11155;:43::i;:::-;:58;11132:81;11124:90;;;;;;;;11248:1;11225:25;;:11;:25;;;;:60;;;;;11269:16;11254:31;;:11;:31;;;;11225:60;:118;;;;;11325:18;;11289:19;:32;11309:11;11289:32;;;;;;;;;;;;;;;;:54;;11225:118;11221:333;;;11383:59;11396:16;:29;11413:11;11396:29;;;;;;;;;;;;;;;;11427:14;11383:12;:59::i;:::-;11351:16;:29;11368:11;11351:29;;;;;;;;;;;;;;;:91;;;;11221:333;;;11473:40;11486:10;11498:14;11473:12;:40::i;:::-;11460:53;;3713:7;11526:10;:22;11519:29;;11221:333;11579:1;11564:12;;:16;11560:292;;;11603:43;11616:12;;11630:15;11603:12;:43::i;:::-;11588:12;:58;;;;11697:12;;3713:7;11672:10;:22;:37;;;;;;;;11652:15;;:58;;;;;;;;;;;11783:12;;3713:7;11758:10;:22;:37;;;;;;;;11739:15;:57;11731:4;:66;11723:4;:75;11716:82;;11560:292;;;11831:15;11816:12;:30;;;;11560:292;11898:68;11911:19;:37;11931:16;11911:37;;;;;;;;;;;;;;;;11950:15;11898:12;:68::i;:::-;11858:19;:37;11878:16;11858:37;;;;;;;;;;;;;;;:108;;;;12043:4;12025:15;12007;;:33;:40;11973:75;;12085:15;12053:10;:28;12064:16;12053:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;12133:10;12112:49;;12129:1;12112:49;;;12145:15;12112:49;;;;;;;;;;;;;;;;;;12237:11;12171:83;;12187:16;12171:83;;;12205:13;12220:15;12250:3;12171:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12268:15;12261:22;;2205:358;;;2545:5;2527:15;;:23;;;;;;;;;;;;;;;;;;10655:1;10638:13;:11;:13::i;:::-;:18;10634:49;;;10664:11;;:13;;;;;;;;;;;;;10634:49;10714:13;10689:9;:21;10699:10;10689:21;;;;;;;;;;;;;;;;:38;;;;;;;;;;;10764:57;10777:38;10790:13;10805:9;;10777:12;:38::i;:::-;10817:3;10764:12;:57::i;:::-;10734:87;;10853:66;10866:47;10879:19;10900:12;;10866;:47::i;:::-;10915:3;10853:12;:66::i;:::-;10828:91;;10947:49;10960:19;10981:14;10947:12;:49::i;:::-;10926:70;;11027:48;11040:13;11055:19;11027:12;:48::i;:::-;11001:74;;3713:7;11095:10;:22;11080:37;;11150:1;11132:15;:19;:81;;;;;11201:12;;11155:43;11168:15;11185:12;;11155;:43::i;:::-;:58;11132:81;11124:90;;;;;;;;11248:1;11225:25;;:11;:25;;;;:60;;;;;11269:16;11254:31;;:11;:31;;;;11225:60;:118;;;;;11325:18;;11289:19;:32;11309:11;11289:32;;;;;;;;;;;;;;;;:54;;11225:118;11221:333;;;11383:59;11396:16;:29;11413:11;11396:29;;;;;;;;;;;;;;;;11427:14;11383:12;:59::i;:::-;11351:16;:29;11368:11;11351:29;;;;;;;;;;;;;;;:91;;;;11221:333;;;11473:40;11486:10;11498:14;11473:12;:40::i;:::-;11460:53;;3713:7;11526:10;:22;11519:29;;11221:333;11579:1;11564:12;;:16;11560:292;;;11603:43;11616:12;;11630:15;11603:12;:43::i;:::-;11588:12;:58;;;;11697:12;;3713:7;11672:10;:22;:37;;;;;;;;11652:15;;:58;;;;;;;;;;;11783:12;;3713:7;11758:10;:22;:37;;;;;;;;11739:15;:57;11731:4;:66;11723:4;:75;11716:82;;11560:292;;;11831:15;11816:12;:30;;;;11560:292;11898:68;11911:19;:37;11931:16;11911:37;;;;;;;;;;;;;;;;11950:15;11898:12;:68::i;:::-;11858:19;:37;11878:16;11858:37;;;;;;;;;;;;;;;:108;;;;12043:4;12025:15;12007;;:33;:40;11973:75;;12085:15;12053:10;:28;12064:16;12053:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;12133:10;12112:49;;12129:1;12112:49;;;12145:15;12112:49;;;;;;;;;;;;;;;;;;12237:11;12171:83;;12187:16;12171:83;;;12205:13;12220:15;12250:3;12171:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12268:15;12261:22;;2205:358;10461:1827;;;;;;;;;;;;;:::o;679:119::-;736:9;760:1;756;:5;752:9;;778:1;773;:6;;766:14;;;;;;792:1;785:8;;679:119;;;;:::o;1726:10870::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://e81f568b85562bdfb27032f34c546b03754629d5c29c2acb963dd9c6cf95a0e2
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.