FTM Testnet

Contract

0x1560521fa954db72d515F3C95e09e92DF1b1865d

Overview

FTM Balance

Fantom LogoFantom LogoFantom Logo0.04 FTM

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Value
Transfer Ownersh...83483052022-03-10 21:25:54749 days ago1646947554IN
0x1560521f...DF1b1865d
0 FTM0.00603482200.0142
Buy Country83471892022-03-10 20:19:33749 days ago1646943573IN
0x1560521f...DF1b1865d
0.01 FTM0.06668513200.0142
Buy Country83469022022-03-10 20:02:05749 days ago1646942525IN
0x1560521f...DF1b1865d
0.01 FTM0.05672982200.0142
Buy Country83449242022-03-10 17:49:20749 days ago1646934560IN
0x1560521f...DF1b1865d
0.01 FTM0.05721886200.0142
Buy Country83277012022-03-09 21:00:14750 days ago1646859614IN
0x1560521f...DF1b1865d
0.01 FTM0.05945582200.0142
Buy Country83276802022-03-09 20:57:50750 days ago1646859470IN
0x1560521f...DF1b1865d
0.01 FTM0.2397723500.0142
0x6080604083275742022-03-09 20:50:02750 days ago1646859002IN
 Create: ConquerorV2TEST
0 FTM0.56055543202.5

Latest 6 internal transactions

Parent Txn Hash Block From To Value
83471892022-03-10 20:19:33749 days ago1646943573
0x1560521f...DF1b1865d
0.01 FTM
83469022022-03-10 20:02:05749 days ago1646942525
0x1560521f...DF1b1865d
0.01 FTM
83449242022-03-10 17:49:20749 days ago1646934560
0x1560521f...DF1b1865d
0.01 FTM
83277012022-03-09 21:00:14750 days ago1646859614
0x1560521f...DF1b1865d
0.01 FTM
83276802022-03-09 20:57:50750 days ago1646859470
0x1560521f...DF1b1865d
0.01 FTM
83275742022-03-09 20:50:02750 days ago1646859002  Contract Creation0 FTM
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ConquerorV2TEST

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at testnet.ftmscan.com on 2022-03-09
*/

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

interface IConqStorage {

	function pushPrice(string memory country, uint256 value) external;
	function pushMessage(string memory country, string memory message) external;
	function pushOwner(string memory country, address value) external;
	function pushID(string memory country) external;
	function pushTime(string memory country, uint256 value) external;
	function pushHighest(uint256 value) external;
    function fullSet(string memory country, uint256 price, string memory message, address owner, uint256 time) external;
	function addPrice(string memory country) external;
	function getHighestPrice() external view returns (uint256);
	function getCountryOwner(string memory country) external view returns (address);
	function getValueOfCountry(string memory country) external view returns (uint256);
	function getTime(string memory country) external view returns (uint256);
	function getID(string memory country) external view returns (string memory);
	
}

interface IitemLogic {
	
	function mintOffensive(address account) external;
	function mintDefensive(address account) external;
	function batchOffensive(address account) external;
	function batchDefensive(address account) external;
	function tradeWarMonger(uint256 item) external;
	function fullRangeRoll(address account) external;
}

interface ICHAMPION {

	function mint(address value, uint256 amount) external;
	
	function ownerOf(uint256 tokenId) external view returns (address owner);
}

interface I1155TRANS {

    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) external;
}

interface IRNDM {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
	function burn(uint256 amount) external;
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Context {
  function _msgSender() internal view virtual returns(address payable) {
    return payable(msg.sender);
  }

  function _msgData() internal view virtual returns(bytes memory) {
    this;
    return msg.data;
  }
}

contract Ownable is Context {
  address private _owner;

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

  constructor() {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);
  }

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

  modifier onlyOwner() {
    require(_owner == _msgSender(), "Ownable: caller is not the owner");
    _;
  }

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

