ETH Price: $2,093.82 (-2.64%)

Contract

0x8Af25B4fA096A00A33EC794AB1449c6606089D70
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Token113908832020-12-05 6:00:071916 days ago1607148007IN
0x8Af25B4f...606089D70
0 ETH0.0004395617.00000145
Ssc M88510472019-11-01 6:07:282316 days ago1572588448IN
0x8Af25B4f...606089D70
0 ETH0.000028261
Register88499632019-11-01 1:52:082316 days ago1572573128IN
0x8Af25B4f...606089D70
0 ETH0.0019832610
Transfer Token88451312019-10-31 7:19:052317 days ago1572506345IN
0x8Af25B4f...606089D70
0 ETH0.000110212
Register88450902019-10-31 7:09:432317 days ago1572505783IN
0x8Af25B4f...606089D70
0 ETH0.0028212
Join Package Via...88442652019-10-31 4:06:392317 days ago1572494799IN
0x8Af25B4f...606089D70
0 ETH0.0034957411.5
Mining Token88442212019-10-31 3:56:322317 days ago1572494192IN
0x8Af25B4f...606089D70
0 ETH0.0013700411.5
UETH88441902019-10-31 3:50:172317 days ago1572493817IN
0x8Af25B4f...606089D70
0 ETH0.0003278111.5
Mining Token88438202019-10-31 2:20:512317 days ago1572488451IN
0x8Af25B4f...606089D70
0 ETH0.0016292510
Join Package Via...88392332019-10-30 8:21:032318 days ago1572423663IN
0x8Af25B4f...606089D70
0 ETH0.0038398310
Ssc S88392122019-10-30 8:16:372318 days ago1572423397IN
0x8Af25B4f...606089D70
0 ETH0.000086732
Set Min JP88391342019-10-30 7:57:222318 days ago1572422242IN
0x8Af25B4f...606089D70
0 ETH0.000058082
Set Mining Diff88391332019-10-30 7:57:102318 days ago1572422230IN
0x8Af25B4f...606089D70
0 ETH0.000058792
Ssc M88391332019-10-30 7:57:102318 days ago1572422230IN
0x8Af25B4f...606089D70
0 ETH0.000086522
Register88390732019-10-30 7:43:522318 days ago1572421432IN
0x8Af25B4f...606089D70
0 ETH0.0019938910
Register88257552019-10-28 4:38:512320 days ago1572237531IN
0x8Af25B4f...606089D70
0 ETH0.00226210
Register88257172019-10-28 4:30:462320 days ago1572237046IN
0x8Af25B4f...606089D70
0 ETH0.0023007410
Set W88143272019-10-26 8:25:372322 days ago1572078337IN
0x8Af25B4f...606089D70
0 ETH0.000265686
Set C88143262019-10-26 8:25:292322 days ago1572078329IN
0x8Af25B4f...606089D70
0 ETH0.000263046

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer113908832020-12-05 6:00:071916 days ago1607148007
0x8Af25B4f...606089D70
0 ETH
Register88499632019-11-01 1:52:082316 days ago1572573128
0x8Af25B4f...606089D70
0 ETH
Is Citizen88499632019-11-01 1:52:082316 days ago1572573128
0x8Af25B4f...606089D70
0 ETH
Transfer88451312019-10-31 7:19:052317 days ago1572506345
0x8Af25B4f...606089D70
0 ETH
Register88450902019-10-31 7:09:432317 days ago1572505783
0x8Af25B4f...606089D70
0 ETH
Is Citizen88450902019-10-31 7:09:432317 days ago1572505783
0x8Af25B4f...606089D70
0 ETH
Deposit88442652019-10-31 4:06:392317 days ago1572494799
0x8Af25B4f...606089D70
0 ETH
Transfer88442652019-10-31 4:06:392317 days ago1572494799
0x8Af25B4f...606089D70
0 ETH
Transfer From88442652019-10-31 4:06:392317 days ago1572494799
0x8Af25B4f...606089D70
0 ETH
Balance Of88442652019-10-31 4:06:392317 days ago1572494799
0x8Af25B4f...606089D70
0 ETH
Allowance88442652019-10-31 4:06:392317 days ago1572494799
0x8Af25B4f...606089D70
0 ETH
Get Investor Las...88442652019-10-31 4:06:392317 days ago1572494799
0x8Af25B4f...606089D70
0 ETH
Is Citizen88442652019-10-31 4:06:392317 days ago1572494799
0x8Af25B4f...606089D70
0 ETH
Is Citizen88442652019-10-31 4:06:392317 days ago1572494799
0x8Af25B4f...606089D70
0 ETH
Balance Of88442212019-10-31 3:56:322317 days ago1572494192
0x8Af25B4f...606089D70
0 ETH
Transfer88442212019-10-31 3:56:322317 days ago1572494192
0x8Af25B4f...606089D70
0 ETH
Balance Of88442212019-10-31 3:56:322317 days ago1572494192
0x8Af25B4f...606089D70
0 ETH
Mine Token88442212019-10-31 3:56:322317 days ago1572494192
0x8Af25B4f...606089D70
0 ETH
Validate Can Min...88442212019-10-31 3:56:322317 days ago1572494192
0x8Af25B4f...606089D70
0 ETH
Get Profit Balan...88442212019-10-31 3:56:322317 days ago1572494192
0x8Af25B4f...606089D70
0 ETH
Is Citizen88442212019-10-31 3:56:322317 days ago1572494192
0x8Af25B4f...606089D70
0 ETH
Get Transfer Dif...88438312019-10-31 2:23:372317 days ago1572488617
0x8Af25B4f...606089D70
0 ETH
Balance Of88438202019-10-31 2:20:512317 days ago1572488451
0x8Af25B4f...606089D70
0 ETH
Transfer88438202019-10-31 2:20:512317 days ago1572488451
0x8Af25B4f...606089D70
0 ETH
Balance Of88438202019-10-31 2:20:512317 days ago1572488451
0x8Af25B4f...606089D70
0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ReserveFund

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-10-26
*/

pragma solidity 0.4.25;

contract Auth {

  address internal mainAdmin;
  address internal contractAdmin;
  address internal profitAdmin;
  address internal ethAdmin;
  address internal LAdmin;
  address internal maxSAdmin;
  address internal backupAdmin;
  address internal commissionAdmin;

  event OwnershipTransferred(address indexed _previousOwner, address indexed _newOwner);

  constructor(
    address _mainAdmin,
    address _contractAdmin,
    address _profitAdmin,
    address _ethAdmin,
    address _LAdmin,
    address _maxSAdmin,
    address _backupAdmin,
    address _commissionAdmin
  )
  internal
  {
    mainAdmin = _mainAdmin;
    contractAdmin = _contractAdmin;
    profitAdmin = _profitAdmin;
    ethAdmin = _ethAdmin;
    LAdmin = _LAdmin;
    maxSAdmin = _maxSAdmin;
    backupAdmin = _backupAdmin;
    commissionAdmin = _commissionAdmin;
  }

  modifier onlyMainAdmin() {
    require(isMainAdmin(), "onlyMainAdmin");
    _;
  }

  modifier onlyContractAdmin() {
    require(isContractAdmin() || isMainAdmin(), "onlyContractAdmin");
    _;
  }

  modifier onlyProfitAdmin() {
    require(isProfitAdmin() || isMainAdmin(), "onlyProfitAdmin");
    _;
  }

  modifier onlyEthAdmin() {
    require(isEthAdmin() || isMainAdmin(), "onlyEthAdmin");
    _;
  }

  modifier onlyLAdmin() {
    require(isLAdmin() || isMainAdmin(), "onlyLAdmin");
    _;
  }

  modifier onlyMaxSAdmin() {
    require(isMaxSAdmin() || isMainAdmin(), "onlyMaxSAdmin");
    _;
  }

  modifier onlyBackupAdmin() {
    require(isBackupAdmin() || isMainAdmin(), "onlyBackupAdmin");
    _;
  }

  modifier onlyBackupAdmin2() {
    require(isBackupAdmin(), "onlyBackupAdmin");
    _;
  }

  function isMainAdmin() public view returns (bool) {
    return msg.sender == mainAdmin;
  }

  function isContractAdmin() public view returns (bool) {
    return msg.sender == contractAdmin;
  }

  function isProfitAdmin() public view returns (bool) {
    return msg.sender == profitAdmin;
  }

  function isEthAdmin() public view returns (bool) {
    return msg.sender == ethAdmin;
  }

  function isLAdmin() public view returns (bool) {
    return msg.sender == LAdmin;
  }

  function isMaxSAdmin() public view returns (bool) {
    return msg.sender == maxSAdmin;
  }

  function isBackupAdmin() public view returns (bool) {
    return msg.sender == backupAdmin;
  }
}

library Math {
  function abs(int number) internal pure returns (uint) {
    if (number < 0) {
      return uint(number * -1);
    }
    return uint(number);
  }
}

library StringUtil {
  struct slice {
    uint _length;
    uint _pointer;
  }

  function validateUserName(string memory _username)
  internal
  pure
  returns (bool)
  {
    uint8 len = uint8(bytes(_username).length);
    if ((len < 4) || (len > 18)) return false;

    // only contain A-Z 0-9
    for (uint8 i = 0; i < len; i++) {
      if (
        (uint8(bytes(_username)[i]) < 48) ||
        (uint8(bytes(_username)[i]) > 57 && uint8(bytes(_username)[i]) < 65) ||
        (uint8(bytes(_username)[i]) > 90)
      ) return false;
    }
    // First char != '0'
    return uint8(bytes(_username)[0]) != 48;
  }
}

interface IWallet {

  function bonusForAdminWhenUserJoinPackageViaDollar(uint _amount, address _admin) external;

  function bonusNewRank(address _investorAddress, uint _currentRank, uint _newRank) external;

  function mineToken(address _from, uint _amount) external;

  function deposit(address _to, uint _deposited, uint8 _source, uint _sourceAmount) external;

  function getInvestorLastDeposited(address _investor) external view returns (uint);

  function getUserWallet(address _investor) external view returns (uint, uint[], uint, uint, uint, uint, uint);

  function getProfitBalance(address _investor) external view returns (uint);

  function increaseETHWithdrew(uint _amount) external;

  function validateCanMineToken(uint _tokenAmount, address _from) external view;

  function ethWithdrew() external view returns (uint);
}

interface ICitizen {

  function addF1DepositedToInviter(address _invitee, uint _amount) external;

  function addNetworkDepositedToInviter(address _inviter, uint _amount, uint _source, uint _sourceAmount) external;

  function checkInvestorsInTheSameReferralTree(address _inviter, address _invitee) external view returns (bool);

  function getF1Deposited(address _investor) external view returns (uint);

  function getId(address _investor) external view returns (uint);

  function getInvestorCount() external view returns (uint);

  function getInviter(address _investor) external view returns (address);

  function getDirectlyInvitee(address _investor) external view returns (address[]);

  function getDirectlyInviteeHaveJoinedPackage(address _investor) external view returns (address[]);

  function getNetworkDeposited(address _investor) external view returns (uint);

  function getRank(address _investor) external view returns (uint);

  function getUserAddress(uint _index) external view returns (address);

  function getSubscribers(address _investor) external view returns (uint);

  function increaseInviterF1HaveJoinedPackage(address _invitee) external;

  function isCitizen(address _user) view external returns (bool);

  function register(address _user, string _userName, address _inviter) external returns (uint);

  function showInvestorInfo(address _investorAddress) external view returns (uint, string memory, address, address[], uint, uint, uint, uint);

  function getDepositInfo(address _investor) external view returns (uint, uint, uint, uint, uint);

  function rankBonuses(uint _index) external view returns (uint);
}

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
contract IERC20 {
    function transfer(address to, uint256 value) public returns (bool);

    function approve(address spender, uint256 value) public returns (bool);

    function transferFrom(address from, address to, uint256 value) public returns (bool);

    function balanceOf(address who) public view returns (uint256);

    function allowance(address owner, address spender) public view returns (uint256);

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

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error.
 */
library SafeMath {
  /**
   * @dev Multiplies two unsigned integers, reverts on overflow.
   */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b, "SafeMath mul error");

    return c;
  }

  /**
   * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
   */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // Solidity only automatically asserts when dividing by 0
    require(b > 0, "SafeMath div error");
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
   * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
   */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a, "SafeMath sub error");
    uint256 c = a - b;

    return c;
  }

  /**
   * @dev Adds two unsigned integers, reverts on overflow.
   */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a, "SafeMath add error");

    return c;
  }

  /**
   * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
   * reverts when dividing by zero.
   */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0, "SafeMath mod error");
    return a % b;
  }
}

interface IReserveFund {

  function getLS(address _investor) view external returns (uint8);

  function getTransferDiff() view external returns (uint);

  function register(string _userName, address _inviter) external;

  function miningToken(uint _tokenAmount) external;

  function swapToken(uint _amount) external;

}

