ETH Price: $3,160.38 (+2.92%)
Gas: 2 Gwei

Contract

0xbC664C8ECadbB9311325537DfA4609F877E04Ab6
 

Overview

ETH Balance

0.042 ETH

Eth Value

$132.74 (@ $3,160.38/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Join107350892020-08-26 8:51:071417 days ago1598431867IN
0xbC664C8E...877E04Ab6
0.002 ETH0.0395469375.9
Join107350152020-08-26 8:33:191417 days ago1598430799IN
0xbC664C8E...877E04Ab6
0.002 ETH0.0392772961
Join107346342020-08-26 7:09:041417 days ago1598425744IN
0xbC664C8E...877E04Ab6
0.002 ETH0.0696629778
Join107346262020-08-26 7:08:081417 days ago1598425688IN
0xbC664C8E...877E04Ab6
0.002 ETH0.0660884681
Join107346142020-08-26 7:05:511417 days ago1598425551IN
0xbC664C8E...877E04Ab6
0.002 ETH0.0598355981
Join107346082020-08-26 7:04:241417 days ago1598425464IN
0xbC664C8E...877E04Ab6
0.002 ETH0.0776992377.00000145
Put Close Price104328562020-07-10 16:30:161463 days ago1594398616IN
0xbC664C8E...877E04Ab6
0 ETH0.0011136323
Put Close Price104135832020-07-07 17:05:571466 days ago1594141557IN
0xbC664C8E...877E04Ab6
0 ETH0.0011281623.3
Put Close Price104005032020-07-05 16:34:281468 days ago1593966868IN
0xbC664C8E...877E04Ab6
0 ETH0.0012101725
Put Close Price103939942020-07-04 16:30:101469 days ago1593880210IN
0xbC664C8E...877E04Ab6
0 ETH0.0012585826
Put Close Price103875502020-07-03 16:34:181470 days ago1593794058IN
0xbC664C8E...877E04Ab6
0 ETH0.0022272746
Put Close Price103811062020-07-02 16:33:561471 days ago1593707636IN
0xbC664C8E...877E04Ab6
0 ETH0.0012104725
Put Close Price103746742020-07-01 16:42:461472 days ago1593621766IN
0xbC664C8E...877E04Ab6
0 ETH0.002716356.1
Put Close Price103682332020-06-30 16:31:171473 days ago1593534677IN
0xbC664C8E...877E04Ab6
0 ETH0.0019367640
Put Close Price103618062020-06-29 16:31:291474 days ago1593448289IN
0xbC664C8E...877E04Ab6
0 ETH0.0016462434
Put Close Price103553912020-06-28 16:33:061475 days ago1593361986IN
0xbC664C8E...877E04Ab6
0 ETH0.0015978233
Put Close Price103488852020-06-27 16:30:231476 days ago1593275423IN
0xbC664C8E...877E04Ab6
0 ETH0.0022272746
Put Close Price103425132020-06-26 16:30:061477 days ago1593189006IN
0xbC664C8E...877E04Ab6
0 ETH0.0021304344
Put Close Price103360082020-06-25 16:31:061478 days ago1593102666IN
0xbC664C8E...877E04Ab6
0 ETH0.0023725349
Put Close Price103295752020-06-24 16:31:241479 days ago1593016284IN
0xbC664C8E...877E04Ab6
0 ETH0.0024693651
Put Close Price103231342020-06-23 16:30:151480 days ago1592929815IN
0xbC664C8E...877E04Ab6
0 ETH0.0022272746
Put Close Price103166572020-06-22 16:30:281481 days ago1592843428IN
0xbC664C8E...877E04Ab6
0 ETH0.0021304344.00000145
Put Close Price103101832020-06-21 16:31:241482 days ago1592757084IN
0xbC664C8E...877E04Ab6
0 ETH0.0015061331.10621878
Put Close Price103037122020-06-20 16:30:391483 days ago1592670639IN
0xbC664C8E...877E04Ab6
0 ETH0.001551832.04960195
Put Close Price102972662020-06-19 16:30:051484 days ago1592584205IN
0xbC664C8E...877E04Ab6
0 ETH0.0012104725
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
101260472020-05-24 3:08:321511 days ago1590289712
0xbC664C8E...877E04Ab6
0.324 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KOLPro

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-05-14
*/

pragma solidity ^0.4.23;
/*
 *             ╔═╗┌─┐┌─┐┬┌─┐┬┌─┐┬   ┌─────────────────────────┐ ╦ ╦┌─┐┌┐ ╔═╗┬┌┬┐┌─┐
 *             ║ ║├┤ ├┤ ││  │├─┤│   │ KOL Community Foundation│ │ ║║║├┤ ├┴┐╚═╗│ │ ├┤
 *             ╚═╝└  └  ┴└─┘┴┴ ┴┴─┘ └─┬─────────────────────┬─┘ ╚╩╝└─┘└─┘╚═╝┴ ┴ └─┘
 *   ┌────────────────────────────────┘                     └──────────────────────────────┐
 *   │    ┌─────────────────────────────────────────────────────────────────────────────┐  │
 *   └────┤ Dev:Jack Koe ├─────────────┤ Special for: KOL  ├───────────────┤ 20200513   ├──┘
 *        └─────────────────────────────────────────────────────────────────────────────┘
 */

 library SafeMath {
   function mul(uint a, uint b) internal pure  returns (uint) {
     uint c = a * b;
     require(a == 0 || c / a == b);
     return c;
   }
   function div(uint a, uint b) internal pure returns (uint) {
     require(b > 0);
     uint c = a / b;
     require(a == b * c + a % b);
     return c;
   }
   function sub(uint a, uint b) internal pure returns (uint) {
     require(b <= a);
     return a - b;
   }
   function add(uint a, uint b) internal pure returns (uint) {
     uint c = a + b;
     require(c >= a);
     return c;
   }
   function max64(uint64 a, uint64 b) internal  pure returns (uint64) {
     return a >= b ? a : b;
   }
   function min64(uint64 a, uint64 b) internal  pure returns (uint64) {
     return a < b ? a : b;
   }
   function max256(uint256 a, uint256 b) internal  pure returns (uint256) {
     return a >= b ? a : b;
   }
   function min256(uint256 a, uint256 b) internal  pure returns (uint256) {
     return a < b ? a : b;
   }
 }

 /**
  * title KOL Promotion contract
  * dev visit: https://github.com/jackoelv/KOL/
 */

 contract ERC20Basic {
   uint public totalSupply;
   function balanceOf(address who) public constant returns (uint);
   function transfer(address to, uint value) public;
   event Transfer(address indexed from, address indexed to, uint value);
 }

 contract ERC20 is ERC20Basic {
   function allowance(address owner, address spender) public constant returns (uint);
   function transferFrom(address from, address to, uint value) public;
   function approve(address spender, uint value) public;
   event Approval(address indexed owner, address indexed spender, uint value);
 }

 /**
  * title KOL Promotion contract
  * dev visit: https://github.com/jackoelv/KOL/
 */

 contract BasicToken is ERC20Basic {

   using SafeMath for uint;

   mapping(address => uint) balances;

   function transfer(address _to, uint _value) public{
     balances[msg.sender] = balances[msg.sender].sub(_value);
     balances[_to] = balances[_to].add(_value);
     emit Transfer(msg.sender, _to, _value);
   }

   function balanceOf(address _owner) public constant returns (uint balance) {
     return balances[_owner];
   }
 }

 /**
  * title KOL Promotion contract
  * dev visit: https://github.com/jackoelv/KOL/
 */

 contract StandardToken is BasicToken, ERC20 {
   mapping (address => mapping (address => uint)) allowed;
   uint256 public userSupplyed;

   function transferFrom(address _from, address _to, uint _value) public {
     balances[_to] = balances[_to].add(_value);
     balances[_from] = balances[_from].sub(_value);
     allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
     emit Transfer(_from, _to, _value);
   }

   function approve(address _spender, uint _value) public{
     require((_value == 0) || (allowed[msg.sender][_spender] == 0)) ;
     allowed[msg.sender][_spender] = _value;
     emit Approval(msg.sender, _spender, _value);
   }

   function allowance(address _owner, address _spender) public constant returns (uint remaining) {
     return allowed[_owner][_spender];
   }
 }
 contract KOL is StandardToken {
 }

 /**
  * title KOL Promotion contract
  * dev visit: https://github.com/jackoelv/KOL/
 */

 contract Ownable {
     address public owner;

     constructor() public{
         owner = msg.sender;
     }

     modifier onlyOwner {
         require(msg.sender == owner);
         _;
     }
     function transferOwnership(address newOwner) onlyOwner public{
         if (newOwner != address(0)) {
             owner = newOwner;
         }
     }
 }
 /**
  * title KOL Promotion contract
  * dev visit: https://github.com/jackoelv/KOL/
 */
contract KOLPro is Ownable{
  using SafeMath for uint256;
  string public name = "KOL Promotion";
  KOL public kol;
  address public draw;
  address private receiver;

  uint256 public begin;
  uint256 public end;

  uint256 public iCode;
  uint256 public every = 1 days;
  uint256 public totalRegister;
  uint256 public totalBalance;

  uint8 public  userLevel1 = 20;
  uint8 public  userLevel2 = 10;
  uint8 public maxlevel = 9;

  uint16 public  comLevel1Users = 100;
  uint16 public  comLevel2Users = 200;
  uint16 public  comLevel3Users = 300;

  uint256 public  comLevel1Amount = 30000 * (10 ** 18);
  uint256 public  comLevel2Amount = 50000 * (10 ** 18);
  uint256 public  comLevel3Amount = 100000 * (10 ** 18);

  uint8 public constant comLevel1 = 3;
  uint8 public constant comLevel2 = 5;
  uint8 public constant comLevel3 = 10;
  uint8 public constant inviteLevel1 = 2;
  uint8 public constant inviteLevel2 = 3;
  uint8 public constant inviteLevel3 = 5;


  uint8 public constant fee = 5;
  bool public going = true;


  struct lock{
    uint256 begin;
    uint256 amount;
    uint256 end;
    bool withDrawed;
  }

  struct teamRate{
    uint8 rate;
    uint256 changeTime;

  }

  struct dayTeamBonus{
    uint256 theDayLastSecond;
    uint256 theDayTeamBonus;
    uint256 totalTeamBonus;
    uint8 theDayRate;
  }
  struct dayInviteBonus{
    uint256 theDayLastSecond;
    uint256 theDayInviteBonus;
    uint256 totalInviteBonus;
  }



  mapping (address => dayTeamBonus[]) public LockTeamBonus;
  mapping (address => dayInviteBonus[]) public LockInviteBonus;


  mapping (address => address[]) public InviteList;
  mapping (address => address[]) public ChildAddrs;
  mapping (address => teamRate[]) public TeamRateList;
  mapping (address => lock[]) public LockHistory;
  mapping (address => uint256) public LockBalance;

  mapping (uint256 => uint256) public ClosePrice;
  mapping (address => uint256) public TotalUsers;
  mapping (address => uint256) public TotalLockingAmount;
  mapping (uint256 => address) public InviteCode;
  mapping (address => uint256) public RInviteCode;

  mapping (address => uint8) public isLevelN;
  mapping (uint8 => uint8) public levelRate;
  mapping (address => bool) public USDTOrCoin;

  //GAS优化

  event Registed(address _user,uint256 inviteCode);
  event Joined(address _user,uint256 _theTime,uint256 _amount,bool _usdtOrCoin);
  event GradeChanged(address _user,uint8 _oldLevel,uint8 _newLevel);

  modifier onlyContract {
      require(msg.sender == draw);
      _;
  }
  constructor(address _tokenAddress,address _receiver,uint256 _begin,uint256 _end) public {
    kol = KOL(_tokenAddress);
    receiver = _receiver;
    begin = _begin;
    end = _end;
    InviteCode[0] = owner;
    levelRate[0] = 0;
    levelRate[1] = comLevel1;
    levelRate[2] = comLevel2;
    levelRate[3] = comLevel3;
  }

  function register(uint256 _fInviteCode) public {
    require(going);
    require(now <= end);
    require(RInviteCode[msg.sender] == 0);
    uint256 random = uint256(keccak256(now, msg.sender)) % 100;
    uint256 _myInviteCode = iCode.add(random);
    iCode = iCode.add(random);

    require(InviteCode[_myInviteCode] == address(0));
    require(InviteCode[_fInviteCode] != address(0));
    InviteCode[_myInviteCode] = msg.sender;
    RInviteCode[msg.sender] = _myInviteCode;
    emit Registed(msg.sender,iCode);
    totalRegister ++;
    address father = InviteCode[_fInviteCode];
    ChildAddrs[father].push(msg.sender);
    if (InviteList[msg.sender].length < 9){
      InviteList[msg.sender].push(father);
    }
    for (uint i = 0 ; i < InviteList[father].length; i++){
      if (InviteList[msg.sender].length < 9){
        InviteList[msg.sender].push(InviteList[father][i]);
      }else{
        break;
      }

    }

  }
  /**
   * title 转入KOL进行持仓生息
   * _usdtOrCoin, true:金本位; false:币本位
   * dev visit: https://github.com/jackoelv/KOL/
  */
  function join(uint256 _amount,bool _usdtOrCoin) payable  public {
    require(going);
    require(now <= end);
    if (LockBalance[msg.sender] == 0) USDTOrCoin[msg.sender] = _usdtOrCoin;
    kol.transferFrom(msg.sender,draw,_amount);
    LockHistory[msg.sender].push(lock(now,_amount,0,false));
    uint256 oldBalance = LockBalance[msg.sender];
    LockBalance[msg.sender] = LockBalance[msg.sender].add(_amount);
    totalBalance = totalBalance.add(_amount);
    emit Joined(msg.sender,now,_amount,_usdtOrCoin);

    uint256 amount3;//amount*3/1000以后

    for (uint i = 0; i<InviteList[msg.sender].length; i++){
      if (i == maxlevel) break;
      if (LockHistory[msg.sender].length == 1){
        //给上面的人数+1
        TotalUsers[InviteList[msg.sender][i]] += 1;
      }else{
        if (oldBalance == 0) TotalUsers[InviteList[msg.sender][i]] += 1;
      }
      //给上面的加入团队总金额

      TotalLockingAmount[InviteList[msg.sender][i]] = TotalLockingAmount[InviteList[msg.sender][i]].add(_amount);
      queryAndSetLevelN(InviteList[msg.sender][i]);

      amount3 = calcuDiffAmount(msg.sender,InviteList[msg.sender][i],_amount);


      if (i<2){
        setTopInviteBonus(InviteList[msg.sender][i],amount3,i);
      }

      if (i < maxlevel){
        setTopTeamBonus(InviteList[msg.sender][i],amount3);
      }
    }
  }
  function calcuDiffAmount(address _selfAddr,address _topAddr,uint256 _amount) public view returns(uint256){
    //计算网体收益加速额。
    uint256 topDayLockBalance = queryLockBalance(_topAddr,now);
    uint256 selfDayLockBalance = queryLockBalance(_selfAddr,now);
    uint256 minAmount;

    if (topDayLockBalance >= selfDayLockBalance){
      minAmount = _amount;
    }else{
        if(LockHistory[_selfAddr].length > 1){
            uint256 previous = LockHistory[_selfAddr].length - 2;
            uint256 theTime = LockHistory[_selfAddr][previous].begin;
            uint256 previousLockBalance = queryLockBalance(_selfAddr,theTime);
            if (topDayLockBalance > previousLockBalance){
              //_amount + previousLockBalance 一定是大于topDayLockBalance的;
              minAmount = topDayLockBalance - previousLockBalance;
            }
        }else{
          minAmount = topDayLockBalance;
        }
    }
    return minAmount.mul(3).div(1000);
  }
  function setTopTeamBonus(address _topAddr,uint256 _minAmount) private {
    uint8 newRate = levelRate[isLevelN[_topAddr]];
    dayTeamBonus memory theDayTB =dayTeamBonus(0,0,0,0);
    uint256 tomorrowLastSecond =getYestodayLastSecond(now) +  every;

    if (LockTeamBonus[_topAddr].length == 0){
      theDayTB.theDayLastSecond = tomorrowLastSecond;
      theDayTB.theDayTeamBonus = _minAmount;
      theDayTB.totalTeamBonus = _minAmount * newRate / 100;
      theDayTB.theDayRate = newRate;
      LockTeamBonus[_topAddr].push(theDayTB);
    }else{
      uint256 last = LockTeamBonus[_topAddr].length -1;
      theDayTB = LockTeamBonus[_topAddr][last];

      uint256 lastingDays = (tomorrowLastSecond - theDayTB.theDayLastSecond) / every;

      theDayTB.totalTeamBonus = lastingDays * theDayTB.theDayTeamBonus * theDayTB.theDayRate/100;//这里不好解决啊
      theDayTB.totalTeamBonus += _minAmount * newRate / 100;
      theDayTB.theDayTeamBonus += _minAmount;
      theDayTB.theDayRate = newRate;
        //必然就都是明天。
      if(theDayTB.theDayLastSecond < tomorrowLastSecond){
        theDayTB.theDayLastSecond = tomorrowLastSecond;
        LockTeamBonus[_topAddr].push(theDayTB);
      }else{
        LockTeamBonus[_topAddr][last]=theDayTB;
      }
    }
  }
  function setTopInviteBonus(address _topAddr,uint256 _minAmount,uint256 _index) private {
    uint8 inviteRate;
    if (_index == 0){
      inviteRate = userLevel1;
    }else if(_index ==1){
      inviteRate = userLevel2;
    }else{
      return;
    }
    uint256 tomorrowLastSecond = getYestodayLastSecond(now) + every;
    if (LockInviteBonus[_topAddr].length == 0){
      LockInviteBonus[_topAddr].push(dayInviteBonus(tomorrowLastSecond,
                                            _minAmount * inviteRate/100,
                                            _minAmount * inviteRate/100));
    }else{
      uint256 last = LockInviteBonus[_topAddr].length -1;

      uint256 lastDayLastSecond = LockInviteBonus[_topAddr][last].theDayLastSecond;
      uint256 lastDayInviteBonus = LockInviteBonus[_topAddr][last].theDayInviteBonus;
      uint256 lastDayInviteTotalBonus = LockInviteBonus[_topAddr][last].totalInviteBonus;

      uint256 lastingDays = (tomorrowLastSecond - lastDayLastSecond) / every;
      uint256 newDayInviteBonus = _minAmount* inviteRate / 100 + lastDayInviteBonus;
      uint256 newDayInviteTotalBonus = (lastingDays * lastDayInviteBonus) + _minAmount * inviteRate /100 + lastDayInviteTotalBonus;
        //必然就都是明天。
      if(lastDayLastSecond < tomorrowLastSecond){
        LockInviteBonus[_topAddr].push(dayInviteBonus(tomorrowLastSecond,
                                              newDayInviteBonus,
                                              newDayInviteTotalBonus));
      }else{
        LockInviteBonus[_topAddr][last].theDayInviteBonus = newDayInviteBonus;
        LockInviteBonus[_topAddr][last].totalInviteBonus = newDayInviteTotalBonus;
      }

    }
  }
  /**
   * title 查询并设置用户的身份级别
   * dev visit: https://github.com/jackoelv/KOL/
  */
  function queryAndSetLevelN(address _addr) private{
    if ((TotalUsers[_addr] >= comLevel3Users) &&
              (TotalLockingAmount[_addr] >= comLevel3Amount) &&
              ChildAddrs[_addr].length>=inviteLevel3){
      if (isLevelN[_addr]!=3){
        emit GradeChanged(_addr,isLevelN[_addr],3);
        isLevelN[_addr] = 3;
        TeamRateList[_addr].push(teamRate(3,now));
      }
    }else if((TotalUsers[_addr] >= comLevel2Users) &&
              (TotalLockingAmount[_addr] >= comLevel2Amount) &&
              ChildAddrs[_addr].length>=inviteLevel2){
      if (isLevelN[_addr]!=2){
        emit GradeChanged(_addr,isLevelN[_addr],2);
        isLevelN[_addr] = 2;
        TeamRateList[_addr].push(teamRate(2,now));
      }
    }else if((TotalUsers[_addr] >= comLevel1Users) &&
              (TotalLockingAmount[_addr] >= comLevel1Amount) &&
              ChildAddrs[_addr].length>=inviteLevel1){
      if (isLevelN[_addr]!=1){
        emit GradeChanged(_addr,isLevelN[_addr],1);
        isLevelN[_addr] = 1;
        TeamRateList[_addr].push(teamRate(1,now));
      }
    }else{
      if (isLevelN[_addr]!=0){
        emit GradeChanged(_addr,isLevelN[_addr],0);
        isLevelN[_addr] = 0;
        TeamRateList[_addr].push(teamRate(0,now));
      }
    }
  }

  /**
   * title 查询指定时间用户的有效锁仓余额
   * dev visit: https://github.com/jackoelv/KOL/
  */
  function queryLockBalance(address _addr,uint256 _queryTime) public view returns(uint256) {
    require(_queryTime <= end);
    uint256 dayLockBalance;
    for (uint j = 0; j<LockHistory[_addr].length; j++){
      if (LockHistory[_addr][j].withDrawed){
        //如果是已经提现的资金,那就要求计算日期是在起止时间内的。
        if ((_queryTime >= LockHistory[_addr][j].begin) && (_queryTime <= LockHistory[_addr][j].end)){
            dayLockBalance += LockHistory[_addr][j].amount;
        }
      }else{
        if (_queryTime >= LockHistory[_addr][j].begin ){
          //这个就要计入到当天的收益
          dayLockBalance += LockHistory[_addr][j].amount;
        }
      }
    }
    return dayLockBalance;
  }

  /**
   * title 根据给定时间计算出昨天的最后一秒
   * dev visit: https://github.com/jackoelv/KOL/
  */
  function getYestodayLastSecond(uint256 _queryTime) public view returns(uint256){
    require(_queryTime <= (end + every));
    return (_queryTime.sub(_queryTime.sub(begin) % every) - 1);
  }


  function clearLock(address _addr) onlyContract public{
    for (uint i =0;i<LockHistory[_addr].length;i++){
      LockHistory[_addr][i].end = now;
      LockHistory[_addr][i].withDrawed = true;
    }
    LockBalance[_addr] = 0;
  }
  function pushInvite(address _addr,
                      uint256 _theDayLastSecond,
                      uint256 _theDayInviteBonus,
                      uint256 _totalInviteBonus) onlyContract public{
    LockInviteBonus[_addr].push(dayInviteBonus(_theDayLastSecond,
                                              _theDayInviteBonus,
                                              _totalInviteBonus));
  }
  function setLastInvite(address _addr,
                      uint256 _theDayInviteBonus,
                      uint256 _totalInviteBonus) onlyContract public{
    require(LockInviteBonus[_addr].length > 0);
    uint256 last = LockInviteBonus[_addr].length -1;
    LockInviteBonus[_addr][last].theDayInviteBonus = _theDayInviteBonus;
    LockInviteBonus[_addr][last].totalInviteBonus = _totalInviteBonus;
  }
  function pushTeam(address _addr,
                      uint256 _theDayLastSecond,
                      uint256 _theDayTeamBonus,
                      uint256 _totalTeamBonus,
                      uint8 _theDayRate) onlyContract public{
    LockTeamBonus[_addr].push(dayTeamBonus(_theDayLastSecond,
                                              _theDayTeamBonus,
                                              _totalTeamBonus,
                                              _theDayRate));
  }
  function setLastTeam(address _addr,
                      uint256 _theDayTeamBonus,
                      uint256 _totalTeamBonus,
                      uint8 _theDayRate) onlyContract public{
    require(LockTeamBonus[_addr].length > 0);
    uint256 last = LockTeamBonus[_addr].length - 1;
    LockTeamBonus[_addr][last].theDayTeamBonus = _theDayTeamBonus;
    LockTeamBonus[_addr][last].totalTeamBonus = _totalTeamBonus;
    LockTeamBonus[_addr][last].theDayRate = _theDayRate;

  }
  function subTotalUsers(address _addr) onlyContract public{
    TotalUsers[_addr] = TotalUsers[_addr].sub(1);
  }
  function subTotalLockingAmount(address _addr,uint256 _amount) onlyContract public{
    TotalLockingAmount[_addr] = TotalLockingAmount[_addr].sub(_amount);
  }
  function subTotalBalance(uint256 _amount) onlyContract public{
    totalBalance=totalBalance.sub(_amount);
  }
  function qsLevel(address _addr) onlyContract public{
    queryAndSetLevelN(_addr);
  }
  function setInviteTeam(address _addr) onlyContract public{
    uint256 yestodayLastSecond = getYestodayLastSecond(now);
    uint256 last;
    if (LockInviteBonus[_addr].length > 0){
      last = LockInviteBonus[_addr].length - 1;
      LockInviteBonus[_addr][last].theDayInviteBonus = 0;
      LockInviteBonus[_addr][last].totalInviteBonus = 0;
    }
    if (LockInviteBonus[_addr].length > 0){
      last = LockTeamBonus[_addr].length - 1;
      LockTeamBonus[_addr][last].theDayTeamBonus = 0;
      LockTeamBonus[_addr][last].totalTeamBonus = 0;
      LockTeamBonus[_addr][last].theDayRate = 0;
    }
  }
  /**
   * title 录入KOL的收盘价
   * dev visit: https://github.com/jackoelv/KOL/
  */
  function putClosePrice(uint256 price,uint256 _queryTime) onlyOwner public{
    //录入的价格为4位小数
    require(_queryTime <= (end + 2*every));
    uint256 yestodayLastSecond = getYestodayLastSecond(_queryTime);
    ClosePrice[yestodayLastSecond] = price;
  }

  function setReceiver(address _receiver) onlyOwner public{
    receiver = _receiver;
  }
  function draw() onlyOwner public{
    receiver.send(address(this).balance);
  }
  function setContract(address _addr) onlyOwner public{
    draw = _addr;
  }
  function setGoing(bool _going) onlyOwner public{
    going = _going;
  }
  function setEnd(uint256 _end) onlyOwner public{
    end = _end;
  }

  function getLockLen(address _addr) public view returns(uint256) {
    return(LockHistory[_addr].length);
  }
  function getFathersLength(address _addr) public view returns(uint256){
    return InviteList[_addr].length;
  }
  function getLockTeamBonusLen(address _addr) public view returns(uint256){
    return(LockTeamBonus[_addr].length);
  }
  function getLockInviteBonusLen(address _addr) public view returns(uint256){
    return(LockInviteBonus[_addr].length);
  }
  function getChildsLen(address _addr) public view returns(uint256){
  return(ChildAddrs[_addr].length);
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isLevelN","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"comLevel3","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"subTotalUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"},{"name":"_queryTime","type":"uint256"}],"name":"queryLockBalance","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":"comLevel2Amount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kol","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"draw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"comLevel3Amount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_theDayInviteBonus","type":"uint256"},{"name":"_totalInviteBonus","type":"uint256"}],"name":"setLastInvite","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_theDayLastSecond","type":"uint256"},{"name":"_theDayTeamBonus","type":"uint256"},{"name":"_totalTeamBonus","type":"uint256"},{"name":"_theDayRate","type":"uint8"}],"name":"pushTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"begin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"TotalLockingAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"comLevel2Users","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"LockHistory","outputs":[{"name":"begin","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"end","type":"uint256"},{"name":"withDrawed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_selfAddr","type":"address"},{"name":"_topAddr","type":"address"},{"name":"_amount","type":"uint256"}],"name":"calcuDiffAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getLockTeamBonusLen","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"comLevel1Amount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"ClosePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"LockBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_theDayLastSecond","type":"uint256"},{"name":"_theDayInviteBonus","type":"uint256"},{"name":"_totalInviteBonus","type":"uint256"}],"name":"pushInvite","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"USDTOrCoin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getLockInviteBonusLen","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"InviteList","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"userLevel2","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"every","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"iCode","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"levelRate","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"comLevel2","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_going","type":"bool"}],"name":"setGoing","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"price","type":"uint256"},{"name":"_queryTime","type":"uint256"}],"name":"putClosePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_theDayTeamBonus","type":"uint256"},{"name":"_totalTeamBonus","type":"uint256"},{"name":"_theDayRate","type":"uint8"}],"name":"setLastTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"TeamRateList","outputs":[{"name":"rate","type":"uint8"},{"name":"changeTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receiver","type":"address"}],"name":"setReceiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"LockTeamBonus","outputs":[{"name":"theDayLastSecond","type":"uint256"},{"name":"theDayTeamBonus","type":"uint256"},{"name":"totalTeamBonus","type":"uint256"},{"name":"theDayRate","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"subTotalBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_end","type":"uint256"}],"name":"setEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"comLevel3Users","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"comLevel1Users","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"inviteLevel1","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"RInviteCode","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":"_addr","type":"address"}],"name":"clearLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"inviteLevel2","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getChildsLen","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"inviteLevel3","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setInviteTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_queryTime","type":"uint256"}],"name":"getYestodayLastSecond","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getLockLen","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxlevel","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"comLevel1","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"InviteCode","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_usdtOrCoin","type":"bool"}],"name":"join","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"qsLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_amount","type":"uint256"}],"name":"subTotalLockingAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getFathersLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"going","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"TotalUsers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"userLevel1","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"LockInviteBonus","outputs":[{"name":"theDayLastSecond","type":"uint256"},{"name":"theDayInviteBonus","type":"uint256"},{"name":"totalInviteBonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"end","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_fInviteCode","type":"uint256"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalRegister","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"ChildAddrs","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenAddress","type":"address"},{"name":"_receiver","type":"address"},{"name":"_begin","type":"uint256"},{"name":"_end","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"},{"indexed":false,"name":"inviteCode","type":"uint256"}],"name":"Registed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"},{"indexed":false,"name":"_theTime","type":"uint256"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_usdtOrCoin","type":"bool"}],"name":"Joined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"},{"indexed":false,"name":"_oldLevel","type":"uint8"},{"indexed":false,"name":"_newLevel","type":"uint8"}],"name":"GradeChanged","type":"event"}]

60806040526040805190810160405280600d81526020017f4b4f4c2050726f6d6f74696f6e000000000000000000000000000000000000008152506001908051906020019062000051929190620003ac565b50620151806008556014600b60006101000a81548160ff021916908360ff160217905550600a600b60016101000a81548160ff021916908360ff1602179055506009600b60026101000a81548160ff021916908360ff1602179055506064600b60036101000a81548161ffff021916908361ffff16021790555060c8600b60056101000a81548161ffff021916908361ffff16021790555061012c600b60076101000a81548161ffff021916908361ffff16021790555069065a4da25d3016c00000600c55690a968163f0a57b400000600d5569152d02c7e14af6800000600e556001600f60006101000a81548160ff0219169083151502179055503480156200015a57600080fd5b5060405160808062005fc083398101806040528101908080519060200190929190805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600581905550806006819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601a600080815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601d60008060ff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506003601d6000600160ff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506005601d6000600260ff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600a601d6000600360ff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050506200045b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003ef57805160ff191683800117855562000420565b8280016001018555821562000420579182015b828111156200041f57825182559160200191906001019062000402565b5b5090506200042f919062000433565b5090565b6200045891905b80821115620004545760008160009055506001016200043a565b5090565b90565b615b55806200046b6000396000f300608060405260043610610322576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063042a59ea1461032757806305536ac214610384578063057a53fc146103b5578063069f19ce146103f857806306fdde031461045957806308b7da39146104e95780630dcba2d1146105145780630eecae211461056b5780630efd7661146105825780631251b7a4146105ad57806315038e9e146106045780631bce6ff3146106725780631ecf396d1461069d5780632217e6b6146106f45780632253d381146107275780632517656b146107a1578063254fbd7214610822578063275cdec314610879578063294b4816146108a45780632a61ae19146108e55780632e39140f1461093c5780632f63c3651461099d578063312b43ad146109f85780633983c66514610a4f5780633a9c7d1214610adc5780633bc6cf4714610b0d578063571f231514610b385780635b204f4c14610b635780635dbac10e14610bad57806361c17fa914610bde5780636463a1d014610c0d5780636f42d97f14610c445780637132c03a14610ca8578063718da7ee14610d1657806372e03a5c14610d5957806375f890ab14610dd55780637c4bc6f714610e185780637f498ffc14610e45578063808fe48a14610e725780638099a6a614610ea557806389689e4514610ed85780638be7038e14610f095780638da5cb5b14610f605780638dc7352114610fb757806396931d1114610ffa578063a1aebce81461102b578063ad7a672f14611082578063b4c81c68146110ad578063ba8616a2146110de578063bf131ad214611121578063c93ae0fc14611162578063cb3cdc4b146111b9578063cc7bc3a0146111ea578063cccbeebf1461121b578063d0b3da9914611288578063d6ea1a74146112b4578063d83a3c95146112f7578063d8495ac314611344578063dbf46a021461139b578063ddca3f43146113ca578063e1d1792d146113fb578063e4ebc0e814611452578063e77f912414611483578063efbe1c1c146114f2578063f207564e1461151d578063f2fde38b1461154a578063f718924a1461158d578063fca2aca5146115b8575b600080fd5b34801561033357600080fd5b50610368600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611645565b604051808260ff1660ff16815260200191505060405180910390f35b34801561039057600080fd5b50610399611665565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103c157600080fd5b506103f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061166a565b005b34801561040457600080fd5b50610443600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061175f565b6040518082815260200191505060405180910390f35b34801561046557600080fd5b5061046e611a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ae578082015181840152602081019050610493565b50505050905090810190601f1680156104db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104f557600080fd5b506104fe611aeb565b6040518082815260200191505060405180910390f35b34801561052057600080fd5b50610529611af1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057757600080fd5b50610580611b17565b005b34801561058e57600080fd5b50610597611be3565b6040518082815260200191505060405180910390f35b3480156105b957600080fd5b50610602600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611be9565b005b34801561061057600080fd5b50610670600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803560ff169060200190929190505050611daa565b005b34801561067e57600080fd5b50610687611ede565b6040518082815260200191505060405180910390f35b3480156106a957600080fd5b506106de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ee4565b6040518082815260200191505060405180910390f35b34801561070057600080fd5b50610709611efc565b604051808261ffff1661ffff16815260200191505060405180910390f35b34801561073357600080fd5b50610772600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f10565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107ad57600080fd5b5061080c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f69565b6040518082815260200191505060405180910390f35b34801561082e57600080fd5b50610863600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120eb565b6040518082815260200191505060405180910390f35b34801561088557600080fd5b5061088e612137565b6040518082815260200191505060405180910390f35b3480156108b057600080fd5b506108cf6004803603810190808035906020019092919050505061213d565b6040518082815260200191505060405180910390f35b3480156108f157600080fd5b50610926600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612155565b6040518082815260200191505060405180910390f35b34801561094857600080fd5b5061099b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919050505061216d565b005b3480156109a957600080fd5b506109de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612276565b604051808215151515815260200191505060405180910390f35b348015610a0457600080fd5b50610a39600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612296565b6040518082815260200191505060405180910390f35b348015610a5b57600080fd5b50610a9a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ae857600080fd5b50610af161232f565b604051808260ff1660ff16815260200191505060405180910390f35b348015610b1957600080fd5b50610b22612342565b6040518082815260200191505060405180910390f35b348015610b4457600080fd5b50610b4d612348565b6040518082815260200191505060405180910390f35b348015610b6f57600080fd5b50610b91600480360381019080803560ff16906020019092919050505061234e565b604051808260ff1660ff16815260200191505060405180910390f35b348015610bb957600080fd5b50610bc261236e565b604051808260ff1660ff16815260200191505060405180910390f35b348015610bea57600080fd5b50610c0b600480360381019080803515159060200190929190505050612373565b005b348015610c1957600080fd5b50610c4260048036038101908080359060200190929190803590602001909291905050506123eb565b005b348015610c5057600080fd5b50610ca6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190505050612488565b005b348015610cb457600080fd5b50610cf3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126c0565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b348015610d2257600080fd5b50610d57600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061270d565b005b348015610d6557600080fd5b50610da4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127ac565b604051808581526020018481526020018381526020018260ff1660ff16815260200194505050505060405180910390f35b348015610de157600080fd5b50610e16600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612805565b005b348015610e2457600080fd5b50610e43600480360381019080803590602001909291905050506128a4565b005b348015610e5157600080fd5b50610e706004803603810190808035906020019092919050505061291e565b005b348015610e7e57600080fd5b50610e87612983565b604051808261ffff1661ffff16815260200191505060405180910390f35b348015610eb157600080fd5b50610eba612997565b604051808261ffff1661ffff16815260200191505060405180910390f35b348015610ee457600080fd5b50610eed6129ab565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f1557600080fd5b50610f4a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129b0565b6040518082815260200191505060405180910390f35b348015610f6c57600080fd5b50610f756129c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fc357600080fd5b50610ff8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129ed565b005b34801561100657600080fd5b5061100f612bc8565b604051808260ff1660ff16815260200191505060405180910390f35b34801561103757600080fd5b5061106c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bcd565b6040518082815260200191505060405180910390f35b34801561108e57600080fd5b50611097612c19565b6040518082815260200191505060405180910390f35b3480156110b957600080fd5b506110c2612c1f565b604051808260ff1660ff16815260200191505060405180910390f35b3480156110ea57600080fd5b5061111f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c24565b005b34801561112d57600080fd5b5061114c60048036038101908080359060200190929190505050612fbe565b6040518082815260200191505060405180910390f35b34801561116e57600080fd5b506111a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613013565b6040518082815260200191505060405180910390f35b3480156111c557600080fd5b506111ce61305f565b604051808260ff1660ff16815260200191505060405180910390f35b3480156111f657600080fd5b506111ff613072565b604051808260ff1660ff16815260200191505060405180910390f35b34801561122757600080fd5b5061124660048036038101908080359060200190929190505050613077565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6112b2600480360381019080803590602001909291908035151590602001909291905050506130aa565b005b3480156112c057600080fd5b506112f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613afe565b005b34801561130357600080fd5b50611342600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b66565b005b34801561135057600080fd5b50611385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613c5b565b6040518082815260200191505060405180910390f35b3480156113a757600080fd5b506113b0613ca7565b604051808215151515815260200191505060405180910390f35b3480156113d657600080fd5b506113df613cba565b604051808260ff1660ff16815260200191505060405180910390f35b34801561140757600080fd5b5061143c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613cbf565b6040518082815260200191505060405180910390f35b34801561145e57600080fd5b50611467613cd7565b604051808260ff1660ff16815260200191505060405180910390f35b34801561148f57600080fd5b506114ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613cea565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156114fe57600080fd5b50611507613d30565b6040518082815260200191505060405180910390f35b34801561152957600080fd5b5061154860048036038101908080359060200190929190505050613d36565b005b34801561155657600080fd5b5061158b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506143de565b005b34801561159957600080fd5b506115a26144b3565b6040518082815260200191505060405180910390f35b3480156115c457600080fd5b50611603600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506144b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b601c6020528060005260406000206000915054906101000a900460ff1681565b600a81565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c657600080fd5b6117196001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461450690919063ffffffff16565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000806000600654841115151561177557600080fd5b600090505b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611a4257601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561181057fe5b906000526020600020906004020160030160009054906101000a900460ff161561196b57601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561188057fe5b90600052602060002090600402016000015484101580156118fe5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156118e857fe5b9060005260206000209060040201600201548411155b1561196657601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561194f57fe5b906000526020600020906004020160010154820191505b611a35565b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156119b757fe5b90600052602060002090600402016000015484101515611a3457601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481101515611a1d57fe5b906000526020600020906004020160010154820191505b5b808060010191505061177a565b819250505092915050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ae35780601f10611ab857610100808354040283529160200191611ae3565b820191906000526020600020905b815481529060010190602001808311611ac657829003601f168201915b505050505081565b600d5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b7257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505050565b600e5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c4757600080fd5b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111515611c9857600080fd5b6001601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003905082601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611d2d57fe5b90600052602060002090600302016001018190555081601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611d8f57fe5b90600052602060002090600302016002018190555050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0657600080fd5b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206080604051908101604052808681526020018581526020018481526020018360ff168152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360ff1602179055505050505050505050565b60055481565b60196020528060005260406000206000915090505481565b600b60059054906101000a900461ffff1681565b601560205281600052604060002081815481101515611f2b57fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b6000806000806000806000611f7e894261175f565b9550611f8a8a4261175f565b94508486101515611f9d578793506120b4565b6001601560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156120af576002601560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039250601560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561207c57fe5b906000526020600020906004020160000154915061209a8a8361175f565b9050808611156120aa5780860393505b6120b3565b8593505b5b6120dc6103e86120ce60038761452290919063ffffffff16565b61455890919063ffffffff16565b96505050505050509392505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600c5481565b60176020528060005260406000206000915090505481565b60166020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121c957600080fd5b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405280858152602001848152602001838152509080600181540180825580915050906001820390600052602060002090600302016000909192909190915060008201518160000155602082015181600101556040820151816002015550505050505050565b601e6020528060005260406000206000915054906101000a900460ff1681565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6012602052816000526040600020818154811015156122fd57fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60019054906101000a900460ff1681565b60085481565b60075481565b601d6020528060005260406000206000915054906101000a900460ff1681565b600581565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ce57600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561244857600080fd5b60085460020260065401821115151561246057600080fd5b61246982612fbe565b9050826017600083815260200190815260200160002081905550505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124e657600080fd5b6000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011151561253757600080fd5b6001601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003905083601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156125cc57fe5b90600052602060002090600402016001018190555082601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561262e57fe5b90600052602060002090600402016002018190555081601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561269057fe5b906000526020600020906004020160030160006101000a81548160ff021916908360ff1602179055505050505050565b6014602052816000526040600020818154811015156126db57fe5b9060005260206000209060020201600091509150508060000160009054906101000a900460ff16908060010154905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561276857600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6010602052816000526040600020818154811015156127c757fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561286057600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561290057600080fd5b61291581600a5461450690919063ffffffff16565b600a8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561297957600080fd5b8060068190555050565b600b60079054906101000a900461ffff1681565b600b60039054906101000a900461ffff1681565b600281565b601b6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a4b57600080fd5b600090505b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015612b7f5742601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612ae757fe5b9060005260206000209060040201600201819055506001601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612b4a57fe5b906000526020600020906004020160030160006101000a81548160ff0219169083151502179055508080600101915050612a50565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600381565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600a5481565b600581565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c8357600080fd5b612c8c42612fbe565b91506000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115612de8576001601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500390506000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612d6f57fe5b9060005260206000209060030201600101819055506000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612dd257fe5b9060005260206000209060030201600201819055505b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115612fb9576001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500390506000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612ec957fe5b9060005260206000209060040201600101819055506000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612f2c57fe5b9060005260206000209060040201600201819055506000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612f8f57fe5b906000526020600020906004020160030160006101000a81548160ff021916908360ff1602179055505b505050565b6000600854600654018211151515612fd557600080fd5b600161300b600854612ff26005548661450690919063ffffffff16565b811515612ffb57fe5b068461450690919063ffffffff16565b039050919050565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600b60029054906101000a900460ff1681565b600381565b601a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600f60009054906101000a900460ff1615156130ca57600080fd5b60065442111515156130db57600080fd5b6000601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561317b5783601e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561329657600080fd5b505af11580156132aa573d6000803e3d6000fd5b50505050601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060806040519081016040528042815260200187815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550505050601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925061341385601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461459f90919063ffffffff16565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061346b85600a5461459f90919063ffffffff16565b600a819055507f11cb292a08eba5f64499fcedb93fd02a1af37c611dfdf9aa1012b3d408d7d59e33428787604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018215151515815260200194505050505060405180910390a1600090505b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015613af757600b60029054906101000a900460ff1660ff1681141561355e57613af7565b6001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050141561367257600160186000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156135fb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550613741565b600083141561374057600160186000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156136cd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b5b6138098560196000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561379557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461459f90919063ffffffff16565b60196000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561385957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613941601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561391157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166145c0565b6139c233601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561399157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687611f69565b91506002811015613a4f57613a4e601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515613a1c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838361517a565b5b600b60029054906101000a900460ff1660ff16811015613aea57613ae9601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515613ab857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683615628565b5b80806001019150506134f5565b5050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613b5a57600080fd5b613b63816145c0565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613bc257600080fd5b613c1481601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461450690919063ffffffff16565b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600f60009054906101000a900460ff1681565b600581565b60186020528060005260406000206000915090505481565b600b60009054906101000a900460ff1681565b601160205281600052604060002081815481101515613d0557fe5b9060005260206000209060030201600091509150508060000154908060010154908060020154905083565b60065481565b600080600080600f60009054906101000a900460ff161515613d5757600080fd5b6006544211151515613d6857600080fd5b6000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515613db657600080fd5b60644233604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140192505050604051809103902060019004811515613e1e57fe5b069350613e368460075461459f90919063ffffffff16565b9250613e4d8460075461459f90919063ffffffff16565b600781905550600073ffffffffffffffffffffffffffffffffffffffff16601a600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613ec157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16601a600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613f3057600080fd5b33601a600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f29317bf7eb9941522faad78efabe2efda58f223f6b421c6e91762fb0484cbdad33600754604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600960008154809291906001019190505550601a600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000203390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506009601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050101561420d57601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600090505b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156143d7576009601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905010156143c557601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561433257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506143ca565b6143d7565b8080600101915050614212565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561443957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156144b057806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60095481565b6013602052816000526040600020818154811015156144d457fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082821115151561451757600080fd5b818303905092915050565b60008082840290506000841480614543575082848281151561454057fe5b04145b151561454e57600080fd5b8091505092915050565b60008060008311151561456a57600080fd5b828481151561457557fe5b049050828481151561458357fe5b06818402018414151561459557600080fd5b8091505092915050565b60008082840190508381101515156145b657600080fd5b8091505092915050565b600b60079054906101000a900461ffff1661ffff16601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156146645750600e54601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156146b65750600560ff16601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905010155b156148ed576003601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415156148e8577fc7d5ff51d6870ddf5a0064f51d3b5ddc326806d4c4a84146226d42ea13e0bf3e81601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166003604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a16003601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280600360ff168152602001428152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548160ff021916908360ff160217905550602082015181600101555050505b615177565b600b60059054906101000a900461ffff1661ffff16601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156149915750600d54601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156149e35750600360ff16601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905010155b15614c1a576002601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141515614c15577fc7d5ff51d6870ddf5a0064f51d3b5ddc326806d4c4a84146226d42ea13e0bf3e81601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166002604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a16002601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280600260ff168152602001428152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548160ff021916908360ff160217905550602082015181600101555050505b615176565b600b60039054906101000a900461ffff1661ffff16601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015614cbe5750600c54601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015614d105750600260ff16601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905010155b15614f47576001601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141515614f42577fc7d5ff51d6870ddf5a0064f51d3b5ddc326806d4c4a84146226d42ea13e0bf3e81601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166001604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a16001601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280600160ff168152602001428152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548160ff021916908360ff160217905550602082015181600101555050505b615175565b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141515615174577fc7d5ff51d6870ddf5a0064f51d3b5ddc326806d4c4a84146226d42ea13e0bf3e81601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166000604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a16000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280600060ff168152602001428152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548160ff021916908360ff160217905550602082015181600101555050505b5b5b5b50565b6000806000806000806000806000808a14156151a757600b60009054906101000a900460ff1698506151cd565b60018a14156151c757600b60019054906101000a900460ff1698506151cc565b61561a565b5b6008546151d942612fbe565b0197506000601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905014156152f557601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206060604051908101604052808a815260200160648c60ff168f0281151561528957fe5b04815260200160648c60ff168f028115156152a057fe5b0481525090806001815401808255809150509060018203906000526020600020906003020160009091929091909150600082015181600001556020820151816001015560408201518160020155505050615619565b6001601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039650601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110151561538957fe5b9060005260206000209060030201600001549550601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020878154811015156153e957fe5b9060005260206000209060030201600101549450601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110151561544957fe5b906000526020600020906003020160020154935060085486890381151561546c57fe5b0492508460648a60ff168d0281151561548157fe5b040191508360648a60ff168d0281151561549757fe5b04868502010190508786101561555357601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206060604051908101604052808a81526020018481526020018381525090806001815401808255809150509060018203906000526020600020906003020160009091929091909150600082015181600001556020820151816001015560408201518160020155505050615618565b81601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020888154811015156155a057fe5b90600052602060002090600302016001018190555080601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208881548110151561560257fe5b9060005260206000209060030201600201819055505b5b5b505050505050505050505050565b6000615632615afd565b6000806000601d6000601c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff169450608060405190810160405280600081526020016000815260200160008152602001600060ff1681525093506008546156e342612fbe565b0192506000601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050141561582457828460000181815250508584602001818152505060648560ff16870281151561575657fe5b0484604001818152505084846060019060ff16908160ff1681525050601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020849080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360ff160217905550505050615af4565b6001601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039150601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156158b857fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1660ff1660ff168152505093506008548460000151840381151561592257fe5b0490506064846060015160ff16856020015183020281151561594057fe5b0484604001818152505060648560ff16870281151561595b57fe5b048460400181815101915081815250508584602001818151019150818152505084846060019060ff16908160ff16815250508284600001511015615a555782846000018181525050601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020849080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360ff160217905550505050615af3565b83601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515615aa257fe5b906000526020600020906004020160008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360ff1602179055509050505b5b50505050505050565b608060405190810160405280600081526020016000815260200160008152602001600060ff16815250905600a165627a7a72305820bad5330fcda8376edcc9008d84276d46757360ce065de422be58ecd1e4cc2c1700290000000000000000000000000946e36c2887025c389ef85ea5f9150e0bed4d6900000000000000000000000068bf941e428bcd731d678799ba9da20e52244383000000000000000000000000000000000000000000000000000000005eb8250000000000000000000000000000000000000000000000000000000000618bec80

Deployed Bytecode

0x608060405260043610610322576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063042a59ea1461032757806305536ac214610384578063057a53fc146103b5578063069f19ce146103f857806306fdde031461045957806308b7da39146104e95780630dcba2d1146105145780630eecae211461056b5780630efd7661146105825780631251b7a4146105ad57806315038e9e146106045780631bce6ff3146106725780631ecf396d1461069d5780632217e6b6146106f45780632253d381146107275780632517656b146107a1578063254fbd7214610822578063275cdec314610879578063294b4816146108a45780632a61ae19146108e55780632e39140f1461093c5780632f63c3651461099d578063312b43ad146109f85780633983c66514610a4f5780633a9c7d1214610adc5780633bc6cf4714610b0d578063571f231514610b385780635b204f4c14610b635780635dbac10e14610bad57806361c17fa914610bde5780636463a1d014610c0d5780636f42d97f14610c445780637132c03a14610ca8578063718da7ee14610d1657806372e03a5c14610d5957806375f890ab14610dd55780637c4bc6f714610e185780637f498ffc14610e45578063808fe48a14610e725780638099a6a614610ea557806389689e4514610ed85780638be7038e14610f095780638da5cb5b14610f605780638dc7352114610fb757806396931d1114610ffa578063a1aebce81461102b578063ad7a672f14611082578063b4c81c68146110ad578063ba8616a2146110de578063bf131ad214611121578063c93ae0fc14611162578063cb3cdc4b146111b9578063cc7bc3a0146111ea578063cccbeebf1461121b578063d0b3da9914611288578063d6ea1a74146112b4578063d83a3c95146112f7578063d8495ac314611344578063dbf46a021461139b578063ddca3f43146113ca578063e1d1792d146113fb578063e4ebc0e814611452578063e77f912414611483578063efbe1c1c146114f2578063f207564e1461151d578063f2fde38b1461154a578063f718924a1461158d578063fca2aca5146115b8575b600080fd5b34801561033357600080fd5b50610368600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611645565b604051808260ff1660ff16815260200191505060405180910390f35b34801561039057600080fd5b50610399611665565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103c157600080fd5b506103f6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061166a565b005b34801561040457600080fd5b50610443600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061175f565b6040518082815260200191505060405180910390f35b34801561046557600080fd5b5061046e611a4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ae578082015181840152602081019050610493565b50505050905090810190601f1680156104db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104f557600080fd5b506104fe611aeb565b6040518082815260200191505060405180910390f35b34801561052057600080fd5b50610529611af1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057757600080fd5b50610580611b17565b005b34801561058e57600080fd5b50610597611be3565b6040518082815260200191505060405180910390f35b3480156105b957600080fd5b50610602600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611be9565b005b34801561061057600080fd5b50610670600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803560ff169060200190929190505050611daa565b005b34801561067e57600080fd5b50610687611ede565b6040518082815260200191505060405180910390f35b3480156106a957600080fd5b506106de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ee4565b6040518082815260200191505060405180910390f35b34801561070057600080fd5b50610709611efc565b604051808261ffff1661ffff16815260200191505060405180910390f35b34801561073357600080fd5b50610772600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f10565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107ad57600080fd5b5061080c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f69565b6040518082815260200191505060405180910390f35b34801561082e57600080fd5b50610863600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120eb565b6040518082815260200191505060405180910390f35b34801561088557600080fd5b5061088e612137565b6040518082815260200191505060405180910390f35b3480156108b057600080fd5b506108cf6004803603810190808035906020019092919050505061213d565b6040518082815260200191505060405180910390f35b3480156108f157600080fd5b50610926600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612155565b6040518082815260200191505060405180910390f35b34801561094857600080fd5b5061099b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919050505061216d565b005b3480156109a957600080fd5b506109de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612276565b604051808215151515815260200191505060405180910390f35b348015610a0457600080fd5b50610a39600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612296565b6040518082815260200191505060405180910390f35b348015610a5b57600080fd5b50610a9a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ae857600080fd5b50610af161232f565b604051808260ff1660ff16815260200191505060405180910390f35b348015610b1957600080fd5b50610b22612342565b6040518082815260200191505060405180910390f35b348015610b4457600080fd5b50610b4d612348565b6040518082815260200191505060405180910390f35b348015610b6f57600080fd5b50610b91600480360381019080803560ff16906020019092919050505061234e565b604051808260ff1660ff16815260200191505060405180910390f35b348015610bb957600080fd5b50610bc261236e565b604051808260ff1660ff16815260200191505060405180910390f35b348015610bea57600080fd5b50610c0b600480360381019080803515159060200190929190505050612373565b005b348015610c1957600080fd5b50610c4260048036038101908080359060200190929190803590602001909291905050506123eb565b005b348015610c5057600080fd5b50610ca6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190505050612488565b005b348015610cb457600080fd5b50610cf3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126c0565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b348015610d2257600080fd5b50610d57600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061270d565b005b348015610d6557600080fd5b50610da4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127ac565b604051808581526020018481526020018381526020018260ff1660ff16815260200194505050505060405180910390f35b348015610de157600080fd5b50610e16600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612805565b005b348015610e2457600080fd5b50610e43600480360381019080803590602001909291905050506128a4565b005b348015610e5157600080fd5b50610e706004803603810190808035906020019092919050505061291e565b005b348015610e7e57600080fd5b50610e87612983565b604051808261ffff1661ffff16815260200191505060405180910390f35b348015610eb157600080fd5b50610eba612997565b604051808261ffff1661ffff16815260200191505060405180910390f35b348015610ee457600080fd5b50610eed6129ab565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f1557600080fd5b50610f4a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129b0565b6040518082815260200191505060405180910390f35b348015610f6c57600080fd5b50610f756129c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fc357600080fd5b50610ff8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129ed565b005b34801561100657600080fd5b5061100f612bc8565b604051808260ff1660ff16815260200191505060405180910390f35b34801561103757600080fd5b5061106c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bcd565b6040518082815260200191505060405180910390f35b34801561108e57600080fd5b50611097612c19565b6040518082815260200191505060405180910390f35b3480156110b957600080fd5b506110c2612c1f565b604051808260ff1660ff16815260200191505060405180910390f35b3480156110ea57600080fd5b5061111f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c24565b005b34801561112d57600080fd5b5061114c60048036038101908080359060200190929190505050612fbe565b6040518082815260200191505060405180910390f35b34801561116e57600080fd5b506111a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613013565b6040518082815260200191505060405180910390f35b3480156111c557600080fd5b506111ce61305f565b604051808260ff1660ff16815260200191505060405180910390f35b3480156111f657600080fd5b506111ff613072565b604051808260ff1660ff16815260200191505060405180910390f35b34801561122757600080fd5b5061124660048036038101908080359060200190929190505050613077565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6112b2600480360381019080803590602001909291908035151590602001909291905050506130aa565b005b3480156112c057600080fd5b506112f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613afe565b005b34801561130357600080fd5b50611342600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b66565b005b34801561135057600080fd5b50611385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613c5b565b6040518082815260200191505060405180910390f35b3480156113a757600080fd5b506113b0613ca7565b604051808215151515815260200191505060405180910390f35b3480156113d657600080fd5b506113df613cba565b604051808260ff1660ff16815260200191505060405180910390f35b34801561140757600080fd5b5061143c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613cbf565b6040518082815260200191505060405180910390f35b34801561145e57600080fd5b50611467613cd7565b604051808260ff1660ff16815260200191505060405180910390f35b34801561148f57600080fd5b506114ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613cea565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156114fe57600080fd5b50611507613d30565b6040518082815260200191505060405180910390f35b34801561152957600080fd5b5061154860048036038101908080359060200190929190505050613d36565b005b34801561155657600080fd5b5061158b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506143de565b005b34801561159957600080fd5b506115a26144b3565b6040518082815260200191505060405180910390f35b3480156115c457600080fd5b50611603600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506144b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b601c6020528060005260406000206000915054906101000a900460ff1681565b600a81565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116c657600080fd5b6117196001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461450690919063ffffffff16565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000806000600654841115151561177557600080fd5b600090505b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611a4257601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561181057fe5b906000526020600020906004020160030160009054906101000a900460ff161561196b57601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561188057fe5b90600052602060002090600402016000015484101580156118fe5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156118e857fe5b9060005260206000209060040201600201548411155b1561196657601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561194f57fe5b906000526020600020906004020160010154820191505b611a35565b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020818154811015156119b757fe5b90600052602060002090600402016000015484101515611a3457601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481101515611a1d57fe5b906000526020600020906004020160010154820191505b5b808060010191505061177a565b819250505092915050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ae35780601f10611ab857610100808354040283529160200191611ae3565b820191906000526020600020905b815481529060010190602001808311611ac657829003601f168201915b505050505081565b600d5481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b7257600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505050565b600e5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c4757600080fd5b6000601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111515611c9857600080fd5b6001601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003905082601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611d2d57fe5b90600052602060002090600302016001018190555081601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611d8f57fe5b90600052602060002090600302016002018190555050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e0657600080fd5b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206080604051908101604052808681526020018581526020018481526020018360ff168152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360ff1602179055505050505050505050565b60055481565b60196020528060005260406000206000915090505481565b600b60059054906101000a900461ffff1681565b601560205281600052604060002081815481101515611f2b57fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b6000806000806000806000611f7e894261175f565b9550611f8a8a4261175f565b94508486101515611f9d578793506120b4565b6001601560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156120af576002601560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039250601560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561207c57fe5b906000526020600020906004020160000154915061209a8a8361175f565b9050808611156120aa5780860393505b6120b3565b8593505b5b6120dc6103e86120ce60038761452290919063ffffffff16565b61455890919063ffffffff16565b96505050505050509392505050565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600c5481565b60176020528060005260406000206000915090505481565b60166020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121c957600080fd5b601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020606060405190810160405280858152602001848152602001838152509080600181540180825580915050906001820390600052602060002090600302016000909192909190915060008201518160000155602082015181600101556040820151816002015550505050505050565b601e6020528060005260406000206000915054906101000a900460ff1681565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6012602052816000526040600020818154811015156122fd57fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60019054906101000a900460ff1681565b60085481565b60075481565b601d6020528060005260406000206000915054906101000a900460ff1681565b600581565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ce57600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561244857600080fd5b60085460020260065401821115151561246057600080fd5b61246982612fbe565b9050826017600083815260200190815260200160002081905550505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124e657600080fd5b6000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011151561253757600080fd5b6001601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003905083601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156125cc57fe5b90600052602060002090600402016001018190555082601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561262e57fe5b90600052602060002090600402016002018190555081601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561269057fe5b906000526020600020906004020160030160006101000a81548160ff021916908360ff1602179055505050505050565b6014602052816000526040600020818154811015156126db57fe5b9060005260206000209060020201600091509150508060000160009054906101000a900460ff16908060010154905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561276857600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6010602052816000526040600020818154811015156127c757fe5b9060005260206000209060040201600091509150508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561286057600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561290057600080fd5b61291581600a5461450690919063ffffffff16565b600a8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561297957600080fd5b8060068190555050565b600b60079054906101000a900461ffff1681565b600b60039054906101000a900461ffff1681565b600281565b601b6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a4b57600080fd5b600090505b601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015612b7f5742601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612ae757fe5b9060005260206000209060040201600201819055506001601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612b4a57fe5b906000526020600020906004020160030160006101000a81548160ff0219169083151502179055508080600101915050612a50565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600381565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600a5481565b600581565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c8357600080fd5b612c8c42612fbe565b91506000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115612de8576001601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500390506000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612d6f57fe5b9060005260206000209060030201600101819055506000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612dd257fe5b9060005260206000209060030201600201819055505b6000601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115612fb9576001601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490500390506000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612ec957fe5b9060005260206000209060040201600101819055506000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612f2c57fe5b9060005260206000209060040201600201819055506000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612f8f57fe5b906000526020600020906004020160030160006101000a81548160ff021916908360ff1602179055505b505050565b6000600854600654018211151515612fd557600080fd5b600161300b600854612ff26005548661450690919063ffffffff16565b811515612ffb57fe5b068461450690919063ffffffff16565b039050919050565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600b60029054906101000a900460ff1681565b600381565b601a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600f60009054906101000a900460ff1615156130ca57600080fd5b60065442111515156130db57600080fd5b6000601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561317b5783601e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15801561329657600080fd5b505af11580156132aa573d6000803e3d6000fd5b50505050601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060806040519081016040528042815260200187815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908315150217905550505050601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925061341385601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461459f90919063ffffffff16565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061346b85600a5461459f90919063ffffffff16565b600a819055507f11cb292a08eba5f64499fcedb93fd02a1af37c611dfdf9aa1012b3d408d7d59e33428787604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018215151515815260200194505050505060405180910390a1600090505b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015613af757600b60029054906101000a900460ff1660ff1681141561355e57613af7565b6001601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050141561367257600160186000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156135fb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550613741565b600083141561374057600160186000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156136cd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b5b6138098560196000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561379557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461459f90919063ffffffff16565b60196000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110151561385957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613941601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561391157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166145c0565b6139c233601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561399157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687611f69565b91506002811015613a4f57613a4e601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515613a1c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838361517a565b5b600b60029054906101000a900460ff1660ff16811015613aea57613ae9601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515613ab857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683615628565b5b80806001019150506134f5565b5050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613b5a57600080fd5b613b63816145c0565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613bc257600080fd5b613c1481601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461450690919063ffffffff16565b601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600f60009054906101000a900460ff1681565b600581565b60186020528060005260406000206000915090505481565b600b60009054906101000a900460ff1681565b601160205281600052604060002081815481101515613d0557fe5b9060005260206000209060030201600091509150508060000154908060010154908060020154905083565b60065481565b600080600080600f60009054906101000a900460ff161515613d5757600080fd5b6006544211151515613d6857600080fd5b6000601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515613db657600080fd5b60644233604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140192505050604051809103902060019004811515613e1e57fe5b069350613e368460075461459f90919063ffffffff16565b9250613e4d8460075461459f90919063ffffffff16565b600781905550600073ffffffffffffffffffffffffffffffffffffffff16601a600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613ec157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16601a600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613f3057600080fd5b33601a600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f29317bf7eb9941522faad78efabe2efda58f223f6b421c6e91762fb0484cbdad33600754604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600960008154809291906001019190505550601a600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000203390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506009601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050101561420d57601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600090505b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156143d7576009601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905010156143c557601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561433257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506143ca565b6143d7565b8080600101915050614212565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561443957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156144b057806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60095481565b6013602052816000526040600020818154811015156144d457fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082821115151561451757600080fd5b818303905092915050565b60008082840290506000841480614543575082848281151561454057fe5b04145b151561454e57600080fd5b8091505092915050565b60008060008311151561456a57600080fd5b828481151561457557fe5b049050828481151561458357fe5b06818402018414151561459557600080fd5b8091505092915050565b60008082840190508381101515156145b657600080fd5b8091505092915050565b600b60079054906101000a900461ffff1661ffff16601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156146645750600e54601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156146b65750600560ff16601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905010155b156148ed576003601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161415156148e8577fc7d5ff51d6870ddf5a0064f51d3b5ddc326806d4c4a84146226d42ea13e0bf3e81601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166003604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a16003601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280600360ff168152602001428152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548160ff021916908360ff160217905550602082015181600101555050505b615177565b600b60059054906101000a900461ffff1661ffff16601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156149915750600d54601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b80156149e35750600360ff16601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905010155b15614c1a576002601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141515614c15577fc7d5ff51d6870ddf5a0064f51d3b5ddc326806d4c4a84146226d42ea13e0bf3e81601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166002604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a16002601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280600260ff168152602001428152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548160ff021916908360ff160217905550602082015181600101555050505b615176565b600b60039054906101000a900461ffff1661ffff16601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015614cbe5750600c54601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015614d105750600260ff16601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905010155b15614f47576001601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141515614f42577fc7d5ff51d6870ddf5a0064f51d3b5ddc326806d4c4a84146226d42ea13e0bf3e81601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166001604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a16001601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280600160ff168152602001428152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548160ff021916908360ff160217905550602082015181600101555050505b615175565b6000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16141515615174577fc7d5ff51d6870ddf5a0064f51d3b5ddc326806d4c4a84146226d42ea13e0bf3e81601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166000604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a16000601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550601460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280600060ff168152602001428152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000160006101000a81548160ff021916908360ff160217905550602082015181600101555050505b5b5b5b50565b6000806000806000806000806000808a14156151a757600b60009054906101000a900460ff1698506151cd565b60018a14156151c757600b60019054906101000a900460ff1698506151cc565b61561a565b5b6008546151d942612fbe565b0197506000601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905014156152f557601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206060604051908101604052808a815260200160648c60ff168f0281151561528957fe5b04815260200160648c60ff168f028115156152a057fe5b0481525090806001815401808255809150509060018203906000526020600020906003020160009091929091909150600082015181600001556020820151816001015560408201518160020155505050615619565b6001601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039650601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110151561538957fe5b9060005260206000209060030201600001549550601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020878154811015156153e957fe5b9060005260206000209060030201600101549450601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208781548110151561544957fe5b906000526020600020906003020160020154935060085486890381151561546c57fe5b0492508460648a60ff168d0281151561548157fe5b040191508360648a60ff168d0281151561549757fe5b04868502010190508786101561555357601160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206060604051908101604052808a81526020018481526020018381525090806001815401808255809150509060018203906000526020600020906003020160009091929091909150600082015181600001556020820151816001015560408201518160020155505050615618565b81601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020888154811015156155a057fe5b90600052602060002090600302016001018190555080601160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208881548110151561560257fe5b9060005260206000209060030201600201819055505b5b5b505050505050505050505050565b6000615632615afd565b6000806000601d6000601c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1660ff16815260200190815260200160002060009054906101000a900460ff169450608060405190810160405280600081526020016000815260200160008152602001600060ff1681525093506008546156e342612fbe565b0192506000601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050141561582457828460000181815250508584602001818152505060648560ff16870281151561575657fe5b0484604001818152505084846060019060ff16908160ff1681525050601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020849080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360ff160217905550505050615af4565b6001601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050039150601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156158b857fe5b9060005260206000209060040201608060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820160009054906101000a900460ff1660ff1660ff168152505093506008548460000151840381151561592257fe5b0490506064846060015160ff16856020015183020281151561594057fe5b0484604001818152505060648560ff16870281151561595b57fe5b048460400181815101915081815250508584602001818151019150818152505084846060019060ff16908160ff16815250508284600001511015615a555782846000018181525050601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020849080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360ff160217905550505050615af3565b83601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515615aa257fe5b906000526020600020906004020160008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff021916908360ff1602179055509050505b5b50505050505050565b608060405190810160405280600081526020016000815260200160008152602001600060ff16815250905600a165627a7a72305820bad5330fcda8376edcc9008d84276d46757360ce065de422be58ecd1e4cc2c170029

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

0000000000000000000000000946e36c2887025c389ef85ea5f9150e0bed4d6900000000000000000000000068bf941e428bcd731d678799ba9da20e52244383000000000000000000000000000000000000000000000000000000005eb8250000000000000000000000000000000000000000000000000000000000618bec80

-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0x0946e36C2887025c389EF85Ea5f9150E0BEd4D69
Arg [1] : _receiver (address): 0x68bf941E428BcD731D678799bA9Da20E52244383
Arg [2] : _begin (uint256): 1589126400
Arg [3] : _end (uint256): 1636560000

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000946e36c2887025c389ef85ea5f9150e0bed4d69
Arg [1] : 00000000000000000000000068bf941e428bcd731d678799ba9da20e52244383
Arg [2] : 000000000000000000000000000000000000000000000000000000005eb82500
Arg [3] : 00000000000000000000000000000000000000000000000000000000618bec80


Deployed Bytecode Sourcemap

5295:16761:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7476:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7476:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6124:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6124:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;19557:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19557:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16380:768;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16380:768:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:36: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;5357:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5927:52:0;;;;;;;;;;;;;;;;;;;;;;;5398:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5398:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21141:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21141:81:0;;;;;;5984:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5984:53:0;;;;;;;;;;;;;;;;;;;;;;;18137:413;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18137:413:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18554:501;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18554:501:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5472:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5472:20:0;;;;;;;;;;;;;;;;;;;;;;;7312:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7312:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5788:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7105:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7105:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10771:1008;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10771:1008:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21691:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21691:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5870:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5870:52:0;;;;;;;;;;;;;;;;;;;;;;;7210:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7210:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7156:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7156:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17720:413;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17720:413:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7569:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7569:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21815:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21815:124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6943:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6943:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5682:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5682:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5547;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5547:29:0;;;;;;;;;;;;;;;;;;;;;;;5522:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5522:20:0;;;;;;;;;;;;;;;;;;;;;;;7523:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7523:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6084:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6084:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21307:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21307:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20768:274;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20768:274:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19059:494;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19059:494:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7049:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7049:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21048:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21048:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6813:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6813:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21226:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21226:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19839:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19839:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;21385:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21385:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;5828:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5828:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5748;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5748:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6165:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6165:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7422:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7422:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4855:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4855:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;17479:237;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17479:237:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6208:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6208:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;21943:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21943:108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5614:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5614:27:0;;;;;;;;;;;;;;;;;;;;;;;6251:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6251:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20047:620;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20047:620:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17278:193;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17278:193:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21460:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21460:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5716:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5716:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6044:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6044:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7371:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7371:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9375:1392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19955:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19955:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19675:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19675:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21574:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21574:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6332:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6332:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6298:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6298:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7261:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7261:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5648:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5648:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;6874:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6874:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5497:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5497:18:0;;;;;;;;;;;;;;;;;;;;;;;8261:956;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8261:956:0;;;;;;;;;;;;;;;;;;;;;;;;;;5041:154;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5041:154:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5581:28:0;;;;;;;;;;;;;;;;;;;;;;;6996:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6996:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7476:42;;;;;;;;;;;;;;;;;;;;;;:::o;6124:36::-;6158:2;6124:36;:::o;19557:114::-;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;19641:24;19663:1;19641:10;:17;19652:5;19641:17;;;;;;;;;;;;;;;;:21;;:24;;;;:::i;:::-;19621:10;:17;19632:5;19621:17;;;;;;;;;;;;;;;:44;;;;19557:114;:::o;16380:768::-;16460:7;16509:22;16543:6;16498:3;;16484:10;:17;;16476:26;;;;;;;;16552:1;16543:10;;16538:577;16557:11;:18;16569:5;16557:18;;;;;;;;;;;;;;;:25;;;;16555:1;:27;16538:577;;;16601:11;:18;16613:5;16601:18;;;;;;;;;;;;;;;16620:1;16601:21;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;16597:511;;;16760:11;:18;16772:5;16760:18;;;;;;;;;;;;;;;16779:1;16760:21;;;;;;;;;;;;;;;;;;;;:27;;;16746:10;:41;;16745:88;;;;;16807:11;:18;16819:5;16807:18;;;;;;;;;;;;;;;16826:1;16807:21;;;;;;;;;;;;;;;;;;;;:25;;;16793:10;:39;;16745:88;16741:166;;;16867:11;:18;16879:5;16867:18;;;;;;;;;;;;;;;16886:1;16867:21;;;;;;;;;;;;;;;;;;;;:28;;;16849:46;;;;16741:166;16597:511;;;16949:11;:18;16961:5;16949:18;;;;;;;;;;;;;;;16968:1;16949:21;;;;;;;;;;;;;;;;;;;;:27;;;16935:10;:41;;16931:168;;;17059:11;:18;17071:5;17059:18;;;;;;;;;;;;;;;17078:1;17059:21;;;;;;;;;;;;;;;;;;;;:28;;;17041:46;;;;16931:168;16597:511;16584:3;;;;;;;16538:577;;;17128:14;17121:21;;16380:768;;;;;;:::o;5357:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5927:52::-;;;;:::o;5398:14::-;;;;;;;;;;;;;:::o;21141:81::-;5006:5;;;;;;;;;;;4992:19;;:10;:19;;;4984:28;;;;;;;;21180:8;;;;;;;;;;;:13;;:36;21202:4;21194:21;;;21180:36;;;;;;;;;;;;;;;;;;;;;;;;21141:81::o;5984:53::-;;;;:::o;18137:413::-;18351:12;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;18342:1;18310:15;:22;18326:5;18310:22;;;;;;;;;;;;;;;:29;;;;:33;18302:42;;;;;;;;18397:1;18366:15;:22;18382:5;18366:22;;;;;;;;;;;;;;;:29;;;;:32;18351:47;;18454:18;18405:15;:22;18421:5;18405:22;;;;;;;;;;;;;;;18428:4;18405:28;;;;;;;;;;;;;;;;;;;;:46;;:67;;;;18527:17;18479:15;:22;18495:5;18479:22;;;;;;;;;;;;;;;18502:4;18479:28;;;;;;;;;;;;;;;;;;;;:45;;:65;;;;18137:413;;;;:::o;18554:501::-;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;18802:13;:20;18816:5;18802:20;;;;;;;;;;;;;;;18828:220;;;;;;;;;18841:17;18828:220;;;;18907:16;18828:220;;;;18972:15;18828:220;;;;19036:11;18828:220;;;;;18802:247;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;18802:247:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18554:501;;;;;:::o;5472:20::-;;;;:::o;7312:54::-;;;;;;;;;;;;;;;;;:::o;5788:35::-;;;;;;;;;;;;;:::o;7105:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10771:1008::-;10868:7;10921:25;10986:26;11053:17;11226:16;11293:15;11364:27;10949:30;10966:8;10975:3;10949:16;:30::i;:::-;10921:58;;11015:31;11032:9;11042:3;11015:16;:31::i;:::-;10986:60;;11104:18;11083:17;:39;;11079:655;;;11144:7;11132:19;;11079:655;;;11209:1;11177:11;:22;11189:9;11177:22;;;;;;;;;;;;;;;:29;;;;:33;11174:553;;;11277:1;11245:11;:22;11257:9;11245:22;;;;;;;;;;;;;;;:29;;;;:33;11226:52;;11311:11;:22;11323:9;11311:22;;;;;;;;;;;;;;;11334:8;11311:32;;;;;;;;;;;;;;;;;;;;:38;;;11293:56;;11394:35;11411:9;11421:7;11394:16;:35::i;:::-;11364:65;;11468:19;11448:17;:39;11444:214;;;11623:19;11603:17;:39;11591:51;;11444:214;11174:553;;;11698:17;11686:29;;11174:553;11079:655;11747:26;11768:4;11747:16;11761:1;11747:9;:13;;:16;;;;:::i;:::-;:20;;:26;;;;:::i;:::-;11740:33;;10771:1008;;;;;;;;;;;:::o;21691:120::-;21755:7;21777:13;:20;21791:5;21777:20;;;;;;;;;;;;;;;:27;;;;21770:35;;21691:120;;;:::o;5870:52::-;;;;:::o;7210:46::-;;;;;;;;;;;;;;;;;:::o;7156:47::-;;;;;;;;;;;;;;;;;:::o;17720:413::-;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;17932:15;:22;17948:5;17932:22;;;;;;;;;;;;;;;17960:166;;;;;;;;;17975:17;17960:166;;;;18041:18;17960:166;;;;18108:17;17960:166;;;17932:195;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;17932:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17720:413;;;;:::o;7569:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;21815:124::-;21881:7;21903:15;:22;21919:5;21903:22;;;;;;;;;;;;;;;:29;;;;21896:37;;21815:124;;;:::o;6943:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5682:29::-;;;;;;;;;;;;;:::o;5547:::-;;;;:::o;5522:20::-;;;;:::o;7523:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;6084:35::-;6118:1;6084:35;:::o;21307:74::-;5006:5;;;;;;;;;;;4992:19;;:10;:19;;;4984:28;;;;;;;;21369:6;21361:5;;:14;;;;;;;;;;;;;;;;;;21307:74;:::o;20768:274::-;20929:26;5006:5;;;;;;;;;;;4992:19;;:10;:19;;;4984:28;;;;;;;;20915:5;;20913:1;:7;20907:3;;:13;20892:10;:29;;20884:38;;;;;;;;20958:33;20980:10;20958:21;:33::i;:::-;20929:62;;21031:5;20998:10;:30;21009:18;20998:30;;;;;;;;;;;:38;;;;20768:274;;;:::o;19059:494::-;19307:12;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;19298:1;19268:13;:20;19282:5;19268:20;;;;;;;;;;;;;;;:27;;;;:31;19260:40;;;;;;;;19352:1;19322:13;:20;19336:5;19322:20;;;;;;;;;;;;;;;:27;;;;:31;19307:46;;19405:16;19360:13;:20;19374:5;19360:20;;;;;;;;;;;;;;;19381:4;19360:26;;;;;;;;;;;;;;;;;;;;:42;;:61;;;;19472:15;19428:13;:20;19442:5;19428:20;;;;;;;;;;;;;;;19449:4;19428:26;;;;;;;;;;;;;;;;;;;;:41;;:59;;;;19534:11;19494:13;:20;19508:5;19494:20;;;;;;;;;;;;;;;19515:4;19494:26;;;;;;;;;;;;;;;;;;;;:37;;;:51;;;;;;;;;;;;;;;;;;19059:494;;;;;:::o;7049:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21048:89::-;5006:5;;;;;;;;;;;4992:19;;:10;:19;;;4984:28;;;;;;;;21122:9;21111:8;;:20;;;;;;;;;;;;;;;;;;21048:89;:::o;6813:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21226:77::-;5006:5;;;;;;;;;;;4992:19;;:10;:19;;;4984:28;;;;;;;;21292:5;21285:4;;:12;;;;;;;;;;;;;;;;;;21226:77;:::o;19839:112::-;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;19920:25;19937:7;19920:12;;:16;;:25;;;;:::i;:::-;19907:12;:38;;;;19839:112;:::o;21385:69::-;5006:5;;;;;;;;;;;4992:19;;:10;:19;;;4984:28;;;;;;;;21444:4;21438:3;:10;;;;21385:69;:::o;5828:35::-;;;;;;;;;;;;;:::o;5748:::-;;;;;;;;;;;;;:::o;6165:38::-;6202:1;6165:38;:::o;7422:47::-;;;;;;;;;;;;;;;;;:::o;4855:20::-;;;;;;;;;;;;;:::o;17479:237::-;17544:6;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;17552:1;17544:9;;17539:143;17556:11;:18;17568:5;17556:18;;;;;;;;;;;;;;;:25;;;;17554:1;:27;17539:143;;;17623:3;17595:11;:18;17607:5;17595:18;;;;;;;;;;;;;;;17614:1;17595:21;;;;;;;;;;;;;;;;;;;;:25;;:31;;;;17670:4;17635:11;:18;17647:5;17635:18;;;;;;;;;;;;;;;17654:1;17635:21;;;;;;;;;;;;;;;;;;;;:32;;;:39;;;;;;;;;;;;;;;;;;17582:3;;;;;;;17539:143;;;17709:1;17688:11;:18;17700:5;17688:18;;;;;;;;;;;;;;;:22;;;;17479:237;;:::o;6208:38::-;6245:1;6208:38;:::o;21943:108::-;22000:7;22020:10;:17;22031:5;22020:17;;;;;;;;;;;;;;;:24;;;;22013:32;;21943:108;;;:::o;5614:27::-;;;;:::o;6251:38::-;6288:1;6251:38;:::o;20047:620::-;20111:26;20173:12;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;20140:26;20162:3;20140:21;:26::i;:::-;20111:55;;20228:1;20196:15;:22;20212:5;20196:22;;;;;;;;;;;;;;;:29;;;;:33;20192:212;;;20278:1;20246:15;:22;20262:5;20246:22;;;;;;;;;;;;;;;:29;;;;:33;20239:40;;20337:1;20288:15;:22;20304:5;20288:22;;;;;;;;;;;;;;;20311:4;20288:28;;;;;;;;;;;;;;;;;;;;:46;;:50;;;;20395:1;20347:15;:22;20363:5;20347:22;;;;;;;;;;;;;;;20370:4;20347:28;;;;;;;;;;;;;;;;;;;;:45;;:49;;;;20192:212;20446:1;20414:15;:22;20430:5;20414:22;;;;;;;;;;;;;;;:29;;;;:33;20410:252;;;20494:1;20464:13;:20;20478:5;20464:20;;;;;;;;;;;;;;;:27;;;;:31;20457:38;;20549:1;20504:13;:20;20518:5;20504:20;;;;;;;;;;;;;;;20525:4;20504:26;;;;;;;;;;;;;;;;;;;;:42;;:46;;;;20603:1;20559:13;:20;20573:5;20559:20;;;;;;;;;;;;;;;20580:4;20559:26;;;;;;;;;;;;;;;;;;;;:41;;:45;;;;20653:1;20613:13;:20;20627:5;20613:20;;;;;;;;;;;;;;;20634:4;20613:26;;;;;;;;;;;;;;;;;;;;:37;;;:41;;;;;;;;;;;;;;;;;;20410:252;20047:620;;;:::o;17278:193::-;17349:7;17393:5;;17387:3;;:11;17372:10;:27;;17364:36;;;;;;;;17463:1;17415:45;17454:5;;17430:21;17445:5;;17430:10;:14;;:21;;;;:::i;:::-;:29;;;;;;;;17415:10;:14;;:45;;;;:::i;:::-;:49;17407:58;;17278:193;;;:::o;21460:110::-;21515:7;21538:11;:18;21550:5;21538:18;;;;;;;;;;;;;;;:25;;;;21531:33;;21460:110;;;:::o;5716:25::-;;;;;;;;;;;;;:::o;6044:35::-;6078:1;6044:35;:::o;7371:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;9375:1392::-;9680:18;9903:15;9953:6;9454:5;;;;;;;;;;;9446:14;;;;;;;;9482:3;;9475;:10;;9467:19;;;;;;;;9524:1;9497:11;:23;9509:10;9497:23;;;;;;;;;;;;;;;;:28;9493:70;;;9552:11;9527:10;:22;9538:10;9527:22;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9493:70;9570:3;;;;;;;;;;;:16;;;9587:10;9598:4;;;;;;;;;;;9603:7;9570:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9570:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9570:41:0;;;;9618:11;:23;9630:10;9618:23;;;;;;;;;;;;;;;9647:25;;;;;;;;;9652:3;9647:25;;;;9656:7;9647:25;;;;9664:1;9647:25;;;;9666:5;9647:25;;;;;9618:55;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9618:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9701:11;:23;9713:10;9701:23;;;;;;;;;;;;;;;;9680:44;;9757:36;9785:7;9757:11;:23;9769:10;9757:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;9731:11;:23;9743:10;9731:23;;;;;;;;;;;;;;;:62;;;;9815:25;9832:7;9815:12;;:16;;:25;;;;:::i;:::-;9800:12;:40;;;;9852:42;9859:10;9870:3;9874:7;9882:11;9852:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9962:1;9953:10;;9948:814;9967:10;:22;9978:10;9967:22;;;;;;;;;;;;;;;:29;;;;9965:1;:31;9948:814;;;10020:8;;;;;;;;;;;10015:13;;:1;:13;10011:24;;;10030:5;;10011:24;10082:1;10048:11;:23;10060:10;10048:23;;;;;;;;;;;;;;;:30;;;;:35;10044:223;;;10168:1;10127:10;:37;10138:10;:22;10149:10;10138:22;;;;;;;;;;;;;;;10161:1;10138:25;;;;;;;;;;;;;;;;;;;;;;;;;;;10127:37;;;;;;;;;;;;;;;;:42;;;;;;;;;;;10044:223;;;10212:1;10198:10;:15;10194:63;;;10256:1;10215:10;:37;10226:10;:22;10237:10;10226:22;;;;;;;;;;;;;;;10249:1;10226:25;;;;;;;;;;;;;;;;;;;;;;;;;;;10215:37;;;;;;;;;;;;;;;;:42;;;;;;;;;;;10194:63;10044:223;10368:58;10418:7;10368:18;:45;10387:10;:22;10398:10;10387:22;;;;;;;;;;;;;;;10410:1;10387:25;;;;;;;;;;;;;;;;;;;;;;;;;;;10368:45;;;;;;;;;;;;;;;;:49;;:58;;;;:::i;:::-;10320:18;:45;10339:10;:22;10350:10;10339:22;;;;;;;;;;;;;;;10362:1;10339:25;;;;;;;;;;;;;;;;;;;;;;;;;;;10320:45;;;;;;;;;;;;;;;:106;;;;10435:44;10453:10;:22;10464:10;10453:22;;;;;;;;;;;;;;;10476:1;10453:25;;;;;;;;;;;;;;;;;;;;;;;;;;;10435:17;:44::i;:::-;10500:61;10516:10;10527;:22;10538:10;10527:22;;;;;;;;;;;;;;;10550:1;10527:25;;;;;;;;;;;;;;;;;;;;;;;;;;;10553:7;10500:15;:61::i;:::-;10490:71;;10580:1;10578;:3;10574:83;;;10593:54;10611:10;:22;10622:10;10611:22;;;;;;;;;;;;;;;10634:1;10611:25;;;;;;;;;;;;;;;;;;;;;;;;;;;10637:7;10645:1;10593:17;:54::i;:::-;10574:83;10675:8;;;;;;;;;;;10671:12;;:1;:12;10667:88;;;10695:50;10711:10;:22;10722:10;10711:22;;;;;;;;;;;;;;;10734:1;10711:25;;;;;;;;;;;;;;;;;;;;;;;;;;;10737:7;10695:15;:50::i;:::-;10667:88;9998:3;;;;;;;9948:814;;;9375:1392;;;;;:::o;19955:88::-;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;20013:24;20031:5;20013:17;:24::i;:::-;19955:88;:::o;19675:160::-;7896:4;;;;;;;;;;;7882:18;;:10;:18;;;7874:27;;;;;;;;19791:38;19821:7;19791:18;:25;19810:5;19791:25;;;;;;;;;;;;;;;;:29;;:38;;;;:::i;:::-;19763:18;:25;19782:5;19763:25;;;;;;;;;;;;;;;:66;;;;19675:160;;:::o;21574:113::-;21635:7;21657:10;:17;21668:5;21657:17;;;;;;;;;;;;;;;:24;;;;21650:31;;21574:113;;;:::o;6332:24::-;;;;;;;;;;;;;:::o;6298:29::-;6326:1;6298:29;:::o;7261:46::-;;;;;;;;;;;;;;;;;:::o;5648:29::-;;;;;;;;;;;;;:::o;6874:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5497:18::-;;;;:::o;8261:956::-;8406:14;8471:21;8814:14;9005:6;8323:5;;;;;;;;;;;8315:14;;;;;;;;8351:3;;8344;:10;;8336:19;;;;;;;;8397:1;8370:11;:23;8382:10;8370:23;;;;;;;;;;;;;;;;:28;8362:37;;;;;;;;8461:3;8441;8446:10;8431:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8423:35;;;:41;;;;;;;;8406:58;;8495:17;8505:6;8495:5;;:9;;:17;;;;:::i;:::-;8471:41;;8527:17;8537:6;8527:5;;:9;;:17;;;;:::i;:::-;8519:5;:25;;;;8598:1;8561:39;;:10;:25;8572:13;8561:25;;;;;;;;;;;;;;;;;;;;;:39;;;8553:48;;;;;;;;8652:1;8616:38;;:10;:24;8627:12;8616:24;;;;;;;;;;;;;;;;;;;;;:38;;;;8608:47;;;;;;;;8690:10;8662;:25;8673:13;8662:25;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;8733:13;8707:11;:23;8719:10;8707:23;;;;;;;;;;;;;;;:39;;;;8758:26;8767:10;8778:5;;8758:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;8791:13;;:16;;;;;;;;;;;;;8831:10;:24;8842:12;8831:24;;;;;;;;;;;;;;;;;;;;;8814:41;;8862:10;:18;8873:6;8862:18;;;;;;;;;;;;;;;8886:10;8862:35;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8862:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8940:1;8908:10;:22;8919:10;8908:22;;;;;;;;;;;;;;;:29;;;;:33;8904:90;;;8951:10;:22;8962:10;8951:22;;;;;;;;;;;;;;;8979:6;8951:35;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8951:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8904:90;9014:1;9005:10;;9000:210;9022:10;:18;9033:6;9022:18;;;;;;;;;;;;;;;:25;;;;9018:1;:29;9000:210;;;9098:1;9066:10;:22;9077:10;9066:22;;;;;;;;;;;;;;;:29;;;;:33;9062:139;;;9111:10;:22;9122:10;9111:22;;;;;;;;;;;;;;;9139:10;:18;9150:6;9139:18;;;;;;;;;;;;;;;9158:1;9139:21;;;;;;;;;;;;;;;;;;;;;;;;;;;9111:50;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9111:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9062:139;;;9186:5;;9062:139;9049:3;;;;;;;9000:210;;;8261:956;;;;;:::o;5041:154::-;5006:5;;;;;;;;;;;4992:19;;:10;:19;;;4984:28;;;;;;;;5138:1;5118:22;;:8;:22;;;;5114:73;;;5166:8;5158:5;;:16;;;;;;;;;;;;;;;;;;5114:73;5041:154;:::o;5581:28::-;;;;:::o;6996:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1841:108::-;1893:4;1920:1;1915;:6;;1907:15;;;;;;;;1941:1;1937;:5;1930:12;;1841:108;;;;:::o;1530:141::-;1583:4;1597:6;1610:1;1606;:5;1597:14;;1632:1;1627;:6;:20;;;;1646:1;1641;1637;:5;;;;;;;;:10;1627:20;1619:29;;;;;;;;1663:1;1656:8;;1530:141;;;;;:::o;1676:160::-;1728:4;1764:6;1754:1;1750;:5;1742:14;;;;;;;;1777:1;1773;:5;;;;;;;;1764:14;;1811:1;1807;:5;;;;;;;;1803:1;1799;:5;:13;1794:1;:18;1786:27;;;;;;;;1828:1;1821:8;;1676:160;;;;;:::o;1954:126::-;2006:4;2020:6;2033:1;2029;:5;2020:14;;2055:1;2050;:6;;2042:15;;;;;;;;2072:1;2065:8;;1954:126;;;;;:::o;14952:1301::-;15034:14;;;;;;;;;;;15013:35;;:10;:17;15024:5;15013:17;;;;;;;;;;;;;;;;:35;;15012:102;;;;;15098:15;;15069:18;:25;15088:5;15069:25;;;;;;;;;;;;;;;;:44;;15012:102;:159;;;;;6288:1;15133:38;;:10;:17;15144:5;15133:17;;;;;;;;;;;;;;;:24;;;;:38;;15012:159;15008:1240;;;15202:1;15185:8;:15;15194:5;15185:15;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;15181:168;;;15220:37;15233:5;15239:8;:15;15248:5;15239:15;;;;;;;;;;;;;;;;;;;;;;;;;15255:1;15220:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15286:1;15268:8;:15;15277:5;15268:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;15298:12;:19;15311:5;15298:19;;;;;;;;;;;;;;;15323:15;;;;;;;;;15332:1;15323:15;;;;;;15334:3;15323:15;;;15298:41;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;15298:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15181:168;15008:1240;;;15386:14;;;;;;;;;;;15365:35;;:10;:17;15376:5;15365:17;;;;;;;;;;;;;;;;:35;;15364:102;;;;;15450:15;;15421:18;:25;15440:5;15421:25;;;;;;;;;;;;;;;;:44;;15364:102;:159;;;;;6245:1;15485:38;;:10;:17;15496:5;15485:17;;;;;;;;;;;;;;;:24;;;;:38;;15364:159;15361:887;;;15554:1;15537:8;:15;15546:5;15537:15;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;15533:168;;;15572:37;15585:5;15591:8;:15;15600:5;15591:15;;;;;;;;;;;;;;;;;;;;;;;;;15607:1;15572:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15638:1;15620:8;:15;15629:5;15620:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;15650:12;:19;15663:5;15650:19;;;;;;;;;;;;;;;15675:15;;;;;;;;;15684:1;15675:15;;;;;;15686:3;15675:15;;;15650:41;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;15650:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15533:168;15361:887;;;15738:14;;;;;;;;;;;15717:35;;:10;:17;15728:5;15717:17;;;;;;;;;;;;;;;;:35;;15716:102;;;;;15802:15;;15773:18;:25;15792:5;15773:25;;;;;;;;;;;;;;;;:44;;15716:102;:159;;;;;6202:1;15837:38;;:10;:17;15848:5;15837:17;;;;;;;;;;;;;;;:24;;;;:38;;15716:159;15713:535;;;15906:1;15889:8;:15;15898:5;15889:15;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;15885:168;;;15924:37;15937:5;15943:8;:15;15952:5;15943:15;;;;;;;;;;;;;;;;;;;;;;;;;15959:1;15924:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15990:1;15972:8;:15;15981:5;15972:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;16002:12;:19;16015:5;16002:19;;;;;;;;;;;;;;;16027:15;;;;;;;;;16036:1;16027:15;;;;;;16038:3;16027:15;;;16002:41;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;16002:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15885:168;15713:535;;;16094:1;16077:8;:15;16086:5;16077:15;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;16073:168;;;16112:37;16125:5;16131:8;:15;16140:5;16131:15;;;;;;;;;;;;;;;;;;;;;;;;;16147:1;16112:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16178:1;16160:8;:15;16169:5;16160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;16190:12;:19;16203:5;16190:19;;;;;;;;;;;;;;;16215:15;;;;;;;;;16224:1;16215:15;;;;;;16226:3;16215:15;;;16190:41;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;16190:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16073:168;15713:535;15361:887;15008:1240;14952:1301;:::o;13097:1739::-;13191:16;13362:26;13718:12;13779:25;13864:26;13951:31;14044:19;14123:25;14209:30;13228:1;13218:6;:11;13214:142;;;13252:10;;;;;;;;;;;13239:23;;13214:142;;;13287:1;13278:6;:10;13275:81;;;13311:10;;;;;;;;;;;13298:23;;13275:81;;;13342:7;;13275:81;13214:142;13420:5;;13391:26;13413:3;13391:21;:26::i;:::-;:34;13362:63;;13472:1;13436:15;:25;13452:8;13436:25;;;;;;;;;;;;;;;:32;;;;:37;13432:1399;;;13483:15;:25;13499:8;13483:25;;;;;;;;;;;;;;;13514:182;;;;;;;;;13529:18;13514:182;;;;13618:3;13607:10;13594:23;;:10;:23;:27;;;;;;;;13514:182;;;;13692:3;13681:10;13668:23;;:10;:23;:27;;;;;;;;13514:182;;;13483:214;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;13483:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13432:1399;;;13767:1;13733:15;:25;13749:8;13733:25;;;;;;;;;;;;;;;:32;;;;:35;13718:50;;13807:15;:25;13823:8;13807:25;;;;;;;;;;;;;;;13833:4;13807:31;;;;;;;;;;;;;;;;;;;;:48;;;13779:76;;13893:15;:25;13909:8;13893:25;;;;;;;;;;;;;;;13919:4;13893:31;;;;;;;;;;;;;;;;;;;;:49;;;13864:78;;13985:15;:25;14001:8;13985:25;;;;;;;;;;;;;;;14011:4;13985:31;;;;;;;;;;;;;;;;;;;;:48;;;13951:82;;14109:5;;14088:17;14067:18;:38;14066:48;;;;;;;;14044:70;;14182:18;14176:3;14163:10;14151:22;;:10;:22;:28;;;;;;;;:49;14123:77;;14310:23;14304:3;14292:10;14279:23;;:10;:23;:28;;;;;;;;14257:18;14243:11;:32;14242:65;:91;14209:124;;14401:18;14381:17;:38;14378:444;;;14431:15;:25;14447:8;14431:25;;;;;;;;;;;;;;;14462:171;;;;;;;;;14477:18;14462:171;;;;14544:17;14462:171;;;;14610:22;14462:171;;;14431:203;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;14431:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14378:444;;;14711:17;14659:15;:25;14675:8;14659:25;;;;;;;;;;;;;;;14685:4;14659:31;;;;;;;;;;;;;;;;;;;;:49;;:69;;;;14790:22;14739:15;:25;14755:8;14739:25;;;;;;;;;;;;;;;14765:4;14739:31;;;;;;;;;;;;;;;;;;;;:48;;:73;;;;14378:444;13432:1399;13097:1739;;;;;;;;;;;;;:::o;11783:1310::-;11860:13;11912:28;;:::i;:::-;11970:26;12350:12;12458:19;11876:9;:29;11886:8;:18;11895:8;11886:18;;;;;;;;;;;;;;;;;;;;;;;;;11876:29;;;;;;;;;;;;;;;;;;;;;;;;;11860:45;;11942:21;;;;;;;;;11955:1;11942:21;;;;11957:1;11942:21;;;;11959:1;11942:21;;;;11961:1;11942:21;;;;;11912:51;;12028:5;;11998:26;12020:3;11998:21;:26::i;:::-;:35;11970:63;;12080:1;12046:13;:23;12060:8;12046:23;;;;;;;;;;;;;;;:30;;;;:35;12042:1046;;;12119:18;12091:8;:25;;:46;;;;;12173:10;12146:8;:24;;:37;;;;;12241:3;12231:7;12218:20;;:10;:20;:26;;;;;;;;12192:8;:23;;:52;;;;;12275:7;12253:8;:19;;:29;;;;;;;;;;;12291:13;:23;12305:8;12291:23;;;;;;;;;;;;;;;12320:8;12291:38;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12291:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12042:1046;;;12397:1;12365:13;:23;12379:8;12365:23;;;;;;;;;;;;;;;:30;;;;:33;12350:48;;12418:13;:23;12432:8;12418:23;;;;;;;;;;;;;;;12442:4;12418:29;;;;;;;;;;;;;;;;;;;;12407:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12531:5;;12502:8;:25;;;12481:18;:46;12480:56;;;;;;;;12458:78;;12634:3;12614:8;:19;;;12573:60;;12587:8;:24;;;12573:11;:38;:60;:64;;;;;;;;12547:8;:23;;:90;;;;;12719:3;12709:7;12696:20;;:10;:20;:26;;;;;;;;12669:8;:23;;:53;;;;;;;;;;;12759:10;12731:8;:24;;:38;;;;;;;;;;;12800:7;12778:8;:19;;:29;;;;;;;;;;;12883:18;12855:8;:25;;;:46;12852:229;;;12941:18;12913:8;:25;;:46;;;;;12970:13;:23;12984:8;12970:23;;;;;;;;;;;;;;;12999:8;12970:38;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12970:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12852:229;;;13063:8;13033:13;:23;13047:8;13033:23;;;;;;;;;;;;;;;13057:4;13033:29;;;;;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12852:229;12042:1046;11783:1310;;;;;;;:::o;5295:16761::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://bad5330fcda8376edcc9008d84276d46757360ce065de422be58ecd1e4cc2c17

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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