  function transferOwnership(address newOwner) public virtual onlyOwner {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

contract ConquerorV2TEST is Context, Ownable {

//vars
	address public store = 0x5623A8c0219Db4ed74e0Aa69103492c79c3b5CE7;
	address private devW = 0x564e9155Ff9268B4B7dA4F7b5fCa000Ea0f46Ebb;
	address private rndm = 0x3dF9088c480f3505e69EF2482E6bCC9c81776b61;
	address public gameItems = 0x60d195C29C97ADCa3D7A79b340DF3CAdb94a0e61;
	address public grandChamp = 0xc755D314359b8771C8853aca5C95908CD472327c;
	address public itemBase = 0x055d07D86EF9d2971E8865e9Ccf06f09fBf58905;
	uint256 public feeStep = 10000000000000000;
	uint256 public startStep = 12000000000000000;
	uint256 public attackMul = 10;
	uint256 public assistMul = 5;
	uint256 public championNum = 0;
	uint256 public tokenPrice = 0;
	uint256 public feeBalance = 0;
  uint256 public warMongerPrice = 1000 * 1e18;

//PUBLIC
  function buyCountry(string memory _country, string memory _message) public payable {
  IConqStorage db = IConqStorage(store);
  IitemLogic items = IitemLogic(gameItems);
    require(bytes(_message).length <= 140, "Message must be under 140 characters");
    if (db.getValueOfCountry(_country) > 0) {
      require(msg.value == db.getValueOfCountry(_country), "Too much money sent");
      uint256 transferAmount = db.getValueOfCountry(_country);
      payable(db.getCountryOwner(_country)).transfer(transferAmount*(110)/(120));
      uint256 feeAmount = db.getValueOfCountry(_country);
      feeBalance = feeBalance+(feeAmount*(10)/(120));
    } else {
      require(msg.value == feeStep, "Not enough sent");
      if(db.getCountryOwner(_country) != 0x0000000000000000000000000000000000000000) {
	  items.fullRangeRoll(db.getCountryOwner(_country));
      }
      feeBalance = feeBalance+(feeStep);
    }
    db.addPrice(_country);
    db.fullSet(_country, msg.value*(120)/(100), _message, tx.origin, block.timestamp);
    if (db.getValueOfCountry(_country) > db.getHighestPrice()) {
    db.pushHighest(db.getValueOfCountry(_country));
    }
	items.fullRangeRoll(tx.origin);
  }

  function hijackMessage(string memory _country,string memory _message) public {
    IConqStorage db = IConqStorage(store);
	IitemLogic items = IitemLogic(gameItems);
	IRNDM tokenContract = IRNDM(rndm);
    timeCheck(_country);
    require(tokenContract.transferFrom(
        msg.sender,
        address(this),
        tokenPrice
        ) == true,
        'Could not transfer tokens'
        );
	db.pushMessage(_country, _message);
	items.fullRangeRoll(tx.origin);
  }
  
  function attack(string memory _country) public {
	IConqStorage db = IConqStorage(store);
	IitemLogic items = IitemLogic(gameItems);
  	IRNDM tokenContract = IRNDM(rndm);
    timeCheck(_country);
	require(tokenContract.transferFrom(
        msg.sender,
        address(this),
        db.getValueOfCountry(_country) * attackMul
        ) == true,
        'Could not transfer tokens from your address to this contract'
        );
	  db.pushPrice(_country, db.getValueOfCountry(_country) - startStep);
	  items.mintOffensive(tx.origin);
	  items.mintDefensive(db.getCountryOwner(_country));
 }	  

  function assist(string memory _country) public {
	IConqStorage db = IConqStorage(store);
	IitemLogic items = IitemLogic(gameItems);
  	IRNDM tokenContract = IRNDM(rndm);
    timeCheck(_country);
  	require(tokenContract.transferFrom(
        msg.sender,
        address(this),
        db.getValueOfCountry(_country) * assistMul
        ) == true,
        'Could not transfer tokens from your address to this contract'
        );
	  db.pushPrice(_country, db.getValueOfCountry(_country) + startStep);
	  items.mintDefensive(tx.origin);
	  items.mintOffensive(db.getCountryOwner(_country));
	  
 }

    function becomeGrandChampion() public {
    ICHAMPION champ = ICHAMPION(grandChamp);
    senditems();
    champ.mint(tx.origin, 1);
    championNum = championNum + 1;
 }

  function timeCheck(string memory _country) public {
  IConqStorage db = IConqStorage(store);
      if (db.getValueOfCountry(_country) > startStep + startStep) {
      timeCheckUtils(_country);
      }
  }

  function timeCheckUtils(string memory _country) internal {
  IConqStorage db = IConqStorage(store);
    if (block.timestamp > db.getTime(_country) + (60*60*24*7)) {
            db.pushPrice(_country, db.getValueOfCountry(_country) - startStep);
            db.pushTime(_country, block.timestamp);    
    }
  }

  function withdrawAdmin() public onlyOwner {
    payable(owner()).transfer(feeBalance);
    feeBalance = 0;
  }
  
  function GrandReward() public payable {
	ICHAMPION champ = ICHAMPION(grandChamp);
	require(champ.ownerOf(championNum) == msg.sender);
    (bool hs, ) = payable(msg.sender).call{value: feeBalance * 5 / 100}("");
    require(hs);    
    (bool os, ) = payable(owner()).call{value: feeBalance}("");
    require(os);
  }

  function senditems() internal {
        I1155TRANS ib = I1155TRANS(itemBase);
        uint8 totalIdAmount = 50;
        uint256[] memory iL = new uint256[](totalIdAmount);
        uint256[] memory iQ = new uint256[](totalIdAmount);
        for (uint256 i = 0; i < totalIdAmount; i++) {
            iL[i] = i + 1;
            iQ[i] = 1;
        }
        ib.safeBatchTransferFrom(tx.origin, devW, iL, iQ, "");
    }

//GETS

  function getBalance() public view returns(uint256) {
    return feeBalance;
  }

//ADMIN
  function giveCountry(uint256 value, string memory _country, address _target, string memory _message) public onlyOwner {
  IConqStorage db = IConqStorage(store);
    db.pushPrice(_country, value);
    db.pushOwner(_country, _target);
    db.pushMessage(_country, _message);
  }
  
  function resetCountryAdmin(string memory _country, address _target, string memory _message) public onlyOwner {
  IConqStorage db = IConqStorage(store);
    db.pushPrice(_country, startStep);
    db.pushOwner(_country, _target);
    db.pushMessage(_country, _message);
    db.addPrice(_country);
  }

  function adminDepo(uint256 amount) external onlyOwner {
    IRNDM tokenContract = IRNDM(rndm);
    require(tokenContract.transferFrom(
        msg.sender,
        address(this),
        amount
        ) == true,
        'Could not transfer tokens from your address to this contract'
        );
    }

  function adminWithdraw(uint256 amount) external onlyOwner {
    IRNDM tokenContract = IRNDM(rndm);
    require(tokenContract.transfer(
        msg.sender,
        amount
        ) == true,
        'Could not transfer tokens to your address from this contract'
        );
    }

  function warMonger(uint256 item) external {
  IitemLogic items = IitemLogic(gameItems);
  IRNDM tokenContract = IRNDM(rndm);
    require(tokenContract.transferFrom(
        msg.sender,
        address(this),
        warMongerPrice
        ) == true,
        'Could not transfer tokens to your address from this contract'
        );
      items.tradeWarMonger(item);
  }

  function rndmBalance() public view returns (uint256) {
    IRNDM tokenContract = IRNDM(rndm);
     return tokenContract.balanceOf(address(this));
  }
  function setDevW(address value) public onlyOwner {
      devW = value;
  }
  function setToken(address value) public onlyOwner {
      rndm = value;
  }
  function setItems1155(address value) public onlyOwner {
      gameItems = value;
  }
  function setChamp721(address value) public onlyOwner {
      grandChamp = value;
  }
  function setFeeStep(uint256 value) public onlyOwner {
      feeStep = value;
  }
  function setStartStep(uint256 value) public onlyOwner {
      startStep = value;
  }
  function setAttackMul(uint256 value) public onlyOwner {
      attackMul = value;
  }
  function setAssistMul(uint256 value) public onlyOwner {
      assistMul = value;
  }
  function fixChampionsNum(uint256 value) public onlyOwner {
      championNum = value;
  }
  function setTokenPrice(uint256 value) public onlyOwner {
      tokenPrice = value;
  }
  function setWarMongerPrice(uint256 value) public onlyOwner {
	  warMongerPrice = value;
  }

}

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"GrandReward","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"adminDepo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"adminWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_country","type":"string"}],"name":"assist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"assistMul","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_country","type":"string"}],"name":"attack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"attackMul","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"becomeGrandChampion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_country","type":"string"},{"internalType":"string","name":"_message","type":"string"}],"name":"buyCountry","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"championNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeStep","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"fixChampionsNum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gameItems","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"string","name":"_country","type":"string"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"name":"giveCountry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"grandChamp","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_country","type":"string"},{"internalType":"string","name":"_message","type":"string"}],"name":"hijackMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"itemBase","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_country","type":"string"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"string","name":"_message","type":"string"}],"name":"resetCountryAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rndmBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setAssistMul","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setAttackMul","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"setChamp721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"setDevW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setFeeStep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"setItems1155","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setStartStep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setTokenPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setWarMongerPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startStep","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"store","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_country","type":"string"}],"name":"timeCheck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"item","type":"uint256"}],"name":"warMonger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"warMongerPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600180546001600160a01b0319908116735623a8c0219db4ed74e0aa69103492c79c3b5ce71790915560028054821673564e9155ff9268b4b7da4f7b5fca000ea0f46ebb179055600380548216733df9088c480f3505e69ef2482e6bcc9c81776b611790556004805482167360d195c29c97adca3d7a79b340df3cadb94a0e6117905560058054821673c755d314359b8771c8853aca5c95908cd472327c1781556006805490921673055d07d86ef9d2971e8865e9ccf06f09fbf5890517909155662386f26fc10000600755662aa1efb94e0000600855600a6009819055556000600b819055600c819055600d55683635c9adc5dea00000600e5534801561010b57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350612c168061015c6000396000f3fe6080604052600436106102455760003560e01c80637ff9b59611610139578063aabb7554116100b6578063cd7f974b1161007a578063cd7f974b1461063b578063d50760931461065b578063e8908cc31461067b578063f2fde38b14610690578063f59cfa97146106b0578063f616a267146106c557600080fd5b8063aabb7554146105a5578063b80e5bbf146105c5578063b8439a7b146105e5578063bb58d32714610605578063bccd43451461061b57600080fd5b8063975057e7116100fd578063975057e7146105195780639836d15f1461053957806399f710781461054f578063a4eeb2da1461056f578063a5e1a2be1461058557600080fd5b80637ff9b5961461048f5780638a09ce0f146104a55780638da5cb5b146104c55780639246798d146104e3578063964a68f5146104f957600080fd5b8063587235f1116101c7578063669a12121161018b578063669a1212146104075780636a61e5fc1461041a5780636d1e85c91461043a578063715018a61461045a5780637c5b4a371461046f57600080fd5b8063587235f11461038957806359fa7b28146103a957806360b71d4e146103c95780636247ba64146103df578063659fcc66146103e757600080fd5b8063218664491161020e57806321866449146102e5578063237feb88146102fb57806326903044146103115780632b67f2f4146103315780633a67d4d01461036957600080fd5b80628591531461024a57806304c76af01461026c57806312065fe014610281578063144fa6d7146102a5578063146c3e14146102c5575b600080fd5b34801561025657600080fd5b5061026a610265366004612572565b6106e5565b005b34801561027857600080fd5b5061026a61071d565b34801561028d57600080fd5b50600d545b6040519081526020015b60405180910390f35b3480156102b157600080fd5b5061026a6102c03660046125a3565b61078a565b3480156102d157600080fd5b5061026a6102e0366004612572565b6107d6565b3480156102f157600080fd5b50610292600a5481565b34801561030757600080fd5b50610292600e5481565b34801561031d57600080fd5b5061026a61032c366004612572565b610805565b34801561033d57600080fd5b50600654610351906001600160a01b031681565b6040516001600160a01b03909116815260200161029c565b34801561037557600080fd5b5061026a6103843660046125a3565b610834565b34801561039557600080fd5b5061026a6103a4366004612572565b610880565b3480156103b557600080fd5b5061026a6103c436600461266a565b6108af565b3480156103d557600080fd5b50610292600d5481565b61026a610bed565b3480156103f357600080fd5b5061026a6104023660046125a3565b610d56565b61026a6104153660046126a7565b610da2565b34801561042657600080fd5b5061026a610435366004612572565b611555565b34801561044657600080fd5b5061026a610455366004612572565b611584565b34801561046657600080fd5b5061026a611686565b34801561047b57600080fd5b5061026a61048a366004612572565b6116fa565b34801561049b57600080fd5b50610292600c5481565b3480156104b157600080fd5b5061026a6104c036600461270b565b6117c0565b3480156104d157600080fd5b506000546001600160a01b0316610351565b3480156104ef57600080fd5b5061029260075481565b34801561050557600080fd5b5061026a610514366004612572565b61193d565b34801561052557600080fd5b50600154610351906001600160a01b031681565b34801561054557600080fd5b5061029260085481565b34801561055b57600080fd5b5061026a61056a3660046126a7565b611a01565b34801561057b57600080fd5b5061029260095481565b34801561059157600080fd5b5061026a6105a0366004612572565b611bab565b3480156105b157600080fd5b5061026a6105c036600461266a565b611bda565b3480156105d157600080fd5b5061026a6105e0366004612783565b611e77565b3480156105f157600080fd5b50600554610351906001600160a01b031681565b34801561061157600080fd5b50610292600b5481565b34801561062757600080fd5b5061026a6106363660046125a3565b611f95565b34801561064757600080fd5b5061026a610656366004612572565b611fe1565b34801561066757600080fd5b50600454610351906001600160a01b031681565b34801561068757600080fd5b5061026a612010565b34801561069c57600080fd5b5061026a6106ab3660046125a3565b612099565b3480156106bc57600080fd5b50610292612183565b3480156106d157600080fd5b5061026a6106e036600461266a565b6121f8565b6000546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90612805565b60405180910390fd5b600755565b6000546001600160a01b031633146107475760405162461bcd60e51b815260040161070f90612805565b60008054600d546040516001600160a01b039092169281156108fc029290818181858888f19350505050158015610782573d6000803e3d6000fd5b506000600d55565b6000546001600160a01b031633146107b45760405162461bcd60e51b815260040161070f90612805565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108005760405162461bcd60e51b815260040161070f90612805565b600955565b6000546001600160a01b0316331461082f5760405162461bcd60e51b815260040161070f90612805565b600855565b6000546001600160a01b0316331461085e5760405162461bcd60e51b815260040161070f90612805565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108aa5760405162461bcd60e51b815260040161070f90612805565b600b55565b6001546004546003546001600160a01b039283169291821691166108d2846121f8565b806001600160a01b03166323b872dd3330600a54876001600160a01b0316631d221dbb8a6040518263ffffffff1660e01b81526004016109129190612887565b602060405180830381865afa15801561092f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610953919061289a565b61095d91906128c9565b6040518463ffffffff1660e01b815260040161097b939291906128e8565b6020604051808303816000875af115801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109be919061290c565b15156001146109df5760405162461bcd60e51b815260040161070f9061292e565b826001600160a01b03166321749a3885600854866001600160a01b0316631d221dbb896040518263ffffffff1660e01b8152600401610a1e9190612887565b602060405180830381865afa158015610a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f919061289a565b610a69919061298b565b6040518363ffffffff1660e01b8152600401610a869291906129a3565b600060405180830381600087803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b5050604051630a2f087560e41b81523260048201526001600160a01b038516925063a2f087509150602401600060405180830381600087803b158015610af957600080fd5b505af1158015610b0d573d6000803e3d6000fd5b50505050816001600160a01b031663ad284fbc846001600160a01b0316637342e4ff876040518263ffffffff1660e01b8152600401610b4c9190612887565b602060405180830381865afa158015610b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8d91906129c5565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015b600060405180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b5050505050505050565b600554600b546040516331a9108f60e11b81526001600160a01b039092169133918391636352211e91610c269160040190815260200190565b602060405180830381865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6791906129c5565b6001600160a01b031614610c7a57600080fd5b6000336001600160a01b03166064600d546005610c9791906128c9565b610ca191906129e2565b604051600081818185875af1925050503d8060008114610cdd576040519150601f19603f3d011682016040523d82523d6000602084013e610ce2565b606091505b5050905080610cf057600080fd5b60008054600d546040516001600160a01b03909216918381818185875af1925050503d8060008114610d3e576040519150601f19603f3d011682016040523d82523d6000602084013e610d43565b606091505b5050905080610d5157600080fd5b505050565b6000546001600160a01b03163314610d805760405162461bcd60e51b815260040161070f90612805565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60015460045482516001600160a01b039283169290911690608c1015610e165760405162461bcd60e51b8152602060048201526024808201527f4d657373616765206d75737420626520756e64657220313430206368617261636044820152637465727360e01b606482015260840161070f565b604051631d221dbb60e01b81526000906001600160a01b03841690631d221dbb90610e45908890600401612887565b602060405180830381865afa158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e86919061289a565b111561110a57604051631d221dbb60e01b81526001600160a01b03831690631d221dbb90610eb8908790600401612887565b602060405180830381865afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef9919061289a565b3414610f3d5760405162461bcd60e51b8152602060048201526013602482015272151bdbc81b5d58da081b5bdb995e481cd95b9d606a1b604482015260640161070f565b604051631d221dbb60e01b81526000906001600160a01b03841690631d221dbb90610f6c908890600401612887565b602060405180830381865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad919061289a565b604051637342e4ff60e01b81529091506001600160a01b03841690637342e4ff90610fdc908890600401612887565b602060405180830381865afa158015610ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101d91906129c5565b6001600160a01b03166108fc607861103684606e6128c9565b61104091906129e2565b6040518115909202916000818181858888f19350505050158015611068573d6000803e3d6000fd5b50604051631d221dbb60e01b81526000906001600160a01b03851690631d221dbb90611098908990600401612887565b602060405180830381865afa1580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d9919061289a565b905060786110e882600a6128c9565b6110f291906129e2565b600d546110ff919061298b565b600d55506112b29050565b600754341461114d5760405162461bcd60e51b815260206004820152600f60248201526e139bdd08195b9bdd59da081cd95b9d608a1b604482015260640161070f565b604051637342e4ff60e01b81526001600160a01b03831690637342e4ff90611179908790600401612887565b602060405180830381865afa158015611196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ba91906129c5565b6001600160a01b03161561129e57806001600160a01b031663ef2b1d5e836001600160a01b0316637342e4ff876040518263ffffffff1660e01b81526004016112039190612887565b602060405180830381865afa158015611220573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124491906129c5565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561128557600080fd5b505af1158015611299573d6000803e3d6000fd5b505050505b600754600d546112ae919061298b565b600d555b6040516307908fdb60e01b81526001600160a01b038316906307908fdb906112de908790600401612887565b600060405180830381600087803b1580156112f857600080fd5b505af115801561130c573d6000803e3d6000fd5b50505050816001600160a01b031663ce098db085606434607861132f91906128c9565b61133991906129e2565b8632426040518663ffffffff1660e01b815260040161135c959493929190612a04565b600060405180830381600087803b15801561137657600080fd5b505af115801561138a573d6000803e3d6000fd5b50505050816001600160a01b031663bc6f1f1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f0919061289a565b604051631d221dbb60e01b81526001600160a01b03841690631d221dbb9061141c908890600401612887565b602060405180830381865afa158015611439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145d919061289a565b111561152957604051631d221dbb60e01b81526001600160a01b0383169063fa2968df908290631d221dbb90611497908990600401612887565b602060405180830381865afa1580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d8919061289a565b6040518263ffffffff1660e01b81526004016114f691815260200190565b600060405180830381600087803b15801561151057600080fd5b505af1158015611524573d6000803e3d6000fd5b505050505b6040516377958eaf60e11b81523260048201526001600160a01b0382169063ef2b1d5e90602401610bb5565b6000546001600160a01b0316331461157f5760405162461bcd60e51b815260040161070f90612805565b600c55565b60048054600354600e546040516323b872dd60e01b81526001600160a01b0393841694929093169283926323b872dd926115c3923392309291016128e8565b6020604051808303816000875af11580156115e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611606919061290c565b15156001146116275760405162461bcd60e51b815260040161070f90612a4d565b60405163dbcef17960e01b8152600481018490526001600160a01b0383169063dbcef17990602401600060405180830381600087803b15801561166957600080fd5b505af115801561167d573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031633146116b05760405162461bcd60e51b815260040161070f90612805565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146117245760405162461bcd60e51b815260040161070f90612805565b60035460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0390911690819063a9059cbb906044016020604051808303816000875af1158015611777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179b919061290c565b15156001146117bc5760405162461bcd60e51b815260040161070f90612a4d565b5050565b6000546001600160a01b031633146117ea5760405162461bcd60e51b815260040161070f90612805565b60015460085460405163042e934760e31b81526001600160a01b039092169182916321749a389161181f9188916004016129a3565b600060405180830381600087803b15801561183957600080fd5b505af115801561184d573d6000803e3d6000fd5b50506040516323fda3c160e01b81526001600160a01b03841692506323fda3c1915061187f9087908790600401612aaa565b600060405180830381600087803b15801561189957600080fd5b505af11580156118ad573d6000803e3d6000fd5b5050604051635999ffe360e01b81526001600160a01b0384169250635999ffe391506118df9087908690600401612ad4565b600060405180830381600087803b1580156118f957600080fd5b505af115801561190d573d6000803e3d6000fd5b50506040516307908fdb60e01b81526001600160a01b03841692506307908fdb9150610bb5908790600401612887565b6000546001600160a01b031633146119675760405162461bcd60e51b815260040161070f90612805565b6003546040516323b872dd60e01b81526001600160a01b039091169081906323b872dd9061199d903390309087906004016128e8565b6020604051808303816000875af11580156119bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e0919061290c565b15156001146117bc5760405162461bcd60e51b815260040161070f9061292e565b6001546004546003546001600160a01b03928316929182169116611a24856121f8565b600c546040516323b872dd60e01b81526001600160a01b038316916323b872dd91611a569133913091906004016128e8565b6020604051808303816000875af1158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a99919061290c565b1515600114611aea5760405162461bcd60e51b815260206004820152601960248201527f436f756c64206e6f74207472616e7366657220746f6b656e7300000000000000604482015260640161070f565b604051635999ffe360e01b81526001600160a01b03841690635999ffe390611b189088908890600401612ad4565b600060405180830381600087803b158015611b3257600080fd5b505af1158015611b46573d6000803e3d6000fd5b50506040516377958eaf60e11b81523260048201526001600160a01b038516925063ef2b1d5e91506024015b600060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b03163314611bd55760405162461bcd60e51b815260040161070f90612805565b600a55565b6001546004546003546001600160a01b03928316929182169116611bfd846121f8565b806001600160a01b03166323b872dd3330600954876001600160a01b0316631d221dbb8a6040518263ffffffff1660e01b8152600401611c3d9190612887565b602060405180830381865afa158015611c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7e919061289a565b611c8891906128c9565b6040518463ffffffff1660e01b8152600401611ca6939291906128e8565b6020604051808303816000875af1158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce9919061290c565b1515600114611d0a5760405162461bcd60e51b815260040161070f9061292e565b826001600160a01b03166321749a3885600854866001600160a01b0316631d221dbb896040518263ffffffff1660e01b8152600401611d499190612887565b602060405180830381865afa158015611d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8a919061289a565b611d949190612b02565b6040518363ffffffff1660e01b8152600401611db19291906129a3565b600060405180830381600087803b158015611dcb57600080fd5b505af1158015611ddf573d6000803e3d6000fd5b5050604051632b4a13ef60e21b81523260048201526001600160a01b038516925063ad284fbc9150602401600060405180830381600087803b158015611e2457600080fd5b505af1158015611e38573d6000803e3d6000fd5b50505050816001600160a01b031663a2f08750846001600160a01b0316637342e4ff876040518263ffffffff1660e01b8152600401610b4c9190612887565b6000546001600160a01b03163314611ea15760405162461bcd60e51b815260040161070f90612805565b60015460405163042e934760e31b81526001600160a01b039091169081906321749a3890611ed590879089906004016129a3565b600060405180830381600087803b158015611eef57600080fd5b505af1158015611f03573d6000803e3d6000fd5b50506040516323fda3c160e01b81526001600160a01b03841692506323fda3c19150611f359087908790600401612aaa565b600060405180830381600087803b158015611f4f57600080fd5b505af1158015611f63573d6000803e3d6000fd5b5050604051635999ffe360e01b81526001600160a01b0384169250635999ffe39150611b729087908690600401612ad4565b6000546001600160a01b03163314611fbf5760405162461bcd60e51b815260040161070f90612805565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461200b5760405162461bcd60e51b815260040161070f90612805565b600e55565b6005546001600160a01b0316612024612290565b6040516340c10f1960e01b8152326004820152600160248201526001600160a01b038216906340c10f1990604401600060405180830381600087803b15801561206c57600080fd5b505af1158015612080573d6000803e3d6000fd5b50505050600b546001612093919061298b565b600b5550565b6000546001600160a01b031633146120c35760405162461bcd60e51b815260040161070f90612805565b6001600160a01b0381166121285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546040516370a0823160e01b81523060048201526000916001600160a01b03169081906370a0823190602401602060405180830381865afa1580156121ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f2919061289a565b91505090565b6001546008546001600160a01b0390911690612214908061298b565b604051631d221dbb60e01b81526001600160a01b03831690631d221dbb90612240908690600401612887565b602060405180830381865afa15801561225d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612281919061289a565b11156117bc576117bc826123ae565b60065460408051603280825261066082019092526001600160a01b039092169160009082602082016106408036833701905050905060008260ff1667ffffffffffffffff8111156122e3576122e36125c7565b60405190808252806020026020018201604052801561230c578160200160208202803683370190505b50905060005b8360ff168110156123775761232881600161298b565b83828151811061233a5761233a612b19565b602002602001018181525050600182828151811061235a5761235a612b19565b60209081029190910101528061236f81612b2f565b915050612312565b50600254604051631759616b60e11b81526001600160a01b0380871692632eb2c2d692610bb5923292169087908790600401612b85565b60015460405163b359cedd60e01b81526001600160a01b0390911690819063b359cedd906123e0908590600401612887565b602060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612421919061289a565b61242e9062093a8061298b565b4211156117bc57806001600160a01b03166321749a3883600854846001600160a01b0316631d221dbb876040518263ffffffff1660e01b81526004016124749190612887565b602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061289a565b6124bf9190612b02565b6040518363ffffffff1660e01b81526004016124dc9291906129a3565b600060405180830381600087803b1580156124f657600080fd5b505af115801561250a573d6000803e3d6000fd5b505060405163045e66ab60e21b81526001600160a01b03841692506311799aac915061253c90859042906004016129a3565b600060405180830381600087803b15801561255657600080fd5b505af115801561256a573d6000803e3d6000fd5b505050505050565b60006020828403121561258457600080fd5b5035919050565b6001600160a01b03811681146125a057600080fd5b50565b6000602082840312156125b557600080fd5b81356125c08161258b565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126125ee57600080fd5b813567ffffffffffffffff80821115612609576126096125c7565b604051601f8301601f19908116603f01168101908282118183101715612631576126316125c7565b8160405283815286602085880101111561264a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561267c57600080fd5b813567ffffffffffffffff81111561269357600080fd5b61269f848285016125dd565b949350505050565b600080604083850312156126ba57600080fd5b823567ffffffffffffffff808211156126d257600080fd5b6126de868387016125dd565b935060208501359150808211156126f457600080fd5b50612701858286016125dd565b9150509250929050565b60008060006060848603121561272057600080fd5b833567ffffffffffffffff8082111561273857600080fd5b612744878388016125dd565b9450602086013591506127568261258b565b9092506040850135908082111561276c57600080fd5b50612779868287016125dd565b9150509250925092565b6000806000806080858703121561279957600080fd5b84359350602085013567ffffffffffffffff808211156127b857600080fd5b6127c4888389016125dd565b9450604087013591506127d68261258b565b909250606086013590808211156127ec57600080fd5b506127f9878288016125dd565b91505092959194509250565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000815180845260005b8181101561286057602081850181015186830182015201612844565b81811115612872576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006125c0602083018461283a565b6000602082840312156128ac57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156128e3576128e36128b3565b500290565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006020828403121561291e57600080fd5b815180151581146125c057600080fd5b6020808252603c908201527f436f756c64206e6f74207472616e7366657220746f6b656e732066726f6d207960408201527f6f7572206164647265737320746f207468697320636f6e747261637400000000606082015260800190565b6000821982111561299e5761299e6128b3565b500190565b6040815260006129b6604083018561283a565b90508260208301529392505050565b6000602082840312156129d757600080fd5b81516125c08161258b565b6000826129ff57634e487b7160e01b600052601260045260246000fd5b500490565b60a081526000612a1760a083018861283a565b8660208401528281036040840152612a2f818761283a565b6001600160a01b039590951660608401525050608001529392505050565b6020808252603c908201527f436f756c64206e6f74207472616e7366657220746f6b656e7320746f20796f7560408201527f7220616464726573732066726f6d207468697320636f6e747261637400000000606082015260800190565b604081526000612abd604083018561283a565b905060018060a01b03831660208301529392505050565b604081526000612ae7604083018561283a565b8281036020840152612af9818561283a565b95945050505050565b600082821015612b1457612b146128b3565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612b4357612b436128b3565b5060010190565b600081518084526020808501945080840160005b83811015612b7a57815187529582019590820190600101612b5e565b509495945050505050565b6001600160a01b0385811682528416602082015260a060408201819052600090612bb190830185612b4a565b8281036060840152612bc38185612b4a565b83810360809094019390935250506000815260200194935050505056fea26469706673582212203bd1ba4d449905d3fb18ce47d5361e0b2d268aa346b5a5d11ab39e8b56727c5164736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102455760003560e01c80637ff9b59611610139578063aabb7554116100b6578063cd7f974b1161007a578063cd7f974b1461063b578063d50760931461065b578063e8908cc31461067b578063f2fde38b14610690578063f59cfa97146106b0578063f616a267146106c557600080fd5b8063aabb7554146105a5578063b80e5bbf146105c5578063b8439a7b146105e5578063bb58d32714610605578063bccd43451461061b57600080fd5b8063975057e7116100fd578063975057e7146105195780639836d15f1461053957806399f710781461054f578063a4eeb2da1461056f578063a5e1a2be1461058557600080fd5b80637ff9b5961461048f5780638a09ce0f146104a55780638da5cb5b146104c55780639246798d146104e3578063964a68f5146104f957600080fd5b8063587235f1116101c7578063669a12121161018b578063669a1212146104075780636a61e5fc1461041a5780636d1e85c91461043a578063715018a61461045a5780637c5b4a371461046f57600080fd5b8063587235f11461038957806359fa7b28146103a957806360b71d4e146103c95780636247ba64146103df578063659fcc66146103e757600080fd5b8063218664491161020e57806321866449146102e5578063237feb88146102fb57806326903044146103115780632b67f2f4146103315780633a67d4d01461036957600080fd5b80628591531461024a57806304c76af01461026c57806312065fe014610281578063144fa6d7146102a5578063146c3e14146102c5575b600080fd5b34801561025657600080fd5b5061026a610265366004612572565b6106e5565b005b34801561027857600080fd5b5061026a61071d565b34801561028d57600080fd5b50600d545b6040519081526020015b60405180910390f35b3480156102b157600080fd5b5061026a6102c03660046125a3565b61078a565b3480156102d157600080fd5b5061026a6102e0366004612572565b6107d6565b3480156102f157600080fd5b50610292600a5481565b34801561030757600080fd5b50610292600e5481565b34801561031d57600080fd5b5061026a61032c366004612572565b610805565b34801561033d57600080fd5b50600654610351906001600160a01b031681565b6040516001600160a01b03909116815260200161029c565b34801561037557600080fd5b5061026a6103843660046125a3565b610834565b34801561039557600080fd5b5061026a6103a4366004612572565b610880565b3480156103b557600080fd5b5061026a6103c436600461266a565b6108af565b3480156103d557600080fd5b50610292600d5481565b61026a610bed565b3480156103f357600080fd5b5061026a6104023660046125a3565b610d56565b61026a6104153660046126a7565b610da2565b34801561042657600080fd5b5061026a610435366004612572565b611555565b34801561044657600080fd5b5061026a610455366004612572565b611584565b34801561046657600080fd5b5061026a611686565b34801561047b57600080fd5b5061026a61048a366004612572565b6116fa565b34801561049b57600080fd5b50610292600c5481565b3480156104b157600080fd5b5061026a6104c036600461270b565b6117c0565b3480156104d157600080fd5b506000546001600160a01b0316610351565b3480156104ef57600080fd5b5061029260075481565b34801561050557600080fd5b5061026a610514366004612572565b61193d565b34801561052557600080fd5b50600154610351906001600160a01b031681565b34801561054557600080fd5b5061029260085481565b34801561055b57600080fd5b5061026a61056a3660046126a7565b611a01565b34801561057b57600080fd5b5061029260095481565b34801561059157600080fd5b5061026a6105a0366004612572565b611bab565b3480156105b157600080fd5b5061026a6105c036600461266a565b611bda565b3480156105d157600080fd5b5061026a6105e0366004612783565b611e77565b3480156105f157600080fd5b50600554610351906001600160a01b031681565b34801561061157600080fd5b50610292600b5481565b34801561062757600080fd5b5061026a6106363660046125a3565b611f95565b34801561064757600080fd5b5061026a610656366004612572565b611fe1565b34801561066757600080fd5b50600454610351906001600160a01b031681565b34801561068757600080fd5b5061026a612010565b34801561069c57600080fd5b5061026a6106ab3660046125a3565b612099565b3480156106bc57600080fd5b50610292612183565b3480156106d157600080fd5b5061026a6106e036600461266a565b6121f8565b6000546001600160a01b031633146107185760405162461bcd60e51b815260040161070f90612805565b60405180910390fd5b600755565b6000546001600160a01b031633146107475760405162461bcd60e51b815260040161070f90612805565b60008054600d546040516001600160a01b039092169281156108fc029290818181858888f19350505050158015610782573d6000803e3d6000fd5b506000600d55565b6000546001600160a01b031633146107b45760405162461bcd60e51b815260040161070f90612805565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108005760405162461bcd60e51b815260040161070f90612805565b600955565b6000546001600160a01b0316331461082f5760405162461bcd60e51b815260040161070f90612805565b600855565b6000546001600160a01b0316331461085e5760405162461bcd60e51b815260040161070f90612805565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108aa5760405162461bcd60e51b815260040161070f90612805565b600b55565b6001546004546003546001600160a01b039283169291821691166108d2846121f8565b806001600160a01b03166323b872dd3330600a54876001600160a01b0316631d221dbb8a6040518263ffffffff1660e01b81526004016109129190612887565b602060405180830381865afa15801561092f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610953919061289a565b61095d91906128c9565b6040518463ffffffff1660e01b815260040161097b939291906128e8565b6020604051808303816000875af115801561099a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109be919061290c565b15156001146109df5760405162461bcd60e51b815260040161070f9061292e565b826001600160a01b03166321749a3885600854866001600160a01b0316631d221dbb896040518263ffffffff1660e01b8152600401610a1e9190612887565b602060405180830381865afa158015610a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f919061289a565b610a69919061298b565b6040518363ffffffff1660e01b8152600401610a869291906129a3565b600060405180830381600087803b158015610aa057600080fd5b505af1158015610ab4573d6000803e3d6000fd5b5050604051630a2f087560e41b81523260048201526001600160a01b038516925063a2f087509150602401600060405180830381600087803b158015610af957600080fd5b505af1158015610b0d573d6000803e3d6000fd5b50505050816001600160a01b031663ad284fbc846001600160a01b0316637342e4ff876040518263ffffffff1660e01b8152600401610b4c9190612887565b602060405180830381865afa158015610b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8d91906129c5565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024015b600060405180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b5050505050505050565b600554600b546040516331a9108f60e11b81526001600160a01b039092169133918391636352211e91610c269160040190815260200190565b602060405180830381865afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6791906129c5565b6001600160a01b031614610c7a57600080fd5b6000336001600160a01b03166064600d546005610c9791906128c9565b610ca191906129e2565b604051600081818185875af1925050503d8060008114610cdd576040519150601f19603f3d011682016040523d82523d6000602084013e610ce2565b606091505b5050905080610cf057600080fd5b60008054600d546040516001600160a01b03909216918381818185875af1925050503d8060008114610d3e576040519150601f19603f3d011682016040523d82523d6000602084013e610d43565b606091505b5050905080610d5157600080fd5b505050565b6000546001600160a01b03163314610d805760405162461bcd60e51b815260040161070f90612805565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60015460045482516001600160a01b039283169290911690608c1015610e165760405162461bcd60e51b8152602060048201526024808201527f4d657373616765206d75737420626520756e64657220313430206368617261636044820152637465727360e01b606482015260840161070f565b604051631d221dbb60e01b81526000906001600160a01b03841690631d221dbb90610e45908890600401612887565b602060405180830381865afa158015610e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e86919061289a565b111561110a57604051631d221dbb60e01b81526001600160a01b03831690631d221dbb90610eb8908790600401612887565b602060405180830381865afa158015610ed5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef9919061289a565b3414610f3d5760405162461bcd60e51b8152602060048201526013602482015272151bdbc81b5d58da081b5bdb995e481cd95b9d606a1b604482015260640161070f565b604051631d221dbb60e01b81526000906001600160a01b03841690631d221dbb90610f6c908890600401612887565b602060405180830381865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad919061289a565b604051637342e4ff60e01b81529091506001600160a01b03841690637342e4ff90610fdc908890600401612887565b602060405180830381865afa158015610ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101d91906129c5565b6001600160a01b03166108fc607861103684606e6128c9565b61104091906129e2565b6040518115909202916000818181858888f19350505050158015611068573d6000803e3d6000fd5b50604051631d221dbb60e01b81526000906001600160a01b03851690631d221dbb90611098908990600401612887565b602060405180830381865afa1580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d9919061289a565b905060786110e882600a6128c9565b6110f291906129e2565b600d546110ff919061298b565b600d55506112b29050565b600754341461114d5760405162461bcd60e51b815260206004820152600f60248201526e139bdd08195b9bdd59da081cd95b9d608a1b604482015260640161070f565b604051637342e4ff60e01b81526001600160a01b03831690637342e4ff90611179908790600401612887565b602060405180830381865afa158015611196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ba91906129c5565b6001600160a01b03161561129e57806001600160a01b031663ef2b1d5e836001600160a01b0316637342e4ff876040518263ffffffff1660e01b81526004016112039190612887565b602060405180830381865afa158015611220573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124491906129c5565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561128557600080fd5b505af1158015611299573d6000803e3d6000fd5b505050505b600754600d546112ae919061298b565b600d555b6040516307908fdb60e01b81526001600160a01b038316906307908fdb906112de908790600401612887565b600060405180830381600087803b1580156112f857600080fd5b505af115801561130c573d6000803e3d6000fd5b50505050816001600160a01b031663ce098db085606434607861132f91906128c9565b61133991906129e2565b8632426040518663ffffffff1660e01b815260040161135c959493929190612a04565b600060405180830381600087803b15801561137657600080fd5b505af115801561138a573d6000803e3d6000fd5b50505050816001600160a01b031663bc6f1f1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f0919061289a565b604051631d221dbb60e01b81526001600160a01b03841690631d221dbb9061141c908890600401612887565b602060405180830381865afa158015611439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145d919061289a565b111561152957604051631d221dbb60e01b81526001600160a01b0383169063fa2968df908290631d221dbb90611497908990600401612887565b602060405180830381865afa1580156114b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d8919061289a565b6040518263ffffffff1660e01b81526004016114f691815260200190565b600060405180830381600087803b15801561151057600080fd5b505af1158015611524573d6000803e3d6000fd5b505050505b6040516377958eaf60e11b81523260048201526001600160a01b0382169063ef2b1d5e90602401610bb5565b6000546001600160a01b0316331461157f5760405162461bcd60e51b815260040161070f90612805565b600c55565b60048054600354600e546040516323b872dd60e01b81526001600160a01b0393841694929093169283926323b872dd926115c3923392309291016128e8565b6020604051808303816000875af11580156115e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611606919061290c565b15156001146116275760405162461bcd60e51b815260040161070f90612a4d565b60405163dbcef17960e01b8152600481018490526001600160a01b0383169063dbcef17990602401600060405180830381600087803b15801561166957600080fd5b505af115801561167d573d6000803e3d6000fd5b50505050505050565b6000546001600160a01b031633146116b05760405162461bcd60e51b815260040161070f90612805565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146117245760405162461bcd60e51b815260040161070f90612805565b60035460405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0390911690819063a9059cbb906044016020604051808303816000875af1158015611777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179b919061290c565b15156001146117bc5760405162461bcd60e51b815260040161070f90612a4d565b5050565b6000546001600160a01b031633146117ea5760405162461bcd60e51b815260040161070f90612805565b60015460085460405163042e934760e31b81526001600160a01b039092169182916321749a389161181f9188916004016129a3565b600060405180830381600087803b15801561183957600080fd5b505af115801561184d573d6000803e3d6000fd5b50506040516323fda3c160e01b81526001600160a01b03841692506323fda3c1915061187f9087908790600401612aaa565b600060405180830381600087803b15801561189957600080fd5b505af11580156118ad573d6000803e3d6000fd5b5050604051635999ffe360e01b81526001600160a01b0384169250635999ffe391506118df9087908690600401612ad4565b600060405180830381600087803b1580156118f957600080fd5b505af115801561190d573d6000803e3d6000fd5b50506040516307908fdb60e01b81526001600160a01b03841692506307908fdb9150610bb5908790600401612887565b6000546001600160a01b031633146119675760405162461bcd60e51b815260040161070f90612805565b6003546040516323b872dd60e01b81526001600160a01b039091169081906323b872dd9061199d903390309087906004016128e8565b6020604051808303816000875af11580156119bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e0919061290c565b15156001146117bc5760405162461bcd60e51b815260040161070f9061292e565b6001546004546003546001600160a01b03928316929182169116611a24856121f8565b600c546040516323b872dd60e01b81526001600160a01b038316916323b872dd91611a569133913091906004016128e8565b6020604051808303816000875af1158015611a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a99919061290c565b1515600114611aea5760405162461bcd60e51b815260206004820152601960248201527f436f756c64206e6f74207472616e7366657220746f6b656e7300000000000000604482015260640161070f565b604051635999ffe360e01b81526001600160a01b03841690635999ffe390611b189088908890600401612ad4565b600060405180830381600087803b158015611b3257600080fd5b505af1158015611b46573d6000803e3d6000fd5b50506040516377958eaf60e11b81523260048201526001600160a01b038516925063ef2b1d5e91506024015b600060405180830381600087803b158015611b8c57600080fd5b505af1158015611ba0573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b03163314611bd55760405162461bcd60e51b815260040161070f90612805565b600a55565b6001546004546003546001600160a01b03928316929182169116611bfd846121f8565b806001600160a01b03166323b872dd3330600954876001600160a01b0316631d221dbb8a6040518263ffffffff1660e01b8152600401611c3d9190612887565b602060405180830381865afa158015611c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7e919061289a565b611c8891906128c9565b6040518463ffffffff1660e01b8152600401611ca6939291906128e8565b6020604051808303816000875af1158015611cc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce9919061290c565b1515600114611d0a5760405162461bcd60e51b815260040161070f9061292e565b826001600160a01b03166321749a3885600854866001600160a01b0316631d221dbb896040518263ffffffff1660e01b8152600401611d499190612887565b602060405180830381865afa158015611d66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8a919061289a565b611d949190612b02565b6040518363ffffffff1660e01b8152600401611db19291906129a3565b600060405180830381600087803b158015611dcb57600080fd5b505af1158015611ddf573d6000803e3d6000fd5b5050604051632b4a13ef60e21b81523260048201526001600160a01b038516925063ad284fbc9150602401600060405180830381600087803b158015611e2457600080fd5b505af1158015611e38573d6000803e3d6000fd5b50505050816001600160a01b031663a2f08750846001600160a01b0316637342e4ff876040518263ffffffff1660e01b8152600401610b4c9190612887565b6000546001600160a01b03163314611ea15760405162461bcd60e51b815260040161070f90612805565b60015460405163042e934760e31b81526001600160a01b039091169081906321749a3890611ed590879089906004016129a3565b600060405180830381600087803b158015611eef57600080fd5b505af1158015611f03573d6000803e3d6000fd5b50506040516323fda3c160e01b81526001600160a01b03841692506323fda3c19150611f359087908790600401612aaa565b600060405180830381600087803b158015611f4f57600080fd5b505af1158015611f63573d6000803e3d6000fd5b5050604051635999ffe360e01b81526001600160a01b0384169250635999ffe39150611b729087908690600401612ad4565b6000546001600160a01b03163314611fbf5760405162461bcd60e51b815260040161070f90612805565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461200b5760405162461bcd60e51b815260040161070f90612805565b600e55565b6005546001600160a01b0316612024612290565b6040516340c10f1960e01b8152326004820152600160248201526001600160a01b038216906340c10f1990604401600060405180830381600087803b15801561206c57600080fd5b505af1158015612080573d6000803e3d6000fd5b50505050600b546001612093919061298b565b600b5550565b6000546001600160a01b031633146120c35760405162461bcd60e51b815260040161070f90612805565b6001600160a01b0381166121285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161070f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546040516370a0823160e01b81523060048201526000916001600160a01b03169081906370a0823190602401602060405180830381865afa1580156121ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121f2919061289a565b91505090565b6001546008546001600160a01b0390911690612214908061298b565b604051631d221dbb60e01b81526001600160a01b03831690631d221dbb90612240908690600401612887565b602060405180830381865afa15801561225d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612281919061289a565b11156117bc576117bc826123ae565b60065460408051603280825261066082019092526001600160a01b039092169160009082602082016106408036833701905050905060008260ff1667ffffffffffffffff8111156122e3576122e36125c7565b60405190808252806020026020018201604052801561230c578160200160208202803683370190505b50905060005b8360ff168110156123775761232881600161298b565b83828151811061233a5761233a612b19565b602002602001018181525050600182828151811061235a5761235a612b19565b60209081029190910101528061236f81612b2f565b915050612312565b50600254604051631759616b60e11b81526001600160a01b0380871692632eb2c2d692610bb5923292169087908790600401612b85565b60015460405163b359cedd60e01b81526001600160a01b0390911690819063b359cedd906123e0908590600401612887565b602060405180830381865afa1580156123fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612421919061289a565b61242e9062093a8061298b565b4211156117bc57806001600160a01b03166321749a3883600854846001600160a01b0316631d221dbb876040518263ffffffff1660e01b81526004016124749190612887565b602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061289a565b6124bf9190612b02565b6040518363ffffffff1660e01b81526004016124dc9291906129a3565b600060405180830381600087803b1580156124f657600080fd5b505af115801561250a573d6000803e3d6000fd5b505060405163045e66ab60e21b81526001600160a01b03841692506311799aac915061253c90859042906004016129a3565b600060405180830381600087803b15801561255657600080fd5b505af115801561256a573d6000803e3d6000fd5b505050505050565b60006020828403121561258457600080fd5b5035919050565b6001600160a01b03811681146125a057600080fd5b50565b6000602082840312156125b557600080fd5b81356125c08161258b565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126125ee57600080fd5b813567ffffffffffffffff80821115612609576126096125c7565b604051601f8301601f19908116603f01168101908282118183101715612631576126316125c7565b8160405283815286602085880101111561264a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60006020828403121561267c57600080fd5b813567ffffffffffffffff81111561269357600080fd5b61269f848285016125dd565b949350505050565b600080604083850312156126ba57600080fd5b823567ffffffffffffffff808211156126d257600080fd5b6126de868387016125dd565b935060208501359150808211156126f457600080fd5b50612701858286016125dd565b9150509250929050565b60008060006060848603121561272057600080fd5b833567ffffffffffffffff8082111561273857600080fd5b612744878388016125dd565b9450602086013591506127568261258b565b9092506040850135908082111561276c57600080fd5b50612779868287016125dd565b9150509250925092565b6000806000806080858703121561279957600080fd5b84359350602085013567ffffffffffffffff808211156127b857600080fd5b6127c4888389016125dd565b9450604087013591506127d68261258b565b909250606086013590808211156127ec57600080fd5b506127f9878288016125dd565b91505092959194509250565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000815180845260005b8181101561286057602081850181015186830182015201612844565b81811115612872576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006125c0602083018461283a565b6000602082840312156128ac57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156128e3576128e36128b3565b500290565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006020828403121561291e57600080fd5b815180151581146125c057600080fd5b6020808252603c908201527f436f756c64206e6f74207472616e7366657220746f6b656e732066726f6d207960408201527f6f7572206164647265737320746f207468697320636f6e747261637400000000606082015260800190565b6000821982111561299e5761299e6128b3565b500190565b6040815260006129b6604083018561283a565b90508260208301529392505050565b6000602082840312156129d757600080fd5b81516125c08161258b565b6000826129ff57634e487b7160e01b600052601260045260246000fd5b500490565b60a081526000612a1760a083018861283a565b8660208401528281036040840152612a2f818761283a565b6001600160a01b039590951660608401525050608001529392505050565b6020808252603c908201527f436f756c64206e6f74207472616e7366657220746f6b656e7320746f20796f7560408201527f7220616464726573732066726f6d207468697320636f6e747261637400000000606082015260800190565b604081526000612abd604083018561283a565b905060018060a01b03831660208301529392505050565b604081526000612ae7604083018561283a565b8281036020840152612af9818561283a565b95945050505050565b600082821015612b1457612b146128b3565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612b4357612b436128b3565b5060010190565b600081518084526020808501945080840160005b83811015612b7a57815187529582019590820190600101612b5e565b509495945050505050565b6001600160a01b0385811682528416602082015260a060408201819052600090612bb190830185612b4a565b8281036060840152612bc38185612b4a565b83810360809094019390935250506000815260200194935050505056fea26469706673582212203bd1ba4d449905d3fb18ce47d5361e0b2d268aa346b5a5d11ab39e8b56727c5164736f6c634300080c0033