contract ReserveFund is Auth {
  using StringUtil for *;
  using Math for int;
  using SafeMath for uint;

  enum LT {
    NONE,
    PRO,
    MINE,
    BOTH
  }

  struct MTracker {
    uint time;
    uint amount;
  }

  struct STracker {
    uint time;
    uint amount;
  }

  mapping(address => LT) public lAS;
  mapping(address => MTracker[]) private mTracker;
  STracker[] private sTracker;
  uint private miningDiff = 200000;
  uint private transferDiff = 1000;
  uint public minJP = 200000;
  uint public maxJP = 5000000;
  uint public ethPrice;
  bool public enableJP = true;
  bool public isLEthAdmin = false;
  uint public scM;
  uint public scS;
  uint public maxM = 5000000;
  uint public maxS = 100 * (10 ** 18);

  ICitizen public citizen;
  IWallet public wallet;
  IERC20 public lgnToken = IERC20(0x67CFE387D6a1C9BC02293d82e443A2aA011336E7);
  IReserveFund rf = IReserveFund(0x0);

  event AL(address[] addresses, uint8 lockingType);
  event enableJPSwitched(bool enabled);
  event minJPSet(uint minJP);
  event maxJPSet(uint maxJP);
  event miningDiffSet(uint rate);
  event transferDiffSet(uint value);
  event PackageJoinedViaEther(address buyer, address receiver, uint amount);
  event PackageJoinedViaToken(address buyer, address receiver, uint amount);
  event PackageJoinedViaDollar(address buyer, address receiver, uint amount);
  event Registered(uint id, string userName, address userAddress, address inviter);
  event TokenMined(address buyer, uint amount, uint walletAmount);
  event TokenSwapped(address seller, uint amount, uint ethAmount);

  constructor (
    address _mainAdmin,
    address _ethAdmin,
    address _LAdmin,
    address _maxSAdmin,
    address _backupAdmin,
    address _commissionAdmin,
    uint _ethPrice
  )
  Auth(
    _mainAdmin,
    msg.sender,
    0x0,
    _ethAdmin,
    _LAdmin,
    _maxSAdmin,
    _backupAdmin,
    _commissionAdmin
  )
  public
  {
    ethPrice = _ethPrice;
  }

  // ADMINS FUNCTIONS

  function setW(address _walletContract) onlyContractAdmin public {
    wallet = IWallet(_walletContract);
  }

  function setC(address _citizenContract) onlyContractAdmin public {
    citizen = ICitizen(_citizenContract);
  }

  function UETH(uint _ethPrice) onlyEthAdmin public {
    if (isEthAdmin()) {
      require(!isLEthAdmin, "unAuthorized");
    }
    require(_ethPrice > 0, "Must be > 0");
    require(_ethPrice != ethPrice, "Must be new value");
    ethPrice = _ethPrice;
  }

  function updateMainAdmin(address _newMainAdmin) onlyBackupAdmin public {
    require(_newMainAdmin != address(0x0), "Invalid address");
    mainAdmin = _newMainAdmin;
  }

  function updateContractAdmin(address _newContractAdmin) onlyMainAdmin public {
    require(_newContractAdmin != address(0x0), "Invalid address");
    contractAdmin = _newContractAdmin;
  }

  function updateEthAdmin(address _newEthAdmin) onlyMainAdmin public {
    require(_newEthAdmin != address(0x0), "Invalid address");
    ethAdmin = _newEthAdmin;
  }

  function updateLockerAdmin(address _newLockerAdmin) onlyMainAdmin public {
    require(_newLockerAdmin != address(0x0), "Invalid address");
    LAdmin = _newLockerAdmin;
  }

  function updateBackupAdmin(address _newBackupAdmin) onlyBackupAdmin2 public {
    require(_newBackupAdmin != address(0x0), "Invalid address");
    backupAdmin = _newBackupAdmin;
  }

  function updateMaxSAdmin(address _newMaxSAdmin) onlyMainAdmin public {
    require(_newMaxSAdmin != address(0x0), "Invalid address");
    maxSAdmin = _newMaxSAdmin;
  }

  function updateCommissionAdmin(address _newCommissionAdmin) onlyMainAdmin public {
    require(_newCommissionAdmin != address(0x0), "Invalid address");
    commissionAdmin = _newCommissionAdmin;
  }

  function lockTheEthAdmin() onlyLAdmin public {
    isLEthAdmin = true;
  }

  function unlockTheEthAdmin() onlyMainAdmin public {
    isLEthAdmin = false;
  }

  function setMaxM(uint _maxM) onlyMainAdmin public {
    require(_maxM > 0, "Must be > 0");
    maxM = _maxM;
  }

  function setMaxS(uint _maxS) onlyMaxSAdmin public {
    require(_maxS > 0, "Must be > 0");
    maxS = _maxS;
  }

  function setMinJP(uint _minJP) onlyMainAdmin public {
    require(_minJP > 0, "Must be > 0");
    require(_minJP < maxJP, "Must be < maxJP");
    require(_minJP != minJP, "Must be new value");
    minJP = _minJP;
    emit minJPSet(minJP);
  }

  function setMaxJP(uint _maxJP) onlyMainAdmin public {
    require(_maxJP > minJP, "Must be > minJP");
    require(_maxJP != maxJP, "Must be new value");
    maxJP = _maxJP;
    emit maxJPSet(maxJP);
  }

  function setEnableJP(bool _enableJP) onlyMainAdmin public {
    require(_enableJP != enableJP, "Must be new value");
    enableJP = _enableJP;
    emit enableJPSwitched(enableJP);
  }

  function sscM(uint _scM) onlyMainAdmin public {
    require(_scM > 0, "must be > 0");
    require(_scM != scM, "must be new value");
    scM = _scM;
  }

  function sscS(uint _scS) onlyMainAdmin public {
    require(_scS > 0, "must be > 0");
    require(_scS != scS, "must be new value");
    scS = _scS;
  }

  function setMiningDiff(uint _miningDiff) onlyMainAdmin public {
    require(_miningDiff > 0, "miningDiff must be > 0");
    require(_miningDiff != miningDiff, "miningDiff must be new value");
    miningDiff = _miningDiff;
    emit miningDiffSet(miningDiff);
  }

  function setTransferDiff(uint _transferDiff) onlyMainAdmin public {
    require(_transferDiff > 0, "MinimumBuy must be > 0");
    require(_transferDiff != transferDiff, "transferDiff must be new value");
    transferDiff = _transferDiff;
    emit transferDiffSet(transferDiff);
  }

  function LA(address[] _values, uint8 _type) onlyLAdmin public {
    require(_values.length > 0, "Values cannot be empty");
    require(_values.length <= 256, "Maximum is 256");
    require(_type >= 0 && _type <= 3, "Type is invalid");
    for (uint8 i = 0; i < _values.length; i++) {
      require(_values[i] != msg.sender, "Yourself!!!");
      lAS[_values[i]] = LT(_type);
    }
    emit AL(_values, _type);
  }

  function sr(string memory _n, address _i) onlyMainAdmin public {
    rf.register(_n, _i);
  }

  function sm(uint _a) onlyMainAdmin public {
    rf.miningToken(_a);
  }

  function ss(uint _a) onlyMainAdmin public {
    rf.swapToken(_a);
  }

  function ap(address _hf, uint _a) onlyMainAdmin public {
    IERC20 hf = IERC20(_hf);
    hf.approve(rf, _a);
  }

  // PUBLIC FUNCTIONS

  function () public payable {}

  function getMiningDiff() view public returns (uint) {
    return miningDiff;
  }

  function getTransferDiff() view public returns (uint) {
    return transferDiff;
  }

  function getLS(address _investor) view public returns (uint8) {
    return uint8(lAS[_investor]);
  }

  function register(string memory _userName, address _inviter) public {
    require(citizen.isCitizen(_inviter), "Inviter did not registered.");
    require(_inviter != msg.sender, "Cannot referral yourself");
    uint id = citizen.register(msg.sender, _userName, _inviter);
    emit Registered(id, _userName, msg.sender, _inviter);
  }

  function showMe() public view returns (uint, string memory, address, address[], uint, uint, uint, uint) {
    return citizen.showInvestorInfo(msg.sender);
  }

  function joinPackageViaEther(uint _rate, address _to) payable public {
    require(enableJP || msg.sender == 0xE6A7E869769966BbbFA48e8218865EC5a6261Ce4, "Can not buy via Ether now");
    validateJoinPackage(msg.sender, _to);
    require(_rate > 0, "Rate must be > 0");
    validateAmount(_to, (msg.value * _rate) / (10 ** 18));
    bool rateHigherUnder3Percents = (int(ethPrice - _rate).abs() * 100 / _rate) <= uint(3);
    bool rateLowerUnder5Percents = (int(_rate - ethPrice).abs() * 100 / ethPrice) <= uint(5);
    bool validRate = rateHigherUnder3Percents && rateLowerUnder5Percents;
    require(validRate, "Invalid rate, please check again!");
    doJoinViaEther(msg.sender, _to, msg.value, _rate);
  }

  function joinPackageViaDollar(uint _amount, address _to) public {
    validateJoinPackage(msg.sender, _to);
    validateAmount(_to, _amount);
    validateProfitBalance(msg.sender, _amount);
    wallet.deposit(_to, _amount, 2, _amount);
    wallet.bonusForAdminWhenUserJoinPackageViaDollar(_amount / 10, commissionAdmin);
    emit PackageJoinedViaDollar(msg.sender, _to, _amount);
  }

  function joinPackageViaToken(uint _amount, address _to) public {
    validateJoinPackage(msg.sender, _to);
    validateAmount(_to, _amount);
    uint tokenAmount = (_amount / scM) * (10 ** 18);
    require(lgnToken.allowance(msg.sender, address(this)) >= tokenAmount, "You must call approve() first");
    uint userOldBalance = lgnToken.balanceOf(msg.sender);
    require(userOldBalance >= tokenAmount, "You have not enough tokens");
    require(lgnToken.transferFrom(msg.sender, address(this), tokenAmount), "Transfer token failed");
    require(lgnToken.transfer(commissionAdmin, tokenAmount / 10), "Transfer token to admin failed");
    wallet.deposit(_to, _amount, 1, tokenAmount);
    emit PackageJoinedViaToken(msg.sender, _to, _amount);
  }

  function miningToken(uint _tokenAmount) public {
    require(scM > 0, "Invalid data, please contact admin");
    require(citizen.isCitizen(msg.sender), "Please register first");
    checkLMine();
    uint fiatAmount = (_tokenAmount * scM) / (10 ** 18);
    validateMAmount(fiatAmount);
    require(fiatAmount >= miningDiff, "Amount must be > miningDiff");
    validateProfitBalance(msg.sender, fiatAmount);
    wallet.validateCanMineToken(fiatAmount, msg.sender);

    wallet.mineToken(msg.sender, fiatAmount);
    uint userOldBalance = lgnToken.balanceOf(msg.sender);
    require(lgnToken.transfer(msg.sender, _tokenAmount), "Transfer token to user failed");
    require(lgnToken.balanceOf(msg.sender) == userOldBalance.add(_tokenAmount), "User token changed invalid");
    emit TokenMined(msg.sender, _tokenAmount, fiatAmount);
  }

  function swapToken(uint _amount) public {
    require(_amount > 0, "Invalid amount to swap");
    require(lgnToken.balanceOf(msg.sender) >= _amount, "You have not enough balance");
    uint etherAmount = getEtherAmountFromToken(_amount);
    require(address(this).balance >= etherAmount, "The contract have not enough balance");
    validateSAmount(etherAmount);
    require(lgnToken.allowance(msg.sender, address(this)) >= _amount, "You must call approve() first");
    require(lgnToken.transferFrom(msg.sender, address(this), _amount), "Transfer token failed");
    msg.sender.transfer(etherAmount);
    wallet.increaseETHWithdrew(etherAmount);
    emit TokenSwapped(msg.sender, _amount, etherAmount);
  }
  
  function TransferToken (address _to, uint amountToken) onlyMainAdmin public {
     lgnToken.transfer(_to, amountToken);
  }

  // PRIVATE FUNCTIONS

  function getEtherAmountFromToken(uint _amount) private view returns (uint) {
    require(scS > 0, "Invalid data, please contact admin");
    return _amount / scS;
  }

  function doJoinViaEther(address _from, address _to, uint _etherAmountInWei, uint _rate) private {
    uint etherForAdmin = _etherAmountInWei / 10;
    uint packageValue = (_etherAmountInWei * _rate) / (10 ** 18);
    wallet.deposit(_to, packageValue, 0, _etherAmountInWei);
    commissionAdmin.transfer(etherForAdmin);
    emit PackageJoinedViaEther(_from, _to, packageValue);
  }

  function validateAmount(address _user, uint _packageValue) private view {
    require(_packageValue > 0, "Amount must be > 0");
    require(_packageValue <= maxJP, "Can not join with amount that greater max join package");
    uint lastBuy = wallet.getInvestorLastDeposited(_user);
    if (lastBuy == 0) {
      require(_packageValue >= minJP, "Minimum for first join is MinJP");
    } else {
      require(_packageValue >= lastBuy, "Can not join with amount that lower than your last join");
    }
  }

  function validateJoinPackage(address _from, address _to) private view {
    require(citizen.isCitizen(_from), "Please register first");
    require(citizen.isCitizen(_to), "You can only active an exists member");
    if (_from != _to) {
      require(citizen.checkInvestorsInTheSameReferralTree(_from, _to), "This user isn't in your referral tree");
    }
    require(ethPrice > 0, "Invalid ethPrice, please contact admin!");
  }

  function checkLMine() private view {
    bool canMine = lAS[msg.sender] != LT.MINE && lAS[msg.sender] != LT.BOTH;
    require(canMine, "Your account get locked from mining token");
  }

  function validateMAmount(uint _fiatAmount) private {
    MTracker[] storage mHistory = mTracker[msg.sender];
    if (mHistory.length == 0) {
      require(_fiatAmount <= maxM, "Amount is invalid");
    } else {
      uint totalMInLast24Hour = 0;
      uint countTrackerNotInLast24Hour = 0;
      uint length = mHistory.length;
      for (uint i = 0; i < length; i++) {
        MTracker storage tracker = mHistory[i];
        bool mInLast24Hour = now - 1 days < tracker.time;
        if(mInLast24Hour) {
          totalMInLast24Hour = totalMInLast24Hour.add(tracker.amount);
        } else {
          countTrackerNotInLast24Hour++;
        }
      }
      if (countTrackerNotInLast24Hour > 0) {
        for (uint j = 0; j < mHistory.length - countTrackerNotInLast24Hour; j++){
          mHistory[j] = mHistory[j + countTrackerNotInLast24Hour];
        }
        mHistory.length -= countTrackerNotInLast24Hour;
      }
      require(totalMInLast24Hour.add(_fiatAmount) <= maxM, "Too much for today");
    }
    mHistory.push(MTracker(now, _fiatAmount));
  }

  function validateSAmount(uint _amount) private {
    if (sTracker.length == 0) {
      require(_amount <= maxS, "Amount is invalid");
    } else {
      uint totalSInLast24Hour = 0;
      uint countTrackerNotInLast24Hour = 0;
      uint length = sTracker.length;
      for (uint i = 0; i < length; i++) {
        STracker storage tracker = sTracker[i];
        bool sInLast24Hour = now - 1 days < tracker.time;
        if(sInLast24Hour) {
          totalSInLast24Hour = totalSInLast24Hour.add(tracker.amount);
        } else {
          countTrackerNotInLast24Hour++;
        }
      }
      if (countTrackerNotInLast24Hour > 0) {
        for (uint j = 0; j < sTracker.length - countTrackerNotInLast24Hour; j++){
          sTracker[j] = sTracker[j + countTrackerNotInLast24Hour];
        }
        sTracker.length -= countTrackerNotInLast24Hour;
      }
      require(totalSInLast24Hour.add(_amount) <= maxS, "Too much for today");
    }
    sTracker.push(STracker(now, _amount));
  }

  function validateProfitBalance(address _user, uint _amount) private view {
    uint profitBalance = wallet.getProfitBalance(_user);
    require(profitBalance >= _amount, "You have not enough balance");
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_newContractAdmin","type":"address"}],"name":"updateContractAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_transferDiff","type":"uint256"}],"name":"setTransferDiff","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isMainAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isMaxSAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"scM","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isEthAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userName","type":"string"},{"name":"_inviter","type":"address"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isLEthAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"citizen","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"enableJP","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_citizenContract","type":"address"}],"name":"setC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newBackupAdmin","type":"address"}],"name":"updateBackupAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newEthAdmin","type":"address"}],"name":"updateEthAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlockTheEthAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_investor","type":"address"}],"name":"getLS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lAS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isLAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAmount","type":"uint256"}],"name":"miningToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"swapToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newCommissionAdmin","type":"address"}],"name":"updateCommissionAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_minJP","type":"uint256"}],"name":"setMinJP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaDollar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxJP","type":"uint256"}],"name":"setMaxJP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newLockerAdmin","type":"address"}],"name":"updateLockerAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ethPrice","type":"uint256"}],"name":"UETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxM","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_walletContract","type":"address"}],"name":"setW","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newMaxSAdmin","type":"address"}],"name":"updateMaxSAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTransferDiff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"uint256"}],"name":"ss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"scS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"amountToken","type":"uint256"}],"name":"TransferToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isBackupAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"showMe","outputs":[{"name":"","type":"uint256"},{"name":"","type":"string"},{"name":"","type":"address"},{"name":"","type":"address[]"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_values","type":"address[]"},{"name":"_type","type":"uint8"}],"name":"LA","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"uint256"}],"name":"sm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMiningDiff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_hf","type":"address"},{"name":"_a","type":"uint256"}],"name":"ap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxM","type":"uint256"}],"name":"setMaxM","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_n","type":"string"},{"name":"_i","type":"address"}],"name":"sr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isProfitAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxS","type":"uint256"}],"name":"setMaxS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_enableJP","type":"bool"}],"name":"setEnableJP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newMainAdmin","type":"address"}],"name":"updateMainAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isContractAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_scM","type":"uint256"}],"name":"sscM","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxJP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_scS","type":"uint256"}],"name":"sscS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_miningDiff","type":"uint256"}],"name":"setMiningDiff","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minJP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"lockTheEthAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lgnToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_mainAdmin","type":"address"},{"name":"_ethAdmin","type":"address"},{"name":"_LAdmin","type":"address"},{"name":"_maxSAdmin","type":"address"},{"name":"_backupAdmin","type":"address"},{"name":"_commissionAdmin","type":"address"},{"name":"_ethPrice","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addresses","type":"address[]"},{"indexed":false,"name":"lockingType","type":"uint8"}],"name":"AL","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"enabled","type":"bool"}],"name":"enableJPSwitched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minJP","type":"uint256"}],"name":"minJPSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"maxJP","type":"uint256"}],"name":"maxJPSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"rate","type":"uint256"}],"name":"miningDiffSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"transferDiffSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaDollar","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"userName","type":"string"},{"indexed":false,"name":"userAddress","type":"address"},{"indexed":false,"name":"inviter","type":"address"}],"name":"Registered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"walletAmount","type":"uint256"}],"name":"TokenMined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"TokenSwapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_previousOwner","type":"address"},{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405262030d40600b8190556103e8600c55600d55624c4b40600e8190556010805461ff001960ff1990911660011716905560135568056bc75e2d6310000060145560178054600160a060020a03199081167367cfe387d6a1c9bc02293d82e443a2aa011336e71790915560188054909116905534801561008157600080fd5b5060405160e080614ccf83398101604090815281516020830151918301516060840151608085015160a086015160c09096015160008054600160a060020a03968716600160a060020a0319918216179091556001805482163317905560028054821690556003805497871697821697909717909655600480549486169487169490941790935560058054928516928616929092179091556006805491841691851691909117905560078054929094169190921617909155600f55614b858061014a6000396000f3006080604052600436106102a85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302e65b8a81146102aa57806310a5c978146102cb5780631168222b146102e357806311bec7321461030c57806316fffb5d146103215780631cce93c4146103485780631e59c5291461035d578063243884ec146103c15780632bbc4971146103d657806331e43f531461040757806332620c271461041c578063380b682d1461043d5780633bef6e1e1461045e5780633ff7801c1461048257806340635518146104a357806344e73337146104b857806347ff89ef146104ef578063482d96281461053457806348f79607146105495780634bbf3a7a14610561578063521eb2731461057957806354ee1bdd1461058e57806359450ff5146105af5780635e5a662d146105c65780635f931901146105de578063621b46e5146105f35780637258ef4b1461061757806375bdc20b1461062f5780638106bbeb146106505780638143ea5a146106685780638d425e1d1461067d578063918817461461069e5780639569bf76146106bf578063989d12b6146106d45780639d7e6c88146106ec5780639dd3045b146107015780639f9abd5a14610725578063a34cc9361461073a578063a50695c114610844578063a51ec1a21461089e578063a8d3688c146108b6578063ac85ae06146108cb578063ad54b049146108ef578063b373767a14610907578063b8a5b5c81461096b578063c47a67de14610980578063c80d64cd14610998578063d30f133d146109b2578063d3184e80146109d3578063d69a5eec146109e8578063dd892d2014610a00578063e07f381a14610a15578063e0c9fb1a14610a2d578063e71e88a414610a45578063f0d9829914610a5a578063feaf166b14610a6f578063ff186b2e14610a84575b005b3480156102b657600080fd5b506102a8600160a060020a0360043516610a99565b3480156102d757600080fd5b506102a8600435610b55565b3480156102ef57600080fd5b506102f8610c8e565b604080519115158252519081900360200190f35b34801561031857600080fd5b506102f8610ca0565b34801561032d57600080fd5b50610336610cb1565b60408051918252519081900360200190f35b34801561035457600080fd5b506102f8610cb7565b34801561036957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102a894369492936024939284019190819084018382808284375094975050509235600160a060020a03169350610cc892505050565b3480156103cd57600080fd5b506102f8610fd2565b3480156103e257600080fd5b506103eb610fe0565b60408051600160a060020a039092168252519081900360200190f35b34801561041357600080fd5b506102f8610fef565b34801561042857600080fd5b506102a8600160a060020a0360043516610ff8565b34801561044957600080fd5b506102a8600160a060020a0360043516611086565b34801561046a57600080fd5b506102a8600435600160a060020a0360243516611154565b34801561048e57600080fd5b506102a8600160a060020a036004351661161b565b3480156104af57600080fd5b506102a86116d7565b3480156104c457600080fd5b506104d9600160a060020a0360043516611730565b6040805160ff9092168252519081900360200190f35b3480156104fb57600080fd5b50610510600160a060020a036004351661175f565b6040518082600381111561052057fe5b60ff16815260200191505060405180910390f35b34801561054057600080fd5b506102f8611774565b34801561055557600080fd5b506102a8600435611785565b34801561056d57600080fd5b506102a8600435611cff565b34801561058557600080fd5b506103eb61218e565b34801561059a57600080fd5b506102a8600160a060020a036004351661219d565b6102a8600435600160a060020a0360243516612259565b3480156105d257600080fd5b506102a8600435612432565b3480156105ea57600080fd5b506103366125a0565b3480156105ff57600080fd5b506102a8600435600160a060020a03602435166125a6565b34801561062357600080fd5b506102a8600435612730565b34801561063b57600080fd5b506102a8600160a060020a0360043516612858565b34801561065c57600080fd5b506102a8600435612914565b34801561067457600080fd5b50610336612a80565b34801561068957600080fd5b506102a8600160a060020a0360043516612a86565b3480156106aa57600080fd5b506102a8600160a060020a0360043516612b14565b3480156106cb57600080fd5b50610336612bd0565b3480156106e057600080fd5b506102a8600435612bd6565b3480156106f857600080fd5b50610336612c9c565b34801561070d57600080fd5b506102a8600160a060020a0360043516602435612ca2565b34801561073157600080fd5b506102f8612d8d565b34801561074657600080fd5b5061074f612d9e565b604051808981526020018060200188600160a060020a0316600160a060020a031681526020018060200187815260200186815260200185815260200184815260200183810383528a818151815260200191508051906020019080838360005b838110156107c65781810151838201526020016107ae565b50505050905090810190601f1680156107f35780820380516001836020036101000a031916815260200191505b508381038252885181528851602091820191808b01910280838360005b83811015610828578181015183820152602001610810565b505050509050019a505050505050505050505060405180910390f35b34801561085057600080fd5b50604080516020600480358082013583810280860185019096528085526102a8953695939460249493850192918291850190849080828437509497505050923560ff169350612f4292505050565b3480156108aa57600080fd5b506102a860043561324d565b3480156108c257600080fd5b506103366132ff565b3480156108d757600080fd5b506102a8600160a060020a0360043516602435613305565b3480156108fb57600080fd5b506102a86004356133ed565b34801561091357600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102a894369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061348492505050565b34801561097757600080fd5b506102f86135b9565b34801561098c57600080fd5b506102a86004356135ca565b3480156109a457600080fd5b506102a86004351515613681565b3480156109be57600080fd5b506102a8600160a060020a0360043516613768565b3480156109df57600080fd5b506102f8613844565b3480156109f457600080fd5b506102a8600435613855565b348015610a0c57600080fd5b50610336613958565b348015610a2157600080fd5b506102a860043561395e565b348015610a3957600080fd5b506102a8600435613a61565b348015610a5157600080fd5b50610336613b9a565b348015610a6657600080fd5b506102a8613ba0565b348015610a7b57600080fd5b506103eb613c1d565b348015610a9057600080fd5b50610336613c2c565b610aa1610c8e565b1515610ae5576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a0381161515610b33576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b610b5d610c8e565b1515610ba1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b60008111610bf9576040805160e560020a62461bcd02815260206004820152601660248201527f4d696e696d756d427579206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600c54811415610c53576040805160e560020a62461bcd02815260206004820152601e60248201527f7472616e7366657244696666206d757374206265206e65772076616c75650000604482015290519081900360640190fd5b600c8190556040805182815290517f696bbaa664e6ac8bb851a93adf7d91f2550022e2d95b99ddb871be82ea04027e9181900360200190a150565b600054600160a060020a031633145b90565b600554600160a060020a0316331490565b60115481565b600354600160a060020a0316331490565b6015546040805160e060020a63f3caad03028152600160a060020a0384811660048301529151600093929092169163f3caad039160248082019260209290919082900301818787803b158015610d1d57600080fd5b505af1158015610d31573d6000803e3d6000fd5b505050506040513d6020811015610d4757600080fd5b50511515610d9f576040805160e560020a62461bcd02815260206004820152601b60248201527f496e766974657220646964206e6f7420726567697374657265642e0000000000604482015290519081900360640190fd5b600160a060020a038216331415610e00576040805160e560020a62461bcd02815260206004820152601860248201527f43616e6e6f7420726566657272616c20796f757273656c660000000000000000604482015290519081900360640190fd5b6015546040517f97294e580000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03868116604485015260606024850190815288516064860152885191909516946397294e58948993899390929160840190602086019080838360005b83811015610e8c578181015183820152602001610e74565b50505050905090810190601f168015610eb95780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610eda57600080fd5b505af1158015610eee573d6000803e3d6000fd5b505050506040513d6020811015610f0457600080fd5b50516040805182815233918101829052600160a060020a03851660608201526080602082810182815288519284019290925287519495507f6cddf760a0682a65b93ab75a1c92afba3c310bdab72fe56a81949110dc6ac8619486948994909389939192909160a08401919087019080838360005b83811015610f90578181015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050565b601054610100900460ff1681565b601554600160a060020a031681565b60105460ff1681565b611000613844565b8061100e575061100e610c8e565b1515611064576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b60158054600160a060020a031916600160a060020a0392909216919091179055565b61108e612d8d565b15156110e4576040805160e560020a62461bcd02815260206004820152600f60248201527f6f6e6c794261636b757041646d696e0000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515611132576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60068054600160a060020a031916600160a060020a0392909216919091179055565b6000806111613384613c32565b61116b8385613fae565b6011548481151561117857fe5b601754604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905193909204670de0b6b3a76400000294508492600160a060020a039091169163dd62ed3e9160448083019260209291908290030181600087803b1580156111f557600080fd5b505af1158015611209573d6000803e3d6000fd5b505050506040513d602081101561121f57600080fd5b50511015611277576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b6017546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050506040513d60208110156112f157600080fd5b505190508181101561134d576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b601754604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505050506040513d60208110156113ea57600080fd5b50511515611442576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b601754600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152600a860460248201529051919092169163a9059cbb9160448083019260209291908290030181600087803b1580156114b657600080fd5b505af11580156114ca573d6000803e3d6000fd5b505050506040513d60208110156114e057600080fd5b50511515611538576040805160e560020a62461bcd02815260206004820152601e60248201527f5472616e7366657220746f6b656e20746f2061646d696e206661696c65640000604482015290519081900360640190fd5b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820188905260016044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b1580156115b457600080fd5b505af11580156115c8573d6000803e3d6000fd5b505060408051338152600160a060020a038716602082015280820188905290517f6a26ed261f93dd650629e9362d6ed42670d1ea1f869fbdbd077eb1b310a242369350908190036060019150a150505050565b611623610c8e565b1515611667576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a03811615156116b5576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b6116df610c8e565b1515611723576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b6010805461ff0019169055565b600160a060020a03811660009081526008602052604081205460ff16600381111561175757fe5b90505b919050565b60086020526000908152604090205460ff1681565b600454600160a060020a0316331490565b600080600060115411151561180a576040805160e560020a62461bcd02815260206004820152602260248201527f496e76616c696420646174612c20706c6561736520636f6e746163742061646d60448201527f696e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6015546040805160e060020a63f3caad030281523360048201529051600160a060020a039092169163f3caad03916024808201926020929091908290030181600087803b15801561185a57600080fd5b505af115801561186e573d6000803e3d6000fd5b505050506040513d602081101561188457600080fd5b505115156118dc576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6118e4614206565b601154670de0b6b3a76400009084020491506118ff826142d6565b600b54821015611959576040805160e560020a62461bcd02815260206004820152601b60248201527f416d6f756e74206d757374206265203e206d696e696e67446966660000000000604482015290519081900360640190fd5b61196333836144fe565b601654604080517f3296c7d6000000000000000000000000000000000000000000000000000000008152600481018590523360248201529051600160a060020a0390921691633296c7d69160448082019260009290919082900301818387803b1580156119cf57600080fd5b505af11580156119e3573d6000803e3d6000fd5b5050601654604080517f23e85bfb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a0390921693506323e85bfb925060448082019260009290919082900301818387803b158015611a5357600080fd5b505af1158015611a67573d6000803e3d6000fd5b50506017546040805160e060020a6370a082310281523360048201529051600160a060020a0390921693506370a0823192506024808201926020929091908290030181600087803b158015611abb57600080fd5b505af1158015611acf573d6000803e3d6000fd5b505050506040513d6020811015611ae557600080fd5b5051601754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b158015611b5757600080fd5b505af1158015611b6b573d6000803e3d6000fd5b505050506040513d6020811015611b8157600080fd5b50511515611bd9576040805160e560020a62461bcd02815260206004820152601d60248201527f5472616e7366657220746f6b656e20746f2075736572206661696c6564000000604482015290519081900360640190fd5b611be9818463ffffffff6145ef16565b6017546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611c3957600080fd5b505af1158015611c4d573d6000803e3d6000fd5b505050506040513d6020811015611c6357600080fd5b505114611cba576040805160e560020a62461bcd02815260206004820152601a60248201527f5573657220746f6b656e206368616e67656420696e76616c6964000000000000604482015290519081900360640190fd5b604080513381526020810185905280820184905290517f7fb08210da114cf38e2518a9feafd477ad944ed7eb08ce5bc794ce918f3409c39181900360600190a1505050565b6000808211611d58576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420616d6f756e7420746f207377617000000000000000000000604482015290519081900360640190fd5b6017546040805160e060020a6370a0823102815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b158015611da757600080fd5b505af1158015611dbb573d6000803e3d6000fd5b505050506040513d6020811015611dd157600080fd5b50511015611e29576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b611e3282614653565b90503031811115611eb2576040805160e560020a62461bcd028152602060048201526024808201527f54686520636f6e74726163742068617665206e6f7420656e6f7567682062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611ebb816146ea565b601754604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b158015611f2657600080fd5b505af1158015611f3a573d6000803e3d6000fd5b505050506040513d6020811015611f5057600080fd5b50511015611fa8576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b601754604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561201b57600080fd5b505af115801561202f573d6000803e3d6000fd5b505050506040513d602081101561204557600080fd5b5051151561209d576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f193505050501580156120ca573d6000803e3d6000fd5b50601654604080517fc61d04a1000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163c61d04a19160248082019260009290919082900301818387803b15801561213157600080fd5b505af1158015612145573d6000803e3d6000fd5b5050604080513381526020810186905280820185905290517fd5a1cd88ddd329cc1ddf861a21708efa9ef3136b88e1420c21f91ef6f95ad0249350908190036060019150a15050565b601654600160a060020a031681565b6121a5610c8e565b15156121e9576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a0381161515612237576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b6010546000908190819060ff1680612284575073e6a7e869769966bbbfa48e8218865ec5a6261ce433145b15156122da576040805160e560020a62461bcd02815260206004820152601960248201527f43616e206e6f742062757920766961204574686572206e6f7700000000000000604482015290519081900360640190fd5b6122e43385613c32565b6000851161233c576040805160e560020a62461bcd02815260206004820152601060248201527f52617465206d757374206265203e203000000000000000000000000000000000604482015290519081900360640190fd5b61235284670de0b6b3a764000034880204613fae565b60038561236287600f5403614947565b60640281151561236e57fe5b04111592506005600f54612385600f548803614947565b60640281151561239157fe5b04111591508280156123a05750815b905080151561241f576040805160e560020a62461bcd02815260206004820152602160248201527f496e76616c696420726174652c20706c6561736520636865636b20616761696e60448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61242b33853488614961565b5050505050565b61243a610c8e565b151561247e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600081116124c4576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614b3a833981519152604482015290519081900360640190fd5b600e54811061251d576040805160e560020a62461bcd02815260206004820152600f60248201527f4d757374206265203c206d61784a500000000000000000000000000000000000604482015290519081900360640190fd5b600d54811415612565576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614b1a833981519152604482015290519081900360640190fd5b600d8190556040805182815290517fed8b2fda3f77cfdc28ec25f2d800aeba9c44954c10c8e95ebfc120bd36761ec29181900360200190a150565b60145481565b6125b03382613c32565b6125ba8183613fae565b6125c433836144fe565b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301526024820186905260026044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b15801561264057600080fd5b505af1158015612654573d6000803e3d6000fd5b5050601654600754604080517f5e7920c0000000000000000000000000000000000000000000000000000000008152600a88046004820152600160a060020a0392831660248201529051919092169350635e7920c09250604480830192600092919082900301818387803b1580156126cb57600080fd5b505af11580156126df573d6000803e3d6000fd5b505060408051338152600160a060020a038516602082015280820186905290517f7b2f4de0cb94d605245e79183c85ba07e8c449476a547bbd4fe9904e790c93709350908190036060019150a15050565b612738610c8e565b151561277c576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600d5481116127d5576040805160e560020a62461bcd02815260206004820152600f60248201527f4d757374206265203e206d696e4a500000000000000000000000000000000000604482015290519081900360640190fd5b600e5481141561281d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614b1a833981519152604482015290519081900360640190fd5b600e8190556040805182815290517f945f55d166da93f9491a7daf731ced4e8c97a19f65912d6cdad10935717df6919181900360200190a150565b612860610c8e565b15156128a4576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a03811615156128f2576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b61291c610cb7565b8061292a575061292a610c8e565b1515612980576040805160e560020a62461bcd02815260206004820152600c60248201527f6f6e6c7945746841646d696e0000000000000000000000000000000000000000604482015290519081900360640190fd5b612988610cb7565b156129ed57601054610100900460ff16156129ed576040805160e560020a62461bcd02815260206004820152600c60248201527f756e417574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111612a33576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614b3a833981519152604482015290519081900360640190fd5b600f54811415612a7b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614b1a833981519152604482015290519081900360640190fd5b600f55565b60135481565b612a8e613844565b80612a9c5750612a9c610c8e565b1515612af2576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b60168054600160a060020a031916600160a060020a0392909216919091179055565b612b1c610c8e565b1515612b60576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a0381161515612bae576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b600c5490565b612bde610c8e565b1515612c22576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b601854604080517f4bbf3a7a000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0390921691634bbf3a7a9160248082019260009290919082900301818387803b158015612c8857600080fd5b505af115801561242b573d6000803e3d6000fd5b60125481565b612caa610c8e565b1515612cee576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b601754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015612d5d57600080fd5b505af1158015612d71573d6000803e3d6000fd5b505050506040513d6020811015612d8757600080fd5b50505050565b600654600160a060020a0316331490565b601554604080517f72fbc8510000000000000000000000000000000000000000000000000000000081523360048201529051600092606092849284928492839283928392600160a060020a03909116916372fbc85191602480820192869290919082900301818387803b158015612e1457600080fd5b505af1158015612e28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610100811015612e5257600080fd5b815160208301805191939283019291640100000000811115612e7357600080fd5b82016020810184811115612e8657600080fd5b8151640100000000811182820187101715612ea057600080fd5b50506020820151604090920180519194929391640100000000811115612ec557600080fd5b82016020810184811115612ed857600080fd5b8151856020820283011164010000000082111715612ef557600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050975097509750975097509750975097509091929394959697565b6000612f4c611774565b80612f5a5750612f5a610c8e565b1515612fb0576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c794c41646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b8251600010613009576040805160e560020a62461bcd02815260206004820152601660248201527f56616c7565732063616e6e6f7420626520656d70747900000000000000000000604482015290519081900360640190fd5b82516101001015613064576040805160e560020a62461bcd02815260206004820152600e60248201527f4d6178696d756d20697320323536000000000000000000000000000000000000604482015290519081900360640190fd5b60008260ff161015801561307c575060038260ff1611155b15156130d2576040805160e560020a62461bcd02815260206004820152600f60248201527f5479706520697320696e76616c69640000000000000000000000000000000000604482015290519081900360640190fd5b5060005b82518160ff1610156131c55782513390849060ff84169081106130f557fe5b60209081029091010151600160a060020a0316141561315e576040805160e560020a62461bcd02815260206004820152600b60248201527f596f757273656c66212121000000000000000000000000000000000000000000604482015290519081900360640190fd5b8160ff16600381111561316d57fe5b60086000858460ff1681518110151561318257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020805460ff191660018360038111156131b857fe5b02179055506001016130d6565b7f8db78fdb13b2139a1e6cdce5bfb58676ce5246a09d0a33a748d3438767a3cef8838360405180806020018360ff1660ff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561323457818101518382015260200161321c565b50505050905001935050505060405180910390a1505050565b613255610c8e565b1515613299576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b601854604080517f48f79607000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a03909216916348f796079160248082019260009290919082900301818387803b158015612c8857600080fd5b600b5490565b600061330f610c8e565b1515613353576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b50601854604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529051849283169163095ea7b39160448083019260209291908290030181600087803b1580156133c357600080fd5b505af11580156133d7573d6000803e3d6000fd5b505050506040513d602081101561242b57600080fd5b6133f5610c8e565b1515613439576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b6000811161347f576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614b3a833981519152604482015290519081900360640190fd5b601355565b61348c610c8e565b15156134d0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b601854604080517f1e59c529000000000000000000000000000000000000000000000000000000008152600160a060020a03848116602483015260048201928352855160448301528551931692631e59c5299286928692829160640190602086019080838360005b83811015613550578181015183820152602001613538565b50505050905090810190601f16801561357d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561359d57600080fd5b505af11580156135b1573d6000803e3d6000fd5b505050505050565b600254600160a060020a0316331490565b6135d2610ca0565b806135e057506135e0610c8e565b1515613636576040805160e560020a62461bcd02815260206004820152600d60248201527f6f6e6c794d61785341646d696e00000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161367c576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614b3a833981519152604482015290519081900360640190fd5b601455565b613689610c8e565b15156136cd576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b60105460ff161515811515141561371c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614b1a833981519152604482015290519081900360640190fd5b6010805460ff191682151517908190556040805160ff90921615158252517fc310316a673d176e866702527c019155ef72d2e8b2f3f3b48cbb4767419aea69916020908290030190a150565b613770612d8d565b8061377e575061377e610c8e565b15156137d4576040805160e560020a62461bcd02815260206004820152600f60248201527f6f6e6c794261636b757041646d696e0000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515613822576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600154600160a060020a0316331490565b61385d610c8e565b15156138a1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600081116138f9576040805160e560020a62461bcd02815260206004820152600b60248201527f6d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b601154811415613953576040805160e560020a62461bcd02815260206004820152601160248201527f6d757374206265206e65772076616c7565000000000000000000000000000000604482015290519081900360640190fd5b601155565b600e5481565b613966610c8e565b15156139aa576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b60008111613a02576040805160e560020a62461bcd02815260206004820152600b60248201527f6d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b601254811415613a5c576040805160e560020a62461bcd02815260206004820152601160248201527f6d757374206265206e65772076616c7565000000000000000000000000000000604482015290519081900360640190fd5b601255565b613a69610c8e565b1515613aad576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b60008111613b05576040805160e560020a62461bcd02815260206004820152601660248201527f6d696e696e6744696666206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600b54811415613b5f576040805160e560020a62461bcd02815260206004820152601c60248201527f6d696e696e6744696666206d757374206265206e65772076616c756500000000604482015290519081900360640190fd5b600b8190556040805182815290517fbdcbd80d633405a54cf241f3585043f618c9b2b25267bbf8144d04c37c5b6aa79181900360200190a150565b600d5481565b613ba8611774565b80613bb65750613bb6610c8e565b1515613c0c576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c794c41646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6010805461ff001916610100179055565b601754600160a060020a031681565b600f5481565b6015546040805160e060020a63f3caad03028152600160a060020a0385811660048301529151919092169163f3caad039160248083019260209291908290030181600087803b158015613c8457600080fd5b505af1158015613c98573d6000803e3d6000fd5b505050506040513d6020811015613cae57600080fd5b50511515613d06576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6015546040805160e060020a63f3caad03028152600160a060020a0384811660048301529151919092169163f3caad039160248083019260209291908290030181600087803b158015613d5857600080fd5b505af1158015613d6c573d6000803e3d6000fd5b505050506040513d6020811015613d8257600080fd5b50511515613dff576040805160e560020a62461bcd028152602060048201526024808201527f596f752063616e206f6e6c792061637469766520616e20657869737473206d6560448201527f6d62657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382811690821614613f2a57601554604080517fda9c9ba7000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015284811660248301529151919092169163da9c9ba79160448083019260209291908290030181600087803b158015613e8257600080fd5b505af1158015613e96573d6000803e3d6000fd5b505050506040513d6020811015613eac57600080fd5b50511515613f2a576040805160e560020a62461bcd02815260206004820152602560248201527f5468697320757365722069736e277420696e20796f757220726566657272616c60448201527f2074726565000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600f54600010613faa576040805160e560020a62461bcd02815260206004820152602760248201527f496e76616c69642065746850726963652c20706c6561736520636f6e7461637460448201527f2061646d696e2100000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5050565b6000808211614007576040805160e560020a62461bcd02815260206004820152601260248201527f416d6f756e74206d757374206265203e20300000000000000000000000000000604482015290519081900360640190fd5b600e54821115614087576040805160e560020a62461bcd02815260206004820152603660248201527f43616e206e6f74206a6f696e207769746820616d6f756e74207468617420677260448201527f6561746572206d6178206a6f696e207061636b61676500000000000000000000606482015290519081900360840190fd5b601654604080517f9042bb1e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691639042bb1e9160248083019260209291908290030181600087803b1580156140ef57600080fd5b505af1158015614103573d6000803e3d6000fd5b505050506040513d602081101561411957600080fd5b5051905080151561418357600d5482101561417e576040805160e560020a62461bcd02815260206004820152601f60248201527f4d696e696d756d20666f72206669727374206a6f696e206973204d696e4a5000604482015290519081900360640190fd5b614201565b80821015614201576040805160e560020a62461bcd02815260206004820152603760248201527f43616e206e6f74206a6f696e207769746820616d6f756e742074686174206c6f60448201527f776572207468616e20796f7572206c617374206a6f696e000000000000000000606482015290519081900360840190fd5b505050565b600060023360009081526008602052604090205460ff16600381111561422857fe5b14158015614254575060033360009081526008602052604090205460ff16600381111561425157fe5b14155b90508015156142d3576040805160e560020a62461bcd02815260206004820152602960248201527f596f7572206163636f756e7420676574206c6f636b65642066726f6d206d696e60448201527f696e6720746f6b656e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50565b3360009081526009602052604081208054909190819081908190819081908190151561435b57601354891115614356576040805160e560020a62461bcd02815260206004820152601160248201527f416d6f756e7420697320696e76616c6964000000000000000000000000000000604482015290519081900360640190fd5b6144b7565b87546000975087965094508593505b848410156143d357878481548110151561438057fe5b90600052602060002090600202019250826000015462015180420310915081156143c15760018301546143ba90889063ffffffff6145ef16565b96506143c8565b6001909501945b60019093019261436a565b600086111561444e575060005b875486900381101561443d57878682018154811015156143fc57fe5b9060005260206000209060020201888281548110151561441857fe5b60009182526020909120825460029092020190815560019182015490820155016143e0565b875486900361444c8982614a95565b505b601354614461888b63ffffffff6145ef16565b11156144b7576040805160e560020a62461bcd02815260206004820152601260248201527f546f6f206d75636820666f7220746f6461790000000000000000000000000000604482015290519081900360640190fd5b5050604080518082019091524281526020808201988952875460018181018a556000998a529190982091516002909802909101968755965195909601949094555050505050565b601654604080517fbb1937c0000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151600093929092169163bb1937c09160248082019260209290919082900301818787803b15801561456957600080fd5b505af115801561457d573d6000803e3d6000fd5b505050506040513d602081101561459357600080fd5b5051905081811015614201576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b60008282018381101561464c576040805160e560020a62461bcd02815260206004820152601260248201527f536166654d61746820616464206572726f720000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000806012541115156146d6576040805160e560020a62461bcd02815260206004820152602260248201527f496e76616c696420646174612c20706c6561736520636f6e746163742061646d60448201527f696e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b601254828115156146e357fe5b0492915050565b6000806000806000806000600a80549050600014156147625760145488111561475d576040805160e560020a62461bcd02815260206004820152601160248201527f416d6f756e7420697320696e76616c6964000000000000000000000000000000604482015290519081900360640190fd5b6148c4565b600a546000975087965094508593505b848410156147db57600a80548590811061478857fe5b90600052602060002090600202019250826000015462015180420310915081156147c95760018301546147c290889063ffffffff6145ef16565b96506147d0565b6001909501945b600190930192614772565b600086111561485b575060005b600a5486900381101561484757600a805482880190811061480557fe5b9060005260206000209060020201600a8281548110151561482257fe5b60009182526020909120825460029092020190815560019182015490820155016147e8565b600a8054879003906148599082614a95565b505b60145461486e888a63ffffffff6145ef16565b11156148c4576040805160e560020a62461bcd02815260206004820152601260248201527f546f6f206d75636820666f7220746f6461790000000000000000000000000000604482015290519081900360640190fd5b50506040805180820190915242815260208101968752600a805460018101825560009190915290517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a860029092029182015595517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a9909601959095555050505050565b60008082121561495d578160001902905061175a565b5090565b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152670de0b6b3a76400008587020460248301819052600060448401819052606484018890529351600a8804959194929091169263f1f89e9292608480830193919282900301818387803b1580156149f057600080fd5b505af1158015614a04573d6000803e3d6000fd5b5050600754604051600160a060020a03909116925084156108fc02915084906000818181858888f19350505050158015614a42573d6000803e3d6000fd5b5060408051600160a060020a0380891682528716602082015280820183905290517f2ced4e9f0876fb793bc9670927e9d22151fe5f129df989c2d4946ef5a59a97db9181900360600190a1505050505050565b8154818355818111156142015760008381526020902061420191610c9d9160029182028101918502015b8082111561495d5760008082556001820155600201614abf5600496e76616c6964206164647265737300000000000000000000000000000000006f6e6c794d61696e41646d696e000000000000000000000000000000000000004d757374206265206e65772076616c75650000000000000000000000000000004d757374206265203e2030000000000000000000000000000000000000000000a165627a7a7230582013221dee97842ebc061560780a87c13ed6a9f15299acbf2dbcc8e0a5849590e00029000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000000000000000000000000000000000000002cec0

Deployed Bytecode

0x6080604052600436106102a85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302e65b8a81146102aa57806310a5c978146102cb5780631168222b146102e357806311bec7321461030c57806316fffb5d146103215780631cce93c4146103485780631e59c5291461035d578063243884ec146103c15780632bbc4971146103d657806331e43f531461040757806332620c271461041c578063380b682d1461043d5780633bef6e1e1461045e5780633ff7801c1461048257806340635518146104a357806344e73337146104b857806347ff89ef146104ef578063482d96281461053457806348f79607146105495780634bbf3a7a14610561578063521eb2731461057957806354ee1bdd1461058e57806359450ff5146105af5780635e5a662d146105c65780635f931901146105de578063621b46e5146105f35780637258ef4b1461061757806375bdc20b1461062f5780638106bbeb146106505780638143ea5a146106685780638d425e1d1461067d578063918817461461069e5780639569bf76146106bf578063989d12b6146106d45780639d7e6c88146106ec5780639dd3045b146107015780639f9abd5a14610725578063a34cc9361461073a578063a50695c114610844578063a51ec1a21461089e578063a8d3688c146108b6578063ac85ae06146108cb578063ad54b049146108ef578063b373767a14610907578063b8a5b5c81461096b578063c47a67de14610980578063c80d64cd14610998578063d30f133d146109b2578063d3184e80146109d3578063d69a5eec146109e8578063dd892d2014610a00578063e07f381a14610a15578063e0c9fb1a14610a2d578063e71e88a414610a45578063f0d9829914610a5a578063feaf166b14610a6f578063ff186b2e14610a84575b005b3480156102b657600080fd5b506102a8600160a060020a0360043516610a99565b3480156102d757600080fd5b506102a8600435610b55565b3480156102ef57600080fd5b506102f8610c8e565b604080519115158252519081900360200190f35b34801561031857600080fd5b506102f8610ca0565b34801561032d57600080fd5b50610336610cb1565b60408051918252519081900360200190f35b34801561035457600080fd5b506102f8610cb7565b34801561036957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102a894369492936024939284019190819084018382808284375094975050509235600160a060020a03169350610cc892505050565b3480156103cd57600080fd5b506102f8610fd2565b3480156103e257600080fd5b506103eb610fe0565b60408051600160a060020a039092168252519081900360200190f35b34801561041357600080fd5b506102f8610fef565b34801561042857600080fd5b506102a8600160a060020a0360043516610ff8565b34801561044957600080fd5b506102a8600160a060020a0360043516611086565b34801561046a57600080fd5b506102a8600435600160a060020a0360243516611154565b34801561048e57600080fd5b506102a8600160a060020a036004351661161b565b3480156104af57600080fd5b506102a86116d7565b3480156104c457600080fd5b506104d9600160a060020a0360043516611730565b6040805160ff9092168252519081900360200190f35b3480156104fb57600080fd5b50610510600160a060020a036004351661175f565b6040518082600381111561052057fe5b60ff16815260200191505060405180910390f35b34801561054057600080fd5b506102f8611774565b34801561055557600080fd5b506102a8600435611785565b34801561056d57600080fd5b506102a8600435611cff565b34801561058557600080fd5b506103eb61218e565b34801561059a57600080fd5b506102a8600160a060020a036004351661219d565b6102a8600435600160a060020a0360243516612259565b3480156105d257600080fd5b506102a8600435612432565b3480156105ea57600080fd5b506103366125a0565b3480156105ff57600080fd5b506102a8600435600160a060020a03602435166125a6565b34801561062357600080fd5b506102a8600435612730565b34801561063b57600080fd5b506102a8600160a060020a0360043516612858565b34801561065c57600080fd5b506102a8600435612914565b34801561067457600080fd5b50610336612a80565b34801561068957600080fd5b506102a8600160a060020a0360043516612a86565b3480156106aa57600080fd5b506102a8600160a060020a0360043516612b14565b3480156106cb57600080fd5b50610336612bd0565b3480156106e057600080fd5b506102a8600435612bd6565b3480156106f857600080fd5b50610336612c9c565b34801561070d57600080fd5b506102a8600160a060020a0360043516602435612ca2565b34801561073157600080fd5b506102f8612d8d565b34801561074657600080fd5b5061074f612d9e565b604051808981526020018060200188600160a060020a0316600160a060020a031681526020018060200187815260200186815260200185815260200184815260200183810383528a818151815260200191508051906020019080838360005b838110156107c65781810151838201526020016107ae565b50505050905090810190601f1680156107f35780820380516001836020036101000a031916815260200191505b508381038252885181528851602091820191808b01910280838360005b83811015610828578181015183820152602001610810565b505050509050019a505050505050505050505060405180910390f35b34801561085057600080fd5b50604080516020600480358082013583810280860185019096528085526102a8953695939460249493850192918291850190849080828437509497505050923560ff169350612f4292505050565b3480156108aa57600080fd5b506102a860043561324d565b3480156108c257600080fd5b506103366132ff565b3480156108d757600080fd5b506102a8600160a060020a0360043516602435613305565b3480156108fb57600080fd5b506102a86004356133ed565b34801561091357600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102a894369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061348492505050565b34801561097757600080fd5b506102f86135b9565b34801561098c57600080fd5b506102a86004356135ca565b3480156109a457600080fd5b506102a86004351515613681565b3480156109be57600080fd5b506102a8600160a060020a0360043516613768565b3480156109df57600080fd5b506102f8613844565b3480156109f457600080fd5b506102a8600435613855565b348015610a0c57600080fd5b50610336613958565b348015610a2157600080fd5b506102a860043561395e565b348015610a3957600080fd5b506102a8600435613a61565b348015610a5157600080fd5b50610336613b9a565b348015610a6657600080fd5b506102a8613ba0565b348015610a7b57600080fd5b506103eb613c1d565b348015610a9057600080fd5b50610336613c2c565b610aa1610c8e565b1515610ae5576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a0381161515610b33576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b610b5d610c8e565b1515610ba1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b60008111610bf9576040805160e560020a62461bcd02815260206004820152601660248201527f4d696e696d756d427579206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600c54811415610c53576040805160e560020a62461bcd02815260206004820152601e60248201527f7472616e7366657244696666206d757374206265206e65772076616c75650000604482015290519081900360640190fd5b600c8190556040805182815290517f696bbaa664e6ac8bb851a93adf7d91f2550022e2d95b99ddb871be82ea04027e9181900360200190a150565b600054600160a060020a031633145b90565b600554600160a060020a0316331490565b60115481565b600354600160a060020a0316331490565b6015546040805160e060020a63f3caad03028152600160a060020a0384811660048301529151600093929092169163f3caad039160248082019260209290919082900301818787803b158015610d1d57600080fd5b505af1158015610d31573d6000803e3d6000fd5b505050506040513d6020811015610d4757600080fd5b50511515610d9f576040805160e560020a62461bcd02815260206004820152601b60248201527f496e766974657220646964206e6f7420726567697374657265642e0000000000604482015290519081900360640190fd5b600160a060020a038216331415610e00576040805160e560020a62461bcd02815260206004820152601860248201527f43616e6e6f7420726566657272616c20796f757273656c660000000000000000604482015290519081900360640190fd5b6015546040517f97294e580000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03868116604485015260606024850190815288516064860152885191909516946397294e58948993899390929160840190602086019080838360005b83811015610e8c578181015183820152602001610e74565b50505050905090810190601f168015610eb95780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610eda57600080fd5b505af1158015610eee573d6000803e3d6000fd5b505050506040513d6020811015610f0457600080fd5b50516040805182815233918101829052600160a060020a03851660608201526080602082810182815288519284019290925287519495507f6cddf760a0682a65b93ab75a1c92afba3c310bdab72fe56a81949110dc6ac8619486948994909389939192909160a08401919087019080838360005b83811015610f90578181015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050565b601054610100900460ff1681565b601554600160a060020a031681565b60105460ff1681565b611000613844565b8061100e575061100e610c8e565b1515611064576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b60158054600160a060020a031916600160a060020a0392909216919091179055565b61108e612d8d565b15156110e4576040805160e560020a62461bcd02815260206004820152600f60248201527f6f6e6c794261636b757041646d696e0000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515611132576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60068054600160a060020a031916600160a060020a0392909216919091179055565b6000806111613384613c32565b61116b8385613fae565b6011548481151561117857fe5b601754604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905193909204670de0b6b3a76400000294508492600160a060020a039091169163dd62ed3e9160448083019260209291908290030181600087803b1580156111f557600080fd5b505af1158015611209573d6000803e3d6000fd5b505050506040513d602081101561121f57600080fd5b50511015611277576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b6017546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050506040513d60208110156112f157600080fd5b505190508181101561134d576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b601754604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505050506040513d60208110156113ea57600080fd5b50511515611442576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b601754600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152600a860460248201529051919092169163a9059cbb9160448083019260209291908290030181600087803b1580156114b657600080fd5b505af11580156114ca573d6000803e3d6000fd5b505050506040513d60208110156114e057600080fd5b50511515611538576040805160e560020a62461bcd02815260206004820152601e60248201527f5472616e7366657220746f6b656e20746f2061646d696e206661696c65640000604482015290519081900360640190fd5b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820188905260016044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b1580156115b457600080fd5b505af11580156115c8573d6000803e3d6000fd5b505060408051338152600160a060020a038716602082015280820188905290517f6a26ed261f93dd650629e9362d6ed42670d1ea1f869fbdbd077eb1b310a242369350908190036060019150a150505050565b611623610c8e565b1515611667576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a03811615156116b5576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b6116df610c8e565b1515611723576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b6010805461ff0019169055565b600160a060020a03811660009081526008602052604081205460ff16600381111561175757fe5b90505b919050565b60086020526000908152604090205460ff1681565b600454600160a060020a0316331490565b600080600060115411151561180a576040805160e560020a62461bcd02815260206004820152602260248201527f496e76616c696420646174612c20706c6561736520636f6e746163742061646d60448201527f696e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6015546040805160e060020a63f3caad030281523360048201529051600160a060020a039092169163f3caad03916024808201926020929091908290030181600087803b15801561185a57600080fd5b505af115801561186e573d6000803e3d6000fd5b505050506040513d602081101561188457600080fd5b505115156118dc576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6118e4614206565b601154670de0b6b3a76400009084020491506118ff826142d6565b600b54821015611959576040805160e560020a62461bcd02815260206004820152601b60248201527f416d6f756e74206d757374206265203e206d696e696e67446966660000000000604482015290519081900360640190fd5b61196333836144fe565b601654604080517f3296c7d6000000000000000000000000000000000000000000000000000000008152600481018590523360248201529051600160a060020a0390921691633296c7d69160448082019260009290919082900301818387803b1580156119cf57600080fd5b505af11580156119e3573d6000803e3d6000fd5b5050601654604080517f23e85bfb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a0390921693506323e85bfb925060448082019260009290919082900301818387803b158015611a5357600080fd5b505af1158015611a67573d6000803e3d6000fd5b50506017546040805160e060020a6370a082310281523360048201529051600160a060020a0390921693506370a0823192506024808201926020929091908290030181600087803b158015611abb57600080fd5b505af1158015611acf573d6000803e3d6000fd5b505050506040513d6020811015611ae557600080fd5b5051601754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b158015611b5757600080fd5b505af1158015611b6b573d6000803e3d6000fd5b505050506040513d6020811015611b8157600080fd5b50511515611bd9576040805160e560020a62461bcd02815260206004820152601d60248201527f5472616e7366657220746f6b656e20746f2075736572206661696c6564000000604482015290519081900360640190fd5b611be9818463ffffffff6145ef16565b6017546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611c3957600080fd5b505af1158015611c4d573d6000803e3d6000fd5b505050506040513d6020811015611c6357600080fd5b505114611cba576040805160e560020a62461bcd02815260206004820152601a60248201527f5573657220746f6b656e206368616e67656420696e76616c6964000000000000604482015290519081900360640190fd5b604080513381526020810185905280820184905290517f7fb08210da114cf38e2518a9feafd477ad944ed7eb08ce5bc794ce918f3409c39181900360600190a1505050565b6000808211611d58576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420616d6f756e7420746f207377617000000000000000000000604482015290519081900360640190fd5b6017546040805160e060020a6370a0823102815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b158015611da757600080fd5b505af1158015611dbb573d6000803e3d6000fd5b505050506040513d6020811015611dd157600080fd5b50511015611e29576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b611e3282614653565b90503031811115611eb2576040805160e560020a62461bcd028152602060048201526024808201527f54686520636f6e74726163742068617665206e6f7420656e6f7567682062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611ebb816146ea565b601754604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b158015611f2657600080fd5b505af1158015611f3a573d6000803e3d6000fd5b505050506040513d6020811015611f5057600080fd5b50511015611fa8576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b601754604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561201b57600080fd5b505af115801561202f573d6000803e3d6000fd5b505050506040513d602081101561204557600080fd5b5051151561209d576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f193505050501580156120ca573d6000803e3d6000fd5b50601654604080517fc61d04a1000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163c61d04a19160248082019260009290919082900301818387803b15801561213157600080fd5b505af1158015612145573d6000803e3d6000fd5b5050604080513381526020810186905280820185905290517fd5a1cd88ddd329cc1ddf861a21708efa9ef3136b88e1420c21f91ef6f95ad0249350908190036060019150a15050565b601654600160a060020a031681565b6121a5610c8e565b15156121e9576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a0381161515612237576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b6010546000908190819060ff1680612284575073e6a7e869769966bbbfa48e8218865ec5a6261ce433145b15156122da576040805160e560020a62461bcd02815260206004820152601960248201527f43616e206e6f742062757920766961204574686572206e6f7700000000000000604482015290519081900360640190fd5b6122e43385613c32565b6000851161233c576040805160e560020a62461bcd02815260206004820152601060248201527f52617465206d757374206265203e203000000000000000000000000000000000604482015290519081900360640190fd5b61235284670de0b6b3a764000034880204613fae565b60038561236287600f5403614947565b60640281151561236e57fe5b04111592506005600f54612385600f548803614947565b60640281151561239157fe5b04111591508280156123a05750815b905080151561241f576040805160e560020a62461bcd02815260206004820152602160248201527f496e76616c696420726174652c20706c6561736520636865636b20616761696e60448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b61242b33853488614961565b5050505050565b61243a610c8e565b151561247e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600081116124c4576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614b3a833981519152604482015290519081900360640190fd5b600e54811061251d576040805160e560020a62461bcd02815260206004820152600f60248201527f4d757374206265203c206d61784a500000000000000000000000000000000000604482015290519081900360640190fd5b600d54811415612565576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614b1a833981519152604482015290519081900360640190fd5b600d8190556040805182815290517fed8b2fda3f77cfdc28ec25f2d800aeba9c44954c10c8e95ebfc120bd36761ec29181900360200190a150565b60145481565b6125b03382613c32565b6125ba8183613fae565b6125c433836144fe565b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301526024820186905260026044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b15801561264057600080fd5b505af1158015612654573d6000803e3d6000fd5b5050601654600754604080517f5e7920c0000000000000000000000000000000000000000000000000000000008152600a88046004820152600160a060020a0392831660248201529051919092169350635e7920c09250604480830192600092919082900301818387803b1580156126cb57600080fd5b505af11580156126df573d6000803e3d6000fd5b505060408051338152600160a060020a038516602082015280820186905290517f7b2f4de0cb94d605245e79183c85ba07e8c449476a547bbd4fe9904e790c93709350908190036060019150a15050565b612738610c8e565b151561277c576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600d5481116127d5576040805160e560020a62461bcd02815260206004820152600f60248201527f4d757374206265203e206d696e4a500000000000000000000000000000000000604482015290519081900360640190fd5b600e5481141561281d576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614b1a833981519152604482015290519081900360640190fd5b600e8190556040805182815290517f945f55d166da93f9491a7daf731ced4e8c97a19f65912d6cdad10935717df6919181900360200190a150565b612860610c8e565b15156128a4576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a03811615156128f2576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b61291c610cb7565b8061292a575061292a610c8e565b1515612980576040805160e560020a62461bcd02815260206004820152600c60248201527f6f6e6c7945746841646d696e0000000000000000000000000000000000000000604482015290519081900360640190fd5b612988610cb7565b156129ed57601054610100900460ff16156129ed576040805160e560020a62461bcd02815260206004820152600c60248201527f756e417574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111612a33576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614b3a833981519152604482015290519081900360640190fd5b600f54811415612a7b576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614b1a833981519152604482015290519081900360640190fd5b600f55565b60135481565b612a8e613844565b80612a9c5750612a9c610c8e565b1515612af2576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b60168054600160a060020a031916600160a060020a0392909216919091179055565b612b1c610c8e565b1515612b60576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600160a060020a0381161515612bae576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b600c5490565b612bde610c8e565b1515612c22576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b601854604080517f4bbf3a7a000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0390921691634bbf3a7a9160248082019260009290919082900301818387803b158015612c8857600080fd5b505af115801561242b573d6000803e3d6000fd5b60125481565b612caa610c8e565b1515612cee576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b601754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015612d5d57600080fd5b505af1158015612d71573d6000803e3d6000fd5b505050506040513d6020811015612d8757600080fd5b50505050565b600654600160a060020a0316331490565b601554604080517f72fbc8510000000000000000000000000000000000000000000000000000000081523360048201529051600092606092849284928492839283928392600160a060020a03909116916372fbc85191602480820192869290919082900301818387803b158015612e1457600080fd5b505af1158015612e28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610100811015612e5257600080fd5b815160208301805191939283019291640100000000811115612e7357600080fd5b82016020810184811115612e8657600080fd5b8151640100000000811182820187101715612ea057600080fd5b50506020820151604090920180519194929391640100000000811115612ec557600080fd5b82016020810184811115612ed857600080fd5b8151856020820283011164010000000082111715612ef557600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050975097509750975097509750975097509091929394959697565b6000612f4c611774565b80612f5a5750612f5a610c8e565b1515612fb0576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c794c41646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b8251600010613009576040805160e560020a62461bcd02815260206004820152601660248201527f56616c7565732063616e6e6f7420626520656d70747900000000000000000000604482015290519081900360640190fd5b82516101001015613064576040805160e560020a62461bcd02815260206004820152600e60248201527f4d6178696d756d20697320323536000000000000000000000000000000000000604482015290519081900360640190fd5b60008260ff161015801561307c575060038260ff1611155b15156130d2576040805160e560020a62461bcd02815260206004820152600f60248201527f5479706520697320696e76616c69640000000000000000000000000000000000604482015290519081900360640190fd5b5060005b82518160ff1610156131c55782513390849060ff84169081106130f557fe5b60209081029091010151600160a060020a0316141561315e576040805160e560020a62461bcd02815260206004820152600b60248201527f596f757273656c66212121000000000000000000000000000000000000000000604482015290519081900360640190fd5b8160ff16600381111561316d57fe5b60086000858460ff1681518110151561318257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020805460ff191660018360038111156131b857fe5b02179055506001016130d6565b7f8db78fdb13b2139a1e6cdce5bfb58676ce5246a09d0a33a748d3438767a3cef8838360405180806020018360ff1660ff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561323457818101518382015260200161321c565b50505050905001935050505060405180910390a1505050565b613255610c8e565b1515613299576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b601854604080517f48f79607000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a03909216916348f796079160248082019260009290919082900301818387803b158015612c8857600080fd5b600b5490565b600061330f610c8e565b1515613353576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b50601854604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529051849283169163095ea7b39160448083019260209291908290030181600087803b1580156133c357600080fd5b505af11580156133d7573d6000803e3d6000fd5b505050506040513d602081101561242b57600080fd5b6133f5610c8e565b1515613439576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b6000811161347f576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614b3a833981519152604482015290519081900360640190fd5b601355565b61348c610c8e565b15156134d0576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b601854604080517f1e59c529000000000000000000000000000000000000000000000000000000008152600160a060020a03848116602483015260048201928352855160448301528551931692631e59c5299286928692829160640190602086019080838360005b83811015613550578181015183820152602001613538565b50505050905090810190601f16801561357d5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561359d57600080fd5b505af11580156135b1573d6000803e3d6000fd5b505050505050565b600254600160a060020a0316331490565b6135d2610ca0565b806135e057506135e0610c8e565b1515613636576040805160e560020a62461bcd02815260206004820152600d60248201527f6f6e6c794d61785341646d696e00000000000000000000000000000000000000604482015290519081900360640190fd5b6000811161367c576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614b3a833981519152604482015290519081900360640190fd5b601455565b613689610c8e565b15156136cd576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b60105460ff161515811515141561371c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614b1a833981519152604482015290519081900360640190fd5b6010805460ff191682151517908190556040805160ff90921615158252517fc310316a673d176e866702527c019155ef72d2e8b2f3f3b48cbb4767419aea69916020908290030190a150565b613770612d8d565b8061377e575061377e610c8e565b15156137d4576040805160e560020a62461bcd02815260206004820152600f60248201527f6f6e6c794261636b757041646d696e0000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515613822576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020614ada833981519152604482015290519081900360640190fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600154600160a060020a0316331490565b61385d610c8e565b15156138a1576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b600081116138f9576040805160e560020a62461bcd02815260206004820152600b60248201527f6d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b601154811415613953576040805160e560020a62461bcd02815260206004820152601160248201527f6d757374206265206e65772076616c7565000000000000000000000000000000604482015290519081900360640190fd5b601155565b600e5481565b613966610c8e565b15156139aa576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b60008111613a02576040805160e560020a62461bcd02815260206004820152600b60248201527f6d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b601254811415613a5c576040805160e560020a62461bcd02815260206004820152601160248201527f6d757374206265206e65772076616c7565000000000000000000000000000000604482015290519081900360640190fd5b601255565b613a69610c8e565b1515613aad576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020614afa833981519152604482015290519081900360640190fd5b60008111613b05576040805160e560020a62461bcd02815260206004820152601660248201527f6d696e696e6744696666206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600b54811415613b5f576040805160e560020a62461bcd02815260206004820152601c60248201527f6d696e696e6744696666206d757374206265206e65772076616c756500000000604482015290519081900360640190fd5b600b8190556040805182815290517fbdcbd80d633405a54cf241f3585043f618c9b2b25267bbf8144d04c37c5b6aa79181900360200190a150565b600d5481565b613ba8611774565b80613bb65750613bb6610c8e565b1515613c0c576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c794c41646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6010805461ff001916610100179055565b601754600160a060020a031681565b600f5481565b6015546040805160e060020a63f3caad03028152600160a060020a0385811660048301529151919092169163f3caad039160248083019260209291908290030181600087803b158015613c8457600080fd5b505af1158015613c98573d6000803e3d6000fd5b505050506040513d6020811015613cae57600080fd5b50511515613d06576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6015546040805160e060020a63f3caad03028152600160a060020a0384811660048301529151919092169163f3caad039160248083019260209291908290030181600087803b158015613d5857600080fd5b505af1158015613d6c573d6000803e3d6000fd5b505050506040513d6020811015613d8257600080fd5b50511515613dff576040805160e560020a62461bcd028152602060048201526024808201527f596f752063616e206f6e6c792061637469766520616e20657869737473206d6560448201527f6d62657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382811690821614613f2a57601554604080517fda9c9ba7000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015284811660248301529151919092169163da9c9ba79160448083019260209291908290030181600087803b158015613e8257600080fd5b505af1158015613e96573d6000803e3d6000fd5b505050506040513d6020811015613eac57600080fd5b50511515613f2a576040805160e560020a62461bcd02815260206004820152602560248201527f5468697320757365722069736e277420696e20796f757220726566657272616c60448201527f2074726565000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600f54600010613faa576040805160e560020a62461bcd02815260206004820152602760248201527f496e76616c69642065746850726963652c20706c6561736520636f6e7461637460448201527f2061646d696e2100000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5050565b6000808211614007576040805160e560020a62461bcd02815260206004820152601260248201527f416d6f756e74206d757374206265203e20300000000000000000000000000000604482015290519081900360640190fd5b600e54821115614087576040805160e560020a62461bcd02815260206004820152603660248201527f43616e206e6f74206a6f696e207769746820616d6f756e74207468617420677260448201527f6561746572206d6178206a6f696e207061636b61676500000000000000000000606482015290519081900360840190fd5b601654604080517f9042bb1e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691639042bb1e9160248083019260209291908290030181600087803b1580156140ef57600080fd5b505af1158015614103573d6000803e3d6000fd5b505050506040513d602081101561411957600080fd5b5051905080151561418357600d5482101561417e576040805160e560020a62461bcd02815260206004820152601f60248201527f4d696e696d756d20666f72206669727374206a6f696e206973204d696e4a5000604482015290519081900360640190fd5b614201565b80821015614201576040805160e560020a62461bcd02815260206004820152603760248201527f43616e206e6f74206a6f696e207769746820616d6f756e742074686174206c6f60448201527f776572207468616e20796f7572206c617374206a6f696e000000000000000000606482015290519081900360840190fd5b505050565b600060023360009081526008602052604090205460ff16600381111561422857fe5b14158015614254575060033360009081526008602052604090205460ff16600381111561425157fe5b14155b90508015156142d3576040805160e560020a62461bcd02815260206004820152602960248201527f596f7572206163636f756e7420676574206c6f636b65642066726f6d206d696e60448201527f696e6720746f6b656e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50565b3360009081526009602052604081208054909190819081908190819081908190151561435b57601354891115614356576040805160e560020a62461bcd02815260206004820152601160248201527f416d6f756e7420697320696e76616c6964000000000000000000000000000000604482015290519081900360640190fd5b6144b7565b87546000975087965094508593505b848410156143d357878481548110151561438057fe5b90600052602060002090600202019250826000015462015180420310915081156143c15760018301546143ba90889063ffffffff6145ef16565b96506143c8565b6001909501945b60019093019261436a565b600086111561444e575060005b875486900381101561443d57878682018154811015156143fc57fe5b9060005260206000209060020201888281548110151561441857fe5b60009182526020909120825460029092020190815560019182015490820155016143e0565b875486900361444c8982614a95565b505b601354614461888b63ffffffff6145ef16565b11156144b7576040805160e560020a62461bcd02815260206004820152601260248201527f546f6f206d75636820666f7220746f6461790000000000000000000000000000604482015290519081900360640190fd5b5050604080518082019091524281526020808201988952875460018181018a556000998a529190982091516002909802909101968755965195909601949094555050505050565b601654604080517fbb1937c0000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151600093929092169163bb1937c09160248082019260209290919082900301818787803b15801561456957600080fd5b505af115801561457d573d6000803e3d6000fd5b505050506040513d602081101561459357600080fd5b5051905081811015614201576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b60008282018381101561464c576040805160e560020a62461bcd02815260206004820152601260248201527f536166654d61746820616464206572726f720000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000806012541115156146d6576040805160e560020a62461bcd02815260206004820152602260248201527f496e76616c696420646174612c20706c6561736520636f6e746163742061646d60448201527f696e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b601254828115156146e357fe5b0492915050565b6000806000806000806000600a80549050600014156147625760145488111561475d576040805160e560020a62461bcd02815260206004820152601160248201527f416d6f756e7420697320696e76616c6964000000000000000000000000000000604482015290519081900360640190fd5b6148c4565b600a546000975087965094508593505b848410156147db57600a80548590811061478857fe5b90600052602060002090600202019250826000015462015180420310915081156147c95760018301546147c290889063ffffffff6145ef16565b96506147d0565b6001909501945b600190930192614772565b600086111561485b575060005b600a5486900381101561484757600a805482880190811061480557fe5b9060005260206000209060020201600a8281548110151561482257fe5b60009182526020909120825460029092020190815560019182015490820155016147e8565b600a8054879003906148599082614a95565b505b60145461486e888a63ffffffff6145ef16565b11156148c4576040805160e560020a62461bcd02815260206004820152601260248201527f546f6f206d75636820666f7220746f6461790000000000000000000000000000604482015290519081900360640190fd5b50506040805180820190915242815260208101968752600a805460018101825560009190915290517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a860029092029182015595517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a9909601959095555050505050565b60008082121561495d578160001902905061175a565b5090565b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152670de0b6b3a76400008587020460248301819052600060448401819052606484018890529351600a8804959194929091169263f1f89e9292608480830193919282900301818387803b1580156149f057600080fd5b505af1158015614a04573d6000803e3d6000fd5b5050600754604051600160a060020a03909116925084156108fc02915084906000818181858888f19350505050158015614a42573d6000803e3d6000fd5b5060408051600160a060020a0380891682528716602082015280820183905290517f2ced4e9f0876fb793bc9670927e9d22151fe5f129df989c2d4946ef5a59a97db9181900360600190a1505050505050565b8154818355818111156142015760008381526020902061420191610c9d9160029182028101918502015b8082111561495d5760008082556001820155600201614abf5600496e76616c6964206164647265737300000000000000000000000000000000006f6e6c794d61696e41646d696e000000000000000000000000000000000000004d757374206265206e65772076616c75650000000000000000000000000000004d757374206265203e2030000000000000000000000000000000000000000000a165627a7a7230582013221dee97842ebc061560780a87c13ed6a9f15299acbf2dbcc8e0a5849590e00029

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

000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4000000000000000000000000000000000000000000000000000000000002cec0

-----Decoded View---------------
Arg [0] : _mainAdmin (address): 0xE6A7E869769966BbbFA48e8218865EC5a6261Ce4
Arg [1] : _ethAdmin (address): 0xE6A7E869769966BbbFA48e8218865EC5a6261Ce4
Arg [2] : _LAdmin (address): 0xE6A7E869769966BbbFA48e8218865EC5a6261Ce4
Arg [3] : _maxSAdmin (address): 0xE6A7E869769966BbbFA48e8218865EC5a6261Ce4
Arg [4] : _backupAdmin (address): 0xE6A7E869769966BbbFA48e8218865EC5a6261Ce4
Arg [5] : _commissionAdmin (address): 0xE6A7E869769966BbbFA48e8218865EC5a6261Ce4
Arg [6] : _ethPrice (uint256): 184000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4
Arg [1] : 000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4
Arg [2] : 000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4
Arg [3] : 000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4
Arg [4] : 000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4
Arg [5] : 000000000000000000000000e6a7e869769966bbbfa48e8218865ec5a6261ce4
Arg [6] : 000000000000000000000000000000000000000000000000000000000002cec0


Deployed Bytecode Sourcemap

8717:15133:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11445:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11445:191:0;-1:-1:-1;;;;;11445:191:0;;;;;14238:286;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14238:286:0;;;;;1755:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1755:93:0;;;;;;;;;;;;;;;;;;;;;;2254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2254:93:0;;;;9369:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9369:15:0;;;;;;;;;;;;;;;;;;;;2064:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2064:91:0;;;;15686:339;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15686:339:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15686:339:0;;-1:-1:-1;;;15686:339:0;;-1:-1:-1;;;;;15686:339:0;;-1:-1:-1;15686:339:0;;-1:-1:-1;;;15686:339:0;9333:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9333:31:0;;;;9482:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9482:23:0;;;;;;;;-1:-1:-1;;;;;9482:23:0;;;;;;;;;;;;;;9301:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9301:27:0;;;;10877:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10877:114:0;-1:-1:-1;;;;;10877:114:0;;;;;11996:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11996:184:0;-1:-1:-1;;;;;11996:184:0;;;;;17316:758;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17316:758:0;;;-1:-1:-1;;;;;17316:758:0;;;;;11642:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11642:166:0;-1:-1:-1;;;;;11642:166:0;;;;;12652:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12652:82:0;;;;15577:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15577:103:0;-1:-1:-1;;;;;15577:103:0;;;;;;;;;;;;;;;;;;;;;;;;9017:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9017:33:0;-1:-1:-1;;;;;9017:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2161:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2161:87:0;;;;18080:848;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18080:848:0;;;;;18934:718;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18934:718:0;;;;;9510:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9510:21:0;;;;12363:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12363:201:0;-1:-1:-1;;;;;12363:201:0;;;;;16197:717;;;;-1:-1:-1;;;;;16197:717:0;;;;;12982:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12982:248:0;;;;;9440:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9440:35:0;;;;16920:390;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16920:390:0;;;-1:-1:-1;;;;;16920:390:0;;;;;13236:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13236:207:0;;;;;11814:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11814:176:0;-1:-1:-1;;;;;11814:176:0;;;;;10997:263;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10997:263:0;;;;;9409:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9409:26:0;;;;10761:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10761:110:0;-1:-1:-1;;;;;10761:110:0;;;;;12186:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12186:171:0;-1:-1:-1;;;;;12186:171:0;;;;;15485:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15485:86:0;;;;15138:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15138:71:0;;;;;9389:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9389:15:0;;;;19660:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19660:125:0;-1:-1:-1;;;;;19660:125:0;;;;;;;2353:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2353:97:0;;;;16031:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16031:160:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16031:160:0;-1:-1:-1;;;;;16031:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16031:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16031:160:0;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16031:160:0;;;;;;;;;;;;;;;;;;;;;;;;;14530:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14530:422:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14530:422:0;;-1:-1:-1;;;14530:422:0;;;;;-1:-1:-1;14530:422:0;;-1:-1:-1;;;14530:422:0;15059:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15059:73:0;;;;;15397:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15397:82:0;;;;15215:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15215:116:0;-1:-1:-1;;;;;15215:116:0;;;;;;;12740:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12740:115:0;;;;;14958:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14958:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14958:95:0;;-1:-1:-1;;;14958:95:0;;-1:-1:-1;;;;;14958:95:0;;-1:-1:-1;14958:95:0;;-1:-1:-1;;;14958:95:0;1961:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1961:97:0;;;;12861:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12861:115:0;;;;;13449:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13449:187:0;;;;;;;11266:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11266:173:0;-1:-1:-1;;;;;11266:173:0;;;;;1854:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1854:101:0;;;;13642:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13642:156:0;;;;;9244:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9244:27:0;;;;13804:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13804:156:0;;;;;13966:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13966:266:0;;;;;9213:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9213:26:0;;;;12570:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12570:76:0;;;;9536:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9536:75:0;;;;9276:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9276:20:0;;;;11445:191;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11537:33:0;;;;11529:61;;;;;-1:-1:-1;;;;;11529:61:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11529:61:0;;;;;;;;;;;;;;;11597:13;:33;;-1:-1:-1;;;;;;11597:33:0;-1:-1:-1;;;;;11597:33:0;;;;;;;;;;11445:191::o;14238:286::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;14335:1;14319:17;;14311:52;;;;;-1:-1:-1;;;;;14311:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14395:12;;14378:29;;;14370:72;;;;;-1:-1:-1;;;;;14370:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14449:12;:28;;;14489:29;;;;;;;;;;;;;;;;;14238:286;:::o;1755:93::-;1799:4;1833:9;-1:-1:-1;;;;;1833:9:0;1819:10;:23;1755:93;;:::o;2254:::-;2332:9;;-1:-1:-1;;;;;2332:9:0;2318:10;:23;;2254:93::o;9369:15::-;;;;:::o;2064:91::-;2141:8;;-1:-1:-1;;;;;2141:8:0;2127:10;:22;;2064:91::o;15686:339::-;15769:7;;:27;;;-1:-1:-1;;;;;15769:27:0;;-1:-1:-1;;;;;15769:27:0;;;;;;;;;15901:7;;15769;;;;;:17;;:27;;;;;;;;;;;;;;;15901:7;15769;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;15769:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15769:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15769:27:0;15761:67;;;;;;;-1:-1:-1;;;;;15761:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15843:22:0;;15855:10;15843:22;;15835:59;;;;;-1:-1:-1;;;;;15835:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15911:7;;:49;;;;;15928:10;15911:49;;;;;;-1:-1:-1;;;;;15911:49:0;;;;;;;;;;;;;;;;;;;;;;:7;;;;;:16;;15940:9;;15951:8;;15911:49;;;;;;;;;;;;;:7;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15911:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15911:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15911:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15911:49:0;15972:47;;;;;;15998:10;15972:47;;;;;;-1:-1:-1;;;;;15972:47:0;;;;;;;15911:49;15972:47;;;;;;;;;;;;;;;;;15911:49;;-1:-1:-1;15972:47:0;;15911:49;;15987:9;;15998:10;;16010:8;;15972:47;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15972:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15686:339;;;:::o;9333:31::-;;;;;;;;;:::o;9482:23::-;;;-1:-1:-1;;;;;9482:23:0;;:::o;9301:27::-;;;;;;:::o;10877:114::-;1041:17;:15;:17::i;:::-;:34;;;;1062:13;:11;:13::i;:::-;1033:64;;;;;;;-1:-1:-1;;;;;1033:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10949:7;:36;;-1:-1:-1;;;;;;10949:36:0;-1:-1:-1;;;;;10949:36:0;;;;;;;;;;10877:114::o;11996:184::-;1700:15;:13;:15::i;:::-;1692:43;;;;;;;-1:-1:-1;;;;;1692:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12087:31:0;;;;12079:59;;;;;-1:-1:-1;;;;;12079:59:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12079:59:0;;;;;;;;;;;;;;;12145:11;:29;;-1:-1:-1;;;;;;12145:29:0;-1:-1:-1;;;;;12145:29:0;;;;;;;;;;11996:184::o;17316:758::-;17464:16;17627:19;17386:36;17406:10;17418:3;17386:19;:36::i;:::-;17429:28;17444:3;17449:7;17429:14;:28::i;:::-;17494:3;;17484:7;:13;;;;;;;17526:8;;:45;;;;;;17545:10;17526:45;;;;17565:4;17526:45;;;;;;17484:13;;;;17502:8;17483:28;;-1:-1:-1;17483:28:0;;-1:-1:-1;;;;;17526:8:0;;;;:18;;:45;;;;;;;;;;;;;;-1:-1:-1;17526:8:0;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;17526:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17526:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17526:45:0;:60;;17518:102;;;;;-1:-1:-1;;;;;17518:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17649:8;;:30;;;-1:-1:-1;;;;;17649:30:0;;17668:10;17649:30;;;;;;-1:-1:-1;;;;;17649:8:0;;;;:18;;:30;;;;;;;;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;17649:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17649:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17649:30:0;;-1:-1:-1;17694:29:0;;;;17686:68;;;;;-1:-1:-1;;;;;17686:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17769:8;;:61;;;;;;17791:10;17769:61;;;;17811:4;17769:61;;;;;;;;;;;;-1:-1:-1;;;;;17769:8:0;;;;:21;;:61;;;;;;;;;;;;;;;:8;;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;17769:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17769:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17769:61:0;17761:95;;;;;;;-1:-1:-1;;;;;17761:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17871:8;;17889:15;;17871:52;;;;;;-1:-1:-1;;;;;17889:15:0;;;17871:52;;;;17920:2;17906:16;;17871:52;;;;;;:8;;;;;:17;;:52;;;;;;;;;;;;;;-1:-1:-1;17871:8:0;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;17871:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17871:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17871:52:0;17863:95;;;;;;;-1:-1:-1;;;;;17863:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17965:6;;:44;;;;;;-1:-1:-1;;;;;17965:44:0;;;;;;;;;;;;;:6;:44;;;;;;;;;;;;:6;;;;;:14;;:44;;;;;:6;;:44;;;;;;;:6;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17965:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18021:47:0;;;18043:10;18021:47;;-1:-1:-1;;;;;18021:47:0;;;;;;;;;;;;;;;;-1:-1:-1;18021:47:0;;;;;;;-1:-1:-1;18021:47:0;17316:758;;;;:::o;11642:166::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11724:28:0;;;;11716:56;;;;;-1:-1:-1;;;;;11716:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11716:56:0;;;;;;;;;;;;;;;11779:8;:23;;-1:-1:-1;;;;;;11779:23:0;-1:-1:-1;;;;;11779:23:0;;;;;;;;;;11642:166::o;12652:82::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;12709:11;:19;;-1:-1:-1;;12709:19:0;;;12652:82::o;15577:103::-;-1:-1:-1;;;;;15659:14:0;;15632:5;15659:14;;;:3;:14;;;;;;;;15653:21;;;;;;;;15646:28;;15577:103;;;;:::o;9017:33::-;;;;;;;;;;;;;;;:::o;2161:87::-;2236:6;;-1:-1:-1;;;;;2236:6:0;2222:10;:20;;2161:87::o;18080:848::-;18284:15;18606:19;18148:1;18142:3;;:7;18134:54;;;;;;;-1:-1:-1;;;;;18134:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18203:7;;:29;;;-1:-1:-1;;;;;18203:29:0;;18221:10;18203:29;;;;;;-1:-1:-1;;;;;18203:7:0;;;;:17;;:29;;;;;;;;;;;;;;;:7;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;18203:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18203:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18203:29:0;18195:63;;;;;;;-1:-1:-1;;;;;18195:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18265:12;:10;:12::i;:::-;18318:3;;18326:8;;18303:18;;18302:33;18284:51;;18342:27;18358:10;18342:15;:27::i;:::-;18398:10;;18384:24;;;18376:64;;;;;-1:-1:-1;;;;;18376:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18447:45;18469:10;18481;18447:21;:45::i;:::-;18499:6;;:51;;;;;;;;;;;;18539:10;18499:51;;;;;;-1:-1:-1;;;;;18499:6:0;;;;:27;;:51;;;;;:6;;:51;;;;;;;;:6;;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;18499:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18559:6:0;;:40;;;;;;18576:10;18559:40;;;;;;;;;;;;-1:-1:-1;;;;;18559:6:0;;;;-1:-1:-1;18559:16:0;;-1:-1:-1;18559:40:0;;;;;:6;;:40;;;;;;;;:6;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;18559:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18628:8:0;;:30;;;-1:-1:-1;;;;;18628:30:0;;18647:10;18628:30;;;;;;-1:-1:-1;;;;;18628:8:0;;;;-1:-1:-1;18628:18:0;;-1:-1:-1;18628:30:0;;;;;;;;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18628:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18628:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18628:30:0;18673:8;;:43;;;;;;18691:10;18673:43;;;;;;;;;;;;18628:30;;-1:-1:-1;;;;;;18673:8:0;;;;:17;;:43;;;;;18628:30;;18673:43;;;;;;;;:8;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;18673:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18673:43:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18673:43:0;18665:85;;;;;;;-1:-1:-1;;;;;18665:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18799:32;:14;18818:12;18799:32;:18;:32;:::i;:::-;18765:8;;:30;;;-1:-1:-1;;;;;18765:30:0;;18784:10;18765:30;;;;;;-1:-1:-1;;;;;18765:8:0;;;;:18;;:30;;;;;;;;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;18765:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18765:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18765:30:0;:66;18757:105;;;;;-1:-1:-1;;;;;18757:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18874:48;;;18885:10;18874:48;;;;;;;;;;;;;;;;;;;;;;;;;18080:848;;;:::o;18934:718::-;19122:16;18989:11;;;18981:46;;;;;-1:-1:-1;;;;;18981:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19042:8;;:30;;;-1:-1:-1;;;;;19042:30:0;;19061:10;19042:30;;;;;;19076:7;;-1:-1:-1;;;;;19042:8:0;;:18;;:30;;;;;;;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;19042:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19042:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19042:30:0;:41;;19034:81;;;;;-1:-1:-1;;;;;19034:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19141:32;19165:7;19141:23;:32::i;:::-;19122:51;-1:-1:-1;19196:4:0;19188:21;:36;-1:-1:-1;19188:36:0;19180:85;;;;;-1:-1:-1;;;;;19180:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19272:28;19288:11;19272:15;:28::i;:::-;19315:8;;:45;;;;;;19334:10;19315:45;;;;19354:4;19315:45;;;;;;19364:7;;-1:-1:-1;;;;;19315:8:0;;:18;;:45;;;;;;;;;;;;;;:8;;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;19315:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19315:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19315:45:0;:56;;19307:98;;;;;-1:-1:-1;;;;;19307:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19420:8;;:57;;;;;;19442:10;19420:57;;;;19462:4;19420:57;;;;;;;;;;;;-1:-1:-1;;;;;19420:8:0;;;;:21;;:57;;;;;;;;;;;;;;;:8;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;19420:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19420:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19420:57:0;19412:91;;;;;;;-1:-1:-1;;;;;19412:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19510:32;;:10;;:32;;;;;19530:11;;19510:32;;;;19530:11;19510:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;19549:6:0;;:39;;;;;;;;;;;;;;-1:-1:-1;;;;;19549:6:0;;;;:26;;:39;;;;;:6;;:39;;;;;;;;:6;;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;19549:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19600:46:0;;;19613:10;19600:46;;;;;;;;;;;;;;;;;;-1:-1:-1;19600:46:0;;;;;;;-1:-1:-1;19600:46:0;18934:718;;:::o;9510:21::-;;;-1:-1:-1;;;;;9510:21:0;;:::o;12363:201::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12459:35:0;;;;12451:63;;;;;-1:-1:-1;;;;;12451:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12451:63:0;;;;;;;;;;;;;;;12521:15;:37;;-1:-1:-1;;;;;;12521:37:0;-1:-1:-1;;;;;12521:37:0;;;;;;;;;;12363:201::o;16197:717::-;16281:8;;16534:29;;;;;;16281:8;;;:68;;-1:-1:-1;16307:42:0;16293:10;:56;16281:68;16273:106;;;;;;;-1:-1:-1;;;;;16273:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16386:36;16406:10;16418:3;16386:19;:36::i;:::-;16445:1;16437:9;;16429:38;;;;;-1:-1:-1;;;;;16429:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16474:53;16489:3;16517:8;16495:9;:17;;16494:32;16474:14;:53::i;:::-;16618:1;16603:5;16567:27;16582:5;16571:8;;:16;16567:25;:27::i;:::-;16597:3;16567:33;:41;;;;;;;;16566:54;;16534:86;;16713:1;16695:8;;16659:27;16671:8;;16663:5;:16;16659:25;:27::i;:::-;16689:3;16659:33;:44;;;;;;;;16658:57;;16627:88;;16739:24;:51;;;;;16767:23;16739:51;16722:68;;16805:9;16797:55;;;;;;;-1:-1:-1;;;;;16797:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16859:49;16874:10;16886:3;16891:9;16902:5;16859:14;:49::i;:::-;16197:717;;;;;:::o;12982:248::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13058:1;13049:10;;13041:34;;;;;-1:-1:-1;;;;;13041:34:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13041:34:0;;;;;;;;;;;;;;;13099:5;;13090:14;;13082:42;;;;;-1:-1:-1;;;;;13082:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13149:5;;13139:15;;;13131:45;;;;;-1:-1:-1;;;;;13131:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13131:45:0;;;;;;;;;;;;;;;13183:5;:14;;;13209:15;;;;;;;;;;;;;;;;;12982:248;:::o;9440:35::-;;;;:::o;16920:390::-;16991:36;17011:10;17023:3;16991:19;:36::i;:::-;17034:28;17049:3;17054:7;17034:14;:28::i;:::-;17069:42;17091:10;17103:7;17069:21;:42::i;:::-;17118:6;;:40;;;;;;-1:-1:-1;;;;;17118:40:0;;;;;;;;;;;;;17147:1;17118:40;;;;;;;;;;;;:6;;;;;:14;;:40;;;;;:6;;:40;;;;;;;:6;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17118:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17165:6:0;;17228:15;;17165:79;;;;;;17224:2;17214:12;;17165:79;;;;-1:-1:-1;;;;;17228:15:0;;;17165:79;;;;;;:6;;;;;-1:-1:-1;17165:48:0;;-1:-1:-1;17165:79:0;;;;;-1:-1:-1;;17165:79:0;;;;;;;-1:-1:-1;17165:6:0;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;17165:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17256:48:0;;;17279:10;17256:48;;-1:-1:-1;;;;;17256:48:0;;;;;;;;;;;;;;;;-1:-1:-1;17256:48:0;;;;;;;-1:-1:-1;17256:48:0;16920:390;;:::o;13236:207::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13312:5;;13303:14;;13295:42;;;;;-1:-1:-1;;;;;13295:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13362:5;;13352:15;;;13344:45;;;;;-1:-1:-1;;;;;13344:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13344:45:0;;;;;;;;;;;;;;;13396:5;:14;;;13422:15;;;;;;;;;;;;;;;;;13236:207;:::o;11814:176::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11902:31:0;;;;11894:59;;;;;-1:-1:-1;;;;;11894:59:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11894:59:0;;;;;;;;;;;;;;;11960:6;:24;;-1:-1:-1;;;;;;11960:24:0;-1:-1:-1;;;;;11960:24:0;;;;;;;;;;11814:176::o;10997:263::-;1270:12;:10;:12::i;:::-;:29;;;;1286:13;:11;:13::i;:::-;1262:54;;;;;;;-1:-1:-1;;;;;1262:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11058:12;:10;:12::i;:::-;11054:72;;;11090:11;;;;;;;11089:12;11081:37;;;;;-1:-1:-1;;;;;11081:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11152:1;11140:13;;11132:37;;;;;-1:-1:-1;;;;;11132:37:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11132:37:0;;;;;;;;;;;;;;;11197:8;;11184:21;;;11176:51;;;;;-1:-1:-1;;;;;11176:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11176:51:0;;;;;;;;;;;;;;;11234:8;:20;10997:263::o;9409:26::-;;;;:::o;10761:110::-;1041:17;:15;:17::i;:::-;:34;;;;1062:13;:11;:13::i;:::-;1033:64;;;;;;;-1:-1:-1;;;;;1033:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10832:6;:33;;-1:-1:-1;;;;;;10832:33:0;-1:-1:-1;;;;;10832:33:0;;;;;;;;;;10761:110::o;12186:171::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12270:29:0;;;;12262:57;;;;;-1:-1:-1;;;;;12262:57:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12262:57:0;;;;;;;;;;;;;;;12326:9;:25;;-1:-1:-1;;;;;;12326:25:0;-1:-1:-1;;;;;12326:25:0;;;;;;;;;;12186:171::o;15485:86::-;15553:12;;15485:86;:::o;15138:71::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;15187:2;;:16;;;;;;;;;;;;;;-1:-1:-1;;;;;15187:2:0;;;;:12;;:16;;;;;:2;;:16;;;;;;;;:2;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;15187:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;9389:15:0;;;;:::o;19660:125::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;19744:8;;:35;;;;;;-1:-1:-1;;;;;19744:35:0;;;;;;;;;;;;;;;:8;;;;;:17;;:35;;;;;;;;;;;;;;:8;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;19744:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19744:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;19660:125:0:o;2353:97::-;2433:11;;-1:-1:-1;;;;;2433:11:0;2419:10;:25;;2353:97::o;16031:160::-;16149:7;;:36;;;;;;16174:10;16149:36;;;;;;16070:4;;16076:6;;16070:4;;16076:6;;16070:4;;;;;;;;-1:-1:-1;;;;;16149:7:0;;;;:24;;:36;;;;;16070:4;;16149:36;;;;;;;;16070:4;16149:7;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;16149:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16149:36:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;16149:36:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;16149:36:0;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;16149:36:0;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;16149:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16142:43;;;;;;;;;;;;;;;;16031:160;;;;;;;;:::o;14530:422::-;14778:7;1373:10;:8;:10::i;:::-;:27;;;;1387:13;:11;:13::i;:::-;1365:50;;;;;;;-1:-1:-1;;;;;1365:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14607:14;;14624:1;-1:-1:-1;14599:53:0;;;;;-1:-1:-1;;;;;14599:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14667:14;;14685:3;-1:-1:-1;14667:21:0;14659:48;;;;;-1:-1:-1;;;;;14659:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14731:1;14722:5;:10;;;;:24;;;;;14745:1;14736:5;:10;;;;14722:24;14714:52;;;;;;;-1:-1:-1;;;;;14714:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14788:1:0;14773:144;14795:7;:14;14791:1;:18;;;14773:144;;;14833:10;;14847;;14833:7;;:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14833:24:0;;;14825:48;;;;;-1:-1:-1;;;;;14825:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14903:5;14900:9;;;;;;;;;;14882:3;:15;14886:7;14894:1;14886:10;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14882:15:0;;;;;;;;;;;-1:-1:-1;14882:15:0;:27;;-1:-1:-1;;14882:27:0;;;;;;;;;;;;;;;-1:-1:-1;14811:3:0;;14773:144;;;14928:18;14931:7;14940:5;14928:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14928:18:0;;;;;;;;;;;;;;;;;;14530:422;;;:::o;15059:73::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;15108:2;;:18;;;;;;;;;;;;;;-1:-1:-1;;;;;15108:2:0;;;;:14;;:18;;;;;:2;;:18;;;;;;;;:2;;:18;;;5:2:-1;;;;30:1;27;20:12;15397:82:0;15463:10;;15397:82;:::o;15215:116::-;15277:9;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;15318:2:0;;15307:18;;;;;;-1:-1:-1;;;;;15318:2:0;;;15307:18;;;;;;;;;;;;15296:3;;15307:10;;;;;:18;;;;;;;;;;;;;;15318:2;15307:10;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;15307:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15307:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;12740:115:0;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;12813:1;12805:9;;12797:33;;;;;-1:-1:-1;;;;;12797:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12797:33:0;;;;;;;;;;;;;;;12837:4;:12;12740:115::o;14958:95::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;15028:2;;:19;;;;;;-1:-1:-1;;;;;15028:19:0;;;;;;;;;;;;;;;;;;;;;:2;;;:11;;15040:2;;15044;;15028:19;;;;;;;;;;;;:2;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15028:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15028:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15028:19:0;;;;14958:95;;:::o;1961:97::-;2041:11;;-1:-1:-1;;;;;2041:11:0;2027:10;:25;;1961:97::o;12861:115::-;1475:13;:11;:13::i;:::-;:30;;;;1492:13;:11;:13::i;:::-;1467:56;;;;;;;-1:-1:-1;;;;;1467:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12934:1;12926:9;;12918:33;;;;;-1:-1:-1;;;;;12918:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12918:33:0;;;;;;;;;;;;;;;12958:4;:12;12861:115::o;13449:187::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13535:8;;;;13522:21;;;;;;;13514:51;;;;;-1:-1:-1;;;;;13514:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13514:51:0;;;;;;;;;;;;;;;13572:8;:20;;-1:-1:-1;;13572:20:0;;;;;;;;;13604:26;;;13572:20;13621:8;;;13604:26;;;;;;;;;;;;;;;13449:187;:::o;11266:173::-;1585:15;:13;:15::i;:::-;:32;;;;1604:13;:11;:13::i;:::-;1577:60;;;;;;;-1:-1:-1;;;;;1577:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11352:29:0;;;;11344:57;;;;;-1:-1:-1;;;;;11344:57:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11344:57:0;;;;;;;;;;;;;;;11408:9;:25;;-1:-1:-1;;;;;;11408:25:0;-1:-1:-1;;;;;11408:25:0;;;;;;;;;;11266:173::o;1854:101::-;1936:13;;-1:-1:-1;;;;;1936:13:0;1922:10;:27;;1854:101::o;13642:156::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13710:1;13703:8;;13695:32;;;;;-1:-1:-1;;;;;13695:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13750:3;;13742:11;;;13734:41;;;;;-1:-1:-1;;;;;13734:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13782:3;:10;13642:156::o;9244:27::-;;;;:::o;13804:156::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13872:1;13865:8;;13857:32;;;;;-1:-1:-1;;;;;13857:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13912:3;;13904:11;;;13896:41;;;;;-1:-1:-1;;;;;13896:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13944:3;:10;13804:156::o;13966:266::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;14057:1;14043:15;;14035:50;;;;;-1:-1:-1;;;;;14035:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14115:10;;14100:25;;;14092:66;;;;;-1:-1:-1;;;;;14092:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14165:10;:24;;;14201:25;;;;;;;;;;;;;;;;;13966:266;:::o;9213:26::-;;;;:::o;12570:76::-;1373:10;:8;:10::i;:::-;:27;;;;1387:13;:11;:13::i;:::-;1365:50;;;;;;;-1:-1:-1;;;;;1365:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12622:11;:18;;-1:-1:-1;;12622:18:0;;;;;12570:76::o;9536:75::-;;;-1:-1:-1;;;;;9536:75:0;;:::o;9276:20::-;;;;:::o;20901:436::-;20986:7;;:24;;;-1:-1:-1;;;;;20986:24:0;;-1:-1:-1;;;;;20986:24:0;;;;;;;;;:7;;;;;:17;;:24;;;;;;;;;;;;;;:7;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;20986:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20986:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20986:24:0;20978:58;;;;;;;-1:-1:-1;;;;;20978:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21051:7;;:22;;;-1:-1:-1;;;;;21051:22:0;;-1:-1:-1;;;;;21051:22:0;;;;;;;;;:7;;;;;:17;;:22;;;;;;;;;;;;;;:7;;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;21051:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21051:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21051:22:0;21043:71;;;;;;;-1:-1:-1;;;;;21043:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21125:12:0;;;;;;;21121:140;;21156:7;;:55;;;;;;-1:-1:-1;;;;;21156:55:0;;;;;;;;;;;;;;;;:7;;;;;:43;;:55;;;;;;;;;;;;;;:7;;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;21156:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21156:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21156:55:0;21148:105;;;;;;;-1:-1:-1;;;;;21148:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21275:8;;21286:1;-1:-1:-1;21267:64:0;;;;;-1:-1:-1;;;;;21267:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20901:436;;:::o;20384:511::-;20614:12;20471:17;;;20463:48;;;;;-1:-1:-1;;;;;20463:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20543:5;;20526:22;;;20518:89;;;;;-1:-1:-1;;;;;20518:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20629:6;;:38;;;;;;-1:-1:-1;;;;;20629:38:0;;;;;;;;;:6;;;;;:31;;:38;;;;;;;;;;;;;;:6;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;20629:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20629:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20629:38:0;;-1:-1:-1;20678:12:0;;20674:216;;;20726:5;;20709:22;;;20701:66;;;;;-1:-1:-1;;;;;20701:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20674:216;;;20798:24;;;;20790:92;;;;;-1:-1:-1;;;;;20790:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20384:511;;;:::o;21343:187::-;21385:12;21419:7;21404:10;21400:15;;;;:3;:15;;;;;;;;:26;;;;;;;;;;:56;;;;-1:-1:-1;21449:7:0;21434:10;21430:15;;;;:3;:15;;;;;;;;:26;;;;;;;;;;21400:56;21385:71;;21471:7;21463:61;;;;;;;-1:-1:-1;;;;;21463:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21343:187;:::o;21536:1082::-;21633:10;21594:27;21624:20;;;:8;:20;;;;;21655:15;;21624:20;;21594:27;;;;;;;;;;;;;21655:20;21651:914;;;21709:4;;21694:19;;;21686:49;;;;;-1:-1:-1;;;;;21686:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21651:914;;;21853:15;;21784:1;;-1:-1:-1;21784:1:0;;-1:-1:-1;21853:15:0;-1:-1:-1;21784:1:0;;-1:-1:-1;21877:324:0;21898:6;21894:1;:10;21877:324;;;21949:8;21958:1;21949:11;;;;;;;;;;;;;;;;;;;;21922:38;;22007:7;:12;;;21998:6;21992:3;:12;:27;21971:48;;22033:13;22030:162;;;22105:14;;;;22082:38;;:18;;:38;:22;:38;:::i;:::-;22061:59;;22030:162;;;22151:29;;;;;22030:162;21906:3;;;;;21877:324;;;22243:1;22213:27;:31;22209:266;;;-1:-1:-1;22271:1:0;22257:152;22278:15;;:45;;;22274:49;;22257:152;;;22356:8;22369:27;22365:1;:31;22356:41;;;;;;;;;;;;;;;;;;;;22342:8;22351:1;22342:11;;;;;;;;;;;;;;;;;;:55;;:11;;;;;:55;;;;;;;;;;;;22325:3;22257:152;;;22419:46;;;;;;:8;:46;;:::i;:::-;;22209:266;22530:4;;22491:35;:18;22514:11;22491:35;:22;:35;:::i;:::-;:43;;22483:74;;;;;-1:-1:-1;;;;;22483:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22585:26:0;;;;;;;;;22594:3;22585:26;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;22571:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21536:1082:0:o;23639:208::-;23740:6;;:30;;;;;;-1:-1:-1;;;;;23740:30:0;;;;;;;;;23719:18;;23740:6;;;;;:23;;:30;;;;;;;;;;;;;;;23719:18;23740:6;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;23740:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23740:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23740:30:0;;-1:-1:-1;23785:24:0;;;;23777:64;;;;;-1:-1:-1;;;;;23777:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7928:158;7986:7;8014:5;;;8034:6;;;;8026:37;;;;;-1:-1:-1;;;;;8026:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8079:1;7928:158;-1:-1:-1;;;7928:158:0:o;19817:169::-;19886:4;19913:1;19907:3;;:7;19899:54;;;;;;;-1:-1:-1;;;;;19899:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19977:3;;19967:7;:13;;;;;;;;;19817:169;-1:-1:-1;;19817:169:0:o;22624:1009::-;22781:23;22817:32;22862:11;22905:6;22945:24;22994:18;23285:6;22682:8;:15;;;;22701:1;22682:20;22678:906;;;22732:4;;22721:15;;;22713:45;;;;;-1:-1:-1;;;;;22713:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;22678:906;;;22876:8;:15;22807:1;;-1:-1:-1;22807:1:0;;-1:-1:-1;22876:15:0;-1:-1:-1;22807:1:0;;-1:-1:-1;22900:324:0;22921:6;22917:1;:10;22900:324;;;22972:8;:11;;22981:1;;22972:11;;;;;;;;;;;;;;;;22945:38;;23030:7;:12;;;23021:6;23015:3;:12;:27;22994:48;;23056:13;23053:162;;;23128:14;;;;23105:38;;:18;;:38;:22;:38;:::i;:::-;23084:59;;23053:162;;;23174:29;;;;;23053:162;22929:3;;;;;22900:324;;;23266:1;23236:27;:31;23232:266;;;-1:-1:-1;23294:1:0;23280:152;23301:8;:15;:45;;;23297:49;;23280:152;;;23379:8;:41;;23388:31;;;;23379:41;;;;;;;;;;;;;;;;23365:8;23374:1;23365:11;;;;;;;;;;;;;;;;;;:55;;:11;;;;;:55;;;;;;;;;;;;23348:3;23280:152;;;23442:8;:46;;;;;;;;;;:::i;:::-;;23232:266;23549:4;;23514:31;:18;23537:7;23514:31;:22;:31;:::i;:::-;:39;;23506:70;;;;;-1:-1:-1;;;;;23506:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23604:22:0;;;;;;;;;23613:3;23604:22;;;;;;;;23590:8;27:10:-1;;39:1;23:18;;45:23;;-1:-1;23590:37:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22624:1009:0:o;2475:149::-;2523:4;2549:1;2540:6;:10;2536:57;;;2573:6;-1:-1:-1;;2573:11:0;2561:24;;;;2536:57;-1:-1:-1;2611:6:0;2475:149::o;19992:386::-;20212:6;;:55;;;;;;-1:-1:-1;;;;;20212:55:0;;;;;;;20196:8;20166:25;;;20165:40;20212:55;;;;;;20095:18;20212:55;;;;;;;;;;;;;;20136:2;20116:22;;;20165:40;;20212:6;;;;;:14;;:55;;;;;20095:18;;20212:55;;;;;20095:18;20212:6;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;20212:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;20274:15:0;;:39;;-1:-1:-1;;;;;20274:15:0;;;;-1:-1:-1;20274:39:0;;;;;-1:-1:-1;20299:13:0;;20274:15;:39;:15;:39;20299:13;20274:15;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;20325:47:0;;;-1:-1:-1;;;;;20325:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19992:386;;;;;;:::o;8717:15133::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://13221dee97842ebc061560780a87c13ed6a9f15299acbf2dbcc8e0a5849590e0

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.