Deployed Bytecode Sourcemap

3657:8163:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11179:82;;;;;;;;;;-1:-1:-1;11179:82:0;;;;;:::i;:::-;;:::i;:::-;;8107:113;;;;;;;;;;;;;:::i;8997:81::-;;;;;;;;;;-1:-1:-1;9062:10:0;;8997:81;;;345:25:1;;;333:2;318:18;8997:81:0;;;;;;;;10918:77;;;;;;;;;;-1:-1:-1;10918:77:0;;;;;:::i;:::-;;:::i;11355:86::-;;;;;;;;;;-1:-1:-1;11355:86:0;;;;;:::i;:::-;;:::i;4269:28::-;;;;;;;;;;;;;;;;4402:43;;;;;;;;;;;;;;;;11265:86;;;;;;;;;;-1:-1:-1;11265:86:0;;;;;:::i;:::-;;:::i;4070:68::-;;;;;;;;;;-1:-1:-1;4070:68:0;;;;-1:-1:-1;;;;;4070:68:0;;;;;;-1:-1:-1;;;;;933:32:1;;;915:51;;903:2;888:18;4070:68:0;769:203:1;10999:86:0;;;;;;;;;;-1:-1:-1;10999:86:0;;;;;:::i;:::-;;:::i;11535:91::-;;;;;;;;;;-1:-1:-1;11535:91:0;;;;;:::i;:::-;;:::i;6771:611::-;;;;;;;;;;-1:-1:-1;6771:611:0;;;;;:::i;:::-;;:::i;4368:29::-;;;;;;;;;;;;;;;;8228:323;;;:::i;11089:86::-;;;;;;;;;;-1:-1:-1;11089:86:0;;;;;:::i;:::-;;:::i;4462:1201::-;;;;;;:::i;:::-;;:::i;11630:88::-;;;;;;;;;;-1:-1:-1;11630:88:0;;;;;:::i;:::-;;:::i;10296:380::-;;;;;;;;;;-1:-1:-1;10296:380:0;;;;;:::i;:::-;;:::i;3276:138::-;;;;;;;;;;;;;:::i;10006:284::-;;;;;;;;;;-1:-1:-1;10006:284:0;;;;;:::i;:::-;;:::i;4335:29::-;;;;;;;;;;;;;;;;9382:304;;;;;;;;;;-1:-1:-1;9382:304:0;;;;;:::i;:::-;;:::i;3083:72::-;;;;;;;;;;-1:-1:-1;3120:7:0;3143:6;-1:-1:-1;;;;;3143:6:0;3083:72;;4142:42;;;;;;;;;;;;;;;;9692:308;;;;;;;;;;-1:-1:-1;9692:308:0;;;;;:::i;:::-;;:::i;3716:65::-;;;;;;;;;;-1:-1:-1;3716:65:0;;;;-1:-1:-1;;;;;3716:65:0;;;4188:44;;;;;;;;;;;;;;;;5669:481;;;;;;;;;;-1:-1:-1;5669:481:0;;;;;:::i;:::-;;:::i;4236:29::-;;;;;;;;;;;;;;;;11445:86;;;;;;;;;;-1:-1:-1;11445:86:0;;;;;:::i;:::-;;:::i;6158:604::-;;;;;;;;;;-1:-1:-1;6158:604:0;;;;;:::i;:::-;;:::i;9093:281::-;;;;;;;;;;-1:-1:-1;9093:281:0;;;;;:::i;:::-;;:::i;3996:70::-;;;;;;;;;;-1:-1:-1;3996:70:0;;;;-1:-1:-1;;;;;3996:70:0;;;4301:30;;;;;;;;;;;;;;;;10838:76;;;;;;;;;;-1:-1:-1;10838:76:0;;;;;:::i;:::-;;:::i;11722:93::-;;;;;;;;;;-1:-1:-1;11722:93:0;;;;;:::i;:::-;;:::i;3923:69::-;;;;;;;;;;-1:-1:-1;3923:69:0;;;;-1:-1:-1;;;;;3923:69:0;;;7390:174;;;;;;;;;;;;;:::i;3420:230::-;;;;;;;;;;-1:-1:-1;3420:230:0;;;;;:::i;:::-;;:::i;10682:152::-;;;;;;;;;;;;;:::i;7570:209::-;;;;;;;;;;-1:-1:-1;7570:209:0;;;;;:::i;:::-;;:::i;11179:82::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;;;;;;;;;11240:7:::1;:15:::0;11179:82::o;8107:113::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;3120:7;3143:6;;8182:10:::1;::::0;8156:37:::1;::::0;-1:-1:-1;;;;;3143:6:0;;;;8156:37;::::1;;;::::0;;;3120:7;8156:37;8182:10;3143:6;8156:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;8213:1:0::1;8200:10;:14:::0;8107:113::o;10918:77::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;10977:4:::1;:12:::0;;-1:-1:-1;;;;;;10977:12:0::1;-1:-1:-1::0;;;;;10977:12:0;;;::::1;::::0;;;::::1;::::0;;10918:77::o;11355:86::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11418:9:::1;:17:::0;11355:86::o;11265:::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11328:9:::1;:17:::0;11265:86::o;10999:::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11062:9:::1;:17:::0;;-1:-1:-1;;;;;;11062:17:0::1;-1:-1:-1::0;;;;;11062:17:0;;;::::1;::::0;;;::::1;::::0;;10999:86::o;11535:91::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11601:11:::1;:19:::0;11535:91::o;6771:611::-;6853:5;;6893:9;;6937:4;;-1:-1:-1;;;;;6853:5:0;;;;6893:9;;;;6937:4;6949:19;6959:8;6949:9;:19::i;:::-;6982:13;-1:-1:-1;;;;;6982:26:0;;7019:10;7048:4;7097:9;;7064:2;-1:-1:-1;;;;;7064:20:0;;7085:8;7064:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;;:::i;:::-;6982:135;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:143;;7121:4;6982:143;6974:235;;;;-1:-1:-1;;;6974:235:0;;;;;;;:::i;:::-;7215:2;-1:-1:-1;;;;;7215:12:0;;7228:8;7271:9;;7238:2;-1:-1:-1;;;;;7238:20:0;;7259:8;7238:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;;:::i;:::-;7215:66;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7287:30:0;;-1:-1:-1;;;7287:30:0;;7307:9;7287:30;;;915:51:1;-1:-1:-1;;;;;7287:19:0;;;-1:-1:-1;7287:19:0;;-1:-1:-1;888:18:1;;7287:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7323:5;-1:-1:-1;;;;;7323:19:0;;7343:2;-1:-1:-1;;;;;7343:18:0;;7362:8;7343:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7323:49;;-1:-1:-1;;;;;;7323:49:0;;;;;;;-1:-1:-1;;;;;933:32:1;;;7323:49:0;;;915:51:1;888:18;;7323:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6818:564;;;6771:611;:::o;8228:323::-;8298:10;;8335:11;;8321:26;;-1:-1:-1;;;8321:26:0;;-1:-1:-1;;;;;8298:10:0;;;;8351;;8298;;8321:13;;:26;;;;345:25:1;;;333:2;318:18;;199:177;8321:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8321:40:0;;8313:49;;;;;;8370:7;8391:10;-1:-1:-1;;;;;8383:24:0;8432:3;8415:10;;8428:1;8415:14;;;;:::i;:::-;:20;;;;:::i;:::-;8383:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8369:71;;;8455:2;8447:11;;;;;;8470:7;3143:6;;8512:10;;8483:44;;-1:-1:-1;;;;;3143:6:0;;;;8470:7;8483:44;8470:7;8483:44;8512:10;3143:6;8483:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8469:58;;;8542:2;8534:11;;;;;;8266:285;;;8228:323::o;11089:86::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11151:10:::1;:18:::0;;-1:-1:-1;;;;;;11151:18:0::1;-1:-1:-1::0;;;;;11151:18:0;;;::::1;::::0;;;::::1;::::0;;11089:86::o;4462:1201::-;4581:5;;4622:9;;4647:22;;-1:-1:-1;;;;;4581:5:0;;;;4622:9;;;;4673:3;-1:-1:-1;4647:29:0;4639:78;;;;-1:-1:-1;;;4639:78:0;;8110:2:1;4639:78:0;;;8092:21:1;8149:2;8129:18;;;8122:30;8188:34;8168:18;;;8161:62;-1:-1:-1;;;8239:18:1;;;8232:34;8283:19;;4639:78:0;7908:400:1;4639:78:0;4728:30;;-1:-1:-1;;;4728:30:0;;4761:1;;-1:-1:-1;;;;;4728:20:0;;;;;:30;;4749:8;;4728:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;4724:658;;;4794:30;;-1:-1:-1;;;4794:30:0;;-1:-1:-1;;;;;4794:20:0;;;;;:30;;4815:8;;4794:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4781:9;:43;4773:75;;;;-1:-1:-1;;;4773:75:0;;8515:2:1;4773:75:0;;;8497:21:1;8554:2;8534:18;;;8527:30;-1:-1:-1;;;8573:18:1;;;8566:49;8632:18;;4773:75:0;8313:343:1;4773:75:0;4882:30;;-1:-1:-1;;;4882:30:0;;4857:22;;-1:-1:-1;;;;;4882:20:0;;;;;:30;;4903:8;;4882:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4929:28;;-1:-1:-1;;;4929:28:0;;4857:55;;-1:-1:-1;;;;;;4929:18:0;;;;;:28;;4948:8;;4929:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4921:46:0;:74;4990:3;4968:20;:14;4984:3;4968:20;:::i;:::-;:26;;;;:::i;:::-;4921:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5024:30:0;;-1:-1:-1;;;5024:30:0;;5004:17;;-1:-1:-1;;;;;5024:20:0;;;;;:30;;5045:8;;5024:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5004:50;-1:-1:-1;5104:3:0;5088:14;5004:50;5099:2;5088:14;:::i;:::-;:20;;;;:::i;:::-;5076:10;;:33;;;;:::i;:::-;5063:10;:46;-1:-1:-1;4724:658:0;;-1:-1:-1;4724:658:0;;5153:7;;5140:9;:20;5132:48;;;;-1:-1:-1;;;5132:48:0;;8863:2:1;5132:48:0;;;8845:21:1;8902:2;8882:18;;;8875:30;-1:-1:-1;;;8921:18:1;;;8914:45;8976:18;;5132:48:0;8661:339:1;5132:48:0;5192:28;;-1:-1:-1;;;5192:28:0;;-1:-1:-1;;;;;5192:18:0;;;;;:28;;5211:8;;5192:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5192:74:0;;5189:144;;5274:5;-1:-1:-1;;;;;5274:19:0;;5294:2;-1:-1:-1;;;;;5294:18:0;;5313:8;5294:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5274:49;;-1:-1:-1;;;;;;5274:49:0;;;;;;;-1:-1:-1;;;;;933:32:1;;;5274:49:0;;;915:51:1;888:18;;5274:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5189:144;5366:7;;5354:10;;:20;;;;:::i;:::-;5341:10;:33;4724:658;5388:21;;-1:-1:-1;;;5388:21:0;;-1:-1:-1;;;;;5388:11:0;;;;;:21;;5400:8;;5388:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5416:2;-1:-1:-1;;;;;5416:10:0;;5427:8;5454:3;5437:9;5448:3;5437:15;;;;:::i;:::-;:21;;;;:::i;:::-;5460:8;5470:9;5481:15;5416:81;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:2;-1:-1:-1;;;;;5541:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5508:30;;-1:-1:-1;;;5508:30:0;;-1:-1:-1;;;;;5508:20:0;;;;;:30;;5529:8;;5508:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;5504:120;;;5585:30;;-1:-1:-1;;;5585:30:0;;-1:-1:-1;;;;;5570:14:0;;;;;;;5585:20;;:30;;5606:8;;5585:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5570:46;;;;;;;;;;;;;345:25:1;;333:2;318:18;;199:177;5570:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5504:120;5627:30;;-1:-1:-1;;;5627:30:0;;5647:9;5627:30;;;915:51:1;-1:-1:-1;;;;;5627:19:0;;;;;888:18:1;;5627:30:0;769:203:1;11630:88:0;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11694:10:::1;:18:::0;11630:88::o;10296:380::-;10373:9;;;10416:4;;10518:14;;10436:107;;-1:-1:-1;;;10436:107:0;;-1:-1:-1;;;;;10373:9:0;;;;10416:4;;;;;;;10436:26;;:107;;10473:10;;10502:4;;10518:14;10436:107;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:115;;10547:4;10436:115;10428:207;;;;-1:-1:-1;;;10428:207:0;;;;;;;:::i;:::-;10644:26;;-1:-1:-1;;;10644:26:0;;;;;345:25:1;;;-1:-1:-1;;;;;10644:20:0;;;;;318:18:1;;10644:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10338:338;;10296:380;:::o;3276:138::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;3379:1:::1;3363:6:::0;;3342:40:::1;::::0;-1:-1:-1;;;;;3363:6:0;;::::1;::::0;3342:40:::1;::::0;3379:1;;3342:40:::1;3406:1;3389:19:::0;;-1:-1:-1;;;;;;3389:19:0::1;::::0;;3276:138::o;10006:284::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;10099:4:::1;::::0;10119:71:::1;::::0;-1:-1:-1;;;10119:71:0;;10152:10:::1;10119:71;::::0;::::1;10238:51:1::0;10305:18;;;10298:34;;;-1:-1:-1;;;;;10099:4:0;;::::1;::::0;;;10119:22:::1;::::0;10211:18:1;;10119:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:79;;10194:4;10119:79;10111:171;;;;-1:-1:-1::0;;;10111:171:0::1;;;;;;;:::i;:::-;10064:226;10006:284:::0;:::o;9382:304::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;9527:5:::1;::::0;9563:9:::1;::::0;9540:33:::1;::::0;-1:-1:-1;;;9540:33:0;;-1:-1:-1;;;;;9527:5:0;;::::1;::::0;;;9540:12:::1;::::0;:33:::1;::::0;9553:8;;9540:33:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9580:31:0::1;::::0;-1:-1:-1;;;9580:31:0;;-1:-1:-1;;;;;9580:12:0;::::1;::::0;-1:-1:-1;9580:12:0::1;::::0;-1:-1:-1;9580:31:0::1;::::0;9593:8;;9603:7;;9580:31:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9618:34:0::1;::::0;-1:-1:-1;;;9618:34:0;;-1:-1:-1;;;;;9618:14:0;::::1;::::0;-1:-1:-1;9618:14:0::1;::::0;-1:-1:-1;9618:34:0::1;::::0;9633:8;;9643;;9618:34:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9659:21:0::1;::::0;-1:-1:-1;;;9659:21:0;;-1:-1:-1;;;;;9659:11:0;::::1;::::0;-1:-1:-1;9659:11:0::1;::::0;-1:-1:-1;9659:21:0::1;::::0;9671:8;;9659:21:::1;;;:::i;9692:308::-:0;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;9781:4:::1;::::0;9801:99:::1;::::0;-1:-1:-1;;;9801:99:0;;-1:-1:-1;;;;;9781:4:0;;::::1;::::0;;;9801:26:::1;::::0;:99:::1;::::0;9838:10:::1;::::0;9867:4:::1;::::0;9883:6;;9801:99:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:107;;9904:4;9801:107;9793:199;;;;-1:-1:-1::0;;;9793:199:0::1;;;;;;;:::i;5669:481::-:0;5784:5;;5824:9;;5866:4;;-1:-1:-1;;;;;5784:5:0;;;;5824:9;;;;5866:4;5878:19;5888:8;5878:9;:19::i;:::-;5994:10;;5912:103;;-1:-1:-1;;;5912:103:0;;-1:-1:-1;;;;;5912:26:0;;;;;:103;;5949:10;;5978:4;;5994:10;5912:103;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:111;;6019:4;5912:111;5904:168;;;;-1:-1:-1;;;5904:168:0;;11255:2:1;5904:168:0;;;11237:21:1;11294:2;11274:18;;;11267:30;11333:27;11313:18;;;11306:55;11378:18;;5904:168:0;11053:349:1;5904:168:0;6076:34;;-1:-1:-1;;;6076:34:0;;-1:-1:-1;;;;;6076:14:0;;;;;:34;;6091:8;;6101;;6076:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6114:30:0;;-1:-1:-1;;;6114:30:0;;6134:9;6114:30;;;915:51:1;-1:-1:-1;;;;;6114:19:0;;;-1:-1:-1;6114:19:0;;-1:-1:-1;888:18:1;;6114:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5746:404;;;5669:481;;:::o;11445:86::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11508:9:::1;:17:::0;11445:86::o;6158:604::-;6240:5;;6280:9;;6324:4;;-1:-1:-1;;;;;6240:5:0;;;;6280:9;;;;6324:4;6336:19;6346:8;6336:9;:19::i;:::-;6367:13;-1:-1:-1;;;;;6367:26:0;;6404:10;6433:4;6482:9;;6449:2;-1:-1:-1;;;;;6449:20:0;;6470:8;6449:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;;:::i;:::-;6367:135;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:143;;6506:4;6367:143;6359:235;;;;-1:-1:-1;;;6359:235:0;;;;;;;:::i;:::-;6600:2;-1:-1:-1;;;;;6600:12:0;;6613:8;6656:9;;6623:2;-1:-1:-1;;;;;6623:20:0;;6644:8;6623:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;;:::i;:::-;6600:66;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6672:30:0;;-1:-1:-1;;;6672:30:0;;6692:9;6672:30;;;915:51:1;-1:-1:-1;;;;;6672:19:0;;;-1:-1:-1;6672:19:0;;-1:-1:-1;888:18:1;;6672:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6708:5;-1:-1:-1;;;;;6708:19:0;;6728:2;-1:-1:-1;;;;;6728:18:0;;6747:8;6728:28;;;;;;;;;;;;;;;:::i;9093:281::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;9247:5:::1;::::0;9260:29:::1;::::0;-1:-1:-1;;;9260:29:0;;-1:-1:-1;;;;;9247:5:0;;::::1;::::0;;;9260:12:::1;::::0;:29:::1;::::0;9273:8;;9283:5;;9260:29:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9296:31:0::1;::::0;-1:-1:-1;;;9296:31:0;;-1:-1:-1;;;;;9296:12:0;::::1;::::0;-1:-1:-1;9296:12:0::1;::::0;-1:-1:-1;9296:31:0::1;::::0;9309:8;;9319:7;;9296:31:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9334:34:0::1;::::0;-1:-1:-1;;;9334:34:0;;-1:-1:-1;;;;;9334:14:0;::::1;::::0;-1:-1:-1;9334:14:0::1;::::0;-1:-1:-1;9334:34:0::1;::::0;9349:8;;9359;;9334:34:::1;;;:::i;10838:76::-:0;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;10896:4:::1;:12:::0;;-1:-1:-1;;;;;;10896:12:0::1;-1:-1:-1::0;;;;;10896:12:0;;;::::1;::::0;;;::::1;::::0;;10838:76::o;11722:93::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;11787:14:::1;:22:::0;11722:93::o;7390:174::-;7463:10;;-1:-1:-1;;;;;7463:10:0;7481:11;:9;:11::i;:::-;7499:24;;-1:-1:-1;;;7499:24:0;;7510:9;7499:24;;;10238:51:1;7521:1:0;10305:18:1;;;10298:34;-1:-1:-1;;;;;7499:10:0;;;;;10211:18:1;;7499:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7544:11;;7558:1;7544:15;;;;:::i;:::-;7530:11;:29;-1:-1:-1;7390:174:0:o;3420:230::-;3197:6;;-1:-1:-1;;;;;3197:6:0;2653:10;3197:22;3189:67;;;;-1:-1:-1;;;3189:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3505:22:0;::::1;3497:73;;;::::0;-1:-1:-1;;;3497:73:0;;12026:2:1;3497:73:0::1;::::0;::::1;12008:21:1::0;12065:2;12045:18;;;12038:30;12104:34;12084:18;;;12077:62;-1:-1:-1;;;12155:18:1;;;12148:36;12201:19;;3497:73:0::1;11824:402:1::0;3497:73:0::1;3603:6;::::0;;3582:38:::1;::::0;-1:-1:-1;;;;;3582:38:0;;::::1;::::0;3603:6;::::1;::::0;3582:38:::1;::::0;::::1;3627:6;:17:::0;;-1:-1:-1;;;;;;3627:17:0::1;-1:-1:-1::0;;;;;3627:17:0;;;::::1;::::0;;;::::1;::::0;;3420:230::o;10682:152::-;10770:4;;10790:38;;-1:-1:-1;;;10790:38:0;;10822:4;10790:38;;;915:51:1;10726:7:0;;-1:-1:-1;;;;;10770:4:0;;;;10790:23;;888:18:1;;10790:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10783:45;;;10682:152;:::o;7570:209::-;7656:5;;7720:9;;-1:-1:-1;;;;;7656:5:0;;;;7708:21;;7720:9;7708:21;:::i;:::-;7675:30;;-1:-1:-1;;;7675:30:0;;-1:-1:-1;;;;;7675:20:0;;;;;:30;;7696:8;;7675:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;7671:103;;;7740:24;7755:8;7740:14;:24::i;8557:424::-;8625:8;;8702:28;;;8667:2;8702:28;;;;;;;;;-1:-1:-1;;;;;8625:8:0;;;;8598:13;;8667:2;8702:28;;;;;;;;;;-1:-1:-1;8702:28:0;8680:50;;8741:19;8777:13;8763:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8763:28:0;;8741:50;;8807:9;8802:108;8826:13;8822:17;;:1;:17;8802:108;;;8869:5;:1;8873;8869:5;:::i;:::-;8861:2;8864:1;8861:5;;;;;;;;:::i;:::-;;;;;;:13;;;;;8897:1;8889:2;8892:1;8889:5;;;;;;;;:::i;:::-;;;;;;;;;;:9;8841:3;;;;:::i;:::-;;;;8802:108;;;-1:-1:-1;8956:4:0;;8920:53;;-1:-1:-1;;;8920:53:0;;-1:-1:-1;;;;;8920:24:0;;;;;;:53;;8945:9;;8956:4;;8962:2;;8966;;8920:53;;;:::i;7785:316::-;7878:5;;7913:20;;-1:-1:-1;;;7913:20:0;;-1:-1:-1;;;;;7878:5:0;;;;;;7913:10;;:20;;7924:8;;7913:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;7937:10;7913:35;:::i;:::-;7895:15;:53;7891:205;;;7965:2;-1:-1:-1;;;;;7965:12:0;;7978:8;8021:9;;7988:2;-1:-1:-1;;;;;7988:20:0;;8009:8;7988:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:42;;;;:::i;:::-;7965:66;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8046:38:0;;-1:-1:-1;;;8046:38:0;;-1:-1:-1;;;;;8046:11:0;;;-1:-1:-1;8046:11:0;;-1:-1:-1;8046:38:0;;8058:8;;8068:15;;8046:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7842:259;7785:316;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;381:131::-;-1:-1:-1;;;;;456:31:1;;446:42;;436:70;;502:1;499;492:12;436:70;381:131;:::o;517:247::-;576:6;629:2;617:9;608:7;604:23;600:32;597:52;;;645:1;642;635:12;597:52;684:9;671:23;703:31;728:5;703:31;:::i;:::-;753:5;517:247;-1:-1:-1;;;517:247:1:o;977:127::-;1038:10;1033:3;1029:20;1026:1;1019:31;1069:4;1066:1;1059:15;1093:4;1090:1;1083:15;1109:719;1152:5;1205:3;1198:4;1190:6;1186:17;1182:27;1172:55;;1223:1;1220;1213:12;1172:55;1259:6;1246:20;1285:18;1322:2;1318;1315:10;1312:36;;;1328:18;;:::i;:::-;1403:2;1397:9;1371:2;1457:13;;-1:-1:-1;;1453:22:1;;;1477:2;1449:31;1445:40;1433:53;;;1501:18;;;1521:22;;;1498:46;1495:72;;;1547:18;;:::i;:::-;1587:10;1583:2;1576:22;1622:2;1614:6;1607:18;1668:3;1661:4;1656:2;1648:6;1644:15;1640:26;1637:35;1634:55;;;1685:1;1682;1675:12;1634:55;1749:2;1742:4;1734:6;1730:17;1723:4;1715:6;1711:17;1698:54;1796:1;1789:4;1784:2;1776:6;1772:15;1768:26;1761:37;1816:6;1807:15;;;;;;1109:719;;;;:::o;1833:322::-;1902:6;1955:2;1943:9;1934:7;1930:23;1926:32;1923:52;;;1971:1;1968;1961:12;1923:52;2011:9;1998:23;2044:18;2036:6;2033:30;2030:50;;;2076:1;2073;2066:12;2030:50;2099;2141:7;2132:6;2121:9;2117:22;2099:50;:::i;:::-;2089:60;1833:322;-1:-1:-1;;;;1833:322:1:o;2160:543::-;2248:6;2256;2309:2;2297:9;2288:7;2284:23;2280:32;2277:52;;;2325:1;2322;2315:12;2277:52;2365:9;2352:23;2394:18;2435:2;2427:6;2424:14;2421:34;;;2451:1;2448;2441:12;2421:34;2474:50;2516:7;2507:6;2496:9;2492:22;2474:50;:::i;:::-;2464:60;;2577:2;2566:9;2562:18;2549:32;2533:48;;2606:2;2596:8;2593:16;2590:36;;;2622:1;2619;2612:12;2590:36;;2645:52;2689:7;2678:8;2667:9;2663:24;2645:52;:::i;:::-;2635:62;;;2160:543;;;;;:::o;2708:678::-;2805:6;2813;2821;2874:2;2862:9;2853:7;2849:23;2845:32;2842:52;;;2890:1;2887;2880:12;2842:52;2930:9;2917:23;2959:18;3000:2;2992:6;2989:14;2986:34;;;3016:1;3013;3006:12;2986:34;3039:50;3081:7;3072:6;3061:9;3057:22;3039:50;:::i;:::-;3029:60;;3139:2;3128:9;3124:18;3111:32;3098:45;;3152:31;3177:5;3152:31;:::i;:::-;3202:5;;-1:-1:-1;3260:2:1;3245:18;;3232:32;;3276:16;;;3273:36;;;3305:1;3302;3295:12;3273:36;;3328:52;3372:7;3361:8;3350:9;3346:24;3328:52;:::i;:::-;3318:62;;;2708:678;;;;;:::o;3391:747::-;3497:6;3505;3513;3521;3574:3;3562:9;3553:7;3549:23;3545:33;3542:53;;;3591:1;3588;3581:12;3542:53;3627:9;3614:23;3604:33;;3688:2;3677:9;3673:18;3660:32;3711:18;3752:2;3744:6;3741:14;3738:34;;;3768:1;3765;3758:12;3738:34;3791:50;3833:7;3824:6;3813:9;3809:22;3791:50;:::i;:::-;3781:60;;3891:2;3880:9;3876:18;3863:32;3850:45;;3904:31;3929:5;3904:31;:::i;:::-;3954:5;;-1:-1:-1;4012:2:1;3997:18;;3984:32;;4028:16;;;4025:36;;;4057:1;4054;4047:12;4025:36;;4080:52;4124:7;4113:8;4102:9;4098:24;4080:52;:::i;:::-;4070:62;;;3391:747;;;;;;;:::o;4143:356::-;4345:2;4327:21;;;4364:18;;;4357:30;4423:34;4418:2;4403:18;;4396:62;4490:2;4475:18;;4143:356::o;4504:472::-;4546:3;4584:5;4578:12;4611:6;4606:3;4599:19;4636:1;4646:162;4660:6;4657:1;4654:13;4646:162;;;4722:4;4778:13;;;4774:22;;4768:29;4750:11;;;4746:20;;4739:59;4675:12;4646:162;;;4826:6;4823:1;4820:13;4817:87;;;4892:1;4885:4;4876:6;4871:3;4867:16;4863:27;4856:38;4817:87;-1:-1:-1;4958:2:1;4937:15;-1:-1:-1;;4933:29:1;4924:39;;;;4965:4;4920:50;;4504:472;-1:-1:-1;;4504:472:1:o;4981:220::-;5130:2;5119:9;5112:21;5093:4;5150:45;5191:2;5180:9;5176:18;5168:6;5150:45;:::i;5206:184::-;5276:6;5329:2;5317:9;5308:7;5304:23;5300:32;5297:52;;;5345:1;5342;5335:12;5297:52;-1:-1:-1;5368:16:1;;5206:184;-1:-1:-1;5206:184:1:o;5395:127::-;5456:10;5451:3;5447:20;5444:1;5437:31;5487:4;5484:1;5477:15;5511:4;5508:1;5501:15;5527:168;5567:7;5633:1;5629;5625:6;5621:14;5618:1;5615:21;5610:1;5603:9;5596:17;5592:45;5589:71;;;5640:18;;:::i;:::-;-1:-1:-1;5680:9:1;;5527:168::o;5700:375::-;-1:-1:-1;;;;;5958:15:1;;;5940:34;;6010:15;;;;6005:2;5990:18;;5983:43;6057:2;6042:18;;6035:34;;;;5890:2;5875:18;;5700:375::o;6080:277::-;6147:6;6200:2;6188:9;6179:7;6175:23;6171:32;6168:52;;;6216:1;6213;6206:12;6168:52;6248:9;6242:16;6301:5;6294:13;6287:21;6280:5;6277:32;6267:60;;6323:1;6320;6313:12;6362:424;6564:2;6546:21;;;6603:2;6583:18;;;6576:30;6642:34;6637:2;6622:18;;6615:62;6713:30;6708:2;6693:18;;6686:58;6776:3;6761:19;;6362:424::o;6791:128::-;6831:3;6862:1;6858:6;6855:1;6852:13;6849:39;;;6868:18;;:::i;:::-;-1:-1:-1;6904:9:1;;6791:128::o;6924:291::-;7101:2;7090:9;7083:21;7064:4;7121:45;7162:2;7151:9;7147:18;7139:6;7121:45;:::i;:::-;7113:53;;7202:6;7197:2;7186:9;7182:18;7175:34;6924:291;;;;;:::o;7220:251::-;7290:6;7343:2;7331:9;7322:7;7318:23;7314:32;7311:52;;;7359:1;7356;7349:12;7311:52;7391:9;7385:16;7410:31;7435:5;7410:31;:::i;7476:217::-;7516:1;7542;7532:132;;7586:10;7581:3;7577:20;7574:1;7567:31;7621:4;7618:1;7611:15;7649:4;7646:1;7639:15;7532:132;-1:-1:-1;7678:9:1;;7476:217::o;9005:625::-;9286:3;9275:9;9268:22;9249:4;9313:46;9354:3;9343:9;9339:19;9331:6;9313:46;:::i;:::-;9395:6;9390:2;9379:9;9375:18;9368:34;9450:9;9442:6;9438:22;9433:2;9422:9;9418:18;9411:50;9478:33;9504:6;9496;9478:33;:::i;:::-;-1:-1:-1;;;;;9547:32:1;;;;9542:2;9527:18;;9520:60;-1:-1:-1;;9611:3:1;9596:19;9589:35;9470:41;9005:625;-1:-1:-1;;;9005:625:1:o;9635:424::-;9837:2;9819:21;;;9876:2;9856:18;;;9849:30;9915:34;9910:2;9895:18;;9888:62;9986:30;9981:2;9966:18;;9959:58;10049:3;10034:19;;9635:424::o;10343:317::-;10520:2;10509:9;10502:21;10483:4;10540:45;10581:2;10570:9;10566:18;10558:6;10540:45;:::i;:::-;10532:53;;10650:1;10646;10641:3;10637:11;10633:19;10625:6;10621:32;10616:2;10605:9;10601:18;10594:60;10343:317;;;;;:::o;10665:383::-;10862:2;10851:9;10844:21;10825:4;10888:45;10929:2;10918:9;10914:18;10906:6;10888:45;:::i;:::-;10981:9;10973:6;10969:22;10964:2;10953:9;10949:18;10942:50;11009:33;11035:6;11027;11009:33;:::i;:::-;11001:41;10665:383;-1:-1:-1;;;;;10665:383:1:o;11407:125::-;11447:4;11475:1;11472;11469:8;11466:34;;;11480:18;;:::i;:::-;-1:-1:-1;11517:9:1;;11407:125::o;12231:127::-;12292:10;12287:3;12283:20;12280:1;12273:31;12323:4;12320:1;12313:15;12347:4;12344:1;12337:15;12363:135;12402:3;-1:-1:-1;;12423:17:1;;12420:43;;;12443:18;;:::i;:::-;-1:-1:-1;12490:1:1;12479:13;;12363:135::o;12503:435::-;12556:3;12594:5;12588:12;12621:6;12616:3;12609:19;12647:4;12676:2;12671:3;12667:12;12660:19;;12713:2;12706:5;12702:14;12734:1;12744:169;12758:6;12755:1;12752:13;12744:169;;;12819:13;;12807:26;;12853:12;;;;12888:15;;;;12780:1;12773:9;12744:169;;;-1:-1:-1;12929:3:1;;12503:435;-1:-1:-1;;;;;12503:435:1:o;12943:889::-;-1:-1:-1;;;;;13394:15:1;;;13376:34;;13446:15;;13441:2;13426:18;;13419:43;13356:3;13493:2;13478:18;;13471:31;;;13319:4;;13525:57;;13562:19;;13554:6;13525:57;:::i;:::-;13630:9;13622:6;13618:22;13613:2;13602:9;13598:18;13591:50;13664:44;13701:6;13693;13664:44;:::i;:::-;13745:22;;;13739:3;13724:19;;;13717:51;;;;-1:-1:-1;;13792:1:1;13777:17;;13823:2;13811:15;;12943:889;-1:-1:-1;;;;12943:889:1:o

Swarm Source

ipfs://3bd1ba4d449905d3fb18ce47d5361e0b2d268aa346b5a5d11ab39e8b56727c51

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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